驗證的分類及相關工具

目錄

    • 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的靜態時序分析工具。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/63447.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/63447.shtml
英文地址,請注明出處:http://en.pswp.cn/web/63447.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【HarmonyOs學習日志(14)】計算機網絡之域名系統DNS

域名系統DNS 域名系統DNS——從域名解析出IP地址 文章目錄 域名系統DNS概述域名到IP地址的解析 互聯網的域名結構命名標準 域名服務器域名的解析過程 概述 域名系統DNS(Domain Name System)是互聯網使用的命名系統,用來把便于人們使用的機器…

【Python】pandas庫---數據分析

大學畢業那年,你成了社會底層群眾里,受教育程度最高的一批人。 前言 這是我自己學習Python的第四篇博客總結。后期我會繼續把Python學習筆記開源至博客上。 上一期筆記有關Python的NumPy數據分析,沒看過的同學可以去看看:【Pyt…

【人工智能學習之HDGCN18關鍵點修改】

【人工智能學習之HDGCN18關鍵點修改】 訓練部分修改部分 訓練部分 請參考文章:【人工智能學習之HDGCN訓練自己的數據集】 修改部分 參考源碼中25關鍵點的區域劃分,我們將18關鍵點劃分為: 頭部: 鼻子左眼和左耳右眼和右耳 上肢…

ARCGIS國土超級工具集1.2更新說明

ARCGIS國土超級工具集V1.2版本,功能已增加至47 個。在V1.1的基礎上修復了若干使用時發現的BUG,新增了"矢量分割工具"菜單,同時增加及更新了了若干功能,新工具使用說明如下: 一、勘測定界工具欄更新界址點成果…

華為OD --- 流浪地球

華為OD --- 流浪地球 題目獨立實現基本思路代碼實現 其他答案實現思路代碼實現 題目 獨立實現 基本思路 1、首先把題目給出的啟動機器初始化成數組, 2、用for循環模擬每隔1s更新這個初始化數組的前后兩個機器. (源碼中的updateTimeCount函數) 3、for循環每次循環后會檢查當前…

DataOps驅動數據集成創新:Apache DolphinScheduler SeaTunnel on Amazon Web Services

引言 在數字化轉型的浪潮中,數據已成為企業最寶貴的資產之一。DataOps作為一種文化、流程和實踐的集合,旨在提高數據管道的質量和效率,從而加速數據從源頭到消費的過程。白鯨開源科技,作為DataOps領域的領先開源原生公司&#xf…

【硬件IIC】stm32單片機利用硬件IIC驅動OLED屏幕

之前操作OLED屏幕都是用GPIO模擬IIC去驅動,最近打算用硬件IIC去驅動,于是寫下這個demo,在這個過程中遇到一點小坑,記錄一下,本文章非小白教程,所以只突出踩到的坑點,文章中涉及到的OLED也是網上資料寫爛的&…

python如何自動加空格

首先,需要進行打開的一個pycharm的軟件,可進行雙擊的打開該軟件。 可以看到的是在當前的打開的文件中,格式相對較亂一下。格式不對會格式錯誤。 然后點擊菜單欄中的“code”。 在彈出的下拉菜單中選擇“reformat code”選項。 可以看到的是在…

【開源免費】基于SpringBoot+Vue.JS網上訂餐系統(JAVA畢業設計)

本文項目編號 T 018 ,文末自助獲取源碼 \color{red}{T018,文末自助獲取源碼} T018,文末自助獲取源碼 目錄 一、系統介紹二、演示錄屏三、啟動教程四、功能截圖五、文案資料5.1 選題背景5.2 國內外研究現狀5.3 可行性分析 六、核心代碼6.1 新…

串口通信和SPI通信詳解

0、背景 在現代嵌入式系統中,通信是不同模塊之間交換數據的核心。串口通信和 SPI(串行外設接口)是兩種常見的通信方式,它們各自有獨特的優勢和適用場景。 1、串口通信 1.1、串口通信概念 串口通信是一種常見的異步串行通信協議…

javase-17、API.數學相關

一、Math類 Math類提供了大量的靜態方法來便于我們實現數學計算,如求絕對值、取最大或最小值等。 https://doc.qzxdp.cn/jdk/17/zh/api/java.base/java/lang/Math.html 所在模塊:java.base所在包: java.lang static double abs(double a)…

答題考試系統v1.6.1高級版源碼分享+uniapp+搭建測試環境

一.系統介紹 一款基于FastAdminThinkPHPUniapp開發的小程序答題考試系統,支持多種試題類型、多種試題難度、練題、考試、補考模式,提供全部前后臺無加密源代碼,支持私有化部署 二.測試環境 系統環境:CentOS、 運行環境&#x…

淺談倉頡語言的優劣

倉頡語言,作為華為自研的新一代編程語言,以其高效、安全、現代化的特點,引起了廣泛的關注。 倉頡語言的優勢 高效并發 倉頡語言的一大亮點是其輕松并發的能力。它實現了輕量化用戶態線程和并發對象庫,使得高效并發變得輕松。倉頡…

Sass系統數據隔離的三種方式

1.完全獨立的數據庫 為每一個租戶單獨部署一個數據庫 優點:達到了真正的按租戶進行隔離,不同租戶之間相互沒有影響,可以針對一些特殊租戶例如大客戶做一些定制化的開發,計費相對簡單,按照資源使用進行計費。 缺點&…

FFmpeg 主要結構體剖析

FFmpeg 探索之旅 FFmpeg 主要結構體剖析 FFmpeg 探索之旅前言1、AVFormatContext2、AVCodecContext3、AVCodec4、AVStream5、AVPacket6、AVFrame7、AVCodecParameters7、SwsContext8、AVIOContext9、AVRational 總結 前言 嘿,各位小伙伴!在如今這個多媒…

經典電荷泵/Charge pump——1998.JSSC

電路結構 工作原理 M3 and M4 are the series switches, and M5, M6 switch to the highest voltage. If M5 and M6 are missing, having a large capacitor is of absolute necessity, because must always stay between 2 Vin and 2Vin - Uj to avoid switching on the vert…

Swin transformer 論文閱讀記錄 代碼分析

該篇文章,是我解析 Swin transformer 論文原理(結合pytorch版本代碼)所記,圖片來源于源paper或其他相應博客。 代碼也非原始代碼,而是從代碼里摘出來的片段,配上簡單數據,以便理解。 當然&…

GPT-Omni 與 Mini-Omni2:創新與性能的結合

近年來,隨著人工智能技術的飛速發展,各種模型和平臺應運而生,以滿足從個人用戶到企業級應用的多樣化需求。在這一領域,GPT-Omni 和 Mini-Omni2 是兩款備受矚目的技術產品,它們憑借獨特的設計和強大的功能,在…

龍迅#LT7911E適用于EDP/DP/TPYE-C轉MIPIDSI應用,支持圖像處理功能,內置I2C,主應用副屏顯示,投屏領域!

1. 描述 LT7911E 是一款高性能 eDP 轉 MIPI D-PHY 轉換器,旨在將 eDP 源連接到 MIPI 顯示面板。 LT7911E 集成了一個符合 eDP1.4 標準的接收器,支持 1.62Gbps 至 5.67Gbps 的輸入數據,以 270Mbps 的遞增步長,以及一個 2 端口 D…

C語言——實現求出最大值

問題描述&#xff1a;利用C語言自定義函數求出一維數組里邊最大的數字 //利用函數找最大數#include<stdio.h>int search(int s[9]) //查找函數 {int i , max s[0] , max_xia 0;for(i0;i<9;i){if(s[i] > max){max_xia i;max s[max_xia];}}return max; } in…