微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 求助:这个读写地址怎么没有自动加一呢

求助:这个读写地址怎么没有自动加一呢

时间:10-02 整理:3721RD 点击:
写了一个很简单的同步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的问题。咋自己瞅半天都看出来问题在哪,一发出来就突然想到了呢,看来灵感是逼出来的哇

汗一个,抢个沙发吧

re
ding!

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top