0% ont trouvé ce document utile (0 vote)
25 vues25 pages

VHDL Part1

VHDL est un langage de description matériel utilisé pour représenter le comportement et l'architecture des systèmes électroniques numériques. Il se compose d'entités et d'architectures, permettant la conception de circuits intégrés et la modélisation de simulations numériques. Le langage supporte des instructions concurrentes et séquentielles, et utilise des bibliothèques standardisées pour définir les types de signaux et les opérations logiques.

Transféré par

mohammed.elhamlili
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
25 vues25 pages

VHDL Part1

VHDL est un langage de description matériel utilisé pour représenter le comportement et l'architecture des systèmes électroniques numériques. Il se compose d'entités et d'architectures, permettant la conception de circuits intégrés et la modélisation de simulations numériques. Le langage supporte des instructions concurrentes et séquentielles, et utilise des bibliothèques standardisées pour définir les types de signaux et les opérations logiques.

Transféré par

mohammed.elhamlili
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

La programmation VHDL:

Concepts de base du langage


VHDL
Chapitre 4
Chapitre 4 :La programmation VHDL

 Introduction

VHDL est un langage de description matériel destiné à représenter le comportement ainsi que l'architecture

d’un système électronique numérique. Son nom complet est VHSIC Hardware Description Language.

• L'intérêt d'une telle description réside dans son caractère exécutable : une spécification décrite en VHDL peut

être vérifiée par simulation, avant que la conception détaillée ne soit terminée. En outre, les outils de

conception assistée par ordinateur permettant de passer directement d'une description fonctionnelle en

VHDL à un schéma en porte logique ont révolutionné les méthodes de conception des circuits numériques,

ASIC ou FPGA.

VHSIC : Very High Speed Integrated Circuit


Chapitre 4 :La programmation VHDL

• Structure d’une description VHDL


o Entité et architecture
Une description VHDL est composée de 2 parties indissociables à savoir :
• L’entité (ENTITY), elle définit les entrées et sorties.
• L’architecture (ARCHITECTURE), elle contient les instructions VHDL permettant de réaliser le fonctionnement attendu du circuit
logique par une description comportementale ou structurelle.
Chapitre 4 :La programmation VHDL

• Structure d’une description VHDL


Exemple: semi Additionneur.

entity DA is
port (A, B : in bit; S, R : out bit);
end DA ;

architecture arch_addi of DA is
Begin S <= A xor B;
R <= A and B;
end arch_addi;
Chapitre 4 :La programmation VHDL

Programmation ou description?
• Les objectifs du langage VHDL
–Conception de circuits intégrés reconfigurable ou non (ASIC, FPGA…) : SYNTHESE
–Mise au point de modèle de simulations numériques (circuits virtuels) : MODELISATION
• Le langage est capable de DECRIRE
COMBINATOIRE: instructions dites CONCURRENTES
La sortie ne dépend pas de l’état passé
Un vecteur d’entrée = un vecteur de sortie unique
SEQUENTIELLE: utilisation d’un PROCESS
La sortie dépend de son état passé
Système nécessitant une horloge (systèmes dits synchrones)
Chapitre 4 :La programmation VHDL

• Structure d’une description VHDL


Chapitre 4 :La programmation VHDL

• Structure d’une description VHDL


Chapitre 4 :La programmation VHDL

• Déclaration des Bibliothèques

• IEEE (Institut of Electrical and Electronics Engineers) a normalisé les bibliothèques VHDL :
→Std_logic_1164 contiennent les définitions des types de signaux électroniques, des fonctions
et sous programmes permettant de réaliser des opérations logiques;
→ Numeric_std contient la définition des types numériques et les fonctions et sous programmes
permettant de réaliser des opérations arithmétiques.

• La directive Use permet de sélectionner les bibliothèques à utiliser


Chapitre 4 :La programmation VHDL

• Nom et sens des signaux

• Les noms attribués par l'utilisateur doivent être constitués uniquement à partir les 26 lettres de l'alphabet
(non accentuées), les chiffres de 0 à 9 et du caractère "_" (souligné).
• Les noms des signaux doivent commencer par une lettre et ne pas se terminer par le souligné.
• On distingue 4 sens pour les signaux :

In: pour un signal en entrée.


out: pour un signal en sortie.
inout: pour un signal en entrée sortie
buffer: pour un signal en sortie mais utilisé comme entrée dans la
description..
Chapitre 4 :La programmation VHDL
• Le Type

Le TYPE utilisé pour les signaux d'entrées/sorties est:


le std_logic pour un signal.
le std_logic_vector pour un bus composé de plusieurs signaux.
Par exemple un bus bidirectionnel de 5 bits s'écrira :
LATCH: inout std_logic_vector (4 downto 0);
Où LATCH(4) correspond au MSB et LATCH(0) correspond au LSB.
Les valeurs que peuvent prendre un signal de type std_logic sont:
- '0' ou 'L': pour un niveau bas.
- ‘1’ou 'H': pour un niveau haut.
- 'Z': pour état haute impédance.
- *X* : Quelconque, c'est à dire n'importe quelle valeur.
Chapitre 4 :La programmation VHDL

 Les Opérateurs.

 L’affectation Simple

