在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

3天內不再提示

基本的時序約束和STA操作流程

麻辣軟硬件 ? 來源:博客園 ? 作者:沒落騎士 ? 2021-08-10 09:33 ? 次閱讀

一、前言

無論是FPGA應用開發還是數字IC設計,時序約束和靜態時序分析(STA)都是十分重要的設計環節。在FPGA設計中,可以在綜合后和實現后進行STA來查看設計是否能滿足時序上的要求。本文闡述基本的時序約束和STA操作流程。內容主要來源于《Vivado從此開始》這本書,我只是知識的搬運工。

二、時序約束與XDC腳本

時序約束的目的就是告訴工具當前的時序狀態,以讓工具盡量優化時序并給出詳細的分析報告。一般在行為仿真后、綜合前即創建基本的時序約束。Vivado使用SDC基礎上的XDC腳本以文本形式約束。以下討論如何進行最基本時序約束相關腳本。

1 時序約束首要任務是創建主時鐘,主時鐘即為時鐘引腳進入時鐘信號或高速收發器生成時鐘。[create_clock]

create_clock -name clk_name -period N -waveform {pos_time neg_time} [get_ports port_name] (劃線部分可選)

創建兩個異步的主時鐘:

create_clock -name clk_a -period 10 [get_ports clk_a]

create_clock -name clk_b -period 15 [get_ports clk_b]

set_clock_groups -asynchronous -group clk_a -group clk_b

當兩個主時鐘是異步關系,它們生成時鐘同樣是異步關系:

set_clock_groups -asynchronous -group [get_clocks clk_a -include_generated_clocks]

-group [get_clocks clk_b -include_generated_clocks]

差分時鐘僅約束P端口

create_clock -name clk -period 10 [get_ports clk_p]

高速收發器生成時鐘作為主時鐘:

create_clock -name gt0_txclk -period 8 [get_pins GT0/。。。/TXOUTCLK]

有一種特殊情況無需與具體引腳綁定,即創建虛擬時鐘。該約束用于設定輸入/輸出延遲。需要創建虛擬時鐘的場景是輸入FPGA的數據由FPGA內部產生時鐘采樣,如串口通信

create_clock -name clk_v -period 5

2 創建主時鐘后,需要約束生成時鐘:[create_generated_clock]

生成時鐘分為兩種。由PLL MMCM等專用時鐘單元生成產生的時鐘信號,Vivado會自動產生相關約束。還有一種是自定義生成時鐘,一般為邏輯分頻得到。

時鐘源是時鐘端口:

create_generated_clock -name clk_div -source [get_ports clk] -divide_by 2 [get_pins rega/Q] 意思是在rega單元的Q引腳上的時鐘信號clk_div是由clk經過2分頻得到的生成時鐘。

時鐘源是引腳:

create_generated_clock -name clk_div -source [get_pins rega/C] -divide_by 2 [get_pins rega/Q]

除了使用-divide_by -multiply_by表示主時鐘和生成時鐘的頻率關系,也可以用 -edges實現更精確的表達:

create_generated_clock -name clk_div -source [get_pins rega/C] -edges {1 3 5} [get_pins rega/Q]

相移關系使用-edge_shift命令描述。

該約束命令還常用于重命名時鐘信號:

create_generated_clock -name clk_rename [get_pins clk_gen/。。。/CLKOUT0]

3 創建時鐘組:[set_clock_groups]

a. 異步時鐘情況:

set_clock_groups -asynchronous -group clk_a -group clk_b clk_a和clk_b是異步時鐘。

b. 物理互斥情況:

create_clock -name clk_a -period 10 [get_ports clk]

create_clock -name clk_b -period 8 [get_ports clk] -add

create_clock -name clk_c -period 5 [get_ports clk] -add

set_clock_groups -physically_exclusive -group clk_a -group clk_b -group clk_c

該種情況僅是為了觀察clk引腳時鐘信號周期依次為10ns 8ns和5ns時,時序是否收斂。因此這三個時鐘物理上不同時存在。

c. 邏輯互斥情況:

set_clock_groups -logically_exclusive

-group [get_clocks -of [get_pins clk_core/。。。/CLKOUT0]] -group [get_clocks -of [get_pins clk_core/。。。/CLKOUT1]]

clkout0和clkout1送入到BUFGMUX中,后續根據sel信號確定選擇哪一個作為工作時鐘。此時clkout0和clkout1同時存在電路中,但僅有一個會作為后續電路工作時鐘,因此邏輯上互斥。

特殊用法:當asynchronous 的group只有一個,說明改組內時鐘是同步的,但與其他所以時鐘異步。

4 設置偽路徑:[set_false_path]

設置偽路徑后,不再對特殊路徑進行時序分析。特殊路徑如測試邏輯、添加同步電路后的跨時鐘域路徑等。在兩個時鐘域之間應該相互設置為set_false:

set_false_path -from [get_clocks clk_a] -to [get_clocks clk_b]

set_false_path -from [get_clocks clk_b] -to [get_clocks clk_a]

5 常用時鐘相關命令:

report_clocks:查看創建的所有時鐘

report_property [get_clocks 《clk_name》]:查看時鐘clk_name的屬性

report_clock_network:查看時鐘的生成關系網絡

report_clock_interaction:查看時鐘交互關系

其中最后一項非常重要,經常被用于查看異步時鐘域之間的路徑是否安全。若存在不安全路徑,需要添加同步、握手或FIFO后,設置為異步時鐘組或false_path。

鍵入該命令后,會生成時鐘交互矩陣。對角線是每個時鐘內部路徑,其他非黑色部分即為存在對應兩個時鐘的跨時鐘域路徑。紅色部分是非安全路徑,若不處理會產生亞穩態。

三、查看時序報告(STA)

本節以一個有很多時序問題的工程為例進行講解。在綜合后即可打開時序概要查看時序報告。

打開后有如下界面:

博客園

其中Design Timing Summary是時序概況,包括最大延遲分析、最小延遲分析以及脈沖寬度三個部分。其中WNS或WHS為負數,說明當前設計無法滿足建立時間或保持時間要求,也就是說數據無法被穩定采樣。

Clock Summary內的信息與使用report_clocks TCL腳本調出來的信息相似,包含了全部已創建的時鐘信號。Check Timing部分則包含了未被約束的部分,我們可以根據該部分信息進一步添加必要的約束。Intra-Clock Paths和Inter-Clock Paths則分別描述了同步和異步電路時序路徑的裕量參數。

點擊WNS或WHS后的數值可以直接找到時序裕量最差的路徑:

博客園

雙擊路徑信息所在行任意位置,界面會跳轉到該路徑的詳細信息界面:

博客園

四類時序路徑中,除了FPGA輸入端口到輸出端口這一特殊情況外,其他時序路徑均由源時鐘路徑、數據路徑和目的時鐘路徑三部分構成。上表中各項的具體解釋見官方文檔UG908.

本文說明了時序約束和STA的關系,基本時序約束情形及相應的XDC腳本。之后簡單介紹了如何在VIVADO中查看時序報告來分析時序問題。后續會以網絡通信中常見的RGMII接口設計實例闡述I/O延遲約束部分。

編輯:jq

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

    關注

    1637

    文章

    21841

    瀏覽量

    608516
  • STA
    STA
    +關注

    關注

    0

    文章

    51

    瀏覽量

    19095
  • Vivado
    +關注

    關注

    19

    文章

    819

    瀏覽量

    67306

原文標題:VIVADO時序約束及STA基礎

文章出處:【微信號:VOSDeveloper,微信公眾號:麻辣軟硬件】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    集成電路設計中靜態時序分析介紹

    本文介紹了集成電路設計中靜態時序分析(Static Timing Analysis,STA)的基本原理、概念和作用,并分析了其優勢和局限性。 ? 靜態時序分析(Static Timing
    的頭像 發表于 02-19 09:46 ?201次閱讀

    xilinx FPGA IOB約束使用以及注意事項

    采用了IOB約束,那么就可以保證從IO到達寄存器或者從寄存器到達IO之間的走線延遲最短,同時由于IO的位置是固定的,即存在于IO附近,所以每一次編譯都不會造成輸入或者輸出的時序發生改變。 二、為什么要使用IOB約束 考慮一個場景
    的頭像 發表于 01-16 11:02 ?308次閱讀
    xilinx FPGA IOB<b class='flag-5'>約束</b>使用以及注意事項

    時序約束一主時鐘與生成時鐘

    的輸出,對于Ultrascale和Ultrascale+系列的器件,定時器會自動地接入到GT的輸出。 1.2 約束設置格式 主時鐘約束使用命令create_clock進行創建,進入Timing
    的頭像 發表于 11-29 11:03 ?786次閱讀
    <b class='flag-5'>時序</b><b class='flag-5'>約束</b>一主時鐘與生成時鐘

    常用時序約束使用說明-v1

    Console,在Console最下面就會出現命令輸入框。TCL操作命名report_clocks會報告所有的時鐘關系?all_clocks 把系統使用的時鐘報告出來all_registers可以查看所有的寄存器
    的頭像 發表于 11-01 11:06 ?332次閱讀

    Vivado使用小技巧

    有時我們對時序約束進行了一些調整,希望能夠快速看到對應的時序報告,而又不希望重新布局布線。這時,我們可以打開布線后的dcp,直接在Vivado Tcl Console里輸入更新后的時序
    的頭像 發表于 10-24 15:08 ?565次閱讀
    Vivado使用小技巧

    DDR4時序參數介紹

    DDR4(Double Data Rate 4)時序參數是描述DDR4內存模塊在執行讀寫操作時所需時間的一組關鍵參數,它們直接影響到內存的性能和穩定性。以下是對DDR4時序參數的詳細解釋,涵蓋了主要的
    的頭像 發表于 09-04 14:18 ?4470次閱讀

    深度解析FPGA中的時序約束

    建立時間和保持時間是FPGA時序約束中兩個最基本的概念,同樣在芯片電路時序分析中也存在。
    的頭像 發表于 08-06 11:40 ?974次閱讀
    深度解析FPGA中的<b class='flag-5'>時序</b><b class='flag-5'>約束</b>

    DRAM內存操作時序解析

    在數字時代,DRAM(動態隨機存取存儲器)扮演著至關重要的角色。它們存儲著我們的數據,也承載著我們的記憶。然而,要正確地操作DRAM并確保其高效運行,了解其背后的時序操作機制是必不可少的。
    的頭像 發表于 07-26 11:39 ?934次閱讀
    DRAM內存<b class='flag-5'>操作</b>與<b class='flag-5'>時序</b>解析

    FPGA 高級設計:時序分析和收斂

    Static Timing Analysis,簡稱 STA。它可以簡單的定義為:設計者提出一些特定的時序要求(或者說是添加特定的時序約束),套用特定的
    發表于 06-17 17:07

    中控流程工業首款AI時序大模型TPT發布

    點燃AI引擎,打造工業應用新范式? 杭州2024年6月7日?/美通社/ --?6月5日,由中控技術傾力打造的流程工業首款AI時序大模型TPT(Time-series Pre-trained
    的頭像 發表于 06-07 14:23 ?638次閱讀
    中控<b class='flag-5'>流程</b>工業首款AI<b class='flag-5'>時序</b>大模型TPT發布

    Xilinx FPGA編程技巧之常用時序約束詳解

    對數據的成功獲取。Xilinx約束系統允許設計者在不需考慮源和目的時鐘頻率、相位的情況下約束數據路徑的最大延時。 異步時鐘域使用的約束方法的流程為: 為源寄存器定義
    發表于 05-06 15:51

    FPGA工程的時序約束實踐案例

    詳細的原時鐘時序、數據路徑時序、目標時鐘時序的各延遲數據如下圖所示。值得注意的是數據路徑信息,其中包括Tco延遲和布線延遲,各級累加之后得到總的延遲時間。
    發表于 04-29 10:39 ?1045次閱讀
    FPGA工程的<b class='flag-5'>時序</b><b class='flag-5'>約束</b>實踐案例

    時序約束實操

    添加約束的目的是為了告訴FPGA你的設計指標及運行情況。在上面的生成約束之后,在Result àxx.sdc中提供約束參考(請注意該文件不能直接添加到工程中,需要熱復制到別的指定目錄或者新建自己的SDC文件添加到工程)。
    的頭像 發表于 04-28 18:36 ?2506次閱讀
    <b class='flag-5'>時序</b><b class='flag-5'>約束</b>實操

    Xilinx FPGA的約束設置基礎

    LOC約束是FPGA設計中最基本的布局約束和綜合約束,能夠定義基本設計單元在FPGA芯片中的位置,可實現絕對定位、范圍定位以及區域定位。
    發表于 04-26 17:05 ?1501次閱讀
    Xilinx FPGA的<b class='flag-5'>約束</b>設置基礎

    Xilinx FPGA編程技巧之常用時序約束詳解

    時鐘頻率、相位的情況下約束數據路徑的最大延時。 異步時鐘域使用的約束方法的流程為: 為源寄存器定義時序組 為目的寄存器定義時序組 使用F
    發表于 04-12 17:39
    主站蜘蛛池模板: 一级特黄aaa大片免费看 | 国产精品午夜自在在线精品 | fenfencao在线观看免费视频 | 在线天堂资源www中文在线 | 日韩成人毛片高清视频免费看 | 青草91| 久久精品国波多野结衣 | 激情五月激情综合 | 午夜视频免费观看黄 | 综合黄色 | 亚洲色图欧美视频 | 免费观看黄a一级视频日本 免费观看黄色网页 | 色综合天天综合网亚洲影院 | 日本www色视频成人免费网站 | 亚洲最大毛片 | 搜索黄色毛片 | 亚洲欧美经典 | 人人玩人人添天天爽 | 亚洲综合丁香 | 黄视频在线观看网站 | 全部在线播放免费毛片 | 午夜操操 | 亚洲最新黄色网址 | 日韩在线一区二区 | 黄色网在线 | 在线色片 | 欧美中出在线 | 你懂的手机在线 | 亚洲www网站 | 8888奇米四色在线 | 免费的很黄很色的床小视频 | 新网球王子u17世界杯篇免费观看 | 精品福利在线观看 | 日韩欧美亚洲一区 | 最新国产精品视频免费看 | 青青草国产三级精品三级 | 4438x成人网最大色成网站 | 好吊色视频988gao在线观看 | 久久香蕉国产线看观看亚洲片 | 一级毛片成人免费看a | 男人日女人免费视频 |