100 lines
1.9 KiB
Coq
100 lines
1.9 KiB
Coq
|
|
/* tern9.v
|
||
|
|
*/
|
||
|
|
module main;
|
||
|
|
|
||
|
|
reg flag;
|
||
|
|
reg val;
|
||
|
|
wire test1 = flag? val : 1'bx;
|
||
|
|
wire test2 = flag? 1'b0 : 1'bx;
|
||
|
|
wire test3 = flag? 1'bx : val;
|
||
|
|
|
||
|
|
initial begin
|
||
|
|
flag = 1;
|
||
|
|
val = 0;
|
||
|
|
|
||
|
|
#1 if (test1 !== 1'b0) begin
|
||
|
|
$display("FAILED -- flag=%b, val=%b, test1=%b", flag, val, test1);
|
||
|
|
$finish;
|
||
|
|
end
|
||
|
|
|
||
|
|
if (test2 !== 1'b0) begin
|
||
|
|
$display("FAILED -- flag=%b, test2=%b", flag, test2);
|
||
|
|
$finish;
|
||
|
|
end
|
||
|
|
|
||
|
|
if (test3 !== 1'bx) begin
|
||
|
|
$display("FAILED -- flag=%b, test3=%b", flag, test3);
|
||
|
|
$finish;
|
||
|
|
end
|
||
|
|
|
||
|
|
val = 1;
|
||
|
|
|
||
|
|
#1 if (test1 !== 1'b1) begin
|
||
|
|
$display("FAILED -- flag=%b, val=%b, test1=%b", flag, val, test1);
|
||
|
|
$finish;
|
||
|
|
end
|
||
|
|
|
||
|
|
val = 1'bx;
|
||
|
|
|
||
|
|
#1 if (test1 !== 1'bx) begin
|
||
|
|
$display("FAILED -- flag=%b, val=%b, test1=%b", flag, val, test1);
|
||
|
|
$finish;
|
||
|
|
end
|
||
|
|
|
||
|
|
val = 1'bz;
|
||
|
|
|
||
|
|
#1 if (test1 !== 1'bz) begin
|
||
|
|
$display("FAILED -- flag=%b, val=%b, test1=%b", flag, val, test1);
|
||
|
|
$finish;
|
||
|
|
end
|
||
|
|
|
||
|
|
flag = 0;
|
||
|
|
val = 0;
|
||
|
|
|
||
|
|
#1 if (test1 !== 1'bx) begin
|
||
|
|
$display("FAILED -- flag=%b, val=%b, test1=%b", flag, val, test1);
|
||
|
|
$finish;
|
||
|
|
end
|
||
|
|
|
||
|
|
if (test2 !== 1'bx) begin
|
||
|
|
$display("FAILED -- flag=%b, test2=%b", flag, test2);
|
||
|
|
$finish;
|
||
|
|
end
|
||
|
|
|
||
|
|
if (test3 !== 1'b0) begin
|
||
|
|
$display("FAILED -- flag=%b, test3=%b", flag, test3);
|
||
|
|
$finish;
|
||
|
|
end
|
||
|
|
|
||
|
|
val = 1;
|
||
|
|
|
||
|
|
#1 if (test1 !== 1'bx) begin
|
||
|
|
$display("FAILED -- flag=%b, val=%b, test1=%b", flag, val, test1);
|
||
|
|
$finish;
|
||
|
|
end
|
||
|
|
|
||
|
|
if (test3 !== 1'b1) begin
|
||
|
|
$display("FAILED -- flag=%b, test3=%b", flag, test3);
|
||
|
|
$finish;
|
||
|
|
end
|
||
|
|
|
||
|
|
val = 1'bx;
|
||
|
|
|
||
|
|
#1 if (test3 !== 1'bx) begin
|
||
|
|
$display("FAILED -- flag=%b, val=%b, test3=%b", flag, val, test3);
|
||
|
|
$finish;
|
||
|
|
end
|
||
|
|
|
||
|
|
val = 1'bz;
|
||
|
|
|
||
|
|
#1 if (test3 !== 1'bz) begin
|
||
|
|
$display("FAILED -- flag=%b, val=%b, test3=%b", flag, val, test3);
|
||
|
|
$finish;
|
||
|
|
end
|
||
|
|
|
||
|
|
$display("PASSED");
|
||
|
|
$finish;
|
||
|
|
end // initial begin
|
||
|
|
|
||
|
|
endmodule
|