SlideShare una empresa de Scribd logo
1 de 50
Synthèse de composants :
Langage VHDL
Module d’Electronique Numérique
www.geii.eu 2
Introduction
VHDL : Very high speed circuit Hardware Description Language
 Langage de Haut Niveau adapté à une description fonctionnelle
pour cibler des composants logiques reconfigurables.
 Concurrent du Verilog HDL.
Limites du cours
 Utilisation du VHDL pour décrire le comportement d’un bloc
fonctionnel simple ayant :
 des entrées,
 des sorties.
 Les structures de programmation permettant une description
hiérarchique directement en VHDL ne sont pas abordées :
 utilisation de l’outil de schéma pour la description
hiérarchique,
 pas de modèles vectoriels de dimension variable.
2
www.geii.eu 3
Structure d’un programme VHDL
Sur un exemple simple : la description d’une porte ET
3
www.geii.eu 4
Déclaration des bibliothèques
Le VHDL utilise des paquetages de bibliothèques
 La bibliothèque IEEE est indispensable pour la synthèse de
composants logiques programmes.
Pour utiliser une bibliothèque
 Mot clé : library
 Exemple : library ieee;
Pour utiliser un paquetage d’une bibliothèque
 Mot clé : use
 Exemple : use ieee.std_logic_1164.all;
Notes :
 Le paquetage std_logic_1164 est indispensable à tout projet.
 Le .all précise que le paquetage doit être chargé en totalité.
 Pour les traitements d’entiers et de vecteurs signés ou non signés, un
ou plusieurs paquetages doivent être chargés.
4
www.geii.eu 5
Description externe du bloc fonctionnel
Porte ET vue de l’extérieur
En VHDL, description externe = entité (entity)
5
PorteET
Entree1
Entree2
Sortie
 Dans cet exemple :
 PorteET = nom de l’entité créée.
 Entree1 et Entree2 sont des
entrées de type std_logic.
 Sortie est une sortie de type
std_logic.
www.geii.eu 6
Signaux
Définition
 En VHDL, on appelle signal toute grandeur qui peut exister
après le processus de synthèse et qui peut donc être visualisée
sur un oscilloscope si on n’en interdit pas la simplification. C’est
bien une grandeur physique.
 Les entrées, sorties et entrées-sorties de l’entité sont des
signaux.
Les signaux sont typés
 Comme en C pour les variables, les signaux peuvent
représentés des informations de différentes natures et sont donc
affublés d’un type.
6
www.geii.eu 7
Types de signaux
Types logiques
 bit
 Type binaire pouvant prendre deux valeurs : ‘0’ ou ‘1’.
 Insuffisant pour la synthèse de composant.
 boolean
 Deux valeurs possibles : true ou false.
 C’est le type de référence des structures conditionnelles.
 std_logic
 C’est le type scalaire de référence pour la synthèse et la
simulation avec 9 valeurs possibles :
– 3 ayant un sens physique : ‘0’, ‘1’, ‘Z’ pour la haute impédance,
– 6 valeurs utiles pour la simulation : ‘U’ pour non initialisé, ‘X’ pour un résultat
inconnu, ‘H’ niveau haut probable, ‘L’ niveau bas probable, ‘W’ niveau ne
pouvant être qualifié de ‘H’ ou ‘L’, ‘-’ sans importance.
7
www.geii.eu 8
Types de signaux
Types logiques vectoriels
 Assimilables à des tableaux d’éléments d’un type scalaire.
 Type std_logic_vector = vecteur de std_logic
 Déclaration d’un signal
signal a : std_logic_vector(3 downto 0);
– a(3) désigne le poids fort
– a(0) est le poids faible
signal b : std_logic_vector(1 to 4);
– b(1) est le poids fort et b(4) le poids faible
Note 1 : le poids fort est toujours à gauche.
Note 2 : les signaux représentants des données numériques codées en binaire sur N
bits doivent être déclarés sous la forme de std_logic_vector(N-1 downto 0).
 unsigned
 c’est un vecteur de std_logic utilisable comme un std_logic_vector
et pour lequel les opérations arithmétiques sont définies.
 le passage vers les entiers est facilité par des fonctions de
conversions. 8
0 0 1 0a =
8 4 2 1
𝑎(3) 𝑎(2) 𝑎(1) 𝑎(0)
𝑎(1) 𝑎(2) 𝑎(3) 𝑎(4)
0 0 1 0a =
www.geii.eu 9
Types de signaux
Types mathématiques
 integer
 le type entier de référence, limité à 32 bits signés sur certains
compilateurs VHDL (ModelSim-Altera).
 Déclaration de signaux entiers
signal a : integer;
signal b : integer range 0 to 20; -- b entier limité à l’intervalle 0 à 20
 real
 type réel en virgule flottante.
Types caractères et chaînes de caractères
 char
 string
Note : juste cités pour information …
9
www.geii.eu 10
Affectation à un signal
Opérateur d’affectation sur les signaux en VHDL : le signe <=
 Exemples d’affectations
Pour plus de lisibilité, on peut aussi déclarer des constantes
 Noter l’opérateur d’affectation := pour les constantes.
10
www.geii.eu 11
Description interne du bloc fonctionnel
Elle est réalisée dans la section architecture du code
 PorteET est le nom de l’entité
dont le comportement est décrit.
 rtl (Register Transfer Level) est
le nom donné à l’architecture.
 La description se fait entre les mots clés begin et end de
l’architecture.
Note : entre les mots clés architecture et begin, on peut définir :
 des signaux internes utiles pour des calculs internes au bloc
fonctionnel,
 des constantes permettant une meilleure lisibilité du code.
11
www.geii.eu 12
Domaine concurrent
C’est l’espace entre les mots clés begin et end de l’architecture
Pourquoi qualifie-t-on ce domaine de concurrent ?
 Car les structures employées ici sont concurrentes dans le temps 
elles sont calculées en même temps.
 On y réalise des traitements de flux de données parallèles.
Conséquence
 L’ordre de ces structures est sans importance
 Exemple : et
conduisent à des résultats temporels identiques.
Eléments du domaine concurrent
 Affectations simples.
 Structures de traitement de flots de données :
 Structure when … else …
 Structure with … select …
 Processus utilisant une description séquentielle. 12
1 calcul ici
1 calcul là
www.geii.eu 13
Affectation simple
Opérateur pour les signaux :
Sous réserve qu’ils soient définis pour les types de signaux entrant
l’expression, expression peut utiliser
 Des opérateurs logiques
 and , or , xor (ou exclusif), not (complément).
 nand , nor.
 Des opérateurs arithmétiques
 + , - , *, /, mod (modulo), rem (reste).
 Opérateur de concaténation
 &
 Des opérateurs relationnels
 < , >, <= , >= , = , /= (différent de).
13
www.geii.eu 14
Structure when… else …
Sur l’exemple de la porte ET
 Note : la structure se termine toujours par un else fixant la sortie
pour les combinaisons non explicitées (rappel : les signaux
Entree1 et Entree2 peuvent prendre 9 valeurs chacun).
Optimisation
 En vectorisant les signaux d’entrées.
Entrees est un signal interne de l’architecture
14
www.geii.eu 15
Application sur un exemple
Unité arithmétique simple
 Deux opérations possibles :
 Operation = ‘0’  Resultat  OperandeA + OperandeB
 Operation = ‘1’  Resultat  OperandeA - OperandeB
15
Operation
OperandeA
OperandeB
Resultat
8
8
8
www.geii.eu 16
Solution avec la structure when … else …
Code source de l’Unité Arithmétique élémentaire UA.vhd
16
www.geii.eu 17
Solution avec la structure with… select …
Code source de l’Unité Arithmétique élémentaire UA.vhd
 Note : la ligne "00000000" when others; est utile pour prévoir tous les cas
