Comment créer votre premier programme VHDL :Hello World !
Lorsque j'apprends un nouveau langage de programmation, j'aime toujours commencer par apprendre à imprimer. Lorsque vous maîtrisez la sortie "Hello World!", Vous savez que l'environnement fonctionne. Il vous montre également le squelette de base du langage, le code minimum requis pour produire n'importe quelle sortie.
Vous pensez peut-être :mais VHDL est un langage de description de matériel, comment peut-il produire du texte ? Vous auriez besoin d'un écran connecté à un FPGA ou quelque chose et toutes sortes de logique entre les deux, et ce ne serait pas simple du tout. Bien que tout cela soit vrai, oublions un instant les FPGA et les ASIC et concentrons notre attention sur le langage VHDL.
Cet article de blog fait partie de la série de didacticiels VHDL de base.
VHDL peut être considéré comme un langage de programmation parallèle, et nous pouvons donc utiliser l'approche de ce programmeur pour l'apprendre. Puisque nous utilisons le langage pour décrire des circuits numériques, la seule façon de l'exécuter sur notre ordinateur est d'utiliser un simulateur , et le simulateur est définitivement capable de sortir "Hello World!" à l'écran.
Comment installer un simulateur et un éditeur VHDL gratuitement
Exercice
Ce didacticiel vidéo vous montrera comment créer votre tout premier programme VHDL :
Le code final que nous avons créé :
entity T01_HelloWorldTb is end entity; architecture sim of T01_HelloWorldTb is begin process is begin report "Hello World!"; wait; end process; end architecture;
La sortie vers la console du simulateur lorsque nous avons appuyé sur le bouton d'exécution dans ModelSim :
VSIM 2> run # ** Note: Hello World! # Time: 0 ns Iteration: 0 Instance: /t01_helloworld
Analyse
Sur les deux premières lignes, nous avons déclaré l'entité . L'entité d'un module déclare ses entrées et ses sorties. Pour qu'il soit possible de faire fonctionner un module dans un simulateur, il ne doit pas avoir d'entrées ou de sorties. Par conséquent, notre module n'a rien d'autre qu'une déclaration d'entité vide.
Ensuite, nous avons déclaré l'architecture du module. Alors que l'entité est l'interface d'un module avec le monde extérieur, l'architecture est son implémentation interne. Un module peut avoir plusieurs architectures qui peuvent être utilisées avec la même entité. Je ne m'inquiéterais pas trop de ces choses à ce stade car ce sont des fonctionnalités VHDL avancées.
À l'intérieur de l'architecture, nous avons déclaré un processus . Pour l'instant, nous pouvons considérer un processus comme un fil conducteur dans notre programme, où les choses se déroulent de manière séquentielle.
À l'intérieur du processus, nous imprimons "Hello World!" en utilisant le report
mot-clé. Sur la ligne suivante, il y a un seul wait;
. Lorsque le simulateur atteint cette ligne, plus rien ne se passe. Le processus attendra ici pour toujours.
Lorsque nous avons simulé cette conception dans ModelSim, nous avons pu voir que "Hello World!" a été imprimé sur la sortie de la console. Après cela, plus rien ne s'est passé.
À emporter
- Vous pouvez considérer un processus comme un fil de programme
- Le
report
instruction imprime le texte sur la console du simulateur - L'exécution d'un processus attendra indéfiniment sur un
wait;
déclaration
Aller au tutoriel suivant »
VHDL
- Tutoriel :Votre premier programme FPGA :un clignotant LED
- C# Hello World - Votre premier programme C#
- Programme Java Hello World
- Comment créer une liste de chaînes en VHDL
- Comment créer un banc d'essai piloté par Tcl pour un module de verrouillage de code VHDL
- Comment créer un contrôleur PWM en VHDL
- Comment créer un tampon circulaire FIFO en VHDL
- Comment créer une liste chaînée en VHDL
- Comment les prototypes améliorent votre processus de fabrication