Nantes Université

Skip to content
Extraits de code Groupes Projets
Valider bf22e81c rédigé par Sébastien Faucou's avatar Sébastien Faucou
Parcourir les fichiers

tp, séances 2 et 3

parent d7326536
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
[[_TOC_]]
# Consignes
Ce sujet comporte deux parties et couvre deux semaines :
- [partie 1](./partie1.md)
- [partie 2](./partie2.md)
Pour chaque partie, vous rendez un compte-rendu par mail à votre enseignant :
- à l'issue de la semaine 1 pour la partie 1 ;
- à l'issue de la semaine 2 pour la partie 2.
Chaque compte-rendu comportera obligatoirement deux documents :
- un document pdf contenant les réponses aux questions ci-dessous. Ce document pourra intégrer des images exportées depuis Logisim Evolution, ou bien des photos de texte ou schéma que vous aurez réalisées à la main (par exemple les tables de vérité ou les équations).
- un fichier Logisim Evolution contenant l'ensemble des circuits réalisés pendant la séance.
# Partie 1 : addition avec propagation de la retenue
## Du demi-additionneur à l'additionneur
1. Soient $`a`$ et $`b`$ deux nombres sur 1 bit. Quels sont les résultats possibles de l'addition $`a+b`$ ?
2. On souhaite construire un circuit pour l'addition de deux nombres sur 1 bit. Identifiez les entrées et les sorties, donnez la table de vérité, et dessinez le circuit.
3. Supposons maintenant que l'on souhaite utiliser ce circuit pour construire un additionneur 2 bits. Quel problème se pose ? Revisitez la question précédente pour corriger ce problème. Cela nécessite d'ajouter une nouvelle entrée, que vous appelerez $`c`$ pour carry (retenue en anglais)
## Additionneur 4 bits avec propagation de la retenue
1. Utilisez votre circuit additionneur 1 bit pour construire un circuit additionneur 4 bits. Simulez votre circuit pour vérifier son bon fonctionnement.
2. Comme on l'a dit en cours, il existe une relation entre la fréquence de fonctionnement d'un système et la « longueur » du chemin le plus long (on parle de chemin critique) à traverser dans un circuit entre deux tics d'horloge. Identifiez le chemin critique de votre circuit, et calculez sa longueur. Pour mesurer cette longueur, vous utiliserez comme unité le nombre de porte logique traversée. C'est bien sûr une approximation, car en réalité, toutes les portes ne sont pas « équivalentes ».
3. Supposons que l'on veuille construire sur le même principe un additionneur $`n`$ bit. Quelle serait la longueur du chemin critique. Que pouvez-vous en déduire sur la capacité de passage à l'échelle de ce circuit ?
# Calcul anticipé de la retenue
## Additionneur 1-bit avec calcul anticipé de la retenue
On propose maintenant de revisiter l'architecture du circuit additionneur pour réduire la longueur du chemin critique. L'idée générale est de permettre un calcul anticipé des retenues, c'est-à-dire sans connaître les résultats des additions des bits de poids plus faibles.
Pour cela, il faut concevoir un additionneur 1-bit un peu différent. On retrouve les 3 entrées précédentes $`a`$, $`b`$ et $`c`$, et 3 sorties :
- $`s`$, le poids faible de la somme des 3 entrées ;
- $`g`$, un bit qui indique si la somme va générer une retenue ;
- $`p`$, un bit qui indique si la somme va propager une retenue ; autrement dit, si la retenue $`c`$ vaut 1, sera-t-elle absorbée ou propagée ?
Un point fondamental pour permettre de réduire le chemin critique est de s'assurer que le calcul de $`p`$ et de $`g`$ ne dépend que de $`a`$ et $`b`$.
1. Donnez la table de vérité de cet additionneur.
2. Donnez les équations des sorties en fonction des entrées.
3. Dessinez le circuit correspondant dans Logisim Evolution.
## L'unité de calcul anticipée de la retenue
Il s'agit maintenant de concevoir un additionneur 4 bits tirant partie des informations de propagation et de génération de retenue.
Pour cela, il est nécessaire de construire une unité de calcul anticipée des retenues. Pour un additionneur 4 bits, cette unité a 9 entrées et 4 sorties.
Les entrées sont :
- $`c_0`$, la retenue entrante de l'additionneur, qui s'appliquera à l'addition des deux bits de poids faible.
- $`p_0`$ à $`p_3`$ les informations de propagation issues des 4 additionneurs 1-bit (du poids faible $`p_0`$ vers le poids fort $`p_3`$).
- $`g_0`$ à $`g_3`$ les informations de propagation issues des 4 additionneurs 1-bit (du poids faible $`g_0`$ vers le poids fort $`g_3`$).
Les sorties sont $`c_1`$, $`c_2`$, $`c_3`$ et $`c_4`$, où $`c_i`$ est la retenue sortante de l'addition des bits de rang $`i-1`$ qui s'applique donc comme retenue entrante pour l'addition des bits de rang $`i`$. À noter que $`c_4`$ n'est pas directement ré-utilisée dans l'additionneur 4-bits.
1. Donnez l'équation de $`c_1`$ en fonction de $`c_0`$, $`p_0`$ et $`g_0`$.
2. Donnez l'équation de $`c_2`$ en fonction de $`c_0`$, $`p_0`$, $`g_0`$, $`p_1`$, et $`g_1`$.
3. Mêmes questions pour $c_3$ et $c_4$.
5. Pourquoi n'est-il pas pertinent de calculer $`c_i+1`$ à partir de $`c_i`$ ?
6. Dessinez le circuit de l'unité de calcul anticipé de la retenue dans Logisim Evolution.
## Additionneur 4-bits avec calcul anticipé de la retenue
1. À l'aide de 4 additionneurs 1-bit avec calcul anticipé de la retenue et d'une unité de calcul anticipée de la retenue, dessinez dans Logisim Evolution un additionneur 4-bits avec calcul anticipée de la retenue.
2. Identifiez le chemin critique de ce circuit et donnez sa longueur (en nombre de porte logique traversée). Comment cela se compare-t-il avec le circuit précédent ?
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter