在許多驗(yàn)證環(huán)境中,我們在不同的測試用例中重復(fù)使用相同的配置周期。這些周期可能涉及從不同的配置和狀態(tài)寄存器寫入和讀取、加載程序存儲器和其他類似任務(wù),以為其目標(biāo)激勵設(shè)置DUT。在許多此類環(huán)境中,這些配置周期所花費(fèi)的時間非常長。此外,由于驗(yàn)證工程師必須為不同的測試用例運(yùn)行同一組經(jīng)過驗(yàn)證的配置周期,因此存在大量冗余,從而導(dǎo)致生產(chǎn)力下降。對于具有多個接口的復(fù)雜驗(yàn)證環(huán)境尤其如此,這些接口需要配置不同的組件。
Verilog 提供了在特定時間點(diǎn)保存設(shè)計及其測試平臺狀態(tài)的選項(xiàng)。我們可以將模擬恢復(fù)到相同的狀態(tài),然后從那里繼續(xù)。這可以通過從Verilog代碼添加適當(dāng)?shù)膬?nèi)置系統(tǒng)調(diào)用來完成。VCS 提供與統(tǒng)一命令行解釋器 (UCLI) 相同的選項(xiàng)。
但是,我們僅從保存的狀態(tài)恢復(fù)仿真是不夠的。對于不同的模擬,我們可能希望對DUT應(yīng)用不同的隨機(jī)激勵。在 UVM 的上下文中,最好從保存的狀態(tài)運(yùn)行不同的序列,如下所示:
在上面的例子中,除了最后一步在很大程度上變化之外,其余步驟一旦建立就不需要迭代。
在這里,我們將解釋如何使用標(biāo)準(zhǔn)UVM安裝中可用的簡單現(xiàn)有UBUS示例來實(shí)現(xiàn)上述策略。在環(huán)境中進(jìn)行了簡單的更改,以顯示引入此附加功能需要執(zhí)行的操作。在現(xiàn)有的測試集中,它們中的兩個,“test_read_modify_write”和“test_r8_w8_r4_w4”,僅在執(zhí)行的主序列上有所不同:“read_modify_write_seq”和“r8_w8_r4_w4_seq”。
假設(shè)我們有一個場景,我們希望在reset_phase完成后保存模擬,然后在恢復(fù)的模擬reset_phase后開始執(zhí)行不同的序列。為了通過UBUS測試演示類似的場景,我們在基本測試的reset_phase中引入了延遲(在實(shí)際測試中,這可能對應(yīng)于PLL鎖,DDR初始化,基本DUT配置)。
以下代碼片段顯示了如何修改現(xiàn)有測試,以引入在不同“還原”模擬中運(yùn)行不同測試的功能:
在這里,我們進(jìn)行了兩個主要修改:
將階段default_sequence的設(shè)置從構(gòu)建階段轉(zhuǎn)移到主階段的開始。
從命令行獲取序列的名稱作為參數(shù),并在代碼中適當(dāng)?shù)靥幚碜址?,以在相關(guān)排序器上執(zhí)行序列。
如您所見,更改保持在最低限度。有了這個,上面的通用框架就可以進(jìn)行了仿真。在 VCS 中,啟用保存/恢復(fù)流程的一種方法是:
因此,上述策略有助于通過驗(yàn)證流程中的簡單更改來優(yōu)化計算資源。希望這很有用,并且您可以輕松地在驗(yàn)證環(huán)境中進(jìn)行更改以采用此流程并避免冗余的模擬周期。
審核編輯:郭婷
-
存儲器
+關(guān)注
關(guān)注
38文章
7653瀏覽量
167463 -
Verilog
+關(guān)注
關(guān)注
29文章
1367瀏覽量
112315 -
代碼
+關(guān)注
關(guān)注
30文章
4900瀏覽量
70786
發(fā)布評論請先 登錄
圖像處理:HDMI顯示代碼的UVM仿真

vcs和xrun搭配uvm1.1/uvm1.2版本庫的使用情況
UVM環(huán)境的看門狗怎么沒看住超時了?
如何避免存儲示波器再次崩潰?
IC驗(yàn)證"一個簡單的UVM驗(yàn)證平臺"是如何搭建的(六)
什么是uvm?uvm的特點(diǎn)有哪些呢
請問一下在UVM中的UVMsequences是什么意思啊
如何使用Xilinx AXI VIP對自己的設(shè)計搭建仿真驗(yàn)證環(huán)境的方法
我的第一個UVM代碼——Hello world
NetScreen防火墻策略與冗余配置指南
集成級的UVM寄存器模型

基于最大信息系數(shù)與冗余分?jǐn)?b class='flag-5'>策略的特征選擇方法

評論