你的位置:首頁(yè) > 互連技術(shù) > 正文

深度解析Portable Stimulus:UVM集成

發(fā)布時(shí)間:2019-07-06 責(zé)任編輯:lina

【導(dǎo)讀】PSS和UVM的集成在一起不同于將兩種語(yǔ)言進(jìn)行集成。本文將列出這種集成的基本策略,以盡可能通用的語(yǔ)言來(lái)描述集成的六個(gè)步驟以及本文會(huì)詳細(xì)介紹前三個(gè)步驟。
 
PSS和UVM的集成在一起不同于將兩種語(yǔ)言進(jìn)行集成。本文將列出這種集成的基本策略,以盡可能通用的語(yǔ)言來(lái)描述集成的六個(gè)步驟以及本文會(huì)詳細(xì)介紹前三個(gè)步驟。
 
將便攜式刺激標(biāo)準(zhǔn)(Portable Stimulus Standard,PSS)功能與通用驗(yàn)證方法學(xué)(UVM)集成在一起不同于將兩種語(yǔ)言進(jìn)行集成。
 
在我們之前的專欄中,Aileen Honess提供了這樣一個(gè)背景,shuoming 為什么那些使用通用驗(yàn)證方法學(xué)(UVM)和SystemVerilog的團(tuán)隊(duì)會(huì)希望通過(guò)增加Portable Stimulus來(lái)擴(kuò)展他們的驗(yàn)證方法。通過(guò)結(jié)合不僅理解組合約束而且理解設(shè)計(jì)時(shí)間方面的約束求解器,可以生成針對(duì)特定驗(yàn)證意圖的更有效的測(cè)試。
 
本博客將列出這種集成的基本策略。需要注意的是,集成Portable Stimulus Standard (PSS)功能并沒(méi)有對(duì)現(xiàn)存的功能產(chǎn)生任何影響,現(xiàn)有的測(cè)試平臺(tái)仍然有效,繼續(xù)提供相同的覆蓋范圍。但若在嘗試達(dá)到理想覆蓋水平時(shí)碰到問(wèn)題,或者當(dāng)希望測(cè)試用例被重定向?yàn)榉抡婊虮挥糜谛酒瑔?dòng)時(shí),PSS增加的新功能就有用了。
 
隨著時(shí)間的推移,對(duì)PSS功能的信心逐步增強(qiáng),您可能會(huì)希望更改驗(yàn)證方法以支持PSS生成的測(cè)試用例,而不是來(lái)自現(xiàn)有UVM環(huán)境的簡(jiǎn)單、隨機(jī)的測(cè)試用例。此外,PSS還提供了新的比對(duì)和評(píng)估覆蓋范圍的方法,相信這種方法也更直觀。
 
還有一點(diǎn)需要注意,PSS和UVM的集成與兩種語(yǔ)言之間的集成不同。PSS定義了一個(gè)利用工具生成測(cè)試用例的模型。它是與UVM集成生成的測(cè)試用例。這意味著,當(dāng)談到集成,就不能使其獨(dú)立于特定供應(yīng)商的工具。我會(huì)以盡可能通用的語(yǔ)言來(lái)描述集成的步驟,其他供應(yīng)商可能也會(huì)有類似的步驟,但自動(dòng)化的細(xì)節(jié)或級(jí)別可能會(huì)有所不同。
集成的六個(gè)步驟如下:
1.識(shí)別UVM接口,包括事務(wù)級(jí)建模(TLM)接口、軟件接口和內(nèi)存。配置工具并集成到UVM。
2.創(chuàng)建PSS寄存器類型描述。這一步可以通過(guò)硬件/軟件接口(HSI)的寄存器定義來(lái)手工完成,也可以通過(guò)轉(zhuǎn)換IP-XACT描述來(lái)完成。
3.識(shí)別設(shè)計(jì)(包括組件、操作、資源等)的整體PSS模型/表示。
4.提供每個(gè)“操作”(action)的詳細(xì)信息。這些信息根據(jù)可合成TLM或軟件驅(qū)動(dòng)驗(yàn)證(SDV)測(cè)試的可移植基元定義。
5.編譯模型、合成測(cè)試用例,并運(yùn)行UVM仿真。
6.查看和調(diào)試結(jié)果,并分析覆蓋范圍。
下面我們將采用一個(gè)非常簡(jiǎn)單的設(shè)計(jì)來(lái)演示這些概念。該設(shè)計(jì)源自Breker發(fā)布的公共域示例,示例中有兩個(gè)CPUS、兩個(gè)UART、一個(gè)DMAC和一個(gè)AES加密塊。
 
深度解析Portable Stimulus:UVM集成
圖1:本示例包括兩個(gè)CPUS、兩個(gè)UART、一個(gè)DMAC和一個(gè)AES加密塊。(來(lái)源:Breker)
 
每個(gè)UART都有一個(gè)驗(yàn)證IP(VIP),用于配置和發(fā)送/接收數(shù)據(jù)。此外,每個(gè)CPU都開(kāi)放其由AMBA高級(jí)外設(shè)總線(APB)VIP驅(qū)動(dòng)的端口。為UART VIP定義TLM事務(wù)和TLM端口; 并在TLB模式中為APB VIP定義處理器代理。同時(shí)定義存儲(chǔ)器資源以供DMAC操作使用。
 
深度解析Portable Stimulus:UVM集成
圖2:從Portable Stimulus工具生成的UVM代碼。(來(lái)源:Breaker)
 
