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

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

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

SDC是如何煉成的?怎么去驗收SDC呢?

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

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

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

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

check_timing

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

pt_shell > printvar timing_check_defaults

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

  • generated_clocks

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

  • generic

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

  • latch_fanout

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

  • loops

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

  • no_clock

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

  • no_input_delay

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

  • partial_input_delay

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

  • unconstrained_endpoints

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

  • unexpandable_clocks

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

  • no_driving_cell

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

  • pulse_clock_non_pulse_clock_merge

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

  • pll_configuration

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

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

圖片

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

report_analysis_coverage

report_analysis_coverage命令可以統(tǒng)計出有design中需要STA進行的檢查有多少項,其中有多少滿足(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或者實際Signal已經(jīng)接電源或地(Tie High/Low)

  • no_paths

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

  • mode_disabled

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

  • no_endpoint_clock

    endpoint沒有時鐘

  • no_startpoint_clock

    startpoint沒有時鐘

  • no_constrained_clock

    針對skew和clock separation檢查,沒有約束時鐘

  • no_ref_clok

    針對skew和clock separation檢查,沒有參考時鐘

  • no_clock

    針對min_pulse_width和min_period檢查,沒有時鐘定義

  • unknown

    其它未知原因

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

pt_shell > report_analysis_coverage -status_detail untested -check setup

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

一致性和CDC檢查

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

下圖是GCA一般流程:

圖片

如果要進行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中也可以打印出跨時鐘域信息,通過以下命令:

ptc_shell > report_clock_crossing

需要強調(diào) ,在RTL交付前,跨時鐘域的檢查是非常關(guān)鍵的,利用SpyGlass等工具檢查其是否存在時鐘同步單元(synchronizer),并在需要時添加必要的約束控制跨時鐘路徑,避免功能錯誤。另外,SpyGlass也能夠進行約束一致性檢查,有興趣的可以查看其用戶手冊。

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

    關(guān)注

    1

    文章

    385

    瀏覽量

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

    關(guān)注

    0

    文章

    51

    瀏覽量

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

    關(guān)注

    0

    文章

    48

    瀏覽量

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

    關(guān)注

    0

    文章

    92

    瀏覽量

    6379
收藏 人收藏

    評論

    相關(guān)推薦

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

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

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

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

    SDC821相機原來圖解剖

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

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

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

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

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

    請問時序約束文件SDC支持哪些約束?

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

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

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

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

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

    SDC1742 12位自整角機數(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位自整角機數(shù)字轉(zhuǎn)換器

    SDC1740 14位自整角機數(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位自整角機數(shù)字轉(zhuǎn)換器

    SDC1741 12位自整角機數(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位自整角機數(shù)字轉(zhuǎn)換器

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

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

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

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

    時序分析基本概念—SDC概述

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

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

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