《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 其他 > FPGA教學——FPGA時序約束之時鐘周期約束

FPGA教學——FPGA時序約束之時鐘周期約束

2022-08-10
來源:FPGA設計論壇
關鍵詞: FPGA 時鐘周期約束

  1. 時鐘周期約束:時鐘周期約束,顧名思義,就是我們對時鐘的周期進行約束,這個約束是我們用的最多的約束了,也是最重要的約束。

  2. vivado中時鐘約束指令:

  create_clock

  使用create_clock來創建時鐘周期約束,使用方法:

  create_clock -name <name> -period <period> -waveform {<rise_time> <fall_time>} [get_ports <input_port>]

  微信圖片_20220810142848.png

  值得注意的是,這里的時鐘必須是主時鐘 primary clock。主時鐘通常有兩種情況:一種是由外部時鐘源提供,另外一種是告訴收發器的時鐘提供。


  如何查看主時鐘?

  綜合、布局布線之后

  打開綜合設計或者布局布線設計

  兩種方式查看主時鐘:第一種,report_clock_networks -name mainclock,可以直接查看主時鐘。第二種,check_timing -override_defaults no_clock,可以查看沒有被約束的主時鐘

  當主時鐘之間的相位關系確定時,則通過-waveform參數進行約束

  微信圖片_20220810142904.png

  如上圖所示的兩個主時鐘,進行如下約束:

  create_clock -name clk0 -period 10.0 -waveform {0 5} [get_ports clk0]

  create_clock -name clk1 -period 8.0  -waveform {2 8} [get_ports clk1]

  數字單位默認是ns。如果不寫waveform參數,則默認占空比是50%且第一個上升沿在0時刻。

 

 一般來說,如果輸入時鐘是差分的,只需要對P端進行約束即可。

  create_generated_clock

  約束在FPGA內部產生的衍生時鐘,使用方法如下:

 

 create_generated_clock -name <generated_clock_name> \

  -source <master_clock_source_pin_or_port> \

  -multiply_by <mult_factor> \

  -divide_by <div_factor> \

  -master_clock <master_clk> \

  <pin_or_port>


  微信圖片_20220810142924.png

  因為是衍生時鐘,所以有-source參數,指明衍生時鐘從哪里來的,后面就是源時鐘名字,master clock,叫上一級時鐘,區別于primary clock。它可以是primary clock 也可以是其他衍生時鐘。

  這個命令并不是設定周期和波形,而是描述時鐘電路如何對上級時鐘的轉換:

  簡單的頻率分頻、倍頻

  頻率和分頻組合,獲得非整數的比例,通常由MMCM或PLL完成

  相移或波形反相

  占空比改變


  set_clock_groups

  使用方法:


  set_clock_groups -asynchronous -group <clock_name_1> -group <clock_name_2>

  set_clock_groups -physically_exclusive -group <clock_name_1> -group <clock_name_2>

  第一種用法:來指定兩個主時鐘是異步關系,使用asynchronous。

  

create_clock -period 10 -name clk1 [get_ports clk1]

  create_clock -period 8 -name clk2 [get_ports clk2]

  set_clock_groups -asynchronous -group clk1 -group clk2

  第二種用法:當我們需要驗證同一個時鐘端口在不同時鐘頻率下能否獲得時序收斂時使用。       比如有兩個異步主時鐘clk1和clk2,需要驗證在clk2頻率為100MHz,clk1頻率分別為50MHz、100MHz和200MHz下的時序收斂情況,我們就可以這樣寫。

  

       create_clock -name clk1A -period 20.0 [get_ports clk1]

  create_clock -name clk1B -period 10.0 [get_ports clk1] -add

  create_clock -name clk1C -period 5.0  [get_ports clk1] -add

  create_clock -name clk2 -period 10.0 [get_ports clk2]

  set_clock_groups -physically_exclusive -group clk1A -group clk1B -group clk1C

  set_clock_groups -asynchronous -group "clk1A clk1B clk1C" -group clk2

  第三種用法:當我們使用BUFGMUX時,會有兩個輸入時鐘,但只會有一個時鐘被使用。           比如MMCM輸入100MHz時鐘,兩個輸出分別為50MHz和200MHz,這兩個時鐘進入了BUFGMUX。在這種情況下,我們需要設置的時序約束如下:


  set_clock_groups -logically_exclusive \

  -group [get_clocks -of [get_pins inst_mmcm/inst/mmcm_adv_inst/CLKOUT0]] \

  -group [get_clocks -of [get_pins inst_mmcm/inst/mmcm_adv_inst/CLKOUT1]]

  虛擬時鐘

  虛擬時鐘通常用于設定對輸入和輸出的延遲約束,這個約束其實是屬于IO約束中的延遲約束。虛擬時鐘和前面講的延遲約束的使用場景不太相同。顧名思義,虛擬時鐘,就是沒有與之綁定的物理管腳。

  虛擬時鐘主要用于以下三個場景:


  外部IO的參考時鐘并不是設計中的時鐘


  FPGA I/O路徑參考時鐘來源于內部衍生時鐘,但與主時鐘的頻率關系并不是整數倍


  針對I/O指定不同的jitter和latency

  簡而言之,之所以要創建虛擬時鐘,對于輸入來說,是因為輸入到FPGA數據的捕獲時鐘是FPGA內部產生的,與主時鐘頻率不同;或者PCB上有Clock Buffer導致時鐘延遲不同。對于輸出來說,下游器件只接收到FPGA發送過去的數據,并沒有隨路時鐘,用自己內部的時鐘去捕獲數據。


  比如:如下圖所示,在FPGA的A和B端口分別有兩個輸入,其中捕獲A端口的時鐘是主時鐘,而捕獲B端口的時鐘是MMCM輸出的衍生時鐘,而且該衍生時鐘與主時鐘的頻率不是整數倍關系。

  微信圖片_20220810143029.png

  這種情況下時序約束如下:


  create_clock -name sysclk -period 10 [get_ports clkin]

  create_clock -name virclk -period 6.4

  set_input_delay 2 -clock sysclk [get_ports A]

  set_input_delay 2 -clock virclk [get_ports B]

  可以看到,創建虛擬時鐘用的也是create_clock約束,但后面并沒有加get_ports參數,因此被稱為虛擬時鐘。


  再舉個輸出的例子,我們常用的UART和SPI,當FPGA通過串口向下游器件發送數據時,僅僅發過去了uart_tx這個數據,下游器件通過自己內部的時鐘去捕獲uart_tx上的數據,這就需要通過虛擬時鐘來約束;而當FPGA通過SPI向下游器件發送數據時,會發送sclk/sda/csn三個信號,其中sclk就是sda的隨路時鐘,下游器件通過sclk去捕獲sda的數據,而不是用自己內部的時鐘,這是就不需要虛擬時鐘,直接使用set_output_delay即可。


  注意,虛擬時鐘必須在約束I/O延遲之前被定義。


  max/min delay的約束平時用的相對少一些,因為在跨異步時鐘域時,我們往往會設置asynchronous或者false_path。對于異步時鐘,我們一般都會通過設計來保證時序能夠收斂,而不是通過時序約束來保證。


 更多信息可以來這里獲取==>>電子技術應用-AET<<

微信圖片_20210517164139.jpg

本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
亚洲视频一区在线观看| 亚洲清纯自拍| 亚洲国产黄色片| 精品1区2区3区4区| 国内久久婷婷综合| 国内外成人免费激情在线视频网站| 国产精品主播| 国产欧美日韩激情| 国产精品一区二区在线观看不卡| 欧美午夜激情视频| 欧美日韩免费看| 欧美视频一区在线| 国产精品高潮久久| 国产精品久久久久一区二区三区| 欧美亚州一区二区三区 | 亚洲国产欧美精品| 亚洲精品1区| 亚洲精品一区二区三区在线观看| 亚洲精品亚洲人成人网| 99视频在线观看一区三区| 亚洲作爱视频| 亚洲男人的天堂在线| 午夜综合激情| 久久精品欧美日韩精品| 91久久黄色| 99国产精品视频免费观看一公开 | 亚洲美女91| 亚洲图片欧美一区| 羞羞答答国产精品www一本| 午夜在线成人av| 亚洲福利免费| 夜夜夜久久久| 香蕉乱码成人久久天堂爱免费| 欧美亚洲日本国产| 蜜桃av综合| 欧美日韩精品一区| 国产精品一区二区三区乱码| 国内成人精品2018免费看| 亚洲国产视频a| 这里只有精品视频| 欧美一区二区三区精品| 亚洲精品123区| 亚洲一区高清| 久久婷婷国产综合尤物精品| 欧美激情偷拍| 国产精品视频自拍| 激情综合激情| 一区二区三区欧美| 欧美一区午夜精品| 99视频精品全部免费在线| 午夜精品福利视频| 免播放器亚洲一区| 国产精品白丝黑袜喷水久久久| 国产亚洲精品久久久久久| 亚洲国产精品成人综合色在线婷婷| 99精品欧美| 欧美专区一区二区三区| 一区二区久久| 久久婷婷麻豆| 国产精品久久一卡二卡| 在线不卡a资源高清| 亚洲一二三四久久| 亚洲精品美女在线| 欧美中文字幕视频在线观看| 欧美精品一区视频| 国产婷婷一区二区| 日韩视频一区二区| 亚洲国产成人在线播放| 亚洲欧美成人精品| 欧美韩国日本综合| 国产欧美一区二区精品秋霞影院| 亚洲国产精品一区在线观看不卡| 亚洲男人的天堂在线aⅴ视频| 亚洲精品影视| 久久精品女人的天堂av| 欧美日韩一区二区三区四区五区| 狠狠久久亚洲欧美专区| 亚洲一级在线观看| 日韩午夜精品| 免费成人黄色av| 国产亚洲成精品久久| 一区二区av| 99re6热在线精品视频播放速度| 久久精品一区二区三区四区| 国产精品高潮久久| 亚洲精品综合在线| 亚洲国产精品一区二区久| 性色av一区二区怡红| 欧美日韩一区在线| 亚洲高清视频在线| 久久大逼视频| 久久精品1区| 国产精品一区二区a| 99精品欧美一区二区三区| 亚洲免费观看| 欧美h视频在线| 一区二区亚洲| 久久激情一区| 久久久久久午夜| 国产日本亚洲高清| 亚洲影音先锋| 亚洲欧美综合| 国产精品乱码一区二三区小蝌蚪| 亚洲精品日韩精品| 亚洲美女av电影| 欧美不卡在线| 樱花yy私人影院亚洲| 欧美在线视频观看免费网站| 欧美在线观看www| 国产精品综合久久久| 亚洲欧美不卡| 欧美一区2区三区4区公司二百| 国产精品免费区二区三区观看| 99热免费精品在线观看| 在线一区欧美| 欧美视频在线不卡| 在线亚洲+欧美+日本专区| 亚洲一区网站| 国产精品电影在线观看| 亚洲视频第一页| 性欧美大战久久久久久久久| 国产免费亚洲高清| 欧美在线观看视频一区二区三区 | 久久久精品五月天| 国产一区二区三区久久久| 欧美亚洲日本一区| 久久精品最新地址| 伊人天天综合| 亚洲精品久久视频| 欧美日本在线视频| 一区二区免费在线播放| 亚洲制服av| 国产日韩欧美一区| 久久国产日韩欧美| 欧美成人午夜免费视在线看片 | 日韩午夜在线视频| 亚洲一区二区三区四区在线观看| 国产精品国内视频| 午夜亚洲影视| 欧美a级大片| aa日韩免费精品视频一| 香蕉久久夜色精品国产| 国产一区欧美日韩| 亚洲三级影片| 欧美三日本三级少妇三99| 亚洲一区免费看| 久久久久久久999| 亚洲福利电影| 亚洲一区二区三区午夜| 国产日韩欧美视频| 亚洲精品美女在线观看| 欧美午夜宅男影院| 欧美在线观看你懂的| 欧美激情一二三区| 亚洲图片欧美午夜| 另类人畜视频在线| 99精品欧美一区二区三区| 久久精品国产精品亚洲精品| 亚洲成人直播| 亚洲欧美美女| 在线国产精品播放| 午夜电影亚洲| 亚洲国产99精品国自产| 午夜精品剧场| 1024成人网色www| 亚洲欧美中文日韩v在线观看| 狠狠色丁香久久婷婷综合_中| 99精品视频一区二区三区| 国产欧美欧美| 一区二区三区黄色| 国精品一区二区三区| 国产精品99久久99久久久二8| 国产片一区二区| 日韩亚洲在线观看| 国产亚洲午夜| 亚洲一区二区视频在线| 精品成人在线| 午夜在线观看免费一区| 亚洲国产精品一区制服丝袜| 欧美一区三区三区高中清蜜桃 | 欧美伊久线香蕉线新在线| 欧美精品国产精品| 欧美在线高清| 国产精品久久久久久久app| 91久久综合| 国产日本欧美一区二区三区| 一本色道久久综合亚洲精品不| 国内成人精品一区| 午夜精品一区二区三区在线| 亚洲激情综合| 久久色中文字幕| 亚洲自拍偷拍色片视频| 欧美日韩免费一区二区三区| 亚洲国内精品| 国产乱码精品一区二区三区五月婷 | 欧美日韩精品免费看| 亚洲福利免费| 国产午夜精品视频免费不卡69堂| 中文亚洲视频在线| 亚洲欧洲精品一区|