sv2v/test/core/package_function_cast.sv

22 lines
468 B
Systemverilog
Raw Normal View History

package P;
function automatic logic [7:0] f(input logic [2:0] p);
logic [7:0] r;
localparam T = $bits(r[7:0]);
r = T'(1'sb0);
r[p+:2] = $bits(r[p+:2])'(1'sb1);
return r;
endfunction
endpackage
module top;
logic [2:0] p;
logic [7:0] q;
assign q = P::f(p);
initial begin
$monitor("%0d, p=%b q=%b", $time, p, q);
#1 p = 0;
while (p != 7)
#1 p = p + 1;
end
endmodule