參考:http://blog.eetop.cn/blog-1561828-2331509.html
成本效益分析
`uvm_*_utils
應該使用。
這些配對的宏用來将類注冊到factory中,定義create()方法。由于類型的注冊必須準确,而這些宏代碼簡短、易于分析,也難以出錯,是以這些宏是很友善的方法,應該使用。
`uvm_info | warning | error | fatal
應該使用。
與uvm_report_*函數相比,這些宏最大的一個便利就是在選擇處理字元串之前,先判斷其verbosity是否可以過濾,如果可以過濾則不會調用umv_report_*函數,這就節省了一筆字元串處理的資源。是以推薦使用該宏。
`uvm_*_imp_decl
可以使用。
這些宏定義了一些特殊的imp類型端口,使得元件可以定義多個TLM接口和内置多個TLM處理方法。比起自己定義參數化的類和方法,還是使用該宏的方法簡易。
`uvm_do_*
可以避免。
`uvm_do_*由多個内置的宏進一步構成,這些宏的存在是為了通用語sequence或者sequence item。如果使用者自己選擇不使用`uvm_do_*的話,那麼就需要考慮針對于sequence或者sequence item而采取不同的方法,但是使用底層方法可以減少底層的開支。下面的兩種方法分别通過宏和底層函數來發送sequence和sequence item。