• 多时钟域设计——数据信号传输


    主要内容:

    • 跨时钟域数据传输的常用方法
    • 使用握手信号进行跨时钟域的数据信号传输
    • 使用FIFO进行跨时钟域的数据信号传输
    • 跨时钟域的数据信号传输总结

    同步器为什么不适合用于跨时钟域数据传输过程

    1. 一般情况下数据信号的都是多位的,以数据总线的形式传输。
    2. 同步器只能降低亚稳态传输的概率,不能确保正确的同步信号,使用同步器传输多位的数据信号会增大发生亚稳态的概率。

    因此如果简单的使用多组同步器进行数据信号跨时钟域传输,可能导致数据信号中多位数据在传输过程中发生错误。

    跨时钟域数据传输的常用方法

    1. 使用基于MUX的同步器
    2. 使用握手信号
    3. 使用FIFO

    时钟定义命名

    前级时钟=发送时钟=源时钟;

    后级时钟=采样时钟=接收时钟=目标时钟;

    使用基于MUX的同步器

    使用同步器同步valid信号,作为mux的选通信号。用于数据传输的选通。

    使用握手信号进行跨时钟域的数据信号传输

    根据发送时钟端数据信号的变化速率和采样时钟频率,可以分为一下三种情况。

    (1)数据变化速率比采样时钟频率低

    问题:上升沿检测电路检测的是什么信号的上升沿?检测异步时钟的上升沿。

    使用发送端的控制信号进行同步,在采样到慢时钟域发出的控制信号后,接收数据的时钟沿进行数据采样。

    使用如图所示的上升沿检测信号CE作为控制信号(或数据接收的使能信号)控制数据信号的传输。

    (2)数据变化速率比采样时钟频率略高

    由于发送时钟比接收时钟快,对于接收时钟而言,发送时钟相当于窄脉冲。

    为避免检测不到上升沿,可以结合窄脉冲捕获电路和上升沿检测电路进行边沿检测,并将结果作为使性能信号,但前提是发送时钟频率不能太快。

    (3)数据变化速率比采样时钟频率快很多

    问题:可能会导致数据采样不完整,数据丢失的现象。

    无法使用握手信号进行数据传输,需要使用FIFO。

    (4)握手的缺点

    每次传输数据都存在latency,且使用的控制信号越多,latency越严重。对于许多开放式数据传递应用程序,简单的两行握手序列就足够了。发送方将数据放在数据总线上,然后将“req”信号同步到接收时钟域。当在目标时钟域中识别到“ req”信号时,接收器将数据输入寄存器中(数据应在目标时钟域中至少有2/3个采样时钟沿保持稳定),然后传递“确认”通过同步器向发送者发出信号(确认)。当发送方识别出同步的“ ack”信号时,发送方可以发送新的数据。

     

    使用FIFO进行跨时钟域的数据信号传输

    FIFO设计

    同步FIFO架构: 

    如图所示为同步FIFO,DPRAM(双端RAM)作为FIFO的存储器,允许读写同步进行,由状态模块控制读写的指针和FIFO的状态。

    同步fifo表示fifo状态的表示方法

    异步FIFO架构: 

    异步FIFO用于对性能要求较高的设计中,尤其是时钟延迟比系统资源更为重要的环境中。

    可以使用与同步FIFO类似的双端RAM和单独读写端口实现,但是要注意产生fifo_empty和fifo_full时要避免出现亚稳态现象。

    避免使用二进制计数器实现指针

    在写请求有效时,写指针在写时钟作用下递增;在读请求有效时,读指针在读时钟下递增。

    由于读写指针分别与其各自的时钟同步,彼此之间异步,使用二进制计数器实现指针时,可能会导致比较指针值取样错误。

    跨时钟域的数据信号传输总结

    • 如果数据变化速率比采样速率低,或比采样速率略快时,可以使用握手信号进行跨时钟域数据传输;
    • 任何频率的数据变化速率和采样速率都可以使用FIFO;
    • FIFO的设计需要考虑full&empty信号的产生、格雷码的应用和FIFO深度;
  • 相关阅读:
    【杂谈】压行技巧(压代码)
    【UVA】11464 Even Parity(枚举子集)
    【POJ】2373 Dividing the Path(单调队列优化dp)
    【POJ】2329 Nearest number
    【BZOJ】1833: [ZJOI2010] count 数字计数(数位dp)
    【BZOJ】2809: [Apio2012]dispatching(左偏树)
    【BZOJ】2342: [Shoi2011]双倍回文(Manacher)
    【BZOJ】1912: [Apio2010]patrol 巡逻(树的直径)
    【BZOJ】1911: [Apio2010]特别行动队(斜率优化dp)
    【BZOJ】1913: [Apio2010]signaling 信号覆盖(计算几何+计数)
  • 原文地址:https://www.cnblogs.com/lizhiqing/p/12677013.html
Copyright © 2020-2023  润新知