TD1 VHDL Comportemental

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 4

1

T RAV AUX DI RI G E S

Système d'information
Description en langage VHDL
numérique

ENTITY ctr_74190B IS PORT (


Ø Description des entités :
v On donne, ci-dessous, le « symbole » d’un 1 ……………………………………………………………………………………………………..……………………………………………………………..

compteur (d’abord, tel qu’il est réalisé par le


2 ……………………………………………………………………………………………………..……………………………………………………………..
logiciel Quartus, et à droite mis en forme pour
se rapprocher du formalisme IEC). 3 ……………………………………………………………………………………………………..……………………………………………………………..

3b ……………………………………………………………………………………………………..……………………………………………………………..

4 ……………………………………………………………………………………………………..……………………………………………………………..

5 ……………………………………………………………………………………………………..……………………………………………………………..

6 ……………………………………………………………………………………………………..……………………………………………………………..

6b ……………………………………………………………………………………………………..……………………………………………………………..

);
END ctr_74190B;

ü Donnez la description VHDL de l’entité. La sortie RCON doit être lue pour déterminer la sortie :
MXMN. Conformez-vous à ce qui est demandé ci-après :
• À la ligne 1 on déclarera H et on ajoutera le commentaire : « horloge système ».
• À la ligne 2 on déclarera les entrées CEN, D_UN et LDN.
• À la ligne 3 on déclarera P en « std_logic_vector ».
• À la ligne 3b, en commentaire, on déclarera P en « integer ».
• À la ligne 4 on déclarera MXMN seul.
• À la ligne 5 on déclarera RCON seul.
• À la ligne 6 on déclarera Q en « std_logic_vector ».
• À la ligne 6b, en commentaire, on déclarera Q en « integer ».

v On donne, ci-dessous, la description VHDL complète d’un composant.


LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
use ieee.std_logic_unsigned.all;
Entity demux74154 is Port
(
Adr: in std_logic_vector(3 downto 0);
G1N,G2N: in std_logic;
Y: out std_logic_vector(15 downto 0)
);
End demux74154;
Architecture a_demux74154 of demux74154 is
Begin
etiquette: for i in 0 to 15 generate
Y(i)<=(G1N or G2N) when Adr=i else '1';
end generate;
End a_demux74154 ;
ü Dessinez, dans le cadre réservé à droite, le symbole de ce composant. (n’oubliez pas d’y faire
figurer le nom comme le fait le logiciel Quartus)

Système d’information numérique – TD1 : Description en langage VHDL 1/4


Ø Description de fonctions logiques combinatoires :
a
v Assignation sélective :
DA

CI9 Af_Anode Commune


ü Convertisseur 7 segments D0 7
A A
13 1 a DPY b DB

Dans le schéma ci-contre la fonction


D1 1 12 2 b a
B B
D2 2 11 3 c f b
C C
« décodage » est réalisée par un D3
VCC
6
D D
10
9
4
5
d
e e
g
c
c DC

composant MOS : le 4511. on veut


E
3 15 6 f d
LT F
4 14 7 dp d DD
réaliser cette même fonction en BI G g
5 7 x 470 8 dp
LE
utilisant un CPLD par une description 4511 K e DE
VHDL. La donnée d’entrée D est un T1
nombre BCD. On veut visualiser ce En R4 NPN f DF

nombre avec un afficheur 7 segments 10K


g DG
à cathode commune. Pour allumer le
segment « a » il faut mettre l’entrée p DP
a au niveau haut idem pour les autres K
segments.
ü Compléter le tableau ci-dessous

a
f b
g
e c
d

ü Complétez, ci-
dessous, les descriptions
VHDL de ce décodeur 7
segments.

--Décodeur 7 segments pour afficheur à cathodes communes --Décodeur 7 segments pour afficheur à cathodes communes
-- 2ième description VHDL library ieee;
library ieee; use ieee.std_logic_unsigned.all;
use ieee.std_logic_unsigned.all; use ieee.std_logic_1164.all;
use ieee.std_logic_1164.all; entity decod7s is port
entity decod7s2 is port (
( De: in integer range 0 to 9;
De: in integer range 0 to 9; a,b,c,d,e,f,g: out std_logic
a,b,c,d,e,f,g: out std_logic );
); end decod7s;
end decod7s2; architecture a_decod7s of decod7s is
architecture a_decod7s2 of decod7s2 is begin
signal Di: std_logic_vector(7 downto 0); with De select
begin a<='0' when 1|4, '1' when others;
with De select with De select
Di<=X"7E" when 0, b<='0' when 5|6, '1' when others;
"00110000" when 1, with De select
"01101101" when 2, c<='0' when 2, '1' when others;
X"79" when 3, with De select
X"33" when 4, d<='0' when 1|4|7, '1' when others;
"01011011" when 5, with De select
e<=
X"70" when 7, with De select
X"7F" when 8, f<='0' when 1|2|7, '1' when others;
X"7B" when others; with De select
--génération des sorties g<='0' when 0|1|7, '1' when others;
a<=Di(6); b<=Di(5); c<=Di(4); d<=Di(3); end a_decod7s;
e<=Di(2);f<=Di(1);g<=Di(0);
end a_decod7s2;

Système d’information numérique – TD1 : Description en langage VHDL 2/4


v Assignation inconditionnelle : --Complément à 1
Réalisez la description VHDL du complément LIBRARY ieee;
à 1 en 8 bits USE ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
ENTITY complement_a_1 IS PORT
(
D:in STD_LOGIC_vector(7 downto 0);
Q:out STD_LOGIC_vector(7 downto 0)
);
END complement_a_1;
ARCHITECTURE a_complement_a_1 OF complement_a_1 IS
BEGIN
Q<= Not D;
END a_complement_a_1;

Ø Description de fonctions séquentielles :


v Description de bascules :
Complétez, à gauche, la description d’une bascule JK. S, la mise à 1, est-elle synchrone ? Qu’en est-il de
R, la mise à 0 ? ……………………………………………………………………………………………………………………………………………………………………………..………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………..……………………………………………………………………………………………………..………………………………………………………………………………………………………………………………………………………………….

Complétez à droite la description d’une bascule D avec S (Set) synchrone et R (Reset) asynchrone.

library ieee; library ieee;


use ieee.std_logic_unsigned.all; use ieee.std_logic_unsigned.all;
use ieee.std_logic_1164.all; use ieee.std_logic_1164.all;
entity basc_JK is port entity basc_D_R_S is port
( (
R,S,J,K,H: in std_logic; R,S,H,D: in std_logic;
Q: buffer std_logic Q: out std_logic
); );
end basc_JK; end basc_D_R_S;
architecture a_basc_JK of basc_JK is architecture a_basc_D_R_S of basc_D_R_S is
begin begin
process(H,R,S ) process(H,R )
begin begin
if S='1' then Q<='1'; if R='1' then Q<='0';
elsif R='1' then Q<='0'; elsif (H'event and H='1') then
elsif (H'event and H='1') then
if S='1' then Q<='1';
if J='0' and K='1' then Q<='0';
else
elsif J='1'and K=’0’ then Q<='1';
elsif J='1'and K=’1’ then Q<=not Q;
Q<=D;
end if; end if;
end if;
end process; end if;
end a_basc_JK; end process;
end a_basc_D_R_S;

Système d’information numérique – TD1 : Description en langage VHDL 3/4


v Description d’un compteur :
Ci-dessous le chronogramme d’évolution d’un compteur, et son symbole.

Donnez toutes les raisons qui permettent d’affirmer que le modulo de ce compteur est 10 :
……………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………….………………………………………………….…………………………………………………………….

Donnez le nom, l’utilité et les niveaux d’action des entrées :


CEN : …………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………….…………………………………………………………….

D_UN : …………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………….…………………………………………………………….

LDN : …………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………….…………………………………………………………….

Complétez la description VHDL de ce compteur.


LIBRARY ieee;
USE ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
ENTITY ctr_74190A IS PORT (
H,CEN,D_UN,LDN:in STD_LOGIC;
P:in STD_LOGIC_vector(3 downto 0);
MxMn:buffer STD_LOGIC;
Rcon:out STD_LOGIC;
Q:out STD_LOGIC_vector(3 downto 0)
);
END ctr_74190A;
ARCHITECTURE a_ctr_74190A OF ctr_74190A IS
signal Ni: STD_LOGIC_vector(3 downto 0);
BEGIN
--partie séquentielle
PROCESS (H,LDN)
BEGIN
if LDN='0' then Ni<=P;
elsif H'event and H='1' THEN
if CEN='0' then
if D_UN='1' then
if Ni>"0000" then Ni <= Ni-1;
else Ni <="1001";
end if;
else
if Ni<"1001" then Ni <= Ni+1;
else Ni <="0000";
end if;
end if;
end if;
END IF;
END PROCESS;
--Partie combinatoire
Q<= Ni;
MXMN<='1' when (D_UN='0'and Ni="1001")
or(D_UN='1'and Ni="0000") else '0';
Rcon<='0' when MXMN='1' and H='0' else '1';
END a_ctr_74190A;

Modifiez la description VHDL de ce compteur pour déclarer MxMn en « out » en vue de la compatibilité
avec le logiciel Vivado et son simulateur.
Système d’information numérique – TD1 : Description en langage VHDL 4/4

Vous aimerez peut-être aussi

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy