forked from Github_Repos/cvw
		
	
		
			
				
	
	
		
			72 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Systemverilog
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			72 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Systemverilog
		
	
	
		
			Executable File
		
	
	
	
	
//
 | 
						|
// File name : tb
 | 
						|
// Title     : test
 | 
						|
// project   : HW3
 | 
						|
// Library   : test
 | 
						|
// Purpose   : definition of modules for testbench 
 | 
						|
// notes :   
 | 
						|
//
 | 
						|
// Copyright Oklahoma State University
 | 
						|
//
 | 
						|
 | 
						|
// Top level stimulus module
 | 
						|
 | 
						|
`timescale 1ns/1ps
 | 
						|
 | 
						|
`define XLEN 32
 | 
						|
module stimulus;
 | 
						|
 | 
						|
   logic [`XLEN-1:0]         A;   
 | 
						|
   logic [$clog2(`XLEN)-1:0] Shift;   
 | 
						|
   logic [`XLEN-1:0] 	     Z;
 | 
						|
   logic [`XLEN-1:0] 	     Z_corr;      
 | 
						|
 | 
						|
   //logic [63:0]       A;
 | 
						|
   //logic [5:0] 	      Shift;
 | 
						|
   //logic [63:0]       Z;
 | 
						|
   //logic [63:0]       Z_corr;
 | 
						|
   //logic [63:0]       Z_orig;
 | 
						|
 | 
						|
   
 | 
						|
   logic 	 clk;   
 | 
						|
 | 
						|
   integer 	 handle3;
 | 
						|
   integer 	 desc3;
 | 
						|
   integer 	 i;   
 | 
						|
   
 | 
						|
   // instatiate part to test
 | 
						|
   shift_left dut1 (A, Shift, Z);
 | 
						|
   assign Z_corr = (A << Shift);   
 | 
						|
 | 
						|
   initial 
 | 
						|
     begin	
 | 
						|
	clk = 1'b1;
 | 
						|
	forever #5 clk = ~clk;
 | 
						|
     end
 | 
						|
   
 | 
						|
   initial
 | 
						|
     begin
 | 
						|
	handle3 = $fopen("shift_left.out");
 | 
						|
	desc3 = handle3;	
 | 
						|
     end
 | 
						|
   
 | 
						|
   initial
 | 
						|
     begin
 | 
						|
	for (i=0; i < 256; i=i+1)
 | 
						|
	  begin
 | 
						|
	     // Put vectors before beginning of clk
 | 
						|
	     @(posedge clk)
 | 
						|
	       begin
 | 
						|
		  A = $random;
 | 
						|
		  Shift = $random;
 | 
						|
	       end
 | 
						|
	     @(negedge clk)
 | 
						|
	       begin
 | 
						|
		  $fdisplay(desc3, "%h %h || %h %h | %b", A, Shift, Z, Z_corr, (Z == Z_corr));
 | 
						|
	       end
 | 
						|
	  end // for (i=0; i < 256; i=i+1)
 | 
						|
	$finish;// 	
 | 
						|
     end // initial begin   
 | 
						|
   
 | 
						|
endmodule // stimulus
 |