From a1afb1e9c5bb00f645f7b0df2e87d7c501a276b4 Mon Sep 17 00:00:00 2001 From: Jens Ahrensfeld Date: Sun, 8 Feb 2009 17:33:34 +0000 Subject: [PATCH] - SEL_O asserts correctly for uncached reads 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@324 cc03376c-175c-47c8-b038-4cd826a8556b --- lib/CPUs/MIPS/src/core/mips_bui.vhd | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/CPUs/MIPS/src/core/mips_bui.vhd b/lib/CPUs/MIPS/src/core/mips_bui.vhd index c7ff146..da12efa 100644 --- a/lib/CPUs/MIPS/src/core/mips_bui.vhd +++ b/lib/CPUs/MIPS/src/core/mips_bui.vhd @@ -147,6 +147,7 @@ architecture behavior of biu is signal DAT_I_dmem_rd : word_t; signal DAT_O_dmem_wr : word_t; signal SEL_O_dmem_wr : unsigned(3 downto 0); + signal SEL_O_dmem_rd : unsigned(3 downto 0); signal dcached : std_logic; signal dcache_en : std_logic; signal uncached_access : std_logic; @@ -308,7 +309,9 @@ inst_bout_fifo: entity work.fifo_sync_dist ADDR_O_dcache when dcache_mem_gnt = '1' else ADDR_O_icache when icache_mem_gnt = '1' else (others => '-'); - bout_fifo_sel_in <= SEL_O_dmem_wr when dmem_mem_wr_gnt = '1' else (others => '0'); + bout_fifo_sel_in <= SEL_O_dmem_wr when dmem_mem_wr_gnt = '1' else + SEL_O_dmem_rd when dmem_mem_rd_gnt = '1' else (others => '1'); + bout_fifo_we_in <= '1' when dmem_mem_wr_gnt = '1' else '0'; -- Instantiate synchronous FIFO @@ -382,6 +385,7 @@ dmem_rd_regs: if rising_edge(CLK_I) then if cpu_dmem_en = '1' and busy = '0' then ADDR_O_dmem_rd <= cpu_dmem_addr; + SEL_O_dmem_rd <= cpu_dmem_be; end if; end if; end process;