systemverilog中的队列操作十分简单,只需要调用函数即可。
/*
Exercise platform: Questa Sim 10.1b
*/
module queue;
int q[$] ;
function void sep();
for( int i = 0 ; i < 10 ; i++ ) $write(" *** ");
$display();
endfunction:sep
function void print(int q[$]);
sep();
foreach(q[i]) $display("queue[%2d] = %d",i,q[i]);
sep();
endfunction:print
initial begin
for(int i = 0 ; i < 10 ; i++ ) q.insert(i,i);
print(q);
$display(" push back 10 ");
q.push_back(10); // 还有 push_front 方法
print(q);
$display(" pop back 10 ");
q.pop_back();