| `timescale 1ns/1ps |
| |
| module testbench; |
| reg clk; |
| |
| initial begin |
| // $dumpfile("testbench.vcd"); |
| // $dumpvars(0, testbench); |
| |
| #0 clk = 0; |
| repeat (10000) begin |
| #5 clk = 1; |
| #5 clk = 0; |
| end |
| |
| $display("OKAY"); |
| end |
| |
| reg [6:0] D = 0; |
| reg [1:0] S = 0; |
| wire [1:0] Y; |
| reg [1:0] Y_p; |
| |
| always @(posedge clk) |
| begin |
| D = D + 3; |
| S = S + 1; |
| end |
| |
| always @* begin : block |
| reg [3:0] data [0:3]; |
| data[0] = D[3:0]; |
| data[1] = D[4:1]; |
| data[2] = D[5:2]; |
| data[3] = D[6:3]; |
| Y_p = data[S]; |
| end |
| |
| top uut(D,S,Y); |
| |
| assert_dff check_Y0 (clk,Y[0],Y_p[0]); |
| assert_dff check_Y1 (clk,Y[1],Y_p[1]); |
| |
| endmodule |