当前位置: 首页 > 编程日记 > 正文

FPGA研发之道(25)-管脚

管脚是FPGA重要的资源之一,FPGA的管脚分别包括,电源管脚,普通I/O,配置管脚,时钟专用输入管脚GCLK等。

本文引用地址:http://www.eepw.com.cn/article/266429.htm

(1)电源管脚:

通常来说: FPGA内部的电压包括内核电压和I/O电压。

1.内核电压:即FPGA内部逻辑的供电。通常会较I/O电压较低,随着FPGA的工艺的进度,FPGA的内核电压逐渐下降,这也是降低功耗的大势所趋。

2.I/O电压 (Bank的参考电压)。每个BANK都会有独立的I/O电压输入。也就是每个BANK的参考电压设定后,本BANK上所有I/O的电平都与参考电平等同。

是否可以通过约束来设定IO管脚的输出电平那,答案是否定的,如下例所示

set_instance_assignment -name IO_STANDARD 3.0-V LVCMOS -to pinA

set_instance_assignment -name IO_STANDARD 3.3-V LVCMOS -to pinB

不论设定为多大的电平,IO的输出与BANK的参考电压保持一致,也就是说,PINA和PINB的电平与其BANK的电平保持一致,而不是所约束的那样一定会是3V或3.3V的电平。那是否意味着这种约束没有作用?

如果约束同一BANK上的管脚为不同电平,如PINA和PINB在同一BANK,但是电平不同,则EDA工具会报错。可以起到错误检查的作用。(同一bank上电平要一致,但是类型可以是多种,例如CMOS,TTL等)。

对于复杂的FPGA内部,一般来说PLL也会都单独的供电,并且其内部包括数字电源和模拟电源。

SERDES一般也需要独立供电。一般支持高速SERDES的FPGA器件都都有独立的供电管脚,一般也都有独立的时钟管脚(一般为差分时钟)。

(2) 配置管脚:

FPGA的配置管脚每个FPGA都需要,为了支持多种配置方式,例如JTAG,从串、从并、主串、主并等。值得注意的是,对于其配置管脚的控制信号来说,是专用管脚,不能用做普通I/O,而其数据信号,可以用作普通I/O。在管脚资源较为紧张时,可以复用配置信号的数据信号作为普通I/O来用。

(3) 普通I/O:

FPGA的I/O是FPGA管脚上较为丰富的资源。也是做管脚约束时最常用的资源。对于例化IP来说(例如serdes和DDR2/3等),需要使用EDA工具给出了I/O约束。如果修改则需要预先编译进行评估。一般来说,DDR的接口信号最好能在一个BANK上约束,如果不能则其控制信号要约束到同一BANK上,否则导致EDA工具布局布线报错。

对于FPGA的普通I/O,可以设定包括管脚电平类型(LVTTL,LVCOMS,SSTL,HSTL等等),还包括端接大小,驱动电流,摆率等参数。

对于FPGA引脚来说,通过阻抗匹配的设置(altera的OCT,xilinx的DCI的设置)。可以有效的减少板上电阻的数目,降低BOM成本。端接的设置可以阻止阻抗不连续导致信号反射,保证信号完整性。

对于普通信号来说,一般不需要每个都设置阻抗匹配,,只有板级布线长度的电信号传输时间超过高速信号的时钟周期的0.1倍时,才需要设置端接。简单来说也就是只有高速信号,且信号输出和输入距离较远时,才需要使用端接,一般是FPGA连接外部DDR等高速器件时。对于使用外部校准的RUP和RDN电阻来说,其RUP和RDN电阻是整个电路可靠性的关键点。例如:在以一批FPGA板卡中,测试发现只有某一块接口不通,FPGA工程师调试时发现,只要把接口I/O设定为CMOS电平,而不使用DCI的端接,则所有板卡全部能够通信正常,后来发现该板卡RUP上拉电阻失效,从而导致接口电路没有上拉而接口出错。也就是说,I/O的电平设置,以满足设计需要为主,而不用锦上添花。增加的额外电路就会导致额外的失效点。

(4)时钟管脚

