一、同步复位
1、优点
一般能保证电路是100%同步的
在时钟的有效沿进行复位,时钟可以起到过滤毛刺的作用
2、缺点
复位信号的时长必须要大于一个时钟周期,才能被时钟采样到起到复位系统的作用。
大多数寄存器都自带异步复位端口,采用同步复位的话,会消耗额外的资源。
在低功耗设计中使用门控时钟时,可能会出现问题。
使用同步复位的一个问题是综合工具无法分辨复位信号和其他数据信号。
二、异步复位
1、优点
使用异步复位的最大好处是能保证数据路径上是干净的,能够保证没有任何复位信号加在数据路径上。最明显的优势是电路不管有没有时钟都能复位。
2、缺点
在DFT时,如果异步复位信号不能直接被I/O管脚驱动,就必须将异步复位线路与复位驱动器断开保证DFT扫描和测试的正确。
异步复位最大的问题是不管产生或撤销复位信号,都是一个异步过程,产生复位信号不存在问题,但是撤销时就出现了问题,如果异步复位在触发器时钟有效沿附近释放,触发器的输出就会进入亚稳态,因此导致SOC的复位状态丢失。
异步复位的另一个问题与其源头有关,即由板级或系统复位所产生的的噪声或毛刺引发的伪复位,需要设计毛刺过滤器来消除复位电路上毛刺的影响。
异步复位需要确保满足时序要求。
使用异步复位需要避免亚稳态的产生,即复位如果发生在时钟有效沿左右,不满足recovery time(恢复时间)和removal time(移除时间),如果在时钟的recovery time(恢复时间)和removal time(移除时间)之间的窗口内触发复位信号,都会产生亚稳态。
recovery time(恢复时间):
如果复位信号在时钟有效沿之前撤销,并且离时钟有效沿非常接近,再加上时钟有效沿的离散性,那么极有可能一部分触发器仍处于复位状态中而对时钟沿没有响应,而一部分触发器有响应,那么从这一时刻开始,电路就开始出错了。
removal time(移除时间):
如果复位信号在时钟有效沿之后撤销,并且离时间有效沿非常接近,再加上时钟有效沿的离散性,极有可能一部分触发器从复位状态中恢复并响应了时钟,而一部分触发器没有响应,那么从这一时刻开始,电路就开始出错了。
解决的办法:异步复位,同步释放
三、异步复位、同步释放
异步复位、同步释放是指复位信号产生时不受时钟信号的控制,但是释放的时候受到时钟信号的同步。主要目的是防止复位信号释放时候产生亚稳态。
异步复位:当复位信号拉低时,直接进入复位状态。
同步释放:当复位信号释放时,加入两级同步缓存器,电路不会立即释放,而是同步到时钟有效时再进行释放。
为什么两级触发器可以防止亚稳态?
1.假设第一级触发器不满足建立时间,它在第一个脉冲到来之后输出的数据就存在亚稳态。
2.在下一个脉冲到来之前,其输出的亚稳态数据必须在一段时间内稳定下来,而且稳定的数据必须满足第二级触发器的建立时间。
注:亚稳态是指触发器无法在规定时间内达到稳定确认的状态。
解决方法:1、降低时钟频率
2、用反应更快的FF
3、使用同步器 (2级或多级触发器打拍)
4、改善时钟质量,用边沿变化快的时钟信号
5、避免用变化过快 ,过于频繁的信号进行跨时钟采样
6、架构上增加data toggle rate
为什么会产生亚稳态?
当输入数据不能满足寄存器的建立时间、保持时间的时候,寄存器就会捕捉到输入数据在电平未定义区间的数据。会导致:逻辑误判和亚稳态传播。可以通过电路特殊设计减轻逻辑误判。