那曲檬骨新材料有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Formal Verification:形式驗證的分類、發展、適用場景

ruikundianzi ? 來源:IP與SoC設計 ? 2023-02-03 11:12 ? 次閱讀

Definition

Formal Verification:利用數學分析的方法,通過算法引擎建立模型,對待測設計的狀態空間進行窮盡分析的驗證。

Kinds of Formal Verification

相比于動態仿真Simulation Veficiation,形式驗證屬于Static Verification,不需要手動灌入激勵;通過數學分析的方式,對待測設計進行檢查;

f4c484d2-a357-11ed-bfe3-dac502259ad0.png在這里插入圖片描述

形式驗證分為兩大分支:Equivalence Checking等價檢查 和Property Checking屬性檢查 形式驗證初次被EDA工具采用,可以追溯到90年代,被應用于RTL code和gate level code的LEC等價檢查;后來形式驗證開始慢慢發展,衍生出適用于不同場景的各類工具;

Equivalence Checking

Combinational equivalence:用于RTL vs Netlist的檢查,檢查寄存器之間的組合邏輯在綜合前后是否一致,如Formality,Conformal。Sequential Equivalence: 用于RTL vs RTL的檢查,基于cycle的精確度;適用于對原有block級RTL做了非邏輯修改,如Clock/power gating,對修改后的RTL進行等價檢查。Transaction Equivalence:用于C/C++ model VS RTL的檢查,基于transaction的精確度;常用于數據通路的算法類設計。

Property Checking

屬性檢查基于PSL/SVA Assertion Languages,通過對property的assume,cover,assert語句分析,建立golden模型。FPV(Formal Property Verification)需要用戶直接書寫property;從FPV衍生出各類APP,適用于不同場景,可以根據相關配置,自動生成對應的property。

除了上述兩類,CDC的檢查也屬于static verification;例如Spyglass會對跨時鐘域設計做structural 結構上的檢查,檢查跨時鐘域的信號是否經過同步器處理;一般來講,formal verification屬于static verification;

Simulation VS Formal

Simulation屬于Dynamic Verification,Formal屬于Static Verification;兩者是相互補充的驗證手段,各有優缺點,在合適的場景采用合適的驗證手段,達到最佳的ROI。

f4dd0b42-a357-11ed-bfe3-dac502259ad0.png在這里插入圖片描述

Simulation是time-based的,仿真器依據消耗時間的事件推進仿真的進行,激勵需要用戶施加;Simulation雖然可以隨機化發送激勵,但是對于corner case的遍歷需要花費大量時間;Simulation適用于大規模的設計,仿真的時間深度可以輕松達到上萬個cycle;

Formal是state-space based的,依據算法探索所有可能的狀態空間,不需要平臺搭建和輸入激勵,便于快速啟動驗證;Formal適用于小模塊的驗證,隨著設計復雜度和cycle深度的增加,formal會占用大量資源,難以收斂;

Formal適用于40,000 寄存器以內的模塊驗證(這個數據已經被刷新);隨著設計復雜度的增加,state space explosion,狀態空間激增;一個設計包含n個dff,有2n種配置,m個input有2m種組合;該設計可能的狀態達到2(n+m)個;對于一個10 input,10 dff的設計,為220=1,048,576。

回到開頭所說的,Simulation和Formal是相互補充的;模塊中的assertion語句既可以在Formal中使用,也可以在Simulation中使用;Formal產生的覆蓋率也可以merge到Simulation的覆蓋率中;設計人員可以通過Formal免于平臺的搭建,快速地跑通IP中的一些模塊,再hand-off給驗證人員使用Simulation sign-off(Shift-Left);Simulation中的corner scenario,可以通過Bug hunting FPV補充驗證;

Formal do better

不同的驗證策略適合不同的驗證場景;Emulation適用于整個Chip級的驗證,加速仿真速度;UVM-Simulation適用于復雜寄存器配置的傳輸packet的IP驗證,便于提取transaction和隨機化驗證;Formal(FPV)適合相對較小的模塊,便于收斂;Formal適合controllable的模塊,例如FSMs;Formal適合observable的模塊,便于assertion的書寫,如AXI bus;串行bus則不適合使用formal。開源項目Opentitan中使用FPV的驗證模塊[2]

適合Formal的常見模塊如下:

  • ?Arbiter、Scheduler

  • ?FIFO 、FSMs

  • ?Interrupt controller、DMA controller、Memory controller

  • ?Power manager unit、Clock programing unit

  • ?Bus、Bus bridge、Bus Fabric (CrossBar NoC etc)

  • ?Cache,Cache-Coherent Protocols modeling and verification

  • ?Data transport

  • ?Pinmux, Clock Controller, Reset Controller