FPGA内部的时钟,都需要通过专用时钟管脚连接内部PLL或者DCM等专用时钟处理单元,从而接入内部高速时钟网络。在早期的FPGA中内部时钟资源有限,专用处理单元也有限,需要严格的规划PLL等时钟处理单元和全局时钟资源,随着FPGA技术的发展,这个功能逐渐弱化,但是早期规划也是必须的。

值得注意的是,对于一些外部同步信号的输入,其时钟没有连接到专用时钟管脚上,只用于采样当前的同步信号,因此不用接入全局时钟网络,设计上也是允许的,需要约束其管脚不使用全局时钟资源。否者,EDA工具会报错,提示其作为时钟输入,而没有接在专用时钟管脚上。

正如本文开始所说,管脚是FPGA的重要资源,FPGA工程师熟悉管脚特性和电路设计的基础知识,对于FPGA系统设计和板级电路的调试都是有益的。

PS:问题回复

QUARTUS能否设定I/O信号的上拉和下拉电阻的大小?

1)对于设定的输出信号来说,其是有电平格式的如 set_instance_assignment -name IO_STANDARD LVCOMS -to pin 这种情况下,其电平格式就是LVCOMS。没有上拉或者下拉的设置(也就是说coms电平不包括上下拉电阻的设置)。但是可以设置其输出电流,如 set_instance_assignment -name CURRENT_STRENGTH_NEW 12MA -to pin 板级电路上信号不到位,很多情况下,是驱动能力的问题。 也可以设置其输出端接电阻的大小(不是上下拉)。 set_instance_assignment -name OUTPUT_TERMINATION "SERIES 50 OHM WITH CALIBRATION" -to pin 以及其他属性等等 (2)对于未约束的信号时可以设定其上下拉状态的。 如: set_global_assignment -name RESERVE_ALL_UNUSED_PINS "As input tri-stated with weak pull-up" 其他几种状态分别是 as inputs that are tristated, as outputs that drive ground, as outputs that drive an unspecified signal, asinput tri-stated with bus-hold

转载自:http://www.eepw.com.cn/article/266429.htm

转载于:https://www.cnblogs.com/chengqi521/p/7679808.html

相关文章:

函数组:SDIFRUNTIME

函数组:SDIFRUNTIME;Interfaces for Type Runtime Objects,获得与表相关的数据信息。 包含函数模块: DDIF_FIELDINFO_GET:DD:读取表格字段信息的接口,获得一个表中全部或部分字段的信息。DDIF_F…

原来AGILE就是这么一回事啊!

仅仅还在几年前, XP 还被认为是方法异教, FDD 属于黑客程序方法。如今,敏捷俨然已经成为主流学说,敏捷方法成为人们学习和讨论的热点。敏捷方法的应用也更加广泛,以至于不少外包项目都要求采用某种敏 捷方法。它不仅仅…

开发微信小程序入门前

开发微信小程序入门前 百牛信息技术bainiu.ltd整理发布于博客园 2016年09月21日晚 微信发不了微信“小程序”的内测版,一时间整个互联网都炸了锅。个大新闻、论坛都在讨论这个事情。 作为互联网的一猿,我们怎能不紧跟时代的脚步。于是第二天上午也对微信…

hive的join

第一:在map端产生join mapJoin的主要意思就是,当链接的两个表是一个比较小的表和一个特别大的表的时候,我们把比较小的table直接放到内存中去,然后再对比较大的表格进行map操作。join就发生在map操作的时候,每当扫描一…

表格在线转换工具

表格在线转换工具 :https://tableconvert.com/ —— END ——

Android之View绘制流程源码分析

版权声明:本文出自汪磊的博客,转载请务必注明出处。 对于稍有自定义View经验的安卓开发者来说,onMeasure,onLayout,onDraw这三个方法都不会陌生,起码多少都有所接触吧。 在安卓中,一个View显示到…

看不懂的生成函数

不得不说这个东西真是妙啊 遭到了降智打击 生成函数又叫做母函数,主要用于解决一些组合数学问题 对于一个数列\(\{f_0,f_1,f_2,...,f_n\}\) 我们定义其生成函数为 \[F(x)f_0f_1xf_2x^2...f_nx^n\] 也就是 \[F(x)\sum_{i0}^nf_ix^i\] 也就是把数列的每一项当成了多项…