深度解析Portable Stimulus:UVM集成
圖3:生成的代碼用于將工具中的事務(wù)轉(zhuǎn)換為VIP使用的事務(wù),類似于uvm_reg_adapter。(來(lái)源:Breker)
 
深度解析Portable Stimulus:UVM集成
圖4:生成的trek_sequence等待來(lái)自模型的數(shù)據(jù),使用上面的代碼轉(zhuǎn)換數(shù)據(jù),并將其發(fā)送給VIP。即該代碼用于實(shí)現(xiàn)兩種類型數(shù)據(jù)的轉(zhuǎn)換。這里也可以使用用戶創(chuàng)建的序列。當(dāng)監(jiān)視模塊捕獲動(dòng)作或與比對(duì)模塊一起使用時(shí),反方向也存在類似的代碼。(來(lái)源:Breker)
 
步驟2建立了VIP的寄存器和存儲(chǔ)器映射。通常情況下,該映射已經(jīng)以IP-XACT格式定義。IP-XACT是第三方IP模塊的通用格式,許多公司也用它來(lái)記錄其內(nèi)部IP。如果是這種情況,將采用實(shí)用程序執(zhí)行必要的轉(zhuǎn)換。Breker采用了建議的HSI,HSI在PSS標(biāo)準(zhǔn)第一版中并未獲得批準(zhǔn)。
三個(gè)組件(UART、DMAC、AES)中每個(gè)組件的寄存器描述都可以利用隨設(shè)計(jì)發(fā)布的IP-XACT文件中的trekhsi輕松創(chuàng)建,而且可以修改字段名稱以提高可讀性。
 
深度解析Portable Stimulus:UVM集成
圖5:UART(hsi_uart.h)的HSI寄存器定義變?yōu)閔si :: reg_block。為了便于閱讀,原始IP-XACT規(guī)范中的字段名稱作了修改。(來(lái)源:Breker)
 
步驟3是識(shí)別系統(tǒng)組件。該設(shè)計(jì)中,主要的IP模塊是UART、DMA和AES,稱為“PSS組件”。每個(gè)模塊都具有稱為“操作”(action)的核心功能,并表示為“PSS操作”。這些模塊的關(guān)鍵功能(actions) 可以定義如下:
·UART - 配置、接收、發(fā)送
·DMAC - 輸出數(shù)據(jù)、輸入數(shù)據(jù)
·AES - 加密、解密
·CPU - 輸出數(shù)據(jù)、輸入數(shù)據(jù)
需要注意的是,首次編寫(xiě)PSS模型時(shí),不一定要定義所有操作。首先,只用定義最重要的,隨著驗(yàn)證任務(wù)的進(jìn)展,再定義附加的、次級(jí)的操作。這不會(huì)對(duì)已執(zhí)行的驗(yàn)證有任何影響,只會(huì)造成更多的序列。
為每個(gè)計(jì)算元素(UART、DMAC、AES)創(chuàng)建資源池。
并使用流對(duì)象(FIFO,Reg)和為每個(gè)元素創(chuàng)建的相應(yīng)“池”來(lái)定義到塊的接口。
最后,PSS鎖定對(duì)共享資源或獨(dú)占資源使用的控制。調(diào)度程序?qū)⒗盟鼇?lái)確保不會(huì)嘗試使硬件同時(shí)執(zhí)行互斥操作。
 
深度解析Portable Stimulus:UVM集成
圖6:Breker的TrekDesigner中顯示的PSS圖表創(chuàng)建了模型。在該模型中,“組件”是綠色框,“操作”是淺藍(lán)色框,“資源”是深藍(lán)色菱形,“鎖”是與“操作”相關(guān)聯(lián)的灰色框。“操作”塊的輸入和輸出用藍(lán)色輸入/輸出端口表示。 (來(lái)源:Breker)
 
Entry操作(頂部)同時(shí)安排了兩個(gè)UART場(chǎng)景,即加密和解密操作。UART場(chǎng)景(左下方)將為DUT選擇配置,配置VIP以匹配,同時(shí)并行執(zhí)行多個(gè)接收和發(fā)送操作。加密和解密操作由DMAC傳輸(右下)提供。資源鎖用于確保同一硬件塊上的兩個(gè)操作不會(huì)同時(shí)執(zhí)行。
整個(gè)模型的PSS代碼均由工具生成。每個(gè)生成的動(dòng)作都有一對(duì)//用戶代碼開(kāi)始和//用戶代碼結(jié)束標(biāo)記,標(biāo)記中間即為動(dòng)作的詳細(xì)描述。重新生成模型時(shí),標(biāo)記間的代碼會(huì)保留。
 
 
 
推薦閱讀:
電容擊穿是開(kāi)路還是短路?電容擊穿原因是什么?
詳解力、壓力、流量和溫度等傳感器性能術(shù)語(yǔ)
如何測(cè)試CAN節(jié)點(diǎn)DUT的輸入電壓閾值?
電源芯片的工作模式都有哪些特點(diǎn)?
如何通過(guò)實(shí)時(shí)網(wǎng)絡(luò)實(shí)現(xiàn)多軸運(yùn)動(dòng)控制的同步
要采購(gòu)工具么,點(diǎn)這里了解一下價(jià)格!
特別推薦
技術(shù)文章更多>>
技術(shù)白皮書(shū)下載更多>>
熱門(mén)搜索
?

關(guān)閉

?

關(guān)閉