Sie sind auf Seite 1von 18

Cette exercice a été l’un des problèmes posés aux candidats du Challenge ADEMIR 2004

organisé par l’antenne Caen-Hérouville de l’association MICROTEL.


Vous pourrez trouver des renseignements sur cette association ainsi que les questions et réponses
(très intéressant et instructif) des challenges sur le site
www.microtel.fr.eu.org/clubs/caen.mtl

Le but de l’exercice est de déterminer le sens de rotation d’un moteur en appliquant la méthode
de résolution des problèmes de Logique Séquentielle de Huffman.
Cette méthode ne tient aucunement compte de la technologie utilisée et génère les équations
logiques par déductions successives.

A B
V e r t
D A
B C i r c u i t R o u g e
I
C L o g i q u e

L’axe d’un moteur supporte une came excentrique équilibrée. Sur le bâti sont fixés trois
détecteurs concentriquement à l'axe qui donnerons un signal "un" logique lorsque la partie
la plus excentrée de la came passera devant.
On veut réaliser un circuit logique qui allumera un voyant vert pour un sens de rotation
du moteur, et un voyant rouge pour l'autre sens. Au démarrage du moteur, pendant la phase
d'indétermination, aucun voyant ne doit être allumé.
A chaque arrêt du moteur l'alimentation du circuit est coupée.
La position de départ de la came est quelconque. A la mise sous tension un dispositif
électronique maintient les signaux A, B, C à l'état logique "zéro" le temps que le circuit
logique trouve son état stable.
Il est demandé de déterminer les équations "booléennes" du circuit qui commandera
l'allumage des voyants.

On utilisera le "point" pour représenter l'opérateur "ET", et le "plus" pour l'opérateur


"OU". On pourra utiliser la barre inclinée direct pour représenter les variables
complémentées, en mettant des parenthèses lorsqu'on complémente une expression
contenant plusieurs variables.
On utilisera des lettres majuscules pour les variables d'entrée, et des minuscules pour les
fonctions, c'est-à-dire les sorties.

La solution doit être homogène. Elle ne doit pas attribuer un rôle particulier à l'un ou
l'autre des capteurs, car dans ce cas la solution empirique est triviale.
Le but est de faire émerger la solution de l'application rigoureuse de l'algèbre de Boole.
(Je reprendrai ce mode de penser dans un prochain exercice de programmation en
application du processus de programmation structurée décrit par Mr Arsac dans son ouvrage
« La construction de programmes structurés »)

On distingue huit phases principales.


Première phase, dresser le tableau binaire des entrées.

C'est un tableau qui contient autant de colonnes que de combinaisons binaires des
entrées, ici avec trois capteurs, il faut 2^3=8 colonnes, numérotées comme dans les tableaux
de Karnaugh, plus les colonnes des variables de sorties, plus, éventuellement, des colonnes
de commentaires.
Il comprendra autant de lignes que d'états possibles des entrées et des sorties, en passant
d'un état au suivant par variation d'un seul digit à la fois.
C'est la mise en équation du problème. Il peut y avoir des redondances, voire des oublis,
cela se corrigera.
On donne un numéro d'ordre à chacun de ces états dits stables, même momentanément,
qu'on inscrit dans la colonne correspondante à l'état binaire considéré. En fait un numéro
par ligne qu'on cercle pour le distinguer des états transitoires qui vont suivrent.

