- removed explicit tag_ram_read

- remove state 'rd_cache'
Committed on the Free edition of March Hare Software CVSNT Server.
Upgrade to CVS Suite for more features and support:
http://march-hare.com/cvsnt/


git-svn-id: http://moon:8086/svn/vhdl/trunk@340 cc03376c-175c-47c8-b038-4cd826a8556b
This commit is contained in:
2009-02-11 10:32:19 +00:00
parent 905094be8b
commit 44ef835b7a
2 changed files with 9 additions and 20 deletions
+4 -10
View File
@@ -127,7 +127,7 @@ END COMPONENT;
return result;
end to_tram_data;
type cache_state_t is (init, ready, flush, mem_request, mem_access, mem_wait, mem_data, upd_cache, rd_cache);
type cache_state_t is (init, ready, flush, mem_request, mem_access, mem_wait, mem_data, upd_cache);
signal s, sn : cache_state_t;
signal cache_busy : std_logic;
@@ -159,7 +159,6 @@ END COMPONENT;
signal tram_dout : tram_data_t;
signal tram_addr_wr : unsigned(cache_index_width-1 downto 0);
signal tram_din : tram_data_t;
signal tram_re : std_logic;
signal tram_we : std_logic;
signal fill_count : natural range 0 to 2**word_index_width-1;
@@ -255,7 +254,7 @@ inst_tag_ram : dpram_1w1r
clka => CLK_I,
clkb => CLK_I,
en_a => '1',
en_b => tram_re,
en_b => '1',
we_a => tram_we,
addr_a => tram_addr_wr,
addr_b => tram_addr_rd,
@@ -327,13 +326,13 @@ cache_state:
request_count_rst <= '0';
CYC_O <= '0';
STB_O <= '0';
tram_re <= '0';
was_miss <= '0';
cache_fill <= '0';
tram_addr_wr <= to_unsigned(flush_index_count, cache_index_width);
cache_entry_in.tv_p <= (others => '0');
cache_entry_in.tag <= tag_index_reg;
cache_entry_in.valid <= '0';
sn <= s;
case s is
@@ -342,7 +341,6 @@ cache_state:
when ready =>
cache_busy <= '0';
cpu_reg_en <= '1';
tram_re <= cpu_en;
if cpu_en2 = '1' then
if cache_hit = '0' and cpu_we_reg = '0' then
sn <= mem_request;
@@ -361,7 +359,6 @@ cache_state:
sn <= ready;
if cpu_en = '1' then
cpu_reg_en <= '1';
tram_re <= '1';
end if;
end if;
when mem_request =>
@@ -393,11 +390,8 @@ cache_state:
tram_addr_wr <= cache_index_reg;
tram_we <= '1';
cache_entry_in.valid <= '1';
sn <= rd_cache;
when rd_cache =>
tram_re <= '1';
was_miss <= '1';
sn <= ready;
sn <= ready;
when others =>
sn <= ready;