architecture Behavioral of BusHandler_record is
--Output signals
- signal rx_data : std_logic_vector(31 downto 0);
- signal rx_read : std_logic;
- signal rx_write : std_logic;
- signal rx_addr : std_logic_vector(6 downto 0);
+ signal rx_data : std_logic_vector(31 downto 0);
+ signal rx_read : std_logic;
+ signal rx_read_r : std_logic;
+ signal rx_write : std_logic;
+ signal rx_addr : std_logic_vector(6 downto 0);
begin
BUS_TX.ack <= '0';
BUS_TX.unknown <= '0';
BUS_TX.nack <= '0';
+ rx_read_r <= rx_read;
- if rx_read = '1' then
+ if rx_read_r = '1' then
if to_integer(unsigned(rx_addr)) > BUS_LENGTH then -- if bigger than 64
BUS_TX.unknown <= '1';
else
- BUS_TX.data <= DATA_IN(to_integer(unsigned(rx_addr)));
- BUS_TX.ack <= '1';
+ BUS_TX.data <= DATA_IN(to_integer(unsigned(rx_addr)));
+ BUS_TX.ack <= '1';
end if;
elsif rx_write = '1' then
if to_integer(unsigned(rx_addr)) > BUS_LENGTH then -- if bigger than 64
BUS_TX.unknown <= '1';
- else
+ else
DATA_OUT(to_integer(unsigned(rx_addr))) <= rx_data;
- BUS_TX.ack <= '1';
- end if;
+ BUS_TX.ack <= '1';
+ end if;
end if;
end if;
end process READ_WRITE_RESPONSE;