d’entrées possibles, en particulier pour la simulation.
17
www.geii.eu 18
Résultat de simulation
Process de génération des signaux dans test_UA.vhd
 OperandeA et OperandeB sont des std_logic_vector  il faut
procéder à une conversion pour leur affecter un entier
conv_std_logic_vector(valeur, nombre de bits).
– Cette conversion est possible grâce à la fonction du paquetage std_logic_arith
dont voici la définition
 Test réalisé pour un couple d’opérandes et différentes valeurs
possibles de Opération.
18
www.geii.eu 19
Résultat de simulation
Simulation RTL (au niveau du code source)
 Notes :
 Les temps de propagation dans le circuit n’apparaissent pas
car la simulation est seulement fonctionnelle.
 Pour une opération indéfinie (donc autre que addition ou
soustraction), on obtient bien une sortie nulle comme
explicitée comme sortie par défaut.
19
www.geii.eu 20
Domaine séquentiel
A l’intérieur du domaine concurrent, on peut effectuer des descriptions
séquentielles  domaine séquentiel
 Accès à des structures puissantes et lisibles, rappelant celles du C.
 Réalisation de blocs combinatoires avec une autre approche que celle
du domaine concurrent mais aussi de blocs séquentiels.
 Prise en compte aisée des phénomènes synchrones.
Mot clé débutant la description séquentielle1
 process(liste_de_sensibilité)
 Liste de sensibilité = liste des signaux dont le changement d’état
lance le calcul du process.
 La liste de sensibilité peut être vide  on ôte les parenthèses.
Dans ce cas, le process est exécuté sans condition.
 Le process peut être nommé (voir suite).
20
1. On parle également de description comportementale.
www.geii.eu 21
Structure d’un process
21
Nom
facultatif
Liste des signaux dont
le changement d’état
lance le calcul du
process
Corps principal du process
Code utilisant des structures de
programmation séquentielles :
- affectations,
- structures conditionnelles,
- structures répétitives.
www.geii.eu 22
Mécanismes de la liste de sensibilité
Premier exemple
 Equation d’un ET dans un process avec omission de l’impact du
changement d’une des entrées dans la liste de sensibilité.
 Résultat de simulation induit
 Cas de la simulation RTL (niveau source).
22
On retrouve
bien un ET.
La sortie devrait retomber à ‘0’ si la
fonction ET était correctement
implémentée. Hors, elle apparaît
mémorisée du fait de l’oubli de
Entree1 dans la liste de sensibilité.
www.geii.eu 23
Mécanismes de la liste de sensibilité
 Cas d’une simulation après placement/routage
– On retrouve le fonctionnement d’une porte ET au temps propagation près
imposé par le circuit.
 Que s’est-il passé ?
– Le compilateur a complété la liste de sensibilité en tenant compte de l’ensemble
des signaux figurant comme des entrées dans les équations du process.
23
www.geii.eu 24
Mécanismes de la liste de sensibilité
Et si on souhaitait ne prendre en compte que les changements
d’états de Entree2 ?
 Ce n’est possible que sur les fronts montants ou descendants
mais pas les deux à la fois.
24
www.geii.eu 25
Mécanismes de la liste de sensibilité
Variante
 En effectuant le calcul seulement lorsque Entree1 = ‘1’
 On obtient
le résultat
suivant :
 On constate que la sortie est mémorisée lorsque Entree1 = ‘0’
Conséquence importante : si une sortie n’est pas affectée durant le
calcul d’un process, son état antérieur est mémorisé.
25
www.geii.eu 26
Mécanismes de la liste de sensibilité
Après placement/routage, on voit apparaître la mémorisation par
rebouclage de la sortie dans le LUT
 C’est une mémorisation asynchrone.
26
www.geii.eu 27
Structures conditionnelles
Elles sont semblables
à celles du C
 Forme en if …
Note : condition est une
expression dont le résultat
est un booléen et utilisant
généralement les opérateurs
relationnels.
27
 Forme en case …
 Très utile pour les
machines à états.
www.geii.eu 28
Système combinatoire décrit par un process
Exemple : multiplexeur 4 voies vers 1 voie
 Fonctionnement : celui d’un commutateur
 si Selection = "00" alors Sortie  Entree0
 si Selection = "01" alors Sortie  Entree1
 si Selection = "10" alors Sortie  Entree2
 si Selection = "11" alors Sortie  Entree3
28
Selection
Entree0
Sortie
2
Entree1
Entree2
Entree3
www.geii.eu 29
Multiplexeur 4 vers 1 avec des if …
Vis-à-vis de la synthèse, toutes les combinaisons binaires du
vecteur Selection ont été prises en considération
29
www.geii.eu 30
Multiplexeur 4 vers 1 avec des if …
Analyse du placement/routage
 La sortie obtenue est purement combinatoire.
 La synthèse nécessite 2 éléments logiques.
30
www.geii.eu 31
Multiplexeur 4 vers 1 avec des if …
Analyse du placement/routage
 La sortie obtenue est purement combinatoire.
31
www.geii.eu 32
Multiplexeur 4 vers 1 avec des if …
Résultat de simulation fonctionnelle (RTL)
Résultat de simulation niveau portes (dans le composant)
32
www.geii.eu 33
Multiplexeur 3 vers 1 avec des if …
Même fonctionnement en supprimant Entree3
Première approche
 On reprend le code
précédent en
supprimant la
combinaison
correspondant à
l’affectation de
Entree3 sur Sortie.
Note : parmi les 4
possibles pour Selection, une combinaison
binaire n’est donc pas
prise en compte.
33
www.geii.eu 34
Multiplexeur 3 vers 1 avec des if …
Résultat de la simulation fonctionnelle pour la première approche
 La mémorisation de la sortie est due au fait que toutes les
combinaisons binaires de Selection n’étant pas explicitées, le
compilateur prévoit de mémoriser le signal Sortie si aucune
valeur ne lui est affectée au moment du calcul du process.
34
Lorsque Selection="11" , on
constate que la sortie est
mémorisée
www.geii.eu 35
Multiplexeur 3 vers 1 avec des if …
Analyse du placement/routage
 Le multiplexeur 3 vers 1 ainsi réalisé apparaît
plus complexe que le modèle 4 vers 1
présentant pourtant une entrée de plus !
35
On voit qu’il existe un verrouillage
au niveau de la sortie.
Verrouillage obtenu par rebouclage
de la sortie vers les entrées du
LUT (mémorisation asynchrone).
www.geii.eu 36
Multiplexeur 3 vers 1 avec des if …
Seconde approche
 En explicitant toutes
les combinaisons
binaires de Selection.
36
www.geii.eu 37
Multiplexeur 3 vers 1 avec des if …
Troisième approche
 En fixant la valeur
par défaut dès l’
entrée dans le
process.
37
www.geii.eu 38
Système combinatoire dans un process
Conséquence de ce qui a été vu précédemment
 Ne pas traiter toutes les combinaisons entraîne :
 Une mémorisation des sorties traitées par un process.
 Une consommation supérieure des ressources du FPGA.
 Un temps de calcul généralement supérieur à cause
– de l’augmentation du nombre de LUT mis en œuvre
– du rebouclage de la sortie vers les entrées du LUT
 Pour réaliser un système réellement combinatoire donc sans risque de
mémorisation des sorties, il suffit :
soit :
 de traiter toutes les combinaisons d’entrées.
soit :
 d’initialiser la sortie en début de process car la mémorisation
n’apparaît plus dès lors que la sortie est affectée au moins une fois
au cours du calcul du process.
38
www.geii.eu 39
Structures répétitives
Variables
 La variable est utilisée comme un artifice de génération de code
 Elle n’existe que dans le process.
 Ce n’est pas une information synthétisable  à l’inverse du
