ext_timer_out <= (others => '0'); --TODO: delete when timer is connected
ext_gpmp_out <= (others => '0'); --TODO: delete when gpm is connected
- data_ram : r_w_ram
+ data_ram : r_w_ram_be
generic map (
- DATA_ADDR_WIDTH,
- WORD_WIDTH
+ DATA_ADDR_WIDTH
)
port map (
clk,
data_addr(DATA_ADDR_WIDTH+1 downto 2),
data_addr(DATA_ADDR_WIDTH+1 downto 2),
+ wb_reg_nxt.byte_en,
dmem_we,
- ram_data,
+ wb_reg_nxt.data, --ram_data,
data_ram_read
);
if hword = '1' then
-- case address(BYTEADDR-1 downto 0) is
case address_val is
- when "00" => byte_en(1 downto 0) := "11";
- when "10" => byte_en(3 downto 2) := "11";
+ when "00" =>
+ byte_en(1 downto 0) := "11";
+ when "10" =>
+ byte_en(3 downto 2) := "11";
+ wb_reg_nxt.data(31 downto 16) <= ram_data(15 downto 0);
when others => null;
end case;
elsif byte_s = '1' then
-- case address(BYTEADDR-1 downto 0) is
case address_val is
when "00" => byte_en(0) := '1';
- when "01" => byte_en(1) := '1';
- when "10" => byte_en(2) := '1';
- when "11" => byte_en(3) := '1';
+ when "01" =>
+ byte_en(1) := '1';
+ wb_reg_nxt.data(15 downto 8) <= ram_data(7 downto 0);
+ when "10" =>
+ byte_en(2) := '1';
+ wb_reg_nxt.data(23 downto 16) <= ram_data(7 downto 0);
+ when "11" =>
+ byte_en(3) := '1';
+ wb_reg_nxt.data(31 downto 24) <= ram_data(7 downto 0);
when others => null;
end case;
else