3. FPGA数据手册与电源规范解读
做PDN设计,第一步不是选电容、不是画铜皮,而是把FPGA的电源需求“翻译”成一组可计算的工程参数。这些参数分散在三类文档里:Datasheet给出电气极限与推荐工作条件,Pinout/封装文件给出电源引脚分布与分组,Power Estimator给出与实际配置相关的电流估算。三者缺一,PDN就只能靠猜。
一、Datasheet:先分清“绝对最大值”和“推荐工作条件”
Datasheet中的电源章节通常有两张关键表。绝对最大值表(Absolute Maximum Ratings)只说明器件不被损坏的边界,例如某FPGA的VCCINT绝对最大为1.1V,这不是可以长期工作的电压。真正用于PDN设计的是推荐工作条件表(Recommended Operating Conditions),它给出每个电源轨的标称电压、允许范围、以及部分器件的最大纹波或噪声容限。
以典型28nm级FPGA为例,常见电源轨的推荐条件可归纳如下(示例参数,具体以所选器件手册为准):
| 电源轨 | 标称电压 | 允许范围 | 典型用途 |
|---|---|---|---|
| VCCINT | 1.00 V | 0.97–1.03 V(±3%) | 内核逻辑 |
| VCCAUX | 1.80 V | 1.71–1.89 V(±5%) | 辅助/配置 |
| VCCIO(Bank x) | 1.5/1.8/2.5/3.3 V | ±5% | I/O接口 |
| VCCBRAM | 1.00 V | 0.97–1.03 V | Block RAM |
| MGTAVCC | 1.00 V | ±3% | 高速收发器 |
这里有两个容易踩的坑。第一,±3%与±5%不能混用:VCCINT的容差更紧,意味着PDN的直流压降加纹波必须控制在约±30mV以内,而VCCIO可以放宽到±90mV(以1.8V为例)。第二,范围是“直流+交流”的总和,不是只算纹波。因此PDN预算要写成:
允许总偏差 = 标称 × 容差百分比
直流压降(IR Drop) + 低频纹波 + 高频噪声 ≤ 允许总偏差
例如VCCINT 1.00V、±3%,允许总偏差30mV。若分配直流压降10mV、低频纹波8mV,则留给高频噪声的余量只有12mV。这个数字直接决定去耦电容的ESL和布局密度。
二、Pinout:把电流需求落到具体引脚和Bank
Datasheet给的是“整颗芯片”的电流,但PDN是按引脚和铜皮设计的。Pinout文件(或封装引脚表)要提取三类信息:
- 电源引脚编号与数量:VCCINT有多少个球、分布在哪些区域,决定过孔和铜皮的数量。
- Bank划分:VCCIO按Bank独立供电,不同Bank可能接不同电压,不能合并成一个电源平面。
- 专用引脚:如VREF、MGT电源、配置电源,往往有独立的滤波要求。
一个实用的做法是建立“电源—引脚—Bank”对照表。例如某FPGA的VCCINT有120个BGA球,均匀分布在芯片四边;VCCIO Bank 0–3各约30个球。若VCCINT总电流估算为8A,则平均每球约67mA,单球电流并不大,但要求所有球同时低阻抗连接,否则局部压降会超标。这就是为什么PDN设计强调“每个电源球附近都要有去耦电容和过孔”,而不是只在芯片一角放几个大电容。
三、Power Estimator:从配置反推真实电流
Power Estimator(如Xilinx的XPE、Intel的EPE)是电子表格或在线工具,输入资源利用率、时钟频率、翻转率、I/O标准后,输出各电源轨的电流。它的价值在于:电流不是常数,而是随设计配置变化的。同一颗FPGA,空载和满载的VCCINT电流可能相差数倍。
使用时要抓住几个关键输入:逻辑单元使用率、BRAM/DSP数量、时钟频率、每个Bank的I/O数量和标准、收发器速率与通道数。输出通常给出典型值、最大值和不同温度下的值。PDN设计应取最大值作为电流预算,同时用典型值评估效率。
例如某设计VCCINT估算:典型4.2A、最大7.8A;VCCAUX典型0.35A、最大0.6A;VCCIO Bank 1(1.8V)典型0.8A、最大1.5A。这些数字就是后续选稳压器、算铜皮宽度、定电容数量的依据。
四、纹波与时序:容易被忽略的两类要求
纹波要求通常写在Datasheet的电源噪声容限或Power Estimator的说明中。它一般以mVpp给出,且区分频段:低频(<100kHz)由稳压器环路决定,中频(100kHz–10MHz)由大容量电容决定,高频(>10MHz)由陶瓷电容和封装决定。PDN设计要保证各频段叠加后不超过总容差。
时序要求则包括上电顺序和上电斜率。多数FPGA要求VCCINT先于VCCAUX、VCCAUX先于VCCIO,或按特定顺序;违反顺序可能导致内部ESD结构导通、大电流甚至损坏。Datasheet会给出顺序表和时间窗口,例如VCCINT稳定后10ms内VCCAUX必须建立。PDN中的电源管理芯片(PMIC)或使能链必须满足这些时序。
五、把参数整理成可执行的PDN规格表
三类文档读完后,建议整理成一张“电源轨规格表”,字段包括:轨名、标称电压、容差、最大电流、纹波限值、上电顺序、关联Bank/引脚。这张表是后续选型、布局、测试的共同依据。例如:
轨名 标称 容差 最大电流 纹波限值 上电顺序
VCCINT 1.00V ±3% 7.8A 30mVpp 1
VCCAUX 1.80V ±5% 0.6A 90mVpp 2
VCCIO_B1 1.80V ±5% 1.5A 90mVpp 3
MGTAVCC 1.00V ±3% 1.2A 30mVpp 2
有了这张表,PDN设计就从“凭经验放电容”变成“按预算分配阻抗”。例如VCCINT允许30mV总偏差,若目标阻抗Ztarget = 允许纹波 / 最大电流 = 30mV / 7.8A ≈ 3.8mΩ,这就是从DC到高频需要维持的阻抗上限。后续的电容选型、平面设计、过孔优化,都围绕这个目标展开。
最后提醒一点:不同厂商、不同系列的FPGA,电源轨命名和容差差异很大。有的器件VCCINT是0.85V、±3%,有的VCCIO支持1.2V–3.3V宽范围。PDN设计不能套模板,必须回到当前所选器件的最新版Datasheet和Pinout文件,逐轨确认。Power Estimator的版本也要与器件和工具版本匹配,否则电流估算可能偏差较大。