文档详情

跨时钟域处理

s****a
实名认证
店铺
DOCX
162.26KB
约3页
文档ID:177509099
跨时钟域处理_第1页
1/3

adatbe lk快时钟域信号到慢时钟域有可能的情况是:bdatlbdat2快时钟域信号宽度比慢时钟信号周期窄,导致漏采 解决的方法有:1. 将快时钟域信号延长,至少有慢时钟周期的一到两个周期宽aclkadatbclkbdatlbdat22. 使用反馈的方法,快时钟域信号有效直到慢时钟域有反馈信号,表示已经正确采样此信 号,然后快时钟域信号无效adatbdat2domai n通过反馈的方式很安全,但是从上图可以看出来延时是非常大的慢时钟采快时钟信号alxlat 14—adatl! |bdatl1 bclk domain然后反馈信号再由快时钟采以上是简单的单个信号同步器的基本方法多个信号跨时钟域简单举例,b_load和b_en同步至a_clk时钟域,如果这两个信号有一个小的skew,将 导致在a_clk时钟域中两个信号并不是在同一时刻起作用,与在b_clk中的逻辑关系不同 解决的方法应该比较简单,就是将 b_load 和 b_en 信号在 b_clk 时钟域中合并成一个信 号,然后同步至 a_clk 中如果遇到不能合并的情况,如译码信号如下图aon[3]bdec[1]bdoc[0]ddec[1]Mtadec[0]X7:aCIkab dec[1;0]aen[1]aen[0]domain i:aen[2]sdec[l]Eidec[0lWRONG!aen[2J should notbe asserted如果Bdec[0]、bdec[1 ]间存在skew将导致同步至a_clk中后译码错误,出现误码。

在这 种情况下,建议加入另一个控制信号,确保bdec[0]、bec[1 ]稳定时采例如在bdec[0]、 bec[1 ]稳定输出后一到两个周期b_clk域输出一个en信号,通知a_clk域此时可以采 bdec[0]、bec[1 ]信号这样可确保正确采样数据路径同步 对数据进行跨时钟域处理时,如果采用控制信号同步的方式进行处理的话,将是非常浩 大的工程,而且是不安全的简单来说,数据同步有两种常见的方式:1. 握手方式2. FIFO简要说下握手方式,无非就是a_clk域中首先将data_valid信号有效,同时数据保持不 变,然后等待b_clk中反馈回采样结束的信号,然后data_valid信号无效,数据变化 如有数据需要同步则重复上述过程握手方式传输效率低,比较适用于数据传输不是 很频繁的,数据量不大的情况FIFO 则适合数据量大的情况, FIFO 两端可同时进行读/写操作,效率较高而且如果控 制信号比较多,也可采用fifo方式进行同步,将控制信息与数据打包,写入FIFO,在 另一端读取,解码,取得数据和控制信息。

下载提示
相关文档
正为您匹配相似的精品文档