Académique Documents
Professionnel Documents
Culture Documents
Remacle Matthieu
Introduction
Présentation du cours
Déclarations parallèles
Déclarations séquentielles
Logique séquentielle
Base
Machines d’état
Optimisation du code
Optimisation sur la vitesse
Optimisation de la puissance
Notions avancées
Domaines d’horloge
Pièges à éviter
Projet
Bibliographie
ELEN0037
Contact Remacle Matthieu
Introduction
Présentation du cours
Déclarations séquentielles
Bureau : 1.85a
Logique séquentielle
Machines d’état
Optimisation du code
Optimisation sur la vitesse
Optimisation de la puissance
Notions avancées
Domaines d’horloge
Pièges à éviter
Projet
Bibliographie
ELEN0037
Outline I Remacle Matthieu
Introduction
Introduction
Présentation du cours
Présentation du cours
Présentation des concepts
Présentation des concepts Présentation des outils
Machines d’état
Logique séquentielle
Optimisation du code
Base Optimisation sur la vitesse
Machines d’état Optimisation sur l’aire
Optimisation de la puissance
Optimisation du code
Notions avancées
Optimisation sur la vitesse
Domaines d’horloge
Optimisation sur l’aire
Pièges à éviter
Optimisation de la puissance
Projet
Notions avancées Bibliographie
ELEN0037
Outline II Remacle Matthieu
Syntaxe
Syntaxe de base
Projet Déclarations parallèles
Déclarations séquentielles
Logique séquentielle
Base
Machines d’état
Optimisation du code
Optimisation sur la vitesse
Bibliographie Optimisation sur l’aire
Optimisation de la puissance
Notions avancées
Domaines d’horloge
Pièges à éviter
Projet
Bibliographie
ELEN0037
Remacle Matthieu
Introduction
Présentation du cours
Syntaxe
Syntaxe de base
Introduction Déclarations parallèles
Déclarations séquentielles
Logique séquentielle
Base
Machines d’état
Optimisation du code
Optimisation sur la vitesse
Optimisation de la puissance
Notions avancées
Domaines d’horloge
Pièges à éviter
Projet
Bibliographie
ELEN0037
Objectif et organisation du cours Remacle Matthieu
Introduction
Présentation du cours
Logique séquentielle
Base
2 répétitions :
Machines d’état
Optimisation de la puissance
Notions avancées
Domaines d’horloge
Pièges à éviter
Projet
Bibliographie
ELEN0037
Références Remacle Matthieu
Introduction
Présentation du cours
Syntaxe
Syntaxe de base
Déclarations parallèles
Déclarations séquentielles
Logique séquentielle
Base
Machines d’état
Optimisation du code
Optimisation sur la vitesse
Optimisation de la puissance
Notions avancées
Domaines d’horloge
Pièges à éviter
Projet
Bibliographie
ELEN0037
La logique programmable Remacle Matthieu
Introduction
Présentation du cours
Syntaxe
I Différent d’un processeur, Syntaxe de base
Déclarations séquentielles
I Peut être reprogrammer un grand nombre de fois pour représenter des
Logique séquentielle
circuits différents. Base
Machines d’état
Optimisation du code
On retrouve : Optimisation sur la vitesse
Optimisation de la puissance
I CPLD
Notions avancées
I FPGA Domaines d’horloge
I Pièges à éviter
Dérivés...
Projet
Bibliographie
ELEN0037
La logique programmable Remacle Matthieu
PAL
Introduction
Présentation du cours
Les puces les plus anciennes et les plus simples, en voie d’extinction. Syntaxe
I Syntaxe de base
Réseau de portes assemblées sous la forme d’une grille
Déclarations parallèles
I Ensemble de flip-flop Déclarations séquentielles
Optimisation de la puissance
Notions avancées
Domaines d’horloge
Pièges à éviter
Projet
Bibliographie
ELEN0037
La logique programmable Remacle Matthieu
CPLD
Introduction
Présentation du cours
Logique séquentielle
I Rapides
Base
Optimisation de la puissance
Notions avancées
Domaines d’horloge
Pièges à éviter
Projet
Bibliographie
ELEN0037
La logique programmable Remacle Matthieu
CPLD
Introduction
Présentation du cours
Vue globale de l’architecture
Présentation des concepts
Déclarations parallèles
Déclarations séquentielles
Logic Logic Logic Logic Array
IOE Logique séquentielle
Element Element Element Block (LAB)
Base
Interconnect Machines d’état
Optimisation de la puissance
Pièges à éviter
Projet
Interconnect
Bibliographie
ELEN0037
La logique programmable Remacle Matthieu
CPLD
Introduction
Présentation du cours
Syntaxe
Syntaxe de base
Pièges à éviter
Projet
Bibliographie
ELEN0037
La logique programmable Remacle Matthieu
CPLD
Introduction
Présentation du cours
Register Syntaxe
chain connection
Syntaxe de base
Pièges à éviter
Projet
Bibliographie
ELEN0037
La logique programmable Remacle Matthieu
FPGA
Introduction
Présentation du cours
Logique séquentielle
Inconvénient
Base
I Plus lente, Machines d’état
Optimisation de la puissance
Notions avancées
Domaines d’horloge
Pièges à éviter
Projet
Bibliographie
ELEN0037
Utilité ? Remacle Matthieu
Introduction
Présentation du cours
Déclarations parallèles
FPGA : I Simulation de processeur, Déclarations séquentielles
I Tâche massivement parallèle (filtrage, encodage vidéo,
Logique séquentielle
etc...) Base
I Co-processeur, Machines d’état
Optimisation de la puissance
Notions avancées
Domaines d’horloge
Pièges à éviter
Projet
Bibliographie
ELEN0037
Le VHDL Remacle Matthieu
Introduction
Présentation du cours
VHDL est un langage de description de matériel destiné à représenter le Les bases du VHDL
comportement ainsi que l’architecture d’un système électronique numérique. Son Exemples introductifs
Déclarations parallèles
Language de programmation : au même titre que le C, Java, PHP, etc... Déclarations séquentielles
matériel.
Optimisation du code
Optimisation sur la vitesse
Projet
Bibliographie
ELEN0037
Remacle Matthieu
Déclarations parallèles
les autres,
Déclarations séquentielles
I le code implémenté va être conçus grâce à de la logique combinatoire, et/ou,
Logique séquentielle
de la logique séquentielle. Base
Machines d’état
Une description d’un gros circuit combinatoire pourra prendre plusieurs Optimisation sur la vitesse
Pièges à éviter
Projet
Bibliographie
ELEN0037
Alternatives Remacle Matthieu
Un autre language : le Verilog
Introduction
Présentation du cours
I Syntaxe différente (Vérilog plus proche du C, l’autre de l’ADA) Une différence fondamentale
Syntaxe
I Difficulté différente
Syntaxe de base
I Même but et résultat Déclarations parallèles
Déclarations séquentielles
En Europe, on utilise plutôt le VHDL, tandis qu’outre atlantique, c’est le Verilog.
Logique séquentielle
Base
Machines d’état
Optimisation de la puissance
Notions avancées
Domaines d’horloge
Pièges à éviter
Projet
Bibliographie
ELEN0037
Alternatives Remacle Matthieu
Une autre philosophie : le schématique
Introduction
Présentation du cours
Syntaxe
Syntaxe de base
En revanche, il y a plusieurs problèmes conséquents :
Déclarations parallèles
I Pas interopérable, Déclarations séquentielles
Optimisation de la puissance
Remarque
Notions avancées
Il est toutefois possible de mixer le VHDL avec le schématic, ce qui peut dans Domaines d’horloge
Pièges à éviter
certain cas être pertinent.
Projet
Bibliographie
ELEN0037
Outils Remacle Matthieu
Introduction
Présentation du cours
Déclarations parallèles
Déclarations séquentielles
Beaucoup de logiciel permettent de gérer le workflow de A à Z :
Logique séquentielle
I Xillinx ISE Base
Optimisation du code
I Lattice ISP Lever
Optimisation sur la vitesse
I Altium Designer Optimisation sur l’aire
Optimisation de la puissance
I etc...
Notions avancées
Domaines d’horloge
Pièges à éviter
Projet
Bibliographie
ELEN0037
Remacle Matthieu
Introduction
Présentation du cours
Déclarations séquentielles
Machines d’état
Optimisation du code
Optimisation sur la vitesse
Optimisation de la puissance
Notions avancées
Domaines d’horloge
Pièges à éviter
Projet
Bibliographie
ELEN0037
Entité Remacle Matthieu
Déclaration
Introduction
Présentation du cours
Logique séquentielle
Base
Optimisation du code
I Déclaration d’une entité reg4
Optimisation sur la vitesse
I Déclaration des ports de cette entité Optimisation sur l’aire
Optimisation de la puissance
I Déclaration du type des ports
Notions avancées
Domaines d’horloge
Entité Pièges à éviter
Bibliographie
ELEN0037
Entité Remacle Matthieu
Particularité
Introduction
Présentation du cours
Déclarations parallèles
in : un port d’entrée,
Déclarations séquentielles
out : un port de sortie,
Logique séquentielle
inout : un port bidirectionnel,
Base
buffer : un port de sortie mais aussi utilisé en interne,
Machines d’état
I Un programme VHDL comprends toujours une entité et une architecture. Optimisation du code
Optimisation sur la vitesse
Optimisation de la puissance
Notions avancées
Domaines d’horloge
Pièges à éviter
Projet
Bibliographie
ELEN0037
Architecture comportementale Remacle Matthieu
Déclaration
Introduction
1 architecture behav of reg4 is
Présentation du cours
I Affectation d’une variable et
2 begin Présentation des concepts
3 storage : process ( clk ) d’un signal, Présentation des outils
4 variable s0, s1, s2, s3 : std_logic ; I Déclaration d’une Les bases du VHDL
5 begin architecture behav, Exemples introductifs
8 s1 := d1; statement,
Syntaxe de base
Déclarations parallèles
9 s2 := d2;
I Déclaration de variables Déclarations séquentielles
10 s3 := d3;
internes, Logique séquentielle
11 end if ;
Base
I Description du process via
12 q0 <= s0 after 5 ns; Machines d’état
13 q1 <= s1 after 5 ns; une suite de sequential
Optimisation du code
14 q2 <= s2 after 5 ns; statements,
Optimisation sur la vitesse
15 q3 <= s3 after 5 ns; I Utilisation de signal Optimisation sur l’aire
Une architecture comportementale décrit la façon dont le système doit fonctionner. Projet
Bibliographie
ELEN0037
Architecture comportementale Remacle Matthieu
Particularité
Introduction
Présentation du cours
Déclarations parallèles
Liste de sensibilité : permettant d’identifier les signaux qui ont un impact
Déclarations séquentielles
sur le process. Tout changement dans ces signaux
Logique séquentielle
provoque la réévaluation du processus,
Base
Liste d’instructions : qui, à la manière d’un programme C sont exécutées de Machines d’état
manière séquentielles.
Optimisation du code
Optimisation sur la vitesse
Optimisation de la puissance
Notions avancées
Domaines d’horloge
Pièges à éviter
Projet
Bibliographie
ELEN0037
Architecture flot de donnée Remacle Matthieu
Déclaration
Introduction
Présentation du cours
Déclarations parallèles
6 (S0 and S1 and E3);
Déclarations séquentielles
7 end flow;
S0 S1 Logique séquentielle
Base
Machines d’état
I Pas d’utilisation de process,
Optimisation du code
I Description du fonctionnement via des équations booléennes. Optimisation sur la vitesse
Notions avancées
Une architecture flot de donnée décrit le fonctionnement du système par des
Domaines d’horloge
équations, ou des formes conditionnelles.
Pièges à éviter
Projet
Bibliographie
ELEN0037
Architecture structurelle Remacle Matthieu
Déclaration
1 architecture struct of reg4 is bit0 Introduction
d_ff
2 signal int_clk : std_logic ; d0 q q0 Présentation du cours
d
clk Présentation des concepts
3 begin
Présentation des outils
4 bit0 : d_ff bit1
d_ff Les bases du VHDL
5 port map (d0, int_clk , q0); d1 q q1
d Exemples introductifs
clk
6 bit1 : d_ff Une différence fondamentale
Déclarations séquentielles
10 bit3 : d_ff bit3
d_ff
11 port map (d3, int_clk , q3); d3
d q q3 Logique séquentielle
Optimisation de la puissance
I Description d’interconnexion via les port map,
I Notions avancées
Définition de signal,
Domaines d’horloge
Pièges à éviter
Utilité
Projet
Une architecture structurelle décrit les interconnexion entre différents blocs
Bibliographie
ELEN0037
Architecture comportementale Remacle Matthieu
Particularité
Introduction
Présentation du cours
I Syntaxe
Ce type d’architecture instancie des éléments déjà décrit. Une instanciation
Syntaxe de base
est formée comme suit :
Déclarations parallèles
Machines d’état
comment interconnecter les éléments.
Optimisation du code
Optimisation sur la vitesse
Optimisation de la puissance
Notions avancées
Domaines d’horloge
Pièges à éviter
Projet
Bibliographie
ELEN0037
Remacle Matthieu
Introduction
Présentation du cours
Déclarations séquentielles
Logique séquentielle
Une différence fondamentale
Base
Machines d’état
Optimisation du code
Optimisation sur la vitesse
Optimisation de la puissance
Notions avancées
Domaines d’horloge
Pièges à éviter
Projet
Bibliographie
ELEN0037
Simulation vs Synthèse Remacle Matthieu
Introduction
Présentation du cours
Déclarations parallèles
Ainsi, les transactions ne sont jamais effectuées immédiatement, puisqu’elles sont
Déclarations séquentielles
effectuées après l’analyse complète du code !
Logique séquentielle
Base
Lors de la synthèse, en revanche, tout est exécuté en parallèle. Il peut donc y Machines d’état
avoir une différence entre le circuit qu’on imagine, et la simulation de celui-ci. Il Optimisation du code
convient donc d’avoir les règles ci-dessus en tête, afin de bien faire comprendre Optimisation sur la vitesse
Notions avancées
Domaines d’horloge
Pièges à éviter
Projet
Bibliographie
ELEN0037
Remacle Matthieu
Introduction
Présentation du cours
Syntaxe
Déclarations parallèles
Déclarations séquentielles
Logique séquentielle
Base
Machines d’état
Optimisation du code
Optimisation sur la vitesse
Optimisation de la puissance
Notions avancées
Domaines d’horloge
Pièges à éviter
Projet
Bibliographie
ELEN0037
Exécution séquentielle et parallèle Remacle Matthieu
Introduction
Présentation du cours
Syntaxe
Syntaxe de base
I Ainsi, certaines instructions sont plus spécifiques à une exécution parallèle,
Déclarations parallèles
telles que les instructions de choix : Déclarations séquentielles
Si une variable vaut x , alors une autre variable vaudra y Logique séquentielle
Ce genre d’instruction peut être exécutée en parallèle puisque on peut Base
Une variable vaut x , puis si une autre variable change, alors elle vaudra y Optimisation sur la vitesse
I Les instructions plus spécifiques parallèle peuvent être aussi dans des Notions avancées
process, puisqu’elle ne prenne qu’un temps d’exécution ! Domaines d’horloge
Pièges à éviter
Projet
Bibliographie
ELEN0037
Remacle Matthieu
Introduction
Présentation du cours
Syntaxe
Déclarations parallèles
Déclarations séquentielles
Logique séquentielle
Base
Machines d’état
Optimisation du code
Optimisation sur la vitesse
Optimisation de la puissance
Notions avancées
Domaines d’horloge
Pièges à éviter
Projet
Bibliographie
ELEN0037
Syntaxe de base Remacle Matthieu
Introduction
Présentation du cours
underscores Syntaxe
I Doit démarrer avec un caractère Syntaxe de base
Déclarations parallèles
alphabétique
Déclarations séquentielles
Optimisation de la puissance
I and, or, nor, etc...
Notions avancées
Mots réservés I if, else, elsif, for, etc...
Domaines d’horloge
Projet
Bibliographie
ELEN0037
Remacle Matthieu
Introduction
Présentation du cours
Fonction Exemple ou règle Présentation des concepts
" A string in a " " A string " " . " Machines d’état
Caractères et chaînes
B"0100011" −− Chaîne binaire Optimisation du code
Optimisation de la puissance
Notions avancées
Domaines d’horloge
Pièges à éviter
Projet
Bibliographie
ELEN0037
Notation EBNF Remacle Matthieu
Introduction
Définition Présentation du cours
Métalanguage permettant de décrire avec précision la syntaxe d’un langage Présentation des concepts
Syntaxe
Optionnel : [ ] Fonction <= nom_fonction [ (arguments) ];
Syntaxe de base
Déclaration_de_process <=
Déclarations parallèles
process is Déclarations séquentielles
Introduction
Présentation du cours
Syntaxe
Exemples :
Syntaxe de base
Déclarations parallèles
1 constant number_of_bytes : integer := 4;
Déclarations séquentielles
2 constant number_of_bits : integer := 8∗number_of_bytes;
Logique séquentielle
3 constant size_limit , count_limit : integer := 255;
Base
4 constant prop_delay : time := 3ns;
Machines d’état
Notions avancées
Domaines d’horloge
Pièges à éviter
Projet
Bibliographie
ELEN0037
Variables Remacle Matthieu
Introduction
Présentation du cours
Syntaxe Présentation des concepts
Exemples :
Syntaxe
Syntaxe de base
1 variable number_of_bytes : integer := 4;
Déclarations parallèles
2 variable size_limit , count_limit : integer := 255; Déclarations séquentielles
3 variable prop_delay : time := 3ns;
Logique séquentielle
4
Base
5 number_of_bytes := 2; Machines d’état
Bibliographie
ELEN0037
Variables Remacle Matthieu
Introduction
Présentation du cours
Syntaxe
Déclarations parallèles
Différent d’une affectation de signal ! La variable est modifiée tout de suite, le Déclarations séquentielles
signal entraîne une modification future !
Logique séquentielle
Base
Machines d’état
Optimisation du code
Optimisation sur la vitesse
Optimisation de la puissance
Notions avancées
Domaines d’horloge
Pièges à éviter
Projet
Bibliographie
ELEN0037
Type Remacle Matthieu
Introduction
Syntaxe Présentation du cours
Machines d’état
I On peut déclarer des types avec des entiers ou des flottants ; Domaines d’horloge
Pièges à éviter
I La valeur par défaut est la première déclarée (plus petite si to, plus grande
Projet
si downto)
Bibliographie
ELEN0037
Type Remacle Matthieu
Enumérations
Introduction
Présentation du cours
Exemples : Syntaxe
Syntaxe de base
1 type player is (Player1, Player2, Player3, CPU) Déclarations parallèles
2 type days is (Mon, Tue, Wed, Thu, Fri , Sat, Sun) Déclarations séquentielles
3 Logique séquentielle
Machines d’état
5 today := Mon;
Optimisation du code
Usage : Optimisation sur la vitesse
Pièges à éviter
I Il s’agit d’un type mais avec des noms, donc ce qui s’applique aux types
Projet
s’applique aux énumérations également.
Bibliographie
ELEN0037
Types Remacle Matthieu
Prédéfinis
Introduction
Booléens : type boolean is ( false , true ) ;
Présentation du cours
Bits : type bits is (’0’, ’1’) ; Présentation des concepts
Optimisation du code
Caractères : type character is (nul , soh, ’ ’, ’∗’, ’1’, ’ A ’, ’...’) ;
Optimisation sur la vitesse
Bibliographie
ELEN0037
Types Remacle Matthieu
Tableaux
Introduction
Présentation du cours
Déclarations séquentielles
1 type word is array (0 to 31) of std_logic ;
Logique séquentielle
2
Base
3 type controller_state is ( initial , idle , active , error ) ; Machines d’état
4 type state_counts is array ( controller_state range idle to error ) of natural ; Optimisation du code
5 Optimisation sur la vitesse
Optimisation de la puissance
7
8 buffer (0) := 0; Notions avancées
Domaines d’horloge
Pièges à éviter
Projet
Bibliographie
ELEN0037
Types Remacle Matthieu
Tableaux - multidimensionnels
Introduction
Présentation du cours
Exemple :
Présentation des concepts
Déclarations parallèles
7 " 01100110", −− 4
Déclarations séquentielles
8 " 01101101", −− 5
Logique séquentielle
9 " 01111101", −− 6
Base
10 " 00000111", −− 7 Machines d’état
11 " 01111111", −− 8
Optimisation du code
12 " 01101111", −− 9 Optimisation sur la vitesse
Bibliographie
ELEN0037
Attributs Remacle Matthieu
Introduction
Présentation du cours
Déclarations séquentielles
I type,
Logique séquentielle
I ... Base
Machines d’état
Les attributs disponibles vont être fonction de sur quoi porte l’attribut.
Optimisation du code
Optimisation sur la vitesse
Optimisation de la puissance
Notions avancées
Domaines d’horloge
Pièges à éviter
Projet
Bibliographie
ELEN0037
Attributs Remacle Matthieu
de tableaux
Introduction
Présentation du cours
Déclarations parallèles
A’high(N) valeur maximale
Déclarations séquentielles
A’range(N) variation maximale d’index
Logique séquentielle
A’downrange(N) variation maximale d’index
Base
A’length(N) taille du tableau Machines d’état
Notions avancées
Domaines d’horloge
Pièges à éviter
Projet
Bibliographie
ELEN0037
Attributs Remacle Matthieu
de signaux
Introduction
Présentation du cours
Machines d’état
S’last_event temps depuis le dernier évènement
S’last_active temps depuis la dernière transaction Optimisation du code
Optimisation sur la vitesse
S’last_value dernière valeur avant le dernier évènement
Optimisation sur l’aire
Remarque :
Optimisation de la puissance
I Beaucoup de ces attributs sont utilisés pour des vérifications de timing. Notions avancées
Domaines d’horloge
Pièges à éviter
Projet
Bibliographie
ELEN0037
Remacle Matthieu
Introduction
Présentation du cours
Syntaxe
Déclarations parallèles
Déclarations séquentielles
Logique séquentielle
Base
Machines d’état
Optimisation du code
Optimisation sur la vitesse
Optimisation de la puissance
Notions avancées
Domaines d’horloge
Pièges à éviter
Projet
Bibliographie
ELEN0037
Opérateurs Remacle Matthieu
Introduction
Syntaxe Présentation du cours
and, or , nand, nor, xor , xnor, not −− logiques Présentation des concepts
Logique séquentielle
Exemples :
Base
1 X(1) <= (a(3) and not(s (1) ) and not (s (0) ) Machines d’état
Optimisation de la puissance
5 bit_vector <= bit_vector sll 2;
Notions avancées
Usage : Domaines d’horloge
I Ecriture d’équations logiques et arithmétiques Pièges à éviter
Remarques : Projet
I Attention à la priorité des opérations !
Bibliographie
ELEN0037
Condition with - select - when Remacle Matthieu
Introduction
Présentation du cours
Syntaxe
Exemple :
Syntaxe de base
Déclarations parallèles
1 with S select
Déclarations séquentielles
2 O := E0 when "00";
Logique séquentielle
3 O := E1 when "01";
Base
4 O := E2 when "10"; Machines d’état
5 O := E3 when "11";
Optimisation du code
Optimisation sur la vitesse
Usage :
Optimisation sur l’aire
I Affectation d’une variable soumise aux valeurs de multiples choix, Optimisation de la puissance
Projet
Bibliographie
ELEN0037
Condition when - else Remacle Matthieu
Introduction
Présentation du cours
Exemple : Syntaxe
Syntaxe de base
Déclarations séquentielles
Usage :
Logique séquentielle
I Assignation soumise à condition Base
Machines d’état
Projet
Bibliographie
ELEN0037
Remacle Matthieu
Introduction
Présentation du cours
Syntaxe
Déclarations parallèles
Déclarations séquentielles
Logique séquentielle
Base
Machines d’état
Optimisation du code
Optimisation sur la vitesse
Optimisation de la puissance
Notions avancées
Domaines d’horloge
Pièges à éviter
Projet
Bibliographie
ELEN0037
Condition If - then - else Remacle Matthieu
Introduction
[ else Syntaxe
Déclarations parallèles
end if ;
Déclarations séquentielles
4 elsif (S0 = ’1’ and S1 = ’1’) then O <= E3; Optimisation sur l’aire
Bibliographie
ELEN0037
Condition case - when Remacle Matthieu
Introduction
Syntaxe Présentation du cours
Syntaxe
choix <= (expression_simple | ensemble_valeurs | others) {|...}
Syntaxe de base
ensemble_valeurs <= expression (to | downto) expression; Déclarations parallèles
Déclarations séquentielles
Exemples :
Logique séquentielle
1 case day is Base
1 case S is
2 when Mon to Wed => Machines d’état
2 when "00" => O <= E0;
3 O <= ’1’; Optimisation du code
3 when "01" => O <= E1;
4 when Sun downto Fri => Optimisation sur la vitesse
4 when "10" => O <= E2; Optimisation sur l’aire
5 O <= ’0’;
5 when "11" => O <= E3; Optimisation de la puissance
6 when others =>
6 when others => O <= ’−’; Notions avancées
7 O <= ’Z’;
7 end case; Domaines d’horloge
8 end case;
Pièges à éviter
Usage : Projet
I Multiples choix sur une variable.
Bibliographie
ELEN0037
Boucles Remacle Matthieu
Introduction
Présentation du cours
Syntaxe
Présentation des concepts
for identificateur in ensemble Présentation des outils
loop while expression loop
loop
{ déclarations } { déclarations } Les bases du VHDL
{ déclarations } Exemples introductifs
end loop; end loop;
end loop; Une différence fondamentale
Déclarations parallèles
exit [ when condition ]; Déclarations séquentielles
next [ when condition ];
Logique séquentielle
Base
Machines d’état
Usage
Optimisation du code
I Les différentes boucles peuvent toute effectuer la même chose...
Optimisation sur la vitesse
I ... mais un choix judicieux du type de boucle permet un code plus concis et Optimisation sur l’aire
I Notions avancées
exit permet de quitter la boucle,
Domaines d’horloge
I next permet de passer à l’itération suivante, sans exécuter les instructions Pièges à éviter
Bibliographie
ELEN0037
Boucles Remacle Matthieu
Exemples
Introduction
Présentation du cours
Optimisation de la puissance
Bibliographie
ELEN0037
Boucles Remacle Matthieu
Exemples
Introduction
Présentation du cours
Projet
Bibliographie
ELEN0037
Remacle Matthieu
Introduction
Présentation du cours
Déclarations séquentielles
Logique séquentielle
Base
Base
Machines d’état
Optimisation du code
Optimisation sur la vitesse
Optimisation de la puissance
Notions avancées
Domaines d’horloge
Pièges à éviter
Projet
Bibliographie
ELEN0037
Exemples introductif Remacle Matthieu
Flip flop sensible au flanc
Introduction
Présentation du cours
7 Déclarations séquentielles
Machines d’état
10 process ( clk ) begin pas un else après un
11 if ( clk ’ event and clk = ’1’) then Optimisation du code
if ( clk ’ event and clk = ’1’) then.
Optimisation sur la vitesse
12 q <= d; En effet, cette construction serait Optimisation sur l’aire
13 end if ; ambiguë. (L’évènement ne durant qu’un Optimisation de la puissance
14 end process; court instant...) Notions avancées
15 end example; Domaines d’horloge
Pièges à éviter
Projet
Bibliographie
ELEN0037
Exemples introductif Remacle Matthieu
Flip flop sensible à la valeur
Introduction
Présentation du cours
Déclarations séquentielles
I Liste de sensibilité sur clk et d,
architecture example of ff_logic is Logique séquentielle
I Absence de else pour la mémoire
begin Base
Machines d’état
process ( clk , d) begin
if ( clk = ’1’) then Optimisation du code
Optimisation sur la vitesse
q <= d;
Optimisation sur l’aire
end if ;
Optimisation de la puissance
end process;
Notions avancées
end example; Domaines d’horloge
Pièges à éviter
Projet
Bibliographie
ELEN0037
Exemples introductif Remacle Matthieu
Flip flop resetable
Introduction
Présentation du cours
Optimisation de la puissance
end if ;
end process; Notions avancées
Domaines d’horloge
end example;
Pièges à éviter
Projet
Bibliographie
ELEN0037
Exemples introductif Remacle Matthieu
Le wait
Introduction
Présentation du cours
Déclarations séquentielles
wait until ( clk = ’1’) ;
q <= d; Logique séquentielle
Base
end process;
Machines d’état
end example2;
Optimisation du code
Cela fonctionnera, mais le wait until doit être la première déclaration du Optimisation sur la vitesse
Optimisation de la puissance
Notions avancées
Domaines d’horloge
Pièges à éviter
Projet
Bibliographie
ELEN0037
Remacle Matthieu
Introduction
Présentation du cours
Syntaxe
Déclarations parallèles
Déclarations séquentielles
Logique séquentielle
Base
Machines d’état
Optimisation du code
Optimisation sur la vitesse
Optimisation de la puissance
Notions avancées
Domaines d’horloge
Pièges à éviter
Projet
Bibliographie
ELEN0037
Introduction Remacle Matthieu
Introduction
Présentation du cours
Jusqu’à présent, le design d’une machine d’état demandait les étapes suivantes : Exemples introductifs
I Déclarations parallèles
Tables de Karnaugh,
Déclarations séquentielles
I Détermination des équations minimales.
Logique séquentielle
En VHDL, il est bien entendu possible de faire pareil, mais il y a plus simple : Base
Machines d’état
I Définition du diagramme d’état,
Optimisation du code
I Code. Optimisation sur la vitesse
Optimisation de la puissance
Notions avancées
Domaines d’horloge
Pièges à éviter
Projet
Bibliographie
ELEN0037
Différents styles Remacle Matthieu
Introduction
Le codage d’une machine d’état peut se faire de plusieurs façon, selon vos Présentation du cours
Syntaxe
I Bloc mémoire (M).
Syntaxe de base
Déclarations parallèles
Déclarations séquentielles
Machines d’état
Optimisation de la puissance
1 process : (NS + M + O),
Notions avancées
2 process : M + (NS + O), O + (NS + M), Domaines d’horloge
Pièges à éviter
3 process : NS + M + O.
Projet
Bibliographie
ELEN0037
Exemple Remacle Matthieu
Introduction
Présentation du cours
Modélisation d’un étudiant Présentation des concepts
Déclarations parallèles
etude soif
soif Déclarations séquentielles
Machines d’état
Optimisation du code
I Modélisation des états de l’étudiant,
Optimisation sur la vitesse
I Modélisation des signaux (un professeur donne un examen ou non, l’humeur Optimisation sur l’aire
I Notions avancées
Modélisation des jours (l’horloge du système), un seul état par jour (Un
Domaines d’horloge
étudiant, c’est simple...)
Pièges à éviter
Projet
Bibliographie
ELEN0037
Exemple Remacle Matthieu
3 process
Introduction
Présentation du cours
Bibliographie
ELEN0037
Exemple Remacle Matthieu
3 process
Introduction
Présentation du cours
52 when Etudie =>
Présentation des concepts
53 next_state <= Glande;
54 if professor = Exam then Présentation des outils
Bibliographie
ELEN0037
Exemple Remacle Matthieu
Simulation
Introduction
Présentation du cours
Déclarations parallèles
Légende : Déclarations séquentielles
Machines d’état
I 3 - Etudie
I 4 - Déprime Optimisation du code
Optimisation sur la vitesse
I 5 - Réussi
Optimisation sur l’aire
I 6 - Rate Optimisation de la puissance
Projet
Bibliographie
ELEN0037
Exemple Remacle Matthieu
Simulation
Introduction
Présentation du cours
Syntaxe
Remarques :
Syntaxe de base
I Seulement deux process, mais l’affectation des sorties aurait pu être un Déclarations parallèles
I Dernier scénario : l’étudiant change d’envie trop rapidement et seule la Logique séquentielle
Base
dernière est reprise.
Machines d’état
Optimisation du code
Optimisation sur la vitesse
Optimisation de la puissance
Notions avancées
Domaines d’horloge
Pièges à éviter
Projet
Bibliographie
ELEN0037
Conclusion Remacle Matthieu
Introduction
Présentation du cours
Déclarations parallèles
sensibilité changée)
Déclarations séquentielles
I ...
Logique séquentielle
Base
Conclusion Machines d’état
Optimisation de la puissance
Notions avancées
Domaines d’horloge
Pièges à éviter
Projet
Bibliographie
ELEN0037
Remacle Matthieu
Introduction
Présentation du cours
Syntaxe
Déclarations parallèles
Déclarations séquentielles
Logique séquentielle
Base
Machines d’état
Optimisation du code
Optimisation sur la vitesse
Optimisation de la puissance
Notions avancées
Domaines d’horloge
Pièges à éviter
Projet
Bibliographie
ELEN0037
Objectifs et instruction Remacle Matthieu
Introduction
Présentation du cours
Déclarations parallèles
I La création d’un circuit électronique simple,
Déclarations séquentielles
I le VHDL. Logique séquentielle
Base
Ce projet consistera donc en un réalisation d’un système fonctionnel, soit sur Machines d’état
Optimisation de la puissance
Notions avancées
Domaines d’horloge
Pièges à éviter
Projet
Bibliographie
ELEN0037
Echéances Remacle Matthieu
Introduction
Présentation du cours
Trois étapes à ce projet :
Présentation des concepts
Vendredi 21 mars 2014 : Envoi par mail d’un bref descriptif de votre projet, avec Présentation des outils
Vendredi 25 avril 2014 : Envoi par mail d’un rapport pour votre projet, avec Logique séquentielle
I Base
Le code VHDL,
Machines d’état
I Des simulations démontrant le bon fonctionnement du
Optimisation du code
code,
Optimisation sur la vitesse
I Les schémas électriques, Optimisation sur l’aire
I Toute autres informations que vous jugerez nécessaires. Optimisation de la puissance
Bibliographie
ELEN0037
Conseil - Réflexion Remacle Matthieu
Introduction
Présentation du cours
Phase la plus longue du projet. Ne vous y prenez pas 2 jours à l’avance ! Une différence fondamentale
Syntaxe
I Avant de vous lancez dans quoi que ce soit, réfléchissez ! Évaluez les
Syntaxe de base
ressources dont vous aurez besoin, vos diagrammes d’états, etc... Déclarations parallèles
I Quand vous écrivez du code, simulez dès que possible, Déclarations séquentielles
Logique séquentielle
I Quand vous faites des schématiques, lisez toutes les datasheets,
Base
I Essayez de trouver des exemples sur le net de circuits pour vous en inspirer, Machines d’état
Optimisation du code
Optimisation sur la vitesse
Optimisation de la puissance
Notions avancées
Domaines d’horloge
Pièges à éviter
Projet
Bibliographie
ELEN0037
Conseil - Réalisation Remacle Matthieu
Introduction
I Par breadboard : le plus simple, mais attention aux court-circuits et faux Présentation du cours
Syntaxe
La carte pré-trouée vous donnera les meilleurs résultats. Avant de souder votre
Syntaxe de base
carte définitive, entraînez-vous ! Allez voir des vidéos sur Youtube ! Déclarations parallèles
Bibliographie
ELEN0037
Exemples Remacle Matthieu
Introduction
Présentation du cours
I Tireur, Base
Machines d’état
I Simon,
Optimisation du code
Optimisation sur la vitesse
Optimisation de la puissance
Notions avancées
Domaines d’horloge
Pièges à éviter
Projet
Bibliographie
ELEN0037
Remacle Matthieu
Introduction
Présentation du cours
Syntaxe
Déclarations parallèles
Déclarations séquentielles
Logique séquentielle
Base
Machines d’état
Optimisation du code
Optimisation sur la vitesse
Optimisation de la puissance
Notions avancées
Domaines d’horloge
Pièges à éviter
Projet
Bibliographie
ELEN0037
Bibliographie I
Remacle Matthieu
Introduction
Présentation du cours
Présentation des concepts
Présentation des outils
In Design Automation Conference Proceedings 1996, 33rd, pages 771–776. Notions avancées
IEEE, 1996. Domaines d’horloge
Pièges à éviter
Projet
Bibliographie
79/137