深度解析Portable Stimulus:UVM集成
發布時間:2019-07-06 責任編輯:lina
【導讀】PSS和UVM的(de)集(ji)成(cheng)在(zai)一(yi)起(qi)不(bu)同(tong)於(yu)將(jiang)兩(liang)種(zhong)語(yu)言(yan)進(jin)行(xing)集(ji)成(cheng)。本(ben)文(wen)將(jiang)列(lie)出(chu)這(zhe)種(zhong)集(ji)成(cheng)的(de)基(ji)本(ben)策(ce)略(lve),以(yi)盡(jin)可(ke)能(neng)通(tong)用(yong)的(de)語(yu)言(yan)來(lai)描(miao)述(shu)集(ji)成(cheng)的(de)六(liu)個(ge)步(bu)驟(zhou)以(yi)及(ji)本(ben)文(wen)會(hui)詳(xiang)細(xi)介(jie)紹(shao)前(qian)三(san)個(ge)步(bu)驟(zhou)。
PSS和UVM的(de)集(ji)成(cheng)在(zai)一(yi)起(qi)不(bu)同(tong)於(yu)將(jiang)兩(liang)種(zhong)語(yu)言(yan)進(jin)行(xing)集(ji)成(cheng)。本(ben)文(wen)將(jiang)列(lie)出(chu)這(zhe)種(zhong)集(ji)成(cheng)的(de)基(ji)本(ben)策(ce)略(lve),以(yi)盡(jin)可(ke)能(neng)通(tong)用(yong)的(de)語(yu)言(yan)來(lai)描(miao)述(shu)集(ji)成(cheng)的(de)六(liu)個(ge)步(bu)驟(zhou)以(yi)及(ji)本(ben)文(wen)會(hui)詳(xiang)細(xi)介(jie)紹(shao)前(qian)三(san)個(ge)步(bu)驟(zhou)。
將便攜式刺激標準(Portable Stimulus Standard,PSS)功能與通用驗證方法學(UVM)集成在一起不同於將兩種語言進行集成。
在我們之前的專欄中,Aileen Honess提供了這樣一個背景,shuoming 為什麼那些使用通用驗證方法學(UVM)和SystemVerilog的團隊會希望通過增加Portable Stimulus來(lai)擴(kuo)展(zhan)他(ta)們(men)的(de)驗(yan)證(zheng)方(fang)法(fa)。通(tong)過(guo)結(jie)合(he)不(bu)僅(jin)理(li)解(jie)組(zu)合(he)約(yue)束(shu)而(er)且(qie)理(li)解(jie)設(she)計(ji)時(shi)間(jian)方(fang)麵(mian)的(de)約(yue)束(shu)求(qiu)解(jie)器(qi),可(ke)以(yi)生(sheng)成(cheng)針(zhen)對(dui)特(te)定(ding)驗(yan)證(zheng)意(yi)圖(tu)的(de)更(geng)有(you)效(xiao)的(de)測(ce)試(shi)。
本博客將列出這種集成的基本策略。需要注意的是,集成Portable Stimulus Standard (PSS)功(gong)能(neng)並(bing)沒(mei)有(you)對(dui)現(xian)存(cun)的(de)功(gong)能(neng)產(chan)生(sheng)任(ren)何(he)影(ying)響(xiang),現(xian)有(you)的(de)測(ce)試(shi)平(ping)台(tai)仍(reng)然(ran)有(you)效(xiao),繼(ji)續(xu)提(ti)供(gong)相(xiang)同(tong)的(de)覆(fu)蓋(gai)範(fan)圍(wei)。但(dan)若(ruo)在(zai)嚐(chang)試(shi)達(da)到(dao)理(li)想(xiang)覆(fu)蓋(gai)水(shui)平(ping)時(shi)碰(peng)到(dao)問(wen)題(ti),或(huo)者(zhe)當(dang)希(xi)望(wang)測(ce)試(shi)用(yong)例(li)被(bei)重(zhong)定(ding)向(xiang)為(wei)仿(fang)真(zhen)或(huo)被(bei)用(yong)於(yu)芯(xin)片(pian)啟(qi)動(dong)時(shi),PSS增加的新功能就有用了。
隨著時間的推移,對PSS功能的信心逐步增強,您可能會希望更改驗證方法以支持PSS生成的測試用例,而不是來自現有UVM環境的簡單、隨機的測試用例。此外,PSS還提供了新的比對和評估覆蓋範圍的方法,相信這種方法也更直觀。
還有一點需要注意,PSS和UVM的集成與兩種語言之間的集成不同。PSS定義了一個利用工具生成測試用例的模型。它是與UVM集ji成cheng生sheng成cheng的de測ce試shi用yong例li。這zhe意yi味wei著zhe,當dang談tan到dao集ji成cheng,就jiu不bu能neng使shi其qi獨du立li於yu特te定ding供gong應ying商shang的de工gong具ju。我wo會hui以yi盡jin可ke能neng通tong用yong的de語yu言yan來lai描miao述shu集ji成cheng的de步bu驟zhou,其qi他ta供gong應ying商shang可ke能neng也ye會hui有you類lei似si的de步bu驟zhou,但dan自zi動dong化hua的de細xi節jie或huo級ji別bie可ke能neng會hui有you所suo不bu同tong。
集成的六個步驟如下:
1.識別UVM接口,包括事務級建模(TLM)接口、軟件接口和內存。配置工具並集成到UVM。
2.創建PSS寄存器類型描述。這一步可以通過硬件/軟件接口(HSI)的寄存器定義來手工完成,也可以通過轉換IP-XACT描述來完成。
3.識別設計(包括組件、操作、資源等)的整體PSS模型/表示。
4.提供每個“操作”(action)的詳細信息。這些信息根據可合成TLM或軟件驅動驗證(SDV)測試的可移植基元定義。
5.編譯模型、合成測試用例,並運行UVM仿真。
6.查看和調試結果,並分析覆蓋範圍。
下麵我們將采用一個非常簡單的設計來演示這些概念。該設計源自Breker發布的公共域示例,示例中有兩個CPUS、兩個UART、一個DMAC和一個AES加密塊。

圖1:本示例包括兩個CPUS、兩個UART、一個DMAC和一個AES加密塊。(來源:Breker)
每個UART都有一個驗證IP(VIP),用於配置和發送/接收數據。此外,每個CPU都開放其由AMBA高級外設總線(APB)VIP驅動的端口。為UART VIP定義TLM事務和TLM端口; 並在TLB模式中為APB VIP定義處理器代理。同時定義存儲器資源以供DMAC操作使用。

圖2:從Portable Stimulus工具生成的UVM代碼。(來源:Breaker)

圖3:生成的代碼用於將工具中的事務轉換為VIP使用的事務,類似於uvm_reg_adapter。(來源:Breker)

圖4:生成的trek_sequence等待來自模型的數據,使用上麵的代碼轉換數據,並將其發送給VIP。即(ji)該(gai)代(dai)碼(ma)用(yong)於(yu)實(shi)現(xian)兩(liang)種(zhong)類(lei)型(xing)數(shu)據(ju)的(de)轉(zhuan)換(huan)。這(zhe)裏(li)也(ye)可(ke)以(yi)使(shi)用(yong)用(yong)戶(hu)創(chuang)建(jian)的(de)序(xu)列(lie)。當(dang)監(jian)視(shi)模(mo)塊(kuai)捕(bu)獲(huo)動(dong)作(zuo)或(huo)與(yu)比(bi)對(dui)模(mo)塊(kuai)一(yi)起(qi)使(shi)用(yong)時(shi),反(fan)方(fang)向(xiang)也(ye)存(cun)在(zai)類(lei)似(si)的(de)代(dai)碼(ma)。(來源:Breker)
步驟2建立了VIP的寄存器和存儲器映射。通常情況下,該映射已經以IP-XACT格式定義。IP-XACT是第三方IP模塊的通用格式,許多公司也用它來記錄其內部IP。如果是這種情況,將采用實用程序執行必要的轉換。Breker采用了建議的HSI,HSI在PSS標準第一版中並未獲得批準。
三個組件(UART、DMAC、AES)中每個組件的寄存器描述都可以利用隨設計發布的IP-XACT文件中的trekhsi輕鬆創建,而且可以修改字段名稱以提高可讀性。

