我在书上看到了一个简单的同步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的地方存储的数据覆盖了吗? 谢谢高手解答
应该有个是否读出的标志。
我是菜鸟,刚开始是学的是VHDL,现在在看VERILOG,正好也在学FIFO,以我的看法,你红色代码的指令只是让指针回到0地址并没有动作,所有不会有覆盖一说吧,只有读出后地址内容才会为空啊。内容满后会发出OVERFLOW信号阻止再写。仅供参考
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) | Powered by Discuz! 7.0.0 |