1 / 9
文档名称:

跨时钟域信同步方法种.docx

格式:docx   大小:166KB   页数:9页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

跨时钟域信同步方法种.docx

上传人:suijiazhuang2 2022/8/13 文件大小:166 KB

下载得到文件列表

跨时钟域信同步方法种.docx

相关文档

文档介绍

文档介绍:跨时钟域信号同步方法 6 种
ASIC中心
1引言
基于FPGA的数字系统设计中大都推荐采用同步时序的设计,也就是单时钟系统。 但是实际的工程中,纯粹单时钟系统设计的情况很少,特别是设计模块与外围芯片的通 信中,跨时钟域的情况经常不可同时需要对发送信号做一些处理。

脉冲同步器的输入信号是一个单时钟宽度脉冲,它触发原时钟域中的一个翻转电路 (下图)。每当翻转电路接收到一个脉冲时,它就会在高、低电平间进行转换,然后通 过电平同步器到达异或门的一个输入端,而另一个信号经一个时钟周期的延迟进入异或 门的另一端,翻转电路每转换一次状态,这个同步器的输出端就产生一个单时钟宽度的 脉冲。
图:脉冲同步器的输入信号是一个单时钟宽度脉冲,它触发原时钟域中的一个翻转 电路
脉冲同步器的基本功能是从某个时钟域取出一个单时钟宽度脉冲,然后在新的 时钟域中建立另一个单时钟宽度的脉冲。脉冲同步器也有一个限制,即输入脉冲之间的 最小间隔必须等于两个同步器时钟周期。如果输入脉冲相互过近,则新时钟域中的输出 脉冲也紧密相邻,结果是输出脉冲宽度比一个时钟周期宽。当输入脉冲时钟周期大于两 个同步器时钟周期时,这个问题更加严重。这种情况下,如果输入脉冲相邻太近,则同 步器就不能检测到每个脉冲。

由于双锁存器法在快时钟域向慢时钟域过渡中可能存在采样失效的问题,我 们引入了一种安全的跨时钟域的方法:结绳法。结绳法适合任何时钟域的过渡(clk1,clk2 的频率和相位关系可以任意选定),如图4所示。
图4结绳法波形示意
该信号属于 clk2 时钟域。在两次 src_req_clk1 之间被 src_vld_clk1 结绳(Pluse2Toggle)。将 src_vld_clk1用双锁存器同步以后,该信号转换为dst_req_clk2(Toggle2Pluse)。同理, 用 dst_vld_clk2 将 dat_req_clk2 结绳,dst_vld_clk2 表明在 clk2 时钟域中, src_dat_clk1已经可以进行正确的采样了。最后将dst_vld_clk2转换为 dst_ack_clk1(Synchronizer and Toggle2Pluse)。dst_ack_clk 1 表明 src_dat_clk1 已 经被clk2正确采样了,此后clk1时钟域就可以安全地传输下一个数据了。可以看出, 结绳法的关键是将信号结绳以后,使其保持足够长的时间,以便另一个时钟可以正确采 样。图5描述了结绳法的具体实现,主要包括3个基本单元:Pluse2Toggle> Synchronizer 和 Toggle2Pluse。
国5靖业汰的灾现原理闻
Pluse2Toggle模块负责将两个脉冲信号结绳,即将单脉冲信号延长;
Synchronizer模块用双锁存器法将得到的信号过渡到另一个时钟域;Toggle2Pluse模块 与Pluse2Toggle功能相对,即将延长的脉冲信号还原为单脉冲,这里用到了异或门。整 体的设计思想就是用Pluse2Toggle将信号延长,用Synchronizer过渡,再用 Toggle2Pluse还原,以保证另一个时钟域可以正确采样,而接收方用相反的流程送回响 应信号。
结绳法可以解决快时钟域