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

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

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

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

sanyue7758 ? 來源:處芯積律 ? 2023-07-21 09:53 ? 次閱讀

最近看到行業(yè)群里面經(jīng)常有人問什么是形式驗(yàn)證,今天的文章和大家介紹下形式驗(yàn)證(Formal verification)。

相信很多人已經(jīng)接觸過驗(yàn)證。如我前面有篇文章所寫驗(yàn)證分為IP驗(yàn)證,FPGA驗(yàn)證,SOC驗(yàn)證和CPU驗(yàn)證,這其中大部分是采用動態(tài)仿真(dynamic simulation)實(shí)現(xiàn),即通過給定設(shè)計(jì)(design)端口測試激勵,結(jié)合時間消耗判斷設(shè)計(jì)的輸出結(jié)果是否符合預(yù)期。動態(tài)仿真又分為定向測試和隨機(jī)測試。現(xiàn)在很多公司用的UVM驗(yàn)證方法學(xué)便是建立在動態(tài)仿真的基礎(chǔ)上的。

ca076182-2710-11ee-962d-dac502259ad0.png

形式驗(yàn)證不同于仿真驗(yàn)證,它是通過數(shù)學(xué)上完備地證明或驗(yàn)證電路的實(shí)現(xiàn)方法是否確實(shí)實(shí)現(xiàn)了電路設(shè)計(jì)所描述的功能。形式驗(yàn)證方法分為等價性檢查(equivalence checking)如Formality,LEC等和屬性檢查(Property checking)如Jasper gold,VC Formal 等。我們這里講的形式驗(yàn)證特指屬性的檢查(Property checking)。

ca29fcec-2710-11ee-962d-dac502259ad0.png

如上圖所示,在一個簡單的加法設(shè)計(jì)中,我們采用動態(tài)仿真的方式去驗(yàn)證上述運(yùn)算是類似一種丟飛鏢的過程,想要驗(yàn)到所有的場景要運(yùn)行2的64次方即18446744073709551616次,這只是簡單的加法運(yùn)算,如果再加入其它稍微復(fù)雜的邏輯,想用動態(tài)仿真的方式打完所有情況是非常困難的。

ca3e4eb8-2710-11ee-962d-dac502259ad0.png

另外一種場景是當(dāng)信號從設(shè)計(jì)的端口輸入,信號流的走向會根據(jù)不同設(shè)定或者狀態(tài)選擇走向不同的路徑。如上圖所示,當(dāng)信號流可選擇的路徑很多時,通過動態(tài)仿真也是很難覆蓋到所有路徑的。

上述兩個問題用Formal就可以很好的解決掉。

除了功能驗(yàn)證上的使用,F(xiàn)ormal也可以被用在coverage的收集上。在設(shè)計(jì)里面有不少代碼是無法執(zhí)行到的。如果用動態(tài)仿真去找這些點(diǎn),一般的做法是跑大量的回歸測試(regression),收集coverage,然后針對沒打到的coverage hole找designer去review。整個過程走下來會花費(fèi)不少人力。而用formal可以比較輕松高效的找到其中的一些點(diǎn)。

ca631e32-2710-11ee-962d-dac502259ad0.png

介紹了這么多,那么Formal是怎么實(shí)現(xiàn)的呢?用Formal驗(yàn)證需要輸入設(shè)計(jì)(design),約束(constraint)和待驗(yàn)證的property。這里的設(shè)計(jì)一般是指RTL,約束指的是assumption,clock,reset等,propert是指assertion。

ca70e486-2710-11ee-962d-dac502259ad0.png

下面是一個簡單的例子,當(dāng)設(shè)計(jì)如下

ca9baac2-2710-11ee-962d-dac502259ad0.png

我們可以通過下面描述來驗(yàn)證該段邏輯,先驗(yàn)證req_valid 為高時,dataout等于datain;

caaa8c86-2710-11ee-962d-dac502259ad0.png

再驗(yàn)證req_valid 為低時,dataout等于0。

cabcfcfe-2710-11ee-962d-dac502259ad0.png

Formal適合所有驗(yàn)證場景嗎?當(dāng)然不是,因?yàn)閒ormal是通過數(shù)學(xué)運(yùn)算去完成完備性驗(yàn)證,在一些簡單的邏輯如arbiter,muxes,F(xiàn)SM,Control logic上比較適合用formal去驗(yàn)證,但是對一些復(fù)雜的場景,比如涉及到大量的memory,復(fù)雜的總線傳輸,多模塊協(xié)助工作等場景都不太適合用Formal。

cad6968c-2710-11ee-962d-dac502259ad0.png





審核編輯:劉清

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

    關(guān)注

    1636

    文章

    21841

    瀏覽量

    608506
  • 仿真器
    +關(guān)注

    關(guān)注

    14

    文章

    1020

    瀏覽量

    84182
  • SoC芯片
    +關(guān)注

    關(guān)注

    1

    文章

    620

    瀏覽量

    35214
  • RTL
    RTL
    +關(guān)注

    關(guān)注

    1

    文章

    386

    瀏覽量

    60183
  • UVM
    UVM
    +關(guān)注

    關(guān)注

    0

    文章

    182

    瀏覽量

    19283

原文標(biāo)題:什么是形式驗(yàn)證(Formal 驗(yàn)證)

文章出處:【微信號:處芯積律,微信公眾號:處芯積律】歡迎添加關(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 ?1936次閱讀
    淺析<b class='flag-5'>形式</b><b class='flag-5'>驗(yàn)證</b>的分類、發(fā)展、適用場景

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

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

    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

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

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

    新思科技憑借突破性機(jī)器學(xué)習(xí)技術(shù)將形式屬性驗(yàn)證性能提高10倍

    新思科技宣布,推出一種基于人工智能(AI)的最新形式驗(yàn)證應(yīng)用,即回歸模式加速器。作為新思科技VC Formal?解決方案的組成部分,VC Formal采用最先進(jìn)的機(jī)器學(xué)習(xí)算法,將設(shè)計(jì)和
    的頭像 發(fā)表于 09-06 11:13 ?5895次閱讀

    從C/C++到RTL,提速100倍的形式化驗(yàn)證加快AI算法到芯片的迭代

    VC Formal數(shù)據(jù)通路驗(yàn)證應(yīng)用支持HECTOR技術(shù)廣泛的市場采用
    的頭像 發(fā)表于 06-28 08:38 ?5272次閱讀

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

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

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

    形式驗(yàn)證分為兩大分支:Equivalence Checking 等價檢查 和 Property Checking 屬性檢查 形式驗(yàn)證初次被EDA工具采用,可以追溯到90年代,被應(yīng)用于R
    的頭像 發(fā)表于 02-03 11:12 ?2958次閱讀

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

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

    可以通過降低約束的復(fù)雜度來優(yōu)化Formal的執(zhí)行效率嗎?

    我們可以通過降低約束的復(fù)雜度來優(yōu)化Formal的執(zhí)行效率,但是這個主要是通過減少Formal驗(yàn)證空間來實(shí)現(xiàn)的,很容易出現(xiàn)過約,導(dǎo)致bug遺漏。
    的頭像 發(fā)表于 02-15 15:14 ?984次閱讀

    談?wù)?b class='flag-5'>Formal驗(yàn)證中的Equivalence Checking

    Lec形式驗(yàn)證想必ICer們都很熟悉,尤其是中后端的IC工程師,在正常邏輯綜合生成網(wǎng)表過后或DFT插入mbist等可測試邏輯綜合后,需要對綜合后產(chǎn)生的網(wǎng)表與綜合前的RTL代碼進(jìn)行等效邏輯Lec驗(yàn)證
    的頭像 發(fā)表于 04-08 09:22 ?4885次閱讀

    Formal Verification的基礎(chǔ)知識

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

    聊聊形式驗(yàn)證中的SVA

    SVA,即SystemVerilog Assertion,在simulation和Formal都有極為廣泛的應(yīng)用,這里介紹一些基本的概念和常用的語法。
    的頭像 發(fā)表于 06-14 09:31 ?2179次閱讀
    聊聊<b class='flag-5'>形式</b><b class='flag-5'>驗(yàn)證</b>中的SVA

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

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

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

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