td02 corrige

14
Réponse question 1 Réponse question 2 Pour obtenir l'équivalent d'une porte logique avec un multiplexeur, il suffit d'utiliser la méthode de table de Karnaug à table inscrite et d'inscrire une des deux entrées : Comp. 1-bit Comp. 1-bit Comp. 1-bit Comp. 1-bit E 0 G 0 P 0 P 4 G 4 E 4 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 S3 S2 S1 S0 = 0 1 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 0 1 0 1 0 0 1 a b r i-1 s r OU ET ET XOR XOR OU A B S S (B inscrit) 0 0 0 0 1 1 B 1 0 1 1 1 1 1 ET A B S S (B inscrit) 0 0 0 0 1 0 0 1 0 0 1 1 1 B XOR A B S S (B inscrit) 0 0 0 0 1 1 B 1 0 1 1 1 0 B' Pour réaliser le XOR, puisqu'une valeur inscrite est inversée, il faut également utiliser un multiplexeur pour créer un inverseur A[3..0] B[3..0] a b

Upload: amine-chahed

Post on 20-Jun-2015

2.430 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Td02 corrige

Réponse question 1

Réponse question 2

Pour obtenir l'équivalent d'une porte logique avec un multiplexeur, il suffit d'utiliser la méthode detable de Karnaug à table inscrite et d'inscrire une des deux entrées :

Comp.1-bit

Comp.1-bit

Comp.1-bit

Comp.1-bit

E0G0P0

P4

G4

E4

0 1 0 10 10 1

0 1 0 10 10 1

S3S2S1S0

= 0 1

1

10 1

010 1

0

10

10

10

01

01

0

0

1

a

b

ri-1

s

r

OU

ET

ET

XOR

XOROU

A B S S (Binscrit)

0 0 0

0 1 1

B

1 0 1

1 1 1

1

ET

A B S S (Binscrit)

0 0 0

0 1 0

0

1 0 0

1 1 1

B

XOR

A B S S (Binscrit)

0 0 0

0 1 1

B

1 0 1

1 1 0

B'

Pour réaliser le XOR, puisqu'une valeur inscrite est inversée, il faut également utiliser un multiplexeur pour créer un inverseur

A[3..0] B[3..0]

ab

Page 2: Td02 corrige

Réponse question 3

Réponse question 4

Comp.1-bit

Comp.1-bit

Comp.1-bit

Comp.1-bit

E0G0P0

P4

G4

E4

S3 S2 S1 S0

A[3..0] B[3..0]

Σ1-bit

Σ1-bit

Σ1-bit

Σ1-bit

r0r4

ab

e3

e2

e1

e0

s1

s0

SD1

SD3

SD2

0

3210

3210

S1[1]S1[0]

S2[1]S2[0]

S3[1]S3[0]

0

0

O[1]

O[0]

Demuxe0

e1

s0

s3s2s1

A1A2A3

Partie b)

EncodeurPrioritée1

e0

e2

e3

s0

s1

Page 3: Td02 corrige

Réponse question 5

Réponse question 6

Analyse : S = A (B xor C)

A B C B xor C S

0 0 0 0 0

0 0 1 1 0

0 1 0 1 0

0 1 1 0 0

1 0 0 0 0

1 0 1 1 1

1 1 0 1 1

1 1 1 0 0

A

B

C

S

Décodeur

a0

a1

a2

s0

s1

s2

s3

s4

s5

s6

s7

A

B

C

Page 4: Td02 corrige

Réponse question 7

Vous êtes chargé de concevoir le circuit de contrôle pour une système de missiles intercontinentales(ICBMs). Il-y-a 16 missiles à contrôler. Quand une missile reçoit logique-1, elle est envoyée vers soncible. L'interface usager consiste de deux entrées. Il-y-a un sélectionneur de missile/cible qui sort uncode binaire de 4-bits, et il-y-a un gros bouton rouge qui sort logique-1 quand c'est dépressé.Évidemment, quand un général de quatres étoiles dépresse le bouton, le missile sélectionnée devraitêtre lancé.

