iverilog/ivtest/ivltests/br_gh1222.v

28 lines
997 B
Verilog

module top;
real rout_ca1, rout_ca2, rout_valid, rout_gt, rout_udp;
logic lout_ca1, lout_ca2, lout_valid1, lout_valid2, lout_gt, lout_udp;
reg in;
assign (weak1, weak0) {rout_ca1, rout_ca2} = in; // Non-default strength so invalid
assign (weak1, weak0) {lout_ca1, lout_ca2} = in; // Non-default strength so invalid
assign (strong1, strong0) rout_valid = in; // Ok, real cannot be in a concatenation
assign (strong1, strong0) {lout_valid1, lout_valid2} = in; // Ok, default strength
and (rout_gt, in, in); // Gates must drive a net
and (lout_gt, in, in); // Gates must drive a net
// When strength is added it should only be for the default strength!
udp_inv (rout_udp, in); // A UDP is like a module and can drive a variable
udp_inv (lout_udp, in); // A UDP is like a module and can drive a variable
initial $display("FAILED: There should be compile errors!");
endmodule
primitive udp_inv (output y, input a);
table
0 : 1;
1 : 0;
endtable
endprimitive