From edf2dbcacf867aa67fdbdde74150bbfc1e6c1a28 Mon Sep 17 00:00:00 2001 From: galmes Date: Sun, 30 May 2004 21:07:00 +0000 Subject: administratif : ajout de plein d'images et infos ! --- 2004/n/fpga/doc/dcd/Makefile | 2 +- 2004/n/fpga/doc/dcd/rapport.tex | 157 +++------------------------------------- 2 files changed, 12 insertions(+), 147 deletions(-) (limited to '2004/n') 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 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 \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} -- cgit v1.2.3