diff --git a/README.md b/README.md index c3e1c32..2eebd6c 100644 --- a/README.md +++ b/README.md @@ -32,7 +32,7 @@ Le programme prévisionnel est le suivant : - [TD2](td2-entiers.md) : Codage des entiers - [TD3](td3-reels.md) : Codage des réels - [TD4](td4-logique.md) : Logique booléenne - - TD5 : Additionneur + - [TD5](td5-additionneur.md) : Additionneur - TD6 : TBA * TP : - [TP1](tp1-encodage.md) : Encodage binaire vers texte 1/2 diff --git a/td5-additionneur.md b/td5-additionneur.md new file mode 100644 index 0000000..24d0f72 --- /dev/null +++ b/td5-additionneur.md @@ -0,0 +1,54 @@ +TD5 Additionneur et bascule +=========================== + +Additionneur +============ + +Nous allons concevoir un additionneur à 2 bits, en plusieurs étapes. + +1/2 additionneur +---------------- + +Le 1/2 additionneur fait l'addition et expose la retenue en sortie, mais ne gère pas de retenue en entrée. Il a donc 2 entrées a et b à additionner, et 2 sorties s (somme) et c (carry, retenue). + +> Question 1 : Écrivez les tables de vérité souhaitées pour s et c en fonction de a et b. Une fois écrites, à quelles fonctions logiques connues correspondent ces deux tables ? + +> Réponse : s va être un XOR et c un ET + +> Question 2 : Tracez, avec des portes logiques, le schéma de ce demi-additionneur. + +> Réponse : ![demi additionneur](https://upload.wikimedia.org/wikipedia/commons/thumb/1/14/Half-adder.svg/286px-Half-adder.svg.png) + +Additionneur 1 bit +------------------ + +L'additionneur 1 bit permet de gérer la retenue en entrée. Il a donc 3 entrées a, b et cin (retenue en entrée), et 2 sorties s et cout. + +> Question 3 : Écrivez les tables de vérité souhaitées pour s et cout en fonction de a, b et cin. Une fois écrites, à quelles fonctions logiques connues correspondent ces tables ? + +> Réponse : s = (a XOR b) xor cin, cout = (a ET b) OU ((a XOR b) ET cin) + +> Question 4 : Tracez, avec des portes logiques, le schéma de cet additionneur. Indice : Pour un additionneur, il faut 2 demi-additionneurs en cascade + un OU pour gérer la retenue. + +> Réponse : ![additionneur](https://upload.wikimedia.org/wikipedia/commons/thumb/a/a9/Full-adder.svg/286px-Full-adder.svg.png) + + +Additionneur 2 bits +------------------- + +L'additionneur 2 bits permet d'additionner 2 nombres sur 2 bits, sans retenue en entrée (mais donc une retenue intermédiaire + une sortie matérialisant qu'il y a eu débordement, ie, une retenue finale). Il a donc 4 entrées a0, a1, b0 et b1, et 3 sorties s0, s1 et c (débordement) + +> Question 5 : Tracez, avec des portes logiques, le schéma de cet additionneur 2 bits. + +> Réponse : impro ;) + +Bascules +======== + +La bascule est un élément permettant de conserver un état transitoire, par exemple pour faire une mémoire. Vous trouverez la description du verrou RS [ici](https://fr.wikipedia.org/wiki/Bascule_(circuit_logique)#Verrou_RS_avec_porte_NON-OU), avec des portes NOR ou NAND. + +> Question 6 : Avec des couleurs, représentez sur les schémas en portes logiques les différentes combinaisons d'entrées et les états intermédiaires associés. Par exemple, si la couleur verte correspond aux entrées S=0 et R=1, écrivez en vert sur chaque fil la valeur présente 0 ou 1. + +> Question 7 (bonus) : Faîtes de même pour d'autres bascules (verrou D, bascule D, ...) + +> Note autre page : https://wdi.centralesupelec.fr/architecture/Info/Combi, https://fr.wikipedia.org/wiki/Additionneur