intMAN  version 0.2_20130422
Constants | Subtypes | Types
intMAN_package Package Reference

custom definitions utilized during the intMAN implementation More...

Package Body >> intMAN_package

Constants

CLK_BASE_HZ  integer := 10 ** 6
 base clock rate [Hz]
MONCLK_HZ  integer := 1 * CLK_BASE_HZ
 monitor clock (MONCLK) rate [Hz]
OSTIME_HZ  integer := 100
 operating system time (OSTIME) rate [Hz]
NMONTICKS_IN_OSTICK  integer := MONCLK_HZ / OSTIME_HZ
 number of MONCLK cycles (ticks) per one OSTIME cycle (tick)
PRI_WIDTH  integer := 8
 number of bits per joint interrupt/task priority
PRI_HARD_LAST  integer := ( 2 ** PRI_WIDTH ) /
 value at which the hard-level priority ends (0 means the highest priority)
PRI_LAST  integer := ( 2 ** PRI_WIDTH ) -
 the lowest priority (reserved for the intMAN purposes and set to the all-1 value)
INT_C_MAX  real := 150 . 0 / REAL ( CLK_BASE_HZ )
 the worst-case interrupt service time [s]
INT_C_MAX_NMONTICKS  integer := INTEGER ( INT_C_MAX ) * MONCLK_HZ
 the worst-case interrupt service time [MONCLK cycles]
INT_C_MAX_NOSTICKS  integer := INT_C_MAX_NMONTICKS / NMONTICKS_IN_OSTICK
 the worst-case interrupt service time [OSTIME cycles]
INT_NMAX  integer := 16
 number of interrupt sources
INT_WIDTH  integer := 4
 number of bits needed to address the interrupt sources (=log2(INT_NMAX))
C_INTCFG  t_intcfg_arr := ( 0 = > ( level = > " 00 " , edge = > " 11 " ) , 1 = > ( level = > " 00 " , edge = > " 11 " ) , 2 = > ( level = > " 00 " , edge = > " 11 " ) , 3 = > ( level = > " 00 " , edge = > " 11 " ) , 4 = > ( level = > " 00 " , edge = > " 00 " ) , 5 = > ( level = > " 00 " , edge = > " 00 " ) , 6 = > ( level = > " 00 " , edge = > " 11 " ) , 7 = > ( level = > " 00 " , edge = > " 10 " ) , 8 = > ( level = > " 00 " , edge = > " 01 " ) , 9 = > ( level = > " 00 " , edge = > " 01 " ) , 10 = > ( level = > " 00 " , edge = > " 01 " ) , 11 = > ( level = > " 00 " , edge = > " 01 " ) , 12 = > ( level = > " 00 " , edge = > " 01 " ) , 13 = > ( level = > " 00 " , edge = > " 01 " ) , 14 = > ( level = > " 00 " , edge = > " 01 " ) , 15 = > ( level = > " 00 " , edge = > " 01 " ) )
 interrupt configuration

Types

t_intpendcnt_arr is array ( t_int_range ) of t_intpend_cnt
 array of pending interrupt couters
record: t_intcfg level : t_intlevel_cfg
edge : t_intedge_cfg
 interrupt sensitivity configuration data structure
t_intcfg_arr is array ( t_int_range ) of t_intcfg
 array of configurations for interrupt sources
t_intpri_arr is array ( t_int_range ) of STD_LOGIC_VECTOR ( t_pri_width_range )
 array of interrupt priorities

Subtypes

t_pri_width_range  integer range PRI_WIDTH - 1 downto 0
 bit-index range for the priority width
t_pri_range  integer range ( 2 ** PRI_WIDTH ) - 1 downto
 priority value range
t_int_width_range  integer range INT_WIDTH - 1 downto 0
 interrupt address bit-index range
t_int_range  integer range INT_NMAX - 1 downto 0
 interrupt range
t_intpend_cnt  integer range 0 to 15
 maximum number of pending interrupts per one interrupt source
t_intrdy_vec  STD_LOGIC_VECTOR ( t_int_range )
 vector of interrupt ready flags
t_intlevel_cfg  STD_LOGIC_VECTOR ( 1 downto 0 )
 level sensitivity configuration datatype
t_intedge_cfg  STD_LOGIC_VECTOR ( 1 downto 0 )
 edge sensitivity configuration datatype

Detailed Description

custom definitions utilized during the intMAN implementation

Definition at line 17 of file intman_pack.vhd.

Member Data Documentation

C_INTCFG t_intcfg_arr := ( 0 = > ( level = > " 00 " , edge = > " 11 " ) , 1 = > ( level = > " 00 " , edge = > " 11 " ) , 2 = > ( level = > " 00 " , edge = > " 11 " ) , 3 = > ( level = > " 00 " , edge = > " 11 " ) , 4 = > ( level = > " 00 " , edge = > " 00 " ) , 5 = > ( level = > " 00 " , edge = > " 00 " ) , 6 = > ( level = > " 00 " , edge = > " 11 " ) , 7 = > ( level = > " 00 " , edge = > " 10 " ) , 8 = > ( level = > " 00 " , edge = > " 01 " ) , 9 = > ( level = > " 00 " , edge = > " 01 " ) , 10 = > ( level = > " 00 " , edge = > " 01 " ) , 11 = > ( level = > " 00 " , edge = > " 01 " ) , 12 = > ( level = > " 00 " , edge = > " 01 " ) , 13 = > ( level = > " 00 " , edge = > " 01 " ) , 14 = > ( level = > " 00 " , edge = > " 01 " ) , 15 = > ( level = > " 00 " , edge = > " 01 " ) )
Constant

interrupt configuration

Definition at line 98 of file intman_pack.vhd.

CLK_BASE_HZ integer := 10 ** 6
Constant

base clock rate [Hz]

Definition at line 26 of file intman_pack.vhd.

INT_C_MAX real := 150 . 0 / REAL ( CLK_BASE_HZ )
Constant

the worst-case interrupt service time [s]

Definition at line 55 of file intman_pack.vhd.

INT_C_MAX_NMONTICKS integer := INTEGER ( INT_C_MAX ) * MONCLK_HZ
Constant

the worst-case interrupt service time [MONCLK cycles]

Definition at line 57 of file intman_pack.vhd.

the worst-case interrupt service time [OSTIME cycles]

Definition at line 59 of file intman_pack.vhd.

INT_NMAX integer := 16
Constant

number of interrupt sources

Definition at line 62 of file intman_pack.vhd.

INT_WIDTH integer := 4
Constant

number of bits needed to address the interrupt sources (=log2(INT_NMAX))

Definition at line 64 of file intman_pack.vhd.

MONCLK_HZ integer := 1 * CLK_BASE_HZ
Constant

monitor clock (MONCLK) rate [Hz]

Definition at line 28 of file intman_pack.vhd.

NMONTICKS_IN_OSTICK integer := MONCLK_HZ / OSTIME_HZ
Constant

number of MONCLK cycles (ticks) per one OSTIME cycle (tick)

Definition at line 32 of file intman_pack.vhd.

OSTIME_HZ integer := 100
Constant

operating system time (OSTIME) rate [Hz]

Definition at line 30 of file intman_pack.vhd.

PRI_HARD_LAST integer := ( 2 ** PRI_WIDTH ) /
Constant

value at which the hard-level priority ends (0 means the highest priority)

Definition at line 47 of file intman_pack.vhd.

PRI_LAST integer := ( 2 ** PRI_WIDTH ) -
Constant

the lowest priority (reserved for the intMAN purposes and set to the all-1 value)

Definition at line 49 of file intman_pack.vhd.

PRI_WIDTH integer := 8
Constant

number of bits per joint interrupt/task priority

Definition at line 41 of file intman_pack.vhd.

t_int_range integer range INT_NMAX - 1 downto 0
Subtype

interrupt range

Definition at line 68 of file intman_pack.vhd.

t_int_width_range integer range INT_WIDTH - 1 downto 0
Subtype

interrupt address bit-index range

Definition at line 66 of file intman_pack.vhd.

t_intcfg ( level : t_intlevel_cfg
edge : t_intedge_cfg  
)
Type

interrupt sensitivity configuration data structure

Definition at line 83 of file intman_pack.vhd.

t_intcfg_arr is array ( t_int_range ) of t_intcfg
Type

array of configurations for interrupt sources

Definition at line 90 of file intman_pack.vhd.

t_intedge_cfg STD_LOGIC_VECTOR ( 1 downto 0 )
Subtype

edge sensitivity configuration datatype

Definition at line 80 of file intman_pack.vhd.

t_intlevel_cfg STD_LOGIC_VECTOR ( 1 downto 0 )
Subtype

level sensitivity configuration datatype

Definition at line 78 of file intman_pack.vhd.

t_intpend_cnt integer range 0 to 15
Subtype

maximum number of pending interrupts per one interrupt source

Definition at line 71 of file intman_pack.vhd.

array of pending interrupt couters

Definition at line 73 of file intman_pack.vhd.

t_intpri_arr is array ( t_int_range ) of STD_LOGIC_VECTOR ( t_pri_width_range )
Type

array of interrupt priorities

Definition at line 372 of file intman_pack.vhd.

t_intrdy_vec STD_LOGIC_VECTOR ( t_int_range )
Subtype

vector of interrupt ready flags

Definition at line 75 of file intman_pack.vhd.

t_pri_range integer range ( 2 ** PRI_WIDTH ) - 1 downto
Subtype

priority value range

Definition at line 45 of file intman_pack.vhd.

t_pri_width_range integer range PRI_WIDTH - 1 downto 0
Subtype

bit-index range for the priority width

Definition at line 43 of file intman_pack.vhd.


The documentation for this class was generated from the following file:
© 2013 Josef Strnadel (email, web), Faculty of Information Technology, Brno University of Technology (web)