Vous êtes sur la page 1sur 40

Unité d’Enseignement

"Systèmes Numériques"
Partie I :
"Logique Combinatoire et Séquentielle"

Formation Initiale 2022-2023

Benoît DECOUX
benoit.decoux@esigelec.fr
CISE – F1-200

1
Cours de Logique combinatoire et séquentielle

Plan
Introduction
Représentation binaire
Codage binaire naturel
Codage binaire réfléchi : code de Gray
Bases de représentation
Première approche de l’arithmétique binaire : addition
Liens avec autres domaines
Logique combinatoire
Fonctions logiques de base
Fonctions logiques combinatoires
Analyse de circuits logiques combinatoires
Logique séquentielle
Fonctions de base de la logique séquentielle
Registres, compteurs, blocs mémoire
Analyse de circuits logiques séquentiels par graphe d’état
Conception de systèmes logiques
Représentation des fonctions logiques
Algèbre de Boole
Simplification des fonctions logiques
Synthèse de systèmes combinatoires
Synthèse de systèmes séquentiels
Représentation des nombres et calcul
Codage binaire des nombres
Arithmétique binaire (addition et multiplication)
2
Cours de Logique combinatoire et séquentielle

Unité d’Enseignement
"Systèmes Numériques"

Partie I :
Logique combinatoire et séquentielle
- Travail encadré (cours/TD/TP) : 32h (resp. 8/16/8h)
- Évaluation : DS (2h) + CCTP
- Travail personnel (exercices d’entraînement sur ENT)

Partie II :
Développement en électronique embarquée
- Travail encadré (cours/TD-TP) : 12h (4h+8h)
- Evaluation : contrôle (1h)

3
Cours de Logique combinatoire et séquentielle

Objectifs de la partie I
Maîtrise de :
 la synthèse de systèmes logiques combinatoires : passage d’un
raisonnement à la fonction logique combinatoire correspondante, sa
simplification et la réalisation du circuit logique (en simulation)
 la synthèse de systèmes logiques séquentiels : passage d’un besoin,
décrit sous forme d’un graphe d’états, à la fonction logique
séquentielle correspondante, puis la réalisation du circuit logique (en
simulation)
 certains éléments liés aux systèmes de calcul numérique :
- représentation des données (dans les bases 2, 10 et 16),
- codage binaire des nombres entiers (positifs et négatifs) et des
nombres réels,
- opérations arithmétiques (+ et ×),
- mémorisation et transfert de données
4
Cours de Logique combinatoire et séquentielle

Introduction (1/2)

Logique à 2 états :
VRAI et FAUX
codés par (respectivement) :
1 et 0

George Boole
Les variables utilisées sont appelées booléennes. (1815-1864)

Exemple de système booléen : interrupteur commandant une lampe.

Le monde numérique est basé sur des éléments booléens.

5
Cours de Logique combinatoire et séquentielle

Introduction (2/2)

Les systèmes logiques se répartissent en 2 grandes catégories :

- Les systèmes combinatoires


- le temps n’intervient pas dans le système
- les sorties ne dépendent que des entrées
- basés sur des portes logiques
- exemple : un additionneur

- Les systèmes séquentiels


- le temps intervient dans le système
- les sorties dépendent de leur valeur précédente et des entrées
- nécessitent donc des éléments de mémorisation
- basés sur des portes logiques et des bascules
- exemple : un chronomètre numérique

6
Cours de Logique combinatoire et séquentielle

Représentation binaire
Codage binaire naturel
Introduction : notion de base
Les nombres décimaux qu’on manipule dans la vie de tous
les jours sont exprimés en base 10.
Base 10 signifie que le codage utilise 10 chiffres différents
(en l’occurrence, de 0 à 9).
On peut exprimer tout nombre décimal sous forme d’une
somme de puissances de 10, pondérées par les chiffres du
nombre.
Exemple : 201910=2×103+0×102+1×101+9×100

On définit les notions de poids et de rang :


- le rang d’un chiffre est l’indice de sa position dans le
nombre (= la puissance de 10)
- son poids est "10 puissance rang"

Exemple dans le nombre ci-dessus :


- rang du chiffre 2 : 3
- poids : 1000
7
Cours de Logique combinatoire et séquentielle

Représentation binaire
Codage binaire naturel
Pour les nombres binaires (en base 2 donc), il s’agit du même
principe de codage qu’en base 10, excepté le fait que pour
chaque chiffre il n’y a que 2 valeurs possibles : 0 ou 1.
Pour chacun des éléments du nombre binaire, on ne parle
alors pas de chiffre mais de "bit" (pour "binary digit").

