03.01.2014 Views

Question 1

Question 1

Question 1

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>Question</strong> 1<br />

Vous avez 2 signaux d’entrée A et B qui sont tous deux d’une largeur de 4 bits et un<br />

signal de sortie S qui est également de largeur de 4 bits. Ils représentent des chiffres en<br />

binaire naturel. En n’utilisant que des comparateurs 1 bit et multiplexeur à deux entrées,<br />

réalisez la fonction suivante :<br />

Si A > B : S = A<br />

Si B > A : S = B<br />

Si A = B : S = A + B (OU binaire, donc ce n’est PAS une addition)<br />

Voici les composants que vous avez exclusivement le droit d’utiliser. Vous pouvez<br />

utiliser les valeurs constantes 0 et 1.<br />

a i b i<br />

S 0 S 1<br />

E i<br />

G i<br />

P i<br />

COMPARATEUR<br />

(UN BIT)<br />

E i+1<br />

1<br />

G i+1<br />

P i+1<br />

I<br />

Multiplexeur<br />

S<br />

Indice : Bien que vous n’aillez pas droit à des portes logiques, il est possible de faire<br />

l’équivalent d’une porte logique à deux entrées avec un multiplexeur à deux entrées.<br />

Vous pouvez donc faire une première solution qui utilise des portes logiques à deux<br />

entrées et ensuite définir comment ces portes sont réalisées avec des multiplexeurs à deux<br />

entrées.


<strong>Question</strong> 2<br />

Voici le circuit d’un additionneur 1 bit :<br />

a<br />

b<br />

r i-1<br />

s<br />

r<br />

Réalisez un circuit équivalent, mais en n’utilisant que des multiplexeurs à deux entrées<br />

(vous pouvez utilisez des constantes 0 et 1 également) :<br />

S 1<br />

I<br />

S 0<br />

2<br />

Multiplexeur<br />

S


<strong>Question</strong> 3<br />

Vous avez 2 signaux d’entrée A et B qui sont tous deux d’une largeur de 4 bits et un<br />

signal de sortie S qui est également de largeur de 4 bits. Ils représentent des chiffres en<br />

binaire naturel. En n’utilisant que des comparateurs 1 bit, additionneur 1 bit et ou<br />

exclusif, réalisez la fonction suivante :<br />

Si A >= B : S = A + B<br />

Si B > A : S = A - B<br />

Voici les composants que vous avez exclusivement le droit d’utiliser. Vous pouvez<br />

utiliser les valeurs constantes 0 et 1.<br />

a i b i<br />

E i<br />

G i<br />

P i<br />

COMPARATEUR<br />

(UN BIT)<br />

E i+1<br />

r i+1 s i<br />

G i+1<br />

P i+1<br />

a i b i<br />

r i<br />

Σ<br />

3


<strong>Question</strong> 4<br />

Vous devez réaliser un contrôleur qui achemine des messages de 2 bits ayant différentes<br />

priorités. Il existe trois entrées de messages : S1[1..0], S2[1..0] et S3[1..0], du plus<br />

prioritaire au moins prioritaire. Un signal est également associé à chaque message<br />

d’entrée pour afficher si un message est disponible : SD1, SD2 et SD3.<br />

a) Acheminez le message le plus important à la sortie O[1..0] en utilisant exclusivement<br />

un encodeur de priorité et un multiplexeur. Lorsque aucun message est disponible, la<br />

sortie prend la valeur 0.<br />

b) Trois signaux à la sortie du circuit (A1, A2 et A3) permettent d’afficher quel message<br />

a été transmis.<br />

• Lorsque le message S1 est transmis, A 1 A 2 A 3 prend la valeur 100<br />

• Lorsque le message S2 est transmis, A 1 A 2 A 3 prend la valeur 010<br />

• Lorsque le message S3 est transmis, A 1 A 2 A 3 prend la valeur 001<br />

• Lorsque aucun message est transmis, A 1 A 2 A 3 prend la valeur 000<br />

Ajoutez un démultiplexeur au circuit de a) pour effectuer cette fonction<br />

4


<strong>Question</strong> 5<br />

Effectuez cette équation logique avec un ROM :<br />

