1 UVM中引入phase的原因
代碼的書寫順序會(huì)影響代碼的實(shí)現(xiàn)(代碼之間存在依賴關(guān)系,如代碼B依賴于代碼A),所以區(qū)分出build_phase、connect_phase等,讓被依賴的phase(代碼A)先執(zhí)行,依賴的phase(代碼B)后執(zhí)行,這樣可以解決因代碼順序雜亂可能會(huì)引發(fā)的問題。
2 UVM中phase的執(zhí)行順序
- 按上圖所示順序自上而下執(zhí)行不同phase,且同類phase執(zhí)行完后, 需要進(jìn)行等待同步 ,然后才能執(zhí)行下一類phase。而同類phase中不同component在UVM樹種執(zhí)行順序如下:
- build_phase:在UVM樹中依據(jù)自上而下的順序啟動(dòng),順序運(yùn)行
- 除了build_phase之外的function phase:在UVM樹中依據(jù)自下而上的順序啟動(dòng),順序運(yùn)行
- task_phase:在UVM樹中依據(jù) 自下而上的順序啟動(dòng),同時(shí)運(yùn)行 (通過fork...join_none多線程方式)
- 直系關(guān)系的component
- 兄弟關(guān)系的component:在UVM樹中依據(jù)字典序
- 叔侄關(guān)系的component:在UVM樹中依據(jù)深度優(yōu)先(即優(yōu)先侄component執(zhí)行)
3 UVM中引入objection的原因
上文提到代碼會(huì)依據(jù)不同phase的順序自上而下執(zhí)行,且同類phase執(zhí)行完后, 需要進(jìn)行等待同步 。而引入objection就是為了更好的控制同類phase中執(zhí)行代碼的同步用的。
4 UVM中引入domain的原因
體現(xiàn)不同component的獨(dú)立性。例如,把兩個(gè)時(shí)鐘域隔開, 這樣兩個(gè)時(shí)鐘域內(nèi)的各個(gè)動(dòng)態(tài)運(yùn)行( run_time) 的phase就可以不必同步了。使用該機(jī)制可以搭建多時(shí)鐘域DUT的UVM仿真平臺(tái)。
注意:domain 只能隔離run-time的phase , 對(duì)于其他phase, 其實(shí)還是同步的, 即兩個(gè)domain的run_phase依然是同步的, 其他的function phase也是同步的。
-
UVM
+關(guān)注
關(guān)注
0文章
182瀏覽量
19554 -
時(shí)鐘域
+關(guān)注
關(guān)注
0文章
53瀏覽量
9792 -
DUT
+關(guān)注
關(guān)注
0文章
191瀏覽量
12956
發(fā)布評(píng)論請(qǐng)先 登錄
IC驗(yàn)證"UVM驗(yàn)證平臺(tái)加入factory機(jī)制"(六)
IC驗(yàn)證“UVM驗(yàn)證平臺(tái)加入objection機(jī)制和virtual interface機(jī)制“(七)
數(shù)字IC驗(yàn)證之“什么是UVM”“UVM的特點(diǎn)”“UVM提供哪些資源”(2)連載中...
什么是uvm?uvm的特點(diǎn)有哪些呢
談?wù)?b class='flag-5'>UVM中的uvm_info打印
UVM中seq.start()和default_sequence執(zhí)行順序
UVM驗(yàn)證平臺(tái)執(zhí)行硬件加速

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

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

UVM里的phase機(jī)制
UVM中sequence的那些事兒

評(píng)論