Fiche de révision : Conception numérique en VHDL

Plan du Cours

  1. Rôle et usages du VHDL
  2. Algèbre de Boole et portes logiques
  3. Circuits combinatoires fondamentaux
  4. Bascules registres et compteurs
  5. Graphes d’états et synthèse séquentielle
  6. Structure et description VHDL
  7. Structure hiérarchique du code VHDL
  8. Ports, bibliothèques et sous-programmes
  9. Signaux et simulation événementielle
  10. Processus, variables et concurrence
  11. Types et constructions de données
  12. Simulation, synthèse et circuits séquentiels

1. Rôle et usages du VHDL

Notions clés & Définitions

  • VHDL : pour VHSIC Hardware Description Language, est un langage de description matériel normalisé par l’IEEE pour décrire la structure et le comportement de systèmes numériques.

★ À maîtriser

  • La norme principale du VHDL est IEEE 1076, dont la version actuelle indiquée dans le cours est IEEE 1076-2019, complétée par IEEE 1164 pour la logique à valeurs multiples.

📌 Le VHDL permet des descriptions comportementales, par flot de données ou structurelles, alors qu’un langage de programmation classique produit principalement une séquence d’instructions exécutées.

Compléments

  • Les principaux domaines d’utilisation sont: le prototypage d’ASIC ou de SoC, l’accélération matérielle, les télécommunications, l’automobile et l’industrie, l’aéronautique, le spatial et la défense, l’image, la vidéo, le médical, le scientifique et l’IoT

Astuce mémo

VHDL décrit un matériel permanent, contrairement à un programme à durée limitée

2. Algèbre de Boole et portes logiques

Notions clés & Définitions

  • Logique positive : le niveau électrique haut H représente 1, le vrai ou l’actif, tandis que le niveau bas L représente 0, le faux ou l’inactif.

★ À maîtriser

📐 Formule — Le suiveur réalise S=ES=E et l’inverseur réalise S=E‾S=\overline{E}.

📐 Formule — Les fonctions fondamentales vérifient SOR=E1+E2S_{OR}=E_1+E_2, SAND=E1⋅E2S_{AND}=E_1\cdot E_2 et SXOR=E1⊕E2S_{XOR}=E_1\oplus E_2.

📌 Le XOR retourne 1 lorsque ses deux entrées sont différentes, tandis que le XNOR retourne 1 lorsque ses deux entrées sont identiques.

Compléments

  • Pour une famille TTL de 5 V ±5 %, une entrée est considérée basse si elle est inférieure ou égale à 0,8 V et haute si elle est supérieure ou égale à 2 V.

Astuce mémo

OR accepte au moins un 1, AND exige tous les 1

3. Circuits combinatoires fondamentaux

Notions clés & Définitions

  • Multiplexeur : transmet en sortie la donnée sélectionnée par ses signaux de sélection.
  • Décodeur : active une sortie correspondant au code binaire appliqué à ses entrées d’adresse.
  • Additionneur : combine des bits A et B ainsi qu’une retenue d’entrée pour produire des bits de somme et une retenue de sortie.

★ À maîtriser

  • Dans un multiplexeur 4 vers 1, les sélections S1S0 égalent 00, 01, 10 et 11 pour transmettre respectivement D0, D1, D2 et D3.

Compléments

  • Les principaux circuits combinatoires sont:
    • l’additionneur
    • l’unité arithmétique et logique
    • le multiplexeur
    • le décodeur-démultiplexeur

Astuce mémo

Additionner, sélectionner, décoder

4. Bascules registres et compteurs

Notions clés & Définitions

  • Bascule : un circuit séquentiel élémentaire qui mémorise un bit et dont la sortie dépend de l’état précédent en plus des entrées présentes.
  • Compteur modulo N : possède N états et parcourt répétitivement un cycle avant de recommencer.

★ À maîtriser

  • Une bascule D recopie l’entrée D lorsqu’un signal de synchronisation est actif, tandis qu’une bascule JK mémorise, met à 0, met à 1 ou bascule selon les valeurs de J et K.

  • Une bascule D déclenchée sur front montant charge D dans Q lorsque rising_edge(clk) est détecté.

  • Un compteur asynchrone propage les changements d’une bascule vers la suivante et peut produire des états fugitifs, tandis qu’un compteur synchrone commande toutes les bascules avec la même horloge.

Compléments

  • Un registre peut fonctionner en parallèle-parallèle, série-série, série-parallèle, parallèle-série ou comme registre universel.

Astuce mémo

Horloge et bascules → mémorisation, décalage et comptage

5. Graphes d’états et synthèse séquentielle

Notions clés & Définitions

  • Machine à états : un système évolutif qui se trouve à chaque instant dans un état parmi un nombre fini d’états possibles et change d’état selon ses entrées.
  • Transition : une condition d’évolution exprimée par une fonction logique et elle est active lorsque cette fonction est vraie dans l’état courant.

Points essentiels

  • La synthèse d’un graphe d’états consiste à coder les états par des numéros binaires, représenter leurs bits par des sorties de bascules, déterminer les équations de commande puis mettre en œuvre ces équations.

📌 Une sortie de Moore dépend des états, tandis qu’une sortie de Mealy peut dépendre des transitions et donc des entrées qui les activent.

Astuce mémo

Coder les états → commander les bascules → produire les sorties

6. Structure et description VHDL

Notions clés & Définitions

  • Entity : définit le nom, les entrées, les sorties, les types et les modes d’un composant VHDL.
  • Architecture : est relative à une entité et contient ses fonctionnalités ainsi que, si nécessaire, ses relations temporelles.

★ À maîtriser

  • Un code VHDL utilise généralement une bibliothèque, une entité qui définit l’interface, une architecture qui décrit le fonctionnement, puis des instructions et des objets typés.

📌 Une variable VHDL est accessible dans les instructions séquentielles, tandis qu’un signal représente matériellement un lien entre entités ou processus.

📌 Toutes les descriptions VHDL peuvent être simulables, mais une description simulable n’est pas nécessairement synthétisable, comme une horloge décrite avec WAIT sur un CPLD ou un FPGA.

Compléments

📌 Les instructions séquentielles sont encapsulées dans des processus, tandis que les instructions concurrentielles représentent notamment l’instanciation de composants et de signaux.

Astuce mémo

Bibliothèques → entité → architecture → processus et composants

7. Structure hiérarchique du code VHDL

★ À maîtriser

  • Un code VHDL comprend la déclaration des bibliothèques, la déclaration de l’entité avec ses génériques et ses ports, puis la déclaration de l’architecture.

  • La hiérarchisation VHDL repose sur la déclaration d’un composant dans l’entête de l’architecture puis sur son instanciation dans le corps de l’architecture.

Compléments

📌 Chaque instance d’un composant doit posséder un nom différent.

Astuce mémo

Bibliothèque → entité → architecture → composants

8. Ports, bibliothèques et sous-programmes

Notions clés & Définitions

  • Package VHDL : Regroupe notamment des types, sous-types, constantes, fonctions et procédures, tandis que le package body définit le corps des fonctions et des procédures.

Points essentiels

  • Les directions de ports sont:
    • in : entrée
    • out : sortie
    • inout : entrée-sortie bidirectionnelle
    • buffer : sortie bufférisée

📌 Une fonction VHDL retourne une seule valeur et peut participer à la surcharge des opérateurs, tandis qu’une procédure peut retourner plusieurs valeurs grâce à des paramètres de direction in, out ou inout.

Astuce mémo

Fonction : une valeur ; procédure : plusieurs valeurs

9. Signaux et simulation événementielle

Notions clés & Définitions

  • Signal VHDL : Représente matériellement un support d’information, relie des objets entre eux, possède un type et un ou plusieurs pilotes, et est déclaré dans le domaine concurrent.

★ À maîtriser

  • Le pilote d’un signal mémorise des couples état-heure et une valeur qui y est prévue devient effective lorsque le délai correspondant est écoulé.

📌 Dans une affectation inconditionnelle de signal, les délais after sont absolus par rapport à t=0, doivent être croissants et un délai absent vaut 0 ns.

📌 Le délai inertiel filtre les variations plus courtes que le délai de transaction, tandis que le délai de transport les transmet sans ce filtrage.

Compléments

  • L’attribut ‘event vaut vrai lorsqu’un événement vient de se produire sur un signal à l’instant courant.

Astuce mémo

Événement sur un signal → réveil d’un processus → nouveaux pilotes

10. Processus, variables et concurrence

Notions clés & Définitions

  • Processus VHDL : Contient uniquement des instructions séquentielles et s’exécute de manière cyclique après avoir été réveillé par une condition de synchronisation.

★ À maîtriser

📌 L’instruction wait synchronise un processus avec un événement, une durée, une condition ou une suspension indéfinie, et doit apparaître au moins une fois dans un processus, explicitement ou implicitement.

📌 Une variable VHDL ne peut exister que dans un contexte séquentiel, est locale au processus et est affectée immédiatement, tandis qu’une affectation de signal est différée par le pilote.

Compléments

  • La communication entre processus VHDL s’effectue à l’aide de signaux.

Astuce mémo

Variable immédiate, signal différé

11. Types et constructions de données

Notions clés & Définitions

  • Std_logic_vector : Un tableau de valeurs STD_LOGIC dont les bornes peuvent être définies par une plage comme 9 downto 0.

★ À maîtriser

📌 STD_LOGIC accepte neuf valeurs et peut être piloté par plusieurs pilotes grâce à sa résolution, tandis que STD_ULOGIC utilise les mêmes neuf valeurs mais n’autorise qu’un seul pilote.

  • Les valeurs synthétisables du système logique IEEE 1164 sont ‘0’, ‘1’ et ‘Z’, les autres valeurs servant notamment à représenter des états inconnus ou faibles.

  • Un sous-type limite la plage d’un type existant, tandis qu’une instruction type permet de créer des énumérations, des tableaux ou des structures record.

Compléments

  • Les principales familles d’opérateurs sont:
    • Opérateurs logiques : not, and, nand, or, nor, xor, xnor
    • Opérateurs relationnels : =, /=, <, <=, >, >=
    • Opérateurs arithmétiques : +, -, *, /, **, MOD, REM
    • Concaténation : &

Astuce mémo

STD_LOGIC résolu, STD_ULOGIC non résolu

12. Simulation, synthèse et circuits séquentiels

Notions clés & Définitions

  • Registre parallèle-parallèle : Charge les données en parallèle et les restitue également en parallèle.

★ À maîtriser

📌 La simulation vérifie le comportement logique d’un circuit à partir du code VHDL et de stimuli, tandis que la synthèse convertit le code en portes logiques ou en composants configurables.

  • 🔄 Le cycle de conception suit les étapes:

    1. Spécifications fonctionnelles
    2. Description en VHDL
    3. Simulations fonctionnelles
    4. Synthèse logique, placement et routage
    5. Simulation et analyses temporelles
    6. Programmation du composant
    7. Test du composant
  • Dans un compteur synchrone modulo 16, le compteur est remis à zéro après la valeur 15 et est incrémenté à chaque front montant d’horloge lorsqu’il n’est pas réinitialisé.

Compléments

📌 Un registre série-série charge et restitue les données bit par bit, tandis qu’un registre série-parallèle charge les données en série et les restitue en parallèle.

Astuce mémo

Spécifier → décrire → simuler → synthétiser → programmer → tester

Tableaux de synthèse

Types de description VHDL

TypePrincipeUsage
ComportementaleInstructions séquentielles dans un processusDécrire un algorithme matériel
Flot de donnéesInstructions concurrentesDécrire des relations entre signaux
StructurelleInterconnexion de composantsConstruire une hiérarchie matérielle

Simulation et synthèse

AspectSimulationSynthèse
ButValider le comportement fonctionnelGénérer une implémentation matérielle
RésultatFormes d’ondeNetlist ou fichier de configuration
ContraintesStimuli et logiquePuissance, surface et vitesse

Teste tes connaissances

Teste tes connaissances sur Conception numérique en VHDL avec 42 questions à choix multiples et corrections détaillées.

1. Que signifie l’acronyme VHDL et quel est son rôle principal ?

2. Quelle norme IEEE constitue la norme principale du VHDL, avec quelle norme complémentaire pour la logique à valeurs multiples ?

Faire le QCM →

Révisez avec les flashcards

Mémorisez les concepts clés de Conception numérique en VHDL avec 80 flashcards interactives.

Que signifie l'acronyme VHDL ?

VHSIC Hardware Description Language.

Quelle organisation normalise le langage VHDL ?

L'IEEE.

Quelle est la norme principale du VHDL ?

IEEE 1076.

Voir les flashcards →

Cours similaires

Crée tes propres fiches de révision

Importe ton cours et l'IA génère fiches, QCM et flashcards en 30 secondes.

Générateur de fiches