专栏首页FPGA开源工作室【vivado约束学习二】 IO延时约束

【vivado约束学习二】 IO延时约束

【vivado约束学习二】 IO延时约束

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

本文分享自微信公众号 - FPGA开源工作室(leezym0317),作者:OpenSLee

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-08-26

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Matlab音频信号的基本处理与分析

    info =audioinfo('sample_orig.mp3');%获取音频文件的信息

    FPGA开源工作室
  • Vivado hls入门一

    在集成电路行业飞速发展的今天,缩短产品开发的周期而又不牺牲验证过程,这不可避免地成为了商业市场的一个关键因素。Xilinx Vivado High Level ...

    FPGA开源工作室
  • verilog常用语法三让您的FPGA设计更轻松

    一个信号的多拍处理也就是在时钟上将信号连续打多拍,这个处理在时序对齐和防止亚稳态有着十分重要的意义。将信号打多拍是比较简单的事情,利用移位寄存器即可。

    FPGA开源工作室
  • 虚拟时钟

    只是用于IO的时序约束 使用情况:上游芯片的时钟和FPGA的Primary的时钟频率不同 外部有clock buffer时,也需要使用虚拟时钟 ? creat...

    瓜大三哥
  • 难以理解的区块链?革命与进化

    本文试图解释比特币的颠覆性创新与行业工作流工具的效率进化创新之间的区别,以及为什么称它们为“区块链”,即使作为通用术语,也令人难以置信地混淆。

    用户1169992
  • 硬件对数据库性能优化带来的影响

    数据库性能优化不是一个简单的任务,不仅仅是SQL层面的优化,它的关键在于对innodb存储引擎的了解,当然,好的存储引擎性能离不开好的硬件系统的支撑,这...

    AsiaYe
  • Linux运维人员应该知道的Linux服务器安全指南

    今天小编要跟大家分享的文章是关于Linux运维人员应该知道的Linux服务器安全指南。熟悉Linux运维工作的小伙伴都知道Linux服务器安全在运维工作中非常重...

    小小科
  • Redis未授权访问常见提权方式

    Redis在默认情况会将服务绑定在6379端口上,从而将服务暴露在公网环境下,如果在没有开启安全认证的情况下,可以导致任意用户未授权访问Redis服务器并Red...

    用户6343818
  • 圆周率π是怎么算出来的,用程序怎么算

    下午在看一个算法的时候,突然看到了一个关于圆周率的问题,如果问你圆的周长怎么算,你肯定毫不犹豫是2πR,但是π是怎么算出来的呢?估计我们都没有想过,所以...

    jeanron100
  • js引擎v8源码分析之HeapNumber(基于v8 0.1.5)

    HeapNumber是保存大整形的对象。v8里有smi保存整形,但是他只有31位,超过31位的就需要用HeapNumber。

    theanarkh

扫码关注云+社区

领取腾讯云代金券