Zynq 电源

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+ MPSoCZU+ RFSoCZ7US+US7 Series
LogicVCCINT0.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_IO0.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%)
×
VCCBRAM0.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三个系列不同
VCCAUX1.8(3%)1.8(3%)1.8(5%)1.8(3%)1.8(5%)
VCCO
VCCAUX_IO1.8(3%)1.8(3%)1.8(5%)
2.0(3%)
1.8(3%)1.8(5%)
2.0(3%)
A7没有
VBATT
GTxVCCINT_GT×××0.85(3%)
0.9(3%)
只有VU+才有
××
VMGTAVCC0.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)
VMGTAVTT1.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%)
VMGTVCCAUX1.8(3%)1.8(3%)1.8(2.7%)1.8(3%)1.8(2.7%)1.8(2.7%)
VMGTAVTTRCAL1.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  MonitorVCCADC1.8(3%)1.8(3%)1.8(5%)1.8(3%)1.8(5%)
VREFP1.25(4%)1.25(4%)1.25(4%)1.25(4%)1.25(4%)
Processor  SystemVCC_PSINTFP0.85(5%)
0.9(3%)
0.85(5%)VCC_PSINT(1.0(5%))
VCC_PSINTLP0.85(5%)
0.9(3%)
0.85(5%)
VCC_PSAUX1.8(5%)1.8(5%)1.8(5%)
VCC_PSINTFP_DDR0.85(5%)
0.9(3%)
0.85(5%)×
VCC_PSADC1.8(5%)1.8(5%)×
VCC_PSPLL1.2(3%)1.2(3%)1.8(5%)
VPS_MGTRAVCC0.85(3%)0.85(3%)×
VPS_MGTRAVTT1.8(3%)1.8(3%)×
VCCO_PSDDRDDR  I/ODDR  I/ODDR  I/O
VCC_PSDDR_PLL1.8(5%)1.8(5%)×
VCCO_PSIOMIOMIOMIO
VCC_PSBATT×
HBMVCC_HBM1.2(3%)VU+
VCC_IO_HBM1.2(3%)VU+
VCCAUX_HBM2.5(3%)VU+
VCUVCCINT_VCU0.9(3%)
RFVADC_AVCC0.925(3%)
VADC_AVCCAUX1.8(3%)
VDAC_AVCC0.925(3%)
VDAC_AVCCAUX1.8(3%)
VDAC_AVTT2.5(3%)
3.0(3%)
VCCINT_AMS0.85(3%)
VCCSDFEC0.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的动态功耗。

Xilinx FPGA的电源设计详解

Xilinx FPGA的电源设计详解

下面介绍一下优化BRAM功耗的方法:

使用“NO CHANGE”模式:在BRAM配置成True Dual Port时,需要选择端口的操作模式:“Write First”,“Read First” or “NO CHANGE”,避免读操作和写操作产生冲突,如图6所示;其中“NO CHANGE”表示BRAM不添加额外的逻辑防止读写冲突,因此能减少功耗,但是设计者需要保证程序运行时不会发生读写冲突。

Xilinx FPGA的电源设计详解

Xilinx FPGA的电源设计详解

设置成“NO CHANGE”后BRAM的功耗从0.614W降到了0.599W,因为只使用了7%的BRAM,如果设计中使用了大量的BRAM,效果能更加明显。

控制“EN”信号:BRAM的端口中有clock enable信号,在端口设置中可以将其使能,模块例化时将其与读/写信号连接在一起,如此优化可以使BRAM在没有读/写操作时停止工作,节省不必要的功耗。

Xilinx FPGA的电源设计详解

Xilinx FPGA的电源设计详解

控制“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进行读写,因此在需要低功耗的情况下采用“拼深度”结构。但需要特别注意的是:“拼深度”结构需要额外的数据选择逻辑,增加了逻辑层数,为了降低功耗即牺牲了面积又牺牲了性能。

Xilinx FPGA的电源设计详解

Xilinx FPGA的电源设计详解

3、上下电时序

3.1、上电时序

FPGA通常需要多路供电电压,并且要求一定的上电/断电顺序。顺序上电有助于限制上电期间的浪涌电流。如果忽视器件的供电顺序要求,可能导致器件损坏或闩锁,造成FPGA器件故障。有三种类型的上电时序:同步跟踪、顺序跟踪和比率跟踪。

Xilinx FPGA的电源设计详解

针对各个系列的FPGA芯片,其内部各功能模块的上电时序一般是相互独立的,各个功能模块内部是有先后顺序的要求。详细可参看各个器件的data sheet,其中会有详细的先后顺序约束。

