1
有沒有人有辦法向工廠註冊虛擬課程?使用object_utils宏將定義type_id :: create(...)方法,該方法爲非法的虛擬類調用new(...)。向UVM工廠註冊虛擬課程
當然,對於在工廠註冊的任何虛擬類都必須使用類型覆蓋。如果有人有這個優雅的解決方案,這將是很酷的。
有沒有人有辦法向工廠註冊虛擬課程?使用object_utils宏將定義type_id :: create(...)方法,該方法爲非法的虛擬類調用new(...)。向UVM工廠註冊虛擬課程
當然,對於在工廠註冊的任何虛擬類都必須使用類型覆蓋。如果有人有這個優雅的解決方案,這將是很酷的。
不幸的是,在沒有重新創建自己的工廠的情況下,沒有辦法在UVM中通過虛擬課程來實現這一點。但是,您可以使用此類的build_phase()來檢查該類是否已被覆蓋。無論哪種方式,你將無法檢查,直到運行時間。所以你失去了編譯器檢查一個虛擬類提供,所以爲什麼要使用它。
我已經在這方面多做了一些工作,並且通過使用uvm_object_utils調用的內部宏來實現它。這肯定是不好的做法,但是這裏是更冒險的人的代碼:http://www.edaplayground.com/x/3iJ –
既然你參與了UVM的開發,也許你可以把它當作一個功能? @dave –
我在新的[SystemVerilog OOP for UVM驗證](https://verificationacademy.com/courses/systemverilog-oop-for-uvm-verification)課程中詳細解釋了工廠背後的代碼。 –