\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.