Introduction VHDL
Tanguy Risset
Partir du cours de lENST http://comelec.enst.fr/hdl
- p. 1/44
Plan
Rappel d l ctronique
Le langage VHDL
Exemples VHDL
Conception de circuits en VHDL
Simulation en VHDL
Synth se de VHDL
n Rappel d lectronique
n Introduction VHDL
u Historique
u Structure du langage
u Types, expressions.
u Exemples
n Codage en VHDL
u Automate
u R gles d criture
n Simulation VHDL
- p. 2/44
Le transistor
n Composant lectronique de base
n Portes logiques ON/OFF
Oxyde
Drain
Grille
(cid:1)(cid:1)
(cid:0)(cid:0)
(cid:0)(cid:0)
(cid:1)(cid:1)
(cid:0)(cid:0)
(cid:1)(cid:1)
(cid:1)(cid:1)
(cid:0)(cid:0)
(cid:0)(cid:0)
(cid:1)(cid:1)
M tal
Source
Canal
semiconducteur
Rappel d l ctronique
l Le transistor
l Portes l mentaires
l Conception de circuits
combinatoires
l Logique s quentielle
l Composants s quentiels
fr quents
l Conception de circuits
s quentiels
Le langage VHDL
Exemples VHDL
Conception de circuits en VHDL
Simulation en VHDL
Synth se de VHDL
- p. 3/44
Technologie CMOS
Rappel d l ctronique
l Le transistor
l Portes l mentaires
l Conception de circuits
combinatoires
l Logique s quentielle
l Composants s quentiels
fr quents
l Conception de circuits
s quentiels
Le langage VHDL
Exemples VHDL
n Complementary Metal Oxide
Semiconductor
n Niveaux logiques : 0 = 0V et 1 = 3V
n Deux types de portes
u nMOS : conducteur si la grille=1
u pMOS : conducteur si la grille=0
n R alisation de quelques portes de
Conception de circuits en VHDL
base
Simulation en VHDL
Synth se de VHDL
Inverseur, NAND, NOR
source
source
grille
g=1
grille
g=0
drain
pMOS
y
(xy)
drain
mMOS
x
1
0
x
x
x
y
1
0
Inverseur
porte NAND
x
y
x
1
0
(x+y)
y
porte NOR
- p. 4/44
Portes l mentaires
Rappel d l ctronique
l Le transistor
l Portes l mentaires
l Conception de circuits
combinatoires
l Logique s quentielle
l Composants s quentiels
fr quents
l Conception de circuits
s quentiels
Le langage VHDL
Exemples VHDL
Conception de circuits en VHDL
Simulation en VHDL
Synth se de VHDL
x
F
Amplicateur:
F = x
x
F
y
ET: F = x y
x F
0
0
1
1
x
0
0
1
1
y F
0
0
0
1
0
0
1
1
x
F
Inverseur:
F = x
x F
1
0
0
1
x
F
y
NON ET:
F = (x y)
x
0
0
1
1
y F
1
0
1
1
1
0
0
1
- p. 5/44
Conception de circuits combinatoires
Rappel d l ctronique
l Le transistor
l Portes l mentaires
l Conception de circuits
combinatoires
l Logique s quentielle
l Composants s quentiels
fr quents
l Conception de circuits
s quentiels
Le langage VHDL
Exemples VHDL
Conception de circuits en VHDL
Simulation en VHDL
Synth se de VHDL
1. Description du probl me:
y vaut 1 si a vaut 1 ou b et c
entr es
sorties
valent 1.
z vaut 1 si b ou c valent 1 (mais
pas les deux) ou si a, b et c valent 1.
2. Table de v rit
3. quations logiques
y = abc + abc + abc + abc + abc
z = abc + abc + abc + abc + abc
4. Equations optimis es
y = a + bc
z = ab + bc + bc
5. Portes logiques
b
0
0
1
1
0
0
1
1
c
0
1
0
1
0
1
0
1
a
0
0
0
0
1
1
1
1
a
b
c
z
0
1
1
0
0
1
1
1
y
0
0
0
1
1
1
1
1
y
z
- p. 6/44
Composants combinatoires fr quents
n Multiplexeur n entr es
n D codeur log(n) n
n Additionneur n bits
n Comparateur n bits
n ALU n bits
n etc.
Rappel d l ctronique
l Le transistor
l Portes l mentaires
l Conception de circuits
combinatoires
l Logique s quentielle
l Composants s quentiels
fr quents
l Conception de circuits
s quentiels
Le langage VHDL
Exemples VHDL
Conception de circuits en VHDL
Simulation en VHDL
Synth se de VHDL
- p. 7/44
Logique s quentielle
Rappel d l ctronique
l Le transistor
l Portes l mentaires
l Conception de circuits
Publicité
combinatoires
l Logique s quentielle
l Composants s quentiels
fr quents
l Conception de circuits
s quentiels
Le langage VHDL
Exemples VHDL
Conception de circuits en VHDL
Simulation en VHDL
Synth se de VHDL
n Bascule RS: lorsque R et S passe 0, Q et Q conservent
leur valeur ant rieure.
R
Q
Q
S
Bascule RS
S
0
1
1
0
R
1
1
0
0
Q
0
Q
1
interdit
interdit
1
0
Qn1
Qn1
n Bascule D: permet d chantillonner la valeur de la donn e
lorsque lhorloge passe 1 (front montant de lhorloge) et de
conserver cette valeur lorsque lhorloge passe 0.
Horloge
(cid:1)
(cid:0)
(cid:0)
(cid:1)
Donn e
(cid:0)(cid:0)(cid:1)(cid:1)
Valeur
(cid:0)(cid:1)
Valeur
(cid:0)(cid:1)
- p. 8/44
Composants s quentiels fr quents
n Registre n bits (avec reset et eventuellement
load/ClockEnable)
n Registre d calage n bits
n Compteur n bits
n Machine tats
Rappel d l ctronique
l Le transistor
l Portes l mentaires
l Conception de circuits
combinatoires
l Logique s quentielle
l Composants s quentiels
fr quents
l Conception de circuits
s quentiels
Le langage VHDL
Exemples VHDL
Conception de circuits en VHDL
Simulation en VHDL
Synth se de VHDL
- p. 9/44
Conception de circuits s quentiels
Rappel d l ctronique
l Le transistor
l Portes l mentaires
l Conception de circuits
combinatoires
l Logique s quentielle
l Composants s quentiels
fr quents
l Conception de circuits
s quentiels
Le langage VHDL
Exemples VHDL
Conception de circuits en VHDL
Simulation en VHDL
Synth se de VHDL
n Extr mement complexe en g n ral.
n De nombreux mod les de calculs:
u S quentiel
Machine tats
Contr leur + chemin de donn es
u Parall lisme de t ches
Processus communicants
u Parall lisme de donn es
u Calcul sur des ots de donn es
u Circuits multi-horloge
u Paradigme synchrone
u Circuits assynchrone
n Notion sous-jacente tr s utilis e: automate tats nit
- p. 10/44
Quest ce que VHDL?
Rappel d l ctronique
n VHSIC (Very High Speed Integrated Circuit) Hardware Description
Le langage VHDL
l Intro
l historique
l Syntaxe
l langage
l librairies
l entit
l Architecture
l Signal et Variable
l Types
l Operateurs
l Process
Exemples VHDL
Langage.
n Langage pour d crire la structure et le comportement de syst mes
lectroniques, en particulier des circuits digitaux (ASIC, FPGA, . . . ).
n Standard IEEE.
n Ind pendant de la technologie cible.
n Ind pendant de la m thodologie de conception.
Conception de circuits en VHDL
Simulation en VHDL
Synth se de VHDL
n Ind pendant des outils de conception.
n Langage tr s g n ral tr s complexe ( d pendent de tout!)
n VHDL nest pas un langage de programmation
cest un langage de description (specication) de syst me.
- p. 11/44
Historique
Rappel d l ctronique
n 1980: le d partement de d fense am ricain lance un appel doffre
Le langage VHDL
l Intro
l historique
l Syntaxe
l langage
l librairies
l entit
l Architecture
l Signal et Variable
l Types
l Operateurs
l Process
Exemples VHDL
pour un langage qui permettrait de d crire tous les syst mes
lectroniques utilis s. Motivation afch e: r utilisabilit et r duction
des co ts de conception.
n 1983 trois compagnies (Intermetics, IBM, Texas Instruments)
commencent le d veloppement.
n 1985: premi re version ofcielle de VHDL (version 7.2).
n 1986: VHDL est donn IEEE pour en faire un standard.
Conception de circuits en VHDL
Simulation en VHDL
Synth se de VHDL
n 1987: Standard IEEE 1076-1987.
n 1993: Standard IEEE 1076-1993.
n 1999: Standard IEEE 1076.6-1999
- p. 12/44
Convention lexicale
Rappel d l ctronique
n Comme en C, un code vhdl est compos dune suite
Le langage VHDL
l Intro
l historique
l Syntaxe
l langage
l librairies
l entit
l Architecture
l Signal et Variable
l Types
l Operateurs
l Process
Exemples VHDL
Conception de circuits en VHDL
Simulation en VHDL
Synth se de VHDL
d l ments :
u commentaires
u d limiteurs
u identicateurs,
u expressions (termin es par un point-virgule),
u mots-clefs
u litt raux(constantes), par exemple:
n 67 est un entier
n 0 est un bit
n "001", O"562", X"FF1" sont vecteurs de bits
n "chaine" est une chaine de caract res
n VHDL est insensible la casse. On crit souvent les mots
reserv du langage en majuscule, le reste en minuscule.
n Les commentaires commencent par deux tirets (- -)
- p. 13/44
Structure du langage
Rappel d l ctronique
n Il existe "5 unit s de compilation" permettant de d crire des
Le langage VHDL
l Intro
l historique
l Syntaxe
l langage
l librairies
l entit
l Architecture
l Signal et Variable
l Types
l Operateurs
l Process
Exemples VHDL
Conception de circuits en VHDL
Simulation en VHDL
Synth se de VHDL
composants.
u Lentit : description de linterface du composant: le nom et
ses ports dentr e/sortie
u Larchitecture d crit lint rieur du composant. Il peut y avoir
plusieurs architectures pour le m me composant (ex: une
pour la simulation efcace, une pour la synth se).
Larchitecture contient les processus.
u La d claration de paquetage. Un paquetage est une
collection dobjets r utilisables (constantes, types,
composants, proc dures)
u Le corps de paquetage
u La conguration indiquant quelle architecture utiliser pour
chaque entit
- p. 14/44
Biblioth ques
Rappel d l ctronique
n Les biblioth ques sont d clar e avec le mot cl library,
Le langage VHDL
l Intro
l historique
l Syntaxe
l langage
l librairies
l entit
l Architecture
l Signal et Variable
l Types
l Operateurs
l Process
Exemples VHDL
elle d pendent des outils utilis s.
n Elle contiennent des paquetages que lon d clare vouloir
utiliser avec le mot cl use:
use BIBLIOTHEQUE.PAQUETAGE.all;
n La biblioth que par d faut est WORK. WORK est aussi le nom
symbolique de la biblioth que dans laquelle sont stock s les
r sultats.
Conception de circuits en VHDL
Simulation en VHDL
Synth se de VHDL
n La biblioth que STD est une biblioth que standard fournie
avec le langage , elle contient des d nitions des types et
des fonctions de base (integer, bit,...).
n Par d faut, les outils consid re que lon utilise les
biblioth ques STD et WORK, il y a donc implicitement:
library STD;
library WORK;
n En g n ral, on utilise la librairie suivante IEEE qui d nit le
type std_logic:
library ieee;
use ieee.std_logic_1164.all;
- p. 15/44
Lentit
Rappel d l ctronique
n Lentit est la description de linterface du circuit . Elle
Le langage VHDL
l Intro
l historique
l Syntaxe
l langage
l librairies
l entit
l Architecture
l Signal et Variable
l Types
l Operateurs
l Process
Exemples VHDL
correspond au symbole dans les repr sentations
sch matiques.
A
B
CIn
FA
S
COut
library ieee;
use ieee.std_logic_1164.all;
Conception de circuits en VHDL
Publicité
ENTITY FA IS
Simulation en VHDL
Synth se de VHDL
port(A, B, Cin: in STD_LOGIC;
S, COut: out STD_LOGIC);
END ENTITY FA;
- p. 16/44
Larchitecture
Rappel d l ctronique
n Larchitecture est la description interne du circuit.
Le langage VHDL
l Intro
l historique
l Syntaxe
l langage
l librairies
l entit
l Architecture
l Signal et Variable
l Types
l Operateurs
l Process
Exemples VHDL
n Elle est toujours associ e une entit , une entit peut avoir
plusieurs architectures:
architecture arch1 of fa is
signal resultat :
STD_LOGIC_VECTOR(1 downto 0);
begin
architecture arch2 of fa is
begin
Conception de circuits en VHDL
resultat <= (0 & a) +
Simulation en VHDL
Synth se de VHDL
(0 & b) + (0 & cin);
s <= resultat(0);
cout <= resultat(1);
s <= a xor b xor cin;
cout <= (a and b) or
((a xor b) and cin);
end arch1;
end arch2;
(& est lop rateur de concat nation de vecteurs de bit)
- p. 17/44
Corps de larchitecture
Rappel d l ctronique
Le langage VHDL
l Intro
l historique
l Syntaxe
l langage
l librairies
l entit
l Architecture
l Signal et Variable
l Types
l Operateurs
l Process
Exemples VHDL
Conception de circuits en VHDL
Simulation en VHDL
Synth se de VHDL
n Dans le corps de
larchitecture se trouvent les 3
types dinstructions
concurrentes de VHDL
n Elles peuvent tre crites
dans nimporte quel ordre :
u Des processus avec le mot
cl process
u Des instructions
concurrentes daffectation
de signaux (<=).
u Des instanciation de
composant avec le mot cl
port map
begin
-- process:
p1 : process(SI, Cin)
begin
S <= SI xor Cin;
end process;
-- Aff. Signal
SI <= A xor B;
-- Instanciation
inst_MAJ : MAJ port map (
X => A,
Y => B,
Z => Cin,
M => Cout);
end arch3;
- p. 18/44
Signal et Variable
Rappel d l ctronique
n Dans un process, on peut trouver des affectations de
signaux ou de variables.
n Contrairement aux variables, laffectation du signal na pas
un effet imm diat.
n Ainsi, dans un process, apr s cinq instructions A <= A+1;,
le signal A nest pas augment de 5 mais seulement de 1.
n Il faut lire A.futur <= A.pr sent +1; de sorte que
A.pr sent nest jamais modi .
Le langage VHDL
l Intro
l historique
l Syntaxe
l langage
l librairies
l entit
l Architecture
l Signal et Variable
l Types
l Operateurs
l Process
Exemples VHDL
Conception de circuits en VHDL
Simulation en VHDL
Synth se de VHDL
- p. 19/44
Types
Rappel d l ctronique
n Il existe des types:
Le langage VHDL
l Intro
l historique
l Syntaxe
l langage
l librairies
l entit
l Architecture
l Signal et Variable
l Types
l Operateurs
l Process
Exemples VHDL
Conception de circuits en VHDL
Simulation en VHDL
Synth se de VHDL
u scalaire (entier, r el, physique, num r ),
u composite (tableaux, enregistrement),
u chier et pointeur.
n Les types poss de des attibut de type, Ils sont repr sent s
de cette fa on < OBJET >2< AT T RIBU T >
n Par exemple:
u type COULEUR is (BLEU, ROUGE, VERT);
u COULEURleft renvoie BLEU
u COULEURright renvoie VERT
u COULEURpos(BLEU) renvoie 0
n Autre exemple:
u type MOT is STD_LOGIC_VECTOR(7 downto 0);
u MOTLEFT renvoie 7;
u MOTLENGTH renvoie 8; MOTRIGHT renvoie 0;
- p. 20/44
Type entier
Rappel d l ctronique
n Types entier:
u Le type entier integer pr d ni dans le paquetage
standard STD permet de d nir des nombres sign s sur
32 bits entre 231 et 231.
u En g n ral, on sp cie le range dun entier pour quil soit
stock sur un nombre de bit ad quat:
signal my_natural is integer range 0 to 256
Le langage VHDL
l Intro
l historique
l Syntaxe
l langage
l librairies
l entit
l Architecture
l Signal et Variable
l Types
l Operateurs
l Process
Exemples VHDL
Conception de circuits en VHDL
Simulation en VHDL
Synth se de VHDL
- p. 21/44
Operateurs
Logiques
Relationnels
Arithm tique
and, or, nand,
nor, xor, not
=, /=, < , <=,
> , <=
*, / , mod,
rem
Divers
**, abs, &
Rappel d l ctronique
Le langage VHDL
l Intro
l historique
l Syntaxe
l langage
l librairies
l entit
l Architecture
l Signal et Variable
l Types
l Operateurs
l Process
Exemples VHDL
Conception de circuits en VHDL
Simulation en VHDL
Synth se de VHDL
(A rem B) a le signe
de A (A mod B) a le
signe de B
** : exponentiation
abs :
valeur ab-
solue & : concat -
nation
- p. 22/44
Process
Rappel d l ctronique
n Les diff rents process dun programme vhdl sex cutent en
Le langage VHDL
l Intro
l historique
l Syntaxe
l langage
l librairies
l entit
l Architecture
l Signal et Variable
l Types
l Operateurs
l Process
Exemples VHDL
Conception de circuits en VHDL
Simulation en VHDL
Synth se de VHDL
parall le les uns des autres.
n Un processus peut avoir des variables locales. Le fonctionnement
du processus est r gi par les r gles suivantes :
u Un processus est une boucle innie , lorsquil arrive la n du
code, il reprend automatiquement au d but
u Un processus doit tre sensible des points darr t, il existe 2
types de points darr ts :
n Le processus est associ une "liste de sensibilit " qui
r veille le processus lors dun changement dun des signaux.
n Le processus a des instructions darr t wait dans sa
description interne.
n Les variables sont internes au processus et sont affect es
imm diatement, contrairement aux signaux qui eux ne sont pas
affect s directement mais en n de processus
n Un processus est s quentiel dans le sens ou les instructions sont
valu es lune apr s lautre dans lordre d criture.
- p. 23/44
Exemple: AND3
Rappel d l ctronique
entity AND_3 is
Le langage VHDL
Exemples VHDL
l AND3
l Full Adder
l Adder4
l Registre
l Double Reg
Conception de circuits en VHDL
Simulation en VHDL
Synth se de VHDL
port (
e1 : in bit;
e2 : in bit;
e3 : in bit;
: out bit
s
);
end entity
architecture ARCH of AND_3 is
begin -- ARCH
s <= e1 and e2 and e3;
end ARCH
- p. 24/44
Exemple: Full Adder
Rappel d l ctronique
Le langage VHDL
Exemples VHDL
l AND3
l Full Adder
l Adder4
l Registre
l Double Reg
Conception de circuits en VHDL
Simulation en VHDL
Synth se de VHDL
library IEEE;
use IEEE.std_logic_1164.all;
use IEEE.numeric_std.all
entity full_add1 is
port (
Publicité
a, b, cin : in std_logic;
s, cout
: out std_logic;
);
end entity;
architecture ARCH of full_add1 is
signal resultat : unsigned (1 downto 0);
begin
result <= (0 & a) + (0 & b) + (0 & c);
s
cout
<= resultat(0);
<= resultat(1);
- p. 25/44
Rappel d l ctronique
Le langage VHDL
Exemples VHDL
l AND3
l Full Adder
l Adder4
l Registre
l Double Reg
Conception de circuits en VHDL
Simulation en VHDL
Synth se de VHDL
Exemple: Additionneur 4 bits
[..librairies ..]
entity adder4 is
port (
a, b : in unigned(3 downto 0);
s
cout : out std_logic
: out unigned(3 downto 0);
);
end entity;
architecture ARCH of adder4 is
signal c : unsigned (2 downto 0);
Component full_add1 is
port (
a, b, cin : in std_logic;
s, cout
: out std_logic;
);
end entity;
[... a suivre]
- p. 26/44
Exemple: Additionneur 4 bits
Rappel d l ctronique
Le langage VHDL
Exemples VHDL
l AND3
l Full Adder
l Adder4
l Registre
l Double Reg
Conception de circuits en VHDL
Simulation en VHDL
Synth se de VHDL
[... suite et fin ...]
architecture ARCH of adder4 is
signal c : unsigned (2 downto 0);
Component full_add1 is
port (
a, b, cin : in std_logic;
s, cout
: out std_logic;
);
end entity;
begin
inst_FA_1 : full_add1 port map(a(0),b(0),0,s(0),c(0));
inst_FA_2 : full_add1 port map(a(1),b(1),c(0),s(1),c(1));
inst_FA_3 : full_add1 port map(a(2),b(2),c(1),s(2),c(2));
inst_FA_2 : full_add1 port map(a(3),b(3),c(2),s(3),c(3));
end ARCH;
- p. 27/44
Exemple: un registre
Rappel d l ctronique
Le langage VHDL
Exemples VHDL
l AND3
l Full Adder
l Adder4
l Registre
l Double Reg
Conception de circuits en VHDL
Simulation en VHDL
Synth se de VHDL
n Un registre avec clock enable.
n Le processus est r veill lors dune transition sur Ck
n Les If internes permettent dexprimer la condition: front
montant de lhorloge avec CE 1.
PROCESS(ck)
BEGIN
IF (ck = 1 AND ckEVENT)
THEN
IF CE=1 THEN Out <= In;
END IF;
END IF;
END PROCESS;
CE
Ck
CIn
COut
- p. 28/44
Exemple: double registre (declaration)
Rappel d l ctronique
Le langage VHDL
Exemples VHDL
l AND3
l Full Adder
l Adder4
l Registre
l Double Reg
Conception de circuits en VHDL
library IEEE;
use IEEE.std_logic_1164.all;
ENTITY DOUBLE_REG IS
port(CIn, Ck, CE: IN STD_LOGIC;
COut: out STD_LOGIC);
END ENTITY DOUBLE_REG;
ARCHITECTURE behavioural OF DOUBLE_REG IS
-- Declaration de signaux du composant
Ck
CE
Simulation en VHDL
BEGIN
Synth se de VHDL
PROCESS(ck)
Variable CTemp: STD_LOGIC;
-- Declaration de signaux
-- ou variables du process
BEGIN
IF (ck = 1 AND ckEVENT)
THEN
IF CE=1 THEN
COut <= CTemp;
CTemp := CIn;
END IF;
END IF;
END PROCESS;
END behavioural;
CIn
Ctemp
COut
Double_reg
- p. 29/44
Exemple: double registre (instanciation)
Rappel d l ctronique
Le langage VHDL
Exemples VHDL
l AND3
l Full Adder
l Adder4
l Registre
l Double Reg
Conception de circuits en VHDL
Simulation en VHDL
Synth se de VHDL
library IEEE;
use IEEE.std_logic_1164.all;
ENTITY QUATRE_REG IS
port(CIn1, Ck, CE: IN STD_LOGIC;
COut1: out STD_LOGIC);
END ENTITY QUATRE_REG;
ARCHITECTURE behavioural OF QUATRE_REG IS
Ck
CE
CIn1
Ctemp
COut1
Double_reg
Double_reg
Quatre_reg
Signal CTemp: STD_LOGIC;
COMPONENT DOUBLE_REG IS
port(CIn, Ck, CE: IN STD_LOGIC;
COut: out STD_LOGIC);
END COMPONENT;
Begin
I0: DOUBLE_REG port map (Cin => Cin1,
Ck => Ck,
CE => CE,
Cout => CTemp);
I1: DOUBLE_REG port map (Cin => CTemp,
Ck => Ck,
CE => CE,
Cout => COut1);
END behavioural;
- p. 30/44
Conception en VHDL
Rappel d l ctronique
Le langage VHDL
Exemples VHDL
Conception de circuits en VHDL
l conception
l methodologie
l Automate
l Synth se de VHDL
Simulation en VHDL
Synth se de VHDL
n Le m canisme du temps symbolique rend extr mement
d licat le d bugage de VHDL
n 95% du temps de d veloppement se fait en simulation.
n On utilise les waveforms qui ne permettent pas de voir les
transitions de granularit .
SystemC.CLK
SystemC.CACHE_1_WORD.DATA
SystemC.CACHE_1_WORD.WRITEOK
SystemC.CLK
SystemC.CACHE_16_WORD.DATA
SystemC.CACHE_16_WORD.WRITEOK
308
310
312
314
316
318
316 318 320
322
324 326 328 330 332 334 336 338
340 342
n VHDL permet norm ment de constructions difciles
comprendre (circuits asynchrones, simulation, synth se,
etc...).
n Aujourdhui il existe des langages plus rapides pour la
simulation (SystemC, etc.), VHDL est donc essentiellement
utilis pour la synth se et la simulation bas niveau.
n Se contraindre fortement lors de l criture de programmes VHDL
- p. 31/44
Contraintes pour l criture de VHDL
Rappel d l ctronique
Le langage VHDL
Exemples VHDL
Conception de circuits en VHDL
l conception
l methodologie
l Automate
l Synth se de VHDL
Simulation en VHDL
Synth se de VHDL
n Penser composant (objet) plut t que fonctionnalit
(proc dure).
n Distinguer les l ments de m morisation (m moire, bancs
de registre) et les composants standards (op rations
arithm tiques, ltres num riques) pour pr voir lutilisation de
biblioth ques.
n D composer les composants sous forme dautomate tats
nis
n On peut alors soit coder directement lautomate en VHDL
soit d composer nouveau cet automate en un contr leur et
un chemin de donn e
n Pour les traitements hautement pipelin s (stream
processing), on utilisera plut t une description des diff rents
tages de pipeline interconnect s.
- p. 32/44
Rappel d l ctronique
Le langage VHDL
Exemples VHDL
Conception de circuits en VHDL
l conception
l methodologie
l Automate
l Synth se de VHDL
Simulation en VHDL
Synth se de VHDL
Notion dautomate
n Un automate est
syst matiquement
d compos en:
n Un tat (ensemble de
registre)
n Trois fonctions:
u Transition: sensible aux
entr e et l tat, met jour
l tat.
u Moore: sensible l tat,
met jour des sorties
u Mealy: sensible aux entr e
et l tat, met jour des
sorties
inputs
transition
mealy
State
moore
outputs
- p. 33/44
Codage dun automate en VHDL (exemple)
Rappel d l ctronique
Le langage VHDL
Exemples VHDL
Conception de circuits en VHDL
l conception
l methodologie
l Automate
l Synth se de VHDL
Simulation en VHDL
Publicité
Synth se de VHDL
n Nutiliser que des signaux
(pas de variables). Que
des types simples
(STD_LOGIC_*), de
pr f rence non resolu.
n D composer le mat riel
en l tat (tous les l ments
m moris s entre deux
cycle dhorloge) et les
autres signaux.
n crire un processus
sensible lhorloge qui
met jour les registres
d tat
n Cest la fonction de
// Gestion du registre d tat avec reset synchrone
PROCESS(clk)
BEGIN
IF rising_edge(clk) THEN
IF reset = 1 THEN
state
state
ELSE
END IF;
END PROCESS;
<= INIT;
<= state_next;
//Fonction de transition
PROCESS (state, input1, input2)
BEGIN
CASE state IS
WHEN IDLE =>
IF
i1 = 1
state_next <= WRITE;
state_next <= IDLE;
ELSE
END IF;
WHEN
READ =>
state_next <= IDLE;
WHEN
OTHER =>
state_next <= IDLE;
transition de lautomate.
END CASE;
- p. 34/44
Codage dun automate en VHDL (suite)
Rappel d l ctronique
Le langage VHDL
Exemples VHDL
Conception de circuits en VHDL
l conception
l methodologie
l Automate
l Synth se de VHDL
Simulation en VHDL
Synth se de VHDL
n Pour la fonction de Moore
de lautomate (cest
similaire pour la fonction
de Mealy): crire un
processus sensible l tat
qui calcule les sorties.
n La mani re la plus propre:
D crire le data-path
comme des affectations
entre signaux en dehors
des processus (inf rence
syst matique du mat riel
pour le calcul sur les
donn es)
D crire laffectation
des sorties comme une
simple affectation entre
signaux.
[...]
//Equation concurrente (data-flow)
S1 <= a + b * C;
S2 <= a - b;
// Fonction de Moore
PROCESS (STATE)
BEGIN
CASE state IS
WHEN IDLE =>
out1 <= S1;
out2 <= S2;
WHEN READ =>
out1 <= S1;
out2 <= S1;
WHEN OTHER =>
out1 <= S2;
out2 <= S2;
END CASE;
END;
- p. 35/44
Synth se de VHDL
Rappel d l ctronique
Le langage VHDL
Exemples VHDL
Conception de circuits en VHDL
l conception
l methodologie
l Automate
l Synth se de VHDL
Simulation en VHDL
Synth se de VHDL
n La plaie: linf rence accidentelle de registres.
n d s quun signal nest pas affect dans tous les chemin de
contr le.
PROCESS(S1,state)
BEGIN
IF state = INIT THEN
Out1 <= S1;
END IF;
END;
PROCESS(S1,state)
BEGIN
IF state = INIT THEN
Out1 <= S1;
ELSE
Out1 <= 0;
END IF;
END;
Compter les registres
n Boucle contr le constant accept e (d roul es la
compilation).
n Clause Wait accept e uniquement pour lhorloge.
n En principe, il existe un standard IEEE pour le VHDL
synth tisable. En pratique, chaque outil synthetise des
sous-ensembles l g rement diff rents.
n Principaux outils de synth se pour les Asics: Mentor
Graphics, Synopsys, Cadence.
- p. 36/44
niveaux description VHDL
Rappel d l ctronique
Le langage VHDL
Exemples VHDL
n Description structurelle.
u Proche des sch matiques traditionnelles des concepteurs
u Blocs inter-connect s.
Conception de circuits en VHDL
n Description comportementale.
Simulation en VHDL
l niveaux description VHDL
l Principe de la simulation
v nementielle
l Le temps symbolique
l Signal et variable
l Le temps physique
l Principe du moteur de
simulation
Synth se de VHDL
u Proche de la programmation traditionnelle
u ex cution s quentielle dinstructions
n Cette classication ne correspond pas exactement notre
d composition intuitive: description algorithmique/description
architecturale
- p. 37/44
VHDL de niveau transfert de registre
Rappel d l ctronique
Le langage VHDL
Exemples VHDL
Conception de circuits en VHDL
Simulation en VHDL
l niveaux description VHDL
l Principe de la simulation
v nementielle
l Le temps symbolique
l Signal et variable
l Le temps physique
l Principe du moteur de
simulation
Synth se de VHDL
n Une description de niveau transfert de registre est une description
de la structure du circuit, mais qui abstrait les op rateurs.
n On peut parler de registre (sans dire exactement quel type),
dadditionneur, etc.
n Nest pas forc ment du VHDL structurel.
n Ce sous ensemble de VHDL doit pouvoir tre synth tis par les
outils commerciaux (Synopsis, Cadence, etc.) selon une
s mantique d nie par le standard.
Cest une plate forme solide pour la synth se haut niveau.
- p. 38/44
Principe de la simulation v nementielle
Rappel d l ctronique
Le langage VHDL
Exemples VHDL
n Le syst me est repr sent comme un ensemble de
processus (process) qui sex cutent en parall le
n On veut simuler des processus parall les sur une machine
Conception de circuits en VHDL
s quentielle.
Simulation en VHDL
l niveaux description VHDL
l Principe de la simulation
v nementielle
l Le temps symbolique
l Signal et variable
l Le temps physique
l Principe du moteur de
simulation
Synth se de VHDL
n Nouvel objet pour communiquer entre programmes
s quentiels: le signal
n Moteur de simulation:
u Le simulateur ex cute tous les processus dans un ordre
quelconque.
u Lorsquun signal partag par plusieurs processus est
modi , on enregistre sa nouvelle valeur, le signal
conservant temporairement sa valeur.
u Lorsque tous les processus ont t ex cut s, on modie
les valeurs des signaux partag s
u on incr ment le temps symbolique (+1) et on
recommence jusqu convergence
- p. 39/44
Le temps symbolique
Rappel d l ctronique
Le langage VHDL
Exemples VHDL
n Le temps symbolique permet dordonner des v nements
simultan s partir de leurs d pendances.
n Une affectation un signal: Sig1 <= Sig2 est instantan e
Conception de circuits en VHDL
mais la valeur de Sig1 est modi e apr s 1
n Un " v nement" poss de donc une date compl te
compos e dune date physique (ex: 1h 04m 17s) et dune
date symbolique (ex: 4)
Simulation en VHDL
l niveaux description VHDL
l Principe de la simulation
v nementielle
l Le temps symbolique
l Signal et variable
l Le temps physique
l Principe du moteur de
simulation
Synth se de VHDL
- p. 40/44
Signal et variable
Rappel d l ctronique
Le langage VHDL
Exemples VHDL
n Du fait de sa s mantique sp cique, le signal se comporte
tr s diff remment dune variable
n On peut en avoir une vision intuitive comme representant la
Conception de circuits en VHDL
"valeur dun l physique au cours du temps"
Simulation en VHDL
l niveaux description VHDL
l Principe de la simulation
v nementielle
l Le temps symbolique
l Signal et variable
l Le temps physique
l Principe du moteur de
simulation
Synth se de VHDL
n Pour quun signal conserve une valeur dun cycle un autre
il faut mettre en place explicitement un m canisme de
m morisation qui sera interpr t comme un registre.
n Pour faciliter la simulation on peut aussi introduire des
variables dans les processus.
n Les variables sont locales aux processus, leur affectation est
instantan e, elles conservent leur valeur au cours du temps
comme dans un langage de programmation
Sig1 <= Sig2;
Sig3 <= 3;
V ar1 := V ar2;
V ar3 := 3;
- p. 41/44
Le temps physique
Rappel d l ctronique
Le langage VHDL
Exemples VHDL
Conception de circuits en VHDL
Simulation en VHDL
l niveaux description VHDL
l Principe de la simulation
v nementielle
l Le temps symbolique
l Signal et variable
l Le temps physique
l Principe du moteur de
simulation
Synth se de VHDL
n Le temps physique permet de
simuler l coulement du temps
r el
n Il ne peut avancer quavec les
instruction wait et after
(points de synchronisation, point
darr t):
wait 10 ns
Sig...