国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

UVM中寄存器模型遇到流水線時的不足及解決辦法

2018-02-25 14:27陳富強
電子技術(shù)與軟件工程 2018年12期
關(guān)鍵詞:解決辦法

陳富強

摘要 分析了UVM(UniversalVerification Methodology)驗證平臺和使用UVM中寄存器模型的驗證過程,通過研究流水線工作方式和驗證過程中read()、write()任務(wù)工作的流程,證明UVM中寄存器模型在解決流水線方面的問題時存在固有的問題。然后結(jié)合寄存器驗證中常見的復(fù)位驗證、交叉位驗證等給出合適的解決方案。

【關(guān)鍵詞】UVM驗證平臺 寄存器模型 流水線固有問題 解決辦法

1 引言

隨著集成電路設(shè)計向超大規(guī)模發(fā)展,芯片驗證工作的難度在不斷增大,驗證的工作量已經(jīng)占到整個SOC研發(fā)的70%左右,因此提高芯片驗證的效率己變得至關(guān)重要。UVM繼承了VMM和OVM的優(yōu)點,克服了各自的缺點,代表了驗證方法學(xué)的發(fā)展方向。UVM實現(xiàn)了測試隨機產(chǎn)生、自測試平臺和隨機化約束;采用最佳的驗證框架去實現(xiàn)覆蓋率驅(qū)動驗證,能大大縮短驗證時間。

寄存器模型跟參考模型類似,就是為工程里的寄存器提供一個參考模型這個模型里,包括各個寄存器字段描述、寄存器、寄存器組、寄存器地址映射等信息。

2 UVM驗證平臺

圖1為典型UVM驗證平臺,包括一個基本的驗證平臺的所有組件。驗證平臺要模擬DUT的各種真實使用情況,這需要給DUT施加各種激勵,有正常的激勵,也有異常的激勵。驗證平臺需要記分板( scoreboard)來根據(jù)DUT的輸出判斷DUT的行為是否與預(yù)期相符合;既然是判斷,那么牽扯到兩個方面:

(1)判斷的內(nèi)容即DUT的輸出;

(2)判斷的標準。

驗證平臺通過監(jiān)控器(monitor)收集DUT的輸出并把他們傳遞給scoreboard;而進行判斷的判斷標準是預(yù)期結(jié)果,產(chǎn)生預(yù)期結(jié)果的結(jié)構(gòu)就是參考模型( reference model)。

3 通過UVM寄存器模型完成寄存器3證

通常來說,DUT中會有一組控制端口,通過控制端口,可以配置DUT中的寄存器,DUT可以根據(jù)寄存器的值來改變其行為。這組控制端口就是寄存器配置總線。如圖2所示,為帶有配置總線驗證模塊的驗證平臺。

在沒有寄存器模型之前,只能啟動sequence通過前門(FRONTDOOR)訪問的方式來讀取寄存器,局限較大,在scoreboard(或者其他component)中難以控制。而有了寄存器模型之后,scoreboard只與寄存器模型打交道,無論是發(fā)送讀的指令還是獲取讀操作的返回值,都可以由寄存器模型完成。有了寄存器模型后,可以在任何耗費時間的phase中使用寄存器模型以前門訪問或后門( BACKDOOR)訪問的方式來讀取寄存器的值,同時還能在某些不耗費時間的phase(如check_phase)中使用后門訪問的方式來讀取寄存器的值。

在寄存器模型的使用過程中,我們通常使用前門訪問的方式,這樣更接近DUT的實際工作狀態(tài)。對一塊實際焊接在電路板上正常工作的芯片來說,如果要訪問其中的某些寄存器,前門訪問操作是唯一的方法。

寄存器模型的前門訪問操作最終都將由uvm_reg_map完成。uvm_reg_map調(diào)用read()任務(wù)的完整流程為:

(1)調(diào)用寄存器模型的讀任務(wù)read()。

(2)寄存器模型產(chǎn)生sequence,并產(chǎn)生uvm_regjtem: rW。

(3)產(chǎn)生driver能夠接受的transaction:bus_req= adapter.reg2bus(rW).

(4)把bus_reg交給bus_sequencer。

(5) driver得到bus_req后驅(qū)動它,得到讀取的值,并將讀取值放入bus_req中,調(diào)用item done。

寄存器模型調(diào)用adapter.bus2reg(bus_reg,rw)將bus_req中的讀取值傳遞給rw。

(6)從rw中就可以得到需要讀取的寄存器的值。

從上面過程中得到的DUT中寄存器的值,我們通常用來驗證DUT中寄存器的行為是否正確。首先我們保留一份read()任務(wù)執(zhí)行前的寄存器模型中的值,然后執(zhí)行read()任務(wù)得到DUT中寄存器的值;然后將二者進行比較,從而判斷DUT中寄存器的行為是否正確。代碼如下:

