精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

3天內不再提示

UVM中phase的執行順序

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

1 UVM中引入phase的原因

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

2 UVM中phase的執行順序

圖片

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

3 UVM中引入objection的原因

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

4 UVM中引入domain的原因

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

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

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

    關注

    0

    文章

    181

    瀏覽量

    19142
  • 時鐘域
    +關注

    關注

    0

    文章

    52

    瀏覽量

    9529
  • DUT
    DUT
    +關注

    關注

    0

    文章

    189

    瀏覽量

    12344
收藏 人收藏

    評論

    相關推薦

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

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

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

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

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

    輸出。而main_phase是一個完整的任務,沒有理由 只執行第一句,而后面的代碼不執行。看上去似乎main_phase執行的過程中被外力
    發表于 12-09 18:28

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

    工程師只需要將代碼寫入適當的phase當中,平臺運行時,會按照phase執行流程來自動執行驗證工程師的代碼。uvm提供了一系列的基類,驗證
    發表于 01-21 16:00

    什么是uvmuvm的特點有哪些呢

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

    談談UVMuvm_info打印

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

    UVMseq.start()和default_sequence執行順序

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

    UVM驗證平臺執行硬件加速

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

    Modelsim uvm庫編譯及執行

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

    如何通過explain來驗證sql的執行順序

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

    UVM里的phase機制

    run phase可以和其他12個小phase 的關系是可以在run phase執行12個小phase的功能,也可以在12個小
    的頭像 發表于 09-05 15:34 ?3520次閱讀

    UVMsequence的那些事兒

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

    UVMuvm_config_db機制背后的大功臣

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

    UVMuvm_config_db機制背后的大功臣

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

    sql where條件的執行順序

    。 在深入討論WHERE條件的執行順序之前,先回顧一下一般SQL語句的執行順序。一條SQL語句的執行通常可以分為以下幾個步驟:解析器分析語法
    的頭像 發表于 11-23 11:31 ?2146次閱讀