天天看點

【轉載】UVM部分宏

參考: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。