LaDissertation.com - Dissertations, fiches de lectures, exemples du BAC
Recherche

Exercices VHDL

Commentaires Composés : Exercices VHDL. Recherche parmi 298 000+ dissertations

Par   •  15 Juillet 2014  •  6 524 Mots (27 Pages)  •  1 680 Vues

Page 1 sur 27

Elément de Module : Electronique numérique 2

Par M.JAROU 1 | P a g e

Travaux dirigés – Série N°1 Conception des circuits numériques avec langage VHDL

LOGIQUE COMBINATOIRE TD N°1 : FONCTIONS DE BASE TD N°2 : FONCTIONS COMBINATOIRES COMPLEXES  Décodeur 7 SEGments hexadécimal  Décodeur 7 SEGments décimal  Démultiplexeur 3 vers 8 à sorties actives à 0 et à entrées de validation  Comparateur de magnitude 4 bits

LOGIQUE SEQUENTIELLE

TD N°3 : FONCTIONS DE BASE Partie A : Fonctions asynchrones  Bascule RS  Verrou (latch) Partie B : Fonctions synchrones  Bascule D  Bascule RS synchrone  Bascule JK  Bascule T

TD N°4 : FONCTIONS COMPLEXES Partie A : Fonctions de comptage  Compteur synchrone  Décompteur synchrone  Compteur décompteur synchrone  Compteur synchrone modulo N  Compteur synchrone à prépositionnement synchrone  Compteur synchrone cascadable

Partie B : Registres à décalage  Registre à décalage à droite  Registre à décalage à droite à autorisation d'horloge  Registre à décalage à droite ou à gauche  Registre à décalage à chargement parallèle synchrone  Compteur en anneau : génération de séquence  Compteur en anneau : génération de séquence pseudo-aléatoire

Elément de Module : Electronique numérique 2

Par M.JAROU 2 | P a g e

TD N°1 : * Partie A : Fonction de base L'apprentissage de la logique commence, de manière incontournable, par des notions d'algèbre de BOOLE. Celles-ci étant acquises ou en voie de l'être, on aborde les premiers exemples concrets en utilisant des portes logiques élémentaires. Ceci donne lieu à des expérimentations qui permettent d'étudier les aspects technologiques des circuits logiques (dans ce cas les circuits 74xx ou CD4000 sont bien utiles ///). On donne ci-dessous un exemple.

L'outil de développement va interpréter la description en langage comportemental et proposer une solution pour "câbler" le circuit logique programmable de manière à ce qu'il remplisse la fonction décrite. Parmi les nombreux fichiers intermédiaires qu'il crée, il s'en trouvera qui contiennent la liste des équations booléennes générées. C'est cette liste qui est fournie après chaque exemple.

Une description en langage VHDL est fournie ci-dessous.

LIBRARY ieee; Use ieee.std_logic_1164.all; Use ieee.numeric_std.all; Use ieee.std_logic_unsigned.all;

entity PORTES is port (A,B :in std_logic; Y1,Y2,Y3,Y4,Y5,Y6,Y7:out std_logic); end PORTES;

architecture ARCH_PORTES of PORTES is begin Y1 <= A and B; Y2 <= A or B; Y3 <= A xor B; Y4 <= not A; Y5 <= A nand B; Y6 <= A nor B; Y7 <= not(A xor B); end ARCH_PORTES;

Les équations générées à partir de la description en VHDL sont : y1 = a * b y2 = b + a y3 = a * /b + /a * b y4 = /a y5 = /a + /b y6 = /a * /b y7 = a * b + /a * /b

Le schéma logique RTL généré :

Elément de Module : Electronique numérique 2

Par M.JAROU 3 | P a g e

Partie B : Applications combinatoires complexes L'utilisation de l'algèbre de BOOLE et de ses méthodes de simplification par tableau de KARNAUGH amène à travailler sur des fonctions combinatoires complexes. Voici 4 exemples classiques : le décodeur 7 SEGments hexadécimal, le décodeur 7 SEGments décimal, le démultiplexeur, le comparateur de magnitude pour lesquels il sera intéressant d'effectuer aussi la détermination des équations "à la main" afin de vérifier la similitude des solutions.

 Décodeur 7 SEGments hexadécimal Donner la description en langage VHDL pour le décodeur à 7 SEGments hexadécimal. Le choix d'un afficheur Anode ou Cathode commune se fera en complémentant ou non la sortie SEG.

Description en langage VHDL

LIBRARY ieee; Use ieee.std_logic_1164.all; Use ieee.numeric_std.all; Use ieee.std_logic_unsigned.all;

entity DEC7SEG3 is port (DEC :in std_logic_vector(3 downto 0); SEG:out std_logic_vector(0 to 6)); end DEC7SEG3;

architecture ARCH_DEC7SEG3 of DEC7SEG3 is begin SEG <= "1111110" WHEN DEC = 0 ELSE "0110000" WHEN DEC = 1 ELSE "1101101" WHEN DEC = 2 ELSE "1111001" WHEN DEC = 3 ELSE "0110011" WHEN DEC = 4 ELSE "1011011" WHEN DEC = 5 ELSE "1011111" WHEN DEC = 6 ELSE "1110000" WHEN DEC = 7 ELSE "1111111" WHEN DEC = 8 ELSE "1111011" WHEN DEC = 9 ELSE "1110111" WHEN DEC = 10 ELSE "0011111" WHEN DEC = 11 ELSE "1001110" WHEN DEC = 12 ELSE "0111101" WHEN DEC = 13 ELSE "1001111" WHEN DEC = 14

Y1~0

Y2~0

Y3~0

Y5~0

Y4

Y5

Y6

Y7

Y1

A

Y6~0

B

Y2

Y3

Elément de Module : Electronique numérique 2

Par M.JAROU 4 | P a g e

ELSE "1000111"; end ARCH_DEC7SEG3;

Les équations générées sont : SEG_0 = /DEC_3 * DEC_2 * DEC_0 + DEC_3 * /DEC_2 * /DEC_1 + /DEC_2 * /DEC_0 + DEC_3 * /DEC_0 + DEC_2 * DEC_1 + /DEC_3 * DEC_1 SEG_1 = /DEC_3 * DEC_1 * DEC_0 + DEC_3 * /DEC_1 * DEC_0 + /DEC_3 * /DEC_1 * /DEC_0 + /DEC_2 * /DEC_0 + /DEC_2 * /DEC_1 SEG_2 = /DEC_2 * /DEC_1 + /DEC_2 * DEC_0 + /DEC_3 * DEC_2 + /DEC_1 * DEC_0 + DEC_3 * /DEC_2 SEG_3 = DEC_2 * DEC_1 * /DEC_0 + /DEC_3 * /DEC_2 * /DEC_0 + /DEC_2 * DEC_1 * DEC_0 + DEC_2 * /DEC_1 * DEC_0 + DEC_3 * /DEC_1 SEG_4 = /DEC_2 * /DEC_0 + DEC_3 * DEC_2 +

...

Télécharger au format  txt (32 Kb)   pdf (319.5 Kb)   docx (21.3 Kb)  
Voir 26 pages de plus »
Uniquement disponible sur LaDissertation.com