1 I/O延遲約束介紹
要在設計中精確建模外部時序,必須為輸入和輸出端口提供時序信息。Xilinx Vivado集成設計環境(IDE)僅在FPGA邊界內識別時序,因此必須使用以下命令指定超出這些邊界的延遲值:
1,set_input_delay
2,set_output_delay
2 輸入延遲(Input Delay)
set_input_delay命令指定輸入端口上相對于設計接口處時鐘邊沿的輸入路徑延遲。
在考慮應用板時,輸入延遲表示以下各項之間的相位差:
A.數據從外部芯片通過電路板傳播到FPGA的輸入封裝引腳。
B.相關的板上參考時鐘
輸入延遲值可以是正的或負的,這取決于設備接口處的時鐘和數據相對相位。
雖然-clock選項在Synopsys設計約束(SDC)標準中是可選的,但它是Vivado IDE所必需的。相對時鐘可以是設計時鐘或虛擬時鐘。
使用set_input_delay命令選項
例1:此示例定義了相對于先前定義的sysClk的輸入延遲,用于最小和最大分析。
》 create_clock -name sysClk -period 10 [get_ports CLK0]
》 set_input_delay -clock sysClk 2 [get_ports DIN]
例2:此示例定義相對于先前定義的虛擬時鐘的輸入延遲。
》 create_clock -name clk_port_virt -period 10
》 set_input_delay -clock clk_port_virt 2 [get_ports DIN]
例3:此示例為min分析和最大分析相對于sysClk的定義了不同的輸入延遲值。
》 create_clock -name sysClk -period 10 [get_ports CLK0]
》 set_input_delay -clock sysClk -max 4 [get_ports DIN]
》 set_input_delay -clock sysClk -min 1 [get_ports DIN]
例4:要限制I / O端口之間的純組合路徑,必須在I / O端口上相對于先前定義的虛擬時鐘定義輸入和輸出延遲。以下示例在端口DIN和DOUT之間的組合路徑上設置5 ns(10 ns - 4 ns - 1 ns)約束:
》 create_clock -name sysClk -period 10 [get_ports CLK0]
》 set_input_delay -clock sysClk 4 [get_ports DIN]
》 set_output_delay -clock sysClk 1 [get_ports DOUT]
例5:此示例指定相對于DDR時鐘的輸入延遲值。
》 create_clock -name clk_ddr -period 6 [get_ports DDR_CLK_IN]
》 set_input_delay -clock clk_ddr -max 2.1 [get_ports DDR_IN]
》 set_input_delay -clock clk_ddr -max 1.9 [get_ports DDR_IN] -clock_fall -add_delay
》 set_input_delay -clock clk_ddr -min 0.9 [get_ports DDR_IN]
》 set_input_delay -clock clk_ddr -min 1.1 [get_ports DDR_IN] -clock_fall -add_delay
3 輸出延遲(Output Delay)
set_output_delay命令指定輸出端口相對于設計接口處的時鐘邊沿的輸出路徑延遲。
在考慮開發板時,此延遲表示以下兩者之間的相位差:
A.數據從FPGA的輸出封裝引腳傳播,通過電路板傳輸到另一個器件
B. 相對參考板時鐘。
輸出延遲值可以是正數或負數,具體取決于FPGA外部的時鐘和數據相對相位。
使用set_output_delay命令選項:
例1:此示例定義了相對于先前定義的sysClk的輸出延遲,用于最小和最大分析。
》 create_clock -name sysClk -period 10 [get_ports CLK0]
》 set_output_delay -clock sysClk 6 [get_ports DOUT]
例2:此示例定義相對于先前定義的虛擬時鐘的輸出延遲。
》 create_clock -name clk_port_virt -period 10
》 set_output_delay -clock clk_port_virt 6 [get_ports DOUT]
例3:此示例指定相對于DDR時鐘的輸出延遲值,其具有用于min(hold)和max(setup)分析的不同值。
》 create_clock -name clk_ddr -period 6 [get_ports DDR_CLK_IN]
》 set_output_delay -clock clk_ddr -max 2.1 [get_ports DDR_OUT]
》 set_output_delay -clock clk_ddr -max 1.9 [get_ports DDR_OUT] -clock_fall -add_delay
》 set_output_delay -clock clk_ddr -min 0.9 [get_ports DDR_OUT]
》 set_output_delay -clock clk_ddr -min 1.1 [get_ports DDR_OUT] -clock_fall -add_delay
編輯:hfy
-
FPGA
+關注
關注
1629文章
21736瀏覽量
603385 -
Xilinx
+關注
關注
71文章
2167瀏覽量
121410 -
參考時鐘
+關注
關注
0文章
6瀏覽量
2950
發布評論請先 登錄
相關推薦
評論