QCM : Conception numérique en VHDL — 42 questions

Questions et réponses du QCM

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

Variable Hardware Design Language, un langage consacré au calcul scientifique matériel
VHSIC Hardware Description Language, un langage normalisé pour décrire des systèmes numériques
Very High-level Digital Hardware Logic, un langage destiné à programmer des applications numériques
Verified High-speed Device Language, un langage utilisé pour configurer des réseaux informatiques

VHSIC Hardware Description Language, un langage normalisé pour décrire des systèmes numériques

Explication

VHDL signifie VHSIC Hardware Description Language et sert à décrire la structure ainsi que le comportement de systèmes numériques. Les autres propositions attribuent à l’acronyme une signification erronée et ne correspondent pas à la fonction du langage.

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

IEEE 1076, complétée par IEEE 1164
IEEE 1800, complétée par IEEE 1149
IEEE 1164, complétée par IEEE 802.3
IEEE 754, complétée par IEEE 1076

IEEE 1076, complétée par IEEE 1164

Explication

La norme principale du VHDL est IEEE 1076, tandis qu’IEEE 1164 complète cette norme pour la logique à valeurs multiples. IEEE 754 concerne notamment l’arithmétique flottante et les autres associations proposées ne décrivent pas les normes indiquées.

3. Quelle distinction décrit correctement le VHDL par rapport à un langage de programmation classique ?

Le VHDL sert à écrire des algorithmes séquentiels sans représenter l’organisation matérielle
Le VHDL peut décrire un comportement, un flot de données ou une structure matérielle
Le VHDL décrit des interfaces graphiques tandis qu’un langage classique décrit des circuits
Le VHDL produit principalement une suite d’instructions exécutées par un processeur

Le VHDL peut décrire un comportement, un flot de données ou une structure matérielle

Explication

Le VHDL prend en charge les descriptions comportementales, par flot de données et structurelles. La production principale d’une séquence d’instructions exécutées caractérise plutôt un langage de programmation classique.

4. En logique positive, quelle interprétation correspond aux niveaux électriques haut H et bas L ?

H représente 1, le vrai ou l’actif, tandis que L représente 0, le faux ou l’inactif
H représente une valeur indéterminée, tandis que L représente une valeur mémorisée
H représente une transition logique, tandis que L représente une absence de signal
H représente 0, le faux ou l’inactif, tandis que L représente 1, le vrai ou l’actif

H représente 1, le vrai ou l’actif, tandis que L représente 0, le faux ou l’inactif

Explication

En logique positive, le niveau haut H est associé à 1, au vrai et à l’état actif, alors que le niveau bas L est associé à 0, au faux et à l’état inactif. L’inversion de ces correspondances décrit une convention opposée et non la logique positive.

5. Quelle expression décrit correctement le fonctionnement d’un suiveur et d’un inverseur ?

Le suiveur réalise S=E⋅0S=E\cdot 0, tandis que l’inverseur réalise S=E+0S=E+0
Le suiveur réalise S=ES=E, tandis que l’inverseur réalise S=E‾S=\overline{E}
Le suiveur réalise S=E‾S=\overline{E}, tandis que l’inverseur réalise S=ES=E
Le suiveur réalise S=E+1S=E+1, tandis que l’inverseur réalise S=E⋅ES=E\cdot E

Le suiveur réalise $$S=E$$, tandis que l’inverseur réalise $$S=\overline{E}$$

Explication

Le suiveur conserve l’état logique de son entrée, ce qui donne S=ES=E, alors que l’inverseur le complémente, ce qui donne S=E‾S=\overline{E}. La confusion classique consiste à attribuer au suiveur la complémentation et à l’inverseur la conservation.

6. Quelle équation associe correctement les portes OR, AND et XOR à leurs entrées E1E_1 et E2E_2 ?

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
SOR=E1⋅E2S_{OR}=E_1\cdot E_2, SAND=E1+E2S_{AND}=E_1+E_2 et SXOR=E1⊕E2‾S_{XOR}=\overline{E_1\oplus E_2}
SOR=E1⊕E2S_{OR}=E_1\oplus E_2, SAND=E1⋅E2‾S_{AND}=\overline{E_1\cdot E_2} et SXOR=E1+E2S_{XOR}=E_1+E_2
SOR=E1+E2‾S_{OR}=\overline{E_1+E_2}, SAND=E1⊕E2S_{AND}=E_1\oplus E_2 et SXOR=E1⋅E2S_{XOR}=E_1\cdot E_2