3.2、上升单调性

启动过程中,电源电压保持单调爬升非常重要,只有这样才能确保器件成功开启。一般的FPGA给出了严格的电压单调上升要求,即电源电压应该连续上升至所设置的稳压值,中间不应发生跌落。如果电源不能提供足够的输出功率,则会造成跌落。

Xilinx 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部分的上电顺序为:

  • VCC_PSINTLP
  • CVCC_PSAUX, VCC_PSADC, andVCC_PSPLL in any order or simultaneously.
  • CVCCO_PSIO

FPD部分的上电顺序为:

  • VCC_PSINTFP andVCC_PSINTFP_DDR driven from the same supply source.
  • VPS_MGTRAVCC andVCC_PSDDR_PLL in any order or simultaneously.
  • VPS_MGTRAVTT andVCCO_PSDDR in any order or simultaneously.

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)还需要特殊处理。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/236082.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

thinkphp美容SPA管理系统源码带文字安装教程

thinkphp美容SPA管理系统源码带文字安装教程 运行环境 服务器宝塔面板 PHP 7.0 Mysql 5.5及以上版本 Linux Centos7以上 基于thinkphp3.23B-JUI1.2开发&#xff0c;权限运用了Auth类认证&#xff0c;权限可以细分到每个功能&#xff0c; 增删改查功能一应俱全&#xff0c;整合了…

低维度向量的 Householder 反射变换 matlab 图示

1, 算法原理 设th 是一个弧度值&#xff0c; 令 Q | cos(th) sin(th) | | sin(th) -cos(th) | S span{ | cos(th/2.0) | } | sin(th/2.0) | x (x1, x2) 是一个平面上的二维向量 计算 y Qx Qx 则&#xff0c;y 是 x 通过有 S 定…

函数——自制函数(c++)

今天进入自制函数。 自制函数&#xff0c;需要自己定义其功能。比如&#xff0c;设置一个没有参数没有返回值的积木&#xff0c;叫“aaa”。那么&#xff0c;如果想要运行“aaa”&#xff0c;就需要以下代码&#xff1a; void aaa(); 告诉系统有“aaa”…

Java快速排序希尔排序归并排序

快速排序算法 快速排序的原理&#xff1a;选择一个关键值作为基准值。比基准值小的都在左边序列&#xff08;一般是无序的&#xff09;&#xff0c;比基准值大的都在右边&#xff08;一般是无序的&#xff09;。一般选择序列的第一个元素。 一次循环&#xff1a;从后往前比较&…

基于Python实现身份证信息识别

目录 前言身份证信息识别的背景与意义自动识别身份证的需求 实现环境与工具准备Python编程语言OpenCV图像处理库Tesseract OCR引擎 身份证信息识别算法原理图像预处理步骤(图像裁剪、灰度化 、二值化、去噪)信息提取与解析 Python代码实现通过OCR提取身份证号码代码解析身份证信…

【QML COOK】- 008-自定义属性

前面介绍了用C定义QML类型&#xff0c;通常在使用Qt Quick开发项目时&#xff0c;C定义后端数据类型&#xff0c;前端则完全使用QML实现。而QML类型或Qt Quick中的类型时不免需要为对象增加一些属性&#xff0c;本篇就来介绍如何自定义属性。 1. 创建项目&#xff0c;并编辑Ma…

【Linux驱动】Linux的中断系统 | 中断的重要数据结构

&#x1f431;作者&#xff1a;一只大喵咪1201 &#x1f431;专栏&#xff1a;《Linux驱动》 &#x1f525;格言&#xff1a;你只管努力&#xff0c;剩下的交给时间&#xff01; 目录 &#x1f3c0;Linux系统的中断⚽中断分类软中断和硬中断中断的上半部和下半部 ⚽tasklet⚽工…

基于uniapp封装的card容器 带左右侧两侧标题内容区域

代码 <template><view class"card"><div class"x_flex_header"><div><title v-if"title ! " class"title" :title"title" :num"num"></title></div><div><s…

系列四、Spring Security认证 授权(前后端不分离)

一、Spring Security认证 & 授权&#xff08;前后端不分离&#xff09; 1.1、MyWebSecurityConfigurerAdapter /*** Author : 一叶浮萍归大海* Date: 2024/1/11 21:50* Description:*/ Configuration public class MyWebSecurityConfigurerAdapter extends WebSecurityCo…

关注个人数据保护,肯尼亚发布新指南

近日&#xff0c;肯尼亚数据保护专员办公室&#xff08;ODPC&#xff09;发布了新的指导文件&#xff0c;旨在加强教育、通讯和数字信贷领域的数据保护措施&#xff0c;并提供了一个处理健康数据的通用指南。 这些指导意见是基于《数据保护法》&#xff08;DPA&#xff09;制定…

Appium 自动化测试

1.Appium介绍 1&#xff0c;appium是开源的移动端自动化测试框架&#xff1b; 2&#xff0c;appium可以测试原生的、混合的、以及移动端的web项目&#xff1b; 3&#xff0c;appium可以测试ios&#xff0c;android应用&#xff08;当然了&#xff0c;还有firefoxos&#xff09;…

《YOLO算法:基础+进阶+改进》报错解决 专栏答疑

前言&#xff1a;Hello大家好&#xff0c;我是小哥谈。《YOLO算法&#xff1a;基础进阶改进》专栏上线后&#xff0c;部分同学在学习过程中提出了一些问题&#xff0c;笔者相信这些问题其他同学也有可能遇到。为了让大家可以更好地学习本专栏内容&#xff0c;笔者特意推出了该篇…

canvas绘制流动的蚂蚁线(图文示例)

查看专栏目录 canvas示例教程100专栏&#xff0c;提供canvas的基础知识&#xff0c;高级动画&#xff0c;相关应用扩展等信息。canvas作为html的一部分&#xff0c;是图像图标地图可视化的一个重要的基础&#xff0c;学好了canvas&#xff0c;在其他的一些应用上将会起到非常重…

汽配企业MES管理系统的特点与实践

随着汽车工业的飞速发展&#xff0c;汽车零部件制造企业面临着日益复杂的生产环境和多样化的市场需求。为了应对这些挑战&#xff0c;许多汽配企业开始引入MES管理系统解决方案&#xff0c;以提高生产效率、优化资源配置、提升产品质量。本文将重点探讨汽配企业MES管理系统的特…

Netty 介绍、使用场景及案例

Netty 介绍、使用场景及案例 1、Netty 介绍 https://github.com/netty/netty Netty是一个高性能、异步事件驱动的网络应用程序框架&#xff0c;用于快速开发可扩展的网络服务器和客户端。它是一个开源项目&#xff0c;最初由JBoss公司开发&#xff0c;现在由社区维护。Netty的…

k8s--集群调度(kube-scheduler)

了解kube-scheduler 由之前博客可知kube-scheduler是k8s中master的核心组件之一 scheduler&#xff1a;负责调度资源。把pod调度到node节点。他有两种策略&#xff1a; 预算策略&#xff1a;人为部署&#xff0c;指定node节点去部署新建的pod 优先策略&#xff1a;通过算法选…

怎么做微信秒活动_掀起购物狂潮,引爆品牌影响力

微信秒杀活动&#xff1a;掀起购物狂潮&#xff0c;引爆品牌影响力 在数字化时代&#xff0c;微信已经成为人们日常生活中不可或缺的一部分。作为中国最大的社交媒体平台&#xff0c;微信不仅为人们提供了便捷的通讯方式&#xff0c;还为商家提供了一个广阔的营销舞台。其中&a…

vue3的福音框架arco.design

前言&#xff1a; 在vue2于2023年底正式宣布不在维护&#xff0c;vue3使用越来越频繁的时刻&#xff0c;我们实现项目的辅助框架也越来越多。element, iview, antd 等经典框架继续风靡一时&#xff0c;不过也有很多好的框架&#xff0c;功能也强大&#xff0c;比如我们今天说的…

2.【CPP】入门(宏||内联函数||拷贝构造||析构函数||构造函数)

0x01.引言 1.实现一个宏函数ADD #define ADD(x,y) ((x)(y))//宏是预编译阶段完成替换&#xff0c;注意括号2.宏的优缺点 优点&#xff1a; 1.增强代码的复用性 2.宏函数不用建立栈帧&#xff0c;提高性能 缺点&#xff1a; 1.不方便调试 2.没有安全检查 0x02.内联函数 1.以空…

什么是冒泡排序?如何实现?

一、是什么 冒泡排序&#xff08;Bubble Sort&#xff09;&#xff0c;是一种计算机科学领域的较简单的排序算法 冒泡排序的思想就是在每次遍历一遍未排序的数列之后&#xff0c;将一个数据元素浮上去&#xff08;也就是排好了一个数据&#xff09; 如同碳酸饮料中二氧化碳的…