在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

SystemVerilog中的Queue Methods

芯片驗證工程師 ? 來源:芯片驗證工程師 ? 作者:芯片驗證工程師 ? 2022-10-31 09:20 ? 次閱讀

隊列提供了許多內置方法。如下表所示:

c6dfb3f0-586d-11ed-a3b6-dac502259ad0.png

module dq;
 bit[7:0] dq1[$]; // A unbounded queue of unsigned 8-bit
 int q3[$:5] = {0,1,2,3,4,5}; //bounded queue
 int a;
 initial begin
 a = dq1.size( ); //empty queue
 $display ($stime,,, "empty dq1 size = %0d",a);
 dq1[0] = 0; dq1[1] = 1; dq1[2] = 2;
 $display ($stime,,, "dq1 SIZE = %0d",dq1.size( ));
 $display ($stime,,, "dq1=",dq1);
 dq1.insert (3,3); //index, value
 $display($stime,,, "After Insert dq1 SIZE = %0d",dq1.size( ));
 $display ($stime,,, "dq1=",dq1);
 dq1.delete (3); //index
 $display ($stime,,, "After delete dq1 SIZE = %0d",dq1.size( ));
 $display ($stime,,, "dq1=",dq1);
 a = dq1.pop_front( ); //pop frst entry of the queue
 $display ($stime,,, "dq1 pop front = %0d ",a);
 $display ($stime,,, "dq1=",dq1);
 a = dq1.pop_back( ); //pop last entry of the queue
 $display ($stime,,, "dq1 pop back = %0d ",a);
 $display ($stime,,, "dq1=",dq1);
 //push the frst entry of the queue with '4'
 dq1.push_front(4);
 $display ($stime,,, "push front dq1=",dq1);
 //push the last entry of the queue with '5'
 dq1.push_back(5);
 $display ($stime,,, "push back dq1=",dq1);
 
 q3_size = q3.size + 5; //size > q3 size
 //underfow : pop from index 6,7,8,9,10 – run time Warning
 for (int i = 0; i < q3_size; i++)
 $display($stime,,,"q3[%0d] = %0d", i, q3.pop_front( ) );
 end
 //Solution for underfow - check for size before pop
 while (q3.size( ) > 0)
 $display($stime,,,"q3 = %0d", q3.pop_front ( ));
 //overfow : push over the bound limit – run time Warning
 for (int i = 0; i < q3_size; i++) begin
 q3.push_front( i );
 $display($stime,,,"q3[%0d] :: q3 = %p", i , q3);
 end
 endmodule

仿真log:

 0 empty dq1 size = 0 //empty queue size
 0 dq1 SIZE = 3 //size after providing values to frst three elements
 0 dq1='{'h0, 'h1, 'h2} //assigned frst three elements
 0 After Insert dq1 SIZE = 4 //Insert value 3 at index 3.
 0 dq1='{'h0, 'h1, 'h2, 'h3} //shows inserted value
 0 After delete dq1 SIZE = 3 //delete value at index 3
 0 dq1='{'h0, 'h1, 'h2} //shows dq1 after deletion
 0 dq1 pop front = 0 //pop the front index of the queue
 0 dq1='{'h1, 'h2} //dq1 after element at index 0 is gone (popped)
 0 dq1 pop back = 2 //pop the back (last) index of the queue
 0 dq1='{'h1} //the last index/value is gone
 0 push front dq1='{'h4, 'h1} //push at the front of the queue (value 4)
 0 push back dq1='{'h4, 'h1, 'h5} //push at the end of the queue (value 5)

上面我們通過隊列dq1展示了push和pop的行為。然后我們聲明了有界隊列q3,最大的index限制是5,所以這個隊列最大的size是6.
將隊列q3初始化為{0,1,2,3,4,5},然后pop超過6次。

q3_size = q3.size + 5; //size > q3 size
 //underfow : pop from index 6,7,8,9,10 – run time Warning
 //Queue 'q3' is empty after index 5.
 for (int i = 0; i < q3_size; i++)
 $display($stime,,,"q3[%0d] = %0d", i, q3.pop_front( ) );
 end

這個時候仿真器會上報warnnin:

# RUNTIME: Warning: RUNTIME_0219 testbench.sv (54): Cannot pop from an 
empty queue.

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 仿真器
    +關注

    關注

    14

    文章

    1018

    瀏覽量

    83766
  • Verilog
    +關注

    關注

    28

    文章

    1351

    瀏覽量

    110124
  • System
    +關注

    關注

    0

    文章

    165

    瀏覽量

    36970

原文標題:SystemVerilog中的Queue Methods

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

