文章目录
1.同步时钟
数字设计中,一般认为,频率相同或频率比为整数倍、且相位相同或相位差固定的两个时钟为同步时钟。
或者理解为,时钟同源且频率比为整数倍的两个时钟为同步时钟。
同源同频同相位
同源同频不同相位
同源不同频但存在整数倍分频比
2.异步时钟
工作在异步时钟下的两个模块进行数据交互时,由于时钟相位关系不可控制,很容易导致建立时间和保持时间 violation。以下 3 种情况下的时钟可以认为是异步的。
不同源
同源但频率比不是整数倍
同源虽频率比为整数倍但不满足时序要求
当信号从快时钟域传递到慢时钟域时,但如果信号在快时钟域翻转速率过快,慢时钟域可能不会安全的采集到从快时钟域传来的信号,这也可以认为是异步问题。
3.跨时钟域传输:慢到快
延迟打拍法
最常用的同步方法是双级触发器缓存法,俗称延迟打拍法。异步信号从一个时钟域进入另一个时钟域之前,将该信号用两级触发器连续缓存两次,可有效降低因为时序不满足而导致的亚稳态问题。电路示意图如下。
一般设计中使用两级触发器进行缓存即可满足设计时序需求。大量实验表明,三级触发器缓存可解决 99% 以上的此类异步时序问题。
双寄存器并不能消除亚稳态,它只是减少了出现亚稳态的概率,将其减小到了一个几乎可以忽略不计的程度。触发器进入亚稳态的时间可以用参数 MTBF(Mean Time Between Failures,平均故障间隔时间)来描述,MTBF 即触发器采样失败的时间间隔,其计算公式为:
延迟采样法
此方法主要针对多位宽的数据传输。
例如当两个异步时钟频率比为 5 时,可以先用延迟打拍的方法对数据使能信号进行 2 级打拍缓存,然后再在快时钟域对慢时钟域的数据信号进行采集。
该方法的基本思想是保证信号被安全采集的时刻,而不用同步多位宽的数据信号,可节省部分硬件资源。
4.跨时钟域传输:快到慢
https://www.runoob.com/w3cnote/verilog-sync.html
电平信号同步
同步逻辑设计中,电平信号是指长时间保持不变的信号。保持不变的时间限定是相对于慢时钟而言的。只要快时钟的信号保持高电平或低电平的时间足够长,以至于能被慢时钟在满足时序约束的条件下采集到,就可以认为该信号为电平信号。
既然电平信号能够被安全的采集到,所以从快时钟域到慢时钟域的电平信号也采用延迟打拍的方法做同步。
脉冲信号同步
同步逻辑设计中,脉冲信号是指从快时钟域输出的有效宽度小于慢时钟周期的信号。如果慢时钟域直接去采集这种窄脉冲信号,有可能会漏掉。
可通过"握手传输"的方法进行同步。
多位宽数据同步
解决此类异步问题的常用方法是采用异步 FIFO (First In First Out)。