$$S_{OR}=E_1+E_2$$, $$S_{AND}=E_1\cdot E_2$$ et $$S_{XOR}=E_1\oplus E_2$$

Explication

Les fonctions fondamentales sont respectivement la somme logique pour OR, le produit logique pour AND et l’opération exclusive pour XOR. La deuxième proposition inverse notamment OR et AND et remplace XOR par son complément, qui correspond au XNOR.

7. Dans quelle situation la sortie d’une porte XOR vaut-elle 1, contrairement à celle d’une porte XNOR ?

La sortie XOR vaut 1 lorsque les deux entrées sont à 0, tandis que la sortie XNOR vaut 1 lorsqu’elles sont à 1
La sortie XOR vaut 1 lorsque les deux entrées sont identiques, tandis que la sortie XNOR vaut 1 lorsqu’elles sont différentes
La sortie XOR vaut 1 lorsque les deux entrées sont à 1, tandis que la sortie XNOR vaut 1 lorsqu’elles sont à 0
La sortie XOR vaut 1 lorsque les deux entrées sont différentes, tandis que la sortie XNOR vaut 1 lorsqu’elles sont identiques

La sortie XOR vaut 1 lorsque les deux entrées sont différentes, tandis que la sortie XNOR vaut 1 lorsqu’elles sont identiques

Explication

Le XOR détecte la différence entre ses deux entrées, alors que le XNOR détecte leur égalité. Les autres propositions intervertissent ces fonctions ou décrivent des cas particuliers qui ne définissent pas leur comportement général.

8. Dans un multiplexeur 4 vers 1, quelle donnée est transmise lorsque S1S0=10S_1S_0=10 ?

La donnée D2D_2
La donnée D3D_3
La donnée D1D_1
La donnée D0D_0

La donnée $$D_2$$

Explication

Dans un multiplexeur 4 vers 1, les codes 0000, 0101, 1010 et 1111 sélectionnent respectivement D0D_0, D1D_1, D2D_2 et D3D_3. Le code 1010 correspond donc à D2D_2, et non aux données associées aux trois autres codes.

9. Que fait un décodeur lorsqu’un code binaire est appliqué à ses entrées d’adresse ?

Il inverse chaque bit du code avant de sélectionner une sortie
Il active la sortie correspondant au code binaire reçu
Il additionne le code reçu avec une retenue provenant d’un étage précédent
Il transmet vers une sortie unique la donnée choisie parmi plusieurs entrées

Il active la sortie correspondant au code binaire reçu

Explication

Un décodeur interprète le code binaire appliqué à ses entrées d’adresse et active la sortie qui lui correspond. La sélection d’une donnée parmi plusieurs entrées relève du multiplexeur, et non du décodeur.

10. Quelles informations un additionneur combine-t-il pour produire ses résultats ?

Plusieurs données et un code de commande, pour produire une seule donnée transmise
Un code binaire et une horloge, pour produire une valeur mémorisée et une validation
Les bits AA et BB ainsi qu’une retenue d’entrée, pour produire une somme et une retenue de sortie
Un bit d’adresse et un signal de sélection, pour produire une donnée et une sortie activée

Les bits $$A$$ et $$B$$ ainsi qu’une retenue d’entrée, pour produire une somme et une retenue de sortie

Explication

Un additionneur traite les bits AA et BB avec la retenue d’entrée afin de générer un bit de somme et une retenue de sortie. Les autres descriptions concernent respectivement des fonctions de sélection, de multiplexage ou des mécanismes associés à des circuits séquentiels.

11. Quelle caractéristique distingue une bascule d’un circuit combinatoire ?

Sa sortie dépend des entrées présentes sans mémoriser d’état
Sa sortie dépend d’une équation fixe sans signal de commande
Sa sortie dépend de l’état précédent et des entrées présentes
Sa sortie dépend d’un compteur externe plutôt que de ses entrées

Sa sortie dépend de l’état précédent et des entrées présentes

Explication

Une bascule mémorise un bit, de sorte que sa sortie dépend à la fois de l’état précédent et des entrées actuelles. Un circuit combinatoire, contrairement à elle, ne conserve pas d’état antérieur.

