Xilinx FPGA的电源设计和实现方案

本篇主要介绍xilinx fpga的电源设计,主要包括电源种类、电压要求、功耗需求,上下电时序要求,常见的电源实现方案等。
1、电压种类及要求
随着fpga的发展,其电压类型越来越丰富,主要包括以下几种类型:
processor system电压,主要给zynq系列soc中的arm供电,包括vcc_psintfp、vcc_psintlp、vcc_psaux、vcc_psintfp_ddr、vcc_psadc、vcc_pspll、vps_mgtravcc、vps_mgtravtt、vcco_psddr、vcc_psddr_pll、vcco_psio、vcc_psbatt等;
fpga logic电压,主要给fpga逻辑部分供电,包括vccint、vccint_io、vccbram、vccaux、vcco、vccaux_io、vbatt等;
gtx transceiver电压,主要给fpga部分的gtx高速收发器供电,包括vccint_gt、vmgtavcc、vmgtavtt、vmgtvccaux、vmgtavttrcal;
system monitor电压,主要给fpga部分的adc供电,包括vccadc、vrefp;
high bandwidth memory电压,包括vcc_hbm、vcc_io_hbm、vccaux_hbm;
vcu电压,只有zynq ultrascale+ mpsoc系列带图像处理内核的器件才有,包括vccint_vcu;
rf电压,只有zynq ultrascale+ rfsoc系列才有,包括vadc_avcc、vadc_avccaux、vdac_avcc、vdac_avccaux、vdac_avtt、vccint_ams、vccsdfec;
以上各种电压的供电对象不同,对精度的要求也不一样,针对不同架构的fpga,其对电压的精度要求也不一样,其纹波范围从2%到5%不等,但整体要求都比较高,而电流要求却越来越大,比如vccint最大能到几十安。同时各种电压值不同,有的可以合并,有的却不能合并,同时还需要时序上的控制。
针对zynq ultrascale+ mpsoc(zu+ mpsoc)、zynq ultrascale+ rfsoc(zu+ rfsoc)、zynq 7000(z7)、ultrascale +(us+包括vu+和ku+)、ultrascale(us包括vu和ku)、7系列等,对每一类型电压及要求电压值、精度罗列如下表:
电压类型
zu+ mpsoc
zu+ rfsoc
z7
us+
us
7 series
logic
vccint
0.85(3%)
0.72(3%)
0.9(3%)
0.85(3%)
0.72(3%)
1.0(3%)
0.95(3%)
0.85(3%)
0.72(3%)
0.9(3%)
0.95(3%)
0.9(2.2%)ku
1.0(3%)
1.0(3%)
0.9(3%)
0.95(2%)
akv三个系列不同
vccint_io
0.85(3%)
0.9(3%)
0.85(3%)
×
0.85(3%)
0.9(3%)
0.95(3%)
0.9(2.2%)ku
1.0(3%)
×
vccbram
0.85(3%)
0.9(3%)
0.85(3%)
1.0(3%)
0.95(3%)
0.85(3%)
0.9(3%)
0.95(3%)
1.0(3%)
1.0(3%)
0.9(3%)
0.95(3%)
akv三个系列不同
vccaux
1.8(3%)
1.8(3%)
1.8(5%)
1.8(3%)
1.8(5%)
vcco






vccaux_io
1.8(3%)
1.8(3%)
1.8(5%)
2.0(3%)
1.8(3%)
1.8(5%)
2.0(3%)
a7没有
vbatt
    √



