summaryrefslogtreecommitdiff
path: root/2004/n
diff options
context:
space:
mode:
authorgalmes2004-04-05 22:00:36 +0000
committergalmes2004-04-05 22:00:36 +0000
commit4f69fe37535fd78879bb62c1d453586a49dead5b (patch)
treec221e2969a226714eac7d9621fbc5c6cdaf08477 /2004/n
parent6cb1aca3691bdc1c7b0f3b72f3e31fef69e72906 (diff)
Gpio : Ajout d'une partie de la doc (partie RTL), mais reste encore des choses
à finir.
Diffstat (limited to '2004/n')
-rw-r--r--2004/n/fpga/doc/dcd/gpio/gpio.tex77
1 files changed, 65 insertions, 12 deletions
diff --git a/2004/n/fpga/doc/dcd/gpio/gpio.tex b/2004/n/fpga/doc/dcd/gpio/gpio.tex
index d7bf1ed..25fc3bc 100644
--- a/2004/n/fpga/doc/dcd/gpio/gpio.tex
+++ b/2004/n/fpga/doc/dcd/gpio/gpio.tex
@@ -210,33 +210,86 @@ les pins un bloc à trois états (état bas, état haut et haute impédance). Ce
bloc dès qu'on le sélectionne à l'aide du signal cs\_read\_output recopie les
entrées sorties sur le bus de données. On notera que ce module, de même que les trois registres, sont synchronisés sur l'horloge du bus ISA.
+
\subsection{Décomposition RTL}
-% TODO : ICICICICCIC
+\subsubsection{Les registres : reg\_rw}
-Commençons par décrire le fonctionnement des registres nommés
+Commençons par décrire le fonctionnement du registre synchrone nommé
+\textit{reg\_rw}. Ce registre est un registre 8 bits pas tout à fait standard.
+Comme les registres standards, il possède une horloge, un signal de
+remise-à-zéro, un signal enable, des entrées au nombre de 8 et des sorties au
+nombre de 8 également. Par contre, celui-ci a un signal supplémentaire : le
+signal Read / Write ($R\bar{W}$).
-% Reg_rw
-\lstinputlisting{../../src/registre/reg_rw.vhd}
+L'intérêt de ce registre par rapport à un registre "normal" est de pouvoir
+relire son contenu. Cela est utile dans notre cas puisque durant le
+développement de la carte, nous aurons besoin de pouvoir nous assurer du bon
+fonctionnement des différents modules de la carte. L'implémentation de ce
+registre est particulièrement adaptée à notre carte qui communique par bus.
-\lstinputlisting{../../src/three-state/tristate.vhd}
+On se rappelera que c'est un registre synchrone. Les opérations seront donc
+effectuée à la suite d'un front montant. Pour résumer son fonctionnement,
+voici comment ce registre se comporte :
-\lstinputlisting{../../src/gpio/gpio.vhd}
+\begin{itemize}
+\item{Si $write$ ($R\overline{W}$ = '0') et $enable$, alors sauvegarde de
+l'entrée et recopie de celle-ci en sortie.}
+\item{Si $read$ ($R\overline{W}$ = '1') et $enable$ alors recopie de la
+dernière valeure sauvegardée sur l'entrée.}
+\item{Si $\overline{enable}$, alors recopie la dernière valeur sauvegardée sur
+la sortie et positionne l'entrée en haute impédance.}
+\end{itemize}
-\lstinputlisting{../../src/gpio/gpio_it_detect_up.vhd}
+Si dessous se trouve le code correspondant au registre décrit précédement.
+
+\lstinputlisting{../../src/registre/reg_rw.vhd}
-\lstinputlisting{../../src/gpio/gpio_it_detect_down.vhd}
-% Module haute impédance
+\subsubsection{Le bloc trois-états : tristate}
+
Pour la lecture des valeurs sur les entrées / sorties, un composant nommé
-\textit{tristate} est utilisé. Ce composant est en fait un module synchrone
+\textit{tristate} est utilisé. 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}
+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}
-\subsection{Simulation du bloc}
+Le listing de ce composant est le suivant :
+
+\lstinputlisting{../../src/three-state/tristate.vhd}
+
+
+
+\subsubsection{Les gestionnaires d'interruptions : gpio\_it\_detect\_up et
+gpio\_it\_detect\_down}
+
+% TODO : continuer icicicicicicicicici
+
+\lstinputlisting{../../src/gpio/gpio_it_detect_up.vhd}
+
+\lstinputlisting{../../src/gpio/gpio_it_detect_down.vhd}
+
+
+
+
+\subsubsection{Le module gpio}
+
+Ce bloc est celui dont le comportement aura été décrit précédement dans les
+section en rapport avec l'architecture physique. On pourra d'ailleurs se
+rapporter aux différents schémas précédement vus. Ci-dessous, se trouve le
+listing correspondant à ce module.
+
+\lstinputlisting{../../src/gpio/gpio.vhd}
+
+\subsection{Simulation du bloc et test sur carte}
+
+% Ici, on met les fichiers de simulation
+
+\subsection{Les résultats de synthèse logique}
+
+% Ici,