S = A (B xor C)<br />

(xor = ou exclusif)<br />

Voici la structure d’un ROM :<br />

A<br />

D<br />

R<br />

E<br />

S<br />

a 0<br />

a 1<br />

d 0<br />

d 1<br />

d k-1<br />

D<br />

O<br />

N<br />

N<br />

É<br />

E<br />

a n-1<br />

m 0<br />

m 1<br />

m 2<br />

m n<br />

2 − 1<br />

5


<strong>Question</strong> 6<br />

En utilisant un convertisseur 3 bits à 8 lignes (décodeur) et un portes logiques à entrées<br />

illimitées par fonction (il y a deux fonctions à réaliser, donc vous avez droit à deux portes<br />

logiques), réalisez les fonctions suivantes :<br />

i) S1 = AB’C + A’B’C + ABC<br />

ii) S2 = (A’+B’+C’)(A+B+C)(A’+B’+C)(A+B’+C’)<br />

<strong>Question</strong> 7<br />

Démultiplexeurs et aléas<br />

Vous êtes chargé de concevoir le circuit de contrôle pour une système de missiles<br />

intercontinentales (ICBMs). Il-y-a 16 missiles à contrôler. Quand une missile reçoit<br />

logique-1, elle est envoyée vers son cible. L'interface usager consiste de deux entrées. Ily-a<br />

un sélectionneur de missile/cible qui sort un code binaire de 4-bits, et il-y-a un gros<br />

bouton rouge qui sort logique-1 quand c'est dépressé. Évidemment, quand un général de<br />

quatres étoiles dépresse le bouton, le missile sélectionnée devrait être lancé.<br />

a) Implémentez ce système en n'utilisant que cinq démultiplexeurs 1x4 (c'est a dire des<br />

DEMUX à quatres sorties).<br />

b) Implémentez ce système en utilisant des portes logiques, mais assurez vous que le<br />

système n'a pas d'aléas !<br />

<strong>Question</strong> 8<br />

Encodeurs et décodeurs<br />

Concevez un décodeur qui transforme le code Gray en ASCII. C'est a dire que ça<br />

transforme (0000) 2 à (1000000) 2 , (0001) 2 à (1000001) 2 , etc... Pour les codes de Gray qui<br />

représentent de 10 à 15 en binaire, ça doit sortir les lettres majuscules de A à F en ASCII.<br />

Vous pouvez trouver une table de codes ASCII dans votre texte (p. 47) ou sur<br />

www.asciitable.com. Le code de Gray se retrouve sur p. 45.<br />

6


<strong>Question</strong> 9<br />

Multiplexeurs<br />

Implémentez la fonction suivante en ne se servant que d'un MUX 2x1 (vous avez droit<br />

aux entrées et leurs inverses) :<br />

a b c s<br />

0 0 0 1<br />

0 0 1 1<br />

0 1 0 0<br />

0 1 1 1<br />

1 0 0 0<br />

1 0 1 0<br />

1 1 0 0<br />

1 1 1 1<br />

<strong>Question</strong> 10<br />

Additionneurs et soustracteurs<br />

Transformez l'additionneur suivant en additionneur/soustracteur en n'utilisant que 4<br />

portes OU-exclusif (OUX) à deux entrées. Créez une entrée supplémentaire qui s'appelle<br />

Add/Sub : quand cette entrée est logique-0, le circuit devrait faire l'addition, et quand<br />

c'est logique-1, le circuit devrait faire le soustraction. N'oubliez pas que soustraire c'est la<br />

même chose que additionner – mais avec le complément à deux d'une terme. N'oubliez<br />

pas que faire le complément à deux ne prend que deux étapes faciles à implémenter en<br />

circuits logiques !<br />

7


<strong>Question</strong> 11<br />

Un additionneur "itératif" BCD<br />

Soient A et B deux mots de 4 bits. Supposons que A et B représentent les chiffres de 0 à<br />

9 selon la convention du code BCD 8421, telle que présentée à la table ci-dessous :<br />

Chiffre<br />

Représentation<br />

0 0000<br />

1 0001<br />

2 0010<br />

3 0011<br />

