1 ère partie : Prise en main du logiciel 1 Présentation générale : Quartus II est un logiciel de CAO (société Altera) permettant la simulation, la synthèse et la programmation de circuits logiques programmables et qui offre les fonctionnalités suivantes : - Il permet la saisie, de différentes manières possibles, d un processus à intégrer dans un CPLD ou un FPGA; le traitement rapide (compilation, synthèse ) et la programmation immédiate de la puce cible. - Ce logiciel constitue un environnement intégré destiné à la conception de circuits logiques mettant en œuvre des composants programmables du constructeur Altera : MAX 5000, MAX 7000, MAX 9000, FLEX 6000, FLEX 8000 et FLEX 10K ou d autres circuits plus évolués et de densité supérieure : Mercury, Cyclone, ApexII Parmi les possibilités de Quartus II, deux modes de saisie sont possibles pour le fichier source du projet : graphique ou textuelle. De nombreuses possibilités sont offertes à l utilisateur parmi lesquelles : le partitionnement entre deux composants cibles, la simulation au niveau fonctionnel ou composant, l analyse détaillée des timings, la recherche et l identification automatique des erreurs, la programmation et la vérification des composants depuis le PC. La compatibilité avec les précédents logiciels d Altera est assurée ce qui permet d intégrer des conceptions antérieures. D autre part le compilateur garanti une implantation optimale vers le composant cible. 2 Saisie du processus à synthétiser : La saisie du processus à synthétiser (c est à dire de la fonction logique que l on veut implanter dans le circuit) peut donc se faire de deux façons différentes : - Sous forme d un schéma à l aide d un éditeur graphique. - Sous forme d un fichier texte (langage HDL (Hardware Description Language) par exemple) à l aide de n importe quel éditeur de texte. Une troisième forme de saisie à l aide de chronogramme est éventuellement possible. 1
2.1 Editeur graphique : Dans cette partie, nous allons utiliser l éditeur graphique de façon à réaliser un minuteur comptant de 0 à 59. Quartus II étant un logiciel qui travaille sous forme de projets (assemblage d entités hiérarchiques), il est nécessaire de définir tout au début de la saisie le nom du projet. Pour ouvrir un nouveau projet : 1 Créer un répertoire de travail TPVHDL dans votre répertoire personnel. 2 Lancer Quartus II. 3 Choisir File puis New Project Wizard. 4 Une nouvelle fenêtre apparaît permettant de configurer le projet. Il est alors nécessaire de définir : 1 L emplacement du répertoire où seront stockés tous les fichiers (le répertoire TPVHDL de votre répertoire personnel). 2 Le nom du projet. 3 Le nom de l entité maître du projet : L entité maître correspond à la couche hiérarchique la plus haute c est à dire celle qui recevra tous les fichiers ou toutes les entités réalisées lors du projet. Dans notre cas, le nom du projet et de l entité maître peuvent être identiques (minuteur par exemple). Cliquer sur Next puis lorsque la fenêtre Add Files apparaît, cliquer à nouveau sur Next. Choisir dans les fenêtres Family et Available Devices le circuit logique programmable à utiliser. Dans le TP, le circuit est un FPGA de la famille CycloneII et de référence EP2C20F484C7 (choisir l option Specific Device Selected ). 2
L interprétation de cette référence est la suivante : EP : Composant programmable électriquement. 2C : Famille des cyclones II. 20 : Nombre d éléments logiques (20 000). 484 : Nombre de broches. 7 : Vitesse (plus le chiffre est petit, plus le circuit est rapide). La fenêtre nous renseigne également sur le nombre de blocs logiques utilisables (18752). Cliquer deux fois sur Next afin de passer la fenêtre EDA Tool Settings, une fenêtre récapitulative apparaît. Valider alors le choix à l aide du bouton Finish. Dans le navigateur de projet, un onglet avec le type de composant et l entité maître apparaît : Il suffit alors de saisir les symboles logiques désirés (portes, circuits combinatoires ou séquentiels, ) et de les câbler entre eux en précisant les entrées et sorties et leurs types : 1 Cliquer sur l option New du menu File et choisir la rubrique Block Diagram / Schematic File pour obtenir l éditeur graphique. 3
2 Sous l éditeur graphique, sélectionner à l aide d un clic droit le menu Insert puis Symbol et saisir dans la case name la référence 74192 (compteur DCB synchrone). 3 Répéter l opération précédente avec les symboles AND2, VCC et GND. 4 Disposer alors de la même façon l ensemble des éléments nécessaires à la réalisation du minuteur. La table de vérité de certains composants est disponible dans Help >> Search >> Rechercher >> et saisir la référence du composant (Primitive et Inputs/Outputs). L espace de travail doit alors avoir l allure suivante : Cet espace comporte donc deux compteurs DCB 4 bits, une portes ET à deux entrées, deux niveaux d alimentation VCC ainsi qu une masse. L ensemble des composants disponibles peut être obtenu dans les diverses librairies du répertoire quartus \ libraries. 4
Zoom Outil texte Bibliothèque de composants Outil de connexions (trait fin pour des équipotentielles, trait épais pour un bus de données) Mode plein écran Sélection des entrées et des sorties : 1 Dans la fenêtre Name du menu Symbol, taper le mot output : Une variable pin_name apparaît. 2 Renouveler cette opération pour obtenir les 8 sorties nécessaires. 3 Refaire la même opération (une seule fois) avec input. L espace de travail devient alors le suivant : Nominations des broches : 1 Double cliquer (bouton de gauche) sur la variable pin_name (de l entrée input) puis la renommer par H. Ce signal sera utilisé pour l horloge du minuteur. 2 Renommer de la même façon les sorties du premier compteur (compteur de gauche) en UA, UB, UC et UD pour les unités et DA, DB, DC et DD pour les dizaines (D représentant le bit de poids fort). 5
Connexion des symboles : 1 Pointer la sortie de l entrée H : le pointeur devient alors une croix +. 2 Cliquer sur le bouton gauche de la souris et connecter cette sortie à l entrée d horloge du compteur des unités. 3 Connecter de la même façon l ensemble du minuteur de façon à obtenir le schéma ci-dessous. Pour effacer un trait de connexion, il suffit de le sélectionner puis de choisir cut dans le menu du bouton droit de la souris. Pour sauver le fichier : 1 Choisir Save As dans le menu File et enregistrer le fichier sous le nom de minuteur.bdf (entité de hiérarchie la plus élevée). Sauver ce fichier dans votre répertoire de travail TPVHDL. 2 Sauver également le projet à l aide de Save Project. Remarque : Il est également possible de créer un fichier symbole pouvant être utilisé dans d autres fichiers graphiques (.bdf). Pour cela, il suffit de choisir l option Create Symbol Files dans le menu File. Toutefois, ce symbole devra être utilisé dans des fichiers de hiérarchie supérieure à celle du symbole créé. 6
2.2 Compilation du projet : Quatre étapes sont réalisées durant la compilation : - La synthèse logique : C est la transformation des descriptions graphiques ou textuelles en un schéma électronique à base de portes et de registres. - La synthèse physique : C est l analyse du placement des différents composants crées précédemment en fonction des ressources matérielles. - L assemblage : C est la création des fichiers permettant la programmation du circuit. Cette phase aboutit notamment à la création de fichiers de types pof (Programmer Object Files) pour les CPLD ou sof (SRAM Object Files) pour les FPGA. - L analyse temporelle : Elle correspond à la détermination des temps de propagation entre les portes logiques et le long des chemins choisis. La phase de compilation est impérative avant de pouvoir simuler ou charger une fonction logique. 1 Choisir Compiler Tool dans le menu Processing. Le menu suivant apparaît : 2 Lancer la compilation à l aide du bouton Start. 3 Cliquer sur Report de façon à obtenir les informations sur les ressources matérielles : Blocs logiques utilisés, taux d occupation du circuit, fréquence maximale d utilisation, temps de propagation, 4 Visualiser la décomposition du schéma en portes logiques et registres (synthèse logique) à l aide de l option Netlist Viewers >> RTL Viewer (Register Transfer Level) du menu Tools. 5 Visualiser également le placement des blocs logiques utilisés (synthèse physique) à l aide de l option Technology Map Viewer du même menu. Lors de la compilation, les messages d erreurs apparaissent dans la fenêtre Processing. 2.3 Simulation : Cette étape consiste à simuler le fonctionnement du circuit logique en imposant des stimulis à l aide d un fichier spécifique appelé fichier Bench. 1 Choisir New (menu File) puis dans l onglet Other Files, choisir Vector Waveform File. Valider par OK et enregistrer le fichier sous le nom de minuteur.vwf. 7
2 Fixer la durée de la simulation par End Time (menu Edit) (1 µs par exemple); le pas d affichage pouvant être réglé à l aide de Grid Size (10 ns). 3 Insérer les signaux de simulation en cliquant sur Insert Node or Bus du menu Edit. 4 Cliquer alors sur l option Node Finder et choisir List. 5 Sélectionner les signaux d entrée et de sortie à utiliser à l aide des flèches centrales de sélection. Ces signaux doivent apparaître dans la fenêtre Selected Nodes. 6 Terminer l opération par OK de façon à obtenir la fenêtre ci-dessous : 8
Il reste alors à éditer les signaux d entrée afin que le simulateur fournisse les états correspondants des sorties. Cette édition se fait rapidement à l aide de la souris et de la barre de boutons située verticalement dans la partie gauche de l écran : Etats logiques haut et bas Etats haute impédance Horloges et compteurs 7 Sélectionner la zone à éditer à l aide de la souris. 8 Affecter un état logique à cette zone grâce aux différentes possibilités (état logique 0, état logique 1, état indéterminé, état haute impédance, horloge, ). Affecter par exemple au signal H du compteur un signal d horloge obtenu en choisissant l option clock overwrite. 9 Sauvegarder et fermer le fichier.vwf Lancement du simulateur : 1 Lancer l option Simulator Tool du menu Processing. 2 Choisir dans la fenêtre Simulation input le fichier de simulation (minuteur.vwf). 3 Choisir le mode de simulation pouvant prendre en compte les délais (Timing) ou non (Functional) dans le fenêtre Simulation mode. Dans notre cas, on fixera le mode Functional (afin de simplifier la simulation) ce qui nécessite de générer un modèle fonctionnel en cliquant sur Generate Functional Simulation Netlist. Remarque : En toute rigueur, la simulation devrait se réaliser à l aide de l option timing prenant en compte les délais (temps de traversée des portes par exemple). Dans ce cas, il est impératif de choisir une période d horloge convenable c est à dire bien supérieure aux valeurs des délais. 9
4 Lancer la simulation à l aide de Start et observer le résultat à l aide de Report. Vérifier en particulier la remise à zéro après l état 59. Remarque : Chaque bloc de quatre sorties peut être regroupé en un seul bus en sélectionnant les sorties et choisissant l option Grouping (clic droit de la souris) : Il devient alors possible de choisir la base d affichage (décimal, hexa décimal, octal, ). Il est également important de vérifier l ordre d affichage des bits (poids fort et faible). Si celui ci est inversé, il suffit de le rectifier en sélectionnant le regroupement et en choisissant l option Group and Bus Bit Order (clic droit). 10
2.4 Affectation des entrées et sorties : Avant de réaliser l affectation définitive des broches et afin de visualiser les états du minuteur sur la platine, nous allons rajouter au projet une base de temps de 1s (obtenue à partir de l horloge de 50 MHz) et un transcodeur DCB 7 segments (7447). Le transcodeur sera celui de la bibliothèque alors que la base de temps sera développée en VHDL. Réalisation de la base de temps : 1 Cliquer sur l option New du menu File et choisir la rubrique VHDL File pour obtenir l éditeur de texte. 2 Saisir le code VHDL ci-dessous : 3 Enregistrer le fichier sous le nom de tempo.vhd. Il est important de sauver le fichier sous le nom de l entité même si cela n est pas obligatoire pour ce compilateur. 4 Cliquer sur le bouton Analyze Current File (entouré dans la fenêtre précédente) de façon à vérifier la syntaxe de code VHDL. Les messages d erreurs sont affichés dans la fenêtre Processing. 5 Créer alors le symbole correspondant à l aide du menu File puis Create/Update et Create Symbol Files for Current File. 11
Les composants définis de cette façon sont disponibles dans le menu Project (depuis l éditeur graphique) et peuvent être insérés comme tous les composants de la bibliothèque à l aide du menu Insert. Modifications du schéma : 1 Ouvrir le fichier graphique précédent et rajouter la base de temps tempo de 1s et deux transcodeurs DCB 7 segments 7447. On désire réaliser le schéma ci-dessous : 2 Supprimer les sorties des compteurs et les remplacer par deux seules sorties qui correspondront à des bus 7 bits comme représenté sur le schéma. Les renommer par U[0..6] et D[0..6]. 3 Relier, pour chaque transcodeur, la sortie Q A à une ligne verticale de la grille (sur la droite) ainsi que les sorties Q B à Q G. Ces variables ne sont pas connectées physiquement mais le seront lors de la compilation. 4 Renommer chacune de ces sorties à l aide du menu Properties (clic droit) en U[0], U[1], U[2].. U[6] et D[0], D[1], D[2].. D[6]. 5 Relier la variable output de U[0..6] vers une ligne verticale sur la gauche. Cette ligne devant être un bus, choisir l option Bus Line à l aide du clic droit de la souris. La renommer à l aide Properties en U[0..6]. Réitérer ces opérations pour le bus D[0..6]. 6 Sauver et recompiler l ensemble du projet. 12
7 Observer à l aide du menu RTL Viewer comment le code VHDL de tempo a été transformé en portes et bascules. Affectation des broches : Le but de l affectation est de donner à chaque entrée et sortie de la fonction logique un numéro de broche avant le chargement dans le circuit. Cette phase s avère très utile dès que l on utilise les broches pré assignées aux boutons poussoirs, afficheurs 7 segments et à l horloge. 1 Choisir l option Pins du menu Assignments : Une fenêtre apparaît avec le nom des broches et le schéma du circuit logique défini dans le projet. 2 Sélectionner l option all ou unassigned du menu Filter selon les besoins (pour affecter toutes les broches ou uniquement les nouvelles liées à des modifications du projet). 3 Double cliquer dans la colonne Location de chaque variable à affecter : Un menu déroulant apparaît permettant de choisir la broche désirée. Affecter de cette façon toutes les broches du projet (L1 pour l horloge 50 MHz, J2, J1, H2, H1, F2, F1, E2 pour les segments a, b, c, d, e, f, g des unités et E1, H6, H5, H4, G3, D2, D1 pour les segments a, b, c, d, e, f, g des dizaines). 4 Vérifier les affectations sur le circuit logique (les broches affectées sont visibles en couleur marron). La sélection de Timing Closure Floorplan du menu Assignments permet également de repérer les broches dans les blocs logiques : En passant la souris sur les différentes entrées / sorties il est possible de voir le numéro de la broche utilisée sur le circuit. 5 Sauver le projet et le recompiler. 2.5 Programmation : La programmation se réalise à l aide d une liaison appelée liaison JTAG (Joint Test Action Group). 1 Sélectionner Programmer dans le menu Tools. 2 Sélectionner le mode JTAG ainsi que le choix USB-Blaster dans le menu Hardware Setup (utiliser si nécessaire le bouton Add pour ajouter USB-Blaster). 3 Cliquer sur le bouton Auto Detect : Si le PC ne détecte pas la carte, un message d erreur apparaîtra. 13
4 Choisir le fichier de configuration (.sof) à l aide du menu Add File (le fichier est alors présent dans la fenêtre centrale) et valider l option Program/Configure. 5 Programmer le circuit à l aide du bouton Start. 2.6 Modifications : Prévoir sur le minuteur précédent une remise à zéro manuelle permettant d initialiser le compteur à tout moment à l aide d un bouton poussoir (KEY0 broche R22 par exemple). Cette remise à zéro sera réalisée à l aide des entrées CLR des compteurs 4 bits et d une porte logique OR2. Compiler et charger le nouveau minuteur dans le circuit cible. Attention : les signaux d entrées et de sorties utilisés pour le cyclone EP2C20 ne doivent pas excéder 3,3 V (prévoir des étages d adaptation pour l interfaçage avec des circuits de type TTL classiques (0-5V)). Remarque : Quartus II est un logiciel gratuit téléchargeable sur le site altera (www.altera.com). Il nécessite une licence d utilisation de 30 ou 150 jours que l on peut obtenir au moment du téléchargement ou une licence réseau comme au département GEII (Tools >> Licence Setup >> Licence File : 1800@GE-BACKUP). 14
2 ème partie : Présentation de la carte de développement UP2. La carte de développement UP2 est composée de deux circuits logiques programmables de type FLEX10K et MAX7000 ainsi que divers afficheurs, LED, boutons poussoirs afin de simuler les variables de sorties ou d entrées. EPF10K70 Ce dispositif est basé sur une technologie SRAM et présenté dans un boîtier à 240 broches. Il possède 3744 éléments logiques (chaque élément comportant des portes et des bascules) et 9 blocs logiques (chaque bloc comportant 2048 bits de mémoire pouvant être utilisés pour créer des applications de type RAM, ROM ou FIFO). Avec au total 70 000 portes logiques, le circuit EPF10K70 est idéal pour des applications de type communications, architecture d ordinateur ou encore DSP. Etant de technologie SRAM, les programmes (ou connexions) enregistrés dans cette cible sont perdus lors d une coupure d alimentation. Par contre, ce circuit est programmable à l infini. EPM7128S Ce dispositif est un membre de la famille MAX7000 S et est basé sur l utilisation d éléments de type EEPROM. Il est présenté dans un boîtier type PLCC 84 broches et possède 128 macrocellules ; chaque macrocellule possédant une matrice de portes ET programmables, une matrice de portes OU fixes et des registres programmables. Avec une capacité de 2500 portes, ce circuit est idéal pour des applications combinatoires ou séquentielles à grand nombres de portes. Sa technologie EEPROM permet de conserver les programmes chargés mais le nombre de programmation est limité. Ces composants peuvent être programmés à l aide d un câble (Byte BlasterMV download cable ou ByteBlaster II) réalisant l interface entre le port parallèle standard et la carte de développement. Ce câble envoie les données de programmation et de configuration entre le logiciel de programmation appelé Quartus II et la carte de développement. EPF10K70 15
Alimentation de la carte : La carte peut être alimentée de trois façons différentes : - L entrée DC_IN acceptant un connecteur femelle (2,5 mm x 5,5 mm) et des tensions d entrée de 7 à 9V pour un courant de 350 ma. - L entrée RAW constituée de 2 trous métallisés et pouvant recevoir une tension non régulée (régulée par la suite sur la carte). - L entrée DC constituée de 2 trous métallisés et destinée à recevoir une tension de 5 V régulée. Oscillateur : La carte de développement contient un oscillateur à 25,175 MHz destiné à piloter les horloges des circuits EPM7128S (broche 83) et FLEX10K (broche 91). Liaison JTAG La prise mâle 10 broches (appelée prise JTAG pour Joint Test Action Group) de la carte de développement est utilisée pour la connexion du câble de téléchargement entre la carte elle même et le port parallèle de l ordinateur. Les données sont envoyées vers les circuits par l intermédiaire de la broche TDI et émises de ces mêmes circuits par la broche TDO. Broche Signal JTAG 1 TCK 2 GND 3 TDO 4 VCC 5 TMS 6 No connect 7 No connect 8 No connect 9 TDI 10 GND Cavaliers : La carte de développement possède 4 cavaliers (appelés TDI, TDO, DEVICE, BOARD) constitué chacun de 3 broches. Ils permettent de configurer la carte pour programmer par exemple uniquement le circuit EPM7128S, uniquement le circuit FLEX10K, ou les deux, ou encore de gérer plusieurs cartes. La figure ci-dessous résume les combinaisons possibles : TDI TDO C1 C2 C3 C1 C2 C3 DEV BOA C1 C2 C3 C1 C2 C3 Action TDI TDO DEVICE BOARD Programmation EPM7128S seul C1 & C2 C1 & C2 C1 & C2 C1 & C2 Configuration FLEX10K seul C2 & C3 C2 & C3 C1 & C2 C1 & C2 Programmation et configuration des 2 circuits C2 & C3 C1 & C2 C2 & C3 C1 & C2 Connexion de plusieurs cartes C2 & C3 ouvert C2 & C3 C2 & C3 16
EPM7128S : La carte de développement offre les ressources suivantes pour le circuit MAX7128S : - Boîtier PLCC 84 broches. - Broches accessibles par l intermédiaire de connecteurs femelles. Les 84 broches sont accessibles à l aide de 4 connecteurs femelles (double rangées) de 22 broches chacun et dont l assignation est représentée ci-dessous : P1 P2 P3 P4 Extérieur Intérieur Extérieur Intérieur Extérieur Intérieur Extérieur Intérieur 75 76 12 13 33 34 54 55 77 78 14 15 35 36 56 57 79 80 16 17 37 38 58 59 81 82 18 19 39 40 60 61 83 84 20 21 41 42 62 63 1 2 22 23 43 44 64 65 3 4 24 25 45 46 66 67 5 6 26 27 47 48 68 69 7 8 28 29 49 50 70 71 9 10 30 31 51 52 72 73 11 X 32 X 53 X 74 X - Connexion JTAG pour le câble de téléchargement. - Deux boutons poussoirs. Deux boutons poussoirs appelés MAX_PB1 et MAX_PB2 et actifs à l état bas sont disponibles sur la carte de développement. Ces boutons ne sont affectés à aucune broche mais leur connexion est facilement réalisable en connectant la sortie correspondante (P9 ou P10) sur la broche désirée du circuit MAX7128S. - Deux jeux d interrupteurs 8 bits (switchs). Deux jeux d interrupteurs 8 bits (non affectés), MAX_SW1 et MAX_SW2, sont également disponibles et peuvent être connectés au circuit MAX7128S en reliant les sorties correspondantes (P5 ou P6) aux broches désirées. La sortie d un interrupteur est au niveau logique 1 lorsqu il est ouvert et au niveau logique 0 lorsqu il est fermé. - 16 LED. Une LED est allumée lorsqu elle reçoit sur l entrée correspondante un niveau logique 0. Les LED D1 à D8 et D9 à D16 sont connectées respectivement aux connecteurs P7 et P8 de la façon suivante : P7 1 2 3 4 5 6 7 8 D1 D5 D2 D6 D3 D7 D4 D8 P8 1 2 3 4 5 6 7 8 D9 D13 D10 D14 D11 D15 D12 D16 D1 étant connectée à la position1, D2 à la position 2, 17
- Deux afficheurs 7 segments. Le double afficheur 7 segments intitulé MAX_DIGIT est quant à lui connecté directement à certaines broches du circuit MAX7128S et chaque segment peut être allumé en envoyant sur l entrée correspondante un niveau logique 0. Le tableau ci-dessous donne la correspondance entre les broches utilisées du circuit et les segments des afficheurs. Afficheur 1 Afficheur 2 a f b e g d c Segment Broche (afficheur 1) Broche (afficheur 2) a 58 69 b 60 70 c 61 73 d 63 74 e 64 76 f 65 75 g 67 77 Point décimal 68 79 Un connecteur supplémentaire, appelé MAX_EXPANSION (numéroté de 1 à 60), constitué de trous métallisés permet d avoir accès aux principaux signaux du circuit MAX7128S. La correspondance entre broches et signaux est donnée ci-dessous : N Signal, broche N Signal, broche N Signal, broche N Signal, broche 1 RAW 31 24 2 GND 32 27 3 VCC 33 29 4 GND 34 28 5 VCC 35 31 6 GND 36 30 7 Non connecté 37 33 8 Non connecté 38 34 9 Non connecté 39 35 10 Non connecté 40 36 11 Non connecté 41 37 12 GCLRn/1 42 40 13 OE1/84 43 39 14 OE2/GCLK2/2 44 41 15 4 45 44 16 5 46 46 17 6 47 45 18 8 48 48 19 9 49 50 20 10 50 49 21 11 51 52 22 12 52 51 23 15 53 54 24 16 54 55 25 17 55 56 26 18 56 57 27 20 57 VCC 28 21 58 GND 29 22 59 VCC 30 25 60 GND 18
FLEX10K : La carte de développement offre les ressources suivantes pour le circuit FLEX10K (toutes les broches sont déjà pré-assignées pour les boutons poussoirs et les LED) : - Boîtier 240 broches. - Connexion JTAG pour le câble de téléchargement. - Deux boutons poussoirs. Deux boutons poussoirs, actifs à l état bas et appelés FLEX_PB1 et FLEX_PB2, sont disponibles sur la carte. Le bouton FLEX_PB1 est connecté à la broche 28 du circuit FLEX10K et le bouton FLEX_PB2 à la broche 29. - Un jeu d interrupteurs 8 bits (switchs). FLEX_SW1 contient un jeu de 8 interrupteurs dont l affectation est donnée dans le tableau cidessous. Une entrée est au niveau logique 1 quand l interrupteur est ouvert et au niveau logique 0 quand il est fermé. Interrupteur Broche Inter. 1 41 Inter. 2 40 Inter. 3 39 Inter. 4 38 Inter. 5 36 Inter. 6 35 Inter. 7 34 Inter. 8 33 - Deux afficheurs 7 segments. Un double afficheur 7 segments, appelé FLEX_DIGIT, est connecté directement au circuit FLEX10K. Le tableau ci-dessous donne la correspondance entre les segments et les broches du circuit. Segment Broche (afficheur 1) Broche (afficheur 2) a 6 17 b 7 18 c 8 19 d 9 20 e 11 21 f 12 23 g 13 24 Point décimal 14 25 - Une interface VGA L interface VGA permet au circuit FLEX10K de contrôler un moniteur vidéo externe. Elle est composée d un connecteur D-SUB 15 broches sur lequel le moniteur peut être branché. Les informations de couleur, ligne et colonne sont envoyées du circuit par l intermédiaire de 5 signaux (3 signaux de couleur : rouge, vert, bleu et 2 signaux de synchronisations horizontale et verticale). Ces signaux sont connectés au circuit FLEX10K de la façon suivante : 19
Signal D-SUB connecteur Broche RED 1 236 GREEN 2 237 BLUE 3 238 GND 6,7,8,10,11 - HORIZ_SYNC 13 240 VERT_SYNC 14 239 Non connecté 4,5,9,15 - - Connecteur de souris L interface de souris est un connecteur 6 broches qui permet au FLEX10K de recevoir les données issues d une souris ou d un clavier (type PS2). Le circuit FLEX10K envoie le signal DATA_CLOCK à la souris et reçoit le signal de données issu de la souris. Signal Connecteur de souris Broche MOUSE_CLOCK 1 30 MOUSE_DATA 3 31 VCC 5 - GND 2 - Des connecteurs supplémentaires, appelés FLEX_EXPAN_A, FLEX_EXPAN_B et FLEX_EXPAN_C constitués de trous métallisés permettent d avoir accès aux principaux signaux du circuit FLEX10K. La correspondance entre broches et signaux est donnée cidessous : FLEX_EXPAN_A N Signal, broche N Signal, broche N Signal, broche N Signal, broche 1 RAW 2 GND 41 79 42 80 3 VCC 4 GND 43 81 44 82 5 VCC 6 GND 45 83 46 84 7 No Connect 8 DI1/90 47 86 48 87 9 DI2/92 10 DI3/210 49 88 50 94 11 DI4/212 12 DEV_CLR/209 51 95 52 97 13 DEV_OE/213 14 DEV_CLK2/211 53 98 54 99 15 45 16 46 55 100 56 101 17 48 18 49 57 VCC 58 GND 19 50 20 51 59 VCC 60 GND 21 53 22 54 23 55 24 56 25 61 26 62 27 63 28 64 29 65 30 66 31 67 32 68 33 70 34 71 35 72 36 73 37 74 38 75 39 76 40 78 20
FLEX_EXPAN_B N Signal, broche N Signal, broche N Signal, broche N Signal, broche 1 RAW 2 GND 41 144 42 146 3 VCC 4 GND 43 147 44 148 5 VCC 6 GND 45 149 46 151 7 No Connect 8 DI1/90 47 152 48 153 9 DI2/92 10 DI3/210 49 154 50 156 11 DI4/212 12 DEV_CLR/209 51 157 52 158 13 DEV_OE/213 14 DEV_CLK2/211 53 159 54 161 15 109 16 110 55 162 56 163 17 111 18 113 57 VCC 58 GND 19 114 20 115 59 VCC 60 GND 21 116 22 117 23 118 24 119 25 120 26 126 27 127 28 128 29 129 30 131 31 132 32 133 33 134 34 136 35 137 36 138 37 139 38 141 39 142 40 143 FLEX_EXPAN_C N Signal, broche N Signal, broche N Signal, broche N Signal, broche 1 RAW 2 GND 41 214 42 215 3 VCC 4 GND 43 217 44 218 5 VCC 6 GND 45 219 46 220 7 No Connect 8 DI1/90 47 221 48 222 9 DI2/92 10 DI3/210 49 223 50 225 11 DI4/212 12 DEV_CLR/209 51 226 52 227 13 DEV_OE/213 14 DEV_CLK2/211 53 228 54 229 15 175 16 181 55 230 56 231 17 182 18 183 57 VCC 58 GND 19 184 20 185 59 VCC 60 GND 21 186 22 187 23 188 24 190 25 191 26 192 27 193 28 194 29 195 30 196 31 198 32 199 33 200 34 201 35 202 36 203 37 204 38 206 39 207 40 208 21
3 ème partie : Présentation de la carte de développement DE1. Le principe de la carte de développement DE1 est identique au précédant mais repose sur l utilisation d un circuit FPGA de la famille cyclone II 2C20 (20 000 éléments logiques). Ses performances sont nettement plus élevées et cette carte présente les caractéristiques suivantes : - Un cordon de programmation USB Blaster. - 512-Kbyte de SRAM. - 8-Mbyte de SDRAM. - 4-Mbyte de mémoire Flash. - Un lecteur de carte SD. - 4 boutons poussoirs (KEY0 à KEY3). - 4 afficheurs 7 segments (HEX0 à HEX3). - 10 interrupteurs (SW0 à SW9). - 10 LED rouges (LEDR0 à LEDR9). - 8 LED vertes (LEDG0 à LEDG7). - Des oscillateurs internes : 50MHz, 27 MHz et 24 MHz. - Une interface RS 232 avec connecteur 9 broches. - Une interface PS2 pour souris ou clavier. - Une interface VGA avec convertisseurs numériques analogiques 4 bits. - Des CODEC audio (24 bits) avec une entrée audio, une sortie audio et une entrée microphone (prises JACK). - Deux connecteurs externes 40 broches (GPIO_0 et GPIO_1). 22