Vous êtes sur la page 1sur 36

REPUBLIQUE DU CAMEROUN REPUBLIC OF CAMEROON

Paix – Travail – Patrie Peace – Work – Fatherland


------------- -------------
UNIVERSITE DE DOUALA THE UNIVERSITY OF DOUALA
----------- -----------
ECOLE NATIONALE SUPERIEURE NATIONAL HIGHER POLYTECHNIC
POLYTECHNIQUE DE DOUALA SCHOOL OF DOUALA
----------- -----------
B.P. 2701 Douala P.O.Box:2701 Douala
Tél. (237) 697 542 240 Phone :(237) 697 542 240
Site web : www.enspd-udo.cm Email: contact@enspd-udo.cm

VLSI et systeme

TRAVAIL PERSONNEL DE L’ETUDIANT

SPECIALITE : Génie Electrique et Système Intelligent (GESI) 4

Sous la supervision de M. Djande

Année Académique: 2022-2023


MEMBRES DU GROUPE

1- EMEDI SORELLE 22G00901


2- ENDALLE DIKOUME EUGENIE INGRID 20G00112
3- FOWE KAMLA MELKISEDEK 20G00139
4- FOWENG TCHO DARREL 20G00140
5- EWANE HERVE RAOUL 20G00118
6- EYEBE MARILYN ENNY DOROTHEE 20G00122
7- EPALLE NGANGE RICHARD OLIVER 22G00717
8- EONE SIMON RAPHAEL 22G01053

1
20 EXERCICES SUR ARCHITECTURE DES CIRCUITS LOGIQUE PROGRAMMABLE

EXERCICE 1 :

20 questions à choix multiples (QCM) sur l'architecture des circuits programmables, accompagnées
de leurs réponses corrélées :

1) Qu'est-ce qu'un circuit programmable ?

a) Un circuit intégré figé

b) Un circuit intégré reconfigurable

c) Un circuit intégré analogique

d) Un circuit intégré numérique

Réponse : b) Un circuit intégré reconfigurable

2) Qu'est-ce qu'un FPGA ?

a) Un circuit logique programmable

b) Un circuit analogique programmable

c) Un circuit numérique programmable

d) Un circuit optique programmable

Réponse : a) Un circuit logique programmable

3) Quelle est la principale caractéristique d'un FPGA ?

a) Grande densité de portes logiques

b) Haute fréquence de fonctionnement

c) Grande capacité de mémoire

d) Capacité de reconfiguration

2
Réponse : d) Capacité de reconfiguration

4) Quelle est l'unité de base d'un FPGA ?

a) Macrocellule

b) Porte logique

c) LUT (Look-Up Table)

d) Flip-flop

Réponse : c) LUT (Look-Up Table)

5) Quelle est la fonction principale d'une LUT dans un FPGA ?

a) Stockage de données

b) Réalisation de fonctions logiques

c) Conversion analogique-numérique

d) Amplification de signaux

Réponse : b) Réalisation de fonctions logiques

6) Qu'est-ce qu'un CPLD ?

a) Un type de FPGA

b) Un type de microcontrôleur

c) Un type de mémoire

d) Un type de transducteur

Réponse : a) Un type de FPGA

3
7) Quelle est la différence principale entre un FPGA et un CPLD ?

a) La taille

b) La capacité de reconfiguration

c) Le nombre de broches d'entrée-sortie

d) La technologie de fabrication

Réponse : a) La taille

8) Qu'est-ce qu'un bit Stream dans le contexte des FPGA ?

a) Une séquence de bits représentant la configuration du FPGA

b) Une unité de stockage dans un FPGA

c) Un type de mémoire volatile

d) Un type de bus de communication

Réponse : a) Une séquence de bits représentant la configuration du FPGA

9) Qu'est-ce qu'un ASIC ?

a) Un circuit logique programmable

b) Un circuit analogique programmable

c) Un circuit numérique programmable

d) Un circuit intégré spécifique à une application

Réponse : d) Un circuit intégré spécifique à une application

10) Quelle est la principale différence entre un FPGA et un ASIC ?

4
a) Le coût

b) La capacité de reconfiguration

c) La performance

d) La complexité de conception

Réponse : b) La capacité de reconfiguration

11) Quelles sont les deux principales technologies de mémoire utilisées dans les FPGA ?

a) SRAM et DRAM

b) Flash et EEPROM

c) ROM et PROM

d) SRAM et antifuse

Réponse : d) SRAM et antifuse

12) Qu'est-ce qu'un circuit logique programmable à base d'antifuse ?

a) Un circuit dont la configuration est stockée dans une mémoire SRAM

b) Un circuit dont la configuration est stockée dans une mémoire antifuse

c) Un circuit dont la configuration est stockée dans une mémoire flash

d) Un circuit dont la configuration est stockée dans une mémoire EEPROM

Réponse : b) Un circuit dont la configuration est stockée dans une mémoire antifuse

13) Qu'est-ce qu'un circuit logique programmable à base de mémoire SRAM ?

a) Un circuit dont la configuration est stockée dans une mémoire SRAM

b) Un circuit dont la configuration est stockée dans une mémoire antifuse

5
c) Un circuit dont la configuration est stockée dans une mémoire flash

d) Un circuit dont la configuration est stockée dans une mémoire EEPROM

Réponse : a) Un circuit dont la configuration est stockée dans une mémoire SRAM

14) Qu'est-ce qu'un circuit logique programmable à base de mémoire flash ?

a) Un circuit dont la configuration est stockée dans une mémoire flash

b) Un circuit dont la configuration est stockée dans une mémoire antifuse

c) Un circuit dont la configuration est stockée dans une mémoire SRAM

d) Un circuit dont la configuration est stockée dans une mémoire EEPROM

Réponse : a) Un circuit dont la configuration est stockée dans une mémoire flash

15) Qu'est-ce qu'un circuit logique programmable à base de mémoire EEPROM ?

a) Un circuit dont la configuration est stockée dans une mémoire EEPROM

b) Un circuit dont la configuration est stockée dans une mémoire antifuse

c) Un circuit dont la configuration est stockée dans une mémoire flash

d) Un circuit dont la configuration est stockée dans une mémoire SRAM

Réponse : a) Un circuit dont la configuration est stockée dans une mémoire EEPROM

16) Qu'est-ce qu'une horloge dans un FPGA ?

a) Un composant qui génère des signaux d'horloge

b) Une zone de mémoire spéciale pour stocker les données

c) Un composant utilisé pour les opérations arithmétiques

d) Une unité de reconfiguration

6
Réponse : a) Un composant qui génère des signaux d'horloge

17) Qu'est-ce qu'une IP (Intellectuel Property) dans le contexte des FPGA ?

a) Une adresse IP utilisée pour la communication réseau

b) Une technologie de protection des droits d'auteur

c) Un composant préconçu et réutilisable pour une fonction spécifique

d) Une unité de mesure de la performance des FPGA

Réponse : c) Un composant préconçu et réutilisable pour une fonction spécifique

18) Qu'est-ce qu'un bus dans un FPGA ?

a) Un circuit de communication sur lequel plusieurs composants peuvent se connecter

b) Une unité de calcul arithmétique

c) Un type de mémoire volatile

d) Un circuit logique programmable

Réponse : a) Un circuit de communication sur lequel plusieurs composants peuvent se connecter

19) Qu'est-ce qu'un verrouillage de configuration (Configuration Lock) dans un FPGA ?

a) Un mécanisme qui empêche la reconfiguration du FPGA

b) Un dispositif de sécurité pour protéger la configuration du FPGA

c) Un composant utilisé pour stocker la configuration du FPGA

d) Une fonctionnalité permettant de sauvegarder la configuration du FPGA

Réponse : b) Un dispositif de sécurité pour protéger la configuration du FPGA

7
20) Qu'est-ce qu'un circuit hybride ?

a) Un circuit combinant des composants analogiques et numériques

b) Un circuit intégré spécifique à une application

c) Un circuit logique programmable à base de mémoire flash

d) Un circuit logique programmable à base de mémoire antifuse

Réponse : a) Un circuit combinant des composants analogiques et numériques

EXERCICE 2 :

Considérons un circuit logique simple avec deux entrées A et B, et une sortie C. La sortie C est définie
comme suit : C= (A AND B) OR (A XOR B). Ecrivez la table de vérité pour ce circuit.

CORRECTION 2 :

Pour résoudre cet exercice, nous devons examiner toutes les combinaisons possibles des valeurs des
entrées A et B, et déterminer la valeur correspondante de la sortie C.

Table de vérité :

A B C

0 0 0

0 1 1

1 0 1

1 1 0

Explication :

Pour chaque combinaison d’entrées, nous évaluons l’expression logique (A AND B) OR (A XOR B) pour
obtenir la valeur de la sortie C.