m_val= reg.get();

n_val= reg.read();

if(m_val==n_val)

、uvmjnfo(“right”)

else

、uvmjnfo(“wrong")

4 寄存器模型在遇到流水線配置總線時的固有問題及解決辦法

當(dāng)我們需要更高的執(zhí)行速度的時候,就需要通過流水線的方式配置寄存器;即在每一個時鐘周期都會發(fā)送一次寄存器的值。在SystemVerilog中可以通過fork..j oin_none輕松實現(xiàn)流水線模型,從而完成driver驅(qū)動transaction到DUT內(nèi)部。

假設(shè)每一個完整的指令由三個分解的操作步驟完成,順序依次為操作1、操作2、操作3每一個操作的時間為T。那么流水線過程可以表示為如圖3所示。

此時驗證寄存器功能的讀任務(wù)(read())的前門訪問過程依然和前面是一樣的,數(shù)據(jù)將通過3個周期后到達DUT中的寄存器,并將數(shù)據(jù)返回到bus總線上,從而得到DUT內(nèi)部的寄存器數(shù)據(jù)。

但是在這個過程中,read()任務(wù)并沒有如我們所希望的那樣得到DUT中寄存器的值,read()任務(wù)在driver發(fā)送item done之后,就從bus總線上讀取所需要的值,然后執(zhí)行bus2reg將數(shù)據(jù)從DUT中取回到寄存器模型中,但是item done是在driver接收到sequencer發(fā)送來的transaction后就發(fā)送的,如果driver本身有多個周期,這就導(dǎo)致read()任務(wù)無法從DUT中讀取正確的數(shù)據(jù)。這個問題是由UVM的寄存器模型先天不支持pipeline配置總線導(dǎo)致的。

解決這個問題由兩種辦法,第一種是修改UVM寄存器模型中的一些任務(wù)或者函數(shù)的源代碼;第二種是采用通用的驗證流程,設(shè)計reference model和scoreboard。將整個比較的過程放在scoreboard中,而不是放在sequence當(dāng)中。

采用通用的驗證過程來驗證的過程如圖4所示。在整個過程中,通過reg_ref_model將UVM寄存器模型read()之前的值,發(fā)送到scoreboard(即圖4中的A過程)。然后通過monitor獲得DUT中當(dāng)前寄存器的值(即圖4中的B過程)。

在上面的過程中,可以通過打印數(shù)據(jù)和波形圖觀察整個驗證過程。

5 實驗及結(jié)果

這種解決方案通過了實際應(yīng)用的驗證,在VIC(中斷管理器)驗證項目中的寄存器驗證過程中,通過這種結(jié)構(gòu)完成了含有流水線配置總線的DUT中寄存器的復(fù)位、置位、交叉位、隨機讀寫等功能的驗證。

驗證結(jié)果如表1所示。

其中,RW為讀寫寄存器,RO為只讀寄存器,w0為只寫寄存器,ws為寫入時置位寄存器;success表示正常通過所有的寄存器驗證,pass為忽略掉的寄存器,需要其他方法來驗證。

6 結(jié)束語

在驗證領(lǐng)域,驗證語言整齊劃一、仿真平臺的統(tǒng)一、發(fā)展正規(guī)高效的驗證方法學(xué),一直是IC驗證的發(fā)展趨勢。本文分析了UVM中寄存器模型的使用方法和在解決流水線方面的問題中固有的不足,最后給出了具體的解決方案。

由于項目中的read()任務(wù)需要通過前門訪問實現(xiàn),所以對于那些只寫的(write only)寄存器、隨著其他狀態(tài)變化的寄存器、瞬間變化的寄存器等的驗證只能通過觀察DUT的狀態(tài)來實現(xiàn)。對于這些特殊的寄存器沒有固定的驗證方法,必須憑經(jīng)驗和深入分析寄存器的功能來制定合適的驗證方案。

參考文獻

[1]李磊,羅勝欽,基于VMM方法的sOc集成驗證[J],電子測量技術(shù),2011,1 (01):3—7.

[2]張強.UVM實戰(zhàn)[M].北京:機械工業(yè)出版社,2016,7 -120.

[3]張強.UVMl.1應(yīng)用指南及源代碼分析[M].北京:機械工業(yè)出版社,2 011,400-631.

[4]Chris, Spear. System Verilog forVeriFication[M].US:SynopsysInc.2008, 5-10.

猜你喜歡
解決辦法
雞出現(xiàn)料便的原因、危害及解決辦法
缺素癥的癥狀及解決辦法
缺素癥的癥狀及解決辦法
大棚種植死棵逐年加重的原因與解決辦法
輻射記錄審核中常見問題及解決辦法
電力系統(tǒng)繼電保護不穩(wěn)定原因及解決辦法簡述
婚外情的解決辦法
三相異步電動機常見故障與解決辦法