On va partir de l'état tous zéro, came entre les capteurs, on lui donne le numéro (1) dans
la colonne 000.
On va arbitrairement dire que la came va passer ensuite devant le capteur A, (2) dans la
colonne 100 (on dira à l'avenir C100), puis la came est à nouveau entre deux capteurs, (3)
dans C000. Elle peut passer ensuite devant B ou C, puis elle se trouve de nouveau entre les
capteurs, d'où (4) dans C010 et (5) dans C000, (6) dans C001 et (7) dans C000. A tous ces
états correspond une indétermination du sens de rotation, on mettra donc i dans la variable
de sortie correspondante, et pour que le système soit fiable on mettra 0 dans une variable de
contrôle.
On a par la force « des choses » introduit deux variables de sortie.
On va maintenant admettre qu'après A, elle passe sur B, puis sur C, puis de nouveau sur
A, d'où les numéros 8, 9, 10, 11, 12, 13, et ainsi de suite. La came tourne dans un certain
sens qu'on appelle 1 dans la variable SR, sens de rotation, et on va également mettre 1 dans
la variable CR, contrôle, puisque maintenant le sens est déterminé.
Si après A, la came passe sur C, puis sur B, puis sur A et ainsi de suite on donne les
numéros 14, 15, 16, 17, 18, et19. On met alors 0 dans la variable SR, et 1 dans CR.

On va maintenant compléter ce tableau en y inscrivant les états transitoires.


Quand on est à l'état (1) les entrées sont à 000, on ne sais pas où est la came, sa
prochaine position pourra être la (2), la (4), ou la (6) suivant le capteur qui sera sollicité. On
va inscrire 2 dans C100 qui correspond à A, 4 dans C010 pour B, et 6 dans C001 pour C,
sur la ligne (1). Ce sont des états transitoires instantanés qui apparaissent dès que la variable
correspondante bouge et qui indique sur quel état stable suivant le système va s'accrocher.
Cette procédure est le point fort de la méthode, qui ne laisse aucune place à l’incertitude.
Les états transitoires ne sont pas cerclés.
Quand on est sur (2), (4), ou (6), la seule issue possible est C000, on met donc 3, 5, et 7
sur les lignes correspondantes.
Sur chaque ligne, c'est à dire pour chaque état stable, on inscrit dans la colonne
correspondant à un état stable accessible un numéro identique représentant son état
transitoire. Dans chaque colonne on ne peut trouver que des numéros d'états stables de la
même colonne.
Les autres cases restent vides, ce sont des cas impossibles ou éventuellement
indifférents.
Pour passer d'un état transitoire à l'état stable correspondant de la même colonne il faut
faire intervenir des variables auxiliaires, sous forme de boucles de rétroaction qui
introduisent un temps de transit non nul, dépendant de la technologie employée.

Les transitions horizontales sont considérées instantanées, les transitions verticales font
intervenir un délai.

On a mis le problème en équation, comme en mathématiques c’est l’étape délicate du


processus. La résolution est une suite d'opérations strictement définies.
TABLEAU des ETATS

sens de contrôle
Capteur Capteur Capteur
ABC rotation rotation
C B A SR CR
---------- ---------- ----------- ---------- ---------- ---------- ---------- ---------- ---------- ----------
Etats
000 001 011 010 110 111 101 100 --- ---

mise
sous
tensio (1) 6 --- 4 --- --- --- 2 i 0
n

départ
A 3 --- --- --- --- --- --- (2) i 0
(3) 14 --- 8 --- --- --- 2 i 0

départ
B 5 --- --- (4) --- --- --- --- i 0
(5) 10 --- 4 --- --- --- 18 i 0

départ
C 7 (6) --- --- --- --- --- --- i 0
(7) 6 --- 16 --- --- --- 12 i 0

9 --- --- (8) --- --- --- --- 1 1


(9) 10 --- 16 --- --- --- 18 1 1
11 (10) --- --- --- --- --- --- 1 1
(11) 14 --- 16 --- --- --- 12 1 1
13 --- --- --- --- --- --- (12) 1 1
(13) 14 --- 8 --- --- --- 18 1 1

15 (14) --- --- --- --- --- --- 0 1


(15) 10 --- 16 --- --- --- 12 0 1
17 --- --- (16) --- --- --- --- 0 1
(17) 10 --- 8 --- --- --- 18 0 1
19 --- --- --- --- --- --- (18) 0 1
(19) 14 --- 8 --- --- --- 12 0 1

(7) état stable


7 état transitoir
Deuxième phase, simplifier le tableau des états.

On va d'abord faire une simplification technique qui considère que le moteur ne peut pas
changer de sens sous tension, c'est à dire qu'on ne peut pas changer de sens sans passer par
l'état initial. Cela supprime deux états transitoires sur les lignes des états stables 9, 11, 13,
15, 17, et 19.

On fait ensuite la recherche des états stables équivalents. Ils sont dans la même colonne,
ont la même variable de sortie et leurs transitions aboutissent aux mêmes états stables, ou
eux mêmes équivalents.
Il faut une certaine maîtrise pour détecter dans les tableaux complexes les équivalences
conditionnelles, les équivalences en boucles ou les pseudo équivalences, c'est-à-dire lorsque
l’un des états est optionnel ou interdit car obtenu par des changements d’états simultanés
des variables d’entrées.

Il existe heureusement une méthode systématique pour les détecter qui consiste au
départ à faire un tableau en fonction des couples d’états stables se trouvant dans une même
colonne, pour un même état des sorties.
Il n’y pas dans le tableau ci-dessus de couples d’états stables dans une même colonne
correspondants au même état des sorties. Il n’y a donc pas d’état stable équivalent.
(La description complète de la méthode nécessite un tableau beaucoup plus complexe
pour être mise en œuvre : la méthode est néanmoins très simple. Ce serait trop fastidieux de
l’étudier sans un support concret.)
Lorsqu’il y a des états stables équivalents on les supprime ainsi que les lignes qui les
contiennent.
Il n'y en a pas dans notre tableau.

Troisième phase, réduire le tableau des états.

Cela consiste à réduire le nombre de lignes par fusion de lignes, c'est à dire en logeant
plusieurs états stables sur la même ligne. Les états stables doivent être dans des colonnes
distinctes, les lignes doivent être identiques, colonne par colonne, sauf pour les états stables
bien évidemment. Les cases vides sont considérées égales aux pleines, les numéros cerclés
absorbent les non cerclés, les indéterminées prennent la valeur des déterminées.
Ici on peut fusionner les lignes (2,3), (4,5) et (6,7).

Pourquoi vouloir réduire le nombre de lignes ? Parce que c'est lui qui impose le nombre
de variables auxiliaires et donc la complexité du schéma.
On arrive ainsi au tableau réduit des états.

Les variables auxiliaires c’est quoi ? Ce sont les composants internes du système qui
mémorisent les états intermédiaires du système, c'est-à-dire l’état d’avancement du
déroulement de la séquence logique.

Lorsqu’on loge plusieurs états stables sur la même ligne, cela veut dire qu’on peut
passer de l’un à l’autre uniquement par changement d’état d’une variable d’entrée, donc
sans étape intermédiaire, donc sans variable auxiliaire.

Pour faire le regroupement des états réductibles on peut faire un graphe des états
stables, dans lequel on joint par une ligne les états réductibles.
Par exemple :
6 1--------2
5 |
7 4 -------3
Correspondrait au tableau :
(1) _ _ 4
1 (2) _ _
5 (3) _ 4
_ 3 _ (4)
(5) 2 _ 6
5 3 7 (6)
1 _ (7) 6
Les lignes (1), (2) et (4), (3) sont réductibles, on pourrait aussi réduire (1), (4), mais
alors (1), (3) ne le sont pas. On perd une simplification.

Quatrième phase, déterminer le nombre de variables auxiliaires.

Comme nous allons le voir, il n’est pas toujours nécessaire de faire le maximum de
simplifications possibles. D’autant plus que cela peut engendrer un fonctionnement instable
et aléatoire qu’on rencontre constamment en informatique, mais comme cela touche le
grand public cela n’a pas d’importance et n’empêche pas les trusts d’informatique de faire
fortune.
En automatisme industriel le disfonctionnement d’une machine peut entraîner des
accidents graves, et la recherche des courses critiques est fondamentale et entraîne toujours
l’augmentation du nombre de variables auxiliaires.
Par ailleurs le nombre de variables auxiliaires dépend de la numérotation binaire des
lignes du tableau des états, donc d’une puissance de 2 qui doit être supérieure ou égale au
nombre de lignes. Donc 5, 6, 7 ou 8 lignes donnera le même nombre de variable égal à 3
puisque 2^3=8 et 2^2=4.

Les courses critiques se présentent lorsqu’il y a plusieurs états stables dans la même
colonne et qu’il est nécessaire de traverser plusieurs lignes pour passer d’un état transitoire
à l’état stable correspondant. Il y a alors risque de passer par un autre état stable en fonction
des temps de réponse des variables auxiliaires qui peuvent commuter dans un ordre
indéterminé.

Pour éviter ces risques, il faut que les états transitoires et stables de même numéro
soient dans des lignes adjacentes.

Dans le tableau réduit des états, on va nomme chaque ligne par une lettre, et faire un
graphe des liaisons entre états transitoires et états stables.
On fait la liste des liaisons, et on essaye de faire un graphe minimisant le nombre de
croisements.
S'il n'y a aucun croisement le nombre de variables auxiliaires sera tel que
2^n>=nombre de lignes.
S'il y a des croisements, il faudra ajouter des variables auxiliaires.

Dans notre cas il y a 16 lignes, donc 4 variables auxiliaires devraient suffire. Mais
comme il y a un croisement il en faut 5.
TABLEAU réduit des ETATS

sens de contrôle
ABC 000 001 011 010 110 111 101 100 rotation rotation
SR CR
---------- ---------- ----------- ---------- ---------- ---------- ---------- ---------- ---------- ----------
Etats
--- --- --- --- --- --- --- --- --- ---

mise sous
tension
a (1) 6 --- 4 --- --- --- 2 i 0

départ A b (3) 14 --- 8 --- --- --- (2) i 0

départ B c (5) 10 --- (4) --- --- --- 18 i 0

départ C d (7) (6) --- 16 --- --- --- 12 i 0

e 9 --- --- (8) --- --- --- --- 1 1


f (9) 10 --- --- --- --- --- --- 1 1
g 11 (10) --- --- --- --- --- --- 1 1
h (11) --- --- --- --- --- --- 12 1 1
i 13 --- --- --- --- --- --- (12) 1 1
j (13) 14 --- 8 --- --- --- --- 1 1

k 15 (14) --- --- --- --- --- --- 0 1


l (15) --- --- 16 --- --- --- --- 0 1
m 17 --- --- (16) --- --- --- --- 0 1
n (17) --- --- --- --- --- --- 18 0 1
o 19 --- --- --- --- --- --- (18) 0 1
p (19) 14 --- --- --- --- --- --- 0 1

(7) état stable


7 état transitoir

Liste des liaisons

e—f a--d a--c a--b


g—h b--k b--e c--o
i—j p--k j--e n--o
K—l c--g d--m d--i
m--n f--g l--m h--i
o—p

(après quelques brouillons


on arrive au diagramme
ci-contre)
Cinquième phase, écrire les tableaux de transition des variables auxiliaires.

Soient U, V, W, X et Y les cinq variables auxiliaires. Il faut faire un tableau en fonction


de ces 5 variables binaires contenant les lettres de a à p des lignes et respectant les
voisinages donnés par le diagramme, ou graphe, des liaisons représenté ci-dessus.
On fait deux tableaux de 16 cases, soient deux couches de 16 cases. On loge à l’intérieur
les 16 lettres en respectant les proximités. Les cases en trop restent vides et doivent être
considérées comme des frontières.
On met en tête des lignes et des colonnes les combinaisons binaires dans l’ordre
habituel des tableaux de Karnaugh. Il n’y a plus qu’à baptiser les variables.
On a pris U pour les deux couches, puis dans l’ordre V, W, X, Y.

Sixième phase, réécriture dans l’ordre binaire du tableau réduit des états.

On constate que pour VW=11 on a des vides, on a donc pris pour l’ordre binaire des
lignes, l’ordre VWUXY .
Pour les colonnes on a pris l’ordre binaire ABC.

Les états stables et leurs transitoires associés ne peuvent pas sortir d’une colonne, on
leur donne donc comme valeur binaire la valeur de la ligne de l’état stable. On indique pour
mémoire le numéro de l’état du tableau primaire.

On réécrit en binaire le tableau primaire dans l’ordre des variables binaires choisi ci-
dessus, ce qui nous donne le tableau binaire des états.

Septième phase, tableaux de Karnaugh.

Il faut maintenant construire les tableaux de Karnaugh des variables auxiliaires qui
deviennent variables d’excitation car par rebouclage sur les entrées, elles assurent les
fonctions de mémorisation de l’avancement de la séquence.

Pour chaque variable auxiliaire, on inscrit dans chaque case la valeur binaire 0 ou 1
donnée par son poids dans la même case du tableau réduit des états. Par exemple, pour y
c'est le poids 0, pour x le poids 1, pour u le poids 2 et ainsi de suite.
Cela donne les tableaux de u, v, w, x, y en fonction des 8 variables :
U, V, W, X, Y, A, B et C.
Ce sont des tableaux de Karnaugh de 8 variables, heureusement qu’il y a beaucoup de
vide.

On obtient les équations logiques de ces variables par la méthode des unions
d'intersections des groupements dans les tableaux de Karnaugh.

Huitième phase, détermination des sorties.

On construit enfin les tableaux de Karnaugh des variables de sorties en fonction des
variables auxiliaires, d'où les équations logiques des sorties.

Ces équations tiennent compte des aléas de transitions, les groupements de Karnaugh se
chevauchant tous. Il ne doit pas y avoir de groupements disjoints, ou même adjacents.
TABLEAU de transitions
des variables
auxiliaires

Présentation verticale:

VW = 00
U\XY 10 00 01 11
0 b a c ---
1 --- d --- ---

VW = 01
U\XY 10 00 01 11
0 k --- o p
1 l m n ---

VW = 11
U\XY 10 00 01 11
0 --- --- --- ---
1 --- --- --- ---

VW = 10
U\XY 10 00 01 11
0 e --- g h
1 j i h ---

Présentation horizontale:

U=0
VW\XY 10 00 01 11
01 k --- o p
00 b a c ---
10 e --- g f
11 --- --- --- ---

U=0
VW\XY 10 00 01 11
01 l m n ---
00 --- d --- ---
10 j i h ---
11 --- --- --- ---
TABLEAU BINAIRE DES ETATS

ABC 000 001 011 010 110 111 101 100 SR CR


VWUXY
a 00000 (1) 00000 6 00100 4 00001 2 00010 i 0
c 00001 (5) 00001 10 10001 (4) 00001 18 01001 i 0
00011
b 00010 (3) 00010 14 01010 8 10010 (2) 00010 i 0
00110
00111
00101
d 00100 (7) 00100 (6) 00100 16 01100 12 10100 i 0
m 01100 17 01101 (16) 01100 0 1
n 01101 (17) 01101 18 01001 0 1
01111
l 01110 (15) 01110 16 01100 0 1
k 01010 15 01110 (14) 01010 0 1
p 01011 (19) 01011 14 01010 0 1
o 01001 19 01011 (18) 01001 0 1
01000
11000
11001
11011
11010
11110
11111
11101
11100
i 10100 13 10110 (12) 10100 1 1
h 10101 (11) 10101 12 10100 1 1
10111
j 10110 (13) 10110 8 10010 1 1
e 10010 9 10011 (8) 10010 1 1
f 10011 (9) 10011 10 10001 1 1
g 10001 11 10101 (10) 10001 1 1
10000
Tableaux de Karnaugh des variables d'excitation

Variable y

AB
00 01 11 10
C
V=0 U\XY 00 01 11 10 U\XY 00 01 11 10 U\XY 00 01 11 10
W=0 0 0 0 1 0 0 0 1 0 0 1 1 0
1 0 1 0 1 0
U\XY -- -- -- -- U\XY -- -- -- -- U\XY -- -- -- --
1 0 0 1 0 0 0
1 0 1 1

AB
00 01 11 10
C
V=0 U\XY 00 01 11 10 U\XY 00 01 11 10 U\XY 00 01 11 10
W=1 0 0 1 1 0 0 0 0 0
1 1 1 0 1 1 0 0
U\XY -- -- -- -- U\XY -- -- -- -- U\XY -- -- -- --
1 0 1 0 0
1 1 1 1

V=1,W=1

AB
00 01 11 10
C
V=1 U\XY 00 01 11 10 U\XY 00 01 11 10 U\XY 00 01 11 10
W=0 0 0 1 1 1 0 1 1 0 0
1 0 1 0 1 1 0
U\XY -- -- -- -- U\XY -- -- -- -- U\XY -- -- -- --
1 0 0 0
1 0 0 1 1

Variable x

AB
00 01 11 10
C
V=0 U\XY 00 01 11 10 U\XY 00 01 11 10 U\XY 00 01 11 10
W=0 0 0 0 0 1 0 0 0 1 0 0 0 1
1 0 1 0 1 0
U\XY -- -- -- -- U\XY -- -- -- -- U\XY -- -- -- --
1 0 1 0 1 0 0
1 0 1 1

AB
00 01 11 10
C
V=0 U\XY 00 01 11 10 U\XY 00 01 11 10 U\XY 00 01 11 10
W=1 0 0 1 1 1 0 1 1 0
1 0 0 1 1 1 0 0
U\XY -- -- -- -- U\XY -- -- -- -- U\XY -- -- -- --
1 0 0 0 0
1 0 1 1

V=1,W=1

AB
00 01 11 10
C
V=1 U\XY 00 01 11 10 U\XY 00 01 11 10 U\XY 00 01 11 10
W=0 0 0 0 1 1 0 0 0 0 1
1 1 0 1 1 1 1
U\XY -- -- -- -- U\XY -- -- -- -- U\XY -- -- -- --
1 0 0 0
1 0 0 1 1
Tableaux de Karnaugh des variables d'excitation

Variable u

AB
00 01 11 10
C
V=0 U\XY 00 01 11 10 U\XY 00 01 11 10 U\XY 00 01 11 10
W=0 0 0 0 0 0 0 1 0 0 0 0 0 0
1 1 1 1 1 1
U\XY -- -- -- -- U\XY -- -- -- -- U\XY -- -- -- --
1 0 0 0 0 0 0
1 1 1 1

AB
00 01 11 10
C
V=0 U\XY 00 01 11 10 U\XY 00 01 11 10 U\XY 00 01 11 10
W=1 0 0 0 0 1 0 0 0 0
1 1 1 1 1 1 1 1
U\XY -- -- -- -- U\XY -- -- -- -- U\XY -- -- -- --
1 0 0 0 0
1 0 1 1

V=1,W=1

AB
00 01 11 10
C
V=1 U\XY 00 01 11 10 U\XY 00 01 11 10 U\XY 00 01 11 10
W=0 0 0 1 0 0 0 0 0 0 0
1 1 1 1 1 1 0
U\XY -- -- -- -- U\XY -- -- -- -- U\XY -- -- -- --
1 0 0 0
1 1 1 1 1
Tableaux de Karnaugh des variables d'excitation

Variable w

AB
00 01 11 10
C
V=0 U\XY 00 01 11 10 U\XY 00 01 11 10 U\XY 00 01 11 10
W=0 0 0 0 0 0 0 0 0 1 0 0 0 0
1 0 1 0 1 1
U\XY -- -- -- -- U\XY -- -- -- -- U\XY -- -- -- --
1 0 0 1 0 0 0
1 0 1 1

AB
00 01 11 10
C
V=0 U\XY 00 01 11 10 U\XY 00 01 11 10 U\XY 00 01 11 10
W=1 0 0 1 1 1 0 1 1 0
1 1 1 1 1 1 1 1
U\XY -- -- -- -- U\XY -- -- -- -- U\XY -- -- -- --
1 0 1 0 0
1 1 1 1

V=1,W=1

AB
00 01 11 10
C
V=1 U\XY 00 01 11 10 U\XY 00 01 11 10 U\XY 00 01 11 10
W=0 0 0 0 0 0 0 0 0 0 0
1 0 0 0 1 1 0
U\XY -- -- -- -- U\XY -- -- -- -- U\XY -- -- -- --
1 0 0 0
1 0 0 1 1

Variable v

AB
00 01 11 10
C
V=0 U\XY 00 01 11 10 U\XY 00 01 11 10 U\XY 00 01 11 10
W=0 0 0 0 0 0 0 0 1 0 0 0 0 1
1 0 1 0 1 0
U\XY -- -- -- -- U\XY -- -- -- -- U\XY -- -- -- --
1 0 0 0 0 0 0
1 1 1 1

AB
00 01 11 10
C
V=0 U\XY 00 01 11 10 U\XY 00 01 11 10 U\XY 00 01 11 10
W=1 0 0 0 0 0 0 0 0 0
1 0 0 0 1 1 0 0
U\XY -- -- -- -- U\XY -- -- -- -- U\XY -- -- -- --
1 0 0 0 0
1 0 1 1

V=1,W=1

AB
00 01 11 10
C
V=1 U\XY 00 01 11 10 U\XY 00 01 11 10 U\XY 00 01 11 10
W=0 0 0 1 1 1 0 1 1 0 1
1 1 1 1 1 1 1
U\XY -- -- -- -- U\XY -- -- -- -- U\XY -- -- -- --
1 0 0 0
1 1 1 1 1
Tableaux de Karnaugh des variables de sortie

Sortie sens ssr Sortie contrôle ctr

V=0 U\XY 00 01 11 10 U\XY 00 01 11 10


W=0 0 0 0 0 0 0
1 1 0 0 0 0

V=0 U\XY 00 01 11 10 U\XY 00 01 11 10


W=1 0 0 0 0 0 0 1 1 1
1 0 0 0 1 1 1 0 1

V=1 W=1

V=1 U\XY 00 01 11 10 U\XY 00 01 11 10


W=0 0 1 1 1 0 0 1 1 1
1 1 1 1 1 1 1 0 1

EQUATIONS BOOLEENNES :

y = [ Y + A./U./X ]./V./W + [ /A./X + /B.Y ]./V.W + [ /A./U + /C.Y ].V./W + /U./X.Y

x = [ X + C./U./Y ]./V./W + [ /C./U + /A.X ]./V.W + [ /C./Y + /B.X ].V./W + /U.X./Y

u = [ U + B./X./Y ]./V./W + [ /B./Y + /C.U ]./V.W + [ /B./X + /A.U ].V./W + U./X./Y

w = [ A.U + B.X + C.Y ]./V./W + /V.W + U.X.Y

v = [ A.X + B.Y + C.U ]./V./W + V./W + U.X.Y

ssr = V./W /ssr = /V + W

ctr = ( V + W ).( /V + /W ).( U + X + Y ).( /U + /X + /Y )


/ctr = /V./W + V.W + /U./X./Y + U.X.Y

Vert = SSR.CTR
Rouge =(/SSR).CTR

On constatera la belle symétrie des permutations circulaires à l’intérieur des groupements des
variables U, X et Y d’une part, et V et W d’autre part. Cela rassure en partie la validité des formules.

Cette étude est un résumé succinct de la méthode complète que vous pouvez trouver
dans un cours de logique séquentielle de l'ECOLE SUPERIEURE D'ELECTRICITE.
Les points les plus succinctement abordés sont la simplification et la réduction du
tableau des états, et la recherche des courses critiques.
On peut présenter les tableaux d’une manière plus compact.

Tableaux de Karnaugh des variables

Variable u

V
0 1
W
UXY
000 001 011 010 110 111 101 100 000 001 011 010 110 111 101 100
ABC
000 0 0 -- 0 -- -- -- 1 -- 1 0 0 1 -- 1 1
001 1 0 -- 0 -- -- -- 1 -- 0 0 -- -- -- -- --
011
0
010 0 0 -- 0 -- -- -- 1 -- -- -- 0 0 -- -- --
110
111
101
100 0 0 -- 0 -- -- -- 1 -- -- -- -- -- -- 1 1

UXY
000 001 011 010 110 111 101 100 000 001 011 010 110 111 101 100
ABC
000 -- 0 0 1 1 -- 1 1
001 -- -- 0 0 -- -- -- --
011
1
010 -- -- -- -- 1 -- -- 1
110
111
101
100 -- 0 -- -- -- -- 0 --
Tableaux de Karnaugh des variables

Variable y

V
0 1
W
UXY
000 001 011 010 110 111 101 100 000 001 011 010 110 111 101 100
ABC
000 0 1 -- 0 -- -- -- 0 -- 1 1 1 0 -- 1 0
001 0 1 -- 0 -- -- -- 0 -- 1 1 -- -- -- -- --
011
0
010 1 1 -- 0 -- -- -- 0 -- -- -- 0 0 -- -- --
110
111
101
100 0 1 -- 0 -- -- -- 0 -- -- -- -- -- -- 0 0

UXY
000 001 011 010 110 111 101 100 000 001 011 010 110 111 101 100
ABC
000 -- 1 1 0 0 -- 1 1
001 -- -- 0 0 -- -- -- --
011
1
010 -- -- -- -- 0 -- -- 0
110
111
101
100 -- 1 -- -- -- -- 1 --

Variable x

V
0 1
W
UXY
000 001 011 010 110 111 101 100 000 001 011 010 110 111 101 100
ABC
000 0 0 -- 1 -- -- -- 0 -- 0 1 1 1 -- 0 1
001 0 0 -- 1 -- -- -- 0 -- 0 0 -- -- -- -- --
011
0
010 0 0 -- 1 -- -- -- 0 -- -- -- 1 1 -- -- --
110
111
101
100 1 0 -- 1 -- -- -- 0 -- -- -- -- -- -- 0 0

UXY
000 001 011 010 110 111 101 100 000 001 011 010 110 111 101 100
ABC
000 -- 1 1 1 1 -- 0 0
001 -- -- 1 1 -- -- -- --
011
1
010 -- -- -- -- 0 -- -- 0
110
111
101
100 -- 0 -- -- -- -- 0 --
Tableaux de Karnaugh des variables

Variable w

V
0 1
W
UXY
000 001 011 010 110 111 101 100 000 001 011 010 110 111 101 100
ABC
000 0 0 -- 0 -- -- -- 0 -- 0 0 0 0 -- 0 0
001 0 0 -- 1 -- -- -- 0 -- 0 0 -- -- -- -- --
011
0
010 0 0 -- 0 -- -- -- 1 -- -- -- 0 0 -- -- --
110
111
101
100 0 1 -- 0 -- -- -- 0 -- -- -- -- -- -- 0 0

UXY
000 001 011 010 110 111 101 100 000 001 011 010 110 111 101 100
ABC
000 -- 1 1 1 1 -- 1 1
001 -- -- 1 1 -- -- -- --
011
1
010 -- -- -- -- 1 -- -- 1
110
111
101
100 -- 1 -- -- -- -- 1 --

Variable v

V
0 1
W
UXY
000 001 011 010 110 111 101 100 000 001 011 010 110 111 101 100
ABC
000 0 0 -- 0 -- -- -- 0 -- 1 1 1 1 -- 1 1
001 0 1 -- 0 -- -- -- 0 -- 1 1 -- -- -- -- --
011
0
010 0 0 -- 1 -- -- -- 0 -- -- -- 1 1 -- -- --
110
111
101
100 0 0 -- 0 -- -- -- 1 -- -- -- -- -- -- 1 1

UXY
000 001 011 010 110 111 101 100 000 001 011 010 110 111 101 100
ABC
000 -- 0 0 0 0 -- 0 0
001 -- -- 0 0 -- -- -- --
011
1
010 -- -- -- -- 0 -- -- 0
110
111
101
100 -- 0 -- -- -- -- 0 --
Tableaux de Karnaugh des variables de sortie

Sortie sens de rotation ssr

UXY
000 001 011 010 110 111 101 100
VW .
00
01 0 0 0 0 0 0
11
10 1 1 1 1 1 1

Sortie contrôle ctr

UXY
000 001 011 010 110 111 101 100
VW .
00 0 0 0 0 0 0 0 0
01 0 1 1 1 1 0 1 1
11 0 0 0 0 0 0 0 0
10 0 1 1 1 1 0 1 1

Ces tableaux donnent les formules suivantes :

v = V + /W.B.X + /W.A.U + /W./A.C./U.Y

w = W +/V.B.U + /V./A.C./U.X + A./U.Y

On constate déjà que la belle symétrie de permutation circulaire a disparu. En affectant un poids à
chaque terme représentant le nombre de cellules du tableau qu’il représente, on peut vérifier le poids de
chaque formule ce qui donne un petit contrôle d’homogénéité : cette technique a permis de déceler
plusieurs erreurs de groupement. Bien sûr ce n’est qu’une preuve par 9.
Les deux formules ci-dessus ont un poids de 200. (une erreur m’avait donné 200 et 208)
Les trois formules qui suivent ont un poids de 160. On retrouve les groupements V, W et U, X, Y.

u = U./X./Y + /V./A.U + /W.U./X + /A./B.U + /A.C./X./Y + /B./C.(V./U./X + W.X./Y)

x = /U.X./Y + /B.X./Y + /V./U.X + V./A./X./Y + /W./A.X./Y + /B./C./U.X + A./U./X./Y

y = /U./X.Y + B./X./U + /A.U.Y + /V.U./X.Y + V./B./U.X + W./A./B./X + /B./C./U.Y

Un poids de 156 dans la formule de u m’a permis de déceler une erreur importante de groupement.

A part les termes en U, X, Y, ces formules n’ont pas beaucoup de ressemblance avec celles du
premier groupe, pourtant elles doivent être équivalentes !!
Pour le vérifier, il faut faire une table de vérité !!
Les deux dernières formules sont :

ssr = V./W et crt = (V./W + /V.W).(U./X + /U.X + /UY + X./Y)

Faisons le tableau des deux lignes de 1 de ctr :

XY 00 01 11 10
U
0 0 1 1 1
1 1 1 0 1

d’où ctr = (V./W + /V.W).(U./Y + U./X + /U.Y + /U.X + /X.Y + X./Y)

= (V + W).(/V + /W).(U + X + Y).(/U + /X + /Y)

On retrouve les deux formules du premier groupe.

Les vérifications par le calcul, dossier annexe, montrent qu’il y a une erreur dans les formules
du premier groupe qui paraissent si homogènes, il ne faut pas se fier aux apparences et à la
preuve par 9.

Das könnte Ihnen auch gefallen