Les bases : opérateurs logiques, logique combinatoire et séquentielle
1. Opérateurs logiques
1.1. Fonctions NON-ET (NAND) et NON-OU (NOR)
- Rappeler la table de vérité de ces fonctions.
- Ecrire les équations associées.
1.2. Lois de De Morgan
- Dresser la table de vérité de \(\overline{a+b}\) et celle de \(\overline{a}.\overline{b}\). Conclure.
- Idem pour \(\overline{a.b}\) et \(\overline{a}+\overline{b}\).
1.3. Fonctions universelles
- A partir de fonctions NON-OU (NOR) à 2 entrées, réaliser les fonctions suivantes :
- NON
- OUI
- ET
- OU
- Idem avec des fonctions NON-ET (NAND) à 2 entrées.
2. Logique combinatoire
2.1. Décodeur BCD vers 7 segments
On utilise un afficheur disposant de 7 segments à LED pour afficher une information binaire codé décimal (des chiffres de 0 à 9).
L'information initiale est fournie sous la forme d'un mot de 4 bits \(E\) constitué des bits \(E_{3},E_{2},E_{1},E_{0}\) où \(E_{3}\) et \(E_{0}\) sont respectivement des bits de poids fort et de poids faible de \(E\).
On désigne les signaux alimentant les segments par \(A,B,C,D,E,F,G\).
- Donner la table de vérité du système pour afficher la valeur de l'entier non signé stocké dans E sur 4 bits.
- Ecrire les équations des différentes sorties.
- Les simplifier en utilisant des tableaux de Karnaugh.
Note : on choisira la valeur qui nous arrangera pour les cases des tableaux de Karnaugh non complétées par la table de vérité.
2.2. Conversions gray-binaire et binaire-gray
Il s'agit d'étudier les conversions permettant de passer du code Gray (code binaire réfléchi) au code binaire et réciproquement.
- Réaliser l'étude sur 4 bits (\(b_{0},b_{1},b_{2},b_{3}\) pour les informations binaires et \(g_{0}\) à \(g_{3}\) pour le code gray).
- Proposer une réalisation à base de portes logiques élémentaires (ET, OU, NON ...).
- Généraliser.
Note : On utilisera des tableaux de Karnaugh pour les simplifications éventuelles.
2.3. Addition binaire
2.3.1. 1 bit full-adder
Dans un premier temps, il s'agit d'étendre le demi-additionneur 1 bit vu en cours en ajoutant une retenue à l'entrée. On parle alors d'additionneur complet (full adder).On utilise les notations proposées sur la figure ci-contre.
- Dresser la table vérité \((c_{in_i},a_i,b_i)\) comme vecteur d'entrée et \((c_i,c_{out_i})\) comme vecteur de sortie.
- Déterminer les équations \(c_i\) et \(c_{out_i}\) en fonction des entrées \(c_{in_i},a_i,b_i\).
- Dessiner le schéma électronique de cet additionneur 1 bit complet.
2.3.2. Additionneur 4 bits
- En utilisant des additionneurs 1 bit, proposer le schéma d'un additioneur 4 bits.
- Si on considère que chaque niveau de porte logique impose un temps de calcul d'une durée \(\Delta T\), indiquer le temps de calcul de l'additionneur 4 bits ainsi constitué.
Note : les équations de l'additionneur 1 bit complet seront calculées en utilisant des portes NON, des portes ET à N entrées (N aussi grand que nécessaire) et des portes OU à N entrées, chacune de ces portes nécessitant un temps de calcul (ou temps de propagation) valant 1 $\Delta T$.
- Proposer une autre approche pour abaisser ce temps de calcul et donner le temps de calcul correspondant.
- Le calcul des équations se fait maintenant avec des LUT de FPGA similaires à ceux apparaissant dans les Cyclone II Altera. Ceux-ci disposent de 4 entrées générales + 1 entrée de retenue et une sortie combinatoire + 1 sortie spécifique pour la retenue. La dernière approche proposée peut-elle être exploitée avec ces FPGA ?
2.4. Multiplicateur 4 bits
L'objectif de cet exercice est de réaliser un système combinatoire assurant la multiplication de deux mots de 4 bits non signés notés \(a=a_{3}a_{2}a_{1}a_{0}\) et \(b=b_{3}b_{2}b_{1}b_{0}\).
- Combien de bits sont nécessaires pour expliciter le résultat de la multiplication de a par b ?
- Pour comprendre le fonctionnement d'un tel circuit, poser la multiplication de \(a=1101_2\) par \(b=0110_2\).
- Quelle est la fonction logique permettant de réaliser une multiplication de 1 bit x 1 bit ?
- En déduire le schéma d'un multiplicateur de 4 bits x 1 bit.
- Combien d'additionneur 4 bits complets faut-il pour réaliser le processus d'addition présent de le calcul de la multiplication posée ?
- Dessiner le schéma complet du multiplicateur 4 bits x 4 bits en utilisant des multiplicateurs 4 bits x 1 bit et des additionneurs complets.
- Estimer le temps de calcul d'une multiplication réalisée de cette façon en nombre de \(\Delta T\).
3. Logique séquentielle
3.1. Verrou D
La figure ci-dessous représente un verrou de type D. Il est construit sur la base d'une bascule RS.
- Dresser la table de vérité de la bascule RS placée à la sortie de la structure (entrées \(\overline{S_1},\overline{R_1}\), sortie \(Q\)).
- Dresser la table de vérité de l'étage d'entrée (entrées \(D,C\), sorties \(\overline{R_1},\overline{S_1}\)).
- En déduire l'évolution de la sortie \(Q\) en réponse aux chronogrammes fournis ci-dessus.
- Conclure quant aux rôles respectifs des entrées \(D\) et \(C\).
3.2. Multiplicateur 16 bits
On a précédemment étudié la multiplication de deux quartets (mots de 4 bits). Dans certaines situations, réaliser un multiplicateur 16 bits x 16 bits peut s'avérer trop lourdes en terme de nombre de portes logiques consommées. On préfère alors utiliser un processus séquentiel exploitant des multiplicateurs 16 bits x 1 bit et un additionneur 32 bits unique.
- Expliquer quel peut être le fonctionnement d'un tel circuit.
- Elaborer une machine à état permettant d'implémenter cette approche.