Dans une description VHDL, c’est certainement l’opérateur le plus utilisé. En effet il permet de modifier
l’état d’un signal en fonction d’autres signaux et/ou d’autres opérateurs.
Exemple avec des portes logiques : S1 <= E2 and E1 ;
Les valeurs numériques que l’on peut affecter à un signal sont les suivantes :
- ‘1’ ou ‘H’ pour un niveau haut avec un signal de 1 bit.
- ‘0’ ou ‘L’ pour un niveau bas avec un signal de 1 bit.
- ‘Z’ pour un état haute impédance avec un signal de 1 bit.
- ‘X’ pour un état quelconque, c’est à dire ‘0’ ou ‘1’.
Chapitre 4 :La programmation VHDL

 Les Opérateurs
 Opérateur de Concaténation : &

Cet opérateur permet de joindre des signaux entre eux.


Exemple:
Chapitre 4 :La programmation VHDL

 Opérateurs Logiques

Exemples :
Chapitre 4 :La programmation VHDL

 Opérateurs Arithmétiques

Pour pouvoir utiliser les opérateurs ci-dessus il faut rajouter les bibliothèques suivantes au début du fichier
VHDL:

Exemple:

Attention l’utilisation de ces opérateurs avec des signaux comportant un nombre de bits important peut
générer de grandes structures électroniques.
Exemple:
Chapitre 4 :La programmation VHDL

 Opérateurs Relationnels
Ils permettent de modifier l’état d’un signal ou de signaux suivant le résultat d’un test ou d’une condition. En
logique combinatoire ils sont souvent utilisés avec les instructions :
- when … else …
- with …. Select ….
Chapitre 4 :La programmation VHDL

 Les Instructions Logique Combinatoire.


Qu’est-ce que le mode « concurrent » ? Pour une description VHDL toutes les instructions sont évaluées et
affectent les signaux de sortie en même temps. L’ordre dans lequel elles sont écrites n’a aucune importance.
En effet la description génère des structures électroniques, c’est la grande différence entre une description
VHDL et un langage informatique classique.

Exemple: Pour le décodeur 1 parmi 4, l’ordre dans lequel seront écrites les instructions n’a aucune importance.

L’architecture ci-dessous est équivalente :


Chapitre 4 :La programmation VHDL

 Les Instructions Logique Combinatoire.


L’instruction définissant l’état de D0 a été déplacée à la troisième ligne, la synthèse de cette architecture est équivalente à la
première.

Schéma en Ports Logiques (Circuit Combinatoire)


Chapitre 4 :La programmation VHDL

 Les Instructions du Mode « Concurrent ».


Affectation Conditionnelle
Cette instruction modifie l’état d’un signal suivant le résultat d’une condition logique entre un ou des
signaux, valeurs, constantes.

Remarque : l’instruction [else expression] n’est pas obligatoire mais elle est fortement conseillée, elle
permet de définir la valeur du SIGNAL dans le cas où la condition n’est pas remplie. On peut mettre en
cascade cette instruction

Exemple N°1 :

Schéma correspondant :
 Les Instructions du Mode « Concurrent ».
Affectation Conditionnelle
Cette instruction modifie l’état d’un signal suivant le résultat d’une condition logique entre un ou des
signaux, valeurs, constantes.

Affectation Sélective

Cette instruction permet d’affecter différentes valeurs à un signal, selon les valeurs prises par un signal dit de
sélection.
Chapitre 4 :La programmation VHDL

 Les Instructions du Mode « Concurrent ».


Exemple N°2 :
Chapitre 4 :La programmation VHDL

 Les Instructions du Mode « Concurrent ».


Affectation Sélective

Cette instruction permet d’affecter différentes valeurs à un signal, selon les valeurs prises par un signal dit de
sélection.

Remarque: l’instruction [expression when others] n’est pas obligatoire mais fortement conseillée, elle permet
de définir la valeur du SIGNAL dans le cas où la condition n’est pas remplie.
Chapitre 4 :La programmation VHDL

 Les Instructions du Mode « Concurrent ».


Affectation Sélective

Remarque: when others est nécessaire car il faut toujours définir les autres cas du signal de sélection pour
prendre en compte toutes les valeurs possibles de celui-ci.
Chapitre 4 :La programmation VHDL

 Les Instructions du Mode « Concurrent ».

En conclusion, les descriptions précédentes donnent le même schéma, ce qui est rassurant. L’étude des deux
instructions montre toute la puissance du langage VHDL pour décrire un circuit électronique, en effet si on
avait été obligé d’écrire les équations avec des opérateurs de base pour chaque sortie, on aurait eu les
instructions suivantes :

L’équation logique ci-dessus donne aussi le même schéma, mais elle est peu compréhensible, c’est pourquoi on
préfère des descriptions de plus haut niveau en utilisant les instructions VHDL évoluées.
Chapitre 4 :La programmation VHDL

Donner la description VHDL : de la porte logique NOR à 2 entrées,

Library IEEE ;

USE ieee.std_logic_1164.all ;

entity PORTE is

Port (A, B : in std_logic; S out std_logic) ;

end PORTE

architecture ARCH_PORTE of porte is begin

S<= A nor B ;

end ARCH_PORTE ;
Chapitre 4 :La programmation VHDL

d'un composant xor3 décrit par le schéma suivant.


library IEEE;
use IEEE.std_logic_1164.all;
ENTITY xor3 is PORT (
a : IN STD_LOGIC;
b : IN STD_LOGIC;
c : IN STD_LOGIC;
x : OUT STD_LOGIC);
END xor3;
ARCHITECTURE arch of xor3 is
SIGNAL sig_int: STD_LOGIC;
BEGIN
sig_int <= a XOR b ;
x <= c XOR sig int ;
END arch_flot ;

Vous aimerez peut-être aussi