详细讨论异步FIFO的具体实现?
时间:10-02
整理:3721RD
点击:
我在网上看到一篇利用格雷码来设计异步FIFO,但是看他们写的一些源码,小弟有些不是很理解,在设计时为什么会出现Waddr和wptr两个关于写指针的问题,他们之间的关系是什么?wptr在定义时候为什么比Waddr多一位呀?
长知识了额,很不错
大神 明白其中的道理不?
我没有研究过具体代码,wptr这个不知道怎么定义的,但你说比addr宽1bit,这个我大概能猜到,这个是要求usewed用的,写地址减去读地址就是usedwed,但是循环了怎么办呢,多一bit就可以解决这个问题!
我后来又具体研究了一下,wptr就是它的写指针,因为本程序采用的是格雷码,多一位可以更好的判断它的空满状态,但是它的空满状态判断看的一头雾水,好难!
进来学习一下下了,
一起学习 一起学习
太谦虚了哦,呵呵
还送积分啊,太好了
真送啊,真好的,我需要积分
不错不错
Waddr应该是写地址,wptr是写指针,多一位是因为要用最高位来判断空满状态,而后面的其余位才代表地址
嗯嗯 确实是这样子的 哈哈
研一就被派出来公司实习,今天工程师给了一个项目的verilog设计代码,看不懂,整个人都蒙蔽了
看看就懂了,都是这样的
最近也在看异步FIFO,经典的就是国外的那篇
这个地方我也没搞懂
好像,Waddr是当前写入地址。如果有数据写入,就写入到这个地址里。
wptr 是下一个地址的指针,用于判断fifo的各种状态用的。