I've the below example for multi dimensional dynamic array randomization;
Class base extends uvm_sequence_item;
......
rand integer array_of_frames[][][];
rand int frame_height;
rand int frame_width;
rand int no_of_frames;
.................
constraint no_of_frames_c { no_of_frames>1;no_of_frames<3;}
constraint frame_height_c { frame_height>10;frame_height<20;}
constraint frame_width_c {frame_width>1;frame_width<100;}
........
function void post_randomize();
for(int i=0; i<array_of_frames.size; i++) begin
for(int j=0; j<array_of_frames[i].size; j++) begin
for(int k=0; k<array_of_frames[i][j].size; k++) begin
$write("0x%x ", (array_of_frames[i][j][k] & 32'hFF));
end
$display(" ");
end
$display(" ");
end
endfunction
endclass
After calling the randomization on above item,IRUN throws the below error.
Warning: The generated size 130953965 of the queue/dynamic array is extremely large in IRUN and also causing the randomization failure.
I've tried with the other tools and no issues found.
Please help and suggest a possible solution in NCSIM to allocate memory for above multi dimensional dynamic array?
Thanks,
Regards,
Mahesh.