亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于事務的功能驗證方法

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

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

        關鍵詞:功能驗證;事務;測試平臺;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 引 言

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

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

        2 基于事務的驗證方法

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

        2.1 事務的概念

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

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

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

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

        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的響應信號。一個設計往往具有不同的接口,在一個驗證環(huán)境中針對不同接口需要不同的TVM。

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

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

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

        3 應用實例

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

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

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

        3.1 驗證計劃的制定

        設計都是基于一定的規(guī)范文檔,是驗證和設計的共同出發(fā)點,是最好的參考和準測。通常包括2個不同抽象級別的文檔:一是結構級的規(guī)范,定義了設計的功能要求,如上述FIFO的基本工作原理;二是設計規(guī)范,詳細地描述系統(tǒng)在模塊級的具體實現[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類似,區(qū)別是empty為0的時候可以讀出數據,empty為1的時候禁止讀使能信號的產生。

        check task校驗空滿指針產生和讀出數據的正確性。通常對于仿真結果的校驗主要包括2個部分[6,7]:在仿真時對設計點的監(jiān)控;把監(jiān)控捕獲值與期望值自動做比較,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中給出錯誤發(fā)生的時刻和具體i,k及其差值,快速定位錯誤發(fā)生的位置。

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

        基于事務的tests程序就是一系列有序或隨機調用系統(tǒng)中各個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設計有利于驗證平臺的重用,大量減少驗證時間,縮短開發(fā)周期。

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

        參考文獻

        [1]\\[美\\]拉申卡,帕特森,信赫.系統(tǒng)芯片(SoC)驗證方法與設計[M].孫海平,丁健,譯.北京:電子工業(yè)出版社,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].張雅綺,李鏘,譯.北京:電子工業(yè)出版社,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。

        久久麻传媒亚洲av国产| 成人爽a毛片一区二区免费| 久久天天躁狠狠躁夜夜中文字幕| 国产网友自拍视频在线观看| 亚洲女人毛茸茸粉红大阴户传播| 国产精品无码无片在线观看3d| 亚洲在AV极品无码天堂手机版| 久九九久视频精品网站| 蜜桃精品视频一二三区| 无码国产精品久久一区免费| 蜜桃av噜噜一区二区三区| 色婷婷狠狠97成为人免费 | 亚洲国产精品日韩av专区| 欧美性生交活xxxxxdddd | 国内精品91久久久久| 日本一区二区不卡二区| 免费看又色又爽又黄的国产软件| 国产一区二区三区av在线无码观看 | 亚洲在线精品一区二区三区| 欧美国产综合欧美视频| 国产人妻黑人一区二区三区| 国产一区二区三区杨幂| 亚洲一区二区三区偷拍女| 小sao货水好多真紧h无码视频| 久久精品re| 久久少妇呻吟视频久久久| 亚洲av无码精品无码麻豆| 无码精品人妻一区二区三区人妻斩| 啪啪视频一区二区三区入囗| 亚洲国产女同在线观看| 人妻丰满熟av无码区hd| 国产麻无矿码直接观看| 亚洲免费无毛av一区二区三区| 亚洲精品一区三区三区在线| 曰本人做爰又黄又粗视频| 制服丝袜视频国产一区| 男女一区视频在线观看| 久人人爽人人爽人人片av| 好爽…又高潮了毛片免费看| 亚洲区1区3区4区中文字幕码| 久久精品国产亚洲av天 |