FPGA时钟资源与设计方法——IO延迟约束(Vivado)

news/发布时间2024/5/16 9:38:33

目录

  • 1 I/O延迟约束简介
  • 2 IO约束指令
  • 3 输入延迟(Input Delay)
  • 4 输出延迟(Output Delay)

1 I/O延迟约束简介

Vivado对整个工程的时序进行分析时,只能分析内部的时序信息,对于外部的时序信息Vivado无法提供,在设计中要精确建模外部时序信息,必须为输入和输出端口提供输入输出延迟信息,而I/O延迟约束就是告知Xilinx Vivado集成设计环境(IDE)FPGA管脚外部的输入输出延迟信息。

2 IO约束指令

IO约束指令,如下所示只有两条(没有给更多):

  1. set_input_delay:输入延迟约束;
  2. set_output_delay:输出延迟约束。

3 输入延迟(Input Delay)

set_input_delay命令指定输入端口上相对于设计接口处时钟边沿的输入路径延迟,在考虑板级延迟时,输入延迟表示以下各项之间的相位差:
A.数据从外部芯片通过电路板传播到FPGA的输入封装引脚。
B.相关的板上参考时钟。
输入延迟值可以是正的或是负的,这取决于FPGA外部接口处的时钟和数据相对相位。
输入延迟约束的指令为:

set_input_delay -clock clock_name -max 4 [get_ports D_in]
set_input_delay -clock clock_name -min 1 [get_ports  D_in]

以上指令表示,相对于时钟名称为“clock_name”的时钟最大最小输入延迟分别为4ns、1ns,分析的端口为 D_in。参考的时钟可以是实际时钟,也可以是虚拟时钟。
-min和-max:-min设定的值用于最小延迟分析(保持时间、移除时间);-max设定的值用于最大延迟分析(建立时间、恢复时间);如果约束命令中没有使用这两个选项,输入延迟值会同时应用于min和max分析;

4 输出延迟(Output Delay)

set_output_delay命令指定输出端口相对于设计接口处的时钟边沿的输出路径延迟,在考虑板级延迟时,此延迟表示以下两者之间的相位差:
A.数据从FPGA的输出封装引脚传播,通过电路板传输到另一个器件。
B.相关参考板时钟。
输出延迟值可以是正数或负数,具体取决于FPGA外部的时钟和数据相对相位。
输出延迟约束的指令为:

set_output_delay -clock clock_name -max 2.1 [get_ports  D_in]
set_output_delay -clock clock_name -min 1.0 [get_ports  D_in]

以上指令表示,相对于时钟名称为“clock_name”的时钟最大最小输出延迟分别为2.1ns、1.0ns,分析的端口为 D_in。参考的时钟可以是实际时钟,也可以是虚拟时钟。
-min和-max:-min设定的值用于最小延迟分析(保持时间、移除时间);-max设定的值用于最大延迟分析(建立时间、恢复时间);如果约束命令中没有使用这两个选项,输入延迟值会同时应用于min和max;

在学习的过程中,set_input_delay/set_output_delay命令中实际上还有很多参数,但是在实际中其实用的甚少,因此在这里就没有给出描述,这样可以让初学者快速掌握基本使用,不至于绕晕。

作为曾经的初学者,在开发的过程中对于时钟资源的使用,以前也犯过一个错误,这里总结一些精练笔记,减少大家在开发的过程中少出错;如果对您有帮助,请不吝赐赞和关注,我会不断分享。

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

如若内容造成侵权/违法违规/事实不符,请联系编程老四网进行投诉反馈email:xxxxxxxx@qq.com,一经查实,立即删除!

相关文章

docker 启动镜像命令