gtx
vccint_gt
×
×
×
0.85(3%)
0.9(3%)
只有vu+才有
×
×
vmgtavcc
0.9(3%)
0.9(3%)
1.0(0.97~1.08)
1.05(1.02~1.08)
0.9(3%)
1.0(3%)
1.03(3%)vu
1.0(0.97~1.08)
1.05(1.02~1.08)
vmgtavtt
1.2(3%)
1.2(3%)
1.2(2.5%)
1.2(3%)
1.2(2.5%)
1.23(2.4%)vu
1.2(2.5%)
vmgtvccaux
1.8(3%)
1.8(3%)
1.8(2.7%)
1.8(3%)
1.8(2.7%)
1.8(2.7%)
vmgtavttrcal
1.2(3%)
1.2(3%)
1.2(2.5%)
1.2(3%)
1.2(2.5%)
1.23(2.4%)vu
1.2(2.5%)
system  monitor
vccadc
1.8(3%)
1.8(3%)
1.8(5%)
1.8(3%)
1.8(5%)
vrefp
1.25(4%)
1.25(4%)
1.25(4%)
1.25(4%)
1.25(4%)
processor  system
vcc_psintfp
0.85(5%)
0.9(3%)
0.85(5%)
vcc_psint(1.0(5%))
vcc_psintlp
0.85(5%)
0.9(3%)
0.85(5%)
vcc_psaux
1.8(5%)
1.8(5%)
1.8(5%)
vcc_psintfp_ddr
0.85(5%)
0.9(3%)
0.85(5%)
×
vcc_psadc
1.8(5%)
1.8(5%)
×
vcc_pspll
1.2(3%)
1.2(3%)
1.8(5%)
vps_mgtravcc
0.85(3%)
0.85(3%)
×
vps_mgtravtt
1.8(3%)
1.8(3%)
×
vcco_psddr
ddr  i/o
ddr  i/o
ddr  i/o
vcc_psddr_pll
1.8(5%)
1.8(5%)
×
vcco_psio
mio
mio
mio
vcc_psbatt


×
hbm
vcc_hbm
      1.2(3%)vu+
vcc_io_hbm
      1.2(3%)vu+
vccaux_hbm
      2.5(3%)vu+
vcu
vccint_vcu
0.9(3%)
rf
vadc_avcc
  0.925(3%)
vadc_avccaux
  1.8(3%)
vdac_avcc
  0.925(3%)
vdac_avccaux
  1.8(3%)
vdac_avtt
  2.5(3%)
3.0(3%)
vccint_ams
  0.85(3%)
vccsdfec
  0.85(3%)
2、功耗
fpga的功耗包括所用逻辑单元数/bram数等内部资源、工作时钟频率、切换速率、布线和i/o功耗等。对于i/o功耗,影响因素包括输出类型、工作时钟频率、以及输出的信号翻转数量以及输出负载等。实际功耗取决于特定的系统设计。本部分内容主要针对fpga logic部分的功耗,而对于zynq系列,由于其操作系统不同、应用不同,无法进行详细计算,但可以通过软件进行粗略评估。
整个fpga设计的总功耗由三部分功耗组成:芯片静态功耗、设计静态功耗、设计动态功耗。
芯片静态功耗:fpga在上电完成后还未配置时的功耗,主要是晶体管的泄露电流所消耗的功耗。
设计静态功耗:当fpga配置完成后,当设计还未启动时,需要维持i/o的静态电流,时钟管理和其它部分电路的静态功耗。
设计动态功耗:fpga内设计正常启动后,设计的功耗;这部分功耗的多少主要取决于芯片所用电平,以及fpga内部逻辑和布线资源的占用情况等。
2.1、待机功耗(芯片静态功耗)
由于漏电流的存在,器件在待机时也会消耗能量。待机功耗随芯片die的大小、温度以及工艺的变化而变化。可以利用器件特征参数来模拟待机功耗,并定义为两类:典型功耗和最大功耗。
2.2、io功耗(设计静态功耗)
i/o功耗是vcco功耗,主要来自器件输出引脚连接的外部负载电容、阻抗模式输出驱动电路以及外部匹配网络(如果有)的充放电电流。
如前所述,fpga内部要实际消耗一部分vcco功耗,外部匹配电阻网络以及输出电容负载消耗了另一部分能量。设计人员在规划散热方案时,应考虑vcco的内部功耗。作为vcco电源输出功率的一部分,设计人员也应考虑外部功耗的组成。
2.3、动态功耗(设计动态功耗)
内部节点改变逻辑状态时(例如,从逻辑0变到逻辑1)会形成器件内部动态功耗,因为它需要能量对逻辑阵列和互联网络的内部电容进行充放电。内核动态功耗包括逻辑单元功耗和导线功耗。le功耗来自内部节点电容充放电以及内部电阻单元的电流损耗。导线功耗来自每个le驱动外部导线电容时的充放电电流。内核动态功耗主要来自以下结构单元:
lut
ram模块
dsp slice
锁相环(pll)
时钟树网络
gtx收发器
ip使用情况
io使用情况
2.4、功耗设计
前两部分的功耗取决于fpga芯片及硬件设计本身,很难有较大的改善。可以优化的是第3部分功耗:设计动态功耗,这部分功耗占总功耗的90%以上,因此降低设计动态功耗是降低整个系统功耗的关键因素。
tjmax》θja*pd+ta
其中tjmax表示fpga芯片的最高结温(maximum junction temperature);θja表示fpga与周围大气环境的结区热阻抗(junction to ambient thermalresistance),单位是℃/w;pd表示fpga总功耗(power dissipation),单位是w;ta表示周围环境温度。
以xc7k325t-2ffg900i系列芯片为例,θja=9.7℃/w,在ta=55℃的环境中,想要结温tjmax不超过100°c的情况下,可以推算fpga的总功耗为:
pd《(tjmax-ta)/θja=(100-55)/9.7=4.639w
因此实际功耗只要超过此值就需要进行优化处理,优化处理的方法主要有两种:一是降低θja:热阻抗取决于芯片与环境的热传导效率,可通过加散热片或者风扇减小热阻抗;二是减小pd:通过优化fpga设计,降低总功耗。下面就针对这两部分进行介绍。
2.4.1、降低θja
此部分详见之前的文章《可靠性设计之热设计》。
2.4.1、减小pd
2.4.1.1、功耗估计
xilinx fpga的功耗评估常见的有几种方案:xilinx自己的xpe(可以在xilinx官网上下载到:http://www.xilinx.com/power,它是一个基于excel的工具)、ti的webench(貌似只有fpga部分,没有arm部分)、vivado软件、开发板实测评估等,这几种方案都可以根据自己的外设进行定制,方便灵活。
在低功耗设计之前,需要先进行功耗评估。xpe主要是在项目初期,处于系统设计,rtl代码并未完善阶段功耗估计时使用。在设计完成综合实现后,则可以使用vivado自带的功耗分析工具进行精确计算功耗。打开综合实现后的设计,点击report power即可得到功耗分析的结果。
此部分可以参见之前的文章《zynq ultrascale+系列之“电源”》。
2.4.1.2、功耗优化
关于fpga低功耗设计,可从两方面着手:一是算法优化;二是fpga资源使用效率优化。
算法优化
算法优化可分为两个层次说明:实现结构和实现方法。首先肯定需要设计一种最优化的算法实现结构,设计一种最优化的结构,使资源占用达到最少,当然功耗也能降到最低,但是还需要保证性能,使fpga设计在面积和速度上都能兼顾。比如在选择采用流水线结构还是状态机结构时,流水线结构同一时间所有的状态都在持续工作,而状态机结构只有一个状态是使能的,显而易见流水线结构的功耗更多,但其数据吞吐率和系统性能更优,因此需要合理选其一,使系统能在面积和速度之间得到平衡。
另一个层面是具体的实现方法,设计中所有吸收功耗的信号当中,时钟是罪魁祸首。虽然时钟可能运行在100mhz,但从该时钟派生出的信号却通常运行在主时钟频率的较小分量(比如12%~15%)。此外,时钟的扇出一般也比较高。这两个因素显示,为了降低功耗,应当认真研究时钟。首先,如果设计的某个部分可以处于非活动状态,则可以考虑禁止时钟树翻转,而不是使用时钟使能。时钟使能将阻止寄存器不必要的翻转,但时钟树仍然会翻转,消耗功率。其次,隔离时钟以使用最少数量的信号区。不使用的时钟树信号区不会翻转,从而减轻该时钟网络的负载。
资源使用效率优化
资源使用效率优化是使用fpga内部的一些资源(如bram,dsp slice)时,可以优化功耗的方法。fpga动态功耗主要体现为存储器、内部逻辑、时钟、i/o等的功耗。
其中存储器是功耗大户,如xilinx fpga中的存储器单元block ram,因此主要介绍对bram的一些功耗优化方法。
下图中虽然bram只使用了7%,但是其功耗0.614w占了总设计的42%,因此优化bram的功耗能有效地减小fpga的动态功耗。
下面介绍一下优化bram功耗的方法:
使用“no change”模式:在bram配置成true dual port时,需要选择端口的操作模式:“write first”,“read first” or “no change”,避免读操作和写操作产生冲突,如图6所示;其中“no change”表示bram不添加额外的逻辑防止读写冲突,因此能减少功耗,但是设计者需要保证程序运行时不会发生读写冲突。
设置成“no change”后bram的功耗从0.614w降到了0.599w,因为只使用了7%的bram,如果设计中使用了大量的bram,效果能更加明显。
控制“en”信号:bram的端口中有clock enable信号,在端口设置中可以将其使能,模块例化时将其与读/写信号连接在一起,如此优化可以使bram在没有读/写操作时停止工作,节省不必要的功耗。
控制“en”信号优化后bram功耗降到了0.589w。
拼深度:当设计中使用了大量的存储器时,需要多块bram拼接而成,如需要深度32k,宽度32-bit,32k*32bit的存储量,但是单块bram如何配置是个问题。7 series fpga中是36kb 的bram,其中一般使用32kb容量,因此可以配置成32k*1-bit或者1k*32-bit,多块bram拼接时,下图中前者是“拼宽度”,后者是“拼深度”。两种结构在工作时,“拼宽度”结构所有的bram需要同时进行读写操作;而“拼深度”结构只需要其中一块bram进行读写,因此在需要低功耗的情况下采用“拼深度”结构。但需要特别注意的是:“拼深度”结构需要额外的数据选择逻辑,增加了逻辑层数,为了降低功耗即牺牲了面积又牺牲了性能。
3、上下电时序
3.1、上电时序
fpga通常需要多路供电电压,并且要求一定的上电/断电顺序。顺序上电有助于限制上电期间的浪涌电流。如果忽视器件的供电顺序要求,可能导致器件损坏或闩锁,造成fpga器件故障。有三种类型的上电时序:同步跟踪、顺序跟踪和比率跟踪。
针对各个系列的fpga芯片,其内部各功能模块的上电时序一般是相互独立的,各个功能模块内部是有先后顺序的要求。详细可参看各个器件的data sheet,其中会有详细的先后顺序约束。
3.2、上升单调性
启动过程中,电源电压保持单调爬升非常重要,只有这样才能确保器件成功开启。一般的fpga给出了严格的电压单调上升要求,即电源电压应该连续上升至所设置的稳压值,中间不应发生跌落。如果电源不能提供足够的输出功率,则会造成跌落。
3.3、上电时间
大多数fpga规定了启动电压上升速率的最小值和最大值,电源通过在启动过程中逐渐增大限流值实现软启动。软启动减缓了电源电压的上升速率,也降低了注入fpga的峰值浪涌电流。一般的电源可利用连接在引脚的软启动电容设置软启动时间。
3.4、掉电时序
断电时序也是需要控制的,标准的时序是把上电时序倒过来。
3.5、特殊情况的时序控制
经常会有fpga和arm等其他cpu互连的情况,为了不损坏器件,此时fpga和arm的上电时序既要满足自身的上电时序要求,也要满足对方的上电时序要求,这种情况可以进行如下处理:
当fpga和arm各自使用自己的配置文件时:由于arm处于复位状态时io为输入状态,而fpga需要完成配置后才能确定其io的状态,因此arm和fpga可以各自进行各自的上电时序,当arm的上电时序完成后处于复位状态,这样io为输入状态,当fpga上电完成后进行配置,配置完成后给arm一个配置完成信号,此信号去释放arm的复位,设置对应的io状态,就不会出现io冲突了,也不会影响fpga启动时序,也不会导致fpga接口出现闩锁效应。
当fpga是使用arm给配置文件时,不会出现io冲突的情况,因为fpga释放复位,进行配置之前,io是高阻态,fpga没有配置文件,不会去设置io状态。
4、电源方案
目前针对fpga的常用电源解决方法包括使用单路ldo、单路dc/dc、单颗power module、pmic等。
4.1、ldo
如果电路板空间有保证,低输出噪声很重要,或者系统要求对输入和瞬态现象快速响应,就应该采用ldo。ldo提供了中低输出电流。输入电容通常会切断输入至ldo的阻抗和噪声。ldo还要求在输出端有一个电容器,以处理系统瞬态响应并提供稳定性。
4.2、smps
当设计效率非常关键且系统要求大输出电流时,开关电源具有优势。开关电源提供比ldo更高的效率,但其开关特性使其对噪声更敏感。与ldo不同,开关电源需要使用电感器,而且可能需要变压器进行dc-dc转换,对pcb空间需求较大。
4.3、power module
power module可以省去自己搭建外围电路,且厂家设计的模块一般比自己设计的性能会更好(效率更高、纹波更小),但电源模块一般是在电流需求比较大的情况下会选择。
4.4、pmic
由于fpga的广泛应用,目前针对fpga的专用pmic越来越多,从输出电压、通道数、输出电流等方面都能很好的满足特定fpga芯片的需求,同时pcb占用面积、设计便捷性、价格等方面都比较有优势。zu+ mpsoc系列可参见之前的文章《zynq ultrascale+系列之“电源”》,其他系列类似,详细可以参见ti、infineon、adi(含凌特)等厂家官网,有相关fpga系列芯片对应的解决方案。
以上就是针对xilinx fpga的电源介绍,主要包括了电源的种类、电压要求、功耗分析、上下电时序、电源实现方式等。


Nor Flash编程和擦除操作的详细流程
基于区块链平行世界的可信跨链平台衔梯网络介绍
全球家电的主导者是谁?中国家电称霸全球市场的那一天什么时候到来?
全球首个无内燃机驱动设备的码头,真正无污染零排放的绿色环保“魔鬼码头”
ADI:解读中国制造“二次创新”
Xilinx FPGA的电源设计和实现方案
抢抓未来产业机遇,昆山市与亮风台签约工业元宇宙重点项目
RT-Thread Smart qemu-virt64-riscv用户态userapps的编译与运行
分析Intel的傲腾存储技术,或将改变PC理论架构
莱迪思半导体不断加强适用于低功耗、小尺寸FPGA的设计工具套件
VDSL2技术标准简介
5分钟弄懂!MOS管及简单CMOS逻辑电平电路
交流促进技术革新,鼎阳科技携产品及解决方案亮相EDTEST2019
优胜劣汰下,中国芯片产业即将崛起
几种测量大尺寸设备的精密仪器
不算完? 魅族大年三十要搞事情了
DHL趋势报告:人工智能驱动的计算机视觉技术正对行业产生重要影响
中国有自己的手机芯片吗
L298N模块介绍
ZMDI推出用于锂离子电池的充电器ZSPM4551