iverilog/ivtest/ivltests/sv_module_port3.v

50 lines
816 B
Verilog

// Check that it is possible to declare module ports without specifing the
// direction.
bit failed = 1'b0;
`define check(val, exp) do begin \
if ((val) !== (exp)) begin \
$display("FAILED(%0d): Expected `%d`, got `%d`.", `__LINE__, \
(exp), (val)); \
failed = 1'b1; \
end \
end while (0)
// All ports should be inout if no direction is specified
module M (wire [31:0] a, b, c);
assign c = a ^ b;
initial begin
`check($bits(a), 32);
`check($bits(b), 32);
`check($bits(c), 32);
end
endmodule
module test;
wire [31:0] a, b, c;
M i_m (a, b, c);
`define A 'h01234567
`define B 'hfedcba98
assign a = `A;
assign b = `B;
initial begin
#1
`check(c, `A ^ `B);
if (!failed) begin
$display("PASSED");
end
end
endmodule