M. Doussot, G. Millon, S. Moutou et B. Jacquot TD et TP LO11 UTT 2014/2015 Pris

M. Doussot, G. Millon, S. Moutou et B. Jacquot TD et TP LO11 UTT 2014/2015 Prise en main de la partie schématique La programmation se fait toujours à travers un projet. La première chose à apprendre est donc de savoir créer et gérer un projet. On rappelle qu'un projet permet de rassembler plusieurs types de fichiers ensembles. I. Comment démarrer un projet La première chose que l'on se demande est quel est le FPGA cible que l'on utilise et quelle sorte de boîtier on utilise ? En ce qui nous concerne ce sera un SPARTAN 3E 500 (xc3s500e) dans un boîtier FG320. On choisit ensuite le type de langage : pour nous ce sera du schématique... et on se laisse guider. Notre premier projet sera composé de deux fichiers : un fichier de schéma (extension .sch) et un fichier de contrainte (extension .ucf) II.Saisir un schéma On va commencer par un exemple très simple mais qui nous permettra de comprendre comment l'environnement fonctionne. On a deux entrées que l'on va relier à deux interrupteurs (sw0 et sw1 positionnés respectivement en L13 et L14) et une sortie qui va nous servir à allumer une led (led0 en F12). Dans l'ordre, il est bon de commencer par les composants, puis par les connexions (wire) pour terminer par les I/O Marker. III.Saisir le fichier ucf C'est un fichier texte dont la syntaxe est relativement simple. Il existe un outil graphique pour faire cela mais nous utiliserons un éditeur de texte simple. net "e1" loc="L13"; net "e2" loc="L14"; 1/94 e1 e2 s Category : logic Symbol : or2 Add I/O Marker Icone Add wire Icone M. Doussot, G. Millon, S. Moutou et B. Jacquot TD et TP LO11 UTT 2014/2015 net "s" loc="F12"; Seul la documentation de la carte sur laquelle est votre FPGA vous permet de trouver comment s'appellent les broches de votre FPGA pour les mettre dans le fichier ucf correspondant. Cette documentation vous sera toujours fournie. Notez que pour ouvrir un fichier ucf, il ne faut pas double-cliquer dessus : cliquer simplement et aller chercher (sur la gauche) dans la fenêtre process : User Constraints |__ Edit constraints (text). IV .Compilation La compilation a comme objectif de réaliser un fichier binaire (d'extension .bit) qui sera téléchargé dans le FPGA. On clique dans la fenêtre projet sur le fichier le plus haut dans la hiérarchie (pour le moment ce sera notre schéma) puis dans la fenêtre process on choisit "Generate Programming File" (double clic) V .Téléchargement Le téléchargement dans la carte se fait avec Impact (trouvé dans la fenêtre process) : Configure T arget Device |__ Manage Configuration Project (Impact) VI.Convention de noms pour les portes Pour s'y retrouver parmi les nombreuses portes logiques disponibles, nous donnons les indications suivantes. Les noms des portes sont de la forme pNbM ● p est un nom de porte comme and, or, nor, nand, xor et xnor représentant le ET, le OU, le OU-NON le ET-NON, le OU-Exclusif, et l'identité. ● N est le nombre d'entrées de la porte, typiquement de 2 à 9 et même parfois 16. ● b est une lettre suivie d'un chiffre M variant de 1 à typiquement 5 désignant le nombre d'entrées complémentées. Certains composants n'ont pas cette extension, par exemple le ou exclusif va de xor2 à xor9. La suite est importante pour les projets un peu plus conséquents et peut être passée en première lecture. VII.Renommer un fil (net) Renommer un fil est utile pour relier un fil à une entrée sans dessiner cette liaison. Pour renommer un fil, ne pas passer par un click droit sur le fil en essayant de trouver "Object Property", mais plutôt : ● edit -> Rename -> rename Selected net puis donner le nom puis OK. 2/94 M. Doussot, G. Millon, S. Moutou et B. Jacquot TD et TP LO11 UTT 2014/2015 VIII.Création de plusieurs feuilles Quand votre dessin devient complexe il faut le répartir sur plusieurs feuilles. Pour se faire : ● click droit dans la feuille -> object properties New Pendant que vous y êtes, il est possible de changer la taille de la feuille ou des feuilles. IX.Création d'un symbole Il pourra nous arriver de rassembler un schéma complexe dans un symbole. Ceci peut être fait ainsi : Dans la fenêtre Design (tout en haut) : Design Utilities -> Create Schematic Symbol Ceci peut être réalisé aussi comme ceci : ● File -> New -> Symbol Utilisation du sorcier (Wizard) ● T ools -> symbol wizard ● Next Donner un nom au symbole et ajouter le nom des entrées et sorties puis next. Remarque : Le "symbol wizard" permet de transformer directement votre schéma en cours en symbole si vous cochez "using schematic" et il vous trouve alors tout seul l'ensemble des entrées/sorties. 3/94 M. Doussot, G. Millon, S. Moutou et B. Jacquot TD et TP LO11 UTT 2014/2015 TP1 - Transcodeur binaire 7 segments INFO La logique combinatoire est présentée à partir de la page 8 du polycopié de cours. On utilisera un FPGA de type SPARTAN 3E 500 (xc3s500e) dans un boîtier FG320. On va réaliser un transcodeur binaire décimal vers un afficheur 7 segments. L'objectif de ce TP est d'utiliser toutes les techniques classiques de synthèse combinatoire. I. Présentation du sujet Un schéma présente de manière symbolique ce que l'on cherche à faire. sel est choisi à 0 pour sélectionner l'afficheur de droite. La valeur binaire (de 0 à 9) choisie sur les interrupteurs est convertie pour être affichée : II.Fichier ucf Pour éviter de chercher nous donnons quelques contenus du fichier ucf : NET "SW<0>" LOC = "L13" | IOSTANDARD = LVTTL | PULLUP ; NET "SW<1>" LOC = "L14" | IOSTANDARD = LVTTL | PULLUP ; NET "SW<2>" LOC = "H18" | IOSTANDARD = LVTTL | PULLUP ; NET "SW<3>" LOC = "N17" | IOSTANDARD = LVTTL | PULLUP ; 4/94 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 a b c d e f g J1 "B4" "D5" "A6" "E7" "A4" "C5" "B6" FPGA S3E "L13" "L14" "H18" "N17" sw0 sw1 sw2 sw3 (J4):"B11" – (J1):"F7" 0/1 sel Sortie sel pour sélectionner afficheur a b c d e f g J5 "C12" "D12" "G9" "A8" # J4 "D14" "B16" "C4" "A11" "C14" "A16" "E13" M. Doussot, G. Millon, S. Moutou et B. Jacquot TD et TP LO11 UTT 2014/2015 # ==== 6-pin header J1 ==== # These four connections are shared with the FX2 connector #NET "J1<0>" LOC = "B4" | IOSTANDARD = LVTTL | SLEW = SLOW | DRIVE = 6 ; #NET "J1<1>" LOC = "A4" | IOSTANDARD = LVTTL | SLEW = SLOW | DRIVE = 6 ; #NET "J1<2>" LOC = "D5" | IOSTANDARD = LVTTL | SLEW = SLOW | DRIVE = 6 ; #NET "J1<3>" LOC = "C5" | IOSTANDARD = LVTTL | SLEW = SLOW | DRIVE = 6 ; # ==== 6-pin header J2 ==== # These four connections are shared with the FX2 connector #NET "J2<0>" LOC = "A6" | IOSTANDARD = LVTTL | SLEW = SLOW | DRIVE = 6 ; #NET "J2<1>" LOC = "B6" | IOSTANDARD = LVTTL | SLEW = SLOW | DRIVE = 6 ; #NET "J2<2>" LOC = "E7" | IOSTANDARD = LVTTL | SLEW = SLOW | DRIVE = 6 ; #NET "J2<3>" LOC = "F7" | IOSTANDARD = LVTTL | SLEW = SLOW | DRIVE = 6 ; Pour savoir comment sont connectés nos afficheurs à notre carte, il faut télécharger la documentation des afficheurs : dans google digilent pmodssd (donnée un peu plus loin dans ce document) III.Table de vérité Réaliser la table de vérité correspondant au cahier des charges si on doit sortir un 1 pour afficher un segment. Réfléchissez sur la première ligne avant de poursuivre. sw3 sw2 sw1 sw0 a b c d e f g 0 0 0 0 1 1 1 1 1 1 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 1 0 0 0 1 0 0 1 IV .Synthèse de la sélection Pour forcer à des valeurs prédéfinies : ● Mettre à 1 avec : Catégorie générale -> symbol Vcc ● Mettre à 0 avec : Catégorie générale -> symbol gnd 5/94 M. Doussot, G. Millon, S. Moutou et B. Jacquot TD et TP LO11 UTT 2014/2015 V .Synthèse du segment "a" Simplifier avec un tableau de Karnaugh et rechercher l'équation disjonctive correspondant au segment a. Donner le schéma ET/OU, puis implanter avec des portes "et" (une and2b2 et une and2) avec une porte "ou" de type or4 VI.Synthèse du segment "b" Puisque le segment "b" possède deux zéros dans sa colonne, on va le synthétiser par son complément. Écrire le complément de "b" sous une forme disjonctive sans simplifier. Implanter avec deux ET à 4 entrées et une NOR2 (c'est le NOR2 qui fait le complément pourquoi?). 7.Synthèse des segments "c", "d", "e", uploads/Geographie/ lo11-tp-2015.pdf

  • 28
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager