Vous êtes sur la page 1sur 28

Langage de description

de matériel VHDL
„ Introduction
„ Concepts de base
„ Modélisation du temps
„ Conception VHDL

andre.stauffer@epfl.ch

Introduction: vue d’ensemble


VHDL signifie VHSIC (Very High Speed Integrated Circuit)
Hardware Description Language. Le langage de description
de matériel VHDL est:
- un langage moderne, lisible, puissant et général mais complexe
- une norme de l’IEEE (Institute of Electrical and Electronics
Engineers)
- un standard reconnu par tous les vendeurs d’outils CAO et par
le département de la défense américaine (DOD)
- un langage commercialement inévitable et technologiquement
incontournable pour la description des systèmes matériels

1
Introduction: applications

Le langage de description de matériel VHDL sert à faire:


- de la documentation
- de la spécification (description et simulation) de systèmes
- de la preuve formelle
- de la conception (description de niveau transfert de registre
et synthèse) de systèmes

Introduction: méthodologie

Spécification (description de haut niveau)

Conception (description de niveau transfert de registre)

Vérification (simulation à l’aide de modèles de test)

Documentation (formalisation de haut niveau)

Implémentation (description structurelle)

2
Concepts de base: types
type (type): ensemble des valeurs prises par un objet et regroupées
en quatre classes:
- type scalaires (scalar): entier (integer),
réel (real),
énuméré (enumerated),
physique (physical)
- types composites (composite): tableau (array),
enregistrement (record)
- type accès (access): pointeur (pointer) permettant d’accéder à
des objets d’un type donné
- type fichier (file): séquence de valeurs d’un type donné

Concepts de base: types


type physique (physical type): caractérisation d’un objet par
son unité de base (base unit), l’intervalle de ses valeurs et ses
éventuelles sous-unités

3
Concepts de base: types
type énuméré (enumerated type): caractérisation d’un objet par
la liste complète de ses valeurs

type tableau (array type): type composite consistant en un groupe


d’objets dont le type est identique et la position indexée

Concepts de base: objets

objet (object): information manipulée par le langage et répartie en


quatre classes:
- constante (constant): objet de valeur fixe
- variable (variable): objet de valeur modifiable par affectation (:=)
- signal (signal): objet spécifique communiqué entre les parties
(processus) d’un modèle et dont l’affectation (<=) ne modifie pas
la valeur présente mais les valeurs futures prévues
- fichier (file): objet servant de container pour le stockage de
valeurs en mémoire de masse

4
Unités de conception
unité de conception (design unit): unité de compilation VHDL
correspondant à une spécification d’entité, une architecture, une
spécification de paquetage, un corps de paquetage ou une
configuration, stockée dans une bibliothèque
entité de conception (design entity): modèle VHDL formé d’un
couple spécification d’entité / architecture
spécification d’entité (entity declaration): unité de conception
correspondant à la vue externe du modèle et montrant ses
connexions avec le monde extérieur
architecture (architecture): unité de conception correspondant
à la vue interne du modèle et servant à décrire son comportement
ou sa structure
configuration (configuration): unité de conception servant à
attribuer une architecture particulière à une spécification d’entité

Unités de conception

spécification
configuration
d’entité

architecture 1 architecture 2 architecture n

entité de conception

5
Unités de conception
Exemple: porte ET à deux entrées

symbole

Unités de conception
Exemple: porte ET à deux entrées

vue externe: spécification d’entité

6
Unités de conception
Exemple: porte ET à deux entrées

première vue interne: architecture comportementale

Unités de conception
Exemple: porte ET à deux entrées

seconde vue interne: architecture flot de données

7
Concepts de base: styles

Le langage VHDL permet la description d’un système selon trois


styles de description:
- comportemental (behavioral): description du fonctionnement
du modèle qui ne précise rien de son éventuelle réalisation
- flot de données (data flow): description basée sur les équations
booléenne qui ne considère que les flots de données entrants et
sortants du système
- structurel (structural): description de la réalisation du système
à l’aide de composants interconnectés

Concepts de base: langage


commentaires: commencent par deux tirets (--) et finissent avec la
ligne
identificateurs: commencent par une lettre et ne tiennent pas
compte des différences majuscules/minuscules
expressions: valeurs calculées; les feuilles de ce calcul sont des
littéraux ou des porteurs de valeur (variables, signaux, constantes)
littéraux: permettent la notation de valeurs de caractères, de
chaîne de caractères, de nombre entiers ou réels sous forme
décimales ou basée et de chaînes de bits
opérateurs: répartis en six classes (opérateurs logiques,
relationnels, d’addition, de signe, de multiplication, divers); à
chacune d’elles est attribué un niveau de priorité
mots clés (en rouge): mots réservés du langage VHDL

8
Concepts de base: opérateurs

