| module testbench; |
| reg [7:0] in; |
| |
| wire [3:0] outA,outB; |
| wire [3:0] poutA,poutB; |
| |
| initial begin |
| // $dumpfile("testbench.vcd"); |
| // $dumpvars(0, testbench); |
| |
| #5 in = 0; |
| repeat (10000) begin |
| #5 in = in + 1; |
| end |
| |
| $display("OKAY"); |
| end |
| |
| top uut ( |
| .x(in[3:0]), |
| .y(in[7:4]), |
| .A(outA), |
| .B(outB) |
| ); |
| |
| |
| assign poutB = in[3:0] / in[7:4]; |
| |
| check_comb div_test(in[7:4], outB, poutB); |
| |
| endmodule |
| |
| module check_comb(input [3:0] div, input [3:0] test, input [3:0] pat); |
| always @* |
| begin |
| #1; |
| if (div != 4'b0000) |
| if (test !== pat) |
| begin |
| $display("ERROR: ASSERTION FAILED in %m:",$time," ",test," ",pat); |
| $stop; |
| end |
| end |
| endmodule |
| |