summaryrefslogtreecommitdiff
path: root/2004/n/fpga/doc/dcd/interrupt/interrupt.tex
blob: 320eeaed7cdebba5eebdc8a62893e4ca349443b4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
\subsection{Cahier des charges}

Voici les contraintes du bloc de gestion des interruptions :

\begin{itemize}
\item{Gestion de 24 interruptions diff�rentes}
\item{Transmission des interruptions par bloc de 8 bits}
\item{Un signal de RAZ}
\end{itemize}


% en gros c'est comment est vu le module c�t� userland.
\subsection{Vue comportementale}

Le bloc de gestion des interruptions a pour but de permettre aux diff�rents
modules de la carte de pr�venir l'ordinateur qu'ils ont des informations �
lui transmettre. On pourra voir la figure \ref{entity_interrupt} page
\pageref{entity_interrupt}.

\begin{figure}[htbp]
\caption{Entity du bloc de gestion des interruptions}
\begin{center}
\scalebox{0.7}{
\includegraphics {./interrupt/images/entity.pdf}
%\includegraphics[width=\textwidth]{./interrupt/images/entity.pdf}
}
\end{center}
\label{entity_interrupt}
\end{figure}


% TODO : Question
%
% TODO : Si garde 2 fils, changer entity.fig
%	 Si garde 1 fils, changer sch�ma global (toute la carte fpga)
%	 		  changer archi_phy.fig


Du point de vue comportemental, son fonctionnement est le suivant. Chaque bloc
ayant un fil d'interruption le relie au gestionnaire d'interruption.
Lorsqu'une interruption est �mise par un bloc, notre module la d�tecte et
transmet le signal IRQ sur le bus ISA. D�s que l'ordinateur est pr�t � traiter
l'interruption, il demande � acc�der au gestionnaire. 

Pour cela, il va lire successivement trois registres. Chaque registre est
repr�sent� par une addresse diff�rente. Chacun de ces registres contient un
masque. Les bits de ce masque signalent si un bloc a g�n�r� une interruption
ou non. En retour � chaque demande du PC, le gestionnaire placera sur le bus de
donn�es le masque correspondant.