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

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

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

3天內不再提示

Systemverilog event的示例

芯片驗證工程師 ? 來源: 芯片驗證工程師 ? 作者:芯片驗證工程師 ? 2022-10-17 10:21 ? 次閱讀

event是SystemVerilog語言中的一個強大特性,可以支持多個并發進程之間的同步。

我們可以在一個進程trigger這個event,同時在另外一個進程等待這個event(邊沿敏感的@和電平敏感的wait)。
event的觸發語法非常簡單,那就是“->”運算符。

下面是Systemverilog event的示例

module et;
event etrig;
initial begin
#10;
-> etrig; //trigger named event 'etrig'
#10;
-> etrig; //trigger named event 'etrig'
end
always @(etrig) //execute when event etrig is triggered
//edge sensitive
$display("@ etrig occurred at time %0t",$time);
initial begin
wait (etrig.triggered) ; //level sensitive 'wait' on the 
//event 'etrig'
$display("'wait' etrig occurred at time %0t",$time);
end
endmodule

仿真log:

@ etrig occurred at time 10
'wait' etrig occurred at time 10
@ etrig occurred at time 20
 V C S S i m u l a t i o n R e p o r t

在module“et”中,我們聲明了一個名為“etrig”的event。

在時間10觸發它,然后在時間20觸發它。

“always”語句塊等待“etrig”上的觸發器,這是邊沿敏感的。像仿真log顯示的那樣,打印了2次邊沿觸發。

該module還展示了如何使用電平敏感的被觸發方式(wait)

wait (eventName.triggered);

wait(eventName.triggered)相比@的一個特點是不關心wait和"->"之間的執行順序。

下面是另一個例子,展示多個event事件并行觸發控制:

module et;
 event e1, e2, e3;
 initial begin
 #10;
 fork
 -> e1;
 -> e2;
 -> e3;
 join
 end
 always @(e1) 
 $display("event e1 triggered at time %0t",$time);
 always @(e2) 
 $display("event e2 triggered at time %0t",$time);
 always @(e3) 
 $display("event e3 triggered at time %0t",$time);
 endmodule

仿真log:

event e1 triggered at time 10
event e2 triggered at time 10
event e3 triggered at time 10
 V C S S i m u l a t i o n R e p o r t

在上面的例子中,會并行地觸發3個event(e1、e2、e3),分別控制3個獨立的進程)。從仿真log可以看出,3個event被同時觸發。

event序列:wait_order ()

在SystemVerilog中我們還可以使用語法wait_order等待事件以特定的順序觸發。

例如,wait_order (eveA, eveB, eveC)等待事件按照順序eveA -> eveB ->eveC觸發。

