1. 前言
眾所周知,在傳統的測試平臺中,通常在完成復位、配置、數據傳輸和自動檢查等所有步驟后,通過調用verilog的系統函數$finish來結束仿真。
但相對于傳統的測試平臺,UVM在Testbench架構的幾乎每個方面都做了創新,當然結束仿真的控制也發生了很大變化。在UVM驗證環境中結束仿真最常用的就是drop_objection機制,當然所有phase都結束后,還是調用系統函數$finish來結束仿真。
下面,分享一下在UVM驗證環境中,結束仿真的幾種方式,這些結束方式,適用于不同的應用場景。我的表達能力不強,大家重點看代碼。
2. 本文的內容目錄
3. Raising & Droping Objection機制
3.1 drop_objection的函數原型
下圖是uvm1.1d源碼中關于drop_objection函數的定義,如下圖所示。
3.2 在seq中使用drop_objection
下圖是在sequence中調用drop_objection的示例,如下圖所示,同樣來自于uvm源碼。
3.3 在scoreboard中使用drop_objection
3.4 在test中使用drop_objection
3.5 使用drop_objection總結
結合上面的例子,強調兩點:
一是:drop_objection可以用在任何一個component中;當然也可以用在sequence中,但不可以用在其他uvm_object類里面,因為uvm_object里面沒有phase的概念,那sequence其實也沒有phase的概念,為什么可以?這也是一個小知識點,有的面試官問的仔細了,也可能問到,我就不展開了。
二是:在實際項目中的整個驗證環境中,最好只用一對raise_objection/drop_objection,不要在很多組件中都使用它,否則很容易造成死鎖,而且很難debug,盡管uvm的語法也允許這么做。
4. phase_ready_to_end(微信公眾號《芯片驗證日記》)
4.1 phase_ready_to_end的官方解釋
4.2 phase_ready_to_end的理解
phase_ready_to_end(uvm_phase phase)是組件類的回調方法(函數),當相應phase的所有objection均被放下并且該phase將要結束時,會調用該方法。組件類可以使用此回調方法來定義phase即將結束時需要執行的任何功能。例如,如果某個組件希望將phase結束延遲到某個條件,甚至在所有objections均被放下之后,也可以使用此回調方法來完成。再比如,如果一個激勵或應答sequence正在運行,在主sequence結束之前,則可以使用main_phase()中的phase_ready_to_end()回調方法來停止那些激勵或應答sequence。再比如一個component想要延遲某個run-time phase的生命周期,那么可以在所有的objection都被dropped之后使用這個回調方法。
對于sequences, tests和許多完整的測試平臺,在phase的正常壽命期間phase objections的提起和撤銷是足夠的。但是,有時某個組件不希望在phase的正常生命周期內主動提起和撤銷objections,但確實希望延遲從一個phase到下一類phase的過渡。這在事務中經常出現這種情況,出于性能原因,不能針對每筆事務提出objection,并且通常情況下是端到端的記分板。為了在所有其他組件同意該phase應該結束之后延遲phase結束,該組件應該在phase_ready_to_end方法中提出objections。然后它負責在組件的主體中或在phase_ready_end_method的任務fork / join none中撤銷這些objections。
4.3 在env中使用的一個示例
注意,phase_ready_to_end是一個function,但用fork/join_none將wait_for_ok_to_finish和drop_objection進行了處理,這允許function立即返回。
4.4 在scoreboard中使用的一個示例
4.5 在scoreboard中使用的另一個示例
5. set_drain_time
5.1 set_drain_time的解釋
下圖是官方對set_drain_time的解釋,以及函數原型的定義。
5.2 set_drain_time的使用示例
set_drain_time的使用方法,同樣來自最權威的source code.
5.3 set_drain_time的另一個示例
寫文章不易,如果覺得對您有幫助,麻煩一鍵三連,或者賞個雞腿也行!
審核編輯 黃昊宇
-
UVM
+關注
關注
0文章
181瀏覽量
19139
發布評論請先 登錄
相關推薦
評論