a) Implémentez ce système en n'utilisant que cinq démultiplexeurs 1x4 (c'est a dire des DEMUX àquatres sorties).

b) Implémentez ce système en utilisant des portes logiques, mais assurez vous que le système n'a pasd'aléas ! (Aléa c'est le chapitre 3.6, donc ce n'est pas à l'examen)

C'est possible de remplir une table de vérité avec 32 entrées, mais, c'est plus facile de constater qu'unemissile n'est lancé qu'à une seule condition (une seule minterme) : il faut que le missile soitsélectionnée, et que le bouton rouge soit dépressé. Ça fait que le système n'est que 16 portes ET à 5entrées et des inverseurs. Par exemple pour la dixième missile c'est :

Est-ce-qu'il-y-a des aléas ? Non, parce que chaque sous-circuit n'a qu'une seule minterme. Alors il n'ya pas de risque que nos missiles se lancent par accident.

Page 5: Td02 corrige

Réponse question 8

Concevez un décodeur qui transforme le code Gray en ASCII. C'est a dire que ça transforme (0000)2 à(1000000)2, (0001)2 à (1000001)2, etc... Pour les codes de Gray qui représentent de 10 à 15 en binaire,ça doit sortir les lettres majuscules de A à F en ASCII. Vous pouvez trouver une table de codes ASCIIdans votre texte (p. 47) ou sur www.asciitable.com. Le code de Gray se retrouve sur p. 45.

Comme première étape, c'est souhaitable de remplir la table de vérité :

Entrée(Gray)

Sortie(ASCII)

0000 01100000001 01100010010 01100110011 01100100100 01101110101 01101100110 01101000111 01101011000 10001101001 10001011010 10000111011 10001001100 01110001101 01110011110 10000101111 1000001

Et, comme deuxième étape il faut la simplifier. Vous pouvez utiliser7 tables de Karnaugh à 4 variables. Vous pouvez aussi inscrire le bitle plus significatif du code Gray pour simplifier les tables deKarnaugh. Vous pouvez faire un simplification hybride en utilisantdes MUX pour les 3 bits les plus significatifs de la sortie (parce-qu'ilsse repètent souvent). Et il-y-a toujours l'algèbre et la méthode Quine-McCluskey...

Jeff conseille de simplifier avec des MUX pour les 3 bits les plussignificatifs et avec les tables de Karnaugh pour les autres trois bits.Utilisez des variables inscrites où ça aide beaucoup à simplifier.Comme ça vous allez bien apprendre trois méthodes de simplificationpour l'intra. :-)

Page 6: Td02 corrige

Réponse question 9

Implémentez la fonction suivante en ne se servant que d'un MUX 2x1 (vous avez droit aux entrées etleurs inverses) :

a b c s0 0 0 10 0 1 10 1 0 00 1 1 11 0 0 01 0 1 01 1 0 01 1 1 1

Réponse question 10

Transformez l'additionneur suivant en additionneur/soustracteur en n'utilisant que 4 portes OU-exclusif(OUX) à deux entrées. Créez une entrée supplémentaire qui s'appelle Add/Sub : quand cette entrée estlogique-0, le circuit devrait faire l'addition, et quand c'est logique-1, le circuit devrait faire lesoustraction. N'oubliez pas que soustraire c'est la même chose que additionner – mais avec lecomplément à deux d'une terme. N'oubliez pas que faire le complément à deux ne prend que deuxétapes façiles à implémenter en circuits logiques !

Page 7: Td02 corrige

Question 11 Un additionneur "itératif" BCD Soient A et B deux mots de 4 bits. Supposons que A et B représentent les chiffres de 0 à 9 selon la convention du code BCD 8421, telle que présentée à la table ci-dessous : Chiffre Représentation 0 0000 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110 7 0111 8 1000 9 1001

Tableau 11.1.a, code BCD 8421 Nous allons concevoir un circuit permettant l’addition des mots A et B de quatre bits (a3a2a1a0 et b3b2b1b0 respectivement) et de produire un résultat sur 5 bit, où les quatre bits les moins significatifs représenteront le mot K (k3k2k1k0) résultant de l’addition, et le dernier représentera la retenue, notée y. Les nombres A, B et K sont en format BCD. Tel que présenté au tableau suivant. Notons que les mots A, B et K sont représentés en BCD: A+B=K 0 1 2 3 4 5 6 7 8 9

0 0 1 2 3 4 5 6 7 8 9 1 1 2 3 4 5 6 7 8 9 0 2 2 3 4 5 6 7 8 9 0 1 3 3 4 5 6 7 8 9 0 1 2 4 4 5 6 7 8 9 0 1 2 3 5 5 6 7 8 9 0 1 2 3 4 6 6 7 8 9 0 1 2 3 4 5 7 7 8 9 0 1 2 3 4 5 6 8 8 9 0 1 2 3 4 5 6 7 9 9 0 1 2 3 4 5 6 7 8

Tableau 11.1.b, Addition A+B=C en chiffres (C est représenté en format BCD) A+B=>r 0 1 2 3 4 5 6 7 8 9

0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 2 0 0 0 0 0 0 0 0 1 1 3 0 0 0 0 0 0 0 1 1 1 4 0 0 0 0 0 0 1 1 1 1 5 0 0 0 0 0 1 1 1 1 1 6 0 0 0 0 1 1 1 1 1 1 7 0 0 0 1 1 1 1 1 1 1 8 0 0 1 1 1 1 1 1 1 1 9 0 1 1 1 1 1 1 1 1 1

Tableau 11.1.c, Obtention de la retenue pour l’addition de A et B

Page 8: Td02 corrige

Il serait illusoire d’essayer de dessiner une table de vérité pour l’ensemble de ces cas (il y en a 100, et si nous considérions la symétrie de A et B, il en resterait quand même 55). Nous allons plutôt procéder en utilisant des circuits usuels. Supposons que nous additionnions les nombres A et B avec un additionneur 4 bits dont voici le schéma général1 :

Fig 11.1.a additionneur générique

Où C est le résultat de l’addition sur 4 bits (c3c2c1c0), et r la retenue. Cette addition ne représente pas le nombre C en format BCD, mais elle permet de simplifier le traitement. Il suffit en effet d’ajouter un circuit qui convertit les cinq signaux r, c3, c2, c1 et c0 en y, k3, k2, k1 et k0. Ce circuit à concevoir peut être schématisé par le bloc représentatif suivant :

Convertisseur BCD avec retenue

4

Ky

4

Cr

Fig 11.1.b circuit de conversion BCD avec retenue

1 Lorsqu’une entrée ou sortie présente une barre, celle-ci signifie qu’il s’agit d’un ensemble de fils (souvent appelé bus) dont le nombre est écrit à côté.

Page 9: Td02 corrige

11.1) Dessinez la table de vérité associant les entrées C et r aux entrées K et y (cinq bits de chaque côté de la table) Réponse :

r c3 c2 c1 c0 y k3 k2 k1 k0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 0 1 1 0 0 1 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 1 0 0 1 1 0 0 0 1 1 0 0 0 1 1 1 0 0 1 1 1 0 1 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 1 0 1 0 1 0 1 0 0 0 1 0 1 0 1 1 1 0 0 1 0 0 1 1 0 0 1 0 0 1 1 0 1 1 0 1 1 0 1 0 0 0 1 1 1 0 1 0 1 0 1 0 1 1 1 1 1 0 1 1 0 1 0 0 0 0 1 0 1 1 1 1 0 0 0 1 1 1 0 0 0 1 0 0 1 0 1 1 0 0 1 1 0 0 1 1 1 0 0 0 1 1 0 1 - - - - - - - 1 1 - - - - - - - -

Tableau 3.1.s.a, Obtention de la retenue pour l’addition de A et B 1.2) Que pouvez vous dire des cas où le résultat y vaut 0? Réponse : r = y, C = K 11.3) Que pouvez-vous dire lorsque y vaut 1 (indice : il suffit d’ajouter une constante à C) Réponse : Il suffit d’ajouter la constante 6 (0110) à C pour obtenir y et K

