iverilog/ivtest/ivltests/implicit-port7.v

33 lines
739 B
Verilog

// test that .* implicit ports work with override
module m(input a, output b, output c, output d, output e);
assign b = a;
assign c = ~a;
assign d = ~a;
assign e = ~a;
endmodule
module top;
reg a;
reg x;
wire b, d;
m foo(.a(x), .e(), .*, .c(d), .d());
m foo2(.a(x), .d(), .*, .c(), .e());
m foo3(.a(x), .*, .d(), .c(), .e());
m foo4(.*, .a(x), .d(), .c(), .e());
m foo5(.a(x), .d(), .c(), .*, .e());
m foo6(.a(x), .d(), .c(), .e(), .*);
initial begin
a = 0;
x = 1;
#1 if (b !== x || d !== ~x) begin
$display("FAILED -- a=%b, x=%b, b=%b, d=%b", a, x, b, d);
end
#1 a = 1;
#1 if (b !== x || d !== ~x) begin
$display("FAILED -- a=%b, x=%b, b=%b, d=%b", a, x, b, d);
end
$display("PASSED");
end
endmodule