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

基于事務的功能驗證方法

2008-04-12 00:00:00
現代電子技術 2008年6期

摘 要:功能驗證是百萬門級IC設計中的一個重要瓶頸。基于事務的驗證方法把驗證工作提高到一個更高的抽象層次,減少了驗證中對信號級時序細節的考慮,更注重于事務級行為的驗證,并可提高驗證代碼編寫的重用性,有利于提高驗證的工作效率。介紹這種功能驗證方法及其測試平臺的建立。

關鍵詞:功能驗證;事務;測試平臺;IC設計

中圖分類號:TN710 文獻標識碼:B

文章編號:1004-373X(2008)06-001-03

Transaction-based Functional Verification Methodology

JIANG Long,MA Qi

(IC CAD Research Center,Hangzhou Dianzi University,Hangzhou,310018,China) Abstract:Functional verification is an important bottleneck in millions gates IC design.Transaction-Based Verification methodology (TBV) and the establishment of testbench based on TBV,which raises the verification effort to a higher abstract level.It improves the verification processed by presenting information in terms of transactions and their relationships,rather than signals and waveforms.Therefore,it enhances the reusability of each component in the testbench,and causes to be more effective to the function verification of RTL description.

Keywords:functional verification;transaction;testbench;IC design

基金項目:浙江省重大科技攻關項目資助(2004C17002)

1 引 言

隨著集成電路復雜度進一步加大,驗證變得非常困難。比如,在規模達到數百萬門ASIC、復用IP核的SoC設計中,驗證至少占據70%以上的設計工作量[1]。估計驗證所花的時間將隨設計規模呈平方增長,驗證工作的增長速率將超過摩爾定律。因此,如何采用有效的驗證工具和技術是業界越來越關心的一個問題。

本文介紹一種基于事務的驗證方法,可以在一個較高的抽象層次上進行功能驗證,從而加速測試平臺(Testbench)的開發。并以一個FIFO設計為例,介紹了這種驗證方法中Testbench的架構、事務驗證模型的組織和構建,在較高抽象層次的調用,以及在仿真軟件工具環境下相關運行程序。

2 基于事務的驗證方法

一個有效的驗證測試集,應該有盡可能高的覆蓋率,具有自檢功能以避免手工確定期望值,在仿真中很容易確定設計的錯誤,很方便分析覆蓋率確定這個測試集的質量[2]。基于事務的驗證方法有助于構建這樣的測試集。

2.1 事務的概念

事務(transaction)是指測試平臺(Testbench)和被驗證設計之間通過設計的特定接口進行的高層次數據或控制信號的傳輸。簡單的事務可以是對存儲單元的一次讀或寫,復雜的事務可以是數據通行中的一次報文傳輸[2]。事務的概念把Testbench分為2個層次:

(1) 頂層的測試,是建立在事務級的抽象層,形態上表現為多個事務的組合序列,不需要考慮各個事務中所需處理的信號級時序細節;

(2) 底層的事務,具體負責處理的信號級時序細節,由于信號級時序是針對被驗證設計的特定接口而言的,所以被驗證設計的不同接口具有不同的事務。

通過這種抽象,事務的概念把驗證上升到一個比較高的抽象層次[2],用戶可以少注重信號級時序細節,更多考慮事務級上的驗證行為,提高驗證的工作效率。

2.2 基于事務的驗證方法的基本組成元素

基于事務的驗證平臺主要是由3個部分組成[2],如圖1所示。

(1) 測試(tests)。他是定義驗證所需事務的一段程序(事務的組合序列),可以用HDL或是C/C++來描述。對于測試的編寫,不需要了解詳細的設計接口的協議,只需確定采用那些事務來產生激勵、事務的次序怎樣、相關事務在驗證中占有的比例等等。

(2) 事務驗證模型(Transaction Verification Model,TVM),也稱為transactor,或者是總線功能模型(Bus Function Model,BFM)。TVM是基于事務的驗證方法的核心,代表針對DUV特定接口的所有事務的集合,主要任務就是將高層次的事務轉化為其所代表的具體信號級時序的二進制信號,作為激勵信號通過與DUT相連的引腳傳輸給DUT,并接收DUT的響應信號。一個設計往往具有不同的接口,在一個驗證環境中針對不同接口需要不同的TVM。

(3) 被驗證設計(Design Under Verification,DUV)。就是需要驗證的設計描述,可以是RTL級代碼或門級網表。

2.3 基于事務的驗證方法的工作原理與流程

基于事務的驗證方法(Transaction Based Verification,TBV)中,tests是一段事務集合的程序,他并不關心每一個事務所代表的具體信號時序,這些事務的信號表示在TVM中被解釋。而在TVM中,事務是由稱為“任務”(task)的子程序轉換成DUV所需要的具體信號,然后通過設計接口連接到DUV。也就是說,TVM由單個的任務子程序組成。使用TVM最大的好處就是驗證工程師只需要處理高層次的事務,不需要關注具體的細節,能更好地把握整個驗證環境。TBV方法的工作流程[1]如圖2所示。

