SystemVerilog中除了數組、隊列和關聯數組等數據結構,這些數據結構還可以嵌套。
module top; typedef int Qint[$]; // dynamic array of queues Qint DynamicQ[ ]; // same as int DynamicQ[ ][$]; // queue of queues Qint QueueQ[$]; // same as int QueueQ[$][$]; // associative array of queues Qint AssociativeQ[string]; // same as //int AssociativeQ[string][$]; initial begin // Dynamic array of 2 queues DynamicQ = new[2]; //Create dynamic array of size 2 (queues) // initialize queue 0 with three entries DynamicQ[0] = {1,2,3}; // Push onto queue 1 DynamicQ[1].push_back(1); $display("DynamicQ = %p", DynamicQ); //push/initialize queue of 3 queues QueueQ[0].push_front(7); QueueQ[1].push_back(6); QueueQ[2].push_back(1); $display("QueueQ = %p", QueueQ); // Associative array of queues AssociativeQ["one"].push_back(5); AssociativeQ["two"] = {5,6,7,8}; $display("AssociativeQ = %p", AssociativeQ); end endmodule : top
仿真log:
DynamicQ = '{'{1, 2, 3} , '{1} } QueueQ = '{'{7} , '{6} , '{1} } AssociativeQ = '{"one":'{5} , "two":'{5, 6, 7, 8} }
在上面的例子中,我們定義了三種不同類型的數據結構。隊列動態數組、隊列隊列和隊列關聯數組:
// dynamic array of queues Qint DynamicQ[ ]; // same as int DynamicQ[ ][$]; // queue of queues Qint QueueQ[$]; // same as int QueueQ[$][$]; // associative array of queues Qint AssociativeQ[string]; // same as //int AssociativeQ[string][$];
初始化這個隊列動態數組大小為2,然后分別初始化這兩個數組:
DynamicQ = new[2]; //Dynamic Array size of 2. DynamicQ[0] = {1,2,3}; DynamicQ[1].push_back(1);
初始化隊列隊列
QueueQ[0].push_front(7); QueueQ[1].push_back(6); QueueQ[2].push_back(1);
初始化隊列關聯數組
//Queue at associative index/key "one" AssociativeQ["one"].push_front(5); //Queue at associative index/key "two" AssociativeQ["two"] = {5,6,7,8};
審核編輯:劉清
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
Verilog語言
+關注
關注
0文章
113瀏覽量
8288
原文標題:SystemVerilog中的隊列數組、隊列隊列和隊列關聯數組
文章出處:【微信號:芯片驗證工程師,微信公眾號:芯片驗證工程師】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
什么是數據結構(Data Structrue)
什么是數據結構(Data Structrue) 一 名詞術語數據:描述客觀事物的數字,字符以及一切能夠輸入到計算機中,并且能夠被計算機程序處理的符號的集合。數據元素:
發表于 02-09 17:17
常見的數據結構
順序表結構的底層實現借助的就是數組,因此對于初學者來說,可以把順序表完全等價為數組,但實則不是這樣。數據結構是研究數據存儲方式的一門學科,它囊括的都是各種存儲
發表于 05-10 07:58
GPIB命令的數據結構
針對GPIB命令的結構,提出一種存儲GPIB命令的數據結構。根據GPIB命令的層次關系的特點,選擇數據結構中“樹”的概念來存儲GPIB命令結點;并考慮程序實現的效率問題以及管理維護
發表于 02-10 16:20
?70次下載
GPIB命令的數據結構
針對GPIB命令的結構,提出一種存儲GPIB命令的數據結構。根據GPIB命令的層次關系的特點,選擇數據結構中“樹”的概念來存儲GPIB命令結點;并考慮程序實現的效率問題以及管理維護
發表于 01-04 10:13
?0次下載
什么是數據結構
什么是數據結構
1、數據類型和數據結構·數據值:atomic data value: 不可再分解。如3、2、5等。nonatomicdata value:
發表于 08-13 13:56
?1688次閱讀
數據結構在游戲編寫中的應用
在游戲的編寫中,不可避免的出現很多應用數據結構的地方,有些簡單的游戲,只是由幾個 數據結構 的組合,所以說,數據結構在游戲編程中扮演著很重要
發表于 07-25 16:26
?0次下載
數據結構是什么_數據結構有什么用
數據結構是計算機存儲、組織數據的方式。數據結構是指相互之間存在一種或多種特定關系的數據元素的集合。通常情況下,精心選擇的數據結構
發表于 11-17 14:45
?1.6w次閱讀
java中幾種常用數據結構
對于數組和鏈表這兩種數據結構,如果要查找它們存儲的某個特定元素卻不知道它的位置,就需要從頭開始訪問元素直到找到匹配的為止;如果數據結構中包含很多的元素,就會浪費時間。這時最好使用散列表來存儲要查找的
為什么要學習數據結構?數據結構的應用詳細資料概述免費下載
本文檔的主要內容詳細介紹的是為什么要學習數據結構?數據結構的應用詳細資料概述免費下載包括了:數據結構在串口通信當中的應用,數據結構在按鍵監測當中的應用
發表于 09-11 17:15
?13次下載
什么是數據結構?為什么要學習數據結構?數據結構的應用實例分析
本文檔的主要內容詳細介紹的是什么是數據結構?為什么要學習數據結構?數據結構的應用實例分析包括了:數據結構在串口通信當中的應用,數據結構在按鍵
發表于 09-26 15:45
?14次下載
什么是棧?數據結構中棧如何實現
今天放松一下,我們來看看數據結構中的棧,這節的知識點可以說是數據結構中最容易上手的知識點了,其實比起鏈表,其實鏈表也有棧和隊列的模型,鏈表的頭插其實就是后進先出,鏈表的尾插其實就是先進
發表于 04-29 18:25
?0次下載
epoll的基礎數據結構
一、epoll的基礎數據結構 在開始研究源代碼之前,我們先看一下 epoll 中使用的數據結構,分別是 eventpoll、epitem 和 eppoll_entry。 1、eventpoll 我們
評論