999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

面向串行總線的層次化UVM驗證平臺設計

2018-09-11 02:09:24陳琳娜孟建熠林志濤
傳感器與微系統 2018年9期
關鍵詞:定義

陳琳娜, 孟建熠, 林志濤

(1.浙江大學 電氣工程學院,浙江 杭州 310027; 2.復旦大學 微電子學院,上海 201203)

0 引 言

提高芯片的驗證效率至關重要[1],現有的驗證平臺大部分是基于通用驗證方法學(universal verification methodology,UVM)環境開發的[2],然而驗證組件的實現與被測器件(device under test,DUT)緊耦合,導致其可重用性需要通過更改或替換已有驗證平臺的部分代碼來實現[3,4];另一方面,在一個含有上千個測試用例的大型項目里,仿真測試需要的時間變得很長。因此如何提高驗證組件代碼的可重用性和縮短測試用例仿真時間已成為驗證平臺開發的困難與挑戰之一。標準化串行總線接口作為設備之間信息交流的主要通道,是片上系統(system on chip,SOC)芯片不可缺少的部分[5]。針對廣泛應用的串行總線協議,以及現有的UVM驗證組件代碼可重用性差和仿真時間長等缺陷,本文提出了一種面向串行總線協議的層次化公用庫設計,同時對UVM transaction定義進行改進,加快仿真速度,實現了快速驗證。

1 UVM驗證方法學

UVM繼承了 SystemVerilog驗證語言面向對象的思想,實現了驗證的重用性和清晰的層次結構。UVM常用類的層次結構如圖1所示[6,7]。

2 串行總線的層次化驗證平臺研究

2.1 層次化公用庫的設計

公用庫的設計是將環境模型和功能模塊抽象出來,定義為可重用的通用庫文件。串行總線協議通常具有共性:1)支持主從或對等模式;2)支持大端或小端;3)支持同步或異步模式。

層次化的公用庫主要基于驗證平臺的重用層級來進行建模和管理,主要分為以下幾個層級建模:1)事務級建模;2)組件級建模;3)功能級建模。圖2為在原有的庫基礎上添加的層次化公用庫。

圖1 UVM常用類層次結構

圖2 層次化公用庫類

2.1.1 事務級建模

該層次的建模主要包括具體協議內容的transaction定義以及相關語義類型定義,一個標準串行總線協議的transaction通常是定義一些數據包類型,數據傳送格式,數據傳送長度等基礎內容。

2.1.2 組件級建模

該層次的建模與協議內容無關,主要包括驗證組件基本功能的實現。組件級的建模包括:

1)lib_driver:所有協議的driver設計都有一個共同功能:當檢測到一個復位信號到來時,立刻退出所有的接口驅動。可以設計一個公用組件lib_driver派生自driver,并在該組件中加入該功能。

2)lib_monitor:該組件派生自monitor, 不同的協議對接口的monitor方式各不同,故在該組件中加入一個虛函數并通過無限循環來不斷收集DUT 接口的輸出。

3)lib_scoreboard:該組件派生自scoreboard,用于比較期望數據和實際數據。可在lib_scoreboard中聲明2個imp端口,同時另設2個 Buffer 用于緩沖數據。在check_phase里檢查Buffer是否為空。

4)lib_test:該組件派生自uvm_test,并包含基本功能:a.設置整個驗證平臺的超時退出時間;b.設置用例跑的次數;c.在report_phase中根據UVM_ERROR的數量來打印不同的信息。

2.1.3 功能級建模

該層次的建模主要包括協議通用的功能和任務函數。串行總線協議的通用函數包括:

1)傳輸起始與停止條件:主從模式下的串行協議,起始和停止條件由主機產生;對等模式則由發送模式產生。無論是何種模式,都需要實時監測起始與停止條件。這些過程可封裝成公用函數。

2)時鐘線驅動:同步傳輸模式下的串行協議,需要時鐘信號確定同步傳輸的速度;異步傳輸通過配置波特率對時鐘進行采樣。該過程可封裝成公用函數實現不同頻率的時鐘產生。

3)數據線驅動/監測:同步傳輸模式下,不同的時鐘極性和相位決定了在時鐘不同的跳變沿對數據線進行驅動或監測;異步傳輸數據的驅動與監測由采樣時鐘確定。數據傳輸有大端和小端模式。該過程可封裝成公用函數。

2.2 改進的transaction定義

