TIMING-25 : 千兆位收發器 (GT) 上的時鐘波形無效
收發器輸出管腳 <pin_name> 上或連接到該管腳的信號線上定義的時鐘 <clock_name> 的波形與收發器設置不一 致, 或者缺少參考時鐘定義。自動衍生時鐘的周期為 <PERIOD> , 用戶定義的時鐘周期為 <PERIOD> 。
描述
對于 UltraScale 器件 , Vivado 會根據 GT 設置和傳入主時鐘的特性 , 在 GT 輸出上自動衍生時鐘。對于 7 系列器件 ,Vivado 不會自動衍生 GT 時鐘 ; 而是由您負責在 GT 輸出管腳上創建相應的基準時鐘。 DRC 警告報告稱用戶定義的時鐘與 Vivado 將自動創建的自動衍生時鐘不匹配。這可能導致硬件故障 , 因為設計的時序約束與器件上所發生的約束不匹配。
解決方案
如果無需用戶定義的生成時鐘 , 請移除約束并改為使用自動衍生時鐘。如果需要約束 , 請驗證生成時鐘約束與自動衍生時鐘波形是否匹配, 或者修改 GT 屬性以與期望的時鐘波形相匹配。如果要強制設置自動衍生時鐘的名稱 , 建議使用僅定義 -name 選項的 create_generated_clock 約束以及定義該時鐘的對象 ( 通常為 GT 的輸出管腳 ) 的名稱
TIMING-26 : 千兆位收發器 (GT) 上時鐘缺失
輸出時鐘管腳 <pin_name> 未定義時鐘。在 <port_name> 輸入端口上創建基準時鐘 , 以便 Vivado 自動衍生出缺失的 GT 時鐘。
描述
對于 UltraScale 器件 , Vivado 會根據 GT 設置和傳入主時鐘的特性 , 在 GT 輸出上自動衍生時鐘。 DRC 警告報告稱 ,由于輸入端口缺少基準時鐘, Vivado 無法自動衍生 GT 的輸出時鐘。由此導致無法對連接到時鐘相關 GT 的下游邏輯進行定時。
解決方案
在建議的 GT 輸入端口上創建基準時鐘。
TIMING-27 : 層級管腳上的基準時鐘無效
在錯誤的內部管腳 <pin_name> 上創建了基準時鐘 <clock_name> 。當基準時鐘的驅動管腳具有連接到多個時鐘管腳的扇出時, 最好不要在層級管腳上創建基準時鐘。
描述
如果某個時鐘遍歷驅動程序 , 并在下游層級管腳上定義新時鐘 , 那么該層級管腳的下游單元的時序分析將有別于驅動程序管腳扇出上的單元的時序分析。如果在驅動程序時鐘與層級管腳時鐘之間存在任何同步路徑, 那么偏差將不準確且時序驗收將無效。這可能導致硬件故障。
解決方案
移除層級管腳上的基準時鐘定義 , 或者如果確實需要下游時鐘 , 請使用生成時鐘 , 并改為將驅動程序時鐘指定為主時鐘。
TIMING-28 : 時序約束引用的自動衍生時鐘
自動衍生時鐘 <clock_name> 在時序約束內部按名稱來引用 ( 請參閱 Vivado IDE 的“ Timing Constraint ”窗口中的約束位置 <#> ) 。建議按隨附于時鐘的管腳名稱來引用自動衍生時鐘 : get_clocks -of_objects [get_pins <PIN_NAME>]。
描述
源管腳對象應引用自動衍生時鐘。開發期間可能由于對網表或約束進行修改而導致自動衍生時鐘名稱改變。除非自動衍生時鐘已重命名, 否則應不鼓勵按名稱引用該時鐘 , 因為修改設計后可能導致后續運行時約束失效。
解決方案
使用 [get_clocks -of_objects [get_pins <PIN_NAME>]] 將約束修改為按連接到時鐘的管腳名稱來引用自動衍生時鐘。或者, 使用 create_generated_clock 約束來強制設置自動衍生時鐘的名稱。即使某些時序約束已引用自動衍生的時鐘, 仍可對其進行重命名。
TIMING-29 : 多周期路徑對不一致
建立和保持多周期路徑約束通常應引用相同的 -start 對 ( 針對 SLOW-to-FAST 同步時鐘 ) 或 -end 對 ( 針對 FASTto-SLOW 同步時鐘 ), 請參閱 Vivado IDE 的“ Timing Constraint ” ( 時序約束 ) 窗口中的約束位置 <#> 。
描述
默認情況下 , set_multicycle_path 約束用于修改源時鐘 ( 針對保持時間 ) 或目標時鐘 ( 針對建立時間 ) 相關的路徑要求乘數。對于某些用例, 路徑要求必須根據特定時鐘沿倍增。
解決方案
對于建立和保持時間 , 請修改 set_multicycle_path 約束 , 分別引用目標時鐘 ( -end ) ( 針對 SLOW-to-FAST 同步時鐘) 和源時鐘 ( -start ) ( 針對 FAST-to-SLOW 同步時鐘 ) 。請