library ieee; use ieee.std_logic_1164.all; package reg32 is subtype Word is std_logic_vector( 31 downto 0 ); type RegArray is array ( natural range <> ) of Word; type AccessType is ( NONE, READ_ONLY, WRITE_ONLY, READ_WRITE ); type AccessArray is array ( natural range <> ) of AccessType; function allows_read( access_type : AccessType ) return boolean; function allows_write( access_type : AccessType ) return boolean; end package reg32; package body reg32 is function allows_read( access_type : AccessType ) return boolean is begin return access_type = READ_ONLY or access_type = READ_WRITE; end function allows_read; function allows_write( access_type : AccessType ) return boolean is begin return access_type = WRITE_ONLY or access_type = READ_WRITE; end function allows_write; end package body reg32;