Coolite Toolkit学习笔记五:常用控件Menu和MenuPanel

Coolite Toolkit里的Menu控件和其他的.NET Web控件不一样,如果只是设计好了Menu或是通过程序初始化菜单项,菜单是不会呈现在界面上的,因为Coolite Toolkit规定Menu控件需要一个容器来做依托,而这个让Menu依托的控件就是MenuPanel&…

解决Neither the JAVA_HOME nor the JRE_HOME environment variable is defined问题

问题描述: 在cmd窗口使用 startup 命令启动Tomcat时,出现 Neither the JAVA_HOME nor the JRE_HOME environment variable is defined At least one of these environment variable is needed to run this program 错误提示,如下如所示。 解…

在 Windows XP 中,无法使用 Windows 图片和传真查看器来查看图片

在 Microsoft Windows XP 中试图使用 Windows 图片和传真查看器查看图片时,图片未按预期显示。不过,当使用 Microsoft 画图工具查看图片时,图片会按预期显示。注意:Windows 资源管理器中可能不会显示某些图片缩略图。 发生这种现象…

前端常用正则表达式

前端常用的正则表达式 通过一些例子来学习正则表达式摘录,js正则函数match、exec、test、search、replace、split //去除首尾的‘/’input input.replace(/^\/*|\/*$/g,);javascript:; 、javascript:void(0)javascript:;.match(/^(javascript\s*\:|#)/);//["j…

BeanShell使用json.jar包处理Json数据

环境准备 ①Jmeter版本 ,JDK ②前置条件:将json.jar包置于..\lib\下, 如果还是报错,可以将该jar包添加到测试计划的Library中;否则会报:Typed variable declaration : Class: JSONObject not found in nam…

ES6 let和const 命令

ES6 let 和 const 命令1. 变量声明2. 变量提升问题3. 暂时性死区(TDZ)4. 块级作用域4.1 为什么需要块级作用域?4.2 ES6的块级作用域4.3 块级作用域和函数声明1. 变量声明 ES5 只有两种声明变量的方法:var命令和function命令。 ES6 新增了let命令和cons…

jQuery的Tab插件 Tabtastic

Tabtastic 是一个 jQuery 用来实现 Tab 窗体的插件,支持 Tab 嵌套以及动态内容加载。 下面是源文件下载:Tabtastic转载于:https://www.cnblogs.com/zhulidong/archive/2009/11/01/1593753.html

另类×××应用(三):不花一分钱,实现总部和多分支机构网络互联

[本文高清PDF版,在文章最后的附件提供下载,欢迎下载查阅] 【需求分析】(一)我们面临的问题。Freesky公司是一家在台湾和大陆都有很多分支机构的大饼油条连锁经销商,大陆总部在宁波,在宁波、温州、上…

[SDOI2017]天才黑客

传送门 Description 给出一张带边权的有向图,每个边都上都有一个字符串(给出对应Trie树上的节点),一条路径的长度为路径上的边权之和相邻两条边的字符串的lcp长度之和。 求从1到其它节点的最短路 Solution 预备部分 首先&#…

spine - unity3D(摘自博主softimagewht)

摘自&#xff1a;&#xff08;博主 http://www.cnblogs.com/softimagewht/p/4149118.html&#xff09; //skeletonDataSkeletonAnimation skeletonAnimation GetComponent<SkeletonAnimation>();Debug.Log(skeletonAnimation.name);//获取角色名Debug.Log(skeletonAnima…

Windows搜索工具 — Everything

everything 主页 &#xff1a;https://www.voidtools.com/zh-cn/ Everything&#xff1a;是 Windows 上一款搜索引擎&#xff0c;它能够基于文件名快速定文件和文件夹位置。 下载链接&#xff1a;https://www.voidtools.com/zh-cn/downloads/ —— END ——

向访客和爬虫显示不同的内容

为了提高网页的用户体验, 我们经常会做一些对搜索引擎不太友好的事情, 但某些情况下这并不是无法挽回的, 可以通过向自然人和搜索引擎机器人显示不同的内容来提供好的用户体验和 SEO. 听说本方法会触犯搜索引擎的一些操作原则, 有可能被被各搜索引擎处罚, 甚至删除网站. 所以我…

php取url后的文件名

<? $a"http://www.esyu.com.cn/images/aaa.gif"; echo substr($a,strrpos($a,"/")1); ?>

ES6 函数的扩展

ES6 函数的扩展1. 函数参数的默认值1.1 基本用法1.2 与解构赋值默认值结合使用1.3 参数默认值的位置1.4 函数的length属性2. rest参数2.1 rest参数2.2 arguments对象3. 函数的name属性4. 箭头函数1. 函数参数的默认值 1.1 基本用法 ES6之前&#xff0c;不能直接为函数的参数指…

Mycat分片规则详解

1、分片枚举 通过在配置文件中配置可能的枚举 id&#xff0c;自己配置分片&#xff0c;本规则适用于特定的场景&#xff0c;比如有些业务需要按照省份或区县来做保存&#xff0c;而全国省份区县固定的&#xff0c;这类业务使用本条规则&#xff0c;配置如下&#xff1a; <ta…

COGS 2769. mk去撸串

【题目描述】 今天 mk 去撸串 ,恰逢店里活动 ,如果吃一种串串超过记录, 可以 赠送 328, 所以 mk 想知道他吃的串串中吃的最多的种类是什么. 【输入格式】 第一行一个整数 1<n<50000; 然后有 n 行长度<100 的全部由小写字母组成的字符串;每个代表一种串串 【输出格式】…

C# 使用HttpWebRequest提交ASP.NET表单并保持Session和Cookie

由于种种原因&#xff0c;我们有时需要从互联网上抓取一些资料&#xff0c;有些页面可以直接打开&#xff0c;而有些页面必登录之后才能打开。本文介绍的是使用 HttpWebRequest 和 HttpWebResponse 自动填写提交 ASP.NET 表单并保持 Session 和 Cookie 的一个完整的例子。这里涉…

rman备份后为什么要同时备份归档日志

今天在CU上看到有人问一个问题&#xff1a;rman备份后为什么要同时备份归档日志呢&#xff0c;既然rman是物理备份&#xff0c;所有数据已经都备份&#xff0c;再次备份归档日志何用&#xff1f;思考了一下&#xff0c;认为有必要记录一下为什么要备份归档日志&#xff1a;其实…

Angular响应式表单及表单验证

1. 什么是响应式表单&#xff1f; 响应式表单提供了一种模型驱动的方式来处理表单输入&#xff0c;其中的值会随时间而变化。 响应式表单使用显示的&#xff0c;不可变的方式&#xff0c;管理表单在特定时间点上的状态。对表单状态的每一次变更都会返回一个新的状态&#xff…

void *指针的加减运算

1、手工写了一个程序验证void *指针加减运算移动几个字节&#xff1a; //本程序验证空类型指针减1移动几个字节 #include <stdio.h> int main(int argc, char *argv[]) {int a10,b20;int *pa&a;void …

ASP.NET运行原理

一个ASP.NET的应用程序是开始于IIS的. 当你请求一个包含ASP.NET应用的网址时,IIS接受到请求(IIS是WEB服务守候进程),IIS收到请求后,会根据请求者请求的主机头或者IP或者端口号来找到对应的站点. 当找到站点后,如果你请求的资源是以ASPX为结尾的WEBFORM,时,IIS会将控制权交给一…

vue 树形下拉框 亲测 好用

https://vue-treeselect.js.org/ 顺带说一个开发中使用这个组件遇到的问题&#xff0c;关于回显之后无法修改的问题 找了很长时间 原因是数据类型导致的问题&#xff0c;数组里面应该是数字类型&#xff0c;直接转数组的话里面的值都是字符串&#xff0c;所有得额外做处理了转…

通过xmanager远程连接redhat linux as 5

通过xmanager远程连接redhat linux as 5 <?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" />rhel5与rhel4不同的地方是&#xff0c;rhel5里没有/etc/X11/gdm/这个目录&#xff0c;rhel5的gdm的配置文件放在这里/usr/share/gdm/defa…