10 use ieee.std_logic_1164.
ALL;
11 use ieee.numeric_std.
ALL;
33 elsif(clk'event and clk = '1') then
150 end architecture tim_bus_master_rtl;
state_machine_next_stateclk,bus_enable,req_read_write,req_pending
Responsible for determining the next state of the statemachine.
state_machine_progressclk,reset
Responsible for the synchronous state transitions and asynchronous resets.
out bus_read_writestd_logic
High if this transaction is a write, low if it is a read.
requestor_outputscurrent_state,bus_lines
Responsible for driving the requestor outputs based on the current state of the controller.
tim_bus_master_state :=IDLE next_state
The next state of the controller.
in req_read_writestd_logic
Tells the controller if this is a read or write transaction. High == write, low == read...
in req_address_linesstd_logic_vector (data_width - 1 downto 0)
Addresses for read and write operations are placed on these lines.
in req_pendingstd_logic
This is put high to tell the controller a request is pending.
in resetstd_logic
Asynchonous reset signal.
tim_bus_master_state :=BUS_RESET current_state
The current state of the controller.
inout bus_linesstd_logic_vector (data_width - 1 downto 0)
The lines which carry data and addresses;.
in clkstd_logic
The main system clock.
out bus_validstd_logic
Used to assert data written by the bus master to bus_lines is valid.
bus_outputscurrent_state,req_data_lines,req_address_lines,req_read_write
Responsible for driving the bus outputs based on the current state of the controller.
out req_acknowledgestd_logic
inout req_data_linesstd_logic_vector (data_width - 1 downto 0)
Request write data is placed on these lines.
The bus master controller module which arbitrates bus requests and responses.
This package contains entity declarations and shared constant values for the bus logic modules...
in bus_enablestd_logic
Used to assert that the slave has read the bus lines and they can be updated.