1 / 27

Cours VHDL

Cours VHDL. Ing Mohamed MASMOUDI Mohamed.masmoudi@alphatec.com.tn. Le VHDL. V ery High Speed Integrated Circuit H ardware D escription L angage.

alexis
Download Presentation

Cours VHDL

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Cours VHDL Ing Mohamed MASMOUDI Mohamed.masmoudi@alphatec.com.tn

  2. Le VHDL Very High Speed Integrated Circuit Hardware Description Langage 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 M. MASMOUDI Cours VHDL

  3. Pourquoi? • Langage pour la spécification des systèmes digitaux, aussibien 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é M. MASMOUDI Cours VHDL

  4. Historique 1994 Révision du standard IEEE 1164 1987 Publication du standard IEEE 1076 1986 Transfert des droits à l’IEEE 1983 Développement des bases du langage par Intermetrics, IBM et TI 1981 Initiation du langage par le US - DoD M. MASMOUDI Cours VHDL

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

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

  7. Niveau d’abstraction M. MASMOUDI Cours VHDL

  8. Niveau d’abstraction • Le niveau système : cette description regroupe l’ensemble des spécification du circuit décrites sous la forme de comportements vis-à-vis de l’environnement associé au circuit, de performances à satisfaire, de contraintes d’utilisation. 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 d’un ensemble de fonctions +/- interdépendantes et de complexité variée. Cette description est orientée application ou objectif à satisfaire. M. MASMOUDI Cours VHDL

  9. Niveau d’abstraction • 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. M. MASMOUDI Cours VHDL

  10. Modèle de Gajski M. 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 des « Test Bench » en VHDL Écriture du code VHDL par bloc Simulation du code VHDL Synthèse au niveau portes Simulation au niveau portes Implémentation matérielle M. MASMOUDI Cours VHDL

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

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

  14. Entity Description externe du composant (Boîte noire) • Définition des ports d’E/S : type, sens, taille, … • Définition des paramètres ENTITY <entity name> IS<generic declaration> <port declaration>END[ENTITY] <entity name> ; <genericdeclaration> : paramètres du composant<portdeclaration> : interface avec l’environnement extérieur M. MASMOUDI Cours VHDL

  15. Les ports: PORT( <port name> : <mode> <type> ; ..... <port name> : <mode> <type>); 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 M. MASMOUDI Cours VHDL

  16. Types des ports 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 : SIGNAL a: BIT_VECTOR(0 TO 3); - - e.g... Sens ascendant SIGNAL b: 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' M. MASMOUDI Cours VHDL

  17. Valeur L 0 1 W U H X - Z 1 - Faible Haute impédance Don’t Care Interprétation 0 - Forcé 0 - Faible Uninitialized (non-initialisé) Inconnu - Faible Inconnu - Forcé 1 - Forcé Types des ports (IEEE1164) libraryIEEE; -- librairie useIEEE.std_logic_1164.all;-- package ENTITY exple1 IS PORT ( …. ); END exple1; ARCHITECTUREarchlogicOF exle1 IS BEGIN ….. ENDarchlogic; Valeurs des signaux std_logicet std_logic_vector M. MASMOUDI Cours VHDL

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

  19. L’architecture 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; M. MASMOUDI Cours VHDL

  20. Paire entité-architecture LibraryIEEE; use IEEE.STD_1164.ALL; Entitydécrit l’interface externe d’un 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 Architecturedé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é entity AOI is port ( A, B, C, D: in STD_LOGIC; F: out STD_LOGIC ); end AOI; architecture Acrh1 of AOI is begin F<=not((A and B)or(C and D)); end arch1; -- fin du code VHDL M. MASMOUDI Cours VHDL

  21. Paquetage • Paquetage “Package” : collection d’objets 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é l’utilisation • Le contenu du corps de paquetage est “invisible” des autres unités de compilation M. MASMOUDI Cours VHDL

  22. in1 cout a in2 Half adder carry b sum cout a result cin Half adder b sum Codage des composants ENTITY half_adder IS PORT (a,b: IN std_logic; sum,cout : OUT std_logic); END half_adder;ARCHITECTURE beh OF half_adder ISbegin 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 ISbegin c <= a OR b;end beh; M. MASMOUDI Cours VHDL

  23. Instanciation Méthode 1 <inst label> : ENTITY <library>.<ent name>(<arch name>); ENTITY full_adder IS PORT(in1,in2,cin: IN std_logic; result,carry : OUT std_logic); END full_adder; ARCHITECTURE structural OF full_adderSIGNAL s1,s2,s3 : std_logic;BEGINH1 : 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; M. MASMOUDI Cours VHDL

  24. Instanciation Méthode 2 ENTITY full_adder IS PORT(in1,in2,cin: IN std_logic; result,carry : OUT std_logic); END full_adder; ARCHITECTURE structural OF full_adderCOMPONENT half_adderPORT(a,b : IN std_logic; sum,cout : OUT std_logic);END COMPONENT; COMPONENT OR_2PORT(a,b : IN std_logic; c : OUT std_logic);END COMPONENT; SIGNAL s1,s2,s3 : std_logic;BEGINH1 : half_adderPORT 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; M. MASMOUDI Cours VHDL

  25. Opérateurs CATEGORIE TYPE OPERANDES SIGNIFICATION and nand or nor xor xnor not + - * / abs ** mod rem boolean bit bit_vector integer real integer 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 M. MASMOUDI Cours VHDL

  26. Opérateurs CATEGORIE TYPE OPERANDES SIGNIFICATION Entrée Résultat tout type boolean scalaire bit_vector (amplitude : integer) bit bit_vector = /= < <= > >= sll srl rol ror & é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 M. MASMOUDI Cours VHDL

  27. M. MASMOUDI Cours VHDL

More Related