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

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

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

淺析Formality形式驗(yàn)證里的案件

sanyue7758 ? 來源:艾思后端實(shí)現(xiàn) ? 2023-07-21 09:56 ? 次閱讀

在當(dāng)前的形式驗(yàn)證的領(lǐng)域,主要有兩個(gè)工具,一個(gè)就是Cadence的conformal,另外一個(gè)就是Synopsys的formality(以下簡(jiǎn)稱FM)。

通常情況下,形式驗(yàn)證的工具的主戰(zhàn)場(chǎng),是在RTLvsSYN這個(gè)階段,主要是由于綜合器的mapping/optimization會(huì)遇到各種各樣的挑戰(zhàn)。但是,本案有一些不同,在通常很容易的SYNvsLAY里邊,出現(xiàn)了一點(diǎn)小插曲。筆者整理了一下,以嗜各位讀者。

ICC的結(jié)束以后,一般都會(huì)先走一個(gè)formal檢查,保證SYNvsLAY的一致性,通常都是一鍵過的,可是,在這個(gè)案子里邊,出現(xiàn)了下邊的問題:

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

可以看到,有1個(gè)BBnet和1個(gè)BBpin的不等。展開GUI,可以看到如下的提示:

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

可以看到,有一個(gè)是DIODE cell的DIODE pin 不相等,另外一個(gè)是和這個(gè)DIODE cell 相連接的net 不等,這個(gè)net也是會(huì)送到對(duì)應(yīng)的output port的 ,如下圖所示

c42238b4-2710-11ee-962d-dac502259ad0.jpg

經(jīng)過按步驟排查,發(fā)現(xiàn)問題竟然出現(xiàn)在CTS的一個(gè)命令里邊,有點(diǎn)撲朔迷離。DEBUG 安排!

在ICC的``步驟里邊,CTS階段,為了節(jié)省面積,使用了下邊這個(gè)命令

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

在命令結(jié)束的地方,有一些小結(jié),可以看到一些冗余的buffer/inveter被拿掉了

c44db872-2710-11ee-962d-dac502259ad0.jpg

可以看到,整個(gè)數(shù)據(jù)庫,被拿掉了235個(gè)buffers和4個(gè)inveters??磥磉€是有一定面積優(yōu)化的效果。

基本現(xiàn)象是:如果跳過這個(gè)命令,formal就沒有問題,反之就會(huì)有問題。總覺得哪里不太對(duì):一個(gè)buffer removing的動(dòng)作,會(huì)引起FM的問題?

為了定位問題,將上邊的remove_clock_tree命令分解,可以定位出來,如果使用下面的細(xì)化命令,是會(huì)引起這個(gè)FM的問題。

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

難道是inverter出的問題!來來來,把buffer全部dont_touch:

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

FM竟讓給了一個(gè)大大的suprise:FM相等!。buffer移除出錯(cuò)了?

這個(gè)時(shí)候,還是仔細(xì)看看FM的log,注意到下面有趣的信息

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

log表明,由于DIODE_cell的DIODE pin是個(gè)INOUT,導(dǎo)致和它相連接的port被相應(yīng)轉(zhuǎn)成了INOUT方向。

通常,F(xiàn)M再比對(duì)的時(shí)候會(huì)通過IN/INOUT port給輸入port加入激勵(lì)。所以,這里的pt2out[5] port,雖然是一個(gè)輸出口,但是被FM改變成一個(gè)雙向口,會(huì)向里邊打入激勵(lì)。

但是,這個(gè)DIODE帶來的的影響,在不使用remove_clock_tree的數(shù)據(jù)庫里的情形是一樣的!看來,這個(gè)還不是root-cause。

繼續(xù)使用FM的analysis功能,

c4cfeff4-2710-11ee-962d-dac502259ad0.jpg

可以看到,這里的Cone Input有一個(gè)很奇怪的地方,這里的sar_clk在設(shè)計(jì)里邊是一個(gè)output port,怎么會(huì)成為影響到另外一個(gè)output port pt2out[5]的Unmatched Cone input呢?

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

聰明的讀者一定想到了一點(diǎn):是不是前邊的FM-579導(dǎo)致的問題呢?是的,你說對(duì)了,但是也只是對(duì)了一半!

還是回到ICC,通過all_fanin來看,pt2out[5]的driver都是干凈的,并沒有看到sar_clk,這個(gè)可以證明,的確是FM-579引起的問題,所以,如果移除DIODE pin的direction的問題。FM一定可以過。

但是,這么好的一個(gè)DEBUG機(jī)會(huì),怎么可以就此放過。使用report_timing看看,就看到了另外一半的原因了。舒坦!

先出場(chǎng)的FM不相等的數(shù)據(jù)庫

先看一下到sar_clk的timing path:可以看到,這個(gè)port 有一個(gè)**…G4IP/Z buffer驅(qū)動(dòng)。沒有什么問題。但是,請(qǐng)留意一下黃色高亮區(qū)域的這個(gè)net:…/inst_SAR/sar_clk (net)**

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

再看一下到pt2out[5]的timing path:可以看到,這個(gè)port 有一個(gè)…G4IP/Z buffer驅(qū)動(dòng)。沒有什么異樣,但是,請(qǐng)注意黃色方塊高亮區(qū)域,這個(gè)net就是上邊timing report的高亮的那個(gè)net!所以,從FM的角度來看pt2out[5]的driver,在版圖的網(wǎng)表里邊,有兩個(gè)driver:…G4IP/Z 和 sar_clk。這個(gè)就是FM的根本原因。

c55484f8-2710-11ee-962d-dac502259ad0.jpg

既然都花了這么久的debug功夫,也不介意再看一下,正確網(wǎng)表:沒有使用remove_clock_tree命令的網(wǎng)表FM可以pass的原因了。

還是看一下ICC的timing report。對(duì)于FM而言,這里的sar_clk port 還是一個(gè)輸入激勵(lì)端,但是可以看到,這里的sar_clk的網(wǎng)表driver 是一個(gè)BUF/Z(place239/Z),按照lib的定義BUF是不能反向傳遞的,所以,F(xiàn)M-579的影響,到place239這里就截止了(注意到,place239/Z的負(fù)載只有一個(gè)),并不會(huì)影響其他的地方。

c57520aa-2710-11ee-962d-dac502259ad0.jpg

在沒有使用remove_clock_tree的數(shù)據(jù)庫里邊,由于place239這個(gè)buffer的保護(hù),F(xiàn)M-579的影響并沒有傳遞到合法的比較點(diǎn)上,所以FM是可以過的。反之,則會(huì)影響到FM的結(jié)果。
敲黑板的時(shí)間到了,解決方案如下

剔除DIODE cell的DIODE pin的雙向口影響:導(dǎo)出netlist 的時(shí)候 ,使用write_verilog -no_diode_port選項(xiàng),F(xiàn)M不會(huì)出現(xiàn)FM-579的問題

在input/output PORT 添加隔離buffer,阻斷DIODE的FM誤動(dòng)作。





審核編輯:劉清

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

    關(guān)注

    3

    文章

    662

    瀏覽量

    39805
  • CLK
    CLK
    +關(guān)注

    關(guān)注

    0

    文章

    127

    瀏覽量

    17196
  • CTS
    CTS
    +關(guān)注

    關(guān)注

    0

    文章

    35

    瀏覽量

    14121

原文標(biāo)題:Formality形式驗(yàn)證里的案件分析

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

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    芯片開發(fā)中形式化驗(yàn)證的是一個(gè)誤區(qū)

    今天的形式驗(yàn)證工具具有更大的容量,并且許多工具能夠在服務(wù)器或云上以分布式模式運(yùn)行。形式驗(yàn)證的技術(shù)和方法也得到了擴(kuò)展。
    的頭像 發(fā)表于 11-29 14:31 ?1977次閱讀

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

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

    關(guān)于功能驗(yàn)證、時(shí)序驗(yàn)證形式驗(yàn)證、時(shí)序建模的論文

    的新方法,提高了驗(yàn)證效率。論文還研究了運(yùn)用形式驗(yàn)證的方法對(duì)RTL級(jí)和RTL級(jí)以及RTL級(jí)和門級(jí)網(wǎng)表進(jìn)行等價(jià)性驗(yàn)證。為了進(jìn)一步保證RTL級(jí)設(shè)計(jì)和對(duì)應(yīng)的全定制設(shè)計(jì)模塊之間功能的等價(jià)性,設(shè)計(jì)
    發(fā)表于 12-07 17:40

    Conformal和formality形式驗(yàn)證svf文件問題

    formality要讀入一個(gè)svf文件,那conformal需要讀入什么文件幫助LEC呢?試了用DC生成一個(gè)vsdc文件,但讀進(jìn)去并沒有解決問題,一個(gè)可能是讀的指令不對(duì),又或者還需要發(fā)送什么指令來進(jìn)行設(shè)置?
    發(fā)表于 08-11 17:51

    淺析虛擬化技術(shù)各種形式管理方案

    淺析虛擬化技術(shù)各種形式管理方案 隨著存儲(chǔ)網(wǎng)絡(luò)技術(shù)的成熟,大容量和復(fù)雜度較高的方案實(shí)現(xiàn)變得十分常見。不同架構(gòu)的存儲(chǔ)平臺(tái)大大增加了管理
    發(fā)表于 04-27 17:34 ?759次閱讀
    <b class='flag-5'>淺析</b>虛擬化技術(shù)各種<b class='flag-5'>形式</b>管理方案

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

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

    形式驗(yàn)證成為SoC模塊驗(yàn)證的主流

      以對(duì)以仿真為中心的工程師有意義的方式調(diào)試形式驗(yàn)證代碼,在很大程度上已被許多形式驗(yàn)證供應(yīng)商解決。大多數(shù)工具可以在斷言失敗的情況下輸出“見證”。也就是說,導(dǎo)致斷言失敗的仿真波形
    的頭像 發(fā)表于 06-13 10:25 ?1326次閱讀
    <b class='flag-5'>形式</b><b class='flag-5'>驗(yàn)證</b>成為SoC模塊<b class='flag-5'>驗(yàn)證</b>的主流

    形式驗(yàn)證簡(jiǎn)介

    形式驗(yàn)證是一種自動(dòng)檢查方法,可以捕捉許多常見的設(shè)計(jì)錯(cuò)誤,并可以發(fā)現(xiàn)設(shè)計(jì)中的歧義。
    的頭像 發(fā)表于 07-28 14:04 ?2555次閱讀

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

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

    16nm技術(shù)的形式驗(yàn)證流程、優(yōu)勢(shì)和調(diào)試

    必須優(yōu)化正式驗(yàn)證流程中的初始網(wǎng)表,因此測(cè)試設(shè)計(jì)需要額外的邏輯。在這里,我們提供16 nm節(jié)點(diǎn)的形式驗(yàn)證流程和調(diào)試技術(shù)。
    的頭像 發(fā)表于 11-24 12:09 ?1381次閱讀
    16nm技術(shù)的<b class='flag-5'>形式</b><b class='flag-5'>驗(yàn)證</b>流程、優(yōu)勢(shì)和調(diào)試

    形式驗(yàn)證入門之基本概念和流程

    和靜態(tài)時(shí)序分析工具一起來完成對(duì)電路完備的驗(yàn)證。本文就以Synopsys公司的formality工具為例,來介紹形式驗(yàn)證的流程和基本概念,后續(xù)會(huì)詳細(xì)介紹使用
    的頭像 發(fā)表于 12-27 15:18 ?2310次閱讀

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

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

    基于形式驗(yàn)證的高效RISC-V處理器驗(yàn)證方法

    隨著RISC-V處理器的快速發(fā)展,如何保證其正確性成為了一個(gè)重要的問題。傳統(tǒng)的測(cè)試方法只能覆蓋一部分錯(cuò)誤情況,而且無法完全保證處理器的正確性。因此,基于形式驗(yàn)證的方法成為了一個(gè)非常有前途的方法,可以更加全面地驗(yàn)證處理器的正確性。
    的頭像 發(fā)表于 06-02 10:35 ?1433次閱讀

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

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

    形式驗(yàn)證及其在芯片工程中的應(yīng)用

    形式驗(yàn)證不僅僅是芯片領(lǐng)域中的一個(gè)概念。正如文章開頭提到過,形式驗(yàn)證強(qiáng)調(diào)使用嚴(yán)格的數(shù)學(xué)推理和形式化技術(shù),以確保系統(tǒng)的行為是否符合預(yù)期的性質(zhì)和規(guī)
    的頭像 發(fā)表于 10-20 10:46 ?1153次閱讀