3 應用實例

用一個FIFO為例,詳細介紹TBV方法在具體設計中的應用。

在數字電路系統的設計中,數據從一個時鐘域傳遞到另一個時鐘域,并且當目標時鐘域與源時鐘域不相關時,這些域中的動作是不相關的。獨立時鐘域之間高性能并行接口可用異步FIFO存儲器來實現[3,4]。其結構圖如圖3所示。

存儲器(16×8 b)模塊有2個指針,讀指針和寫指針。這2個指針是由讀寫控制器產生,復位后,讀寫指針都被清零。寫指針總是指向下一個將要寫入的單元,每寫入一個數據后,寫指針增加,指向下一個要寫入的位置;同樣,讀指針總是指向將要讀出的單元,每讀出一個數據后,讀指針增加,指向下一個要讀出的單元。當存儲器中沒有空間可寫是,產生滿標志位;當存儲器中沒有數據可讀時,產生空標志位。

3.1 驗證計劃的制定

設計都是基于一定的規范文檔,是驗證和設計的共同出發點,是最好的參考和準測。通常包括2個不同抽象級別的文檔:一是結構級的規范,定義了設計的功能要求,如上述FIFO的基本工作原理;二是設計規范,詳細地描述系統在模塊級的具體實現[5],如圖3所示的基本結構圖。驗證工程師由此指定驗證的目標和任務,如驗證途徑、驗證技術、采用的模型、基本功能的驗證、邊界條件的驗證,隨機性驗證等,形成驗證計劃[1]。本例中為敘述簡單,主要關注空滿指針標志位產生時FIFO的行為和FIFO讀出數據的正確性。

3.2 Testbench結構及TVM構建

整個Testbench結構如圖4所示。

FIFO的功能是在2個不同的時鐘域之間傳遞數據,因此針對寫時鐘域和讀時鐘域相關接口構建了2個TVM,對應寫時鐘域接口的TVM(write TVM)為FIFO提供(寫入)數據,對應讀時鐘域接口的TVM(read TVM)用于處理從FIFO中讀出的數據,主要是檢查讀出數據正確與否以及空滿指針標志位的產生情況。

TBV將不同接口的事務通過任務子程序封裝在不同的TVM中,在Testbench頂層(tests)中調用或例化這些TVM(不同功能的TVM和對應于設計中的不同接口)的任務。tests中可以多次調用某一個TVM任務或者同時調用多個TVM任務,完成事務到具體信號之間的轉換。

在write TVM中,封裝2個任務:write task和wrst task。wrst task為寫時鐘域提供復位信號。write task按照圖5所示的寫數據時序,當full為0時,在時鐘下降沿同步產生輸入數據data和寫使能控制信號wen。輸入數據和寫使能信號延長一個必要的保持時間后消失。當full為1的時候禁止data和wen的產生,避免出現邏輯錯誤。在write task中,輸入數據由一個自加“1”加法器在寫時鐘的下降沿產生,在緊接著的上升沿被讀入到存儲器中。

在read TVM中封裝了3個任務:rrst task,read task,check task。

rrst task為讀時鐘域提供復位信號。read task將FIFO中的數據讀出,相關控制信號的時序與圖5類似,區別是empty為0的時候可以讀出數據,empty為1的時候禁止讀使能信號的產生。

check task校驗空滿指針產生和讀出數據的正確性。通常對于仿真結果的校驗主要包括2個部分[6,7]:在仿真時對設計點的監控;把監控捕獲值與期望值自動做比較,check task采用第2種方法。為了確定寫入數據和讀出數據的個數,在check task中定義2個變量i,k表示已寫入和讀出的數據個數。check task的檢驗程序如下:

if((wfull==1)||(rempty==1))

if ((i-k>14)||(i-k<2))

begin

display(\"---i=%d,---k=%d,---i-k=%d\",i,k,i-k);

end

else

display(\"i-k=%d,error\",i-k);

finish;

當空或者滿指針為1后比較i,k2個變量來確定存儲器中數據的個數,以驗證空、滿指針產生正確與否。當i-k>14時,wfull=1。當i-k<2時rempty=1。若有錯誤,在check task中給出錯誤發生的時刻和具體i,k及其差值,快速定位錯誤發生的位置。

[BT3+*2]3.3 基于事務的tests的建立

基于事務的tests程序就是一系列有序或隨機調用系統中各個TVM任務 [2]。一個比較完整的同時讀寫的tests流程如下:

initial

read_TVM.rrst; [JY]//讀時鐘域復位

initial

write_TVM.wrst;[JY]//寫時鐘域復位

initial

begin

repeat(n)[JY]//提供n個輸入數據

write_TVM.write;[JY]//寫數據

end

always

begin

delay m; [JY]//經過m個延時后開始讀數據

read_TVM.read;[JY]//讀數據

read_TVM.check;[JY]//對所讀數據校驗

end

讀寫時鐘域邏輯復位后,調用write TVM中的write task n次,即為FIFO提供n個輸入數據。經過適當的m個延時后,再調用read TVM中的read task,將FIFO中的數據讀出。并在每讀出1個數據后都調用1次read TVM中的check task來校驗所讀數據的正確性。其中為FIFO提供數據的個數以及調用read task的延時時間都是參數可調的,方便不同情況下的驗證工作。

4 結語

驗證是一個過程,而不是一系列驗證平臺的簡單集合。在基于事務的驗證平臺中,如同IP設計一樣,采用標準接口的TVM設計有利于驗證平臺的重用,大量減少驗證時間,縮短開發周期。

模塊化和可重用的驗證平臺可以采用TestBuilder,Vera或Specman Elite等來開發。,

參考文獻

[1]\\[美\\]拉申卡,帕特森,信赫.系統芯片(SoC)驗證方法與設計[M].孫海平,丁健,譯.北京:電子工業出版社,2005.

[2]Dhananjay S Brahme,Steven Cox,Jin Gallo,et al.The Transaction Based Verification Methodology[OL].Cadence Berkeley Labs,http://www.mentor.com,2000.

[3]Clifford E Cummings.Simulation and Synthesis Techniques for Asynchronous FIFO Design[OL].SNUG 2002 (Synopsys Users Group Conference,San Jose,CA,2002) User Papers,Section TB2,2nd paper.http://www.sunburst-design.com/papers/,March 2002.

[4]Michael D Ciletti.Advanced Digital Design with the Verilog HDL[M].張雅綺,李鏘,譯.北京:電子工業出版社,2006.[LL]

[5]Janick Bergeron.Writing Testbench Function Verification of HDL Models[M].Kluwer Academic Publishes,2003.

[6]Michael Keating.Reuse Methodology Manual for System-on-a-Chip Design[M].Third Edition.Kluwer Academic Publishers,2002.

[7]William K Lam.Hardware Design Verification Simulation and Formal Method-based Approaches[M].Prentice Hall PTR,2005.

作者簡介江 龍 男,1983年出生,碩士研究生。研究方向為VLSI設計與EDA技術。

馬琪男,1968年出生,博士,研究員。研究方向為集成電路設計及CAD。

主站蜘蛛池模板: 国产男人天堂| 久久国产精品夜色| 97av视频在线观看| 国产麻豆aⅴ精品无码| 精品自窥自偷在线看| 97超级碰碰碰碰精品| 久久夜夜视频| 国产a v无码专区亚洲av| 一级毛片a女人刺激视频免费| 无码中文字幕精品推荐| 国产精品香蕉| 亚洲性影院| AV无码一区二区三区四区| 精品久久久久成人码免费动漫| 欧美亚洲日韩不卡在线在线观看| 亚洲第一成网站| 无码网站免费观看| 国产va在线观看免费| 国产成人在线小视频| 97se亚洲综合在线天天| 8090午夜无码专区| 国产熟女一级毛片| 无码啪啪精品天堂浪潮av | 欧美精品亚洲精品日韩专区va| 久久精品丝袜高跟鞋| 最新亚洲人成无码网站欣赏网| 国产成人无码播放| 国内精品免费| 亚洲国产日韩在线成人蜜芽| 在线看国产精品| 91精品免费高清在线| 日韩精品欧美国产在线| 91丝袜美腿高跟国产极品老师| 中国国产高清免费AV片| 青青国产在线| 天天婬欲婬香婬色婬视频播放| 一级爱做片免费观看久久| 日a本亚洲中文在线观看| 亚洲制服中文字幕一区二区 | 日韩麻豆小视频| 天堂网亚洲综合在线| 免费无码又爽又黄又刺激网站| 国产精品久久久久久搜索| 久久99久久无码毛片一区二区| 亚洲精选无码久久久| 国产二级毛片| 亚洲中文字幕97久久精品少妇| 国产欧美亚洲精品第3页在线| 人妻少妇乱子伦精品无码专区毛片| 亚洲欧美国产视频| 国产96在线 | 色婷婷狠狠干| 国产成人亚洲日韩欧美电影| 国产精品极品美女自在线网站| 台湾AV国片精品女同性| 日本三区视频| 欧美国产日韩在线| 亚洲精品大秀视频| 国产成人亚洲欧美激情| 激情影院内射美女| 亚国产欧美在线人成| 亚洲男人的天堂在线观看| 国产中文一区二区苍井空| 国产免费a级片| 久草视频中文| 国产精品自在拍首页视频8| 午夜精品久久久久久久99热下载 | 国产理论精品| 欧美性色综合网| 99er这里只有精品| 久久精品国产精品青草app| 成色7777精品在线| 综合色在线| 全部无卡免费的毛片在线看| 成人一级黄色毛片| 国产人人射| 亚洲高清无在码在线无弹窗| 国产jizz| 国产精品视频公开费视频| 日韩午夜伦| 精品国产三级在线观看| 久久无码av三级|