signal, elle n’a pas de sens physique donc elle n’est pas
mesurable dans le composant.
 Elle se déclare entre les mots clés process et begin
 Elle peut être de n’importe quel type, énuméré ou non
39
www.geii.eu 40
Structures répétitives
Boucle for variable in range loop … end loop;
 Syntaxe
 Exemple : process de test pour le décodeur 7 segments
 Utilisation d’un vecteur interne pour les entrées.
 Redistribution du vecteur généré sur chacune des entrées.
40
Décodeur
7
segments
BCD1 C
BCD0
BCD3
BCD2
B
A
F
E
D
G
www.geii.eu 41
Structures répétitives
Boucle for variable in range loop … end loop;
 Exemple : additionneur 4 bits
avec retenue d’entrée.
41
Additionneur
4 bits
carry_in
B
A
carry_out
S
www.geii.eu 42
Process d’une machine séquentielle
Attribut event d’un signal
 Déjà vu, un process se lance lorsqu’un signal de la liste de
sensibilité change d’état.
 Pour savoir quel signal a changé d’état, on utilise l’attribut event
des signaux qui signal qu’un signal a fait l’objet d’un
changement d’état en entrant dans le process.
Process d’une machine synchrone
à remise à 0 asynchrone
 On traite en premier le reset.
 Puis ce qui doit l’être au moment du
front montant de l’horloge (clk ici).
42
www.geii.eu 43
Exemples
Synthèse d’une bascule D avec entrée de reset asynchrone
Note : le reset est toujours choisi actif à
l’état bas.
43
D Bascule
D
clk
Q
reset
www.geii.eu 44
Exemple : compteur 4 bits
Synthèse d’un compteur 4 bits avec entrée de reset asynchrone
 Comptage de 0 à 15.
 La sortie Q du compteur est un std_logic_vector(3 downto 0)
 L’opération Q <= Q + 1 n’est possible qu’à condition d’inclure le
paquetage ieee.std_logic_unsigned qui définit l’addition entre un
std_logic_vector et un integer
44
Compteur
4 bits
clk
Q
reset
www.geii.eu 45
Exemple : compteur 4 bits de 0 à 15
Résultat de simulation
45
On voit l’action clairement
asynchrone du reset puisqu’il est
pris en compte indépendamment
du signal d’horloge.
La sortie Q évolue bien de façon
synchrone : Q change de valeur
sur les fronts montants de clk.
www.geii.eu 46
Variante : compteur 4 bits de 0 à 11
Objectif : compter de 0 à 11 de façon cyclique (arrivé à 11, on
repasse à 0)
Première approche :
 celle du C :
 Simulation correspondante :
 Analyse « C » lorsque Q = 11 en entrant dans le process sur un
front montant de clk :
 Q <= Q +1  Q 11+1  Q  12
 la condition suivante devrait remettre Q à 0
mais ce n’est pas ce qui se produit ! Pourquoi ?
46
www.geii.eu 47
Evolution des signaux dans un process
Tout signal utilisé dans une équation pour le calcul d’une
affectation ou d’une condition est une entrée.
Tout signal auquel on affecte une valeur, constante ou calculée à
partir d’une équation, est une sortie.
Un signal peut à la fois être utilisé comme une entrée et comme
une sortie.
Dans un process, la valeur d’une entrée reste figée à l’état qu’elle
possédait au moment d’entrée dans le process  une sortie ne
change réellement de valeur qu’en sortant du process.
47
www.geii.eu 48
Evolution des signaux dans un process
Incidence sur la lecture d’un process:
Conséquence sur l’exemple du compteur :
 quand on entre dans le process sur un front montant d’horloge
avec , c’est cette valeur qui sera utilisée pour les
conditions  le calcul de a une incidence sur la
valeur future de mais aucune sur l’évaluation de la condition
 passe à 12 !
48
devrait se lire :
devrait se lire :
devrait se lire :
www.geii.eu 49
Variante : compteur 4 bits de 0 à 11
Objectif : compter de 0 à 11 de façon cyclique (arrivé à 11, on
repasse à 0)
Seconde approche :
 si on rentre dans le process avec , cela signifie que le
passage à 11 s’est effectué au cycle d’horloge précédent  on
repasse à 0 et on a donc compté de 0 à 11.
Simulation correspondante :
49
Modèle Powerpoint utilisé par les présentations Intel

Más contenido relacionado

La actualidad más candente

Présentation PPT CARSELFCARE
 Présentation PPT  CARSELFCARE Présentation PPT  CARSELFCARE
Présentation PPT CARSELFCAREBILEL TLILI
 
Présentation de mon PFE
Présentation de mon PFEPrésentation de mon PFE
Présentation de mon PFENadir Haouari
 
Rapport de Mémoire Master Recherche
Rapport de Mémoire Master RechercheRapport de Mémoire Master Recherche
Rapport de Mémoire Master RechercheRouâa Ben Hammouda
 
Rapport PFE DOUIEB_HMIDANI
Rapport PFE DOUIEB_HMIDANIRapport PFE DOUIEB_HMIDANI
Rapport PFE DOUIEB_HMIDANIOtmaneDouieb
 
correction examen rattrapage 2012 transmission numérique
correction examen rattrapage 2012 transmission numérique correction examen rattrapage 2012 transmission numérique
correction examen rattrapage 2012 transmission numérique omar bllaouhamou
 
Chapitre 1 Représentation d'état des systèmes linéaires
Chapitre 1 Représentation d'état des systèmes linéaires Chapitre 1 Représentation d'état des systèmes linéaires
Chapitre 1 Représentation d'état des systèmes linéaires sarah Benmerzouk
 
Pic 16f877 ..
Pic 16f877 ..Pic 16f877 ..
Pic 16f877 ..sunprass
 
Tp n6 les compteurs
Tp n6 les compteursTp n6 les compteurs
Tp n6 les compteursHatem Jebali
 
Qcm analyse financière
Qcm analyse financièreQcm analyse financière
Qcm analyse financièrehappyshasha1
 
2743557 dossier-ppe-robot-suiveur-de-ligne
2743557 dossier-ppe-robot-suiveur-de-ligne2743557 dossier-ppe-robot-suiveur-de-ligne
2743557 dossier-ppe-robot-suiveur-de-ligneAziz ShadowStokes
 
rapport de stage
rapport de stagerapport de stage
rapport de stageMarouane Gh
 
Conception et réalisation d'une application de gestion intégrée au sein de la...
Conception et réalisation d'une application de gestion intégrée au sein de la...Conception et réalisation d'une application de gestion intégrée au sein de la...
Conception et réalisation d'une application de gestion intégrée au sein de la...Addi Ait-Mlouk
 
Projet de fin d'etude :Control d’acces par empreintes digitale
Projet de fin d'etude :Control d’acces par empreintes digitaleProjet de fin d'etude :Control d’acces par empreintes digitale
Projet de fin d'etude :Control d’acces par empreintes digitaleAbdo07
 

La actualidad más candente (20)

Présentation PPT CARSELFCARE
 Présentation PPT  CARSELFCARE Présentation PPT  CARSELFCARE
Présentation PPT CARSELFCARE
 
Présentation de mon PFE
Présentation de mon PFEPrésentation de mon PFE
Présentation de mon PFE
 
Rapport de Mémoire Master Recherche
Rapport de Mémoire Master RechercheRapport de Mémoire Master Recherche
Rapport de Mémoire Master Recherche
 
Rapport PFE DOUIEB_HMIDANI
Rapport PFE DOUIEB_HMIDANIRapport PFE DOUIEB_HMIDANI
Rapport PFE DOUIEB_HMIDANI
 
correction examen rattrapage 2012 transmission numérique
correction examen rattrapage 2012 transmission numérique correction examen rattrapage 2012 transmission numérique
correction examen rattrapage 2012 transmission numérique
 