12. Quel comportement distingue principalement une bascule D d’une bascule JK ?

La bascule D change selon deux entrées, tandis que la bascule JK dépend d’un signal analogique
La bascule D offre quatre comportements, tandis que la bascule JK recopie directement son entrée
La bascule D recopie D, tandis que la bascule JK offre quatre comportements selon J et K
La bascule D mémorise une valeur aléatoire, tandis que la bascule JK suit une valeur fixe

La bascule D recopie D, tandis que la bascule JK offre quatre comportements selon J et K

Explication

La bascule D transfère la valeur de D au moment actif, alors que la bascule JK peut mémoriser, remettre à zéro, mettre à un ou basculer selon J et K. Confondre ces rôles revient à attribuer les quatre comportements de JK à la bascule D.

13. Dans quel cas une bascule D déclenchée sur front montant charge-t-elle l’entrée D dans Q ?

Lorsque la sortie Q atteint spontanément son niveau haut
Lorsque le niveau bas de clkclk se maintient pendant une période
Lorsque l’entrée D change sans variation de l’horloge
Lorsque la détection de rising_edge(clk)rising\_edge(clk) a lieu

Lorsque la détection de $$rising\_edge(clk)$$ a lieu

Explication

Une bascule D sur front montant charge D dans Q au moment où un front montant de l’horloge est détecté. Un changement de D sans événement d’horloge ne déclenche donc pas cette mémorisation.

14. Pourquoi un compteur synchrone réduit-il les états fugitifs par rapport à un compteur asynchrone ?

Il utilise moins de bascules pour représenter les états
Chaque bascule reçoit l’horloge de la bascule précédente
Ses sorties ne changent jamais pendant le comptage
Toutes ses bascules reçoivent la même horloge

Toutes ses bascules reçoivent la même horloge

Explication

Dans un compteur synchrone, toutes les bascules sont commandées par la même horloge, ce qui coordonne leurs changements. Dans un compteur asynchrone, la propagation d’une bascule à la suivante peut créer des états fugitifs.

15. Comment définir une machine à états finis ?

Un registre qui conserve une donnée sans changer selon les signaux d’entrée
Un circuit combinatoire dont la sortie est fixée par une seule équation logique
Un système qui occupe un état parmi un ensemble fini et évolue selon ses entrées
Un compteur qui parcourt des valeurs numériques sans conditions d’évolution

Un système qui occupe un état parmi un ensemble fini et évolue selon ses entrées

Explication

Une machine à états se trouve à chaque instant dans l’un des états d’un ensemble fini et change d’état selon ses entrées. Un circuit combinatoire ne possède pas cette évolution fondée sur un état mémorisé.

16. Quand une transition d’un graphe d’états devient-elle active ?

Lorsque l’horloge cesse de fournir un signal périodique
Lorsque toutes les sorties du système sont égales à zéro
Lorsque son état d’arrivée est sélectionné par une valeur aléatoire
Lorsque sa fonction logique est vraie dans l’état courant

Lorsque sa fonction logique est vraie dans l’état courant

Explication

Une transition est définie par une condition exprimée sous forme de fonction logique et s’active lorsque cette fonction est vraie dans l’état courant. L’état d’arrivée ne suffit donc pas, à lui seul, à déclencher la transition.

17. Quelle opération intervient après le codage binaire des états lors de la synthèse d’un graphe d’états ?

Supprimer les équations de commande pour conserver le graphe
Remplacer les états par des entrées analogiques indépendantes
Représenter les bits codés par des sorties de bascules
Associer chaque transition à une bibliothèque logicielle externe

Représenter les bits codés par des sorties de bascules

Explication

Après avoir attribué un code binaire aux états, on représente leurs bits par des sorties de bascules, puis on détermine les équations de commande. Le codage donne une représentation des états, tandis que les équations organisent les transitions.

18. Quelle différence caractérise les sorties de Moore et de Mealy ?

Une sortie de Moore dépend des entrées, tandis qu’une sortie de Mealy dépend des états mémorisés
Une sortie de Moore dépend des états, tandis qu’une sortie de Mealy peut dépendre des entrées
Une sortie de Moore dépend des transitions, tandis qu’une sortie de Mealy reste indépendante du graphe
Une sortie de Moore dépend de l’horloge seule, tandis qu’une sortie de Mealy dépend du codage binaire

Une sortie de Moore dépend des états, tandis qu’une sortie de Mealy peut dépendre des entrées

Explication

Une sortie de Moore est déterminée par l’état courant, alors qu’une sortie de Mealy peut aussi dépendre des entrées qui activent une transition. Assimiler Mealy à une sortie fondée sur l’état seul efface précisément cette dépendance aux transitions.

19. Quelle organisation décrit généralement un code VHDL complet ?

Un processus, une architecture externe, une horloge logicielle, puis une entité sans modes
Une bibliothèque, une entité, une architecture, puis des instructions et des objets typés
Une entité, des équations analogiques, une bibliothèque optionnelle, puis des sorties non typées
Une architecture, une bibliothèque, un processus matériel, puis une entité sans interface

Une bibliothèque, une entité, une architecture, puis des instructions et des objets typés

Explication

Une description VHDL utilise généralement une bibliothèque, une entité pour l’interface, une architecture pour le fonctionnement, puis des instructions et des objets typés. L’entité et l’architecture ne sont donc pas placées dans une structure où l’interface serait absente.

20. Quel rôle joue l’entity dans une description VHDL ?

Elle transforme les instructions séquentielles en portes sans déclarer d’interface
Elle représente les signaux internes sans préciser leurs directions externes
Elle définit le nom, l’interface, les types et les modes du composant
Elle décrit les algorithmes internes et les relations temporelles du composant

Elle définit le nom, l’interface, les types et les modes du composant

Explication

L’entity décrit la vue externe du composant en précisant notamment son nom, ses ports, leurs types et leurs modes. La description du fonctionnement interne relève de l’architecture, et non de l’entity.

21. Dans quel contexte une variable VHDL se distingue-t-elle d’un signal ?

La variable est utilisée dans des instructions séquentielles, tandis que le signal représente un lien matériel
La variable relie des processus entre eux, tandis que le signal sert à stocker une valeur dans une boucle
La variable décrit les ports externes, tandis que le signal définit le nom et les modes de l’entité
La variable représente une horloge matérielle, tandis que le signal est réservé aux constantes typées

La variable est utilisée dans des instructions séquentielles, tandis que le signal représente un lien matériel

Explication

Une variable est accessible dans les instructions séquentielles, notamment à l’intérieur d’un processus, tandis qu’un signal modélise un lien matériel entre entités ou processus. Attribuer aux variables la fonction de connexion entre processus inverse ces rôles.

22. Quelle affirmation décrit correctement le rapport entre simulation et synthèse en VHDL ?

Une description utilisant WAIT pour une horloge est forcément synthétisable sur tout dispositif programmable
Une description simulable peut ne pas être synthétisable, par exemple avec WAIT pour une horloge
Une description synthétisable peut être simulée, mais une description simulable produit toujours un circuit
Une description non synthétisable ne peut pas être exécutée par un simulateur VHDL

Une description simulable peut ne pas être synthétisable, par exemple avec WAIT pour une horloge

Explication

Toutes les descriptions VHDL peuvent être simulées, mais certaines ne correspondent pas à une réalisation matérielle synthétisable, comme une horloge décrite avec WAIT sur un CPLD ou un FPGA. La simulation vérifie le comportement, tandis que la synthèse impose des contraintes matérielles.

23. Dans quel ordre général les principales parties d’un code VHDL sont-elles déclarées ?

Entité avec ports, architecture, puis bibliothèques nécessaires
Bibliothèques, entité avec génériques et ports, puis architecture
Architecture, bibliothèques, puis entité avec génériques et ports
Bibliothèques, architecture, puis entité avec génériques et ports

Bibliothèques, entité avec génériques et ports, puis architecture

Explication

La structure générale commence par les bibliothèques, se poursuit par l’entité et s’achève avec l’architecture. L’architecture ne précède donc pas la déclaration de l’entité.

24. Lorsqu’un composant est hiérarchisé dans une architecture VHDL, où sa déclaration et son instanciation doivent-elles être placées ?

La déclaration et l’instanciation après « begin » dans le corps
La déclaration après « begin » et l’instanciation avant « begin »
La déclaration avant « begin » et l’instanciation après « begin »
La déclaration et l’instanciation avant « begin » dans l’en-tête

La déclaration avant « begin » et l’instanciation après « begin »

Explication

