From 45e5fa7b0cfab3dc616617cea6b084e50f6587f7 Mon Sep 17 00:00:00 2001 From: galmes Date: Sun, 18 Apr 2004 17:38:57 +0000 Subject: rapport : ajout des annexes (listings) gpio : déplacement du code en annexe. interrupt : ajout d'un partie de doc. --- 2004/n/fpga/doc/dcd/gpio/gpio.tex | 34 ++++++++++------------- 2004/n/fpga/doc/dcd/interrupt/interrupt.tex | 41 +++++++++++++++++++++------ 2004/n/fpga/doc/dcd/rapport.tex | 43 ++++++++++++++++++++++++++++- 3 files changed, 88 insertions(+), 30 deletions(-) (limited to '2004/n/fpga') 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 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 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 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 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 \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 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 \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} -- cgit v1.2.3