Académique Documents
Professionnel Documents
Culture Documents
CONCEPTION
MICROÉLECTRONIQUE
CHAPITRE 2 – INITIATION VHDL
MOHAMED MASMOUDI
2ÈME ANNÉE - SISY
EPT - ECOLE POLYTECHNIQUE DE TUNISIE
MOHAMED.MASMOUDI@ACI.COM.TN
Modélisation concurrente
Modélisation séquentielle
Exemple de synthèse
Le VHDL
3
Révision du standard
Publication du standard
IEEE 1076
1986
Transfert des droits
1983 à l’IEEE
VHDL permet de coder une fonction d’une manière structurelle (comme un schéma) et/ou
comportementale (fonctionnelle)
Codage comportemental
S <= not ((A and B) or (C and D));
plus proche de l’algorithme
portabilité, maintenabilité, versatilité
Codage structurel A
B
création d’une hiérarchie S
C
emploi de macrofonctions
D
format de la liste d’équipotentielle (netlist)
Niveau d’abstraction
7
registres bibliothèque
Synthèse
Niveau 1 Niveau 2 Niveau RTL netlist
logique
Niveau d’abstraction
8
Niveau d’abstraction
9
Écriture du code VHDL par bloc Écriture des « Test Bench » en VHDL
Implémentation matérielle
Apport
13
a a
d d
b b
Circuit
Boîte noire
f f
c c
Entity
15
PORT(
<port name> : <mode> <type> ;
.....
<port name> : <mode> <type>
);
Les modes:
Exemple :
SIGNAL a: BIT_VECTOR(0 TO 3); - - e.g... Sens ascendant
SIGNAL b: BIT_VECTOR(3 DOWNTO 0); - - e.g... Sens descendant
a <= "0111";
b <= "0101";
Ce qui signifie :
a(0) = '0' b(0) = '1'
a(1) = '1' b(1) = '0'
a(2) = '1' b(2) = '1'
a(3) = '1' b(3) = '0'
Types des ports (IEEE1164)
18
library IEEE; -- librairie
use IEEE.std_logic_1164.all;-- package
Valeurs des signaux
std_logic et std_logic_vector ENTITY exple1 IS PORT (
Valeur Interprétation
….
0 0 - Forcé
);
1 1 - Forcé
END exple1;
U Uninitialized (non-initialisé)
X Inconnu - Forcé
ARCHITECTURE archlogic OF exle1 IS
Z Haute impédance
BEGIN
W Inconnu - Faible
L 0 - Faible
…..
H 1 - Faible
- Don’t Care
END archlogic;
Déclarations d’une entité
Circuit 1
19
rst
q[N:0]
d[N:0]
co
clk
ENTITY circuit1 IS
GENERIC (N: INTEGER:=7);
PORT (
clk, rst: IN BIT;
d: IN BIT_VECTOR(7 DOWNTO 0);
q: OUT BIT_VECTOR(7 DOWNTO 0);
co: OUT BIT);
M. MASMOUDI Cours VHDL
END circuit1;
L’architecture
20
Objectif:
Description ”du câblage interne”
Modes de description:
Structurelle
Instanciations : placement de composants logiques et leur interconnexion
2 unités de compilation :
déclaration de paquetage
corps de paquetage
Le contenu de la déclaration de paquetage est
“visible” depuis une autre unité de compilation si elle
en a déclaré l’utilisation
Le contenu du corps de paquetage est “invisible” des
autres unités de compilation
Sémantique
23
Concurrentes
Expressions à l’extérieur d’un PROCESS
Les PROCESS sont évalués de manière concurrente
Bus d ’adresses
Bus de données Toutes les unités
sont concurrentes
Bus de contrôle et de commande entre elles
CPU
(Séquentiel) Interfaces
Mémoire d’E/S
(Séquentiel) (Séquentiel)
Modélisation concurrente
Modélisation séquentielle
Exemple de synthèse
Codage des composants
25 in1
a cout
in2 Half adder
b sum carry
a cout
cin Half adder result
b sum
Modélisation concurrente
Modélisation séquentielle
Forme générale :
etiquette : for variable_de_boucle in val_debut to val_fin generate
{instruction concurrente};
end generate etiquette;
Il est possible d’imbriquer plusieurs instructions generate, chacune possédant
son étiquette et sa variable de boucle propres
Forme conditionnelle :
etiquette : for variable_de_boucle in val_debut to val_fin generate
{if instruction then generate
{instruction combinatoire}
end generate; }
end generate etiquette;
Modélisation concurrente
Modélisation séquentielle
Exemple de synthèse
Contraintes pour l’écriture de VHDL
38
Un automate est
systématiquement décomposé
en:
Un état (ensemble de registre)
Quatre fonctions:
Transition: sensible aux entrée et
à l’état, met à jour l’état.
Validation des états: Cas des
machine clocké.
Moore: sensible à l’état, met à
jour des sorties
Mealy: sensible aux entrée et à
l’état, met à jour des sorties
Modélisation concurrente
Modélisation séquentielle
Exemple de synthèse
La théorie
49
DAC !
RGB Color
000 black
001 blue
010 green
011 cyan
100 red
101 magenta
110 yellow
111 white
horizontal sync
vertical sync
Cours VHDL M. MASMOUDI
Synchronisation
53
SW X,Y
VGA_SYNC
Pixel R, G, B
VGA_BLANK
generation
VGA_CLK
VGA VGA_VS
CLK25
VGA_HS
CLK50 CLK
CLOCK_50 DIV
reset
VGA_R,
VGA_G, VGA_B
entity vga_DE2 is
port(
CLOCK_50 :IN std_logic; -- 50 MHz
reset:IN std_logic; -- reset key
SW: IN std_logic_vector (9 downto 0);-- switches
VGA_CLK:OUT std_logic; --
VGA_HS: OUT std_logic; -- VGA H_SYNC
VGA_VS:OUT std_logic; -- VGA V_SYNC
VGA_BLANK:OUT std_logic; -- VGA BLANK
VGA_SYNC:OUT std_logic; -- VGA SYNC
VGA_R: OUT std_logic_vector(9 downto 0);-- VGA Red[9:0]
VGA_G: OUT std_logic_vector(9 downto 0);-- VGA Green[9:0]
VGA_B: OUT std_logic_vector(9 downto 0) -- VGA Blue[9:0]
);
end entity;