管脚是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

FPGA研发之道(25)-管脚的更多相关文章

  1. Altera FPGA中的pin进一步说明

    最近END china上的大神阿昏豆发表了博文 <FPGA研发之道(25)-管脚>,刚好今天拿到了新书<深入理解Altera FPGA应用设计>第一章开篇就讲pin.这里就两者 ...

  2. FPGA的嵌入式RAM

    FPGA中的嵌入式RAM分为两种:专用的BRAM和分布是RAM(用LUT实现的).这两种RAM又可以配置成单端口和双端口的RAM和ROM.双端口RAM又可以根据读写地址是否在同一块分为Double P ...

  3. 了解FPGA市场现状和未来趋势

    转, 来源: http://www.sohu.com/a/204640373_740053 可编程的“万能芯片” FPGA——现场可编程门阵列,是指一切通过软件手段更改.配置器件内部连接结构和逻辑单元 ...

  4. (转)小心FPGA的JTAG口(上电和下电顺序)

    同志们,根据ALTERA官方FAE(现场应用工程师)的强烈建议,请注意不要随意带电插拔你的JTAG下载接口,否则会损坏FPGA芯片的JTAG口信号管脚.现象:在排除了下载线的问题后,还是不能访问FPG ...

  5. 第一个FPGA工程----点亮开发板上的3个LED灯

    第一个FPGA工程----点亮开发板上的3个LED灯 1.新建FPGA工程 开启Quartus2的画面 File--New Project Wizard..指定工程的路径与工程名 指定所使用的FPGA ...

  6. 树莓派wiringPi,BCM,BOARD编码对应管脚

    wiringPi,BCM,BOARD编码 由于上课需要, 嵌入式学习从树莓派开始 树莓派中执行: $> gpio readall 即可得到关于树莓派管脚的各种信息 上面的图可能不是特别清楚, 可 ...

  7. Lattice并购案和我国FPGA发展道路

    引用 http://www.cnblogs.com/alifpga/p/9292588.html FPGA作为通信.航天.军工等领域的关键核心器件,是保障国家战略安全的重要支撑基础.近年来,随着数字化 ...

  8. Lattice并购案&我国FPGA发展路径

    FPGA作为通信.航天.军工等领域的关键核心器件,是保障国家战略安全的重要支撑基础.近年来,随着数字化.网络化和智能化的发展,FPGA的应用领域得到快速扩张.美国在FPGA领域拥有绝对的垄断优势,已成 ...

  9. 如何理解IPD+CMMI+Scrum一体化研发管理解决方案之CMMI篇

    如何快速响应市场的变化,如何推出更有竞争力的产品,如何在竞争中脱颖而出,是国内研发企业普遍面临的核心问题,为了解决这些问题,越来越多的企业开始重视创新与研发管理,加强研发过程的规范化,集成产品开发(I ...

随机推荐

  1. Column 1 of table 'xxx' cannot be converted from type 'varchar(33)' to type 'varchar(11)'

    mysql主从同步失败.错误日志如下. Column 1 of table 'xxx' cannot be converted from type 'varchar(33)' to type 'var ...

  2. 【动态规划】bzoj1633 [Usaco2007 Feb]The Cow Lexicon 牛的词典

    f[i]=min{f[i+1]+1,f[i+len[j]+cant]+cant}(for i=L-1 downto 0)(1<=j<=w) #include<cstdio> # ...

  3. Android 架构 3.实现

    以实现最小化可用产品(MVP)的目标,用最简单的方式来搭建架构和实现代码.IDE采用Android Studio,Demo实现的功能为用户注册.登录和展示一个券列表,数据采用我们现有项目的测试数据,接 ...

  4. python可变的参数列表

    一般的计算机语言中参数的个数是不能改变的,但是在python中实参的个数是可以改变的.主要是通过形参中的*arg和**arg来实现的,使用可变参数必须遵守下面规则: 1.位置参数必须出现在这*arg参 ...

  5. easyui中一键清空搜索栏搜索条件的思路

    $.fn.clearAllSearchPanel = function () { var $id = $(this); $id.find(".form-control").each ...

  6. 网络采集软件核心技术剖析系列(6)---将任意博主的全部博文下载到SQLite数据库中并通过Webbrower显示(将之前的内容综合到一起)

    一 本系列随笔目录及本节代码下载 自己开发的豆约翰博客备份专家软件工具问世3年多以来,深受广大博客写作和阅读爱好者的喜爱.同时也不乏一些技术爱好者咨询我,这个软件里面各种实用的功能是如何实现的. 该软 ...

  7. 【spring data jpa】spring data jpa 中的update 更新字段,如果原字段值为null不处理,不为null则在原来的值上加一段字符串

    示例代码: /** * 如果barCode字段值为null则不处理 * 如果barCode字段值不为null则在原本值的前面拼接 del: * @param dealer * @return */ @ ...

  8. Linq 简明教程

    一个简单的实例 static void Main(string[] args) { string[] names = { "Alonso", "Zheng", ...

  9. iOS:创建静态库及其使用

    本篇来自转载,原创链接为:http://my.oschina.net/leejan97/blog/284193 摘要: 静态库文件可以有效的将功能封装和细节隐藏  ios 静态库 static lib ...

  10. pgmagick,pil不保存图片并且获取图片二进制数据记录

    PIL和pgmagick都是python中图像处理的库,只不过PIL功能更强大 pgmagick和PIL中对数据进行调整后经常需要调用write或者save方法保存图片,然后在读取图片的内容,这样很麻 ...