Académique Documents
Professionnel Documents
Culture Documents
Exercice 1.1
1. Vérifier les lois de distributivité et les loi de Morgan en donnant leurs tables de vérité.
2. Vérifier les relations suivantes par le calcul :
– a + ab = a
– (a + b)(a + b) = a
– a + ab = a + b
– a+b·b+c=a+b+c
3. Simplifier la formule suivante afin de l’écrire avec le minimum de OU et ET :
abcd + abcd + abcd + abcd + abcd
4. Vérifier que la porte NON-OU est complète.
5. Simplifier l’expression suivante au maximum : ((ab ⊕ ab)c) ⊕ (a(cd ⊕ cd))
1
L1 MIASHS - UFR Mathématiques et Informatique 2013 - 2014
a b c
Figure 1
a b c
2
L1 MIASHS - UFR Mathématiques et Informatique 2013 - 2014
3 Réalisation de circuit
a b c d S3 a b c d S4
0 0 0 0 1 0 0 0 0 1
0 0 0 1 0 0 0 0 1 0
0 0 1 0 1 0 0 1 0 1
a b c S1 a b c S2 0 0 1 1 1 0 0 1 1 1
0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 1
0 0 1 0 0 0 1 1 0 1 0 1 0 0 1 0 1 1
0 1 0 1 0 1 0 0 0 1 1 0 1 0 1 1 0 0
0 1 1 0 0 1 1 1 0 1 1 1 1 0 1 1 1 1
1 0 0 0 1 0 0 1 1 0 0 0 0 1 0 0 0 1
1 0 1 1 1 0 1 0 1 0 0 1 0 1 0 0 1 0
1 1 0 0 1 1 0 1 1 0 1 0 0 1 0 1 0 1
1 1 1 1 1 1 1 0 1 0 1 1 1 1 0 1 1 1
1 1 0 0 0 1 1 0 0 1
1 1 0 1 0 1 1 0 1 1
1 1 1 0 0 1 1 1 0 0
1 1 1 1 1 1 1 1 1 1
On cherche à analyser des codes binaires sur 4 bits. Un code correct est un code qui contient
au plus deux 1 consécutifs. Le but de l’exercice est de concevoir un circuit qui détecte tous les
codes corrects (ex : 0100).
3
L1 MIASHS - UFR Mathématiques et Informatique 2013 - 2014
1 Circuits combinatoires
Le but de cet exercice est de concevoir un circuit permettant de détecter la parité d’un mot de
4 bits, codé sur les entrées A, B, C et D. La sortie vaudra 0 si le nombre de 1 en entrée est pair
(ex : 0011) et 1 sinon (ex : 1000).
1. Écrire la table de vérité correspondante.
2. Utiliser un multiplexeur 16 × 4 pour réaliser cette fonction.
3. Utiliser un démultiplexeur 4 × 16 pour réaliser cette fonction.
2 Circuits arithmétiques
1. Rappeler la table de vérité de l’additionneur complet 1 bit, ainsi que le circuit correspondant.
2. Concevoir (à partir d’additionneurs 1 bit) un additionneur 4 bits avec retenues d’entrée et
de sortie.
1
L1 MIASHS - UFR Mathématiques et Informatique 2013 - 2014
Une grande partie des additions effectuées par un ordinateur consiste simplement à ajouter 1
à une autre valeur x. Dans ce cas, on dit qu’on “incrémente” la valeur x.
1. Réaliser un incrémenteur 1 bit avec retenue de sortie.
2. En déduire le circuit logique d’un incrémenteur 4 bits avec retenue.
3. Comment faire un décrémenteur 4 bits ?
Les multiplications et divisions binaires par 2 sont de simples décalages. Pour multiplier une
valeur x par 2, il suffit de décaler x d’un bit vers la gauche (i.e. ajouter un 0 à droite) et vice-et-
versa pour la division. Le but de cet exercice est de concevoir un circuit spécialisé pour ces deux
opérations.
1. Réaliser un circuit qui prend en entrée le bit à décaler A1 et un paramètre c pour indiquer
le sens du décalage (0 = gauche, 1 = droite) et renvoie les bits décalés sur les sorties S0 et
S2 : soit S0 = A1 et S2 = 0 si c = 0, soit S0 = 0 et S2 = A1 si c = 1.
2. En déduire le circuit d’un décaleur 4 bits (avec le paramètre c pour le sens du décalage, les
entrées A0 , A1 , A2 et A3 et les sorties S0 , S1 , S2 et S3 ).
3. Que fait le circuit suivant ?
A0
A1
A2
A3
S3 S2 S1 S3
2
L1 MIASHS - UFR Mathématiques et Informatique 2013 - 2014
Exercice 1 : Chronogrammes
Q (flip-flop)
Q (latch)
D
Q (flip-flop)
Q (latch)
J
K
Q (flip-flop)
Q (latch)
S
R
H
t
Exercice 2 : Bascules
B T
Q0
Q
H
Q
Q1
(1)
(2)
E
Q
H
Q
(3)
1
L1 MIASHS - UFR Mathématiques et Informatique 2013 - 2014
Concevoir un circuit pour additionner 2 suites de bits transmises sur les entrées a et b. La
somme sera envoyée sous la forme d’une suite de bits sur la sortie S.
Un détecteur de signal est un circuit séquentiel (synchrone ou asynchrone) qui lit une suite de
n bits a = a0 . . . an−1 et qui retourne 1 en sortie si a possède au moins un bit valant 1, et 0 si tous
les bits de a sont à 0. Dans le cas asynchrone, tous les bits de a sont lus un par un et la sortie
est mise à jour immédiatement. Dans le cas synchrone, un bit est lu à chaque front montant de
l’horloge et la sortie est mise à jour au même moment.
1. Expliquer pourquoi il est impossible de réaliser un détecteur de signal asynchrone par un
circuit combinatoire (non séquentiel).
2. Donner la table d’états du détecteur de signal. En déduire une expression booléenne qui
exprime la valeur de la sortie S en fonction de l’entrée a et de s, la valeur de la sortie S à
l’étape précédente.
3. Déduire de l’expression booléenne de S un circuit séquentiel asynchrone réalisant un détecteur
de signal.
Un comparateur série est un circuit séquentiel synchrone qui permet de comparer deux suites
de n bits a = a0 . . . an−1 et b = b0 . . . bn−1 . Les séquences a et b sont traitées de gauche à droite et
à chaque front montant d’horloge, deux bits correspondants sont comparés et la sortie est mise à
jour. La sortie est finalement à 1 si les deux suites sont égales et à 0 sinon.
1. Le circuit admet deux entrées a et b (en plus de l’entrée correspondant à l’horloge), et une
sortie R. Donner la table d’états de ce circuit. En déduire une expression booléenne exprimant
R en fonction de a, b et r (valeur de R à l’étape précédente).
2. En sachant qu’il est possible d’utiliser une bascule D pour se souvenir de la valeur précédente
de la sortie R, construire un circuit séquentiel synchrone réalisant le comparateur série.
Le but de cet exercice est de concevoir un circuit détecteur d’erreurs dans la transmission de
messages en Morse. Un message Morse est codé en binaire de la façon suivante :
– les 0 représentent les blancs
– un 1 correspond à un point et deux 1 à un trait
– le message ne doit pas commencer ou finir par un blanc
– il ne peut y avoir deux blancs consécutifs
Le message est transmis sur une seule ligne d’entrée que l’on note M . Cette ligne est synchro-
nisée avec l’horloge : un nouveau bit du message est transmis à chaque front descendant. La sortie
S vaut 1 si le message lu est bien du Morse et 0 sinon.
1. Parmi ces suites de bits, lesquelles représentent des messages en Morse :
(a) 101
(b) 1001
(c) 1010110
2
L1 MIASHS - UFR Mathématiques et Informatique 2013 - 2014
(d) 110111011
2. Si le bit lu sur M est 0, dans quel(s) cas le message qui vient d’être lu est bien du Morse ?
3. Même question si le bit lu sur l’entrée M est 1.
4. En déduire combien d’états doit “mémoriser” le circuit.
5. Écrire la table de vérité des états du circuit, en fonction des états précédents et du bit lu sur
l’entrée M.
6. Concevoir un ciruit F qui calcule les nouveaux états en fonction des précédents et de M .
7. Utiliser le circuit précédent pour concevoir le circuit séquentiel analyseur de Morse (avec
mémoire et remise à zéro).
3
L1 MIASHS - UFR Mathématiques et Informatique 2013 - 2014
Instruction Description
Un mot correspond à une suite de bits sur une taille donnée (dépend du micro-processeur).
Plus simplement, cela permet d’indiquer directement une valeur (une constante) sans passer par
une variable.
1
L1 MIASHS - UFR Mathématiques et Informatique 2013 - 2014
VPUSH i
VPUSH i JE0 L1
VPUSH i JE0 L1 VPUSH j
JE0 L1 MPUSH 20 MUL
MPUSH 20 POP j POP k
POP k JUMP L2 JUMP L2
L1: MPUSH 10 L1: MPUSH 10 L1: POP k
POP j POP j VPUSH k
L2: NOP POP j
L2: NOP
(a)
(b)
(c)
si (k == 30) alors
si (k == 0 ET j == 0) alors
si (k != 0) alors i = j
i = j
i = j sinon
fin si
fin si i = k
i = i + 1
fin si
(a)
(c)
(b)
MPUSH 2
POP i
MPUSH 10
POP j
MPUSH 1
POP k
L1: VPUSH j
JE0 L2
VPUSH i
VPUSH k
MUL
POP k
VPUSH j
MPUSH 1
SUB
POP j
JUMP L1
L2: NOP
2
L1 MIASHS - UFR Mathématiques et Informatique 2013 - 2014
Écriture en base b
La valeur décimale A10 d’un nombre Ab = an . . . a2 a1 a0 écrit en base b est donnée par :
n
X
A10 = ai × bi
i=0
= an × bn + an−1 × bn−1 + . . . + a2 × b2 + a1 × b1 + a0 × b0
= an bn + an1 bn−1 + . . . + a2 b2 + a1 b + a0
Les ai sont les chiffres de l’écriture en base b, leur valeur est comprise entre 0 et b − 1.
Bases spéciales
Exemples
Exercice 1.1
1
L1 MIASHS - UFR Mathématiques et Informatique 2013 - 2014
Binaire 10 1101010
Décimal 16 255
Hexadécimal 31 100 7B9A
dn
La valeur décimale d’un nombre binaire 0, d1 d2 d3 . . . dn est donnée par : d1 d2 d3
2 + 4 + 8 + . . . + 2n .
Pour convertir un nombre décimal à virgule en binaire, on distingue la partie entière du nombre
(les chiffres à gauche de la virgule) et sa partie fractionnaire (les chiffres après la virgule). Ensuite,
on procède en 2 étapes : 1) On commence par convertir la partie entière comme d’habitude, 2)
Puis on traite la partie fractionnaire avec l’algorithme suivant :
2 Arithmétique binaire
Exercice 2.1
2
L1 MIASHS - UFR Mathématiques et Informatique 2013 - 2014
Exercice 2.2
Exercice 3.1
On s’intéresse à des entiers codés sur 4 bits. Que se passe-t-il lorsqu’on effectue les opérations
arithmétiques suivantes ?
1011 + 1000, 0011 × 0110, 0101 − 0110
Il existe différentes conventions pour représenter les entiers relatifs en binaire (sur n bits) :
− les valeurs signées : le bit de poids fort représente le signe (0 pour les nombres positifs et
1 pour les nombre négatifs) et les n − 1 bits restants codent la valeur absolue du nombre.
− le complément à 2 : les positifs sont codés sur n − 1 bits. Leurs opposés sont obtenus par
complément à 2.
4. Donner les représentations binaires de +77, −77, +15 et −15 sur 8 bits, suivant les deux
conventions.
Lorsqu’on additionne 2 entiers naturels sur n bits, la valeur de leur somme peut nécessiter n+1
bits. Cette notion de retenue n’est plus pertinente pour les entiers relatifs dont la somme peut
“sortir” de l’intervalle des valeurs représentables sans pour autant faire “apparaı̂tre” de retenue.
Par exemple, sur 4 bits, 510 + 610 se traduit par l’addition binaire : 0101 + 0110 ; si on effectue la
somme, on obtient 1011 = −3 6= 1110 (en signé) : il y a dépassement de capacité (overflow). Et on
voit bien qu’il ne s’agit pas d’une retenue, puisque l’addtion tient sur 4 bits !
1. Peut-on avoir un overflow en additionnant 2 nombres du même signe ? de signes différents ?
2. Comment faire pour additionner des nombres signés ? Pour répondre à cette question, tester
les additions suivantes sur 4 bits : 6 + (−5), 5 + (−6), (−5) + (−6) et (−3) + (−4).
3. Et en complément à 2 (tester les mêmes additions) ?
4. Comment peut-on détecter un overflow ?