1 UVM中引入phase的原因
代碼的書寫順序會影響代碼的實現(xiàn)(代碼之間存在依賴關系,如代碼B依賴于代碼A),所以區(qū)分出build_phase、connect_phase等,讓被依賴的phase(代碼A)先執(zhí)行,依賴的phase(代碼B)后執(zhí)行,這樣可以解決因代碼順序雜亂可能會引發(fā)的問題。
2 UVM中phase的執(zhí)行順序
- 按上圖所示順序自上而下執(zhí)行不同phase,且同類phase執(zhí)行完后, 需要進行等待同步 ,然后才能執(zhí)行下一類phase。而同類phase中不同component在UVM樹種執(zhí)行順序如下:
- build_phase:在UVM樹中依據(jù)自上而下的順序啟動,順序運行
- 除了build_phase之外的function phase:在UVM樹中依據(jù)自下而上的順序啟動,順序運行
- task_phase:在UVM樹中依據(jù) 自下而上的順序啟動,同時運行 (通過fork...join_none多線程方式)
- 直系關系的component
- 兄弟關系的component:在UVM樹中依據(jù)字典序
- 叔侄關系的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也是同步的。
-
UVM
+關注
關注
0文章
182瀏覽量
19538 -
時鐘域
+關注
關注
0文章
53瀏覽量
9787 -
DUT
+關注
關注
0文章
191瀏覽量
12951
發(fā)布評論請先 登錄
IC驗證"UVM驗證平臺加入factory機制"(六)
IC驗證“UVM驗證平臺加入objection機制和virtual interface機制“(七)
數(shù)字IC驗證之“什么是UVM”“UVM的特點”“UVM提供哪些資源”(2)連載中...
什么是uvm?uvm的特點有哪些呢
談談UVM中的uvm_info打印
UVM中seq.start()和default_sequence執(zhí)行順序
UVM驗證平臺執(zhí)行硬件加速

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

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

評論