精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

SDC約束文件中常見的基礎命令總結

要長高 ? 來源:eetop ? 作者:eetop ? 2023-12-04 12:21 ? 次閱讀

本文記錄SDC約束文件中比較復雜的一些命令,包括時鐘分頻、時序例外、多周期約束、半周期約束、多時鐘約束等。感覺項目中能用到的基礎命令差不多就總結完了。

時鐘分頻

時鐘信號穿過時序單元分頻之后,需要人為設置generatedclock,工具才能夠正確推導分頻之后的時鐘。因為EDA工具在STA時,時鐘信號不能穿透時序單元傳播

命令:

create_generated_clock-divide_by 2 -nameCLKG-source[get_portsCLK] [get_pinsFF1/Q]

set_clock_latencyvalue[get_clocksCLKG]#設置延時

set_clock_uncertaintyvalue[get_clocksCLKG]#設置不確定性

set_clock_transitionvalue[get_clocksCLKG]#設置轉換時間

除-divide_by之外,還可以采用-edges更精確的表明相對于masterclock,generatedclock的時鐘跳變邊沿。

FalsePath

某些情況下,設計中的確存在某些路徑,但是這些路徑之間的時序是不可能的,或者不是真實的,就要設置falsepath,讓工具不再對該路徑進行STA(注意只是不進行時序分析路徑還是存在的)。比如跨時鐘域之間的路徑,不會跳變的路徑等,或者不可能的路徑等。命令為:

set_false_path

互斥時鐘

多個時鐘是同步的,但是邏輯是相互排斥的,比如通過MUX二選一的時鐘,他們之間的時序路徑也不需要分析,為了讓工具不再優化兩時鐘之間的時序,可以用兩種命令約束:

方法1:

set_false_path-from[get_clocks CLK1] -to [get_clocks CLK2]

方法2:

set_clock_group-logically_exclusive-groupCLK1 -groupCLK2

-logical_exclusive表示兩個時鐘在邏輯上是不能同時存在的。如果物理上不能同時存在,比如同一個時鐘源定義了兩個時鐘,就要采用-physically_exclusive。

異步時鐘

兩個設計的時鐘來自于兩個不同的晶振,時鐘源沒有任何關系,頻率不確定,相位不確定,這兩個時鐘就叫異步時鐘,工具無法對異步時鐘進行時序分析,也沒必要進行時序分析。但是設計人員要確保信號在異步時鐘域之間的傳輸時不出現亞穩態。一般采用打兩拍、握手、fifo等跨時鐘域處理方式。

命令為:

set_clock-asynchronous-groupCLKA-groupCLKB

set_case_analysis

用于約束固定0/1,或者只有上升沿/下降沿端口,在這個端口散出的路徑中,就只有0/1,或者只分析上升沿/下降沿。在MMMC設置中,經常用這個設置芯片的不同工作模式。

多周期設計

在設計中,當兩個寄存器之間的組合邏輯路徑里,數據傳輸花費的時間多于一個時鐘周期,就需要為這個組合邏輯路徑聲明為多時鐘周期路徑。

1671286160393095.jpeg

上圖中,兩個寄存器之間的組合路徑需要3個時鐘周期。對建立時間的約束命令為:

create_clock-nameCLKM -period 10 [get_portsCLKM]

set_multicycle_path 3 -setup -from[get_pins UFF0/Q] -to [get_pinsUFF1/D]

接下來考慮hold時間檢查,默認的hold檢查是setup之前的有效沿(2ndedge),但是實際上數據不需要經過這么久的延時,實際上hold檢查的合理有效沿需要提前2個周期setup-1),因此hold約束命令為:

set_multicycle_path 2 -hold -from [get_pins UFF0/Q] -to [get_pins UFF1/D]

1671286138119674.jpeg

此外,如果該多時鐘周期路徑分為兩個部分A和B,其中A的延時為3clockcycles,B的延時是一個標準的時鐘周期,那么可以只用-through選項約束慢速的部分。命令:

set_multicycle_path 3 -setup-througSLOW

set_multicycle_path2-hold-throughSLOW

Half-Cycle Paths

當設計中同時存在上升沿和下降沿出發的場景,就很可能存在half-cyclepath。比如上升沿出發的寄存器到下降沿觸發的寄存器或者下降沿出發的寄存器到上升沿觸發的寄存器,如下所示。

1671286193378256.jpeg

建立時間中,數據的ArriveTime等于下降沿的6ns延時加上數據的延時,RequireTime為12ns的時鐘周期。即數據只有半個時鐘周期的時間,因此對建立時間的約束更苛刻了

保持時間的含義是在時鐘沿跳變時,上一個狀態不能變化太快。如上圖所示,保持時間的檢查的有效沿為caputreedge的上一個上升沿,由于launchedge已經有半個周期6ns的延時了,因此數據總是在6ns之后才來的,因此保持時間的裕量特別大

多時鐘約束

設計內部包含多個時鐘,但是所有時鐘都通過一個時鐘源分頻得到,這種是同步時鐘,相位都是固定的。工具在分析時序時,會自動計算兩時鐘信號相鄰最近的相位的時間差,作為STA檢查中的RequireTime。

在輸入/出端口,一個輸入/出對應著多個時鐘的輸入,這種需要對該端口進行多約束。

多時鐘輸入延時

create_clockCLKA#內部時鐘

create_clockCLKB#外部時鐘

set_input_delay1 -clockCLKB-max【get_portsA】

其中CLKA為待優化模塊內部的采集端口A數據的時鐘,CLKB為待優化模塊外部驅動數據進入端口A的虛擬時鐘。

多時鐘輸出延時

create_clockCLKA#內部時鐘

create_clockCLKB#外部采集時鐘B

create_clockCLKC#外部采集時鐘C

set_output_delay1 -clockCLKB-max【get_portsA】

set_output_delay1 -clockCLKC-add_delay-max【get_portsA】

Removal/RecoveryTiming

可以理解為復位信號的“Setup/HoldTime”。

審核編輯:黃飛

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 時鐘源
    +關注

    關注

    0

    文章

    93

    瀏覽量

    15936
  • 時鐘信號
    +關注

    關注

    4

    文章

    445

    瀏覽量

    28511
  • 異步時鐘
    +關注

    關注

    0

    文章

    17

    瀏覽量

    9402
  • 時鐘分頻
    +關注

    關注

    0

    文章

    4

    瀏覽量

    5713
收藏 人收藏

    評論

    相關推薦

    時序約束實操

    添加約束的目的是為了告訴FPGA你的設計指標及運行情況。在上面的生成約束之后,在Result àxx.sdc中提供約束參考(請注意該文件不能
    的頭像 發表于 04-28 18:36 ?2195次閱讀
    時序<b class='flag-5'>約束</b>實操

    時序分析的設計約束SDC

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

    聊聊ASIC設計約束SDC命令

    根據ASIC邏輯設計,優化的約束是速度和面積。在物理設計中,我們需要對面積、速度和功率進行優化設計。根據所需的技術節點和策略進行更好的功耗規劃,總是有助于獲得芯片的布局。
    發表于 07-11 09:31 ?707次閱讀
    聊聊ASIC設計<b class='flag-5'>約束</b>與<b class='flag-5'>SDC</b><b class='flag-5'>命令</b>

    ASIC設計約束SDC命令介紹

    在數字IC設計中,重要的ASIC設計約束分為兩類
    發表于 07-12 11:34 ?1421次閱讀
    ASIC設計<b class='flag-5'>約束</b>與<b class='flag-5'>SDC</b><b class='flag-5'>命令</b>介紹

    Linux中常用的壓縮和解壓縮命令介紹

    在Linux中,壓縮和解壓縮文件常見的操作。有時候,我們需要將大文件壓縮成較小的文件,以便于傳輸和存儲。同時,我們也需要解壓縮文件來獲得原
    發表于 07-31 11:50 ?2240次閱讀

    時序約束 專版

    TimeQuest Timing Analyzer為各種各樣的時鐘配置和典型時鐘提供許多SDC命令。 這個章節將介紹SDC可用的應用編程接口,以及描述指定的時鐘特性。 時鐘(Clocks
    發表于 05-16 18:51

    Linux系統中常見的壓縮命令工具概述

    ,有必要對需要備份的數據進行歸檔和壓縮。#其實歸檔相當于把多個文件打包一樣。壓縮著進一步降低打包好的歸檔文件占用的空間,充分提高備份介質的利用率。Linux系統中常見的壓縮命令工具包括
    發表于 07-09 07:30

    常見約束命令有哪幾種呢

    Design Compiler是什么?常見約束命令有哪幾種呢?
    發表于 11-02 06:17

    總結嵌入式系統開發中常見的存儲器及其特點

    總結嵌入式系統開發中常見的存儲器及其特點
    發表于 12-17 06:11

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

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

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

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

    如何將Altera的SDC約束轉換為Xilinx XDC約束

    了解如何將Altera的SDC約束轉換為Xilinx XDC約束,以及需要更改或修改哪些約束以使Altera的約束適用于Vivado設計軟件
    的頭像 發表于 11-27 07:17 ?5085次閱讀

    時序分析的設計約束SDC怎么寫呢?

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

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

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

    ASIC設計約束SDC命令

    根據ASIC邏輯設計,優化的約束是速度和面積。在物理設計中,我們需要對面積、速度和功率進行優化設計。根據所需的技術節點和策略進行更好的功耗規劃,總是有助于獲得芯片的布局。
    的頭像 發表于 07-09 11:28 ?657次閱讀
    ASIC設計<b class='flag-5'>約束</b>與<b class='flag-5'>SDC</b><b class='flag-5'>命令</b>