FPGA設計時序約束十、others類約束之Set_Disable_Timing
一、序言
????在Vivado的時序約束窗口中,存在一類特殊的約束,劃分在others目錄下,可用于設置忽略或修改默認的時序路徑分析,以Vivado2022.1版本為例,主要包括以下4類,本文將介紹其中的Set_Disable_Timing,示例的為Vivado2022.1

二、Set Disable Timing
2.1 基本概念
????時序?。簳r序弧是時序路徑的一部分,可以是兩個引腳之間的連線,可以是輸入端口和輸出端口之間的邏輯單元的內部路徑,或者時鐘輸入端口和數據輸出端口間的路徑
????Set Disable Timing約束用于關閉時序弧,使該段路徑不會進行時序分析。
????約束生效范圍:如果約束設置的對象是單元cell,那么所有涉及該單元的時序弧都是無效的;如果設置的是from/to 引腳,則from/to之間的時序弧是無效的;如果只設置了from或to,則所有from對象開始的時序狐是無效的,或所有終點為to所對應的對象的時序弧是無效的;如果約束的對象是port,在所有從設置的port開始或結束的時序弧也是無效的,時序弧無效自然不會進行對應的時序分析。
2.2?設置界面
?進入Timing Constraints界面,在左側Others欄中選中Set Disable Timing,右側即顯示Set Disable Timing

約束設置子界面需設置Objects,arcs的source引腳名字,目的引腳名字

注意source引腳和Destination引腳不是可選的,需手動輸入,一定要輸入存在的有效引腳,否則報約束格式錯誤,要獲取對應單元的pin引腳,也可通過命令get_lib_pins -of [get_cells {cells_name}]來獲取

設置的對象可為Cells,或單元引腳,以及端口

?2.3?命令語法
命令格式如下
參數含義列表如下

2.4?命令示例
1、對一個LUT的輸入引腳I0到輸出O的時序弧設置約束
2、對一個塊狀RAM的輸入引腳和輸出引腳設置時序弧無效的約束
3、對經過指定單元存儲器單元的所有時序弧設置無效約束
三、工程示例
工程代碼:
綜合后網表連接圖

約束內容如下,對經過clk4端口的時序弧和經過觸發(fā)器引腳ff2_reg/Q的時序弧設置無效約束
約束中不設置set_disable_timing約束時

設置約束后時序分析結果

四、參考資料
用戶手冊:ug903-vivado-using-constraints-en-us-2022.2.pdf
鏈接:https://pan.baidu.com/s/17AK_-J4wRXiFLtLTorlrwg?pwd=mylt?
提取碼:mylt? ?