From f06dcad14cfce6f6ed9d2a985a7bfe67f4427f5f Mon Sep 17 00:00:00 2001
From: prot
Date: Thu, 22 Apr 2004 07:09:43 +0000
Subject: Ajout remerciements Ajout listings port série

---
 2004/n/fpga/doc/dcd/rapport.tex | 165 +++++++++++++++++++++++++++++++++++++---
 1 file changed, 153 insertions(+), 12 deletions(-)

(limited to '2004/n/fpga/doc/dcd/rapport.tex')

diff --git a/2004/n/fpga/doc/dcd/rapport.tex b/2004/n/fpga/doc/dcd/rapport.tex
index dc1c2fb..4d8af0e 100644
--- a/2004/n/fpga/doc/dcd/rapport.tex
+++ b/2004/n/fpga/doc/dcd/rapport.tex
@@ -57,6 +57,30 @@ PC104}
 \pagebreak
 %1}}}
 
+\vfill
+
+\section*{Remerciements}
+
+Avant toute chose, nous tenons, avec tous les membres d'EFREI Robotique, �
+remercier les personnes qui nous ont aid� dans la r�alisation de cette carte,
+particuli�rement :
+
+\begin{itemize}
+\item Monsieur Villedieu, pour ses sch�mas, ses conseis avis�s, et surtout le
+temps et la disponibilit� qu'il a bien voulu nous consacrer aussi bien pour la
+conception hardware que pour le code vhdl de cette carte.
+\item Olivier Desbrosses pour son soutient logistique.
+\item Messieurs Roger, Pelletier Joel et R�my, pour leur aide sur le vhdl.
+\item Nicolas Bouquet, et ses coll�gues pour la validation du PCB
+\item Enfin, n'oublions pas Yvan Bourne de la soci�t� YBDesign (ing�nierie
+�lectronique), qui nous a offert de nombreuseuses facilit�s lors de la
+r�alisation du PCB.
+\end{itemize} 
+
+
+\vfill
+
+=======
 % Todo :
 
 % Remerciements ?
@@ -138,6 +162,70 @@ IRQ.
 \pagebreak
 
 % Les diff�rents modules de la carte
