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

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

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

SDC是如何煉成的?怎么去驗(yàn)收SDC呢?

冬至子 ? 來源:RTL2GDS ? 作者:老本 Benjamin ? 2023-06-28 17:17 ? 次閱讀

STA是由SDC驅(qū)動(dòng)的,所以SDC的完整性、正確性和一致性直接決定著綜合、布局布線以及STA的有效性。

特別是對于接口時(shí)序約束,牽涉到標(biāo)準(zhǔn)協(xié)議和異步關(guān)系等,后仿真如果PASS可以讓SDC作者睡得更香甜些。

后仿真一般是驗(yàn)證團(tuán)隊(duì)的職能領(lǐng)域,需要后端提供網(wǎng)表和SDF,不過后仿真需要后端所提供數(shù)據(jù)的時(shí)序是有要求的,其中hold timing必須干凈,setup timing最好能干凈,實(shí)在不行可以通過降頻讓setup滿足。由此可見,后仿真往往是在項(xiàng)目后期才能夠被執(zhí)行。那我們在項(xiàng)目前期怎么去驗(yàn)收SDC呢?有了標(biāo)準(zhǔn)就不至于整天提心吊膽。下面以PT為例來進(jìn)行講解,其它工具會(huì)有些許區(qū)別。

check_timing

check_timing這個(gè)命令是在對時(shí)序約束做一個(gè)深度的體檢,能檢查時(shí)序約束相關(guān)的各種問題,其默認(rèn)檢查項(xiàng)是有下面的這個(gè)變量控制的:

pt_shell > printvar timing_check_defaults

這個(gè)變量的工具默認(rèn)值:

  • generated_clocks

    檢查generated_clocks的定義是否合理,有沒有源時(shí)鐘,是否存在相互循環(huán)定義的情況。

  • generic

    檢查是否存在unmapped的cells,這類generic cell一般是零延時(shí),影響時(shí)序檢查準(zhǔn)確性。

  • latch_fanout

    檢查電平觸發(fā)latch的扇出是不是自身,有沒有l(wèi)atch級聯(lián)的情況

  • loops

    檢查組合邏輯有沒有反饋回路,STA對這種反饋回路是不會(huì)分析的,需要通過set_disable_timing來打斷這種反饋回路

  • no_clock

    檢查是否有時(shí)序單元的clock pin不在任何時(shí)鐘網(wǎng)絡(luò)上,特別留意中途是不是通過“set_sense -stop_propagation”之類的命令強(qiáng)制切斷了時(shí)鐘的傳播。

  • no_input_delay

    檢查Input Port是否有關(guān)聯(lián)的時(shí)鐘,否則相關(guān)IN2REG路徑是unconstrained的。

  • partial_input_delay

    檢查在set_input_delay時(shí),是否存在只指定-min或者-max其中之一的情況

  • unconstrained_endpoints

    檢查時(shí)序單元數(shù)據(jù)Pins或者Output Ports是否沒有max delay約束

  • unexpandable_clocks

    檢查相關(guān)的clocks之間是否可擴(kuò)展,在跨兩個(gè)不同頻率的時(shí)鐘路徑上計(jì)算時(shí)序時(shí),往往需要擴(kuò)展時(shí)鐘以計(jì)算相應(yīng)的setup timing

  • no_driving_cell

    檢查Input Port是否定義了驅(qū)動(dòng)單元,工具只會(huì)在相連的net有寄生參數(shù)存在時(shí)才會(huì)產(chǎn)生Warning信息

  • pulse_clock_non_pulse_clock_merge

    檢查pulse clock和normal clock是否共用相同時(shí)鐘網(wǎng)絡(luò)

  • pll_configuration

    檢查PLL的配置是否存在問題。

對于check_timing報(bào)告中的Warning和Error,要仔細(xì)地檢查,最好是一個(gè)Warning/Error都沒有,下面的結(jié)果也挺令人賞心悅目的(僅有2個(gè)Warning需要排查):

圖片

需要注意的是,在綜合階段需要先check_design保證設(shè)計(jì)本身沒有問題的情況下,再通過check_timing進(jìn)行時(shí)序約束的檢查。

report_analysis_coverage

report_analysis_coverage命令可以統(tǒng)計(jì)出有design中需要STA進(jìn)行的檢查有多少項(xiàng),其中有多少滿足(Met),有多少違反(Violated),有多少缺失檢查(Untested),如下圖所示:

圖片

需要特別注意的是Untested一欄,造成的原因可以有以下幾類:

  • false_paths

    set_false_path 或者asynchronous/exclusive clock groups

  • user_disabled

    timing check被用戶禁用了,例如set_disable_timing

  • constant_disabled

    set_case_analysis或者實(shí)際Signal已經(jīng)接電源或地(Tie High/Low)

  • no_paths

    路徑不存在或被切斷,造成原因也可能是set_disable_timing

  • mode_disabled

    特定mode相關(guān)時(shí)序約束,在其他mode下不會(huì)檢查

  • no_endpoint_clock

    endpoint沒有時(shí)鐘

  • no_startpoint_clock

    startpoint沒有時(shí)鐘

  • no_constrained_clock

    針對skew和clock separation檢查,沒有約束時(shí)鐘

  • no_ref_clok

    針對skew和clock separation檢查,沒有參考時(shí)鐘

  • no_clock

    針對min_pulse_width和min_period檢查,沒有時(shí)鐘定義

  • unknown

    其它未知原因

具體可以通過以下命令來debug:

pt_shell > report_analysis_coverage -status_detail untested -check setup

需要特別強(qiáng)調(diào) :對于異步路徑,比如false_path,case_analysis,set_disable_timing等等,每一條SDC語句都需要designer仔細(xì)review確認(rèn),簽字畫押。

一致性和CDC檢查

對于Top,往往還需要檢查Top和Block的約束的一致性,以及跨時(shí)鐘域檢查。這里常用兩個(gè)工具:一個(gè)是PT的GCA,適合門級網(wǎng)表的分析。另一個(gè)是SpyGlass,常用在RTL級別。

下圖是GCA一般流程:

圖片

如果要進(jìn)行Top和Block約束的一致性檢查,可以參考以下命令:

ptc_shell > read_verilog ./top.v
ptc_shell > link_design top
ptc_shell > source top_constraints.tcl
ptc_shell > link_design -add block1
ptc_shell > source block1_constraints.tcl
ptc_shell > set out_dir /user/abc/compare_top
ptc_shell > compare_block_to_top -block_design block1

GCA中也可以打印出跨時(shí)鐘域信息,通過以下命令:

ptc_shell > report_clock_crossing

需要強(qiáng)調(diào) ,在RTL交付前,跨時(shí)鐘域的檢查是非常關(guān)鍵的,利用SpyGlass等工具檢查其是否存在時(shí)鐘同步單元(synchronizer),并在需要時(shí)添加必要的約束控制跨時(shí)鐘路徑,避免功能錯(cuò)誤。另外,SpyGlass也能夠進(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)投訴
  • RTL
    RTL
    +關(guān)注

    關(guān)注

    1

    文章

    385

    瀏覽量

    59665
  • STA
    STA
    +關(guān)注

    關(guān)注

    0

    文章

    51

    瀏覽量

    18936
  • SDC
    SDC
    +關(guān)注

    關(guān)注

    0

    文章

    48

    瀏覽量

    15518
  • PLL電路
    +關(guān)注

    關(guān)注

    0

    文章

    92

    瀏覽量

    6386
收藏 人收藏

    評論

    相關(guān)推薦

    時(shí)序分析的設(shè)計(jì)約束(SDC

    使用SDC命令create_clock創(chuàng)建時(shí)鐘,時(shí)鐘周期20,占空比50%的時(shí)鐘信號;
    的頭像 發(fā)表于 11-08 09:12 ?7597次閱讀

    Sunlord SDC***C系列和SDC***Q系列有何差別?

    Sunlord SDC***C系列和SDC***Q系列有何差別?
    發(fā)表于 10-16 20:24

    SDC821相機(jī)原來圖解剖

    SDC821相機(jī)原來圖解剖
    發(fā)表于 03-31 10:49

    霍爾開關(guān)SDC1211,SDC1215,SDC1177,SDC1181,SDC1182,SDC1183應(yīng)用于TWS,筋模槍,流量傳感器,開關(guān)門檢測等

    SDC1211特點(diǎn) ? 全極性? 極低的功耗設(shè)計(jì) ? 工作電壓范圍:2.4V~5V ? 輸出方式:CMOS輸出? 斬波放大器設(shè)計(jì),對因工藝、工作溫度和機(jī)械應(yīng)力產(chǎn)生的噪聲和失調(diào)敏感度低 ? 不區(qū)分磁場
    發(fā)表于 04-26 13:57

    FPGA的reset信號需要加什么SDC約束

    FPGA的reset信號需要加什么SDC約束?
    發(fā)表于 04-23 11:38

    請問時(shí)序約束文件SDC支持哪些約束?

    時(shí)序約束文件SDC支持哪些約束?
    發(fā)表于 08-11 09:27

    基于SDC-PC0281恒流輸出LED驅(qū)動(dòng)電源

    基于SDC-PC0281恒流輸出LED驅(qū)動(dòng)電源
    發(fā)表于 09-15 16:58 ?4次下載

    介紹系統(tǒng)接口sdc

    今天要介紹的基本sdc是系統(tǒng)接口sdc。主要包括set_drive, set_driving_cell, set_input_transition, set_load這四條命令,都是和端口上的驅(qū)動(dòng)負(fù)載有關(guān).
    的頭像 發(fā)表于 02-03 14:34 ?1.1w次閱讀
    介紹系統(tǒng)接口<b class='flag-5'>sdc</b>

    SDC1742 12位自整角機(jī)數(shù)字轉(zhuǎn)換器

    電子發(fā)燒友網(wǎng)為你提供ADI(ti)SDC1742相關(guān)產(chǎn)品參數(shù)、數(shù)據(jù)手冊,更有SDC1742的引腳圖、接線圖、封裝手冊、中文資料、英文資料,SDC1742真值表,SDC1742管腳等資料
    發(fā)表于 02-22 13:08
    <b class='flag-5'>SDC</b>1742 12位自整角機(jī)數(shù)字轉(zhuǎn)換器

    SDC1740 14位自整角機(jī)數(shù)字轉(zhuǎn)換器

    電子發(fā)燒友網(wǎng)為你提供ADI(ti)SDC1740相關(guān)產(chǎn)品參數(shù)、數(shù)據(jù)手冊,更有SDC1740的引腳圖、接線圖、封裝手冊、中文資料、英文資料,SDC1740真值表,SDC1740管腳等資料
    發(fā)表于 02-22 13:08
    <b class='flag-5'>SDC</b>1740 14位自整角機(jī)數(shù)字轉(zhuǎn)換器

    SDC1741 12位自整角機(jī)數(shù)字轉(zhuǎn)換器

    電子發(fā)燒友網(wǎng)為你提供ADI(ti)SDC1741相關(guān)產(chǎn)品參數(shù)、數(shù)據(jù)手冊,更有SDC1741的引腳圖、接線圖、封裝手冊、中文資料、英文資料,SDC1741真值表,SDC1741管腳等資料
    發(fā)表于 02-22 13:08
    <b class='flag-5'>SDC</b>1741 12位自整角機(jī)數(shù)字轉(zhuǎn)換器

    SDC1700/SDC1702:低調(diào)自整角機(jī)/旋轉(zhuǎn)變壓器-數(shù)字轉(zhuǎn)換器過時(shí)數(shù)據(jù)表

    SDC1700/SDC1702:低調(diào)自整角機(jī)/旋轉(zhuǎn)變壓器-數(shù)字轉(zhuǎn)換器過時(shí)數(shù)據(jù)表
    發(fā)表于 05-26 18:02 ?2次下載
    <b class='flag-5'>SDC</b>1700/<b class='flag-5'>SDC</b>1702:低調(diào)自整角機(jī)/旋轉(zhuǎn)變壓器-數(shù)字轉(zhuǎn)換器過時(shí)數(shù)據(jù)表

    時(shí)序分析的設(shè)計(jì)約束SDC怎么寫

    使用SDC命令create_clock創(chuàng)建時(shí)鐘,時(shí)鐘周期20,占空比50%的時(shí)鐘信號
    的頭像 發(fā)表于 06-18 09:42 ?4151次閱讀
    時(shí)序分析的設(shè)計(jì)約束<b class='flag-5'>SDC</b>怎么寫<b class='flag-5'>呢</b>?

    時(shí)序分析基本概念—SDC概述

    今天我們要介紹的時(shí)序概念是設(shè)計(jì)約束文件 **SDC** . 全稱 ***Synopsys design constraints*** . SDC是一個(gè)設(shè)計(jì)中至關(guān)重要的一個(gè)文件。
    的頭像 發(fā)表于 07-03 14:51 ?6084次閱讀
    時(shí)序分析基本概念—<b class='flag-5'>SDC</b>概述

    探討一下SDC的各種語法構(gòu)成和整體結(jié)構(gòu)

    SDC是一個(gè)設(shè)計(jì)從RTL到netlist的橋梁,是FE/ME/BE都需要掌握的一項(xiàng)基本技能。通常情況來說,由前端工程師(designer)提供SDC文件是最合理的
    的頭像 發(fā)表于 07-06 15:28 ?3529次閱讀
    探討一下<b class='flag-5'>SDC</b>的各種語法構(gòu)成和整體結(jié)構(gòu)