\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}