本文主要内容有:
复位电路概述
同步复位电路
异步复位电路
1. 复位电路概述
复位信号在数字电路中的重要性仅次于时钟信号。通常讲的复位是对指对触发器的复位,通过对触发器的复位完成对系统的复位。一般复位方式分为同步复位和异步复位两种方式,是否需要复位,如何选择复位方式等问题应该根据具体设计方案来定。(下文讨论均以复位信号低电平有效展开)
1.1复位的目的
复位的目的是让系统进入一个可以确定的稳定状态,从实际电路角度看主要体现在两个方面:
(1)使系统进入初始状态:上电的时候,防止系统进入随机状态,或者某时需要系统进入初始状态。
(2)使系统从错误状态中跳出到来,防止死机,某些状态机进入错误状态无法自行恢复.
从仿真角度看,数据通路只要有确定的输出就会有确定的输入,但是控制通路会进入不定态X,影响仿真。
1.2不需要复位电路的情况
复位信号会给电路带来额外的开销,如增加芯片面积,增加设计复杂度。当某个电路输出任何时刻都可以不受任何复位信号的控制就有正确值时就可以不需要复位电路。
2.同步复位
同步复位指在时钟有效沿到来时进行复位(主要是复位触发器),受时钟信号影响。
2.1同步复位电路优点
(1)可以保证电路是100%的同步的。
(2)同步复位会综合为更小的触发器。???
(3)可以有效过滤外部复位信号的毛刺。可以过滤时钟周期中的毛刺,但当毛刺发生在时钟边沿时可能会出现亚稳态。当复位信号是由内部电路产生,信号发生翻转时就会有毛刺,这个时候就需要用同步复位电路。
2.2 同步复位电路的缺点
(1)许多工艺库不带有同步复位的触发器,并且综合工具不会识别复位信号,会当成普通信号处理,可能会被综合到离触发器端口较远的位置。
解决方法:添加相关的综合指令,让综合工具识别复位信号。
(2)当复位信号是以短脉冲形式出现时,同步复位电路可能会错过这个复位信号。
解决方法:
a.使用窄脉冲捕捉电路,这个电路也用于控制信号的跨时钟域传播时(快时钟域到慢时钟域)。
b.信号拓宽电路,可以用一个带异步复位的计数实现。
(3)同步复位电路受时钟影响很大,只有在时钟边沿到来时菜复位,当使用门控时钟时,很有可能复位信号到来时,时钟边沿由于其它信号的控制不会到来,这样会错过这个复位信号。
解决方法:门控时钟使用异步复位。
(4)总线设计中的同步复位问题:在总线控制中,系统上电复位的时候,我们要求不同芯片之间的总线工作在合理的状态上(比如处于高阻态或者输出);然而上电之后,由于系统时钟可能仍未正常工作,上电(同步)复位就可能无效,这个时候各个模块(芯片)就可能不会把总线接口设置为特定的状态,(当多个模块同时输出数据到总线上时)就可能导致电平冲突,严重的话会烧坏接口。
解决方法:
a.使用异步上电复位
b.同步复位信号控制三态门使能端
3.异步复位
异步复位指复位信号和时钟无关,只要复位信号到来,电路就复位。
3.1异步复位优点
(1) 复位信号的即时性,不受时钟信号影响,只要有效电路就复位。
(2)工艺库基本都带有异步复位的触发器单元,综合工具可以识别复位信号,综合出的复位信号直接接到复位端口,不存在传播延时的问题,不受其它信号的影响。
3.2 异步复位的缺点
(1)复位信号的撤离问题,异步复位信号有效时,电路立马复位,这个阶段不会发生问题,但当复位信号撤离时,若发生在时钟有效沿附近,就可能发生亚稳态,类比于同步设计中的建立时间和保持时间,有复位恢复时间和去除时间,复位信号的撤离不能发生在这两个时间段内。
并不是复位撤离违背复位回复时间和去除时间就一定会发生亚稳态,若复位值和输出值一直,就不会出现亚稳态,这也是后面设计及异步复位同步释放的关键
解决办法:异步复位的同步释放,因为第二级的在复位信号有效期间输入值和复位值一致,所以第二级触发器几乎不会出现亚稳态
同步释放后的复位信号是时钟同步信号,它经过复位分配缓冲树(复位树)平衡到各个端口的路径延时后,复位撤离不会违背复位恢复时间和去除时间。在多时钟域设计中,外部复位信号应按各自的时钟域进行同步释放。
(2)异步复位的抖动问题,异步复位电路会受到毛刺的影响,采用毛刺过滤电路
(3)DFT问题
在DFT的时候,如果异步复位信号不能直接被I/O引脚驱动,就必须将异步复位线和后面的的被驱动电路断开,用来保证DFT扫描和测试能够正确进行。总之异步复位增加了DFT的复杂性。
(4)复位状态不一致,复位信号经复位网络到达各个复位端口的时间不一致,有些复位信号撤离时可能会违背复位恢复时间和去除时间,产生亚稳态
解决方法:优化复位树