www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁(yè) > 公眾號(hào)精選 > 芯片驗(yàn)證工程師
[導(dǎo)讀]?UVM中的消息有三種屬性,分別是:嚴(yán)重度(severity)、冗余度(verbosity)、以及消息的關(guān)聯(lián)行為,此外還有消息的標(biāo)簽ID。UVM的消息機(jī)制基于該三種屬性和標(biāo)簽ID,實(shí)現(xiàn)對(duì)消息的處理。a.嚴(yán)重度(severity):在調(diào)試和仿真的過(guò)程中,我們需要輸出消息,那么如何區(qū)...

?UVM 中的消息有三種屬性,分別是:嚴(yán)重度(severity)、冗余度(verbosity)、以及消息的關(guān)聯(lián)行為,此外還有消息的標(biāo)簽 ID。UVM 的消息機(jī)制基于該三種屬性和標(biāo)簽 ID, 實(shí)現(xiàn)對(duì)消息的處理。


a. 嚴(yán)重度(severity):
在調(diào)試和仿真的過(guò)程中,我們需要輸出消息,那么如何區(qū)分消息的嚴(yán)重度?UVM 中用對(duì)應(yīng)的枚舉值來(lái)標(biāo)識(shí),更具體來(lái)說(shuō)是用消息宏來(lái)標(biāo)識(shí)。不同嚴(yán)重度的枚舉值及其缺省的關(guān)聯(lián)操作:

枚舉值 屬性 缺省操作
UVM_INFO 有用的消息 UVM_DISPLAY
UVM_WARNING 顯示一個(gè)潛在的問(wèn)題 UVM_DISPLAY
UVM_ERROR 顯示一個(gè)問(wèn)題,仿真將繼續(xù),并且計(jì)數(shù)ERROR CNTUVM_DISPLAY|
UVM_COUNT
UVM_FATAL 顯示一個(gè)導(dǎo)致仿真無(wú)法恢復(fù)的問(wèn)題,仿真將退出 UVM_DISPLAY|
UVM_EXIT

b. 冗余度(verbosity)
UVM 定義了一些枚舉值表示預(yù)定義的消息冗余(消息的冗余就是該條消息是否被打印出來(lái)的敏感閾值,敏感閾值越小,則越容易被打印出來(lái))。這些值被用在兩個(gè)地方。一個(gè)是消息自身有一個(gè)冗余度,另一個(gè)是發(fā)出消息的uvm_compoment 也有一個(gè)冗余度。這些枚舉值為:

枚舉值 屬性
UVM_NONE 值為 0,不可屏蔽的關(guān)鍵消息
UVM_LOW 值為 100,可屏蔽消息,在仿真過(guò)程中極少輸出
UVM_MEDIUM 值為 200,對(duì)每個(gè)數(shù)據(jù)項(xiàng)或者序列(sequence)僅僅發(fā)生一次的消息
UVM_HIGH 值為 300,更詳細(xì)的數(shù)據(jù)項(xiàng)信息,包括打印封包的值
UVM_FULL 值為 400,剩余的部分,包括特定方法的消息打印
UVM_DEBUG* 值為 500,調(diào)試模式下的調(diào)試信息

UVM_NONE 閾值最低,為 0;UVM_DEBUG的閾值最高,為 500。對(duì)于UVM 來(lái)說(shuō),閾值越高,則越不容易被打印出來(lái),這里是和我們平常的思維是相反的。


在 UVM 中,一個(gè)有著低冗余等級(jí)的消息會(huì)更容易打印出來(lái)。一個(gè)有著UVM_NONE 冗余等級(jí)的消息總會(huì)打印出來(lái)。

對(duì)于一條消息來(lái)說(shuō),這條消息本身有一個(gè)冗余等級(jí),此外,發(fā)出該消息的組件也會(huì)有一個(gè)冗余等級(jí),當(dāng)這兩個(gè)冗余等級(jí)發(fā)生沖突時(shí),將如何處理?對(duì)于 UVM來(lái)說(shuō),發(fā)出該消息組件的冗余等級(jí)的優(yōu)先級(jí)高于消息本身的冗余等級(jí)的。即當(dāng)一個(gè)冗余等級(jí)為 UVM_DEBUG 的 compoment 發(fā)出所有等級(jí)的消息時(shí),該消息總是會(huì)被打印出來(lái)的;而一個(gè)冗余等級(jí)為 UVM_NONE 的 compoment 發(fā)出一條所有等級(jí)的消息時(shí),只有等級(jí)為 UVM_NONE 的消息才會(huì)被打印出來(lái)。


這里說(shuō)明:給一個(gè)組件設(shè)置更高的冗余等級(jí)將會(huì)暴露該組件更多的細(xì)節(jié)。組件和消息缺省的冗余等級(jí)是 UVM_MEDIUM。

task run_phase(uvm_phase phase);`uvm_info({get_type_name(),”::run_phase”},”starting run_phase”,UVM_HIGH)...`uvm_info({get_type_name(),”::run_phase”},”checkpoint?1?of run_phase”,UVM_MEDIUM)...`uvm_info({get_type_name(),”::run_phase”},”checkpoint 2 of run_phase”,UVM_LOW)...`uvm_info({get_type_name(),”::run_phase”},”Ending run_phase”,UVM_HIGH)endtask :run_phase

在缺省情況下運(yùn)行這段代碼只有 Checkpoint 1 Checkpoint 2 消息打印出來(lái)。


c. 關(guān)聯(lián)行為(action)
關(guān)聯(lián)行為是指仿真平臺(tái)執(zhí)行到該消息時(shí)執(zhí)行的動(dòng)作。關(guān)聯(lián)行為對(duì)應(yīng)的枚舉值
如下:

枚舉值 屬性
UVM_NO_ACTION 不采取任何行動(dòng)
UVM_DISPLAY 發(fā)送該報(bào)告到標(biāo)準(zhǔn)輸出

UVM_LOG 發(fā)送該報(bào)告到該冗余等級(jí)和 id(severity, id)對(duì)應(yīng)的文件
UVM_COUNT 對(duì)該屬性的報(bào)告進(jìn)行計(jì)數(shù),當(dāng)計(jì)數(shù)值到達(dá)最大 quit 數(shù)量時(shí),仿真終止
UVM_STOP 執(zhí)行$stop 指令,使仿真進(jìn)入交互模式
UVM_EXIT 立即終止仿真
UVM_CALL_BACK 回調(diào)報(bào)告 hook 方法
在仿真過(guò)程中 UVM 對(duì)消息嚴(yán)重度為 warning、 error、 fatal 的條目自動(dòng)進(jìn)行計(jì)數(shù),不需要另外配置。(這個(gè)特性可以用于用例的仿真pass/error控制)


d. 關(guān)聯(lián) ID
每一個(gè)打印出來(lái)的消息都包括一個(gè)和該消息相關(guān)的 ID。該 ID 字段可以用來(lái)完成用戶指定的、甚至在仿真之外的任何鑒別或者過(guò)濾工作。在仿真中,該 ID能夠指示嚴(yán)重度、等級(jí)等消息的屬性或者做其他修改或者廢止該報(bào)告的決定。因?yàn)槿哂嗟燃?jí)能夠處理一個(gè) ID 的粒度級(jí)別,一般建議將 get_type_name()和第 二 個(gè) 字 符 串 連 接 在 一 起 的 模 式 。 這 個(gè) get_type_name() 函 數(shù) ( 由`uvm_component/object_utils() 宏生成)能夠通知用戶該字符串來(lái)自哪個(gè)類。第二個(gè)字符串被用于表示消息來(lái)自那個(gè)函數(shù)/任務(wù)或用于進(jìn)一步需要的粒度。

我的理解:關(guān)聯(lián) ID 類似于一個(gè)標(biāo)簽,消息之所以有關(guān)聯(lián) ID 是為了標(biāo)識(shí)同一類型的消息,這樣通過(guò) ID 和其他屬性就可以對(duì)該類型的消息進(jìn)行處理。比如可以設(shè)置具有該 ID 的消息不輸出、冗余度為 UVM_HIGH、對(duì)其進(jìn)行計(jì)數(shù)等等。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
關(guān)閉
關(guān)閉