Exemple : 2019 = 1024 + 512 + 256 + 128 + 64 + 32 + 2 + 1

soit : 201910 = 1×210+1×29+1×28+1×27+1×26


+1×25+1×21+1×20
soit, en écriture binaire :
201910 = 111 1110 00112
bit de poids fort bit de poids faible
(Most Significant Bit : MSB(*)) (Least Significant bit : LSB)
(*) le plus à gauche, sur les N bits utilisés pour la représentation

→ on parle de codage binaire naturel


Les notions de rang et de poids sont les mêmes qu’en décimal.
Par exemple, le rang du 3e bit en partant de la droite est 2 et
son poids est 4. 8
Cours de Logique combinatoire et séquentielle

Représentation binaire
Codage binaire naturel

Avec le même principe de codage, par exemple sur 4 bits,


on va pouvoir coder
binaire décimal
0000 0
● 24 = 16 valeurs
0001 1
0010 2
● de 0 à 24-1 = 15
0011 3
0100 4
0101 5
Plus généralement, sur n bits :
0110 6
0111 7
● 2n valeurs
1000 8
1001 9
● de 0 à 2n-1
1010 10
1011 11
A chaque fois que l’on 1100 12
ajoute un bit dans le codage, 1101 13
on double le nombre de 1110 14
valeurs que l’on peut coder. 1111 15
9
Cours de Logique combinatoire et séquentielle

Représentation binaire
Codage binaire naturel
Dans certains cas, on se limite aux 10 combinaisons
correspondant aux chiffres décimaux 0 à 9 (par exemple
quand on veut faire un affichage digital). On parle alors de

Décimal-Codé-Binaire (DCB)

binaire décimal
0000 0
0001 1
0010 2
0011 3
0100 4
0101 5
0110 6
0111 7
1000 8
1001 9

10
Cours de Logique combinatoire et séquentielle

Représentation binaire
Autre type de codage : code de Gray (ou binaire réfléchi)

Il existe d’autres types de codage binaire, utilisés dans certains


cas spécifiques ; c’est le cas du code de Gray.

Principe : 1 seul bit change entre 2 nombres adjacents

Intérêt (sur le plan électronique) : éviter les états transitoires


indésirables lors du passage d’un nombre binaire au suivant

Exemple sur 2 bits : 00, 01, 11, 10

Utilisé notamment pour :


- les tableaux de Karnaugh (qui permettent
de simplifier les fonctions logiques,
voir plus loin)

- les roues codeuses (vues en cours-TD-TP


d’Instrumentation en 2A)

11
Cours de Logique combinatoire et séquentielle

Représentation binaire
Bases de représentation

Base 2 (binaire) :

2 symboles possibles : 0 et 1

Base 10 (décimale) :

10 symboles (ou chiffres) possibles : 0 à 9

Base 16 (hexadécimale) :

16 symboles possibles : 0 à 9 puis A à F (*)

(*) minuscules ou majuscules


12
Cours de Logique combinatoire et séquentielle

Représentation binaire
Bases de représentation
bases : décimale ↔ binaire ↔ hexadécimale
0 0000 0
1 0001 1
2 0010 2
3 0011 3
4 0100 4
5 0101 5
6 0110 6
7 0111 7
8 1000 8
9 1001 9
10 1010 A
11 1011 B
12 1100 C
13 1101 D
14 1110 E
15 1111 F
Dans le code hexadécimal, on représente les nombres par
paquets de 4 bits
Avantage : écriture plus compacte que le binaire 13
Cours de Logique combinatoire et séquentielle

Représentation binaire
Bases de représentation

Conversion de base 2 vers base 10

Exemple : conversion de 11012

1×23+1×22+0×21+1x20 = 1310

Conversion de base 10 vers base 2

Exemple : conversion de 1310

13 2
1 6 2
0 3 2
1 1 2
1 0

résultat : 11012
14
Cours de Logique combinatoire et séquentielle

Représentation binaire
Bases de représentation

Conversion de base 16 vers base 10

Exemple : conversion de 7F16

7×161+15×160 = 12710

Conversion de base 10 vers base 16

Exemple : conversion de 12710

127 16
15 7 16
7 0 résultat : 12710=7F16

15
Cours de Logique combinatoire et séquentielle

Représentation binaire
Première approche de l’arithmétique binaire : addition

Principes : les mêmes qu’en décimal (base 10), sauf qu’ici chaque
chiffre possède 2 valeurs possibles : 0 ou 1

addition somme retenue


0+0 0 0
0+1 1 0
1+0 1 0
1+1 0 1
on utilisera le même symbole (+) pour l’opération logique OU

