生活随笔
收集整理的這篇文章主要介紹了
vivado下创建基本时序周期约束
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
創建基本時鐘周期約束。(驗證我們的設計能否在期望的頻率上運行)
(學習記錄,晚一點會做實驗傳上來的。)
?
時鐘基本概念:https://blog.csdn.net/wordwarwordwar/article/details/78259208
時序約束的基本概念:https://blog.csdn.net/zz_Caleb/article/details/84453792
約束是如何構成的 時序約束物理約束當前的約束是用在哪個過程中 通常情況下,時序約束是在綜合和實現的時候都會用到,物理約束一般是在實現的時候會被用到。或如果我們有多個約束文件,我們一定需要一個target文件,用于保存最新額約束。方法是左鍵選擇時鐘描述 基本要素 時鐘周期 Period=10占空比 Waveform={0,5} //0指上升沿,5指下降沿,單位是ns不用謝相位主時鐘(primary clock)這是我們首先要確定的。 實際上指的是板子上的晶振。(sysclk是package pin上的管腳)對于GTH Transceivers :http://www.bubuko.com/infodetail-2087865.html 生成時鐘(Generated clock) 用戶自定義的生成時鐘 通過進行定義。通常用戶定義的時鐘,是通過RTL代碼描述的時鐘。舉例如下: 二分頻時鐘源先要定義primary clock source point 再確定生成時鐘的位置(藍色) –source:用get_ports指定–name:生成時鐘的名字–divide_by 2:生成時鐘的位置第二種方式是我們使用get_pin ?–source:rega的時鐘端口第三種方式 編號從1開始,clkin的第一個上升沿對準clkdiv2的第一個邊沿。Clkdiv2的下降沿對應clkin的第三個邊沿。clkdiv2的第二個上升沿對應clkin的第五個沿。自動推斷出來的時鐘(我們不需要進行約束,只需要對primary time進行約束即可) 我們著重注意-source屬性典型應用:時鐘進來以后通過MMCM或者PLL生成不同的時鐘。通常我們會調用MMCM的這個Ip包。生成時鐘的名字,就是與clkout連接的net上的名字(cpiclk)。當我們使用Clocking wizard ip核的時候,我們可以對port 進行rename。?:https://blog.csdn.net/u011327754/article/details/79780999Report_clocks命令 Propagated:表面時鐘的特性,波形抖動,會往后傳播。Generated:生成時鐘。時鐘分組(clock Group) 時鐘分類(通常vivado認為時鐘都是相關的,所以如果我們實際項目中有時鐘來自于兩個不同的晶振,我們需要時鐘約束告訴fpga時鐘是不相關的。) 同步時鐘 使用creat_clock進行時鐘約束。異步時鐘 我們要告訴這兩個源時鐘源是沒有關系的。Unexpandable clocks 因為launch edge和capture edge的時鐘不同步,所以在我們做setup分析的時候,建立于兩的值會有兩個。(如圖紅色虛線)他最終會使用較短的時間作為建立時的requerament(及最小公倍數)。但是如果這個最小公倍數不存在或者很難找到(比如clk0=5.125ns clk1=6.666ns)那么 Path requirement between two clocks are not reasonable。需要通過方法進行約束Exclusive clock group 因為多路選擇器的存在,Clk0和clk1不可能同時工作。特性 所有的時鐘都是默認相關的對于異步時鐘我們可以通過set_clock_group創建時鐘組,但是我們需要很好的設計保證可靠性。約束時鐘頻率 如果我們的設計是差分時鐘,我們只用去約束p端口對應的時鐘即可。
轉載于:https://www.cnblogs.com/RenoStudio/p/10355162.html
總結
以上是生活随笔為你收集整理的vivado下创建基本时序周期约束的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。