0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

SystemVerilog中可以嵌套的數(shù)據(jù)結(jié)構(gòu)

芯片驗證工程師 ? 來源:芯片驗證工程師 ? 作者:驗證哥布林 ? 2022-11-03 09:59 ? 次閱讀

SystemVerilog中除了數(shù)組、隊列和關(guān)聯(lián)數(shù)組等數(shù)據(jù)結(jié)構(gòu),這些數(shù)據(jù)結(jié)構(gòu)還可以嵌套。

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} }

在上面的例子中,我們定義了三種不同類型的數(shù)據(jù)結(jié)構(gòu)。隊列動態(tài)數(shù)組、隊列隊列和隊列關(guān)聯(lián)數(shù)組:

 // 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][$];

初始化這個隊列動態(tài)數(shù)組大小為2,然后分別初始化這兩個數(shù)組:

 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);

初始化隊列關(guān)聯(lián)數(shù)組

 //Queue at associative index/key "one"
 AssociativeQ["one"].push_front(5);
 //Queue at associative index/key "two"
 AssociativeQ["two"] = {5,6,7,8};





審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • Verilog語言
    +關(guān)注

    關(guān)注

    0

    文章

    113

    瀏覽量

    8233

原文標(biāo)題:SystemVerilog中的隊列數(shù)組、隊列隊列和隊列關(guān)聯(lián)數(shù)組

