• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      以覆蓋率為導(dǎo)向的自動化驗證平臺

      2013-11-05 06:43:24王紅衛(wèi)占楊林梁利平
      電子測試 2013年5期
      關(guān)鍵詞:覆蓋率指令波形

      王紅衛(wèi) 占楊林 梁利平

      (中國科學(xué)院微電子研究所,北京 100029)

      隨著大規(guī)模集成電路系統(tǒng)設(shè)計的飛速發(fā)展,集成規(guī)模日益龐大,集成功能日益復(fù)雜。芯片驗證在芯片研發(fā)中所占的比例越來越重,占據(jù)了整個研發(fā)周期的70%以上[1]。芯片驗證已成為整個芯片流程中的瓶頸,驗證的完備性和驗證效率的提高成為驗證的難點,也是目前驗證的主要研究方向。

      目前,數(shù)字芯片設(shè)計驗證領(lǐng)域在驗證技術(shù)、驗證方法學(xué)、驗證語言、IP核重用驗證、驗證流程及評估等方面都取得了巨大的進(jìn)步。但是,驗證技術(shù)已經(jīng)落后于設(shè)計和制造能力,成為整個數(shù)字芯片領(lǐng)域發(fā)展的瓶頸,制約了設(shè)計生產(chǎn)率的提高。隨著驗證技術(shù)的逐步發(fā)展,現(xiàn)在以測試向量自動生成技術(shù)(Testautomation)為代表的高級驗證技術(shù)[2]已逐步取代傳統(tǒng)的基于直接檢測(Direct-test)的驗證技術(shù),而在高復(fù)雜度數(shù)字芯片設(shè)計中發(fā)揮越來越重要的作用。此外,EDA行業(yè)也提出了種種新的驗證方法,包括基于覆蓋率的驗證方法,軟硬件協(xié)同驗證的方法,基于斷言的驗證方法等。針對具體的系統(tǒng)實現(xiàn),選擇合理的驗證方法,可以大大減少驗證的時間。

      本文闡述了Diamond多核DSP處理器系統(tǒng)所采用的將測試向量自動生成的驗證技術(shù)和基于覆蓋率為導(dǎo)向相結(jié)合的驗證方法[3],并加入了高可觀測性的自動檢測機(jī)制,建立了一個可重用的自動化驗證平臺。

      1 DUT概述

      Diamond 處理器是一種可以和32位通用RISC處理器無縫連接的DSP處理器。整個處理器兼容通用32位CPU指令集,同時具有自己完整功能的DSP擴(kuò)展指令集,使得整個處理器既可以作為CPU使用,也可以作為DSP使用。

      本文中的DUT是Diamond處理器系統(tǒng)的數(shù)據(jù)通路(Datapass)部分,其結(jié)構(gòu)如圖1所示。它內(nèi)部由Decode_32、ALU、MUL、LDST、DAG、Reg_pool組成。Decode_32模塊完成32位指令的譯碼,轉(zhuǎn)換成11位編碼分配給各個運算模塊。ALU模塊處理加減、移位等邏輯運算指令功能。MUL模塊主要處理乘法、乘累加等乘法類指令功能。LDST模塊完成memory的數(shù)據(jù)存儲功能。DAG模塊主要完成memory地址運算的功能。Reg_pool是系統(tǒng)的寄存器堆,所有指令的數(shù)據(jù)都要從這里讀出,運算結(jié)果最終也要寫回到這里。

      整個系統(tǒng)的數(shù)據(jù)通路主要是由這幾個模塊通過分配好的流水級進(jìn)行指令的譯碼,數(shù)據(jù)和地址的運算,最終寫回到寄存器堆中相應(yīng)的寄存器中。

      圖1 Diamond DSP處理器系統(tǒng)的數(shù)據(jù)通路簡圖

      2 驗證平臺的設(shè)計

      根據(jù)DSP處理器系統(tǒng)的特性及驗證需求,設(shè)計的平臺結(jié)構(gòu)如圖2所示。各個模塊的功能如下文描述。

      2.1 Makefile

      Makefile是用于自動編譯并優(yōu)化程序結(jié)構(gòu)的UNIX統(tǒng)一體。用這個文件來組織我們的驗證環(huán)境,能夠方便地指定仿真庫和模式、網(wǎng)表路徑、配置仿真模式、控制仿真波形的開關(guān)、重命名log文件等功能[4]。DSP自動驗證環(huán)境集成了兩種驗證方式:Special方式和Random方式。只需要輸入相應(yīng)的命令make special或make random,自動生成相應(yīng)的log文件和wave文件,方便快速定位錯誤并修正bug。

      2.2 Run script

      它是一個腳本文件,主要用于設(shè)置本地仿真環(huán)境、創(chuàng)建目錄文件并復(fù)制環(huán)境、更新模塊文件、運行仿真等功能。

      2.3 Vector file

      向量文件是所有測試激勵的集合,在DSP自動化驗證平臺中,采用受約束的隨機(jī)激勵為主,定向激勵為輔的驗證策略。我們有兩種不同的測試向量:自動生成的隨機(jī)測試向量[5]和根據(jù)DSP指令編寫的定向測試向量。隨機(jī)測試向量是用C語言編寫的偽隨機(jī)生成程序自動產(chǎn)生的32位指令編碼,指令之間滿足DSP系統(tǒng)中的指令約束關(guān)系,測試的覆蓋范圍比定向測試要全面,比完全隨機(jī)測試覆蓋點準(zhǔn)確,有效地縮短達(dá)到目標(biāo)覆蓋率的時間。定向測試向量是由我們?nèi)藶榫帉懀ㄟ^對覆蓋率的分析,會得出一些驗證上的功能“遺漏點”,這些“遺漏點”是偽隨機(jī)生成程序無法覆蓋到的功能點,通過定向測試向量的添加能夠提高整體的覆蓋率。

      2.4 Regression.pl

      它是一個perl腳本[6]文件,主要用于生成固定格式的report文件,重命名及保存生成的log文件和波形文件。

      2.5 Dump.v

      波形控制文件dump.v主要通過調(diào)用VCS自帶的波形操作函數(shù),保存仿真波形,為方便驗證打開或者關(guān)閉某些模塊的波形保存等等。

      2.6 Hier_cov.file

      主要用于指定覆蓋率收集的層級關(guān)系,其中包括添加或者刪除某些模型的覆蓋率收集操作等等。

      2.7 SDF文件

      SDF文件用于后仿,它包括單元延時,設(shè)置并保存檢測的時序信息,

      2.8 Model

      Model是驗證人員根據(jù)待測芯片的功能行為描述編寫的效仿模型,通過測試激勵的輸入把Model中的輸出作為期望結(jié)果與待測芯片中得到的輸出結(jié)果進(jìn)行比較,對芯片進(jìn)行功能驗證。

      圖2 自動化驗證平臺結(jié)構(gòu)圖

      2.9 Design monitor

      該驗證環(huán)境設(shè)置了一個監(jiān)視器,主要是用來監(jiān)視DUT輸出的數(shù)據(jù),這些數(shù)據(jù)是自動檢測機(jī)制無法檢查到的。比如控制指令之間數(shù)據(jù)相關(guān)的stall信號,如果有問題,就會第一時間被監(jiān)視器捕捉到并顯示在log文件里。

      2.10 Autocheck機(jī)制

      自動檢測機(jī)制主要有兩個功能:

      一是檢查經(jīng)過指令譯碼后的DUT中11位指令編碼與驗證平臺中的編碼是否相同,保證進(jìn)入下層模塊的指令正確性。

      二是對數(shù)據(jù)的比較,首先是測試生成程序?qū)拇嫫鞫训某跏蓟蹬c驗證環(huán)境中的寄存器值相比較,這是對輸入數(shù)據(jù)的比較,只有保證輸入的正確性,才能進(jìn)行之后數(shù)據(jù)的比較。其次是DUT輸出的結(jié)果與驗證環(huán)境得到的期望結(jié)果之間的比較。這種三方之間的比對機(jī)制,保證了DUT功能的正確性。

      2.11 Simulation log file

      仿真log文件是仿真的輸出,包括了cycle、data、engine控制信息,我們可以通過log文件的信息找到出錯的寄存器以及時間點,從而快速定位bug。

      3 以覆蓋率為導(dǎo)向的驗證方法

      以覆蓋率為導(dǎo)向的驗證方法(Coverage-Driven Verification)[7]是根據(jù)功能覆蓋點來測量驗證進(jìn)度,這些功能覆蓋點可以確定一個功能是否被驗證過。這樣,驗證的目標(biāo)變?yōu)樘顫M設(shè)計的功能覆蓋模型。以覆蓋率為導(dǎo)向的驗證方法可以直接測試平臺來填滿這個功能覆蓋率模型,或者可以讓一個隨機(jī)的測試平臺生成測試集驗證功能。

      在自動化驗證環(huán)境中,我們通過將隨機(jī)測試生成程序產(chǎn)生的偽隨機(jī)測試向量作為測試激勵,反復(fù)不斷地進(jìn)行指令的隨機(jī)測試,得到覆蓋率信息,因為測試向量是根據(jù)偽隨機(jī)序列機(jī)制生成的,肯定會有一些功能點沒有覆蓋到。此時通過對覆蓋率的分析可以確定哪些功能點已經(jīng)覆蓋,哪些測試激勵是多余的,為功能“遺漏點”添加定向測試向量進(jìn)行覆蓋并消除冗余的測試激勵,進(jìn)而提高覆蓋率。圖3為以覆蓋率為導(dǎo)向的驗證方法的流程,整個流程包括兩個環(huán)路,在實際應(yīng)用中,可能需要多次迭代才能完成驗證。

      圖3 以覆蓋率為導(dǎo)向的驗證流程圖

      4 驗證過程與結(jié)果分析

      4.1 驗證過程與結(jié)果

      驗證DSP數(shù)據(jù)通路(Datapass)仿真出來的存儲類指令讀寫memory操作部分波形如圖4所示。自動檢測機(jī)制會檢查DUT的輸出結(jié)果,將該結(jié)果與驗證平臺中得到的期望結(jié)果進(jìn)行比較,如果相等,說明DUT中存儲類指令讀寫memory的操作功能是正確的。同理可以檢查其它操作的驗證結(jié)果。驗證過程中采用了在生成的log文件中根據(jù)是否存在錯誤報告來判斷設(shè)計時都存在缺陷,免去了直接從仿真波形上查到錯誤的繁瑣性。如果仿真過程中報出錯誤,但從log文件上看不出錯誤原因,那么就要通過仿真波形來觀察錯誤發(fā)生的原因。根據(jù)芯片支持多種類型指令操作的特性,而且指令之間會存在數(shù)據(jù)相關(guān)等問題,為了提高驗證的效率,我們開發(fā)了自動生成程序,用于生成受約束的隨機(jī)測試向量,覆蓋到了絕大部分指令功能,通過多次回歸測試[8],分析覆蓋率,為隨機(jī)測試未覆蓋到的指令功能添加定向測試向量,所有的測試向量全部通過并且使覆蓋率達(dá)到了100%。

      圖4 存儲類指令讀寫memory操作部分波形圖

      4.2 第三方軟件仿真結(jié)果比較機(jī)制

      該驗證平臺中除了傳統(tǒng)的兩方對比機(jī)制外,還添加了軟件模擬器生成的測試結(jié)果比較,在仿真運行過程中,通過調(diào)用系統(tǒng)指令SystemCall可以在仿真過程中檢測測試結(jié)果的正確與否,該軟件模擬器由SystemC編寫完成,同樣是根據(jù)設(shè)計中的約束進(jìn)行配置,它帶來的好處是防止DUT與測試環(huán)境產(chǎn)生同樣的錯誤而導(dǎo)致出現(xiàn)同樣的錯誤結(jié)果;另一方面也提高了功能驗證中的完善性和正確性。第三方結(jié)果比較機(jī)制的添加,使驗證人員能夠及時發(fā)現(xiàn)驗證環(huán)境中無法發(fā)現(xiàn)的功能遺漏點,縮短了驗證周期,節(jié)省了人力物力。

      4.3 驗證平臺的可重用性

      本文設(shè)計的驗證平臺結(jié)構(gòu)清晰,模塊間相對獨立。在驗證其它DUT時,驗證平臺中的監(jiān)視器,自動檢測機(jī)制可以直接復(fù)用[9],而驗證環(huán)境中的功能模塊可以根據(jù)DUT的特性加以修改便可重用。這樣可以節(jié)省重新編寫代碼的時間,加速了驗證的進(jìn)程。

      5 結(jié)論

      以覆蓋率為導(dǎo)向的DSP自動化驗證平臺,借助于隨機(jī)測試向量生成的自動化,使驗證工人員不需要手工編寫繁雜的測試向量,數(shù)據(jù)比對過程完全自動化,省去了人工比對波形的繁復(fù)工作。另外,平臺中添加以覆蓋率為導(dǎo)向的驗證策略,保證了功能覆蓋的完全。經(jīng)過分析可以看出,該驗證平臺模塊化強(qiáng)、易于理解和重用,驗證過程自動化,能夠有效地提高驗證效率,確保驗證功能的完整性。

      [1] 劉燕,王京梅.基于VMM的流量管理芯片驗證[J].現(xiàn)代電子技術(shù),2009(12):15-18.

      [2] 董楊鑫,鄭建宏.基于斷言的SoC設(shè)計驗證方法[J].電子測試,2007(2):52-55.

      [3] Qiu Li, Feng Dong-qin. Functional Verification of EPA Chip.[C]// Proc. International Conference on Electric Information and Control Engineering(ICEICE) 2011.[S.l.]:IEEE Press, 2011:1-5.

      [4] 陳皓.跟我一起寫Makefile. [EB/OL].[2012-06-18].http://www.Cublog.cn/u/19881/upfile /060718103303.pdf.

      [5] Carl Pixley, Aruna Chittor, Fred Meyer. Functional Verification 2003:Technology, Tools and Methodology. [C]// Proc. ASIC, 2003.[S.l.]:IEEE Press, 2003:1-5.

      [6] Randal L.Scbwartz, Tom Pboenix.Perl語言入門[M] 南京:東南大學(xué)出版社,2009.

      [7] 褚曉濱,陸鐵軍.結(jié)合斷言與覆蓋率為導(dǎo)向的驗證方法[J].微電子學(xué)與計算機(jī),2008(11):40-43.

      [8] 侯海軍,郭斌林.基于VMM的芯片驗證平臺設(shè)計[J].中國水運,2008(12):22-35.

      [9] O.Petlin,A. Genusov, L. Wakeman. METHODOLOGY AND CODE REUSE IN THE VERIFICATION OF TELECOMMUNICATION SOCs [C]// Proc. 13th Annual IEEE International ASIC/SOC Conference, 2000.[S.l.]:IEEE Press, 2000:187-191.

      猜你喜歡
      覆蓋率指令波形
      聽我指令:大催眠術(shù)
      民政部等16部門:到2025年村級綜合服務(wù)設(shè)施覆蓋率超80%
      我國全面實施種業(yè)振興行動 農(nóng)作物良種覆蓋率超過96%
      對《壓力容器波形膨脹節(jié)》2018版新標(biāo)準(zhǔn)的理解及分析
      ARINC661顯控指令快速驗證方法
      基于LFM波形的靈巧干擾效能分析
      LED照明產(chǎn)品歐盟ErP指令要求解讀
      電子測試(2018年18期)2018-11-14 02:30:34
      基于噴丸隨機(jī)模型的表面覆蓋率計算方法
      基于ARM的任意波形電源設(shè)計
      大連臺使用CTS-1記錄波形特點
      宝兴县| 逊克县| 苍溪县| 秀山| 达日县| 普安县| 房产| 正镶白旗| 青龙| 广宁县| 农安县| 西青区| 金山区| 焉耆| 安阳市| 游戏| 肃宁县| 嵊州市| 洛扎县| 尚义县| 青川县| 华池县| 和田市| 河池市| 阳江市| 石景山区| 陕西省| 红河县| 北安市| 楚雄市| 特克斯县| 柘城县| 庄河市| 田东县| 泰兴市| 双流县| 昌图县| 宜昌市| 库伦旗| 丰都县| 沛县|