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