当前位置:首页 > FPGA > 正文内容

CDC跨时钟域信号处理

浩雨4年前 (2022-08-17)FPGA7334

保证时序电路的时序要求:

建立时间:在有效的时钟沿到来之前,输入端的输入信号需要保持稳定不变的最小时间

保持时间:在有效的时钟沿到来之后,输入端的输入信号需要保持稳定不变的最小时间

image.png

CDC问题1:亚稳态

亚稳态原因:

image.png

亚稳态解决方法:对于单信号来说,使用 Double FF来进行信号同步

image.png

CDC问题2:数据收敛

数据收敛的原因:

image.png

image.png

数据收敛解决方法1:对信号进行格雷码编码(格雷码特点:相邻的两个编码之间,只有一位是不同的,而其他的相同)

image.png


对于无法使用格雷码编码的信号组,可以使用握手协议,来处理跨异步时钟域的问题

image.png

image.png

数据收敛解决方法2:FIFO

image.png


CDC问题3:数据丢失

数据丢失原因:输入端信号不能保持足够的时间 使得接收端不能采样到数据 导致数据丢失

image.png

数据丢失解决方法:延长输入信号

image.png

CDC问题4:多路扇出

多路扇出的原因:

image.png

多路扇出解决方法:将信号同步之后再多路扇出

image.png

CDC问题5:异步复位

恢复(recovery)时间 和 移除(removal)时间 的概念:

恢复时间:在有效的时钟沿到来之前,触发器的异步复位信号释放时 所要提前释放的最小时间

移除时间:在有效的时钟沿到来之后,触发器的异步复位信号释放时 所要保持不变的最小时间

image.png

异步复位信号释放时 不满足恢复时间和移除时间 就造成了异步复位问题的发生。


异步复位解决方法:异步复位信号同步电路

image.png

扫描二维码推送至手机访问。

版权声明:本文由我的FPGA发布,如需转载请注明出处。

本文链接:https://world.myfpga.cn/index.php/post/262.html

分享给朋友:

“CDC跨时钟域信号处理” 的相关文章

ALGO C4MB V11引脚参照表(持续更新)

ALGO C4MB V11引脚参照表(持续更新)

功能:常用引脚CLKPIN_E1LED0PIN_G15LED1PIN_F16LED2PIN_F15LED3PIN_D16KEY1PIN_E15KEY2PIN_E16KEY3PIN_M15KEY4PIN_M16RXDPIN_M2TXDPIN_G1功能:VGA引脚VGA_BLUE[0]PIN_C15VG...

Xilinx FIFO和ILA学习

Xilinx FIFO和ILA学习

`timescale 1ns / 1ps//-------------------------------------------------------//Filename       ﹕ FIFO_TOP.v//Author      ...

多路选择器

多路选择器

多路选择器:在多路数据传送过程中,能够根据需要将其中任意一路选出来的电路。二选一多路选择器 --- 模块框图in_1:输入信号in_2:输入信号sel:控制选择信号out:输出信号二选一多路选择器 --- 波形图in_1、in_2、sel 的波形是随机的。out 的波形根据控制选通信号而定。当 se...

3-8译码器

3-8译码器

译码:译码是编码的逆过程,在编码时,每一种二进制的代码,都赋予了特殊的含义,即都表示了一个确定的信号或者对象。把代码状态的特定含义翻译出来的过程叫做译码,实现译码操作的电路称为译码器。译码器:一类多输入多输出的组合逻辑电路器件,其可以分为:变量译码和显示译码两类3-8译码器 模块框图:输出信号定义为...

全加器(层次化设计)

全加器(层次化设计)

该篇博客根据上一篇半加器的设计,再结合层次化的设计思想来实现一个全加器!层次化设计理论部分:数字电路中根据模块层次的不同有两种基本的结构设计方法:自底向上的设计方法 和 自顶向下的设计方法自底向上(Bottom-Up)        自底向上的设计是一种传统的设计方法,对设计进行逐次划分的过程是从存...

单比特和多比特的信号处理

单比特和多比特的信号处理

信号跨时钟域传输时,两个时钟的上升沿相位差没有固定关系,所以采样时钟很容易出现建立保持时间违例而采到亚稳态。使用两级同步器处理:两级同步器能降低亚稳态发生的概率,只是使信号变为稳态再往下传输,保证安全但并不保证正确。如上图,A信号建立保持时间,导致B为亚稳态,但是由于有F3的存在,使其有足够的时间恢...