4. 多电源轨时序与上电顺序要求

FPGA 往往同时需要 VCCINT 内核电源、VCCAUX 辅助电源、VCCIO 各 Bank 的 I/O 电源,以及用于收发器、DDR 接口、配置电路的独立电源轨。这些电源轨如果同时上电,看似简单,实际上会带来浪涌电流叠加、内部 ESD 结构正向导通、I/O 引脚倒灌等问题。因此,多电源轨 PDN 设计的核心之一,就是明确各轨之间的上电顺序、下电顺序,以及复位释放与配置启动之间的先后关系。

为什么需要 Power Sequencing

FPGA 内部存在大量跨电源域的结构。例如配置逻辑由 VCCAUX 供电,而配置引脚所在的 I/O Bank 由 VCCIO 供电;内核逻辑由 VCCINT 供电,但 I/O 缓冲器由 VCCIO 供电。当某一电源轨先建立、另一轨仍为 0V 时,芯片内部可能出现从已上电域向未上电域泄漏电流的路径,严重时会触发 CMOS 闩锁,导致器件永久损坏。此外,若 VCCIO 先于 VCCINT 建立,I/O 缓冲器的输出级可能处于不确定状态,向外部器件输出错误电平。

因此,厂商数据手册通常会给出明确的 Power-Up 顺序要求。以常见的 28nm/20nm 级 FPGA 为例,典型推荐顺序为:VCCINT → VCCAUX → VCCIO → 收发器/接口电源。下电顺序则通常相反:VCCIO → VCCAUX → VCCINT,或按数据手册规定的顺序执行。需要特别注意的是,不同厂商、不同系列的要求可能不同,必须以具体器件的数据手册和电源时序应用笔记为准。

不要凭经验套用其他器件的上电顺序。同一厂商不同系列、甚至同一系列不同封装,Power-Up 顺序要求都可能不同。设计前必须查阅对应器件的数据手册和 Power Sequencing 应用笔记。

上电顺序的时序参数

Power Sequencing 不只是“谁先谁后”,还包含时间间隔和斜率要求。常见参数包括:

  • 顺序间隔时间 t_seq:前一电源轨达到其稳压阈值后,到下一电源轨开始上升之间的延迟,典型要求为 0.2ms~10ms,具体由器件规定。
  • 上升时间 t_ramp:单轨从 10% 到 90% 的上升时间,过快会产生大浪涌电流,过慢可能导致器件在欠压区停留过久。
  • 单调性:电源轨上升过程中不应出现明显回落,否则可能触发内部上电复位电路误动作。
  • 最大压差:某些器件规定任意两轨之间的电压差不得超过一定值,例如 0.5V 或 1.0V,以防止内部结构正向导通。

这些参数共同决定了电源管理芯片或时序控制器的配置。例如使用带 PG(Power Good)输出的 LDO 或 DC-DC,通过级联方式实现顺序控制:第一轨 PG 有效后,才使能第二轨;第二轨 PG 有效后,才使能第三轨。也可以使用专用时序控制器(如带可编程延迟的 sequencer),或利用 PMBus 数字电源按脚本控制。

Power-Up / Power-Down 与复位释放

FPGA 的复位释放与电源轨状态直接相关。大多数 FPGA 内部有一个上电复位(POR)电路,它监测 VCCINT 和 VCCAUX 是否达到阈值。只有当这些电源轨稳定在阈值以上并保持一定时间后,POR 才会释放,器件才允许开始配置。如果 VCCIO 尚未建立,配置引脚可能无法正确驱动,导致配置失败。

因此,外部复位信号(如 PROG_B、INIT_B、外部系统复位)的释放时机必须晚于所有相关电源轨稳定。常见做法是:用电源时序控制器的“所有 PG 有效”信号作为复位释放的使能条件,再经过 RC 延迟或复位芯片产生干净的复位脉冲。这样可保证 FPGA 在电源完全稳定后才开始配置。

下电时则相反:应先让 FPGA 进入安全状态(如停止配置、I/O 置为高阻),再按顺序关闭电源轨。若下电顺序错误,可能出现 VCCIO 先掉电而 VCCINT 仍存在的情况,导致 I/O 引脚通过外部电路倒灌电流。

配置启动与电源稳定的关系

FPGA 配置过程需要从配置存储器或外部控制器加载比特流。配置时钟(CCLK)和配置数据引脚都位于 I/O Bank,依赖 VCCIO。如果 VCCIO 未达到规定范围,配置接口电平不合法,配置会失败或进入错误状态。因此,配置启动的必要条件是:

  1. VCCINT 稳定且在 POR 阈值以上;
  2. VCCAUX 稳定且在 POR 阈值以上;
  3. 配置所用 I/O Bank 的 VCCIO 稳定;
  4. POR 释放且 INIT_B 变为高电平;
  5. 外部复位或 PROG_B 释放,配置控制器开始工作。

在实际调试中,如果发现 FPGA 无法配置,应首先用示波器同时观察 VCCINT、VCCAUX、VCCIO 和 INIT_B 的波形,确认上电顺序和时间间隔是否符合数据手册要求,再检查复位释放是否过早。

多电源轨上电顺序与复位/配置关系 t VCCINT POR 阈值 VCCAUX VCCIO POR / INIT_B 配置启动 ① VCCINT 先上 ② VCCAUX 跟上 ③ VCCIO 建立 ④ POR 释放 ⑤ 配置启动 下电顺序(相反) VCCIO → VCCAUX → VCCINT

实际设计中的时序控制方案

实现多轨时序控制有三种常见方案。第一种是级联 PG:每路电源的 Power Good 输出接到下一路的 Enable 输入,利用 PG 的释放延迟自然形成顺序。这种方式简单,但延迟时间由电源芯片决定,精度有限。第二种是专用时序控制器:如 TI 的 UCD9090、ADI 的 ADM1266 等,可通过 PMBus 或引脚编程设定每路的延迟、顺序和监控阈值,适合多轨复杂系统。第三种是CPLD/FPGA 自身控制:用一个小型 CPLD 或 FPGA 的电源管理逻辑,按状态机控制各轨 Enable,并读取 PG 信号,实现精确到微秒级的时序。

无论采用哪种方案,都应保留每路电源的 PG 信号作为状态反馈,并在调试时用示波器多通道同时捕获。建议至少同时观察 VCCINT、VCCAUX、VCCIO、INIT_B 和配置时钟,确认顺序、间隔和复位释放均符合要求。

调试小技巧:如果 FPGA 配置不稳定,可先将配置时钟频率降低,排除信号完整性问题后,再重点检查电源时序。很多“偶发配置失败”最终都追溯到某一路电源的上电斜率过慢或 PG 释放过早。

关键检查清单

检查项要求验证方法
上电顺序VCCINT → VCCAUX → VCCIO示波器多通道捕获
顺序间隔符合数据手册 t_seq 范围测量 PG 到下一轨上升的延迟
上升时间单调、无回落、在允许范围内观察 10%~90% 斜率
复位释放晚于所有电源轨稳定对比 INIT_B 与电源波形
下电顺序与上电相反或按手册规定断电时捕获各轨下降波形
最大压差不超过器件规定值计算任意两轨瞬时差值

多电源轨时序不是可选项,而是 FPGA 可靠工作的前提。设计阶段就应确定顺序、间隔和复位释放策略,并在 PCB 上预留足够的测试点。调试阶段用示波器逐项验证,才能避免因电源时序问题导致的配置失败、I/O 异常甚至器件损坏。