logiques: and , or , nand , nor , xor , not


relationnels: = , /= , < , <= , > , >=
arithmétiques: + , - , * , / , ** , abs , mod , rem
concaténation: &

Modélisation du temps
L’affectation d’une valeur à un signal ne change pas la valeur
courante du signal mais modifie la liste des valeurs futures que
prendra (éventuellement) ce signal
L’effet de l’affectation dépend du modèle de délai inertiel (inertial
delay) ou délai pur (transport delay) proposé par le langage
VHDL
Un délai d’affectation n’a d’effet qu’après une clause after, dans
le cas contraire on parle d’affectation d’un signal à délai nul ou
plus exactement à délai delta (delta delay)

9
Modélisation du temps
Affectations vues par le simulateur

delta

R
S
Q
QB

Modélisation du temps
Affectations vues par l’utilisateur

R
S
Q
QB

10
Modélisation du temps
Pilote du signal

valeur courante du signal


couple date/valeur prévue

10 ns 20 ns 30 ns
1
0 1 0

file d’attente des valeurs prévues du signal

Modélisation du temps
Affectation du signal

instant événement
présent prévu

A
B
C
5 ns

11
Modélisation du temps
Affectation du signal

instant événement
présent prévu

A
B
C
5 ns 5 ns

Modélisation du temps
Affectation du signal

instant événement
présent annulé

A
B
C
< 5 ns

12
Modélisation du temps
Délai inertiel

sin
sout

+10ns +50ns +100ns

Modélisation du temps
Délai pur

sin
sout

+10ns +50ns +100ns

13
Modélisation du temps
Exemple: spécification d’un inverseur

caractéristiques: délai inertiel de 10 ns et délai pur 20 ns

Modélisation du temps
Exemple: spécification d’un inverseur

architecture flot de données

14
Conception VHDL
Le langage de description VHDL a été développé pour la
documentation et la spécification des circuits
Toutes les descriptions VHDL ne sont par conséquent pas
synthétisables
Nous appelons RTL (Register Transfer Level) le niveau de
description pour la synthèse caractérisé par la réduction des
possibilités du langage à un sous-ensemble dans lequel:
- les expressions temporelles sont ignorées
- certaines restrictions s’appliquent à l’écriture des processus
- seul un nombre limité d’objets et de types est admis
- la description est orientée vers les styles synchrones en
explicitant les signaux d’horloge

Conception VHDL
Circuit combinatoire à n variables d’entrée x et à r variables
de sortie z

x combinational z

schéma-bloc

15
Conception VHDL
Circuit combinatoire à n variables d’entrée x et à r variables
de sortie z

spécification d’entité

Conception VHDL
Circuit combinatoire à n variables d’entrée x et à r variables
de sortie z

architecture concurrente avec assignement conditionnel

16
Conception VHDL
Circuit combinatoire à n variables d’entrée x et à r variables
de sortie z

architecture concurrente avec assignement sélectionné

Conception VHDL
Circuit séquentiel à n variables d’entrée x, à m variables
internes y et à r variables de sortie z

y_fut
x décodeur décodeur
registre
d’état rst y_pres de z
d’état
futur sortie
clk

schéma-bloc

17
Conception VHDL
Circuit séquentiel à n variables d’entrée x, m variables
internes y et à r variables de sortie z

spécification d’entité

Conception VHDL
Circuit séquentiel à n variables d’entrée x, m variables
internes y et à r variables de sortie z

architecture concurrente conditionnelle du décodeur d’état futur

18
Conception VHDL
Circuit séquentiel à n variables d’entrée x, m variables
internes y et à r variables de sortie z

architecture séquentielle conditionnelle du registre d’état

Conception VHDL
Circuit séquentiel à n variables d’entrée x, m variables
internes y et à r variables de sortie z

architecture concurrente conditionnelle du décodeur de sortie

19
Application
Porte NAND à deux entrées

symbole

Application
Porte NAND à deux entrées

spécification d’entité

20
Application
Porte NAND à deux entrées

architecture comportementale

Application
Porte NAND à deux entrées

architecture flot de données

21
Application
Porte NAND à deux entrées

schéma logique

Application
Porte NAND à deux entrées

architecture structurelle

22
Application
Porte NAND à deux entrées

architecture structurelle

Application
Porte NAND à deux entrées

simulation à l’aide de sondes

23
Application
Porte NAND à deux entrées

simulation à l’aide d’un générateur de stimuli

24
Laboratoire 1
Additionneur de deux nombres de 4 bits

s(3:0) = a(3:0) + b(3:0)

Laboratoire 1
Additionneur de trois bits individuels

(co,s) = a + b + ci

25
Laboratoire 1

co = ab + ac + bc
s=a⊕b⊕c

26
27
Laboratoire 1
Additionneur de deux nombres de 4 bits

banc de test

28