在許多驗(yàn)證環(huán)境中,我們?cè)诓煌臏y(cè)試用例中重復(fù)使用相同的配置周期。這些周期可能涉及從不同的配置和狀態(tài)寄存器寫(xiě)入和讀取、加載程序存儲(chǔ)器和其他類(lèi)似任務(wù),以為其目標(biāo)激勵(lì)設(shè)置DUT。在許多此類(lèi)環(huán)境中,這些配置周期所花費(fèi)的時(shí)間非常長(zhǎng)。此外,由于驗(yàn)證工程師必須為不同的測(cè)試用例運(yùn)行同一組經(jīng)過(guò)驗(yàn)證的配置周期,因此存在大量冗余,從而導(dǎo)致生產(chǎn)力下降。對(duì)于具有多個(gè)接口的復(fù)雜驗(yàn)證環(huán)境尤其如此,這些接口需要配置不同的組件。
Verilog 提供了在特定時(shí)間點(diǎn)保存設(shè)計(jì)及其測(cè)試平臺(tái)狀態(tài)的選項(xiàng)。我們可以將模擬恢復(fù)到相同的狀態(tài),然后從那里繼續(xù)。這可以通過(guò)從Verilog代碼添加適當(dāng)?shù)膬?nèi)置系統(tǒng)調(diào)用來(lái)完成。VCS 提供與統(tǒng)一命令行解釋器 (UCLI) 相同的選項(xiàng)。
但是,我們僅從保存的狀態(tài)恢復(fù)仿真是不夠的。對(duì)于不同的模擬,我們可能希望對(duì)DUT應(yīng)用不同的隨機(jī)激勵(lì)。在 UVM 的上下文中,最好從保存的狀態(tài)運(yùn)行不同的序列,如下所示:

在上面的例子中,除了最后一步在很大程度上變化之外,其余步驟一旦建立就不需要迭代。

在這里,我們將解釋如何使用標(biāo)準(zhǔn)UVM安裝中可用的簡(jiǎn)單現(xiàn)有UBUS示例來(lái)實(shí)現(xiàn)上述策略。在環(huán)境中進(jìn)行了簡(jiǎn)單的更改,以顯示引入此附加功能需要執(zhí)行的操作。在現(xiàn)有的測(cè)試集中,它們中的兩個(gè),“test_read_modify_write”和“test_r8_w8_r4_w4”,僅在執(zhí)行的主序列上有所不同:“read_modify_write_seq”和“r8_w8_r4_w4_seq”。

假設(shè)我們有一個(gè)場(chǎng)景,我們希望在reset_phase完成后保存模擬,然后在恢復(fù)的模擬reset_phase后開(kāi)始執(zhí)行不同的序列。為了通過(guò)UBUS測(cè)試演示類(lèi)似的場(chǎng)景,我們?cè)诨緶y(cè)試的reset_phase中引入了延遲(在實(shí)際測(cè)試中,這可能對(duì)應(yīng)于PLL鎖,DDR初始化,基本DUT配置)。
以下代碼片段顯示了如何修改現(xiàn)有測(cè)試,以引入在不同“還原”模擬中運(yùn)行不同測(cè)試的功能:

在這里,我們進(jìn)行了兩個(gè)主要修改:
將階段default_sequence的設(shè)置從構(gòu)建階段轉(zhuǎn)移到主階段的開(kāi)始。
從命令行獲取序列的名稱(chēng)作為參數(shù),并在代碼中適當(dāng)?shù)靥幚碜址?,以在相關(guān)排序器上執(zhí)行序列。
如您所見(jiàn),更改保持在最低限度。有了這個(gè),上面的通用框架就可以進(jìn)行了仿真。在 VCS 中,啟用保存/恢復(fù)流程的一種方法是:

因此,上述策略有助于通過(guò)驗(yàn)證流程中的簡(jiǎn)單更改來(lái)優(yōu)化計(jì)算資源。希望這很有用,并且您可以輕松地在驗(yàn)證環(huán)境中進(jìn)行更改以采用此流程并避免冗余的模擬周期。
審核編輯:郭婷
-
存儲(chǔ)器
+關(guān)注
關(guān)注
39文章
7753瀏覽量
172169 -
Verilog
+關(guān)注
關(guān)注
31文章
1374瀏覽量
114712 -
代碼
+關(guān)注
關(guān)注
30文章
4976瀏覽量
74359
發(fā)布評(píng)論請(qǐng)先 登錄
圖像處理:HDMI顯示代碼的UVM仿真
vcs和xrun搭配uvm1.1/uvm1.2版本庫(kù)的使用情況
UVM環(huán)境的看門(mén)狗怎么沒(méi)看住超時(shí)了?
如何避免存儲(chǔ)示波器再次崩潰?
NVMe高速傳輸之?dāng)[脫XDMA設(shè)計(jì)18:UVM驗(yàn)證平臺(tái)
NVMe高速傳輸之?dāng)[脫XDMA設(shè)計(jì)23:UVM驗(yàn)證平臺(tái)
IC驗(yàn)證"一個(gè)簡(jiǎn)單的UVM驗(yàn)證平臺(tái)"是如何搭建的(六)
什么是uvm?uvm的特點(diǎn)有哪些呢
請(qǐng)問(wèn)一下在UVM中的UVMsequences是什么意思啊
如何使用Xilinx AXI VIP對(duì)自己的設(shè)計(jì)搭建仿真驗(yàn)證環(huán)境的方法
NetScreen防火墻策略與冗余配置指南
基于最大信息系數(shù)與冗余分?jǐn)?b class='flag-5'>策略的特征選擇方法
通過(guò)簡(jiǎn)單的保存-恢復(fù)策略避免UVM VIP的冗余仿真周期
評(píng)論