Line 14... |
Line 14... |
use ieee.std_logic_1164.all;
|
use ieee.std_logic_1164.all;
|
use IEEE.STD_LOGIC_ARITH.all;
|
use IEEE.STD_LOGIC_ARITH.all;
|
use IEEE.STD_LOGIC_UNSIGNED.all;
|
use IEEE.STD_LOGIC_UNSIGNED.all;
|
use IEEE.numeric_std.all; -- conv_integer()
|
use IEEE.numeric_std.all; -- conv_integer()
|
|
|
|
library work;
|
|
use work.opb_spi_slave_pack.all;
|
|
|
entity opb_m_if is
|
entity opb_m_if is
|
generic (
|
generic (
|
C_BASEADDR : std_logic_vector(0 to 31) := X"00000000";
|
C_BASEADDR : std_logic_vector(0 to 31) := X"00000000";
|
C_HIGHADDR : std_logic_vector(0 to 31) := X"FFFFFFFF";
|
C_HIGHADDR : std_logic_vector(0 to 31) := X"FFFFFFFF";
|
C_USER_ID_CODE : integer := 0;
|
C_USER_ID_CODE : integer := 0;
|
Line 56... |
Line 59... |
opb_m_tx_data : out std_logic_vector(C_SR_WIDTH-1 downto 0);
|
opb_m_tx_data : out std_logic_vector(C_SR_WIDTH-1 downto 0);
|
-- enable/disable dma transfer
|
-- enable/disable dma transfer
|
opb_tx_dma_ctl : in std_logic_vector(0 downto 0);
|
opb_tx_dma_ctl : in std_logic_vector(0 downto 0);
|
-- base adress for transfer
|
-- base adress for transfer
|
opb_tx_dma_addr : in std_logic_vector(C_OPB_DWIDTH-1 downto 0);
|
opb_tx_dma_addr : in std_logic_vector(C_OPB_DWIDTH-1 downto 0);
|
opb_tx_dma_num : in std_logic_vector(15 downto 0);
|
opb_tx_dma_num : in std_logic_vector(C_WIDTH_DMA_NUM-1 downto 0);
|
opb_tx_dma_done : out std_logic;
|
opb_tx_dma_done : out std_logic;
|
---------------------------------------------------------------------------
|
---------------------------------------------------------------------------
|
-- write transfer
|
-- write transfer
|
-- read fifo an write to memory
|
-- read fifo an write to memory
|
opb_m_rx_req : in std_logic;
|
opb_m_rx_req : in std_logic;
|
Line 68... |
Line 71... |
opb_m_rx_data : in std_logic_vector(C_SR_WIDTH-1 downto 0);
|
opb_m_rx_data : in std_logic_vector(C_SR_WIDTH-1 downto 0);
|
-- enable/disable dma transfer
|
-- enable/disable dma transfer
|
opb_rx_dma_ctl : in std_logic_vector(0 downto 0);
|
opb_rx_dma_ctl : in std_logic_vector(0 downto 0);
|
-- base adress for transfer
|
-- base adress for transfer
|
opb_rx_dma_addr : in std_logic_vector(C_OPB_DWIDTH-1 downto 0);
|
opb_rx_dma_addr : in std_logic_vector(C_OPB_DWIDTH-1 downto 0);
|
opb_rx_dma_num : in std_logic_vector(15 downto 0);
|
opb_rx_dma_num : in std_logic_vector(C_WIDTH_DMA_NUM-1 downto 0);
|
opb_rx_dma_done : out std_logic);
|
opb_rx_dma_done : out std_logic);
|
end opb_m_if;
|
end opb_m_if;
|
|
|
architecture behavior of opb_m_if is
|
architecture behavior of opb_m_if is
|
|
|
Line 93... |
Line 96... |
signal read_transfer : boolean;
|
signal read_transfer : boolean;
|
|
|
-- read transfer
|
-- read transfer
|
signal opb_tx_dma_addr_int : std_logic_vector(C_OPB_DWIDTH-1 downto 0);
|
signal opb_tx_dma_addr_int : std_logic_vector(C_OPB_DWIDTH-1 downto 0);
|
signal opb_tx_dma_en : std_logic;
|
signal opb_tx_dma_en : std_logic;
|
signal opb_tx_dma_num_int : std_logic_vector(15 downto 0);
|
signal opb_tx_dma_num_int : std_logic_vector(C_WIDTH_DMA_NUM-1 downto 0);
|
signal opb_tx_dma_done_int : std_logic;
|
signal opb_tx_dma_done_int : std_logic;
|
|
|
-- write transfer
|
-- write transfer
|
signal opb_rx_dma_en : std_logic;
|
signal opb_rx_dma_en : std_logic;
|
signal opb_rx_dma_addr_int : std_logic_vector(C_OPB_DWIDTH-1 downto 0);
|
signal opb_rx_dma_addr_int : std_logic_vector(C_OPB_DWIDTH-1 downto 0);
|
signal opb_rx_dma_num_int : std_logic_vector(15 downto 0);
|
signal opb_rx_dma_num_int : std_logic_vector(C_WIDTH_DMA_NUM-1 downto 0);
|
signal opb_rx_dma_done_int : std_logic;
|
signal opb_rx_dma_done_int : std_logic;
|
|
|
|
|
|
|
begin -- behavior
|
begin -- behavior
|