Cours pics16 f877
Cours pics16 f877Cours pics16 f877
Cours pics16 f877
 
Chapitre 1 Représentation d'état des systèmes linéaires
Chapitre 1 Représentation d'état des systèmes linéaires Chapitre 1 Représentation d'état des systèmes linéaires
Chapitre 1 Représentation d'état des systèmes linéaires
 
Pic 16f877 ..
Pic 16f877 ..Pic 16f877 ..
Pic 16f877 ..
 
Tp n6 les compteurs
Tp n6 les compteursTp n6 les compteurs
Tp n6 les compteurs
 
Td2 pg2-corrige
Td2 pg2-corrigeTd2 pg2-corrige
Td2 pg2-corrige
 
Qcm analyse financière
Qcm analyse financièreQcm analyse financière
Qcm analyse financière
 
TP C++ : Correction
TP C++ : CorrectionTP C++ : Correction
TP C++ : Correction
 
Internet des Objets
Internet des ObjetsInternet des Objets
Internet des Objets
 
2743557 dossier-ppe-robot-suiveur-de-ligne
2743557 dossier-ppe-robot-suiveur-de-ligne2743557 dossier-ppe-robot-suiveur-de-ligne
2743557 dossier-ppe-robot-suiveur-de-ligne
 
rapport de stage
rapport de stagerapport de stage
rapport de stage
 
Conception et réalisation d'une application de gestion intégrée au sein de la...
Conception et réalisation d'une application de gestion intégrée au sein de la...Conception et réalisation d'une application de gestion intégrée au sein de la...
Conception et réalisation d'une application de gestion intégrée au sein de la...
 
Projet de fin d'etude :Control d’acces par empreintes digitale
Projet de fin d'etude :Control d’acces par empreintes digitaleProjet de fin d'etude :Control d’acces par empreintes digitale
Projet de fin d'etude :Control d’acces par empreintes digitale
 
Cours capteur final
Cours capteur finalCours capteur final
Cours capteur final
 
Systeme embarque
Systeme embarqueSysteme embarque
Systeme embarque
 
Présentation PFE
Présentation PFEPrésentation PFE
Présentation PFE
 

Similar a Langage vhdl

Cours langage c
Cours langage cCours langage c
Cours langage ccoursuniv
 
Chapitre1: Langage Python
Chapitre1: Langage PythonChapitre1: Langage Python
Chapitre1: Langage PythonAziz Darouichi
 
Cours programmation en langage C.pdf
Cours  programmation  en  langage  C.pdfCours  programmation  en  langage  C.pdf
Cours programmation en langage C.pdfkhalidmoussaid4
 
Cours_C_for_Etudiant.pdf
Cours_C_for_Etudiant.pdfCours_C_for_Etudiant.pdf
Cours_C_for_Etudiant.pdfHailisara
 
Les bases de la programmation en JAVA
Les bases de la programmation  en JAVA   Les bases de la programmation  en JAVA
Les bases de la programmation en JAVA Asmaa BENGUEDDACH
 
Ch2-Notions de base & actions élémentaires.pdf
Ch2-Notions de base & actions élémentaires.pdfCh2-Notions de base & actions élémentaires.pdf
Ch2-Notions de base & actions élémentaires.pdfFadouaBouafifSamoud
 
Programmation En Langage Pl7 2
Programmation En Langage Pl7 2Programmation En Langage Pl7 2
Programmation En Langage Pl7 2youri59490
 
11-Concurrence-Section critiques.pdf
11-Concurrence-Section critiques.pdf11-Concurrence-Section critiques.pdf
11-Concurrence-Section critiques.pdfPatiento Del Mar
 
Opérateurs logiques – Systèmes combinatoires et séquentiels
Opérateurs logiques – Systèmes combinatoires et séquentielsOpérateurs logiques – Systèmes combinatoires et séquentiels
Opérateurs logiques – Systèmes combinatoires et séquentielsPeronnin Eric
 
Codage de l'information
Codage de l'informationCodage de l'information
Codage de l'informationPeronnin Eric
 
Slides octave1
Slides octave1Slides octave1
Slides octave1issaslide
 
Les structures de données.pptx
Les structures de données.pptxLes structures de données.pptx
Les structures de données.pptxPROFPROF11
 
cours lanagage c avec des exemples d'application
cours lanagage c avec des exemples d'applicationcours lanagage c avec des exemples d'application
cours lanagage c avec des exemples d'applicationkamalomari2
 
Formation Langage c.pptx
Formation Langage c.pptxFormation Langage c.pptx
Formation Langage c.pptxValdy Ngouabira
 
Les_portes_kjnnnnjjjjjjjygfrlogiques.pdf
Les_portes_kjnnnnjjjjjjjygfrlogiques.pdfLes_portes_kjnnnnjjjjjjjygfrlogiques.pdf
Les_portes_kjnnnnjjjjjjjygfrlogiques.pdfAliouDiallo24
 
Cours Bus de communication et réseaux industriels. Chapitre 2 : Modbus.
Cours Bus de communication et réseaux industriels. Chapitre 2 : Modbus.Cours Bus de communication et réseaux industriels. Chapitre 2 : Modbus.
Cours Bus de communication et réseaux industriels. Chapitre 2 : Modbus.Tarik Zakaria Benmerar
 

Similar a Langage vhdl (20)

Cours langage c
Cours langage cCours langage c
Cours langage c
 
Chapitre1: Langage Python
Chapitre1: Langage PythonChapitre1: Langage Python
Chapitre1: Langage Python
 
Chapitre 1 rappel
Chapitre 1 rappelChapitre 1 rappel
Chapitre 1 rappel
 
Chapitre 1 rappel
Chapitre 1 rappelChapitre 1 rappel
Chapitre 1 rappel
 
Cours programmation en langage C.pdf
Cours  programmation  en  langage  C.pdfCours  programmation  en  langage  C.pdf
Cours programmation en langage C.pdf
 
Cours_C_for_Etudiant.pdf
Cours_C_for_Etudiant.pdfCours_C_for_Etudiant.pdf
Cours_C_for_Etudiant.pdf
 
Les bases de la programmation en JAVA
Les bases de la programmation  en JAVA   Les bases de la programmation  en JAVA
Les bases de la programmation en JAVA
 
Ch2-Notions de base & actions élémentaires.pdf
Ch2-Notions de base & actions élémentaires.pdfCh2-Notions de base & actions élémentaires.pdf
Ch2-Notions de base & actions élémentaires.pdf
 
Programmation En Langage Pl7 2
Programmation En Langage Pl7 2Programmation En Langage Pl7 2
Programmation En Langage Pl7 2
 
Langage C
Langage CLangage C
Langage C
 
11-Concurrence-Section critiques.pdf
11-Concurrence-Section critiques.pdf11-Concurrence-Section critiques.pdf
11-Concurrence-Section critiques.pdf
 
Opérateurs logiques – Systèmes combinatoires et séquentiels
Opérateurs logiques – Systèmes combinatoires et séquentielsOpérateurs logiques – Systèmes combinatoires et séquentiels
Opérateurs logiques – Systèmes combinatoires et séquentiels
 
Codage de l'information
Codage de l'informationCodage de l'information
Codage de l'information
 
Slides octave1
Slides octave1Slides octave1
Slides octave1
 
langage C++
langage C++langage C++
langage C++
 
Les structures de données.pptx
Les structures de données.pptxLes structures de données.pptx
Les structures de données.pptx
 
cours lanagage c avec des exemples d'application
cours lanagage c avec des exemples d'applicationcours lanagage c avec des exemples d'application
cours lanagage c avec des exemples d'application
 
Formation Langage c.pptx
Formation Langage c.pptxFormation Langage c.pptx
Formation Langage c.pptx
 
