Architecture des machines : tp noté 11/12

Instructions

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).
  1. Proposer un circuit réalisant un "ou exclusif" de deux entrées.
  2. 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.
  3. 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.
  4. 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).
  5. 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).
  6. On remarque que C et P ne sont jamais à 1 ensemble (ça simplifie beaucoup les expressions).
  7. 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.
  8. 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).
  9. 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**
  1. 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.
  2. 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.