The growth of Formal

Formal Property Verification相關的工具也有十幾年歷史了,但由于其限制,Formal Tool并沒有被用戶廣泛使用。但最近這些年,一些因素推動了formal的高速發展:

  1. 1. 之前繁多的語言(Vera,'e',摩托羅拉的CBV和英特爾的ForSpec)整合為SystemVerilog Assertion,并加入IEEE 1800協議,成為標準化的Assertion Languages。工程師在Simulation中廣泛使用SVA,節省了在Formal上的學習成本。

  2. 2. 隨著工藝節點的縮小,流程成本大幅提高;對于corner scenario下可能會隱藏的bug,工程師更傾向Fromal這類exhaustive的驗證手段。

  3. 3. Formal可以很好的匹配Simulation;同一家EDA的Formal和Simulation工具相互打通,Formal產生coverage可以和Simulation的coverage相互merge,Formal產生的波形可以在Simulaiton上復現,Formal和Simulaiton相同的GUI Debug工具等。

  4. 4. 各類Formal APPs的推出,使得Formal更容易掌握和部署。

  5. 5. 隨著企業服務器性能的提升和Formal算法的發展,可以處理更復雜的設計規模。

  6. 6. 一些基于C/C++ model的包含大量運算單元的硬件產品,如AI/ML,GPU的需要爆發,推動了Formal Data Path Validation;

  7. 7. Automotive Chip需求激增及其高可靠性的要求,Formal提供safety fault analysis的功能;

  8. 8. 芯片對Security的要求越來越高,需要窮盡分析所有訪問路徑,適合采用Formal;

  9. 9. 移動端芯片對于Lower Power的重視;PMU模塊適合formal驗證;

  10. 10.采用敏捷開發的芯片團隊,對于"shift left"的追求,采用formal快速進行模塊驗證及早發現bug;


審核編輯 :李倩


聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 寄存器
    +關注

    關注

    31

    文章

    5363

    瀏覽量

    121194
  • eda
    eda
    +關注

    關注

    71

    文章

    2788

    瀏覽量

    173876
  • C++
    C++
    +關注

    關注

    22

    文章

    2114

    瀏覽量

    73859

原文標題:Formal Verification:形式驗證的分類、發展、適用場景

文章出處:【微信號:IP與SoC設計,微信公眾號:IP與SoC設計】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    淺析形式驗證分類發展適用場景

    Formal Verification:利用數學分析的方法,通過算法引擎建立模型,對待測設計的狀態空間進行窮盡分析的驗證
    的頭像 發表于 08-25 09:04 ?1781次閱讀
    淺析<b class='flag-5'>形式</b><b class='flag-5'>驗證</b>的<b class='flag-5'>分類</b>、<b class='flag-5'>發展</b>、<b class='flag-5'>適用場景</b>

    EDA形式化驗證漫談:仿真之外,驗證之內

    “在未來五年內仿真將逐漸被淘汰,僅用于子系統和系統級驗證。與此同時,形式化驗證方法已經開始處理一些系統級任務。隨著技術發展,更多Formal相關的商業標準化會推出。” Intel?fe
    的頭像 發表于 09-01 09:10 ?1493次閱讀

    步進電機是什么工作原理?有哪些分類?應用場景是什么?

    步進電機是什么工作原理?有哪些分類?應用場景是什么?
    發表于 10-19 08:21

    Verification Feature獲取及其驗證

    。還有就是正向分析哪個功能容易有錯誤。隨機驗證:這個正如字面所示,就是random產生激勵,該方法可能對一些取任何值不敏感的情況。場景分析法:通過運用場景來對系統的功能點或業務流程的描述,從而提高測試效果
    發表于 12-30 16:21

    A Roadmap for Formal Property

    What is formal property verification? A natural language such as English allowsus to interpret
    發表于 07-18 08:27 ?0次下載
    A Roadmap for <b class='flag-5'>Formal</b> Property

    Advanced Formal Verification

    been observed that verification becomes the major bottleneck in design flows, i.e. up to 80% of the overall design
    發表于 07-21 09:10 ?0次下載
    Advanced <b class='flag-5'>Formal</b> <b class='flag-5'>Verification</b>

    Functional Verification Coverage Measurement and Analysis

    What is functional verification? I introduce a formal definition for functional verification
    發表于 07-25 14:48 ?0次下載
    Functional <b class='flag-5'>Verification</b> Coverage Measurement and Analysis

    深層解析形式驗證

      形式驗證Formal Verification)是一種IC設計的驗證方法,它的主要思想是通過使用
    發表于 08-06 10:05 ?4014次閱讀
    深層解析<b class='flag-5'>形式</b><b class='flag-5'>驗證</b>

    新思科技升級Verification Continuum平臺繼續引領技術

    引擎,包括Virtualizer?虛擬原型、SpyGlass?靜態驗證、VC Formal?形式驗證、VCS?軟件仿真、ZeBu?硬件加速仿真、HAPS?原型、Verdi?調試和VC
    的頭像 發表于 06-11 08:42 ?4876次閱讀

    形式驗證工具對系統功能的設計

    形式驗證工具(Formal Verification Tool)是通過數學邏輯的算法來判斷硬件設計的功能是否正確,通常有等價性檢查(Equivalence Checking)和屬性檢查
    的頭像 發表于 08-25 14:35 ?1564次閱讀

    分享一些形式驗證(Formal Verification)的經典視頻

    前段時間很多朋友在微信群里討論Formal驗證的視頻資料問題,今天整理好了,分享給大家。
    的頭像 發表于 02-11 13:15 ?883次閱讀
    分享一些<b class='flag-5'>形式</b><b class='flag-5'>驗證</b>(<b class='flag-5'>Formal</b> <b class='flag-5'>Verification</b>)的經典視頻

    Formal Verification的基礎知識

    通過上一篇對Formal Verification有了基本的認識;本篇將通過一個簡單的例子,感受一下Formal的“魅力”;目前Formal Tool主流的有Synopsys的VC
    的頭像 發表于 05-25 17:29 ?2802次閱讀
    <b class='flag-5'>Formal</b> <b class='flag-5'>Verification</b>的基礎知識

    數字驗證Formal Verification在國內的應用以及前景如何?

    這種中型規模的RTL如果用simulation,妥妥的一分鐘能跑十幾個sanity case,所以性價比實在太低。尤其是碰到帶memory的設計,用formal簡直就是噩夢(不過工具好像可以替換掉memory的邏輯,你也可以dummy掉data payload,但控制邏輯的data path同樣不短)。
    的頭像 發表于 06-26 16:38 ?1460次閱讀

    什么是形式驗證(Formal驗證)?Formal是怎么實現的呢?

    相信很多人已經接觸過驗證。如我以前有篇文章所寫驗證分為IP驗證,FPGA驗證,SOC驗證和CPU驗證
    的頭像 發表于 07-21 09:53 ?1.2w次閱讀
    什么是<b class='flag-5'>形式</b><b class='flag-5'>驗證</b>(<b class='flag-5'>Formal</b><b class='flag-5'>驗證</b>)?<b class='flag-5'>Formal</b>是怎么實現的呢?

    Formal Verify形式驗證的流程概述

    Formal Verify,即形式驗證,主要思想是通過使用數學證明的方式來驗證一個修改后的設計和它原始的設計,在功能上是否等價。
    的頭像 發表于 09-15 10:45 ?1281次閱讀
    <b class='flag-5'>Formal</b> Verify<b class='flag-5'>形式</b><b class='flag-5'>驗證</b>的流程概述
    大发888八大胜博彩| 巧家县| 百家乐官网顺序| 明升百家乐QQ群| 澳门金沙官网| 凱旋门百家乐官网的玩法技巧和规则 | 合肥百家乐赌博游戏机| 88娱乐城备用网址| 百家乐官网网上真钱娱乐| 大发888大发888娱乐城| 百家乐官网高额投注| 百家乐游戏机破解方法| 网上百家乐官网骗人| 太阳城百家乐手机投注| 和硕县| 百家乐最新赌王| 天空娱乐城| 百家乐看单技术| 皇冠网最新网址| 百家乐娱乐官方网| 境外赌博| 15人百家乐桌布| 威尼斯人娱乐城求助| 壹贰博百家乐官网娱乐城| 百家乐不锈钢| 678百家乐官网博彩娱乐平台| 疯狂百家乐游戏| 百家乐官网双龙| 大发888注册 大发888官网| 郑州百家乐官网的玩法技巧和规则 | 百家乐官网永利娱乐网| 街机水果机游戏下载| 木棉百家乐官网的玩法技巧和规则| 大发888娱乐场 手机版| 24山分金吉凶断| 元谋县| 百家乐赌博软件下载| 百家乐大娱乐场开户注册| 百家乐官网分路单| 百家乐娱乐平台备用网址| 988百家乐官网娱乐|