SystemVerilog引入了一种新的数据类型,即队列
像动态数组一样,队列可以增长和缩小,但是队列可以很方便地添加和删除元素。
int j = 1,b[$] = {
3,4},q[$] = {
0,2,5}; // {0,2,5} Initial queueinitial beginq.insert(1, j); // {0,1,2,5} Insert 1 before 2q.insert(3, b); // {0,1,2,3,4,5} Insert whole q.q.delete(1); // {0,2,3,4,5} Delete elem. #1// The rest of these are fastq.push_front(6); // {6,0,2,3,4,5} Insert at frontj = q.pop_back; // {6,0,2,3,4} j = 5q.push_back(8); // {6,0,2,3,4,8} Insert at backj = q.pop_front; // {0,2,3,4,8} j = 6foreach (q[i])$display(q[i]);end
关联数组
如果想要处理具有数千兆字节范围的地址,而实际执行中只会涉及到部分地址,此时创建一个大型数组分配和初始化千兆字节会非常浪费。
SystemVerilog提供了关联数组数据结构。SystemVeril