Guide de laboratoire ELE3311 – SYSTÈMES LOGIQUES PROGRAMMABLES Date de publicat
Guide de laboratoire ELE3311 – SYSTÈMES LOGIQUES PROGRAMMABLES Date de publication : 10 octobre 2016 HISTORIQUE DE RÉVISION DU DOCUMENT Révision Date de publication Pages affectées Auteur Description 0.1 21-07-2016 Toutes P. Levesque V. Simard Première version préliminaire 0.2 05-10-2016 Toutes P. Levesque V. Simard Deuxième version préliminaire 1.0 05-10-2016 Toutes P. Levesque V. Simard Première version Page ii Table des matières 1 Présentation de la carte de développement ............................................................................. 1 2 Réalisation d’un projet avec vivado ........................................................................................ 3 2.1 Flot de conception avec le logiciel Vivado ...................................................................... 3 2.2 Création d’un projet avec Vivado .................................................................................... 4 2.2.1 Configuration d’un projet pour une carte de développement ................................... 8 2.3 Ajout de sources au projet ................................................................................................ 9 2.3.1 Ajout de fichiers source VHDL ................................................................................ 9 2.3.2 Création de fichiers VHDL ..................................................................................... 10 2.3.3 Ajout de IP – CLK Wizard ..................................................................................... 12 2.4 Analyse RTL .................................................................................................................. 16 2.5 Synthèse ......................................................................................................................... 17 2.5.1 Lancement de la synthèse ....................................................................................... 17 2.5.2 Rapport de synthèse ................................................................................................ 17 2.5.3 Erreurs possibles et effets ....................................................................................... 18 2.6 Implémentation............................................................................................................... 22 2.6.1 Lancement de l’implémentation ............................................................................. 22 2.7 Programmation du FPGA ............................................................................................... 23 2.8 Simulation ...................................................................................................................... 24 2.8.1 Objectifs .................................................................................................................. 24 2.8.2 Les types de simulation ........................................................................................... 24 2.8.3 Simulation avec Vivado Simulator ......................................................................... 25 2.8.3.1 Simulation fonctionnelle ................................................................................................. 26 2.8.3.2 Simulation fonctionnelle post-synthèse et post-implémentation .................................. 29 2.8.3.3 Simulation post-synthèse et post-implémentation avec délais ...................................... 30 2.8.3.4 Simulations à privilégier .................................................................................................. 31 2.8.3.5 Problèmes lors des simulations ...................................................................................... 32 Page iii 3 Exemples ............................................................................................................................... 35 3.1 Assignation des ports de l’entité hiérarchique supérieure aux broches du FPGA ......... 35 3.2 MSA – compteur croissant et décroissant 4 bits ............................................................ 38 3.3 Pipeline de traitement ..................................................................................................... 57 3.4 Mémoire ROM ............................................................................................................... 60 3.5 Mémoire RAM ............................................................................................................... 61 4 Références ............................................................................................................................. 66 5 Assignation des broches du ARTIX-7 sur la carte Nexys Video.......................................... 67 Page iv 1 PRÉSENTATION DE LA CARTE DE DÉVELOPPEMENT Le cœur de la plateforme de développement Nexys Video de la compagnie Digilent est le composant programmable Artix-7 XC7A200T. Ce composant est un FPGA de la série 7 du fabricant Xilinx qui utilise une technologie de lithographie de 28nm et qui possède beaucoup de ressources par rapport aux autres composants de la famille Artix-7. Les FPGA Artix-7 sont optimisés pour les applications à faible puissance et à coût réduit. En comparaison avec les autres familles de FPGA de Xilinx, cette famille possède des performances supérieures à la famille d’entrée de gamme Spartan-7 ; toutefois, les familles Kintex-7 (haut de gamme – optimisée pour le ratio prix-performance) et Virtex-7 (très haut de gamme – optimisée pour les performances et les capacités) sont plus performantes. Le XC7A200T possède les caractéristiques suivantes : Ressources logiques Cellules logiques (logic cells) 215 360 Tranches (Slices) 33 650 CLB Flip-Flop 269 200 Ressources de mémoire Mémoire distribuée max. 2 888 kb Bloc RAM / FIFO 365 Capacité Bloc RAM (total) 13 140 kb Ressources matérielles IP embarquées Tranches DSP 740 PCIe Gen2 1 AES / HMAC 1 CAN 1 Tranceiver GTP (6.6 Gb/s max.) 16 Ressources entrées/sorties IO asymétrique (Single-ended) max. 500 IO différentiel max. 240 Ressources pour horloge CMT (1 MMCM + 1PLL) 10 Page 1 La plateforme Nexys Video est conçue pour faciliter le développement d’applications de traitement d’audio et vidéo ; on retrouve donc des interfaces audio (Audio Codec avec line in, line out, micro et écouteur) et vidéo (DisplayPort, entrée et sortie HDMI). Plusieurs autres interfaces usuelles sont également disponibles sur la plateforme. Parmi celles-ci, on retrouve un oscillateur de 100MHz, un port UART (via un pont USB), un host HID USB pour la gestion d’un clavier et d’une souris, une interface gigabit Ethernet avec connecteur et PHY, un connecteur microSD, un afficheur OLED, une mémoire DDR3-1600 (256Mx16b), cinq boutons poussoirs, huit interrupteurs, huit DELs, un connecteur FMC et quelques accès pour des signaux d’entrées-sorties dont un maximum de quatre entrées analogiques qui sont reliées au convertisseur analogique à numérique du FPGA. Finalement, la plateforme possède également toutes les alimentations requises pour son fonctionnement ainsi que différentes options de configuration du FPGA. Celle qui sera principalement utilisée au laboratoire est l’interface JTAG ; la méthode est montrée à la section 2.7. Page 2 2 RÉALISATION D’UN PROJET AVEC VIVADO 2.1 Flot de conception avec le logiciel Vivado Le logiciel Vivado de Xilinx est un environnement de développement qui permet de parcourir toutes les étapes importantes impliquées durant le développement d’un projet de conception. La version utilisée au laboratoire, Vivado HL WebPACK edition est disponible gratuitement mais ne supporte qu’une partie des circuits programmables de la série 7 des FPGA et des SOC (ZYNC) de Xilinx. Cette limitation ne limite pas ses fonctionnalités et le FPGA Artix-7 XC7A200T sur la plateforme du laboratoire est supporté. Le logiciel Vivado supporte les langages de description de matériel (HDL) Verilog et VHDL, mais seul ce dernier est utilisé pour les laboratoires. C’est effectivement le langage qui est tout indiqué pour débuter l’apprentissage du HDL car il pousse le concepteur à considérer son design en tant que matériel et non seulement en tant qu’algorithme, il permet de repérer rapidement les erreurs dans le code et il est toujours déterministe. De plus, une fois les concepts de HDL acquis avec le VHDL, il est facile d’apprendre le Verilog ; l’inverse s’avère plus difficile. Bien qu’il ne soit d’aucun secours pour la conception qui demeure l’étape la plus importante du flot de design, Vivado vous accompagne pour toutes les autres étapes. Il vous permet de créer des projets et de coder tous les fichiers qui s’y rattachent. Ensuite, Vivado peut vous aider à corriger rapidement les erreurs en compilant votre code lors d’une analyse RTL. Pour l’étape de la synthèse, vous devez déployer des efforts pour bien comprendre les messages de Vivado afin de vous assurer que votre description VHDL a bien été interprétée. Finalement, Vivado prend en charge l’implémentation, génère le fichier de configuration du FPGA et fait la communication avec le FPGA pour le programmer. Pour valider la fonctionnalité, Vivado permet également Page 3 d’effectuer différents types de simulations : fonctionnel, post-synthèse et post-implémentation, avec et sans délais de propagation. Le reste du présent chapitre montre le développement avec Vivado de l’exemple de la section 3.2. 2.2 Création d’un projet avec Vivado Créez d’abord un répertoire dans votre espace disque, ici appelé didac. Assurez-vous que vous avez bien accès en écriture à ce répertoire. N’incluez pas d’espaces dans les noms de répertoire, du projet ou les fichiers source. Copiez les fichiers fournis par le chargé de laboratoire pour faire le didacticiel, ou copiez le code VHDL de la section 3.2 dans des fichiers portant les noms spécifiés. Démarrez le logiciel Vivado et double-cliquez sur l’icône Create New Project dans la fenêtre initiale de Vivado et appuyez sur le bouton Next. Page 4 Donnez un nom à votre projet, ici projet_didac, et choisissez comme emplacement votre répertoire de projet. Cliquez sur Next. Dans la fenêtre suivante, choisissez le type de projet RTL Project et cochez l’option Do not specify sources at this time. Les fichiers source seront ajoutés plus tard. Cliquez sur Next. Page 5 Choisissez la plateforme de développement du laboratoire, la Nexys Video, en sélectionnant l’option Boards. Cliquez Next, puis Finish. Si la plateforme n’est pas disponible, vous pouvez tout de même choisir le bon FPGA, XC7A200tsbg484-1. Page 6 Le logiciel crée maintenant le projet et présente la fenêtre suivante. La colonne de gauche montre les différentes étapes du flot de conception. En haut à droite, la colonne Project Summary montre l’état actuel du projet. Le bas de la fenêtre est consacré aux résultats des différentes étapes : rapports et messages. Cliquez sur Project Settings à gauche pour ouvrir la fenêtre des paramètres du projet. Changez le langage de programmation de Verilog à VHDL en changeant l’option Target Language de l’onglet General. L’onglet Simulation est l’endroit où le logiciel de simulation peut être modifié ; toutefois, le logiciel utilisé au cours du laboratoire est celui sélectionné par défaut, Vivado Simulator. Page 7 2.2.1 Configuration d’un projet pour une carte de développement Le design d’un projet pour une plateforme spécifique comme c’est le cas au laboratoire implique que le FPGA est déjà choisi et que les broches du FPGA sont déjà routées sur le circuit imprimé de la carte de développement ; il est donc impossible de changer la fonctionnalité des broches qui ne sont pas des entrées/sorties génériques ; par exemple les broches dédiées à la sortie vidéo HDMI ne peuvent prendre d’autres fonctions. Les fichiers contenant toutes les broches dédiées sont disponibles au laboratoire ou au chapitre 5 du présent document. Le nom des broches doit correspondre au nom des ports de l’entité du fichier du niveau hiérarchique supérieur (top level). Ces broches sont définies dans un fichier de contraintes de type XDC. Dans la colonne de gauche, dans Project Manager, cliquez sur Add sources, sélectionnez Add or create constrainst et appuyez sur Next. Faites Add files puis choisissez le fichier didac.xdc dans votre répertoire de projet. Cliquez sur Finish. Vous pouvez uploads/Management/ guide-de-laboratoire-ele3311-systemes-logiques-programmables.pdf
-
17
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Jan 04, 2022
- Catégorie Management
- Langue French
- Taille du fichier 1.4118MB