La déclaration du composant appartient à l’en-tête de l’architecture, tandis que son instanciation se trouve dans le corps après « begin ». Inverser ces emplacements confond la déclaration avec l’utilisation du composant.

25. Quel mode de port VHDL convient à une ligne pouvant transmettre et recevoir des informations ?

Le mode in, qui permet à l’architecture de piloter la ligne
Le mode buffer, qui fournit une entrée et une sortie distinctes
Le mode inout, qui autorise une communication bidirectionnelle
Le mode out, qui accepte une valeur externe pendant l’exécution

Le mode inout, qui autorise une communication bidirectionnelle

Explication

Le mode inout représente un port bidirectionnel, capable de transmettre et de recevoir des informations. Le mode buffer correspond à une sortie réutilisable dans l’architecture, et non à une ligne bidirectionnelle générale.

26. Quelle est la fonction respective d’un package VHDL et de son package body ?

Le package contient les ports, tandis que le package body instancie les composants
Le package décrit l’architecture, tandis que le package body fournit les bibliothèques
Le package définit les fonctions, tandis que le package body déclare leurs paramètres
Le package déclare les éléments, tandis que le package body définit leur implémentation

Le package déclare les éléments, tandis que le package body définit leur implémentation

Explication

Un package regroupe et déclare notamment des types, constantes, fonctions et procédures, alors que le package body contient l’implémentation des fonctions et procédures. Il ne sert donc pas principalement à décrire des ports ou une architecture.

27. Quelle distinction décrit correctement une fonction et une procédure en VHDL ?

Une fonction ne peut pas être surchargée, tandis qu’une procédure participe à la surcharge des opérateurs
Une fonction retourne une valeur, tandis qu’une procédure peut fournir plusieurs valeurs par ses paramètres
Une fonction décrit un composant, tandis qu’une procédure déclare les bibliothèques utilisées
Une fonction fournit plusieurs sorties, tandis qu’une procédure retourne une valeur unique par définition

Une fonction retourne une valeur, tandis qu’une procédure peut fournir plusieurs valeurs par ses paramètres

Explication

Une fonction retourne une seule valeur et peut participer à la surcharge des opérateurs, tandis qu’une procédure peut transmettre plusieurs résultats par des paramètres in, out ou inout. La surcharge des opérateurs est donc associée aux fonctions dans cette distinction.

28. Quelle caractéristique décrit le mieux un signal VHDL ?

Il représente une variable locale non typée qui s’exécute dans un processus séquentiel
Il représente une constante logicielle dont la valeur est fixée par l’entité
Il représente un support matériel typé reliant des objets et possède un ou plusieurs pilotes
Il représente une bibliothèque contenant les fonctions appelées par l’architecture

Il représente un support matériel typé reliant des objets et possède un ou plusieurs pilotes

Explication

Un signal modélise matériellement un support d’information, relie des objets, possède un type et peut avoir plusieurs pilotes ; sa déclaration relève du domaine concurrent. Une variable locale de processus ne possède pas cette fonction de liaison matérielle.

29. À quel moment une valeur prévue par le pilote d’un signal devient-elle effective ?

Après la modification d’un autre signal utilisé par le même processus
Lorsque l’architecture atteint la fin de sa déclaration concurrente
Dès que l’instruction d’affectation est lue par le simulateur
Lorsque le délai associé au couple état-heure est arrivé à son terme

Lorsque le délai associé au couple état-heure est arrivé à son terme

Explication

Le pilote mémorise des couples état-heure et applique la valeur lorsque l’heure planifiée est atteinte. La lecture de l’affectation ne rend donc pas nécessairement la nouvelle valeur effective immédiatement.

30. Dans une affectation inconditionnelle de signal, comment faut-il interpréter les délais « after » successifs ?

Ils sont mesurés depuis la dernière valeur, doivent être égaux, et l’absence vaut 1 ns1\,\mathrm{ns}
Ils dépendent de l’instant de simulation courant, peuvent être négatifs, et l’absence conserve l’ancienne valeur
Ils s’ajoutent au délai précédent, peuvent décroître, et l’absence de délai suspend l’affectation
Ils sont absolus par rapport à t=0t=0, croissants, et l’absence de délai vaut 0 ns0\,\mathrm{ns}

Ils sont absolus par rapport à $$t=0$$, croissants, et l’absence de délai vaut $$0\,\mathrm{ns}$$