✓ Pour A=0 et B=0 :


• (A AND B) = (0 AND 0) = 0
8
• (A XOR B) = (0 XOR 0) = 0
• (A AND B) OR (A XOR B) =0, OR 0= 0
✓ Pour A=0 et B=1
• (A AND B) = (0 AND 1) = 0
• (A XOR B) = (0 XOR 1) = 1
• (A AND B) OR (A XOR B) =0, OR 1= 1
✓ Pour A=1 et B=0
• (A AND B) = (1 AND 0) = 0
• (A XOR B) = (1 XOR 0) = 1
• (A AND B) OR (A XOR B) =0, OR 1= 1
✓ pour A=1 et B=1
• (A AND B) = (1 AND 1) = 1
• (A XOR B) = (1 XOR 1) = 0
• (A AND B) OR (A XOR B) =1, OR 0= 0

EXERCICE 3 :

Considérons un circuit logique avec trois entrées A, B et C, et une sortie D. La sortie D est définie
comme suit : D = (A AND B) OR (B AND C) OR (A AND C). Ecrivez la table de vérité pour ce circuit.

Correction 3:

Pour résoudre cet exercice, nous devons examiner toutes les combinaisons possibles
des valeurs des entrées A et B et C, et déterminer la valeur correspondante de la sortie D.

Table de vérité :

A B C D

0 0 0 0

0 0 1 0

0 1 0 0

0 1 1 1

1 0 0 0

1 0 1 1

1 1 0 1

1 1 1 1

9
Explication :

Pour chaque combinaison d’entrées, nous évaluons l’expression logique (A AND B) OR (B AND C) OR
(A AND C) pour obtenir la valeur de la sortie D.

✓ Pour A= 0, B=0 et C=0 :


• (A AND B) = (0 AND 0) =0
• (B AND C) = (0 AND 0) =0
• (A AND C) = (0 AND 0) =0
• (A AND B) OR (B AND C) OR (A AND C) = 0 OR 0 OR 0=0
✓ Pour A= 0, B=0 et C=1 :
• (A AND B) = (0 AND 0) =0
• (B AND C) = (0 AND 1) =0
• (A AND C) = (0 AND 1) =0
• (A AND B) OR (B AND C) OR (A AND C) = 0 OR 0 OR 0=0
✓ Pour A= 0, B=1 et C=0 :
• (A AND B) = (0 AND 1) =0
• (B AND C) = (1 AND 0) =0
• (A AND C) = (0 AND 0) =0
• (A AND B) OR (B AND C) OR (A AND C) = 0 OR 0 OR 0=0
✓ Pour A= 0, B=1 et C=1 :
• (A AND B) = (0 AND 1) =0
• (B AND C) = (1 AND 1) =1
• (A AND C) = (0 AND 1) =0
• (A AND B) OR (B AND C) OR (A AND C) = 0 OR 1 OR 0=1
✓ Pour A= 1, B=0 et C=0 :
• (A AND B) = (1 AND 0) =0
• (B AND C) = (0 AND 0) =0
• (A AND C) = (1 AND 0) =0
• (A AND B) OR (B AND C) OR (A AND C) = 0 OR 0 OR 0=0
✓ Pour A= 1, B=0 et C=1 :
• (A AND B) = (1 AND 0) =0
• (B AND C) = (0 AND 1) =0
• (A AND C) = (1 AND 1) =1
• (A AND B) OR (B AND C) OR (A AND C) = 0 OR 0 OR 1=1
✓ Pour A= 1, B=1 et C=0 :
• (A AND B) = (1 AND 1) =1
• (B AND C) = (1 AND 0) =0
• (A AND C) = (1 AND 0) =0
• (A AND B) OR (B AND C) OR (A AND C) = 1 OR 0 OR 0=1

10
✓ Pour A= 1, B=1 et C=1 :
• (A AND B) = (1 AND 1) =1
• (B AND C) = (1 AND 1) =1
• (A AND C) = (1 AND 1) =1
• (A AND B) OR (B AND C) OR (A AND C) = 1 OR 1 OR 1=1.

EXERCICE 4 :

Considérons un circuit logique simple avec deux entrées A et B, et une sortie C. La sortie C est définie
comme suit : C= (A AND B) OR (A XOR B). Ecrivez la table de vérité pour ce circuit.

CORRECTION 4:

Pour résoudre cet exercice, nous devons examiner toutes les combinaisons possibles des
valeurs des entrées A et B, et déterminer la valeur correspondante de la sortie C.

