Chapter 4 :Constraining I/O Delay(ug903)

news2024/9/21 5:43:04

4.1 About Constraining I/O Delay
        要在设计中准确地建模外部时序上下文,必须为输入和输出端口提供时序信息。由于Xilinx®Vivado®集成设计环境(IDE)只能识别FPGA边界内的时序,因此必须使用以下命令来指定超出这些边界的延迟值:
        • set_input_delay
        • set_output_delay

4.2 Input Delay
set_input_delay命令指定输入端口上相对于设计接口处的时钟边沿的输入路径延迟。
当考虑应用板时,输入延迟表示以下各项之间的相位差:
1.从外部芯片通过板传播到FPGA的输入封装引脚的数据,以及
2.相对基准板时钟。
因此,输入延迟值可以是正的或负的,这取决于设备接口处的时钟和数据相对相位
注意:还可以在内部数据引脚上设置输入延迟,如STARTUPE3/data_IN[0:3](UltraScale+™ 设备)。
4.2.1Using Input Delay Options
        尽管在Synopsys设计约束(SDC)标准中,clock选项是可选的,但Vivado IDE需要它。
相对时钟可以是设计时钟,也可以是虚拟时钟
        建议:使用虚拟时钟时,使用与设计内部输入端口相关的设计时钟相同的波形。通过这种方式,时序路径要求是现实的。使用虚拟时钟可以方便地对不同的抖动或源延迟场景进行建模,而无需修改设计时钟。
输入延迟命令选项包括:
4.2.1.1Min and Max Input Delay Command Options(最小和最大输入延迟命令选项)
-min和-max选项为以下项指定不同的值:
        •最小延迟分析(保持/移除)
        •最大延迟分析(设置/恢复)
如果两者都不使用,则输入延迟值同时适用于最小值和最大值。
4.2.1.2Clock Fall Input Delay Command Option(时钟下降沿输入延迟命令选项)
        -clock_fall选项指定输入延迟约束应用于由相对时钟的下降时钟沿启动的时序路径。如果没有此选项,Vivado IDE只假设相对时钟的上升沿。
        不要将-clock_fall选项与-rise和-fall选项混淆。这些选项指的是数据边沿,而不是时钟边沿。
4.2.1.3 Add Delay Input Delay Command Option(添加延迟输入延迟命令选项)
在以下情况下,必须使用-add_delay选项:
        •存在最大(或最小)输入延迟约束,以及
        •希望在同一端口上指定第二个最大(或最小)输入延迟约束。
此选项通常用于相对于多个时钟边沿约束输入端口,例如DDR接口。
        可以仅将输入延迟约束应用于输入或双向端口,不包括自动忽略的时钟输入端口。不能将输入延迟约束应用于内部引脚。

4.2.2 Use of set_input_delay Command Options
        
以下示例介绍了set_input_delay命令选项的典型用法。有关输入延迟约束方法的更多信息,请参阅UltraFast Design Methodology Guide for FPGAs and SOCs(UG949)中的此链接。
4.2.2.1Input Delay Example One
      
  此示例定义了相对于先前定义的最小和最大分析的sysClk的输入延迟。

> create_clock -name sysClk -period 10 [get_ports CLK0]
> set_input_delay -clock sysClk 2 [get_ports DIN]

4.2.2.2 Input Delay Example Two
这个例子定义了相对于先前定义的虚拟时钟的输入延迟。

> create_clock -name clk_port_virt -period 10
> set_input_delay -clock clk_port_virt 2 [get_ports DIN]

4.2.2.3 Input Delay Example Three
此示例定义了相对于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.2.2.4 Input Delay Example Four
        为了约束I/O端口之间的纯组合路径,必须在I/O端口上相对于先前定义的虚拟时钟定义输入和输出延迟。以下示例在端口DIN和DOUT之间的组合路径上设置了5 ns(10 ns-4 ns-1 ns)约束:

> create_clock -name sysClk -period 10
> set_input_delay -clock sysClk 4 [get_ports DIN]
> set_output_delay -clock sysClk 1 [get_ports DOUT]

有关使用Timing Constraints wizard约束组合路径的更多信息,请参阅Combinatorial Delays 。
4.2.2.5 input Delay Example Five
        此示例指定相对于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

        该示例创建了从设备外部的clk_ddr时钟的上升沿和下降沿启动的数据到对上升沿和上升沿都敏感的内部触发器的数据输入的约束。
4.2.2.6 Input Delay Example Six
        此示例指定STARTUPE3内部引脚(UltraScale+设备)上的时钟和输入延迟,以对从STARTUPE2到结构的路径进行计时。

> create_generated_clock -name clk_sck -source [get_pins -
hierarchical*axi_quad_spi_0/ext_spi_clk] [get_pins STARTUP/CCLK] -edges {3
5 7}
> set_input_delay -clock clk_sck -max 7 [get_pins STARTUP/DATA_IN[*]] -
clock_fall
> set_input_delay -clock clk_sck -min 1 [get_pins STARTUP/DATA_IN[*]] -
clock_fall

4.3 Output Delay
    
    set_output_delay命令指定输出端口相对于设计接口处的时钟边沿的输出路径延迟
当考虑应用板时,此延迟表示以下各项之间的相位差:
1.从FPGA的输出封装引脚通过板传播到另一个设备的数据,以及
2.相对基准板时钟。
输出延迟值可以是正的或负的,这取决于FPGA外部的时钟和数据相对相位
注意:也可以在内部数据引脚上设置输出延迟,如STARTUPE3/data_OUT[0:3](UltraScale+设备)。
4.3.1 Using Output Delay Options
        尽管-clock选项在SDC标准中是可选的,但Vivado Design Suite工具需要它。相对时钟可以是设计时钟,也可以是虚拟时钟
        推荐:使用虚拟时钟时,请使用与设计内部输出端口相关的设计时钟相同的波形。通过这种方式,时序路径要求是现实的。使用虚拟时钟可以方便地对抖动或源延迟场景进行建模,而无需修改设计时钟。
4.3.1.1 Min and Max Output Delay Command Options
        -min和-max选项为最小延迟分析(hold/removal)和最大延迟分析(setup/recovery)指定不同的值。如果两者都不使用,则输出延迟值同时适用于最小值和最大值。
4.3.1.2 Clock Fall Output Delay Command Option
        
clock_fall选项指定输出延迟约束应用于由相对时钟的下降时钟沿捕获的时序路径。如果没有此选项,Vivado IDE默认情况下只假设相对时钟的上升沿(设备外部)。不要将-clock_fall选项与-rise和-fall选项混淆。这些选项指的是数据边沿,而不是时钟边沿。
4.3.1.3 Add Delay Output Delay Command Option
在以下情况下,必须使用-add_delay选项:
        •最大输出延迟约束已经存在,并且
        •您希望在同一端口上指定第二个最大输出延迟约束。
        对于最小输出延迟约束也是如此。此选项通常用于相对于多个时钟边沿约束输出端口,例如DDR中的上升沿和下降沿接口,或者当输出端口连接到使用不同时钟的几个设备时。
        重要提示!您可以仅将输出延迟约束应用于输出或双向端口。不能将输出延迟约束应用于内部引脚。

4.3.2 Use of set_output_delay Command Options
        以下示例介绍了set_output_delay命令选项的典型用法。有关输出延迟约束方法的更多信息,请参阅UltraFast Design Methodology Guide (UG949)中的此链接。​​​​​​​
4.3.2.1 Output Delay Example One
此示例定义了相对于先前定义的最小和最大分析的sysClk的输出延迟。

> create_clock -name sysClk -period 10 [get_ports CLK0]
> set_output_delay -clock sysClk 6 [get_ports DOUT]

4.3.2.2 Output Delay Example Two
此示例定义了相对于先前定义的虚拟时钟的输出延迟。

> create_clock -name clk_port_virt -period 10
> set_output_delay -clock clk_port_virt 6 [get_ports DOUT]

4.3.2.3 Output Delay Example Three
此示例指定了相对于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

        此示例创建了从设备外部的clk_ddr时钟的上升沿和下降沿启动的数据到对上升沿和下降沿都敏感的内部触发器的数据输出的约束。

4.2.3.4 Output Delay Example Four
        此示例指定STARTUPE3内部引脚(UltraScale+设备)上的时钟和输出延迟,以对从结构到STARTUPE2的路径进行计时。

> create_generated_clock -name clk_sck -source [get_pins -hierarchical
*axi_quad_spi_0/ext_spi_clk] [get_pins STARTUP/CCLK] -edges {3 5 7}
> set_output_delay -clock clk_sck -max 6 [get_pins STARTUP/DATA_OUT[*]]
> set_output_delay -clock clk_sck -min 1 [get_pins STARTUP/DATA_OUT[*]]





 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/462716.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux 系统文件权限管理(参考菜鸟教程)

一、查看文件用户,用户组,其他用户的文件权限,属主,属主用户组等信息 ls -l如图所示:  1、第一个字符代表这个文件是目录、文件或链接文件等等。 当为 d 则是目录当为 - 则是文件;若是 l 则表示为链接…

SpringBoot+Shiro+Jwt+Vue+elementUI实现前后端分离单体系统Demo

记录一下使用SpringBoot集成Shiro框架和Jwt框架实现前后端分离Web项目的过程,后端使用SpringBoot整合ShiroJwt(auth0),前端使用vueelementUI框架,前后端的交互使用的是jwt的token,shiro的会话关闭,后端只需要使用Shiro…

Sqlmap Tamper 编写/改写 学习

sqlmap的 --tamper 参数可以引入用户自定义的脚本修改注入时的payload ,达到sql注入时对一些敏感字符的一些绕过 下载 sqlmap 自带的 tamper 脚本就在 /sqlmap/tamper 目录下,是用 python 编写的,所以我们可以用 python 语言自己编写一些脚本…

bismark和bsmap比对原理

1,bismark比对方法比较简单粗暴,它制作两种类型的基因组:1),将所有的C转化为T的基因组;2),将所有的G转化为A的基因组。它将bisulfate(重chong硫酸盐)处理后的…

【Kafka】面试题总结

Kafka 1、什么是消息队列2、消息队列有什么用3、Kafka 的多分区以及多副本机制有什么好处呢4、Zookeeper 在 Kafka 中的作用知道吗5、Kafka 如何保证消息的消费顺序6、Kafka 如何保证消息不丢失7、Kafka 如何保证消息不重复消费7、Kafka为什么快/吞吐量大 1、什么是消息队列 我…

【JavaScript】对象继承精华提炼

继承机制 每个函数都有一个prototype属性,指向一个对象,该对象是原型对象;构造函数生成实例时,该属性会自动成为实例对象的原型;原型对象上的所有属性和方法,都能被实例对象共享继承;原型对象的…

使用HALCON标定板快速标定,纠正成像畸变

使用HALCON标定板快速标定,纠正成像畸变 1生成标定板描述文件 gen_caltab (7, 7, 0.00375, 0.5, caltab.descr, caltab.ps)gen_caltab ( : : XNum, YNum, MarkDist, DiameterRatio, CalPlateDescr, CalPlatePSFile : ) 为具有矩形排列标记的标定板生成标定板描述文…

Linux环境下安装RocketMQ(单机、集群)

目录 前置要求: 一、下载RocketMQ 二、上传解压 三、配置rocketmq的环境变量 四、查看rocketmq的目录结构 五、启动 5.1 启动nameserver 5.2 启动broker 六、测试发送消息 七、关闭 八、RocketMQ集群搭建 8.1 RocketMQ集群模式介绍 8.2 搭建 8.2.1 准…

海康机器视觉Visionmaster-VM3D常见问题及解决方法

软件及环境问题 第一个问题:软件获取问题 官网获取 第二个问题:环境配置类问题 1.软件打不开,加密狗灯不亮,6报错:加密狗未检测到或异常。解决方法:安装3DVM的驱动。 安装后加密狗无法识别&#xff0c…

SLAM论文速递:SLAM—— MID-Fusion:基于八叉树的对象级多实例动态SLAM—4.26(1)

论文信息 题目: MID-Fusion:Octree-based Object-Level Multi-Instance Dynamic SLAMMID-Fusion:基于八叉树的对象级多实例动态SLAM 论文地址: https://ieeexplore.ieee.org/abstract/document/8794371发表期刊: 2019 International Conf…

LVS-NAT模式

什么是群集? 多台主机组成的一个整体,提供一个ip访问通道,所有的主机干一件事 提供同样的服务。 群集有哪些类型? ①负载均衡群集(LB): 提高系统的响应能力,处理更多的访问请求&am…

Linux进程(1)

目录 ⛹🏽进程简介⛹🏽查看进程⛹🏽系统调用🚴🏽获取进程标示符🚴🏽创建进程 ⛹🏽进程状态🚴🏽孤儿进程:🚴🏽进程优先级 ⛹…

一次使用netcat的经验记录

1.netcat安装 参考:https://my.oschina.net/u/3530967/blog/1560985 2.netcat使用 参考:https://zhuanlan.zhihu.com/p/83959309 3.创建udp服务 (1)使用:nc -l -u -p 8810 创建udp服务端监听8810端口 在另一台机…

基于信度感知的半监督医学图像分类对比自集成

文章目录 Reliability-Aware Contrastive Self-ensembling for Semi-supervised Medical Image Classification摘要本文方法Reliability-Aware Contrastive Mean TeacherWeight FunctionReliability-Aware Consistency LossReliability-Aware Contrastive LossObjective Functi…

windows 安装mysql5.7

确认是否安装了mysql winr 输入services.msc , 找mysql 下载 链接:https://pan.baidu.com/s/1zPuvzjWovky3MrpNlIt9uw 提取码:y52i 安装 https://blog.csdn.net/u012318074/article/details/124042756 家目录下新建配置文件 my.ini 注意路径中 // &a…

企业进行数字化转型的优劣势分别有哪些?

数字化转型是指将数字技术融入企业的方方面面,从而导致企业运营方式和为客户创造价值的方式发生根本性变化。企业数字化转型既有优势也有劣势,概述如下: 优点: 提高效率和生产力:数字化转型使企业能够自动化和简化业…

Session服务端会话追踪

1. Session基本使用 将数据(cookie)保存在客户端不安全,因为客户端在不停的进行着网络传输,所以把数据存储在服务端。 存储的对象就是session,例如AServlet往session中存数据,BServlet往session中读数据。 …

纯 CSS 实现几个 Loading 效果

1. 平滑加载 <div class"progress-1"></div>.progress-1 {width:120px;height:20px;background:linear-gradient(#000 0 0) 0/0% no-repeat#ddd;animation:p1 2s infinite linear; } keyframes p1 {100% {background-size:100%} }linear-gradient(#000 0…

11.java程序员必知必会类库之word处理库

前言 正常业务中&#xff0c;可能涉及到和合作方签约电子合同&#xff0c;此时&#xff0c;我们需要先设计合同模板&#xff0c;维护固定内容&#xff0c;将可变的内容通过占位符替代&#xff0c;等签章的时候&#xff0c;生成pdf,然后可以根据设计的合同章的坐标&#xff0c;…

家庭私人影院 - Windows搭建Emby媒体库服务器并远程访问 「无公网IP」

文章目录 1.前言2. Emby网站搭建2.1. Emby下载和安装2.2 Emby网页测试 3. 本地网页发布3.1 注册并安装cpolar内网穿透3.2 Cpolar云端设置3.3 Cpolar内网穿透本地设置 4.公网访问测试5.结语 1.前言 在现代五花八门的网络应用场景中&#xff0c;观看视频绝对是主力应用场景之一&…