Explication

Les délais « after » d’une affectation inconditionnelle sont des échéances absolues par rapport à t=0t=0, doivent être croissants et valent 0 ns0\,\mathrm{ns} lorsqu’ils sont omis. Ils ne s’ajoutent donc pas automatiquement au délai précédent.

31. Quelle différence distingue le délai inertiel du délai de transport en VHDL ?

Le délai inertiel transmet toutes les variations, tandis que le transport filtre les impulsions brèves
Le délai inertiel agit sur les sorties, tandis que le transport concerne les entrées bidirectionnelles
Le délai inertiel modifie le type du signal, tandis que le transport modifie son pilote
Le délai inertiel filtre les variations plus courtes que la transaction, tandis que le transport les transmet

Le délai inertiel filtre les variations plus courtes que la transaction, tandis que le transport les transmet

Explication

Le délai inertiel élimine les variations dont la durée est inférieure au délai de transaction, alors que le délai de transport les conserve. Le transport se distingue donc par l’absence de ce filtrage des impulsions courtes.

32. Comment les instructions d’un processus VHDL sont-elles exécutées après son réveil ?

Elles sont évaluées en parallèle selon les changements de signaux observés.
Elles sont exécutées séquentiellement, puis le processus peut recommencer après une synchronisation.
Elles sont exécutées une seule fois avant toute attente de synchronisation.
Elles sont déclenchées individuellement par chaque événement rencontré dans le code.

Elles sont exécutées séquentiellement, puis le processus peut recommencer après une synchronisation.

Explication

Un processus VHDL contient des instructions séquentielles et son exécution peut reprendre de manière cyclique après une synchronisation. Les instructions concurrentes sont, elles, évaluées selon les événements plutôt que comme une suite séquentielle interne.

33. Quelle association entre les formes de l’instruction wait et leur mode de synchronisation est correcte ?

WAIT ON impose une condition logique, tandis que WAIT FOR suspend le processus indéfiniment.
WAIT ON suspend le processus sans reprise, tandis que WAIT FOR déclenche une nouvelle horloge.
WAIT ON surveille un événement, tandis que WAIT FOR attend une durée déterminée.
WAIT ON attend une durée, tandis que WAIT FOR surveille un événement particulier.

WAIT ON surveille un événement, tandis que WAIT FOR attend une durée déterminée.

Explication

L’instruction WAIT peut synchroniser un processus avec un événement, une durée ou une condition, et WAIT ON est associé à la surveillance d’événements tandis que WAIT FOR exprime une durée. Les autres associations inversent ou déforment le rôle de ces deux formes.

34. Dans un processus VHDL, quelle différence caractérise une variable par rapport à une affectation de signal ?

La variable est partagée entre processus et prend sa valeur après un délai de simulation.
La variable est locale au processus et prend sa nouvelle valeur immédiatement.
La variable appartient au circuit externe et l’affectation de signal est immédiate.
La variable ne peut être utilisée qu’en concurrence et le signal seulement dans un processus.

La variable est locale au processus et prend sa nouvelle valeur immédiatement.

Explication

Une variable existe dans un contexte séquentiel, reste locale au processus et est affectée immédiatement. Une affectation de signal passe par un pilote et sa mise à jour est différée, contrairement à l’affirmation sur une mise à jour immédiate.

35. Quelle propriété distingue STD_LOGIC de STD_ULOGIC en VHDL ?

STD_LOGIC est réservé aux signaux, tandis que STD_ULOGIC est réservé aux variables locales.
STD_LOGIC est résolu et accepte plusieurs pilotes, tandis que STD_ULOGIC n’en accepte qu’un.
STD_LOGIC utilise neuf valeurs, tandis que STD_ULOGIC est limité aux valeurs ‘0’ et ‘1’.
STD_LOGIC interdit les conflits de pilotage, tandis que STD_ULOGIC les résout selon une table.

STD_LOGIC est résolu et accepte plusieurs pilotes, tandis que STD_ULOGIC n’en accepte qu’un.

Explication

Les deux types utilisent les mêmes neuf valeurs, mais STD_LOGIC possède une résolution permettant plusieurs pilotes, alors que STD_ULOGIC est non résolu et n’en autorise qu’un. La différence ne porte donc ni sur le nombre de valeurs ni sur le contexte d’utilisation.