Table de vérité :

A B C

0 0 0

0 1 1

1 0 1

1 1 0

Explication :

Pour chaque combinaison d’entrées, nous évaluons l’expression logique (A AND B) OR (A XOR B) pour
obtenir la valeur de la sortie C.

✓ Pour A=0 et B=0 :


• (A AND B) = (0 AND 0) = 0
• (A XOR B) = (0 XOR 0) = 0
• (A AND B) OR (A XOR B) =0, OR 0= 0
✓ Pour A=0 et B=1
• (A AND B) = (0 AND 1) = 0
• (A XOR B) = (0 XOR 1) = 1
• (A AND B) OR (A XOR B) =0, OR 1= 1
✓ Pour A=1 et B=0
11
• (A AND B) = (1 AND 0) = 0
• (A XOR B) = (1 XOR 0) = 1
• (A AND B) OR (A XOR B) =0, OR 1= 1
✓ pour A=1 et B=1
• (A AND B) = (1 AND 1) = 1
• (A XOR B) = (1 XOR 1) = 0
• (A AND B) OR (A XOR B) =1, OR 0= 0

EXERCICE 5 :
Considérons un circuit logique avec trois entrées A, B et C, et une sortie D. La sortie D est définie
comme suit : D = (A AND B) OR (B AND C) OR (A AND C). Ecrivez la table de vérité pour ce circuit.

Correction 5 :

Pour résoudre cet exercice, nous devons examiner toutes les combinaisons possibles
des valeurs des entrées A et B et C, et déterminer la valeur correspondante de la sortie D.

Table de vérité :

A B C D

0 0 0 0

0 0 1 0

0 1 0 0

0 1 1 1

1 0 0 0

1 0 1 1

1 1 0 1

1 1 1 1

Explication :

Pour chaque combinaison d’entrées, nous évaluons l’expression logique (A AND B) OR (B AND C) OR
(A AND C) pour obtenir la valeur de la sortie D.

✓ Pour A= 0, B=0 et C=0 :


12
• (A AND B) = (0 AND 0) =0
• (B AND C) = (0 AND 0) =0
• (A AND C) = (0 AND 0) =0
• (A AND B) OR (B AND C) OR (A AND C) = 0 OR 0 OR 0=0
✓ Pour A= 0, B=0 et C=1 :
• (A AND B) = (0 AND 0) =0
• (B AND C) = (0 AND 1) =0
• (A AND C) = (0 AND 1) =0
• (A AND B) OR (B AND C) OR (A AND C) = 0 OR 0 OR 0=0
✓ Pour A= 0, B=1 et C=0 :
• (A AND B) = (0 AND 1) =0
• (B AND C) = (1 AND 0) =0
• (A AND C) = (0 AND 0) =0
• (A AND B) OR (B AND C) OR (A AND C) = 0 OR 0 OR 0=0
✓ Pour A= 0, B=1 et C=1 :
• (A AND B) = (0 AND 1) =0
• (B AND C) = (1 AND 1) =1
• (A AND C) = (0 AND 1) =0
• (A AND B) OR (B AND C) OR (A AND C) = 0 OR 1 OR 0=1
✓ Pour A= 1, B=0 et C=0 :
• (A AND B) = (1 AND 0) =0
• (B AND C) = (0 AND 0) =0
• (A AND C) = (1 AND 0) =0
• (A AND B) OR (B AND C) OR (A AND C) = 0 OR 0 OR 0=0
✓ Pour A= 1, B=0 et C=1 :
• (A AND B) = (1 AND 0) =0
• (B AND C) = (0 AND 1) =0
• (A AND C) = (1 AND 1) =1
• (A AND B) OR (B AND C) OR (A AND C) = 0 OR 0 OR 1=1
✓ Pour A= 1, B=1 et C=0 :
• (A AND B) = (1 AND 1) =1
• (B AND C) = (1 AND 0) =0
• (A AND C) = (1 AND 0) =0
• (A AND B) OR (B AND C) OR (A AND C) = 1 OR 0 OR 0=1
✓ Pour A= 1, B=1 et C=1 :
• (A AND B) = (1 AND 1) =1
• (B AND C) = (1 AND 1) =1
• (A AND C) = (1 AND 1) =1
• (A AND B) OR (B AND C) OR (A AND C) = 1 OR 1 OR 1=1.

13
Exercice 6
Compléter le programme VHDL correspondant au circuit ci-dessous :

Sel

S1 A

B
S3
MUX D O
S2

CLK

Correction 6

Library ieee ;
Use ieee.std_logic_1164.all ;

Entity exercice2 is
Port ( A : in std_logic ;
B : in std_logic ;
SEL : in std_logic ;
CLK : in std_logic ;
O : out std_logic);
End exercice2;

Architecture behav of exercice2


is Signal S1,S2,S3 : std_logic ;
begin

M2 Auto

S1<=A xor B ;
S2<= A and B ;

Process (SEL)
begin if
SEL=’1’ then
S3<=S1 ; else
S3<=S2 ;
end if ;

14
end process;

process(CLK,S3)
begin
if (CLK'event and CLK=’1’) then
O<=S3 ;
end if; end
process;
end behv;

EXERCICE CORRIGE 7 :

Indiquez, pour chacune des expressions suivantes, quel terme lui correspond dans la liste suivante :
FPGA, PLA, circuit logique, PROM, ou programme exécutable.

1. Un PLD avec une matrice AND fixe et une matrice OR programmable est : PROM

2. Le dispositif logique programmable complexe composé de CLB (Configurable Logic Bloc) est :
__FPGA__

3. Un langage HDL est un langage de programmation qui sert à donner naissance à : un circuit
logique

4. Dispositifs logiques programmables plutôt combinatoires que séquentiels : PLA

Donner la table des états de ce circuit séquentiel sachant qu’il démarre à partir de l’état initial Q2Q1Q0
= 000.

15
16
Exercice 8

On donne la description VHDL suivante :

Library ieee ;

Use ieee.std_logic_1164.all;

Use work.std_arith.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<= A not B;

Y5<= A nand B;

Y6<= A nor B;

Y7<= not (A xor B);


1) A partir du fichier donner les noms des bibliothèques utilisées.
end Arch_Portes;
2) Quel est le nom de l’entité ? Quel est le nom de l’architecture ?

3) Représenter le schéma fonctionnel de la fonction. On placera naturellement les entrées à gauche


et les sorties à droites.

Correction 8

1) Les noms des bibliothèques utilisées.


• La bibliothèque IEEE du standard VHDL,
• Le paquetage standard pour ieee.Std_logic_1164 pour typé les entrées/ sorties et les
signaux internes,
• Le paquetage personnalisé par l’utilisateur pour work.std_arith pour spécifié les
fonctions utilisées dans le programme VHDL.

2) Quel est le nom de l’entité ? Portes Quel est le nom de l’architecture ? Arch_Portes
17
3) Représenter le schéma fonctionnel de la fonction.

Exercice 9

B A S

0 0 1

0 1 1

1 0 1

1 1 0

1) Faire la description VHDL de ce circuit ?

2) De quel circuit s’agit-il ?

3) Dessiner le schéma bloc de ce circuit ?

18
Correction 9

1) Faire la description VHDL de ce circuit ?

Library ieee ;

Use ieee.std_logic_1164.all ;

Use ieee.std_logic_arith.all ;

Entity Ex_2 is Port (A, B: in std_logic;

S: out std_logic);

end Ex_2;

Architecture arch_ex2 of Ex_2 is

begin

S <= '0' when A= '1' and B='1' else S <= '1';

end arch_ex2;

2) De quel circuit s’agit-il ? Il s’agit du circuit NAND

3) Le schéma de bloc de ce circuit

Exercice 10

1) Faire la description VHDL de ce circuit ?

Library ieee ;

Use ieee.std_logic_1164.all ;

Use ieee.std_logic_arith.all ;

19
Entity Ex_3 is

Port (A0, A1, A2, A3: in std_logic;

S0, S1: out std_logic);

end Ex_3 ;

Architecture arch_ex3 of Ex_3 is

begin

process (A0, A1, A2, A3)

begin

if (A0='1' and A0='0' and A0='1' and A0='0') then S0<= '1'; S1<='1' ;

else if (A0='0' and A0='1' and A0='1' and A0='0') then S0<= '1';S1<='0' ;

else if (A0='1' and A0='0' and A0='1' and A0='1') then S0<= '0';S1<='1' ;

end if;

end if;

end if;

end process; end arch_ex2;

2) Ecrire une description VHDL qui utilise les entrées et les sorties en vecteurs dans une entité
et plusieurs architectures qui contiennent différentes descriptions :
• Affectation sélective (with… select… when) ?
• Affectation conditionnelle (when… else) ?
• Structure de test (if… then… else)?
• Structure de choix (case… is… when) ?

Library ieee ;

Use ieee.std_logic_1164.all ;

Use ieee.std_logic_arith.all ;

Entity vecteur is

Port (A: in std_logic_vector (3 downto 0);

S: out std_logic_vector (1 downto 0));

20
end vecteur;

• Architecture with_select of vecteur is

Begin

with A select

S<= ''11'' when ''0101'',

''01'' when ''0110'',

''10'' when ''1101'',

'0' when others;

end with_select;

• Architecture when_else of vecteur is

begin

S<= ''11'' when A=''0101''

else ''01'' when A=''0110''

else ''10'' when A=''1101''

else '0' when others;

end when_else;

• Architecture if_then of vecteur is

begin

process (A)

begin

if A=''0101'' then S<= ''11'' ;

else if A=''0110'' then S<= ''01'' ;

else if A=''1101'' then S<= ''10'' ;

end if;

end if;
21
end if; end process;

end if_then;

• Architecture case_is of vecteur is

begin

process (A)

begin case A is when ''0101'' => S<= ''11'' ;

when ''0110'' => S<= ''01'' ;

when ''1101'' => S<= ''10'' ;

end process;

end case_is;

Exercice 11

1) Convertir les nombres décimaux suivants en base 2 (base binaire) :

a. 13

f. 0,125 b. 27 g. 0,25

c. 135

h. 0,35

d. 2016

i. 15,33

e. 10512

j. 135,625

2) Convertir les nombres décimaux précédents en hexadécimal (base 16) puis en octal (base 8).

22
Correction 11

1) Conversion en base 2 (binaire) :

a. 13 = 1101

b. 27 = 11011

c. 135 = 10000111

d. 2016 = 11111100000

e. 10512 = 10100100010000

f. 0,125 = 0.001

g. 0,25 = 0.01

h. 0,35 = 0.01011

i. 15,33 = 1111.01001

j. 135,625 = 10000111.101

2) Conversion en hexadécimal (base 16) :

a. 13 = D

b. 27 = 1B

c. 135 = 87

d. 2016 = 7E0

e. 10512 = 2900

f. 0,125 = 0.2

g. 0,25 = 0.4

h. 0,35 = 0.59

i. 15,33 = F.52

j. 135,625 = 87.A

3) Conversion en octal (base 8) :

23
a. 13 = 15

b. 27 = 33

c. 135 = 207

d. 2016 = 3740

e. 10512 = 24420

f. 0,125 = 0.1

g. 0,25 = 0.2

h. 0,35 = 0.27

i. 15,33 = 17.24

j. 135,625 = 207.5

Exercice 12

Effectuer les opérations arithmétiques suivantes :

a. (101011)2 + (1O11)2

b. (331)4 + (123)4

c. (AF5)16 + (10C)16

d. (101011)2 - (11O11)2

e. (331)4 - (123)4 j. (AF5)16 ÷ (10C)16

f. (AF5)16 - (10C)16

g. (101011)2 x (1O11)2

h. (AF5)16 x (10C)16

i. (101011)2 ÷ (1O11)2

Correction 12

a. (101011)2 + (1O11)2 = (110110)2


b. (331)4 + (123)4 = (454)4
24
c. (AF5)16 + (10C)16 = (BA1)16
d. (101011)2 - (11O11)2 = (100000)2
e. (331)4 - (123)4 = (210)4
f. (AF5)16 - (10C)16 = (9E9)16
g. (101011)2 x (1O11)2 = (110001111)2
h. (AF5)16 x (10C)16 = (A4F65C)16
i. (101011)2 ÷ (1O11)2 = (10)2
j. (AF5)16 ÷ (10C)16 = (A)16

EXERCICE 13

Ecrire une description VHDL du schéma fonctionnel suivant, de quelle description avez-vous besoin ?

CORRECTION 13

Nous avons besoin d’une description structurelle avec deux programmes en parallèle celui de la
porte NOR et celui de la porte MUX.

Library ieee ;

Use ieee.std_logic_1164.all ;

Use ieee.std_logic_arith.all ;

Entity porte_nor is

Port (a, b: in std_logic; s: out std_logic);

end porte_nor ;

25
Architecture arch_nor of porte_nor is

begin s <= a NOR b;

end arch_nor;

✓ Porte MUX:

Library ieee ;

Use ieee.std_logic_1164.all ;

Use ieee.std_logic_arith.all ;

Entity porte_mux is

