Enseignants: Fakhreddine GHAFFARI ([email protected])
Olivier ROMAIN ([email protected])
Année Universitaire 2012/2013
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique1
Electronique NumériqueENSL1 (S1)
1ère année IUT GEII
Electronique Numérique
Plan du cours
2
I. Chapitre 1: Introduction
1. Historique
2. Technologie
3. Bases de numération
II. Chapitre 2: L’algèbre de Boole et les fonctions logiques
1. Les lois et règles de l’algèbre binaire
2. Les fonctions binaires élémentaires
3. Ecriture et simplification des fonctions logiques
III. Chapitre 3: Les circuits logiques
1. Les circuits d’encodage et de décodage
2. Les circuits multiplexeurs et démultiplexeurs
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
Plan du cours
3
IV. Chapitre 4: Les circuits arithmétiques
1. Les circuits additionneurs
2. Les circuits multiplieurs/diviseurs
V. Chapitre 5: La logique séquentielle
3. L’élément de base : la bascule Asynchrone
4. Les bascules Synchrones
5. Les registres Synchrones
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
Chapitre 1: Introduction
4
Qu’est ce que l’électronique Numérique ? Pourquoi et à quoi ça sert ?
2 grands types de systèmes électroniques :
• Les dispositifs électroniques ANALOGIQUES (amplification, filtrage, antennes, GSM, etc.)
• Les dispositifs électroniques NUMERIQUES (tous les autres systèmes, informatique, TNT, réception numérique, etc.)
Dans les systèmes analogiques, on utilise les lois physiques du composant pour effectuer des opérations sur les grandeurs, exemple (qui doit devenir bien connu !) :
ÞAvantages : simplicité, rapidité et précisionÞInconvénients : peu de souplesse, pas de « programmation », forte sensibilité au bruit et aux variations
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
Introduction (suite)
Fakhreddine GHAFFARI Philippe GUERINEAU5
Dans les systèmes électroniques numériques, les grandeurs sont transformées en nombres et les composants sont plus facilement utilisables
Tout se fait avec des Interrupteurs
Les premiers ordinateurs ont été fabriqués, avec des lampes (ancêtre du transistor) et des relais électromécaniques (des interrupteurs commandés).
Exemple : 1946 : Création de l'ENIAC (Electronic Numerical Integrator and Computer) La programmation de ce calculateur s'effectue en recablant entre eux, ses différents éléments. Composé de 19000 tubes, il pèse 30 tonnes, occupe une surface de 72 m2 et consomme 140 kilowatts. Horloge : 100 KHz. Vitesse : environ 330 multiplications par seconde, soit beaucoup moins bien qu’une simple calculatrice.
Be carefull : On ne remplace pas tout, de l’analogique au numérique !Certaines fonctions restent seulement réalisables en analogique (ex : les antennes, les applications d’amplifications et de hautes tensions, etc.)
Electronique Numérique6
L’électronique numérique : ÞAvantages : souplesse, évolutivité, insensibilité au rayonnement et au bruit,ÞInconvénients : manque de précision (encore aujourd’hui), pas assez rapide
Les systèmes électroniques modernes savent intégrer des parties analogiques aux parties numériques, exp : processeur de calcul + tète RF analogique = téléphonie portable.
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
Un peu de Technologie
7
Un peu de technologie :La base de tous les systèmes électroniques numériques est le transistor, utilisé comme un interrupteur commandé (le remplaçant du relais électromécanique des années 1930).
Il y a eu différentes technologies, et différents types de transistors. Aujourd’hui, la technologie dominante sur le marché est la technologie MOS (Metal Oxyde Silicon) et CMOS (Complementary MOS).
Le Transistor MOS:
commandeinterrupteur
drain
sourceGrille
En fonction de la tension électrique appliquée sur la grille, le transistor est équivalent (entre drain et source) à un interrupteur presque parfait, ouvert ou fermé.
Fakhreddine GHAFFARI Olivier ROMAIN
Récapitulatif
Electronique Numérique8
=> Un dispositif électronique numérique est constitué uniquement de transistors(les transistors complémentaires CMOS), qui sont utilisés comme des interrupteurs (entre source et drain) commandés par la tension appliquée sur la grille.
=> Remarque : la technologie CMOS évolue très rapidement en faisant diminuer d’un facteur 2 la taille des transistors, tous les 18 mois, pour atteindre aujourd’hui plusieurs milliards de transistors sur une seule « puce » de silicium de quelque centaines de mm²
ÞToutes les grandeurs (tensions) à l’intérieur d’un système électronique numérique (les tensions de grille de commande ou les tensions de sortie qui, elles mêmes commandent d’autres transistors) ne prennent que 2 états :
- état « 0 » => tension VSS, (GND), 0V, = ‘0’- état « 1 » => tension VDD, (VCC), quelque Volts, = ‘1’
=> Un système à 2 états est un système BINAIRE, dans lequel on appliqueUne algèbre particulière => l’algèbre de BOOL avec ses lois spécifiques.
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
1) Représentation des nombres en binaire
9
Parmi la vaste quantité d’objets mathématiques sur lesquels on peut essayer de faire des calculs électroniquement, nous nous intéresserons qu’à deux catégories seulement :
Les nombres entiersnon signés :
signés :
( 2, 50, 34, 10, 1, 123, … )
( -2, 50, -34, -10, 1, -123, … )
Les nombres fractionnairesà virgule fixe ou à précision finie
à virgule flottante ou nombres flottants ou, maladroitement, les nombres à précision infinie.
Fakhreddine GHAFFARI Olivier ROMAIN
Les bases de numération
Electronique Numérique
Représentation des nombres entiers
10
D’une manière générale, un nombre entier (positif) N peut s’écrire (se représenter) dans une base quelconque (B entier) de la manière suivante :
BCBCBCBCN nn
012.0.1.2....
ni
i
ii BCN
0. => N est le nombre mathématique (abstrait),
=> B est la base de représentation,=> Ci sont les coefficients de la représentation de N dans la base B,=> n correspond au nombre maximum de coefficients utilisés pour représenter N.
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
Représentation d’un nombre décimal
11
105104101145 012...10 en base 10 (décimal )
818282145 012...10 en base 8 ( octal )
2120202021202021145 01234567........10
en base 2 (binaire )
Donc le nombre : se représente par : 145 en base 10 (décimal),221 en base 8 (octal),10010001 en base 2 (binaire).
10145
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
Représentation en binaire
12
En binaire, on peut donc représenter n’importe quel entier N avec M bits :
222.2 0121.0.1....2.1 CCCCN MM
MM
Sur M bits, les nombres entiers positifs représentables sont limités à :
20 1 MN
Exemple :•Sur 4 bits =>•Sur 8 bits =>•Sur 16 bits =>
150120 Þ NN 4
2550120 Þ NN 8
655350120 Þ NN 16
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
Représentation en binaire (suite)
13
Cette représentation conduit naturellement au code binaire naturel : => on affecte à chaque indice de la base un poids, en partant du plus faible (à droite) pour atteindre le plus fort (à gauche), tout comme en décimale avec : les unités, les dizaines, les centaines, …
C0
N (décimal
)01
0 (=0)1
00
01
23
11
00
00
1111
00
0
011 1
1
7654
00
00
0000
C3
C2
C1
20
21
22 01
22
22 02
22 12
222 012
0000 2 23…..
…..
Exemple :Soit N = 1010011 en binaire, quelle est sa valeur décimale ?
20212426
N(2) = 1010011
D’où N(10) = 64+16+2+1=83
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
Exemple en octal
14
De même , dans n’importe quelle base, exemple en octal :
C0
N (décimal
)01
0 1
00
23
23
0000
4
600 7
5
7654
C1
8.68.0 01
01 81121
99 8.28.1 01
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
Représentation dans des bases multiples
15
Lorsque les nombres représentés en binaire sont un peu trop « longs », on prendra l’habitude de les représenter dans des bases multiples, afin de minimiser l’expression :
1 0 0 1 0 0 0 1 en base 2
2 1 0 1 en base 4 9 1 en base 16
)16()4()2()10( 91210110010001145
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
Choix de la base
16
N’importe quelle représentation binaire d’un nombre peut se réécrire de façon plus compacte en regroupant les bits :
2 par 2 pour la représentation en base 4 =
3 par 3 pour la représentation en base 8 =
4 par 4 pour la représentation en base 16 =
22
23
24
Par habitude, on utilise couramment les bases : 2 (binaire) et 16 (hexadécimal).En base 16, il faut « inventer » des chiffres compris entre : 0 et 15 :
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F
1011 12 13
1415
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
Représentation des nombres fractionnaires
17
Pour représenter les nombres réels fractionnaires, se pose le problème (comme en décimal) de la précision de représentation => jusqu’à quelle décimale voulons nous représenter les nombres ?
Autrement dit, quelle est la précision (le quantum) de nos calculs ?
2 possibilités précision fixée à l’avance (virgule fixe)
précision variable (virgule flottante => « précision infinie »)
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
Représentation en virgule fixe
18
On s’inspire de la représentation décimale :
10.310.410.210.510.1243,15 32101
Si on décide de toujours garder 3 chiffres après la virgule : on est en virgule fixe. La précision maximale de représentation est : 10.1 3
Cette représentation est strictement équivalente à la représentation des entiers, à un facteur d’échelle près.
1015243243,15 3
Nombre entier Facteur d’échelle
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
Exemple d’opération à virgule fixe
19
1043010123743,0237,1 33 10)4301237(43,0237,1 3
Addition entière
En binaire, on utilise la même méthode :
sur N bits : , avec : N = E + F
E bits F bits
2....2.2.2....2.2. 22
11
00
22
11
FF
EE
EE AAAAAAA
Partie entière sur E bits Partie fractionnaire sur F bits
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
Autre exemple
20
2.12.12.12.12.12.165625,13 531023
Partie entière sur 4 bits Partie fractionnaire sur 5 bits
Or : 13.65625 = 437 / 32 = 2.437 5
2).110110101( 5
1101,10101Ces 2 expressions sont rigoureusement identiques
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
Addition à virgule fixe
21
13,65625 + 22,125 01101,10101
10110,00100
100011,11001
+
=
78125,352.12.12.12.12.12.1 521015
Problème : comment trouver la représentation, en virgule fixe la mieux adaptée au nombre réel donné ?
0,92 x 2 = 1.84 10,84 x 2 = 1.68 10,68 x 2 = 1.36 10,36 x 2 = 0.72 0
Exemple : 9,92 La partie entière sur 4 bits : 1001 La partie fractionnaire sur 4 bits : 1110
Finalement : 9,92 va s’écrire :1001,1110 => donc sur codé sur 8 bits
1001,1110 est exactement égal à : 9,875 => c’est la valeur arrondie à : près de 9,92
2 4
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
Transcodage d’une base B vers la base 10
22
Il suffit de calculer en base 10 la somme totale des puissancespondérées de la base B.
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
Transcodage Décimal vers une base B
23
Méthode par soustractions successives
Fakhreddine GHAFFARI Olivier ROMAIN
Cette méthode utilise le développement polynomial
• Algorithme
• Dresser une table donnant les valeurs des différentes puissances de la base B dans laquelle on convertit le nombre décimal
• Au nombre décimal donné, retrancher la plus grande puissance de B possible
• Répéter le processus à partir des restes obtenus
•RemarqueCette méthode ne s’applique qu’aux nombres entiers
Electronique Numérique
Transcodage Décimal vers une base B
24
Exemple
Fakhreddine GHAFFARI Olivier ROMAIN
Convertir 6718 (base 10) en octal:
Electronique Numérique
Transcodage Décimal vers une base B
25
Méthode par divisions (ou multiplications)
Fakhreddine GHAFFARI Olivier ROMAIN
Méthode plus simple, plus rapide Convient aux nombres entiers et fractionnaires
Tout nombre N, à priori non entier, sera converti en considérant: D’une part sa partie entière, à laquelle on appliquera laméthode des divisions successives D’autre part sa partie fractionnaire, à laquelle on appliquera la méthode des multiplications successives
Electronique Numérique
Transcodage Décimal vers une base B
26 Fakhreddine GHAFFARI Olivier ROMAIN
Conversion de la partie entière Diviser le nombre à convertir par la base du nouveau système Conserver le reste Répéter le processus à partir du nouveau quotient obtenu Arrêter si le quotient est nul Écrire les restes à partir du dernier et de gauche à droite pour btenir le nombre en base B
Exemple: convertir 358(10) en base 8
Electronique Numérique
Transcodage Décimal vers une base B
27 Fakhreddine GHAFFARI Olivier ROMAIN
Autre exemple:
Convertir 254(10) vers la base 2 et vers la base 16?
Electronique Numérique
Transcodage Décimal vers une base B
28 Fakhreddine GHAFFARI Olivier ROMAIN
Conversion de la partie fractionnaire:
Multiplier le nombre à convertir par la base du nouveau système Soustraire et conserver sa partie entière Répéter le processus à partir de la nouvelle partie fractionnaire Arrêter quand la précision désirée est atteinte
Exemple: convertir 0,732(10) en base 8
Electronique Numérique
Transcodage du binaire vers une base 2ⁿ et vice versa
29 Fakhreddine GHAFFARI Olivier ROMAIN
Binaire vers Octal:
Algorithme:Grouper les bits par blocs de 3 à partir du bit de poids faibles Convertir ensuite directement ces blocs en octal Exemple:
Octal vers Binaire:Algorithme:Traduire chaque chiffre du nombre en base 8 en nombre de 3 bits enbase 2 Exemple:
Electronique Numérique
Transcodage du binaire vers une base 2ⁿ et vice versa
30 Fakhreddine GHAFFARI Olivier ROMAIN
Binaire vers Hexadécimal:
Algorithme: Grouper les bits par blocs de 4 à partir du bit de poids faibles Convertir ensuite directement ces blocs en hexadécimal Exemple:
Hexadécimal vers Binaire:Algorithme:Traduire chaque chiffre du nombre en base 16 en nombre de 4 bits enbase 2 Exemple:
Electronique Numérique
Transcodage du Base i vers Base j
31 Fakhreddine GHAFFARI Olivier ROMAIN
Les bases i et j sont toutes les deux des puissances de 2. On utilise alors la base 2 comme base relais :
Les bases i et j ne sont pas toutes les deux des puissances de 2. On utilise alors la base 10 commebase relais
Electronique Numérique
Représentation binaire des nombres signés
32
Il existe plusieurs façons de représenter les nombres signés (positifs et négatifs)
La 1ière manière consiste à s’inspirer de la représentation décimale (-5) en représentant le signe (+ ou -) suivi de la valeur absolue
10
11
01
3 => 11 =>-2 => 10 =>
Le signe (+ ou -) qui est une information binaire, est représenté par 1 bit de plus (le bit de signe) avec le codage suivant :
Bit de signe = 0 => nombre positif Bit de signe = 1 => nombre négatif
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
Nombres signés : 1ière méthode
33
1ière conséquence : il faut 1 bit supplémentaire pour représenter les nombres (qu’ils soient positifs ou négatifs)
Au lieu de : 120 NNpositifs :
négatifs :
120 1 NN
012 1 NN
L’étendue des valeurs est divisée par 2 => la moitié pour les nombres positifs et l’autre pour les nombres négatifs.
2ième conséquence : il y a 2 représentations possibles du nombre : 0 =>+0 ou -0 !!!
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
Nombres signés : 1ière méthode (suite)
34
3ième conséquence : toute l’arithmétique binaire s ’applique sans changements sur les nombres positifs, mais pas sur les nombres négatifs !!!
Lors d’une soustraction / addition, il faut d’abord calculer le signe du résultat en comparant les bits de signe et les valeurs absolues, comme en décimal.
(+5) + (-3) = + (5-3)(-10) + (+5) = - (10-5)(-5) + (-10) = - (10+5)
C’est assez compliqué !!
Toutes ces conséquences font qu’on utilise jamais cette représentation
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
Représentation en « code complément à 2 »
35
Cette représentation exploite la règle élémentaire de l’algèbre de Boole : 1 AA
Lorsque le nombre A est codé sur N bits, cette règle devient : 12 N
NbitsNbits AA D’où : 21 NNbitsNbits AA
Or, ne se représente pas sur N bits (tous les nombres sont modulo 2)=>
2N
01 NbitsNbits AAOu encore : NbitsNbits AA 1
Exemple : 01117 )10( 10007 )10( 111177 )10(
10000177
Résultat = 0 sur le format du mot (c’est-à-dire : 4 bits)
La représentation de : - 7 sur 4 bits est donc :10007 )10( 00011
10017
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
Calcul de CC2
36
Calculer l’opposé d’un nombre en CC2 (code complément à 2) revient donc à calculer l’opposé (bit à bit : c’est le CC1) auquel il faut ajouter : 1
Cette règle (de calcul) s’applique aussi bien pour calculer l’opposé d’un nombre positif que pour calculer l’opposé d’un nombre négatif !!
Exemple : calculons l’opposé de : -7 01107 00011
01117
On retrouve bien évidemment le nombre positif : +7 !!
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
Conséquence du CC2
37
1ière conséquence : il n’y a qu’une seule représentation du « 0 »
11110 00011
100000
00000
2ième conséquence : lorsque les nombres sont strictement positifs, toutes les opérations (addition, soustraction, multiplication, division) s’appliquent normalement :
01004 )10( 00113 )10( 01117 )10(
3ième conséquence : les opérations (addition, soustraction, multiplication, division) s’appliquent également sur les nombres négatifs :
01117 )10( 10115
00102 )10(
11013 11102
01106 )10(
00001101
11011101
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
Conséquence du CC2 (suite)
38
Là aussi, on utilise un bit de plus pour représenter le signe => réduction de la dynamique :
On a : valeurs positives ou nulle, soit 8 valeurs dans un format 4 bits (7 valeurs strictement positives et la valeur nulle )
2 1N
2 1NOn a : valeurs négatives, soit 8 valeurs dans un format 4 bits
Représentation du codage CC2 dans un format : 4 bits
a0
Non signés0
101
00
01
23
11
00
00
1111
00
0
011 1
1
7654
00
00
0000
a3
a2
a1
0 0 0 811 9001
1011
11
0
00
1
11
1111
00
0
011 1
1
151413121
111
Signés CC20123
7654
-8-7-6-5
-1-2-3-4
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
CC2 : généralisation
39
D’une manière générale, sur N bits on peut représenter :
12;0 NN 12;2 11 NNN
en binaire naturelen Code Complément à 2 : CC2
Cette représentation est utilisée dans tous les ordinateurs pour représenter les entiers signés.
Inconvénient : les relations d’ordre entre les entiers signés sont difficiles à établir, surtout autour du « 0 »
12 1 N
2 1N
12 N
12 1 N
2 1 N
0
Ce nombre est proche de 0, pourtant tous les bits sont à 1 !!
=> Plus on s’éloigne de la représentation binaire naturelle du 0, plus la valeur représentée en est proche !!
Fakhreddine GHAFFARI Olivier ROMAIN
Le binaire décalé
Electronique Numérique40
a0 CC201
01
00
01
23
11
00
00
1111
00
0
011 1
1
7654
00
00
0000
a3
a2
a1
0 0 0 -811001
11
0
00
1
11
1111
00
0
011 1
11111
Signés CC20123
7654
-8-7-6-5
-1-2-3-4
-8-7-6-5
-1-2-3-4
0123
7654
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
Calcul du CC2 : astuce
41
Pour calculer l’opposé d’un nombre => en partant de la droite, on recopie les bits du nombre jusqu’au 1ier « 1 » rencontré, ensuite on inverse les bits restants.
Exemple : calculons l’opposé de : 2 2 0010 -2 1110
Sens de lecture
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique42
Inventée par le mathématicien Georges BOOLE (1815-1864), l’algèbre de BOOLE définit les règles de calcul pour les opérations possibles sur des nombres binaires (à 2 états)
ÞUne variable BOOLEENNE ne peut prendre que 2 états : VRAI (TRUE) ou FAUX (FALSE)
Þ on parle de logique booléenne (ou de logique binaire), lorsqu’on associe des valeurs numériques aux états :
VRAI est équivalent à « 1 », qu’on appelle souvent : niveau 1.FAUX est équivalent à « 0 », qu’on appelle souvent : niveau 0.
ÞIl n’existe que 3 opérations élémentaires dans la logique booléenne :- opération NON (NOT) : cette opération revient à fournir le
complément de la valeur d’entrée (on parle également d’inversion)
Si A = 1 alors S = 0
Si A = 0 alors S = 1
Chapitre 2: Algèbre de Boole et fonctions logiques
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
Opération OU (OR)
43
opération OU (OR) : cette opération revient à fournir la somme logique des valeurs d’entrée (on parle également d’union) :
S = A + B => on prononce : S = A OU B (et non pas : S = A plus B)
Définition :S = 1 si au moins une des entrées est égale à 1, sinon S = 0
Correspondance électrique :
Mise en parallèle
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
Opération ET (AND)
44
Mise en série
opération ET (AND) : cette opération revient à fournir le produit logique des valeurs d’entrée (on parle également d’intersection) :
S = A B => on prononce : S = A ET B
Définition :S = 1 si toutes les entrées sont égales à 1, sinon S = 0
Correspondance électrique :
Fakhreddine GHAFFARI Olivier ROMAIN
Lois et règles
Electronique Numérique45
ÞLes opérations ET et OU sont commutatives :
ÞLes opérations ET et OU sont associatives :
ÞL’opération ET est distributive :
ÞL’opération OU est également distributive ! :
Attention : comme vous le savez, la distributivité de la somme n’est vrai Qu’en algèbre binaire !!!
Fakhreddine GHAFFARI Olivier ROMAIN
Règles et axiomes
Electronique Numérique46Fakhreddine GHAFFARI
Olivier ROMAIN
Règles (suite)
Electronique Numérique47
Démonstration : en utilisant l’axiome : A.1 = A ÞA + A.B = (A.1) + (A.B) => on doit reconnaître la distributivité inverse du ETÞ (A.1) + (A.B) = A . (1+B) = A => CQFD
Démonstration :Þ on doit reconnaître la distributivité du OUÞ => CQFD
Montrer que :Þ (A + B). (A+C) = A+BC
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
Théorème de DE MORGAN
48
A et B sont 2 variables binaires :
Þ On a : ; « le complément du produit est égal à la somme des compléments »
Þ On a : ; « le complément de la somme est égal au produit des compléments »
Application du théorème de DE MORGAN :
BABA .
Fakhreddine GHAFFARI Olivier ROMAIN
Les fonctions binaires élémentaires
Electronique Numérique49
Les N variables de la fonction
Toutes les combinaisonsPossibles des N variables
La fonction à calculer
La valeur de la fonction, pour chaque combinaisondes N variables d’entrée
La table de vérité répertorie toutes les valeurs que peut prendre la fonction, en fonction de toutes les combinaisons possibles des N variables d’entrée.
La table de vérité:
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
Table de vérité, à 1 et 2 variables
50
A S1 seule variable => 2 combinaisons
=> 2 lignes dans la table de vérité01
2 Variables => 4 combinaisons
=> 4 lignes dans la table de vérité
A S01
B00
01
11
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
Table de vérité, à 3 et plus variables
51
3 Variables => 8 combinaisons
=> 8 lignes dans la table de vérité
A S01
B00
01
11
C00
00
1111
00
0
011 1
1
Généralisation : une fonction binaire à N variables peut prendre valeurs distinctes (possibles) donc => lignes
dans sa table de vérité
N2 N2
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
Comment construire une table de vérité?
52
Þ On insère autant de colonnes que de variables d’entrée de la fonction
Þ On insère autant de lignes que les : combinaisons.
Þ On implémente les variables dans la table , en commençant par la colonnede droite.
Þ On commence par la combinaison : « tout à 0 », sur la 1ière ligne
N2
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
Fonction : NON (NOT)
53
Table de vérité :
Définition : réalise le complément logique de l’entrée (on parle également d’inversion logique).
A S01
10
1 variable => 2 lignes
Désignation : on prononce S = A bar AS
Symbole : A S
Ancienne norme
Schéma en transistors MOS :
1 SA
Norme Européenne
PMOS
NMOS
A S S = 1A =0
A = 1 S = 0
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
Fonction : ET (AND)
54
Table de vérité :
Définition : vrai si toutes les entrées sont vraies, sinon : faux.
Désignation : S = A.B on prononce S = A ET B
Symbole : A S
Ancienne norme
&S
Norme Européenne
A S01
00
B00
01
01
11
B
AB
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
Fonction : OU (OR)
55
Table de vérité :
Définition : vrai si au moins une des entrées est vraie, sinon : faux.
Désignation : S = A + B on prononce S = A OU B
Symbole : A S
Ancienne norme
≥1
S
Norme Européenne
A S01
01
B00
01
11
11
B
AB
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
Fonction : NON ET (NAND)
56
Table de vérité :
Désignation : on prononce S = (A ET B) bar
Symbole : A S
Ancienne norme
Schéma en transistors MOS ? :
&S
Norme Européenne
A S01
11
B00
01
10
11
B
AB
A
B
B
S
BAS
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
Fonction : NON OU (NOR)
57
Table de vérité :
Désignation : on prononce S = (A OU B) bar
Symbole : A S
Ancienne norme
Schéma en transistors MOS :
≥1
S
Norme Européenne
A S01
10
B00
01
00
11
B
AB
BAS
B
S
A
A
B
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
Fonction OU Exclusif (XOR)
58
Table de vérité :
Symbole : A S
Ancienne norme
=1
S
Norme Européenne
A S01
01
B00
01
10
11
B
AB
Désignation : on prononce S = (A xor B) BAS
définition :VRAI si un nombre impair d’entrées, VRAIE
BABAS
Application :La fonction est couramment utilisée pour connaître la parité de plusieurs variables binaires => nous verrons cet exemple un peu plus tard.
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
Fonction NON OU Exclusif (XNOR)
59
Table de vérité :
Symbole : A S
Ancienne norme
=1
S
Norme Européenne
A S01
10
B00
01
01
11
B
AB
Désignation : on prononce S = (A xor B) bar BAS
définition :VRAI si un nombre pair d’entrées, VRAIE
BABAS
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
« Lecture » d’une fonction CMOS
60
Pour lire (ou réaliser) une fonction CMOS, réalisée à partir d’un réseau de transistor NMOS et d’un réseau de transistors PMOS
S = (complément du réseau NMOS) ou bien (réseau PMOS directement )
Exemple :
A
B
BS
Réseau PMOS =>
Réseau NMOS =>
D’où : BAS
BAS .
BAS
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
Fonctions complémentées
61
Toutes les fonctions logiques (ou binaires) peuvent s’exprimer à partir des fonctions élémentaires : NON, ET et OU.En technologie CMOS il est plus facile de réaliser les fonctions complémentées(NAND et NOR).
A partir de ces fonctions élémentaires, on peut re-construire toutes les autres => en CMOS les portes NAND et NOR (surtout les NAND) sont des portes universelles
A
BA
BA
NON AAA
ET BABA
OU BABA
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
Fonctions à partir de NOR
62
AAA
BABA
BABA
NON
OU
ET
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
Equivalence des expressions et des représentations graphiques
63
Toutes les fonctions booléennes peuvent se représenter graphiquement en utilisant les symboles standards. Tout schéma avec des portes logiques peut s’écrire sous la forme d’une fonction logique
Les deux représentations sont équivalentes.
Exemple: EDCABAS
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
Symboles généraux
64
Remarque : On peut trouver, dans certains cas, des symboles plus généraux :
ABC
CBAS
Permet une représentation graphique plus compacte
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
Formes d’écriture
65
Il existe 2 façons différentes d’écrire une fonction booléenne :
Þ Sous forme de somme de produits (SDP)Þ Sous forme de produit de sommes (PDS)
Ces 2 formes d’expression sont duales
Exemple :
CBCBABACBAf ,, CACBACBACBAf ,,
=> Somme de produits=> Produit de sommes
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
Lecture : sdp ou pds
66
Lors de la construction d’un système numérique, on se donne généralement la table de vérité de la fonction à réaliser
A partir de la table de vérité, on peut extraire directement l’expression de la fonction sous forme d’une somme de produit ou d’un produit de somme
A f01
00
B00
01
10
11
C00
00
1111
00
0
011 1
1
0111
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
Lecture sdp
67
A f01
00
B00
01
10
11
C00
00
1111
00
0
011 1
1
0111
ABCABCABCABCfsdp
C’est une somme de produits standards car chaque terme contient toutes les variables du domaine de définition de la fonction : ce sont des mintermes
Le principe de lecture sous forme d’une somme de produits (sdp) est d’énumérer les combinaisons d’entrée qui rendent la fonction VRAIE. Dans une somme, si l’un des termes est VRAI alors la somme est VRAIE
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
Lecture pds
68
Puisqu’il existe une relation de dualité entre les sommes et les produits (DE MORGAN), on peut exprimer aussi la fonction sous la forme d’un produit de sommes,=> On énumère les combinaisons d’entrée qui rendent la fonction FAUSSE en complémentant les variables
Revenons à notre exemple :
A f01
00
B00
01
10
11
C00
00
1111
00
0
011 1
1
0111
ABCABCABCABCfpds
C’est un produit de sommes standards car chaque terme contient toutes les variables du domaine de définition de la fonction, ce sont des maxtermes.
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
Sdp pds
69
Les deux formes d’expression sont strictement équivalentes, on peut passer de l’une à l’autre par l’application du théorème de DE MORGAN.Toutefois, le nombre de termes peut être différents …; c’est le principe de la simplification des fonctions logiques.
Exemple :A f01
10
B00
01
01
11
Lecture sdp :
Lecture pds :
ABABfsdp
ABABfpds
Remarque : on se doit de reconnaître la fonction : XNOR
Démonstration de l’équivalence :
ABABBAABAABAABBBABABfpds
On obtient bien : fpds = fsdp => CQFDFakhreddine GHAFFARI
Olivier ROMAIN
Electronique Numérique
Représentation du XOR
70
ABABfsdp
ABABfpds
Schéma à 5 portes
Schéma à 5 portes
Les 2 formes sont équivalentes et minimales
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
Fsdp (ou Fpds) table de vérité
71
On peut également passer d’une somme de produits (ou d’un produit de sommes) à une table de vérité :
Exemple : CABAf Le domaine de définition est : A,B,C =>Il faut transformer l’expression pour n’utiliser que des mintermesBCABCACBACBAf
A f01
01
B00
01
00
11
C00
00
1111
00
0
011 1
1
0111
Fakhreddine GHAFFARI Olivier ROMAIN
Simplification
Electronique Numérique72
La simplification de l’écriture d’une fonction logique permet de la « réaliser » en utilisant plus ou moins de portes élémentaires (ET, OU, NON, etc…)
Moins de portes :ÞMoins de fils, moins de transistors,ÞMoins de courant, moins de consommation,ÞMoins de surface, plus rapide.
ÞDonc ASSUREMMENT GAGNANT !!!
Il est donc important de réduire, simplifier, les fonctions logiques.La simplification d’une fonction consiste à réduire le nombre de termes ou, d’une façon générale , à réduire le nombre de variables dans les termes (maxtermes ou mintermes)
La simplification d’une fonction consiste à appliquer les règles de base de l’algèbre de boole et/ou le théorème de DE MORGAN
Fakhreddine GHAFFARI Olivier ROMAIN
Simplification : exemple
Electronique Numérique73
A f01
10
B00
01
11
11
C00
00
1111
00
0
011 1
1
1100
CBACBACBACBACBAfsdp
Or, Fsdp peut se simplifier : CBACBACBACBACBAfsdp
CCBACCBACBAfsdp BABACBAfsdp
BCBAAABCBAfsdp CBABCBBBABfsdp CABCBABfsdp
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
Simplification difficile !
74
Malheureusement , appliquer les règles de l’algèbre de Boole sur des expressions très compliquées (plus de 4 ou 5 variables), peut devenir difficile, voire impossible et on est pas sûr d’arriver toujours à la meilleure simplification.
Pour pallier ce problème on va utiliser la technique de réduction par les tableaux de KARNAUGH
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
Tableau de KARNAUGH
75
Dans une table de vérité, la simplification d’une fonction consiste à supprimer une variable (exp : )BBABA
Cela consiste donc à regrouper les « 1 » de la table 2 par 2 (suppression d’1 variable, 4 par 4 (suppression de 2 variables), 8 par 8, etc.
Pour faciliter ces regroupements, on utilise une représentation différente : les tableaux de KARNAUGH
Le tableau de Karnaugh est une représentation (comme son nom l’indique), en 2 dimensions, c’est-à-dire en lignes / colonnes.On distribuera les variables sur les lignes et les colonnes, de façon à ce qu’il n’y ait qu’une seule variable qui change quand on passe d’une case du tableau à une des cases adjacentes.
Fakhreddine GHAFFARI Olivier ROMAIN
Construction tableau à : 1, 2 et 3 variables
Electronique Numérique76
A=0 A=1f A=0 A=1fB=0
B=1
A=0B=0
A=1B=0f
C=0
C=1
A=1B=1
A=0B=1 f
C
A
Tableau à 1 variable=> 2 cases
Tableau à 2 variables=> 4 cases
Tableau à 3 variables=>8 cases Représentations identiques
B
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
Construction tableau : généralisation
77
Si une fonction est définie à l’aide de N variables, la table de vérité
comportera : lignes, le tableau de Karnaugh correspondant comportera
cases.
2N
2N
D’où la représentation pour une fonction définie avec 4 variables d’entrée :
D’où la représentation pour une fonction définie avec 5 variables d’entrée :
f
E
D
CBAf
C
D
AB
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
Exemple tableau de Karnaugh
78
Soit la fonction :
CBACBACBACBACBAfsdp
1 0
fsdp
0 0C
1 1
1 1
B
On remplit le tableau de Karnaugh avec les « 1 » de la fonction et on le complète avec des « 0 »
On peut voir sur cet exemple que l’on peut faire un groupement de 4 cases adjacentes => cela nous amènera à supprimer 2 variables dans l’expression de la fonction
A
BCAfsdp
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
Groupements dans un tableau de Karnaugh
79
Nous l’avons déjà dit : la simplification revient à supprimer un maximum de variables dans l’expression de la fonction,Þc’est pour cela (faire des groupements) que le tableau de Karnaugh est très utile,Þ un groupement de 2 cases reviendra à supprimer 1 variables,Þ un groupement de 4 cases reviendra à supprimer 2 variables,Þ un groupement de 8 cases reviendra à supprimer 3 variables,Þ un groupement de 16 cases reviendra à supprimer 4 variables,
Þ un groupement de cases reviendra à supprimer K variables,2K
Si une fonction est définie avec N variables, et que l’on fait un groupement de : cases, alors la simplification fera que la fonction s’exprimera en fonction de : N – K variables.
2K
Vous l’aurez compris, simplifier au maximum revient à chercher à faire des groupements de taille maximale.
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
Groupements dans un tableau de Karnaugh (suite)
80
Þpour faire tous les groupements possibles dans le tableau de Karnaugh, il faut considérer le tableau qui se replie sur lui-même, en horizontal comme en vertical, il faut systématiquement penser à ces 2 symétries cylindriques, on peut même parler, en généralisant de symétrie sphérique.
Récapitulatif : Dans l’objectif d’arriver à la simplification optimale (la meilleure), il faut suivre la règle suivante :ÞFaire un nombre minimal de groupements de taille maximale.
ÞLes groupements se font obligatoirement avec des cases adjacentes, donc pas en diagonale,Þla taille des groupements est en puissance de 2 (1 variable binaire = 2 états),
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
Exemple de groupements
81
Soit la fonction : f, définie à partir de 3 variables (A, B et C)
1 0
f
0 0C
1 1
1 1
A
Il reste des « 1 » (et tant que) il faut à nouveau chercher à faire un groupement de taille maximale => 4 cases : NON => 2 cases : OUI (grâce à la symétrie horizontale) => 1 groupement de 2 cases => expression en fonction de 2 variables (toujours le : N – K) => gr(2) =
CBACBACBACBACBAfsdp
Dans ce cas la taille maximale est : 4 cases => expression du groupement en fonction de : 1 variable (rappelez vous du : N – K)
Pour lire un groupement (donner son expression) : on liste les variables qui ne changent pas d’état dans le groupement => ici c’est la variable : B, qui ne change pas dans le groupement) => gr(4) = B
CA
Au final : F = B + CA
B
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
Exemple (suite)
82
1 0
f
0 0C
1 1
1 1
B
Une autre idée : grouper les « 0 » => cela revient à exprimer le complément de la fonction
Gr(2)1 = BA Gr(2)2 = CB
D’où l’expression de : CBABf
Donc : CBBACBBACBBAf
CABCABABCBCACBBAf 1
BCACABCAf 1On trouve bien évidemment le même résultat, ce qui montre que cette idée peut se révéler efficace dans certains cas, peu de « 0 » .
A
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
Exemple (suite)
83
1 0
f
0 0C
1 1
1 1
A
Gr(2)1 BAGr(2)2 = BC
On peut aussi retrouver avec les regroupements de « 0 » la Fpds
=> CBBCABACBBAfpds
BCACBBCABAfpds
B
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
Autre exemple
84
1 1
f
0 1C
0 0
0 1
A
Gr(2)1 CB Gr(2)2 = BA
Pas de groupement possible => cette case s’exprime en fonction de toutes les variablesGr(1) CBA
CBACBBAf
B
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
Chevauchement des groupements
85
1f
1
D
11
A
11 1
11
Les groupement peuvent se chevaucher, c’est le cas ici avec le groupement de 4 cases (vert) et le groupement de 2 cases (bleu)
Nous pouvons donc exprimer la fonction f:
DBACACAf
B
C 00
00
000
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
Cas indéterminés
86
Lorsque certaines combinaisons sont indifférentes, ou lorsque ces cas ne peuvent se produire, les valeurs correspondantes de la fonction sont ni « 0 », ni « 1 », elles sont notées : XA f
01
1X
B00
01
11
11
C00
00
1111
00
0
011 1
1
XX00
1 X
0 0C
1 1
X X
f A
C
B CBf
Remarque : les valeurs indifférentes peuvent être considérées comme des « 0 » ou des « 1 » (mais pas les 2 !!!), selon les possibilités de groupements (le plus grand possible).Des lors qu’une valeur X aura été utilisée dans un groupement (de « 1 » pour une Fsdp, de « 0 » pour une Fpds), alors la valeur X est définitivement transformée dans tout le tableau
B
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
Fonction à plusieurs variables
87
A S2
01
00
B00
01
11
11
C00
00
1111
00
0
011 1
1
0011
0011
1011
S1 Lorsque le cahier des charges (besoin du client !) donne un système contenant plusieurs sorties, définies avec les mêmes entrées, alors on ajoute autant de colonnes à droite que de variables de sorties supplémentaires à la table de vérité, et on créera autant de tableau de Karnaugh que de variables de sortie.
0 0
1 1C
1 1
S1 A
CBCBCBS 1
0 0
0 0
1 1C
1 1
S2 A
BACBS 1
1 0
B B
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
Fonction à plusieurs sorties (suite)
88
0 0
1 1C
1 1
S2 A
1 0CACBS 1
Dans cet exemple il y avait une autre possibilité de groupements :
≥1&
=1 S1
S2
CB
A
B
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
Exemples à reconnaître
89
0 1
f
1 0C
A
BAf 1 0
f
0 1C
A
BAf
0 1
1 0C
0 1
f A
1 0
CBAf
0 1
0 1C
0 1
f A
0 1
BAf
B B
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
Exemples à reconnaître (suite 1)
90
0 0
1 1C
1 1
f A
0 0
CBf
0 1
1 0C
1 0
f A
0 1
CAf
1 1
0 0C
0 0
f A
1 1
CBf
1 0
0 1C
0 1
f A
1 0
CAf
B B
B B
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
Exemples à reconnaître (suite 2)
91
1f
1
D
11
A
11
11
DCBAf
0f
0
D
A
00
DBCAf
B B
CC
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
Les circuits logiques
92
Maintenant que nous pouvons interpréter le cahier des charges d’un système logique combinatoire (une table de vérité à 1 ou plusieurs sorties) et simplifier les expressions logiques (par les règles de l’algèbre de Boole ou par l’utilisation des tableaux de Karnaugh) pour enfin dessiner (ou construire) le système à l’aide des portes élémentaires : ET, OU, …).
Que peut-on faire avec ça ?=> Tout simplement construire (concevoir, « designer ») des dispositifs de plus en plus complexes en associant des sous-ensembles entre eux :
Sous-ens 1
Sous-ens 2
Sous-ens 3
etc …
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
Fonctions générales
93
Parmi ces sous-ensembles, certains réalisent des « fonctions » assez générales que l’on va retrouver assez systématiquement :
ÞLes codeurs,ÞLes décodeurs,ÞLes multiplexeurs,ÞLes démultiplexeurs.
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
Les circuits d’encodage et de décodage
94
D’une façon générale, les codeurs (encodeurs) et les décodeurs se représentent de la façon suivante :
.
.
. N entrées
M sorties Les M sorties représentent le numéro de l’entrée active considérée
Exemple :Si l’entrée numéro 5 est active (par exemple au niveau « 1 »), alors les sorties de l’encodeur représentent la valeur : 5
L’encodeur
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
Le décodage
95
.
.
. M entrées N sorties
Dans le décodeur, c’est la sortie correspondant au numéro présent à l’entrée, qui sera active.
Le décodeur
On voit apparaître ici la notion de numéro, et donc de nombre, représenté par un certain nombre de signaux logiques.
Il existe plusieurs manières de représenter les nombres en logique binaire :
ÞLe code binaire naturel,Þ le code GRAY (ou binaire réfléchi),Þ le code BCD (Décimal Codé Binaire).
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
Codage des nombres en binaire
96
Lorsque nous utilisons plusieurs variables Booléennes (ou binaires) pour représenter un nombre, on parle de codage en bits (Binary elements).Par convention, les bits sont numérotés et s’écrivent de la façon suivante :
3a 2a 1a 0a : un nombre codé par 4 bits
Bit de poids le plus fort (MSB)
Bit de poids le plus faible (LSB) Comme en décimal
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
Le code binaire naturel
97
a0 Nombre équivalent01
01
00
01
23
11
00
00
1111
00
0
011 1
1
7654
……
……
00
00
0000
a3
a2
a1
0 0 0 81
C’est la numérotation utilisée par défaut dans les tables de vérité.Le nombre représente le n° de la ligne dans la table.
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
Le code de GRAY (binaire réfléchi)
98
a0 Nombre équivalent01
01
00
10
23
11
00
00
1111
11
0
100 0
1
7654
……
……
00
00
0000
a3
a2
a1
1 0 0 81
C’est le code utilisé dans les tableaux de Karnaugh, car entre chaque ligne de la table , seulement une variable change, on a ainsi créé des cases adjacentes dans le tableau de Karnaugh.
Règle de formation du code de Gray :Soit un nombre N en binaire pur, pour obtenir son équivalent : n en binaire réfléchi, il suffit d’effectuer l’opération suivante :
22NNn
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
Construction du code de Gray
99
Règle de formation du code de Gray :Soit un nombre N en binaire pur, pour obtenir son équivalent : n en binaire réfléchi, il suffit d’effectuer l’opération suivante :
22NNn
Exemple : Soit N : 0111, nous avons alors : 2N = 1110,
On effectue le ou exclusif : 0111 1110
-------1001
On effectue la division par 2 : 01002
1001
Nous avons alors, pour N = 0111 en binaire pur, n = 0100 en binaire réfléchi.
Remarque : multiplier par 2 revient à décaler d’un rang vers la gauche, tandis que diviser par 2 revient à décaler d’un rang vers la droite
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
Codage en BCD
100
Le codage en BCD (Binary Coded Decimal), décimale codé en binaire, consiste à ne représenter que les nombres décimaux par paquet de 4 bits (quartet) :
a0
Nombre décimal0
101
00
01
23
11
00
00
1111
00
0
011 1
1
7654
00
00
0000
a3
a2
a1
0 0 0 811 9001
X (10)X (11)
11
0
00
1
11
1111
00
0
011 1
1
X (15)X (14)X (13)X (12)1
111
Puisque nous utilisons 4 bits pour coder , nous avons 16 possibilités de nombre distincts, et en décimale nous n’en utilisons que 10, c’est pourquoi les 6 dernières sont interdites dans le code BCD
6 combinaisons interdites
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
Codage BCD à plusieurs chiffres
101
Pour représenter un nombre décimal à 2 chiffres en BCD, on utilisera 2 paquets de 4 bits (2 quartets)
Exemple : 3 4 décimal
0011 0100
Ce codage est surtout utilisé pour l’affichage des nombres des nombres décimaux, son efficacité n’est pas grande puisqu’il n’utilise pas toutes les possibilités du codage)
Lorsqu’un nombre est représenté par N valeurs binaires, on dit qu’il est codé sur : N bits.On le représente de la façon suivante :
NNombre
Il y a N bits, => donc N signaux binaires => donc N fils électriques
En binaire naturel comme en code gray, un nombre codé sur N bits peut prendre toutes les valeurs comprises entre : 0 et , (soit nombres différents, on en verra un peu plus sur les nombres codés en binaire …
12 N2N
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
La fonction décodage
102
.
.
. N entrées sorties
Le circuit décodeur :
N 2N
Code binaire naturel
On peut donc maintenant établir la table de vérité d’un décodeur (binaire)
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
Décodeur à 1 et 2 entrées
103
0
1e
s0
s1
e001
00
01
11
e1
e01
s101
s010
D’où :es 0
es 1
0
3
es0
s3
2 1 s12 s2
s200
00
10
01
s3
s010
01
00
00
s1 D’où :
010 ees 011 ees 012 ees 013 ees
Décodeur à 1 entrée et 2 sorties
Décodeur à 2 entrées et 4 sorties
=> On peut, bien sur, construire n’importe quel décodeur de la même manière, d’ailleurs une définition usuelle du décodeur est : 1 sortie active parmi les : possibles.
2N
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
Les circuits d’encodage
104
.
.
.
entrées N sorties
L’encodeur
2N
Le circuit d’encodage (l’encodeur) réalise la fonction inverse du décodeur :
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
Encodeurs à 1 et 2 sorties
105
e1
s001
00
01
11
s1
s01
e101
e010
e200
00
10
01
e3
e010
01
00
00
e1
encodeur à 2 entrées et 1 sortie
e0
s
encodeur à 4 entrées et 2 sortiese3
e0
s
e1e2 2
Attention : ne pas représenter toutes les combinaisons possibles !
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
Encodeur prioritaire
106
L’encodeur prioritaire a été créé pour pallier le fait que plusieurs entrées peuvent être actives simultanément :
s001
00
01
11
s1e200
00
1X
01
e3 e01X
01
XX
XX
e1X : signifie que l’on ne tient pas compte de cette valeur (don’t care)
L’entrée : e1 est prioritaire sur : e0
L’entrée : e3 est la plus prioritaire0000 00
Il peut exister la combinaison : aucune entrée active.
Dans ce cas, c’est le constructeur qui décide de la valeur des sorties
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
Multiplexage et démultiplexage
107
Ces circuits très largement utilisés permettent de réaliser des opérations d’aiguillage.
e0
e1
sel
s Si sel = 0 alors s = e0
Si sel = 1 alors s = e1
Ceci est un multiplexeur : 2 vers 1
Pour réaliser la fonction multiplexeur élémentaire, on utilise 2 propriétés intéressantes des portes : ET et OU.
- la valeur 0 est l’élément nul de la fonction ET- la valeur 0 est l’élément neutre de la fonction OU- la valeur 1 est l’élément neutre de la fonction ET
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
Élément neutre
108
Si sel = 0 alors s = 0
Si sel = 1 alors s = e&esel
s0001
se01
00
01
11
sel
≥1e0e1
s0111
se001
00
01
11
e1 Si e0 = 0 alors s = e1
Si e1 = 0 alors s = e0
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
Multiplexeur 2 vers 1
109
0101
ssel0000
e001
00
01
11
e1
0011
1111
01
00
01
11
On peut écrire cette table plus simplement :
0101
ssel0011
e001
XX
XX
01
e1
Encore plus simplement : e
0e1
s01
sel
Tableau de Karnaugh associé :
0 10 0sel
1 0s e1
1 1
10 eselesels e0
&e1
&e0
≥1
s1
sel
La porte ET sert d’interrupteur (de sélecteur)Fakhreddine GHAFFARI
Olivier ROMAIN
Electronique Numérique
Multiplexeurs N vers 1
110
e0
en
bits de sélection
sN entrées
1 seule sortie
e1. . .
2lnln N
Dans le cas général (simple), N est une puissance de 2, ce qui donne : Pour 4 entrées => 2 bits de sélection Pour 8 entrées => 3 bits de sélection Pour 16 entrées => 4 bits de sélection
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
Multiplexeurs 4 vers 1
111
e0
e3
se1e2
000110
11
sel0sel1
e0e1e2e3
ssel00101
e0e0X
XX
XX
XX
e1
sel10011
e2X e
1XX e
2XXe3
e3
S = e0 si sel[1.0] = 00S = e1 si sel[1.0] = 01S = e2 si sel[1.0] = 10S = e3 si sel[1.0] = 11
On peut réaliser facilement ce multiplexeur avec des portes ET, 1 porte OU et 1 décodeur 2 entrées 4 sorties
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
Réalisation du multiplexeur 4 vers 1
112
&
&
&
&
≥1
0 1 2 3
s
sel1
e0
e1
e2
e3
Le décodeur et les portes ET permettent la sélection de l’entrée, tandis que la porte OU assure le mélange
sel0
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
Démultiplexeurs 1 vers N
113
s0
sn
bits de sélection
N sorties
1 seule entrée
s1. . .
2lnln N
L’entrée est dirigée vers la sortie correspondant au numéro présent sur les entrées de sélection.
Fakhreddine GHAFFARI Olivier ROMAIN
Démultiplexeurs 1 vers 4
Electronique Numérique114
s0
sn
sel0
es1
s3
s2
sel1
0000
s3
sel00011
e0101
sel10000
0000
s2 0
001
s1 0
100
s0
0001
0011
0101
1111
0100
0000
0000
En plus compact :
000e
s3
sel00011
sel10000
00e0
s2 0
e00
s1 e
000
s0 010 selseles
011 selseles 012 selseles 013 selseles
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
Démultiplexeurs 1 vers 4 (suite)
115
&
&
&
&
0 1 2 3
s0
sel1
es1
s2
s3
sel0
010 selseles
011 selseles
012 selseles
013 selseles
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
Multiplexeurs / démultiplexeurs parallèles
116
On a vu les équations et les schémas des circuits mux/demux travaillant sur des signaux binaires à 1 bit.
Dans certains cas, on désire réaliser les fonctions mux/demux travaillant sur des mots de plusieurs bits :
A
sel0
EB
D
C
sel1
N
N
N
N
N
E est un mot d’entrée de N bits, c’est-à-dire composé des bits : EN, …., E2, E1, E0A est un mot de sortie de N bits, c’est-à-dire composé des bits : AN, …., A2, A1, A0Il en est de même pour les mots de sortie : B, C et D
000e
s3
sel00011
sel10000
00e0
s2 0
e00
s1 e
000
s0 010 selseles
011 selseles 012 selseles 013 selseles
Rappel: 1 demux 1 vers 4 sur 1 bit,
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique117
000E
Dsel00011
sel10000
00E0
C0E00
BE000
A 01 selselEA 01 selselEB 01 selselEC
01 selselED
Dans ce cas, le démultiplexeur possède la table de vérité suivante :
01 selselEA 0100 selselEA 0111 selselEA 0122 selselEA
01 selselENAN
Se traduit par :
Fakhreddine GHAFFARI Olivier ROMAIN
Électronique Numérique
Démultiplexeur 1 vers 4 mots de N bits
118
Un démultiplexeur 1 vers 4 à 4 bits est construit avec 4 démultiplexeurs 1 vers 4 à 1 bit en parallèle (les entrées de sélection étant les mêmes).
sel0sel1
D3 C3 B3 A3
sel0sel1
D2 C2 B2 A2
sel0sel1
D1 C1 B1 A1
sel0sel1
D0 C0 B0 A0
E3 E2 E1 E0
E
D3 D2 D1 D0
D
C3 C2 C1 C0
C
B3 B2 B1 B0
B
A3 A2 A1 A0
A
Ce qui est vrai pour le circuit démultiplexeur est valable de la même manière avec les multiplexeurs.
1 Mux 16 bits 8 vers 1 = 16 Mux 1 bit 8 vers 1.
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
Chapitre 3 : les circuits arithmétiques
119
L’algèbre de Boole (algèbre binaire) et les portes logiques élémentaires permettent la réalisation des circuits qui effectuent des calculs sur des nombres.
=> c’est le cas, naturellement, de n’importe quel microprocesseur dont le rôle, entre autre, est d’effectuer des calculs.
=> Ces calculs s’effectuent sur des nombres mathématiques qu’il est donc nécessaire de représenter en binaire.
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
Calculs algébriques sur entiers positifs
120
Sur les représentations binaires naturelles des entiers positifs tous les calculs algébriques sont possibles :
Addition, soustraction, multiplication et division
Exemple : 2.12.02.12.02.02.137 012345
)10( 2.12.12.12.02.12.023 012345
)10(
2.22.12.22.02.12.1 012345)10( somme
Problème : En base 2, le chiffre 2 n’existe pas, pour pallier ce problème, on va propager vers la gauche une éventuelle retenue => c’est ainsi que vous avez appris à compter à l’école primaire !
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
Exemple d’addition
121
011
01
11
00
1 1 101
10
0 037 => 100101 =>23 => 010111 =>
001111
Retenue =>
+
=
Méthode : faire l’addition bit à bit, en commençant par le LSB et en propageant s’il y a lieu, la retenue sur le rang supérieur.
Effectuer l’opération : a + b = c revient à faire l’opération suivante : (a + b) + ri = ri + b + a = c
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
Opération de multiplication
122
0
11
01
10
0 0101
101
*
=000+
+
110 11
00 0
Exemple :3 =>
* 5 =>
Remarque :Si A et B sont au format : N bits, alors le produit A*B sera au format : 2N bits
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
Opération de soustraction
123
0
11
01
101 0
5 => 101 =>3 => 011 =>
010
Retenue =>-
=
La retenue de soustraction qui se propage vers le rang supérieur nomme : borrow
Nous verrons plus tard, la réalisation de la division des entiers …
Lorsqu’on réalise des soustractions, il se peut que le résultat soit négatif,=> Problème => comment coder des nombres négatifs ?
Effectuer l’opération : a - b = c revient à faire l’opération suivante : (a - b) - ri = a - b - ri = c
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
Le circuit additionneur
124
L’additionneur élémentaire (demi additionneur)
On veut faire l’opération : a + b = c, cela donne la table de vérité suivante :
011?
cb01
00
01
11
aPour la dernière ligne de cette table de vérité, on voit que le résultat n’est pas suffisant => il faut rajouter une sortie qui représente la retenue, a propager sur le rang d’indice supérieur
0001
rb01
00
01
11
a0110
c
On doit donc rajouter la sortie : retenue (r) , ce qui donne la table de vérité suivante :
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
Demi additionneur
125
A partir de la table de vérité, on obtient aisément les équations du circuit :
bac bar D’où le schéma de portes :
=1ab
c
& r
Remarque : ce circuit est un demi additionneur 1 bit, c’est pourquoi on va dès maintenant indicer les entrées et les sorties
iii bac iii bar 1
=1
&
iaib
i
1irCe circuit possède une retenue sortante, pour construire un additionneur Nbits, ce circuit doit donc posséder une retenue entrante, d’où le nom d’additionneur complet.
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
Additionneur 1 bit complet
126
L’opération effectuée est maintenant :
iiii rba
Table de vérité :
0001
ri+1ai
01
00
01
11
bi
0110
i
0111
01
00
01
11
1001
ri00001111
0 11 0
ri0 1
i ai
1 0
bi
0 00 1
ri1 0
ri+1
ai
1 1
bi
iiii rba
iiii babiairr
1
La règle de Karnaugh n’a pas été utilisée entièrement, de façon a réutiliser une porte existante dans l’autre sortie et ainsi optimiser le circuit final
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
Schéma de l’additionneur 1 bit complet
127
=1
>=1
iaib i
1ir
=1ir
&
&
D’où le symbole générique : i
1irir
ibiaAdd1bit
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
Additionneur Nbits
128
Pour réaliser un additionneur N bits, il suffit d’utiliser N additionneurs 1 bit (complet)
i
1irir
ibiaAdd1b
iti
1irir
ibiaAdd1b
iti
1irir
ibiaAdd1b
iti
1irir
ibiaAdd1b
it0a0b
1a1b
2a2b
1na1nb
0 1 2 …..
…..« 0 »
1n
nr
Remarque : dans un additionneur Nbits, on ne peut pas calculer la dernière sortie (bit de poids fort) sans avoir au préalable calculer toutes les autres sorties !!!
=> Le chemin parcouru par la retenue propagée est le chemin critique
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
soustracteur
129
L’additionneur complet fonctionne indifféremment avec des nombres strictement positifs comme avec des nombres signés en CC2.
Cette particularité nous permet donc de faire des soustractions à partir d’additionneurs. BABA
Or : -B en CC2 s’exprime sous la forme : (CC2 = CC1 + 1)
1 BB
Faire la soustraction : A – B revient à faire : 1BA
Pour faire une soustraction, il suffit donc de rentrer une retenue (la 1ière) à « 1 » et d’inverser tous les bits du 2ième opérande
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
soustracteur N bits
130
i
1irir
ibiaAdd1b
iti
1irir
ibiaAdd1b
iti
1irir
ibiaAdd1b
iti
1irir
ibiaAdd1b
it0a0b
1a 2a 1na0 1 2 …..
…..« 1 »
1n
nr1b 2b 1nb
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
Additionneur / soustracteur N bits
131
L’objectif maintenant est d’obtenir un opérateur programmable, c’est capable de faire addition ou soustraction à la demande.
Pour cela on va utiliser des portes XOR, pour les entrées du 2ième opérande et la retenue entrante
=1aADD/sous
cC = a si la cde ADD/sous est à « 0 »
C = si la cde ADD/sous est à « 1 »a
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
Additionneur / soustracteur N bits
132
i
1irir
ibiaAdd1bit2a 2S
2b=1
i
1irir
ibiaAdd1bit
1a 1S1b
=1
i
1irir
ibiaAdd1bit0a 0S
0b=1
=1
ADD/sous
« 0 »
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
Le circuit multiplicateur
133
Une multiplication, en binaire, peut se faire comme en décimal, par des additions avec décalages successifs :
0
11
01
10
0 0101
101
*
=000+
+
110 11
00 0
53
00 0
Insertion d’1 zéro à droite => correspond à un décalage gauche pour le rang : 21
Insertion de 2 zéros à droite => correspond à 2 décalage gauche pour le rang : 22
Retenue propagée, de l’addition
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
La multiplication, d’une manière générale
134
Soient les mots de 3 bits : A[2..0] et B[2..0], alors le produit :
222222 00
11
22
00
11
22 bbbaaaBA
2222 2020
121
222 bababaBA
2222 1010
111
212 bababa
2222 0000
101
202 bababa
C’est bien une somme à 3 termes (mots de 3 bits) :
- Chaque terme est égal au multiplicande si bi = « 1 »
à « 0 » si bi = « 0 »
- Chaque terme est multiplié par : => ceci correspond à un décalage gauche 2i
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
Exemple de multiplicateur 3 bits
135
0a1a2a0b1b2b
00.ab10.ab20.ab01.ab11.ab21.ab
02.ab12.ab22.ab0s1s2s3s4s5s
0r1r2r3r4r5r
+
01.ab10.ab
+
11.ab20.ab
+
21.ab0
+
02.ab
+
12.ab
+
22.ab
00.ab
0s1s2s3s4s5s
Fakhreddine GHAFFARI Olivier ROMAIN
Multiplicateur en valeur signée
Electronique Numérique136
0a1a2a0b1b2b
00.ab10.ab20.ab01.ab11.ab21.ab
02.ab12.ab22.ab0s1s2s3s4s5s
0r1r2r3r4r5r
+
01.ab10.ab
+
11.ab0.2 ba
+
1.2 ba1
+
02.ab
+
12.ab
+
22.ab
00.ab
0s1s2s3s4s5s
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
La logique séquentielle
137
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
La logique séquentielle
138
Les circuits que nous avons vu jusqu’à maintenant sont des circuits que l’on dit « combinatoires », c’est-a-dire que leurs sorties ne dépendent que des entrées
Circuit combinat
oire
E0E1…
..
S = f(ei)
Ces circuits ne suffisent pas à réaliser tous les systèmes, quelquefois nous avons besoin de fabriquer des circuits dont les sorties dépendent des entrées ET de l’état précédent du système.
Circuit séquenti
el
AB S
S = 1 si A change avant B
S = 0 si B change avant A
En général, la sortie dépend des entrées et des valeurs précédentes de la sortie elle-même.
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
Logique séquentielle (suite)
139
Circuit séquenti
el
AB S
=> Les sorties sont rebouclées en entrée !
Bien évidemment, les sorties rebouclées représentent l’état précédent du système , notez que ce rebouclage ne peut pas être instantané, c’est pourquoi on peut représenter un système séquentiel comme cela :
Circuit séquenti
el
AB S
Delta T
Ce delta T, indique le décalage temporel obligatoire entre la sortie à un instant donné, et cette même sortie à un instant précédent.
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
L’élément de base : la bascule asynchrone
140
Définition :
Une bascule est définie par les 3 fonctionnalités suivantes : Une fonctionnalité qui traduit la mise à « 0 » de la sortie, notée : MA0, Une fonctionnalité qui traduit la mise à « 1 » de la sortie, notée : MA1, Une fonctionnalité de mémorisation de la sortie, notée : MEMO, dans ce cas l’état de la sortie à 1 instant donné : Qt est égal à l’état précédent : Qt-1
Ces fonctionnalités seront mises en œuvre en fonction des informations présentes sur les entrées
Une bascule possède 2 sorties ( ) qui doivent être complémentaires, alors que la mémoire n’en possède qu’une.
QQ et
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
Bascule R/S Nand
141
&
&
Q1
Q2
A
B
Schéma : Avant de faire la table de vérité, détaillant le fonctionnement, on peut remarquer que si les entrées A et B sont à : "0", alors les sorties Q1 et Q2 seront au même état ("1") et n'auront aucune influence sur le fonctionnement de cette bascule. On dit, dans ce cas que le niveau actif des entrées est : 0, en conséquence de quoi on notera les entrées barrées.1
100
Q1B01
00
01
11
A1011
Q2
11
11
01
00
Q1=Q2 => état interditFonction : MA1 (sur Q1)Fonction : MA0 (sur Q1)
Fonction : MEMO
observations
Fonction : MA1Fonction : MEMO
Affectation des entrées :• Quand A = 0, alors il y a : MA1, on attribue cette fonction à l’entrée A et on la note : S/ ( S/ car entrée active à "0" ).• Quand B = 0, alors il y a : MA0, on attribue cette fonction à l’entrée B et on la note : R/ ( R/ car entrée active à "0" ).
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
Récapitulatif : bascule R/S/ (nand)
142
S/
R/
Q
Q/
Symbole :
• quand S/ actif et R/ inactif -> fonction mise à "1"• quand R/ actif et S/ inactif -> fonction mise à "0"
• quand R/ actif et S/ actif -> état interdit
• quand R/ inactif et S/ inactif -> fonction mémoire&
Pour représenter le fonctionnement de la bascule, on utilise très fréquemment les chronogrammes
R/
S/
Q
Q/
Etat non défini : UNDEFINED (U)
MA0 MA1 On doit remarquer que l’on a jamais ensemble les entrées actives (ici : à « 0 »)
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
Bascule RS (nor)
143
Schéma :
Q1
Q2
A
B
>=1
>=1
Avant de faire la table de vérité, détaillant le fonctionnement, on peut remarquer que si les entrées A et B sont à : « 1 », alors les sorties Q1 et Q2 seront au même état (« 0 ») et n'auront aucune influence sur le fonctionnement de cette bascule. On dit, dans ce cas que le niveau actif des entrées est : 1, en conséquence de quoi on notera les entrées vraies.
0100
Q1B11
10
00
10
A0011
Q2
11
10
00
00
Q1=Q2 => état interditFonction : MA1 (sur Q1)Fonction : MA0 (sur Q1)
Fonction : MEMO
observations
Fonction : MA1Fonction : MEMO
Affectation des entrées :• Quand A = 1, alors il y a : MA0, on attribue cette fonction à l’entrée A et on la note : R• Quand B = 1, alors il y a : MA1, on attribue cette fonction à l’entrée B et on la note : S
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
Récapitulatif : bascule RS (nor)
144
Q
Q/
Symbole :
• quand S actif et R inactif -> fonction mise à "1"• quand R actif et S inactif -> fonction mise à "0"
• quand R actif et S actif -> état interdit
• quand R inactif et S inactif -> fonction mémoire
R
S>=1
Pour représenter le fonctionnement de la bascule, on utilise très fréquemment les chronogrammes
R
S
Q
Q/
Etat non défini : UNDEFINED (U)
MA0 MA1 On doit remarquer que l’on a jamais ensemble les entrées actives (ici : à « 1 »)
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
Le cas interdit => dommage !
145
Pour éviter d’avoir à se poser la question sur l’état interdit, on va créer une nouvelle bascule, dont l’état interdit sera remplacé par une nouvelle fonctionnalité : TOOGLE (changement d’état) => c’est la bascule JK
Schéma :
Q
Q/
K
J
>=1
>=1
&
&
Les portes : AND, en entrée, permettent d’éviter les combinaisons interdites en entrée de la bascule RS
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
La bascule JK
146
Q
Q/
K
J
>=1
>=1
&
&
Rint
Sint
0001
RintJ11
00
11
11
K1010
01
00
11
00
Sint Qt/
00
11
01
10
Qt
11
00
0101
Qt-1
01
00
00
00
00
MA1MEMOMA1MA0
fonction
MEMOMA0
MEMOMEMO
11
00
01
On peut voir dans cette table de vérité, que les entrées internes de la bascule RS ne sont jamais simultanément égales à « 1 », même dans le cas ou les entrées (J et K) de la bascule JK le sont !
On doit également remarquer, que dans le cas ou les entrées J et K sont actives (à « 1 »), la sortie Qt devient le complément d’elle même à l’instant précédent (Qt-1)
On a donc remplacé, dans la bascule JK, l’état interdit de la bascule RS, par un changement d’état => Qt = (Qt-1)/
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
La bascule T
147
Si on relie ensemble les entrées J et K, d’une bascule JK, on obtient la bascule : T (Toggle)
01
T Qt/
Qt-1
Qt
Qt-1/
Qt-1/
Qt-1
fonctionMEMO TOGGLE
Q
Q/
T>=1
>=1
&
&
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
Les bascules synchrones
148
Les systèmes séquentiels introduisent la notion d’état futur et d’état passé => donc la notion du temps.
On est donc amené à introduire le concept d’horloge => c’est le rythme du système
0
1Horloge
période
Une horloge est un signal binaire dont les changements d’état sont réguliers dans le temps (périodique => notion de fréquence et de période).
La période de l’horloge donne l’unité de temps élémentaire, du système.
Les systèmes électroniques séquentiels synchrones sont des systèmes dont les changements sont « alignés » (synchronisés) sur une horloge
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
La bascule « D Latch »
149
Q
Q/
H
D
>=1
>=1&
&1
• si H = 0 alors les entrées de la bascule RS sont à 0 => la fonction de la bascule est : mémorisation (Qt = Qt-1)
Q
Q/
Symbole :
D
H>=1
• si H = 1 alors on utilise la bascule RS comme un dispositif à changement d’état
X0
D Qt/
Qt-1
Qt
0
Qt-1/
1
fonctionMEMO MA0
01
H
1 1 0
MA1
1
La sortie recopie l’entrée : D, lorsque le signal d’horloge est à « 1 », sinon elle mémorise l’état précédent
Ce sont les valeurs (0 ou 1) de l’horloge qui valident le fonctionnement de la bascule => bascule active sur un niveau
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
Bascule synchronisée sur front
150
Pour réaliser une bascule qui réagit sur front (montant ou descendant) de l’horloge , on va cascader 2 bascules D Latch, qui réagiront sur des niveaux différents de l’horloge, comme indiqué ci-après :
H
D
>=1
>=1&
&1Q
Q/
>=1
>=1&
&
1
maitre esclave
Une bascule D maitre, sensible au niveau 0 de H
Une bascule D esclave, sensible au niveau 1 de H
Une bascule D, qui réagit sur front montantFakhreddine GHAFFARI
Olivier ROMAIN
Electronique Numérique
Bascule D « positive Edge Triggered », avec portes Nand
151
H
D &
&1Q
Q/&
&
1
maitre esclave
&
&
&
&
D
Q1
Q2
0
1H
La sortie Q1 recopie l’entrée D lorsque H = 0,La sortie Q2 recopie Q1 lorsque H = 1
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
Entrées de forçage asynchrone
152
On trouve très souvent sur les bascules synchrones, des entrées de forçage, qui permettent de mettre à « 1 » ou à « 0 », en priorité sur l’horloge, c’est pourquoi on parle d’entrées de forçage asynchrone => pour cela il faut agir sur les portes de sortie des bascules (et non pas sur les portes de synchronisation), => l ’entrée de forçage à « 0 » s’appelle : RESET l ’entrée de forçage à « 1 » s’appelle : SET
H
D&
&1 Q
Q/
&
1
maitre esclave
&
&&
&
&
RESET/
SET/
Q
Q/
Symbole :
D
H
Set/
Reset/
Attention : il ne faut pas rendre actives simultanément les entrées de forçage asynchrones
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
Synthèse bascule D sur front
153
Q
Q/
D
H
Q
Q/
D
H
X
0
D Qt/
Qt-1
Qt
0
Qt-1/
1
fonctionMEMO MA0
0
H
1 1 0
MA1
X Qt-1 Qt-1/
MEMO
1Par verrouillage esclavePar verrouillage maitre
X
0
D Qt/
Qt-1
Qt
0
Qt-1/
1
fonctionMEMO MA0
0
H
1 1 0
MA1
X Qt-1 Qt-1/
MEMO
1Par verrouillage maitrePar verrouillage esclave
Active sur front montant
Active sur front Descendant
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
Bascule JK sur front
154
0
0
K Qt/
Qt-1
Qt
0
Qt-1/
1
fonction
MA0
0
1
J
11 0
MA1
1
1
Qt-1/ Qt-1
TOGGLE
0
Par verrouillage maitre
Par verrouillage esclave
Q
Q/
J
H
K
0
H
1
MEMO
X Qt-1 Qt-1/XXX
0110
MEMO Qt-1 Qt-1/
MEMO
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
Application : diviseur de fréquence par 2
155
La figure suivante montre le montage à effectuer pour transformer une bascule D sur front (Edge Triggered), en diviseur de fréquence par 2 :
Q
Q/
D
Hclock Q/
Q
La donnée D mémorisée en sortie Q lors d’un front montant de l’horloge est Q/ (Q/ reliée à D)=> Quelque soit l’état logique de la sortie Q avant le top d’horloge, la bascule passera à l’état complémentaire lors du front montant d’horloge
Q/,D
Q
0
1H
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
Chronogrammes des systèmes synchrones
156
Comme on peut le voir sur les chronogrammes précédents, il faut respecter certaines conditions pour que le système fonctionne correctement.
Ces conditions sont : Le pré-positionnement (setup time) de la donnée avant le front actif => temps pendant lequel la donnée doit rester stable.Le maintien de la donnée (hold time) après le front actif => temps pendant lequel la donnée doit être maintenue au même niveau
D
Q
0
1H
ts
td
th
Zoom sur une transition : Ts : temps de pré-positionnement de la donnée : Tsetup
Th : temps de maintien de la donnée : Thold
Td : temps de propagation (retard) de la sortie : Tdelay
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
Les registres
157
Un registre est un élément de mémorisation. Le registre possède une entrée horloge qui synchronise ses changements d’états :
QD
H
La bascule D est un élément de mémorisation sur front d’horloge, de la valeur de l’entrée : D
Ce registre recopie, sur tous les fronts montant de l’horloge H les valeurs de D présents avant les fronts
Pour une utilisation programmable, il faut pouvoir sélectionner les fronts qui seront actifs, pour cela :
QD
H&H
CE
On ajoute une entrée (CE : Clock Enable), afin de valider l’entrée Horloge (H)
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
Registre avec validation
158
Si CE = 0 => pas de fronts d’horlogeSi CE = 1 => fonctionnement normal
D
CE
0
1H
Q
Fakhreddine GHAFFARI Olivier ROMAIN
Registre N bits
Electronique Numérique159
On réalise des registres N bits, en utilisant N bascules en parallèle, avec : même horloge,même entrée de validation (CE)
QD
HCE
QD
HCE
QD
HCE
QD
HCE
…..
D0
D1
D2
Dn-1
Q0
Q1
Q2
Qn-1
HCE
=> c’est de cette manière que sont réalisés les éléments de mémorisation à l’intérieur d’un microprocesseur (les registres)
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
Registre à décalage
160
Un registre à décalage est un ensemble de N bascules D (synchrones, sur front), associées en série (en cascade), selon le schéma suivant :
QD
H
QD
H
QD
H
QD
H
D
H
………………
Q0 Q1 Q2
Qn-1
L’entrée : D, va propager de bascule en bascule, à chaque top d’horloge
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
Exemple : Registre à décalage droite 4 bits
161
QD
H
QD
H
QD
H
QD
H
D
H
Q0 Q1 Q2
Q3
Q0
Q1
0
1D
Q2
0
1H
Q3val 0 1 2 4 8
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
Exemple : Registre à décalage gauche 4 bits
162
QD
H
QD
H
QD
H
QD
H
D
H
Q0 Q1 Q2 Q3
Q3
Q2
0
1D
Q1
0
1H
Q0
val 0 8 4 2 1
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
Les compteurs
163
Un compteur est un circuit séquentiel qui permet de dénombrer des impulsions appliquées sur son entrée d’horloge et de transférer aux sortie l’information binaire
Þ à chaque impulsion : changement d’état,Þ entre 2 impulsions : état stable
Q3MR
HCE Q2
Q1
Q0
Symbole d’un compteur 4 bits
MR : Master ResetCE : Count Enable => sert à valider le circuit ou à interrompre le comptage
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
Compteur asynchrone
164
La particularité des compteurs asynchrones est que la sortie d'une bascule devient en même temps une entrée de la bascule suivante, d'où un temps de propagation mal déterminé, qui se cumule sur la dernière sortie et de plus il est possible de passer par des états interdits lors d'un changement d’état désiré. Q
Q/D
HQ
Q/D
HQ
Q/D
H…….
Q0 Q1 Qn-1Qn-2
CK
En conséquence, nous n’étudierons pas la synthèse des compteurs asynchrones, ceux-ci étant de moins en moins utilisés dans l'industrie (vous aurez confirmation de cela dans le cours : FPGA).
Q3
Q2
Q1
01
CK
Q0
val 0 1 2 3 4 5 6 7 8 7 8467
CK
Q0Q1Q2Q3val
Loupe sur la transition : 7=>8
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
Compteur synchrone
165
Structure d’un compteur synchrone : N bascules pour N sorties,Les entrées des bascules sont calculées en fonction des sorties à l’état précédentBien sur, toutes les bascules réagissent avec la même horloge
Q
Q/
JHK
??
??….
….
Q
Q/
JHK
??
??….
….
Qi Qi+1
H
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
Synthèse d’un compteur synchrone
166
Exemple d'un compteur binaire -> décimal• -> Il y a donc une séquence de : 10, il y aura donc 4 bascules ( il reste 6 cases dans le
tableau de Karnaugh, que l'on pourra utiliser comme on veut ( 0 ou 1 ), on note d'ailleurs : dans cette case ).
• -> on exprime les Ji et Ki en fonction de l’évolution désirée des sorties : QA… QD.
01X
XX00
XX0
01XX
0
1X
X00
X
X0
1XX
0
1XX
X
X01
JA KA JB KB JC KC JD KD
00
1001100
0101010101
QB QA
0000000011
0000111100
QD QC
1
1X1X1X1X1
X1X1X1X1X
X 1
X01
1XX
0 X0 X
X 0X 0
0 X0 X0 X0 X0 X0 X
Sachant que : X représente n’importe quelle valeur, il n’est peut être pas nécessaire de faire un tableau de Karnaugh pour JA et KA
JA = KA = 1
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
Synthèse (suite)
167
0 1
JB
0 1
D
x xx x
A
0 0
B
Cx x
KB
x x
D
1 01 0
A
x xAB QK
B
C
0 0
JC
x x
D
1 0x x
A
0 0BAC QQJ
B
Cx x
KC
0 0
D
x x1 0
A
x xBAC QQK
B
C
DA QQJB
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
Synthèse (suite 2)
168
0 0JD
0 0
D
0 01 0
A
x xCBAD QQQJ
B
Cx x
KD
x x
D
x xx x
A
0 1AD QK
B
C
Q
Q/
JHK
Q
Q/
JHK
&
QA QB
H
1
1
Q
Q/
JHK
QC
Q
Q/
JHK
&
QD
&
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
Autre méthode de synthèse
169
La méthode de MARCUS, consiste à introduire une variable de commutation, notée : Xi, qui prendra la valeur « 1 » en cas de changement, sinon « 0 »
Qt Qt+1 Xi0 0 00 1 11 0 1
1 1 0
Xi est donc formé d'un OU exclusif entre Qt et Qt+1.• -> on choisit de faire la synthèse du compteur ˆ l'aide de bascules JKQt+1 = J•Qt/ + K/•Qt • -> on ramène tout ˆ l'instant : t .Xi = Qt •Qt+1/ + Qt/•Qt+1
= Qt •( J•Qt/ + K/•Qt )/ + Qt/•( J•Qt/ + K/•Qt )= Qt •( (J•Qt/)/ • (K/•Qt)/ ) + J•Qt/ = Qt •( J/+Qt) • (K+Qt/) ) + J•Qt/= ( J/•Qt + Qt ) • (K+Qt/) + J•Qt/ = J/•Qt•K + Qt•K + J•Qt/
Xi = K•Qt + J•Qt/
Méthode ( dite de : MARCUS )• -> en fonction de la séquence désirée, remplir un tableau des : Xi = f(Qi)• -> ne pas forcément simplifier l'expression des Xi, il faut veiller à avoir dans l'expression de Xi, la
variable : Qi et également la variable : Qi/
Exemple : on va refaire par cette méthode le compteur binaire => décimal
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
Synthèse par la méthode de MARCUS
170
XA
00
1001100
0101010101
QB QA
0000000011
0000111100
QD QC
1
1111111111
XB0101010100
XC0001000100
XD0000000101
XA = 1 Xi = K•Qt + J•Qt/
XA = KA•QA + JA•QA/
JA = KA = 1
XB = QA Xi = K•Qt + J•Qt/
XB = QA•QB + QA•QB/
JB = KB = QA
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
Synthèse Marcus (suite)
171
0 0XC
0 0
D
1 01 0
A
0 0CBACBAC QQQQQQX
B
C0 0
KD
0 0
D
0 01 0
A
0 1DCBADAD QQQQQQX
B
C
Bien évidemment le schéma est rigoureusement identique => on aura pu observer une plus grande efficacité et rapidité !
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
Compteur en anneau
172
C’est un compteur spécifique, utilisant la structure d’un registre à décalage, afin de propager un « 1 »
Un compteur en anneau, composé de N bascules pourra générer N états distincts.
Attention : un tel compteur doit être initialisé sur une des valeurs du cycle.
QD
H
QD
H
QD
H
QD
H
H
Q0 Q1 Q2 Q3
La séquence de ce compteur sera : 0001 (1), 0010 (2), 0100 (4), 1000 (8).
Q3
Q2
Q1
01CK
Q0
val 0 1 2 4 8 1 2 4 8
>=1
Q1Q2Q3
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique173
Compteur Jonhson
Electronique Numérique173
C’est un compteur spécifique, utilisant la structure d’un registre à décalage, afin de propager un « 0 »
Un compteur Jonhson, composé de N bascules pourra générer 2.N états distincts.
Attention : un tel compteur doit être initialisé sur une des valeurs du cycle.
QD
H
QD
H
QD
H
QD
H
H
Q0 Q1 Q2 Q3
La séquence de ce compteur sera : 0001, 0011, 0111, 1111, 1110, 1100, 1000, 0000.
Q3
Q2
Q1
01CK
Q0
val 0 1 3 7 15 14 12 8 0
Q/
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
Système de prise en compte événementielle
174
Ce système doit se déclencher sur un événement (asynchrone), et doit perdurer jusqu’à ce qu’un autre événement (interne au système) se produise.
Exemple : quand un événement externe se produit, un signal reste valide tant que 5 « coups d’horloge » ne sont pas apparus.
Signal
01CK
event
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
Prise en compte de l’événement
175
L’événement est par définition asynchrone, il faut donc commencer par le synchroniser sur l’horloge de référence du système , pour cela 2 possibilités :
QD
H
event
CK
Qsynchro Cette méthode peut poser des problèmes, de setup time ou de hold time
C’est pourquoi il vaut mieux privilégier cette 2ième méthode :
QD
H CK
Qsynchro« 1 »QD
H
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
Validité par comptage interne
176
Une fois que l’événement est synchronisé il faut autoriser un compteur et des que le compteur a atteint la valeur désirée => il y a reset de la bascule de prise en compte de l’événement et du compteur
Compteur 4 bits
Bloc combinat
oire( = 5)
MRCE
HQ0
Q3
CK
Qsynchro
« 0 »
FinCpt
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
Prise en compte événement (suite)
177
event
QD
H CK
Qsynchro« 1 »QD
HCompteur 4 bits
Bloc combinat
oire( = 5)
MRCE
HQ0
Q3
CK
FinCpt
reset reset
Qsynchro
01CK
event
FinCpt
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
Verrouillage événement interne
178
On peut voir sur ces chronogrammes, que le signal FinCpt, ne dure que très peu (1 temps de propagation), ceci n’est jamais très bon dans un système séquentiel, aussi il vaut mieux verrouiller ce signal :
CK
QD
H CK
FinCptQD
Hreset reset
Vers : compteur et bascules
Attention : dans ce cas, l’impulsion de reset dure quasiment un période d’horloge => comptage – 1 !!
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
Système complet
179
event
QD
H CK
Qsynchro« 1 »QD
HCompteur 4 bits
Bloc combinat
oire( = 5)
MRCE
HQ0
Q3
CK
FinCpt
reset reset
Q D
Hreset
Q D
Hreset
CK CK
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
Système événementiel : autre solution
180
Dans ce système, l’événement interne déclenchant la fin de la séquence est réalisé à partir d’un compteur => on peut très bien imaginer un registre à décalage , pour dénombrer les périodes d’horloge nécessaires, de plus dans ce cas, les signaux intermédiaires sont disponibles pour une utilisation …
event
QD
H CK
Qsynchro« 1 »QD
H
registre
à décala
ge
MRDin
HQ0
Qn-1
CK
FinCpt
reset reset
Q D
Hreset
Q D
Hreset
CK CK
Signaux internes
Fakhreddine GHAFFARI Olivier ROMAIN
Electronique Numérique
En bref :
181
A vous de « jouer »
Fakhreddine GHAFFARI Olivier ROMAIN