芯片时钟复位设计全攻略
2026/4/6 14:51:34 网站建设 项目流程
CRG模块设计与时钟复位系统详解摘要芯片顶层设计中关于时钟/复位/电源相关的glue logic设计是非常重要的。CRG是芯片里的时钟和复位生成模块Clock Reset Generator提供整个系统所需要的时钟和复位信号。本文将详细介绍时钟系统、复位系统和电源控制的设计要点与最佳实践。一、时钟系统概述CRG的时钟部分一般包括时钟源、锁相环PLL、时钟分频、片上时钟控制器OCC、时钟门控ICG、时钟切换、时钟buffer等电路结构。下面我们逐一介绍。1. 时钟源时钟源一般来自外部的晶振。常见的外部晶振有32.768KHz时钟一般提供给RTC模块等用于产生系统时钟、时间戳等。24MHz时钟一般用做PLL的参考时钟这个频率可变。2. 锁相环PLL基于晶振提供的基准时钟生成稳定的高频时钟。PLL是芯片时钟系统的核心负责将低频参考时钟倍频到目标频率为各个模块提供稳定可靠的高频时钟信号。3. 时钟分频Divider将锁相环输出的高频时钟进行分频从而满足不同模块的时钟需求。分频器是实现多时钟域的重要基础。4. 片上时钟控制器OCCOn-chip Clock ControllerOCC是插在SoC上的逻辑电路用来做DFT测试。在自动测试机台上对芯片进行全速测试时根据scan信号控制选通ATE时钟或芯片内部时钟。5. 时钟门控ICGIntegrated Clock GatingICG用于控制打开和关闭时钟从而降低功耗。⚠️ 设计要点一般模块级的ICG是手动添加寄存器级别的ICG是综合工具自动加入。合理的时钟门控策略可以显著降低动态功耗。6. 时钟切换时钟切换一般分为两类1Clock Mux时钟多路复用器组合逻辑用于静态切换。动态切换时可能会出现glitch需要特别注意。2Clock Switch时钟切换器时序逻辑可用于动态切换。关键设计原则在两个电平相反的时候切换时钟肯定有毛刺电平相同时即使不产生毛刺时钟切换后的第一个时钟周期或占空比也可能不理想为避免毛刺的产生需要在两个时钟都为低电平时进行切换。典型无毛刺时钟切换电路原理利用时钟下降沿对时钟选择信号sel_clk进行缓存。同时一个时钟选择信号对另一个时钟进行反馈控制保证同一时刻只能有一路时钟有效。最后采用或操作将两路时钟合并完成时钟切换的过程。7. 时钟Buffer增强时钟信号的驱动能力确保时钟信号能够有效驱动多个负载。时钟Buffer通常采用专用的高驱动能力标准单元。时钟设计核心要点时钟的设计相对复杂需要考虑以下几个方面芯片的工作场景决定芯片的工作频率和时钟域划分获得每个子模块的多时钟方案时钟门控策略降低动态功耗的重要手段DFT insertion的影响包括scan clock和at-speed测试on-chip clock的插入。 完整的时钟结构功能上多时钟源的clock mux → 时钟分频 → clock gating → DFT clock mux。二、复位系统详解在芯片设计中复位逻辑是一个很重要的部分。复位是让芯片进入一个能稳定操作且确定的初始状态从而避免芯片在上电后进行某个随机的状态而死机或者是运行过程中出现问题时能通过看门狗等方式产生复位而恢复初始状态。1. 复位源分类芯片中的复位源一般分为片外reset源和片内reset源片外复位源PMIC的power reset系统板上的pad resetJTAG reset等片内复位源Watchdog timeout resetSoftware reset其他硬件机制产生的reset⚠️ 设计要点一个模块的reset可能由几种或者全部reset源控制需要综合考虑各复位源的优先级和组合逻辑。2. 复位类型详解2.1 同步复位同步复位是指复位信号只有在时钟有效沿到来时才能有效。典型Verilog代码always (posedge clk) beginif (!rst_n)q 1b0;end同步复位优点同步复位一般能确保电路是100%同步的有利于时序分析综合出来的最高频率一般较高同步复位会综合成更小的触发器特别是在该复位信号被触发器的输入逻辑门控时同步复位确保复位只发生在有效时钟沿时钟可以作为过滤掉复位毛刺的手段在需要由内部条件产生复位的场景中推荐使用同步复位信号可以过滤时钟之间的复位毛刺。同步复位缺点大多数逻辑器件库中的DFF只有异步复位端口使用同步复位时综合器会在寄存器数据输入端插入组合逻辑耗费资源且难以区分复位信号和其他数据信号复位信号有效时间必须大于时钟周期才能确保被可靠识别在门控时钟情况下同步复位需要时钟来复位电路可能出现问题。2.2 异步复位异步复位是指无论时钟沿是否到来只要复位信号有效就对系统进行复位。带有异步复位信号的触发器在设计时就加入了一个独立的复位引脚。典型Verilog代码always (posedge clk or negedge rst_n) beginif (!rst_n) q 1b0;end异步复位优点异步复位最大的优点是不增加数据路径的延迟保证数据路径上是干净的大多数器件库的DFF都有异步复位端口采用异步复位可以节省逻辑资源有没有时钟都可以复位在芯片上电或者门控时钟也能正常复位触发器。异步复位缺点在复位信号释放的时候可能会出现亚稳态问题复位释放在时钟有效沿附近时容易受到毛刺的影响。2.3 异步复位同步释放与数据信号需要满足建立时间和保持时间类似复位信号也需要满足恢复时间Recovery Time和撤销时间Removal Time恢复时间Recovery Time异步复位被设置为无效后在下一个时钟有效沿到来之前需要保持稳定的最短时间。类似于同步电路中的setup time。撤销时间Removal Time在时钟有效沿来临之后异步复位信号需要继续保持有效的最短时间。类似于同步电路中的hold time。⚠️ 设计要点如果不满足异步复位信号的恢复时间和撤销时间可能产生亚稳态。因此需要在异步复位信号释放时对其进行同步即使用复位同步器。复位同步器Verilog代码module reset_synchronizer (input clk,input asyncrst_n,output sync_rst_n);reg rst_meta0, rst_meta1;always (posedge clk or negedge asyncrst_n)if (!asyncrst_n) {rst_meta1, rst_meta0} 2b0;else {rst_meta1, rst_meta0} {rst_meta0, 1b1};assign sync_rst_n rst_meta1;endmodule工作原理当异步复位信号有效时两个触发器都会被复位为0值进而驱动主复位信号masterrst_n通过复位缓冲树到达设计中的其他触发器整个设计异步复位。当复位信号被置为无效时第一个复位寄存器在时钟控制下被置为1随后下一个周期第二个复位寄存器也被置为1花费两个时钟有效沿后移除主复位信号。✅ 总结上述两个过程合起来称为异步复位同步释放——复位信号生效时是异步的释放时是同步的。3. 复位设计核心要点复位的设计通常要考虑以下方面外部复位源输入的去毛刺异步复位同步释放模块级软复位控制多时钟源的影响DFT insertion引入的影响 完整的复位控制逻辑输入de-glitch → 模块级软复位 → 异步复位同步释放 → DFT复位mux关于去毛刺通常要防止低电平毛刺因为复位信号一般是低电平有效。最简单的办法是用时钟对输入复位信号做采样并做多拍的移位寄存器将移位寄存器的Q端取或逻辑从而过滤一定宽度的低电平毛刺。三、电源控制电源控制主要是Power Gating和Voltage Scaling两种技术。Power Gating通过关断不工作模块的电源来降低功耗是静态功耗优化的主要手段。Voltage Scaling通过降低工作电压来降低功耗常见的有DVFS动态电压频率调节技术。⚠️ 设计要点在Top设计中需要区分Always-On的电源域AON和可断电的电源域。因此电源控制逻辑相应的也放在AON中。四、时钟复位电源的开关顺序时钟、复位、电源之间的开关顺序是芯片上电/下电流程设计中的关键问题可以参照LPMMLibraries for Power Modeling and Management的建议进行设计。 参考原则上电顺序电源稳定 → 复位释放 → 时钟使能下电顺序时钟关闭 → 复位有效 → 电源关断。五、总结芯片的时钟、复位、电源设计是顶层 Glue Logic 的核心内容直接影响芯片的功能正确性、功耗表现和测试覆盖率。一个优秀的 CRG 模块设计需要综合考虑以下因素时钟设计要点根据芯片工作场景确定时钟域划分和工作频率合理使用时钟门控降低动态功耗注意 DFT insertion 对时钟结构的影响时钟切换电路需要采用无毛刺设计复位设计要点必须采用异步复位同步释放机制避免亚稳态考虑多种复位源的组合与优先级输入复位信号需要去毛刺处理完整的复位控制链de-glitch → 软复位 → 同步释放 → DFT MUX电源设计要点区分Always-On域和可关断域电源控制逻辑放在AON域中注意上电/下电顺序与时序要求

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询