Port (a, b, sel: in std_logic;

s: out std_logic);

end porte_mux ;

Architecture arch_mux of porte_mux is

begin s <= a when sel= '0' else b;

end arch_mux;

✓ La description structurelle :

Library ieee ;

Use ieee.std_logic_1164.all ;

Use ieee.std_logic_arith.all ;

Entity structurelle is Port (A, B, C, X, Y, Z: in std_logic;

F: out std_logic);

end structurelle ;

Architecture arch_struc of structurelle is

Signal S1, S2 : std_logic;

Component porte_nor

Port (a, b : in std_logic;

s: out std_logic);

26
end component ;

Component porte_mux

Port (a, b, sel: in std_logic;

s: out std_logic);

end component ;

begin

U1: porte_nor port map (Y, Z, S1);

U2: porte_mux port map (A, B, S1, S2);

U3: porte_mux port map (C, S2, X, F);

end arch_struc;

EXERCICE 14

Voici le schéma bloc d’un démultiplexeur 1à 4, une entrée de validation Enable (le circuit est actif à
l’état haut de ce signal), une entrée de sélection E et 4 sorties.

Ecrire une description VHDL de ce circuit en utilisant :

1) Instruction de choix ? de quelle description s’agit-il ?

2) Affectation sélective ? de quelle description s’agit-il ?

27
Correction 14

Enable E1 E0 Y3 Y2 Y1 Y0

0 0 0 0 0 0 0

0 0 1 0 0 0 0

0 1 0 0 0 0 0

0 1 1 0 0 0 0

1 0 0 0 0 0 1

1 0 1 0 0 1 0

1 1 0 0 1 0 0

1 1 1 1 0 0 0

1) Introduction de choix

Instruction de choix ?

Library ieee ;

Use ieee.std_logic_1164.all;

Use iee.std_logic_arith.all;

Entity EX3_1 is

Port (Enable: in std_logic;

E: in std_logic_vector (1 downto 0);

Y: out std_logic_vector (3 downto 0));

end EX3_1 ;

Architecture case_is of EX3_1 is

begin

process (Enable, E)

begin

28
if Enable='0' then Y<= ''0000'' ;

else case E is

when ''00'' => S<= ''0001'' ;

when ''01'' => S<= ''0010'' ;

when ''10'' => S<= ''0100'' ;

when ''11'' => S<= ''1000'' ;

end if;

end process;

end case_is;

De quelle description s’agit-il ? c’est une description comportementale avec l’utilisation d’une
instruction séquentielle.

2) Affectation conditionnelle

Library ieee ;

Use ieee.std_logic_1164.all;

Use iee.std_logic_arith.all;

Entity EX3_2 is

Port (Enable: in std_logic;

E: in std_logic_vector (1 downto 0);

Y: out std_logic_vector (3 downto 0));

end EX3_2 ;

Architecture when_else of EX3_2 is

begin

Y<= ''0000'' when Enable='0' else

Y<= ''0000'' when Enable='1' and E= ''00'' else

Y<= ''0000'' when Enable='1' and E= ''01'' else

Y<= ''0000'' when Enable='1' and E= ''10'' else


29
Y<= ''0000'' when Enable='1' and E= ''11'';

end when_else;

De quelle description s’agit-il ? c’est une description flot de données avec l’utilisation d’une
instruction concurrente.

EXERCICE 15 :

Un circuit logique programmable FPGA (Field programmable Gate Array) a une matrice de 1000
Cellules logiques. Chaque cellule logique peut être programmée pour réaliser une fonction logique
combinatoire a 4 entrées. Si chaque cellule logique utilise 8 transistors pour sa mise en œuvre,
combien de transistors sont nécessaires au total dans dans ce FPGA ?

Correction 15 :

Pour trouver le nombre total de transistors nécessaires dans le FPGA, nous devons multiplier le
nombre de cellules logique par le nombre de transistors par cellule logique.

Nombre de cellule logique : 1000

Nombre de transistors par cellule logique : 8

Nombre Total de transistor nécessaires :

1000 Cellules logiques * 8 transistors par cellule= 8 000 transistors

En conclusion, il est nécessaire d’avoir 8000 transistors au total dans ce FPGA.

NB : Dans cet exercice on suppose que chaque cellule logique utilise le même nombre de transistor
et que nous ne tenons pas compte des autres composants/logique présents dans le FPGA.

EXERCICE16 :

Considérons un circuit logique programmable (CPLD) avec une architecture de base