4 0100<br />

5 0101<br />

6 0110<br />

7 0111<br />

8 1000<br />

9 1001<br />

Tableau 11.a, code BCD 8421<br />

Nous allons concevoir un circuit permettant l’addition des mots A et B de quatre bits<br />

(a 3 a 2 a 1 a 0 et b 3 b 2 b 1 b 0 respectivement) et de produire un résultat sur 5 bit, où les quatre bits<br />

les moins significatifs représenteront le mot K (k 3 k 2 k 1 k 0 ) résultant de l’addition, et le<br />

dernier représentera la retenue, notée y. Les nombres A, B et K sont en format BCD.<br />

Tel que présenté au tableau suivant. Notons que les mots A, B et K sont représentés en<br />

BCD:<br />

A+B=K 0 1 2 3 4 5 6 7 8 9<br />

0 0 1 2 3 4 5 6 7 8 9<br />

1 1 2 3 4 5 6 7 8 9 0<br />

2 2 3 4 5 6 7 8 9 0 1<br />

3 3 4 5 6 7 8 9 0 1 2<br />

4 4 5 6 7 8 9 0 1 2 3<br />

5 5 6 7 8 9 0 1 2 3 4<br />

6 6 7 8 9 0 1 2 3 4 5<br />

7 7 8 9 0 1 2 3 4 5 6<br />

8 8 9 0 1 2 3 4 5 6 7<br />

9 9 0 1 2 3 4 5 6 7 8<br />

Tableau 11.b, Addition A+B=C en chiffres (C est représenté en format BCD)<br />

A+B=>r 0 1 2 3 4 5 6 7 8 9<br />

0 0 0 0 0 0 0 0 0 0 0<br />

1 0 0 0 0 0 0 0 0 0 1<br />

2 0 0 0 0 0 0 0 0 1 1<br />

3 0 0 0 0 0 0 0 1 1 1<br />

4 0 0 0 0 0 0 1 1 1 1<br />

5 0 0 0 0 0 1 1 1 1 1<br />

6 0 0 0 0 1 1 1 1 1 1<br />

7 0 0 0 1 1 1 1 1 1 1<br />

8 0 0 1 1 1 1 1 1 1 1<br />

9 0 1 1 1 1 1 1 1 1 1<br />

Tableau 11.c, Obtention de la retenue pour l’addition de A et B<br />

8


Il serait illusoire d’essayer de dessiner une table de vérité pour l’ensemble de ces cas (il y<br />

en a 100, et si nous considérions la symétrie de A et B, il en resterait quand même 55).<br />

Nous allons plutôt procéder en utilisant des circuits usuels. Supposons que nous<br />

additionnions les nombres A et B avec un additionneur 4 bits dont voici le schéma<br />

général 1 :<br />

Fig 11.a additionneur générique<br />

Où C est le résultat de l’addition sur 4 bits (c 3 c 2 c 1 c 0 ), et r la retenue. Cette addition ne<br />

représente pas le nombre C en format BCD, mais elle permet de simplifier le traitement.<br />

Il suffit en effet d’ajouter un circuit qui convertit les cinq signaux r, c 3 , c 2 , c 1 et c 0 en y, k 3 ,<br />

k 2 , k 1 et k 0 . Ce circuit à concevoir peut être schématisé par le bloc représentatif suivant :<br />

r<br />

C<br />

4<br />

Convertisseur BCD avec retenue<br />

4<br />

y<br />

K<br />

Fig 11.b circuit de conversion BCD avec retenue<br />

1<br />

Lorsqu’une entrée ou sortie présente une barre, celle-ci signifie qu’il s’agit d’un ensemble de fils<br />

(souvent appelé bus) dont le nombre est écrit à côté.<br />

9


11.1) Dessinez la table de vérité associant les entrées C et r aux entrées K et y (cinq bits<br />

de chaque côté de la table)<br />

Réponse :<br />

r c 3 c 2 c 1 c 0 y k 3 k 2 k 1 k 0<br />

0 0 0 0 0 0 0 0 0 0<br />

0 0 0 0 1 0 0 0 0 1<br />

0 0 0 1 0 0 0 0 1 0<br />

