首页 > 其他 > 详细

异步复位同步撤离

时间:2020-07-01 09:12:42      阅读:63      评论:0      收藏:0      [点我收藏+]

单纯的同步复位需要依赖于时钟,因此在进行复位时需要将门控时钟打开,这样功耗会较高,同时复位路径上会引入组合逻辑的cell,对于数据路径的话,它会多logic cell,这样会进一步的挤压timing_path的setup窗口。

单纯的异步复位,因为复位和时钟沿都决定寄存器Q端输出的状态,所以会有亚稳态问题,在进行复位时,有亚稳态倒还好,因为最终都是要复位掉的,所有寄存器最终都会固定在一个状态,但是在撤离的时候产生亚稳态的话就会比较麻烦,最后可能会导致有些寄存器解复位掉了,有些寄存器仍处于复位状态,这样解复位后的初始状态就不如期望的那样,引起功能错误。

因此就有一个异步复位同步撤离的电路方案,该方案中复位信号都还是接在了寄存器的复位端,只是在撤离的时候会是在时钟边沿产生的复位信号。主要关注撤离时的状态

技术分享图片

 

 对于异步复位的这几级寄存器,它复位端接的复位信号肯定是异步,因此在复位撤离的那个时刻,若违反recovery time或removal time,那么第一级寄存器由于复位和不复位的状态不一致,因此可能会出现亚稳态,但是第二级寄存器复位和不复位状态下,Q端都会输出0,所以不会产生亚稳态,如果有第三级寄存器的话,第三级寄存器也不会有亚稳态。这就和异步信号输到D端一样,第一级会产生亚稳态,后面的几级寄存器会降低这个亚稳态概率,保证最后一级寄存器输出端仍是亚稳态的概率很低,这就是为什么需要至少两拍的原因。

当解复位信号由第二级寄存器传出来到系统中的寄存器时,这时就可以通过DC工具来检查recovery time 和removal time保证每一个解复位都不会产生亚稳态。

 

异步复位同步释放案例

如何选择同步复位和异步复位

 

一个想法:在使用同步复位时,如果我先开时钟再复位,然后关掉时钟,在解复位时再开时钟再解复位,这样就可以减少系统在复位期间的功耗了,不过还是不好解决复位电路上有组合逻辑cell的问题

在使用异步复位时,先解复位再开时钟,这样不就可以避免亚稳态了吗?不一定非要用异步复位同步撤离。

 

异步复位同步撤离

原文:https://www.cnblogs.com/daixiaoyao/p/13216966.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!