当前位置: 首页 > news >正文

复位电路的亚稳态

复位导致亚稳态的概念:

同步电路中,输入数据需要与时钟满足setup time和hold time才能进行数据的正常传输(数据在这个时间段内必须保持不变:1不能变为0,0也不能变为1),防止亚稳态;

1、复位恢复时间和清除时间

        首先解释一下恢复时间(recovery time)清除时间(removal time):(以复位信号低电平有效为例)

        复位恢复时间(recovery time):撤销复位时,复位信号无效到时钟有效沿来临之间需要维持的最小的时间,类似于同步时钟的建立时间setup time;

        复位清除时间(removal time):复位时,在时钟有效沿来临之后复位信号还需要保持复位状态的时间为去除时间,类似于同步时钟的保持时间hold time; 

 2、同步复位

         同步复位就是指复位信号只有在时钟上升沿到来时,才能有效。

 优点:

        1、系统100%同步,有利于时序分析

        2、刚干扰性好,可以过滤信号中短于时钟周期的毛刺

        当毛刺特别靠近时钟的上升沿时,可能导致时序违规,而使得电路产生亚稳态,但是这种几率很低,可以近似忽略。确保复位只发生在有效时钟沿,可以作为过滤掉毛刺的手段。

缺点:

            1、复位信号的有效时长必须大于时钟周期,否则复位无效。

        2、由于大多数的逻辑器件的目标库内的DFF都只有异步复位端口,所以,倘若采用同步复位的话,综合器就会在寄存器的数据输入端口插入组合逻辑,这样就会耗费较多的逻辑资源。

同步复位RTL代码及对应的rtl视图:

module sync_rst(input	sys_clk,input	sys_rst_n,input	din,output	reg dout);always@(posedge sys_clk) beginif(!sys_rst_n)dout <= 1'b0;elsedout <= din;end
endmodule

3、 异步复位电路

        复位信号直接接到功能触发器的异步复位引脚,复位只与复位信号有关,与时钟无关。无论时钟沿是否到来,只要复位信号有效,就对系统进行复位。

优点:

        1、 异步复位信号识别方便,而且可以很方便的使用全局复位

        2、由于大多数的厂商目标库内的触发器都有异步复位端口,可以节约逻辑资源

