In reply to peter:
Here’s an example which pushes elements in 2D queue first then pops values back
int q[$][$] ;
int val ;
initial begin
for ( int i = 0 ; i < 2 ; i ++ )
begin
for ( int j = 0 ; j < 2 ; j ++ )
begin
q[i].push_back(i+j*10); // Pushes elements in 2D queue .
$display("q[%0d] is %0p",i,q[i]);
end
end
for ( int i = 0 ; i < 2 ; i ++ )
begin
for ( int j = 0 ; j < 2 ; j ++ )
begin
val = q[i].pop_back();
$display("val is %0d",val);
end
end
end
// Note that :: q[i][j].push_back( .. ) would be Error as q[i][j] is leaf element ( packed element ) !!