You are on page 1of 5

AU : 2020/2021

Université de Sousse Filières : LSE2


ESSTHS Durée : 1H.30
Enseignant : B. ATTIA

Examen de la section de rattrapage : VHDL

Exercice 1 :

Additionneur parallèle à retenue propagée :

A partir des additionneurs complets (A.C), il est facile d'effectuer l'addition de deux nombres
binaires à N bits. Cette addition est réalisée par la mise en cascade de N additionneurs
complets, comme le montre le montage de la figure 1, Il s'agit d'un additionneur parallèle,
parce qu'on additionne toutes les colonnes en même temps.

Figure 1 : Additionneur parallèle de deux nombres binaires à N bits

Avec Si  Ai  Bi  Ri 1 et Ri  ( Ai  Bi ).Ri 1  Ai .Bi les sorties d’un A.C.

Additionneur à retenue anticipée :

Les additionneurs parallèles étudiés précédemment appelés aussi additionneurs à retenue


propagée, présentent un inconvénient lié à la limitation de leur rapidité d'exécution des

1
opérations. Cette limitation est due à un phénomène appelé propagation du report, illustrée par
l'addition suivante de deux nombres binaires à 4 bits, effectuée à partir de quatre
additionneurs complets :

La sortie S4 de l'additionneur complet (A.C)4 est fonction des retenues précédentes et en


particulier de R0, qui se propage à travers les quatre (A.C) avant d’arriver à S4. Il y a donc un
retard qui dépend de la vitesse de propagation des (A.C). Par exemple si chaque (A.C)
présente un retard de propagation de 50 ns, le résultat final ne s'affichera que 200 ns après
l’application des deux nombres à additionner.
De toute évidence cette situation empire si on veut additionner des nombres à plusieurs bits.
Heureusement, les concepteurs de circuits intégrés ont trouvé des solutions qui réduisent ce
retard en utilisant l'additionneur à retenue anticipée (Look-Ahead Carry: L.A.C). Dans ce
dispositif toutes les retenues sont calculées en parallèle, à partir des données, sans même
calculer les sommes partielles.
Pour expliquer le principe de l'additionneur à retenue anticipée, revenons à l'expression de la
retenue de l'additionneur complet:

Pour éviter des temps de calcul cumulatifs, il ne faut pas attendre un résultat de calcul de la
retenue précédente pour effectuer le calcul de la retenue suivante. Pour cela il faut
systématiquement recalculer chaque terme de l'expression ci-dessus de la façon suivante:
 On définit la variable génération :

Quand Ai = Bi = 1 Gi = 1, (Ri=1) une retenue propre à la colonne i sera générée


indépendamment des colonnes précédentes.
 On définit la variable de propagation :

Quand Ai ou bien Bi vaut 1 Pi = 1, (Ri = Ri-1) on dit que la retenue de la colonne i-1 est
propagée.
L'expression de Ri peut s’écrire de la façon suivante:

Cette expression montre que la colonne i fournit une retenue si elle en génère une ou qu'elle
propage celle de la colonne précédente.
On en déduit aisément les expressions des retenues de chaque colonne en fonction des termes
de génération et de propagation:

2
On voit ainsi que chacune des retenues ne dépend que des nombres à additionner par
l'intermédiaire des fonctions Gi et Pi et de la retenue rentrante R-1.
Une fois calculées les expressions des retenues, on calculera l'expression des sommes
partielles Si en fonction de Gi et Pi:

On note bien que les temps de calcul des retenues sont égaux à la somme des temps de transit
dans une porte ET et une porte OU en cascade. Cela montre l'augmentation de la rapidité
d'exécution des opérations, d'où l'intérêt des additionneurs à retenues anticipées. Toute fois
cette rapidité s'accompagne d'une augmentation sensible de la complexité du circuit interne
des additionneurs. Une telle complexité n'est plus un problème avec l'évolution de la
technologie intégrée.
De nombreux additionneurs sous forme intégrée exploitent la technique de l'anticipation du
report afin de réduire le temps de retard de propagation.
La structure d'un additionneur à retenue anticipée est donnée par la figure ci-dessous :

Figure 2 : Structure d'un additionneur à retenue anticipée 4 bits

Travail demandé :

Dans cet exercice on désire décrire en VHDL le circuit « Additionneur à retenue anticipée 4
bits ». L’architecture interne est donnée dans la figure 2. On constate que cette architecture est
composée de 6 sous-circuits (SC_1, SC_2, SC_3, SC_4, SC_5, SC_6) interconnectés entre
eux, comme indiqué dans la figure 2 et 3.

1. Décrire les différents sous-circuits en langage VHDL.

3
SC_4

Figure 3 : Les différents sous_circuis d’un additionneur à retenue anticipée 4 bits

2. Donner la description matérielle du circuit de la figure 2 en se basant sur les sous


circuits déjà décris.

4
Exercice 2 :

L’afficheur 7 segments est un type d'afficheur très présent sur les calculatrices et les montres
à affichage numérique : les caractères (des chiffres, bien que quelques lettres soient utilisées
pour l'affichage hexadécimal) s'écrivent en allumant ou en éteignant des segments, au nombre
de sept. Nous souhaitons réaliser un décodeur 7 segment afin de pouvoir piloter un afficheur
disponible sur la carte d’évaluation. Nous disposons de 4 digits. La table de vérité de la
fonction à réaliser est la suivante :

1) Ecrire le programme Vhdl d’un décodeur binaire / 7 segments en utilisant l’instruction


case.
2) Ecrire le programme Vhdl d’un décodeur binaire / 7 segments en utilisant l’instruction
with select.
3) Ecrire le programme Vhdl d’un décodeur binaire / 7 segments en utilisant l’instruction
d’affectation conditionnelle.

Bon travail

You might also like