0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Formal Verification:形式驗(yàn)證的分類、發(fā)展、適用場景

ruikundianzi ? 來源:IP與SoC設(shè)計(jì) ? 2023-02-03 11:12 ? 次閱讀

Definition

Formal Verification:利用數(shù)學(xué)分析的方法,通過算法引擎建立模型,對待測設(shè)計(jì)的狀態(tài)空間進(jìn)行窮盡分析的驗(yàn)證。

Kinds of Formal Verification

相比于動(dòng)態(tài)仿真Simulation Veficiation,形式驗(yàn)證屬于Static Verification,不需要手動(dòng)灌入激勵(lì);通過數(shù)學(xué)分析的方式,對待測設(shè)計(jì)進(jìn)行檢查;

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

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

Equivalence Checking

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

Property Checking

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

除了上述兩類,CDC的檢查也屬于static verification;例如Spyglass會(huì)對跨時(shí)鐘域設(shè)計(jì)做structural 結(jié)構(gòu)上的檢查,檢查跨時(shí)鐘域的信號是否經(jīng)過同步器處理;一般來講,formal verification屬于static verification;

Simulation VS Formal

Simulation屬于Dynamic Verification,F(xiàn)ormal屬于Static Verification;兩者是相互補(bǔ)充的驗(yàn)證手段,各有優(yōu)缺點(diǎn),在合適的場景采用合適的驗(yàn)證手段,達(dá)到最佳的ROI。

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

Simulation是time-based的,仿真器依據(jù)消耗時(shí)間的事件推進(jìn)仿真的進(jìn)行,激勵(lì)需要用戶施加;Simulation雖然可以隨機(jī)化發(fā)送激勵(lì),但是對于corner case的遍歷需要花費(fèi)大量時(shí)間;Simulation適用于大規(guī)模的設(shè)計(jì),仿真的時(shí)間深度可以輕松達(dá)到上萬個(gè)cycle;

Formal是state-space based的,依據(jù)算法探索所有可能的狀態(tài)空間,不需要平臺(tái)搭建和輸入激勵(lì),便于快速啟動(dòng)驗(yàn)證;Formal適用于小模塊的驗(yàn)證,隨著設(shè)計(jì)復(fù)雜度和cycle深度的增加,formal會(huì)占用大量資源,難以收斂;

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

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

Formal do better

不同的驗(yàn)證策略適合不同的驗(yàn)證場景;Emulation適用于整個(gè)Chip級的驗(yàn)證,加速仿真速度;UVM-Simulation適用于復(fù)雜寄存器配置的傳輸packet的IP驗(yàn)證,便于提取transaction和隨機(jī)化驗(yàn)證;Formal(FPV)適合相對較小的模塊,便于收斂;Formal適合controllable的模塊,例如FSMs;Formal適合observable的模塊,便于assertion的書寫,如AXI bus;串行bus則不適合使用formal。開源項(xiàng)目Opentitan中使用FPV的驗(yàn)證模塊[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相關(guān)的工具也有十幾年歷史了,但由于其限制,F(xiàn)ormal Tool并沒有被用戶廣泛使用。但最近這些年,一些因素推動(dòng)了formal的高速發(fā)展:

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

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

  3. 3. Formal可以很好的匹配Simulation;同一家EDA的Formal和Simulation工具相互打通,F(xiàn)ormal產(chǎn)生coverage可以和Simulation的coverage相互merge,F(xiàn)ormal產(chǎn)生的波形可以在Simulaiton上復(fù)現(xiàn),F(xiàn)ormal和Simulaiton相同的GUI Debug工具等。

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

  5. 5. 隨著企業(yè)服務(wù)器性能的提升和Formal算法的發(fā)展,可以處理更復(fù)雜的設(shè)計(jì)規(guī)模。

  6. 6. 一些基于C/C++ model的包含大量運(yùn)算單元的硬件產(chǎn)品,如AI/ML,GPU的需要爆發(fā),推動(dòng)了Formal Data Path Validation;

  7. 7. Automotive Chip需求激增及其高可靠性的要求,F(xiàn)ormal提供safety fault analysis的功能;

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

  9. 9. 移動(dòng)端芯片對于Lower Power的重視;PMU模塊適合formal驗(yàn)證;

  10. 10.采用敏捷開發(fā)的芯片團(tuán)隊(duì),對于"shift left"的追求,采用formal快速進(jìn)行模塊驗(yàn)證及早發(fā)現(xiàn)bug;


審核編輯 :李倩


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 寄存器
    +關(guān)注

    關(guān)注

    31

    文章

    5254

    瀏覽量

    119244
  • eda
    eda
    +關(guān)注

    關(guān)注

    71

    文章

    2658

    瀏覽量

    172228
  • C++
    C++
    +關(guān)注

    關(guān)注

    21

    文章

    2085

    瀏覽量

    73314

原文標(biāo)題:Formal Verification:形式驗(yàn)證的分類、發(fā)展、適用場景

文章出處:【微信號:IP與SoC設(shè)計(jì),微信公眾號:IP與SoC設(shè)計(jì)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    淺析形式驗(yàn)證分類、發(fā)展、適用場景

    Formal Verification:利用數(shù)學(xué)分析的方法,通過算法引擎建立模型,對待測設(shè)計(jì)的狀態(tài)空間進(jìn)行窮盡分析的驗(yàn)證。
    的頭像 發(fā)表于 08-25 09:04 ?1455次閱讀
    淺析<b class='flag-5'>形式</b><b class='flag-5'>驗(yàn)證</b>的<b class='flag-5'>分類</b>、<b class='flag-5'>發(fā)展</b>、<b class='flag-5'>適用場景</b>

    EDA形式化驗(yàn)證漫談:仿真之外,驗(yàn)證之內(nèi)

    “在未來五年內(nèi)仿真將逐漸被淘汰,僅用于子系統(tǒng)和系統(tǒng)級驗(yàn)證。與此同時(shí),形式化驗(yàn)證方法已經(jīng)開始處理一些系統(tǒng)級任務(wù)。隨著技術(shù)發(fā)展,更多Formal相關(guān)的商業(yè)標(biāo)準(zhǔn)化會(huì)推出?!?Intel?fe
    的頭像 發(fā)表于 09-01 09:10 ?1257次閱讀

    步進(jìn)電機(jī)是什么工作原理?有哪些分類?應(yīng)用場景是什么?

    步進(jìn)電機(jī)是什么工作原理?有哪些分類?應(yīng)用場景是什么?
    發(fā)表于 10-19 08:21

    Verification Feature獲取及其驗(yàn)證

    。還有就是正向分析哪個(gè)功能容易有錯(cuò)誤。隨機(jī)驗(yàn)證:這個(gè)正如字面所示,就是random產(chǎn)生激勵(lì),該方法可能對一些取任何值不敏感的情況。場景分析法:通過運(yùn)用場景來對系統(tǒng)的功能點(diǎn)或業(yè)務(wù)流程的描述,從而提高測試效果
    發(fā)表于 12-30 16:21

    A Roadmap for Formal Property

    What is formal property verification? A natural language such as English allowsus to interpret
    發(fā)表于 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
    發(fā)表于 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
    發(fā)表于 07-25 14:48 ?0次下載
    Functional <b class='flag-5'>Verification</b> Coverage Measurement and Analysis

    深層解析形式驗(yàn)證

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

    新思科技升級Verification Continuum平臺(tái)繼續(xù)引領(lǐng)技術(shù)

    引擎,包括Virtualizer?虛擬原型、SpyGlass?靜態(tài)驗(yàn)證、VC Formal?形式驗(yàn)證、VCS?軟件仿真、ZeBu?硬件加速仿真、HAPS?原型、Verdi?調(diào)試和VC
    的頭像 發(fā)表于 06-11 08:42 ?4679次閱讀

    形式驗(yàn)證工具對系統(tǒng)功能的設(shè)計(jì)

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

    分享一些形式驗(yàn)證(Formal Verification)的經(jīng)典視頻

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

    Formal Verification的基礎(chǔ)知識

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

    數(shù)字驗(yàn)證Formal Verification在國內(nèi)的應(yīng)用以及前景如何?

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

    什么是形式驗(yàn)證(Formal驗(yàn)證)?Formal是怎么實(shí)現(xiàn)的呢?

    相信很多人已經(jīng)接觸過驗(yàn)證。如我以前有篇文章所寫驗(yàn)證分為IP驗(yàn)證,F(xiàn)PGA驗(yàn)證,SOC驗(yàn)證和CPU驗(yàn)證
    的頭像 發(fā)表于 07-21 09:53 ?9641次閱讀
    什么是<b class='flag-5'>形式</b><b class='flag-5'>驗(yàn)證</b>(<b class='flag-5'>Formal</b><b class='flag-5'>驗(yàn)證</b>)?<b class='flag-5'>Formal</b>是怎么實(shí)現(xiàn)的呢?

    Formal Verify形式驗(yàn)證的流程概述

    Formal Verify,即形式驗(yàn)證,主要思想是通過使用數(shù)學(xué)證明的方式來驗(yàn)證一個(gè)修改后的設(shè)計(jì)和它原始的設(shè)計(jì),在功能上是否等價(jià)。
    的頭像 發(fā)表于 09-15 10:45 ?887次閱讀
    <b class='flag-5'>Formal</b> Verify<b class='flag-5'>形式</b><b class='flag-5'>驗(yàn)證</b>的流程概述