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

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

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

芯片后仿及SDF反標(biāo)

芯司機(jī) ? 來源:數(shù)字ICer ? 2023-06-08 10:07 ? 次閱讀

后仿

相對(duì)于RTL仿真,門級(jí)仿真占用的計(jì)算資源雖然很多,但是在靜態(tài)時(shí)序檢查(STA)工具普遍應(yīng)用之前,帶時(shí)序的動(dòng)態(tài)門級(jí)仿真幾乎可以說是唯一的timing sign-off手段了。

那么在STA工具已經(jīng)成熟的現(xiàn)在,門級(jí)仿真還有存在的必要嗎?為什么有些公司的設(shè)計(jì)流程中還包括門級(jí)仿真這個(gè)必需的步驟呢?

可能存在以下幾個(gè)原因:

檢查時(shí)序約束(SDC)的完備性— 防止約束的遺漏

檢查異步電路的時(shí)序—STA工具無能為力,異步處理部分在SDC約束文件中做的是fath_path處理,所以這部分時(shí)序是否滿足,STA工具并不會(huì)檢查也不會(huì)報(bào)出violation;

檢查網(wǎng)表的完備性—防止綜合、布局布線過程中的意外

為后續(xù)流程如功耗(Power)分析、壓降(IR Drop)分析提供波形—更準(zhǔn)確

測(cè)試向量的仿真—只有門級(jí)網(wǎng)表才包含掃描鏈,DFT邏輯的插入是否導(dǎo)致功能出現(xiàn)問題;

門級(jí)仿真分為兩種:

一種是不帶時(shí)序反標(biāo)的門級(jí)仿真(零延時(shí)仿真,綜合的網(wǎng)表就可以做,因?yàn)樵诓季植季€之前,所以也叫前仿,這時(shí)由于hold沒有修,所以會(huì)出現(xiàn)不少時(shí)序違例的情況);

一種是帶時(shí)序反標(biāo)(back-annotation)的門級(jí)仿真(布局布線之后的仿真,也叫后仿,這時(shí)的網(wǎng)表是后端做完布局布線,修補(bǔ)完timing的網(wǎng)表);
進(jìn)行PR網(wǎng)表的后仿真時(shí),我們需要告知仿真工具cell與cell之間的延遲,D端到Q端的延遲,這里就需要SDF文件!

前仿選項(xiàng)

+nospeicy
在仿真時(shí)忽略庫(kù)文件中指定的延時(shí)。

+delay_mode_zero
將標(biāo)準(zhǔn)庫(kù)單元中定義的延時(shí)替換為0。testbench中的 #延時(shí)也都被消除。

+notimingcheck時(shí)序檢查開關(guān),比如setup/hold/width檢查等等,如使用了該option,則仿真時(shí)不檢查時(shí)序,行為類似于RTL仿真。
在PR未結(jié)束,sdf反標(biāo)文件還沒準(zhǔn)備好時(shí),可用該選項(xiàng)忽略延時(shí),可用于功能性的粗略檢查。
但真正跑后仿真時(shí),不可使用該選項(xiàng),否則仿真有效性大大降低。

后仿選項(xiàng)

+sdfverbose
顯示所有的sdf反標(biāo)錯(cuò)誤;

+no_notifier
可以關(guān)掉時(shí)序檢查產(chǎn)生的不定態(tài)。通過這個(gè)命令參數(shù)可以使時(shí)序檢查任務(wù)中檢測(cè)到時(shí)序違例后,不影響其參數(shù)列表中的notifier的值,從而避免了notifier變化引起udp輸出不定態(tài)的情況,該命令僅對(duì)notifier的值有影響,對(duì)于時(shí)序檢查任務(wù)檢測(cè)到的時(shí)序違例不產(chǎn)生任何影響;

+neg_tchk若要使用負(fù)延時(shí)檢查,在編譯設(shè)計(jì)時(shí)必須包含+neg_tchk選項(xiàng)。如果省略此選項(xiàng),VCS將所有負(fù)延遲更改為0。

-negdelay
用于SDF文件中有負(fù)延遲,如果省略此選項(xiàng),VCS將所有負(fù)延遲更改為0。

sdf文件反標(biāo)

方法一

在makefile中調(diào)用,使用如下命令:

vcs+neg_tchk-negdelay-sdfmin|typ|maxfile.sdf

啟用SDF反標(biāo)。在file.sdf中指定的最小值、類型或最大值中的一種,在實(shí)例instance_name上進(jìn)行反標(biāo)。

方法二 $sdf_annotate

使用$sdf_annotate將SDF文件反標(biāo)到網(wǎng)表中:

$sdf_annotate("sdf_file"[,module_instance][,"sdf_configfile"][,"sdf_logfile"][,"mtm_spec"]
[,"scale_factors"][,"scale_type"]);

sdf_file:指定指向SDF文件的路徑;

module_instance:調(diào)用$sdf_annotate模塊實(shí)例的范圍。

sdf_configfile:指定SDF配置文件。

sdf_logfile:指定SDF log文件,可以使用+sdfverbose顯示所有的sdf反標(biāo)錯(cuò)誤。

mtm_spec:指定哪一種延遲類型,通常有三種min:typ:max,它的可能值是"MINIMUM", "TYPICAL", "MAXIMUM", or "TOOL_CONTROL"(默認(rèn)值)。在仿真器讀入SDF的時(shí)候,要指定使用哪一組。避免出現(xiàn)指定的組的時(shí)序信息不存在的情況。

scale_factors:指定min:typ:max的縮放因子,默認(rèn)為三個(gè)正實(shí)數(shù)“1.0:1.0:1.0”。

scale_type:指定SDF文件中在縮放前使用的延遲值。它可能的值是“FROM_TYPICAL”、“FROM_MIMINUM”、“FROM_MAXIMUM”和“FROM_MTM”(默認(rèn));

在tb中加載sdf文件

`ifdefSDF
initial
begin
$sdf_annotate("../../rtl/post_sim/file.sdf",tb,,"sdf.log",);
end
`endif

確認(rèn)成功反標(biāo)

e464c46c-058b-11ee-8a94-dac502259ad0.png

打印出Doing SDF annotation ...... Done

e471ae84-058b-11ee-8a94-dac502259ad0.png

其他

初始化寄存器的值

在vcs編譯選項(xiàng)里添加+vcs+initreg +random隨機(jī)化賦初值,可用于對(duì)初始狀態(tài)是x的寄存器。

導(dǎo)出VCD文件

VCD是不壓縮的文本格式,兼容性好,缺點(diǎn)是文件太大。因此后仿先寫出高壓縮比的FSDB文件,再轉(zhuǎn)成VCD。可指定轉(zhuǎn)換起止時(shí)間、結(jié)束時(shí)間。這樣一次后仿,就可以為不同的應(yīng)用生成不同的VCD文件。

FSDB轉(zhuǎn)VCD的工具通常在Verdi的安裝目錄,用法:

fsdb2vcdxxx.fsdb-oxxx.vcd-bt100ns-et200ns

其中,-bt是begin time,-et是end time;

關(guān)閉某些寄存器的時(shí)序檢查notiming.list

后仿過程中可能有一些不必要或者不想檢查的時(shí)序,尤其是跨時(shí)鐘域的兩級(jí)同步的第一級(jí)DFF出現(xiàn)所謂的時(shí)序違例,這是一種假的時(shí)序違例所以通常不關(guān)心它們是否有時(shí)序違例。

instance{tb.U_TOP.reg}{noTiming};

VCS +optconfigfile+notiming.list
可以用上面方法加載這個(gè)文件,這樣在后仿過程中將不對(duì)這些寄存器做時(shí)序檢查,避免不必要的時(shí)序問題而引起X態(tài)傳遞。

Note:

1.后仿開始前,一定要把詳細(xì)的SDF反標(biāo)報(bào)告打印出來仔細(xì)檢查。需要把錯(cuò)誤全部解決掉,警告視情況要解決大部分。帶時(shí)序的后仿,一定要注意仿真器是否關(guān)閉了notimingcheck和nospecify的選項(xiàng)。如果有nospecify,那么SDF中的時(shí)序信息就反標(biāo)不到仿真模型中(仿真模型的時(shí)序類型定義在specify block中);如果有notimingcheck,那么后仿過程中就不檢查時(shí)序違例,后仿就失去了最大的意義。

2.帶時(shí)序的后仿開始階段,建議dump一些波形出來,看看波形上的延時(shí)和SDF中的延時(shí)信息是否保持一致,這有助于對(duì)反標(biāo)過程的理解和后仿整體進(jìn)度的把握。

審核編輯:湯梓紅
聲明:本文內(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)投訴
  • 芯片
    +關(guān)注

    關(guān)注

    450

    文章

    49636

    瀏覽量

    417229
  • 仿真
    +關(guān)注

    關(guān)注

    50

    文章

    3972

    瀏覽量

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

    關(guān)注

    1

    文章

    384

    瀏覽量

    59520
  • 異步電路
    +關(guān)注

    關(guān)注

    2

    文章

    48

    瀏覽量

    11070
  • 時(shí)序約束
    +關(guān)注

    關(guān)注

    1

    文章

    114

    瀏覽量

    13386

原文標(biāo)題:后仿

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

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    芯片仿SDF 3.0解析(三)

    本文接著解析SDF3.0的Timing Checks Entries、Timing Environment Entries兩個(gè)部分。
    的頭像 發(fā)表于 04-16 11:08 ?1171次閱讀
    <b class='flag-5'>芯片</b><b class='flag-5'>后</b><b class='flag-5'>仿</b>之<b class='flag-5'>SDF</b> 3.0解析(三)

    關(guān)于POWERPCB元件編號(hào)標(biāo)ORCAD的研究

    `關(guān)于POWERPCB元件編號(hào)標(biāo)ORCAD的研究`
    發(fā)表于 08-20 14:38

    仿出現(xiàn)了10種警告。。。求助

    仿出現(xiàn)了x態(tài),前仿過了?,F(xiàn)在還沒帶sdf呢,考慮是異常的warning,但我警告太多了。。。有的警告有一百多個(gè),截圖如下。各位大神幫忙看下,是哪種警告讓我
    發(fā)表于 05-30 16:10

    Cadence 16.5 Concept HDL原理圖標(biāo)每個(gè)元件出現(xiàn)CDS_PART_NAME信息

    Cadence 16.5 Concept HDL原理圖標(biāo)每個(gè)元件出現(xiàn)CDS_PART_NAME信息,整個(gè)原理圖看著非常凌亂,如圖所示。在原理圖打包Export physical完成
    發(fā)表于 04-01 00:29

    Cadence 16.5 Concept HDL原理圖打包標(biāo)電源、地網(wǎng)絡(luò)顯示為紅色

    Cadence 16.5 Concept HDL原理圖打包標(biāo)電源、地網(wǎng)絡(luò)顯示為紅色,如圖所示,是什么原因產(chǎn)生的呢?怎樣消除?求大神賜教,謝謝?。?!
    發(fā)表于 04-01 01:09

    運(yùn)行實(shí)現(xiàn)時(shí)序仿真重新生成sdf文件

    / I1(0:0:0)(0:0:0))當(dāng)我重新運(yùn)行實(shí)現(xiàn)時(shí)序仿真時(shí),該sdf文件將重新生成實(shí)際/先前的延遲約束。有沒有辦法保留編輯過的sdf文件并模擬而不重新生成它?提前致謝以上來自于谷歌翻譯以下為原文
    發(fā)表于 11-07 11:30

    X_BUF在SDF中具有零延遲是為什么?

    我用netgen生成了一個(gè)PAR網(wǎng)表和一個(gè)SDF文件。在模擬中,我已經(jīng)看到來自LUT并通過X_BUF的特定信號(hào)沒有延遲!意味著X_BUF輸入端的信號(hào)與X_BUF的輸出相比具有零延遲。檢查SDF文件
    發(fā)表于 06-08 16:29

    金橙子打標(biāo)卡labview打標(biāo)開發(fā)沒頭緒?c#封裝成dlllabview調(diào)用真香!

    對(duì)接會(huì)面臨很多數(shù)據(jù)類型和指針的調(diào)用問題。labview如何調(diào)用?我們的方法是直接用c#封裝dll提供labview調(diào)用。初始化與初始化函數(shù)名]返回值: 通用錯(cuò)誤碼備注:]使用條件:1確保庫(kù)連接成功.2確保有庫(kù)函數(shù)的地址.使用方法:l]l 再由_wsplitpath分解
    發(fā)表于 07-26 01:18

    如何將PT產(chǎn)生的SDF文件標(biāo)設(shè)計(jì)進(jìn)行仿真?

    RT,現(xiàn)在后端已把PR數(shù)據(jù)導(dǎo)出交付給了前端,我想問問,如何將PT產(chǎn)生的SDF文件標(biāo)設(shè)計(jì)進(jìn)行仿真呢?現(xiàn)在知道需要將SDF文件引入到test
    發(fā)表于 06-23 06:50

    SDF是什么?有何應(yīng)用

    SDF-4.0隧道施工風(fēng)機(jī)技術(shù)***隧道施工風(fēng)機(jī)(SDF)系列
    發(fā)表于 09-02 09:09

    Python在IC中的應(yīng)用——文本處理

    SDF仿中往往生成的log中會(huì)有一些違例信息,Timing violation路徑或者$setuphold違例,這些信息混雜在后仿log中。
    發(fā)表于 03-07 14:55 ?741次閱讀

    什么是數(shù)字后仿?淺談芯片數(shù)字后仿的那些事

    這是相對(duì)于數(shù)字前仿來說的。從概念上來說,數(shù)字驗(yàn)證包含兩方面的內(nèi)容,數(shù)字前仿和數(shù)字后仿
    的頭像 發(fā)表于 03-15 14:51 ?8301次閱讀

    解析SDF的Header Section信息與Cell Entries信息

    SDF文件是在VCS/NC-Verilog仿真運(yùn)行時(shí)將STD/IO/Macro門級(jí)verilog中specify的延遲信息替換為QRC/Star-RC抽取的實(shí)際物理延時(shí)信息。
    的頭像 發(fā)表于 05-06 09:54 ?1902次閱讀
    解析<b class='flag-5'>SDF</b>的Header Section信息與Cell Entries信息

    詳解芯片SDF文件 MCU芯片全流程設(shè)計(jì)

    SDF文件是在VCS/NC-Verilog仿真運(yùn)行時(shí)將STD/IO/Macro門級(jí)verilog中specify的延遲信息替換為QRC/Star-RC抽取的實(shí)際物理延時(shí)信息。
    發(fā)表于 05-08 10:30 ?1.1w次閱讀
    詳解<b class='flag-5'>芯片</b><b class='flag-5'>SDF</b>文件 MCU<b class='flag-5'>芯片</b>全流程設(shè)計(jì)

    芯片仿SDF 3.0解析

    SDF文件是在VCS/NC-Verilog仿真運(yùn)行時(shí)將STD/IO/Macro門級(jí)verilog中specify的延遲信息替換為QRC/Star-RC抽取的實(shí)際物理延時(shí)信息,所以如果SDF文件
    的頭像 發(fā)表于 12-18 09:56 ?881次閱讀
    <b class='flag-5'>芯片</b><b class='flag-5'>后</b><b class='flag-5'>仿</b>之<b class='flag-5'>SDF</b> 3.0解析