0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Xilinx Vivado I/O延迟约束介绍

454398 来源:FPGA开源工作室 作者:FPGA开源工作室 2020-11-29 10:01 次阅读

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
    +关注

    关注

    1602

    文章

    21309

    浏览量

    593133
  • Xilinx
    +关注

    关注

    70

    文章

    2119

    浏览量

    119368
  • 参考时钟
    +关注

    关注

    0

    文章

    6

    浏览量

    2901
收藏 人收藏

    评论

    相关推荐

    FPGA设计中两种IO约束:管脚约束延迟约束

    I/O约束 I/O约束是必须要用的约束,又包括管脚约束延迟约束。 管脚
    的头像 发表于 10-30 16:08 1.3w次阅读
    FPGA设计中两种IO<b class='flag-5'>约束</b>:管脚<b class='flag-5'>约束</b>,<b class='flag-5'>延迟</b><b class='flag-5'>约束</b>

    Xilinx FPGA案例学习之Vivado设计综合约束

    对话框的约束部分下,选择默认约束设置作为活动约束设置;包含在Xilinx设计约束(XDC)文件中捕获的设计
    的头像 发表于 11-23 14:16 4333次阅读
    <b class='flag-5'>Xilinx</b> FPGA案例学习之<b class='flag-5'>Vivado</b>设计综合<b class='flag-5'>约束</b>

    Xilinx FPGA管脚物理约束介绍

    引言:本文我们简单介绍Xilinx FPGA管脚物理约束,包括位置(管脚)约束和电气约束
    发表于 07-25 10:13 4273次阅读

    vivado约束参考文档

    Suite User Guide - I/O and Clock PlanningUG903- Vivado Design Suite User Guide - Using Constraints
    发表于 09-26 15:35

    如何约束内部生成的i2s o时钟?

    嗨,我有一个小代码片段我试图穿上xilinx CPLD-xa2c128-7VQ100mclk(24MHz)是设计的输入,从中生成i2s_o clk。然后,i2s_o时钟进入设计中的其他一些小进程
    发表于 04-12 14:24

    如何使用TX_ClK_o作为参考时钟来设置输出延迟

    Xilinx工具:vivado在图中,TX_CLK_i直接连接到TX_CLK_o。此外,TX_CLK_i将驱动输出数据引脚(TX_DAT)。
    发表于 05-01 14:23

    Xilinx工具vivado使用约束命令时出现警告的解决办法?

    Xilinx工具:vivado在该图中,TX_CLK_i连接到pll_x1模块的输入时钟。然后,pll_x1的输出时钟连接到ODDR。接下来,ODDR的输出引脚将连接到I /
    发表于 05-04 08:04

    设计Artix-7中的双向ddr i/o电路时序约束失败的原因是什么?

    我正在设计一个双向ddr i / o电路,但遇到时序约束失败。器件为A7-100-FGG484-2,开发环境为vivado 2016.2。当电路作为输入(t_rn = 1)运行时,dd
    发表于 08-28 06:14

    ISE约束导入vivado总共分几步

    最近有些朋友在ISE中做的V7项目需要切换到vivado来,但导入代码后,导入约束时,发现vivado不再支持UCF文件,如果手抄UCF约束VI
    发表于 03-24 13:54 8573次阅读
    ISE<b class='flag-5'>约束</b>导入<b class='flag-5'>vivado</b>总共分几步

    FPGA约束的详细介绍

    介绍FPGA约束原理,理解约束的目的为设计服务,是为了保证设计满足时序要求,指导FPGA工具进行综合和实现,约束Vivado等工具努力实现
    发表于 06-25 09:14 6432次阅读

    如何将Altera的SDC约束转换为Xilinx XDC约束

    了解如何将Altera的SDC约束转换为Xilinx XDC约束,以及需要更改或修改哪些约束以使Altera的约束适用于
    的头像 发表于 11-27 07:17 4663次阅读

    PCB上走线的延迟约束

    作者:猫叔 延迟约束 对于延迟约束,相信很多同学是不怎么用的,主要可能就是不熟悉这个约束,也有的是嫌麻烦,因为有时还要计算PCB上的走线
    的头像 发表于 11-14 10:34 2812次阅读
    PCB上走线的<b class='flag-5'>延迟</b><b class='flag-5'>约束</b>

    Vivado中XDC文件的约束顺序

    很对人在使用Vivado时喜欢使用多个约束文件对整个工程进行约束,同时Vivado允许设计者使用一个或多个约束文件。虽然使用一个
    的头像 发表于 10-13 16:56 6363次阅读

    Xilinx Vivado LOCK_PINS属性介绍

    LOCK_PINS 是 Xilinx Vivado 做物理约束的属性之一。用来将LUT的逻辑输入(I0,,I1,I2...)绑定到其物理输入pin上(A6,A5,A4...)。
    的头像 发表于 01-11 10:52 824次阅读

    如何在Vivado中添加时序约束呢?

    今天介绍一下,如何在Vivado中添加时序约束Vivado添加约束的方法有3种:xdc文件、时序约束
    的头像 发表于 06-26 15:21 2218次阅读
    如何在<b class='flag-5'>Vivado</b>中添加时序<b class='flag-5'>约束</b>呢?