ZYNQ芯片的电源分PS系统部分和PL逻辑部分,两部分的电源分别是独立工作。PS系统部分的电源和PL逻辑部分的电源都有上电顺序,不正常的上电顺序可能会导致ARM系统和FPGA系统无法正常工作。
PS部分的电源有VCCPINT、VCCPAUX、VCCPLL和PS VCCO。
VCCPINT为PS内核供电引脚,接0.85V;
VCCPAUX为PS系统辅助供电引脚,接1.8V;
VCCPADC为PS ADC供电;
VCCPLL为PS的内部时钟PLL的电源供电引脚,也接1.2V;
MGTRAVCC 0V85V
PS VCCO为BANK的电压,包含VCCO_MIO0,VCCO_MIO1和VCCO_DDR,根据连接的外设不同,连接的电源电源也会不同,VCC_MIO0连接3.3V,VCCO_MIO1连接1.8V,VCCO_DDR连接1.5V。PS系统要求上电顺序分别为先VCCPINT供电,然后VCCPAUX和VCCPLL,最后为PS VCCO。断电的顺序则相反。
PL部分的电源有VCCINT, VCCBRAM, VCCAUX和 VCCO。
VCCPINT为FPGA内核供电引脚,接0.85V;
VCCBRAM为FPGA Block RAM的供电引脚;接0.85V;
VCCAUX为FPGA辅助供电引脚, 接1.8V;
VCCO为PL的各个BANK的电压,包含BANK13,BANK34,BANK35,BANK的电压连接3.3V。PL系统要求上电顺序分别为先VCCINT供电,再是
VCCBRAM, 然后是VCCAUX,最后为VCCO。如果VCCINT和VCCBRAM的电压一样,可以同时上电。断电的顺序则相反。
VCCINT
VCCINT是FPGA芯片的内核电压,是用来给FPGA内部的逻辑门和触发器上的电压。即芯片的晶体管开关是有核心电压提供。当内部逻辑工作时钟速率越高,使用逻辑资源越多,则核心电压供电电流会更大,可高达几安,此时芯片必然会发烫,需要散热装置辅助散热
VCCIO
VCCIO(有些地方也记为VCCO)是用于FPGA驱动IO模块(同IO引脚)的电压。该电压应该与其它连接到FPGA上的器件的电压匹配,因为FPGA经常要与多种不同电平接口的芯片通信,所以都会支持非常多的电平标准,这也是它的灵活性表现。FPGA为了能和多种不同的电平标准接口芯片通信,Vccio通常以Bank为界,相互之间是独立的,即一个Bank块只能存在一种IO电压。一颗FPGA芯片具有多个Bank块,每个Bnak可以与一种电平接口芯片通信,如Bank34与3.3V的MCU通信,Bank35与2.5V的DDR芯片通信。需要注意的VCCO里面分为HR bank电压和HP bank电压,其中HR bank电压一般为3.3V设计,但是遇到网络接口时一般设计为2.5V;HP为高速bank,常常用于ddr设计,电压为1.5V
FPGA通常需要两个电压才能运行:一个是“内核电压”,另一个是“IO电压”。每个电压通过独立的电源引脚来提供。实际上,FPGA器件本身是允许VCCINT和VCCIO相同的(比如VCCINT和VCCIO两种引脚可以被连接在一起)。但是FPGA设计是面向低电压内核和高电压IO的,所以两种电压一般是不相同的。
VCCAUX
FPGA并非一个单纯的数字逻辑芯片,内部也带有一些模拟组件,比如Xilinx的DCM数字时钟管理组件、高档点的FPGA还有高速串并转换器serdes、温度监控器件等这些模拟器件,这些模拟器件对电源噪声要求很高,所以需要一个独立稳定的电源进行供电。Vccaux就是为这些模拟器件提供电压,另外Vccaux还可以给部分IO供电,像JTAG等。
VCCBRAM
内部Block RAM的供电电压。其不损坏FPGA器件的范围为-0.5V1.1V。对于-2和-1的spartan7系列,正常工作电压为0.95V1.05V,推荐工作电压为1.00V。对于 -1L的spartan7系列,正常工作电压为0.92V~0.98V,推荐工作电压为0.95V。
VMGTAVCC
GTP收发器核心电压。其不损坏FPGA器件的范围为-0.5V1.1V。正常工作电压为0.97V1.03V。推荐工作电压为1.00V。(xilinx的FPGA芯片)
VMGTAVTT
GTP收发器终端匹配电压。其不损坏FPGA器件的范围为-0.5V1.32V。正常工作电压为1.17V1.23V。推荐工作电压为1.20V。(xilinx的FPGA芯片)
*GTP收发器的上电顺序为VCCINT、VMGTAVCC、VMGTAVTT或者VMGTAVCC、VCCINT、VMGTAVTT。断电顺序正好相反。
各电压上电顺序要求,具体如下:
(1)VCCINT → VCCBRAM → VCCAUX → VCCAUX_IO → VCCO ;
(2)VMGTAVCC → VMGTAVTT → VMGTAVTTRCAL → VMGTVCCAUX。
影响一个bank所能使用的IO数量因素:
每对VCCIO到GND 可以按100mA来估算,要看那个bank有几对VCCIO。就是说,假如某个bank,我只有一个VCCIO我用的Io的DriveStrength为4ma,那么我大概这个bank只能用25个Io。如果这个bank的VCCIO有俩对,那么我能用50个IO(如果有这么多IO情况下)。
但是这针对的是非大电流驱动与快速压摆率的一个值。如果这个bank你的某些Io脚是可能同时开关输出(sso),那么此bank,这样的信号脚数量有一个限制值,限制值是看TR304手册
那么当对此bank的使用率要求比较高,可能要超过TR304关于sso的理论上限值,可以让客户用软硬件设计时一些操作来降低sso带来的影响。手册里sso缓解措施已经给出类似bank电源隔离、包括软件设计延缓同步输出Io数量等方法。
rocessor 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
因此实际功耗只要超过此值就需要进行优化处理,优化处理的方法主要有两种:一是降低θ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的电源介绍,主要包括了电源的种类、电压要求、功耗分析、上下电时序、电源实现方式等。
Zynq UltraScale+ MPSoC PS端有两个电源域,分别是全功耗电源域和低功耗电源域。二者的PL和PS间都是独立的。
关于上电顺序,Zynq-7000的要求是:
a) PS : 先同时上VCCPINT、VCCPAUX和VCCPLL,再上VCCO(MIO、DDR),但VCCO上电延时相对于VCCPAUX有一个必须遵守的最大延迟时间。
b) PL : 先后依次是VCCINT、 VCCBRAM、 VCCAUX和 VCCO,VCCO上电延时相对于VCCAUX有一个必须遵守的最大延迟时间。
但是Zynq UltraScale+ MPSoC有不同的要求:
a) 在PS系统里,必须保证低功耗电源域先上电,待上电完成后再给全功耗系统上电。
b) 在低功耗电源域内的上电顺序是:VCCPINTLP先上电,然后VCCPAUX、VCCPADC、 和VCCPLL没有特别要求,最后给VCCOPIO上电。
c) 在全功耗电源域内先给VCCPINTFP(VCCPINTFP_DDR)上电,然后VMGTRAVCC、 VCCPLL和 VCCDDRPLL以任何顺序上电,最后是给MGTRAVTT和VCCODDR上电。
d) PL 上电完全独立,依次是VCCINT、VCCINT_IO/VCCBRAM、 VCCAUX/VCCAUX_IO和 VCCO。
引用UG1085中的一张图可以看出ZU+的电源还是相当复杂的,不过细细琢磨也就分为两部分:PL和PS,PL部分再细分为logic部分和GTx部分;PS部分再细分为LPD、FPD(含GTR)和公共部分(PLL、ADC、AUX)。下面是用思维导图整理的相关电源域,其中以-2E等级为参考,电流部分由于所选型号、所用资源不一,暂未统一评估,后续会进行详细评估。
电源相关引脚描述可参考UG1085和DS925。
2、上电时序
上面简单的概述了一下ZU+的电源域,下面就上电时序进行叙述。
PS部分和PL部分的上电时序是独立的,为了防止损坏器件,器件内部已经进行了隔离。
PS部分的LPD(Contains the ARM Cortex-R5 real-time processor unit (RPU), theplatform management unit (PMU), and the configuration security unit (CSU), aswell as the remaining on-chip peripherals.)要先于FPD(Contains the ARM Cortex-A53application processor unit (APU) as well as a number of peripherals typicallyused by the APU.)上电,或者同时上电。
LPD部分的上电顺序为:
FPD部分的上电顺序为:
PL的逻辑部分的推荐上电时序为VCCINT,VCCINT_IO/VCCBRAM, VCCINT_VCU, VCCAUX/VCCAUX_IO, and VCCO. VCCINT_IO和VCCBRAM必须连接到一起,VCCAUX/VCCAUX_IO必须连接到一起。如果VCCINT和VCCINT_IO/VCCBRAM电压相同,可以使用同一电源并且同时上电;如果VCCAUX/VCCAUX_IO和VCCO电压相同,可以使用同一电源并且同时上电。
PL的GTx部分的推荐上电时序为VCCINT, VMGTAVCC, VMGTAVTT OR VMGTAVCC, VCCINT,VMGTAVTT. VMGTVCCAUX没有时序要求。
VMGTAVCC和VCCINT没有时序要求,可以同时上电。如果不满足时序要求,则VMGTAVTT上下电的电流可能比规范规定的高。
所有的下电时序都和上电时序相反。一般都不进行下电时序控制,如果有需要低成本的下电时序控制电路,可以参考NVIDIA的Jetson TX2的底板,本人之前就使用过这套方案进行过K7的下电时序控制,还是非常好用的,这套方案成本较低,同时考虑了外部掉电和主动关机的情况,值得参考。
上下电时序相关资料可参考DS925。
3、电流评估
Xilinx FPGA的电流评估常见的有几种方案:Xilinx自己的XPE(使用该种方式你一定会惊叹excel的强大之处!)、TI的WEBENCH(貌似只有FPGA部分,没有ARM部分)、Vivado软件、开发板等,这几种方案都可以根据自己的外设进行定制,方便灵活。
以下为XPE评估的一个样例:
PS部分的电流评估:
Domain |
Source |
Voltage |
Total (A) |
Total |
Battery Power |
VCC_PSBATT |
1.200 |
<0.001 |
<0.001W |
Low Power (Logic + IO) |
VCC_PSINTLP |
0.850 |
0.380 |
0.323W |
VCCO_PSIO0_500 |
3.300 |
0.008 |
0.026W |
|
VCCO_PSIO1_501 |
3.300 |
0.005 |
0.017W |
|
VCCO_PSIO2_502 |
3.300 |
0.002 |
0.007W |
|
VCCO_PSIO3_503 |
3.300 |
0.001 |
0.002W |
|
LPD Power |
0.375W |
|||
Full Power (Logic + IO) |
VCC_PSINTFP |
0.850 |
0.867 |
0.737W |
VCCO_PSDDR_504 |
1.200 |
1.107 |
1.329W |
|
VPS_MGTRAVCC |
0.850 |
0.284 |
0.241W |
|
VPS_MGTRAVTT |
1.800 |
0.042 |
0.076W |
|
VCC_PSINTFP_DDR |
0.850 |
1.228 |
1.044W |
|
FPD Power |
3.427W |
|||
Others |
VCC_PSPLL |
1.200 |
0.078 |
0.094W |
VCC_PSDDR_PLL |
1.800 |
0.013 |
0.023W |
|
VCC_PSADC |
1.800 |
0.011 |
0.019W |
|
VCC_PSAUX |
1.800 |
0.002 |
0.004W |
|
Others Power |
0.140W |
PL部分的电流评估:
Power Supply |
||
Source |
Voltage |
Total (A) |
VCCINT |
0.850 |
3.819 |
VCCINT_IO |
0.850 |
0.234 |
VCCBRAM |
0.850 |
0.057 |
VCCAUX |
1.800 |
0.178 |
VCCAUX_IO |
1.800 |
0.176 |
VCCO 3.3V |
3.300 |
0.000 |
VCCO 2.5V |
2.500 |
0.000 |
VCCO 1.8V |
1.800 |
0.033 |
VCCO 1.5V |
1.500 |
0.000 |
VCCO 1.35V |
1.350 |
0.000 |
VCCO 1.2V |
1.200 |
0.326 |
Vcco 1.0V |
1.000 |
0.000 |
VCCADC |
1.800 |
0.008 |
注:我使用的是XCZU3,没有引出GTx部分。
同样可以使用TI的WEBENCH进行评估,也可以使用vivado进行预评估。
4、电源相关设计(主要是去耦电容)
PL部分电源的去耦电容根据型号不同、封装不同,具体的数量不同,具体参见UG583,也可以根据XTP427的checklist进行对照检查。
PL部分电源域主要包括:VCCINT/VCCINT_IO,VCCBRAM/VCCINT_IO,VCCAUX/VCCAUX_IO,HDIO,HPIO几组。
PS部分电源域较多,具体参见UG583,也可以根据XTP427的checklist进行对照检查。针对VCC_PSDDR_PLL和VCCINT_VCU(MPSoCEV Devices Only)还需要特殊处理。