缺点:

        1、复位信号易受外界干扰,对电路内的毛刺敏感;

        2、复位信号释放具有随机性,如果复位释放信号刚好在时钟有效沿附近,可能存在时序违规(recovery time不满足要求),导致亚稳态。(我理解的是恢复时间太短 不太行

module Async_rst(input	sys_clk,input	sys_rst_n,input	din,output	reg dout);always@(posedge sys_clk,negedge sys_rst_n) beginif(!sys_rst_n)dout <= 1'b0;elsedout <= din;end
endmodule

        对比两者综合后的RTL视图,发现同步复位会多使用一些逻辑单元,这是因为一般的触发器都带有异步复位端; 

4、异步复位、同步释放

        系统设计采用“异步复位、同步释放”(复位信号低电平有效),是利用同步复位和异步复位优点的折中。复位电路通过异步复位使得全部功能寄存器同时复位,同时使用同步释放很好克服了异步复位在信号释放时导致亚稳态的问题。

        异步复位,同步释放就是指在复位信号到来的时候不受时钟信号的同步,而是在复位信号释放的时候受到时钟信号的同步

module Sync_rst(input	sys_clk,input	async_rst_n,input	din,output	reg dout);reg	rst_reg;reg	sync_rst_n;always@(posedge sys_clk,negedge async_rst_n)beginif(!async_rst_n)beginrst_reg <= 1'b0;sync_rst_n <= 1'b0;endelse beginrst_reg <= 1'b1;sync_rst_n <= rst_reg;endendalways@(posedge sys_clk,negedge sync_rst_n) beginif(!sync_rst_n)dout <= 1'b0;elsedout <= din;end
endmodule

异步复位,同步释放原理解释: 

异步复位:

        当async_rst_n有效时,第一个D触发器的输出是低电平,第二个D触发器的输出rst_sync_n也是低电平,方框2中的异步复位端口有效,输出被复位。

同步释放:

        如果async_rst_n撤除时发生在clk上升沿附近,则可能发生亚稳态事件,使用两级触发器尽可能消除亚稳态。假设第一级D触发器clk上升沿时async_rst_n正好撤除,则D触发器1可能输出高电平“1”,也可能输出亚稳态,也可能输出低电平。但此时第二级触发器不会立刻更新输出,第二级触发器输出值为前一级触发器Q1的输出状态。显然Q1之前为低电平,故第二级触发器输出保持复位低电平。直到下一个时钟有效沿到来之后,前一级亚稳态大概率输出稳定(可能为低电平也可能为高电平),使得第二级触发器能够稳定输出,若此时第二级触发器输出高电平,即实现同步释放,若输出为低电平且此时复位信号仍然保持无效状态,则在第三个时钟输出高电平,实现同步释放。

        上述时序图是在第二个触发沿到来时,前一级亚稳态输出已经稳定且稳定为高电平情况下的时序,如果在第二个触发沿到来时,前一级输出的亚稳态还未达到稳定,则电路还是处于亚稳态状态(概率不大),所以两级触发器电路并不能完全消除亚稳态问题,但是可以极大改善亚稳态。 

综上:如果async_rst_n撤除时发生在clk上升沿附近,则可能发生亚稳态事件,

补充:(我也没看懂)

        如果异步复位信号的撤销时间在Trecovery(恢复时间)和Tremoval(移除时间)之内,那势必造成亚稳态的产生,输出在时钟边沿的Tco后会产生振荡,振荡时间为Tmet(决断时间),最终稳定到“0”或者“1”,就会可能造成复位失败。 

相比于时钟脉冲的亚稳态期信号不能变化 从而避免造成亚稳态出现的情况外,复位信号的释放也必须满足以下情况:

        recovery time指的是复位信号释放之后要求距离下一个时钟沿的最小时间间隔。这个时间的意义是,如果保证不了这个最小恢复时间,也就是说这个异步复位信号的释放与“下个时钟沿”离得太近(但在这个时钟沿之前),没有给寄存器留有足够时间来恢复至正常状态,那么就不能保证“下个时钟沿”能正常作用,也就是说这个“时钟沿”可能会失效。

        总结:复位信号释放时如果离下个时钟沿太近,即小于 recovery time那么有可能会造成输出亚稳态,下个时钟沿也可能采集复位这个低电平


        removal time指的是reset release之后要求距离上一个时钟沿的最小时间间隔。这个时间的意义是,如果保证不了这个去除时间,也就是说异步复位信号的释放与“有效时钟沿”离得太近(但在这个时钟沿之后),那么就不能保证有效地屏蔽这个“时钟沿”,也就是说这个“时钟沿”可能会起作用。图形如下图所示。

        总结:复位信号释放时如果离上个时钟沿太近,即小于removal time那么有可能会造成输出亚稳态,上个时钟沿也可能采集复位释放这个高电平。

http://www.lryc.cn/news/459237.html

相关文章:

  • 针对考研的C语言学习(循环队列-链表版本以及2019循环队列大题)
  • 系统架构设计师教程 第12章 12.4 信息系统架构案例分析 笔记
  • web1.0,web2.0,web3.0 有什么区别 详解
  • 将图片添加到 PDF 的 5 种方法
  • TiDB 优化器丨执行计划和 SQL 算子解读最佳实践
  • 初学51单片机之I2C总线与E2PROM以及UART简单实例应用
  • 软考高级软件架构师论文——论Web系统的测试技术及其应用
  • 快速总结AFPN
  • Linux 内核中USB鼠标枚举失败问题总结
  • 十六进制转二进制
  • Python保存CSV文件,Excel打开后中文乱码
  • 数据湖数据仓库数据集市数据清理以及DataOps
  • 「Ubuntu」文件权限说明(drwxr-xr-x)
  • JS-学生管理系统(功能实现)
  • C# 屏幕录制工具
  • 前端开发攻略---前端ocr图片文字提取功能
  • 平凯星辰亮相 2024开放原子开源生态大会,分享开源教育及社区治理经验
  • OCR经典神经网络(二)文本检测算法DBNet算法原理及其在icdar15数据集上的应用
  • 论文笔记:Prompt-Based Meta-Learning For Few-shot Text Classification
  • 光耦知识分享 | AC晶体管光耦在照明控制领域的应用与选型推荐
  • RBTree(红黑树)的介绍和实现
  • 信息安全数学基础(30)指数及其基本性质
  • Android开发首页底部tab切换图标有动画效果
  • Web前端高级工程师培训:异步处理专题
  • ESP32-C3实现热点并在浏览器中输入域名访问网页
  • 基于Python的自然语言处理系列(32):spaCy属性扩展
  • STM32 输入捕获模式详解:PWM 输入捕获与 PWI 模式(续篇)
  • 【C++】set/map(重点解析)
  • 【算法篇】动态规划类(1)(笔记)
  • mysql学习教程,从入门到精通,SQL 约束(Constraints)(41)