composée de 4 blocs logique et 8 macrocellules programmables. Chaque bloc logique
contient 4 portes logiques (AND, OR, NOT) et chaque macrocellule programmable peut être
configurée pour implémenter une fonction logique spécifique.

1) Combien de porte logique peuvent être implémentées au total dans ce CPLD ?


2) Combien de macrocellules programmables sont disponibles dans ce CPLD ?

30
3) Si chaque macrocellule programmable peut être configurée pour implémenter
une fonction logique a 4 entrées, quelle est la taille maximale de la fonction
logique pouvant être réalisée dans chaque macrocellule programmable ?
4) Quelle est la taille maximale de la fonction logique pouvant être réalisée dans
l’ensemble du CPLD, en utilisant toutes les macrocellules programmables ?

Correction 16 :

1) Le CPLD contient 4 blocs logique, et chaque bloc logique contient 4 portes logiques.
Donc, le nombre total de portes logique pouvant être implémentées est calculé en
multipliant le nombre de blocs logique par le nombre de portes logiques par bloc :
4 blocs logiques * 4 logiques par bloc = 16 portes logiques portes
2) Le CPLD contient 8 macrocellules programmables disponibles.
3) Chaque macrocellule programmable peut être configurée pour implémenter une
fonction logique a 4 entrées. Cela signifie que chaque macrocellule programmable
peut représenter une fonction logique avec 4 variables d’entrée.
4) Etant donné qu’il y a 8 macrocellules programmables dans le CPLD, la taille maximale
de la fonction logique pouvant être réalisée dans l’ensemble du CPLD est de 8
variables d’entrée.

EXERCICE 17 :

a) Que valent 0 ⊕ a, et a ⊕ a ?

b) On se donne ce circuit logique avec quatre bits d’entrées A, B, C, D et une sortie S. Montrer qu’il
existe deux cas exactement pour les entrées aboutissant à S = 1 en sortie, et donner ces deux cas.
Pour ce faire, ajouter sur le dessin les résultats obtenus à la sortie de chacune des portes XOR du
schéma.

31
Corrige 17

a) 0 ⊕ a=a, a ⊕ a= 0 comme on le constate en faisant a = 0 puis a = 1. Notons que l’on a aussi


1⊕ = 𝑎̅.
b)

Pour avoir S = 1, il convient que toutes les entrées sur la porte ET valent 1, ce qui impose : A
= 0, A B ⊕ =1d’où B = 1, puis A B C ⊕ ⊕ =1, soit C = 0. Comme D est quelconque, on trouve
bien deux solutions pour (A, B, C, D) : (0, 1, 0, 0) ou (0, 1, 0, 1).

Exercice 18

On a ce schéma de multiplexeur 1 parmi 4. Qu’obtient-on en sortie, cette sortie S étant seulement


fonction des deux bits a et b de sélection ? On supposera que les quatre entrées du multiplexeur sont
numérotées de 0 à 3 de haut en bas (et le nombre ab est lu en binaire descendant).

Correction 18

a b S

0 0 0

0 1 1

1 0 1

1 1 0

32
On reconnaît le XOR : S = a ⊕ b.

Exercice 19

Avec cet autre multiplexeur 1 parmi 4, combien vaut la sortie S en fonction des variables X2, X1, X0,
les deux dernières correspondant aux fils de sélection ? Puis simplifier cette équation grâce à un
tableau de Karnaugh.

Corrige 19

X2 X1 X0 S

0 0 0 1

0 0 1 1

0 1 0 1

1 1 1 0

1 0 0 1

1 0 1 0

1 1 0 1

1 1 1 0

33
̅̅̅̅ + 𝑋2
D’où l’équation 𝑆 = 𝑋0 ̅̅̅̅ + 𝑋1
̅̅̅̅

Exercice 20

On rappelle qu’un multiplexeur 1 parmi 2 ayant en entrées a1, a0 met dans la sortie S ce qui est dans
a0 (entrée de droite) lorsque s = 0 ou ce qui est dans a1 (entrée de gauche) lorsque s = 1. On utilise
maintenant un circuit comportant trois multiplexeurs 1 parmi 2 comme indiqué sur le dessin ci-
dessous. Sans faire de table de vérité, indiquer ce que l’on obtient en sortie quand le nombre s1s0
(en binaire descendant) prend les valeurs 00, 01, 10, 11.

Quel type de multiplexeur correspond finalement à ce circuit ?

34
Corrige 20

35

Vous aimerez peut-être aussi