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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
楼主: 杰克淡定

[原创] Verilog基本电路设计之三(异步FIFO)

[复制链接]
发表于 2016-6-20 13:38:16 | 显示全部楼层
回复 9# 杰克淡定
这是之前别人问我的一个问题, Depth>=8有可能多了,我觉得这个问题的实质考虑的是,一个写信号,如何传递到读时钟域影响not_empty, 再回传到写时钟域影响not_full, 3拍过去,3拍回来,6好像就可以了。我需要做个仿真看看。
另外共享两篇SNUG关于ASYNCFIFO的文章,开拓下思路,一篇和本文思路一致,另一篇思路较新颖。

CummingsSNUG2002SJ_FIFO1.pdf (136.85 KB, 下载次数: 95 ) CummingsSNUG2002SJ_FIFO2.pdf (120.8 KB, 下载次数: 86 )
 楼主| 发表于 2016-6-20 13:44:06 | 显示全部楼层
回复 10# haimo

wptr_gray = (wptr_wclk >> 1) ^ wptr_wclk ;
wptr_wclk是dff输出,wptr_gray一样有毛刺,这是组合逻辑。


建议你去把数字逻辑电路基础的竞争冒险复习一下,对你的设计提高有好处。
发表于 2016-6-20 15:06:44 | 显示全部楼层
回复 12# 杰克淡定

想明白了,谢谢。受益匪浅
发表于 2016-6-21 08:58:52 | 显示全部楼层
很不错,学习了。
LZ准备搞个系列吗?大力支持呀……
发表于 2016-6-21 17:15:14 | 显示全部楼层
回复 7# yaya126

同频不同相就是async的,而不是sync的了,另外深度是要看你的应用场景的。
发表于 2016-6-21 17:30:20 | 显示全部楼层
我问楼主两个问题:
1. 你知道你定义的二维数组会被综合成什么电路么?
2. 你知道你组合逻辑中的‘==’会被综合成什么电路么?

另外建议你把同一个时钟域的always块写到一起,不要两个时钟域混到一起。
发表于 2016-6-21 18:36:16 | 显示全部楼层
回复 16# cqugjw
听大神高论,来科普下你的理解。
 楼主| 发表于 2016-6-21 19:21:28 | 显示全部楼层
回复 16# cqugjw

1、这里的二维数组会综合成寄存器
2、以两个单bit的变量为例,a==b一般会直接综合成库里的同或门XNR,也可以由反向器与门或门之类组合得到,综合工具会在满足时序前提选择最小面积类型。如果是变量和常量比较,那就简单不用说了。

不过我没明白你问这个问题有何用意,或者你有何特殊看法?

最后,你说的不同时钟域分开写,的确,你的说法是正确的。规范的编码,应该把不同时钟域分成单独的.v来写,这里为了显示阅读方便而放在了一个.v。
发表于 2016-6-21 21:30:35 | 显示全部楼层
回复 15# cqugjw
我没有说是sync 吧?
发表于 2016-6-21 21:30:39 | 显示全部楼层
回复 15# cqugjw
我没有说是sync 吧?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


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

GMT+8, 2024-11-24 11:48 , Processed in 0.020988 second(s), 8 queries , Gzip On, Redis On.

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