- added MRDY_O for I/D-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@757 cc03376c-175c-47c8-b038-4cd826a8556b
This commit is contained in:
2010-03-07 16:00:53 +00:00
parent e5f5e1d0e3
commit c6983bd768
3 changed files with 12 additions and 1 deletions
+2
View File
@@ -40,6 +40,7 @@ ENTITY dcache IS
CLK_I : in STD_LOGIC; CLK_I : in STD_LOGIC;
ACK_I : in STD_LOGIC; ACK_I : in STD_LOGIC;
SRDY_I : in STD_LOGIC; SRDY_I : in STD_LOGIC;
MRDY_O : out STD_LOGIC;
ADDR_O : out word_t; ADDR_O : out word_t;
DAT_I : in word_t; DAT_I : in word_t;
STB_O : out STD_LOGIC; STB_O : out STD_LOGIC;
@@ -349,6 +350,7 @@ cache_state_next:
end if; end if;
end process; end process;
MRDY_O <= fill_count_en;
ADDR_O <= request_addr; ADDR_O <= request_addr;
cpu_busy <= cache_busy; cpu_busy <= cache_busy;
+3
View File
@@ -40,6 +40,7 @@ ENTITY icache IS
CLK_I : in STD_LOGIC; CLK_I : in STD_LOGIC;
ACK_I : in STD_LOGIC; ACK_I : in STD_LOGIC;
SRDY_I : in STD_LOGIC; SRDY_I : in STD_LOGIC;
MRDY_O : out STD_LOGIC;
ADDR_O : out word_t; ADDR_O : out word_t;
DAT_I : in word_t; DAT_I : in word_t;
STB_O : out STD_LOGIC; STB_O : out STD_LOGIC;
@@ -313,7 +314,9 @@ cache_state_next:
end if; end if;
end process; end process;
MRDY_O <= fill_count_en;
ADDR_O <= fill_tag & fill_cache_index & req_word_index & "00"; ADDR_O <= fill_tag & fill_cache_index & req_word_index & "00";
cpu_busy <= cache_busy; cpu_busy <= cache_busy;
cpu_dout <= data_ram_data_rd; cpu_dout <= data_ram_data_rd;
+7 -1
View File
@@ -82,6 +82,7 @@ architecture behavior of biu is
CLK_I : in STD_LOGIC; CLK_I : in STD_LOGIC;
ACK_I : in STD_LOGIC; ACK_I : in STD_LOGIC;
SRDY_I : in STD_LOGIC; SRDY_I : in STD_LOGIC;
MRDY_O : out STD_LOGIC;
ADDR_O : out word_t; ADDR_O : out word_t;
DAT_I : in word_t; DAT_I : in word_t;
STB_O : out STD_LOGIC; STB_O : out STD_LOGIC;
@@ -106,6 +107,7 @@ architecture behavior of biu is
CLK_I : in STD_LOGIC; CLK_I : in STD_LOGIC;
ACK_I : in STD_LOGIC; ACK_I : in STD_LOGIC;
SRDY_I : in STD_LOGIC; SRDY_I : in STD_LOGIC;
MRDY_O : out STD_LOGIC;
ADDR_O : out word_t; ADDR_O : out word_t;
DAT_I : in word_t; DAT_I : in word_t;
STB_O : out STD_LOGIC; STB_O : out STD_LOGIC;
@@ -140,6 +142,8 @@ architecture behavior of biu is
signal CYC_O_dmem_wr : std_logic; signal CYC_O_dmem_wr : std_logic;
signal SRDY_I_icache : std_logic; signal SRDY_I_icache : std_logic;
signal SRDY_I_dcache : std_logic; signal SRDY_I_dcache : std_logic;
signal MRDY_O_icache : std_logic;
signal MRDY_O_dcache : std_logic;
signal ADDR_O_icache : word_t; signal ADDR_O_icache : word_t;
signal ADDR_O_dcache : word_t; signal ADDR_O_dcache : word_t;
signal ADDR_O_dmem_rd : word_t; signal ADDR_O_dmem_rd : word_t;
@@ -244,6 +248,7 @@ inst_icache : icache
STB_O => STB_O_icache, STB_O => STB_O_icache,
CYC_O => CYC_O_icache, CYC_O => CYC_O_icache,
ADDR_O => ADDR_O_icache, ADDR_O => ADDR_O_icache,
MRDY_O => MRDY_O_icache,
DAT_I => DAT, DAT_I => DAT,
ACK_I => ACK, ACK_I => ACK,
SRDY_I => SRDY_I_icache, SRDY_I => SRDY_I_icache,
@@ -269,6 +274,7 @@ inst_dcache : dcache
CYC_O => CYC_O_dcache, CYC_O => CYC_O_dcache,
STB_O => STB_O_dcache, STB_O => STB_O_dcache,
ADDR_O => ADDR_O_dcache, ADDR_O => ADDR_O_dcache,
MRDY_O => MRDY_O_dcache,
DAT_I => DAT, DAT_I => DAT,
ACK_I => ACK, ACK_I => ACK,
SRDY_I => SRDY_I_dcache, SRDY_I => SRDY_I_dcache,
@@ -315,7 +321,7 @@ inst_bin_fifo: entity work.fifo_async
DAT <= bin_fifo_dout; DAT <= bin_fifo_dout;
ACK <= not bin_fifo_empty; ACK <= not bin_fifo_empty;
bin_fifo_we <= ACK_I; bin_fifo_we <= ACK_I;
bin_fifo_re <= read_cycle; bin_fifo_re <= dmem_mem_rd_gnt or MRDY_O_icache or MRDY_O_dcache;
-- Instantiate synchronous FIFO -- Instantiate synchronous FIFO
inst_bout_fifo: entity work.fifo_async inst_bout_fifo: entity work.fifo_async