Line 55... |
Line 55... |
rden_i : in std_ulogic; -- read enable
|
rden_i : in std_ulogic; -- read enable
|
wren_i : in std_ulogic; -- word write enable
|
wren_i : in std_ulogic; -- word write enable
|
data_i : in std_ulogic_vector(31 downto 0); -- data in
|
data_i : in std_ulogic_vector(31 downto 0); -- data in
|
data_o : out std_ulogic_vector(31 downto 0); -- data out
|
data_o : out std_ulogic_vector(31 downto 0); -- data out
|
ack_o : out std_ulogic; -- transfer acknowledge
|
ack_o : out std_ulogic; -- transfer acknowledge
|
err_o : out std_ulogic; -- transfer error
|
|
-- clock generator --
|
-- clock generator --
|
clkgen_en_o : out std_ulogic; -- enable clock generator
|
clkgen_en_o : out std_ulogic; -- enable clock generator
|
clkgen_i : in std_ulogic_vector(07 downto 0); -- "clock" inputs
|
clkgen_i : in std_ulogic_vector(07 downto 0); -- "clock" inputs
|
-- CPU state --
|
-- CPU state --
|
sleep_i : in std_ulogic; -- set if cpu is in sleep mode
|
sleep_i : in std_ulogic; -- set if cpu is in sleep mode
|
Line 187... |
Line 186... |
--
|
--
|
-- The CFS provides up to 32 memory-mapped 32-bit interface register. For instance, these could be used to provide
|
-- The CFS provides up to 32 memory-mapped 32-bit interface register. For instance, these could be used to provide
|
-- a <control register> for global control of the unit, a <data register> for reading/writing from/to a data FIFO, a <command register>
|
-- a <control register> for global control of the unit, a <data register> for reading/writing from/to a data FIFO, a <command register>
|
-- for issueing commands and a <status register> for status information.
|
-- for issueing commands and a <status register> for status information.
|
--
|
--
|
-- Following the interface protocol, each read or write access has to be acknowledged in the following cycle using the ack_o signal.
|
-- Following the interface protocol, each read or write access has to be acknowledged in the following cycle using the ack_o signal (or even later
|
-- If no ACK is generated, the bus access will time out and cause a store bus access fault exception. This exception can also be immediatly
|
-- if the module needs additional time; the maximumx latency until an unacknwoledged access will trigger a bus exception is defined via the package's
|
-- triggered by setting err_o high for one cycle (only during a valid bus access).
|
-- gloabl "bus_timeout_c" constant). If no ACK is generated, the bus access will time out and cause a store bus access fault exception.
|
|
|
err_o <= '0'; -- not used for this minimal example
|
|
|
|
-- Host access: Read and write access to the interface registers + bus transfer acknowledge.
|
-- Host access: Read and write access to the interface registers + bus transfer acknowledge.
|
-- This example only implements four physical r/w register (the four lowest CF register). The remaining addresses of the CFS are not
|
-- This example only implements four physical r/w register (the four lowest CF register). The remaining addresses of the CFS are not
|
-- associated with any writable or readable register - an access to those is simply ignored but still acknowledged.
|
-- associated with any writable or readable register - an access to those is simply ignored but still acknowledged.
|
|
|