CRG设计之复位

1. 前言

        CRG(Clock and Reset Generation,时钟复位生成模块) 模块扮演着关键角色。这个模块负责为整个系统提供稳定可靠的时钟信号,同时在系统上电或出现故障时生成复位信号,确保各个模块按预期运行。简而言之,CRG模块就像是SoC系统的心脏,提供着整个系统需要的时钟和复位信号。

        出于时钟复位结构规范设计和DFT可控的目的,一般会把相关电路放在一个集中的模块中管理,由专门的设计人员按需求进行设计与维护。对于时钟分频、MUX、切换、DFT测试结构埋入等等,均在模块内部实现。复位类似。

        涉及到的主要技术:自动解复位,复位顺序,复位切频,时钟门控,亚稳态的恢复,异步复位同步释放,毛刺清除的技术细节。不用公司,不同芯片,因为场景不同,对于CRG的要求也不尽相同,但是具体的技术原理大同小异。CRG中主要包含这些东西:

CRG设计之复位_第1张图片

2. 复位基本概念

2.1 复位源

        复位的作用:使电路(主要是触发器)进入一个能稳定操作的确定状态,主要表现为:

  • 使电路从确定的初始状态下开始运行
  • 修复系统,实现故障自愈,使电路从错误状态回到可以控制的确定状态

        复位源:硬复位、上电复位、软复位、异常复位

        复位控制:系统、应用环境决定何时复位

2.2 复位结构

CRG设计之复位_第2张图片

3. 复位类型

3.1 同步复位

        复位信号在时钟有效沿到来时生效。

CRG设计之复位_第3张图片CRG设计之复位_第4张图片

优点:确保电路是同步的,触发器面积小,时钟可以滤除复位上的毛刺

缺点:依赖时钟,需要确保复位时钟必须有且保持足够时间,否则复位无法生效

3.2 异步复位

        不依赖时钟,立即生效。

CRG设计之复位_第5张图片CRG设计之复位_第6张图片

异步复位撤离问题:

        recovery time:复位撤离时,复位信号从有效跳变为无效的(由1变为0)时刻与下一个时钟沿之间的时间,类似于同步电路中的setup time。

        remove time:复位撤离时,复位信号从有效跳变为无效时与上一个时钟沿之间的时间,类似于同步电路中的hold time。

CRG设计之复位_第7张图片

        如图所示,rst_n为0表示复位,clk上升沿触发,rst_n从0到1的上升沿与时钟上升沿必须不小于recovery time才能保证寄存器恢复到正常状态。rst_n保持为0经过clk上升沿后仍需要保持一段时间,才能保证寄存器有效复位,防止亚稳态。

        解决办法:异步复位,同步释放

4. 异步复位同步撤离

4.1 为什么需要异步复位,同步撤离

        原因主要是:

  • 如果同步复位,同步释放,需要对复位信号进行同步,对于外部复位来讲容易形成锁死的问题。这是个鸡生蛋蛋生鸡的问题。复位信号用寄存器同步,然后用同步后的信号复位寄存器,我复位我自己?所以同步复位同步释放多用于软复位。
  • 如果异步复位,异步释放,异步的释放操作非常容易导致亚稳态。相当于没有复位
  • 如果同步复位,异步释放,emmm 感觉上一般没有人这么折腾自己。

        所以就剩下了一种办法,异步复位,同步释放。这个较为简单和典型。记住即可。硬复位信号都应该这么产生。

4.2 方案

CRG设计之复位_第8张图片

CRG设计之复位_第9张图片

4.3 毛刺问题

        当外部输入的异步信号产生毛刺时,任何满足触发器最小复位脉冲宽度的输入都有可能引起触发器复位

        解决办法:使用滤毛刺电路

CRG设计之复位_第10张图片

你可能感兴趣的:(单片机,fpga开发,嵌入式硬件)