+\section{Le d�codage du bus ISA} 
+\subsection{Role} 
+ 
+Le premier module en entr�e du FPGA est le d�codeur du bus ISA. Il effectue
+deux t�ches :
+
+\subsubsection{Le d�codage de l'adresse} 
+
+D�coder l'adresse ISA du FPGA, et si celle-�i est valide, l'adresse de
+sous-r�seau du registre s�lectionn�. En effet, nous avons d�coup� l'adresse
+des registres comme suit :
+\begin{tabular}{|c|c|c|}
+\hline
+Adresse FPGA & Sous-adresse registre
+\\ \hline
+16 bits & 8 bits
+\\ \hline
+\end{tabular}
+
+\subsubsection{La conversion des signaux de contr�le} 
+
+Les signaux de contr�le de bus sont AEN (Address ENable), IOR (IORead), et IOW
+(IOWrite). Nos registres, quand � eux, utilisent des signaux CS (Chip Select),
+RW, et clk (la clock ne sert que pour �crire dans le registre). La conversion
+de ces signaux est effectu�e par le d�codeur de bus.
+
+Pour cela l'algorithme est tr�s simple :
+RW <= not IOR
+clk <= (IOR or IOW) and not AEN
+CS prend la sortie du d�codeur de la sous-adresse registre correspondant au registre voulu.
+
+\begin{figure}[htbp]
+\caption{Conversion des signaux de contr�le de bus}
+\begin{center}
+\includegraphics[width=1\textwidth,angle=90]{./convbus.pdf}
+\end{center}
+\label{convbus}
+\end{figure}
+
+
+\subsection{Impl�mentation}
+
+Pour impl�menter ce module, nous avons utilis� un d�codeur g�n�r� par coregen.
+Il poss�de 256 sorties, ce qui laisse des possibilit�s suffisantes pour le
+fpga (256 sous-adresses). Chacune de ses sorties est � relier au registre
+correspondant. On obtient donc un mappage des registres. 
+
+L'adresse du fpga est quand � elle d�cod�e par un simple comparateur binaire.
+Elle est valid�e par le signal AEM, qui doit �tre � 0 pour que la comparaison puisse s'effectuer.
+En entrant sur l'enable du d�codeur de sous-adresse, la sortie de ce
+comparateur active ou non tous les CS d'un coup pourvu que AEN soit � 0.
+
+La conversion des signaux est faite par table de v�rit�.
+
+
+\subsection{Testbench} 
+
+Sur ce testbench, nous avons mis l'adresse du FPGA � 000100, ce qui signifie que l'espace adressable pour les registres s'�tend de 0000100 � 0001FF. Dans le testbench, l'adresse balaye l'intervale 000000-000300. En m�me temps, les signaux de contr�le de bus varient al�atoirement.
+
+On remarque que la conversion des signaux IOR/IOW en RW/clk s'effectue comme voulu.
+
+On voit �galement tr�s bien le moment o� les CS commencent � �tre actifs (� partir de l'adresse 000100), ainsi que le moment o� ils sont inhib�s par la remont� du signal AEN.
+
+
 \section{La gestion des interruptions}
 \input{./interrupt/interrupt.tex}
 \pagebreak
@@ -209,62 +297,67 @@ versions suivantes de ce dossier pour montrer le r
 
 \section{Listing des modules vhdl}
 
-\subsection{nono\_const.vhd}
+\subsection{fichiers globaux}
+
+\subsubsection{nono\_const.vhd}
 \label{sec:nono_const}
 \lstinputlisting{../../src/packages/nono_const.vhd}
 \pagebreak
 
-\subsection{isa\_const.vhd}
+\subsubsection{isa\_const.vhd}
 \label{sec:isa_const}
 \lstinputlisting{../../src/packages/isa_const.vhd}
 \pagebreak
 
-\subsection{pwm\_const.vhd}
+\subsubsection{pwm\_const.vhd}
 \label{sec:pwm_const}
 \lstinputlisting{../../src/packages/pwm_const.vhd}
 \pagebreak
 
-\subsection{or3.vhd}
+\subsubsection{or3.vhd}
 \label{sec:or3}
 \lstinputlisting{../../src/or/or3.vhd}
 \pagebreak
 
-\subsection{or8.vhd}
+\subsubsection{or8.vhd}
 \label{sec:or8}
 \lstinputlisting{../../src/or/or8.vhd}
 \pagebreak
 
-\subsection{reg\_rw.vhd}
+\subsubsection{reg\_rw.vhd}
 \label{sec:reg_rw}
 \lstinputlisting{../../src/registre/reg_rw.vhd}
 \pagebreak
 
-\subsection{tristate.vhd}
+\subsubsection{tristate.vhd}
 \label{sec:tristate}
 \lstinputlisting{../../src/three-state/tristate.vhd}
 \pagebreak
 
-\subsection{gpio\_direction.vhd}
+
+\subsection{Les GPIO}
+
+\subsubsection{gpio\_direction.vhd}
 \label{sec:gpio_direction}
 \lstinputlisting{../../src/gpio/gpio_direction.vhd}
 \pagebreak
 
-\subsection{gpio\_it\_detect\_up.vhd}
+\subsubsection{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}
+\subsubsection{gpio\_it\_detect\_down.vhd}
 \label{sec:gpio_it_detect_down}
 \lstinputlisting{../../src/gpio/gpio_it_detect_down.vhd}
 \pagebreak
 
-\subsection{interrupt.vhd}
+\subsubsection{interrupt.vhd}
 \label{sec:interrupt}
 \lstinputlisting{../../src/interrupt/interrupt.vhd}
 \pagebreak
 
-\subsection{gpio.vhd}
+\subsubsection{gpio.vhd}
 \label{sec:gpio}
 \lstinputlisting{../../src/gpio/gpio.vhd}
 \pagebreak
@@ -285,4 +378,52 @@ versions suivantes de ce dossier pour montrer le r
 \pagebreak
 
 
+\subsection{Le port s�rie}
+
+\subsubsection{fpga.vhd}
+Le fichier qui inclut le TX et le RX pour le testbench des deux
+\label{sec:fpga}
+\lstinputlisting{../../src/fpga/fpga.vhd}
+\pagebreak
+
+\subsubsection{txserie.vhd}
+\label{sec:}
+\lstinputlisting{../../src/portserie/portserie/txserie.vhd}
+\pagebreak
+
+\subsubsection{bch_txserie.vhd}
+\label{sec:}
+\lstinputlisting{../../src/portserie/portserie/bch_txserie.vhd}
+\pagebreak
+
+\subsubsection{rxserie.vhd}
+\label{sec:}
+\lstinputlisting{../../src/portserie/rxserie/rxserie.vhd}
+\pagebreak
+
+\subsubsection{bch_rxserie.vhd}
+\label{sec:}
+\lstinputlisting{../../src/portserie/rxserie/bch_rxserie.vhd}
+\pagebreak
+
+\subsubsection{clockgene.vhd}
+\label{sec:}
+\lstinputlisting{../../src/portserie/clockgene/clockgene.vhd}
+\pagebreak
+
+\subsubsection{fifodriver.vhd}
+\label{sec:}
+\lstinputlisting{../../src/portserie/fifo/fifodriver.vhd}
+\pagebreak
+
+\subsubsection{bch_fifodriver.vhd}
+\label{sec:}
+\lstinputlisting{../../src/portserie/fifo/bch_fifodriver.vhd}
+\pagebreak
+
+
+
+\subsection{Le reste (� compl�ter)}
+
+
 \end{document}
-- 
cgit v1.2.3

