時序分析(4):時鍾約束


  以 GigE_DDR3_HDMI 工程為例,進行時序分析的整理。

一、基准時鍾和生成時鍾

  • 基准時鍾,通俗點說就是 top 層的輸入時鍾,如 FPGA_clk,PHY_rx_clk。
  • 生成時鍾,通俗點說就是基准時鍾通過PLL或自分頻后的輸出時鍾。

1、約束法則

(1)經過PLL的輸入時鍾(基准時鍾)、輸出時鍾(生成時鍾)會自動進行時鍾約束,不用再手動約束。

(2)未經過PLL的基准時鍾,無論分不分頻的給內部模塊使用,都需要添加基准時鍾約束和生成時鍾約束。

2、基准時鍾約束

  原工程中,PHY_rx_clk 經過 PLL 相移 90 度后生成 PHY_rx_clk_90,為進行時鍾約束,因此改成不經過PLL。

(1)點擊 Implementation,完畢后點擊 Edit Timing Constraints

 (2)進入時序約束界面后,可以點擊 Timing 查看時序報告,也可以關閉該窗口。

 (3)將窗口放大,開始進行進行時鍾約束,如下所示:

 (4)Tcl Console 中輸入【report_clocks】可以看到所有的 clock,輸入【report_clocks PHY_rx_clk】可以指定查看某個時鍾。

 

3、查看時序分析結果

(1)Timing中可以看到一些選項

 (2)點擊 Report Timing,生成一份報告。

 

 (3)這樣就看到時序報告了,雙擊某條報告可以看到更細致的建立時間和保持時間的分析。

  注意,此時的只是報告,如果有很多飄紅,則說明時序違例,但我們已經進行了時序約束,重新綜合一遍后再打開這個報告,即可看到時序情況大大改善,飄紅減少。

 

二、生成時鍾

   和基准時鍾的約束類似,例如 ODDR 原語的時鍾輸出,屬於生成時鍾,需要人工約束。

1、時鍾約束界面選中 Create Generated Clock,點擊添加新約束。

 2、設置生成時鍾約束,和基准時鍾不同的是要找准生成時鍾的源和目的。

 

三、虛擬時鍾

  虛擬時鍾,一般是系統同步時用,系統同步基本已經淘汰了。虛擬時鍾即 FPGA 內部不存在的時鍾,主要用於輔助做一些分析。

  比如上圖這個紅色的時鍾,默認沒有約束情況下上游的時鍾和 FPGA 的 system clock 認為延遲是一樣的,那么這樣我們就不能表示上游時鍾和 system clock 的延時差了,我們可以創建一個虛擬時鍾代表上游時鍾,並且把這個時鍾的 input latency 設置一個值就表示這個時鍾進到芯片前有多少延遲。創建虛擬時鍾的方法很簡單,就是創建一個時鍾但是不實際指向一個 fpga 內部或者 IO 上的對象。

  設置方法:點擊 Create Clock,新增時鍾約束,Source objects為空,點擊 OK 即可。

 

參考資料:V3學院FPGA教程


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM