目錄
- 1.驗證方法的分類
- 1.1動態驗證
- 1.2.靜態驗證
- 2.動態驗證及相關工具
- 2.1.電路級仿真工具
- 2.2.邏輯仿真工具
- 3.靜態驗證及相關工具
- 3.1 形式驗證工具
- 3.2 靜態時序分析工具
SOC設計中驗證包含以下幾個方面:
- 驗證原始描述的正確性
- 驗證設計的邏輯功能是否符合設計規范的要求
- 驗證設計結果的時序是否符合原始設計規范的性能指標
- 驗證結果是否包含違反物理設計規范的錯誤
1.驗證方法的分類
驗證的方法答題可分為兩類:動態驗證和靜態驗證。
1.1動態驗證
動態驗證也叫仿真,是指從電路的描述提取模型,然后將外部激勵信號或數據施加于此模型,通過觀察該模型在外部激勵信號作用下的實時響應來判斷該電路系統是否實現了預期的功能。方針目前最常用時間驅動的方法,也在發展周期驅動的方法。
1.2.靜態驗證
靜態驗證是指采用分析電路的某些特性是否滿足設計要求的方法,來驗證電路的正確與否,形式驗證是近幾年來興起的一種驗證方法,它需要有一個正確的模型作為參考,把待驗證的電路域正確的模型進行比較,并給出不同版本的電路是否在功能上等效的結局,它利用理論證明的方法來驗證設計結果的正確性。
比較動態驗證和靜態驗證,各有優勢和不足。動態仿真主要是模擬電路的功能行為,必須給出適當的激勵信號,然后很難選擇激勵來達到覆蓋電路所有功能的目的,同時動態仿真很耗費時間,靜態驗證是針對模擬電路所有的工作環境,檢查電路是否滿足正常的性能指標,此類驗證只限于數字邏輯電路,其準確性低于動態仿真,偶爾還會提供錯誤信息。
2.動態驗證及相關工具
仿真流程如圖 3-1所示,仿真環境包括電路描述的輸入、仿真控制命令和仿真結果的顯示等3 部分。
仿真工具首先要把用戶的描述轉換為內部表示,即建立模型。激勵波形可以同電路描述一起
輸入,也可以在仿真開始之后通過控制命令輸入,或者單獨建立激勵波形文件輸入。控制命令包括初始值設置、仿真時間指定、仿真過程控制、仿真中斷設置、觀察仿真狀態、設置某些信號或變量值,以及指定繼續仿真等。在交互式仿真方式下,控制命令交互輸入;在批處理式仿真方式下,控制命令常由控制命令文件(腳本)一次輸入。仿真結果主要為各外部輸出
端和其他觀察點的輸出波形,以及其他一些檢查結果信息。做驗證工作的人應該根據所驗證的電路的應用環境給出足夠多的激勵信號,以驗證該電路是否可以正確的工作。當所驗證的電路非常復雜時,很難把電路在各種條件下的工作情況都驗證到,并且驗證的時間將直接影響項目的開發周期。這時,就要求驗證人員憑經驗給出比較有代表性的
激勵信號,以盡量少的激勵來驗證電路的全部功能。如圖 3-2所示,d=a&bc為電路描述,a、b、c的輸入值情況為激勵描述,欲驗證該設計邏輯的完全正確,只需使激勵信號實現3個輸入信號的8種不同組合即可。動態驗證的工具很多,主要有電路級仿真工具,如SPICE、TimeMil、NanoSim,以及邏輯仿真工具,如VCS、Verilog-XL、NC Verilog、Modelsim等。
2.1.電路級仿真工具
此類仿真工具模擬晶體管級的電路行為特性,主要用于模擬電路的設計。
(1)SPICE
SPICE作為一種通用的電路描述與仿真語言,最早由加州大學伯克利分校于1972年發明。SPICE是20世紀80年代世界上應用最廣的電路設計軟件,1998年被定為美國國家標準。因為它的精確性、多功能性和對用戶開放,SPICE已經成為電子電路模擬的實施標準。SPICE電路可以模擬電路中實際結構的物理行為,給電路設計者帶來了極大的方便。眾多的 EDA公司對其進行了商業化開發,并在伯克利標準版本的基礎上進行了擴展和改進,當今流行的各種 EDA 軟件,如 HSPICE、PSPICE、Or CAD、Electronics Workbench 等都是基于 SPICE 開發的。
(2)NanoSim
NanoSim是Synopsys公司開發的,一個針對模擬、數字和混合信號設計驗證的品體管級仿真工具。它是一個穩定而簡單易用的工具,為幾百萬門的片上系統設計提供了較高的仿真能力。對于 0.13微米或更小工藝下的設計,它可以達到類似于SPICE的精度。NanoSim 結合了TimeMill 和 PowerMill 中最先進的仿真技術,在單獨的一個工具里就可以同時完成時序分析和功耗分析。
2.2.邏輯仿真工具
此類仿真工具可以仿真行為級、RTL 級和門級網表的數字電路,此類仿真的特點靈活、快速、易于調試。算法多數采用事件驅動的方式,目前也有周期驅動的方式。
(1)基于事件的仿真器
這些仿真器捕獲事件(在時鐘內部或在時鐘的邊界上),并通過設計進行傳播,直到實現一個穩定狀態為止。
(2)基于周期的仿真器
該仿真器完全不理會時鐘內部發生的事件,而是在每個周期中進行一次信號評估。由于執行時間較短,這類仿真器的運行速度往往較快。
VCSSynopsys 的 VCS 是編譯型 Verilog 模擬器,它完全支持標準的 Verilog HDL語言和 SDF,其出色的內存管理能力足以支持千萬門級的 ASIC 設計,而其模擬精度也完全滿足深亞微米 ASICSign-0f的要求。VCS 結合了周期算法和事件驅動算法,具有高性能、大規模和高精度的特點,適用于從行為級、RTL到帶反標的門級電路仿真。
(3)ModelSim
Mentor的 ModelSim仿真器采用直接優化的編譯技術、TcTk 技術和單一內核仿真,支持VHDL和 Verilog 混合仿真。
3.靜態驗證及相關工具
如圖3-3所示,靜態驗證不需要輸入激勵信息,只需輸入電路模型和相關參數及命令,驗證工具會自動對該電路模型進行分析,并顯示出分析的結果。
由于靜態驗證是工具自動完成的,不需要人工過多的敢于,所以通常對設計的電路首先進行靜態驗證,以糾正一些比較明顯的錯誤,然后再動態仿真,確定其具體的行為是否正確。在當前SOC的設計中,靜態驗證是必不可少的設計手段。
3.1 形式驗證工具
對于某些電路設計的移植,一般不需要對新電路進行仿真,而直接通過 EDA 工具來分析該電路的功能是否與原電路一致,此種驗證方法可以大量地減少驗證時間,提高電路設計的效率。等效性檢查(Equivalence Check)是目前形式驗證的主流,用于比較兩個電路邏輯功能的一致性。它是通過采用匹配點并比較這些點之間的邏輯來完成等效性檢査的。其生成一種數據結構,并將其與相同輸入特性曲線條件下的輸出數值特性曲線進行比較。如果它們不同,則表示被比較的兩個電路是不等效的。工具使用的具體流程如圖3-4所示。首先需要給工具提供完整正確的設計、相關的工藝庫及準備驗證的設計,其次需要對檢查過程給定約束條件和設置參數,并確定比較范圍和匹配點,如果結果不相等則需要進行診斷。它通常用來比較 RTL 代碼與布局布線后提取的網表邏輯功能是否一致,加入掃描鏈之前與之后的網表在正常工作模式下的功能是否一致,并對 ECO修正之前的網表與ECO 修正之后的網表比較。
此類EDA工具軟件如Synopsys公司的Formality及Cadence公司的Encounter Conformal Equivalent Checker等。
3.2 靜態時序分析工具
靜態時序分析技術的許多基本概念與動態仿真不同。靜態時序分析技術通過輸入一定的設計約束來靜態地檢查設計的時序功能,而不需要加入相應的測試向量進行邏輯功能仿真。它是建立在同步數字電路設計基礎上的,是一種窮盡的分析方法。靜態時序分析工具通過路徑計算延遲的總和,并比較相對于預定義時鐘的延遲,它僅關注時序間的相對關系而不是評估邏輯功能。與動態仿真比,靜態時序分析所需的時間很短。
靜態時序分析工具首先要接收用戶輸入,分析網表并將單元映射進目標庫中,根據網表生成具有所有路徑的列表,接下來,由延遲引擎計算單元和互連值,然后,時序驗證引擎計算相對于預定義時鐘域的間隙與約束沖突,輸出報表與多種可視工具,并可根據用戶要求將結果分類。靜態時序分析工具可識別的時序故障數要比仿真多得多,包括建立/保持時間、最小和最大跳變延時、時鐘脈沖寬度和時鐘畸變、門級時鐘的瞬時脈沖檢測、總線競爭與總線懸浮錯誤、不受約束的邏輯通道。另外,一些靜態時序分析工具還能計算經過導通晶體管、傳輸門和雙向鎖存的延遲,并能自動對關鍵路徑、約束性沖突、異步時鐘域和某些瓶頸邏輯進行識別與分類。時序分析工具種類很多,如 Symopsys 公司的 Primetime 是業界普遍作為 Sign-of的靜態時序分析工具。