0 0 0 1 1 0 0 0 1 1<br />

0 0 1 0 0 0 0 1 0 0<br />

0 0 1 0 1 0 0 1 0 1<br />

0 0 1 1 0 0 0 1 1 0<br />

0 0 1 1 1 0 0 1 1 1<br />

0 1 0 0 0 0 1 0 0 0<br />

0 1 0 0 1 0 1 0 0 1<br />

0 1 0 1 0 1 0 0 0 1<br />

0 1 0 1 1 1 0 0 1 0<br />

0 1 1 0 0 1 0 0 1 1<br />

0 1 1 0 1 1 0 1 0 0<br />

0 1 1 1 0 1 0 1 0 1<br />

0 1 1 1 1 1 0 1 1 0<br />

1 0 0 0 0 1 0 1 1 1<br />

1 0 0 0 1 1 1 0 0 0<br />

1 0 0 1 0 1 1 0 0 1<br />

1 0 0 1 1 1 0 0 0 1<br />

1 0 1 - - - - - - -<br />

1 1 - - - - - - - -<br />

Tableau 11.s.a, Obtention de la retenue pour l’addition de A et B<br />

11.2) Que pouvez vous dire des cas où le résultat y vaut 0?<br />

Réponse :<br />

r = y, C = K<br />

11.3) Que pouvez-vous dire lorsque y vaut 1 (indice : il suffit d’ajouter une constante<br />

à C)<br />

Réponse :<br />

Il suffit d’ajouter la constante 6 (0110) à C pour obtenir y et K<br />

10


11.4) Trouvez l’équation (en produit de sommes) donnant y en fonction des bits de C et<br />

r (note : y est indépendant de c 0 ):<br />

Réponse :<br />

Puisque y est indépendant de c 0 , il suffit d’écrire une table de Karnaugh à 4 variables (r,<br />

c 3 , c 2 , c 1 ).<br />

y = (r+c3)(r+c2+c1)<br />

y c 2 c 1<br />

00 01 10 11<br />

00 0 0 0 0<br />

rc 3<br />

01 0 1 1 1<br />

11 - - - -<br />

10 1 1 - -<br />

11.5) A l’aide de tout ce qui précède, réalisez le circuit de la figure 11.b<br />

<strong>Question</strong> 12<br />

Comparateur itératif à rebours<br />

Nous avons présenté dans le cours la conception d’un comparateur de deux mots de 4 bits<br />

représentant des entiers binaires. En suivant la même démarche que celle du cours,<br />

réalisez un comparateur avec des cellules qui comparent à rebours, de sorte que votre<br />

circuit respecte le schéma suivant :<br />

Sachant que ce circuits est constitué des 4 cellules itératives suivant ce schéma :<br />

11


Où les C e i , C g i et C p i sont des signaux pour encoder la réponse de l’étage i respectant les<br />

trois cas présentés à la table suivante :<br />

Signification C ei C gi C pi<br />

Égalité 1 0 0<br />

A plus grand que B 0 1 0<br />

A plus petit que B 0 0 1<br />

La combinaison des trois signaux ne peut prendre d’autre valeur.<br />

Notons finalement que C e4 , C g4 et C p4 valent respectivement 1, 0 et 0.<br />

Essayez de répondre sans utiliser aucune table de Karnaugh (note : il est possible<br />

d’utiliser plusieurs mux à 2 entrées et 1 signal de contrôle) ?<br />

<strong>Question</strong> 13<br />

Additionneur 4 bits<br />

Expliquer pourquoi le XOR (dont la sortie est notée d) se trouvant à la fin du circuit<br />

d'addition suivant sert à la détection du débordement :<br />

⎧0 , addition<br />

c = ⎨<br />

⎩<br />

b n-1<br />

b 2<br />

b 1<br />

b 0<br />

a n-1 a 2 a 1 a 0<br />

r n-1 r 3 r 2 r 1<br />

Σ<br />

Σ<br />

Σ<br />

Σ<br />

r 0<br />

r n s n-1<br />

s 2<br />

s 1<br />

s 0<br />

d<br />

détection de débordement<br />

1 , soustraction<br />

12

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!