UVM Report機制概述
時間:2021-11-12 14:15:40
手機看文章
掃描二維碼
隨時隨地手機看文章
[導讀]在testbench的搭建以及仿真的過程中,我們或多或少需要輸出一些調(diào)試信息,我們需要能夠方便快捷地關閉或者開啟這些調(diào)試信息,如何做到這一點?一種比較簡單的方法,就是給$display()加上宏,在仿真的開始定義該宏的值,在每一個打印信息前面都加個宏判斷,從而確定調(diào)試信息是否打印...
在 testbench 的搭建以及仿真的過程中,我們或多或少需要輸出一些調(diào)試信息,我們需要能夠方便快捷地關閉或者開啟這些調(diào)試信息,如何做到這一點?
一種比較簡單的方法,就是給$display()加上宏,在仿真的開始定義該宏的值,在每一個打印信息前面都加個宏判斷,從而確定調(diào)試信息是否打印出來。但是這樣子帶來一個問題,就是如果我們要將調(diào)試信息分類就需要定義好幾個宏。比如調(diào)試 testbench 中某一個 component 時候,僅僅需要輸出該模塊的打印信息,這樣子就比較麻煩。
在基于 UVM 的測試平臺中, UVM 中提供了一種內(nèi)置機制來控制哪些信息被打印出來以及能夠定義消息之后 testbench 的動作。
UVM 中一共可以通過如下方式來實現(xiàn)輸出信息的控制:
1. 通過控制 ID 來實現(xiàn)不同的輸出控制。
2. 通過設置不同 ID 的信息報告冗余級別。
3. 通過設置不同 ID 的 action。
UVM 能夠?qū)崿F(xiàn)下面的動作:
1. 設置一個全局的屬性來決定該 testbench 所屬的消息是否輸出,例如設置一個組件(compoment)的屬性來決定該組件所的消息是否輸出(set_report_verbosity_level_hier ())或者設置一個消息的屬性來決定該消息是否輸出。
2. 設置一個組件中不同屬性和不同 ID 的消息出現(xiàn)之后 testbench 的行為。
一種比較簡單的方法,就是給$display()加上宏,在仿真的開始定義該宏的值,在每一個打印信息前面都加個宏判斷,從而確定調(diào)試信息是否打印出來。但是這樣子帶來一個問題,就是如果我們要將調(diào)試信息分類就需要定義好幾個宏。比如調(diào)試 testbench 中某一個 component 時候,僅僅需要輸出該模塊的打印信息,這樣子就比較麻煩。
在基于 UVM 的測試平臺中, UVM 中提供了一種內(nèi)置機制來控制哪些信息被打印出來以及能夠定義消息之后 testbench 的動作。
UVM 中一共可以通過如下方式來實現(xiàn)輸出信息的控制:
1. 通過控制 ID 來實現(xiàn)不同的輸出控制。
2. 通過設置不同 ID 的信息報告冗余級別。
3. 通過設置不同 ID 的 action。
UVM 能夠?qū)崿F(xiàn)下面的動作:
1. 設置一個全局的屬性來決定該 testbench 所屬的消息是否輸出,例如設置一個組件(compoment)的屬性來決定該組件所的消息是否輸出(set_report_verbosity_level_hier ())或者設置一個消息的屬性來決定該消息是否輸出。
2. 設置一個組件中不同屬性和不同 ID 的消息出現(xiàn)之后 testbench 的行為。