FPGA电源设计心得
一、FPGA使用的电源类型
FPGA电源要求输出电压范围从1.2V到5V,输出电流范围从数十毫安到数安培。可用三种电源:低压差(LDO)线性稳压器、开关式DC-DC稳压器和开关式电源模块。最终选择何种电源取决于系统、系统预算和上市时间要求。
如果电路板空间是首要考虑因素,低输出噪声十分重要,或者系统要求对输入电压变化和负载瞬变做出快速响应,则应使用LDO稳压器。LDO功效比较低(因为是线性稳压器),只能提供中低输出电流。输入电容通常可以降低LDO输入端的电感和噪声。LDO输出端也需要电容,用来处理系统瞬变,并保持系统稳定性。也可以使用双输出LDO,同时为VCCINT和VCCO供电。
如果在设计中效率至关重要,并且系统要求高输出电流,则开关式稳压器占优势。开关电源的功效比高于LDO,但其开关电路会增加输出噪声。与LDO不同,开关式稳压器需利用电感来实现DC-DC转换。
二、FPGA的特殊电源要求
为确保正确上电,内核电压VCCINT的缓升时间必须在制造商规定的范围内。对于一些FPGA,由于VCCINT会在晶体管阈值导通前停留更多时间,因此过长的缓升时间可能会导致启动电流持续较长时间。如果电源向FPGA提供大电流,则较长的上电缓升时间会引起热应力。ADI公司的DC-DC稳压器提供可调软启动,缓升时间可以通过外部电容进行控制。缓升时间典型值在20ms至100ms范围内。
许多FPGA没有时序控制要求,因此VCCINT、VCCO和VCCAUX可以同时上电。如果这一点无法实现,上电电流可以稍高。时序要求依具体FPGA而异。对于一些FPGA,必须同时给VCCINT和VCCO供电。对于另一些FPGA,这些电源可按任何顺序接通。多数情况下,先给VCCINT后给VCCO供电是一种较好的做法。
当VCCINT在0.6V至0.8V范围内时,某些FPGA系列会产生上电涌入电流。在此期间,电源转换器持续供电。这种应用中,因为器件需通过降低输出电压来限制电流,所以不推荐使用返送电流限制。但在限流电源解决方案中,一旦限流电源所供电的电路电流超过设定的额定电流,电源就会将该电流限制在额定值以下。
三、FPGA配电结构
1.集中式电源结构
对于高速、高密度FPGA器件,保持良好的信号完整性对于实现可靠、可重复的设计十分关键。适当的电源旁路和去耦可以改善整体信号完整性。如果去耦不充分,逻辑转换将会影响电源和地电压,导致器件工作不正常。此外,采用分布式电源结构也是一种主要解决方案,给FPGA供电时可以将电源电压偏移降至最低。
在传统电源结构中,AC/DC或DC/DC转换器位于一个地方,并提供多 个输出电压,在整个系统内分配。这种设计称为集中式电源结构 (CPA),见图1。以高电流分配低电压时,铜线或PCB轨道会产生严重的电阻损耗,CPA就会发生问题。
图1 集中式电源结构
2.分布式电源结构
CPA的替代方案是分布式电源结构(DPA),见图2。采用DPA时,整个系统内仅分配一个半稳压的DC电压,各DC/DC转换器(线性或开关式)与各负载相邻。DPA中,DC/DC转换器与负载(例如FPGA)之间的距离近得多,因而线路电阻和配线电感引起的电压下降得以减小。这种为负载提供本地电源的方法称为负载点(POL)。
图2 分布式电源结构
四、FPGA的管脚介绍
FPGA引脚分为两类:专用引脚和用户自定义引脚;
专用引脚大概占FPGA引脚数的20%~30%,也就是说其硬件编码都是为了实现专用功能而编写的。
而专用引脚又分为以下3个子类:
电源引脚:接地或阳极引脚(内核或IO)。
配置引脚:用来“下载”FPGA。
专用输入或时钟引脚:它们能驱动FPGA内部的大网线,适合于带有大输出端口(fanout)的时钟和信号。
其它的引脚就是用户引脚了。
1.用户引脚
FPGA的大部分引脚属于“用户引脚”(比如所谓的“IOs",或者"I/Os",或"用户I/Os",或"用户IOs”,或"IO引脚",或……自己理解)。IO代表“输入-输出”。
注意:
用户可以完全自定制用户IO。它们可以被编程作为输入,输出或双向IO(三向缓冲)。每个“IO引脚”被连接$到FPGA内部的IO单元上。这个“IO单元”通过VCCIO(IO加电引脚)引脚来上电。
2.IO簇
通常每个FPGA有很多VCCIO引脚(IO Power pins),都被加同样的电压。但是新一代的FPGA引入了“用户IO组”。可以把IO分为不同的组,每组加各自的电压。这就使FPGA可以用作一个变压转换器了,比如对于开发板部分工作于3.3v,部分工作于2.5v的很有用。(比如cyclone III系列的接DDR2要1.8V的电压)
3.FPGA电源
FPGA通常需要两个电压才能运行:一个是“核心电压”,另一个是“IO电压”。每个电压通过独立的电源引脚来提供。
内核电压(这里简称VCCINT)是用来给FPGA内部的逻辑门和触发器上的电压。该电压随着FPGA的发展从5v、3.3v、2.5v、1.8v、1.5v变的越来越低。核心电压是固定的。(根据所用FPGA的模式来确定)。IO电压(简称VCCIO)是用于FPGA的IO模块(同IO引脚)上的电压。该电压应该与其它连接到FPGA上的器件的电压匹配。
实际上,FPGA器件本身是允许VCCINT和VCCIO相同的(比如VCCINT和VCCIO两种引脚可以被连接在一起)。但是FPGA设计是面向低电压内核和高电压IO的,所以两种电压一般是不相同的。
命名
内部电压Xilinx简称VCC,Altera简称VCCINT;IO电压Xilinx简称VCCO,而Altera简称VCCIO。
五、FPGA功耗分析
外部电源为 FPGA 或者 CPLD 内部和外部正常工作提供电能源。实施电源方案时,设计人员应该明确知道这些供电电源 ( 也称为“轨式电源” ) 的总功率。而且,和器件外部消耗的总功率相比,设计人员还需要考虑器件内部实际消耗的总功率 ( 称为“热功率”或者“耗散功率” ) ,例如,外部输出电容负载和平衡电阻匹配网络的功耗。
器件、输出负载、外部匹配网络 ( 如果有 ) 的总功耗通常包括以下几部分:
待机功耗
动态功耗
I/O功耗
待机功耗来自器件待机模式下的 ICCINT 电流。内核动态功耗来自器件内部开关 ( 内部节点电容冲放电 )。 I/O 功耗来自外部开关 ( 和器件引脚连接的外部负载电容冲放电 )、 I/O 驱动和外部匹配网络 ( 如果有 ) 。
热功耗是器件封装内部实际消耗总功率的一部分,其余部分在外部耗散掉。设计人员在确定器件本身热传导能力 ( 称为热阻 ) 能否满足内部管芯结温正常工作要求时,或者需要铝热沉等其他散热方案来实现更好的热传导性能时,应该考虑器件内部的实际热功耗。一般而言,待机功耗、动态功耗以及部分 I/O功耗组成了总功耗中的实际热功耗。
1.待机功耗
由于泄漏电流的存在,器件在待机时也会消耗能量。待机功耗随管芯大小、温度以及工艺的变化而变化。可以利用器件特征参数来模拟待机功耗,并定义为两类:典型功耗和最大功耗。
Stratix® II 器件使用 90 nm 工艺技术,对功耗和性能进行了优化。和前一工艺技术的器件相比,90 nm 器件由于泄漏导致静态功耗增大,对总功耗有很大的影响。 90 nm 工艺节点的待机功耗比以前的工艺技术更依赖于管芯结温。设计人员应重视降低结温,以便降低总功耗的待机功耗。下面的图 1 是待机功耗和结温的关系。
图1. 待机功耗和结温的关系
2.动态功耗
内部节点改变逻辑状态时会消耗器件内部动态功耗,因为它需要能量对逻辑阵列和互联网络的内部电容进行冲放电 ( 例如,从逻辑 0 变到逻辑 1) 。内核动态功耗包括导线功耗和逻辑单元 (LE) 功耗 ( 或者 Stratix II 的自适应逻辑模块 (ALM))。 LE/ALM 功耗来自内部节点电容冲放电以及内部电阻单元的电流。导线功耗来自每个 LE/ALM 驱动外部导线电容时的冲放电电流。内核动态功耗主要来自以下结构单元:
RAM 模块 (M512、 M4K 和 M-RAM)
DSP 乘法器模块
锁相环 (PLL)
时钟树网络
高速差分接口 (HSDI) 收发器
上面列出的每个单元结构总电流之和与 VCCINT (Stratix II 为 1.2V) 相乘得到动态总功耗:
动态功耗 = VCCINT × Σ ICCINT (LE/ALM, RAM, DSP, PLL, Clocks, HSDI, 导线 )
得到多个电容之和后,采用等价 ( 集总 ) 电容值计算动态功耗。例如,信号驱动输入或者输出时,对引脚、走线和封装电容求和。如果明确了内部开关频率,这一近似方法是足够的。 Altera 利用近似曲线 ( 基于特征数据 ) 来确定内部开关频率,有效地估算大部分设计拓扑的动态功耗。估算器件资源的总功耗时,应考虑资源的最大开关频率、估算的触发因子、下游逻辑扇出,以及通过器件特征参数获得的资源系数等。 Altera 的 PowerPlay 功耗分析和优化工具包考虑了所有这些因素进行功耗估算和分析。
3、IO功耗
I/O 功耗是 VCCIO 功耗,主要来自器件输出引脚连接的外部负载电容、阻抗模式输出驱动电路以及外部匹配网络 (如果有) 的冲放电电流。器件 I/O 功耗按下式计算:
I/O power功耗
= (有源输出驱动数 × 功耗系数) +0.5 × (管芯、封装走线、引脚和输出负载电容之和) ×I/O 标准电压摆幅 × fMAX × (触发因子/100) × VCCIO
有源输出驱动数包括有源双向输出。除了上面计算的 I/O 功耗,还有其他因素影响 I/O 功耗,包括同时由 VCCIO 供电的 I/O 缓冲单元。下面的图 2 是 I/O 缓冲模型。
图2. I/O缓冲模型
如前所述, FPGA 或者 CPLD 内部要实际消耗一部分 VCCIO 功耗,外部匹配电阻网络以及输出电容负载消耗了另一部分能量。设计人员在规划散热管理方案时,应考虑 VCCIO 的内部功耗 ( 器件本身或者通过外部热沉) 。作为 VCCIO 电压稳压器和转换器 ( 指轨式电源 ) 输出功率的一部分,设计人员应考虑外部功率组成。
4.其他功耗要求
设计 FPGA 和CPLD 时,设计人员还应该考虑和总功耗有关的其他几个因素:浪涌电流、配置功耗以及 VCCPD( 仅对Stratix II) 。
4.1 浪涌电流
浪涌电流是器件初始化上电时的电流。在上电阶段,必须为器件提供最低逻辑阵列电流 (ICCINT) ,并维持一段时间。这一持续时间取决于电源提供的电流大小。如果电流较大, VCCINT 能够迅速上升。当电压达到额定值的 90%时,一般不再需要最初的大电流。最大浪涌电流和器件温度成反比。随着器件温度的提高,上电浪涌电流下降 ( 而待机电流会随着温度提高而增大 ) 。
4.2 配置功耗
对于普通的 FPGA ,配置功耗是配置器件时消耗的能量。在配置和初始化阶段,器件需要能量来复位寄存器,使能 I/O 引脚,进入工作模式。上电阶段, I/O 引脚在配置前以及配置期间为三态,以降低功耗,防止在这段时间驱动输出。
FPGA电源设计心得相关推荐
- 使用Intel的FPGA电源设计FPGA 供电的常用反馈电阻阻值
使用Intel的FPGA电源设计FPGA 供电的常用反馈电阻阻值. 当前仅总结使用EN5339芯片的方案 Vout = Ra*0.6/Rb + 0.6 芯片手册推荐Ra取348K,则 3.3V时,取R ...
- FPGA设计心得(4)Aurora IP core 的定制详情记录
文章目录 写在前面 IP核定制页面预览 IP核定制详解 lane width Line Rate GT REFCLK (MHz) INIT clk (MHz) DRP clk (MHz) Datafl ...
- Xilinx的FPGA硬件设计一——电源篇
FPGA最小系统说白了就是设计一个最小系统,其可以作为日后一系列产品的基础,一是可以加快开发流程,二是可以降低开发难度,本次选用的芯片是Xilinx(赛灵思)的7系列(ARTIX)的FPGA. FPG ...
- FPGA设计心得(6)Aurora IP核例子简析与仿真(framing版)
文章目录 背景 定制framing接口的IP核 生成示例工程并分析 GEN模块分析 CHECK模块分析 示例工程仿真 总体仿真 发送模块仿真 接收模块仿真 参考资料 交个朋友 写在最后 工程分享 背景 ...
- FPGA逻辑设计回顾(11)FPGA以及PC中的RAM与ROM
文章目录 前言 RAM以及ROM在计算机中的应用 什么是存储器? 什么是硬盘驱动器? 其他类型的存储器 什么是RAM? RAM的类型 SRAM DRAM 什么是ROM? ROM的类型 掩膜ROM PR ...
- FPGA逻辑设计回顾(3)多比特信号上升沿检测的设计方式与陷阱?
前言 注:本文首发自FPGA逻辑设计回顾(3)多比特信号上升沿检测的设计方式与陷阱? 在总结本文最后的多比特上升沿检测之前,我们先把备用知识讲清楚,摊开来,以免造成模糊不清的默许! 逻辑运算符与位元运 ...
- buck变换器设计matlab_2.5V/2A 高质量电源设计
本文是 21Dianyuan 社区原创技术文章,作者老余,感谢作者的辛苦付出. 一.题目要求 ▶基本指标: 1.输入电压 12V, 输出电压 2.5V,持续输出电流能力不小于 2A: 2.整版使用电容 ...
- 瓷片电容、钽电容、电解电容区别---电源设计中的去耦电容应用实例
瓷片电容.钽电容.电解电容区别---电源设计中的去耦电容应用实例 转自:张飞实战电子 电源往往是我们在电路设计过程中最容易忽略的环节.其实,作为一款优秀的设计,电源设计应当是很重要的,它很大程度影响了 ...
- FPGA电源设计方案
FPGA需要3.3V.2.5V和1.2V 方案1:选用LINEAR:LT1083/84/85 LDO(低压差线性稳压器) LT1083:output current 7.5A LT1084:outpu ...
最新文章
- Python第三方包的egg info 是什么东西
- 【Java 虚拟机原理】垃圾回收算法 ( Java 虚拟机内存分区 | 垃圾回收机制 | 引用计数器算法 | 引用计数循环引用弊端 )
- openresty获取nginx请求头信息
- 树莓派 python_树莓派笔记08—Python流水灯
- 金色金箔高品质纹理素材,将在你的下一个设计项目中被使用。
- Numpy——numpy属性
- 关于不执行整个大项目而是执行其中一部分独立文件夹的时候的python运行方法...
- Linux tty远程退出,screen 如果程序没结束就退出远程管理终端
- MLDN出品JAVA风暴终极的java学习视频
- 名字打架小游戏 java_闲暇极品MD5 能用名字打架的小游戏
- Python写的网络爬虫程序
- 清理windows10系统垃圾文件 bat批处理命令(进阶版)
- C语言sin定积分,C语言实现黎曼和求定积分
- 驾驶证北京到期满换证 异地期满换领 异地驾驶证到期在北京换证 驾驶证异地换证
- 学计算机科学与技术的考研方向,计算机科学与技术考研方向?
- 技嘉主板前置面板没有声音的解决
- 股市中的马太效应带给我们什么股票道理?
- spring中<tx:annotation-driven>标签转为注解@EnableTransactionManagement
- 在职研究生(多重继承)
- mdadm 创建md 删除md步骤
热门文章
- STM32实例——基于STM32开发板实现传感数据采集-DHT11温湿度采集
- javascript实用例子大全!
- 空压机安全阀行业现状调研及趋势分析报告
- 百度盘登录时出现网络异常1的解决方法
- validform 的ajax验证,表单验证插件Validform使用笔记
- VMware下对Ubuntu进行扩充磁盘大小
- cbs app for android,CBSSportsv5.7.0
- wsl2-kali基础配置(换源、切换中文、安装完整版、包含无法打开Windows商店的情况下安装wsl等)
- 【项目实战】Python基于GARCH模型进行预测特斯拉股票,以及评估金融资产的风险
- 关于offsetTop的误解