Les_portes_kjnnnnjjjjjjjygfrlogiques.pdf
Les_portes_kjnnnnjjjjjjjygfrlogiques.pdfLes_portes_kjnnnnjjjjjjjygfrlogiques.pdf
Les_portes_kjnnnnjjjjjjjygfrlogiques.pdf
 
Cours Bus de communication et réseaux industriels. Chapitre 2 : Modbus.
Cours Bus de communication et réseaux industriels. Chapitre 2 : Modbus.Cours Bus de communication et réseaux industriels. Chapitre 2 : Modbus.
Cours Bus de communication et réseaux industriels. Chapitre 2 : Modbus.
 

Más de Peronnin Eric

Carte multifonction 2017
Carte multifonction 2017Carte multifonction 2017
Carte multifonction 2017Peronnin Eric
 
Relais bluetooth - Balance connectée
Relais bluetooth - Balance connectéeRelais bluetooth - Balance connectée
Relais bluetooth - Balance connectéePeronnin Eric
 
Examen final d'électronique - Mars 2016
Examen final d'électronique - Mars 2016Examen final d'électronique - Mars 2016
Examen final d'électronique - Mars 2016Peronnin Eric
 
Base des systèmes à microprocesseur
Base des systèmes à microprocesseurBase des systèmes à microprocesseur
Base des systèmes à microprocesseurPeronnin Eric
 
Notions de semi conducteur
Notions de semi conducteurNotions de semi conducteur
Notions de semi conducteurPeronnin Eric
 
Transmittance complexe - Fonction de transfert
Transmittance complexe - Fonction de transfertTransmittance complexe - Fonction de transfert
Transmittance complexe - Fonction de transfertPeronnin Eric
 
Conception d'un objet électronique : boitier pour QCM
Conception d'un objet électronique : boitier pour QCMConception d'un objet électronique : boitier pour QCM
Conception d'un objet électronique : boitier pour QCMPeronnin Eric
 
Réalisation d'un Thermomètre électronique - Présentation enfants
Réalisation d'un Thermomètre électronique -  Présentation enfantsRéalisation d'un Thermomètre électronique -  Présentation enfants
Réalisation d'un Thermomètre électronique - Présentation enfantsPeronnin Eric
 
Conception d'un objet électronique - Présentation adulte
Conception d'un objet électronique - Présentation adulteConception d'un objet électronique - Présentation adulte
Conception d'un objet électronique - Présentation adultePeronnin Eric
 
Composants reconfigurables
Composants reconfigurablesComposants reconfigurables
Composants reconfigurablesPeronnin Eric
 

Más de Peronnin Eric (15)

Carte multifonction 2017
Carte multifonction 2017Carte multifonction 2017
Carte multifonction 2017
 
Microcontrôleur
MicrocontrôleurMicrocontrôleur
Microcontrôleur
 
Relais bluetooth - Balance connectée
Relais bluetooth - Balance connectéeRelais bluetooth - Balance connectée
Relais bluetooth - Balance connectée
 
Examen final d'électronique - Mars 2016
Examen final d'électronique - Mars 2016Examen final d'électronique - Mars 2016
Examen final d'électronique - Mars 2016
 
Base des systèmes à microprocesseur
Base des systèmes à microprocesseurBase des systèmes à microprocesseur
Base des systèmes à microprocesseur
 
Transistors
TransistorsTransistors
Transistors
 
Diodes
DiodesDiodes
Diodes
 
Notions de semi conducteur
Notions de semi conducteurNotions de semi conducteur
Notions de semi conducteur
 
Quadripôles
QuadripôlesQuadripôles
Quadripôles
 
Transmittance complexe - Fonction de transfert
Transmittance complexe - Fonction de transfertTransmittance complexe - Fonction de transfert
Transmittance complexe - Fonction de transfert
 
Dipôles
DipôlesDipôles
Dipôles
 
Conception d'un objet électronique : boitier pour QCM
Conception d'un objet électronique : boitier pour QCMConception d'un objet électronique : boitier pour QCM
Conception d'un objet électronique : boitier pour QCM
 
Réalisation d'un Thermomètre électronique - Présentation enfants
Réalisation d'un Thermomètre électronique -  Présentation enfantsRéalisation d'un Thermomètre électronique -  Présentation enfants
Réalisation d'un Thermomètre électronique - Présentation enfants
 
Conception d'un objet électronique - Présentation adulte
Conception d'un objet électronique - Présentation adulteConception d'un objet électronique - Présentation adulte
Conception d'un objet électronique - Présentation adulte
 
Composants reconfigurables
Composants reconfigurablesComposants reconfigurables
Composants reconfigurables
 

Último

les_infections_a_streptocoques.pptkioljhk
les_infections_a_streptocoques.pptkioljhkles_infections_a_streptocoques.pptkioljhk
les_infections_a_streptocoques.pptkioljhkRefRama
 
Bilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdfBilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdfAmgdoulHatim
 
L application de la physique classique dans le golf.pptx
L application de la physique classique dans le golf.pptxL application de la physique classique dans le golf.pptx
L application de la physique classique dans le golf.pptxhamzagame
 
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...Nguyen Thanh Tu Collection
 
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptx
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptxIntégration des TICE dans l'enseignement de la Physique-Chimie.pptx
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptxabdououanighd
 
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...Universidad Complutense de Madrid
 
Télécommunication et transport .pdfcours
Télécommunication et transport .pdfcoursTélécommunication et transport .pdfcours
Télécommunication et transport .pdfcourshalima98ahlmohamed
 
Apolonia, Apolonia.pptx Film documentaire
Apolonia, Apolonia.pptx         Film documentaireApolonia, Apolonia.pptx         Film documentaire
Apolonia, Apolonia.pptx Film documentaireTxaruka
 
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projet
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projetFormation échiquéenne jwhyCHESS, parallèle avec la planification de projet
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projetJeanYvesMoine
 
STRATEGIE_D’APPRENTISSAGE flee_DU_FLE.pdf
STRATEGIE_D’APPRENTISSAGE flee_DU_FLE.pdfSTRATEGIE_D’APPRENTISSAGE flee_DU_FLE.pdf
STRATEGIE_D’APPRENTISSAGE flee_DU_FLE.pdfGamal Mansour
 
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptxCopie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptxikospam0
 
658708519-Power-Point-Management-Interculturel.pdf
658708519-Power-Point-Management-Interculturel.pdf658708519-Power-Point-Management-Interculturel.pdf
658708519-Power-Point-Management-Interculturel.pdfMariaClaraAlves46
 
Cours Généralités sur les systèmes informatiques
Cours Généralités sur les systèmes informatiquesCours Généralités sur les systèmes informatiques
Cours Généralités sur les systèmes informatiquesMohammedAmineHatoch
 
La mondialisation avantages et inconvénients
La mondialisation avantages et inconvénientsLa mondialisation avantages et inconvénients
La mondialisation avantages et inconvénientsJaouadMhirach
 
Les roches magmatique géodynamique interne.pptx
Les roches magmatique géodynamique interne.pptxLes roches magmatique géodynamique interne.pptx
Les roches magmatique géodynamique interne.pptxShinyaHilalYamanaka
 
Conférence Sommet de la formation 2024 : Développer des compétences pour la m...
Conférence Sommet de la formation 2024 : Développer des compétences pour la m...Conférence Sommet de la formation 2024 : Développer des compétences pour la m...
Conférence Sommet de la formation 2024 : Développer des compétences pour la m...Technologia Formation
 
L'expression du but : fiche et exercices niveau C1 FLE
L'expression du but : fiche et exercices  niveau C1 FLEL'expression du but : fiche et exercices  niveau C1 FLE
L'expression du but : fiche et exercices niveau C1 FLElebaobabbleu
 
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANK
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANKRAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANK
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANKNassimaMdh
 
