Apprendre VHDL avec des exemples : Application au contrôle de la carte Spartan
Apprendre VHDL avec des exemples : Application au contrôle de la carte Spartan 3E Pr. AMAMI Benaissa 2015/2016 Introduction L’objet de ce document est de présenter les principes de base sur lesquels repose le développement d’un système à l’aide d’une description VHDL. Les éléments fondamentaux du langage VHDL ainsi que les différentes méthodes de programmation y sont décrits et illustrés par des exemples très variés allant de la simulation de la porte logique and à l’acquisition des données par la carte Spartan 3 E. Chaque exemple est décrit par son schéma logique, sa table de vérité, sa description par la conception flots de données, par la conception comportementale et par la conception structurelle ainsi que sa simulation sur ISE de Xilinx et la carte Spartan 3 E. Le code VHDL est donné pour chaque exemple à fin dd faciliter l’apprentissage. Apprendre VHDL avec des exemples : Application au contrôle de la carte Spartan 3E 1 Pr. Benaissa Amami, FST Tanger 1. Circuit logique Programmable (PLD) Un circuit logique programmable, ou réseau logique programmable, est un circuit intégré logique qui peut être reprogrammé après sa fabrication. Il est composé de nombreuses cellules logiques élémentaires et bascules logiques librement connectables. C'est la reconfiguration, ou programmation, du composant qui définit les connexions faites entre portes logiques. On ne parle pas de programmation au sens logiciel (contrairement à un microprocesseur), on parlera de « reconfiguration » plutôt que de reprogrammation (on modifie des connexions ou le comportement du composant, on connecte des portes logiques entre elles, etc.). Il s'agit de réseaux logiques reconfigurables et modifiables. Ce type de composant électronique est communément désigné par différents appellations en anglais dont notamment : FPGA (field-programmable gate array, réseau de portes programmables in situ) ; PLD (programmable logic device, circuit logique programmable) ; EPLD (erasable programmable logic device, circuit logique programmable et effaçable) ; CPLD (complex programmable logic device, circuit logique programmable complexe) ; PAL (programmable array logic, réseau logique programmable) ; PLA (programmable logic array, réseau logique programmable). Bien que fondamentalement synonymes, ces termes ne sont généralement pas interchangeables dans le vocabulaire commercial des fabricants : FPGA désigne plutôt des composants à technologie RAM, EPLD des composants à technologie FLASH, PAL des composants à technologie FUSIBLE. 1.1. Circuits Logiques Programmables: FPGA Un circuit FPGA est un composant électronique qui contient des milliers, voire des millions de transistors connectés ensemble pour réaliser des fonctions logiques simples telles que des additions ou des soustractions ou des fonctions complexes telles que la mise en œuvre d’un contrôleur DSP (digital signal processor) ou bien microprocesseur. Apprendre VHDL avec des exemples : Application au contrôle de la carte Spartan 3E 2 Pr. Benaissa Amami, FST Tanger Ces circuits FPGA sont largement utilisés dans les systèmes embarqués notamment dans les domaines de l’automatisme, de l’automobile, de l’aéronautique et des télécommunications. Les circuits FPGA présentent une technologie qui permet de reprogrammer le circuit à la carte (in situ). En effet l’avantage majeur que présentent les circuits FPGA, est leur grande flexibilité, car la structure interne peut être changée sans avoir à modifier la structure globale du circuit. Cet avantage nous permet de faire des prototypages rapides et de moindre coût en comparaison avec d’autres circuits ASIC (Application-Specific Integrated Circuit) par exemple Xilinx, Altera et Quicklogic sont les pionniers dans les domaines des circuits FPGA. Toutes ces compagnies se partagent le même concept architectural. Il se divise en trois parties : les blocs d’entrées et sorties (IOB) ; les blocs logiques de configuration (CLB) ; les interconnexions. Les blocs logiques, présents en grand nombre sur la puce (de quelques milliers à quelques millions) sont connectés entre eux par une matrice de routage configurable. Ceci permet la reconfiguration à volonté du composant. Afin de pouvoir finaliser un FPGA, il est nécessaire d'utiliser un langage de description matériel. Après compilation de cette description, on obtient un fichier de configuration pour le FPGA choisi. VHDL et Verilog sont les deux langages de description les plus répandus. CLB CLB CLB CLB CLB CLB CLB CLB CLB CLB CLB CLB .. .. CLB CLB Block SelectRAM Block SelectRAM Mulziplier Mulziplier CLB CLB CLB CLB CLB CLB CLB CLB CLB CLB CLB CLB CLB CLB CLB CLB CLB CLB CLB CLB CLB CLB CLB CLB CLB CLB CLB CLB CLB CLB CLB CLB Block SelectRAM Block SelectRAM Mulziplier Mulziplier CLB CLB CLB CLB CLB CLB CLB CLB CLB CLB CLB CLB CLB CLB CLB CLB IOB IOB DCM IOB IOB IOB IOB DCM IOB IOB IOB IOB IOB IOB IOB IOB IOB .. .. .. .. .. .. CLK CLK CLK Réseau d’interconnexions Apprendre VHDL avec des exemples : Application au contrôle de la carte Spartan 3E 3 Pr. Benaissa Amami, FST Tanger 2. Langage VHDL V(Vhsic: Very High Speed Integrated Circuit)H(Hardware)D(Description)L(Language), est un langage de description de systèmes matériels. Ce n’est pas un langage de programmation, mais plutôt un langage formel pour la spécification des systèmes digitaux, aussi bien au niveau comportemental que structurel. Il permet de faire la description, la simulation et la synthèse des systèmes digitaux. 2.1. Historique En 1981, le Département de la Défense (DoD) des Etats-Unis d’ Amérique a initié puis dirigé le projet "Very High Speed Integrated Circuit" (VHSIC). Ce projet avait pour but de formaliser la description des circuits intégrés développés pour le DoD dans un langage commun. L’intérêt premier était de définir, au travers du langage, une spécification complète et non ambiguë du circuit à développer indépendante de la technologie employée et des outils de CAO. Le Développement du langage a été confié par le DoD aux sociétés IBM, Intermetrics et Texas Instruments. Ce langage est baptisé VHDL (VHSIC Hardware Description Language). En 1987, il fait l’objet d’une normalisation par l’IEEE (Institute of Electrical and Electronic Engineers). Le groupe VASG (VHDL Analysis and Standardization Group) est un groupe de travail IEEE responsable du Manuel de référence du langage VHDL. La norme VHDL IEEE 1076 comme toute norme IEEE doit être révisée et affinée au moins une fois tous les 5 ans. Ses révisions successives sont P1076-87, P1076-93, P1076-2000, P1076-2002, les derniers digits indiquent l’année de révision de la norme. a révision P1076- 2006 est en cours de normalisation. Des groupes de travail distincts du VASG, sont chargés de normaliser des extensions, des restrictions du langage VHDL pour des besoins spécifiques. 2.2. Programme VHDL Pour développer une application en VHDL, il faudra suivre la démarche ci-dessous : La création du code source VHDL peut être faite au moyen d'un éditeur de texte ou d'outils graphiques permettant de décrire la structure du système à modéliser sous la forme de schémas ou de diagrammes de blocs et son comportement sous la forme de machines d’états, de chronogrammes ou de tables de vérité. L’analyseur (ou compilateur) vérifie la syntaxe d’une description VHDL. Il permet la détection d’erreurs locales, qui ne concernent que de l’unité compilée. L’approche compilée produit directement du code machine, ou, dans certains cas, du code C qui sera lui-même compilé. Chaque concepteur possède une bibliothèque de travail (working library) de nom logique WORK (le nom est standard) dans laquelle sont placés tous les modèles compilés. Le lien du nom logique avec l’emplacement physique de la bibliothèque dépend de l’outil de simulation ou de synthèse utilisé. Il est aussi possible de faire référence, en mode de lecture seule, à d’autres bibliothèques, des bibliothèques de ressources, contenant Apprendre VHDL avec des exemples : Application au contrôle de la carte Spartan 3E 4 Pr. Benaissa Amami, FST Tanger d’autres modèles ou des utilitaires. Plusieurs bibliothèques peuvent être actives simultanément. Chaque bibliothèque contient une collection de modèles mémorisés dans un format intermédiaire. Elle contient également un certain nombre de relations et d’attributs liant, si nécessaire, les différents modèles entre eux. L'élaborateur a pour tâche de créer un modèle exécutable à partir de modules compilés séparément et de détecter des erreurs globales. Le simulateur calcule comment le système modélisé se comporte lorsqu’on lui applique un ensemble de stimuli. L’environnement de test peut également être écrit en VHDL (voir exemple 1) : il peut être lui-même vu comme un système définissant les stimuli et les opérations à appliquer aux signaux de sortie pour les visualiser (sous forme texte ou graphique). Le simulateur permet aussi le déverminage (debugging) d’un modèle au moyen de techniques analogues à celles proposées pour les programmes écrits en Pascal, C ou Ada: simulation pas à pas, visualisation de variables, de signaux, modification interactive de valeurs, etc. 2.3. Les cibles du langage VHDL 2.4. Structure d’une description VHDL VHDL nous intéresse en tant que langage pour la description, simulation et synthèse des systèmes digitaux. Au plus haut niveau d'abstraction, un système digital est vu comme une "boîte noire" ou (structure logique) , dont on connaît l'interface avec l'extérieur mais dont on ignore le contenu Apprendre VHDL avec des exemples : Application au contrôle de la carte Spartan 3E 5 Pr. Benaissa Amami, FST Tanger En VHDL, une boite noire (structure logique) ou la vue uploads/Philosophie/ cour-vhdl-amami-5-2016.pdf
Documents similaires
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/8HA2PmRq49NVJSM0YTGuQgg3W12bqKWXArdpGTb7vQJzMwYUtVMTFKDUXkuOwKVrCxwU8UOzx5NMQv9elZodTQQb.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/CuSMaoHIXbocVCgQYc5wqz14cShmwu5cPZTgFSKsgFyrVzwvJf9OCDL8J1hMroKT0FSJuwcIcFQpYfP3JYgyPXaC.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/DYTpUt8YnM7K6Ye6FWomwFaKd7OETSb2Vd11M2q696HomCnSpVzH0EupGpF2AcWiO0bfjtkytVE3xTiplPXSFz6u.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/zc31VV2qvRZOrCjrG9CClORt2yxh29vl7dM4qStQSvQzDAztRsRU20Ur33PzNzxmsdYXX2x8R8px6QgU4j8Iz6T9.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/SjPTO6Wmrd04GHxCA69Je50WQvwjNd1t0nHyBabdtla46TZlefi0ch4mgQjC7A8TjG8twwmB2D5jTKkomyRNXNPi.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/ENFYIEteJcabZutwoOabnHSFKKCFdrExXP4n0W9qfC3ex2ZTC0gsnRe3rZkus047DwWlQUI53KJ2D3kAjvMtAtoA.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/mZwnrmi4dOUW7gVyGdZ1SxcJb4Kajr9vYeDPhRiuRVYVmJws6exA6lOwsrd5doLPkoiPwRccYRDitw8ykvyh72Q0.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/25qKzChmcHgvhvKZLPEbJU4FSqbRgVBu3OOP5eoN1Iq37BkacdVu4BuAu3y1lcLnmjUdytxX2r6vPs6eCYC6lFCN.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/Iu7FaAenoElZSRWCKChq95OEu3z0b21Qsh5z5hePnDvELe6VbLkliqMWdILvUpS83u2G8jfpTlaS32GF9xr6xvRm.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/jGGVfY1gt8LRSTwnDdP7HqJXcbG2A3ouJPL95vYOIXYTn0OOYDWRqV5xWoMaAuj8yrerLggDapCGqmrpCIyPnHlj.png)
-
21
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Jan 27, 2021
- Catégorie Philosophy / Philo...
- Langue French
- Taille du fichier 2.9882MB