




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
各種流行驗證技術在芯片設計流程中的應用
本文闡述了當今流行的驗證技術(形式驗證、隨機、定向、約束隨機、斷言、屬性檢查)和語言(SystemC、C/C++、SystemVerilog、Open-VERA、E等等),還探討了各種驗證技術在數字ASIC傳統設計流程中的場合(應采用何種技術和語言)和時機(設計者何時需要運用某項特定的技術或語言)。功能驗證在設計周期中占了最大的一部分,這是一個人所共知的事實。然而,面對如此眾多用于緩解該問題的現有技術,我們真正應該采用的是哪一項(或哪幾項)?得到的答案通常并不簡單明了,而且往往令人感覺含混不清和成本昂貴!抽象級越高,設計就越容易;同理,抽象級越高,就越容易犯較大的錯誤。如果產生架構缺陷,就有可能損害整個芯片,這與發(fā)生在邏輯門連接表級上的導線誤連接是截然不同的(后者可通過重新連線的方法得到修復)。以Verilog為例,它為設計者提供了一個較為簡易的接口,以便在一個相當抽象的等級上進行設計。然而,如果設計者并不知曉在多個設計周期中獲得的語言的細微差別,那么就非常容易犯錯。許多論文重點闡述了Verilog誤用的不良后果。當設計曾經是瓶頸時,Verilog獨立地使設計生產率取得了指數性的提高(如采用原理圖捕獲),并首先推進了復雜芯片的開發(fā)!在眾多的驗證技術和語言、檢驗成為瓶頸的今天,相同的爭議仍然存在。驗證瓶頸EDA行業(yè)通過引入工具來幫助提升設計生產率,進而達到縮短產品時間的目的,并最終實現設計時間的縮減。設計時間與硅片復雜性之間存在某種函數關系。硅片復雜性指的是工藝精細度調整以及新型材料或新型架構的引入對器件互連的影響。在硅片結構中擁有復雜性的能力將導致系統復雜性的形成(由于特征尺寸的縮小以及消費者對增加功能的需求而在相同的面積之內壓縮進更多晶體管的能力)。隨著設計方案構筑過程中所集成的晶體管數量的指數性增加,計算時間或工程師數量的線性增加已不足以縮短設計時間。系統復雜性繼續(xù)按照摩爾定律增加,而功能復雜性(一個系統所具有的不同狀態(tài)的數量)的增長速度則更加迅猛。為解決這一問題,EDA行業(yè)提出了通過自動化來實現“設計抽象”(DesignAbstraction)的概念。從能夠在多個電路層上捕獲設計的原理圖捕獲工具到基于語言的解決方案等均已面市。這種追隨形勢需要的設計手法仍然是適當的。EDA界即將推出并給予支持的最新語言是SystemC和SystemVerilog,它們能夠解決一些由目前所采用的技術和工藝造成的系統復雜性問題。我們可以說,就目前的技術工藝而言,設計復雜性已經得到了很好的理解,而且,設計瓶頸也因為采用EDA工具所實現的生產率提高而在一定程度上得到了克服。設計生產率的提升速度將繼續(xù)低于復雜性的增速,此時與之相關的瓶頸已并非設計時間,而是驗證時間由于下列原因所導致的設計抽象級的提高是形成驗證瓶頸的罪魁禍首之一。1.在一個較高的抽象級上進行設計使得我們能夠輕松地構筑高度復雜的功能。設計復雜性的這種增加接著會導致驗證工作量幾乎翻番(如果設計者考慮增加鎖存器和邏輯門的數量,這就等于功能復雜性將加倍,而且其驗證范圍也將因此翻番)。2.在設計、變換以及至終端產品的最終映射中采用較高的抽象級總會存在信息損失和解釋錯誤的情況。比如,采用HDL級設計并將之變換為邏輯門級(映射至某一特定技術)的綜合過程;在這一級上需要進行驗證,以保證所實施的變換正確無誤,而且設計內容沒有丟失。提高抽象級還會帶來代碼解釋方面的問題,代碼解釋是用來在仿真過程中對設計進行描述的,用于確保所編寫的代碼如實地反映了功能規(guī)范。其他影響驗證問題的因素包括:1.由于當今設計的異類特性(比如硬件-軟件、模擬-數字的共存等)所導致的功能復雜性的增加;
2.對較高的系統可靠性的要求迫使驗證工作必須確保芯片級功能可在系統環(huán)境中圓滿地執(zhí)行,尤其是當某個芯片級缺陷具有多重影響時更應如此。相關統計結果表明:驗證問題是客觀存在的,并正在耗費有關的公司的巨額資金。設計差錯導致的芯片缺陷:在由于邏輯和功能缺陷的緣故而導致需要進行重新布線的設計當中,有82%存在著設計差錯。這意味著在驗證過程中并未考慮一些極端場合,而且一直到最后的檢查之前,bug都會隱匿在設計之中。規(guī)范誤差導致的芯片缺陷:在由于邏輯和功能缺陷的緣故而導致需要進行重新布線的設計當中,有47%存在著規(guī)范不正確或不完整的情況。在由于邏輯和功能缺陷的緣故而導致需要進行重新布線的設計當中,有32%對規(guī)范進行了改動。采用復用IP和外來IP所引發(fā)的問題:14%的缺陷芯片在復用單元或外來IP中存在bug。重新布線的影響:重新布線有可能給公司帶來高達10萬美元的損失。此外,它還會推遲產品面市,并因采用這些缺陷芯片的系統所發(fā)生的故障而導致費用的上揚。
為了對付驗證瓶頸問題可以:1.提高設計師的生產率:這一領域大有優(yōu)化空間。設計生產率已經通過改善計算機性能、采用諸如微軟公司的軟件工具(如Excel)等個人工具而得到了提高。雖然它們在捕獲測試和驗證計劃中大有助益,但大部分時間卻花在了測試場合的編碼、運行和調試上。2.提高驗證生產率:這種方法明顯具有用于提升生產率的潛力。為了提高驗證生產率,EDA行業(yè)采用了一種與解決設計瓶頸問題相似的“抽象”概念。諸如Verilog和VHDL等高級語言被用來驗證芯片;包括諸如任務、線程(分*、連接)等以及諸如“while”等控制結構。這提供了對數據的進一步控制,以便在所有的功能隅角上實現設計的全面執(zhí)行。然而,這些構件過去是不可綜合的,因此未被設計師用作實際設計代碼的一部分。隨著復雜性的繼續(xù)提高,人們創(chuàng)建并引入了能夠在不同的抽象級上對復雜設計進行驗證的新型驗證語言。伴隨著這些新型語言的問世又出現了對其提供支持的技術和工具。驗證與確認(Validation)的比較除了驗證問題之外,芯片制造商還飽受確認時間的困擾。Kropf將“確認”定義為“通過檢查實現方案的工作行為來獲得對規(guī)范的信心的過程”。對驗證與確認的比較,觀點眾多。一種觀點是:“確認用于保證這是一種正確的設計,而驗證則用于保證設計是正確的”。另一種觀點是:“驗證是在硅片測試之前(Verilog/VHDL仿真等)進行的,而確認則是在硅片測試之后(在實驗室中,在電路板上進行硅片測試)進行”。不管是確認還是驗證,為了確保硅片滿足規(guī)范,有兩件事是必需做到的:1)芯片規(guī)范得到了正確的解釋(一般是借助文檔資料,有時也采用建模的方法);2)這種解釋被正確地捕獲和執(zhí)行(一般采用VHDL)、綜合到硅片之中、并被封裝為芯片。本文將第二步視作驗證,而把第一步看作確認。圖1給出了被業(yè)界用來確保上述兩個步驟得到滿足的常見設計流程的概況。視被執(zhí)行功能的復雜性的不同,可以跳過其中的某些步驟,也可以增加更多的步驟。例如,如果知道某個特定設計完全是面向硬件的,且不包括驅動器或軟件,便可從抽象級3直接跳至抽象級1(無需進行硬件-軟件折衷)。PLL(鎖相環(huán))設計似乎就是這樣的一個例子。應該注意,當逐漸走向較低的抽象級時,必須始終保持等效性,以確保最低的抽象級能夠滿足系統規(guī)范的要求。當今的驗證技術和發(fā)展趨勢1.動態(tài)功能驗證使用最為普遍的功能驗證方法具有動態(tài)特性。之所以將其冠名為“動態(tài)”,原因在于輸入圖形/激勵信號是在一段時間內(若干個時鐘周期)生成并應用于設計的,而且,對應的結果被收集起來并與一個參考/黃金模型進行比較,以便與規(guī)范相符。一個仿真器被用來計算所有信號的全部數值,并將規(guī)定的預期值與計算值加以比較。目前,業(yè)界可以選用的仿真器有兩種。1.基于周期的仿真器:該仿真器完全不理會時鐘內部發(fā)生的事件,而是在每個周期中進行一次信號評估。由于執(zhí)行時間較短,這類仿真器的運行速度往往較快。
2.基于事件的仿真器:這些仿真器捕獲事件(在時鐘內部或在時鐘的邊界上)并通過設計進行傳播,直到實現一個穩(wěn)定狀態(tài)為止。動態(tài)仿真的一個主要的缺點是,在一個限時仿真行程當中,只能對芯片的典型(而不是所有可能的)工作特性進行驗證。造成這種情況的主要原因在于芯片是針對已知測試空間(而不是未知測試環(huán)境)進行測試的,采用的是定向測試法。EDA行業(yè)推出了諸如Open-VERA、E和SVL(SystemCVerificationLibrary)等更加高級的驗證語言。這些語言引入了新的概念,比如約束隨機激勵、隨機激勵信號分配和電抗性測試臺。伴隨著這些語言的運用出現了一些用于對其進行解釋的工具,就本場合而言,它們有可能是VERA、Specman和OSCI內核(即CCSS)。除了引入了隨機化功能之外,新型驗證語言和工具還通過減少公司在構筑各種用于激勵信號發(fā)生的測試場合/方案所花費的時間量而實現了生產率的提高。例如,測試方案可以采用最高的抽象級來編寫,并能夠通過采用功能強大的面向對象型結構而“擴展”至任何較低的抽象級。當采用動態(tài)驗證時,設計者一般希望擁有一個以可量化項來覆蓋和捕獲的功能空間的估計值:1.被驗證的代碼行的數量(行覆蓋率);
2.被驗證的邏輯表達式有多少?(表達式覆蓋率)
3.在一個FSM設計中達到了多少種狀態(tài)(FSM覆蓋率);
4.在一個仿真行程中進行雙向變換的端口和寄存器的數量(變換覆蓋率);
5.設計代碼中被覆蓋的邏輯通路的數量(通路覆蓋率);這可以通過采用諸如代碼覆蓋和lint等工具來實現。設計者將“斷言”用作一個占位符,用來描述與某項設計相關聯的假設和工作特性(包括暫時的特性)。如果設計滿足或未滿足規(guī)范或假設,則斷言將會在一個動態(tài)仿真過程中被觸發(fā)。斷言也可在形式/靜態(tài)功能驗證環(huán)境中使用。2.混合功能驗證在該方法中通常執(zhí)行動態(tài)仿真,仿真結果被捕獲并用作靜態(tài)驗證的輸入。在靜態(tài)驗證期間,邏輯方程/符號通過設計進行傳播(而不象在動態(tài)仿真中那樣傳播的是數值)。這種手法雖然不如形式驗證詳盡周全,但卻可以被證實具有比純動態(tài)仿真更高的效率,因為它開始于動態(tài)仿真停止之時。3.靜態(tài)功能驗證在靜態(tài)功能驗證中,沒有向設計施加輸入激勵信號。而是將設計映射至一個采用BDD(雙擇判決圖)或其他數學表達式(它們規(guī)定了所有時間周期中的設計功能)來說明其功能的圖形結構上。利用這種圖形結構來證實或反駁屬性將能夠驗證這些數學表達式。這是通過確定數學結構中的矛盾式(方法是順著或逆著信號流來傳遞數值)來完成的?,F有工具采用以下兩種方式來滿足靜態(tài)驗證市場的需求1.采用斷言:這些是在模型/設計自身當中規(guī)定并公式化的設計約束(運用諸如SystemVerilog、Open-VERA、Verilog、VHDL等設計/驗證語言)。
2.采用屬性:這些通過采用一種屬性語言(比如PSL、Sugar)提供了屬性的規(guī)范。
4.等效性驗證為了確定邏輯門級表示與HDL實現是相同的,通過采用匹配點并比較這些點之間的邏輯來執(zhí)行一種所謂的“等效性檢查”。生成一種數據結構,并將其與相同輸入特性曲線條件下的輸出數值特性曲線進行比較。如果它們不同,則表示(在本場合為邏輯門和RTL)是不等效的。當其中一種表示經過了某種類型的變換時,等效性檢查有時是在兩個連接表(邏輯門級)或兩個RTL實現之間執(zhí)行的(圖2)。造成設計表示出現差異的一些實際原因如下:1.合成算法/啟發(fā)式法:根據對合成工具的約束條件(區(qū)域、時間、功率)的不同,合成工具將對邏輯運算進行優(yōu)化,以推導出適當的邏輯門級表示。為此,合成工具將采用啟發(fā)式法和邏輯最小化算法。
2.抽象級:有時可以采用HDL來實現設計,它有可能與設計者的意圖存在一定的差異,原因是語言的局限性,抑或是缺乏(或不具備)對合成工具解釋特定語言結構并將其變換為邏輯門級表示的方式進行預測的能力。正確驗證方法的選擇標準在準備將新技術引入自己的工具流程之前,芯片供應商應當考慮以下問題并做出適當的折衷。1.在某個特定的產品線中,我們是市場的領先者還是追隨者?
2.CAD基礎設施、工具和方法是集中式的還是分布式的?
3.新型驗證技術的評估是針對第一代產品進行的嗎?
4.新型驗證技術對成本和產品面市時間的直接影響和間接影響是什么?
5.新型工具能否處理變動的設計能力?
6.工具的易用性如何?
7.可為新型工具提供什么水平的文檔和支持?
8.新型工具和方法與公司內部現有的工具和方法之間是否具有互操作性?
9.新型工具的ROI(投資回報)是什么(包括服務、培訓、咨詢、計算和人力資源)?
10.新型工具能否支持處于多個不同地理位置的設計?
11.對于有關公司而言,他們所需關注的最為重要的問題或許是:我們雇用的設計師和驗證工程師對新型工具是否有成見(設計師不愿意學習和采用新技術)?1.產品角度主要從事存儲器芯片或存儲器密集型(而不是邏輯密集型)芯片生產的公司——比如SRAM和DRAM公司或許根本不需要進行大量的邏輯驗證。這些器件大多是定制的。雖然此類產品中有些規(guī)模會很大,但它們的邏輯復雜性并不高,因而不支持在公司內部配備大量邏輯驗證工具的計劃。不過,存儲器密集型設計提出了其他的挑戰(zhàn),比如布線、工藝調整和功耗。那些制造純ASIC芯片(其上不運行軟件)的公司可能無須進行硬件-軟件折衷,或者也許不必實施用于捕獲運行于硬件之上的軟件的測試。例如,只具有硬件的SERDES(并串/串并變換器)芯片所要求的驗證和建模方法與同時具有硬件和軟件的SoC是不同的。對于擁有門類寬泛的產品線的大型公司來說,驗證方法必須包含不同產品的各種要求。2.系統角度過去,邏輯芯片供應商不負責對芯片是否滿足某一參考系統上的功能和性能要求進行驗證。如今的系統廠商在批量訂貨之前都要求芯片制造商進行系統參考驗證。這就要
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- T-ZSA 272-2024 高磁導率低矯頑力FeNiMnSi 軟磁合金
- 二零二五年度養(yǎng)老公寓入住與心理咨詢服務合同
- 二零二五年度房屋買賣及家居升級借款協議
- 2025年度生鮮配送與電商渠道合作合同范本
- 二零二五年度互聯網公司業(yè)績對賭協議約定倍收益合同
- 2025年度退房合同租賃期滿通知協議
- 二零二五年度人工智能產業(yè)股東入股合同
- 2025年度新能源技術研發(fā)中心委托管理合同協議書
- 二零二五年度健身俱樂部合伙開店經營協議
- 二零二五年度手機行業(yè)經銷商返利管理細則
- 《汽車專業(yè)英語》2024年課程標準(含課程思政設計)
- 部編四年級道德與法治下冊全冊教案(含反思)
- JBT 11699-2013 高處作業(yè)吊籃安裝、拆卸、使用技術規(guī)程
- AutoCAD 2020中文版從入門到精通(標準版)
- 煙草栽培(二級)鑒定理論考試復習題庫-上(單選題匯總)
- DB32T 4353-2022 房屋建筑和市政基礎設施工程檔案資料管理規(guī)程
- 活性炭生產工藝流程圖
- 《廣告學概論》教案
- 重量分析法實驗
- 2022年怎樣使用電器正常工作導學案
- 【工法】衛(wèi)生間聚乙烯丙綸防水和JS防水施工工藝
評論
0/150
提交評論