module et;
 event etrig1, etrig2;
 initial begin
 #10;
 -> etrig1; //trigger named event 'etrig1'
 #10;
 -> etrig2; //trigger named event 'etrig2'
 #10;
 -> etrig1; //trigger named event 'etrig1' 
 #100;
 end
 initial begin
 wait_order (etrig1 , etrig2); //OK
 $display("'wait' etrig1, etrig2 occurred at time 
%0t",$time);
 wait_order (etrig2 , etrig1); //OK
 $display("'wait' etrig2, etrig1 occurred at time 
%0t",$time);
 end
 endmodule

Simulation log:

'wait' etrig1, etrig2 occurred at time 20
'wait' etrig2, etrig1 occurred at time 30
 V C S S i m u l a t i o n R e p o r t

在上面的例子中,在時間10時觸發etrig1,然后在時間20時觸發etrig2,然后在時間30再次etrig1。所以,事件的順序是

etrig1 - > etrig2- > etrig1。

審核編輯:湯梓紅

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

    關注

    28

    文章

    1352

    瀏覽量

    110443
  • System
    +關注

    關注

    0

    文章

    165

    瀏覽量

    37090
  • 數據類型
    +關注

    關注

    0

    文章

    236

    瀏覽量

    13669

原文標題:SystemVerilog中的event數據類型

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

收藏 人收藏

    評論

    相關推薦

    [啟芯公開課] SystemVerilog for Verification

    學快速發展,這些趨勢你了解嗎?SystemVerilog + VM是目前的主流,在未來也將被大量采用,這些語言和方法學,你熟練掌握了嗎?對SoC芯片設計驗證感興趣的朋友,可以關注啟芯工作室推出的SoC芯片
    發表于 06-10 09:25

    systemverilog學習教程

    systemverilog的一些基本語法以及和verilog語言之間的區別。
    發表于 04-01 14:24

    做FPGA工程師需要掌握SystemVerilog嗎?

    在某大型科技公司的招聘網站上看到招聘邏輯硬件工程師需要掌握SystemVerilog語言,感覺SystemVerilog語言是用于ASIC驗證的,那么做FPGA工程師有沒有必要掌握SystemVerilog語言呢?
    發表于 08-02 20:30

    SystemVerilog有哪些標準?

    SystemVerilog有哪些標準?
    發表于 06-21 08:09

    wifi配置管理器示例使用esp_event_handler_register注冊事件處理程序失敗是何原因?

    最新版本中的 WIfi 配置管理器示例使用esp_event_handler_register來注冊事件處理程序。但是事件循環 api 參考文檔提到這個函數現在已經過時了,應該用esp_event_handler_instanc
    發表于 03-01 06:52

    SystemVerilog Assertion Handbo

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

    SystemVerilog的斷言手冊

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

    基于事件結構的SystemVerilog指稱語義

    本文利用形式化的方法對SystemVerilog的指稱語義進行研究,采用EBES(extendedbundle event structure)作為抽象模型,以便更好的描述SystemVerilog真并發的特點。我們的主要工作是
    發表于 12-22 14:01 ?12次下載

    SystemVerilog的正式驗證和混合驗證

    手冊的這一部分探討了使用SystemVerilog進行驗證,然后查看了使用SystemVerilog的優點和缺點。
    發表于 03-29 10:32 ?24次下載

    ThreadX(八)------事件集Event

    事件集Event
    發表于 12-28 19:26 ?9次下載
    ThreadX(八)------事件集<b class='flag-5'>Event</b>

    華為游戲服務示例代碼教程案例

    : 存檔特性的示例代碼。 event: 事件特性的示例代碼。 gamesummary: 游戲基本信息的示例代碼。 playerstats: 玩家信息統計的
    發表于 04-11 11:09 ?4次下載

    SystemVerilog中枚舉類型的使用建議

    SystemVerilog中枚舉類型雖然屬于一種“強類型”,但是枚舉類型還是提供了一些“不正經”的用法可以實現一些很常見的功能,本文將示例一些在枚舉類型使用過程中的一些“不正經”用法,并給出一些使用建議。
    的頭像 發表于 09-01 14:20 ?1785次閱讀

    一些有趣的數組相關的SystemVerilog約束

    我們在工作中常常會針對數組施加各式的約束,下面列舉一下有趣的Systemverilog數組約束示例
    的頭像 發表于 03-08 13:12 ?1024次閱讀

    一些有趣的數組相關的SystemVerilog約束

    我們在工作中常常會針對數組施加各式的約束,下面列舉一下有趣的**Systemverilog數組約束**示例
    的頭像 發表于 05-30 11:13 ?836次閱讀

    SystemVerilog中的$timeformat是做什么的?

    SystemVerilog中,輸出信息顯示時間時,經常會在輸出信息格式中指定“%t”格式符,一般情況下“%t”輸出的格式都是固定的,但是這樣固定的輸出顯示的時間可能有時會讓用戶看起來感覺比較詫異,例如下面的示例
    的頭像 發表于 08-16 09:41 ?2308次閱讀
    <b class='flag-5'>SystemVerilog</b>中的$timeformat是做什么的?
    主站蜘蛛池模板: 色噜噜亚洲精品中文字幕 | 国产精品久久久福利 | 男女性接交无遮挡免费看视频 | 一级一级毛片免费播放 | 狠狠色噜噜狠狠狠97影音先锋 | 国内精品91久久久久 | 国产精品一区二区三区免费视频 | 国产免费一区二区三区香蕉精 | 成人久久伊人精品伊人 | 激情有码 | 狠狠干最新网址 | 亚瑟 国产精品 | 欧美人与zoxxxx另类9 | 性欧美xxxx视频在线观看 | 男女爱爱爽爽福利免费视频 | 美女被视频网站在线看九色 | 狠狠色综合网 | 久久国产乱子伦精品免费一 | 欧美黄色一级网站 | 国产一区国产二区国产三区 | 国产在线观看黄 | 非常黄的网站 | 丁香五月欧美成人 | 欧美一级高清片欧美国产欧美 | 国产精品三级 | 欧美成人天天综合在线视色 | 日本口工全彩无遮拦漫画大 | 亚洲欧美精品 | 欧美色图综合 | 夜色伊人 | 亚洲午夜顶级嘿嘿嘿影院 | 大尺度在线播放 | 三级黄色在线视频中文 | 久草婷婷 | 99xxxx开心 | 2021久久精品99精品久久 | 特级毛片免费视频播放 | 伊人久久大杳蕉综合大象 | 免费一级片视频 | 亚洲综合啪啪 | aaaa视频|