Commencez avec la programmation VHDL: Concevez Votre propre matériel

Divulgation: Votre support aide à maintenir le site en marche! Nous touchons des frais de parrainage pour certains des services que nous recommandons sur cette page. En savoir plus

VHDL est un langage de description matérielle (HDL). Un HDL ressemble un peu à un langage de programmation, mais a un but différent. Plutôt que d’être utilisé pour concevoir un logiciel, un HDL est utilisé pour définir une puce informatique. Le VHDL peut être utilisé pour décrire tout type de circuit et est fréquemment utilisé dans la conception, la simulation et les tests de processeurs, de processeurs, de cartes mères, de FPGA, d’ASIC et de nombreux autres types de circuits numériques.

Historique VHDL

Le nom VHDL est un acronyme imbriqué. Il signifie Langage de description du matériel VHSIC. VHSIC signifie Circuit Intégré à Très Grande Vitesse. En plus d’être une description d’un processeur rapide, c’était le nom d’un programme du gouvernement américain dans les années 1980 dont la mission était la recherche et le développement dans le domaine des circuits intégrés à très haut débit (puces informatiques rapides).

Parallèlement à des avancées majeures dans la science des matériaux, les algorithmes, la conception de puces, la lithographie et une douzaine d’autres domaines connexes, VHSIC a développé VHDL.

La première norme officielle pour le langage est venue de l’IEEE en 1987, et est connue sous le nom d’IEEE 1076. Il y a eu plusieurs éditions depuis, la dernière date de 2008. In addition to the « core » language specified in 1076, there are a number of extensions codified in other specs:

  • IEEE 1076.1 VHDL Analog and Mixed-Signal (VHDL-AMS)
  • IEEE 1076.1.1 VHDL-AMS Standard Packages (stdpkgs)
  • IEEE 1076.2 VHDL Math Package
  • IEEE 1076.3 VHDL Synthesis Package (vhdlsynth)
  • IEEE 1076.3 VHDL Synthesis Package – Floating Point (fphdl)
  • IEEE 1076.4 Timing (VHDL Initiative Towards ASIC Libraries: vital)
  • IEEE 1076.6 Interopérabilité de la synthèse VHDL
  • Paquets de logique Multivalue VHDL IEEE 1164 (std_logic_1164)

Conception et syntaxe VHDL

VHDL était basé sur Ada et en a largement emprunté dans la syntaxe et les concepts. Cela a ensuite été complété par des concepts spécifiques au matériel tels que la logique à valeurs multiples, le parallélisme physique et un ensemble étendu d’opérateurs booléens. VHDL peut également indexer les tableaux dans l’ordre croissant et décroissant, alors qu’Ada (et la plupart des autres langages de programmation également) ne s’indexent que dans l’ordre croissant.

La plupart des langages de programmation sont, au fond, procéduraux — l’ordinateur exécute une commande après l’autre en séquence. VHDL est différent. C’est un langage matériel qui décrit une structure physique (réelle ou simulée). Cette structure est composée d’un grand nombre de modules, et chaque module agit en même temps que tous les autres modules.

Ainsi, dans chaque module, il y a un flux procédural d’instructions qui ressemble un peu à un petit logiciel autonome – avec des variables, des flux de contrôle, des conditionnels, des boucles. Chaque module possède une ou plusieurs entrées ainsi qu’une ou plusieurs sorties. Les entrées sont spécifiées dans une structure appelée entité, et la logique autonome est définie dans une architecture.

Considérons l’idée d’une porte « ET » où nous avons deux entrées et une sortie. Si les deux entrées sont « on » (true, 1), alors la sortie est « on »; sinon, la sortie est « off ». »Donc, en utilisant VHDL, nous définissions deux entrées et une sortie. Les valeurs acceptées de ces entrées et sorties seraient définies dans un module std_logic, qui est importé comme une bibliothèque dans un langage de programmation régulier. L’architecture définirait alors le fonctionnement interne de notre « porte ET » pour qu’elle fonctionne comme nous venons de le discuter.

Le module std_logic est un type de valeur spécifique au matériel intéressant. Elle est similaire à la valeur BOOLÉENNE présente dans les langages de programmation (un bit: vrai ou faux), mais elle peut avoir une plage de valeurs, car elle représente une impulsion électrique réelle dans un système physique:

  • U: non initialisé. Ce signal n’a pas encore été réglé.
  • X: inconnu. Impossible de déterminer cette valeur/résultat.
  • 0: logique 0
  • 1: logique 1
  • Z: Haute Impédance
  • W: Signal faible, impossible de savoir s’il doit être 0 ou 1.
  • L: Signal faible qui devrait probablement aller à 0
  • H: Signal faible qui devrait probablement aller à 1
  • -: Je m’en fiche.