UVM各個組件之間的信息傳遞基于transaction。transaction中數據變量通過Field-Automation宏機制注冊,簡化了transaction的處理過程[8]。

Field-Automation宏機制的實現過程如圖3所示。′uvm_object_utils_begin()為宏開始定義,用于注冊transaction類,該宏擴展為一個內部方法: __m_uvm_field_automation()。′uvm_filed_*系列宏體用于注冊transaction內部定義的變量[9],每個宏體的聲明都會擴展成一個case語句的實現。當用戶調用print,copy,compare等函數對transaction進行處理時,如果該transaction使用了Field-Automation機制,那么這些函數就會自動調用內部方法,并把第二個參數what_設置成對應的函數處理字段。宏體的聲明導致相應case語句分支操作的執行,而分支操作里的函數又通過調用其他方法實現。過長的調用路徑導致過多的冗余代碼執行,使得測試用例的運行時間和調試難度大大地提高。

圖3 宏的實現

UVM庫里提供另一種方法來實現函數print,copy,compare,pack,unpack,即do_ 虛方法,這些虛方法會自動執行。為了避免冗余代碼的調用,在改進的transaction定義中,無需聲明′uvm_field_*宏體,并根據協議內容重寫需要的do_虛方法。

do_compare的重寫只需添加下面幾行代碼即可實現compare的功能:

function bit do_compare(uvm_object rhs);

transaction rhs_;∥transaction為自定義的類

do_compare=(S|cast(rhs_,rhs)&&addr==rhs_.addr);∥添加要比較的變量

endfunction

相比原有的transaction定義,改進的transaction定義沒有宏體的聲明,避免了過長的路徑調用;重寫的do_代碼量少,沒有冗余代碼的調用,很大程度上提高了仿真效率。

3 實驗結果與分析

本文以通用串行接口(universal serial interface,USI)模塊的快速驗證為例,對文中提到的方法進行評估。USI 為自行開發,該模塊包括了高級外圍總線(advanced peripheral bus,APB)接口,寄存器TX FIFO和RX FIFO,功能模塊(UART,I2CM,I2CS,SPIM,SPIS)和串行接口,通過配置控制寄存器,可使相應的功能模塊工作,實現了UART, I2C, SPI 3種協議。

3.1 USI驗證平臺構建

基于層次化公用庫的思想和高效的transaction定義,設計了如圖4所示的USI模塊驗證平臺。該平臺構建了APB UVC,INTR UVC,Reset UVC,DMA UVC(Reset UVC和DMA UVC圖中未標出),包含SPI ,I2C,UART UVC的Peripheral。SPI ,I2C,UART UVC均有2個Monitor port,分別用于傳遞期望的數據和實際的數據。Reference model包含了TX,RX FIFO,APB,SPI,UART,I2C等模型,功能行為與DUT一致。 用戶在case里通過寄存器模型操作APB_UVC配置控制寄存器選擇相應的功能模塊。寫操作時,APB UVC向DUT TX FIFO寫數據,寫入當前數據同時也傳給reference model的TX FIFO模型,根據配置選擇相應的功能模型(SPI,I2C或UART)讀出數據,發送給Scoreboard,作為期望的數據;實際的數據則是設備UVC監測DUT接口得到的數據。讀操作時,通過case啟動sequencer,將得到的transaction數據寫入reference model RX FIFO, 并通過APB模型讀出發送給Scoreboard,作為期望的數據;實際的數據由寄存器模型操作APB UVC讀取DUT的RX FIFO數據。

3.2 效率分析

USI驗證以高效性為原則。原有的驗證平臺的代碼量有一萬行之多,基于公用庫的驗證平臺將代碼量減少到數千行之內,60 %以上的功能代碼可通過調用公用庫實現。由于使用了公用庫,驗證不同串行總線IP時,驗證工程師只需在此基礎上進行功能擴展,實現了驗證組件可重用性。

圖4 USI驗證結構

與傳統的transaction定義方法相比,改進的transaction定義縮短了仿真運行時間。表1列出在回歸測試之前相同測試用例下,2種不同的transaction定義對仿真時間的影響。I2C,SPI模塊對transaction的操作相對復雜,調用了copy,compare,print函數,與改進前的transaction定義相比,仿真速度提升了6 %~7 %左右;而UART模塊相對簡單,對transaction的處理次數少,仿真速度只提升了3 %。

表1 仿真時間對比