Exemple : 10310+6210
1 1 1 1 1 1 0 0
0 1 1 0 0 1 1 12 =10310
+ 0 0 1 1 1 1 1 02 = 6210
= 1 0 1 0 0 1 0 12 =16510

Et 1+1+1 ? → 11 … et 1+1+1+1 ? → 100


16
Cours de Logique combinatoire et séquentielle

Logique combinatoire
Fonctions logiques de base

 Il s’agit de fonctions à 2 entrées (sauf pour le cas


particulier ci-dessous) et 1 sortie
 On les représente par une table de vérité, donnant la
valeur de la sortie pour les 4 combinaisons d’entrée
possibles (2 pour le cas particulier ci-dessous)

Fonction NON (symbole )

Table de vérité : Symboles graphiques :

A A
0 1

1 0

Expression algébrique : f(A) = A


17
Cours de Logique combinatoire et séquentielle

Logique combinatoire
Fonctions logiques de base

Fonction OU (symbole +) :

"La sortie est vraie si au moins l’une des entrées est vraie"

Table de vérité : Symboles graphiques :


A B A+B
0 0 0
0 1 1
1 0 1
≥1
1 1 1

Expression algébrique : f(A,B) = A + B

Remarques
Egalement appelée "somme logique" ou "union logique"
18
Cours de Logique combinatoire et séquentielle

Logique combinatoire
Fonctions logiques de base

Fonction ET (symbole × ou .) :

"La sortie est vraie si toutes les entrées sont vraies"

Table de vérité : Symboles graphiques :


A B A×B
0 0 0
0 1 0
1 0 0
1 1 1
Expression algébrique : f(A,B) = A × B ou A.B ou AB

Remarques
Egalement appelée "produit logique" ou "intersection logique"

19
Cours de Logique combinatoire et séquentielle

Logique combinatoire
Fonctions logiques de base

Remarque : analogie électrique

Pour se souvenir de la table de vérité du OU et du ET, on


peut utiliser une analogie électrique basée sur des
interrupteurs :

 fermé ↔ 1 : le courant passe


 ouvert ↔ 0 : le courant ne passe pas
A
OU : interrupteurs en parallèle 1 2
B

A B
ET : interrupteurs en série 1 2

Exemple dans le domaine des


automatismes (langage Ladder) :

20
Cours de Logique combinatoire et séquentielle

Logique combinatoire
Fonctions logiques de base

Fonction OU-exclusif (notation OU-EX ou XOR)

"La sortie est vraie si une entrée et une seule est vraie"

Table de vérité : Symboles graphiques :

A B A⊕B
0 0 0
0 1 1
1 0 1
1 1 0

Expression algébrique : f(A,B) = A ⊕ B

21
Cours de Logique combinatoire et séquentielle

Logique combinatoire
Fonctions logiques de base

Fonction NON-OU :

A B A+B
0 0 1
0 1 0
1 0 0 ≥1
1 1 0

Fonction NON-ET :
A B AxB
0 0 1
0 1 1
1 0 1 &
1 1 0

22
Cours de Logique combinatoire et séquentielle

Logique combinatoire
Fonctions logiques de base

Portes logiques à plus de 2 entrées

Dans le cas des fonctions OU et ET, les propriétés énoncées


sont transposables directement au cas d’un nombre d’entrées
supérieur à 2 :

Fonction OU :
"La sortie est vraie si au moins l’une des entrées est vraie"

Fonction ET :
"La sortie est vraie si toutes les entrées sont vraies"

Par contre, dans le cas du OU-exclusif, la propriété :


"La sortie est vraie si une entrée et une seule est vraie"

devient :
"La sortie est vraie si le nombre d’entrées vraies est impair"

23
Cours de Logique combinatoire et séquentielle

Logique combinatoire
Fonctions logiques combinatoires
Généralisation

De manière plus générale, une fonction logique


combinatoire est une fonction à n entrées et une sortie.

a1
a2
fonction
logique f(a1, a2, …, an)
an

Les entrées et la sortie sont toutes des variables binaires

24
Cours de Logique combinatoire et séquentielle

Logique combinatoire
Fonctions logiques combinatoires
En associant entre elles des fonctions logiques de base,
on va pouvoir obtenir des fonctions plus complexes,
caractérisées par des équations logiques.

Exemple :

A A’
S
B
C
A B C A’ S
0 0 0
La fonction logique 0 0 1
correspondante est : S = (A × B) + C
0 1 0
0 1 1
1 0 0
et la table de vérité : 1 0 1
1 1 0
1 1 1
25
Cours de Logique combinatoire et séquentielle

Logique combinatoire
Fonctions logiques combinatoires

