iverilog/ivtest/blif/blif02b_tb.v

35 lines
796 B
Verilog

module main;
reg [2:0] X;
wire q_nand, q_nor, q_xnor, q_not;
test_logic DUT(.A(X[0]), .B(X[1]), .q_nand(q_nand), .q_nor(q_nor),
.q_xnor(q_xnor), .q_not(q_not));
initial begin
for (X = 0 ; X < 4 ; X = X+1) begin
#1 /* Let gates settle. */;
if (q_nand !== (X[0] ~& X[1])) begin
$display("FAILED -- q_nand=%b, X=%b", q_nand, X[1:0]);
$finish;
end
if (q_nor !== (X[0] ~| X[1])) begin
$display("FAILED -- q_nor=%b, X=%b", q_nor, X[1:0]);
$finish;
end
if (q_xnor !== (X[0] ~^ X[1])) begin
$display("FAILED -- q_xnor=%b, X=%b", q_xnor, X[1:0]);
$finish;
end
if (q_not !== (~X[0])) begin
$display("FAILED -- q_not=%b, X=%b", q_not, X[0]);
$finish;
end
end
$display("PASSED");
end
endmodule // main