色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

System Verilog中的Mailboxes

芯片驗證工程師 ? 來源:芯片驗證工程師 ? 作者:芯片驗證工程師 ? 2022-12-13 09:24 ? 次閱讀

Mailboxes是進程間通信的另一種方式,但是比semaphores更強大,因為Mailboxes可以在兩個進程之間交換消息。

數據可以由一個進程發送,由另一個進程獲取,顧名思義就像是郵箱一樣。

獲取郵箱中信件的方式有兩種:
1、一直等待信件的到來(blocking
2、如果沒有信件就先去干其他事情,過一會兒再來看是否信件到了。(non-blocking

從Mailboxes中可以存放信件規模的角度,Mailboxes可以大致分為bounded Mailboxesunbounded Mailboxes

bounded Mailboxes就是指Mailboxes中能夠容納有限數量的信件,如果在Mailboxes滿時寫入會阻塞住,直到不滿。unbounded Mailboxes可以容納無限數量的信件。

Mailboxes也可以聲明為只能存放某一類的信件。默認情況下,Mailboxes是無類型的,這意味著Mailboxes可以發送和接收任何不同類型的信件。

郵箱聲明的語法是:

mailbox mbox;

Mailbox是一個SystemVerilog內置類,自然也提供了許多內置的方法:

1、new ()
創建一個mailbox,函數原型是:

functionnew()(intbound=0);

會返回一個mailbox句柄,默認bound是0,表示unbounded mailbox。

2、num ()
返回mailbox中信件的個數,函數原型是:

functionintnum();

3、put ()
blocking put(按照FIFO順序),如果mailbox滿了會阻塞進程,函數原型是:

task put (singular message)

4、try_put ( )
non-blocking put(按照FIFO順序),如果mailbox滿了不會阻塞進程,會返回值0。函數原型是:

functiontry_put(singularmessage);

5、get ()
blocking get(按照FIFO順序),如果mailbox是空的,會一直blocking進程。函數原型是:

taskget(refsingularmessage);

6、try_get ( )
non-blocking get(按照FIFO順序),如果mailbox是空的,不會阻塞進程,會返回值0。函數原型是:

function int try_get( ) (ref singular expression)

7、peek ( )
peek()不同于get(),peek會復制mailbox中的信件,而不會將信件從mailbox中刪除。函數原型是:

taskpeek(refsingularmessage);

如果mailbox是空的,會一直block進程。
8、try_peek (),不過多言說,non-block peek。函數原型是:

function int try_peek ( ref singular expression)

示例:

module mB;
 bit [7:0] mem [0:3];
 int i, j, data;
 mailbox mbox; //declare a mailbox
 
 initial begin
 mbox = new (4); //create a bounded mailbox
 
 fork
 DMA_write;
 CPU_read; 
 join 
 end
 
 task DMA_write; 
 $display($stime,,, "DMA puts Mem Data into mbox");
 for (i=0; i < 4; i++) begin
 mem[i] = $urandom;
 $display($stime,,, "DMA WRITE[%0d] = %0d",i,mem[i]);
 mbox.put(mem[i]); //put data into the mailbox
 end
 endtask
 
 task CPU_read;
 $display($stime,,, "CPU retrieves Mem Data from mbox");
 for (j=0; j < 4; j++) begin
 mbox.get(data); //retrieve data from the mailbox
 $display($stime,,, "CPU READ[%0d] = %0d",i,data);
 end 
 endtask
 
endmodule

仿真log:

 0 DMA puts Mem Data into mbox
 0 DMA WRITE[0] = 36
 0 DMA WRITE[1] = 129
 0 DMA WRITE[2] = 9
 0 DMA WRITE[3] = 99
 0 CPU retrieves Mem Data from mbox
 0 CPU READ[0] = 36
 0 CPU READ[1] = 129
 0 CPU READ[2] = 9
 0 CPU READ[3] = 99
 V C S S i m u l a t i o n R e p o r t

上面這個例子首先聲明了一個mailbox “mbox”,然后例化深度為4。

后面兩個并行的進程“DMA_write”和“CPU_read” 。從打印log來看并不存在兩個進程之間的沖突。

參數化Mailbox

如果希望在mailbox put和get時進行類型檢查,可以顯式地聲明mailbox的類型。

module pMailbox; 
 typedef mailbox #(string) string_mbox;
 string s;
 
 initial begin
 static string_mbox SMbox = new;
 s = "hi";
 SMbox.put( s );
 $display("String 'put' is %s", s);
 SMbox.get( s ); 
 $display("String 'get' is %s", s);
 end
endmodule

仿真log:

String 'put' is hi
String 'get' is hi

審核編輯:湯梓紅

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

    關注

    28

    文章

    1355

    瀏覽量

    110843
  • System
    +關注

    關注

    0

    文章

    165

    瀏覽量

    37221
  • 進程
    +關注

    關注

    0

    文章

    204

    瀏覽量

    14044

原文標題:System Verilog中的Mailboxes

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

收藏 人收藏

    評論

    相關推薦

    Modelsim XE是否支持System Verilog

    information:-1.Does itsupport System verilog forverification?2. Code coverage support.3.Assertion support.Whichversionof Modelsim XE su
    發表于 11-27 14:20

    System Verilog常見問題及語言參考手冊規范

    本文討論了一些System Verilog問題以及相關的SystemVerilog 語言參考手冊規范。正確理解這些規格將有助于System Verilog用戶避免意外的模擬結果。
    發表于 12-11 07:19

    System Verilog問題和語言參考手冊規范

    本文討論了一些System Verilog問題以及相關的SystemVerilog 語言參考手冊規范。正確理解這些規格將有助于System Verilog用戶避免意外的模擬結果。
    發表于 12-24 07:07

    求大佬分享一些System Verilog的學習經驗

    求大佬分享一些System Verilog的學習經驗
    發表于 06-21 06:29

    Verilog Digital System Design

    This book is on the IEEE Standard Hardware Description Languagebased on the Verilog® Hardware
    發表于 07-23 08:59 ?0次下載
    <b class='flag-5'>Verilog</b> Digital <b class='flag-5'>System</b> Design

    VHDL,Verilog,System verilog比較

    本文簡單討論并總結了VHDL、VerilogSystem verilog 這三語言的各自特點和區別 As the number of enhancements
    發表于 01-17 11:32 ?0次下載

    基于System Verilog的隨機化激勵

    基于System Verilog的隨機化激勵
    發表于 10-31 09:25 ?9次下載
    基于<b class='flag-5'>System</b> <b class='flag-5'>Verilog</b><b class='flag-5'>中</b>的隨機化激勵

    基于System Verilog的可重用驗證平臺設計及驗證結果分析

    采用System Verilog語言設計了一種具有層次化結構的可重用驗證平臺,該平臺能夠產生各種隨機、定向、錯誤測試向量,并提供功能覆蓋率計算。將驗證平臺在Synopsys公司的VCS仿真工具上運行
    發表于 01-12 11:28 ?2777次閱讀
    基于<b class='flag-5'>System</b> <b class='flag-5'>Verilog</b>的可重用驗證平臺設計及驗證結果分析

    FPGA CPLDVerilog設計小技巧

    FPGA CPLDVerilog設計小技巧(肇慶理士電源技術有限)-FPGA CPLDVerilog設計小技巧? ? ? ? ? ? ? ? ?
    發表于 09-18 16:49 ?37次下載
    FPGA CPLD<b class='flag-5'>中</b>的<b class='flag-5'>Verilog</b>設計小技巧

    System Verilogverilog的對比

    SystemVerilog語言簡介 SystemVerilog是一種硬件描述和驗證語言(HDVL),它基于IEEE1364-2001 Verilog硬件描述語言(HDL),并對其進行了擴展,包括擴充
    的頭像 發表于 09-28 17:12 ?3729次閱讀

    學會這些System Verilog方法,芯片驗證入門沒問題

    一個掌握Verilog語言的工程師初次看SystemVerilog都會有這樣的感受,這就是Verilog啊,很容易啊,So easy啊。沒錯,確實是這樣,System Verilog
    的頭像 發表于 12-09 15:08 ?4186次閱讀

    淺談System Verilog的DPI機制

    System Verilog(SV)把其他編程語言統一成為外語,Foreign Programming Language(FPL)。
    的頭像 發表于 05-23 15:39 ?2484次閱讀
    淺談<b class='flag-5'>System</b> <b class='flag-5'>Verilog</b>的DPI機制

    談談Verilog/System Verilog和C的幾種交互模式

    PLI全稱 Program Language Interface,程序員可以通過PLI在verilog調用C函數,這種訪問是雙向的。
    的頭像 發表于 06-01 17:32 ?1843次閱讀
    談談<b class='flag-5'>Verilog</b>/<b class='flag-5'>System</b> <b class='flag-5'>Verilog</b>和C的幾種交互模式

    System Verilog的概念以及與Verilog的對比

    的端口定義完成后,我們也很難改變端口的配置。 另外,一個設計的許多模塊往往具有相同的端口定義,在Verilog,我們必須在每個模塊中進行相同的定義,這為我們增加了無謂的工作量。
    的頭像 發表于 06-12 10:05 ?1631次閱讀

    system verilog語言簡介

    ICer需要System Verilog語言得加成,這是ICer深度的表現。
    發表于 11-01 10:44 ?0次下載
    主站蜘蛛池模板: aa级毛片毛片免费观看久 | 99爱视频在线观看 | 麻生希快播在线 | 久久热r在线视频精品 | 亚洲国产精品一区二区久久第 | 伊人青青草 | 国产专区_爽死777 | 男人被绑着强行摸j | 16女下面流水不遮图免费观看 | 粉色视频午夜网站入口 | 免费国产久久啪在线 | 思思久久99热只有频精品66 | 亚洲精品久久无码AV片WWW | qvod小电影 | 久久青草影院 | 最美白嫩的极品美女ASSPICS | 亚洲AV色香蕉一区二区9255 | 国产精品美女WWW爽爽爽视频 | 诱受H嗯啊巨肉舍友1V1 | 色色激情网| 97精品一区二区视频在线观看 | 国产精品久免费的黄网站 | 秋霞伦理电影在线看 | 国产人妻XXXX精品HD电影 | 一二三四免费中文在线1 | 午夜精品国产自在现线拍 | 91女神娇喘 | 果冻传媒在线看免费高清 | 小黄文纯肉污到你湿 | 欧美成人无码A区在线观看免费 | 亚洲AV久久久噜噜噜久久 | 2021精品国产综合久久 | 污污内射在线观看一区二区少妇 | 久久人妻少妇嫩草AV蜜桃99 | 99热久久视频只有精品6国产 | 色哒哒影院 | 欧美91精品久久久久网免费 | 无套内射纹身女视频 | 美女被打开了屁股进去的视频 | 国产色婷婷精品人妻蜜桃成熟时 | 亚洲444777KKK在线观看 |