文章出處:【微信號:芯片驗證工程師,微信公眾號:芯片驗證工程師】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    什么是數(shù)據(jù)結(jié)構(gòu)(Data Structrue)

    什么是數(shù)據(jù)結(jié)構(gòu)(Data Structrue) 一 名詞術(shù)語數(shù)據(jù):描述客觀事物的數(shù)字,字符以及一切能夠輸入到計算機,并且能夠被計算機程序處理的符號的集合。數(shù)據(jù)元素:
    發(fā)表于 02-09 17:17

    數(shù)據(jù)結(jié)構(gòu)

    的邏輯結(jié)構(gòu),是指反映數(shù)據(jù)之間邏輯關(guān)系的數(shù)據(jù)結(jié)構(gòu)。對于電腦上的數(shù)據(jù)而言,邏輯結(jié)構(gòu)就是能夠用眼睛看到的數(shù)據(jù)
    發(fā)表于 03-04 14:13

    常見的數(shù)據(jù)結(jié)構(gòu)

    順序表結(jié)構(gòu)的底層實現(xiàn)借助的就是數(shù)組,因此對于初學(xué)者來說,可以把順序表完全等價為數(shù)組,但實則不是這樣。數(shù)據(jù)結(jié)構(gòu)是研究數(shù)據(jù)存儲方式的一門學(xué)科,它囊括的都是各種存儲
    發(fā)表于 05-10 07:58

    數(shù)據(jù)結(jié)構(gòu)教程,下載

    1. 數(shù)據(jù)結(jié)構(gòu)的基本概念 2. 算法與數(shù)據(jù)結(jié)構(gòu)3. C語言的數(shù)據(jù)類型及其算法描述要點4. 學(xué)習(xí)算法與數(shù)據(jù)結(jié)構(gòu)的意義與方法
    發(fā)表于 05-14 17:22 ?0次下載
    <b class='flag-5'>數(shù)據(jù)結(jié)構(gòu)</b>教程,下載

    GPIB命令的數(shù)據(jù)結(jié)構(gòu)

    針對GPIB命令的結(jié)構(gòu),提出一種存儲GPIB命令的數(shù)據(jù)結(jié)構(gòu)。根據(jù)GPIB命令的層次關(guān)系的特點,選擇數(shù)據(jù)結(jié)構(gòu)“樹”的概念來存儲GPIB命令結(jié)點;并考慮程序?qū)崿F(xiàn)的效率問題以及管理維護
    發(fā)表于 02-10 16:20 ?70次下載

    GPIB命令的數(shù)據(jù)結(jié)構(gòu)

    針對GPIB命令的結(jié)構(gòu),提出一種存儲GPIB命令的數(shù)據(jù)結(jié)構(gòu)。根據(jù)GPIB命令的層次關(guān)系的特點,選擇數(shù)據(jù)結(jié)構(gòu)“樹”的概念來存儲GPIB命令結(jié)點;并考慮程序?qū)崿F(xiàn)的效率問題以及管理維護
    發(fā)表于 01-04 10:13 ?0次下載

    什么是數(shù)據(jù)結(jié)構(gòu)

    什么是數(shù)據(jù)結(jié)構(gòu) 1、數(shù)據(jù)類型和數(shù)據(jù)結(jié)構(gòu)·數(shù)據(jù)值:atomic data value: 不可再分解。如3、2、5等。nonatomicdata value:
    發(fā)表于 08-13 13:56 ?1681次閱讀

    數(shù)據(jù)結(jié)構(gòu)在游戲編寫的應(yīng)用

    在游戲的編寫,不可避免的出現(xiàn)很多應(yīng)用數(shù)據(jù)結(jié)構(gòu)的地方,有些簡單的游戲,只是由幾個 數(shù)據(jù)結(jié)構(gòu) 的組合,所以說,數(shù)據(jù)結(jié)構(gòu)在游戲編程扮演著很重要
    發(fā)表于 07-25 16:26 ?0次下載

    數(shù)據(jù)結(jié)構(gòu)與算法

    全國C語言考試公共基礎(chǔ)知識點——數(shù)據(jù)結(jié)構(gòu)與算法,該資料包含了有關(guān)數(shù)據(jù)結(jié)構(gòu)與算法的全部知識點。
    發(fā)表于 03-30 14:27 ?0次下載

    數(shù)據(jù)結(jié)構(gòu)是什么_數(shù)據(jù)結(jié)構(gòu)有什么用

    數(shù)據(jù)結(jié)構(gòu)是計算機存儲、組織數(shù)據(jù)的方式。數(shù)據(jù)結(jié)構(gòu)是指相互之間存在一種或多種特定關(guān)系的數(shù)據(jù)元素的集合。通常情況下,精心選擇的數(shù)據(jù)結(jié)構(gòu)
    發(fā)表于 11-17 14:45 ?1.6w次閱讀
    <b class='flag-5'>數(shù)據(jù)結(jié)構(gòu)</b>是什么_<b class='flag-5'>數(shù)據(jù)結(jié)構(gòu)</b>有什么用

    java幾種常用數(shù)據(jù)結(jié)構(gòu)

    對于數(shù)組和鏈表這兩種數(shù)據(jù)結(jié)構(gòu),如果要查找它們存儲的某個特定元素卻不知道它的位置,就需要從頭開始訪問元素直到找到匹配的為止;如果數(shù)據(jù)結(jié)構(gòu)包含很多的元素,就會浪費時間。這時最好使用散列表來存儲要查找的
    的頭像 發(fā)表于 02-08 16:12 ?1.5w次閱讀
    java<b class='flag-5'>中</b>幾種常用<b class='flag-5'>數(shù)據(jù)結(jié)構(gòu)</b>

    為什么要學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)的應(yīng)用詳細(xì)資料概述免費下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是為什么要學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)?數(shù)據(jù)結(jié)構(gòu)的應(yīng)用詳細(xì)資料概述免費下載包括了:數(shù)據(jù)結(jié)構(gòu)在串口通信當(dāng)中的應(yīng)用,數(shù)據(jù)結(jié)構(gòu)在按鍵監(jiān)測當(dāng)中的應(yīng)用
    發(fā)表于 09-11 17:15 ?13次下載
    為什么要學(xué)習(xí)<b class='flag-5'>數(shù)據(jù)結(jié)構(gòu)</b>?<b class='flag-5'>數(shù)據(jù)結(jié)構(gòu)</b>的應(yīng)用詳細(xì)資料概述免費下載

    什么是數(shù)據(jù)結(jié)構(gòu)?為什么要學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)?數(shù)據(jù)結(jié)構(gòu)的應(yīng)用實例分析

    本文檔的主要內(nèi)容詳細(xì)介紹的是什么是數(shù)據(jù)結(jié)構(gòu)?為什么要學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)?數(shù)據(jù)結(jié)構(gòu)的應(yīng)用實例分析包括了:數(shù)據(jù)結(jié)構(gòu)在串口通信當(dāng)中的應(yīng)用,數(shù)據(jù)結(jié)構(gòu)在按鍵
    發(fā)表于 09-26 15:45 ?14次下載
    什么是<b class='flag-5'>數(shù)據(jù)結(jié)構(gòu)</b>?為什么要學(xué)習(xí)<b class='flag-5'>數(shù)據(jù)結(jié)構(gòu)</b>?<b class='flag-5'>數(shù)據(jù)結(jié)構(gòu)</b>的應(yīng)用實例分析

    什么是棧?數(shù)據(jù)結(jié)構(gòu)棧如何實現(xiàn)

    今天放松一下,我們來看看數(shù)據(jù)結(jié)構(gòu)的棧,這節(jié)的知識點可以說是數(shù)據(jù)結(jié)構(gòu)中最容易上手的知識點了,其實比起鏈表,其實鏈表也有棧和隊列的模型,鏈表的頭插其實就是后進先出,鏈表的尾插其實就是先進
    發(fā)表于 04-29 18:25 ?0次下載
    什么是棧?<b class='flag-5'>數(shù)據(jù)結(jié)構(gòu)</b><b class='flag-5'>中</b>棧如何實現(xiàn)

    epoll的基礎(chǔ)數(shù)據(jù)結(jié)構(gòu)

    一、epoll的基礎(chǔ)數(shù)據(jù)結(jié)構(gòu) 在開始研究源代碼之前,我們先看一下 epoll 中使用的數(shù)據(jù)結(jié)構(gòu),分別是 eventpoll、epitem 和 eppoll_entry。 1、eventpoll 我們
    的頭像 發(fā)表于 11-10 10:20 ?808次閱讀
    epoll的基礎(chǔ)<b class='flag-5'>數(shù)據(jù)結(jié)構(gòu)</b>