Neuvaine de la Pentecôte avec des textes de saint Jean Eudes
Neuvaine de la Pentecôte avec des textes de saint Jean EudesNeuvaine de la Pentecôte avec des textes de saint Jean Eudes
Neuvaine de la Pentecôte avec des textes de saint Jean EudesUnidad de Espiritualidad Eudista
 
Formation qhse - GIASE saqit_105135.pptx
Formation qhse - GIASE saqit_105135.pptxFormation qhse - GIASE saqit_105135.pptx
Formation qhse - GIASE saqit_105135.pptxrajaakiass01
 

Último (20)

les_infections_a_streptocoques.pptkioljhk
les_infections_a_streptocoques.pptkioljhkles_infections_a_streptocoques.pptkioljhk
les_infections_a_streptocoques.pptkioljhk
 
Bilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdfBilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdf
 
L application de la physique classique dans le golf.pptx
L application de la physique classique dans le golf.pptxL application de la physique classique dans le golf.pptx
L application de la physique classique dans le golf.pptx
 
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
 
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptx
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptxIntégration des TICE dans l'enseignement de la Physique-Chimie.pptx
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptx
 
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...
 
Télécommunication et transport .pdfcours
Télécommunication et transport .pdfcoursTélécommunication et transport .pdfcours
Télécommunication et transport .pdfcours
 
Apolonia, Apolonia.pptx Film documentaire
Apolonia, Apolonia.pptx         Film documentaireApolonia, Apolonia.pptx         Film documentaire
Apolonia, Apolonia.pptx Film documentaire
 
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projet
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projetFormation échiquéenne jwhyCHESS, parallèle avec la planification de projet
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projet
 
STRATEGIE_D’APPRENTISSAGE flee_DU_FLE.pdf
STRATEGIE_D’APPRENTISSAGE flee_DU_FLE.pdfSTRATEGIE_D’APPRENTISSAGE flee_DU_FLE.pdf
STRATEGIE_D’APPRENTISSAGE flee_DU_FLE.pdf
 
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptxCopie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
 
658708519-Power-Point-Management-Interculturel.pdf
658708519-Power-Point-Management-Interculturel.pdf658708519-Power-Point-Management-Interculturel.pdf
658708519-Power-Point-Management-Interculturel.pdf
 
Cours Généralités sur les systèmes informatiques
Cours Généralités sur les systèmes informatiquesCours Généralités sur les systèmes informatiques
Cours Généralités sur les systèmes informatiques
 
La mondialisation avantages et inconvénients
La mondialisation avantages et inconvénientsLa mondialisation avantages et inconvénients
La mondialisation avantages et inconvénients
 
Les roches magmatique géodynamique interne.pptx
Les roches magmatique géodynamique interne.pptxLes roches magmatique géodynamique interne.pptx
Les roches magmatique géodynamique interne.pptx
 
Conférence Sommet de la formation 2024 : Développer des compétences pour la m...
Conférence Sommet de la formation 2024 : Développer des compétences pour la m...Conférence Sommet de la formation 2024 : Développer des compétences pour la m...
Conférence Sommet de la formation 2024 : Développer des compétences pour la m...
 
L'expression du but : fiche et exercices niveau C1 FLE
L'expression du but : fiche et exercices  niveau C1 FLEL'expression du but : fiche et exercices  niveau C1 FLE
L'expression du but : fiche et exercices niveau C1 FLE
 
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANK
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANKRAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANK
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANK
 
Neuvaine de la Pentecôte avec des textes de saint Jean Eudes
Neuvaine de la Pentecôte avec des textes de saint Jean EudesNeuvaine de la Pentecôte avec des textes de saint Jean Eudes
Neuvaine de la Pentecôte avec des textes de saint Jean Eudes
 
Formation qhse - GIASE saqit_105135.pptx
Formation qhse - GIASE saqit_105135.pptxFormation qhse - GIASE saqit_105135.pptx
Formation qhse - GIASE saqit_105135.pptx
 

Langage vhdl

  • 1. Synthèse de composants : Langage VHDL Module d’Electronique Numérique
  • 2. www.geii.eu 2 Introduction VHDL : Very high speed circuit Hardware Description Language  Langage de Haut Niveau adapté à une description fonctionnelle pour cibler des composants logiques reconfigurables.  Concurrent du Verilog HDL. Limites du cours  Utilisation du VHDL pour décrire le comportement d’un bloc fonctionnel simple ayant :  des entrées,  des sorties.  Les structures de programmation permettant une description hiérarchique directement en VHDL ne sont pas abordées :  utilisation de l’outil de schéma pour la description hiérarchique,  pas de modèles vectoriels de dimension variable. 2
  • 3. www.geii.eu 3 Structure d’un programme VHDL Sur un exemple simple : la description d’une porte ET 3
  • 4. www.geii.eu 4 Déclaration des bibliothèques Le VHDL utilise des paquetages de bibliothèques  La bibliothèque IEEE est indispensable pour la synthèse de composants logiques programmes. Pour utiliser une bibliothèque  Mot clé : library  Exemple : library ieee; Pour utiliser un paquetage d’une bibliothèque  Mot clé : use  Exemple : use ieee.std_logic_1164.all; Notes :  Le paquetage std_logic_1164 est indispensable à tout projet.  Le .all précise que le paquetage doit être chargé en totalité.  Pour les traitements d’entiers et de vecteurs signés ou non signés, un ou plusieurs paquetages doivent être chargés. 4
  • 5. www.geii.eu 5 Description externe du bloc fonctionnel Porte ET vue de l’extérieur En VHDL, description externe = entité (entity) 5 PorteET Entree1 Entree2 Sortie  Dans cet exemple :  PorteET = nom de l’entité créée.  Entree1 et Entree2 sont des entrées de type std_logic.  Sortie est une sortie de type std_logic.
  • 6. www.geii.eu 6 Signaux Définition  En VHDL, on appelle signal toute grandeur qui peut exister après le processus de synthèse et qui peut donc être visualisée sur un oscilloscope si on n’en interdit pas la simplification. C’est bien une grandeur physique.  Les entrées, sorties et entrées-sorties de l’entité sont des signaux. Les signaux sont typés  Comme en C pour les variables, les signaux peuvent représentés des informations de différentes natures et sont donc affublés d’un type. 6
  • 7. www.geii.eu 7 Types de signaux Types logiques  bit  Type binaire pouvant prendre deux valeurs : ‘0’ ou ‘1’.  Insuffisant pour la synthèse de composant.  boolean  Deux valeurs possibles : true ou false.  C’est le type de référence des structures conditionnelles.  std_logic  C’est le type scalaire de référence pour la synthèse et la simulation avec 9 valeurs possibles : – 3 ayant un sens physique : ‘0’, ‘1’, ‘Z’ pour la haute impédance, – 6 valeurs utiles pour la simulation : ‘U’ pour non initialisé, ‘X’ pour un résultat inconnu, ‘H’ niveau haut probable, ‘L’ niveau bas probable, ‘W’ niveau ne pouvant être qualifié de ‘H’ ou ‘L’, ‘-’ sans importance. 7
  • 8. www.geii.eu 8 Types de signaux Types logiques vectoriels  Assimilables à des tableaux d’éléments d’un type scalaire.  Type std_logic_vector = vecteur de std_logic  Déclaration d’un signal signal a : std_logic_vector(3 downto 0); – a(3) désigne le poids fort – a(0) est le poids faible signal b : std_logic_vector(1 to 4); – b(1) est le poids fort et b(4) le poids faible Note 1 : le poids fort est toujours à gauche. Note 2 : les signaux représentants des données numériques codées en binaire sur N bits doivent être déclarés sous la forme de std_logic_vector(N-1 downto 0).  unsigned  c’est un vecteur de std_logic utilisable comme un std_logic_vector et pour lequel les opérations arithmétiques sont définies.  le passage vers les entiers est facilité par des fonctions de conversions. 8 0 0 1 0a = 8 4 2 1 𝑎(3) 𝑎(2) 𝑎(1) 𝑎(0) 𝑎(1) 𝑎(2) 𝑎(3) 𝑎(4) 0 0 1 0a =
  • 9. www.geii.eu 9 Types de signaux Types mathématiques  integer  le type entier de référence, limité à 32 bits signés sur certains compilateurs VHDL (ModelSim-Altera).  Déclaration de signaux entiers signal a : integer; signal b : integer range 0 to 20; -- b entier limité à l’intervalle 0 à 20  real  type réel en virgule flottante. Types caractères et chaînes de caractères  char  string Note : juste cités pour information … 9
  • 10. www.geii.eu 10 Affectation à un signal Opérateur d’affectation sur les signaux en VHDL : le signe <=  Exemples d’affectations Pour plus de lisibilité, on peut aussi déclarer des constantes  Noter l’opérateur d’affectation := pour les constantes. 10
  • 11. www.geii.eu 11 Description interne du bloc fonctionnel Elle est réalisée dans la section architecture du code  PorteET est le nom de l’entité dont le comportement est décrit.  rtl (Register Transfer Level) est le nom donné à l’architecture.  La description se fait entre les mots clés begin et end de l’architecture. Note : entre les mots clés architecture et begin, on peut définir :  des signaux internes utiles pour des calculs internes au bloc fonctionnel,  des constantes permettant une meilleure lisibilité du code. 11
  • 12. www.geii.eu 12 Domaine concurrent C’est l’espace entre les mots clés begin et end de l’architecture Pourquoi qualifie-t-on ce domaine de concurrent ?  Car les structures employées ici sont concurrentes dans le temps  elles sont calculées en même temps.  On y réalise des traitements de flux de données parallèles. Conséquence  L’ordre de ces structures est sans importance  Exemple : et conduisent à des résultats temporels identiques. Eléments du domaine concurrent  Affectations simples.  Structures de traitement de flots de données :  Structure when … else …  Structure with … select …  Processus utilisant une description séquentielle. 12 1 calcul ici 1 calcul là
  • 13. www.geii.eu 13 Affectation simple Opérateur pour les signaux : Sous réserve qu’ils soient définis pour les types de signaux entrant l’expression, expression peut utiliser  Des opérateurs logiques  and , or , xor (ou exclusif), not (complément).  nand , nor.  Des opérateurs arithmétiques  + , - , *, /, mod (modulo), rem (reste).  Opérateur de concaténation  &  Des opérateurs relationnels  < , >, <= , >= , = , /= (différent de). 13
  • 14. www.geii.eu 14 Structure when… else … Sur l’exemple de la porte ET  Note : la structure se termine toujours par un else fixant la sortie pour les combinaisons non explicitées (rappel : les signaux Entree1 et Entree2 peuvent prendre 9 valeurs chacun). Optimisation  En vectorisant les signaux d’entrées. Entrees est un signal interne de l’architecture 14
  • 15. www.geii.eu 15 Application sur un exemple Unité arithmétique simple  Deux opérations possibles :  Operation = ‘0’  Resultat  OperandeA + OperandeB  Operation = ‘1’  Resultat  OperandeA - OperandeB 15 Operation OperandeA OperandeB Resultat 8 8 8
  • 16. www.geii.eu 16 Solution avec la structure when … else … Code source de l’Unité Arithmétique élémentaire UA.vhd 16
  • 17. www.geii.eu 17 Solution avec la structure with… select … Code source de l’Unité Arithmétique élémentaire UA.vhd  Note : la ligne "00000000" when others; est utile pour prévoir tous les cas d’entrées possibles, en particulier pour la simulation. 17
  • 18. www.geii.eu 18 Résultat de simulation Process de génération des signaux dans test_UA.vhd  OperandeA et OperandeB sont des std_logic_vector  il faut procéder à une conversion pour leur affecter un entier conv_std_logic_vector(valeur, nombre de bits). – Cette conversion est possible grâce à la fonction du paquetage std_logic_arith dont voici la définition  Test réalisé pour un couple d’opérandes et différentes valeurs possibles de Opération. 18
  • 19. www.geii.eu 19 Résultat de simulation Simulation RTL (au niveau du code source)  Notes :  Les temps de propagation dans le circuit n’apparaissent pas car la simulation est seulement fonctionnelle.  Pour une opération indéfinie (donc autre que addition ou soustraction), on obtient bien une sortie nulle comme explicitée comme sortie par défaut. 19
  • 20. www.geii.eu 20 Domaine séquentiel A l’intérieur du domaine concurrent, on peut effectuer des descriptions séquentielles  domaine séquentiel  Accès à des structures puissantes et lisibles, rappelant celles du C.  Réalisation de blocs combinatoires avec une autre approche que celle du domaine concurrent mais aussi de blocs séquentiels.  Prise en compte aisée des phénomènes synchrones. Mot clé débutant la description séquentielle1  process(liste_de_sensibilité)  Liste de sensibilité = liste des signaux dont le changement d’état lance le calcul du process.  La liste de sensibilité peut être vide  on ôte les parenthèses. Dans ce cas, le process est exécuté sans condition.  Le process peut être nommé (voir suite). 20 1. On parle également de description comportementale.
  • 21. www.geii.eu 21 Structure d’un process 21 Nom facultatif Liste des signaux dont le changement d’état lance le calcul du process Corps principal du process Code utilisant des structures de programmation séquentielles : - affectations, - structures conditionnelles, - structures répétitives.
  • 22. www.geii.eu 22 Mécanismes de la liste de sensibilité Premier exemple  Equation d’un ET dans un process avec omission de l’impact du changement d’une des entrées dans la liste de sensibilité.  Résultat de simulation induit  Cas de la simulation RTL (niveau source). 22 On retrouve bien un ET. La sortie devrait retomber à ‘0’ si la fonction ET était correctement implémentée. Hors, elle apparaît mémorisée du fait de l’oubli de Entree1 dans la liste de sensibilité.
  • 23. www.geii.eu 23 Mécanismes de la liste de sensibilité  Cas d’une simulation après placement/routage – On retrouve le fonctionnement d’une porte ET au temps propagation près imposé par le circuit.  Que s’est-il passé ? – Le compilateur a complété la liste de sensibilité en tenant compte de l’ensemble des signaux figurant comme des entrées dans les équations du process. 23
  • 24. www.geii.eu 24 Mécanismes de la liste de sensibilité Et si on souhaitait ne prendre en compte que les changements d’états de Entree2 ?  Ce n’est possible que sur les fronts montants ou descendants mais pas les deux à la fois. 24
  • 25. www.geii.eu 25 Mécanismes de la liste de sensibilité Variante  En effectuant le calcul seulement lorsque Entree1 = ‘1’  On obtient le résultat suivant :  On constate que la sortie est mémorisée lorsque Entree1 = ‘0’ Conséquence importante : si une sortie n’est pas affectée durant le calcul d’un process, son état antérieur est mémorisé. 25
  • 26. www.geii.eu 26 Mécanismes de la liste de sensibilité Après placement/routage, on voit apparaître la mémorisation par rebouclage de la sortie dans le LUT  C’est une mémorisation asynchrone. 26
  • 27. www.geii.eu 27 Structures conditionnelles Elles sont semblables à celles du C  Forme en if … Note : condition est une expression dont le résultat est un booléen et utilisant généralement les opérateurs relationnels. 27  Forme en case …  Très utile pour les machines à états.
  • 28. www.geii.eu 28 Système combinatoire décrit par un process Exemple : multiplexeur 4 voies vers 1 voie  Fonctionnement : celui d’un commutateur  si Selection = "00" alors Sortie  Entree0  si Selection = "01" alors Sortie  Entree1  si Selection = "10" alors Sortie  Entree2  si Selection = "11" alors Sortie  Entree3 28 Selection Entree0 Sortie 2 Entree1 Entree2 Entree3
  • 29. www.geii.eu 29 Multiplexeur 4 vers 1 avec des if … Vis-à-vis de la synthèse, toutes les combinaisons binaires du vecteur Selection ont été prises en considération 29
  • 30. www.geii.eu 30 Multiplexeur 4 vers 1 avec des if … Analyse du placement/routage  La sortie obtenue est purement combinatoire.  La synthèse nécessite 2 éléments logiques. 30
  • 31. www.geii.eu 31 Multiplexeur 4 vers 1 avec des if … Analyse du placement/routage  La sortie obtenue est purement combinatoire. 31
  • 32. www.geii.eu 32 Multiplexeur 4 vers 1 avec des if … Résultat de simulation fonctionnelle (RTL) Résultat de simulation niveau portes (dans le composant) 32
  • 33. www.geii.eu 33 Multiplexeur 3 vers 1 avec des if … Même fonctionnement en supprimant Entree3 Première approche  On reprend le code précédent en supprimant la combinaison correspondant à l’affectation de Entree3 sur Sortie. Note : parmi les 4 possibles pour Selection, une combinaison binaire n’est donc pas prise en compte. 33
  • 34. www.geii.eu 34 Multiplexeur 3 vers 1 avec des if … Résultat de la simulation fonctionnelle pour la première approche  La mémorisation de la sortie est due au fait que toutes les combinaisons binaires de Selection n’étant pas explicitées, le compilateur prévoit de mémoriser le signal Sortie si aucune valeur ne lui est affectée au moment du calcul du process. 34 Lorsque Selection="11" , on constate que la sortie est mémorisée
  • 35. www.geii.eu 35 Multiplexeur 3 vers 1 avec des if … Analyse du placement/routage  Le multiplexeur 3 vers 1 ainsi réalisé apparaît plus complexe que le modèle 4 vers 1 présentant pourtant une entrée de plus ! 35 On voit qu’il existe un verrouillage au niveau de la sortie. Verrouillage obtenu par rebouclage de la sortie vers les entrées du LUT (mémorisation asynchrone).
  • 36. www.geii.eu 36 Multiplexeur 3 vers 1 avec des if … Seconde approche  En explicitant toutes les combinaisons binaires de Selection. 36
  • 37. www.geii.eu 37 Multiplexeur 3 vers 1 avec des if … Troisième approche  En fixant la valeur par défaut dès l’ entrée dans le process. 37
  • 38. www.geii.eu 38 Système combinatoire dans un process Conséquence de ce qui a été vu précédemment  Ne pas traiter toutes les combinaisons entraîne :  Une mémorisation des sorties traitées par un process.  Une consommation supérieure des ressources du FPGA.  Un temps de calcul généralement supérieur à cause – de l’augmentation du nombre de LUT mis en œuvre – du rebouclage de la sortie vers les entrées du LUT  Pour réaliser un système réellement combinatoire donc sans risque de mémorisation des sorties, il suffit : soit :  de traiter toutes les combinaisons d’entrées. soit :  d’initialiser la sortie en début de process car la mémorisation n’apparaît plus dès lors que la sortie est affectée au moins une fois au cours du calcul du process. 38
  • 39. www.geii.eu 39 Structures répétitives Variables  La variable est utilisée comme un artifice de génération de code  Elle n’existe que dans le process.  Ce n’est pas une information synthétisable  à l’inverse du signal, elle n’a pas de sens physique donc elle n’est pas mesurable dans le composant.  Elle se déclare entre les mots clés process et begin  Elle peut être de n’importe quel type, énuméré ou non 39
  • 40. www.geii.eu 40 Structures répétitives Boucle for variable in range loop … end loop;  Syntaxe  Exemple : process de test pour le décodeur 7 segments  Utilisation d’un vecteur interne pour les entrées.  Redistribution du vecteur généré sur chacune des entrées. 40 Décodeur 7 segments BCD1 C BCD0 BCD3 BCD2 B A F E D G
  • 41. www.geii.eu 41 Structures répétitives Boucle for variable in range loop … end loop;  Exemple : additionneur 4 bits avec retenue d’entrée. 41 Additionneur 4 bits carry_in B A carry_out S
  • 42. www.geii.eu 42 Process d’une machine séquentielle Attribut event d’un signal  Déjà vu, un process se lance lorsqu’un signal de la liste de sensibilité change d’état.  Pour savoir quel signal a changé d’état, on utilise l’attribut event des signaux qui signal qu’un signal a fait l’objet d’un changement d’état en entrant dans le process. Process d’une machine synchrone à remise à 0 asynchrone  On traite en premier le reset.  Puis ce qui doit l’être au moment du front montant de l’horloge (clk ici). 42
  • 43. www.geii.eu 43 Exemples Synthèse d’une bascule D avec entrée de reset asynchrone Note : le reset est toujours choisi actif à l’état bas. 43 D Bascule D clk Q reset
  • 44. www.geii.eu 44 Exemple : compteur 4 bits Synthèse d’un compteur 4 bits avec entrée de reset asynchrone  Comptage de 0 à 15.  La sortie Q du compteur est un std_logic_vector(3 downto 0)  L’opération Q <= Q + 1 n’est possible qu’à condition d’inclure le paquetage ieee.std_logic_unsigned qui définit l’addition entre un std_logic_vector et un integer 44 Compteur 4 bits clk Q reset
  • 45. www.geii.eu 45 Exemple : compteur 4 bits de 0 à 15 Résultat de simulation 45 On voit l’action clairement asynchrone du reset puisqu’il est pris en compte indépendamment du signal d’horloge. La sortie Q évolue bien de façon synchrone : Q change de valeur sur les fronts montants de clk.
  • 46. www.geii.eu 46 Variante : compteur 4 bits de 0 à 11 Objectif : compter de 0 à 11 de façon cyclique (arrivé à 11, on repasse à 0) Première approche :  celle du C :  Simulation correspondante :  Analyse « C » lorsque Q = 11 en entrant dans le process sur un front montant de clk :  Q <= Q +1  Q 11+1  Q  12  la condition suivante devrait remettre Q à 0 mais ce n’est pas ce qui se produit ! Pourquoi ? 46
  • 47. www.geii.eu 47 Evolution des signaux dans un process Tout signal utilisé dans une équation pour le calcul d’une affectation ou d’une condition est une entrée. Tout signal auquel on affecte une valeur, constante ou calculée à partir d’une équation, est une sortie. Un signal peut à la fois être utilisé comme une entrée et comme une sortie. Dans un process, la valeur d’une entrée reste figée à l’état qu’elle possédait au moment d’entrée dans le process  une sortie ne change réellement de valeur qu’en sortant du process. 47
  • 48. www.geii.eu 48 Evolution des signaux dans un process Incidence sur la lecture d’un process: Conséquence sur l’exemple du compteur :  quand on entre dans le process sur un front montant d’horloge avec , c’est cette valeur qui sera utilisée pour les conditions  le calcul de a une incidence sur la valeur future de mais aucune sur l’évaluation de la condition  passe à 12 ! 48 devrait se lire : devrait se lire : devrait se lire :
  • 49. www.geii.eu 49 Variante : compteur 4 bits de 0 à 11 Objectif : compter de 0 à 11 de façon cyclique (arrivé à 11, on repasse à 0) Seconde approche :  si on rentre dans le process avec , cela signifie que le passage à 11 s’est effectué au cycle d’horloge précédent  on repasse à 0 et on a donc compté de 0 à 11. Simulation correspondante : 49
  • 50. Modèle Powerpoint utilisé par les présentations Intel