跨时钟域数据传输方法总结

亚稳态:亚稳态是指触发器无法在某个规定时间段内达到一个可确认的状态

如何解决亚稳态带来的问题:1.避免采样采到亚稳态。2.降低亚稳态带来的误差。

单bit跨时钟域:   慢时钟域跨到快时钟域:两级采样法,第一级采到的输出电平驱动可能不满足要求,需要再次采样。

        快时钟域跨到慢时钟域:保证快时钟域的信号持续周期大于一个慢时钟域的时钟周期。

多bit跨时钟域:异步fifo:异步fifo的先入先出原则很适用跨时钟域(相当于一个缓冲区,采样缓冲区内的数据不用考虑亚稳态)

       握手处理:发送端存数据,设置发送准备ok标志位,接收端识别标志接受。(每步间隔一个时钟周期)

FPGA跨时钟域并行处理多路数据(12路转16路为例):

考虑角度:实现方式:异步fifo

     FPGA的fifo核的限制:存取位宽必须相同或者是整数倍的关系。

     编程思路:1.定义16路fifo,存的端口来回变化,取的端口不变。优点:编程思路简单。缺点:逻辑太深,程序稳健性不高。

          2.定义一路fifo,先缓存四个存周期的数据,再分为三份去存,取端口一直取。优点:稳健性高。缺点:程序层次性较低,不利于维护和复用。

          3.定义四路fifo,类似2方法,但将之分为四个3路转思路。要注意的是,因为输出输出要对应每个周期加12、16所以要每路的各输入间隔要为4.

posted @ 2022-12-26 10:42  老少皆宜  阅读(253)  评论(0)    收藏  举报