La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Cours VHDL Ing Mohamed MASMOUDI

Présentations similaires


Présentation au sujet: "Cours VHDL Ing Mohamed MASMOUDI"— Transcription de la présentation:

1 Cours VHDL Ing Mohamed MASMOUDI

2 Le VHDL V ery High Speed Integrated Circuit H ardware D escription L angage Langage : de description structurelle et comportementale de la conception des dispositifs matériels en électronique numérique (ASICs, CPLD, FPGA, logique câblée) Autres HDL : Verilog, UDL/1, Estérel, Hardware C 2M. MASMOUDI Cours VHDL

3 Pourquoi? Langage pour la spécification des systèmes digitaux, aussi bien au niveau comportemental que structural Utilisation: description des systèmes simulation aide à la conception documentation Caractéristiques principales: description à plusieurs niveaux simulation activée par événements (event-driven) modularité extensibilité langage général, fortement typé 3M. MASMOUDI Cours VHDL

4 Historique Initiation du langage par le US - DoD Développement des bases du langage par Intermetrics, IBM et TI Transfert des droits à lIEEE Publication du standard IEEE 1076 Révision du standard IEEE M. MASMOUDI Cours VHDL

5 Concept VHDL ) VHDL permet de coder une fonction dune manière structurelle (comme un schéma) et/ou comportementale (fonctionnelle) Codage comportemental plus proche de lalgorithme portabilité, maintenabilité, versatilité Codage structurel création dune hiérarchie emploi de macrofonctions format de la liste déquipotentielle (netlist) S <= not ((A and B) or (C and D)); B S D C A 5M. MASMOUDI Cours VHDL

6 Niveau dabstraction Le codage en VHDL peut se faire selon 4 niveaux dabstraction, ce qui permet une conception descendante S=fft(e,64) radix1 radix2 radix3 Synthèse logique Synthèse logique Niveau 1 Niveau 2 Niveau RTL netlist registres bibliothèque Algorithme Architecture Architecturesynthétisable Netlist 6M. MASMOUDI Cours VHDL

7 Niveau dabstraction 7M. MASMOUDI Cours VHDL

8 Niveau dabstraction Le niveau système : cette description regroupe lensemble des spécification du circuit décrites sous la forme de comportements vis-à-vis de lenvironnement associé au circuit, de performances à satisfaire, de contraintes dutilisation. Cette description est de nature purement externe par rapport au circuit. Le niveau fonctionnel : la description au niveau fonctionnel exprime le premier niveau interne de la solution, sous la forme dun ensemble de fonctions +/- interdépendantes et de complexité variée. Cette description est orientée application ou objectif à satisfaire. 8M. MASMOUDI Cours VHDL

9 Niveau dabstraction Le niveau architectural : la description architecturale exprime les modules exécutifs et les interconnections nécessaires entre ceux-ci pour satisfaire la fonctionnalité globale du niveau supérieur. Cette description est donc orientée réalisation. Le niveau logique: la description représente un circuit par un ensemble interconnecté de fonctions logiques de faible complexité. Le niveau électrique : la description électrique représente le circuit sous la forme déléments microélectroniques (transistors essentiellement) interconnectés de façon à assurer la fonctionnalité du circuit spécifiée par les niveaux supérieurs. 9M. MASMOUDI Cours VHDL

10 Modèle de Gajski 10M. MASMOUDI Cours VHDL

11 Etapes VHDL : spécification, conception et description matérielle en électronique numérique Analyse du système et partitionnement des tâches Écriture du code VHDL par bloc Écriture des « Test Bench » en VHDL Synthèse au niveau portes Implémentation matérielle Simulation au niveau portes Simulation du code VHDL 11M. MASMOUDI Cours VHDL

12 Apport Pour les circuits intégrés Diminution des erreurs simulation à différents niveaux dabstraction Diminution du temps de développement conception à plus haut niveau Pour les systèmes Anticipation de lintégration modèles de composants simulable avant disponibilité Normalisation des échanges langage universel et unique A 2 + B 2 12M. MASMOUDI Cours VHDL

13 escription matérielle Description matérielle M. MASMOUDI Cours VHDL13 VHDL : se base sur la paire ENTITY - ARCHITECTURE a b c d f Circuit Boîte noire ENTITY décrit les ports dE/S du circuit (brochage) a b c d f ARCHITECTURE : décrit le contenu du circuit (câblage interne)

14 Entity M. MASMOUDI Cours VHDL14 Description externe du composant (Boîte noire) Définition des ports dE/S : type, sens, taille, … Définition des paramètres ENTITY IS END [ENTITY] ; : paramètres du composant : interface avec lenvironnement extérieur

15 Les ports: M. MASMOUDI Cours VHDL15 Les modes: IN : Données qui sont des entrées uniquement OUT : Données qui sont des sorties uniquement INOUT : Données bidirectionnelles (en entrée ou en sortie) BUFFER : Données en sortie mais aussi en feed-back interne dans le circuit PORT( : ;..... : );

16 Types des ports M. MASMOUDI Cours VHDL16 BIT: valeurs possibles 0 et 1 BIT_VECTOR: un vecteur de bits INTEGER: utilisés comme indices (boucles), constantes, … BOOLEAN: prend deux valeurs TRUE ou FALSE CHARACTER: caractères ascii Exemple : SIGNALa: BIT_VECTOR(0 TO 3); - - e.g... Sens ascendant SIGNALb: BIT_VECTOR(3 DOWNTO 0); - - e.g... Sens descendant a <= "0111"; b <= "0101"; Ce qui signifie : a(0) = '0' b(0) = '1' a(1) = '1' b(1) = '0' a(2) = '1' b(2) = '1' a(3) = '1' b(3) = '0'

17 Types des ports (IEEE1164) M. MASMOUDI Cours VHDL17 ValeurInterprétation Forcé 11 - Forcé U Uninitialized (non-initialisé) XInconnu - Forcé ZHaute impédance WInconnu - Faible L0 - Faible H1 - Faible -Dont Care Valeurs des signaux std_logic et std_logic_vector library IEEE; -- librairie use IEEE.std_logic_1164.all;-- package ENTITY exple1 IS PORT ( …. ); END exple1; ARCHITECTURE archlogic OF exle1 IS BEGIN ….. END archlogic;

18 Déclarations dune entité M. MASMOUDI Cours VHDL18 ENTITY circuit1 IS GENERIC (N: INTEGER:=7); PORT ( clk, rst:INBIT; d:IN BIT_VECTOR(7 DOWNTO 0); q:OUTBIT_VECTOR(7 DOWNTO 0); co:OUT BIT); END circuit1; Circuit 1 rst d[N:0] clk q[N:0] co

19 Larchitecture M. MASMOUDI Cours VHDL19 Objectif: Description du câblage interne Modes de description: Structurelle Instanciations : placement de composants logiques et leur interconnexion Comportementale (aspect algorithmique) Description haut niveau (abstraite) IF a = b THEN x<=a; Équations logiques x <= (a OR b) AND c;

20 Paire entité-architecture M. MASMOUDI Cours VHDL20 Entity décrit linterface externe dun module, elle contient : Nom du module (ex: AOI) Ports d entrée/sorties (Nom, direction: in,out, inout, buffer,…) Type (BIT, BIT_VECTOR, BOOLEAN, INTEGER,…) Paramètres Architecture décrit le fonctionnement interne et comporte : zone de déclarations zone pour les instructions toujours associée à une entité plusieurs architectures peuvent être associées à la même entité Library IEEE; use IEEE.STD_1164.ALL; architecture Acrh1 of AOI is begin F<=not((A and B)or(C and D)); end arch1; -- fin du code VHDL entity AOI is port ( A, B, C, D: in STD_LOGIC; F: out STD_LOGIC ); end AOI;

21 Paquetage M. MASMOUDI Cours VHDL21 Package Paquetage Package : collection dobjets réutilisables : constantes, composants, types, fonction, procédure,... 2 unités de compilation : déclaration de paquetage corps de paquetage Le contenu de la déclaration de paquetage est visible depuis une autre unité de compilation si elle en a déclaré lutilisation Le contenu du corps de paquetage est invisible des autres unités de compilation

22 Codage des composants M. MASMOUDI Cours VHDL22 Half adder sum cout a b Half adder sum cout a b in1 in2 cin carry result ENTITY half_adder IS PORT (a,b: IN std_logic; sum,cout : OUT std_logic); END half_adder; ARCHITECTURE beh OF half_adder IS begin sum <= a XOR b; cout <= a AND b; end beh; ENTITY OR_2 IS PORT(a,b: IN std_logic; c : OUT std_logic); END OR_2; ARCHITECTURE beh OF OR_2 IS begin c <= a OR b; end beh;

23 Instanciation Méthode 1 M. MASMOUDI Cours VHDL23 : ENTITY. ( ); ENTITY full_adder IS PORT(in1,in2,cin: IN std_logic; result,carry : OUT std_logic); END full_adder; ARCHITECTURE structural OF full_adder SIGNAL s1,s2,s3 : std_logic; BEGIN H1 : entity work.half_adder(beh) PORT MAP(a=>in1, b=>in2, sum=> s1, cout => s3); H2 : entity work.half_adder(beh) PORT MAP(a=> s1, b=> cin, sum => result, cout => s2); O1 : entity work.OR_2(beh) PORT MAP(a=>s2, b=> s3, c=> carry); END structural;

24 Instanciation Méthode 2 M. MASMOUDI Cours VHDL24 ENTITY full_adder IS PORT(in1,in2,cin: IN std_logic; result,carry : OUT std_logic); END full_adder; ARCHITECTURE structural OF full_adder COMPONENT half_adder PORT(a,b : IN std_logic; sum,cout : OUT std_logic); END COMPONENT; COMPONENT OR_2 PORT(a,b : IN std_logic; c : OUT std_logic); END COMPONENT; SIGNAL s1,s2,s3 : std_logic; BEGIN H1 : half_adder PORT MAP(a=>in1, b=>in2, sum=> s1, cout => s3); H2 : half_adder PORT MAP(a=> s1, b=> cin, sum => result, cout => s2); O1 : or_2 PORT MAP(a=>s2, b=> s3, c=> carry); END structural;

25 Opérateurs M. MASMOUDI Cours VHDL25 CATEGORIE and nand or nor xor xnor not + - * / abs ** mod rem TYPE OPERANDES boolean bit bit_vector integer real integer SIGNIFICATION et non-et ou non-ou ou exclusif non ou-exlusif non + unaire (signe +) ou addition - unaire (signe -) ou soustraction multiplication division valeur absolue exponentiation modulo reste

26 Opérateurs M. MASMOUDI Cours VHDL26 CATEGORIE = /= < <= > >= sll srl rol ror & TYPE OPERANDES Entrée Résultat tout type boolean scalaire bit_vector (amplitude : integer) bit bit_vector SIGNIFICATION égal non égal inférieur inférieur ou égal supérieur supérieur ou égal logique gauche logique droite circulaire gauche circulaire droite concaténation

27 M. MASMOUDI Cours VHDL27


Télécharger ppt "Cours VHDL Ing Mohamed MASMOUDI"

Présentations similaires


Annonces Google