前言
亚稳态作为一种常见的现象,经常发生于异步电路,跨时钟域传输,异步信号采集和复位电路中,其轻则导致输出的信号错误,重则会引起系统故障,因而了解亚稳态的成因及解决方式具有重要意义。
一、建立时间和保持时间
在时序电路中,我们一般采用触发器在时钟作为参考的条件下对数据进行采样,例如在时钟上升沿时进行数据采样,数据在上升沿之前被送入到触发器端口,在时钟上升沿结束后经过触发器内部被送出去。而这一过程中就牵扯到了我们的建立时间(setup)和保持时间(hold)。
1. setup:
时钟的上升沿来临前,数据需要保持的时间,通俗的理解就是我们要在9点去炒土豆片,9点就好比上升沿,土豆片就是我们的数据,而我们用的锅就是触发器。在9点之前,需要我们将土豆片准备好, 这个准备好不是说有土豆片就行, 还需要在下锅之前保证是土豆片,我们把这个9点下锅之前需要保证是土豆片的时间叫做setup建立时间,也就上升沿来临前,数据需要保持的时间。
2. hold:
时钟的上升沿来临后,数据需要保持的时间。还是那个炒土豆片那道菜,9点这个点需要完成下锅做好出锅,而9点出锅这个过程需要保证我们的土豆还是原来的土豆片,不能变成别的如萝卜片之类的,这也就是在上升沿来临之后,数据需要保持的时间。
3. setup及hold的影响:
会产生数据的亚稳态状态,从而会直接影响到我们数据的准确性及系统的性能。亚稳态接下来介绍!
二、亚稳态及恢复时间及移除时间的理解
1.亚稳态
亚稳态是什么:亚稳态是一种信号状态,我们知道信号分为高点平和低电平,这种介于高电平和低电平之间的状态叫做亚稳态。
亚稳态的产生:由于信号输入到触发器及输出这个过程中,信号的保持不满足我们的建立时间和保持时间,从而产生不定状态(这种不定状态一方面是不确定输出的数据是高电平或者低电平,另一方面是无法预测这种不定状态何时能到达稳定)
亚稳态一般来源:一般产生在异步电路中,跨时钟域传输中,异步信号采集和复位电路中。
造成的影响:小则数据输入错误,重则引起系统故障。
2.恢复时间和移除时间(复位信号)
recovery time(恢复时间):对于异步复位而言,如低电平复位,时钟上升沿采样。当复位信号从低电平到达高电平时,与其最近的时钟上升沿之间的间隔的最小时间。通俗点来讲,还是那道炒土豆片,不过添加了9点前一个洗锅的的信号,在洗锅信号结束后要完成洗锅动作,并保持一段时间,等9点到时,直接下土豆片。若9点前洗锅未结束,则直接回产生亚稳态现象。
tremoval time (移除时间):对于异步fifo而言,时钟上升沿与其紧随其后的复位信号释放之间所需要的最小时间。就是在最后一个时钟上升沿时,需要保持住洗锅这个动作这段时间。
总结: 在恢复时间和移除事假段内需要保持住信号的稳定,这样在时钟上升沿时才能踩到准确的信号。
总结
时序造成的各种信号的变化往往与电路的实际结构有关,结构决定功能和隐患。