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 « Bonjour le monde! », vous savez que vous avez l’environnement qui fonctionne. Il vous montre également le squelette de base du langage, le code minimum requis pour produire une 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 de toutes sortes de logiques entre les deux, et ce ne serait pas simple du tout. Bien que tout cela soit vrai, oublions les FPGA et les ASIC pour un instant et concentrons notre attention sur le langage VHDL.

Cet article de blog fait partie de la série de tutoriels 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 les circuits numériques, la seule façon de l’exécuter sur notre ordinateur est d’utiliser un simulateur, et le simulateur est certainement capable de sortir « Hello World! » à l’écran.

Comment installer gratuitement un simulateur et un éditeur VHDL

Exercice

Ce tutoriel vidéo vous montrera comment créer votre tout premier programme VHDL:

Le code final que nous avons créé:

entity T01_HelloWorldTb isend entity;architecture sim of T01_HelloWorldTb isbegin 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 Exécuter 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 d’exécuter un module dans un simulateur, il ne peut 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 de notre programme, où les choses se passent séquentiellement.

Dans le processus, nous imprimons « Hello World! » en utilisant le mot-clé report. Sur la ligne suivante, il y a un seul wait;. Lorsque le simulateur atteint cette ligne, rien de plus ne va se passer. Le processus attendra ici pour toujours.

Lorsque nous avons simulé cette conception dans ModelSim, nous avons pu voir que « Bonjour le monde! » a été imprimé sur la sortie de la console. Après cela, plus rien ne s’est passé.

 Obtenez un accès exclusif aux exercices et aux réponses!

À emporter

  • Vous pouvez considérer un processus comme un thread de programme
  • L’instruction report imprime du texte sur la console du simulateur
  • L’exécution d’un processus attendra éternellement sur une instruction wait;

Aller au tutoriel suivant  »

Leave a Reply

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