iverilog/ivtest/ivltests/real_select_invalid.v

92 lines
2.2 KiB
Verilog

module top;
parameter real rpar = 2.0;
real rvar;
real rarr [1:0];
real rout, rtmp;
wire real wrarr [1:0];
wire real wrbslv, wrpslv, wruplv, wrdolv;
wire real wrbstr, wrpstr, wruptr, wrdotr;
wire real wrpbs = rpar[0];
wire real wrpps = rpar[0:0];
wire real wrpup = rpar[0+:1];
wire real wrpdo = rpar[0-:1];
wire real wrbs = rvar[0];
wire real wrps = rvar[0:0];
wire real wrup = rvar[0+:1];
wire real wrdo = rvar[0-:1];
wire real wrabs = rarr[0][0];
wire real wraps = rarr[0][0:0];
wire real wraup = rarr[0][0+:1];
wire real wrado = rarr[0][0-:1];
assign wrbslv[0] = rvar;
assign wrpslv[0:0] = rvar;
assign wruplv[0+:1] = rvar;
assign wrdolv[0-:1] = rvar;
assign wrarr[0][0] = rvar;
assign wrarr[0][0:0] = rvar;
assign wrarr[0][0+:1] = rvar;
assign wrarr[0][0-:1] = rvar;
tran(wrbstr[0], wrarr[1]);
tran(wrpstr[0:0], wrarr[1]);
tran(wruptr[0+:1], wrarr[1]);
tran(wrdotr[0-:1], wrarr[1]);
submod1 s1 (wrbstr[0], wrpstr[0:0], wruptr[0+:1], wrdotr[0-:1]);
submod2 s2 (wrbstr[0], wrpstr[0:0], wruptr[0+:1], wrdotr[0-:1]);
submod3 s3 (wrbstr[0], wrpstr[0:0], wruptr[0+:1], wrdotr[0-:1]);
initial begin
rtmp = rpar[0];
rtmp = rpar[0:0];
rtmp = rpar[0+:1];
rtmp = rpar[0-:1];
rtmp = rvar[0];
rtmp = rvar[0:0];
rtmp = rvar[0+:1];
rtmp = rvar[0-:1];
rtmp = rarr[0][0];
rtmp = rarr[0][0:0];
rtmp = rarr[0][0+:1];
rtmp = rarr[0][0-:1];
rout[0] = 2.0;
rout[0:0] = 2.0;
rout[0+:1] = 2.0;
rout[0-:1] = 2.0;
rarr[0][0] = 1.0;
rarr[0][0:0] = 1.0;
rarr[0][0+:1] = 1.0;
rarr[0][0-:1] = 1.0;
end
endmodule
module submod1(arg1, arg2, arg3, arg4);
input arg1, arg2, arg3, arg4;
wire real arg1, arg2, arg3, arg4;
initial $display("In submod1 with %g, %g, %g, %g", arg1, arg2, arg3, arg4);
endmodule
module submod2(arg1, arg2, arg3, arg4);
output arg1, arg2, arg3, arg4;
real arg1, arg2, arg3, arg4;
initial $display("In submod2 with %g, %g, %g, %g", arg1, arg2, arg3, arg4);
endmodule
module submod3(arg1, arg2, arg3, arg4);
inout arg1, arg2, arg3, arg4;
wire real arg1, arg2, arg3, arg4;
initial $display("In submod3 with %g, %g, %g, %g", arg1, arg2, arg3, arg4);
endmodule