summaryrefslogtreecommitdiff
path: root/2004
diff options
context:
space:
mode:
Diffstat (limited to '2004')
-rw-r--r--2004/n/fpga/doc/dcd/Makefile2
-rw-r--r--2004/n/fpga/doc/dcd/rapport.tex157
2 files changed, 12 insertions, 147 deletions
diff --git a/2004/n/fpga/doc/dcd/Makefile b/2004/n/fpga/doc/dcd/Makefile
index 18fca12..692d66d 100644
--- a/2004/n/fpga/doc/dcd/Makefile
+++ b/2004/n/fpga/doc/dcd/Makefile
@@ -1,4 +1,4 @@
-SUBDIR= interrupt gpio ovcam portserie images pwm
+SUBDIR= interrupt gpio ovcam portserie images pwm decodisa
all:
for i in $(SUBDIR); do (cd $$i; $(MAKE) all); done
diff --git a/2004/n/fpga/doc/dcd/rapport.tex b/2004/n/fpga/doc/dcd/rapport.tex
index 2ffc21c..deaaf57 100644
--- a/2004/n/fpga/doc/dcd/rapport.tex
+++ b/2004/n/fpga/doc/dcd/rapport.tex
@@ -65,7 +65,7 @@ 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
+\item Monsieur Villedieu, pour ses schémas, ses conseils 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. Son soutient nous a
été vital.
@@ -73,8 +73,8 @@ conception hardware que pour le code vhdl de cette carte. Son soutient nous a
\item Olivier Desbrosses pour son soutient logistique.
\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 : \textbf{http://www.ybdesign.fr/}), qui nous a offert de nombreuses
-facilités lors de la réalisation du PCB.
+électronique : \textbf{http://www.ybdesign.fr/}), qui nous a offert de
+nombreuses facilités lors de la réalisation du PCB.
\end{itemize}
@@ -157,148 +157,8 @@ IRQ.
% 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), MEMR (MEMRead), et MEMW
-(MEMWrite). 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 MEMR
-clk <= (MEMR or MEMW) 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]{images/pdf/timespec.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 MEMR/MEMW 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.
-
-\begin{figure}[htbp]
-\caption{Conversion des signaux de contrôle de bus}
-\begin{center}
-\includegraphics[width=1\textwidth,angle=90]{images/decod.png}
-\end{center}
-\label{benchdecod}
-\end{figure}
-
-
-\subsection{Synthese}
-
-Voici le rapport de synthèse. On voit que le décodeur de 256 sorties prend
-vraiment beaucoup de place ( 16 à 18\% du fpga), mais cela semble être le prix à payer.
-
-\begin{verbatim}
-
-Release 6.1.03i - xst G.26
-Copyright (c) 1995-2003 Xilinx, Inc. All rights reserved.
---> Reading design: decodisa.prj
-
-TABLE OF CONTENTS
- 1) Synthesis Options Summary
- 2) HDL Compilation
- 3) HDL Analysis
- 4) HDL Synthesis
- 4.1) HDL Synthesis Report
- 5) Advanced HDL Synthesis
- 6) Low Level Synthesis
- 7) Final Report
- 7.1) Device utilization summary
- 7.2) TIMING REPORT
-
-
-
-=========================================================================
-* Final Report *
-=========================================================================
-Final Results
-RTL Top Level Output File Name : decodisa.ngr
-Top Level Output File Name : decodisa
-Output Format : NGC
-Optimization Goal : Speed
-Keep Hierarchy : NO
-
-Design Statistics
-# IOs : 285
-
-Cell Usage :
-# BELS : 774
-# GND : 1
-# LUT3 : 3
-# LUT4 : 770
-# IO Buffers : 277
-# IBUF : 19
-# OBUF : 258
-=========================================================================
-
-Device utilization summary:
----------------------------
-
-Selected Device : 2s200fg456-6
-
- Number of Slices: 445 out of 2352 18%
- Number of 4 input LUTs: 773 out of 4704 16%
- Number of bonded IOBs: 277 out of 288 96%
-
-
-=========================================================================
-TIMING REPORT
-
-Timing Summary:
----------------
-Speed Grade: -6
-
- Minimum period: No path found
- Minimum input arrival time before clock: No path found
- Maximum output required time after clock: No path found
- Maximum combinational path delay: 19.457ns
-\end{verbatim}
-
+\input{./decodisa/decodisa.tex}
+\pagebreak
\section{La gestion des interruptions}
\input{./interrupt/interrupt.tex}
@@ -438,7 +298,12 @@ versions suivantes de ce dossier pour montrer le résultat final.
\subsection{clk1us.vhd}
\label{sec:clk1us}
-\lstinputlisting{../../src/pwm/clk1us.vhd}
+\lstinputlisting{../../src/clkdiv/clk1us.vhd}
+\pagebreak
+
+\subsection{clk200ns.vhd}
+\label{sec:clk1us}
+\lstinputlisting{../../src/clkdiv/clk200ns.vhd}
\pagebreak
\subsection{convert\_pwm.vhd}