1 / 9
文档名称:

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

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

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

分享

预览

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

上传人:565369829 2022/7/28 文件大小:171 KB

下载得到文件列表

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

相关文档

文档介绍

文档介绍:跨 时 钟 域 信 号 同 步 方 法
ASIC中心
1引言
基于FPGA勺数字系统设计中大都推荐采用同步时序的设计,也就是单时钟系统。 但是实际的工程中,纯粹单时钟系统设计的情况很少,特别是设计模块与外围芯片的通 信中,跨时钟域的情到的。这时就需要采用 脉冲同步器。这种同步器也是由 3个触发器组成,同时需要对发送信号做一些处理。
脉冲同步器
脉冲同步器的输入信号是一个单时钟宽度脉冲,它触发原时钟域中的一个翻转电路 (下图)。每当翻转电路接收到一个脉冲时,它就会在高、低电平间进行转换,然后通 过电平同步器到达异或门的一个输入端,而另一个信号经一个时钟周期的延迟进入异或 门的另一端,翻转电路每转换一次状态,这个同步器的输出端就产生一个单时钟宽度的 脉冲。
图:脉冲同步器的输入信号是一个单时钟宽度脉冲,它触发原时钟域中的一个翻转 电路
脉冲同步器的基本功能是从某个时钟域取出一个单时钟宽度脉冲,然后在新的 时钟域中建立另一个单时钟宽度的脉冲。脉冲同步器也有一个限制,即输入脉冲之间的 最小间隔必须等于两个同步器时钟周期。如果输入脉冲相互过近,则新时钟域中的输出 脉冲也紧密相邻,结果是输出脉冲宽度比一个时钟周期宽。当输入脉冲时钟周期大于两 个同步器时钟周期时,这个问题更加严重。这种情况下,如果输入脉冲相邻太近,则同 步器就不能检测到每个脉冲。
结绳法
由于双锁存器法在快时钟域向慢时钟域过渡中可能存在采样失效的问题, 我
们引入了一种安全的跨时钟域的方法:结纯法。结纯法适合任何时钟域的过渡(clk1 ,clk2
的频率和相位关系可以任意选定),如图4所示
图4中的_clk1表示该信号属于clkl时钟域,_clk2的信号表示该信号属于
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_clk1 表明 src_dat_clk1 已 经区clk2正确采样了,此后clk1时钟域就可以安全地而输系一个数据了。一可以看出, 结纯法的关键是将信号结绳以后,使其保持足够长的时间,以便另一个时钟可以正确采 样。图5描述了结纯法的具体实现,主要包括3个基本单元:Pluse2Toggle > Synchronizer
和 Toggle2Pluse 。
1*15藤维比的实现旅现恻
Pluse2Toggle 模块负责将两个脉冲信号结绳,即将单脉冲信号延长; Synchronizer模块用双锁存器法将得到的信号过渡到另一个时钟域; Toggle2Pluse模块
与Pluse2Toggle功能相对,即将延长的脉冲信号还原为单脉冲,这里用到了异或门。整 体的设计思想就是用Pluse2Toggle 将信号延长,用Synchronizer 过