圖5為同期開展的USI回歸測試2種不同transaction定義,達到規定覆蓋率要求所需驗證時間的對比結果。可以看出,使用改進的transaction 的驗證平臺在50 h左右的測試時間內,完成USI模塊100 %的功能覆蓋率驗證,96.6 %的代碼覆蓋率驗證;使用Field-Automation機制的transaction 驗證平臺則在56 h左右達到相同的覆蓋率。測試結果表明,改進的transaction定義使USI驗證時間縮短10.7 %。對于在大型的驗證項目中,對transaction處理的次數越多,仿真速度提升效果將會越明顯。

圖5 不同transaction定義達到96 %覆蓋率所需驗證時間

4 結束語

本文設計了一種面向串行總線的層次化UVM驗證平臺。相對于已有的UVM驗證平臺,引進了公用庫的概念,使得驗證平臺能最大限度重用,同時對傳統的transaction定義進行改進,縮短了仿真測試時間。實驗表明:基于公用庫的多標準串行總線協議驗證平臺和改進的transaction定義使驗證效率得到了提升。下一步將根據配置文件,用腳本自動生成公用庫,實現驗證組件的自動化生成。

猜你喜歡
定義
以愛之名,定義成長
活用定義巧解統計概率解答題
例談橢圓的定義及其應用
題在書外 根在書中——圓錐曲線第三定義在教材和高考中的滲透
永遠不要用“起點”定義自己
海峽姐妹(2020年9期)2021-01-04 01:35:44
嚴昊:不定義終點 一直在路上
華人時刊(2020年13期)2020-09-25 08:21:32
定義“風格”
成功的定義
山東青年(2016年1期)2016-02-28 14:25:25
有壹手——重新定義快修連鎖
修辭學的重大定義
當代修辭學(2014年3期)2014-01-21 02:30:44
主站蜘蛛池模板: 美女被操91视频| 日本a级免费| 亚洲综合色婷婷| 国产天天射| 亚洲精品视频免费观看| 亚洲日本中文字幕乱码中文| 国产精品露脸视频| 欧美激情伊人| 精品精品国产高清A毛片| 亚洲一区二区黄色| 亚洲天堂网在线视频| 在线免费观看AV| 国产免费福利网站| 99无码中文字幕视频| 99中文字幕亚洲一区二区| 67194亚洲无码| 国产精品成| 99精品久久精品| 日韩在线播放中文字幕| 国产一二三区视频| 97影院午夜在线观看视频| 高清国产va日韩亚洲免费午夜电影| 国产jizzjizz视频| 在线观看网站国产| 亚洲中文字幕日产无码2021| 亚欧乱色视频网站大全| 九九九精品成人免费视频7| 成年人久久黄色网站| 久久黄色影院| 日韩精品专区免费无码aⅴ| 亚洲人妖在线| 91福利免费视频| 久久亚洲日本不卡一区二区| 日韩欧美视频第一区在线观看| 亚洲色图综合在线| 国产欧美日韩专区发布| 欧美日韩在线观看一区二区三区| 国产美女在线免费观看| 精品福利网| 亚洲天堂网在线视频| 免费女人18毛片a级毛片视频| 中文字幕在线一区二区在线| 国产日韩久久久久无码精品 | 成人福利在线视频免费观看| 一区二区三区国产| 免费a级毛片视频| 91精品视频在线播放| 亚洲娇小与黑人巨大交| 国产免费久久精品99re丫丫一| 99视频精品全国免费品| 97视频在线观看免费视频| 国产人人乐人人爱| www亚洲天堂| 国产精品手机在线播放| 日韩无码视频专区| 在线日韩日本国产亚洲| 国产精品吹潮在线观看中文| 婷婷色一二三区波多野衣| 一级在线毛片| 久久精品无码中文字幕| 国产免费好大好硬视频| 欧美成人手机在线观看网址| 久久综合色88| 欧美伦理一区| 亚洲91精品视频| 国产免费羞羞视频| 欧美一级99在线观看国产| 香蕉99国内自产自拍视频| 国产成人艳妇AA视频在线| 国产偷国产偷在线高清| 一级毛片在线播放免费观看| 国产sm重味一区二区三区| 久久国产精品国产自线拍| 国产午夜一级毛片| 九九九久久国产精品| 欧美一级在线| 99热这里只有精品久久免费| 国产欧美视频在线| 伊人成人在线| 77777亚洲午夜久久多人| 亚洲av日韩av制服丝袜| 欧美黄网在线|