Telechargé par Wayto Flutter

2012-archi-td3

publicité
Architecture des ordinateurs
L3 Informatique 2012-2013
Fiche 3 - Circuits combinatoires non séquentiels
Points abordés
– Étude des circuits combinatoires (suite).
– Étude des décodeurs, multiplexeurs, démultiplexeurs.
– Étude des incrémenteurs, additionneurs.
1
Circuits combinatoires
Exercice 1. (Décodeurs)
1. Rappeler ce qu’est un décodeur (rôle, table de vérité).
2. Construire un circuit combinatoire réalisant un décodeur 2 vers 4 en utilisant exclusivement des portes NON et ET.
3. Montrer comment associer deux décodeurs 2 vers 4 pour réaliser un décodeur 3 vers
8 (en utilisant au plus une porte NON et huit portes ET).
4. Supposons que l’on dispose d’un décodeur n vers 2n et d’une porte OU (à un nombre
arbitraire d’entrées). Montrer qu’il est alors possible de construire le circuit combinatoire correspondant à n’importe quelle fonction logique à n entrées. Illustrer cette
construction en donnant le circuit de la fonction palindrome sur 4 variables d’entrée.
Exercice 2. (Multiplexeurs et démultiplexeurs)
1. Rappeler ce qu’est un multiplexeur (rôle, table de vérité).
2. Construire un circuit combinatoire réalisant un multiplexeur 4 vers 1 en utilisant
exclusivement des portes NON, ET, OU.
3. Supposons que l’on dispose uniquement d’un multiplexeur 2n vers 1 – auquel il est
possible d’affecter des valeurs à ses entrées une bonne fois pour toute. Montrer qu’il
est alors possible de construire le circuit combinatoire correspondant à n’importe
quelle fonction logique à n entrées. Illustrer cette construction en donnant le circuit
de la fonction majorité sur 3 variables d’entrée.
4. Rappeler ce qu’est un démultiplexeur.
5. Construire un circuit combinatoire réalisant un démultiplexeur 1 vers 4 en utilisant
exclusivement des portes NON et ET.
6. Montrer comment utiliser un démultiplexeur 1 vers 2n pour réaliser un décodeur n
vers 2n .
1
Exercice 3. (Test de parité)
On souhaite construire un circuit combinatoire qui permet de tester la parité d’un mot
binaire b3 b2 b1 b0 en entrée. La sortie vaut 1 si le nombre de bits à 1 du mot est pair (par
exemple, 1001) et 0 sinon (par exemple, 0111).
1. Écrire la table de vérité encodant la fonction logique correspondante.
2. Utiliser un multiplexeur 16 vers 1 pour réaliser cette fonction.
Exercice 4. (Test d’égalité)
Un comparateur n bits est un circuit combinatoire réalisé pour comparer deux mots binaires
an−1 . . . a0 et bn−1 . . . b0 de longueur n. La sortie vaut 1 si ai = bi pour tout 0 ≤ i ≤ n−1,
et 0 sinon.
1. Construire un circuit combinatoire réalisant un comparateur 1 bit en utilisant exclusivement des portes NON, ET, OU.
2. En déduire un circuit combinatoire réalisant un comparateur 4 bits.
2
Circuits arithmétiques
Exercice 5. (Additionneur)
1. Rappeler la table de vérité du demi-additionneur 1 bit et construire le circuit combinatoire correspondant à partir de portes ET et XOR.
2. Rappeler la table de vérité de l’additionneur complet 1 bit.
3. Construire le circuit combinatoire correspondant à l’additionneur complet 1 bit en
associant deux demi-additionneurs et une porte OU.
4. Construire un additionneur 4 bits avec retenue d’entrée et retenue de sortie en utilisant exclusivement des additionneurs complets 1 bit.
Exercice 6. (Incrémenteur)
Une très grande partie des opérations réalisées par un ordinateur consiste à ajouter 1 à
une variable, à savoir, réaliser une incrémentation.
1. Écrire la table de vérité de l’incrémenteur 1 bit avec retenue entrante. La comparer
avec celle de l’additionneur complet 1 bit de l’exercice 5.
2. Réaliser un incrémenteur 1 bit avec retenues entrantes et sortantes en utilisant un
additionneur 1 bit. Le circuit comporte deux entrées, le bit à incrémenter et la retenue
entrante ainsi que deux sorties : le bit après incrémentation et la retenue sortante.
3. En déduire un incrémenteur 4 bits avec retenue sortante en utilisant des additionneurs complets 1 bit.
Exercice 7. (Décaleur)
Les multiplications (resp. divisions) par 2 de nombres binaires sont réalisées par des
décalages d’un bit vers la gauche (resp. vers la droite).
1. Réaliser un circuit combinatoire qui prend en entrée un mot binaire b3 b2 b1 b0 de
4 bits, possédant quatre sorties c3 c2 c1 c0 contenant le résultat du décalage vers la
gauche, c’est à dire c3 = b2 , c2 = b1 , c1 = b0 , c0 = 0.
2. Réaliser un circuit combinatoire qui prend en entrée un mot binaire b3 b2 b1 b0 de
4 bits, possédant quatre sorties c3 c2 c1 c0 contenant le résultat du décalage vers la
droite, c’est à dire c3 = 0, c2 = b3 , c1 = b2 , c0 = b1 .
2
3. Associer les deux circuits combinatoires précédents de manière à former un circuit
admettant en entrée un mot binaire b3 b2 b1 b0 de 4 bits et un bit s spécifiant le sens
de décalage à réaliser, 0 pour gauche et 1 pour droite.
4. Pour quelle plage de valeurs ce circuit combinatoire permet-il de réaliser sans erreurs
les multiplications et divisions par 2 ?
3
Suppléments
Exercice 8. (Profondeur d’un circuit combinatoire)
La profondeur d’un circuit combinatoire est le nombre maximal de portes que les signaux
en entrée doivent traverser avant d’atteindre la sortie. Plus la profondeur est faible, plus
le circuit possède un temps de réponse faible. Il est donc avantageux, lorsque cela ne complexifie pas le circuit outre mesure, de s’assurer de dessiner des circuits avec la plus petite
profondeur possible. Formellement, la profondeur d’un circuit combinatoire contenant des
portes NON, ET et OU est définie de la manière suivante :
– la profondeur des entrées du circuit est 0 ;
– la profondeur à la sortie d’une porte ET et OU dont les entrées sont e1 , . . . , en est
1 + max{p(e1 ), . . . , p(en )} où p(ei ) est la profondeur du circuit lorsque l’on considère
que sa sortie est ei ;
– la profondeur à la sortie d’une porte NON dont l’entrée est e est 1 + p(e) ;
– la profondeur d’un circuit qui possède les sorties s1 , . . . , sn est max{p(s1 ), . . . , p(sn )}.
Reprendre les circuits combinatoires réalisés dans les exercices précédents et donner leur
profondeur.
3
Téléchargement