Xilinx Vivado I/O延迟约束介绍

电子说

1.3w人已加入

描述

 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

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分