|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
写了一个很简单的同步fifo,但是仿真的时候读写地址都没有自动加一,一直保持0,大家帮帮忙看看是什么原因哪?写跟读类似,就没贴出来。
fifo_read : process(reset,clk)
begin
if reset = '0' then
rd_addr <= 0;
data_buffer <= (others => '0');
elsif rising_edge(clk) then
if (rd_pulse = '1' and empty = '0') then --read request and fifo not empty
data_buffer <= fifo_memory(rd_addr);
rd_addr<=rd_addr+1;
if (rd_addr=m-1) then rd_addr<=0;
end if;
end if;
if (rd_req='1') then
fifo_out <=data_buffer;
else fifo_out <=(others=>'Z');
end if;
end if;
end process;
其中m是fifo的深度。
汗...,原来是rd_req和wr_req的问题。咋自己瞅半天都看出来问题在哪,一发出来就突然想到了呢,看来灵感是逼出来的哇
[ 本帖最后由 zhaoqing_cc 于 2009-4-18 20:16 编辑 ] |
|