AEV2 Print
AEV2 Print
1
12/10/2012
• Pièges
– Exécution concurrente langage standard et international
– « Optimisations » permet la description sous forme texte d’un système
– Synthèse (guidage, asynchronisme…) numérique
– Problèmes hardware (Routage, clock skew…) pour implantation dans un FPGA
• Remèdes pour implantation dans un ASIC (circuit intégré spécifique)
– Simulation pour simulation avec niveau d’abstraction plus ou moins poussé (niveau
– Rapports de synthèse système ou niveau porte logique)
– Visualisation à l’oscilloscope, analyseur logique
langage indépendant
de l’environnement utilisé (Quartus, ISE...)
de la cible finale (EPLD Altera, FPGA Xilinx, ASIC, etc...)
a
2. synthèse logique x
b
placement / routage
x
Présentation
intérêt du VHDL Very High Speed Integrated Circuit Hardware Description
flot de conception Language
niveaux de description
différence avec un langage de programmation Lancé dans les années 80
Syntaxe Objectifs:
structure d’une description VHDL
répondre à une complexité croissante des systèmes numériques
description d’un système combinatoire
rester indépendant de la technologie utilisée
description d’un système séquentiel (bascules, compteurs, machines (analogie: un programme est écrit en C sans se soucier de l’ordinateur sur
d’état) lequel tournera l’application...)
2
12/10/2012
Rappel
le VHDL décrit la structure matérielle (figée) d’un système numérique 1ère étape: définir un symbole pour le composant à décrire
3
12/10/2012
remarques:
1. le séparateur entre les noms est , arch1: description structurelle (proche du schéma électrique)
2. après -- tout est pris comme commentaire
arch2: description comportementale (le schéma ne se déduit pas
jusqu’à la fin de la ligne
directement)
ARCHITECTURE Opérateurs
4
12/10/2012
sans PROCESS
ENTITY composant IS s : OUT BIT);
in1 s1 .....
PORT ( in1, in2 : IN BIT ; END mux4_1;
in2 composant s2 s1 <= e1 AND e2;
out1, out2 : OUT BIT ); ..... ARCHITECTURE archi1 OF mux4_1 IS
END composant;
avec PROCESS
s2 <= e1 OR e2; BEGIN
..... PROCESS(c)
ARCHITECTURE demo OF composant IS END ...; 1 fonction logique BEGIN
BEGIN IF (c = 0) THEN s <= e0;
s1 <= in1 WHEN (in2=‘1’) ELSE ‘0’; avec ELSE ELSIF (c = 1) THEN s <= e1;
s2 <= in1 WHEN (in2=‘1’) ; sans ELSE 1 autre fonction logique ELSIF (c = 2) THEN s <= e2;
END demo; ELSIF (c = 3) THEN s <= e3;
END IF;
END PROCESS;
END archi1;
logique synthétisée:
ENTITY mux4_1 IS
PORT (e3, e2, e1, e0 : IN BIT; même exemple que précédemment
out1 <= in1 WHEN (in2=1) ELSE ‘0’; out2 <= in1 WHEN (in2=1) ;
c : IN INTEGER RANGE 0 TO 3;
s : OUT BIT);
in1 in1 D Q s2 e0
s1 END mux4_1;
in2 e1
in2 enable ARCHITECTURE archi2 OF mux4_1 IS e2 MUX s
BEGIN e3
latch PROCESS(c)
BEGIN
CASE c IS c1 c0
WHEN 0 => s <= e0;
WHEN 1 => s <= e1;
liste des signaux dont un changement
WHEN 2 => s <= e2;
retour à 0 d’état influe sur les signaux calculés
WHEN 3 => s <= e3;
dans le PROCESS (liste de sensibilité)
END CASE;
END PROCESS;
effet mémoire END archi2;
SIGNAL : nœud ou bus interne permettant un calcul intermédiaire remarques concernant les tests (avec IF ... THEN ou CASE):
il faut lister tous les cas possibles, sinon une fonction de mémorisation est créée
il est possible d’utiliser la syntaxe WHEN OTHERS => ...
5
12/10/2012
exercices: a a
x3 b sert à effectuer une description itérative (simplifie l’écriture)
x2 c f b
1. décrire un décodeur 7 segments DECODEUR
d g
x1
7 SEGMENTS ne correspond à rien de physique
e
x0 f e c
g
d
exemple n°1:
ENTITY compte_1 IS remarque générale: Après compilation d’un système décrit en VHDL, on ne
PORT (e : IN BIT_VECTOR(2 DOWNTO 0); connaît généralement pas le schéma électrique final et les
s : OUT INTEGER RANGE 0 TO 3 );
fonctions physiquement utilisées.
END compte_1;
ARCHITECTURE combinatoire OF compte_1 IS
BEGIN
Ici, l’utilisation de la
PROCESS(e) description sous forme graphique description en VHDL
VARIABLE nombre_1 : INTEGER; variable revient à écrire
BEGIN plus simplement la table schéma physique maîtrisé souple pour des systèmes complexes
nombre_1 := 0; de vérité du système
IF e(2) = ‘1’ THEN nombre1 := nombre_1 +1; proche de la structure matérielle description indépendante de la technologie
(travail effectué par le (réutilisable en cas de changement)
END IF;
compilateur). vite fastidieux pour des systèmes
IF e(1) = ‘1’ THEN nombre1 := nombre_1 +1;
complexes schéma physique final inconnu (dépend
END IF;
du compilateur)
IF e(0) = ‘1’ THEN nombre1 := nombre_1 +1; compatibilité non garantie entre différents
END IF; éditeurs graphiques
s <= nombre_1;
END PROCESS;
END combinatoire ;
Syntaxe du langage
33
6
12/10/2012
description
graphique
(portes XOR
et AND):
description VHDL:
Les Testbenchs
Pour générer des stimulis et valider le design vhdl.
Possibilité ( nécessité) d'utiliser des ressources VHDL non synthétisable, description
uniquement fonctionnelle
label : wait on liste_signal until condition for durée; -- dans des process
wait on : attente sur évènements
wait until : attente de conditions (s’il a eu un événement sinon la condition
n’est pas testée)
wait for : attente pour un certains temps
-- méthode simple mais lourde
constant Period: TIME := 25 NS;
...
Stimulus: process
begin
A <= "0000";
B <= "0000";
wait for Period;
A <= "1111";
wait for Period;
B <= "1111";
wait for Period;
wait;
end process;