Les fonctions logiques peuvent être représentées de 3


manières équivalentes, par :
 une table de vérité
 une expression algébrique
 un schéma
Chacune de ces 3 représentations permet de déterminer les 2
autres

Exemple d’une fonction simple :

a
0
b
0
f(a,b)
1
? f(a,b) = a.b
0 1 0
1 0 1 ?
1 1 1

?
Mais comment passer d’une représentation à l’autre ?
26
Cours de Logique combinatoire et séquentielle

Logique combinatoire
Fonctions logiques combinatoires

1er cas a b f(a,b)


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

analyse f(a,b) = a.b


2e cas
a b f(a,b)
0 0 1 synthèse
0 1 0
1 0 1
1 1 1
f(a,b) = a.b
Dans un 1er temps on va s’intéresser à l’analyse d’un
schéma existant, et dans un 2e temps à la synthèse d’un
schéma à partir d’un besoin (exemple : concevoir un
distributeur de boissons)
27
Cours de Logique combinatoire et séquentielle

Logique combinatoire
Analyse de circuits logiques combinatoires
Exemple 1 : Additionneur binaire (1 bit)

A B S R
S A ⊕B 0 0 0 0
0 1 1 0
R A B 1 0 1 0
1 1 0 1

Ce système très simple réalise la fonction d’addition à 1 bit,


mais sans prendre en compte une retenue de rang inférieur

→ demi-additionneur à 1 bit

28
Cours de Logique combinatoire et séquentielle

Logique combinatoire
Analyse de circuits logiques combinatoires
variables sorties du
Exemple 1 : Additionneur binaire (1 bit) intermédiaires système

S’ Rn-1 A B S’ R’ S’’ S Rn
S’’ 0 0 0
0 0 1
0 1 0
R’
0 1 1
1 0 0
1 0 1
1 1 0
S R ⊕ A ⊕ B) (*)
1 1 1
R R A ⊕B A. B

Ce système réalise la fonction d’addition à 1 bit, mais


prenant en compte la retenue du rang inférieur ; il est donc
complet
→ additionneur à 1 bit 29
Cours de Logique combinatoire et séquentielle

Logique combinatoire
Analyse de circuits logiques combinatoires

Exemple 1 : Additionneur binaire (1 bit)

On peut représenter le schéma de l’additionneur 1 bit complet


ainsi analysé sous la forme d’une "boîte noire" avec des entrées Exemple : additionneur 2 bits :
et des sorties :
R-1=0 S0
A0
B0 R0

R0 S1
A1
R1
B1

Un additionneur binaire complet à n bits peut être obtenu à


partir de n additionneurs à 1 bit. correspondant à l’addition :
Ceux-ci sont connectés en cascade, la retenue de sortie de A1A0
+ B1B0
l’additionneur de rang n constituant la retenue d’entrée de
= R1S1S0
l’additionneur de rang n+1.
30
Cours de Logique combinatoire et séquentielle

Logique combinatoire
Analyse de circuits logiques combinatoires

Exemple 2 : Commande d’un segment d’un afficheur

On considère le schéma suivant, permettant de commander


le fonctionnement d’un des segments d’un afficheur à 7
segments (voir schéma ci-contre) :

E0

E1
x
E2
E3

On cherche à savoir de quel segment il s’agit (x=a, x=b,… ?)


On détermine l’équation logique correspondante…

x E0. E2 E1 E0. E2 E3
31
Cours de Logique combinatoire et séquentielle

Logique combinatoire
Analyse de circuits logiques combinatoires

Exemple 2 : Commande d’un segment d’un afficheur

… puis la table de vérité (en se limitant au code DCB) :

E3 E2 E1 E0 E0.E2 E0. E2 x

0 0 0 0 0 1 1
0 0 0 1 0 0 0
0 0 1 0 0 1 1
0 0 1 1 0 0 1
0 1 0 0 0 0 0
0 1 0 1 1 0 1
0 1 1 0 0 0 1
0 1 1 1 1 0 1
1 0 0 0 0 1 1
1 0 0 1 0 0 1
32
Cours de Logique combinatoire et séquentielle

Logique combinatoire
Analyse de circuits logiques combinatoires

Exemple 2 : Commande d’un segment d’un afficheur

De quel segment s’agit-il (en considérant 1 ↔ "allumé" et


0 ↔ "éteint" ) ?

33
Cours de Logique combinatoire et séquentielle

Logique combinatoire
Analyse de circuits logiques combinatoires

Exemple 2 : Commande d’un segment d’un afficheur

On vient donc d’analyser une partie d’un

transcodeur DCB - 7 segments

Le transcodeur complet comporte 7 sorties


