0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

复位消抖电路具体长什么样子呢?

冬至子 来源:芯时代青年 作者:尼德兰的喵 2023-12-04 14:53 次阅读

复位信号在使用前一般需要进行消抖处理,也称为复位滤毛刺。复位的抖动可能会导致芯片产生多次复位动作,给系统带来不确定性和误差。消抖的目的是为了确保复位信号的稳定性和可靠性,从而保证系统能够正常工作。

通过消抖,可以消除复位信号的抖动干扰,保证复位信号的可靠性和稳定性,避免系统故障和数据丢失等问题。

举个例子,如果要消除30ns以下的复位抖动,那么30ns以下的复位信号rst_n拉低操作就会被消抖电路消除,不会对电路产生任何的影响,只有30ns以上的复位拉低操作才能作用于内部电路。

所以复位消抖电路具体长什么样子呢?目前我了解的有三种方式,不过因为没有实际参与过CRG模块的设计与流片,所以以下内容只做参考。我们假定滤毛刺时钟为100M,需要滤除的复位抖动为30ns以下的信号。

第一种方式通过滤毛刺时钟+D触发器来完成 ,如要滤过30ns的抖动电路图如下:

图片

D触发器的数量关系是如何得到的呢?先假设我只有一个延时D触发器,那么复位信号必须维持L电平在一个clk时钟周期以上或门才能在时钟沿处打出一个L信号出来(即时钟上升沿时rst_n || rst_n_ff1 == 1'b0),如下面的波形图所示:

图片

同样的,如果有两个延时D触发器,那么复位信号必须维持L电平在两个clk时钟周期以上,或门才能在时钟沿处打出一个L信号出来:

图片

如果有三个延时D触发器,那么复位信号必须维持L电平在三个clk时钟周期以上,或门才能在时钟沿处打出一个L信号出来:

图片

因此,在或们前放置了N个延时D触发器,就可以滤除N*T(T为消抖时钟的周期)时长以下的复位毛刺信号。这种方式存在一个巨大隐患,消抖时钟信号是不受复位控制的,一旦消抖时钟信号出了什么问题,复位信号将永远无法从消抖电路传递出去。

第二种方式通过累加器来完成, 简单来说就是数一下rst_n连续出现了多少拍,假如需要通过100M消抖时钟来滤除100ns以下的复位抖动,那么rst_n要连续出现10拍低电平才达到100ns的复位标准。将rst_n打两拍rst_n_ff1/rst_n_ff2消除亚稳态,当rst_n_ff2持续达到10拍对外输出复位信号,对应的波形示意如下:

图片

简单的代码示意如下:

reg rst_n_ff1, rst_n_ff2;
reg [3:0]vcnt_100m;

always @(posedge clk_100m) begin
    rst_n_ff1 <= rst_n;
    rst_n_ff2 <= rst_n_ff1;
end

wire vcnt_100m_clr = (rst_n_ff1 != rst_n_ff2);

always@(posedge clk_100m) begin
   if(vcnt_100m_clr)
       vcnt_100m <= 4'h0;
   else if(!rst_n_ff2)
       vcnt_100m <= vcnt_100m + 1'b1;
end

always@(posedge clk_100m) begin
    rst_100m_n <= (!rst_n_ff2 & vcnt_100m >=4'd9) ? 1'b0 : 1'b1;
end

这个消抖方案呢同样存在上面的问题,消抖时钟信号是不受复位控制的,所以在芯片内的模块级别可能会被采用,但是在外部复位消抖时是一般不会使用的。

第三种方式是通过延时器件来实现 ,要滤去100ns以下毛刺,那么就引入100ns延时器件,组成如下电路:

图片

对应的波形也很简单:

图片

通过波形可以看出,如果复位时长不够100ns,prst_n根本不会被触发。这个电路的隐患在于如何保证延时器件在不同温度等外部环境干扰下的延时准确性。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • D触发器
    +关注

    关注

    2

    文章

    147

    浏览量

    47385
  • 延时器
    +关注

    关注

    1

    文章

    36

    浏览量

    14740
  • CLK
    CLK
    +关注

    关注

    0

    文章

    122

    浏览量

    16912
  • 累加器
    +关注

    关注

    0

    文章

    50

    浏览量

    9366
  • 消抖电路
    +关注

    关注

    0

    文章

    5

    浏览量

    8537
收藏 人收藏

    评论

    相关推荐

    fpga教程之——按键

    Table of Contents1. 回顾...............................................42. 按键
    发表于 02-27 11:49

    按键

    请问大家的按键是用什么方法解决的,如普通的按键如何。按键和数码管接的端口是相同的,如何解决按键
    发表于 09-26 22:17

    按键怎么实现?

    各位大神,这个图是怎么实现的?
    发表于 08-04 09:00

    技术分享:明德扬按键的原理和基于fpga的设计

    本帖最后由 明德扬吴老师 于 2017-8-2 11:45 编辑 按键1功能概述按键开关是各种电子设备不可或缺的人机接口,如电脑的键盘等。实际应用中,按键开关通常为机械式弹性开关。当机械点
    发表于 08-02 10:38

    电路的传输特性会变成什么样子

    记得是从刚刚学模电的时候开始,每次看到一个运放电路,就会想,如果把这个电路的同相输入端和反向输入端换一下,那么电路的传输特性会变成什么样子
    发表于 02-26 08:39

    FPGA开发中按键与单脉冲发生器电路原理是什么

    按键电路原理是什么键控单脉冲发生器电路原理是什么基于FPGA下的按键计数器和单脉冲发生器
    发表于 04-29 06:40

    请问怎样去设计一种按键电路

    按键电路结构与电路模型按键电路数学模型按键
    发表于 04-29 06:13

    软件电路中存在的不足是什么?

    什么是电路?软件电路中存在的不足是什么?按键
    发表于 05-06 07:50

    51单片机_独立按键延时

    51单片机_独立按键延时_独立按键定时器_矩阵键盘定时器1.独立按键_延时
    发表于 07-16 13:56

    MCU按键问题

    按键问题机械按键是必须的,1、延时//按键处理函数//返回按键值//mode:0,不
    发表于 11-04 06:37

    按键硬件原理

    按键硬件原理:利用电容充放电特性来实现,因为电容为储能元件。它两端的电压不能出现突变,即有一个充放电的过程下降沿触发电路:上升沿触发电路:什么是RC
    发表于 12-07 12:47

    有什么方法去实现按键的

    怎样用软件即程序来实现按键的?有什么方法去实现按键的
    发表于 12-15 07:25

    STM32单片机按键和FPGA按键的相关资料分享

    写在前面:STM32单片机按键和FPGA按键大全按键去:由上图可以看出理想波形与实际波形之间是有区别的,实际波形在按下和释放的瞬间
    发表于 01-18 06:39

    MCU对按键长按的检测是否要

    MCU对按键长按的检测,是否要
    发表于 10-13 08:14

    按键都有哪些处理方式?

    按键都有哪些处理方式除了硬件电路用软件怎么实现
    发表于 11-01 07:06