Vivado使用入门之三:I/O约束

news2024/10/6 14:34:43

一、导图概览

二、I/O约束

2.1 I/O约束的内容

I/O约束主要是对port的位置和电气特性进行设置,进入菜单栏Window的IO Ports,可以查看可约束的相关内容。

一些port的常用特性解释如下

Name: port的名称

Direction:port的输入输出类型,有三种,输入in,输出out,双向端口inout

Package Pin:port约束的位置

I/O Std:port的IO标准

Bank:port所属的时钟区域

Vcco:电源供电电压

Fixed:是否固定位置

Vref:参考信号电压

Driver strength:输出buffer的驱动强度,单位是mA,和I/O标准有关联关系

Slew type:上升沿和下降沿变化的快慢

2.2 I/O 类型

器件中可以布局I/O的pin类型可以查看Package的设置界面,菜单栏Window->Package打开芯片的port分布图,点击右上角的红框内的设置图标,展开查看界面

在Pins组中,对Package的pin进行了分类

Power Supply Pins:电源供应引脚,如电源VCC和接地GND等

Transceiver Pins:高速收发器的引脚

I/O and Multi-Function Pins:放置I/O的引脚,用户使用频率最多的

Temperature Sensor Pins:温度传感器引脚

Dedicated Configuration Pins:降级配置引脚,在该位置,时钟端口不需要降级参数设置能不上时钟树到时钟load

Dedicated XADC Pins:降级的XADC引脚

三、 I/O约束的方法

    设置I/O约束,有3中界面操作方式,I/O port表格中设置,port拖入Package中设置,port拖入Device中设置,三种方式都可以实现I/O port的位置约束,在设定位置约束后,其他属性的约束就只能在I/O port界面设置。

3.1 I/O ports中约束

     I/O ports界面入口:菜单栏中Window->I/O ports,位置设置为在Package Pin列输入需要设置的位置,点击单元格左下角的向下箭头打开下拉框,显示可选项。

除了设置位置约束,还可以设置其他属性

菜单栏Window->Package打开芯片的port分布图,按bank划分,横坐标为数字,纵坐标为字母,里面的单元格就可放置IO PORT,不是所有的单元格都可以放置port,下图中红框中带有橙色长方形标注的即是已约束的IO PORT。

3.2 Package中约束

上节说到修改I/O Ports中Package Pin列的值可设置约束,下面有一种更简单的方法,鼠标左键选中需要约束port,按住左键可将port直接拖入Package中,对于放置在不可约束的位置时,会有禁止的图标(带斜杠的圆圈)出现,也会出现提示语不能放置。

约束后如果要在Package中快速找到约束的位置,可在I/O Ports界面选中port,进行highlighth或mark进行指定颜色标记,mark将在目标位置标记指定颜色背景的菱形,highlight将对目标的边框进行指定颜色的标记。

如对KEY进行mark标记,颜色为黄色,下图package视图内,将能够轻易找到位置

3.3 Device中约束

   I/O ports不仅可以在Package中进行位置约束,也可以在Device窗口中进行约束,I/O的约束位置即为左右两侧Banks的区域

操作:在I/O Ports中选中要约束的port,将Device图中BANK区域放大,可以看到各个位置的坐标。port中包含INBUF和OUTBUF说明即可以放置input port,也可以放置output port。

在Package pin列中输入要在Device放置的位置,放置后在Device中可以手动拖动进行位置修改。port原先约束在AA19,选中AA19中pad的位置,按照左键移动到W18,即可将其约束到W18

3.4 差分IO

差分IO是一种比较特殊的IO,必须成对的使用,占用2个port的位置,约束时对位置有限制。

可以使用后缀带DS的原语进行例化出查分端口

示例代码

module lut_ff(clk,C,R,CE,out,I,IB);
input clk,C,CE,R,I,IB;
output out;
   
IBUFDS #(
      .DIFF_TERM("TRUE"),       // Differential Termination
      .IBUF_LOW_PWR("TRUE"),     // Low power="TRUE", Highest performance="FALSE" 
      .IOSTANDARD("DEFAULT")     // Specify the input I/O standard
   ) IBUFDS_inst (
      .O(o_ibufds),  // Buffer output
      .I(I),  // Diff_p buffer input (connect directly to top-level port)
      .IB(IB) // Diff_n buffer input (connect directly to top-level port)
   );

 FDRE #(
      .INIT(1'b1) // Initial value of register (1'b0 or 1'b1)
   ) FDRE_inst (
      .Q(out),      // 1-bit Data output
      .C(C),      // 1-bit Clock input
      .CE(CE),    // 1-bit Clock enable input
      .R(R),      // 1-bit Synchronous reset input
      .D(o_ibufds)       // 1-bit Data input
   );
endmodule

差分IO中分为P端口和N端口,位置不能反。在I/O ports中,I对应的Neg Diff Pair有对应的端口IB。

将I和IB约束位置交换时,提示交换无效。

在Device界面中,可以看到I布局在IO_L21P位置,IB布局在IO_L21N位置。在其他位置也都存在名称后面带P,N支持放置差分端口的位置,而像左上角AG15,则只能放单端口的port。

3.5 方法对比

I/O port:可以直接进行位置约束,并且在确定位置约束后,可以进行其他属性的约束

Package约束I/O:可以直观清楚的看到各个位置在芯片中所属的bank,以及port的类型,特定属性等

Device约束I/O:可以直观清楚看到各个位置在芯片的实际物理位置,方便约束I/O后对相关网表进行约束,也可以看到I/O PORT在芯片上的内部组成模块

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

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

相关文章

后端开发12.商品模块

概述 简介 商品模块这个设计的非常复杂 效果图 数据库

【LeetCode-中等题】15. 三数之和

题目 题解一&#xff1a;双指针法 图解参考链接&#xff1a;画解算法&#xff1a;15. 三数之和 详解参考代码随想录讲的非常好 梦破碎的地方&#xff01;| LeetCode&#xff1a;15.三数之和 代码&#xff1a; class Solution {public List<List<Integer>> thre…

第 7 章 排序算法(5)(希尔排序)

7.8希尔排序 7.8.1简单插入排序存在的问题 我们看简单的插入排序可能存在的问题. 数组 arr {2,3,4,5,6,1} 这时需要插入的数 1(最小), 这样的过程是&#xff1a; {2,3,4,5,6,6} {2,3,4,5,5,6} {2,3,4,4,5,6} {2,3,3,4,5,6} {2,2,3,4,5,6} {1,2,3,4,5,6} 结论: 当需要插入的数…

Influxdb数据库(centos7)

Influxdb数据库 1、简介与使用场景 简介 InfluxDB是一个由InfluxData开发的开源时序型数据库&#xff0c;专注于海量时序数据的高性能读、高性能写、高效存储与实时分析等&#xff0c;在DB-Engines Ranking时序型数据库排行榜上排名第一&#xff1a; InfluxDB广泛应用于DevOps…

odoo 设备增加二维码 python生成二维码的一个有意思的问题

odoo 设备增加二维码 python生成二维码的一个有意思的问题 在odoo设备集成中根据客户要求&#xff0c;增加了一个二维码&#xff0c;想包含一些信息&#xff0c;用python的二维码库qrcode&#xff0c;qrcode是二维码生成的Python开源库。 代码如下: ewmny 设备&#xff1a; …

开源远程控制硬件 BliKVM v4测试 1000公里外远程重装系统

测试准备 测试时间&#xff1a;20230818 测试硬件&#xff1a;BliKVM v4 文档 BliKVM v4是一款生产就绪、即插即用的 KVM-over-IP 设备&#xff0c;为专业用户提供了远程服务器或工作站管理的便捷解决方案。 它基于Linux并且完全开源。 借助 BliKVM&#xff0c;您可以轻松打…

机器学习算法-随机森林

目录 机器学习算法-随机森林 &#xff08;1&#xff09;构建单棵决策树。 决策树的构建过程 决策树的构建一般包含三个部分&#xff1a;特征选择、树的生成、剪枝。 机器学习算法-随机森林 机器学习算法-随机森林 随机森林是一种监督式学习算法&#xff0c;适用于分类和回…

9万字企业数字化技术中台、数据中台、工业互联网建设方案WORD

导读&#xff1a;原文《9万字企业数字化技术中台、数据中台、工业互联网建设方案WORD》&#xff08;获取来源见文尾&#xff09;&#xff0c;本文精选其中精华及架构部分&#xff0c;逻辑清晰、内容完整&#xff0c;为快速形成售前方案提供参考。 目录 1 概述 1.1. 数字化企…

SPI ServiceLoader.load()无法加载实现类

[TOC](SPI ServiceLoader.load()无法加载实现类) 问题描述 项目是maven结构&#xff0c;其中的resources里结构如下&#xff1a; 解决方案 改为如下结构&#xff1a; 原因分析 问题出现的原因是&#xff1a;创建Directory时用点号隔开了 META-INFO.services ,结果META-…

chapter 3 Free electrons in solid - 3.1 自由电子模型

3.1 自由电子模型 Free electron model 研究晶体中的电子&#xff1a; 自由电子理论&#xff1a;不考虑离子实能带理论&#xff1a;考虑离子实&#xff08;周期性势场&#xff09;的作用 3.1.1 德鲁德模型 Drude Model - Classical Free Electron Model (1)德鲁德模型 德鲁…

ruoyi-vue-pro yudao 项目支付 pay 模块启用及相关SQL脚本

目前ruoyi-vue-pro 项目虽然开源&#xff0c;但是pay 支付模块被屏蔽了&#xff0c;查看文档却要收费 199元&#xff08;知识星球&#xff09;&#xff0c;价格有点太高了吧。 分享下如何启用 pay 模块&#xff0c;顺便贴上sql相关脚本。 一、启用模块 修改根目录 pom.xml 启…

超详解——容器搭建ownCloud个人网盘

目录 在搭建开始前需要准备好所须的环境 拉取镜像 创建容器 创建mysql容器&#xff1a; 创建OwnCloud容器&#xff0c;并连接到数据库&#xff1a; 创建Nginx容器&#xff1a; 剩下的只需要根据向导安装指引步骤即可&#xff01;​编辑​编辑 docker-compose搭建请参照&…

正则表达式在PHP8中的应用案例-PHP8知识详解

正则表达式在php8中有许多应用案例。以下是一些常见的应用场景&#xff1a;如数据验证、数据提取、数据替换、url路由、文本搜索和过滤等。 1、数据验证 使用正则表达式可以对用户输入的数据进行验证&#xff0c;例如验证邮箱地址、手机号码、密码强度等。 下面是一个用正则表…

【算法】二分查找(整数二分和浮点数二分)

二分查找也称折半查找&#xff08;Binary Search&#xff09;&#xff0c;是一种效率较高的查找方法&#xff0c;时间复杂度为O(logN)。 二分查找采用了“分治”策略。使用二分查找时&#xff0c;数组中的元素之间得有单调性&#xff08;升序或者降序&#xff09;。 二分的模…

每日一题——螺旋矩阵

题目 给定一个m x n大小的矩阵&#xff08;m行&#xff0c;n列&#xff09;&#xff0c;按螺旋的顺序返回矩阵中的所有元素。 数据范围&#xff1a;0≤n,m≤10&#xff0c;矩阵中任意元素都满足 ∣val∣≤100 要求&#xff1a;空间复杂度 O(nm) &#xff0c;时间复杂度 O(nm)…

网络安全等级保护2.0

等保介绍 等保测评是为了符合国家法律发挥的需求&#xff0c;而不是安全认证&#xff08;ISO&#xff09; 一般情况没有高危安全风险一般可以通过&#xff0c;但若发现高位安全风险则一票否决 二级两年一次 三级等保测评每年一次 &#xff08;收费&#xff09; 四级每个年…

虚拟内存机制2

转载自公众号&#xff1a;在下小神仙 为什么要有虚拟内存机制&#xff1f; 在早期的计算机中&#xff0c;是没有虚拟内存的概念的。 我们要运行一个程序&#xff0c;会把程序全部装入内存&#xff0c;然后运行。 当运行多个程序时&#xff0c;经常会出现以下问题&#xff1a…

不使用导入表而直接调用dll中函数的病毒的工作方式

一、实验目的&#xff1a; 通过该实验&#xff0c; 使学生掌握使用PEB结构确定kernel32.dll基地址的方法与原理&#xff0c;通过对PE导出表结构分析来理解获取API函数地址的方法&#xff0c;最终通过编码完成一个没有导入表的测试程序。 二、实验步骤&#xff1a; 1.通过使用…

适用于 Windows 的 5 款最佳免费数据恢复软件

每个计算机用户都曾经历过数据丢失的情况。很容易错误地删除重要的文件和文件夹&#xff0c;当发生这种情况时&#xff0c;可能会导致不必要的心痛和压力。值得庆幸的是&#xff0c;可以恢复 Windows PC 上丢失的数据。在本文中&#xff0c;我们将分享您可以使用的五种最佳 Win…

第三讲:ApplicationContext的实现

这里写目录标题 一、前文回顾二、基础代码准备三、基于XML的ClassPathXmlApplicationContext1. 创建spring-config.xml配置文件2. 指定配置文件的路径 四、基于注解的AnnotationConfigApplicationContext1. 新增一个配置类2.指定配置类信息 五、基于注解和ServletWebServer应用…