Académique Documents
Professionnel Documents
Culture Documents
A. EL KARI
Le langage VHDL
Historique et standardisation
L’architecture
Introduction
Tout système numérique peut se décrire par des équations booléennes qui seront
transformées physiquement par des portes et des bascules.
Le langage VHDL
L’entité
(optionnel)
Entity REG8BIT is
Generic paramètres
(LONG = 8;
I0 I1 I2 I3 I4 I5 I6 I7
Fmax = 50MHz);
clk Registre 8bits
Fmax = 50MHz Port connexions
O0 O1 O2 O3 O4 O5 O6 O7 (clk : in bit;
I : in bit_vector[LONG-1 downto 0];
O : out bit_vector[LONG-1 downto 0]);
End REG8BIT;
18/03/23 Master GE_FSTG 14
Les spécifications des ports
Un mode,
Un type.
Exemples :
DATA : in bit_vector (3 downto 0);
RESET : in std_logic;
in out
inout buffer
X : inconnue,
U : non initialisée,
- : quelconque,
Z : haute impédance
m le LSB.
Bit_vector (m to n) : (m < n) Dans ce cas m est le MSB et n le
LSB
Exemple : Exemple :
BUS1 : in bit_vector (3 downto 0) BUS1 : in bit_vector (0 to 3)
3210 0123
MSB LSB MSB LSB
1011 1101
18/03/23 Ici Bus1 = 11 Master GE_FSTG Ici Bus1 = 13 18
Exemples
Trouver la syntaxe des deux entités suivantes :
BUFFER8 BUFFER16
G G
En En
8 8 16 16
In1 In2 In1 In2
Entity TEST is Y
Generic (
retard : time := 4); t
… X t0
End TEST;
…
X <= Y after retard; t
t0- 4
L’architecture
E(0) MUX41
E(1) S
E(2)
E(3)
Entity MUX41 is port (
SEL(0) E : in std_logic_vector (3 downto 0);
SEL(1)
SEL : in std_logic_ vector (1 downto 0);
S : out std_logic);
SEL(1) SEL(0) S End MUX41;
0 0 E(0)
0 1 E(1)
1 0 E(2)
1 1 E(3)
Ils sont au nombre de 7 : and, nand, or, nor, xor, xnor et not.
Les opérandes sont :
Booléens,
Bit ou bit_vector,
Std_logic ou std_logic_vector
A
B
C S S <= (A and B) or (C and D);
D
Begin
Process (H,RST)
Begin
IF RST =‘1’ THEN Q<=0
ELSE if (H'event and H = '1') then
if Q = 9 then Q <= 0;
else Q <= Q + 1 ;
end if;
end if;
End if;
end process;
end a_CPT10;
Begin
Etiq1 : F1 port map (E0,E1,S1);
Etiq2 : F2 port map (S1,E2,S);
End STRUCT;
18/03/23 Master GE_FSTG 39
Exemple de description structurelle
RAZ
DIZ CENT
CPT10 CPT10
4 4
CLK H Q H Q Description
synchrone
RST Carry RST Carry
EN EN
‘0’
RAZ
18/03/23 DIZMaster GE_FSTG CENT 40
Exercice
Les objets sont les éléments de base du langage VHDL. Ils sont
au nombre de 3 :
Les signaux : Ils permettent de modéliser les informations
transitant sur des fils ou de manière générale transitant entre
deux composants (l’instruction d’affectation est <=).
Les constantes : Elles permettent d’affecter une valeur fixe à
un objet (l’instruction d’affectation est :=).
Les variables : Elles sont utilisées comme objet intermédiaire
d’indexation par exemple et se situent dans les process
(l’instruction d’affectation est :=).
Un type scalaire est dit énuméré si toutes les valeurs qu’il peut
prendre sont listées dans sa déclaration.
Les types integer et real font partis des types non énumérés.
Néanmoins l’utilisateur peut les borner par l’instruction range qui
définit une limite basse et haute de manière à ne pas bloquer de
la ressource inutilement.
Exemple1 : Exemple2 :
Type ARTICLE1 is record Type ARTICLE2 is record
M,C,D,U : integer range 0 to 9; ADDR : integer range 0 to 3;
End record; DONNEE : std_logic_vector (3 downto 0);
End record;
Variable ANNEE : ARTICLE1
ANNEE := (2,0,0,6); signal SIG1 : ARTICLE2;
ANNEE.U := 7; SIG1 <= (3, »0011 »);
On accède à un SIG1.ADDR <= 2;
élément de l’article
par son champ
18/03/23 Master GE_FSTG 47
Le type composite ARRAY(tableau)
0 1 2 3
0à9 0à9 0à9 0à9
ANNEE
Variable ANNEE_EN_COURS : ANNEE;
On accède à un
ANNEE_EN_COURS := (2,0,0,6); élément de l’article
par son indice
ANNEE_EN_COURS(3):=6;
0 1 2 3
0 1 9 6 8
DATE 1 1 9 7 1
2 1 9 9 4
Un sous type d’un type donné n’est que ce type avec un intervalle de variation
limité.
Exemples :
Subtype natural is integer range 0 to integer’HIGH
Subtype positive is integer range 1 to integer’HIGH
réponse
18/03/23 Master GE_FSTG 55
Les bases du langage
composant,
Instancier ce dernier en spécifiant les connexions entre ses
End a_test;
18/03/23 Master GE_FSTG 63
Le langage VHDL
X X X 1 Remise à 0 générale
Arrêt de l’alarme
X X Bascule 0 Déclenchement du timer
Arrêt du timer
1 X 0 0 Réglage du timer par
incrémentation des
secondes
X 1 0 0 Réglage du timer par
décrémentation des
secondes
18/03/23 Master GE_FSTG 66
Le choix de la logique de commande
Base de
temps
BCD_7SEG
D_CPT_NS
H Q A AFF M_INT
D_CPT
‘0’ EN
RAZ Rt
H Q A AFF S_DIZ
D_CPT
EN
RAZ Rt
H Q A AFF S_UNIT
D_CPT
EN
RAZ Rt
DIV
H
CLKin H1s
H5s
H10s
18/03/23 Master GE_FSTG 69
Le langage VHDL
Composants personnalisables
Composants spécifiques à l’application
La logique semi custom : On utilise des circuits ASIC (Application Specific Integred Circuit )
On dessine le circuit à partir de cellules connues et onvoie le masque au fondeur
Avantage : rapidité
Inconvénients : coût élevé, figé
98 99 01 02 04 06
C IR C U IT S L O G IQ U E S
S ta n d a rd L o g ic A S IC
S P LD CPLD FPGA
85-95 : le « co-processing »
Contrôleur de périphériques
Telecoms
Traitement du signal
Fiabilité accrue
Grande sécurité
Protection en lecture
PLD
Intact «Programmé»
REBOUCLAGE
BROCHES
ENTREE-
SORTIES
MATRICE ET MATRICE OU
programmable Pré-câblée
BLOC COMBINATOIRE
PROGRAMMABLE
Réseau ET Réseau OU
ZOOM Complet
18/03/23 Master GE_FSTG 90
Dénomination
NNN EE V SS
Nom générique
Nbr maximal des entrées
Type de sortie
Nbr maximal des sorties
Macro-cellule
logique
Bloc
logique
Bloc
d’interconnexions.
Morgan Kaufmann
Addison Wesley
Dunod
Eyrolle
Sites constructeur :
www.cypress.com
www.altera.com
www.xilinx.com
www.atmel.com