www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁(yè) > > FPGA開(kāi)源工作室

【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
本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專(zhuān)欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
關(guān)閉