(donc 7 fonctions logiques) :

34
Cours de Logique combinatoire et séquentielle

Logique combinatoire
Analyse de circuits logiques combinatoires

Exemple 2 : Commande d’un segment d’un afficheur


Remarque : Dans l’exemple précédent on a supposé que les
LEDs étaient montées en cathode commune. Dans le cas de
l’anode commune, ce sont des 0 qui les allument.

Exemple de modèle d’afficheur à 7 segments du commerce :

Rm : les LEDs s’allument ici avec des 0 (anodes communes)

35
Cours de Logique combinatoire et séquentielle

Annexe : Lien entre la Logique et d’autres domaines

Systèmes à Microcontrôleurs

Aujourd’hui les composants programmables de type


microcontrôleurs se programment pratiquement tous en
langage évolué, par exemple en langage C.
La programmation de ces composants s’effectue en partie sous
la forme d’opérations logiques bit-à-bit.

Les opérations bit-à-bit permettront de :


- forcer des bits à 0 ou à 1 dans des registres (=variables
MSP430 de
binaires internes) pour configurer le système ou pour
Texas Instruments
commander des composants extérieurs (exemple : commander
une LED)
- tester des bits pour connaître l’état du système ou de
composants extérieurs (exemple : un bouton poussoir)

Opérateurs & ET
| OU
Exemple : en java, la ligne :
bit-à-bit en
^ OU-exclusif System.out.println( 16 & 17 );
Java, C ou ~ inversion
Python : décalage à gauche (resp. droite) affichera 16…
<< (>>)
(x << y ↔ décalage de y bits de la variable x)
36
Cours de Logique combinatoire et séquentielle

Annexe : Lien entre la Logique et d’autres domaines

Automatismes

Dans le domaine des automatismes


industriels, le langage à contacts appelé
LADDER permet de programmer (entre autres)
des fonctions logiques de manière graphique.
Exemple :

Mathématiques

Conjonction/disjonction

Soient 2 propositions P et Q :
- Conjonction : "P ET Q" (ou "P ꓥ Q")
- Disjonction : "P OU Q" (ou "P ꓦ Q")

Théorie des ensembles

http://serge.mehl.free.fr/anx/Th_ensembles.html
Intersection Union 37
Cours de Logique combinatoire et séquentielle

Annexe : Considérations pratiques

Logique vs analogique

Une entrée d’une porte logique est constituée par une tension.
Pour que cette tension soit interprétée comme un niveau 0 ou 1, elle doit être comprise entre
des limites. Les tensions comprises entre VILmax et VIHmin correspondent à un niveau logique
indéterminé (et donc peuvent générer un fonctionnement aléatoire).

Ceci est valable également pour les entrées d’autres circuits numériques, comme les
microcontrôleurs (cf UE SAM en 2A).

38
Cours de Logique combinatoire et séquentielle

Annexe : Considérations pratiques Vcc Vcc

Entrées externes
Dans certains cas, il peut être nécessaire R
d’acquérir des niveaux logiques en entrée,
directement issu du monde extérieur. R
En règle générale, une entrée d’un circuit
électronique ne doit jamais rester en l’air. GND
On utilise une résistance, qui permet de fixer un
Tirage à Vcc Tirage à la masse
potentiel (et donc un niveau logique) par défaut.
("pull-up") ("pull-down")
On parle de résistance de tirage. - bouton appuyé ↔ 0 - bouton appuyé ↔ 1
Par exemple, dans le cas d’un bouton poussoir : - bouton relâché ↔ 1 - bouton relâché ↔ 0

Visualiser une sortie


Pour visualiser une sortie dans un circuit logique, on
peut utiliser une LED.
Une LED est une diode ; le potentiel à ses bornes doit
être de l’ordre de sa tension de seuil (en général 1,5V à
2V) et le courant qui la traverse doit être de l’ordre de
20mA.
Il est donc indispensable de mettre une résistance en
série pour limiter le potentiel aux bornes de la LED.
39
Cours de Logique combinatoire et séquentielle

Annexe : Considérations pratiques

Portes logiques et électronique

En pratique, les portes


logiques se présentent sous
la forme de circuits intégrés.

Ce type de composants est de moins en


moins utilisé aujourd’hui. Néanmoins, de
nombreuses fonctionnalités des processeurs
actuels (microprocesseurs, microcontrôleurs,
processeurs de traitement du signal,
processeurs graphiques, etc) sont réalisées à
partir de ces portes logiques élémentaires.

Exemple : circuit permettant d’allumer une


LED uniquement quand on appuie sur 2
boutons-poussoirs simultanément
40

Vous aimerez peut-être aussi