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

一、导图概览

二、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在芯片上的内部组成模块

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

DNNGP、DeepGS 和 DLGWAS模型构成对比

一、DNNGP DNNGP 是基于深度卷积神经网络,这个结构包括一个输入层,三个卷积层,一个批标准化层,两个dropout层,一个平坦化层,一个 dense层。 dropout层:在神经网络中,dropout层是一个非常有效的正…

[JavaWeb]【一】入门JavaWeb开发总概及HTML、CSS、JavaScript

目录 一 特色 二 收获​编辑 三 什么是web? 四 网站的工作流程 五 web网站的开发模式​编辑 六 web开发课程学习安排 七、初始web前端 八 HTML、CSS 8.1 什么是HTNL\CSS(w3cschool) 8.2 HTML快速入门 8.3 VS Code开发工具 8.3.1 插件 8.3.2 主题(改变颜色&…

破解难题:如何应对项目中的‘老油条’障碍

引言 在项目管理的实践中,我们经常遇到各种各样的人员挑战。其中,有一种特殊的挑战被称为“老油条”现象。这些“老油条”通常在表面上表现得非常配合,但在实际工作中却常常没有任何进展。这种情况不仅会影响项目的进度,还可能对…

Kestrel和ISS服务器下的配置

一、Kestrel服务器 Kestrel是ASP.NET Core框架中的一个跨平台的Web服务器。它是ASP.NET Core应用程序默认的HTTP服务器,并且可作为独立的Web服务器来托管ASP.NET Core应用程序。 Kestrel具有以下特点和功能 1、跨平台 Kestrel是完全跨平台的,可以在Wind…

Git如何上传文件到github

Git下载网址: https://git-scm.com/downloads 1. 新建一个空文件夹,用来上传文件,第一次需创建,以后无需创建 2. 点进去空文件夹,鼠标右键,使用Git Bash Here 打开 3. 克隆远程仓库:git cl…

nginx反向代理、负载均衡

修改nginx.conf的配置 upstream nginx_boot{# 30s内检查心跳发送两次包,未回复就代表该机器宕机,请求分发权重比为1:2server 192.168.87.143 weight100 max_fails2 fail_timeout30s; server 192.168.87.1 weight200 max_fails2 fail_timeout30s;# 这里的…

WPF显示初始界面--SplashScreen

WPF显示初始界面–SplashScreen 前言 WPF应用程序的运行速度快,但并不能在瞬间启动。当第一次启动应用程序时,会有一些延迟,因为公共语言运行时(CLR)首先需要初始化.NET环境,然后启动应用程序。 对于WPF中…

OpenAI Function calling

开篇 原文出处 最近 OpenAI 在 6 月 13 号发布了新 feature,主要针对模型进行了优化,提供了 function calling 的功能,该 feature 对于很多集成 OpenAI 的应用来说绝对是一个“神器”。 Prompt 的演进 如果初看 OpenAI 官网对function ca…

【LeetCode-中等题】49. 字母异位词分组

题目 题解一:排序哈希表 思路:由于互为字母异位词的两个字符串包含的字母相同,因此对两个字符串分别进行排序之后得到的字符串一定是相同的,故可以将排序之后的字符串作为哈希表的键。 核心api: //将字符串转换为字符数组char[] ch str.toCharArray();…

使用open cv进行角度测量

使用open cv进行角度测量 用了一点初中数学的知识,准确度,跟鼠标点的准不准有关系,话不多说直接上代码 import cv2 import mathpath "test.jpg" img cv2.imread(path) pointsList []def mousePoint(event, x, y, flags, param…

【Linux取经路】解析环境变量,提升系统控制力

文章目录 一、进程优先级1.1 什么是优先级?1.2 为什么会有优先级?1.3 小结 二、Linux系统中的优先级2.1 查看进程优先级2.2 PRI and NI2.3 修改进程优先级2.4 进程优先级的实现原理2.5 一些名词解释 三、环境变量3.1 基本概念3.2 PATH:Linux系…

开源后台管理系统Geekplus Admin

本系统采用前后端分离开发模式,后端采用springboot开发技术栈,mybatis持久层框架,redis缓存,shiro认证授权框架,freemarker模版在线生成代码,websocket消息推送等,后台管理包含用户管理&#xf…

8. 实现业务功能--用户注册

目录 1. 顺序图 2. 参数要求 3. 接口规范 4. 创建扩展 Mapper.xml 5. 修改 DAO 6. 创建 Service 接口 7. 实现接口 8. 测试接口 9. 实现 Controller 9.1 密码加密处理 10. 实现前端界面 业务实现过程中主要的包和目录及主要功能: model 包:实体对象 d…

蛊卦-拨乱反正

目录 前言 卦辞 爻辞 总结 前言 题外话,今天占卜时,看错了,以为占到了蛊卦(后续会对自己的占卦经历进行补充,不断完善这个易经学习的专栏),那顺便就学习一下蛊卦,蛊惑人心&#…

QT TLS initialization failed问题(已解决) QT基础入门【网络编程】openssl

问题: qt.network.ssl: QSslSocket::connectToHostEncrypted: TLS initialization failed 这个问题的出现主要是使用了https请求:HTTPS ≈ HTTP + SSL,即有了加密层的HTTP 所以Qt 组件库需要OpenSSL dll 文件支持HTTPS 解决: 1.加入以下两行代码获取QT是否支持opensll以…

STM32--TIM定时器(3)

文章目录 输入捕获简介频率测量输入捕获通道输入捕获基本结构PWMI的基本结构输入捕获模式测量PWM频率和占空比代码 编码器接口正交编码器工作模式接口基本结构TIM编码接口器测速代码: 输入捕获简介 输入捕获IC(Input Capture),是处理器捕获外部输入信号…

JVM——引言+JVM内存结构

引言 什么是JVM 定义: Java VirtualMachine -java 程序的运行环境 (ava 二进制字节码的运行环境) 好处: 一次编写,到处运行自动内存管理,垃圾回收功能数组下标越界检查,多态 比较: jvm jre jdk 学习jvm的作用 面试理解底层实现原理中…

mybatis plus 配置自动设置创建时间和创建人id

1.新建 MyMetaObjectHandler package com.ruoyi.framework.config;import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler; import com.ruoyi.common.bean.LocalUser; import com.ruoyi.coupon.domain.CouponUser; import org.apache.ibatis.reflection.MetaObjec…

深度学习模型训练好后使用time.time()测试处理每一帧速度(时间)和模型推理速度(时间)

在深度学习中,如果想测试训练好的模型处理每一帧图像的运行时间,可以在模型预测代码段添加时间统计的逻辑: 目录 加载预训练模型遍历测试图像汇总统计预测测试集全部图像的平均处理时间测试结果样式 加载预训练模型 model torch.load(best_model.pth) …

Datawhale Django后端开发入门 TASK03 QuerySet和Instance、APIVIew

一、QuerySet QuerySet 是 Django 中的一个查询集合,它是由 Model.objects 方法返回的,并且可以用于生成数据库中所有满足一定条件的对象的列表。 QuerySet 在 Django 中表示从数据库中获取的对象集合,它是一个可迭代的、类似列表的对象集合。主要特点…