Docker 的启动命令用于启动 Docker 容器。这些命令可以从基本的 docker run 命令扩展到包括多个选项和参数,以满足不同的需求。以下是一些常用的 Docker 启动命令和选项的示例: 启动一个新容器: docker run [OPTIONS] IMAGE [COMMAND] [ARG..…

AMD FPGA设计优化宝典笔记(5)低频全局复位与高扇出

亚军老师的这本书《AMD FPGA设计优化宝典》,他主要讲了两个东西: 第一个东西是代码的良好风格; 第二个是设计收敛等的本质。 这个书的结构是一个总论,加上另外的9个优化,包含的有:时钟网络、组合逻辑、触发…

C++并发编程 -3.同步并发操作

本文介绍如何使用条件变量控制并发的同步操作、C 并发三剑客,函数式编程 一.条件变量 1.概念 C条件变量(condition variable)是一种多线程编程中常用的同步机制,用于线程间的通信和协调。它允许一个或多个线程等待某个条件的发生…

Kafka King 推荐一款漂亮、现代、实用的kafka客户端

Kafka King 一个漂亮、现代、实用的kafka客户端,使用python flet、flutter构建。 Github主页:https://github.com/Bronya0/Kafka-King 下载:https://github.com/Bronya0/Kafka-King/releases 功能清单 查看集群节点列表创建主题&#xf…

前端|JavaScript 基础 - 第2天(黑马笔记)

JavaScript 基础 - 第2天 目录 JavaScript 基础 - 第2天一、运算符1.算术运算符2.赋值运算符3.自增/自减运算符4.比较运算符5.逻辑运算符6.运算符优先级 二、语句1.表达式和语句2.分支语句if 分支语句if双分支语句if 多分支语句三元运算符(三元表达式)sw…

SpringSecurity + OAuth2 详解

SpringSecurity入门到精通 ************************************************************************** SpringSecurity 介绍 **************************************************************************一、入门1.简介与选择2.入门案例-默认的登录和登出接口3.登录经过了…

英文论文(sci)解读复现【NO.21】一种基于空间坐标的轻量级目标检测器无人机航空图像的自注意

此前出了目标检测算法改进专栏,但是对于应用于什么场景,需要什么改进方法对应与自己的应用场景有效果,并且多少改进点能发什么水平的文章,为解决大家的困惑,此系列文章旨在给大家解读发表高水平学术期刊中的 SCI论文&a…

AI专题:5G-A扬帆风正劲,踏AI增长新浪潮

今天分享的是AI系列深度研究报告:《AI专题:5G-A扬帆风正劲,踏AI增长新浪潮》。 (报告出品方:开源证券) 报告共计:22页 足立连接,拓展算力,双曲线稳步发力 中兴通讯拥…

ZISUOJ 2022年算法基础公选课练习四(Map)

说明: 博主为了提早预习数据结构和C的一些知识,自己琢磨外加查阅资料所写的代码,题目来源于22年初的学院老师组织的算法基础公选课的练习。我的代码甚至思路肯定存在许多不足和错误,欢迎大家批评指正。 题目列表: 问题…

猫多喝水好吗?最有效解决猫不喝水的办法

猫多喝水好吗?充足的水分摄入对猫咪的健康非常重要,有助于维持其体液平衡,促进消化,降低便秘的风险,并保护泌尿系统的健康。猫多喝水好吗?建议每公斤体重的猫每天摄入60-80毫升的水,除了与体重相…

Windows系统cmd常用指令大全

文章目录 前言一、怎么打开cmd(命令提示符)?1.键盘法:快捷键Win R2.鼠标法 二、如何使用cmd指令?1.关机、重启、休眠、注销指令2.查看本机IP3.复制、移动、删除文件(1)复制文件(2&a…

后端开发怎么学?

后端开发怎么学? 后端开发可以简单地理解为与前端开发相对应的开发方向。前端开发主要负责构建用户界面、维护用户体验等方面的工作,而后端开发则主要负责处理数据、逻辑和算法等方面的工作。后端开发旨在为前端应用程序提供支持,以帮助实现可…

【HarmonyOS】【DevEco ohpm ERROR: NOTFOUND package “@ohos/hypium“如何解决

参考 :(无效) 华为开发者论坛 DevEco创建项目时的错误解决_6 月 优质更文活动_路北路陈_InfoQ写作社区 解决: HormonyOS-DevEco Studio新建空项目ERROR解决_oh_modules\ohos\hypium-CSDN博客 将 .ohpm文件夹中的hypium文件夹复…

Vue+SpringBoot打造生活废品回收系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、研究内容三、界面展示3.1 登录注册3.2 资源类型&资源品类模块3.3 回收机构模块3.4 资源求购/出售/交易单模块3.5 客服咨询模块 四、免责说明 一、摘要 1.1 项目介绍 生活废品回收系统是可持续发展的解决方案,旨在鼓…

vue框架-vue-cli

vue-cli Vue CLI是一个官方的脚手架工具,用于快速搭建基于Vue.js的项目。Vue CLI提供了一整套可配置的脚手架,可以帮助开发人员快速构建现代化的Web应用程序。 Vue CLI通过提供预先配置好的Webpack模板和插件,使得开发人员可以在不需要手动编写Webpack配置的情况下快速创建…

佳能2580的下载手册

凡是和电子产品有关的产品其内部都开始不断地进行内卷,在不断地内卷背后,意味着科技更新和换代,自己也入手了一台佳能2580的打印机,一台相对比较老式的打印机,以此不断地自己想要进行打印的需要。 下载的基础步骤&…

JVM-JVM中对象的生命周期

申明:文章内容是本人学习极客时间课程所写,文字和图片基本来源于课程资料,在某些地方会插入一点自己的理解,未用于商业用途,侵删。 原资料地址:课程资料 对象的创建 常量池检查:检查new指令是否能在常量池…

数据结构:动态内存分配+内存分区+宏+结构体

一、作业 1.定义一个学生结构体&#xff0c;包含结构体成员&#xff1a;身高&#xff0c;姓名&#xff0c;成绩&#xff1b;定义一个结构体数组有7个成员&#xff0c;要求终端输入结构体成员的值&#xff0c;根据学生成绩&#xff0c;进行冒泡排序。 #include <stdio.h>…

面试redis篇-01开篇

使用场景 Redis的数据持久化策略有哪些什么是缓存穿透&#xff0c;怎么解决什么是布隆过滤器什么是缓存击穿&#xff0c;怎么解决什么是缓存雪崩&#xff0c;怎么解决redis双写问题Redis分布式锁如何实现Redis实现分布式锁如何合理的控制锁的有效时长Redis的数据过期策略有哪些…

centos安装mongodb

1&#xff0c;下载mongodb&#xff0c;百度网盘分享 链接: https://pan.baidu.com/s/1jwwcKD4GppeAXOOJ8xlV4A 密码: dgfi 也可以去官网下载 官网&#xff1a;www.mongodb.com 2&#xff0c;安装 在主目录下创建mongodb文件夹&#xff0c;将刚才下载的压缩包放进去并解压&…
推荐文章