| module testbench; |
| reg clk; |
| |
| initial begin |
| // $dumpfile("testbench.vcd"); |
| // $dumpvars(0, testbench); |
| |
| #5 clk = 0; |
| repeat (10000) begin |
| #5 clk = 1; |
| #5 clk = 0; |
| end |
| |
| $display("OKAY"); |
| end |
| |
| |
| reg [15:0] I0 = 1; |
| reg [15:0] I1 = 0; |
| wire A,B,C,D,E,F; |
| reg Ap,Bp,Cp,Dp,Ep,Fp; |
| |
| top uut ( |
| .clk (clk), |
| .I0 (I0 ), |
| .I1 (I1 ), |
| .A (A ), |
| .B (B ), |
| .C (C ), |
| .D (D ), |
| .E (E ), |
| .F (F ) |
| ); |
| |
| always @(posedge clk) |
| begin |
| if (I0 < I1) |
| Ap <= 1'b1; |
| else |
| Ap <= 1'b0; |
| |
| if (I0 <= I1) |
| Bp <= 1'b1; |
| else |
| Bp <= 1'b0; |
| |
| if (I0 != I1) |
| Cp <= 1'b1; |
| else |
| Cp <= 1'b0; |
| |
| if (I0 === I1) |
| Dp <= 1'b1; |
| else |
| Dp <= 1'b0; |
| |
| if (I0 !== I1) |
| Ep <= 1'b1; |
| else |
| Ep <= 1'b0; |
| |
| if (I0 >= I1) |
| Fp <= 1'b1; |
| else |
| Fp <= 1'b0; |
| end |
| |
| always @(posedge clk) begin |
| //#3; |
| I0 <= {I0[14:0],I0[15]}; |
| //D <= D <<< 1; |
| I1 <= I1 + 1; |
| end |
| |
| assert_tri A_test(.en(clk), .A(A), .B(Ap)); |
| assert_tri B_test(.en(clk), .A(B), .B(Bp)); |
| assert_tri C_test(.en(clk), .A(C), .B(Cp)); |
| //assert_tri D_test(.en(clk), .A(D), .B(Dp)); |
| assert_tri E_test(.en(clk), .A(E), .B(Ep)); |
| assert_tri F_test(.en(clk), .A(F), .B(Fp)); |
| |
| endmodule |