同步电路设计
同步时钟电路的优点:
- 在同步设计中,EDA工具可以保证电路系统的时序收敛,有效避免了电路设计中竞争冒险现象。
- 由于触发器只有在时钟边缘才改变取值,很大限度地减少了整个电路受毛刺和噪声影响的可能。
亚稳态
- 亚稳态是指触发器无法在某个规定时间段内达到一个可确认的状态。
- 当一个触发器进入亚稳态时,既无法预测该单元的输出电平,也无法预测何时输出才能稳定在某个正确的电平上。(电路在翻转的时候)
- 在这个期间,触发器输出一当中间级电平,或者可能处于振荡状态,并且这种无用的输出电平可以沿信号通道上的各个触发器级联式传播下去。
亚稳态不能从根本上消除,但是可以降低影响
$MTBF=\frac{e^{t_{MET}/C_2}}{C_1f_{CLK}f_{DATA}}$
$t_{MEF}$
寄存器从时钟上升沿触发后的时序余量时间
指正常没有亚稳态情况下,寄存器输出信号从源寄存器到目的寄存器的建立时间余量。
$f_{CLK}$
接收时钟域的时钟频率
$f_{DATA}$
数据的变化频率
$C_1$、$C_2$
与器件有关的参数
为了避免上节所述的亚稳态问题,就应当使参数MTBF
尽可能的大,通常采用的方法是双锁存器法,即在一个信号进入另一个时钟域之前,将该信号用两个锁存器连续锁存两次,最后得到的采样结果就可以消除亚稳态问题。
优缺点
- 结构简单、易实现。
- 增加了两级触发器延时
- 当快时钟域转到慢时钟域时,易造成慢时钟采样丢失(还未来得及采样,数据就变化了)。故常用于慢时钟域转到快时钟域
- 两级触发器已经将MTBF变得足够大
- 三级或者更多级虽然能将亚稳态出现概率降得更低,但是影响电路效率
边沿检测同步器
从慢时钟转变为快时钟
适用条件:
输入数据的宽度必须比一个接受时钟周期加上一个同步触发器的old时间要长,最安全的就是两个同步周期宽度。
脉冲同步器
从快时钟变为慢时钟
同步器比较
类型 | 应用 | 输入 | 输出 | 限制 |
---|---|---|---|---|
电平检测 | 同步电平信号 时钟域任何时钟域的传输 |
电平 | 电平 | 输入信号必须保持 两个接受时钟周期宽度 每一次同步之后 输入信号必须恢复到无效状态 |
边沿检测 | 检测输入信号的上升沿和下降沿 适用于低频时钟域向高频时钟域传输 |
电平或脉冲 | 脉冲 | 输入信号必须保持 两个接受时钟周期宽度 |
脉冲检测 | 同步单周期脉冲信号 适用于高频时钟域向低频时钟域传输 |
脉冲 | 脉冲 | 输入的脉冲时间的距离必须 保持两个接收时钟周期以上 |
单bit信号跨时钟域传输
- 信号从快时钟域到慢时钟域过渡时,慢时钟将可能无法对变化太快的信号实现正确采样
- 上述同步器法对两个时钟之间的关系要求很严格,而“结绳法”适合任何时钟域的过渡。
将快时钟信号的脉冲周期延长,等到慢时钟同步采样后再“解绳”,还原为原来的脉冲周期宽度。
在慢时钟采样快时钟的时候,结绳法适合采样数据较少即脉冲间隔较大的控制信号。
即脉冲间隔Ta>3Tb;即等待3个clkB时钟后,完成复位,才允许下一个输入脉冲。
快时钟到慢时钟
结绳就是将单脉冲延长,以方便采集到数据
- 利用脉冲的边沿做时钟
- 利用脉冲的电平(部分场合要求最小脉冲宽度)做选择器或者异步复位,置位。
另外的关键点就是什么时候结绳结束(采集到了数据就要让对方回到初始状态)
- 利用采集到的脉冲做异步复位,置位
- 利用采集到的脉冲再次结绳采集做握手响应信号
特点
- 结绳法可以解决快时钟域向慢时钟域过渡的问题,且其适用的范围很广
- 结绳法实现较为复杂,特别是其效率不高,在对设计性能要求较高的场合应该慎用
数据流
数据流大多具有连续性,即背靠背传输;数据流要求信号具有较快的传输速度;
通常使用SRAM
和FIFO
解决传输问题
打两拍
将地址总线打两拍
●为了避免亚稳态传播
不能消除亚稳态现象
●因为时钟异步,亚稳态不可避免,但是可以极大降低亚稳态传播的概率
低频情况
●STA不需要分析这里的异步时序,因为寄存器都可以在一拍内将亚稳态消除,恢复到正常0/1态。
高频情况
●不一定,尤其在28m工艺以下,需要检查两级触发器的延迟保证延迟低,提高系统MTBF
。
同步复位异步释放
时序电路必须有复位,组合逻辑电路不需要复位
两段式FSM
两段式FSM
描述方法
其输出一般使用组合逻辑描述,而组合逻辑易产生毛刺等不稳定因素。
如果时序允许插入一个额外的时钟节拍,用于消除毛刺
当不允许使用额外节拍,则改为使用三段式FSM
三段式FSM
优势
- 使
FSM
做到了同步寄存器输出 - 消除了组合逻辑输出的不稳定与毛刺的隐患
- 更利于时序路径分组
- 在
FPGA/CPLD
等可编程逻辑器件上的综合与布局布线效果更佳
一段式、两段式、三段式分别使用1、2、3个always
块,反之则不成立