Langage de description de matériel

Page d’aide sur l’homonymie

Pour les articles homonymes, voir HDL.

Si ce bandeau n'est plus pertinent, retirez-le. Cliquez ici pour en savoir plus.
Si ce bandeau n'est plus pertinent, retirez-le. Cliquez ici pour en savoir plus.

Cet article ne cite pas suffisamment ses sources ().

Si vous disposez d'ouvrages ou d'articles de référence ou si vous connaissez des sites web de qualité traitant du thème abordé ici, merci de compléter l'article en donnant les références utiles à sa vérifiabilité et en les liant à la section « Notes et références ».

En pratique : Quelles sources sont attendues ? Comment ajouter mes sources ?

Cet article est une ébauche concernant l’informatique, l’électricité et la microélectronique.

Vous pouvez partager vos connaissances en l’améliorant (comment ?) selon les recommandations des projets correspondants.

Un langage de description de matériel, ou du matériel (ou HDL pour hardware description language en anglais) est un langage permettant la description d'un circuit électronique au niveau des transferts de registres (RTL). Celui-ci peut décrire les fonctions réalisées par le circuit (description comportementale) ou les portes logiques utilisées par le circuit (description structurelle). C'est un type de langage utilisé pour développer des processeurs sur FPGA (type de circuit logique programmable) ou ASIC (circuit figé). Le développement de ce dernier passe par des phases de développement sur circuit programmable, mais le circuit programmable est également souvent utilisé tel quel dans différentes applications allant du domaine industriel, de recherche, au domaine de l'amateur.

Principes

À la différence d'un langage de programmation logiciel, la syntaxe et la sémantique d'un HDL incluent des notations explicites pour exprimer le temps et le parallélisme qui sont les attributs principaux du matériel.

Un synthétiseur logique permet de transformer un circuit décrit dans un langage de description de matériel en une netlist.

Outils d'aide au développement

Langages de très haut niveau

Des langages de plus haut niveau tels que Chisel, Migen ou Silice permettent un développement plus rapide, avec un code source plus concis, des applications, elles sont transpilées en HDL avant la synthétisation du circuit.

Développement graphique

Différents environnements de développements, possèdent des outils, tels que Icestudio, permettant de concevoir le circuit logique graphiquement et d'en extraire le code dans un HDL[1],[2]

Simulation et débogage

Le langage de vérification de matériel (HVL) est un outil complémentaire permettant de valider et simuler le circuit créé à l'aide du langage de description.

Il est possible d'observer le fonctionnement d'un circuit électronique modélisé dans un langage de description grâce à des extensions de vérification, à la simulation et à des données d'historique (anglais : log) d'exécution. Des extensions de simulation au langage, tels que SystemVerilog permettent de faire des tests unitaires, SystemC permet de simuler plus finement le comportement du circuit, en appelant des fonctionnalités du système d'exploitation du développeur. Des outils tels que Icarus Verilog ou Verilator permettent d'exécuter la simulation sur ordinateur. GTKWave permet l'analyse de l'historique des signaux et états.

Langages de description de matériel

Langages de description purement numérique, de différents degrés d'abstraction.

  • Advanced Boolean Expression Language (ABEL) orienté bas niveau ;
  • AHDL (Altera HDL) langage propriétaire essentiellement structurel proche d'ABEL ;
  • Chisel, langage basé sur Scala, et convertible en Verilog ;
  • Migen, ainsi que Amaranth HDL (auparavant nMigen et HDPython, langages écrits et utilisant le langage Python[3] ;
  • OpenCL, langage dédié à l'analyse numérique, il est également utilisé pour le développement de circuits électroniques ;
  • RHDL, HDL en langage Ruby[4] ;
  • Silice, un langage de haut niveau, exposant l'utilisation des cycles d'horloge, et convertible en Verilog[5] ;
  • SystemC utilisant le C++ et qui permet de modéliser les interactions logiciel/matériel, pour la simulation ;
  • Verilog mélange description structurelle et algorithmique ;
  • VHDL légèrement plus abstrait que Verilog qui est inspiré de ADA.

Les langages mixtes, qui sont souvent des extensions des précédents. Ils permettent la modélisation des systèmes à l'aide d'équations différentielles.

Notes et références

  1. (en) Eric Evenchick, « Icestudio: An Open Source Graphical FPGA Tool », sur Hackaday,
  2. Martoni, « Icestudio 0.2, du schéma au verilog », sur Linuxfr,
  3. (en) Brian Benchoff, « Designing Flip-Flops With Python and Migen », sur Hackaday,
  4. (en) Gauthier Lovic et Ishikawa Yohei, « HDLRuby: A Ruby Extension for Hardware Description and its Translation to Synthesizable Verilog HDL », ACM Transactions on Embedded Computing Systems,‎ (DOI 10.1145/3581757, lire en ligne)
  5. (en) Al Williams, « Slice Your Next FPGA Design », sur Hackaday,
v · m
Logiciel d'électronique
Logiciel libre
Conception
Simulation
Analyse
Logiciel propriétaire
Format de fichiers
Langage de description de matériel (HDL) et langage de vérification de matériel (HVL)
Langages
Simulateurs
Synthèse logique
  • GHDL
  • Nextpnr
  • OpenLane
  • OpenROAD
  • SymbiYosys
  • Workcraft
  • Yosys
programmation/flashage
  • OpenFPGAloader
  • icône décorative Portail de l’informatique
  • icône décorative Portail de l’électricité et de l’électronique