Board logo

标题: 请教关于FIFO的问题 [打印本页]

作者: xiaoqiang87    时间: 2009-2-21 13:30     标题: 请教关于FIFO的问题

我在书上看到了一个简单的同步FIFO的VHDL描述,其中有一段关于写指针修改的描述如下:

write_pointer:process(aclr, clock) --aclr是异步复位信号; clock是工作时钟

begin

if (aclr='0') then

wadd<=(others=>'0'); --wadd是写地址信号

elsif (clock'event and clock='1') then

if (we='1') then --we是写使能信号

if (wadd=7) then --FIFO深度为8

wadd<=(others=>'0');

else

wadd<=wadd+'1';

end if;

end if;

end if;

............

请问关于红色部分代码,难道是写满(写地址为7)以后又要从头开始写吗???这样不是把之前地址为0的地方存储的数据覆盖了吗? 谢谢高手解答


作者: flanix    时间: 2009-2-22 21:27

应该有个是否读出的标志。


作者: flanix    时间: 2009-3-5 17:22

应该有个写满,写不满的标志。
作者: meizi10199    时间: 2009-4-30 11:39

我是菜鸟,刚开始是学的是VHDL,现在在看VERILOG,正好也在学FIFO,以我的看法,你红色代码的指令只是让指针回到0地址并没有动作,所有不会有覆盖一说吧,只有读出后地址内容才会为空啊。内容满后会发出OVERFLOW信号阻止再写。仅供参考






欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0