intMAN
version 0.2_20130422
|
custom definitions utilized during the intMAN implementation More...
Package Body >> intMAN_packageConstants | |
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 |
custom definitions utilized during the intMAN implementation
Definition at line 17 of file intman_pack.vhd.
|
Constant |
interrupt configuration
Definition at line 98 of file intman_pack.vhd.
|
Constant |
base clock rate [Hz]
Definition at line 26 of file intman_pack.vhd.
|
Constant |
the worst-case interrupt service time [s]
Definition at line 55 of file intman_pack.vhd.
|
Constant |
the worst-case interrupt service time [MONCLK cycles]
Definition at line 57 of file intman_pack.vhd.
|
Constant |
the worst-case interrupt service time [OSTIME cycles]
Definition at line 59 of file intman_pack.vhd.
|
Constant |
number of interrupt sources
Definition at line 62 of file intman_pack.vhd.
|
Constant |
number of bits needed to address the interrupt sources (=log2(INT_NMAX))
Definition at line 64 of file intman_pack.vhd.
|
Constant |
monitor clock (MONCLK) rate [Hz]
Definition at line 28 of file intman_pack.vhd.
|
Constant |
number of MONCLK cycles (ticks) per one OSTIME cycle (tick)
Definition at line 32 of file intman_pack.vhd.
|
Constant |
operating system time (OSTIME) rate [Hz]
Definition at line 30 of file intman_pack.vhd.
|
Constant |
value at which the hard-level priority ends (0 means the highest priority)
Definition at line 47 of file intman_pack.vhd.
the lowest priority (reserved for the intMAN purposes and set to the all-1 value)
Definition at line 49 of file intman_pack.vhd.
|
Constant |
number of bits per joint interrupt/task priority
Definition at line 41 of file intman_pack.vhd.
|
Subtype |
interrupt range
Definition at line 68 of file intman_pack.vhd.
|
Subtype |
interrupt address bit-index range
Definition at line 66 of file intman_pack.vhd.
|
Type |
interrupt sensitivity configuration data structure
Definition at line 83 of file intman_pack.vhd.
|
Type |
array of configurations for interrupt sources
Definition at line 90 of file intman_pack.vhd.
|
Subtype |
edge sensitivity configuration datatype
Definition at line 80 of file intman_pack.vhd.
|
Subtype |
level sensitivity configuration datatype
Definition at line 78 of file intman_pack.vhd.
|
Subtype |
maximum number of pending interrupts per one interrupt source
Definition at line 71 of file intman_pack.vhd.
|
Type |
array of pending interrupt couters
Definition at line 73 of file intman_pack.vhd.
|
Type |
array of interrupt priorities
Definition at line 372 of file intman_pack.vhd.
|
Subtype |
vector of interrupt ready flags
Definition at line 75 of file intman_pack.vhd.
|
Subtype |
priority value range
Definition at line 45 of file intman_pack.vhd.
|
Subtype |
bit-index range for the priority width
Definition at line 43 of file intman_pack.vhd.