\subsection{La carte}

\subsubsection{L'objectif}
L'objectif d'un tel projet est de pouvoir le tester dans les vrais
conditions d'utilisation. Pour ce faire, aucune carte d'évaluation n'est
vraiment pratique : trop grosse, doté de fonctionnalité inexploitable,
grands nombres IOBs dédiés à des fonctions spécifiques.

Bref à toute application sa carte applicative. La notre aura pour
restriction :
\begin{itemize}
\item pouvoir ce connecter sur le port ISA d'un PC104
\item connecter les differents signaux du bus ISA pour être le plus
facilement ré-exploitable par la suite.
\item un grand nombre de connecteur pour repondre à une multitude de
besoin existant ou à venir.
\item Respecter les normes du PC104. 
\item Réaliser cette carte avec un budget limité.
\item Utiliser les ressources disponible du PC104.
\end{itemize}

Ainsi nous pensons gagner en fiabilité : toutes l'électronique est
concentré sur un "support de silicium". Nous allons gagner en place, en
fiabilité (moins de fils entre les divers carte) et nous aurons valorisé
les connaissances apprises durant sept année à l'EFREI.

\begin{center}
\includegraphics{./carte/small_carte.png}
\end{center}

\subsection{Ressources du PC104 déjà utilisé}
Les ressources sités ont été obtenu à partir d'un noyau linux. Et sont
caractéristique de la carte Eurotech, model : *Mettre ici une précision*

\subsubsection{Les ioports}
\begin{center}
\begin{tabular}{|c|c|}
\hline
Plage & Périphérique \\ \hline
\hline
0000-001f & dma1 \\ \hline
0020-003f & pic1 \\ \hline
0040-005f & timer \\ \hline
0060-006f & keyboard \\ \hline
0080-008f & dma page reg \\ \hline
00a0-00bf & pic2 \\ \hline
00c0-00df & dma2 \\ \hline
00f0-00ff & fpu \\ \hline
02f8-02ff & serial(set) \\ \hline
03c0-03df & vga+ \\ \hline
03f8-03ff & serial(set) \\ \hline
0cf8-0cff & PCI conf1 \\ \hline
f800-f80f & Cyrix Corporation 5530 IDE [Kahlua] \\ \hline
fc00-fcff & Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ \\ \hline
fc00-fcff & 8139too \\ \hline
\end{tabular}
\end{center}

\subsubsection{Les interruptions}
\begin{center}
\begin{tabular}{|c|c|c|}
\hline
Interruption & & Périphérique \\ \hline \hline
0 & XT-PIC & timer \\ \hline
1 & XT-PIC & keyboard \\ \hline
2 & XT-PIC & cascade \\ \hline
9 & XT-PIC & usb-ohci, eth0 \\ \hline
\end{tabular}
\end{center}

\subsubsection{Les plages mémoires}
\begin{center}
\begin{tabular}{|c|c|}
\hline
Plage & Périphérique \\ \hline \hline
00000000-000953ff & System RAM \\ \hline
0009fc00-0009ffff & reserved \\ \hline
000a0000-000bffff & Video RAM area \\ \hline
000c0000-000c7fff & Video ROM \\ \hline
000f0000-000fffff & System ROM \\ \hline
00100000-03e7ffff & System RAM \\ \hline
00100000-0026350f & Kernel code \\ \hline
00263510-002f075f & Kernel data \\ \hline
40011000-4001107f & Cyrix Corporation 5530 Audio [Kahlua] \\ \hline
40012000-400120ff & Cyrix Corporation 5530 SMI [Kahlua] \\ \hline
40800000-40ffffff & Cyrix Corporation 5530 Video [Kahlua] \\ \hline
80000000-800000ff & Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ \\ \hline
80000000-800000ff & 8139too \\ \hline
80001000-80001fff & Compaq Computer Corporation ZFMicro Chipset USB \\ \hline
80001000-80001fff & usb-ohci \\ \hline
\end{tabular}
\end{center}

\subsection{Ressources sélectionnées pour utiliser la carte}

Dans l'état actuel du projet, nous allons utiliser la plage d'adresse
000d0000 à 000dffff.
2 interruptions seront nécéssaire. L'une \emph{INT\_1} pourra être
connecter soit à \emph{IRQ 9}\footnote{Cette interruption est utilisé sur
la carte Eurotech} ou \emph{IRQ 5} du port ISA. L'autre \emph{INT\_2}
pourra être connecter soit à \emph{IRQ 3} ou à \emph{IRQ 4}.

Pour pourvoir faire des transferts 16 bits, les lignes \emph{IOCS16} et
\emph{MEMCS16} doivent être connecter au bus ISA.
Le signal \emph{sben} permet de faire des transferts 8 bits, avec juste
l'octet de poids fort.

\subsection{Table de correspondance avec le FPGA}
\subsubsection{ Interconnection avec le bus ISA}

Voici comment le port ISA de l'ordinateur a été connecter sur le FPGA.

\begin{center}
\begin{tabular}{c c}

\begin{tabular}{|c|c||c|c|}
\multicolumn{4}{c}{Données} \\
\hline
D15 & P206 & D7 & P138 \\ \hline
D14 & P205 & D6 & P139 \\ \hline
D13 & P204 & D5 & P140 \\ \hline
D12 & P203 & D4 & P141 \\ \hline
D11 & P202 & D3 & P142 \\ \hline
D10 & P201 & D2  & P146 \\ \hline
D9 & P200 & D1 & P147 \\ \hline
D8 & P199 & D0 & P148 \\ \hline
\end{tabular}

&

\begin{tabular}{|c|c||c|c|}
\multicolumn{4}{c}{Adresse} \\
\hline
A0 & P195 & A1 & P194 \\ \hline
A2 & P193 & A3 & P192 \\ \hline
A4 & P191 & A5 & P189 \\ \hline
A6 & P188 & A7 & P187 \\ \hline
A8 & P181 & A9 & P180 \\ \hline
A10 & P179 & A11 & P178 \\ \hline
A12 & P175 & A13 & P173 \\ \hline
A14 & P172 & A15 & P168 \\ \hline
A16 & P167 & A17 & P166 \\ \hline
A18 & P164 & A19 & P162 \\ \hline
\end{tabular}

\end{tabular}

\begin{tabular}{|c|c||c|c|}
\multicolumn{4}{c}{Autres connections} \\
\hline
MEMEW & P176 & MEMR & P174 \\ \hline
IOR & P165 & IOW & P163 \\ \hline
AEN & P161 & SBHE & P160 \\ \hline
IOCS16 & P152 & MEMCS16 & P151 \\ \hline
INT\_1 & P150 & INT\_2 & P149 \\ \hline
CS\_DATA & P136 & BUS\_CLK & P185  \\ \hline
\end{tabular}

\end{center}

\subsubsection{Ports externes et Ports dédié}

Les ports externes permet d'avoir des entrées/sorties programmable à volonter.

\begin{tabular}{c c c}

\begin{tabular}{|c|c|}
\multicolumn{2}{c}{Port 1 - JP10} \\
\hline
JP10 - 1 & P35 \\ \hline
JP10 - 2 & P42 \\ \hline
JP10 - 3 & P34 \\ \hline
JP10 - 4 & P41 \\ \hline
JP10 - 5 & P33 \\ \hline
JP10 - 6 & P37 \\ \hline
JP10 - 7 & P31 \\ \hline
JP10 - 8 & P36 \\ \hline
JP10 - 9 & 5V \\ \hline
JP10 - 10 & GND  \\ \hline
\end{tabular}

&

\begin{tabular}{|c|c|}
\multicolumn{2}{c}{Port 2 - JP6} \\
\hline
JP6 - 1 & P83 \\ \hline
JP6 - 2 & P73 \\ \hline
JP6 - 3 & P84 \\ \hline
JP6 - 4 & P74 \\ \hline
JP6 - 5 & P86 \\ \hline
JP6 - 6 & P81 \\ \hline
JP6 - 7 & P87 \\ \hline
JP6 - 8 & P82 \\ \hline
JP6 - 9 & 5V \\ \hline
JP6 - 10 & GND  \\ \hline
\end{tabular}

&

\begin{tabular}{|c|c|}
\multicolumn{2}{c}{Port 3 - JP7} \\
\hline
JP7 - 1 & P95 \\ \hline
JP7 - 2 & P88 \\ \hline
JP7 - 3 & P96 \\ \hline
JP7 - 4 & P89 \\ \hline
JP7 - 5 & P97 \\ \hline
JP7 - 6 & P90 \\ \hline
JP7 - 7 & P98 \\ \hline
JP7 - 8 & P94 \\ \hline
JP7 - 9 & 5V \\ \hline
JP7 - 10 & GND  \\ \hline
\end{tabular}
\end{tabular}


\begin{tabular}{c c c}

\begin{tabular}{|c|c|}
\multicolumn{2}{c}{Port 4 - JP5} \\
\hline
JP5 - 1 & P108 \\ \hline
JP5 - 2 & P99 \\ \hline
JP5 - 3 & P109 \\ \hline
JP5 - 4 & P100 \\ \hline
JP5 - 5 & P110 \\ \hline
JP5 - 6 & P101 \\ \hline
JP5 - 7 & P111 \\ \hline
JP5 - 8 & 102 \\ \hline
JP5 - 9 & 5V \\ \hline
JP5 - 10 & GND  \\ \hline
\end{tabular}

&

\begin{tabular}{|c|c|}
\multicolumn{2}{c}{Port 5 - JP4} \\
\hline
JP6 - 1 & P119 \\ \hline
JP6 - 2 & P112 \\ \hline
JP6 - 3 & P120 \\ \hline
JP6 - 4 & P113 \\ \hline
JP6 - 5 & P121 \\ \hline
JP6 - 6 & P114 \\ \hline
JP6 - 7 & P122 \\ \hline
JP6 - 8 & P115 \\ \hline
JP6 - 9 & 5V \\ \hline
JP6 - 4 & GND  \\ \hline
\end{tabular}

&

\begin{tabular}{|c|c|}
\multicolumn{2}{c}{Divers} \\
\hline
LED1 & P133 \\ \hline
LED2 & P134 \\ \hline
Bonton& P132 \\ \hline
I2C clk & P29 \\ \hline
I2C data & P30 \\ \hline
Clk-40Mhz & P126 \\ \hline
Clk-24Mhz & P80 \\ \hline
\end{tabular}
\end{tabular}

\begin{tabular}{c c}

\begin{tabular}{|c|c||c|c|}
\multicolumn{4}{c}{Port Parallèle - JP8} \\
\hline
JP8 - 15 & P57 & JP8 - 20& P69 \\ \hline
JP8 - 13 & P49 & JP8 - 18 & P68 \\ \hline
JP8 - 11 & P48 & JP8 - 16 & P67 \\ \hline
JP8 - 9 & P47 & JP8 - 14 & P63 \\ \hline
JP8 - 7 & P46 & JP8 - 12 & P62 \\ \hline
JP8 - 5 & P45 & JP8 - 10 & P61 \\ \hline
JP8 - 3 & P44 & JP8 - 8 & P60 \\ \hline
JP8 - 1 & P43 & JP8 - 6 & P59\\ \hline
JP8 - 17 & P71 & JP8 - 4 & P58 \\ \hline
JP8 - 19 & P70 & JP8 - 2 & GND \\ \hline
\end{tabular}

&

\begin{tabular}{|c|c||c|c|}
\multicolumn{4}{c}{Port Camera - JP12}\\
\hline
JP12-1 (Y0)& P3& JP12-13 (i2c clk) & P29 \\ \hline
JP12-2 (Y1)& P4& JP12-14 (href) & P16 \\ \hline
JP12-3 (Y2)& P5& JP12-18 (pclk) & P77 \\ \hline
JP12-4 (Y3)& P6& JP12-23 (uv0) & P17 \\ \hline
JP12-5 (Y4)& P7& JP12-24 (uv1) & P18 \\ \hline
JP12-6 (Y5)& P8& JP12-25 (uv2) & P20 \\ \hline
JP12-7 (Y6)& P9& JP12-26 (uv3) & P21 \\ \hline
JP12-8 (Y7)& P10& JP12-27 (uv4) & P22 \\ \hline
JP12-9 (reste)&P14 & JP12-28 (uv5) & P23 \\ \hline
JP12-11 (i2c data)& P30 & JP12-29 (uv6) & P24 \\ \hline
JP12-16 (vsyn)& P15 & JP12-30 (uv7) & P27 \\ \hline
\end{tabular}
\end{tabular}

\subsection{Configuration de la carte}

La carte nécessite 3 jumpers, sur JP1, JP2 et JP9.

JP9 sert à configurer le FPGA.(Voir figure \ref{JP9}). Le \emph{Master
Serial mode} correspond au mode dans lequel le FPGA télécharge sa
configuration depuis la PROM à laquel il est connecté. Le mode
\emph{JTAG} pour \emph{Join Test Action Group} ou encore
\emph{Boundary-Scan Mode} (peut aussi être appelé IEEE std 1149.1).

\begin{quote}
\underline{JTAG} est un standard développé pour fournir un moyen de test
pour les cartes électroniques. Maintenant beaucoup de vendeur de composant
utilise cette norme pour configurer les composants.
\end{quote}
\begin{quote}
\underline{Boundary Scan} est une méthode de test pour identifier
d'éventuel problème sur le développement de carte électronique. Elle
permet aux développeurs de rapidement identifier un problème de connection.
Le \emph{Boundary Scan} ne peut s'éffectuer que sur des périphériques
dotés d'un port \emph{JTAG}.
\end{quote}

\begin{figure}
\begin{center}
\caption{Configuration de JP9} 
\begin{tabular}{|c|c|}
\hline
1-2 & Master Serial mode \\ \hline
2-3 & JTAG \\ \hline
\end{tabular}
\end{center}
\label{JP9}
\end{figure}

JP1 et JP2 permettent de configurer respectivement \emph{int\_2} et
\emph{int\_1}. (Voir tableaux \ref{JP1JP2}). On pourra ainsi choisir les
ressources de l'ordinateur que l'on utilisera.
\begin{quote}
\textbf{Attention}, selon le PC104 utilisé certaines de ses ressources sont
peut-être déjà utilisées. C'est pour cela que les ressources utilisées par
le PC104 Eurotech ont été utilisé pour construire la carte: Au moins on
est sûr que cette carte marchera avec ce PC104.
\end{quote}

\begin{figure}
\begin{center}
\caption{configuration de JP1 et JP2}
\begin{tabular}{ c c }
\begin{tabular}{|c|c|}
\multicolumn{2}{c}{JP1} \\ \hline
1-2 & Active IRQ3 \\ \hline
3-4 & Active IRQ4 \\ \hline
1-3 & Désactivé \\ \hline
\end{tabular}

&

\begin{tabular}{|c|c|}
\multicolumn{2}{c}{JP2} \\ \hline
1-2 & Active IRQ9 \\ \hline
3-4 & Active IRQ5 \\ \hline
1-3 & Désactive \\ \hline
\end{tabular}
\end{tabular}
\end{center}
\label{JP1JP2}
\end{figure}
