Hi.
I’m trying to pass a a class array variable to module.
I can successfully make randomized array in a class. But how to pass the array into the module?
I faced error message when I use class array in the module directly.
How do I correctly pass the array from class to module?
interface rnd_interface;
logic clk=0;
logic reset;
logic [3:0] rnd_out;
logic [3:0] q[];
endinterface
class rnd_num_c;
virtual interface rnd_interface rnd_intf;
rand logic [3:0] q[];
rand int wsize;
constraint size_con{
wsize inside {[0:10]};
q.size() == wsize;
}
endclass
module test;
logic rstn=0;
rnd_interface intf();
initial begin
rnd_num_c rnd_num;
rnd_num = new();
if(!rnd_num.randomize())
$error("randomization fail");
foreach(rnd_num.q[i]) begin
intf.q[i] = rnd_num.q[i];
$display("rnd_num.q[%0d]=%0d",i, rnd_num.q[i]);
end
end
always #5 intf.clk = ~intf.clk;
logic [3:0] seq;
logic [3:0] i=0;
always@(posedge intf.clk or negedge rstn) begin
if(!rstn) begin
seq <= 0;
i <= 0;
end else begin
i <= i+1;
seq <= intf.q[i];
$display("seq[%0d]=%0d", i, intf.q[i]);
end
...