intMAN  version 0.2_20130422
Signals | Processes
arch Architecture Reference

Architecture of the highest-priority pending interrupt select unit for the intMAN hardware (inner structure) More...

Processes

PROCESS_3  ( IPRI_ARR )
 Process of searching the highest priority of pending interrupts.
PROCESS_4  ( IPRI_ARR )
 store the HPRI interrupt index
PROCESS_5  ( IPRI_ARR )
 Process of SIG_IPRIPOSVALID adjustment.

Signals

SIG_IPRIHIGH  STD_LOGIC_VECTOR ( t_pri_width_range )
 highest priority (HPRI) value signal
SIG_IPRIPOS  STD_LOGIC_VECTOR ( t_int_width_range )
 HPRI interrupt index signal.
SIG_IPRIPOSVALID  STD_LOGIC
 HPRI interrupt index validity signal.

Detailed Description

Architecture of the highest-priority pending interrupt select unit for the intMAN hardware (inner structure)

Definition at line 32 of file ipri_highest.vhd.

Member Function Documentation

PROCESS_3 (   IPRI_ARR  
)
Process

Process of searching the highest priority of pending interrupts.

Definition at line 41 of file ipri_highest.vhd.

00041   process(IPRI_ARR ) is 00042   variable highest_pri : STD_LOGIC_VECTOR(t_pri_width_range ); --! highest priority (HPRI) value 00043   variable highest_pos : STD_LOGIC_VECTOR(t_int_width_range ); --! HPRI interrupt index 00044   begin 00045   highest_pri := (OTHERS => ' 1 '); --! init to the lowest (' 1 ... 1 ') priority value 00046   highest_pos := (OTHERS => ' 0 '); --! reset index 00047   for i in t_int_range loop 00048   if(IPRI_ARR (i) < highest_pri) then --! new HPRI found 00049   highest_pri := IPRI_ARR (i); --! store the HPRI value 00050   highest_pos := STD_LOGIC_VECTOR(TO_UNSIGNED(i, INT_WIDTH )); --! store the HPRI interrupt index 00051   end if; 00052   end loop; 00053   00054   SIG_IPRIHIGH <= highest_pri; 00055   SIG_IPRIPOS <= highest_pos; 00056   end process;
PROCESS_4 (   IPRI_ARR  
)
Process

store the HPRI interrupt index

Definition at line 60 of file ipri_highest.vhd.

00060   process(IPRI_ARR ) is 00061   variable i: integer; 00062   variable j: STD_LOGIC; 00063   begin 00064   j := ' 0 '; 00065   for i in t_pri_width_range loop 00066   j := (j or (not SIG_IPRIHIGH (i))); -- index is valid if there is at least one ' 0 ' in the HPRI field 00067   end loop; 00068   SIG_IPRIPOSVALID <= j; 00069   end process;
PROCESS_5 (   IPRI_ARR  
)
Process

Process of SIG_IPRIPOSVALID adjustment.

Definition at line 74 of file ipri_highest.vhd.

00074   process(IPRI_ARR ) is 00075   variable i: integer; 00076   begin 00077   i := TO_INTEGER(UNSIGNED(SIG_IPRIPOS )); 00078   00079   FOR idx IN t_int_range LOOP 00080   if(idx = i) then 00081   IPRI_ADEC (idx) <= (' 1 ' and SIG_IPRIPOSVALID ); --! make select-line active only if the HPRI index is valid 00082   else 00083   IPRI_ADEC (idx) <= ' 0 '; 00084   end if; 00085   end LOOP; 00086   end process;

Member Data Documentation

SIG_IPRIHIGH STD_LOGIC_VECTOR ( t_pri_width_range )
Signal

highest priority (HPRI) value signal

Definition at line 34 of file ipri_highest.vhd.

SIG_IPRIPOS STD_LOGIC_VECTOR ( t_int_width_range )
Signal

HPRI interrupt index signal.

Definition at line 36 of file ipri_highest.vhd.

SIG_IPRIPOSVALID STD_LOGIC
Signal

HPRI interrupt index validity signal.

Definition at line 38 of file ipri_highest.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)