SoC的复位树设计概述

360影视 欧美动漫 2025-09-04 14:15 1

摘要:SoC(System on Chip,片上系统)的复位树设计是确保芯片在各种条件下能够可靠启动和恢复的关键环节。复位树作为SoC中一个至关重要但常被忽视的底层基础设施,负责将外部或内部产生的复位信号安全、可靠、有序地传递到芯片的每一个需要复位的逻辑单元,确保芯

一、引言

SoC(System on Chip,片上系统)的复位树设计是确保芯片在各种条件下能够可靠启动和恢复的关键环节。复位树作为SoC中一个至关重要但常被忽视的底层基础设施,负责将外部或内部产生的复位信号安全、可靠、有序地传递到芯片的每一个需要复位的逻辑单元,确保芯片能够从一个确定的初始状态开始工作。复位树设计的复杂性很高,验证其在所有工作模式下能否正确复位是一个重大挑战。复位设计中的错误可能导致亚稳态、毛刺或其他功能故障,甚至导致芯片完全无法使用。因此,深入理解和掌握SoC复位树设计的核心概念、目标和关键考虑因素,对于SoC的设计和验证至关重要。

二、复位树的概念

复位树可以类比为一棵树的根系,整个从源头到终端的分布式网络,就是复位树。

树根:是复位源头,如外部复位引脚(POR_n, RESET_n)、看门狗复位、软件触发复位等。

树干和树枝:是复位信号在芯片内部经过同步、整形、分配后的传播路径。

树叶:是最终接收到复位信号的各个功能模块(如CPU核、DSP、外设、存储器控制器等)。

三、复位树设计的核心目标

1. 可靠性:确保复位信号本身没有毛刺,并能被稳定地捕获,防止亚稳态。

2. 可控性:能够对芯片的不同部分进行独立的复位控制(隔离复位)。例如,只复位一个外设而不影响CPU,这对调试和低功耗管理至关重要。

3. 同步性:确保复位信号的释放(De-assertion)与目标时钟域同步,这是避免亚稳态的最关键手段。

4. 有序性:控制复位与解除复位的顺序。通常要求“复位释放顺序”和“时钟开启顺序”遵循一定规则,保证逻辑正确初始化。

5. 可测试性:设计应支持DFT(可测试性设计),例如扫描链测试,通常需要全局复位来控制测试模式。

四、复位树的关键组成部分与设计要点

1. 复位源

上电复位(POR):最根本的复位,在电源稳定后产生。

外部引脚复位:由用户或外部系统触发。

看门狗复位:系统软件跑飞后,由看门狗计时器触发。

软件触发复位:由软件写特定寄存器产生。

低功耗模式退出复位:从某些深度睡眠模式唤醒时,需要复位部分逻辑。

2. 复位同步器

复位同步器是复位树的核心技术,绝对不能让异步复位信号直接作用于时序逻辑的复位端。

目的:将异步的复位信号同步到目标时钟域,确保复位释放时不会产生亚稳态。

经典结构:使用两级或多级D触发器链(同步器)来“同步化”复位释放信号。

3. 复位控制器

复位控制器是一个集中式的模块,用于管理所有复位源和复位请求。功能包括聚合、仲裁、分发、产生脉冲。

聚合:接收所有内外部复位请求。

仲裁:确定复位的优先级(如上电复位的优先级最高)。

分发:将处理后的复位信号分配到不同的时钟域和电源域。

产生脉冲:确保复位信号有足够的脉冲宽度(通常通过计数器实现)。

4. 复位分布网络

将同步化后的复位信号布线到整个芯片。

挑战:复位信号通常是高扇出网络,容易产生较大的时钟偏斜。

解决方案。时钟树综合:像做时钟树一样做复位树,使用平衡缓冲器树来减少偏斜。全局网络:使用专用的全局低偏斜网络来传递主复位信号。

5. 域隔离处理

现代SoC通常有多个时钟域和电源域,复位树必须跨域处理。

时钟域交叉:为每个时钟域提供独立的同步器。一个复位信号需要被同步到所有它要作用的时钟域。

电源域交叉:当复位信号需要从一个常开域传递到一个可关断域时,必须使用隔离器。当目标域断电时,隔离器将复位信号钳位到一个安全值(常为无效状态),防止未定义的电平传播到常开域,导致漏电或闩锁效应。

6. 复位顺序

复位释放顺序:通常要求先释放总线控制器、时钟发生器、PLL锁定等基础单元的复位,再释放CPU、DMA等主控单元的复位,最后释放外设的复位。这个顺序通常由计数器或状态机精确控制。

复位与时钟的关系:必须在时钟有效之后,才能释放复位。理想情况下,在复位期间,时钟应该是运行的。

五、设计流程与验证

1. 架构定义

确定复位源、复位类型(同步/异步、高有效/低有效)、复位域划分。

2. RTL实现

编写复位控制器的RTL代码,明确使用同步释放结构。

3. 综合与实现

工具会处理高扇出复位网络的缓冲和布线。

4. 验证

仿真:验证各种复位场景下的行为是否正确。

静态验证:使用形式化工具检查复位信号是否真的能到达所有目标寄存器(复位性检查)。

时序分析:确认复位路径满足时序要求,特别是同步器本身的建立保持时间。

六、复位树设计的关键点

1. 混合复位类型的处理

复位通常被定义为相对于时钟的异步或同步。有时,一个复位信号可能被用作一个时钟的同步复位,另一个时钟的异步复位,这需要特别注意。

2. 寄存器的复位设计

在寄存器中同时允许异步复位和置位通常不是一个好主意,因为这可能导致竞争条件,从而在仿真和综合之间出现不匹配。

3. 复位树的验证

传统上,仿真一直是验证复位行为的主要方法,但仿真测试覆盖率不完整,门级仿真通常在设计周期的后期才运行。因此,需要更先进的验证方法来确保复位树设计的正确性。

七、复位树设计的注意事项

1. 电源域和电压源的设计

根据不同的电压设计电压域,根据不同的子系统功能设计电源域。这有助于确保复位信号在不同电源域中的正确传播。

2. 复位信号的去毛刺处理

对于复位引脚等可能受到抖动影响的复位源,需要进行去毛刺处理。

3. 复位延迟计数器的设计

在时钟不稳定阶段,计数器可能出现混乱或采样错误,导致计数值跳变。因此,模拟电路在产生POR时需有一定延迟,数字计数器的位宽要足够宽。

八、复位树设计的未来趋势

随着SoC设计的复杂性不断增加,复位树设计也需要不断适应新的挑战。例如,对于具有多个时钟域和电源域的SoC,复位树设计需要更加灵活和可靠。同时,随着硬件设计验证技术的发展,复位树的验证方法也将更加先进和高效。

九、复位方案案例

没找到合适的,只找到一个SoC外部复位电路配置方案。

在TI的AMZ63x SoC中,PORz信号是主域的上电复位信号,由一个3输入与门驱动,当PMC驱动NRES、MCU复位输出信号低电平,或电压监视器驱动RESET1或RESET2,或用户按下按钮SW2,或测试自动化头输出低电平信号TA_PORZn时,产生主域的上电复位。PORz信号连接到多个模块,如AMZ63x SoC的PORz输入、RGMII以太网PHY复位等。另外WARMRESETn是热复位信号。

十、总结

SoC的复位树设计是一个复杂而关键的任务,需要综合考虑多种因素,以确保芯片在各种条件下都能可靠地复位和启动。一个设计良好的复位树是SoC稳定运行的基石。

文章来源于志芯,作者JackXu

来源:文轩教育

相关推荐