summaryrefslogtreecommitdiff
path: root/2004/n/fpga/doc/dcd/interrupt/interrupt.tex
blob: b7dc521c60b0d92f9f2f102c9f30561145b74131 (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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
\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}.

% TODO : modifier suivant qu'on ins�re la cam�ra ou pas.
% enlever les clk et le rst, ar bloc que combinatoire.
\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. 



% Ici, on d�tail l'int�rieur du bloc
\subsection{Architecture physique}

% Pipo
Voici donc une explication du fonctionnement de ce gestionnaire. On remarquera
que ce bloc est crucial, car la perte d'une interruption peut r�sulter en une
perte de temps, voir s'av�rer d�sastreuse pour le robot. Il est donc
n�cessaire de prendre les plus grandes pr�cautions lors de sa r�alisation. On
pourra consulter l'architecture physique sur la figure \ref{archi_interrupt}
page \pageref{archi_interrupt}. Pour le s�quenceur, son graphcet est illustr�
figure \ref{graphcet_interrupt} page \pageref{graphcet_interrupt}.

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

% 
Lorsqu'un bloc g�n�re une interruption, celle-ci arrive sur le gestionnaire
d'interruption.

% Fonctionnement du bloc d'interface ISA
Lorsque ce signal arrive, le s�quenceur pr�vient le \textbf{module
d'interfa�age} avec le bus ISA. Ce module, qui jusqu'� pr�sent avait ses
sorties � l'�tat haut, recopie alors sur en sorties (sur le bus ISA) ses
entr�es. On attend alors plus que l'\textit{acquittement} de l'ordinateur pour
recommencer le cycle.






\subsection{D�composition RTL}

% Ici, d�tailler chaque petit bloc et mettre le code VHDL correspondant.

\subsection{Simulation}

% mettre aussi peut-�tre les tests unitaires de chaque bloc ?