URL
https://opencores.org/ocsvn/mlite/mlite/trunk
[/] [mlite/] [trunk/] [vhdl/] [mem_ctrl.vhd] - Diff between revs 72 and 89
Go to most recent revision |
Show entire file |
Details |
Blame |
View Log
Rev 72 |
Rev 89 |
Line 124... |
Line 124... |
mem_data_w_v := data_write;
|
mem_data_w_v := data_write;
|
byte_sel := "1111";
|
byte_sel := "1111";
|
when mem_write16 =>
|
when mem_write16 =>
|
write_line := '1';
|
write_line := '1';
|
mem_data_w_v := data_write(15 downto 0) & data_write(15 downto 0);
|
mem_data_w_v := data_write(15 downto 0) & data_write(15 downto 0);
|
if address_data(1) = little_endian(1) then
|
if address_reg(1) = little_endian(1) then
|
byte_sel := "1100";
|
byte_sel := "1100";
|
else
|
else
|
byte_sel := "0011";
|
byte_sel := "0011";
|
end if;
|
end if;
|
when mem_write8 =>
|
when mem_write8 =>
|
write_line := '1';
|
write_line := '1';
|
mem_data_w_v := data_write(7 downto 0) & data_write(7 downto 0) &
|
mem_data_w_v := data_write(7 downto 0) & data_write(7 downto 0) &
|
data_write(7 downto 0) & data_write(7 downto 0);
|
data_write(7 downto 0) & data_write(7 downto 0);
|
bits := address_data(1 downto 0) xor little_endian;
|
bits := address_reg(1 downto 0) xor little_endian;
|
case bits is
|
case bits is
|
when "00" =>
|
when "00" =>
|
byte_sel := "1000";
|
byte_sel := "1000";
|
when "01" =>
|
when "01" =>
|
byte_sel := "0100";
|
byte_sel := "0100";
|
Line 195... |
Line 195... |
end if;
|
end if;
|
end case;
|
end case;
|
end if;
|
end if;
|
|
|
if nullify_op = '1' then
|
if nullify_op = '1' then
|
opcode_next := ZERO; --NOP
|
opcode_next := ZERO; --NOP after beql
|
end if;
|
end if;
|
|
|
if reset_in = '1' then
|
if reset_in = '1' then
|
mem_state_reg <= STATE_FETCH;
|
mem_state_reg <= STATE_FETCH;
|
opcode_reg <= ZERO;
|
opcode_reg <= ZERO;
|
© copyright 1999-2024
OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.