FPGA設(shè)計(jì)時序約束八、others類約束之Set_Case_Analysis
一、序言
????在Vivado的時序約束窗口中,存在一類特殊的約束,劃分在others目錄下,可用于設(shè)置忽略或修改默認(rèn)的時序路徑分析,以Vivado2022.1版本為例,主要包括以下4類

二、Set Case Analysis
2.1 基本概念
????Set case analysis(設(shè)置案例分析)命令通常通過對邏輯如配置寄存器設(shè)置常數(shù)值來描述功能模塊,設(shè)置對象可為端口,線net,層級引腳或子模塊輸入引腳,常數(shù)值通過約束的邏輯單元傳輸,從而關(guān)閉該單元的任何時序分析,功能和設(shè)置set false path類似。約束可以在SDC、XDC文件中使用。
????使用set case analysis可以減少分析的空間,運(yùn)行時間和內(nèi)存消耗,將信號是一個常量值的信息告知時序分析工具是很重要的,對于保證不去報告非功能路徑和不相關(guān)的路徑也是至關(guān)重要的。因此,一個引腳pin帶有set_case_anlaysis約束時,上面?zhèn)鬏數(shù)男盘柺遣换钴S信號,和引腳相關(guān)的時序arc是關(guān)閉的。
????最常見的使用場景是對一個多路選擇器選擇引腳設(shè)置為0或1,使得兩個多路選擇器中一個輸入來傳輸,以關(guān)閉從mux/s到mux/I1引腳的時序分析路徑為例,約束命令如下
? ? 再看一個例子,將一個AND門?的一個輸入通過set_case_analysis設(shè)為0,AND門的輸出也為0,即0傳輸?shù)搅讼乱贿壿?,時序分析工具不會去計(jì)算對應(yīng)的時序arch也不會展示在時序報告中。但是,布局布線中仍會去修復(fù)這些引腳上的最大切換,最大扇出違例。
2.2?設(shè)置界面
????進(jìn)入Timing Constraints界面,在左側(cè)Others欄中選中Set Case Analysis,右側(cè)即顯示Set Case Analysis界面,雙擊空白位置

????在Find names of type的下拉框顯示可設(shè)置的對象,有Port和Cell pins兩類

可約束的值有4個:0,1,rising,falling,約束為0或1時,對應(yīng)的時序路徑將不存在,設(shè)置為切換邊沿時,只有信號為設(shè)置的邊沿切換時才進(jìn)行時序分析。

? ?2.3?命令語法
命令格式如下
參數(shù)含義如下表

????2.4?命令示例
約束兩個主時鐘到CLKBUFGMUX的兩個輸入引腳上,將set_case_analysis約束選擇引腳clock_sel/S的值為1,此時將只有clk_B會傳輸?shù)捷敵龆丝?,clk_A被阻斷了,效果和將對應(yīng)的pin連接到VDD或VSS相同。。
三、工程示例
工程代碼:
綜合后網(wǎng)表連接圖

未添加set_case_analysis時的時序報告,同步時鐘報告中只有clk4,異步時鐘報告中有clk1到clk2,clk2到clk3的時序路徑,根據(jù)綜合網(wǎng)表連接圖,符合預(yù)期。

對clk1設(shè)置set_case_analysis值為fall,clk4設(shè)置set_case_analysis值為1,同步時鐘路徑中已不存在clk4,異步時鐘路徑中存在clk1到clk2。因?yàn)閏lk1設(shè)置的analysis clk為下降沿,而實(shí)際為上升沿,clk4設(shè)置為常量1,不存在切換

四、參考資料
1、用戶手冊《ug835-vivado-tcl-commands-en-us-2023.1.pdf》
文檔鏈接:https://pan.baidu.com/s/1Su_w9CDHR7R9_tt_in_arQ?pwd=7w4f?
提取碼:7w4f
2、Vivado的command?reference
FPGA設(shè)計(jì)時序約束八、others類約束之Set_Case_Analysis的評論 (共 條)
