intMAN  version 0.2_20130422
Components | Signals | Processes | Instantiations
arch Architecture Reference

Architecture of the interrupt detect/buffer/config/forward unit for the intMAN hardware (inner structure) More...

Processes

PROCESS_2  ( reset , clk , int_pri_load , int_sel )
 control process of the interrupt detect/buffer/config/forward unit

Components

int_req  <Entity int_req>
 component for detection/latch of an interrupt request

Signals

signal_d  STD_LOGIC
 pending/ready interrupt flag
SIG_rdy  STD_LOGIC
 D-latch.
SIG_rst  STD_LOGIC
 interrupt ready
SIG_cnt  t_intpend_cnt
 interrupt request reset
SIG_pri  STD_LOGIC_VECTOR ( t_pri_width_range )
 pending interrupts counter
SIG_int_l  STD_LOGIC
 priority
SIG_int_e  STD_LOGIC
 level match flag
SIG_int  STD_LOGIC
 edge match flag
SIG_int_new  STD_LOGIC
 incomming interrupt line
SIG_service  STD_LOGIC
 new interrupt flag

Instantiations

intreq  int_req <Entity int_req>
 to service forward flag

Detailed Description

Architecture of the interrupt detect/buffer/config/forward unit for the intMAN hardware (inner structure)

Definition at line 114 of file int_buf_in.vhd.

Member Function Documentation

PROCESS_2 (   reset ,
  clk ,
  int_pri_load ,
  int_sel 
)
get

control process of the interrupt detect/buffer/config/forward unit

Definition at line 174 of file int_buf_in.vhd.

174 
175  process(reset, clk, int_pri_load, int_sel)
176  begin
177  if(reset = '1') then -- reset (async.)
178  SIG_cnt <= 0;
179  elsif(SIG_int_new'event and SIG_int_new = '1') then -- new interrupt arrival (async.)
180  SIG_cnt <= SIG_cnt+1;
181  elsif(clk'event and clk='1') then -- clk-synchronous storage operations
182  if (int_pri_load = '1') then -- ... interrupt priority update enable
183  SIG_pri <= int_pri_new;
184  elsif(int_sel = '1') then -- ... if an interrupt is to be forwarded, signalize it
185  SIG_service <= '1';
186 
187  if (SIG_cnt > 0) then
188  SIG_cnt <= SIG_cnt - 1; -- ... and decrease the pending-interrupt counter
189  end if;
190  else
191  SIG_service <= '0';
192  end if;
193 
194  -- interrupt sensitivity legend:
195  -- ----------------------------
196  -- level: log.0 (00), log. 1 (01), no (10, 11)
197  -- edge: rising (01), falling (10), both (11), no (00)
198 
199  case level is
200  when "00" => SIG_int_l <= ('0' or not int_sel);
201  when "01" => SIG_int_l <= ('1' and int_sel);
202  when others => SIG_int_l <= SIG_int_l or '0';
203  end case;
204 
205  case edge is
206  when "01" => SIG_int_e <= ('1' and int_sel);
207  when "10" => SIG_int_e <= ('0' or not int_sel);
208  when "11" => SIG_int_e <= ('1' and int_sel);
209  when others => SIG_int_e <= SIG_int_e or '0';
210  end case;
211 
212  int_out <= SIG_int_l or SIG_int_e; -- forward the interrupt according to its config
213  end if;
end process;

Member Data Documentation

int_req
Component

component for detection/latch of an interrupt request

Definition at line 117 of file int_buf_in.vhd.

intreq int_req
Instantiation

to service forward flag

mapping ports to the interrupt request detect/latch unit (port map)

Definition at line 159 of file int_buf_in.vhd.

SIG_cnt t_intpend_cnt
Signal

interrupt request reset

Definition at line 136 of file int_buf_in.vhd.

SIG_int STD_LOGIC
Signal

edge match flag

Definition at line 145 of file int_buf_in.vhd.

SIG_int_e STD_LOGIC
Signal

level match flag

Definition at line 143 of file int_buf_in.vhd.

SIG_int_l STD_LOGIC
Signal

priority

Definition at line 141 of file int_buf_in.vhd.

SIG_int_new STD_LOGIC
Signal

incomming interrupt line

Definition at line 147 of file int_buf_in.vhd.

SIG_pri STD_LOGIC_VECTOR ( t_pri_width_range )
Signal

pending interrupts counter

Definition at line 138 of file int_buf_in.vhd.

SIG_rdy STD_LOGIC
Signal

D-latch.

Definition at line 132 of file int_buf_in.vhd.

SIG_rst STD_LOGIC
Signal

interrupt ready

Definition at line 134 of file int_buf_in.vhd.

SIG_service STD_LOGIC
Signal

new interrupt flag

Definition at line 149 of file int_buf_in.vhd.

signal_d STD_LOGIC
Signal

pending/ready interrupt flag

Definition at line 130 of file int_buf_in.vhd.


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