收藏 人收藏

    評論

    相關推薦

    SystemVerilog的Virtual Methods

    SystemVerilog多態能夠工作的前提是父類的方法被聲明為virtual的。
    發表于 11-28 11:12 ?710次閱讀

    SystemVerilog的“const”類屬性

    SystemVerilog可以將類屬性聲明為常量,即“只讀”。目的就是希望,別人可以讀但是不能修改它的值。
    發表于 11-29 10:25 ?2147次閱讀

    SystemVerilog的聯合(union)介紹

    SystemVerilog ,聯合只是信號,可通過不同名稱和縱橫比來加以引用。
    的頭像 發表于 10-08 15:45 ?1409次閱讀
    <b class='flag-5'>SystemVerilog</b><b class='flag-5'>中</b>的聯合(union)介紹

    Some Programming Methods for I

    Some Programming Methods for Increasing the Operating Speed of PLC Program Absbad With Mitsubishi
    發表于 01-19 12:42 ?15次下載

    SystemVerilog的斷言手冊

    SystemVerilog Assertion Handbook1 ROLE OF SYSTEMVERILOG ASSERTIONSIN A VERIFICATION METHODOLOGY
    發表于 07-22 14:12 ?20次下載

    ThreadX(九)------消息隊列Queue

    消息隊列QueueAPItx_queue_createtx_queue_deletex_queue_flushtx_queue_front_sendtx_queue_receivetx_queue_send_notifyAPItx_queue_createtx_queue_deletetx_queue_flushtx_qu
    發表于 12-28 19:35 ?2次下載
    ThreadX(九)------消息隊列<b class='flag-5'>Queue</b>

    SystemVerilog$cast的應用

    SystemVerilog casting意味著將一種數據類型轉換為另一種數據類型。在將一個變量賦值給另一個變量時,SystemVerilog要求這兩個變量具有相同的數據類型。
    的頭像 發表于 10-17 14:35 ?2873次閱讀

    SystemVerilog的操作方法

    SystemVerilog提供了幾個內置方法來支持數組搜索、排序等功能。
    的頭像 發表于 10-31 10:10 ?2864次閱讀

    SystemVerilog可以嵌套的數據結構

    SystemVerilog除了數組、隊列和關聯數組等數據結構,這些數據結構還可以嵌套。
    的頭像 發表于 11-03 09:59 ?1610次閱讀

    SystemVerilog的struct

    SystemVerilog“struct”表示相同或不同數據類型的集合。
    的頭像 發表于 11-07 10:18 ?2467次閱讀

    SystemVerilog的Shallow Copy

    SystemVerilog的句柄賦值和對象復制的概念是有區別的。
    的頭像 發表于 11-21 10:32 ?923次閱讀

    SystemVerilog的Semaphores

    SystemVerilogSemaphore(旗語)是一個多個進程之間同步的機制之一,這里需要同步的原因是這多個進程共享某些資源。
    的頭像 發表于 12-12 09:50 ?3388次閱讀

    什么是queue

    queue 容器,又稱隊列容器,是簡單地裝飾deque容器而成為另外的一種容器。
    的頭像 發表于 02-27 15:43 ?1691次閱讀

    Systemverilog的Driving Strength講解

    systemverilog,net用于對電路連線進行建模,driving strength(驅動強度)可以讓net變量值的建模更加精確。
    的頭像 發表于 06-14 15:50 ?1598次閱讀
    <b class='flag-5'>Systemverilog</b><b class='flag-5'>中</b>的Driving Strength講解

    RTOSQueue的工作原理

    Queue即消息隊列是通過RTOS內核提供的一種服務。它是一種線程間同步數據的安全方法。
    的頭像 發表于 07-25 15:45 ?3564次閱讀
    RTOS<b class='flag-5'>中</b><b class='flag-5'>Queue</b>的工作原理
    主站蜘蛛池模板: 美国人与性xxxxxxx| 亚洲综合久久久久久888| 97人洗澡人人澡人人爽| 国产午夜爽爽窝窝在线观看| 免费不卡毛片| 狠狠干网址| 性欧美丰满xxxx性久久久| 欧美极品xxxxⅹ另类| 91网站免费在线观看| 日本一区不卡在线观看| 99热这里精品| 网全大全黄| 日本人zzzwww| 麦克斯奥特曼在线观看| 国产综合图区| 一级做a免费视频| 日日干夜夜草| 大黄网站色多多| 一区二区三区四区在线不卡高清 | 7777sq国产精品| 天天摸天天操天天射| 黄网免费看| 69性成熟xxxxhd| 超h 高h 污肉男男| 色天使色婷婷丁香久久综合| 美女视频很黄很暴黄是免费的| 国产精品一级毛片不收费| 五月天婷婷综合网| 国产精品www夜色影视| 亚洲视频二| 香蕉久久久久久狠狠色| 女人张开腿双腿让男人桶| 国产欧美网站| 与子乱刺激对白在线播放| 天天操丝袜| 久久性久久性久久久爽| 永久免费视频网站在线观看| 国产综合免费视频| 欧美国产日本高清不卡| 色国产在线视频一区| 国模谢心2013.05.06私拍|