Advertisement
Guest User

Untitled

a guest
Mar 14th, 2017
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // file: CPU_tb.v
  2. // author: @omar_nawawy
  3. // Testbench for CPU
  4.  
  5. `timescale 1ns/1ns
  6. `include "CPU.v"
  7.  
  8. module CPU_tb;
  9.  
  10.     //Inputs
  11.     reg clk;
  12.     reg rst;
  13.  
  14.  
  15.     //Outputs
  16.  
  17.     always #10 clk = ~clk;
  18.     //Instantiation of Unit Under Test
  19.     CPU uut (
  20.         .clk(clk),
  21.         .rst(rst)
  22.     );
  23.  
  24.     integer i;
  25.     initial begin
  26.     //Inputs initialization
  27.         clk = 0;
  28.         rst = 1;
  29.     //Wait for the reset
  30.         @(negedge clk);
  31.         rst = 0;
  32.     /*  @(negedge clk);
  33.         rst = 1;
  34.         @(negedge clk);
  35.         rst = 0;*/
  36.     end
  37.    
  38.     initial
  39.     begin
  40.                
  41.  
  42.     forever
  43.     begin
  44.         @(negedge clk);
  45.         if ( uut.CU.state == 5'd16)
  46.         begin
  47.                 for (i = 0; i < 32; i = i + 1)
  48.                         begin
  49.                             $display("Reg of %d, is, %d", i, uut.r.regMemory[i]);
  50.                         end
  51.         end
  52.  
  53.         if($time == 380) begin
  54.             $display("BOOOOOOOOOOOM ~~~~!!!!");
  55.             $finish;
  56.         end
  57.     end        
  58.        
  59.     end
  60.    
  61.  
  62.  
  63. endmodule
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement