vivado下建立基本時序週期約束

建立基本時鐘週期約束。(驗證咱們的設計可否在指望的頻率上運行)html

(學習記錄,晚一點會作實驗傳上來的。)異步

 

時鐘基本概念:https://blog.csdn.net/wordwarwordwar/article/details/78259208ide

時序約束的基本概念:https://blog.csdn.net/zz_Caleb/article/details/84453792學習

  1. 約束是如何構成的
    1. 時序約束
    2. 物理約束
    3. 當前的約束是用在哪一個過程當中
      1. 一般狀況下,時序約束是在綜合和實現的時候都會用到,物理約束通常是在實現的時候會被用到。
      2. 若是咱們有多個約束文件,咱們必定須要一個target文件,用於保存最新額約束。方法是左鍵選擇
  2. 時鐘描述
    1. 基本要素
      1. 時鐘週期
        1. Period=10
      2. 佔空比
        1. Waveform={0,5} //0指上升沿,5指降低沿,單位是ns不用謝
      3. 相位
    2. 主時鐘(primary clock)這是咱們首先要肯定的
      1. 實際上指的是板子上的晶振。
      2. (sysclk是package pin上的管腳)
      3. 對於GTH Transceivers http://www.bubuko.com/infodetail-2087865.html
  3. 生成時鐘(Generated clock)
    1. 用戶自定義的生成時鐘
      1. 經過進行定義。
      2. 一般用戶定義的時鐘,是經過RTL代碼描述的時鐘。
      3. 舉例以下:
        1. 二分頻時鐘源
        2. 先要定義primary clock source point
        3. 再肯定生成時鐘的位置(藍色)
            1. –source:用get_ports指定
            2. –name:生成時鐘的名字
            3. –divide_by 2:生成時鐘的位置
          1. 第二種方式是咱們使用get_pin
            1.  –source:rega的時鐘端口
          2. 第三種方式
            1. 編號從1開始,clkin的第一個上升沿對準clkdiv2的第一個邊沿。Clkdiv2的降低沿對應clkin的第三個邊沿。clkdiv2的第二個上升沿對應clkin的第五個沿。
    2. 自動推斷出來的時鐘(咱們不須要進行約束,只須要對primary time進行約束便可)
      1. 咱們着重注意-source屬性
      2. 典型應用:時鐘進來之後經過MMCM或者PLL生成不一樣的時鐘。一般咱們會調用MMCM的這個Ip包。
      3. 生成時鐘的名字,就是與clkout鏈接的net上的名字(cpiclk)。
      4. 當咱們使用Clocking wizard ip核的時候,咱們能夠對port 進行rename。
      5. 🔗:https://blog.csdn.net/u011327754/article/details/79780999
  4. Report_clocks命令
      1. Propagated:表面時鐘的特性,波形抖動,會日後傳播。
      2. Generated:生成時鐘。
  5. 時鐘分組(clock Group)
    1. 時鐘分類(一般vivado認爲時鐘都是相關的,因此若是咱們實際項目中有時鐘來自於兩個不一樣的晶振,咱們須要時鐘約束告訴fpga時鐘是不相關的。)
      1. 同步時鐘
        1. 使用creat_clock進行時鐘約束。
      2. 異步時鐘
        1. 咱們要告訴這兩個源時鐘源是沒有關係的。
      3. Unexpandable clocks
        1. 由於launch edge和capture edge的時鐘不一樣步,因此在咱們作setup分析的時候,創建於兩的值會有兩個。(如圖紅色虛線)他最終會使用較短的時間做爲創建時的requerament(及最小公倍數)。
        2. 可是若是這個最小公倍數不存在或者很難找到(好比clk0=5.125ns clk1=6.666ns)那麼 Path requirement between two clocks are not reasonable。
        3. 須要經過方法進行約束
      4. Exclusive clock group
        1. 由於多路選擇器的存在,Clk0和clk1不可能同時工做。
  6. 特性
    1. 全部的時鐘都是默認相關的
    2. 對於異步時鐘咱們能夠經過set_clock_group建立時鐘組,可是咱們須要很好的設計保證可靠性。
  7. 約束時鐘頻率
    1. 若是咱們的設計是差分時鐘,咱們只用去約束p端口對應的時鐘便可。
相關文章
相關標籤/搜索