# 1\. 应用背景
## 1.1 亚稳态发生原因
在[FPGA]系统中,如果数据传输中不满足触发器的Tsu和Th不满足,或者复位过程中复位信号的释放相对于有效时钟沿的恢复时间(recovery time)不满足,就可能产生亚稳态,此时触发器输出端Q在有效时钟沿之后比较长的一段时间处于不确定的状态,在这段时间里Q端在0和1之间处于振荡状态,而不是等于数据输入端D的值。这段时间称为决断时间(resolution time)。经过resolution time之后Q端将稳定到0或1上,但是稳定到0或者1,是随机的,与输入没有必然的关系。
## 1.2 亚稳态发生场合
只要系统中有异步元件,亚稳态就是无法避免的,亚稳态主要发生在异步信号检测、跨时钟域信号传输以及复位电路等常用设计中。
## 1.3 亚稳态危害
由于产生亚稳态后,寄存器Q端输出在稳定下来之前可能是毛刺、振荡、固定的某一电压值。在信号传输中产生亚稳态就会导致与其相连其他数字部件将其作出不同的判断,有的判断到“1”有的判断到“0”,有的也进入了亚稳态,数字部件就会逻辑混乱。在复位电路中产生亚稳态可能会导致复位失败。怎么降低亚稳态发生的概率成了FPGA设计需要重视的一个注意事项。
# 2. 理论分析
## 2.1 信号传输中的亚稳态
在同步系统中,输入信号总是系统时钟同步,能够达到寄存器的时序要求,所以亚稳态不会发生。**亚稳态问题通常发生在一些跨时钟域信号传输以及异步信号采集上。**
它们发生的原因如下:
(1)在跨时钟域信号传输时,**由于源寄存器时钟和目的寄存器时钟相移未知**,所以源寄存器数据发出数据,数据可能在任何时间到达异步时钟域的目的寄存器,所以无法保证满足目的寄存器Tsu和Th的要求;
(2)在异步信号采集中,由于异步信号可以在任意时间点到达目的寄存器,所以也无法保证满足目的寄存器Tsu和Th的要求;
当数据在目的寄存器Tsu-Th时间窗口发生变化,也即当数据的建立时间或者保持时间不满足时,就可能发生亚稳态现象。如图2.1所示。
![](https://img.kancloud.cn/46/f4/46f40b9c7971f82c4ab1fd30be490425_1064x532.png)
由图可知,当产生亚稳态后Tco时间后会有Tmet(决断时间)的振荡时间段,当振荡结束回到稳定状态时为“0”或者“1”,这个是随机的。因此,会对后续电路判断造成影响。
## 2.2 复位电路的亚稳态
### 2.2.1 异步复位电路
在复位电路设计中,复位信号基本都是异步的,常用异步复位电路Verilog描述如下:
```
always @(posedge clk or negedge rst\_n)
begin
if(!rst\_n) a <= 1’b0;
else a <= b;
end
```
综合出来复位电路模型如图2.2所示:
![](https://img.kancloud.cn/2a/ed/2aedc5c0eefc9a53e87c9e6012129d1c_785x478.png)
图 2.2 异步复位电路模型
如图2.3所示,为复位电路复位时序图。如果异步复位信号的撤销时间在Trecovery(恢复时间)和Tremoval(移除时间)之内,那势必造成亚稳态的产生,输出在时钟边沿的Tco后会产生振荡,振荡时间为Tmet(决断时间),最终稳定到“0”或者“1”,就会可能造成复位失败。
![](https://img.kancloud.cn/63/8f/638ff4f6fff9b903e24d2a15ae61897b_1098x630.png)
图2.3 异步复位时序
## 2.2.1.1 恢复和去除时间(Recovery and Removal Time)
恢复时间(Recovery Time)是指异步控制信号(如寄存器的异步清除和置位控制信号)在“下个时钟沿”来临之前变无效的最小时间长度。这个时间的意义是,如果保证不了这个最小恢复时间,也就是说这个异步控制信号的解除与“下个时钟沿”离得太近(但在这个时钟沿之前),**没有给寄存器留有足够时间来恢复至正常状态,那么就不能保证“下个时钟沿”能正常作用,也就是说这个“时钟沿”可能会失效。**
去除时间(Removal)是指异步控制信号(如寄存器的异步清除和置位控制信号)在“有效时钟沿”之后变无效的最小时间长度。这个时间的意义是,如果保证不了这个去除时间,也就是说这个**异步控制信号的解除与“有效时钟沿”离得太近(但在这个时钟沿之后),那么就不能保证有效地屏蔽这个“时钟沿”,也就是说这个“时钟沿”可能会起作用。**
- 空白目录
- 流水线
- 流水线性能测评
- 计算机性能测评
- 流水线设计
- 购物车状态机
- 序列检测器
- 序列检测10010
- 序列检测10010带图
- 反相器
- 计数器
- 分频电路
- 偶数分频
- 奇数分频
- 小数分频
- 同步复位异步释放all
- 对的-异步复位同步释放原理
- 同步复位异步释放
- 异步复位为什么要同步释放 ?
- FPGA-异步复位同步释放 通俗解释
- 同步复位
- 状态机
- 状态机的分类
- 状态机5个要素
- FIFO
- 异步fifo中同步为什么要用两级触发器
- 亚稳态
- 亚稳态的产生机理、消除办法 (可以理解为什么打拍)
- 面向对象思想
- 为什么D触发器有setup time和hold time的要求
- Tsu,Tco,Th,Tpd的概念
- verilog
- 自启动
- 毛刺
- 冯诺依曼