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

 找回密码
 注册

手机号码,快捷登录

手机号码,快捷登录

搜帖子
楼主: 老扁

异步设计难题证答

[复制链接]
发表于 2010-5-29 11:30:29 | 显示全部楼层
好老的帖子,好老的问题。个人认为lz确实把简单问题复杂化了,其实就是用异步fifo,读、写方各维护自己的地址,采用gray编码。
具体到这个问题,使用4个32位的buf, 但地址用3位的gray码(为什么3位,2位是不是就够了?不知道的再想想),而且只需要输出方(即:clk2)采样clk1时钟域的地址,然后产生not_empty标志,这其实也就是clk2输出的valid信号,数据输出用clk2的读地址的低两位来选择。
这种结构对clk1,clk2的频率无任何要求,只是clk1的写fifo的数据率小于clk2的频率即可。
回复 支持 反对

使用道具 举报

发表于 2010-5-29 11:41:38 | 显示全部楼层
补充一点,两个异步时钟域之间互采,要么单根信号->即结绳法,要么是采用gray编码的多根信号,数据一般用fifo缓存,有时也可直接送到另一个时钟域(只要能保证是稳定的),例如在异步的AHB Bus Slave设计的时候。
回复 支持 反对

使用道具 举报

发表于 2011-7-29 19:10:40 | 显示全部楼层
回复 43# 老扁
怎么分解valid信号?
回复 支持 反对

使用道具 举报

发表于 2011-8-23 14:32:13 | 显示全部楼层
用个33位宽度的fifo,左侧clk1把32位数据和valid拼起来都作为数据往里写,右侧clk2往外读,再把valid分离开,后续用valid处理数据。
回复 支持 反对

使用道具 举报

发表于 2012-2-9 15:48:23 | 显示全部楼层
The basic question is how to do "async data transfer" reliable.

Solution is:
1. handshake. but transfer speed is slow.
2. async fifo. fast speed, but need more hardware.

You can trade off according to your requirement in start.
回复 支持 反对

使用道具 举报

发表于 2012-3-9 22:35:15 | 显示全部楼层
时钟欲切换
回复 支持 反对

使用道具 举报

发表于 2012-5-4 21:09:18 | 显示全部楼层
顶alanzheng,
多比特线可以用DMUX和异步FIFO实现,在这个case里,考虑到clk1:clk2=1:1或1:2的情况时,还是用异步FIFO实现,只不过这个异步FIFO可以简化,不用读写地址来回同步。
回复 支持 反对

使用道具 举报

发表于 2012-5-11 23:14:20 | 显示全部楼层

很老的帖子了,之前我们也有类似的设计,也是采用这样的方式处理的,
其实FIFO的结构上也可以做文章,这个FIFO不需要设计成通用的FIFO结构,只需要将空满信号传递到对端就可以了,这这在AMBA的总线转换中经常使用的,可以采用这一方式,不过采用通用的FIFO简单,直接实例化,
回复 支持 反对

使用道具 举报

发表于 2012-5-12 07:25:43 | 显示全部楼层
可以考虑clk2正负边缘一起采样,相当认为拔高clk2频率
回复 支持 反对

使用道具 举报

发表于 2012-5-29 23:38:10 | 显示全部楼层
难度很大啊!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

X

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

GMT+8, 2025-7-10 06:54 , Processed in 0.101520 second(s), 7 queries , Gzip On, MemCached On.

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