Langage de description de matriel VHDL
Introduction Concepts de base Modlisation du temps Conception VHDL
[email protected]Introduction: vue densemble
VHDL signifie VHSIC (Very High Speed Integrated Circuit) Hardware Description Language. Le langage de description de matriel VHDL est: - un langage moderne, lisible, puissant et gnral mais complexe - une norme de lIEEE (Institute of Electrical and Electronics Engineers) - un standard reconnu par tous les vendeurs doutils CAO et par le dpartement de la dfense amricaine (DOD) - un langage commercialement invitable et technologiquement incontournable pour la description des systmes matriels
Introduction: applications
Le langage de description de matriel VHDL sert faire: - de la documentation - de la spcification (description et simulation) de systmes - de la preuve formelle - de la conception (description de niveau transfert de registre et synthse) de systmes
Introduction: mthodologie
Spcification (description de haut niveau) Conception (description de niveau transfert de registre) Vrification (simulation laide de modles de test) Documentation (formalisation de haut niveau) Implmentation (description structurelle)
Concepts de base: types
type (type): ensemble des valeurs prises par un objet et regroupes en quatre classes: - type scalaires (scalar): entier (integer), rel (real), numr (enumerated), physique (physical) - types composites (composite): tableau (array), enregistrement (record) - type accs (access): pointeur (pointer) permettant daccder des objets dun type donn - type fichier (file): squence de valeurs dun type donn
Concepts de base: types
type physique (physical type): caractrisation dun objet par son unit de base (base unit), lintervalle de ses valeurs et ses ventuelles sous-units
Concepts de base: types
type numr (enumerated type): caractrisation dun objet par la liste complte de ses valeurs
type tableau (array type): type composite consistant en un groupe dobjets dont le type est identique et la position indexe
Concepts de base: objets
objet (object): information manipule par le langage et rpartie en quatre classes: - constante (constant): objet de valeur fixe - variable (variable): objet de valeur modifiable par affectation (:=) - signal (signal): objet spcifique communiqu entre les parties (processus) dun modle et dont laffectation (<=) ne modifie pas la valeur prsente mais les valeurs futures prvues - fichier (file): objet servant de container pour le stockage de valeurs en mmoire de masse
Units de conception
unit de conception (design unit): unit de compilation VHDL correspondant une spcification dentit, une architecture, une spcification de paquetage, un corps de paquetage ou une configuration, stocke dans une bibliothque entit de conception (design entity): modle VHDL form dun couple spcification dentit / architecture spcification dentit (entity declaration): unit de conception correspondant la vue externe du modle et montrant ses connexions avec le monde extrieur architecture (architecture): unit de conception correspondant la vue interne du modle et servant dcrire son comportement ou sa structure configuration (configuration): unit de conception servant attribuer une architecture particulire une spcification dentit
Units de conception
spcification dentit
configuration
architecture 1
architecture 2
architecture n
entit de conception
Units de conception
Exemple: porte ET deux entres
symbole
Units de conception
Exemple: porte ET deux entres
vue externe: spcification dentit
Units de conception
Exemple: porte ET deux entres
premire vue interne: architecture comportementale
Units de conception
Exemple: porte ET deux entres
seconde vue interne: architecture flot de donnes
Concepts de base: styles
Le langage VHDL permet la description dun systme selon trois styles de description: - comportemental (behavioral): description du fonctionnement du modle qui ne prcise rien de son ventuelle ralisation - flot de donnes (data flow): description base sur les quations boolenne qui ne considre que les flots de donnes entrants et sortants du systme - structurel (structural): description de la ralisation du systme laide de composants interconnects
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 diffrences majuscules/minuscules expressions: valeurs calcules; les feuilles de ce calcul sont des littraux ou des porteurs de valeur (variables, signaux, constantes) littraux: permettent la notation de valeurs de caractres, de chane de caractres, de nombre entiers ou rels sous forme dcimales ou base et de chanes de bits oprateurs: rpartis en six classes (oprateurs logiques, relationnels, daddition, de signe, de multiplication, divers); chacune delles est attribu un niveau de priorit mots cls (en rouge): mots rservs du langage VHDL
Concepts de base: oprateurs
logiques: relationnels: arithmtiques: concatnation:
and , or , nand , nor , xor , not = , /= , < , <= , > , >= + , - , * , / , ** , abs , mod , rem &
Modlisation du temps
Laffectation dune valeur un signal ne change pas la valeur courante du signal mais modifie la liste des valeurs futures que prendra (ventuellement) ce signal Leffet de laffectation dpend du modle de dlai inertiel (inertial delay) ou dlai pur (transport delay) propos par le langage VHDL Un dlai daffectation na deffet quaprs une clause after, dans le cas contraire on parle daffectation dun signal dlai nul ou plus exactement dlai delta (delta delay)
Modlisation du temps
Affectations vues par le simulateur
delta R S Q QB
Modlisation du temps
Affectations vues par lutilisateur
R S Q QB
10
Modlisation du temps
Pilote du signal
valeur courante du signal couple date/valeur prvue 10 ns 1 0 1 0 20 ns 30 ns
file dattente des valeurs prvues du signal
Modlisation du temps
Affectation du signal
instant prsent A B C 5 ns
vnement prvu
11
Modlisation du temps
Affectation du signal
instant prsent A B C 5 ns 5 ns
vnement prvu
Modlisation du temps
Affectation du signal
instant prsent A B C < 5 ns
vnement annul
12
Modlisation du temps
Dlai inertiel
sin sout
+10ns
+50ns
+100ns
Modlisation du temps
Dlai pur
sin sout
+10ns
+50ns
+100ns
13
Modlisation du temps
Exemple: spcification dun inverseur
caractristiques: dlai inertiel de 10 ns et dlai pur 20 ns
Modlisation du temps
Exemple: spcification dun inverseur
architecture flot de donnes
14
Conception VHDL
Le langage de description VHDL a t dvelopp pour la documentation et la spcification des circuits Toutes les descriptions VHDL ne sont par consquent pas synthtisables Nous appelons RTL (Register Transfer Level) le niveau de description pour la synthse caractris par la rduction des possibilits du langage un sous-ensemble dans lequel: - les expressions temporelles sont ignores - certaines restrictions sappliquent lcriture des processus - seul un nombre limit dobjets et de types est admis - la description est oriente vers les styles synchrones en explicitant les signaux dhorloge
Conception VHDL
Circuit combinatoire n variables dentre x et r variables de sortie z
combinational
schma-bloc
15
Conception VHDL
Circuit combinatoire n variables dentre x et r variables de sortie z
spcification dentit
Conception VHDL
Circuit combinatoire n variables dentre x et r variables de sortie z
architecture concurrente avec assignement conditionnel
16
Conception VHDL
Circuit combinatoire n variables dentre x et r variables de sortie z
architecture concurrente avec assignement slectionn
Conception VHDL
Circuit squentiel n variables dentre x, m variables internes y et r variables de sortie z
y_fut x dcodeur dtat futur rst clk registre dtat y_pres dcodeur de sortie z
schma-bloc
17
Conception VHDL
Circuit squentiel n variables dentre x, m variables internes y et r variables de sortie z
spcification dentit
Conception VHDL
Circuit squentiel n variables dentre x, m variables internes y et r variables de sortie z
architecture concurrente conditionnelle du dcodeur dtat futur
18
Conception VHDL
Circuit squentiel n variables dentre x, m variables internes y et r variables de sortie z
architecture squentielle conditionnelle du registre dtat
Conception VHDL
Circuit squentiel n variables dentre x, m variables internes y et r variables de sortie z
architecture concurrente conditionnelle du dcodeur de sortie
19
Application
Porte NAND deux entres
symbole
Application
Porte NAND deux entres
spcification dentit
20
Application
Porte NAND deux entres
architecture comportementale
Application
Porte NAND deux entres
architecture flot de donnes
21
Application
Porte NAND deux entres
schma logique
Application
Porte NAND deux entres
architecture structurelle
22
Application
Porte NAND deux entres
architecture structurelle
Application
Porte NAND deux entres
simulation laide de sondes
23
Application
Porte NAND deux entres
simulation laide dun gnrateur 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=abc
26
27
Laboratoire 1
Additionneur de deux nombres de 4 bits
banc de test
28