Vivado约束添加方法:一文全面解析IO和时序约束

news2024/11/28 6:27:10

FPGA开发离不开IO约束和时序约束,IO约束用于确定输入/输出端口的物理端口和电气特性,与芯片和电路设计有关。而时序约束则用于设定FPGA设计中的时序特性,以确保系统能够在预期时钟频率下正常运行。本文将介绍vivado中常见的设置约束的方法。

一、IO约束

IO约束,实际上是将工程的输入输出端口与芯片的引脚关联起来,所以需要参考芯片手册和实际电路设计。在vivado中通常有两种加入IO约束的方式:

1、通过GUI界面设置IO约束

(1)创建vivado工程,并添加HDL文件。

(2)点击“Run Synthesis”,执行综合,等待综合完成。

​(3)点开 “Open Synthesized Design”,等待打开综合结果。

​(4)点开vivado菜单栏右上角的,窗口选择“I/O Planning”。

​(5)vivado出现“IO Ports”窗口,根据电路图和芯片手册,定义引脚位置和电气标准。

​(6)设置完后,按快捷键“ctrl + s”保存,填入约束文件名。

​(7)在“source”窗口,点开“Constraint”下的“constrs_1”可看到创建的约束文件,点开即可看到约束的内容。

2、直接创建xdc文件并加入IO约束

可通过点击“source”窗口的“+”创建xdc文件。

​(1)引脚分配设置

“pin name”是芯片的引脚,ports是工程中定义的模块名

set_property PACKAGE_PIN <pin name> [get_ports <ports>]

(2)引脚电气标准设置

“IOSTANDARD”是电气标准,如LVCMOS18、LVCMOS12、LVCMOS33

set_property IOSTANDARD <IO standard> [get_ports <ports>]

(3)引脚驱动能力设置

set_property DRIVE <2 4 6 8 12 16 24> [get_ports <ports>]

(4)引脚抖动设置

set_property SLEW <SLOW|FAST> [get_ports <ports>]

(5)引脚上拉设置

set_property PULLUP true [get_ports <ports>]

(6)引脚下拉设置

set_property PULLDOWN true [get_ports <ports>]

二、时序约束

FPGA时序与资源的平衡是永恒的话题,时序约束是非常重要的,实际上是设定整个FPGA工程的时序特性,比如整个工程模块的运行的时钟频率,这样就能让编译器根据设定约束在FPGA中布线,如果时序不满足,整个FPGA系统可能运行的状态不稳定,达不到设计要求。

1、通过GUI界面设置时序约束

(1)点开 “Open Synthesized Design”,等待打开综合结果,再点开“Open Synthesized Design”选项,单击“Edit Timing Constraints”。

​(2)打开了“Timing Constraints”,点击“+”。

​(3)弹出“create clock”,单击“source objects”右侧“ … ”按钮。

​(4)弹出“specify clock source objects”,点击”find”。在“result”窗口中选择“clk”,单击右侧的“→”,将其添加到“selected”窗口中,再点击set。

​(5)返回“create clock”,设置时钟周期和占空比,点击“OK”。

​(6)按“Ctrl + s”保存,再打开top_io.xdc的窗口,可看到新增了时序约束。

2、直接创建xdc文件并加入时序约束

时序约束命令

create_clock -period 10.000 -waveform {0.000 5.000} [get_ports clk]

三、总结

本文介绍了常用的设置IO约束与时序约束的方法,大家可以参考下,掌握配置约束文件的方法,使用正确的I/O约束方法和语法可以确保FPGA设计的正确性和可靠性。


本文将不断定期更新中,码字不易,点⭐️赞,收⭐️藏一下,不走丢哦

本文由FPGA狂飙原创,有任何问题,都可以在评论区和我交流哦

学习资料分享,github开源代码:“FPGA知识库”

您的支持是我持续创作的最大动力!如果本文对您有帮助,请给一个鼓励,谢谢。

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

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

相关文章

mysql 如何避免索引失效

案例演示 建表及初始化数据 CREATE TABLE staffs (id INT PRIMARY KEY AUTO_INCREMENT,NAME VARCHAR(24) NOT NULL DEFAULT ,age INT NOT NULL DEFAULT 0,pos VARCHAR(20) NOT NULL DEFAULT ,#职位add_time TIMESTAMP NOT NULL DEFAULT CURREN…

二维码在设备点维一体化管理中的应用

随着科技发展&#xff0c;设备点维一体化管理体系应运而生&#xff0c;该管理体系的出现让设备维护保养变得更加高效精细化。 设备点维一体化管理体系以设备点检和维护保养为基础&#xff0c;通过日常、专业及精密点检&#xff0c;对点检测得的数据和设备给油脂保养情况进行统…

一个开源、免费在线数据建模、元数据管理平台,简单易用

一、开源项目简介 ERD Online 是一个开源、免费在线数据建模、元数据管理平台。提供简单易用的元数据设计、关系图设计、SQL查询等功能&#xff0c;辅以版本、导入、导出、数据源、SQL解析、审计、团队协作等功能、方便我们快速、安全的管理数据库中的元数据。 二、开源协议 …

全国各省份影像下载地址(11级别)

安徽省https://pan.baidu.com/s/1fMuWhVZFvSH1UlCGU1bPpA?pwdeasy澳门特别行政区https://pan.baidu.com/s/1aU2D4o2bfeHTJTb6AkUtVA?pwdeasy北京市https://pan.baidu.com/s/1eaNzAWm1pUx_rjhD_wHHhA?pwdeasy福建省百度网盘 请输入提取码甘肃省https://pan.baidu.com/s/1mAqf…

【Tools系列】IDA远程调试Linux文件

Date: 2023.4.28 文章目录 1、工具安装2、IDA+linux_server参考1、工具安装 IDA Pro 7.2 2、IDA+linux_server (1)进入到IDA的安装目录,找到文件夹/dbgsrv,其中有两个文件linux_server和linux_server64,分别为32位的服务端和64位的服务端,可根据调试目标进行选择。并将…

RocketMQ第二节(安装和模块详解)

目录 1&#xff1a;RocketMQ安装 1.1&#xff1a;下载安装包解压 1.2&#xff1a;修改运行配置 1.3&#xff1a;运行RocketMQ 1.3.1&#xff1a;启动NameServer 1.3.2&#xff1a;启动Broker 1.4&#xff1a;消息收发 1.5&#xff1a;服务关闭 2&#xff1a;RocketMQ模…

八部门联合推动IPv6创新发展 知道创宇助力IPv6快速安全改造

近日&#xff0c;工业和信息化部、中央网信办、国家发展改革委、教育部、交通运输部、人民银行、国务院国资委、国家能源局等八部门联合印发《关于推进IPv6技术演进和应用创新发展的实施意见》&#xff08;以下简称“《实施意见》”&#xff09;&#xff0c;提出到2025年底&…

换个花样玩C++(3)const_cast不是一行代码这么简单

我先不说const_cast的事情,还是回到我们之前遇到的一个问题,先看代码 示例1 #include <iostream> int main() {const int a = 1;int* p = (int*)(&a);*p = 100; std::cout << a; } 这段代码里,本来想通过指针p里修改a的值,vs调试看下来a的值在*p=100;这…

Elasticsearch --- 简介、安装

一、简介 1.1、elasticsearch的作用 elasticsearch是一款非常强大的开源搜索引擎&#xff0c;具备非常多强大功能&#xff0c;可以帮助我们从海量数据中快速找到需要的内容 例如&#xff1a; 在GitHub搜索代码 在电商网站搜索商品 在百度搜索答案 1.2、ELK技术栈 elas…

Linux安装helm

前言 运行环境&#xff1a;CentOS7.9 官方参考文档&#xff1a;官方文档 文章末尾附有一键安装脚本 下载安装包 github下载对应版本的安装包&#xff0c;下载地址 进入对应版本的下载页面&#xff0c;这里以v3.11.3为例 选择对应系统的安装包&#xff0c;这里以linux为例 …

WhatsApp CRM:通过 CRM WhatsApp 集成向客户发送消息

WhatsApp CRM&#xff1a;通过 CRM WhatsApp 集成向客户发送消息 你是否在寻找一个支持WhatsApp整合的CRM&#xff1f;或者&#xff0c;你想将WhatsApp与你当前的CRM整合&#xff1f;这篇文章将回答你所有的问题。我们将首先了解什么是WhatsApp CRM&#xff0c;以及你需要知道…

【Python】丘比特之箭,一箭穿心,快去发给你心仪的人叭~

作者主页&#xff1a;爱笑的男孩。的博客_CSDN博客-深度学习,活动,YOLO领域博主爱笑的男孩。擅长深度学习,活动,YOLO,等方面的知识,爱笑的男孩。关注算法,python,计算机视觉,图像处理,深度学习,pytorch,神经网络,opencv领域.https://blog.csdn.net/Code_and516?typeblog个人简…

20230428 -栈与队列1 | 232. 用栈实现队列、225. 用队列实现栈、Queue和Deque异同介绍

1、232. 用栈实现队列 class MyQueue {//整体实现思路&#xff1a;队列是先进先出&#xff0c;栈是先进后出。使用两个栈&#xff0c;一个栈A负责进&#xff0c;一个栈B负责接收栈A数据&#xff0c;然后出出&#xff0c;队列&#xff1a;A->B>C 栈A&#xff1a;A->B&g…

一分钟教你玩转组合图表

在日常工作中&#xff0c;有时候单一的图表类型无法满足多维度的数据展示&#xff0c;这时候就要考虑使用组合图表。 什么是组合图表呢&#xff1f; 就是将两种及两种以上的图表类型组合起来绘制在一个图表上。 下面我们通过经典的柱线组合图来手把手教会你如何制作组合图表。 …

ChatGLM LoRA微调实战方案

大家好,我是herosunly。985院校硕士毕业,现担任算法研究员一职,热衷于机器学习算法研究与应用。曾获得阿里云天池比赛第一名,CCF比赛第二名,科大讯飞比赛第三名。拥有多项发明专利。对机器学习和深度学习拥有自己独到的见解。曾经辅导过若干个非计算机专业的学生进入到算法…

Kestrel封装在Winform中

Kestrel封装在Winform中 背景思路方法1方法2方法3&#xff08;本文使用的方法&#xff09; 实现在winform程序中引入几个nuget包新建一个Startup类&#xff08;叫什么名字都行&#xff09;修改Program文件创建controller 运行效果(打开浏览器&#xff0c;输入如下地址&#xff…

【高危】Apache Superset <2.1.0 认证绕过漏洞(POC)(CVE-2023-27524)

漏洞描述 Apache Superset 是一个开源的数据可视化和业务智能平台&#xff0c;可用于数据探索分析和数据可视化。 Apache Superset 受影响版本在使用默认的secret_key时&#xff0c;攻击者可通过默认的secret_key为任意用户生成有效的会话令牌&#xff0c;进而绕过验证造成信…

千耘导航让普通棉农享受到科技红利

孟师傅&#xff0c;新疆阿克苏一名普通的棉花种植户&#xff0c;从事农业20年&#xff0c;开拖拉机也有10多年&#xff0c;之前听过农机自动驾驶&#xff0c;但由于这里通信网络信号不太好&#xff0c;身边朋友使用农机导航效果不是特别理想&#xff0c;因此一直没享受到科技带…

【Python】Python学习笔记(六)字符串

字符串 基本操作 使用索引来读取字符串 Python允许使用正数或者负数来读取字符串中的某一个字符。 使用正数索引&#xff1a; #按顺序打印输出字符串内的所有字符。s ABCDEFGprint(s[0] , s[0]) print(s[1] , s[1]) print(s[2] , s[2]) print(s[3] , s[3]) print(s[4]…

计算机网络学习01

网络分层模型 1、OSI 七层模型是什么&#xff1f;每一层的作用是什么&#xff1f; OSI 七层模型 是国际标准化组织提出一个网络分层模型&#xff0c;其大体结构以及每一层提供的功能如下图所示&#xff1a; 每一层都专注做一件事情&#xff0c;并且每一层都需要使用下一层提…