Vous êtes sur la page 1sur 4

Masters –(ETC, TSE et MECA)

Année : 2020-2021

TD de VHDL et logique programmable


Exercice 1 :

On considère les programmes ci-dessous écrites en code VHDL :

Code VHDL 1 :

LIBRARY ieee;
USE ieee.std_logic_1164.all;
ENTITY Y IS
port (D0, D1, S : in std_logic; Q : out std_logic );
END Y;
ARCHITECTURE synth OF Y IS
BEGIN
process (D0, D1, S)
begin
if S=‘0’ then Q <= D0; else Q <= D1;
end if;
end process;
END synth;

Code VHDL 2 :

LIBRARY ieee;
USE ieee.std_logic_1164.all;
ENTITY YY IS
port (S0, S1, RL : in std_logic; X : in std_logic_vector(6 downto 0); Q : out
std_logic );
END YY;
ARCHITECTURE struct OF YY IS
component Y
port (D0, D1, S : in std_logic; Q : out std_logic );
end component;
signal Sa1, Sa2, Sa3, Sa4, Sb1, Sb2 : std_logic;
BEGIN
a1: Y port map (X(7), X(6), S0, Sa1);
a2: Y port map (X(5), X(4), S0, Sa2);
a3: Y port map (X(3), X(2), S0, Sa3);
1
a4: Y port map (X(1), X(0), S0, Sa4);
b1: Y port map (Sa1, Sa2, S1, Sb1);
b2: Y port map (Sa3, Sa4, S1, Sb2);
c1: Y port map (Sb1, Sb2, RL, Q);
END struct;

1. A partir de code VHDL 1, donner une construction graphique qui reproduit le


fonctionnement de Y.
2. Déduire une construction graphique qui reproduit le fonctionnement de YY
(code VHDL 2).

Exercice 2 :

La figure ci-dessous représente le circuit équivalent d’une unité arithmétique et logique.


Comme son nom l’indique, ce circuit est capable de d'exécuter les deux types d'opérations
arithmétique et logique. Son mode de fonctionnement est décrit dans le tableau ci-dessous.
La sortie (arithmétique ou logique) est sélectionnée par le bit MSB de l’entrée sel, alors que
l'opération spécifique est sélectionnée par les trois autres bits de l’entrée sel.
1. A partir de la figure et de tableau ci-dessous donner une description VHDL :
a. Unité arithmétique (Arithmitic Unit)
b. Unité logique (Logic Unit)
c. Multiplexeur (Mux).
2. Donner une description de circuit de la figure ci-dessous en utilisant une architecture
structurelle

2
Exercice 3 :

Réaliser un additionneur sur 4 bits donné par le schéma ci-dessous (procedure +


for generate)

Figure 1. Schéma du module (composant) add4

Exercice 4 :
Le bloc de registres internes du processeur est constitué de quatre registres de
données 1 bit à base de bascule D. L’entrée D de ces 4 bascules sera
commune, les entrées (notées T 0, T 1, T 2 et T 3) seront distinctes, les sorties
(notées Q 0, Q 1, Q 2 et Q 3) seront distinctes et les sorties /Q ne sont pas
utilisées.
3
Pour le fonctionnement, il suffit d’activer le bon Ti. Comme nous avons à
chaque fois un T i à sélectionner parmi les 4, nous utiliserons un décodeur 2
vers 4. Pour récupérer l’information du bon registre, il faut de nouveau un
multiplexeur qui va prendre en entrée les signaux Qi et rendra en sortie un
signal E. Les sélecteurs (signaux de contrôle) du décodeur seront notés C6 et
C7 et ceux du multiplexeur seront appelés C 4 et C5 .

Figure 1

1. Donner une description VHDL comportemental de :


2.
a. Décodeur 2 vers 4.
b. Bascule D active sur état haut.
c. Multiplexeur 4 vers 1
3. Donner une description VHDL structurelle du schéma de la figure 1 (utiliser
component + for … gerarate).
4. Donner une description VHDL du schéma de la figure 1 (utiliser function pour
décrire Multiplexeur, procedure pour décrire décodeur et component + for …
gerarate pour décrire les quatre registre).

Exercice 5 :

Concevoir une machine capable de détecter la séquence 0-0-0 sur son unique
entrée X. Notez que dans la séquence 0-0-0-0, la séquence se produit deux fois.
Utiliser la machine de Moore.

1. Donner le graphe d’état qui résume le fonctionnement de la machine X.


2. Donner une description VHDL de cette machine en utilisant deux process (1
combinatoire + 1 séquentiel).

Vous aimerez peut-être aussi