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

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

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

3天內不再提示

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

FPGA設計論壇 ? 來源:FPGA設計論壇 ? 2024-11-29 11:03 ? 次閱讀

一、主時鐘create_clock

1.1 定義

時鐘是來自FPGA芯片外部的時鐘,通過時鐘輸入端口或高速收發器GT的輸出引腳進入FPGA內部。對于賽靈思7系列的器件,主時鐘必須手動定義到GT的輸出,對于Ultrascale和Ultrascale+系列的器件,定時器會自動地接入到GT的輸出。

1.2 約束設置格式

主時鐘約束使用命令create_clock進行創建,進入Timing Constraints窗口,clocks選擇Create Clock,單擊添加圖標或雙擊Create Clock,進入創建窗口

99e5fd30-ad3b-11ef-93f3-92fbcf53809c.png

Create Clock窗口中,Clock name為時鐘約束命名,Source objects設置約束的對象類型,可以是ports,nets,pin,Waveform設置波形的形狀,Period為波形周期,Rise at設置時鐘的上升沿位置,Fall at設置時鐘的下降沿位置。command后面為根據上述的設置自動生成對應的約束命令。

99f0071c-ad3b-11ef-93f3-92fbcf53809c.png

1.3Add this clock to the existing clock

Add this clock to the existing clock勾選后,對于如果某個對象已創建時序約束,再次創建時將不會將之前的約束覆蓋。

下面兩條約束create_clk1和create_clk2的約束對象source objects都是clk1,約束內容不同,未勾選Add this clock to the existing clock時,約束如下

9a0a9410-ad3b-11ef-93f3-92fbcf53809c.png

查看時序分析結果,只有create_clk2的信號,create_clk1已被覆蓋

9a1b41ca-ad3b-11ef-93f3-92fbcf53809c.png

勾選Add this clock to the existing clock

9a33004e-ad3b-11ef-93f3-92fbcf53809c.png

時序分析報告中,create_clk1和create_clk2都存在

9a3dc42a-ad3b-11ef-93f3-92fbcf53809c.png

1.4 示例

以時鐘輸入端口為例,時鐘信號周期為10ns,占空比為50%,通過輸入緩沖器和全局時鐘緩沖器BUFG到達寄存器的時鐘輸入端口。

約束命令:create_clock -period 10 [get_ports sysclk]

9a47f166-ad3b-11ef-93f3-92fbcf53809c.png

來自高速收發器GT的時鐘rxclk,周期為3.33ns,50%的占空比,經過時鐘管理單元MMCM,生成不同的分頻時鐘信號,分頻時鐘信號再傳輸到寄存器。

約束命令:create_clock -name rxclk -period 3.33 [get_pins gt0/RXOUTCLK]

9a7d8f06-ad3b-11ef-93f3-92fbcf53809c.png

1.5 差分信號

約束命令:create_clock -name sysclk -period 3.33 [get_ports SYS_CLK_clk_p]

差分信號作為主時鐘輸入時,以一個差分信號輸入到PLL的時鐘輸入端口CLKIN1為例,主時鐘必須約束到差分端口的輸入正極(sys_clk_clk_p)

9a8793a2-ad3b-11ef-93f3-92fbcf53809c.png

二、生成時鐘generate_clock

2.1 定義

生成時鐘通常來源于設計內部的時鐘管理單元,如MMCM,PLL等,生成時鐘是與主時鐘相關,其來源來自主時鐘或其他生成時鐘。因此,需先定義主時鐘,再定義生成時鐘。優點是主時鐘變化時會同步進行變化。

生成時鐘與主時鐘關系可以是分頻,倍頻,非整數倍頻率,相移,占空比切換,以及上述關系的組合。

2.2 格式

在Timing Constraints中,左側選擇Create Generated Clock,

9a9e2ec8-ad3b-11ef-93f3-92fbcf53809c.png

在Create Generated Clock可以看到生成時鐘的相關參數設置

clock name: 設置生成時鐘的名稱

Master pin(source):設置生成時鐘的來源,可以是IO ports或cells pin

Master clock:設置生成時鐘的源時鐘

Source objects:指定指定生成時鐘的實際對象,可以是I/O ports,cell pins或nets.

Do not override clocks already defined on the same Source object:勾選后,如果Source objects上有其他時鐘約束,將不會被覆蓋,不勾選,則覆蓋原先的約束信息

Derive from source clock waveform:設置生成時鐘波形與源時鐘的關系,有頻率相關和邊沿相關兩種方式,見2.2.1和2.2.2

2.2.1 by clock frequency

Multiply source clock frequency by:生成時鐘是源時鐘的倍頻關系,值大于或等于1

Divide source clock frequency by:生成時鐘是源時鐘的分頻關系,值大于或等于1

Duty cycle:設置生成時鐘的占空比

Invert the generated clock signal:勾選后對生成信號進行倒置,即高低電平互換,0變1,1變0

下圖設置的命令為:create_generated_clock -name gen_clk -source [get_ports clk1] -multiply_by 2 -invert -master_clock [get_clocks create_clk1]

9aab7b1e-ad3b-11ef-93f3-92fbcf53809c.png

2.2.2by clock edges

通過源時鐘的邊沿設置生成時鐘,以下圖為例。

9ac6f376-ad3b-11ef-93f3-92fbcf53809c.png

對應的命令為create_generated_clock -name gen_clk -source [get_pins clk_IBUF_BUFG_inst/O] -edges {1 3 4} -edge_shift {2.0 0.0 1.0} -add -master_clock [get_clocks "*"] [get_pins {shiftr_reg[13]/C}]

9ad6d6ce-ad3b-11ef-93f3-92fbcf53809c.png

含義解釋:-edge {1,3,4}即生成時鐘的第1個上升沿位置,第1個下降沿位置,第2個上升沿位置分別對應源時鐘的第1,3,4個變化邊沿,-edge_shift的3個值為在源時鐘基礎上的偏移。假設源時鐘clk周期為10ns,占空比為50%,從0時刻開始,統計了邊沿變化的數目,-edge {1,3,4}如中間波形所示,對應了clk第1,3,4的邊沿;Generate clk即為各個邊沿的偏移值,分別是0+2,10+0,15+1,即為Generate clk的波形。

2.2.3 示例

a)二分頻的生成時鐘實現用寄存器實現

9aefef2e-ad3b-11ef-93f3-92fbcf53809c.png

主時鐘周期為10ns,對應的約束命令為

create_clock -name clkin -period 10 [get_ports clkin] #創建主時鐘
create_generated_clock -name clkdiv2 -source [get_ports clkin] -divide_by 2 [get_pins REGA/Q] #創建生成時鐘

b)邊沿生成時鐘

時鐘邊沿設置生成時鐘,對應命令為,由波形可看出生成時鐘的3個邊沿剛好對應主時鐘的第1,3,5,因為無偏移,故不需要-edge_shift,

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

生成時鐘的波形clkdiv2如下圖所示

9b166618-ad3b-11ef-93f3-92fbcf53809c.png

c)非整數倍頻生成時鐘

通過同時設置倍頻和分頻可以設置非整數倍的生成時鐘頻率,如果需要生成一個4/3倍頻的生成時鐘,先用倍頻參數multiply_by 4,再用分頻參數divide_by 3。

create_generated_clock -name clk43 -source [get_pins mmcm0/CLKIN] -multiply_by 4 -divide_by 3 [get_pins mmcm0/CLKOUT]

2.2.4 自動生成時鐘

Vivado在某些場景下會根據已定義的主時鐘自動產生生成時鐘,將生成時鐘約束到時鐘修正塊(CMB:clock modifying blocks)中,CMB可以是MMCM,PLL,BUFR等,在UltraScale器件中,還包括GT_COMMON/GT_CHANNEL/IBUFDS_GTE3,ISERDESE3,BITSLICE_CONTROL / RX*_BITSLICE。

如果用戶在需自動產生生成時鐘的網表對象中設置了約束,則不會產生生成時鐘。自動產生的生成時鐘是以定義位置連接net的最頂層的部分名來命名。

以下圖連接示例,主時鐘clkin驅動MMCM實例化為clkip/mmcm0的CLKIN,自動產生的生成時鐘名稱為cpuclk,約束到clkip/mmcm0/CLKOUT

9b1d5306-ad3b-11ef-93f3-92fbcf53809c.png

2.2.5重命名生成時鐘

對于自動生成的生成時鐘,可以使用約束對其進行重命名,命令格式如下

new_name:重命名的名稱

source_object:為自動生成時鐘的源對象

source/master_clock:在源對象source_object存在其他時鐘時,必須加上該參數,避免沖突或產生歧義

create_generated_clock -name new_name [-source master_pin] [-master_clock master_clk] source_object

并不是生成時鐘都可以重命名,自動生成時鐘重命名于來源的pin,例如MMCM/PLL的輸出端口,不能重命名于BUFG的輸出端口,并且用戶定義的生成時鐘不能重命名。

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

    關注

    5

    文章

    392

    瀏覽量

    37428
  • 主時鐘
    +關注

    關注

    0

    文章

    8

    瀏覽量

    6023

原文標題:時序約束一主時鐘與生成時鐘

文章出處:【微信號:gh_9d70b445f494,微信公眾號:FPGA設計論壇】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    FPGA時序案例分析之時鐘周期約束

    時鐘周期約束,顧名思義,就是我們對時鐘的周期進行約束,這個約束是我們用的最多的約束了,也是最重要
    的頭像 發表于 11-19 11:44 ?5731次閱讀
    FPGA<b class='flag-5'>時序</b>案例分析之<b class='flag-5'>時鐘</b>周期<b class='flag-5'>約束</b>

    錯誤時鐘偏移計算導致錯誤時序收斂的解決方案

    生成時鐘沒有使用‘-master_clock’定義 在同一時鐘網絡的并行分支上的層級引腳上創建的時鐘
    的頭像 發表于 12-24 11:16 ?6106次閱讀

    FPGA時鐘約束詳解 Vivado添加時序約束方法

    在FPGA設計中,時序約束的設置對于電路性能和可靠性都至關重要。在上篇的文章中,已經詳細介紹了FPGA時序約束的基礎知識。
    發表于 06-06 18:27 ?1.1w次閱讀
    FPGA<b class='flag-5'>主</b><b class='flag-5'>時鐘</b><b class='flag-5'>約束</b>詳解 Vivado添加<b class='flag-5'>時序</b><b class='flag-5'>約束</b>方法

    FPGA時序約束之衍生時鐘約束時鐘分組約束

    在FPGA設計中,時序約束對于電路性能和可靠性非常重要。在上篇的文章中,已經詳細介紹了FPGA時序約束
    發表于 06-12 17:29 ?2883次閱讀

    FPGA時序約束之偽路徑和多周期路徑

    前面幾篇FPGA時序約束進階篇,介紹了常用時鐘約束、衍生時鐘
    發表于 06-12 17:33 ?1918次閱讀

    FPGA時鐘周期約束講解

    時鐘周期約束是用于對時鐘周期的約束,屬于時序約束中最重要的
    發表于 08-14 18:25 ?928次閱讀

    時序約束后,程序最高的工作時鐘問題

    工作時鐘卻只有100MHz,查資料這款FPGA最快可跑四五百M,時序約束也沒有不滿足建立時間和保持時間的報錯,本身整個系統就用了時鐘,同
    發表于 08-14 15:07

    時序約束時鐘約束

    也可在實現之后,打開Flow Navigator ->Open Implemented Design,選擇Constraints Wizard進入向導進行約束。 2. 生成時鐘約束:變
    發表于 09-21 11:51

    時序約束時鐘約束

    vivado默認計算所有時鐘之間的路徑,通過set_clock_groups命令可禁止在所標識的時鐘組之間以及時鐘組內的時鐘進行
    發表于 09-21 12:40

    如何使用時序約束向導

    了解時序約束向導如何用于“完全”約束您的設計。 該向導遵循UltraFast設計方法,定義您的時鐘時鐘交互,最后是您的輸入和輸出
    的頭像 發表于 11-29 06:47 ?3035次閱讀
    如何使用<b class='flag-5'>時序</b><b class='flag-5'>約束</b>向導

    硬件設計中教你如何正確的約束時鐘

    時鐘域之間存在單位和多位混合的跨時鐘域路徑,那么對于單位的跨時鐘域路徑要明確的對每條路徑設置偽路徑來約束,對于多位的跨
    的頭像 發表于 07-15 15:35 ?6612次閱讀

    FPGA之主時鐘約束解析

    約束時鐘 在這節開講之前,我們先把wave_gen工程的wave_gen_timing.xdc中的內容都刪掉,即先看下在沒有任何時序
    的頭像 發表于 11-16 17:45 ?3496次閱讀
    FPGA之主<b class='flag-5'>時鐘</b><b class='flag-5'>約束</b>解析

    時序約束---多時鐘介紹

    當設計存在多個時鐘時,根據時鐘的相位和頻率關系,分為同步時鐘和異步時鐘,這兩類要分別討論其約束
    的頭像 發表于 04-06 14:34 ?1239次閱讀
    <b class='flag-5'>時序</b><b class='flag-5'>約束</b>---多<b class='flag-5'>時鐘</b>介紹

    FPGA設計中大位寬、高時鐘頻率時序問題調試經驗總結

    時鐘周期約束:用戶需要將設計中的所有時鐘進行約束后,綜合器才能進行合理的靜態時序分析。個設計中
    的頭像 發表于 05-06 09:31 ?2359次閱讀
    FPGA設計中大位寬、高<b class='flag-5'>時鐘</b>頻率<b class='flag-5'>時序</b>問題調試經驗總結

    約束時序分析的概念

    很多人詢問關于約束時序分析的問題,比如:如何設置setup,hold時間?如何使用全局時鐘和第二全局時鐘(長線資源)?如何進行分組約束?如
    的頭像 發表于 05-29 10:06 ?866次閱讀
    <b class='flag-5'>約束</b>、<b class='flag-5'>時序</b>分析的概念
    主站蜘蛛池模板: 免费网站啪啪大全 | 亚洲色图欧美在线 | 欧美区一区 | 欧美一级乱理片免费观看 | 777kkk亚洲综合欧美色老头 | 日韩污| 手机在线观看视频你懂的 | 久久网站免费观看 | 操碰91| 色碰人色碰人视频 | 99精品热女视频专线 | 亚洲视频三区 | 日韩欧美卡通动漫在线观看 | 欧美性野久久久久久久久 | 天堂在线观看免费视频 | 免费一级毛片在级播放 | 伊人久久狼人 | 黄色三级录像 | vip影院在线观看 | 超黄视频网站 | 成人黄网大全在线观看 | 美女好紧好大好爽12p | 免费又黄又爽的禁片视频 | 最近高清在线国语 | 亚洲黄色网址 | 日本免费不卡在线一区二区三区 | 在线二区 | 潘金莲国产三级视频在线 | 欧美mv日韩mv国产mv网站 | 午夜视频色 | 91md天美精东蜜桃传媒在线 | 亚洲伊人久久大香线蕉啊 | 中文字幕视频一区二区 | 天天干夜夜谢 | 一本高清在线 | 妹子干综合网 | 日韩一区二区视频在线观看 | 特黄特级高清免费视频毛片 | 久操综合 | 中日韩黄色大片 | 最新免费jlzzjlzz在线播放 |