4. R-Car电源与复位域验证
R-Car SoC 的电源与复位体系是系统级验证中最容易“看起来正常、实际暗藏时序缺陷”的部分。与单一电源轨的 MCU 不同,R-Car 内部被划分为多个独立供电域(Power Domain),每个域可以单独上电、断电、调压或保持,配合 DVFS(动态电压频率调节)和多种低功耗状态,形成一张复杂的电源—时钟—复位耦合网络。验证的核心目标不是“能不能启动”,而是“在任意电源状态迁移、任意复位源触发、任意掉电顺序下,系统是否始终进入确定的合法状态”。
电源域划分与依赖关系
R-Car 典型电源域包括:Always-On 域(AON,常供,含 RTC、唤醒逻辑、部分 SRAM)、CPU 大核域(如 Cortex-A76/A55 集群)、实时核域(Cortex-R52)、GPU/显示域、视频编解码域、外设与 IO 域、DDR 域等。各域由外部 PMIC 提供不同电压轨(如 0.8V、1.1V、1.8V、3.3V),并通过内部电源开关(Power Switch)和隔离单元(Isolation Cell)控制。关键约束是域间依赖顺序:DDR 域必须先于 CPU 域稳定,IO 域必须先于外设域,AON 域必须始终有效。验证时要建立“域依赖图”,明确哪些域可独立关断、哪些必须成组操作。
DVFS 与低功耗状态
DVFS 通过调节电压和频率的组合(OPP,Operating Performance Point)实现功耗与性能平衡。例如某 R-Car 平台定义 OPP0(1.0V/1.5GHz)、OPP1(0.9V/1.2GHz)、OPP2(0.8V/0.8GHz)。验证重点在于:调频前必须先升压、降频后才能降压,否则会出现时序违例;DVFS 切换期间 CPU 可能短暂停摆,需确认外设 DMA 和中断不会丢失。低功耗状态则包括 CPU Idle(WFI)、Cluster Retention、Suspend-to-RAM、Deep Standby 等,状态越深,关断的域越多,唤醒路径越长。验证需覆盖每个状态的进入条件、退出源和恢复后寄存器/内存一致性。
复位源识别与上电时序
R-Car 复位源包括:上电复位(POR)、外部复位引脚(RESET#)、看门狗复位、软件复位、电源域局部复位、调试复位等。不同复位源影响的域范围不同,POR 复位全芯片,局部复位只影响特定域。验证时要能通过复位状态寄存器(如 RSTSR)区分复位来源,并确认复位释放顺序符合时序要求。上电时序通常要求:AON 先建立 → DDR 电压稳定 → PLL 锁定 → CPU 域释放复位 → 外设域释放。若顺序错误,可能出现 CPU 取指失败或 DDR 初始化异常。
掉电异常与复位循环故障定位
掉电异常通常表现为:电压轨跌落导致域间隔离失效、DDR 内容丢失、PMIC 时序错乱。复位循环则表现为系统反复重启,无法进入 OS。定位时按以下顺序排查:
- 读复位状态寄存器:确认是 POR、WDT 还是软件复位。若为 WDT,检查是否有任务卡死或中断未清除。
- 测量 PMIC 电压轨:用示波器抓取各轨上电斜率,确认是否在规定时间内达到稳定值。若某轨反复跌落,检查负载电流是否超限。
- 检查 PLL 锁定:CPU 域释放复位前 PLL 必须锁定,否则取指异常。可读 PLL 状态寄存器或测量锁定引脚。
- 验证 DDR 初始化:DDR 训练失败会导致 CPU 无法访问内存,进而触发看门狗。检查 DDR 复位释放与时钟稳定之间的间隔。
- 确认复位释放顺序:AON → DDR → CPU → 外设。若顺序颠倒,可能出现外设先于 CPU 就绪,导致总线挂死。
综上,R-Car 电源与复位域验证的关键在于建立“域—电压—时钟—复位”四维关联模型,并在每个状态迁移点检查依赖顺序和恢复完整性。只有把上电、掉电、DVFS、低功耗和各类复位源组合起来覆盖,才能有效定位复位循环和掉电异常这类系统级故障。