36. Quelles valeurs du système logique IEEE 1164 sont synthétisables comme niveaux logiques matériels ?

‘0’, ‘1’ et ‘Z’.
‘X’, ‘U’ et ‘Z’.
‘L’, ‘H’ et ‘W’.
‘0’, ‘1’ et ‘X’.

‘0’, ‘1’ et ‘Z’.

Explication

Les valeurs ‘0’, ‘1’ et ‘Z’ sont synthétisables dans le système logique IEEE 1164. Des valeurs comme ‘X’ servent notamment à représenter des états inconnus et ne sont pas synthétisables de la même manière.

37. Que représente le type STD_LOGIC_VECTOR(9 downto 0) ?

Un tableau de dix valeurs STD_LOGIC indexées de 9 à 0.
Une seule valeur STD_LOGIC pouvant prendre dix états différents.
Un sous-type entier dont les valeurs vont de 9 à 0.
Un tableau de neuf valeurs STD_ULOGIC numérotées de 0 à 9.

Un tableau de dix valeurs STD_LOGIC indexées de 9 à 0.

Explication

STD_LOGIC_VECTOR est un tableau de valeurs STD_LOGIC, et la plage 9 downto 0 fournit dix positions indexées dans cet ordre. Il ne s’agit ni d’une valeur unique ni d’un tableau STD_ULOGIC.

38. Quelle construction VHDL permet de limiter la plage d’un type déjà existant ?

Une instruction type.
Une structure record.
Une concaténation.
Un sous-type.

Un sous-type.

Explication

Un sous-type restreint la plage d’un type existant sans créer une nouvelle famille de données. L’instruction type sert plutôt à définir des énumérations, des tableaux ou des structures record.

39. Quel est le résultat principal de la synthèse d’un code VHDL, par opposition à la simulation ?

Une implémentation matérielle sous forme de portes logiques ou de composants configurables.
Une liste de spécifications fonctionnelles sans correspondance matérielle.
Une représentation par formes d’onde obtenue à partir de stimuli de test.
Une suite d’analyses temporelles réalisée avant toute description VHDL.

Une implémentation matérielle sous forme de portes logiques ou de composants configurables.

Explication

La synthèse convertit le code VHDL en une implémentation matérielle composée de portes logiques ou de composants configurables. La simulation sert plutôt à vérifier le comportement logique et produit notamment des formes d’onde.

40. Quelle étape intervient après le placement et le routage dans le cycle de conception VHDL ?

Les simulations fonctionnelles.
Les analyses temporelles.
La description initiale en VHDL.
La définition des spécifications fonctionnelles.

Les analyses temporelles.

Explication

Après la synthèse avec placement et routage, le cycle prévoit les analyses temporelles, puis la programmation et le test du composant. Les autres étapes citées interviennent plus tôt dans le cycle de conception.

41. Comment fonctionne un registre parallèle-parallèle ?

Il charge les données en série et les restitue en parallèle.
Il charge les données en parallèle et les restitue bit par bit.
Il charge les données en parallèle et les restitue également en parallèle.
Il charge les données bit par bit et les restitue également bit par bit.

Il charge les données en parallèle et les restitue également en parallèle.

Explication

Un registre parallèle-parallèle reçoit simultanément plusieurs bits et les fournit également simultanément en sortie. Les modes série correspondent à d’autres architectures de registres, notamment les registres série-série ou série-parallèle.

42. Dans un compteur synchrone modulo 16, que se passe-t-il lors d’un front montant lorsque le compteur vaut 15 et qu’il n’est pas réinitialisé ?

Il revient à 0.
Il reste à 15.
Il passe à 16.
Il est chargé avec une valeur indéterminée.

Il revient à 0.

Explication

Un compteur modulo 16 parcourt les valeurs de 0 à 15 puis revient à 0 au front d’horloge suivant, si aucune réinitialisation ne l’interrompt. La valeur 16 n’appartient donc pas à sa séquence de comptage.

Révisez avec les flashcards

Mémorisez les réponses avec 80 flashcards sur Conception numérique en VHDL.

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 →

Approfondir avec la fiche

Consultez la fiche de révision complète sur Conception numérique en VHDL.

Voir la fiche →

Cours similaires

Crée tes propres QCM

Importe ton cours et l'IA génère des QCM avec corrections en 30 secondes.

Générateur de QCM