Création d'un afficheur 7 segments avec GHDL

Magazine
Marque
GNU/Linux Magazine
HS n°
Numéro
51
Mois de parution
décembre 2010
Spécialité(s)


Résumé
Après avoir disséqué le langage VHDL, son implémentation par GHDL et l'extension graphique du numéro de septembre [1], passons à la pratique ! On en avait presque oublié que tous ces efforts pour accéder au framebuffer sont motivés par le besoin de Laura d'afficher confortablement les chiffres de sa montre. Maintenant que nous savons contrôler les pixels de l'écran lors d'une simulation, l'affichage est (quasiment) un jeu d'enfant ! Profitons-en pour découvrir de nouveaux aspects bien pratiques du langage VHDL, tout en faisant un peu de programmation graphique.

1. Rappels

Pour utiliser le code de cet article, il est nécessaire de disposer du code présenté en septembre. Il est disponible librement à http://ygdes.com/GHDL/fb/ et ne fonctionne qu'avec GHDL sous GNU/Linux. Il pourrait aussi fonctionner sous des BSD et dérivés, mais pas sous Windows.

Pour pouvoir accéder à l'écran (et plus précisément, au framebuffer), il ne faut pas oublier au début de notre code source les incantations magiques qui rendent le paquetage accessible :

library work;

use work.fb_ghdl.all;

Cela initialise automatiquement le framebuffer. Nous disposons alors d'un tableau appelé pixel, accessible en lecture et écriture. Chaque élément du tableau est un pixel codé au moyen d'un nombre entier de 32 bits (de type integer), ce qui semble être la configuration par défaut des cartes graphiques sous Linux de nos jours. Pour écrire un pixel de valeur 0x123456 aux coordonnées x=24, y=42, il suffit d'écrire le code suivant :

pixel(42, 24) := 16#123456#;

Le VHDL...

Cet article est réservé aux abonnés. Il vous reste 96% à découvrir.
S'abonner à Connect
  • Accédez à tous les contenus de Connect en illimité
  • Découvrez des listes de lecture et des contenus Premium
  • Consultez les nouveaux articles en avant-première
Je m'abonne


Article rédigé par

Abonnez-vous maintenant

et profitez de tous les contenus en illimité

Je découvre les offres

Déjà abonné ? Connectez-vous