【vivado約束學(xué)習(xí)二】 IO延時(shí)約束
掃描二維碼
隨時(shí)隨地手機(jī)看文章
【vivado約束學(xué)習(xí)二】 IO延時(shí)約束
1 I/O延遲約束介紹
要在設(shè)計(jì)中精確建模外部時(shí)序,必須為輸入和輸出端口提供時(shí)序信息。Xilinx Vivado集成設(shè)計(jì)環(huán)境(IDE)僅在FPGA邊界內(nèi)識(shí)別時(shí)序,因此必須使用以下命令指定超出這些邊界的延遲值:
1,set_input_delay
2,set_output_delay
2 輸入延遲(Input Delay)
set_input_delay命令指定輸入端口上相對(duì)于設(shè)計(jì)接口處時(shí)鐘邊沿的輸入路徑延遲。
在考慮應(yīng)用板時(shí),輸入延遲表示以下各項(xiàng)之間的相位差:
A.數(shù)據(jù)從外部芯片通過(guò)電路板傳播到FPGA的輸入封裝引腳。
B.相關(guān)的板上參考時(shí)鐘
輸入延遲值可以是正的或負(fù)的,這取決于設(shè)備接口處的時(shí)鐘和數(shù)據(jù)相對(duì)相位。
雖然-clock選項(xiàng)在Synopsys設(shè)計(jì)約束(SDC)標(biāo)準(zhǔn)中是可選的,但它是Vivado IDE所必需的。相對(duì)時(shí)鐘可以是設(shè)計(jì)時(shí)鐘或虛擬時(shí)鐘。
使用set_input_delay命令選項(xiàng)
例1:此示例定義了相對(duì)于先前定義的sysClk的輸入延遲,用于最小和最大分析。
> create_clock -name sysClk -period 10 [get_ports CLK0] > set_input_delay -clock sysClk 2 [get_ports DIN]
例2:此示例定義相對(duì)于先前定義的虛擬時(shí)鐘的輸入延遲。
> create_clock -name clk_port_virt -period 10 > set_input_delay -clock clk_port_virt 2 [get_ports DIN]
例3:此示例為min分析和最大分析相對(duì)于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端口上相對(duì)于先前定義的虛擬時(shí)鐘定義輸入和輸出延遲。以下示例在端口DIN和DOUT之間的組合路徑上設(shè)置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:此示例指定相對(duì)于DDR時(shí)鐘的輸入延遲值。
> 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命令指定輸出端口相對(duì)于設(shè)計(jì)接口處的時(shí)鐘邊沿的輸出路徑延遲。
在考慮開(kāi)發(fā)板時(shí),此延遲表示以下兩者之間的相位差:
A.數(shù)據(jù)從FPGA的輸出封裝引腳傳播,通過(guò)電路板傳輸?shù)搅硪粋€(gè)器件
B. 相對(duì)參考板時(shí)鐘。
輸出延遲值可以是正數(shù)或負(fù)數(shù),具體取決于FPGA外部的時(shí)鐘和數(shù)據(jù)相對(duì)相位。
使用set_output_delay命令選項(xiàng):
例1:此示例定義了相對(duì)于先前定義的sysClk的輸出延遲,用于最小和最大分析。
> create_clock -name sysClk -period 10 [get_ports CLK0]
> set_output_delay -clock sysClk 6 [get_ports DOUT]
例2:此示例定義相對(duì)于先前定義的虛擬時(shí)鐘的輸出延遲。
> create_clock -name clk_port_virt -period 10
> set_output_delay -clock clk_port_virt 6 [get_ports DOUT]
例3:此示例指定相對(duì)于DDR時(shí)鐘的輸出延遲值,其具有用于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