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

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

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

UVM中phase的執(zhí)行順序

冬至子 ? 來源:多讀點書 ? 作者:夕文x ? 2023-05-26 15:00 ? 次閱讀

1 UVM中引入phase的原因

代碼的書寫順序會影響代碼的實現(xiàn)(代碼之間存在依賴關(guān)系,如代碼B依賴于代碼A),所以區(qū)分出build_phase、connect_phase等,讓被依賴的phase(代碼A)先執(zhí)行,依賴的phase(代碼B)后執(zhí)行,這樣可以解決因代碼順序雜亂可能會引發(fā)的問題。

2 UVM中phase的執(zhí)行順序

圖片

  1. 按上圖所示順序自上而下執(zhí)行不同phase,且同類phase執(zhí)行完后, 需要進行等待同步 ,然后才能執(zhí)行下一類phase。而同類phase中不同component在UVM樹種執(zhí)行順序如下:
    1. build_phase:在UVM樹中依據(jù)自上而下的順序啟動,順序運行
    2. 除了build_phase之外的function phase:在UVM樹中依據(jù)自下而上的順序啟動,順序運行
    3. task_phase:在UVM樹中依據(jù) 自下而上的順序啟動,同時運行 (通過fork...join_none多線程方式)
    4. 直系關(guān)系的component
    5. 兄弟關(guān)系的component:在UVM樹中依據(jù)字典序
    6. 叔侄關(guān)系的component:在UVM樹中依據(jù)深度優(yōu)先(即優(yōu)先侄component執(zhí)行)

3 UVM中引入objection的原因

上文提到代碼會依據(jù)不同phase的順序自上而下執(zhí)行,且同類phase執(zhí)行完后, 需要進行等待同步 。而引入objection就是為了更好的控制同類phase中執(zhí)行代碼的同步用的。

4 UVM中引入domain的原因

體現(xiàn)不同component的獨立性。例如,把兩個時鐘域隔開, 這樣兩個時鐘域內(nèi)的各個動態(tài)運行( run_time) 的phase就可以不必同步了。使用該機制可以搭建多時鐘域DUT的UVM仿真平臺。

注意:domain 只能隔離run-time的phase , 對于其他phase, 其實還是同步的, 即兩個domain的run_phase依然是同步的, 其他的function phase也是同步的。

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

    關(guān)注

    0

    文章

    181

    瀏覽量

    19087
  • 時鐘域
    +關(guān)注

    關(guān)注

    0

    文章

    50

    瀏覽量

    9510
  • DUT
    DUT
    +關(guān)注

    關(guān)注

    0

    文章

    188

    瀏覽量

    12191
收藏 人收藏

    評論

    相關(guān)推薦

    UVM手把手教程系列(二)Phase機制簡單介紹

    UVMphase,按照其是否消耗仿真時間($time打印出的時間)的特性,可以分成兩大類
    的頭像 發(fā)表于 02-29 09:26 ?1082次閱讀
    <b class='flag-5'>UVM</b>手把手教程系列(二)<b class='flag-5'>Phase</b>機制簡單介紹

    IC驗證"UVM驗證平臺加入factory機制"(六)

    平臺,因為UVM的特性幾乎一 點都沒有用到。像上節(jié)my_driver的實例化及drv.main_phase的顯式調(diào)用,即使不使用UVM,只使用簡單的SystemVerilog也可以完
    發(fā)表于 12-08 12:07

    IC驗證“UVM驗證平臺加入objection機制和virtual interface機制“(七)

    輸出。而main_phase是一個完整的任務(wù),沒有理由 只執(zhí)行第一句,而后面的代碼不執(zhí)行??瓷先ニ坪鮩ain_phase執(zhí)行的過程中被外力
    發(fā)表于 12-09 18:28

    數(shù)字IC驗證之“什么是UVM”“UVM的特點”“UVM提供哪些資源”(2)連載...

    工程師只需要將代碼寫入適當?shù)?b class='flag-5'>phase當中,平臺運行時,會按照phase執(zhí)行流程來自動執(zhí)行驗證工程師的代碼。uvm提供了一系列的基類,驗證
    發(fā)表于 01-21 16:00

    什么是uvm?uvm的特點有哪些呢

    直觀的印象,就是uvm驗證平臺,它是分層的結(jié)構(gòu)。圖中的每一個巨型框都代表著平臺的一個構(gòu)成元素。這些元素呢,我們稱為平臺組建,下面來簡單的分析一下。從最底層上來看,agent 包含了driver,monitor和sequencer,其中driver ,monitor
    發(fā)表于 02-14 06:46

    談?wù)?b class='flag-5'>UVMuvm_info打印

    \_file, \`uvm\_line)。當uvm\_report\_enabled(xxx)函數(shù)返回為1時,才會執(zhí)行uvm\_report\_info(xxx)。  參數(shù)和變量分析:
    發(fā)表于 03-17 16:41

    UVMseq.start()和default_sequence執(zhí)行順序

    :seq2會先啟動。也就是說進入run_phase之后,會先執(zhí)行seq2的body()內(nèi)容,等退出seq2之后,再執(zhí)行seq1的body()內(nèi)容,串行執(zhí)行的。  2. 原理  可以打開
    發(fā)表于 04-04 17:15

    UVM驗證平臺執(zhí)行硬件加速

    。 本文所聚焦的技術(shù)手段是讓一個已有的UVM驗證平臺通過改變需求去執(zhí)行硬件加速。如果這些點在UVM環(huán)境開發(fā)過程中被考慮到,那么之后將環(huán)境遷移到硬件加速器作為一個性能選項將是一件較容易的事情。本文所提議的建議將會使你的
    發(fā)表于 09-15 17:08 ?14次下載
    <b class='flag-5'>UVM</b>驗證平臺<b class='flag-5'>執(zhí)行</b>硬件加速

    Modelsim uvm庫編譯及執(zhí)行

    第一句話是設(shè)置uvm環(huán)境變量,指定uvm的dpi位置。 第二句話是創(chuàng)建work工作目錄。 第三句話是編譯源文件,并且通過-L指定幾個編譯庫。 第三句是執(zhí)行仿真,調(diào)用uvm
    的頭像 發(fā)表于 12-01 11:25 ?3685次閱讀
    Modelsim <b class='flag-5'>uvm</b>庫編譯及<b class='flag-5'>執(zhí)行</b>

    如何通過explain來驗證sql的執(zhí)行順序

    by 先執(zhí)行,到底它倆誰先執(zhí)行呢? 今天我們通過 explain 來驗證下 sql 的執(zhí)行順序。 在驗證之前,先說結(jié)論,Hive sq
    的頭像 發(fā)表于 09-07 16:24 ?2520次閱讀
    如何通過explain來驗證sql的<b class='flag-5'>執(zhí)行</b><b class='flag-5'>順序</b>

    UVM里的phase機制

    run phase可以和其他12個小phase 的關(guān)系是可以在run phase執(zhí)行12個小phase的功能,也可以在12個小
    的頭像 發(fā)表于 09-05 15:34 ?3327次閱讀

    UVMsequence的那些事兒

    將 生成測試case的語句 從 main_phase 獨立出來,使得使用不同測試用例時,只需要修改sequence部分即可,而不用關(guān)注 UVM剩余部分。
    的頭像 發(fā)表于 05-26 15:17 ?918次閱讀
    <b class='flag-5'>UVM</b><b class='flag-5'>中</b>sequence的那些事兒

    UVMuvm_config_db機制背后的大功臣

    本次講一下UVMuvm_config_db,在UVM中提供了一個內(nèi)部數(shù)據(jù)庫,可以在其中存儲給定名稱下的值,之后可以由其它TB組件去檢索。
    的頭像 發(fā)表于 06-20 17:28 ?1154次閱讀

    UVMuvm_config_db機制背后的大功臣

    本次講一下UVMuvm_config_db,在UVM中提供了一個內(nèi)部數(shù)據(jù)庫,可以在其中存儲給定名稱下的值,之后可以由其它TB組件去檢索。
    的頭像 發(fā)表于 06-29 16:57 ?1012次閱讀

    sql where條件的執(zhí)行順序

    。 在深入討論WHERE條件的執(zhí)行順序之前,先回顧一下一般SQL語句的執(zhí)行順序。一條SQL語句的執(zhí)行通??梢苑譃橐韵聨讉€步驟:解析器分析語法
    的頭像 發(fā)表于 11-23 11:31 ?1862次閱讀