圖5:UART(hsi_uart.h)的HSI寄存器定義變為hsi :: reg_block。為了便於閱讀,原始IP-XACT規範中的字段名稱作了修改。(來源:Breker)
步驟3是識別係統組件。該設計中,主要的IP模塊是UART、DMA和AES,稱為“PSS組件”。每個模塊都具有稱為“操作”(action)的核心功能,並表示為“PSS操作”。這些模塊的關鍵功能(actions) 可以定義如下:
·UART - 配置、接收、發送
·DMAC - 輸出數據、輸入數據
·AES - 加密、解密
·CPU - 輸出數據、輸入數據
需要注意的是,首次編寫PSS模型時,不一定要定義所有操作。首先,隻用定義最重要的,隨著驗證任務的進展,再定義附加的、次級的操作。這不會對已執行的驗證有任何影響,隻會造成更多的序列。
為每個計算元素(UART、DMAC、AES)創建資源池。
並使用流對象(FIFO,Reg)和為每個元素創建的相應“池”來定義到塊的接口。
最後,PSS鎖定對共享資源或獨占資源使用的控製。調度程序將利用它來確保不會嚐試使硬件同時執行互斥操作。

圖6:Breker的TrekDesigner中顯示的PSS圖表創建了模型。在該模型中,“組件”是綠色框,“操作”是淺藍色框,“資源”是深藍色菱形,“鎖”是與“操作”相關聯的灰色框。“操作”塊的輸入和輸出用藍色輸入/輸出端口表示。 (來源:Breker)
Entry操作(頂部)同時安排了兩個UART場景,即加密和解密操作。UART場景(左下方)將為DUT選擇配置,配置VIP以匹配,同時並行執行多個接收和發送操作。加密和解密操作由DMAC傳輸(右下)提供。資源鎖用於確保同一硬件塊上的兩個操作不會同時執行。
整個模型的PSS代碼均由工具生成。每個生成的動作都有一對//用戶代碼開始和//用戶代碼結束標記,標記中間即為動作的詳細描述。重新生成模型時,標記間的代碼會保留。
特別推薦
- 噪聲中提取真值!瑞盟科技推出MSA2240電流檢測芯片賦能多元高端測量場景
- 10MHz高頻運行!氮矽科技發布集成驅動GaN芯片,助力電源能效再攀新高
- 失真度僅0.002%!力芯微推出超低內阻、超低失真4PST模擬開關
- 一“芯”雙電!聖邦微電子發布雙輸出電源芯片,簡化AFE與音頻設計
- 一機適配萬端:金升陽推出1200W可編程電源,賦能高端裝備製造
技術文章更多>>
- 貿澤EIT係列新一期,探索AI如何重塑日常科技與用戶體驗
- 算力爆發遇上電源革新,大聯大世平集團攜手晶豐明源線上研討會解鎖應用落地
- 創新不止,創芯不已:第六屆ICDIA創芯展8月南京盛大啟幕!
- AI時代,為什麼存儲基礎設施的可靠性決定數據中心的經濟效益
- 矽典微ONELAB開發係列:為毫米波算法開發者打造的全棧工具鏈
技術白皮書下載更多>>
- 車規與基於V2X的車輛協同主動避撞技術展望
- 數字隔離助力新能源汽車安全隔離的新挑戰
- 汽車模塊拋負載的解決方案
- 車用連接器的安全創新應用
- Melexis Actuators Business Unit
- Position / Current Sensors - Triaxis Hall
熱門搜索
Future
GFIVE
GPS
GPU
Harting
HDMI
HDMI連接器
HD監控
HID燈
I/O處理器
IC
IC插座
IDT
IGBT
in-cell
Intersil
IP監控
iWatt
Keithley
Kemet
Knowles
Lattice
LCD
LCD模組
LCR測試儀
lc振蕩器
Lecroy
LED
LED保護元件
LED背光




