在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 7502|回复: 19

怎么用flip flop 实现 两个不同 clock domain 的数据交换?

[复制链接]
发表于 2006-12-19 01:54:31 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
问题是这样的:
D 是 clock A domain 的数据, 怎样把 D 转换到 clock B domain? 就是怎样在clock B domain 采样到 D?
发表于 2006-12-19 13:58:31 | 显示全部楼层
1  asyncronous FIFO
2  握手信号,req&ack
3  转换成gray码再打两拍过来再变回来(如果是数据用这个方法估计有点不现实。。。)

你如果就用ff实现应该就是用第2个方法吧
发表于 2006-12-19 22:49:26 | 显示全部楼层
通过两个d触发器来实现!
 楼主| 发表于 2006-12-20 03:12:07 | 显示全部楼层
是要用2 个DFF, 但到底怎么连接好?
能不能给出连接方式,比如 Q1 --> D2 ,  Q2 AND X --> D1 什么的。
我实在想不出来。
多谢了。
发表于 2006-12-20 08:30:57 | 显示全部楼层
楼上说的有道理
发表于 2006-12-21 11:22:02 | 显示全部楼层
长见识了,呵呵
发表于 2007-1-3 01:44:25 | 显示全部楼层


原帖由 mcstyle 于 2006-12-19 01:54 发表
问题是这样的:
D 是 clock A domain 的数据, 怎样把 D 转换到 clock B domain? 就是怎样在clock B domain 采样到 D?




1. 首先保证Clock B能够采样到信号D,即必要时先扩展信号D的宽度(如果Clock A比Clock B频率高)。如果两个时钟的频率关系未知,那么可以采用B->A的反馈形式来扩展信号D的宽度;
2. 在Clock B domain中用多级串联FF同步信号D,一般情况下两级足以,但是如果极为强调可靠性,可以采用两级以上的串联结构;
3. 如果D是一组信号(例如总线),那么要用到异步FIFO,否则并列的同步电路会导致错误输出。注意异步FIFO要用格雷码来传递指针信息。

btw,搞明白亚稳态问题是解决跨时钟域问题的关键所在。
 楼主| 发表于 2007-1-3 12:08:22 | 显示全部楼层
真是好心人!
再次感谢!
发表于 2007-1-12 16:15:51 | 显示全部楼层
要考虑,两个时钟域速度,决定是用fifo还是简单的同步装置,搂主,可以再详细一些说明
发表于 2007-1-13 22:52:20 | 显示全部楼层


原帖由 windzjy 于 2007-1-12 16:15 发表
要考虑,两个时钟域速度,决定是用fifo还是简单的同步装置,搂主,可以再详细一些说明




在需要跨时钟域传递并行信号时,如果并行信号之间没什么相关性,那么就可以采用简单的多个同步电路,否则必须采用异步FIFO来保证信号间的关系。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条


小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-11-9 02:44 , Processed in 0.029599 second(s), 9 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表