Initial commit
This commit is contained in:
59
Libs/AhbLite/hdl/ahbLite_pkg.vhd
Normal file
59
Libs/AhbLite/hdl/ahbLite_pkg.vhd
Normal file
@@ -0,0 +1,59 @@
|
||||
LIBRARY ieee;
|
||||
USE ieee.std_logic_1164.all;
|
||||
|
||||
PACKAGE ahbLite IS
|
||||
------------------------------------------------------------------------------
|
||||
-- bus components sizes
|
||||
constant ahbAddressBitNb : positive := 16;
|
||||
constant ahbDataBitNb : positive := 16;
|
||||
constant ahbSlaveNb : positive := 16;
|
||||
|
||||
constant ahbTransBitNb : positive := 2;
|
||||
constant ahbSizeBitNb : positive := 1;
|
||||
constant ahbBurstBitNb : positive := 3;
|
||||
constant ahbProtBitNb : positive := 4;
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
-- bus data vector type
|
||||
subtype ahbDataType is std_logic_vector(ahbDataBitNb-1 downto 0);
|
||||
type ahbDataVector is array(1 to ahbSlaveNb) of ahbDataType;
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
-- address decoder
|
||||
type ahbMemoryLocationType is
|
||||
record
|
||||
baseAddress: natural;
|
||||
addressMask: natural;
|
||||
end record;
|
||||
type ahbMemoryLocationVector is array(1 to ahbSlaveNb) of ahbMemoryLocationType;
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
-- bus signals
|
||||
subtype transferType is std_ulogic_vector(ahbTransBitNb-1 downto 0);
|
||||
constant transIdle : transferType := "00";
|
||||
constant transBusy : transferType := "01";
|
||||
constant transNonSeq: transferType := "10";
|
||||
constant transSeq : transferType := "11";
|
||||
|
||||
subtype transferSizeType is std_ulogic_vector(ahbSizeBitNb-1 downto 0);
|
||||
constant size8 : transferSizeType := "0";
|
||||
constant size16 : transferSizeType := "1";
|
||||
|
||||
subtype burstType is std_ulogic_vector(ahbBurstBitNb-1 downto 0);
|
||||
constant burstSingle : burstType := "000";
|
||||
constant burstIncr : burstType := "001";
|
||||
constant burstWrap4 : burstType := "010";
|
||||
constant burstIncr4 : burstType := "011";
|
||||
constant burstWrap8 : burstType := "100";
|
||||
constant burstIncr8 : burstType := "101";
|
||||
constant burstWrap16 : burstType := "110";
|
||||
constant burstIncr16 : burstType := "111";
|
||||
|
||||
subtype protectionType is std_ulogic_vector(ahbProtBitNb-1 downto 0);
|
||||
constant protDefault : protectionType := "0011";
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
-- log2
|
||||
function addressBitNb (addressNb : natural) return natural;
|
||||
|
||||
END ahbLite;
|
||||
Reference in New Issue
Block a user