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

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

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

談?wù)凢ormal驗(yàn)證中的Equivalence Checking

sanyue7758 ? 來源:處芯積律 ? 2023-04-08 09:22 ? 次閱讀

Lec形式驗(yàn)證想必ICer們都很熟悉,尤其是中后端的IC工程師,在正常邏輯綜合生成網(wǎng)表過后或DFT插入mbist等可測試邏輯綜合后,需要對綜合后產(chǎn)生的網(wǎng)表與綜合前的RTL代碼進(jìn)行等效邏輯Lec驗(yàn)證,目的是為了保證綜合過程沒有映射map錯(cuò),邏輯正確。后端工程師同時(shí)還需要在APR的place,cts等階段手動(dòng)ec后,ecoRt手動(dòng)ec后,將綜合后的網(wǎng)表與PostRoute ec后的網(wǎng)表進(jìn)行Lec驗(yàn)證。

6bdb3732-d576-11ed-bfe3-dac502259ad0.png

圖1 數(shù)字電路設(shè)計(jì)驗(yàn)證的分類(包括Formal驗(yàn)證和仿真功能驗(yàn)證)

實(shí)際上形式驗(yàn)證是為了驗(yàn)證RTL代碼與綜合后的門級網(wǎng)表之間的邏輯等價(jià)性。功能是否等價(jià),與時(shí)序無關(guān)。與動(dòng)態(tài)仿真 Simulation Veficiation 相比,形式驗(yàn)證屬于 Static Verification ,不需要手動(dòng)灌入激勵(lì);只需要通過數(shù)學(xué)分析的方式,對待測設(shè)計(jì)進(jìn)行檢查。

形式驗(yàn)證由兩類靜態(tài)檢查組成:Equivalence Checking 等價(jià)檢查 和 Property Checking 屬性檢查,形式驗(yàn)證現(xiàn)在通常通過EDA工具進(jìn)行驗(yàn)證,業(yè)內(nèi)通常用S家的Formality,C家的Conformal進(jìn)行Lec形式驗(yàn)證,國內(nèi)也有多家企業(yè)在進(jìn)行Formal驗(yàn)證工具的開發(fā)如奇捷科技的EasyECO等等,被應(yīng)用在RTLCode 和 gate level code的LEC等價(jià)檢查。

Equivalence Checking

Combinational equuvalence :用于綜合過后RTL與Netlist之間的檢查,檢查寄存器之間的組合邏輯在綜合前后是否一致,比如常見的Lec驗(yàn)證工具:Formality,Conformal。sequential Equivalence :用于RTL代碼階段的Check,基于cycle的精確度;在module層面上對時(shí)鐘&時(shí)鐘樹路徑上的gating代碼手動(dòng)ec后的RTL進(jìn)行等價(jià)檢查。Transaction Equivalence :用于C/C++ model 與 RTL代碼之間進(jìn)行檢查,基于transaction的精確度;用于通路的算法類設(shè)計(jì)。

Property Checking

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

實(shí)際上前端設(shè)計(jì)使用Spyglass工具對跨時(shí)鐘域設(shè)計(jì)的structure結(jié)構(gòu)的CDC檢查,檢查異步時(shí)鐘寄存器在跨時(shí)鐘域時(shí),信號有沒有進(jìn)行同步處理也屬于靜態(tài)驗(yàn)證的一種。

S家的Formality的流程(Reference 參照網(wǎng)表/RTL; Implementation 實(shí)施網(wǎng)表)

6bfc3b3a-d576-11ed-bfe3-dac502259ad0.png

圖2 Formal工具的GUI界面

由圖2可以觀察到,在參照網(wǎng)表implemetation下方,有從0.Guide到60.debug的Formal驗(yàn)證流程,通常Formal的驗(yàn)證流程為Guidance > Reference>implemetation>setup>Match>Verify(有時(shí)候setup順序可以改變),再到最后的Debug,聽上去是不是十分復(fù)雜,但是其實(shí)不然,讓小編結(jié)合FM官方的環(huán)境來給你一一介紹:

環(huán)境配置

6c13c99e-d576-11ed-bfe3-dac502259ad0.png

Guidance

這一步通常是用來添加DC綜合完后,報(bào)出來的.svf文件,通常是些邏輯優(yōu)化記錄和一些約束條件。

6c300b68-d576-11ed-bfe3-dac502259ad0.png

Reference(這里舉例是綜合后的,所以Reference吃的是RTL HDL,如果是APR后,那么吃的就是綜合后的網(wǎng)表)

讀入rtl設(shè)計(jì)文件,從吃對應(yīng)teachlibrary的DB文件(S家的lib文件都是.db格式)開始,再吃Reference參照的設(shè)計(jì)文件Verilog、VHDL等等,如果有UPF,則還要吃UPF,如果沒有則設(shè)置頂層文件。

6c42305e-d576-11ed-bfe3-dac502259ad0.png

6c5f2286-d576-11ed-bfe3-dac502259ad0.png

這一步比較簡單,主要就是read 需要對比的網(wǎng)表 read design file > verlilog >load files吃完netlist后再set top

6c7e7730-d576-11ed-bfe3-dac502259ad0.png

Setup

設(shè)置常量

6c94788c-d576-11ed-bfe3-dac502259ad0.png

Match

也是Formal最重要的一個(gè)環(huán)節(jié),驗(yàn)證Reference與Implementation的邏輯是否一致.match>run matching

6ca2a02e-d576-11ed-bfe3-dac502259ad0.png

通常Implemetation的point要多于Reference,小編出現(xiàn)過Reference的umatch point反而更多的情況,后來定位發(fā)現(xiàn)是部分logic在Reference中刪除了,這也是得來的Formal經(jīng)驗(yàn)??!

Verify

也是Formal最重要的一個(gè)環(huán)節(jié),驗(yàn)證Reference與Implementation的功能是否一致.這一步驟將吐出failing_point和abort_point,即相同激勵(lì)輸入,信號不同的點(diǎn),都會(huì)被當(dāng)成功能不一致的點(diǎn)輸出到rpt內(nèi)

6cb66e92-d576-11ed-bfe3-dac502259ad0.png

Debug

可以通過GUI界面一個(gè)一個(gè)時(shí)序錐來對照追問題port,,也可以通過前面verify和match的報(bào)告來進(jìn)行debug,最后跑完,打印出結(jié)果,可以看到Passing (equivalent)和Failing (notequivalent)是否通過,再分析沒過的原因。

好啦,到這里今天這期Formal形式驗(yàn)證全流程以及flow代碼環(huán)境講解就講到這里啦,小編在這里留下個(gè)小問題,如果在fm環(huán)境內(nèi)要吃UPF(為了Implemetation netlist),需要進(jìn)行哪些代碼操作呢?知道的小伙伴可以后臺留言哦。

審核編輯:湯梓紅

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

    關(guān)注

    36

    文章

    5834

    瀏覽量

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

    關(guān)注

    71

    文章

    2672

    瀏覽量

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

    關(guān)注

    1

    文章

    385

    瀏覽量

    59625
  • 驗(yàn)證
    +關(guān)注

    關(guān)注

    0

    文章

    58

    瀏覽量

    15145
  • 網(wǎng)表
    +關(guān)注

    關(guān)注

    0

    文章

    14

    瀏覽量

    7622

原文標(biāo)題:談?wù)凢ormal驗(yàn)證中的Equivalence Checking

文章出處:【微信號:處芯積律,微信公眾號:處芯積律】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    一文解析最嚴(yán)格的等價(jià)性比對驗(yàn)證combinational equivalence

    Combinational equivalence是使用EDA工具進(jìn)行等價(jià)性比對中最成熟的FEV技術(shù),一般情況下是將RTL和原理圖網(wǎng)表進(jìn)行等價(jià)性比對。
    的頭像 發(fā)表于 07-19 09:48 ?1538次閱讀

    介紹放寬約束的等價(jià)性比對sequential equivalence

    Sequential equivalence被某些EDA工具稱之為周期精確等價(jià)(cycle-accurate equivalence),名字不重要,關(guān)鍵的是理解它和combinational?equivalence的區(qū)別。
    的頭像 發(fā)表于 07-19 09:53 ?1041次閱讀

    A Model Checking Example--Solving Sudoku Using Simulink Design Verifier

    , presents an easy-to-understand application of formal methods—specifically, model checking
    發(fā)表于 07-18 09:39

    Formal算法基礎(chǔ)知識學(xué)習(xí)筆記

    Spec和Implementation,這樣的比較輸入和輸入我們可以判定implementation與spec是等價(jià)的,設(shè)計(jì)符合我們的要求。這個(gè)一個(gè)典型的formal equivalence
    發(fā)表于 10-26 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

    談?wù)?/b>電路的“地”

    談?wù)?/b>電路的“地”     無論是在模擬電路還是在數(shù)字電路
    發(fā)表于 04-16 23:34 ?2653次閱讀

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

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

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

    形式驗(yàn)證分為兩大分支:Equivalence Checking 等價(jià)檢查 和 Property Checking 屬性檢查 形式驗(yàn)證初次被E
    的頭像 發(fā)表于 02-03 11:12 ?2187次閱讀

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

    前段時(shí)間很多朋友在微信群里討論Formal驗(yàn)證的視頻資料問題,今天整理好了,分享給大家。
    的頭像 發(fā)表于 02-11 13:15 ?764次閱讀
    分享一些形式<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í)行效率,但是這個(gè)主要是通過減少Formal驗(yàn)證空間來實(shí)現(xiàn)的,很容易出現(xiàn)過約,導(dǎo)致bug遺漏。
    的頭像 發(fā)表于 02-15 15:14 ?821次閱讀

    Formal Verification的基礎(chǔ)知識

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

    什么是形式驗(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 ?1w次閱讀
    什么是形式<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 ?963次閱讀
    <b class='flag-5'>Formal</b> Verify形式<b class='flag-5'>驗(yàn)證</b>的流程概述

    談?wù)?/b> 十折交叉驗(yàn)證訓(xùn)練模型

    談?wù)?/b> 十折交叉驗(yàn)證訓(xùn)練模型
    的頭像 發(fā)表于 05-15 09:30 ?710次閱讀