Académique Documents
Professionnel Documents
Culture Documents
Un décodeur BCD permet d’adapter des données binaires codées sur 4 bits
architecture decarch of decbcd7seg is
(représentant les chiffres de 0 à 9) aux entrées d’un afficheur 7 segments (chaque
a begin
entrée étant connectée à un segment et permettant de l’allumer ou de l’éteindre) b
pF BCD c
WITH BCD SELECT
a
Donnée BCD
/7 d Commande segments
a e segments<=“1111110" WHEN "0000",
pF BCD b f b pf seg f “0110000" WHEN "0001",
c
g
Donnée BCD
/7 d g h
“1101101" WHEN "0010",
e c
pf seg f
“1111001" WHEN "0011",
g
e “0110011" WHEN "0100",
DAMERGI Emir – INSAT 2019/20 3 DAMERGI Emir – INSAT 2019/20 4 DAMERGI Emir – INSAT 2019/20 5
Décodeur BCD/7seg (3): architecture (cas 2) Encodeur de priorité (1): Encodeur de priorité (2):
architecture decarch of decbcd7seg is
begin
DAMERGI Emir – INSAT 2019/20 6 DAMERGI Emir – INSAT 2019/20 8 DAMERGI Emir – INSAT 2019/20 9
Encodeur de priorité (3): entity Encodeur de priorité (4): architecture -1- Encodeur de priorité (4): architecture -2-
use ieee.std_logic_unsigned.all;
priorité Liste de sensibilité = clk, signaux asynchrones PROCESS( Clk,rst )
BEGIN
IF rst=
ENTITY Compteur IS
Ordre de traitement ( if ): ELSIF (clk'event and clk='1')
PORT (
1- Signaux Asynchrones : Rst IF load
• Les signaux Load, Inc et Dec sont synchrones. clk, rst, inc, dec , load: in std_logic; 2- Signal d’horloge (Clk)
ELSIF inc
2-x: Signaux synchrone par ordre
• Le signal de remise à zéro (Rst) est asynchrone. Load_val: in std_logic_vector (15 downto 0);
ELSIF dec
de priorité Load, inc et dec
• Tous ces signaux de contrôle sont actifs au niveau logique bas. Counter : out std_logic_vector (15 downto 0) END IF;
END IF;
Question: Donner le code VHDL pour modéliser le compteur. );
A la fin du traitement (process) la sortie Counter<=Count;
END Compteur; récupère la valeur du signal temporaire
END PROCESS;
END aCmpt;
DAMERGI Emir – INSAT 2019/20 14 DAMERGI Emir – INSAT 2019/20 15 DAMERGI Emir – INSAT 2019/20 16
Compteur/Décompteur synchrone -4- : architecture Exercice : Registre à décalage série-parallèle Synthèse -1-
ARCHITECTURE aCmpt OF Compteur IS Il s’agit de développer un modèle structurel d’un registre N bits avec une entrée série
SIGNAL Count: std_logic_vector(15 downto 0); IF rst='0' THEN et une sortie parallèle basé sur des composants flip-flops
BEGIN Count<=(OTHERS=>'0'); - - Tous les bits à 0
DAMERGI Emir – INSAT 2019/20 DAMERGI Emir – INSAT 2019/20 DAMERGI Emir – INSAT 2019/20 21
A
+ C
B Process(clk)
Begin
+ E If (clk’event and clk=‘1’) then
D C <=A+B;
E <=D+(A+B);
Dans un process clocké:
Chaque affectation génère un flip- End if
flop entre les parties gauche et End
droite de l’affectation