Architecture des machines : tp noté 11/12
Instructions
- Lisez bien toutes les questions.
- Les deux exercices sont à déposer dans un seul fichier sur
TOMUSS. Il est de votre responsabilité de vérifier que vous envoyez bien le bon fichier.
- Tout document interdit, pas de navigateur web (hors TOMUSS et énoncé).
Exercice 1
Nous avons vu en cours la théorie permettant d' anticiper une retenue dans un additionneur. Nous
nous proposons de le réaliser ici.
**Les circuits sont à réaliser avec des portes NAND seulement**
(vous avez cependant le droit d'utiliser des portes d'entrances variées).
- Proposer un circuit réalisant un "ou exclusif" de deux
entrées.
- Proposer un circuit réalisant un additionneur 1 bit (full-adder), c'est-à-dire un
circuit prenant en entrées deux bits a1 et b1,
une retenue entrante r0 et ayant en sorties un bit
s1 représentant la somme de a1 et
b1 ainsi qu'un bit représentant la retenue générée r1.
- Proposer un circuit réalisant, à l'aide de full-adders que vous
avez réalisés à la question précédente, la somme
de deux entiers codés sur 4 bits.
- Proposer un circuit réalisant une fonction C1 qui vaut 1
lorsque la retenue de sortie d'un additionneur est 0 quelle que
soit la retenue d'entrée (doit être vérifié pour les deux
valeurs et donc ne dépend que de a1 et b1).
- Proposer un circuit réalisant une fonction P1 qui
vaut 1 lorsque la retenue de sortie d'un additionneur est égale à la
retenue d'entrée quelle que soit la retenue d'entrée (doit
être vérifié pour les deux valeurs et donc ne dépend que de
a1 et b1).
On remarque que C et P ne sont jamais à 1 ensemble (ça simplifie
beaucoup les expressions).
- Proposer un circuit exprimant le complément de la retenue
générée : r1,
en fonction du complément de la retenue
d'entrée : r0,
de C1 et de P1.
- Proposer un circuit anticipateur exprimant le complément de la retenue
générée à la fin de l'additionneur 4
bits : r4, en
fonction du complément de la retenue
d'entrée : r0,
des Ci et des Pi (les fonctions C et P pour
chacun des full-adders).
- Proposer un circuit réalisant, à l'aide d'additionneurs 4 bits
et de circuits anticipateurs que vous avez réalisés, la somme de
deux entiers codés sur 8 bits.
De combien de traversées de
porte NAND a-t-on besoin pour obtenir la retenue finale ?
De
combien de traversées de porte NAND aurait-on eu besoin pour
obtenir la retenue finale sans le circuit anticipateur de la
question précédente (c'est-à-dire en réalisant l'additionneur 8
bits comme 8 full-adders branchés en série) ?
Exercice 2
**Les circuits sont à réaliser avec l'afficheur Hex Digit, les
peignes, des bascules D edge-triggered et des portes AND, OR et NOT
seulement**
- Proposer un circuit réalisant un compteur par 5 avec un nombre
minimal de bascules. Tester ce circuit à l'aide de l'afficheur Hex Digit.
- Proposer un circuit réalisant un compteur par 5 avec un nombre
minimal de bascules et muni d'une entrée "RAT" de remise à "trois" :
lorsque cette entrée est à 1, le compteur est réinitialisé à 3.