大多數(shù)情況下,定義功能覆蓋目標(biāo)是在測(cè)試計(jì)劃準(zhǔn)備過程中完成的。對(duì)于要驗(yàn)證的被測(cè)設(shè)備(DUT)的每個(gè)功能特性,所有可能的激勵(lì)生成都是通過測(cè)試用例并在記分板,模型,檢查器和斷言的幫助下開發(fā)的。我們通過檢查該刺激的響應(yīng)來確認(rèn) DUT 的正確性。為了確保我們已經(jīng)創(chuàng)建了足夠的輸入場(chǎng)景和 DUT 響應(yīng)組合,根據(jù)覆蓋組、覆蓋點(diǎn)和斷言覆蓋范圍為每個(gè)特征定義了覆蓋目標(biāo),這使我們對(duì)特定特征的驗(yàn)證程度充滿信心。
DUTs RTL塊成從覆蓋率類分?jǐn)?shù)定義的變量,并在具有不同值命中的交叉覆蓋組中使用這些變量將確認(rèn)輸入事務(wù)是否遵循指定的設(shè)計(jì)路徑輸出。由于幾個(gè)原因,這非常重要。首先,功能驗(yàn)證記分牌確實(shí)進(jìn)行了端到端的交易檢查,但它并不確認(rèn)DUT流量路徑刺激是否遵循。其次,單個(gè)覆蓋組或UVM RAL Regmodel功能覆蓋或斷言覆蓋將有助于單個(gè)刺激覆蓋,但組合使用將確保功能路徑的正確性。讓我們?cè)敿?xì)了解如何使用功能覆蓋來確認(rèn)從輸入端口到輸出端口的流量遍歷所需的數(shù)據(jù)和控制路徑。
執(zhí)行流量可追溯性
很多時(shí)候,僅僅涵蓋單個(gè)特征和交叉特征是不夠的。通過不同數(shù)據(jù)塊、各種控制邏輯和不同 DUT 配置的所有可能組合,檢查輸入接口的流量是否已到達(dá)其他端的輸出接口,這是一項(xiàng)基本要求。
在DUT輸入、輸出接口、控制塊接口上有單獨(dú)的覆蓋組,regmodel自動(dòng)生成的功能覆蓋可能不能保證基于寄存器配置。輸入事務(wù)、數(shù)據(jù)包或命令已遍歷所需的數(shù)據(jù)塊和控制路徑,或者繞過了典型的控制塊。
使用交叉覆蓋,在從覆蓋類中定義并用于存儲(chǔ)來自各種寫入方法的事務(wù)的變量上,可以確保這些變量被命中不同的值并跟蹤設(shè)計(jì)的DUT路徑。覆蓋組也將在覆蓋類之外定義。
場(chǎng)景
讓我們考慮一個(gè)場(chǎng)景,如圖 1 所示。在高度配置的 DUT 中,輸入。..數(shù)據(jù)包可以通過選擇的數(shù)據(jù)路徑和控制路徑塊以及根據(jù)寄存器配置通過選定的數(shù)據(jù)包路由器端口路由到輸出端口。使用字段 RT=2‘b01 的寄存器CTRNL_RUT使用 Cntrl_plan1、交換機(jī) 1(圖中未顯示)決定從輸入端口 1 到DataPath_blk1的數(shù)據(jù)包路徑,并決定到路由器端口 1,最后到輸出端口 1。但是,寄存器CTRNL_RUT。RT=2’b10 將使用 Cntrl_plan2 和路由器端口 2 更改通過DataPath_blk2的新傳入數(shù)據(jù)包的路由。
在這種情況下,為datapath_block1、控制路徑(即Cntrl_plane1和寄存器字段RT)定義的覆蓋組將單獨(dú)覆蓋激勵(lì)值。但是,如果變量被定義在覆蓋類的范圍之外,保存來自這些接口的信號(hào)值,并且如果在具有有趣值的交叉覆蓋中使用,則可以確認(rèn)數(shù)據(jù)包已遍歷正確的路徑并實(shí)現(xiàn)數(shù)據(jù)包可追溯性。
圖1:在每個(gè)點(diǎn)獲取信息的流量跟蹤
覆蓋實(shí)施
在測(cè)試平臺(tái)中,環(huán)境類通常具有實(shí)例化的所有接口代理、功能覆蓋范圍和記分板。IO和控制接口監(jiān)視器的分析端口連接到功能覆蓋類的導(dǎo)出,以獲取接口數(shù)據(jù)包和事務(wù)。所需的資源,如 regmodel,不同的配置對(duì)象將使用uvm_condig_db構(gòu)造設(shè)置為覆蓋類。覆蓋實(shí)現(xiàn)明智,定義覆蓋類之外的變量,數(shù)據(jù)包存儲(chǔ)元素,并使用這些元素來復(fù)制重要接口信號(hào),控制信號(hào)和數(shù)據(jù)包字段的值。在覆蓋類別之外定義的這些變量將在交叉覆蓋中使用。
如上面的圖 1 所示,在覆蓋類之外定義的變量將用于保存數(shù)據(jù)包 ID 等信息,這些信息對(duì)DataPath_blk1有效。對(duì)于控制平面,保存就緒、狀態(tài)、目標(biāo) ID、路由通道號(hào)等信息。注冊(cè)字段(如CTRNL_RUT)的值。RT值可以與這些變量交叉,以確保如果RT的場(chǎng)值為01,則Datapath_blk1場(chǎng)和控制計(jì)劃信號(hào)具有感興趣的值。使用上述方法實(shí)現(xiàn)功能覆蓋將很有幫助,尤其是在塊和集群級(jí)別驗(yàn)證的情況下。覆蓋類的獨(dú)立實(shí)現(xiàn)探索了具有相似 DUT 接口的項(xiàng)目之間的可重用性選項(xiàng)。
寄存器配置信息也可以通過接口接收,但同樣需要解碼地址和字段,因此使用 regmodel 是有意義的。Regmodel帶有豐富的API和默認(rèn)序列集,以執(zhí)行所有寄存器和字段及其屬性?;?Regmodel 的自動(dòng)生成的功能覆蓋范圍可以單獨(dú)處理。
嵌入式覆蓋組存在一個(gè)已知的限制。我們不能使用同一覆蓋組的多個(gè)實(shí)例作為數(shù)據(jù)類型,因此在函數(shù)覆蓋類之外定義覆蓋組將有助于定義覆蓋組數(shù)組,特別是如果大多數(shù)接口屬于同一類型,則會(huì)有所幫助,這是網(wǎng)絡(luò)域 DUT 的常見情況。可以使用覆蓋類的每個(gè)write_《》方法中的不同索引對(duì)具有多個(gè)實(shí)例的單個(gè)覆蓋組進(jìn)行采樣。
在上面的示例中,覆蓋組和變量存儲(chǔ)來自寫入方法的事務(wù)和接口信號(hào),并在類之外聲明。這將允許跨覆蓋組使用這些變量。
結(jié)論
基于將驗(yàn)證事務(wù)或數(shù)據(jù)包的重要接口信號(hào),可以定義覆蓋類范圍之外的全局變量并用于復(fù)制這些信號(hào)。每個(gè)接口信號(hào),控制信號(hào)都可以做同樣的事情,并且這些全局變量可以在一個(gè)覆蓋組中使用,該覆蓋組將定義這些變量的交叉覆蓋。這就是確認(rèn)從輸入端口到輸出端口的流量遍歷所需數(shù)據(jù)和控制路徑的方式。
審核編輯:郭婷
-
寄存器
+關(guān)注
關(guān)注
31文章
5295瀏覽量
119823 -
路由器
+關(guān)注
關(guān)注
22文章
3693瀏覽量
113427
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論