Page 10: Td02 corrige

11.4) Trouvez l’équation (en produit de sommes) donnant y en fonction des bits de C et r (note y est indépendant de c0): Réponse : Puisque y est indépendant de c0, il suffit d’écrire une table de Karnaugh à 4 variables (r, c3, c2, c1).

y c2c1 00 01 10 11 00 0 0 0 0

01 0 1 1 1 rc3 11 - - - - 10 1 1 - -

y = (r+c3)(r+c2+c1) 11.5) A l’aide de tout ce qui précède, réalisez le circuit de la figure 3.1.b Réponse :

Fig 11.s.a Solution 3.1.5

Page 11: Td02 corrige

Question 12 Comparateur itératif à rebours Nous avons présenté dans le cours la conception d’un comparateur de deux mots de 4 bits représentant des entiers binaires. En suivant la même démarche que celle du cours, réalisez un comparateur avec des cellules qui comparent à rebours, de sorte que votre circuit respecte le schéma suivant :

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

Où les Ce i , Cg i et Cp i sont des signaux pour encoder la réponse de l’étage i respectant les trois cas présentés à la table suivante :

Signification Cei Cgi Cpi

Égalité 1 0 0 A plus grand que B 0 1 0 A plus petit que B 0 0 1

La combinaison des trois signaux ne peut prendre d’autre valeur. Notons finalement que Ce4, Cg4 et Cp4 valent respectivement 1, 0 et 0. Essayez de répondre sans utiliser aucune table de Karnaugh (note : il est possible d’utiliser un mux à 2 entrées et 1 signal de contrôle) ?

Page 12: Td02 corrige

Réponse : Il suffit de dessiner la table de vérité du circuit

Ce (i+1) Cg (i+1) Cp (i+1) ai bi Ce i Cg i Cp i

0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 1 1 0 0 0 1 0 0 1 1 1 0 0 1 0 1 0 0 0 0 1 0 0 1 0 0 1 0 1 0 0 1 0 1 0 0 1 0 0 1 0 1 1 0 1 0 1 0 0 0 0 1 0 0 1 0 0 0 1 0 0 1 1 0 0 1 0 0 1 0 1 0 0 1 1 1 0 0

Les autres cas sont facultatifs. Il est possible de réaliser les trois tables de vérité des Ce i, Cg i et Cp i et résoudre les équations. Les méthodes par inspection sont parfois plus fructueuses et plus rapide (ce n’est pas cependant une méthode qui s’avère toujours utilisable). Ici, la table donne Ce i , Cg i et Cp i valant respectivement Ce (i+1) , Cg (i+1) et Cp (i+1) sauf dans deux cas, où Ce i vaut 1, et ai et bi sont distincts. Il en ressort une conclusion : chaque signal d’indice i ne dépend que du signal équivalent d’indice i+1, de Ce i, de ai et de bi. D’où : Ce i vaut toujours Ce (i+1), à moins que la condition de non correspondance soit réalisée, auquel cas il vaut 0. Cg i vaut toujours Cg (i+1), à moins que la condition de non correspondance soit réalisée, auquel cas il vaut ai. Cp i vaut toujours Cp (i+1), à moins que la condition de non correspondance soit réalisée, auquel cas il vaut bi.

Page 13: Td02 corrige

Cela se résume au circuit suivant :

Page 14: Td02 corrige

Question 13 Additionneur 4 bits Expliquer pourquoi le XOR (dont la sortie est notée d) se trouvant à la fin du circuit d'addition suivant sert à la détection du débordement :

Réponse : Le débordement survient dans deux cas uniquement, lorsque l’addition de deux nombres négatifs donne un nombre positif, ou celle de deux nombres négatifs donne un nombre positif. Cela correspond à avoir les retenues rn-1 et rn distincts. Autrement (cas de non débordement), rn-1 et rn sont toujours semblables. Un XOR peut donc effectuer la détection de débordement si il a pour entrée rn-1 et rn.

Σ Σ Σ Σ

a0

b0

a1

b1

a2

b2bn-1

an-1

rn-1 r3

s0s1s2sn-1rn

r0

r2 r1

0 , addition1 , soustraction

c⎧

= ⎨⎩

d

détection de débordement