summaryrefslogtreecommitdiff
path: root/2004/n/fpga/doc/dcd/rapport.tex
blob: 9922daa30f536c6d281143244fffee238b284b70 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
\documentclass[a4paper,dvips,pdftex,titlepage]{article} 

% Inclusion de packages :
%{{{1
\usepackage[T1]{fontenc}
\usepackage[latin1]{inputenc}
\usepackage[french]{babel}
\usepackage{fancyhdr}
\usepackage[dvips]{graphicx,color}
%\usepackage[pdftex]{graphicx,color}
%\usepackage{verbatim}
\usepackage{times}
% Pour inclure les listings VHDL
\usepackage{listings}
\lstset{language=VHDL,extendedchars=true,inputencoding=latin1,breaklines}
\lstset{language=vhdl,
        basicstyle=\footnotesize, %diminue la taille de listings
        numbers=left, % nombre � gauche
        numberstyle=\tiny,
        stepnumber=5,
        xleftmargin=30pt
%	extendedchars=true,
%	inputencoding=latin1,
%	breaklines
        }

% Pour les maths :
%\usepackage{amssymb}
%\usepackage{amsfonts}
%\usepackage{amsmath,amsthm}
%}}}1

% Mise en page du document :
%{{{1
\pagestyle{fancy}
\parskip=10pt
\baselineskip=11pt
\parindent=0pt		% alin�a

\addtolength{\textwidth}{0.6cm}

% Ent�te de page :
\lhead{\small{Thomas Burg - Pierre-Andre Galmes \\ Fid�le Gafan - Pierre
Prot}}
\rhead{I2 ET\\ F�vrier 2004}

% Structure du document :
\begin{document}

\title{Pr�-projet de VHDL : \\ R�alisation d'un p�riph�rique ISA pour
PC104}
\author{Thomas Burg - Pierre-Andre Galmes - Fid�le Gafan - Pierre Prot\\ EFREI - Ing�nieur
2$^{\textrm{i�me}}$ ann�e}
\date{F�vrier 2004}
\maketitle
\tableofcontents
\pagebreak
%1}}}

% Todo :

% Remerciements ?


\section{Introduction}

Suite au cahier des charges, �crit pr�c�dement, voici un rapport d�taillant
l'impl�mentation de la solution pour laquelle nous avons opt� : la r�alisation
d'une carte FPGA. 

En effet, les avantages de ce type de carte sont nombreux. Tout d'abord, une
fois le routage et la fabrication effectu�e, cette carte peut-�tre
reprogramm�e � "volont�". En effet, cela est tr�s utile autant lors de la
phase de mise au point des diff�rents modules que plus tard, si le besoin
d'apporter des modification se fait sentir.

On pourrait par exemple remplacer un module inutilis� (bus $I^2C$, gpio...)
pour impl�menter un autre module plus utile � ce moment. Pour cela, il
suffirait de r�-affecter les pattes (fichier de contrainte) associ�es au
module inutilis� et de modifier l�g�rement le code VHDL.

Ensuite, cette carte a �t� faite dans une optique de r�utilisation. En effet,
pour gagner du temps de d�veloppement, il devient important que nos
pr�d�cesseurs puissent reprendre ce que nous avons d�velopp�. Ainsi, nous
avons par exemple d�cider de choisir d'utiliser une carte PC104 pour la
r�alisation de ce robot. 

Ce type de carte a en effet l'avantage d'�tre standardis�e. Il est donc facile
de trouver des fournisseurs, crit�re tr�s important pour la p�rennit� du
syst�me con�u !

Le pr�sent dossier a pour but de pr�senter la carte FPGA. Nous pr�senterons
une premi�re vision globale de cette carte dans laquelle nous donnerons ses
principales caract�ristiques, � savoir, � quoi servira cette carte, de quels
modules elle sera compos�e et les informations relatives au routage de cette
carte.

Nous expliquerons aussi le fonctionnement des diff�rents modules et en
particulier comment piloter ceux-ci � partir de la carte PC104. Pour chaque
module, nous avons d�taill� son fonctionnement interne ou architecture
physique et list� le code VHDL cr��.

\pagebreak

% Ici, explication sur la carte dans son ensemble ?

\section{Architecture globale}

Cette premi�re vision a pour but de donner  


La carte FPGA est destin�e � �tre branch�e sur un PC104 via un bus ISA.

Ce module est compos� de diff�rents blocs : $I^2C$, ports s�rie, gestion cam�ra,
pwm, servomoteurs, gpio.

Tous ces blocs sont connect�s sur le bus ISA et sont accessibles directement
par le PC104.

Le fpga g�re les interruptions g�n�r�es par ses blocs et les transmet au
PC104 � l'aide des IRQ.

Cf sch�ma de l'architecture globale, figure \ref{archiglobale} page
\pageref{archiglobale}.

\begin{figure}[htbp]
\caption{Architecture globale de la carte FPGA}
\begin{center}
\includegraphics[width=1.4\textwidth,angle=90]{./images/carte_globale.pdf}
\end{center}
\label{archiglobale}
\end{figure}

\pagebreak

% Les diff�rents modules de la carte
\section{La gestion des interruptions}
\input{./interrupt/interrupt.tex}
\pagebreak

\section{Le bloc d'entr�es / sorties}
\input{./gpio/gpio.tex}
\pagebreak

\section{Le bloc port s�rie}
\input{./portserie/portserie.tex}
\pagebreak

\section{Le bloc PWM}
\input{./pwm/pwm.tex}
\pagebreak

\section{Le bloc de gestion de la cam�ra}
\input{./ovcam/ovcam.tex}
\pagebreak

\section{La carte}
\input{./carte/carte.tex}
\pagebreak


\section {Conclusion}

% L� ou on en est
M�me si nous ne sommes pas encore � la fin

On a des modules qui fonctionnent

On aura pu tester diff�rents modules sur carte de test.

D�couverte de Protel, 

R�alisation de la carte aupr�s d'un fabriquant,

Recherche du fabriquant le plus adapt�

R�ussi � n�gocier un sponsoring avec lui !

N�gociation d'un contrat



\pagebreak


% TODO : Annexes
\appendix

\section{Listing des modules vhdl}

\subsection{nono\_const.vhd}
\label{sec:nono_const}
\lstinputlisting{../../src/packages/nono_const.vhd}
\pagebreak

\subsection{isa\_const.vhd}
\label{sec:isa_const}
\lstinputlisting{../../src/packages/isa_const.vhd}
\pagebreak

\subsection{pwm\_const.vhd}
\label{sec:pwm_const}
\lstinputlisting{../../src/packages/pwm_const.vhd}
\pagebreak

\subsection{or3.vhd}
\label{sec:or3}
\lstinputlisting{../../src/or/or3.vhd}
\pagebreak

\subsection{or8.vhd}
\label{sec:or8}
\lstinputlisting{../../src/or/or8.vhd}
\pagebreak

\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{interrupt.vhd}
\label{sec:interrupt}
\lstinputlisting{../../src/interrupt/interrupt.vhd}
\pagebreak

\subsection{gpio.vhd}
\label{sec:gpio}
\lstinputlisting{../../src/gpio/gpio.vhd}
\pagebreak


\end{document}