Voici, en miniature, comment est construit un design VHDL complet. Des modules d’activité d’E / S assez simples et logiquement autonomes sont construits et connectés les uns aux autres pour former des machines de calcul capables d’effectuer différents types de tâches. Une conception VHDL pourrait décrire un ordinateur à usage général pleinement fonctionnel ou encoder un algorithme unique tel que la preuve de travail par force brute utilisée pour l’extraction de Bitcoins.

Il est important de réaliser qu’une conception VHDL n’est pas un programme — elle n’est ni exécutée ni exécutée. Comme un plan, il définit une architecture. Une fois qu’une conception est terminée, elle est généralement simulée pour être testée dans un banc d’essai logiciel, puis synthétisée, ce qui signifie qu’elle est traduite en une conception physique qui peut être implémentée sur une puce ou une carte de circuit imprimé réelle.

Ressources pour apprendre le VHDL

Il existe de nombreuses ressources pour apprendre le VHDL. Nous avons rassemblé quelques-uns des meilleurs.

Ressources en ligne

  • Introduction au VHDL: un tutoriel sur le VHDL de l’Université de Pennsylvanie.
  • VHDL sur Wikipédia: La couverture de la VHDL par Wikipédia est surprenante en profondeur et lucide, offrant une excellente introduction à la langue dans son ensemble.
  • Livre de cuisine VHDL: un livre gratuit en ligne, la longueur et le format d’un manuel de cours collégial.
  • Tutoriel VHDL: Apprendre par l’exemple: ce vénérable tutoriel n’a rien d’agréable à regarder, mais l’information est géniale et très bien organisée.
  • Guide de la langue VHDL: il s’agit d’un PDF qui couvre la langue de manière extrêmement détaillée (400 pages) avec des liens dans le document pour une navigation très facile. C’est une excellente référence.
  • Guide du concepteur de VHDL: une collection de ressources, de tutoriels et de liens. Comprend des vidéos et un cours de certification en ligne.
  • Programmable Logic/VHDL Module Structure
  • VHDL Basics — Online Course
  • VHDL Handbook
  • VHDL Starters Guide

Books

All these books focus on VHDL:

  • The Designer’s Guide to VHDL, Third Edition
  • Circuit Design and Simulation with VHDL
  • Vhdl By Example
  • VHDL: Basics to Programming
  • VHDL for Engineers
  • VHDL By Example: Fundamentals of Digital Design
  • Circuit Design with VHDL
  • Digital Design Using VHDL: Une approche systémique

VHDL & Livres Verilog

La principale « compétition » de VHDL est Verilog. Les deux langages sont utilisés pour la conception matérielle, il existe donc un certain nombre de livres qui se concentrent sur les concepts de conception et d’ingénierie sous-jacents et utilisent à la fois VHDL et Verilog.

  • Conception numérique avec RTL Design, VHDL et Verilog
  • Conception de puces Hdl: Guide pratique pour la Conception, La Synthèse & Simulation d’Asic & Fpga Utilisant Vhdl ou Verilog
  • Recettes de conception pour FPGA, Deuxième Édition: Utilisant Verilog et VHDL
  • HDL Principes Fondamentaux de la Programmation: VHDL et Verilog

Autres liens VHDL importants

Implémentations et Simulateurs

  • Free/Open Source
    • GHDL
    • NVC
    • Projet HDL gratuit
  • Commercial / propriétaire
    • VHDL Simili
    • Active-HDL
    • Simulateur d’entreprise Incisif
    • ModelSim

Outils

  • Utils EDA: une grande collection d’utilitaires pour travailler avec VHDL, ainsi que Verilog et d’autres HDL.
  • Aire de jeux EDA: un bac à sable en ligne pour tester des conceptions VHDL.
  • Paquets Editeurs
    • Mode VHDL Emacs
    • Plugin VHDL pour vim
    • Paquet VHDL pour Sublime Text
    • VHDL pour Atom
    • VHDL pour Bloc-notes++

Tu Devrais Aussi Savoir…

VHDL est l’un des deux principaux langages de description du matériel. L’autre est Verilog. La plupart des concepteurs de matériel connaissent les deux langages, ainsi que les langages de système d’exploitation de bas niveau tels que Cand C ++.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.