2013-10-14 42 views
0

我有幾個與UVM階段build()和run()有關的問題。它們也可能適用於其他驗證方法 a>爲什麼build()階段按自上而下的順序執行。這是否意味着我們需要在build()階段中新建所有組件,然後繼續執行在該類中實例化的其他子組件的build()的build()?在運行()階段是類似super.run()調用?什麼是run()階段的執行順序UVM階段查詢

回答

2

是的,UVM的build_phase()以自上而下的順序執行,因爲孩子直到它們在父組件的build_phase()內構建(而UVM建議使用工廠create()方法,而不是直接調用構造函數new())。該build_phase()也執行自上而下的,這樣家長可以提供覆蓋設置,當他們執行的是沒有定義的順序,你可以依賴於並行執行他們的build_phase()

的run_phase各組分()的孩子會用。

你只需要打電話給super。 方法()如果您正在擴展一個類,需要基本方法的功能。在uvm_component的run_phase()內沒有任何內容,因此從它延伸時不需要調用super.run_phase()。從基類中擴展您的類時,您可能需要調用它。