uvm中通過objection機制來控制驗證平台的關閉。在每個phase中,uvm會檢查是否有objection被提起(raise_objection),如果有,那麼等待這個objection被撤銷(drop_objection)後停止**;如果沒有,則馬上結束當前phase。raise_objection語句必須在第乙個消耗**時間的語句之前,如$display語句是不消耗**時間的,這些語句可以放在raise_objection之前,但是類似@(posedge top.clk)等語句是要消耗**時間的。當所有的phase都執行完畢後,就會呼叫$finish來將整個驗證平台關掉。
採用run_test來啟動uvm驗證平台:
run_test語句會建立乙個my_case0的例項,並會自動呼叫my_ case0的main_phase。仔細觀察run_test語句,會發現傳遞給它的是乙個字串。uvm會根據這個字串建立了其所代表類的乙個例項(前提是這個類進行巨集註冊過了)。在uvm驗證平台中,只要乙個類使用uvm_component_utils註冊且此類被例項化了,那麼這個類的main_phase就會被自動呼叫,所以在driver中,最重要的就是實現main_phase。
uvm也提供對不加引數的run_test的支援:
在這種情況下,uvm會利用uvm_testname從命令列中尋找測試用例的名字,建立它的例項並執行,如下所示的**也可以啟動my_case0:
整個uvm驗證平台啟動及執行的流程如圖所示:
啟動後,整棵uvm樹的結構如圖所示。
uvm_top是乙個全域性變數,它是uvm_root的乙個例項(而且也是唯一的乙個例項),而uvm_root派生自uvm_component,所以uvm_top本質上是乙個uvm_component,它是樹的根。uvm_test_top的parent是uvm_top,而uvm_top的parent則是null。uvm_root的存在可以保證整個驗證平台中只有一棵樹,所有結點都是uvm_top的子節點。
監控平台啟動步驟
1 在所有的資料夾中,包括logger 日誌 portal backend 服務端 portal frontend 前端 sdk web資料夾中執行 npm i,然後在跟目錄下執行 npm i 2 在根目錄中執行 npm run start 3 在api proxy 頁面開啟 api 到4000 4...
高通平台啟動流程
高通平台的啟動流程如下 現對各個階段說明如下 pm檢測到系統上電,將會給msm發出上電復位訊號,要求msm復位。這樣ap kryo應用處理器 將會退出reset狀態。注 kryo是qualcomm technologies推出的首款定製設計的64位cpu。在ap處理器側,應用主引導引導程式 應用pb...
Ruby中文社群開源專案平台啟動!
ruby中文社群致力於為ruby在中文社群的繁榮和普及貢獻自己的乙份力量,故架設了svn伺服器 和專案管理平台 來為開源專案提供支援。開源專案平台使用svn作為源 管理工具,使用redmine作為專案管理平台,非常感謝bob.yang把redmine這麼乙個如此強大的,基於 ruby實現的專案管理平...