VHDL
TD : VHDL. Recherche parmi 300 000+ dissertationsPar pierrot443 • 4 Janvier 2019 • TD • 362 Mots (2 Pages) • 542 Vues
Exercices d’entrainement VHDL
Exercice 1 (*) (20 min) :
1) Donnez le code VHDL d’un Mux qui a 8 entrées et une sortie
2) Donnez le code VHDL d’un Demux qui a une entée et 4 sorties
Indice : - Ajoutez un/des sélectionneur(s) Exercice 2 (*) (20 min) :
1) Complétez-en VHDL les formules suivantes (sur 1 bit) :
a. 𝑆 = (. ) + (. ) b. 𝑆 = + ̅ + (. ) c. 𝑆 = . + (⨁)
Exercice 3 (**) (30-40 min) :
1) Créez-en VHDL un additionneur de 1 bit avec deux entrées (A et B) et deux sorties (Résultat et overflow (Si A=1 et B=1, alors S=0 et Overflow=1, )
2) Créez à partir de la question précédente un additionneur de 4 bits en VHDL
3) Optionnel : Faites le même cas avec un soustracteur et créez un bloc additionneur/soustracteur avec le choix de l’utilisateur en VHDL (1 pour addition, 0 pour soustraction)
Exercice 4 (**) (40 min):
1) Créez une bascule D en VHDL (Entrée : D, CLK; Sortie : Q notQ)
2) Complétez le schéma suivant en vhdl avec la question précédente
[pic 1]
3) Même cas
[pic 2]
Exercice 1 :
1) Il s’agit d’un mux à 8 entrées, donc on doit utiliser 3 sélectionneurs (car 23 = 8) Il y a plusieurs façons de programmer : - Cas 1 : La méthode la plus simple à comprendre en utilisant la boucle if/else (vous pouvez aussi avec elsif)
Cas 2 : La méthode la plus directe à programmer (mais on risque de se perdre dans les erreurs) 𝑆 = 𝑠𝑒𝑙2 ̅̅̅̅̅̅.(𝑠𝑒𝑙1 ̅̅̅̅̅̅.(𝑠𝑒𝑙0 ̅̅̅̅̅̅.𝑒0 + 𝑠𝑒𝑙0.𝑒1) + 𝑠𝑒𝑙1(𝑠𝑒𝑙0 ̅̅̅̅̅̅.𝑒2 + 𝑠𝑒𝑙0.𝑒3)) +
𝑠𝑒𝑙2(𝑠𝑒𝑙1 ̅̅̅̅̅̅.(𝑠𝑒𝑙0 ̅̅̅̅̅̅.𝑒4 + 𝑠𝑒𝑙0.𝑒5) + 𝑠𝑒𝑙1(𝑠𝑒𝑙0 ̅̅̅̅̅̅.𝑒6 + 𝑠𝑒𝑙0.𝑒7)) Exemple de résultat avec des horloges différents pour les entrées et les sélectionneurs
2) Il s’agit d’un demux à une entrée et 4 sorties, donc on va utiliser deux sélectionneurs (car 22 = 4) 1 méthode possible, les conditions if, elsif et else ou if et else seulement
...