Advertisement
Guest User

Untitled

a guest
Jun 24th, 2024
119
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. `timescale 1ns/1ps
  2. `include "count8b.v"
  3. `include "sequential.v"
  4.  
  5. module count_tb;
  6.  
  7.     // Inputs
  8.     reg [7:0] CNT_In_TB;
  9.     reg clk_TB, res_TB, EN_TB, load_TB;
  10.    
  11.     // Outputs
  12.     wire [7:0] CNT1_TB, CNT2_TB;
  13.    
  14.     integer i;
  15.  
  16.     // count8b is provided by "The Architect", count8a by "The Developer Teams"
  17.     count8a DUT(.CNT(CNT1_TB), .clk(clk_TB), .res(res_TB), .EN(EN_TB), .load(load_TB), .CNT_In(CNT_In_TB));
  18.     count8b REF(.CNT(CNT2_TB), .clk(clk_TB), .res(res_TB), .EN(EN_TB), .load(load_TB), .CNT_In(CNT_In_TB));
  19.  
  20.  
  21.     initial
  22.         begin
  23.             $display("Res EN Load CNT_In   | CNT      - Test");
  24.         end
  25.  
  26.     initial
  27.         begin    
  28.             $dumpfile("count_tb.vcd");
  29.             $dumpvars(0,count_tb);
  30.          
  31.             clk_TB=1'b0;
  32.             #2; // Wait a bit
  33.             $write("%b   %b   %b   %b | %b", res_TB, EN_TB, load_TB, CNT_In_TB, CNT1_TB);
  34.             if(CNT1_TB == CNT2_TB) $display(" - PASS"); else $display(" FAIL");
  35.            
  36.             for (i=0; i<22; i=i+1)
  37.                 begin
  38.                     #18 clk_TB = ~clk_TB;
  39.                     #2; // Wait a bit
  40.                     $write("%b   %b   %b   %b | %b", res_TB, EN_TB, load_TB, CNT_In_TB, CNT1_TB);
  41.                     if(CNT1_TB == CNT2_TB) $display(" - PASS"); else $display(" FAIL");
  42.                 end
  43.         end
  44.  
  45.     initial
  46.         begin                    
  47.                  res_TB=0; EN_TB=1; load_TB=0; CNT_In_TB = 8'h00;
  48.             #5   res_TB = 1;
  49.             #95  load_TB=1; CNT_In_TB = 8'h11;
  50.             #40  load_TB=0; CNT_In_TB = 8'h00;
  51.             #60  EN_TB = 0;
  52.             #100 EN_TB = 1;
  53.         end
  54.  
  55. endmodule
  56.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement