summaryrefslogtreecommitdiff
path: root/2004/n/fpga
diff options
context:
space:
mode:
Diffstat (limited to '2004/n/fpga')
-rw-r--r--2004/n/fpga/doc/dcd/gpio/gpio.tex34
-rw-r--r--2004/n/fpga/doc/dcd/interrupt/interrupt.tex41
-rw-r--r--2004/n/fpga/doc/dcd/rapport.tex43
3 files changed, 88 insertions, 30 deletions
diff --git a/2004/n/fpga/doc/dcd/gpio/gpio.tex b/2004/n/fpga/doc/dcd/gpio/gpio.tex
index ef02d82..88ddc00 100644
--- a/2004/n/fpga/doc/dcd/gpio/gpio.tex
+++ b/2004/n/fpga/doc/dcd/gpio/gpio.tex
@@ -243,10 +243,8 @@ dernière valeure sauvegardée sur l'entrée.}
la sortie et positionne l'entrée en haute impédance.}
\end{itemize}
-Si dessous se trouve le code correspondant au registre décrit précédement.
-
-\lstinputlisting{../../src/registre/reg_rw.vhd}
-
+Le code correspondant au registre décrit précédement se trouve en
+annexe~\ref{sec:reg_rw} page~\pageref{sec:reg_rw}.
\subsubsection{Le bloc trois-états : tristate}
@@ -269,9 +267,8 @@ bas, les sorties sont dans un état haute impédance (noté 'Z')}
de données}
\end{itemize}
-Le listing de ce composant est le suivant :
-
-\lstinputlisting{../../src/three-state/tristate.vhd}
+Le code correspondant au bloc décrit précédement se trouve en
+annexe~\ref{sec:tristate} page~\pageref{sec:tristate}.
\subsubsection{Le gestionnaire de direction : gpio\_direction}
@@ -295,10 +292,9 @@ bit est considéré être en sortie. Ainsi, pour ce flag à l'état haut, on
recopiera sur la sortie le bit du bus de données.
Les pins autre n'étant pas définies comme des sorties par le masque sont
-positionnés dans un état haute-impédance 'Z'. Ci-dessous, le listing
-correspondant au gestionnaire de direction.
-
-\lstinputlisting{../../src/gpio/gpio_direction.vhd}
+positionnés dans un état haute-impédance 'Z'. Le code correspondant au
+bloc décrit précédement se trouve en annexe~\ref{sec:gpio_direction}
+page~\pageref{sec:gpio_direction}.
\subsubsection{La détection d'interruptions : gpio\_it\_detect\_up et down}
@@ -322,13 +318,10 @@ masque. De cette manière, on peut définir les masques de telle manière qu'une
pin puisse générer une interruption, sur front montant, descendant ou sur les
deux.
-Voici le code associé au gestionnaire d'interruption sur front montant.
-
-\lstinputlisting{../../src/gpio/gpio_it_detect_up.vhd}
-
-Voici le code associé au gestionnaire d'interruption sur front descendant.
-
-\lstinputlisting{../../src/gpio/gpio_it_detect_down.vhd}
+Le code associé au gestionnaire d'interruption sur front montant se trouve en
+annexe~\ref{sec:gpio_it_detect_up} page~\pageref{sec:gpio_it_detect_up}. Le
+code associé au gestionnaire d'interruption sur front descendant est donné
+annexe~\ref{sec:gpio_it_detect_down} page~\pageref{sec:gpio_it_detect_down}.
\subsubsection{Le module gpio}
@@ -349,9 +342,9 @@ rapporter aux différents schémas précédement vus. Voici l'entity de ce bloc :
\end{itemize}
Ce bloc est donc l'assemblage des différents modules qui viennent d'être
-décrits. Ci-dessous, se trouve le listing correspondant à ce module.
+décrits. Le listing correspondant à ce module est donné annexe~\ref{sec:gpio}
+page~\pageref{sec:gpio}.
-\lstinputlisting{../../src/gpio/gpio.vhd}
\subsection{Résultats de synthèse logique}
@@ -368,6 +361,7 @@ En effet, nous avons décidé d'avoir 5 modules gpio sur la carte, ce qui
représente 40 pins utilisées et 5\% des ressources en slices. Ces
caractéristiques nous conviennent parfaitement.
+
\subsection{Simulation du bloc et test sur carte}
Voici les résultats de la simulation RTL de notre bloc d'entrées / sorties.
diff --git a/2004/n/fpga/doc/dcd/interrupt/interrupt.tex b/2004/n/fpga/doc/dcd/interrupt/interrupt.tex
index 6abbe3e..af9cf61 100644
--- a/2004/n/fpga/doc/dcd/interrupt/interrupt.tex
+++ b/2004/n/fpga/doc/dcd/interrupt/interrupt.tex
@@ -71,23 +71,46 @@ consulter l'architecture physique sur la figure \ref{archi_interrupt} page
\label{archi_interrupt}
\end{figure}
-%
-% 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.
+Comme on peut le constater, ce module est très simple. En effet, celui-ci est
+composé uniquement de 3 bloc OR à huit entrées, d'un bloc OR à trois entrées
+et de 3 bloc three-state à huits entrées chacun.
+Son fonctionnement interne est donc le suivant. Lorsqu'une interruption arrive
+sur un des blocs, un signal IRQ est généré par les blocs OR. Lorsque le PC
+désire consulter qui a généré une interruption, il active successivement les
+blocs three-state qui passent alors d'un état haute impédance à un état dans
+lequel sont recopiées en sortie les entrées.
+\subsection{Décomposition RTL}
+% Ici, détailler chaque petit bloc et mettre le code VHDL correspondant.
+\subsubsection{Les blocs OR logiques : OR3 et OR8}
+\subsubsection{Le bloc trois-états : tristate}
-\subsection{Décomposition RTL}
+Pour la lecture des valeurs sur les entrées / sorties, un composant nommé
+\textit{tristate} est utilisé. L'entity de ce module est la suivante :
+
+\begin{itemize}
+\item{8 signaux d'entrée}
+\item{8 signaux de sortie}
+\item{1 signal enable}
+\end{itemize}
+
+Ce composant est en fait un module asynchrone composé de huits composants
+trois états. Son comportement est donc le suivant :
+
+\begin{itemize}
+\item{Si enable (représenté par cs\_read\_output sur le schéma) est à un état
+bas, les sorties sont dans un état haute impédance (noté 'Z')}
+\item{Si enable est à l'état bas on recopie les entrées / sorties sur le bus
+de données}
+\end{itemize}
+
+Le listing de ce composant se trouve en annexe .
-% Ici, détailler chaque petit bloc et mettre le code VHDL correspondant.
\subsection{Simulation}
diff --git a/2004/n/fpga/doc/dcd/rapport.tex b/2004/n/fpga/doc/dcd/rapport.tex
index 2740824..ad37d49 100644
--- a/2004/n/fpga/doc/dcd/rapport.tex
+++ b/2004/n/fpga/doc/dcd/rapport.tex
@@ -126,10 +126,51 @@ Cf schéma de l'architecture globale, figure \ref{archiglobale} page
\section {Conclusion}
+\pagebreak
% TODO : Annexes
+\appendix
+
+\section{Listing des modules vhdl}
+
+\subsection{nono\_const.vhd}
+
+
+\subsection{isa\_const.vhd}
+
+\subsection{pwm\_const.vhd}
+
+
+\subsection{reg\_rw.vhd}
+\label{sec:reg_rw}
+\lstinputlisting{../../src/registre/reg_rw.vhd}
+\pagebreak
+
+\subsection{tristate.vhd}
+\label{sec:tristate}
+\lstinputlisting{../../src/three-state/tristate.vhd}
+\pagebreak
+
+\subsection{gpio\_direction.vhd}
+\label{sec:gpio_direction}
+\lstinputlisting{../../src/gpio/gpio_direction.vhd}
+\pagebreak
+
+\subsection{gpio\_it\_detect\_up.vhd}
+\label{sec:gpio_it_detect_up}
+\lstinputlisting{../../src/gpio/gpio_it_detect_up.vhd}
+\pagebreak
+
+\subsection{gpio\_it\_detect\_down.vhd}
+\label{sec:gpio_it_detect_down}
+\lstinputlisting{../../src/gpio/gpio_it_detect_down.vhd}
+\pagebreak
+
+\subsection{gpio.vhd}
+\label{sec:gpio}
+\lstinputlisting{../../src/gpio/gpio.vhd}
+\pagebreak
-% Mettre nono_const et ISA_const
\end{document}