Advertisement
toweber

mac_reduced_param_tb.v

Aug 29th, 2022
1,406
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. `include "mac.v"
  2. `timescale 1us/1us
  3. module mac_tb;
  4.  
  5.    // parameters      
  6.    parameter S_WIDTH=4, W_WIDTH=4, MULT_WIDTH = 8, ACC_PR_WIDTH = 10, ACC_WIDTH = 5;
  7.    
  8.    // on testbenches, inputs are regs
  9.    reg signed [S_WIDTH-1:0] in1;
  10.    reg signed [W_WIDTH-1:0] in2;  
  11.    reg clk;
  12.    reg reset;
  13.  
  14.    // on testbenches, outputs are wires
  15.    wire signed [ACC_WIDTH-1:0] out;
  16.    
  17.    //mac MAC1(in1,in2,clk, reset, out);
  18.    mac #(.S_WIDTH(S_WIDTH), .W_WIDTH(W_WIDTH), .MULT_WIDTH(MULT_WIDTH), .ACC_PR_WIDTH(ACC_PR_WIDTH), .ACC_WIDTH(ACC_WIDTH))  MAC1 (in1,in2,clk, reset, out);
  19.    
  20.    initial begin
  21.       clk = 0;     in1 = 1;   in2 = -1; reset = 0;    
  22.       #1 reset = 1;
  23.       #1 reset = 0;      
  24.        
  25.       #(2*2**8) $finish;
  26.            
  27.    end // initial begin
  28.  
  29.    always  #1 clk = ~clk;
  30.    //always  #2 in1 = in1+1;
  31.    //always  #(2*2**4) in2 = in2+1;
  32.      
  33.    initial begin
  34.       $monitor ("%t | in1 = %d | in2 = %d | clk = %d | out = %d", $time, in1, in2, clk, out);
  35.       $dumpfile("dump.vcd");
  36.       $dumpvars();
  37.    end
  38. endmodule // sr_tb
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement