iverilog/ivtest/ivltests/pr1444055.v

67 lines
1.5 KiB
Verilog

module bts ( z , a , e);
inout z ; wire z ;
input a ; wire a ;
input e ; wire e ;
assign #4 z= ( (e==1'b1)? a : 1'bz );
endmodule
module test();
reg [1:0] aa;
wire [1:0] zz;
reg [1:0] ee;
bts sub1 (.z(zz[1]), .a(aa[1]), .e(ee[1]));
bts sub0 (.z(zz[0]), .a(aa[0]), .e(ee[0]));
initial begin
// $dumpvars;
ee=2'b00;
aa=2'b00; #100;
if (zz !== 2'bzz) begin
$display("FAILED -- (1) All disabled, expected HiZ, got %b", zz);
$finish;
end
aa=2'b11; #100;
if (zz !== 2'bzz) begin
$display("FAILED -- (2) All disabled, expected HiZ, got %b", zz);
$finish;
end
aa=2'b00; #100;
if (zz !== 2'bzz) begin
$display("FAILED -- (3) All disabled, expected HiZ, got %b", zz);
$finish;
end
aa=2'b11; #100;
if (zz !== 2'bzz) begin
$display("FAILED -- (4) All disabled, expected HiZ, got %b", zz);
$finish;
end
ee=2'b11;
aa=2'b00; #100;
if (zz !== 2'b00) begin
$display("FAILED -- (5) All enabled, expected 00, got %b", zz);
$finish;
end
aa=2'b11; #100;
if (zz !== 2'b11) begin
$display("FAILED -- (6) All enabled, expected 11, got %b", zz);
$finish;
end
aa=2'b00; #100;
if (zz !== 2'b00) begin
$display("FAILED -- (7) All enabled, expected 00, got %b", zz);
$finish;
end
aa=2'b11; #100;
if (zz !== 2'b11) begin
$display("FAILED -- (8) All enabled, expected 11, got %b", zz);
$finish;
end
$display("PASSED");
end
endmodule