Introduction
License
License d'utilisation de ce document :
Préambule
Un langage de description de matériel (Hardware
Description Language, HDL) est une instance d'une classe de langage
informatique ayant pour but la description formelle d'un
système électronique. Il peut
généralement :
- décrire le fonctionnement du circuit,
- décrire sa structure,
- et servir à vérifier sa
fonctionnalité par simulation ou preuve formelle.
Un HDL est une représentation textuelle d'un
comportement temporel ou d'une structure d'un circuit. En comparaison
avec un langage de programmation classique, la syntaxe et la
sémantique des HDL inclut des notations pour exprimer la
concurence et le temps, qui sont les principaux attributs du
matériel. Les classes de langages dont la seule
caractéristique est de décrire un circuit par une
hiérarchie de blocs interconnectés est
appelée une netlist.
Le but des HDL est double :
l'un des objectifs des HDL est d'aboutir à une
représentation exécutable d'un circuit, soit sous
forme autonome, soit à l'aide d'un programme externe
appelé simulateur. Cette forme exécutable
comporte une description du circuit à simuler, un
générateur de stimuli (vecteurs de test), ainsi
que le dispositif implémentant la sémantique du
langage et l'écoulement du temps.
Il existe deux types de simulateurs, à temps discret,
généralement pour le numérique, et
à temps continu pour l'analogique. Des HDL existent pour ces
deux types de simulations.
en n'utilisant qu'un sous-ensemble d'un HDL, un programme
spécial appelé synthétiseur peut
transformer une description de circuit en une netlist de portes
logiques ayant le même comportement que le circuit de
départ. Le sous-ensemble du langage utilisé
à ce propos est alors dit synthétisable. La
sémantique synthétisable ignore typiquement
toutes les constructions ayant un rapport avec le temps.
Il existe un grand nombre de HDL, les principaux
étant :
- Verilog
- VHDL
- SystemC,
sur-ensemble de C++ possédant des classes
spéciales pour modéliser le matériel,
et incluant un moteur de simulation. Pour l'instant, sa
synthèse n'est pas facile.
- Confluence, langage déclaratif GPL pouvant générer
du Verilog, du VHDL, des modèles exécutables en C
et des modèles de vérification formelle.
- ABEL ("Advanced Boolean Expression Language", un langage
propriétaire développé par Data I/O
Corporation, maintenant possésé par Lattice).
- AHDL (Altera HDL, langage propriétaire d'Altera
pour la programmation de leurs FPGA).
- CUPL (langage propriétaire de Logical Devices,
Inc.).
- VHDL-AMS : extension de VHDL destinée aux
circuits analogiques ou mixtes.
- ...
Le cours
L'objectif de ce cours en ligne est de :
- présenter les principes de bases des langages de
decription de matériel (HDL, Hardware Description Languages)
- enseigner les bases de trois d'entre eux
- pour vous permettre d'écrire du code HDL
simulable ou synthétisable, correct et soigné
Ce cours n'est pas seulement un texte à lire, comme
on lirait un article de journal. Il nécessite de l'attention
et un travail de réflexion et d'approfondissement,
similaires à ceux fournis lors de l'étude d'un
polycopié.
On commencera ce cours par la
partie
sur les HDL, pour poursuivre
par celle du langage à étudier
proprement dit (Verilog, VHDL ou SystemC).
Les enseignants sont là pour vous aider, vous
expliquer ce qui ne vous semble pas clair, corriger les exercices, ...
N'hésitez donc pas à leur poser toute question
qui vous semblera utile.