Vous êtes sur la page 1sur 151

CEA-N-1283

- Note CEA-N-1283 -

Centre d'Etudes Nucléaires de Cadarache

Département d'Electronique Générale


Section d'Electronique et d'Instrumentation

ETUDE DE LA CONCEPTION DE CIRCUITS LOGIQUES

COMBINATOIRES PAR ORDINATEUR

par

Robert SISSO

AVRIL 1970
CEA-N-1283 - SISSO Robert

ETUDE DE "LÀ CONCEPTION DE CIRCUITS LOGIQUES COMBINATOIRES PAR ORDINATEUR

Sommaire. - Cette étude vise à obtenir de manière automatique des circuits-de


faible coût en technologie Ni(NOR) et ON(NAND) pour les fonctions complètement,
spécifiées et 0 booléennes (incomplètement spécifiées). Deux méthodes sont pro
posées ; la première (méthode de fusion des chaînes et de' combinaison des
éléments) vise à obtenir directement les circuits par application d'algorithmes
de synthèse dont l'automatisation est assurée par une notation nouvelle liant
biunivoquement le circuit et la fonction. La seconde (méthode de décomposition)
utilise le principe de la décomposition disjointe simple et permet de.déterminer
dans ce cadre la loi que suit la borne supérieure du coût minimum des circuits.

146 p.
1970

Commissariat à l'Energie'Atomique - France

CEA-N-1283 - SISSO Robert

STUDY OF THE COMPUTER AIDED DESIGN OF COMBINATORY LOGICAL CIRCUITS'

Summary. - :This survéy aims at obtaining, automatically, low costs circuits in


NCR'and NAND technology for oompletely and inoompletely specified functions. Two
methods are proposed ; the first one (chain fusion and élément combination. me
thod) aims at obtaining direotly the circuits by applying synthesis algorithms.,
the automatisation of. whioh is provided by a new notation which binds biunivocal-
ly circuit and function. The second one (décomposition method) uses the principe
of the simple disjoined décomposition and enabies to détermine within this scope
the upper bôundary évolution of the circuit minimum oost.

146 P.
1970

Commissariat à l'Energie Atomique - France


UNIVERSITE D'AIX-MARSEILLE

FACULTE DES SCIENCES DE MARSEILLE

THESE DE 3e CYCLE

Spécialité : ELECTRONIQUE

présentée par

Robert SISSO

ETUDE DE LA CONCEPTION DE CIRCUITS LOGIQUES

COMBINATOIRES PAR ORDINATEUR

Soutenue le 27 juin 1969 devant la Commission d'Examen

MM. SIDER1ADES Président

HENNEQUIN
Examinateurs
BERBEZIER
..._ .

Centre d'Etudes Nucléaires de Cadarache

Département d'Electronique Générale


Section d'Electronique et d'Instrumentation

ETUDE DE LA CONCEPTION DE CIRCUITS LOGIQUES


COMBINATOIRES PAR ORDINATEUR

par

Robert SISSO
REMERCIEMENTS

Au moment de soutenir cette thèse, qu'il me soit permis


d'adresser mes plus vifs remerciements à :

- Monsieur le Professeur L. SIDERIADES qui a bien voulu accepter la


présidence de mon jury, et dont les enseignements m'ont été des
plus profitables.

-Monsieur le Professeur J. HENNEQUIN qui m'a initié à ces techniques,


et m'a permis d'entreprendre ce troisième cycle dans les meilleures
conditions.

- Monsieur J. BERBEZIER, Chef de la Section d'Electronique et d'Instru


mentation du Département d'Electronique Générale du Commissariat à
l'Energie Atomique au C.E.N. de Cadarache, de m'avoir accueilli au
sein de son service, et confié ce travail.

- Monsieur G. FRIEDLING, Chef de Groupe de la Section d'Electronique et


d'Instrumentation du Département d'Electronique Générale du Commissa
riat à l'Energie Atomique au C.E.N. de Cadarache, qui m'a accordé sa
confiance pour cette étude, et m'a toujours prodigué aide et encoura
gements.

- Messieurs DA COSTA VIERA, Ingénieur de la S.E.In, et GODFROY, Censeur


de l'Ecole d'Electricité Industrielle de Marseille (E.E.I.M.), de
m'avoir éclairé de leurs conseils, ainsi que tous les membres de la
S.E.In pour leur chaleureux accueil et l'aide qu'ils ont toujours bien
voulu m'accorder pour ce travail.
SOMMAIRE

INTRODUCTION : OBJET DE L'ETUDE

Pages
1. - POSITION DU PROBLEME ............... 1

2 . - PRESENTATION DE L•ETUDE ....................... 2


2.1. Son but .................................. 2
2.2. Caractéristiques et difficultés .......... 2
2.3. Méthodes envisagées ...................... k

Première Partie :

METHODE DE FUSION DES CHAINES ET COMBINAISON DES ELEMENTS

1. - GENERALITES .'..........•................',.„._
5
1.1. Chaînes et Niveaux ................
5
1.2.. Coûts : Coût général : C .............
5
• Coût relatif : n .............. 6
1.3. Prix
6
1.4. Principe général ...................................... 7

2. - CHOIX D'ECRITURE ET SIMPLIFICATION .........................


2.1. Choix d'écriture ...................................... 9
2.2. Simplification par l'algorithme de Qine~Mc. Cluskey ... 12

3. - CODAGE ET REPRESENTATION DES FONCTIONS ET DES CIRCUITS 20


3-1. Caractéristiques ............
20
3.2. Utilisation ........................................... 25

4. - FUSION DES CHAINES .................


30

5• - TERMES COMMUNS AU TROISIEME NIVEAU .......


37
- II -

Pages
O. — KO.LE DU C Ai. Ali xoEUR ...«»»..««•..«....«...«.«•••••••»• •••••.. HU

7- - CONFIGURATIONS : "â(a+b)+b(a+b>" avec l'opérateur NI


"(x+xy) (y+xy)" avec l'opérateur ON 47

8. - RECHERCHE ET MISE EN EVIDENCE DE TERMES ET DE GROUPEMENTS

D'OPERATEURS COMMUNS A PLUSIEURS CHAINES 52

9. - FUSION DES CHAINES AU TROISIEME NIVEAU . 62

10. - FUSION AVEC AUTORISATION DE PRODUITS "DIRECTS" OU "HYBRIDES" 65

11. - MISE EN EVIDENCE DE PORTIONS DE CHAINES COMMUNES A NIVEAUX

DIFFERENTS 71

12. - FUSION DE CHAINES NE CONTENANT QUE DES ELEMENTS SERVANT A LA


COMPLEMENTATION DE SIGNAUX 75

CONCLUSION 77

ORGANIGRAMME 78

Deuxième Partie :

METHODE DE DECOMPOSITION

1 . - PRINCIPE GENERAL 79

2. - DECOMPOSITION FONCTIONNELLE 80

2.1. Les différents procédés 80


2.2. La décomposition disjointe simple 81

3. - ORDRE DE PARTITION 88

4. - ORDRE DE DECOMPOSITION CHOISI - CAS GENERAL 93


4.1. Choix d'un ordre de partition 93
4.2. Cas général 9^

5. - NOMBRE DE DECOMPOSITIONS - BORNE SUPERIEURE DU COUT MINIMAL 95


5.1. Nombre de décompositions 95
5.2. Borne supérieure du coût minimal (Cm:j_n) 96
sup
- III -

Pages
EXEMPLE
99

7. - LES FONCTIONS 0 BOOLEENNES


106
7.1. Les critères de décomposition .... 106
7-2. Les formes obtenues
107

8. - UTILISATION PRATIQUE - LA PROGRAMMATION 108


8.1. Mode opératoire ......,,
108
8.2. Les programmes 111
8.3. Organigrammes et résultats 114

9. - CONCLUSION
136

CONCLUSION

1. - LES SOLUTIONS ENVISAGEES


137

2. - L'ORIENTATION FUTURE DE L'ETUDE


139

BIBLIOGRAPHIE
141
INTRODUCTION : OBJET DE L'ETUDE

1. - POSITION DU PROBLEME

L'étude théorique d'un appareil séquentiel est communément consi


dérée comme achevée quand les différentes matrices ont été établies et
codées, et que les fonctions logiques en ont été déduites.

Cependant, entre la connaissance des diagrammes et le câblage de


l'appareil un travail important reste à fournir :

- Etablissement, à l'aide de fonctions élémentaires données [NI,,


Ou Non (ON), bascules, différents bistables, etc.], des cir
cuits théoriques représentant les diverses parties de l'appareil.
Cette étape inclut la recherche de solutions optimales. Plus en
core que pour les suivantes, l'habileté et l'expérience de 1'ingé
nieur- interviendront seules dans la recherche du nombre minimal
d'éléments nécessaires, compte tenu des impératifs de fiabilité.
- Séparation du circuit théorique en groupes compatibles avec les
éléments de microstructures intégrés disponibles, dans une tech
nologie déterminée.

- Disposition des éléments intégrés sur différentes plaquettes de


circuit imprimé.

- Réalisation des schémas de câblage et des masques correspondants


des plaquettes, en prenant soin d'éviter : d'une part les croise-
tZi •

ments qui imposent l'utilisation de "trous métallisés"; d'autre


part les connexions trop longues.

Préparation des "feuilles de câblage" qui désignent les liaisons


entre les différentes plaquettes et les organes de commande et
de signalisation de l'appareil.

2. - PRESENTATION DE L'ETUDE

2.1. Son but

On se propose d'établir un lien entre la conception théorique et


la réalisation, qui doit être systématique et se traduire par des pro
grammes permettant à l'aide d'un ordinateur, de passer directement des
fonctions logiques aux dessins des masques de plaquettes de circuit im
primé. Les différents schémas intermédiaires seront fournis directement
sur traceur de courbes et les "feuilles de câblage" sur imprimante.

. L'intérêt de ce travail sera d'aboutir à :

- l'automatisation de chacune des étapes citées.


- Un gain de temps considérable.

- L'optimalisation des solutions liée non plus à l'expérience du réa


lisateur, mais seulement aux possibilités des programmes, toujours
susceptibles d'amélioration.

- Une fiabilité et une reproductibilité meilleures.

- Des avantages pour l'utilisateur : dans l'Industrie, le gain réa


lisé sur chaque circuit est multiplié par le nombre d'appareils
fabriqués; dans un Organisme de recherche, des projets plus nom
breux peuvent être étudiés dans un temps donné.

2*2* Caractéristiques et difficultés

Les différentes parties de ce travail (établissement des circuits,


découpages, implantation, schémas de câblage ...) peuvent se considérer
3.

séparément, et faire l'objet de recherches indépendantes. La part essen


tielle réside dans la recherche de méthodes permettant d'établir, à
l'aide d'opérateurs élémentaires NI (NOR) et ON (NAND), les circuits de
coût minimal réalisant des fonctions booléennes données. Nous avons sys
tématiquement utilisé ces fonctions disponibles sur le marché, et em
ploierons les désignations NI et ON dans les questions d'algèbre, et les
appellations anglaises correspondantes NOR et NAND dans les questions de
technologie.

Rappelons que ces fonctions, schématisées ci-dessous :


NI (NOR) ON (NAND)

â.b =a+b =a/ b d| y^ a+b =0;E .. a/ ,,


b
(NI) (Non OU) (Ou Non) (Non ET)

sont toutes deux commutatives, mais non associatives

NI : ON :
(a / b) / c = (a+b) c (a / b) / c = a. b + c
a / (b / c) = â (b+c) a / (b / c) = â + b c

Ce dernier fait est une source de grandes difficultés.

Par ailleurs, il n'est actuellement pas possible, pour une fonc


tion logique donnée, de prévoir quelle en sera la réalisation la plus
économique. La seule possibilité offerte est la comparaison des résul
tats obtenus par différentes méthodes.

Une seule permettrait de déterminer ce minimum : essayer systéma


tiquement toutes les combinaisons possibles d'un nombre croissant d'élé
ments jusqu'à obtention de la fonction désirée.

HELLERMANN /1 / a appliqué cette méthode aux fonctions de trois


variables, en se limitant aux éléments à trois entrées : il a pu déter
miner que toutes les fonctions de trois variables étaient réalisables
avec au plus sept éléments. La méthode présente cependant deux gros in
convénients :
:_ •-.^ _

a) Pour une fonction donnée, on doit considérer une liste impor


tante de circuits : ce sont toutes les combinaisons possibles
d'éléments, en nombre inférieur ou égal à celui nécessaire à la
réalisation de la fonction.

b) Le "Temps machine" requis est trop important : il a fallu à


HELLERMANN environ 26 heures avec un ordinateur IBM 7090 pour
obtenir la liste des circuits minimaux correspondants aux 256
fonctions de 3 varaibles.

Rappelons qu'à n variables binaires correspondent : 22 fonctions


soit :

256 pour n = 3
65 536 pour n = 4

Par suite, cette méthode ne semble pas être exploitable quand le


nombre d'éléments à combiner va croissant. Elle a cependant permis d'é
tablir une table des circuits minimaux des fonctions de trois variables
qui nous a beaucoup servi tout au long de cette étude.

2.3- Méthodes envisagées

Il apparaît donc deux voies possibles pour cette étude :

a) Etablir une méthode heuristique à partir de l'étude systématique


de circuits minimaux; telle est la voie que nous avons tenté de
suivre en établissant la "Méthode de fusion des chaînes et de
combinaison des éléments", après avoir exploré chacun des sché
mas de la table d'Hellermann pour en déduire des transformations
générales, exploitables pour un plus grand nombre de variables.

b) A partir des études faites sur les propriétés des fonctions


booléennes, exploiter celles offrant le plus de possibilités
et de souplesse pour bâtir une autre méthode plus rigoureuse
qui pourrait servir de base de comparaison. Nous sommes ainsi
parvenus à une "Méthode de décomposition".
5.

PREMIERE PARTIE

METHODE DE FUSION DES CHAINES ET DE COMBINAISON DES ELEMENTS

Méthode heuristique qui vise à établir de manière automatique les


circuits de coût minimal des fonctions booléennes. Les différents algo
rithmes sont déduits de l'étude systématique des circuits minimaux
réalisant les fonctions de trois variables.

1. - GENERALITES

1.1. Chaîne et nive au

Dans un circuit combinatoire une chaîne est une cascade d'éléments


(opérateurs)disposés en série, qui aboutit sur l'élément terminal. Le ni
veau d'un élément est son rang dans la chaîne en considérant comme ni
veau 1 l'élément terminal; le pénultième élément de chaque chaîne est
donc au niveau 2, l'antépénultième au niveau 3, etc..

1.2. Les coûts : coût général et coût relatif

Le coût général (ou coût) est difini par l'ensemble des deux nom
bres :

- nombre d'éléments de logique nécessaires pour la réalisation du


circuit ;
~ nombre de connexions intervenant pour le câblage.
Coût relatif

Nous disposons d'éléments technologiques (modules) présentés sous


forme de boîtiers insécables, de même prix, contenant soit :
1 fonction logique élémentaire NOR ou NAND à 8 entrées
2 " " ii ii ii ^ „
3 " " » h n 3 n
4 » " M 11 n 2 n

On nuancera donc la définition précédente en associant à chaque type i


d'élément (ou fonction logique élémentaire à k entrées) un coefficient
Cl, plus petit commun multiple des nombres d'opérateurs contenus dans
chaque boîtier, soit :

Cj_ = 12 - pour un élément à 8 entrées


" " 6 - " " " •k "
• " " if _ Il II II 3 ||
ii n 3 _ h ti n 2 il

Le coût relatif d'un circuit sera ainsi représenté par le nombre :

Ç C± x Nj_ = CR N± étant le nombre d'élé


ments de type i.

1 .3• Prix

Il est déterminé par le nombre de boîtiers nécessaire. Cependant,


nous garderons cette notion pour les réalisations définitives. En effet,
une même carte de circuit imprimé peut comporter plusieurs fonctions
différentes; ainsi, les éléments non employés de certains modules à élé
ments multiples peuvent être utilisés pour des circuits voisins. Il
faudrait donc prévoir un facteur correctif beaucoup trop aléatoire pour
que le prix effectif d'un circuit isolé puisse être défini avec préci-
sion.

Le prix des circuits n'interviendra donc qu'au moment de la répar


tition sur cartes imprimées des ensembles importants.
7.

Les définitions précédentes sont illustrées par le schéma ci-


dessous :

niveau 5

: (C) =11-24
CoÛt Relatif : (CR) =
= 6
6 +
- 2(4) + 8(3)

= 38

Remarques 1°) Des éléments, voire des portions entières de chaînes,


peuvent être communs à plusieurs chaînes.

2°) Un élément commun à deux - ou plusieurs - chaînes peut


être à des niveaux différents sur chacune d'elles.
Ex. : l'élément (•////) est au niveau 5 sur la chaîne 4
n ii if n n h 2

1.4. Principe général :/ '

Le circuit établi directement sans aucune précaution a une forme


arborescente comprenant plusieurs chaînes. De plus un certain nombre
d'éléments sont utilisés pour obtenir le complément des variables dont
l'utilisateur ne possède que la forme directe.

Le procédé consiste à regrouper le plus de chaînes possible en une


seule. Cette fusion est effectuée en observant certaines règles restric-
8.

tives qui permettront les opérations suivantes :

- Une recherche et une mise en évidence systématique dans les chaî


nes non fusionnées de termes qui pourront être rendus communs,
donc réalisés une seule fois à un même niveau pour diverses por
tions du circuit.

- L'utilisation d'un même élément à des niveaux différents dans


plusieurs chaînes, cet élément commun pouvant jouer un rôle com
plémentaire dans chacune des chaînes.

Ces différentes opérations ont en même temps l'avantage d'éliminer


au maximum les éléments dont une seule entrée est utilisée.

Nous parviendrons à ces résultats en prenant soin à chaque opéra


tion /2 / , /3 / :

a) d'interdire l'apparition de certains termes :

'- produits direct a.b.c, ou hybride tel que â.b.c" si on utilise des
NI;

- sommes directe a+b+c, ou hybride telle que â+b+c si on utilise des


ON;

b) de favoriser certains groupements :

- avec des NI : x*.y.z, ou : a+b+ê.f+c.d

- avec des ON : x+y+z, ou :a.b.(ê*+T) .(c+d")

La méthode présentée étant établie à partir de l'étude systématique


de circuits, rappelons tout d'abord deux propriétés triviales portant
sur la périodicité du rôle des éléments suivant leur niveau :

1°) Si l'on considère le signal de sortie du circuit, les éléments


placés à un niveau impair effectuent un "produit logique" - ou
intersection - dans le cas NI - (une "somme" logique - ou réu
nion - dans le cas ON); ceux placés aux niveaux pairs une
"somme" logique - cas NOR - (un "produit" logique dans le cas
NAND).

2°) Pour les deux fonctions logiques élémentaires NI et ON, un si


gnal d'entrée apparaît à la sortie sous forme directe ou complé-
9.

mentée, suivant qu'il est introduit à un niveau pair ou impair.

NOR : e.[d+c.(a+b)]
NAND : ë+d.(c+a.b)

EXPOSE DE LA METHODE

2. - CHOIX D'ECRITURE ET SIMPLIFICATION

L'organigramme (p. 78) fait apparaître les opérations suivantes :

2.1. Choix de l'écriture

- Si l'on désire réaliser le circuit avec des éléments NOR, la


fonction sera mise sous forme de produits de sommes logiques
(intersections de réunions).

- Dans le cas d'une réalisation avec des fonctions logiques élé


mentaires NAND, la fonction sera présentée sous forme de somme
de produits (réunion d'intersections).

En effet, considérons par exemple, représentée par les deux formes


possibles d'écriture normale, la fonction :

f = x+u.z"+y.u + y.zT (1)

= (x+y+z ). (x+u+y). (x+u+z~) (2)

et envisageons sa réalisation directe, sans aucune transformation, par


des éléments NOR (NI), puis NAND (ON) :
10,

technologie NOR

C = 7 - 13

CR = 24

C = 6 - 14

technologie NAND

C = 7 - 13

CR = 24
11.

C = 8 - 16
*2)
CR = 28

Cet exemple simple, en illustrant le choix d'écriture permet d'intro


duire trois remarques :

a) s'il n'y a pas de limitation quant au nombre possible d'entrées


des éléments, seul ce choix d'écriture permet d'établir dans
tous les cas des circuits à trois niveaux;

b) la forme (1) correspondant à la technologie NAND, chaque inter


section - ou ninterm - correspond à une chaîne du circuit; de
même pour la forme (2) chaque réunion entre parenthèses - ou
maxterm - correspond à une chaîne dans une réalisation en élé
ments NOR;

c) il est nécessaire de simplifier les fonctions : en effet, dans


les deux formes (1) et (2) nous avons introduit un terme redon
dant :

- dans ( 1 ) : u."z
- dans (2) : (x+u+z") .

Il suffit de se reporter aux schémas précédents pour constater que


l'omission de simplification provoque une augmentation inutile des coûts,
(Les éléments correspondant à la réalisation des termes redondants sont
hachurés).
12,

Les coûts sont alors :

(1) (2)

C
CR C . '
CR
NOR 6-10 19 5-10 17

NAND 6-10 19 7-12 23

Note : La transposition d'une forme d'écriture à l'autre - opérât ion

bien connue /4 / - /5 / - s'effectue aisément à partir de la


table de vérité de la fonction.

Exemple :
ABC F - sous forme de "somme de produits" :
0 0 0 0
0 0 1 1 F = a b c + a b c + abc~+abc"
0 1 0 0 = â c + a c
0 1 1 1
1 0 0 1 - sous forme de "produit de sommes" :
1 0 1 0
1 1 0 1 développement par rapport à F (lignes correspon
1 1 1 0 dant à F=0) où on remplace les 0 par 1 (et les 1
par 0) dans la table de vérité.

=2>F(=F) = (a+b+c) (a+b+c) (â+b+c) (â+b+c")


= (a+c) ("â+c*)

2'2' SimPlificatj.on de la fonction par la méthode de QUINE- Me CLUSKEY

Nous avons vu (paragraphe 2.1) la nécessité d'épurer la fonc


tion de tout terme redondant. Pour procéder à cette simplification,
nous appliquerons l'algorithme de QUINE - Me CLUSKEY /4 / - /5 / /12/.
2.2.1. Fonctions_complètement spécifiées
L'application du procédé comprend quatre étapes.
a) La fonction étant donnée, établissement de sa table de vérité.
Suivant l'opérateur technologique utilisé pour la réalisation du
circuit (§ 2.1), on effectue les opérations suivantes avec ou
sans transposition préalable.
13.

b) Simplification avec mise en évidence des implicants essentiels


et des différents implicants premiers de la fonction.

c) Détermination de toutes les bases premières irredondantes (B.P.I.)


à partir du tableau des implicants.

d) Reconnaissance des termes catalyseurs associés à chaque base pre


mière irredondante (ou B.P.I.). Ce sont les différents implicants
premiers n'intervenant pas dans la B.P.I. considérée. Leur nom
provient de l'effet de catalyse /2 / qu'ils produisent lors de
l'application des algorithmes d'établissement des circuits. Nous
préciserons leur rôle ultérieurement (§ 6).

Exemple : Soit une fonction de quatre variables dont on a établi la


table de vérité :

A B C D F

0 0 0 0 0

0 0 0 1 0

(1) 0 0 1 0 1

0 0 1 1 0

0 1 0 0 0

(2) 0 1 0 1 1

0 1 1 0 0

(3) 0 1 1 1 1

(4) 1 0 0 0 1

(5) 1 0 0 1 1

(6) 1 0 1 0 1

(7) 1 0 1 1 1

(8) 1 1 0 0 1

(9) 1 1 0 1 1

1 1 1 0 0

10) 1 1 1 1 1

Désirant sa réalisation à partir de fonctions élémentaires


ON (NAND), on numérote les lignes correspondant à 1 de la fonc
tion donnée (§ 2.1).

Ces différentes lignes sont groupées en classes suivant le nombre


de 1 qu'elles contiennent :
...

14,

Classe 0 : • .__ ZÎÉ2_.

(1) 0 0 1 o *
Classe 1
(4) 1 0 0 0 *

(2) 0 1 0 1 *

(5) 1 0 0 1 *
Classe 2
(6) 1 0 1 o *

(8) 1 1 0 0 *

(3) o 1 1 1 *

Classe 3 J (7) 1 0 1 1 *

(9) 1 1 0 1 *

Classe 4, {. (10) 1 1 1 1 *

Il convient maintenant de comparer chaque terme d'une classe avec


tous ceux contenus dans les classes adjacentes. Deux implicants
ayant une distance de 1, sont groupés en un terme, où un tiret(-)
remplace le chiffre différent.Simultanément, on note l'origine du
nouvel implicant et on coche (*) les groupements dont il est issu;
si après l'opération il reste des termes non cochés, ils sont
ajoutés au nouveau tableau.

(D - (6) - 0 1 0
(4) - (5) 1 o 0 - * implicants issus
/; , ,-. des classes 1 et 2
(4) - (6) 1 o - o *
i^_:__i§2 1 z 2.2*
(2) - (3) o 1 - 1 T" ~
(2) - (9) - <| o 1 * implicants issus
(5) - (7) 1 0 - 1 des classes 2 et 3
(5) - (9) 1 - 0 1 *
(6) - (7) 1 o 1 - *
ǧ2_=. (9) .„!„, ;H o_ -
(3) - (10) - 1 -i 1 ""*""
(7) - (10) 1 _ .j, 1 * implicants issus
(9) - (10) 1 1 _ -| * des classes 3 et 4
15.

On recommence l'opération jusqu'à épuisement des adjacences.


Deux implicants ne peuvent être groupés maintenant que si, de
plus, leurs tirets correspondent à la même variable :

(1) - (6) - 0 1 0

(4) - (5) - (6) - (7) 1 0 -


- «_.

(4) - (5) - (8) - (9) 1 _


0 _. -«-o

(4) - (6) - (5) - (7) 1 0 - - J


(4) - (8) - (5) - (9) 1 - 0 - «-

(2) - (3) - (9) - (10) _


1 _ 1 <r—i

(2) - (9) - (3) - (10) - 1 - 1 <s_

(5) - (7) - (9) - (10) 1 - - 1 ««—I

(5) - (9) - (7) - (10) 1 _ —


1 >«-

Par suppression des termes identiques apparus plusieurs fois (indi


qués par des flèches), nous obtenons la liste des implicants premiers
de la fonction :

(1) - (6) - 0 1 0
1
(4) - (5) - (6) - (7) 1 0 - -

(4) - (5) - (8) - (9) 1 - 0 -

02) - (3) - (9) - (10) - 1 _ 1

(5) - (7) - (9) - (10) 1 _ „


1

La recherche des bases premières s'effectue alors en dressant un


tableau; les colonnes représentent les états définis par la table de
vérité, les lignes les implicants premiers. Les intersections (*) in
diquent ;1'origine de chaque groupement.

(D (2) (3) (4) (5) (6) (7) (8) (9) (10)

-se -2f-

•4h -*- •*f-

4h -JS- 4$.

-3K- -*{- •**• ^r

•m-
16.

Les implicants essentiels (implicants correspondant à une seule *


sur une colonne) font partie de toutes les bases premières irredondantes
(B.P.I.), ici : I , I, , i_ .
1 4 ' 3

Pour définir une B.P.I. il suffira ici d'ajouter à I T T


1 ' 3 ' k-
l'un des deux implicants I ou I . (Tous les termes de la table de vé
rité sont alors représentés). Si l'on ajoute I£ et I on définira bien
une base mais elle sera redondante.

Nous avons donc obtenu deux B.P.I. :

a) B.P.I. = 1^ l2 I^ i^ _ un terme catalyseur ; I


soit : f = bcd+ab"+ac + bd - » it . ad

b) B.P.I. = 1^ 1^ i^ i^ - un terme catalyseur t I


soit :f=FcT+ac"+bd+ad - " îi . „ r-

Remarques :

1) On peut déterminer de manière plus automatique les bases pre


mières. On développe l'expression booléenne obtenue en groupant
par réunion les implicants premiers correspondant à chaque co
lonne :

I1'I4oI4-(VI3)-(I2+I3+I5)-(I1+I2)"(I2+I5)-I3«(I3+I4+I5)'(VI5)
. on obtient : -I„ T T i
12 3 4-
ITT T T
1 2 3 4 5
T T T T
1 3 4 5
trois bases premières, mais non toutes irredondantes.

2) Pour obtenir les B.P.I., dans l'expression ci-dessus on élimine


les parenthèses comprenant un implicant essentiel (I ,1 ou
v: v w (i2 +y 3
on obtient bien les 2 B.P. I. : ^ .1^.^.^ et I^I^.I I
les implicants premiers n'intervenant pas sont les catalyseurs.
3) Le nombre de B.P.I., ou de catalyseurs, pour une fonction peut
être très grand.
17.

Par exemple pour la fonction de 4 variables :

f = â„d.(b+c) + d.(â.b+b.c) + a.(b.c + c.d + c.d)


nous avons pu déterminer par programme /15/ qu'elle se définit
par 10 implicants premiers (dont un seul essentiel) qui fournissent
13 B.P.I.

Les implicants sont I. = a.b .d

Ip = â.c". d
1^ = â".ïï. c
a.c . d
h =
= a. c". d

= b.c .d

= a.c.d
7
= b. c"

= b.d

= a.b
"10

5 étant l'implicant essentiel, f admet

- 9 B.P.I. de 6 implicants; chacune admettant. 4 catalyseurs associés


-4 " "7 " . n n 3 „ „
L'ordre dans lequel sont donnés les résultats ci-dessous est celui
fourni par le programme /15/
D B.P.I. = 1 T Iq j- -catalyseurs: | I
*• 1 7 L8
2) B.P.I. = | I II

3) B.P.I. = { I II
I10^
4) B.P.I.. s | I It
Z10}
B.P.I. = { I
f!2' L3 h M
5) II

6) B.P.I. =(I1 II
M
7 L8 C10}' M
7) b.p.i. = ./ 1 II

8) B.P.I. =j I ^1}-
Lio!
M
\h
B.P.I. a { I
X10K
"11 ib
9) L? II

10) B.P.I. s | I
9 Iio}"
H
{h h}
IA', 1
8'- M
11) ij.Jr.l. ~ H 1 II
' 2 LC1 ^Ol
I8' Iio} ib
12) B.P.I. = { I
J10}
11
L3 ' x7 » ^9 > h }
13) B.P.I. = / I ib
I10}' *7 >
18.

Le nombre de bases premières peut être plus important encore. Grâce


au même programme, nous avons pu établir par exemple que la fonc
tion f = â d (b+c) + a c (b+d) + d (a b+b c), à partir de 12 impli
cants premiers - dont aucun essentiel - admet 44 B.P.I.

Notons que lors de l'application des algorithmes d'établissement


(cf. organigramme p. 78) nous éviterons au niveau des "permutations"
de présenter plusieures fois les mêmes combinaisons :

Par exemple, pour la fonction ci-dessus ;


Après avoir traité la combinaison ; B.P.I. n°1 avec catalyseur I
on éliminera » " : B.P.I. n°2 " " j
1

Autrement dit : on n'envisagera qu'une fois l'ensemble :


lZ1' I25 I3' I5' ^7' X&* ^9} Pour la suite du traitement.

2.2.2. Fon5tions_0_booléennes_-_ou_incomplètement_s£écifiées
L'opération de simplification s'effectue de la même manière que pour
les fonctions complètement spécifiées : on introduit les états dis
ponibles comme les précédents; la différence vient du fait qu'ils
ne pourront définir à eux seuls d'implicant premier. Pour cela il
suffit de ne pas les faire intervenir dans le numérotage initial.

JÎSga&k® : Soit la fonction définie ci-dessous par sa table de vérité,


et dont on désire la réalisation du circuit en éléments
NI (NOR) ;

D A B C D
transposition
0 0 0 0 0 1 1 1 1 (1)
0 0 0 1 1 (cf. § 2.1)
0 0 1 0 1 1 1 0 0 (2)
0 0 1 1 0 1 0 0 1 (3)
0 1 0 0 1
0 • 1 0 1 1 0 1 1 1 (4)
0 1 1 0 0
0 1 1 1 1 0 1 1 0 (5)
1 0 0 0 0
1 0 0 1 0 0 1 -0. 1
1 0 1 0 0
1 0 1 1 0 0 1 0 0
1 1 0 0
0 0 1 1
1 1 0 1 0 0 0 1 0
1 1 1 0 0 0 0 0 1
1 1 1 1 0 0 0 0 0
19.

Lors de la transposition, on garde seulement les lignes qui défi


nissent la fonction et ses états disponibles (lignes non numéro
tées) .

On groupe les implicants par classe, et on effectue la simplifi ca-

tion :

0
0 0

N
*
0 0 0 1 0 0 0
*
0 0 1 0 0 0 _0_
*
0 1 0 0 (3) 0 1
*
1 1 0 0 (2) 0 0 1
*
1 0 0 1 (3) 0 1
*
0 1 1 0 (5) (5) 0 1 0
*
0 1 0 1 0 0 1
*
0 0 1 1 (2) 1 0 0
*
0 1 1 1 (4) (5) 0 1 0
*
1 1 1 1 (1) 0 1 0

(4)-(5) 0 1 1

(4) 0 1

(4) 0

(D-(4)

*
0 0 - -
(4)-(5)
*
0 0
- -

(3) 0 0 1
*
0 - -
0 (5) (2) 1 0 0
*
0 - - 1 (4) (D-(4) 1 1 1
*
0 - 1 -
(4)-(5)
*
0 1 - -
(4)-(5)
- 0 0 1 (3)
- 1 0 0 (2)
-
1 1 1 (D-(4)

(1) (2) (3) (4) (5)

i i j [

.... s

k-, . — it
20.

Les quatre implicants déterminés sont essentiels, la fonction n'est


définie que par une seule B.P.I., qui n'admed aucun catalyseur
associé :

f = â (b+c+d) (b+c+d) (b+c+d)

3- - CODAGE ET REPRESENTATION DES FONCTIONS ET DES CIRCUITS CORRESPONDANTS

3-1. Caractéristiques

Le passage de l'écriture booléenne au schéma du circuit est en gé


néral incommode; l'opération réciproque également. D'autre part, toute
modification de la forme de la fonction implique un nouveau dessin de
représentation.

Il nous fallait donc un codage qui satisfasse à certaines condi


tions :

1) Représenter aussi bien la fonction booléenne (lecture aisée) que


le circuit la réalisant.

2) Permettre la représentation des fonctions selon les deux formes


•d'écriture normale (intersection de réunions et réunion d'in
tersections) .

3) Maintenir pour les deux formes la réciprocité fonction-circuit.

4) Faire apparaître simultanément toute modification d'écriture et


de circuit.

5) Etablir de manière simple les coûts (§ 1.2) des différentes


réalisations.

- Dans le cadre de la méthode exposée :


6) Permettre une application des algorithmes plus aisée et systé
matique que par la seule écriture littérale.

7) Proposer une notation complète aisément programmable sur ordi


nateur.
21.

Pour répondre à ces impératifs, nous proposons la notation suivante;

Nous avons vu qu'il est nécessaire de faire un choix d'écriture


selon la réalisation technologique envisagée, et qu'alors, chaque grou
pement de termes (§ 2.1) représente une chaîne du circuit.

Tenant compte aussi des remarques précédentes (§ 1.4), nous figu


rons les chaînes du circuit en lignes, les niveaux des éléments en co
lonnes. Chaque élément est représenté par un cartouche contenant l'in
dication des signaux y arrivant.

Considérons à nouveau les exemples du § 2.1 :

a) La forme (1) correspond à une réalisation en technologie NAND :

f = x+uz + yu + yz

Comme nous l'avons vu, chaque intersection de base est une chaîne;
considérons la notation intermédiaire suivante qui présente des ana
logies :

X Y U 1°) avec la fonction : dans chaque


j cartouche on retrouve un
"minterm" ;
X
T_,_._
Y Z U
___.______„

2°) avec le circuit : nous retrou


vons :

a/ l'élément terminal (en


pointillés) au niveau 1,
en première colonne, où
n'arrive aucun signal di
rect, mais les sorties des
niveau 1 niveaux 2 et 3
éléments en amont;

b/ les niveaux 2 et 3 sont re


présentés à la 2ème colon
ne : chaque élément du ni
veau 2 est représenté-„par uni cartouche de la colonne, les entrées
sont les signaux correspondant aux 1. Les éléments du niveau 3 sont
symbolisés ici par les 0 (ce sont les éléments nécessaires à la'bom-
-plémentation" des signaux) .
22.

Nous parvenons ainsi au codage

CNAND~\ X Y Z U | X Y Z U
_(.QN).y
1 x chaîne 1
X Y Z U
_rn__
0 «ç. _. u.z chaîne 2
... ,
.

I 1 1 <-- y.u chaîne 3

" "-""

0 <:-] y.z chaîne 4

_ _,_

niveau 1 niveau 2 niveau 3

u
23,

Les analogies sont évidentes :

1°) avec la fonction •: il suffit de considérer les remarques sur


la périodicité du rôle des éléments (§ 1.4). Chaque"minterm"
est lu par ligne à partir du niveau 2 (2ème colonne), et tous
les cartouches en amont sur la même ligne ou les lignes adja
centes inférieures lui sont associés. On retrouve bien :

1ère ligne = 1ère chaîne = x


2ème ligne = 2ème chaîne = u.z
3ème ligne = 3ème chaîne = y.u
4ème ligne = 4ème chaîne (ramifiée au 3° niveau)=y.ï

2°) avec le circuit : il suffit de comparer le codage au circuit


correspondant. Chaque niveau est symbolisé par une colonne de
cartouches; chaque chaîne est représentée en ligne à partir du
niveau (ou colonne) 2, ses ramifications sont indiquées par
tous les éléments adjacents qui apparaissent aux niveaux supé
rieurs (sur schéma : chaîne 4).

Remarque : Nous avons inversé la représentation des schémas afin


de souligner le parallèle entre ceux-ci et la notation
proposée.

b) La forme (2) correspond à une réalisation en technologie NOR (§2.1) :


f = (x+y+z") .(x+u+y) .(x+u+z)

ici, chaque réunion de base (chaque parenthèse) représente une chaîne;


nous utiliserons donc exactement le même codage, il suffit de rappeler
que nous utilisons des fonctions logiques élémentaires NI (NOR), et que
par conséquent, nous avons une périodicité intersection-réunion dans le
rôle des éléments (§ 1.4).
24.

Nous notons donc :

"nôr! X Y Z U X Y Z U
(NI)
1 1 0 <s (x+y+z) chaîne 1
X Y Z U
n

1 1 0 < (x+u+y) chaîne 2


n

1 1 0 *•— (x+u+z) chaîne 3

De la même manière l'exemple du § 2.2 (f défini par sa B.P.I.)


serait codé pour la suite du traitement sous la forme :

NOR A B C D A B C D

1 |•.0 |
A B C D

0
0

II
1 1 1

On reconnaît bien immédiatement la fonction :

f = â.(d+b+c).(b+c+d).(b+c+d)
dont le circuit est tout représenté par le codage (il convient de
remplacer les cartouches par les symboles triangulaires, et dessi
ner les liaisons - opérations qui sont immédiates -).

Remarque : Il suffit de remplacer l'étiquette "NOR" par "NAND"


(et réciproquement) pour passer de la fonction f à sa
duale f(j :
25.

NAND A B C D A B C D

1 0

B.

0
•I
1 0

1 1 1

Nous avons bien en effet :

fj = â+d.b.c + b.cT.d + b.c.d

de même les exemples ci-dessus donnent :

pour (a) duale par passage en "NOR" : fd = x.(u+z).(y+u)•(y+z)


pour (b) duale par passage en "NAND" : f-, = x.y.z" + x.u.y + x.u.z

3-2. Utilisation

3.2.1. Pour_les_algorithmes d'établissement

Nous verrons, lors de l'étude détaillée des algorithmes, qu'il


convient de trouver la forme booléenne de la fonction correspondant au
circuit qui sera de coût le plus bas.

Nous avons indiqué qu'en principe général (§ 1.4) nous cherchons


à rendre le plus d'éléments possible communs à plusieurs chaînes.

Par'exemple pour la fonction :

f = a.(b+c+d).(b+c+d).(b+c+d)

nous montrerons (§5.) que,pour le coût,il est intéressant de la trans


former en :
26,

f = a.(d+b.d+c).(b+c+b.d).(b+c+d) (a)
mais éviter de la présenter sous l'une des formes :

f =. a.(d+b+cd). (b+b.c+d) .(b+c+d) (a! )


f - a.(d+b. d+c.d). (b+b.c+b.d) .(b+c+d) (of")
car on a intérêt à faire uniquement apparaître des termes qui soient
communs.

Ces types de scrutation et de choix deviennent systématiques avec


le codage proposé :

NOR

— •

0
(1)

(2)
A B C D L,„ ,
0
:A (a)

ï 1 *"y
1 I j"* 0
1 I ' (3)

I '*•* i 0 (4)

'"•''""•—r~
1 1
1

en pointillés sont indiquées toutes les combinaisons possibles, c'est-


à-dire celles correspondant aux formes (o?), (a') et (»"). Il suffit
alors (§.5) à partir du premier cartouche puis des suivants (niveau 3),
de scruter par colonnes les autres cartouches; un binon (ou digit) dis
ponible (en pointillés) se voit confirmé si :

1°) les deux cartouches comparés sont compatibles (ex: (1) et (4);
(2) et (3); mais pas (1) et (2) ) ;

2°) le binon disponible correspond à un autre obligatoire (ex:(D


et (4)).

Ceux qui ne correspondent pas sont éliminés (ex : (2) et (3))


On a bien obtenu la forme (a) désirée; notons que l'écriture boo
léenne se prête assez mal à ce type d'investigation, surtout si le nom
bre de termes est grand.
27-

Nous rencontrerons aussi le type d'opération suivant :


f = (a+b+c+ë).(a+b+d+ë) (g)
mise sous la forme :

f = a+b+c.d+ë (v)

A B C D E A B C D
Soit NOR E

1 1
| 0

© 110
B E

n<=>
I ol
» i t

v * I '• 1
î
11 0 0! 1 1 0
| .

0
(B)

Pour opérer cette transformation, il faut trouver des "pivots" autour


desquels on effectue le groupement (fusion des chaînes § 4); un pivot
est défini soit par la correspondance de deux binons, soit par celle de
deux cartouches contenant les mêmes informations sur des chaînes diffé
rentes.

Sur le codage intermédiaire, ou complet, il suffit de constater :


1°) l'existence de ces pivots au deuxième niveau. (Les "1" se cor
respondent par colonne);

2°) au 3ème niveau déterminer les pivots (les "0" se correpondent


par colonne), et les termes à grouper : (les "0" correspondent
à une absence de binon).

Les termes à regrouper, ainsi définis, sont placés dans un même


cartouche; tous les autres, dédoublés jusqu'ici, ne sont plus réprésentés
qu'une fois :

© D E A B C D E

0 0

Nous trouvons bien ainsi la forme (y) désirée.


28.

Remarques :

1°) l'élément terminal ne sera en général pas représenté (sauf


dans le cas où un signal arrive directement à l'une de ses
entrées comme pour l'exemple (a) );

2°) les exemples donnés ci-dessus sont indiqués dans le cas "NOR".

Si on remplace l'étiquette par "NAND", les opérations sont


inchangées et il s'agit alors des fonctions :

F. = â+b.c.d+b.c-d+b.c.d (duale de a)

F = a.b.c .ë+a.b.d.ë" (duale de g)

3-2.2. Evaluation des coûts

Tels qu'ils sont définis (§ 1.2) leur estimation est simple :

a)" pour le coût général - ou coût -

- le nombre d'éléments est égal au nombre de cartouches différents.

Dans l'exemple (a) il est de 6 éléments. (Après la mise en commun)


Dans l'exemple (g) il est de 6 éléments. (Ne pas oublier l'élément
terminal)
Dans l'exemple (y) il est de 4 éléments. (Ne pas oublier l'élément
terminal);

- le nombre de connexions est égal à la somme des entrances de chaque


élément. L'entrance (nombre d'entrées) d'un élément est égal
au nombre de binons contenus dans le cartouche, ajouté au nombre
de cartouches qui lui sont associés au niveau supérieur (de la même
chaîne);

- il convient évidemment de ne compter qu'une fois les entrées d'un


élément représenté plusieurs fois, (cartouches dédoublés);

- quand il n'est pas représenté, l'élément de sortie (niveau 1), a


pour entrance le nombre de chaînes du circuit (le nombre de car
touches au niveau 2).
29-

Ainsi, le circuit (a) comprend :

(1+3) + (1+2) + (1+2) + (3) + (2) + (D liaisons


S / •* • y ^ .. ... '

niveau 1 niveau 2 niveau 3

soit : 16 liaisons

Le coût de ce circuit est donc : C =• 6 - 16

de même pour les circuits (g) : C = 6 - 13


(Y) : C = 4 - 8

b) Coût relatif

Il est défini (.§ 1.2) par :

CR « £ Cjl x Ni

Nj_ étant le nombre d'éléments de type i.

Nous avons déterminé ci-dessus le nombre d'entrées de chaque


élément en évaluant le coût général du circuit. Nous connaissons donc
le genre et le nombre des opérateurs; de là il nous est possible de calcu
ler le coût relatif directement :

Pour le circuit (o/) :

1 élément à 4 entrées (niveau 1) - C. = 6 soit : 6


i

3 " à 3 " (tous au niveau 2)- " =4 11


12

2 " à 2 " (tous au niveau 3)- " =3 n


6

24
CR -
Il en est de même pour les circuits :

(g) de coût relatif : CR = 24


(y) de coût relatif : C„ = 15

3.2.3. Programmation

Cette notation présente les avantages d'être codée en binaire,


et de se présenter sous forme de tableaux. La représentation en machine
se fera sous forme de binons dédoublés; en effet, ayant trois états à
30.

représenter (absence, '0' ou '1') chaque information contenue dans les


cartouches occupera deux digits de mémoire. La recherche de termes com
muns (binons disponibles ci-dessus) peut se faire soit par index, soit
par un troisième chiffre binaire.

Le programme, en cours de réalisation /15/, sera présenté sous


forme de nombreux sous-programmes en langage Assembleur (I.B.M. 360)
appelés par un programme principal écrit en Fortran IV.

4. - FUSION DES CHAINES

Nous avons souligné (§ 2) le lien que l'on peut établir entre la


forme d'écriture (réunion d'intersections ou intersection de réunions)
et la technologie choisie.

- Ainsi nous avons constaté que chaque"minterm"(dans le cas ON), ou


"maxterm"(dans le cas NI) correspond à une chaîne du circuit.
Le but de la transformation présentée ici est de réduire le nombre
des chaînes en opérant leur fusion. Exprimée sous forme booléenne elle
consiste en une mise en facteur de 'minterme/' (cas ON) ou un développement
de'maxterms" (cas NI). Ces opérations ne sont effectuées que si elles
satisfont certaines conditions (§ 1.4) .«

a) Dans le cas NI (NOR) :

- ne pas faire apparaître des termes du type "produit" : x.y.z


ni du type "hybride" : x.y.z
- rechercher des groupements du type : x.y.z
ou des expression de la forme : u+v+x.y.z+â b

b) Dans le cas ON (NAND) :

Les conditions s'expriment sous la forme duale du cas NI :


- on interdit les termes "somme" : a+b+c

et "hybrides : â+b+c

- on favorise l'apparition des expressions ayant la forme : â+b+c"


ou : a.b.(ë+d+f).(c+g)
31.

Ces conditions ont bien entendu pour but de permettre l'établisse


ment des circuits de coût minimal.

1er Exemple : Considérons une fonction de 5 variables; désirant sa réa


lisation à partir de fonctions élémentaires NI, elle est
simplifiée et mise sous forme d'intersection de réunions (§2.1) :

f = (a+b+c).(c+b+ë).(â+c+ë).(a+b+d)
(D (2) (3) (4)

Sous forme d'écriture booléenne, l'opération de fusion consiste à


rechercher les parenthèses, qui par développement, satisferont aux condi
tions énoncées ci-dessus;par exemple pour f, les groupements (Det(4) ainsi
que (2) et (3) vérifient les modalités d'application; f s'écrit donc :
f = (a+b+c.d). (â.b+c+ë)
dont le circuit est :

La notation proposée (§ 3) a l'avantage de rendre plus systématique


cette opération de fusion, surtout quand le nombre de termes (donc de
chaînes) est grand.

Nous reprenons cet exemple en utilisant le nouveau codage, et com


mençons par représenter la fonction sous sa forme initiale :
32,

(NOR \ A B C DE A B C D E
0O)_J
1 1 0

1 0
A B CD E C=10-21

0 CR=37

1 0

1 1 0

niveau 1 niveau 2 niveau 3

On évalue le coût de cette réalisation directe, qui nous servira


de coût de référence.

Cette estimation est simple à effectuer (§§ 1.2 et 3.2); elle


comporte :

Le "coût général" ou coût : C = 10 - 21


(soit: 10 éléments,
21 connexions)
Le coût relatif
V S?,.

Mode opératoire :

1°) On considère successivement deux à deux les cartouches de chaque


chaîne au niveau 2 :

- s'ils sont identiques par leur contenu, les deux chaînes peuvent
être fusionnées (ici : chaînes 1 et 4; et chaînes 2 et 3);
- s'ils diffèrent d'un seul binon, les deux chaînes considérées ne
peuvent subir 1 •opération de fusion (ici.:' toutes les combinai
sons différentes de (1,4) et (2,3).
33.

2°) On scrute le niveau 3 des chaînes vérifiant le critère précédent de


fusion; nous trouvons pour celles-ci :

un nombre ce. . de cartouches communs,

un nombre g. de cartouches présents dans i et non dans j,

un nombre g. de cartouches présents dans j et non dans i.

3°) On représente alors l'opération de fusion sous la forme suivante :

- au niveau 2 : un cartouche en remplace deux trouvés identiques


précédemment;

- au niveau 3 nous aurons pour la chaîne ainsi formée, un nombre


de cartouche :

K. . = a. . + g. g.

- a., cartouches représentent le contenu des précédentes jusqu'ici


dédoublés;

- g. g cartouches renferment les combinaisons des contenus de cha-


cun des cartouches du groupe (g.) avec ceux de (g.).
J

Remarquons que si la fonction est simplifiée avant traitement,


seul a. . peut être nul. En effet, si g (resp. g.) est nul, la
10 ij
chaîne de numéro j (resp. i ) est redondante. Si g. = g . = 0, les
x •J
chaînes i et j sont identiques, donc l'une des deux est superflue.

Pour l'exemple traité ici, nous voyons que :

a) les chaînes 1 et 4 vêri fient les conditions de fusion;


elles possèdent : a., = 0 donc pas de cartouche commun au 3ème
niveau

1 soit un cartouche n'existant pas sur


p1 = la 4ème chaîne
1 soit un cartouche n'existant pas sur
h - la 1ère chaîne

par conséquent : K^l = 1

b) les chaînes 2 et 3 peuvent être fusionnées;


elles ont : a^-, = 1

B2 = 1.

; h -" . donc :
K23 = 2
34.

Nous obtenons donc la représentation :

CNOR \ A B C D E A B C D E
(NI) J

A B C D E
1 1
I 0 0 <S- résultat de la fusion
des chaîne 1 et 4 :
( a+b+c d)

Sr -,
0 ,__ résultat de la fusion
des chaînes 2 et 3 :
——.

(c+ë+a.b)
0 0
^~ i

Soulignons l'intérêt de cette opération de fusion, qui a permis


sur cet exemple simple d'abaisser le coût à \ C = 6~13 20
R

Nous retrouvons bien le circuit précédent qu'il est dès lors inu
tile de dessiner. Notons que de plus la fonction est déchiffrable par
simple lecture de chaque chaîne.

Remarque : Considérons la fonction : F = a.b.c + c.ïï.ë + à.ce + a.b/a


présentée sous forme irredondante, et dont on désire une
réalisation technologique à partir des fonctions élémentaires ON (NAND);
remarquons que F est la fonction duale de f. Il est inutile de recom
mencer toutes les opérations; il suffit de remplacer l'étiquette "NOR"
par "NAND" :nous obtenons immédiatement le circuit correspondant à F,
de coûts : C = 6 - 13, CR = 20 , F ayant la forme :
F = a„b.(c+d) + cê".(â+b)

qu'il suffit de lire sur le tableau correspondant à l'opération de fu


sion effectuée précédemment pour f.

ièjne^feem^le : Soit une fonction g dont on cherche à établir le circuit


en technologie NAND (ON). Elle est donc simplifiée et
représentée par l'une de ses bases premières irredondantes (B.P.I.)
sous forme de réunion d'intersections (ou : "se
somme de produits logi-
ques") :

a.b.e + a.b.c.d + a.b.ce" + â.b.d.e + a.c . e


35

En fait, à ce stade, g est représentée par sa B.P.I. sous forme


binaire (§ 2.2); elle est donc aussitôt codée :

CnandA A B C D E A B C D E
*

0 j Coûts : C = 11 - 28
A
CR=53
0
Les différents symboles
1 0
(*, A, x, o, ®) indiquent

x
la réutilisation des éléments,
0
ils représentent uniquement
A B C D E une commodité pour l'évalua
«

tion des coûts (§§ 1.2 et


0
3.2)
o

1 0

1 il h

Il apparaît que les chaînes (1 et 2) et (3 et 4) peuvent être fusionnées;


nous obtenons donc :

a12 = 1 ; pn * 1 ; g2 = 2 soit : K^2 = 3


«3Zf = 2 ; g3 = 1 ; g^ = 1 soit : K^, = 3
36.

CNAND^S A B C D E B C D E
(ON) J I A
1 0

L 0 0
C =10-23
A B C D E
0 0 CR = 38

1 0

0 0

1 1 1

La fonction est ici sous la forme :

g = a.ïï.(c+ê).(d+ë) + b.a.ë.(c+d) + a.ce


et son circuit est représenté par le codage.

La remarque faite au sujet de l'exemple précédent est valable pour


tous les algorithmes : nous aurions traité de manière identique la fonc
tion duale de g :

G = (a+b+ë) (a+b+c+d) (â+b+c+ë) (â+b+d+ë) (a+c+e)


- a.b + â.e + a.b.ê + c.d.e + â.o.d.ë + b.c.d.e
en changeant seulement l'étiquette "NAND" par "NOR"; c'est-à-dire qu'on
obtiendrait le circuit de G à partir de fonctions élémentaires NI.
37,

5- - TERMES COMMUNS AU TROISIEME NIVEAU

Cette transformation représente le principe de base de la recherche


générale de termes communs (T.C.). Elle a pour but de rendre communs
aux différentes chaînes non fusionnées (§ 4) le plus grand nombre pos
sible d'éléments.

L'opération se traduit -sous forme littérale - par l'introduction


de certaines redondances permettant l'apparition d'expressions alphabé
tiques communes aux'feinterms" (ou 'maxterms1) définissant la fonction. Elle
est fondée sur la transformation booléenne :

a + b = a+~â.b

. et A.B = A.(Â + B)

A et B étant des expressions booléennes quelconques.

Cependant, l'introduction de tels termes redondants n'est évidem


ment effectuée que dans la mesure où elle favorise une réalisation de
circuit de faible coût. Des contraintes d'application interviennent
donc, inhérentes au principe même de la méthode (§ 1.4).

La transformation n'aura donc lieu que si :

1°) -a. en cas de réalisation avec des fonctions élémentaires ON (NAND),


apparaissent des termes du type : "x+y+z
l'opération ayant la forme générale :

h.Î.x.y.z » ï. y.z.(x+y+z).(h+y)

-b. pour une conception de circuit à base de fonctions élémentaires


NI (NOR), les termes mis en évidence soient du genre : â.b.c
l'opération étant :

a+b+c+d+ê => a+b+â.b. c+d+b.ë

2°) -a. dans le cas "ON" (NAND) :


n'apparaissent pas de termes du genre : y+x+h
ou : h+x+1

donc l'opération :

h.l .x.y. z x^> (h+x+1) .ï.x. (y+x+h) .z


est interdite.
38.

-b. dans le cas "NI" (NOR) :


l'opération est interdite si elle fournit des termes du type :
a. d. e ou :

b .c .d

donc : a+b+c+d+ë -/-> a.d.e+b+b.c.d+d+ë

3°) Ayant vérifié les deux conditions ci-dessus, et établi les termes
possibles, on ne garde que les combinaisons qui apparaissent dans
deux ou plusieurs chaînes. Les termes communs pouvant apparaître à
des niveaux différents du circuit, on compare entre eux les cartouches
de plus haut niveau de chacune des chaînes.

Mode opératoire :

Considérons la fonction g précédente (§ 4) :

g = a.b.ë+a.b.c.d+â.b.c.ë+â.b.d".ë+a.c. e

par fusion des chaînes, elle était sous la forme correspondant aux carac
tères pleins de la figure. On justifiera par la suite, l'introduction
des termes en pointillés.

NAND A B C D E A B C D E
(ON)
1 ;",
0

•"'' 0 0

A B C D E
0 C =10-23
CR =38
1

0
0

$ 0

1 1 1

correspondant à g = a.b .( c+ë) .(d+ë) + b.â.ê.(c+d) + a.c. e


39.

Les conditions d'application, ci-dessus, sont respectées, en opé


rant de la manière suivante :

1°) On considère tour à tour chacune des chaînes :

Les binons contenus dans le cartouche de niveau 2 sont reproduits


en pointillés dans chacun des cartouches du niveau 3 (de la même
chaîne).

2°) L'opération terminée, on compare deux à deux chacun des cartouches


de niveau le plus haut pour chaque chaîne (ici au niveau 3 pour les
chaînes 1 et 2, au niveau 2 pour la chaîne 3) : un binon disponible
(en pointillés) se voit confirmé s'il permet de rendre le cartouche
qui le contient, identique à celui auquel il est comparé.

Cette opération peut être effectuée plusieurs fois pour rendre plus
de deux cartouches identiques (la comparaison ne s'effectuant que deux
à deux) .

Nous obtenons donc pour g

CNAND N A B C D E A B C D E

1 0 0

0 0 0 C =8-21

A B C D E CR = 32
0 0

0 0

0 0

La fonction étant mise sous la forme

a.(â+b) .(a+c+ê). (d+e) +b.(a+b) .e. (c+d) +a.ce


I... zzz î
40.

Notons que sous forme de base première irredondante (donc déjà sim
plifiée) le circuit avait un coût : C =11-28
CR = 53
par opération de fusion des chaînes, le coût a été abaissé à :

C =10-23
CR = 38
par la recherche des termes communs au 3ème niveau, il a été ramené à :
C = 8 - 21
CR = 32

6. - ROLE DU CATALYSEUR

Le catalyseur a été défini, lors de la simplification de la fonction


par^l'algorithme de QUINE - Me CLUSTREY (§ 2.2) comme étant l'implicant
premier n'intervenant pas dans la base première irredondante de la fonc
tion.

Il peut jouer un rôle de catalyse lors de l'application des algo


rithmes précédents : fusion des chaînes et recherche de termes communs.
Aussi avons-nous souligné, en le définissant, la nécessité de présenter
en séquence les différentes combinaisons de la B.P.I. avec ses cataly
seurs associés. C'est ce que représente sur l'organigramme la phase
"permutations".

Nous donnerons ici quelques exemples illustrant leur intervention


de manière efficace; l'intérêt d'essayer toutes les combinaisons venant
du fait qu'on ne peut préjuger du résultat.

Exemples :

1) On considère la fonction de trois variables f que l'on désire


réaliser en technologie "NOR" (NI);sa base première irredondante
est donc exprimée sous forme d'intersection de réunions :
f1 = (a+b).(b+c).(â+b) - catalyseur associé : (â+c)
- établissement du circuit :
41.

Cr"" Hfe.
Nul N ABC ABC
(NÏÏJ
1 0

C te 7 - .14
ABC 1 0
CR = 24
0 I
1 0 catalyseur

* fusion dès chaînes 2 et 4 (4 étant le catalyseur)

NOR ^\ ABC ABC


(NIÎJ
,&!.

A B C
h 0
c =7-13
C« = 22
1 0 0 p^
* Termes communs

C =5-11
i Q 0
CH = 16

Recherche des termes communs : les trois éléments du troisième niveau


sont remplacés par un seul où arrivtnt les signaux a et b.

La fonction est sous la forme :

f. s (a+a b) (c+a b) (b+a b)


C =5-11
le coût de son circuit étant :
CR= 16

Notons que, sans l'utilisation du catalyseur, il n'y a pas d'opéra


tion de fusion possible, la recherche des termes communs donnant pour
résultat :
42.

CNOR "N A B C A B c
(NI) J
1 0
ABC
C =6-12

CR = 19
1 0
é
1 0

2) Soit la fonction fg définie par deux B.P.I. Chacune d'elles a


pour catalyseurs associés les implicants premiers de l'autre :

f:) = àc + ab + bc catalyseurs b c

a c

a b
ou

bc + ac + ab catalyseurs a c

à b

b c

Considérons la combinaison où l'on utilise l'une des B.P.I. associée à


tous ses catalyseurs. Cela revient ici à considérer, quelle que soit la
B.P.I. choisie, l'ensemble des implicants premiers :

(nant7\ A B C A B n

1 1 0

2 1i1 0

C =10-21
ABC
3 1 0 CR = 39

4 1 0

5 1 0

6 1 0
43,

On peut aussi, prendre ici comme coût de référence celui des B.P.I,
(il est le même ici pour les deux B.P.I.) : C = 7 - 12 , C =22

Opération de fusion : chaînes : (1-6) , (2-4) , (3-5),


suivie de la recherche de termes communs :

Cnand'N ABC ABC


(ON) J
1
ij 0 0
ABC
C =5-12
;"..
1 0 0 CR= 17

1 0 0 ':.)

3) Considérons une fonction f, ayant les mêmes caractéristiques


que la précédente - deux B.P.I. sans implicant essentiel dont
on cherche le circuit en technologie "NOR" (NI) :

f, = (a+b+c). (b+c+d).(à+b+d).(â+c+d)

catalyseurs associés : a+~b+d


â+c+d

â+b+c

b+c+d

ou

f-, = (a+b+d). (â+c+d). (a+b+c),, (b+c+d)

catalyseurs associés : a+b+c


b+c+d

â+b+d

â+c+d
44.

(NOR \ A ,B, C ,D A B C D
(NI) J
1 0

I 1 0

1 0

C =13-36
0 CR = 56

1 0
A B C D

\, 0

I 1 0

1 0

T 0

On peut choisir, ici aussi, comme coût de réfé rence, celui de l'une
des B.P.I. : C = 9 - 20 ; C,, = 34.
Il
45.

On effectue l'opération de fusion sur les chaînes : (1-5) (2-6)


(3-7) , (4-8). ' ' ''

On procède ensuite à la recherche des termes communs :

A B C D A B C D

1 .•"-: 0

0 0 0

1 0 0 0 C =7-20
A .B C D
CR = 28
•'*': 0

• *v
1 0

0 0
V*

1 0 0
$

0 ••-•.

la fonction prenant la forme :

f3 = (a+â.b+c.d).(b+â.b+c.d).(c+â.b+c.d).(d+i.b+c.d)
L'utilisation des catalyseurs a donc permis d'abaisser le coût du
circuit à : C = 7 éléments - 20 connexions,
et CR= 28

Notons que sans l'intervention des catalyseurs (les résultats sont


les mêmes pour les deux B.P.I.) :

1°) il n'y a pas d'opération de fusion : pas de couple de chaînes


vérifiant les conditions de fusion;
2°) les termes communs mis en évidence ne contribuent pas à diminuer
le coût du circuit : ce phénomène s'explique par le fait que cer
taines chaînes ne pouvant pas produire les mêmes groupements que
46.

leurs voisines, réclament l'utilisation de termes complémentés

NOR A B C D A B C D
C (NI) )
1 '•...•' 0

;A 0

a r p "n
1 0
A
':..' 0

<~>

7
1 0 *../*

0 P

k 11 0
0

0 .••"'•.

qui ne sont plus réutilisés.

Ici, pour les chaînes 1 et 2, l'élément qui fournit le complément


du signal b est à l'origine commun,il en est de même pour les si
gnaux : a (chaînes 3 et 4), c (chaînes 1 et 4), d (chaînes 2
et 3).

Ceci explique, la présence sur l'organigramme d'une évaluation de


coût après chaque opération; si le coût est augmenté par la transforma
tion, on annule celle-ci et on traite la fonction par l'algorithme sui
vant.
47.

7- - CONFIGURATION : "ï(a+b) + b(a+b)" avec l'opérateur NI

"(x+xy) (y+xy)" avec l'opérateur ON

Ces configurations duales résultent de fusions de chaînes d'un type


différent de celui indiqué précédemment (§ 4). Leur application réclame
des critères différents, et leur originalité vient du fait que c'est le
premier algorithme rencontré qui permette de construire des cir
cuits à plus de trois niveaux. Ce sera le cas de tous les sui
vants.

Nous indiquerons essentiellement le mécanisme de chacune des opéra


tions. Dans un but de clarté d'exposé, nous les illustrerons par des
réalisations de fonctions dépendant de peu de variables, ou de "fonc
tions partielles" f . Ces fonctions partielles sont des implicants,
extraits de la base première de la fonction, qui vérifient les critères
d'application de l'algorithme considéré. En effet, le nombre de chaînes
du circuit pouvant être très important, le traitement manuel est long
et malaisé. La transformation, complètement définie, prend tout son in
térêt une fois programmée; le traitement global de la fonction étant
effectué systématiquement par ordinateur.

Critères d'utilisation de la transformation :

1°) elle s'applique en général aux chaînes non fusionnées précédem


ment (§ 4) ;

2°) elle s'utilise pour certaines chaînes ayant subi l'opération


de fusion. Pour cela, il est nécessaire que les termes issus
de la fusion soient compatibles avec les modalités d'applica
tion.

Ce premier tri effectué, les chaînes subissent la transformation


si elles vérifient les conditions suivantes :

1°) elles contiennent un certain nombre de "pivots" (ce nombre peut


être nul) ainsi définis :
48.

a) au niveau 2 :binons dans les cartouches se correspondant;


ils sont au nombre de a;

b) au niveau 3, cartouches des deux chaînes ayant le même


contenu (termes communs), en nombre g;

2°) a) l'une des chaînes exclusivement (chaîne n°i) possède des


binons au deuxième niveau (en nombre y) que l'on ne re
trouve pas sur l'autre (chaîne n°j);
b) cette même chaîne (i), vérifiant la condition précédente,
n'a aucun cartouche au troisième niveau qui n'existe pas
sur la chaîne (j). C'est-à-dire que tout cartouche de (i)
au troisième niveau est un pivot.

3°) a) La chaîne (j) n'a aucun binon au niveau 2 qui ne soit un


pivot;

b) tous les cartouches de (j) au troisième niveau qui ne sont


pas des pivots, représentent l'entrée de signaux identiques
à ceux des binons non pivots de (i) au niveau 2. Il y a
donc y termes "symétriques".

Exemple : Soit la fonction f de n variables; après fusion deux de ses


chaînes ont la forme suivante :

fp = ibcd.(x+y) + abcd.(x+y)

j ( NAND
) A B (: D. -X Y A B C D X Y

i
"1
1 0
i
.j

]
0
1

i
i -1

i 0
"1

i
I 0 0 i
i 1
1 l
i i' 1 1
... ' * i
i ri
i 1 1 1
i 0
—i 1
" '

i 1
i
i
1 i
0 0 *—

1
i 1 1 i i
i i 1

Co u t s de : C 7
fP - 17
Cr = 45
49.

Mode opératoire :

Ces deux chaînes à trois niveaux vérifient les conditions d'appli


cation : elles ont :

un nombre 'a '= 1 de pivots au 2ème niveau


un nombre g = 2 de pivots au 3ème niveau
un nombre y = 2 de termes "symétriques"

Elles sont remplacées par une chaîne de quatre niveaux ayant les
caractéristiques suivantes :

- au niveau 2 le cartouche contient les a pivots;

- au niveau 3 nous trouvons K cartouches : K = g + y


qui sont tous ceux de la chaîne (j); la seule dif
férence est la présence d'un opérateur, au quatrième
niveau, qui délivre un nouveau signal aux y car
touches correspondant aux termes "symétriques";

- au niveau se trouvent y cartouches identiques contenant les y


binons qui ont défini les termes "symétriques".

En effet, f s'écrit :

f = c.d. (x+y) .[ab + âb] = A.[ab + "âb]


La "somme'1 entre crochets est réalisée au troisième niveau à partir de
"produits" formés au quatrième et faisant intervenir un cinquième niveau
à cause des compléments.

Mis sous la forme : [(â+ab).(b+ab)],le crochet ne nécessite plus que


des éléments au quatrième niveau. Ainsi, les produits initialement au
deuxième niveau apparaissent au quatrième derrière leurs "symétriques".

Ici : a = 1 correspond au signal c

g = 2 correspond aux signaux d et (x+y)

Y = 2 correspond aux signaux à et b du 3ème niveau, a et b


transposés du niveau 2 au niveau 4.

Nous avons donc :


50.

CNAND J
i
1 ' i
l
: j • i i
1 i i 1 i

1 i 1 i
A B C D 1
X Y A B C D X Y

1
I 0
• «• •*

0 0
A B C D X Y

0 1 1 I
"

0 1
1
• i i 1 i i
1 1
1 ' ! 1 i
1
i
1 i l
1; 'i i i
1
i
i i
i 1 1 i

Conformément àla remarque faite au §3-2.1, on ne représente pas


l'élément terminal puisqu'aucun signal direct n'y est appliqué. Il con
vient cependant de ne pas l'omettre lors de l'estimation du coût.
Coût de fp après transformation : C = 7-15
C = 30
R

Sous forme imagée, on pourrait dire que, si ies chaînes (i) et (j)
vérifient les critères d'application,"on place, àl'entrée des opéra
teurs que la chaîne (i) ne possède pas, un cartouche contenant les ter
mes inexistants dans celle de numéro (j)".

On lit aisément la fonction sur le tableau trouvé :


fp = c.d.(x+y).(S+ab).(b+ab)
qui correspond bien à la transformation souhaitée.

Deuxième exemple :

Utilisant l'opérateur "NI", la fonction est présentée sous forme


d'intersection de réunions :

fp = (u + v + w + x) (u + v + w + x)
51.

Ç NOR. ^\ --U V W X-- U V W X-

1
13

o
iJ

0
li C =6-13

lil
24
0

1 i . i
}] ?R

H l!
I
1 1 0
; 1 i
_L-
i I I

Ces deux chaînes ont les caractéristiques suivantes

- pivot au deuxième niveau signal v ; a = 1


- pivot au troisième niveau signal w ; g = 1
- termes symétriques correspondent aux signaux u et x ;
Y = 2...

Application de la transformation : nous obtenons une chaine a quatre


niveaux :

O •--U V W X- ---U V W X ---U V W X

I
I.ŒH] r* I
1
h
I 0
]
0
[lhhj
qui a la forme : f = v + u.(u+x) + w + x.(u+x)

de coût C =6-12
CR = 21

Remarque : Cette transformation, si elle n'agit pas de manière sensible


sur la fonction de coût général, peut influer largement sur
le coût relatif et, par voie de conséquence,sur le prix de la réalisation.
52.

D'autre part, elle permet de définir des structures différentes du cir


cuit ce qui a pour avantage, lors d'une répartition optimale sur carte
imprimée, d'avoir un choix d'agencement permettant de minimiser le prix
global.

Notons,que dans le cadre strict de la méthode de conception des


circuits (voir organigramme p. 78), toute transformation est suivie d'une
recherche systématique de termes communs. Un algorithme est donc consti
tué de ces deux opérations| c'est au terme de leur application que l'éva
luation dés coûts permet de constater une optimalisâtion de ceux-ci.

Chaque transformation vise bien entendu à permettre, par recherche


de termes communs, de rendre utilisables plusieurs fois les mêmes opé
rateurs et, surtout,des portions entières de chaînes.

8.v- RECHERCHE ET MISE EN EVIDENCE DE TERMES ET DE GROUPEMENTS


D'OPERATEURS COMMUNS A PLUSIEURS CHAINES

Comme nous l'avons souligné ci-dessus,cette opération intervient


dans chaque algorithme et joue un rôle important quant à l'abaissement
du coût du circuit. De même que pour la recherche de termes communs au
trosième niveau (§ 5), elle revient à introduire dans l'écriture de la
fonction booléenne certaines formes redondantes. Celles-ci sont défi
nies par la structure du circuit et l'opérateur considéré; dans ce ca
dre elles sont toutes envisagées, mais n'interviennent dans le circuit
que si elles apparaissent communes à plusieurs parties de celui-ci.
Cette première condition vérifiée, elles ne sont conservées que si le
coût est diminué ou, à la limite,inchangé (cas de solutions équivalen
tes qui permettra ultérieurement un découpage optimal sur plaquette de
circuit imprimé).

Les formes redondantes admises sont, ici aussi, duales pour les
opérateurs NI et ON; elles doivent satisfaire les conditions suivantes

1) - Opérateur NI :

a) Partant d'une chaîne de la forme :


a+b+c.(d+e+f.(g....) )
53.

on pourra .1* écrire :

a + b + _a . b_ . ô' (a + b + c + d + e + â | c d ë f g (....) +....) + ....


les pointillés indiquent l'effet répétitif de l'apparition des
termes redondants. La forme conservée est l'une des combinai

sons obtenue avec les différents termes redondants (ici souli


gnés) .

b) Est interdite toute combinaison faisant intervenir des groupe


ments du type indiqué précédemment (§5) : a b c
ou : abc

Exception : ces groupements sont autorisés si les signaux néces


saires à leur réalisation (compléments d'une seule
variable) existent et sont disponibles dans d'autres chaînes;
il va de soi que ces "compléments" ne sont utilisés que s'ils
ne peuvent satisfaire à une opération de mise en commun par
l'introduction de redondances.

En effet, pour réaliser le produit a.b.c sur une chaîne (i),


il faut que sur la même chaîne (i) - ou plusieurs autres (i,
J, K ...) - se trouvent les opérateurs ayant pour entrée un
seul signal a, b ou c.

2) - Opérateur ON :

a) Ce sont les mêmes conditions sous forme duale : on utilisera


l'une des combinaisons possibles de termes redondants soulignés :

a • b * (.& + JL + c + a_.b_.c_. d . e •(a_ + b_ + c_ + jï + e+f+g+...)...).,

b) Sont toujours interdits les formations de termes du type :


a+b+c ou :

a + b + c

sauf si, comme dans le cas indiqué ci-dessus pour l'opérateur


NI, les éléments qui délivrent le complément des signaux a, b
et c existent par ailleurs.

Mode opératoire :

La chaîne considérée admet un certain nombre de branches (ramifica


tions des niveaux supérieurs). Nous considérerons deux cas dus à l'excep*-
tion signalée ci-dessus.
54.

1°) Tous les opérateurs du troisième niveau de la chaîne ayant une seule
entrée occupée (un seul binon dans le cartouche) sont utilisés dans
d'autres parties du circuit; par conséquent ^exception indiquée
2Î:5ï25ïï5-32J2H*;ï5Î2Eï22iE* daûS ce cas on procèdTcômmë~sûït~:
a) dans un premier temps, on associe à chaque branche, sauf aux
éléments de complémentation, toutes les autres branches de la
chaîne. Cette opération s'effectue en décalant d'un niveau ces
branches qu'on associe; simultanément les binons dans leurs car
touches sont inversés (les "0" sont remplacés par "1", et les
"1" par "0"). Ceci dans le but de garder l'homogénéité de la no
tation qui permet ainsi une lecture aisée de la fonction (§ 3);
b) dans un deuxième temps :on opère comme pour les mises en évidence
de termes communs au trosième niveau (§ 5) ;on place,comme autres
termes possibles, les binons du cartouche de niveau K dans tous
les cartouches de niveau K+1 de la branche considérée. Ceci sauf
pour les termes relevant de l'exception. Ces derniers sont cepen
dant reproduits à chaque extrémité de branche.

2° >Ï2^_2B_2Ê£tains_desJléments_servantJ_la^ d,un seul


2ïI2^1__î:5lèvent_de_l^exception citée;

a) comme ci-dessus on commence tout d'abord àassocier àchaque


branche de la chaîne considérée toutes les autres branches, déca
lées d'un niveau. Les cartouches au troisième niveau ne contenant
qu'un binon (opérateurs fournissant le complément d'un signal) et
relevant de l'exception subissent les mêmes transformations que
les autres branches. Les opérateurs de complémentation ne véri
fiant pas ces "conditions d'exception" sont transformés comme in
diqué ci-dessus (§ 1) du mode opératoire.

b) La deuxième phase est semblable àcelle du cas précédent :pour


chaque branche, on reporte dans les cartouches de niveau k le
contenu du cartouche correspondant au niveau k-1. Seule différence
par rapport au cas précédent : les "éléments de complémentation"
relevant de l'exception (donc non réutilisés) sont traités comme
les autres branches; ils ne sont pas ajoutés au niveau le plus
élevé de chaque branche àla fin de cette opération. Ceux qui sont
55

communs à d'autres chaînes interviennent, comme indiqué précé


demment.

Exemple : Soit la chaîne d'un circuit, correspondant à la fonction par


tielle d'une fonction, d'une formé déjà rencontrée (§ 7)

f = c + d + â.(a + b) + b.(a+ b)

Un seul opérateur au troisième niveau sert à la complémentation


d'un signal d'entrée : le signal d. (Représentation : fig. I - p. 56).

Considérons les deux possibilités :

1°) le signal d est réutilisé sous cette forme dans une autre chaîne,
on ne peut donc pas lui adjoindre de terme redondant (cas ne rele
vant pas de l'exception signalée p. 53).

a) La chaîne est constituée de trois branches fournissant respec


tivement les signaux : d, â(a+b), b(a+b). On ne peut transfor
mer la branche correspondant à d. On ramifie celle correspondant
à : a(a+b); pour cela on reproduit aux niveaux 4 et 5 la branche
qui fournit b(a+b) en remplaçant les "0" par des "1" et les "1"
par des "0". Ensuite, on ajoute au niveau 4 le cartouche corres
pondant à d en inversant le binon qu'il contient. Tous ces car
touches ajoutés à la branche "â(a+b)" sont figurés en pointilléc
(fig. II - p. 56).

Dès lors cette branche est susceptible de fournil- le signal :


a. (a+b) .(b+âb) .d ',

En effet : fp= c + d + b.(a + b) + â.(a+b)


Les manipulations précédentes correspondent à la transformation
générale :

A+B A+B.  étant redondant

ici : A = d + b.(a+b)

B = a.(a+b)

nous obtenons donc :

fp = c + [d+b.(a+b)] + â.(a+b). "["'"']


soit :

f = c + d + b.(a+b) + a.(a+b).d.(b+ab)
56.

f NOR J A B C D
:
A.B C D
• i i
i
i
i

I] A.B.CD

I]
0 11 U
i '
> i

I
I
niveaux
4
f„ = c + d + S.(a+b) + b.(a+b)
Figure I

NOR
A B C D A B C D

D 1° A B C D

_A B C D
i.--..... i . i
i i-"i. i ,
i
j

i ' >•; i
i i. . !__J

0 1 1

—i
i
ri'-t
i
i.. • , i i
L ,-tj_j_ j..j t-J-J_ _!__!• i-*-
,

1 I II A
Lj_J.jA!
niveaux

f« =
c + d + a,(a+b).(b+âb).d + b.(a+b).(a+âb).d

Figure II
57.

GE) A B C

1
D A B C.D

0
A B C D A B C D
n- ~t
tt i '... i
0 o 1 1
w.L J _ ! . . J
A B C D
r - r -r—r - t - r--\
i,« .. « l ! i il,*'
••" i
• I l ' X •
L'J-J i C- l_ — - 1 , I l_ 1 _l_. J

i—i-
i •
i i
L_!_ i _x_ J

oc 1 1 -1
L_L.
r - f -y r - r -\- ~r—\ r - r T" l—>
i 1.-.1...1...; i
• i « i i '
L _i_l_x_J

r i " r-!-".
, ' ' • A >
• ' : • * '

niveaux 5
* = c + d + â. c (a+b+ç+d).(a+b+c+â.b.c.d).d
+ b. c(a+b+ç+d).(a+b+c+â.b.c.d)._d

Figure III

(™D A B C

1
D A B C

cl o
D A B C
i—t — r ~i—i
IA '
I 1 I
IA ! > I
D A B C D
n—j-t--i
...,i...,!...;...„. :
••...'••..••••.« i:..-' •
l_.U_l-_i_.J
i—i — i — r - - t i--r-r-r--j
i i.', • / • à i '.-•i.—.'.-.i--
ti.........
.'I ••! •. •. : *
i l i ' -• | '! i ,•...%..•,
L.î. _i_ J __i

0 :...': 1 1 '!

.« I .'. !
I'!!
4_ . L

i— —i—r- — « 1 r i - r - i - -j
',; \* ',« ' ! ••..."i"..,;i4..', i
11 >'i i : l . •
l _ i _>r_s. __j L.L-L. jl-J

,1
0 O 1 1

r -i - r - r - ]
ii \4\A\a\
i ^ i i t i i
._ _••—• _ j _. j

r -|- -i— -r—J r - r —i-

' i !» ' i i ! l_J- 1.

niveaux

Figure IV
58.

Les produits sont réalisés au troisième niveau pour apparaître


sous forme directe, d, est issu du quatrième (et nous sommes dans le cas
où on dispose d'un élément qui n'a qu'une entrée occupée parle signal d
Le terme :(b+âb) est formé aux 4ème et 5ème niveaux; mais les opérateur!
nécessaires existent déjà aux 2ème et 3ème niveaux (ils réalisent :
b(a+b)>; il suffit donc de les réutiliser décalés d'un niveau pour ob
tenir le complément, c'est-à-dire le groupement (b+âb).

Remarque : Avec l'opérateur NAND - codification identique -


Fp = c.d.(â+ab).(b+ab)
Fp duale de fp

La branche que l'on vient de transformer est celle qui correspond


au signal : (â+ab); elle a maintenant la forme :
(a + ab + b(â+b)+ d_)

-On procède de même pour la branche représentative du signal :b(a+b).


L'introduction des termes redondants possibles la transforme en :
b . (a+b) . (a + ab) . d

-Avec l'opérateur ON, nous aurions remplacé la branche "(b+ab)" par :


(b + ab + a(â+b) + d)

La chaîne correspondant à fp, après cette transformation a donc


la forme :

fp = c+d+a.d.(a+b).(b+âb) + b.d.(a+b).(a+âb)
en technologie NOR
ou :

Fp = cd.(â+ab+b.(â+b) + d).(b+ab+a.(â+b) + d)
en technologie NAND
59.

b) On procède comme pour la recherche de termes communs au troisième


niveau (§ 5). Le contenu de chaque cartouche de niveau k est re
porté (en inversant le binon) dans tous les cartouches de niveau
k+1 qui font partie de la même branche. L'opération s'effectue
pour tous les opérateurs de la chaîne sauf pour celui qui four
nit le signal : d qui doit être conservé (voir hypothèse de dé
part et "exception" p. 53).

Ensuite, à chaque extrémité de branche on reproduit le cartouche


correspondant à d (fig. III p. 57).

On obtient ainsi :

fp = c+d+a.ç(a+b+£+d).(a+b+ç + â.b.c.d).d
+b.ç (a+b+c+d) .(a+b+c+â.b.c.d).d_
en technologie NOR
et

Fp = c.d.(a+£+a.b.cj| + a.b.c. (â+b"+c+d) +d)

.(b+£ + a.b.ç_d + a.b.c (â+b+£+d)+d)


en technologie NAND

Remarques :

a) -Ces formes étant établies pour chacune des chaînes du circuit, il


convient ensuite de les comparer dans un premier temps, deux à deux,
niveau par niveau. On procède comme pour la mise en évidence de
"termes communs au troisième niveau" (§5). Cependant, ici, l'opéra
tion permet de plus, de faire apparaître des portions de chaînes
(ou branches) communes à plusieurs parties de circuit : dans un
deuxième temps, on compare deux à deux les branches de longueurs iné
gales, en commençant par les niveaux les plus élevés, puis, si les
cartouches correspondants ont le même contenu (voir § 5 - utilisa
tion des binons disponibles), on continue la comparaison au niveau
inférieur; puis dans les mêmes conditions le suivant, etc.. On re
connaîtra ainsi les portions de chaînes communes décalées entre elles
d'un ou plusieurs niveaux (§ 11).
60.

b) -L'opération présentée ici peut évidemment se reproduire sur les


"sous branches" du circuit, c'est-à-dire faire apparaître un nombre
encore plus grand de binons et cartouches disponibles. Nous atten
drons les résultats fournis par ordinateur pour affirmer l'intérêt
de cette suite, la programmation de la méthode étant encore en
cours /15/.

c) -Faire apparaître en grand nombre ces termes redondants "possibles"


augmente les possibilités de trouver un nombre important d'opéra
teurs utilisés plusieurs fois dans le circuit, donc de diminuer son
coût. Il est bien entendu, comme nous l'avons souligné au début du
§ 8, que les solutions élevant le coût du circuit sont rejetées.

2°) Le signal d n'est pas réutilisé dans d'autres chaînes; hypothèse


autorisant les produits directs ou hybrides : voir exception signa
lée p. 55. On procède donc à la mise en évidence de termes communs
s pour toutes les branches de la chaîne (fig. IV - p. 57).

a) A chaque branche, on associe les voisines décalées d'un niveau :


- la branche correspondant au signal d devient :
d.(a+âb) . (b+âb)

- celle correspondant au signal â(a+b) :

â.(a+b).d.(b+âb)
* ———

• - la branche fournissant b(a+b) prend la forme :


b.(a+b).d.(a+âb)
* ———

Remarque : iX est bien évident que si d (*) intervient dans l'une des
deux dernières formes, il ne pourra être simultanément com
biné sous la première forme sous peine d'élever le coût-de
la réalisation.

En effet : l'opération simultanée : A + B >AB + ÂB


implique des réalisations séparées des termes de la somme,
donc une élévation du coût.
61

b) A chaque ramification le contenu du cartouche de niveau k est


reproduit avec complémentation dans ceux qui lui correspondent
au niveau k+1; on obtient donc :

- première branche : initialement "d" :

çd.(a+£+d_ + â.b.c.d) (£+£+£ + â.b.c.d)

- celle qui correspondait au signal â(a+b) prend la forme :


a.£. (a+b+£). (a+£+_d). (£+£+£ + â.b. c)

- la troisième, à l'origine : "b(a+b)", devient :


b.£. (a+b+£). (b+£+£). (a+b+£ + â.b.c)

La chaîne correspondant à fp a donc la forme :


en technologie NOR :

fp = c + £'d-(a+ç+d + £.£.£.£).(jb+£+d + â.b.c.d) + â.c


.(a+b+£) .(a+£+£) .(a+b_+£ + â.£.£) + b.ç (a+b+£).
•(b_+£fd). (a+b_+£ + â..£.c_)

en technologie NAND, Fp, fonction duale de f :


Fp = c.(£+d + a.£. d_. (â+£+£+d_) + b_.£.£ (£+£+£+£) ).
.(a+£ + a. b.£+a.£.d_ + a. b_.£. (â+b+ç) ).(b+c_ + a.b.£
+ ^_'£.*iL + £.b_«ç (a+£+c) ).
62.

9- - FUSION DES CHAINES AU TROISIEME NIVEAU

Nouvelle opération de fusion définie par des caractéristiques dif


férentes des précédentes (§§ 4 et 7). Ici, nous ne chercherons pas de
termes symétriques et les pivots seront recherchés non plus au deuxième,
mais au troisième niveau.

Principe : Soit deux chaînes du circuit de numéros i et j, elles ont


chacune trois niveaux ou plus. Nous exposerons le principe
dans le cas où elles en ont trois, les autres cas seront examinés dans
les conditions d'application qui suivent :

1°) Au niveau 2 apparaît un nombre « de pivots (binons se correspon


dant) - ce nombre a. . peut être nul.

2°) Sur la chaîne i :au niveau 2, un nombre g± de binons n'apparaissant


pas au même niveau de la chaîne j. Ce peuvent être des "termes
vsymétriques" (§ 7).

Par contre, 0.. doit être nul. (g.. = nombre de binons, du niveau 2
de la chaîne j, qui ne sont pas des pivots).

3°) Au niveau 3 : tous les cartouches de la chaîne i sont des pivots -


ils sont en nombre v. ..

Il y a donc à ce niveau sur la chaîne j, K. cartouches, tels que :


K.
J = y-
Txj• + Y• ;
Yo '
Yj étant le nombre de cartouches qui ne sont pas des pivots,
4°) Si le nombre de niveaux est supérieur à trois :
a) pour la chaîne i : toutes les branches (une branche est définie
à partir du niveau 3) sont entièrement des pivots. Nous avons
donc toujours y±. pivots. On se ramène à la condition précédente
en considérant qu'une branche peut être réduite à un seul car
touche;

b) pour la chaîne j :outre les y±. pivots, les y. branches restantes


peuvent avoir un nombre de niveaux quelconque;Jil n'y a aucune
restriction pour elles.
63.

5°) Si la chaîne i vérifie toutes les conditions sauf la troisième :


(toutes les branches à partir du 3ème niveau sont des pivots) il
convient, avant de rejeter l'algorithme d'essayer une transforma
tion du type termes communs (§ 5 ou § 8) pour donner à ces branches
les propriétés des pivots.

6°) Les conditions étant vérifiées, les deux chaînes i et j sont fusion
nées en une chaîne qui a les caractéristiques suivantes :
a) le cartouche du niveau 2 contient les a. , binons définis ci-
dessus. - a peut être nul;

b) le niveau 3 est constitué des K.. cartouches initiaux (ou obtenus


après la mise en évidence des pivots) de la chaîne j;
c) si les y±. pivots étaient des branches à plusieurs niveaux, elles
sont reproduites de même que les K cartouches précédents du
troisième niveau;

d) on trouve au quatrième niveau Y, cartouches identiques contenant


les 0± binons définis ci-dessus (2ème condition d'application).
Ces cartouches appartiennent aux y. branches non pivots de la
chaîne j.

:ExemPle : Le circuit (en technologie NOR) d'une fonction f de n variables


comprend deux chaînes réalisant la fonction partielle :
fp = (a+b+c+d+f+ë) . (a+b+c+dë+g.(a+e) )

GD A B C D E F G.... A B C D E F G. A B C D E F G....

1 1 1 1 1
] 0
]
1 1
] 0
]
0 0 I ]
0
] 1 1
]
niveau 2 niveau 3 niveau

C = 8 - 21
CR = 42
64.

1°)-la chaîne i a un seul cartouche au niveau 3, qui n'est pas un pi


vot. Par application de l'algorithme de recherche et mise en évi
dence de termes communs au troisième niveau (§ 5), le signal ë est
remplacé par : d.ë; toutes les conditions sont donc vérifiées.

2°)-Nous avons donc :

Qf. . = 2 - pivots au deuxième niveau - ce sont les signaux a et c.


3i = 3 - binons correspondants aux signaux : b, d et f.
g. = 0 - condition nécessaire vérifiée.
J

Yij = 1 ™ Pivot au troisième niveau constitué par le signal de.


Y- = 2 - branches non pivots de la chaîne j.

3°)-On peut donc remplacer les deux chaînes i et j par la suivante :


- au niveau 2 le cartouche représente l'entrée des a. . signaux
— u
soit : a et c;

- au niveau 3 : nous retrouvons les : K . = v . + v =3 car-


j Yij Yj J -y-*
touches de la chaîne j;

- au niveau 4 : l'élément initial de la chaîne j, associé à l'un


des y. n'a pas changé; sont apparus deux opérateurs identiques,
contenant les g± binons (signaux b, d et f), dépendant chacun
. de l'un des deux y. cartouches non pivots. (Voir § 7).

(nor) A B C D E F G. . . . A B C D E F G

1 1 00 | j
A B C D E F G.. . .

i_:::i] 1 1 1 ]
m 1 1 j1
1 1 il I I

C =7-18
CR = 32
fp a maintenant la forme :
fp = a+c+d.ë +"b.(b+d+f)+g.(a+e).(b+d+f )
65

Remarque : Le procédé est identique en technologie NANDj en changeant


l'étiquette NOR par NAND, on obtient le résultat du traite
ment de la fonction Fp duale de f_ :

- forme initiale :

Fp = a.b.cd.f.e + a.b.c (d+e) .(g+a.e)

- forme obtenue :

Fp = a.c(d+ë) .(b+b.d.f) (g+a. e+b .d. f)

10. - FUSION AVEC AUTORISATION DE PRODUITS "DIRECTS" OU "HYBRIDES"

Cette transformation est fondée sur le même principe que la fusion


générale exposée au § 4. Sa particularité est due à l'admission, sous
certaines conditions, de termes jusqu'ici interdits (§ 1.4). Dans le cas
d'utilisation de la technologie NOR, on autorisera des groupements
de la forme : "produit" : a.b.c

ou : "hybride" : â.b.c

Pour une réalisation utilisant les opérateurs NAND, des formes du


type 'somme' : a+b+c

ou : "hybride" : â+b+c

seront admises si les chaînes considérées vérifient les critères d'ap


plication.

Principe et mode opératoire :

1°) Sur deux chaînes de numéros i et j, on reconnaît tout d'abord


- a binons se correspondant au niveau 2 - soit a. . pivots.

- g. cartouches (ou branches) identiques au niveau 3 -


j

soit g. . pivots.
1J r
l'un des deux nombres a. ., ou g.. peut être nul.

2°) La chaîne de numéro i ne possède pas de cartouche (ou de


branche) au troisième niveau qui ne soit un pivot, donc g.=0;
66.

par contre elle a un nombre a. de binons au deuxième niveau


qu'on ne retrouve pas dans la chaîne i. il

3°) Celle-ci (chaîne de numéro j) a les propriétés suivantes :


elle possède : - un nombre a. de binons au deuxième niveau
qui ne sont pas des pivots;

- gj cartouches (ou branches) au troisième ni


veau, qui n'existent pas sur la chaîne de
numéro j.

a. ou g peuvent être nuls.


«J J

4°) Il est nécessaire qu'il existe dans les chaînes différentes


de i et j des opérateurs servant uniquement à complémenter des
signaux. On doit ainsi disposer de toutes les variables inver
sées correspondant à chacun des a. et a .
x j

5°) Les conditions ci-dessus étant vérifiées, les deux chaînes i


et j sont remplacées par une seule ayant la forme suivante :
- au niveau 2 : un cartouche contenant les a pivots-
ij * '
- au niveau 3 : on trouve un nombre de cartouches K tel que :
K = P± . + a. g. + c, «
soit

les g pivots,

. les g., cartouches de la chaîne j sont chacun repro


duits a. fois.
i

. Un nombre a± a. de cartouches ne contenant aucun bi


non (ils représentent des éléments où n'arrive aucun
signal sous forme directe).

L'emplacement de ces différents cartouches trouve la même


justification qu'aux § 7 - 8 - 9. (Il en est de même pour
le niveau 4);

- au niveau 4 :

. aucun cartouche faisant face aux g. . pivots (sauf si


le pivot était constitué d'une branche; c'est-à-dire
qu'elle reste inchangée);
67.

. chaque cartouche du type g . a été reproduit a. fois.


Il convient donc de lui associer chacun des a. au
i

4ème niveau;

. on constitue a. a. couples de cartouches. Chacun


est constitué d'un opérateur représentatif d'un a.
et d'un autre contenant un a.. Chaque couple dépend
d'un cartouche du troisième niveau ne contenant au
cun binon.

Soit au total L nouveaux cartouches au 4ème niveau :

L = a. g . + 2 a. a.
x KJ x 3

Exemples :

1°) On considère la fonction partielle f„


P
constituée des trois
chaînes :

fp = (a+b+c) (a+c+d+ë) (â+b+d+ë)


Le circuit est établi en technologie NOR

(m) A B C D E A B D E

1 1 0

1 1 0

A B C D E
C =8-18
0
CR = 32

1 0

Considérons les chaînes i = 2 , j = 3 '<:

elles possèdent : a = 1 pivot au niveau 2 (signal d)

0„, = 2 pivots au niveau 3 (signaux â et ë)


de plus nous trouvons :
68.

&z = 1 (signal c) et g =0
a3 = 3 et Pz = 1 (signal b)

la chaîne de numéro 1 fournit l'opérateur qui complémente c.


- Les chaînes 2 et 3 ont respectivement les rôles de i et J
ci-dessus :

Nous avons donc :

. au troisième niveau : K=g +a g +a


£••? à 3 2 3
= 3

. au quatrième niveau : L = cv g +2 a a
2 3 23
= 1

La fonction partielle f a maintenant la fo rme


fp = (a+b+c).(d+â+bc+ë)

A B C D E A B C D E

1 1 0

1 0
C = 7-14
A.B.C.D.E
CR = 25
0 1
—_

2") En technologie "NAND" on réalise la fonction de trois variabl es

f = ac + bc + â.b.c
69,

^NAND1) ABC B C

0
c 7 - 13
cT 2.3
| 0

1 1

1 1

Les chaînes 2 et 3 ont un rôle symétrique :


a23 = 1 (signal c) ; a, = 1 (signal a) ; c^ = 1 (signal b)
et
^23 ~ ^2 ~ ^3 = ° ' les siSna"x â et b sont disponibles sur
la chaîne 1 ;

(NAND) ABC ABC ABC

C = 7 12

20

0
.

/ y

1
1 ï

1/

f est donc maintenant présenté sous la forme :

f = a.b.c + c(a+b)
70.

On procède à l'opération de recherche de termes communs (§ 8).


En pointillés sont indiqués les binons et cartouches "possibles".
Par scrutation, on constate qu'une branche peut être utilisée simul-
tanémément par les deux chaînes restantes :

NAND ABC A B C ABC

0 <— 1

i
i
0 <—
! "j C = 6-12
V

0 1 CR = 20
I
I I
1

••"""•" '""•"

1 0 1

Donc, après traitement de la fonction par l'algorithme suivi de la


recherche de termes communs, f devient :

f = â.b.(c+a+b) + c(c+a+b)
On voit ainsi l'intérêt de l'ensemble algorithme-recherche de termes
communs, puisqu'il permet sur une fonction simple d'abaisser le coût
( C = 7 - 13 t C = 6 - 12
de <
cR=23 CR=20
71.

11- " MISE EN EVIDENCE DE PORTIONS DE CHAINES COMMUNES A NIVEAUX


DIFFERENTS

L'opération générale de recherche de termes communs (§ 8) permet,


par introduction de termes redondants de trouver des portions de chaînes
communes aux différentes parties du circuit. Remarquons qu'en général
cette opération fait apparaître des groupements d'éléments réutilisés
aux mêmes niveaux. Ceci se traduit par une écriture booléenne de la
fonction où l'on retrouve chaque fois les mêmes termes.

Ici, nous fractionnerons certaines chaînes et mettrons en évidence


des branches communes, mais décalées d'un niveau. Le principe de la trans
formation est simple; il correspond à l'application de la transformation
classique :

A + B •A + AB

A . B A.(Â+B)

où A et B sont des expressions booléennes.

Conditions d'application et mode opératoire :

1°) Les deux chaînes considérées i et j peuvent avoir un nombre quel


conque de pivots (binons et cartouches se correspondant) ou de
termes n'ayant aucune caractéristique particulière.

2°) On détermine sur la chaîne i, trois nombres : u. , tt ,s et suj


i i i '
la chaîne j trois autres qui leur sont associés :
rr_. , £ . , ainsi définis
" ' J J

- |i^ est le nombre de binons (ou d'ensembles de binons) du cartouche


de niveau 2 de la chaîne i, qu'on retrouve séparément (sous forme
inversée) dans u. = p. cartouches au niveau 3 de la chaîne j. Ces
H.. opérateurs sont des extrémités de branches. (Il ne leur est pas
associé d'éléments au 4ème niveau).

- ïïi et ïïj sont définis comme ^ et |V. ;la seule différence est
qu'aux rr'. cartouches sont associés des opérateurs au quatrième
niveau.
72,

- B . est le nombre de cartouches de i au niveau 3 qu'on retrouve au


niveau 4 dans la chaîne j en nombre £*. = £. (si la condition sui-
vante est vérifiée).

- £\J = £;i , mais il est nécessaire que les B D. du 4ème niveau de la


chaîne j dépendent exclusivement des tt'. définis ci-dessus.
J

Remarques :

a) On peut simultanément déterminer des nombres associés : u' n'


, "i ' i '
£i et (i. i tt. , S (voir 2ème exemple ci-dessous).
J J J

b) On peut être amené à faire apparaître certains des termes comptés


parmi les rr et £. par application de la forme générale de recherche
de termes communs au troisième niveau (§ 8 - première transforma
tion) .

3°) Ces conditions étant remplies, on transforme les deux chaînes i et j,


kcomme suit :

a) La chaîne i : les termes relevant du (1°) de ces paragraphes sont


inchangés; pour les autres :

- au niveau 2 restent les |_u binons reconnus; ceux comptés parmi


les tt. ont disparu;

- au niveau 3 : apparaissent les u' ;


Kj

- au niveau 4 : cartouches contenant les différents ensembles de


binons tt.i (qui ne sont autres que les tt');
j

- au niveau 5 : on retrouve les £ . (identiques aux£*).


1 3

b) La chaîne j : comme pour la chaîne i, les termes non comptés parmi


les [j., tt ou H sont inchangés; pour les autres, nous obtenons :
- Les branches correspondant aux |_ù (ne dépassaient pas le troi
sième niveau) sont prolongées aux 4ème et 5ème niveaux par les
cartouches contenant les tt'± et£±. Ces portions de chaînes sont
donc identiques pour les chaînes i et j.
- Les branches qui ont permis la définition des termes n' et ^'
J j
sont inchangées; ce sont les mêmes que celles établies ci-dessus
mais décalées d'un niveau.
73,

Exemples :

1°) On établit en technologie "NAND" le circuit d'une fonction f.


Deux de ses chaînes constituent la fonction partielle fp et ont
la forme suivante, lors de l'intervention de l'algorithme :
f = a.b.c + â".(b+c)

(nand) ABC A B

1 1 0

C = 6-11
0

B C
CD = 19

0 1

On peut constater que

|i , Hj = 1 correspond au signal a
tt .. tt i
. = 1 correspond au signal b

£i = £'• = 1 correspond au signal c

ABC ABC ABC ABC

1 0 1 0
__

1
I

0 1 0
I
«
I

I
0
I
j

C = 6 11

19

Remarquons qu'ici le coût n'a pas diminué; dans le cadre de nos défini
tions (§ 8) nous avons déterminé ici deux circuits équivalents.
fp a la forme booléenne : f i.(a+bc) + (a+bc).(b+c)
74,

2°) On réalise le circuit de la fonction f suivante avec des opérateurs


NI; à ce stade de la conception (organigramme p. 78) la fonction a
la forme :

f = (b+c+â+d+ë(e+f) ). (d+e+â(a+c) + "b+c(a+c) + ëf)


Ces deux chaînes ont les caractéristiques suivantes :
IX, = (^ = 1 correspond au signal b.
n1 = tt^ = 0 mais (remarque (b) ci-dessus) en rajoutant le
terme redondant âc au lieu de â (indiqué en
pointillés), on a :
n1 = rr^ = 1 (signal c) ce qui entraîne :

(signal â c sur la chaîne 1, et (a+c) sur la


chaîne 2)

donc: f = (b+c + âë + d+e(e+f) ).(d+e+â(a+c)+b+ë(a+c)+ëf)


De plus :

- |J2 = 'iXj - .1 correspond au signal d

Cnor) A B C D E F A B C D S F

1 1 0

0
A B C D E F
c = 11-26
0 1 1

CR = 51
1 1 0 1 1

0 1 1
' '" "d

0 0

rr2 = rr1 dû au signal e

= 1
£2 =^1 correspond aux termes ë f sur la chaîne 2
e+f sur la chaîne 1
75.

(nor") A B C D E F A B C D E F A B C D E F A B C D E F

1 0 j I 1 0 0 *1

0 1 0 0 * | i

l 0 1 1

1 0 1 1
1
1

0 1 i
0 0

+1
! l
1
0 1 1

I 0 1 0 0 <• ' —

C =11-26

CR = 45

f = (b+b.(c+â.c)+d.(e+e.f)+ë.(e+f) ).(d+â.(a+c)+b.(c+â.c)+c(a+c)+d.
.(e+ë.f) )

12- ~ FUSION DES CHAINES NE CONTENANT QUE DES ELEMENTS SERVANT A LA


COMPLEMENTATION DE SIGNAUX

Opération très simple, qui a pour but de diminuer le coût du. cir
cuit en fusionnant entre elles les chaînes qui ne contiennent que des
opérateurs qui complementent au troisième niveau les signaux d'entrée
disponibles.

Les critères d'application sont les suivants :

1°) Chacune des chaînes ne comporte que des éléments servant à la


complémentation.

2°) Tous ces opérateurs de complémentation ne sont pas réutilisés


dans d'autres chaînes du circuit.
76.

3°) Pour que leur fusion fournisse un résultat intéressant quant


à l'abaissement du coût, il faut que ces chaînes admettent
deux à deux au moins un "pivot". (§ 4).

ExemPle : Soit une fonction f; trois de ses chaînes vérifient les cri
tères ci-dessus :

fp = (b+c) (â+c) (â+b)

A B C A B C

0
C =7-12
CR = 22
>
0

(nor) ABC

0 0
ABC ABC

C =5-10
0 0
CR= 16
0 0

fp est mis sous la forme d'une seule chaîne à quatre niveaux


fp = [ab + bc + âc]
77.

CONCLUSION

Cet enchaînement d'algorithmes nous a permis dans un premier temps


de retrouver tous les circuits de coût minimal fournis par la table
d'HELLERMANN /i/.

Les possibilités de cette méthode dépassant largement les fonctions


de trois variables complètement spécifiées, nous avons ordonné les opéra
tions exposées précédemment, suivant un organigramme (p. 78), qui, nous
l'espérons, permettra l'établissement de circuits complexes avec un coût
intéressant.

La conception des circuits est possible aussi bien à l'aide d'opé


rateurs NI (NOR) que d'éléments ON (NAND). Les algorithmes pour les deux
types de fonctions logiques élémentaires NI et ON sont duaux, et grâce à
la notation que nous avons établie (§ 3), ils sont rendus identiques pour
le traitement. De plus, cette codification proposée permet simultanément
de représenter le circuit, et de suivre l'évolution de la forme de la
fonction logique à réaliser.

D'autre part, il n'y a aucune restriction sur les fonctions qui se


ront traitées par cette méthode : elles peuvent être complètement spéci
fiées ou 0 booléennes (incomplètement spécifiées); dans le second cas, il
suffit, lorsque l'on donne la fonction à réaliser, d'indiquer les états
disponibles.

Nous ne pouvons pas porter de jugement de valeur définitif sur cette


méthode, tant que sa programmation ne sera pas terminée (elle est actuel
lement en cours, en liaison avec le Département de Calcul Electronique
/15/), ce qui constitue l'inconvénient des méthodes heuristiques. Celles-
ci ont tout de même l'avantage de permettre une optimalisation des résul
tats par modification ultérieure des différents algorithmes. La mise en
programme effectuée, il sera alors intéressant de comparer les réalisations
obtenues avec celles fournies par d'autres méthodes /6-7/ - /8/ - /9/, ce
qui constitue la seule possibilité de jugement, la fonction définissant
le coût minimal des circuits n'étant pas encore établie.
Lecture de 78,
NOR (NI)
la fonction NAND (ON)

Choix
Termes
de
communs au
1'écriture
3ème niveau

Simplification
Quine-Mc Cluskey -»•

j Fusion au
3ème niveau

Vf
Cataly
seurs
TC et C

ô—»—«-

Fusion avec
XY ou XY

TC et C

I •*—«—n

Transformation
à différents
niveaux

TC et C
Configuration
a(a+b) + b(a+b)
(x+xy) (y+xy) ->—<- -o

Fusion des
chaînes
"compléments"

Coût final
Schéma du
circuit
79.

DEUXIEME PARTIE

METHODE DE DECOMPOSITION

1. - PRINCIPE GENERAL

Plutôt que de chercher une réalisation directe des circuits, ce


qui conduit en général à des méthodes heuristiques, nous avons songé
à établir une méthode plus rigoureuse se fondant sur les propriétés
des fonctions booléennes.

Disposant d'une table complète des circuits de coût minimal (avec


des opérateurs NI et ON) des fonctions de trois variables /1/, nous
rapportons le problème de la réalisation technologique de fonctions de
n variables à un assemblage de blocs qui constituent chacun le circuit
d'une fonction de trois variables.

Ce résultat sera obtenu par décompositions successives de toute


fonction de n variables en fonction de fonctions réalisables à partir
des circuits possédés en bibliothèque. La fonction donnée devra admettre
une décomposition disjointe simple; cette restriction n'est pas gênante,
car dans la pratique on rencontre essentiellement des fonctions 0 boo
léennes (§ ?)•

Une somme de minimums n'étant pas en général un minimum, il ne sera


pas possible de déclarer optimales quant au coût les solutions fournies
par cette méthode. Elle présente néanmoins plusieurs avantages :
8o.

1°) Très souple dans son principe et son application, elle permet
tra de généraliser le problème combinatoire en permettant l'é
tablissement de circuits utilisant en plus des opérateurs NI
ou ON, des bistables et des bascules.

2°) Elle nous a permis de cerner la fonction de coût des circuits :


nous avons pu déterminer par récurrence la borne supérieure
du coût minimal (Cmin) de tout circuit en fonction du nombre
sup
de variables (§ 5.2).

3°) Elle peut avantageusement servir de base de comparaison pour


différentes méthodes.

Elle a cependant un inconvénient dans certains cas, celui de pro


poser des circuits possédant souvent un grand nombre de niveaux (ou
couches). En particulier, une telle structure peut être gênante dans le
traitement de signaux à haute fréquence, le temps de propagation à
travers la cascade d'éléments pouvant être trop important et favoriser
des risques d'aléas.

2. - DECOMPOSITION FONCTIONNELLE

2.1. Les différents procédés

Ils ont fait l'objet de nombreux travaux /4/, /5/, /10/, /11/,
qui ont permis d'établir des méthodes de décomposition de fonctions
suivant différents critères. Schématiquement nous pouvons signaler trois
types différents de décompositions fonctionnelles :

f(x1 , x2 , , xn) = f(X)

X={X1 'x2 ' ' xn }


Y, Z» S, T, U sont des sous ensembles de X
a) décompositions disjointes :

f(X) = F(Y,Z,U) = H (A(Y,Z),U)

Les ensembles Y,Z,U sont disjoints;

b) décompositions semi-disjointes :

f(X) = F(A(Y,U), B(Z,U) ... , H(T,U),S,U)

Les ensembles S,T,U,Y,Z étant disjoints;

c) décompositions non disjointes :

f(X) = F(Y,Z,U) = H(A(Y,Z),U)

Les ensembles Y,Z,U n'étant pas disjoints.

2.2. La décomposition disjointe simple

En vue d'obtenir des circuits de coût le plus faible, la méthode


la plus avantageuse à employer est celle de décomposition simple dis
jointe. En effet, tout fractionnement différent conduirait à reproduire
plusieurs fois dans le circuit certains termes.

Rappelons les critères d'existence et les propriétés des fonctions


booléennes fonctionnellement séparables. /4/, /5/, /6/.

2.2.1. Çéf±ri±t±ori_de_la partition

f(x1 , x2 , x ) = f(X)

" {x1 ' *2 x. X V


n )

On considère une partition (Y,Z) de l'ensemble X, c'est-à-dire


deux sous-ensembles Y,Z tels que :

1 = i y,
j -j ,i y,
j2 ,) ...... y l CX

Z ={Z1 , 82 , ...., zk j. C> X


82.

Y V Z = X

y n z = 0

Y et Z vérifiant les conditions :

k + s = n

2 « * < n-1
ce qui élimine les formes du genre :

f(x1 »•'•' Xi-1 »xi .x.+1 ,.-., xn) = F(A(x„ , xn) )

ou :F(A(Xi), x, 'i ..., ^ ,x^,...^)


avec : A(x.) = x.± ou A(x,X ) = T7
1 1

2.2.2. Matrice de partition

La matrice (ou table) de partition, est un tableau rectangulaire


"a deux entrées", où sont représentés en fonction des n variables les
2^ états possibles de la fonction. Sur l'un des côtés sont portés les
2 combinaisons binaires des y. ,sur i-autre les 2k combinaisons M_
naires des z..
1

Pratiquement, la matrice de partition peut aussi bien être représen


tée par un diagramme de Karnaugh que sous forme de table, codée par les
valeurs numériques croissantes qu'indiquent les combinaisons de varia
bles. (Celles-ci étant orientées et affectées chacune d'un "poids").
C'est cette seconde forme que nous avons adoptée pour la réalisation
des programmes (§8).

2.2.3. i|£_tbéorème d'ASHENHURST /4/

Il établit la condition nécessaire et suffisante d'existence


d'une décomposition disjointe simple. Il porte sur la matrice de parti-
tion, et s'exprime par deux critères :
83.

1°) Critère des lignes

La fonction f(X) est décomposable si chaque ligne de sa ma


trice de partition est assimilable à l'un des vecteurs sui
vants :

—*

- vecteur trivial (0)

- vecteur trivial (1)

- vecteur non trivial (L)

- vecteur non trivial (L)

2°) Critère des colonnes

Une fonction f(X) est décomposable suivant la partition (Y,Z)


si la matrice de partition correspondante à un nombre de
colonnes inférieure ou égal à 2.

2.2.4. Forme_obtenue_de la fonction décomposée

La fonction f(X) ayant vérifié les conditions précédentes peut


donc se représenter par :

f(X) = F(Y,Z) soit :

f(Xl , x2 ..., xn) = g(L(y1 ,..., yg), Zl , z2 .-.zk)

qu'on peut également écrire sous la forme :

f(x1 , x2 ..., xn) = L(yi ,..., ys).g(l,Zl , ..,zk)+L(y1 ,,, , ys)


g(0,z1 , .-.,zk)
ou encore :

f(X) = L(Y) . gl(z) + L(Y) . gQ(z)

L et L correspondent aux vecteurs indiqués ci-dessus; ils sont


indépendants des z..
i

s0 et 61 ne dépendent que des z., et sont tels que /4/ :

g0•" Y(L) + Y(1)


S1 = Y(L) - Y(0)
84.

les Y(L) t Y(L) i Y(>|) i Y(0) » sont respectivement les fonctions


caractéristiques des vecteurs (L), (L), (1) et (0) sur l'ensemble

2.2.5- Exemple :

Soit une fonction de 5 variables :

f(a,b,c,d,e) = abe + abd + bcd + âbce + âbd

Nous avons pu déterminer par programme (§ 8) qu'elle est décompo


sable suivant la partition : (a,b,c)/(d,e).

On peut donc écrire :

f(a,b,c,d,e) = F(L(a,b,c), gQ (d,e), g* (d,e) )


soit : •

f(a,b,c,d,e) = F(L(a,b,c),d,e)

ou encore :

f(a,b,c,d,e) =L(a,b,c) .gl (d,e) +L(a,b,c) .gQ (d,e)


avec :

L défini en fonction de a,b,c par sa position sur la table de


partition :

L( a, b, c) .= ab + bc + ab

gQ et g1 définis sur (d,e) :

S0 = Y(l) + Y(1) = e

g1 = Y(L) + Y(1) = d •
donc : f(a,b,c,d,e) =L(3) .d+L( ,.e

= F(3) ^L(3)id,e)
f apparaît bien sous forme de fonction de fonction; mais de plus
F(3) est une fonction de trois variables : L,d,e.
85,

On a donc immédiatement le circuit réalisant F(.^, à partir des


signaux d'entrée L,d,e, puisqu'il se trouve sur la table dont
nous disposons. Notons que de plus, nous avons la possibilité
de réaliser F^,. avec des opérateurs NI ou ON.
En technologie NOR :

L(5) —

= 4-7
f(a,b,c,d, e)
= 12

En technologie NAND :

C =4-7
L
(3) f(a,b,c,d,e)
CR= 12

0 0 0 0 0 0 0 0 (0)

1 0 1 1 0 1 0 1
1
(L)
1
(7)
y.
I 1 1 1 1 1 1

0 1 0 0 1
0
1 0 (f)

Matrice de partition de f(a,b,c,d,e)


86.

D'autre part, la sous-fonction : L,,, = âb + bc + ab


est une fonction de trois variables dont nous possédons en bibliothèque
les circuits de coût minimal :

En technologie NOR :

t>>^ 5-10

CR=16

En technologie NAND

•Ov':C> C m5 - 9

CR= 15

Pour chaque type d'opérateur l'assemblage des deux circuits,


qui fournissent les signaux représentatifs de L(a,b,c) et de f(a,b,c,d,e),
est immédiat. La réalisation de f(a,b,c,d,e) sera donc :
_1

87.

En technologie NOR

C =8-17

En technologie NAND :

8-16

25

Remarque : Si dans une même chaîne deux éléments en cascade ne reçoivent


aucun nouveau signal, ils peuvent être court-circuités. En
effet, ils complementent deux fois une même information, donc la lais
sent inchangée. Cette possibilité permet donc de diminuer le coût C
du circuit de la fonction f donnée, puisqu'il peut être plus petit que
la somme des coûts Cj_ des différentes réalisations intermédiaires :

C < £ Ci
1 i
88.

3- - ORDRE DE PARTITION

Nous pourrons constater, sur l'exemple ci-dessous le rôle essentiel


qu'il a dans la détermination du circuit. On se donne ici pour hypothèse
que toutes les fonctions que nous allons considérer sont fonctionnelle-
ment séparables. Nous la justifierons par la suite (§ 7).

>. Sachant que nous disposons de tous les circuits dépendant de trois
variables /1/, on pourrait chercher par programme toutes les partitions
possibles des fonctions données; chaque fois qu'apparaît une "sous fonc
tion" dont la réalisation est connue, on fait appel à son circuit repré
sentatif. Une fois déterminées toutes les sous-fonctions, l'assemblage
des "blocs" correspondants fournit la solution cherchée.

Notre but étant d'établir les circuits en cherchant à rendre leur


coût minimal, nous avons pu constater que des décompositions successives
suivant un ordre de partition désordonné, conduit à élever notablement
le coût de la réalisation.

Considérons par exemple le cas des fonctions booléennes de 7 va


riables : ,.

f(7). = f(7) (x1 ' x2 '•"' V


Nous supposons dans tout ce qui suit que les variables sont inter
changeables (aucune ne joue un rôle particulier); aussi noterons-nous
les différentes fonctions par un indice représentatif du nombre de va
riables dont elles dépendent.
89.

Envisageons pour f^ les différentes partitions suivantes :

1 ) f^) = f^^(x^ , x2 ,..., x_) fonctionnellement séparée suivant


la partion : (^ , x_, , x^/Cx^ ,^ , Xg x?).
Nous obtenons ainsi :

f(7)(x1 , x2 ,..., x?) = S(3)(b(5 (x1 ,x2 ,x3),

= b(3) gl(4) + h(3) gQ(4)

= g(3) (h(3), g0(4), gl(4))


f^ est donc sous forme d'une fonction de fonction de trois va
riables : g^ ^ de plus est apparue une sous-fonction lc^ elle
aussi de trois variables.

Or nous savons que tous les circuits dont nous disposons sont réa
lisés avec 7 éléments au plus pour les fonctions de trois variables,
et au maximum avec 5 éléments (ou opérateurs) pour celles ne dépen
dant que de deux variables.

g^ a donc un coût de réalisation de 7 éléments au maximum,


de même h(3) est réalisée avec au plus 7 éléments.

Il convient maintenant de décomposer les sous-fonctions gn(4) et


g,(4) :

a) g0(x4 , x5 , x6 , x?) =B l1 + B 1
0

=A(3) (B(2)' V4 V2))


;*€ {4,5,6,7}
\3) \Z) i j ' u' v
i gfc j ± U gfe V

gQ sous forme de fonction de fonction est réalisable puisque nous


connaissons les circuits correspondants à A, , et B,
A(3) est réalisée avec au plus 7 éléments
B(2) est réalisée avec au plus 5 éléments
Soit pour gQ(4) : 12 éléments
90.

Remarque : Nous avons éliminé par définition (§ 2.2.1) le type de par


tition (Xr)/(X£7
^ '/*> *3 , Xr »
i *g , X„) qUC nous aurions pu adopter ici
x„j que
pour g

b) Une décomposition identique s'opère pour g (4) = g (x, ,x x x. )


• I *T J? D.' /

elle conduit aussi à un coût de 12 éléments pour g (4).

Nous avons donc au total, pour la partition :


(x1,x2,x3)/(xZi,Xç-,Xg,x7) un coût de réalisation pour f(rt) :
7 -éléments pour réaliser g(3)
7 éléments pour réaliser h(3)

12 éléments pour réaliser g (4)


12 éléments pour réaliser g (4)
Soit : 38 opérateurs (NOR ou NAND) pour réaliser ïV:\ .

2e) Envisageons pour f _ -F

'(7) ~ i(7rX1'.z25.^''-?7':
la partition (4)/(3) (ou : (x.} ,^ ,x.,, x^)/( Xt., Xfi, x7) )
'3 '"4" k"*5'*5'»"A7'
nous obtenons :

f(7)(xr ,x?) = g (L(4), xr,x6,x )


= g(3)(L(4), gQ(3), Sl(3) )
trois fonctions de trois variables apparaissent ici qu'il nous est
donc possible de réaliser sans les décomposer à nouveau :
g(^ dont le coût sera au plus de 7 éléments
gQ(3) dont le coût sera au plus de 7 éléments
g., (3) dont le coût sera au plus de 7 éléments.
Reste L(4) qui doit être mis sous forme de fonction de fonction.:
L(4) (xrx2,x3,x/+) =C(3) (D(2),k0(2),kl(2))

u é {1>2'3,4}
C(3) (D(2)(xi'Xj)'xu'xv)
i * j £ u 4 v
91

C/,.. est réalisable avec 7 éléments

Vfp\ est réalisable avec 5 éléments


Coût de f,7s = somme des coûts de g(3), gQ(3), g^(3), C(3), D(2)
donc f ,„•. (x.,...., x„) réalisable avec 33 éléments au lieu de 38
précédemment.

3°) Considérons la partition (2)/(5) soit (x.,x_)/(x,,Xl,xr,Xg,x„)


nous obtenons :

f(x1? ,x7) = g^ (L(2), gQ(5), g^5) )


Ef-z\ fonction de trois variables L, g_, g ; coût : 7 éléments.

L(2) fonction de deux variables x, , x_ ; coût : 5 éléments.

- Sr\(5) et g,. (5) sont encore à décomposer :

a) On essaye la partition (2)/(3) (ou : (x,,x. )/(x,-,Xg,x ) )

gQ(x,, ....,x„) = A (B(2), x5,Xg,x„)


= A(3)(B(2), kQ(3), k^3)
sous-fonctions toutes réalisables : A(3) coût : 7 éléments

B(2) coût : 5 éléments

k0(3) coût : 7 éléments


k1(3) coût : 7 éléments

soit pour g : 26 éléments

de même pour g : 26 éléments

b) On peut aussi décomposer g0(5) et g,, (5) suivant la partition :


(3)/(2) (ou : (x3, x^, x5)/(xg,x?) ) :
g0(x3, ,x?) = C(3) (D(3), 1Q(2), 1^2) )
= C(3) (D(3), x6,x?)
C(3) et D(3) fonctions de trois variables réalisables chacune
avec 7 éléments. Donc g„ a ici pour coût : 14 éléments;

de même g,, a ici pour coût : 14 éléments.


92.

Nous avons donc deux solutions pour f, « avec la partition (2)/(5),


toutes deux plus onéreuses encore que les précédentes :

la première propose un coût de 7 + 5 + 26 + 26 = 64 éléments


la seconde 7 + 5 + 14 + 1+ = 40 éléments.

4°) Soit encore la partition (5)/(2), soit (^,^, Xj, x^, ^)/(Xgj x)
envisagée pour f(x,.:, ,x„) : ° '

f(xr....,x?) = G(3) (L(5), gQ(2), gl(2) )


= G(3) (L(5), xg, x7).
-G(3) fonction des trois variables L, Xg, x? est réalisable
avec 7 éléments.

- L(5) est à décomposer à son tour; nous avons vu précédemment (ci-


dessus pour gQ(5) et Sl(5)) que suivant les deux partitions pos
sibles - (2)/(3) ou (3)/(2) - on obtient respectivement un coût
de 26 éléments ou de 14 éléments pour la réalisation d'une fonc
tion de 5 variables.

.Nous avons donc ici aussi deux solutions pour le circuit de f,


l'une requérant : 7 + 26 = 33 éléments

l'autre : 7 + -]k - 21 éléments.

Il apparaît donc absolument nécessaire de déterminer un ordre de


décomposition (ou de partition) qui permette d'établir les circuits des
fonctions à réaliser avec un prix qui soit le plus bas possible. Une
suite de décompositions effectuées de manière désordonnée peut conduire,
nous l'avons vu ici, à des variations de coût de l'ordre de 300 %. (La
3ème partition propose une solution de 64 éléments, la 4ème une réali
sation avec 21 éléments). Notons que de plus, ici, le nombre de varia
bles est faible (7), et que des fonctions d'ordre plus élevé permet
tent des choix de décompositions successives encore plus nombreux; par
conséquent des écarts possibles au coût minimal bien plus importants.
93.

4. - ORDRE DE DECOMPOSITION CHOISI

4.1. Choix d'un ordre de partition


.

Nous avons vu ci-dessus le rôle essentiel que joue l'ordre des


partitions pour le coût des circuits réalisés. D'autre part, un circuit
présentera d'autant plus de risques d'aléas que le nombre des éléments
qui le constitue est grand. Afin d'augmenter la fiabilité et simultané
ment de diminuer le coût des réalisations, nous avons choisi d'effectuer
des décompositions successives qui abaissent chaque fois de deux l'ordre
de la fonction donnée.

Ce choix s'explique aisément; en essayant sur de nombreux cas toutes


les suites possibles de décompositions, nous sommes parvenus aux conclu
sions ci-dessous, qu'illustre bien l'exemple précédent (§ 3) :

1°) Il apparaît que le coût augmente notablement lorsqu'après une pre


mière décomposition, les trois sous-fonctions mises en évidence
(L, gQ, g.) sont d'ordre supérieur à trois, donc à nouveau décompo-
sables.

eme
2°) Le coût de la réalisation est aussi très important si la k*"""" et
dernière décomposition ne fait apparaître que des sous-fonctions
de trois variables (§ 3 - 3ème partition).

3°) En conséquence de ces remarques, il convient donc de veiller à ce que:


a) aucune décomposition ne fasse apparaître plusieurs sous-fonctions
elles-mêmes à décomposer. Or, g et g sont toujours du même or
dre; donc seule L doit subir de nouvelles décompositions.

b) gQ et g^ soient toujours de l'ordre 2; ce qui est la conséquence


de la 2ème remarque ci-dessus.

Conclusion : L étant la seule fonction à décomposer à chaque étape, et


gQ et g^ étant d'ordre deux, cela revient bien à effectuer
des décompositions successives qui diminuent chaque fois de deux le
nombre de variables dont dépend la fonction donnée.
94.

4.2. c as général

C'est en examinant de manière récurrente le processus de décompo


sition de la fonction générale de n variables que nous parviendrons
ci-dessous (§ 5) à déterminer le nombre nécessaire de décompositions
successives pour une fonction quelconque, et la borne supérieure du
coût minimal <Cmin) sup en fonction du nombre de variables.
On considère la fonction générale d'ordre n :

f(n) <Vx2,...fxn)
Les variables sont interchangeables, leurs indic es ne sont pas spéci-
fiques.

f(n) est décomposée eh une fonction de fonction de 3 variables :


1. \ , x.

f<-> (X1'X2 'Xn} =F(3) (l(n-2)' xn-1' xn)


à son tour, l(n-2) est décomposée :

l(n-2) =L(3) (m(n-4), ^_y %^)


m(n-4) =M(3) (p(n-6), x^, x^)
on continue le procédé en abaissant chaque fois
de 2 l'ordre de la fonction

• •o«*»*«*»*a

v(n-2K+2) = V(3) (w(n-2K), x •2K+1 Xn-2K+2)



jusqu'à ce que :

1D) si n est impair : n - 2K = 3


On a alors :

In-2K+2) = v(5) fonction de 5 variables


w(n-2K) = W(5) fonction de 3 variables
Donc, arrêt du processus de décomposition quand :
(5)
= V (3) (w(3), x±, x ).
95.

2°) Si n est pair : on arrête le processus lorsque : n - 2K = 4

Soit : v(n-2K+2) = v(6) fonction de 6 variables

w(n-2K) = w(4) fonction de 4 variables.

Il est donc nécessaire d'effectuer une nouvelle décomposition,


mais cette fois apparaîtra une sous-fonction de 2 variables :

w(4) = v,,x (L9., x , x )


(3) (2)' u' v

5. - NOMBRE DE DECOMPOSITIONS - BORNE SUPERIEURE DU COUT MINIMAL : (C • )


sup

5.1. Nombre de décompositions successives

1°) Le nombre de variables n est impair.

Nous avons vu que chaque décomposition permet d'obtenir une "sous-


fonction" qui dépend de 2 variables de moins que la précédente,

D'autre part, le processus est arrêté lorsque : n - 2K = 3

On a donc effectué K décompositions successives :

K = 2—1

2°) Le nombre de variables n est pair :

Nous savons que, dans ce cas, le processus de décomposition est ar


rêté lorsque : n - 2K = 4

Nous sommes alors en possession d'un résultat ayant bien la forme


d'une fonction de fonctions (elles-mêmes fonctions de fonctions),
mais dont la dernière "sous-fonction" apparue w, dépend de 4 va
riables (§ 4.2).

Une dernière décomposition est alors effectuée; w(4) est transfor


mée en ^f-zy mais cette fois-ci apparaît une sous-fonction de 2 va
riables au lieu de 3 comme précédemment :
96.

w(4) = w (v v, Xw, )

j é ju, v, w, z|
w(4) = W(3) (X(2), x., x.)

La relation : n - 2K = 4 , nous fournit le nombre K de décomposi


tions du type défini précédemment; intervient ensuite une décompo
sition faisant apparaître une sous-fonction de 2 variables.

Nous avons donc : k = K + 1 décompositions.

Soit : k = n g—
'' A'
- 2 décompositions pour n pair.

3*2» Borne supérieure du coût minimal (Cmin)


— — SUp

1°) Nombre n de variables impair.

'A chaque étape, nous faisons apparaître une fonction de 3 variables,


donc réalisable avec 7 éléments.

Ala dernière étape, la Kème, nous trouvons deux fonctions de trois


variables (§ 4.2) V et w :

j€
3
j1,....,n }
V(5) = V(3) (w(3)' Xi' Xi}
J
)

x ;#•' "j
requérant chacune 7 éléments,

La fonction de n variables est donc réalisée avec au plus :


(K+1) 7 éléments.

Or : K = —
2

La borne supérieure du coût minimal est donc :

(C •)
v^mm^
- (n --^ 1) 7 éléments
-
,.. ,
sup

n impair.

2°) Le nombre n de variables est pair.


Les K premières décompositions mettent en évidence K fonctions de
3 variables réalisables chacune avec 7 éléments.
Q1

La dernière fait apparaître une fonction de 3 variables - soit


7 éléments - et une fonction de 2 variables, soit 5 éléments.

Nous avons donc cette fois :

(C_.._)
mm
= (K+1) 7 + 5 éléments
;up

n-4
Or : K =

7 n-4
soit : élément;
(Cmin)sup

Nombre de variables

n pair n impair

Nombre de
n - 2 n - 3
décompositions
2 2
k

7 n-4 7 n-7
(Cmin) 2 2
sup

n
^min' (C )
sup •"• max

2 5 20

! 3 7 28

4 12 48

5 14 56
6 19 76
7 21 84
8 26 104

9 28' 112

j 1D 33 M
(cWrn
SUp A

30 elts-

20 elts-

10 elts-

(CR)
max A

130 -

100-

50

20

1 «

•\ H -i I I 1 *. n
5
7 8 9 10
(S) f(n)
max
99.

Le coût relatif maximal (CR) (2ème partie § 2.2) est aussi éva-
max
lue avec une certaine marge, puisque nous considérons ici que chacun
des éléments utilisés (3 entrées - C_R = 4) peut avoir toutes ses entrées
occupées.

6. - EXEMPLE

Soit une fonction booléenne de 7 variables :

f = ABCDEF + ÂBCDËFG+ÂBCDEF+ABCDEFG

+ABCDËF+ ABCDEFG+ ABC DËF+ABCDEF

+IBCDEFG + ÂCDEF + ÂBCDËF + ABCDËFG

+ABCDEF + ABCDEFG + ABCDEFG + ABCDEF

+ABCDEFG+ABCDEF+ABCDEF

n étant égal à 7, nous savons donc que pour cette fonction, quel que
soit l'opérateur choisi (NI (NOR) ou : ON (NAND)) :

le nombre de décomposition : k = n = 2

- la borne supérieure du coût est (C^^) 7 n-7


mm'
= 21
sup

le coût relatif maximal est (C ) = 4 (C„,, ) = 84


max sup

6.1. Première décomposition


mpc

Par programme (§ 8), on cherche une partition (5"variables)/(2variables)


qui permette, par cette première décomposition, de faire apparaître une
sous-fonction d'ordre 5 et de mettre la fonction donnée sous forme de
fonction de fonctions de trois variables (§ 4).

On constate ainsi que f est décomposable suivant (B,C,D,E,G)/(A,F);


la matrice de partition correspondante est indiquée ci-dessous.
100.

Remarque : Le programme actuel établit cette table avec un agence


ment des variables différent (E,D,C,B,G)/(F,A) - (§ 8.3).
Ceci est dû à la structure des sous-programmes de permutation (§ 8.2)

Matrice de partition
de f(a,b,c,d,e,f ,g)

BCDEG

\ 0 1 0 0
0 1 0 0

0 0 1 0
0 0 1 0
,EC
0 0 1 0
BD>{j
0 0 1 0
1 0 0 1
0 1 0 0
0 1 0 0 1 0 0 1

0 0 1 0 0 1 1 0
0 0 1 0
o 1 1 0
0 1 0 0
0 1 1 0 0 1
0 o \
0 1 0 0 0 1 1 0
0 1 0 0
1 0 0 1
0 0 1 0
0 0 1 0 1 0 0 1

0 1 0 0
(H) (H) (H) (H)
0 0 1 0

Matrice de partition
0 0 1 0
0 1 0 0 de L(B,C,D,E,G)
suivant la partition ;
0 1 0 0
0 1 0 0 (B,D,G)/(E,C)

0 0 1 0
0 0 1 0

o 0 1 0
0 1 0 o

0 1 0 ô
0 0 1 0

0 0 1 0
0 0 1 0

0 1 0 0
0 1 0 0

(0) (L) (L) (0)


10"

Par cette première décomposition, nous obtenons

f = X (L(B,C,D,E,G),A,F)

= X (L,hQ(A,F),h,(A,F) )
= L h1 + L hQ

hQ(A,F) = Y(r) + Y(1

= A F + 0

= A F

hl(A,F) = Y(L) + Y(1)


= A F + 0

= A F

l (b,c,d,e,g)= bcde+bcde+bcde+bcde+bcdeg

+ bc"deg + bc"dë+bcdëg + b c d e g + b c d e
on peut donc écrire :

f = X = LAF + LÂF

X, fonction de trois variables dont on connaît la réalisation :

- En technologie NOR :

L(B ,C,D,E,G)~fS^. |

C =6-11
A— -> X = f
cR = 18

F-

L(B,C,D,E,G)-
102.

- En technologie NAND :

c =5-11
X = f
CR= 17

6.2. Deuxième décomposition

.s- L(B,C,D,E,G) n'ayant pas de solution connue (on ne possède en


bibliothèque que des circuits de 3 variables /1/), une deuxième opéra
tion de décomposition est effectuée.

Le traitement de L par programme (§ 8.3) nous indique la partition :


(B,D,G)/(E,C); la matrice de partition correspondante est représentée
ci-dessus (p. 100).

Nous avons ainsi :

L(B,C,D,E,G) = Y (H(B,D,G),C,E)

= Y (H,k0(C,E),k1(C,E) )
= H.k^ + H kQ
avec

k1 (C,E) = Y(H) + V(1)


= (C Ê + C E) +0

= C E + C E
103.

kQ (C,E) = Y(ïï) + Y(1)


= (C E + C I) + 0

= C E + C E

H(B,D,G) =BD+BDG+BD

donc :

L = Y = H(C E + C E) + H(C E + C E)

Nous sommes donc en possession de deux fonctions de trois variable:


Y et H, dont nous connaissons les circuits :

a) En technologie NOR :

B-J B-

D C =5-10
•»H
CR= 16
G-J

D —

H
Y = L
E

C =7-20

CR = 27
104,

b) En technologie NAND

C = 5 - 9

CR= 15

Y = L

C =7-20

6.3- Le circuit obtenu

Il suffit d'établir les liaisons entre les différents circuits


correspondants aux différentes fonctions H,L et X, pour obtenir celui
correspondant à la fonction f donnée.

f(A,B,C,D,E,F,G)=X (L(H(B,D,G),C,E),A,F)
Il a les caractéristiques suivantes :

a) en technologie NOR
C - E (C)± = 18 éléments - 41 connexions
CR = E(CR) = 61
105.

b) en technologie NAND :
C = E(C)
1 X
= 17 éléments - 40 connexions CT,R = E(CD)
^ K !
. = 59
Remarque : On peut comparer les résultats obtenus à la limite supérieure
des coûts, établie précédemment (§ 5.2) :

pour 7 variables : (Cmin) = 21 éléments - (Cp) = 84


SUP »maY
max

a) Technologie NOR b) Technologie NAND

«M
106.

7• - LES FONCTIONS 0 BOOLEENNES

Nous avons jusqu'ici présenté cette méthode de décomposition en


l'illustrant par des exemples portant sur les fonctions complètement
spécifiées, ceci dans un but de clarté d'exposé. En fait, si elles ne
sont pas toutes décomposables, elles sont dans la pratique d'un emploi
très rare lors de réalisations d'appareils.

L'objectif de cette étude étant d'aboutir, lors d'une prochaine


étape, à des programmes mis en exploitation, l'inconvénient présenté
par ce type de fonctions nous semble mineur. Ceci d'autant plus qu'il
peut être rendu négligeable par l'adjonction de sous-programmes autori
sant des décompositions semi-disjointes, ou faire appel à la première
méthode présentée de "Fusion des chaînes et combinaison des éléments".

C'est pour les fonctions 0 booléennes (ou : incomplètement spéci


fiées) que la "méthode de décomposition" prend toute son importance.
Les principes et les résultats exposés précédemment sont inchangés.
Par contre, les critères d'utilisation deviennent beaucoup plus souples
de par la présence des états disponibles, généralement nombreux dans
toutes les fonctions à réaliser.

7•1• Les critères de décomposition

L'application du théorème d'Ashenhurst (§ 2.2.3) devient beaucoup


plus aisée. En plus des vecteurs (H), (f), (0) et (Y), on en voit«appa
raître trois nouveaux : (0UN), (0ZERO) et (0) qui assouplissent énormé
ment l'utilisation du critère des lignes.

Ces différents vecteurs sont ainsi définis :

0UN : correspond à VQUN sur l'organigramme (p.116)


est un vecteur dont les différentes composantes représen
tent soit un état 1, soit l'état disponible 0.

0ZERO : appelé VQZERO sur les programmes, vecteur dont toutes les
composantes correspondent à 1•un des états 0 ou 0 de la
fonction.
107.

0 :(= VQQ sur programme) représente uniquement des états dispo


nibles 0 de la fonction.

Le nombre de combinaisons peut donc être très grand; on peut sché-


matiquement sur un exemple très simple en illustrer quelques uns :
Considérons la table de partition suivante d'une fonction de 4
variables :

0 0 0 0 (1)
0 1 0 0 (2)
(H) 1 0 0 1 (3)
0 0 0 0 (4)

Sur cet exemple schématique, on voit apparaître plusi eurs possi-


bilités :

Seul le vecteur (3) est ici impose, car on y trouve les deux états
0 et 1.

Par contre, sous forme définitive, on pourra :


- donner au vecteur (1), soit la forme (H) soit (0).;
- définir le vecteur (2) comme étant soit (f), soit (T) ;
- attribuer enfin à (4) l'une des valeurs (H), (J), ("o) ou (7).

7-2. Les formes obtenues

Ces possibilités de choix dans l'attribution des états disponibles,


permet aussi d'agir sur l'agencement des circuits obtenus. En effet, la
fonction f décomposée, est mise sous la forme :

f = F (H,g,g0)

= H S-! + H gQ
Or, on peut agir sur la forme de H (ou de H) par différentes attri
butions des états indifférents. On se donne donc un moyen d'action sup
plémentaire sur le coût du circuit (l'essai de plusieurs combinaisons,
permet de retenir la plus avantageuse), et sur sa fiabilité par des choix
permettant d'éliminer les risques d'aléas.
108.

D'autre part, une intervention prioritaire peut être ajoutée par


la définition préalable de formes désirées de gf ou g (ce qui impose
rait la définition des vecteurs (1) (2) ou (4) ci-dessus). Cela permet
tra à l'utilisateur d'introduire de nouvelles contraintes.

Du point de vue exploitation, le programme de conception correspon


dant, associé à un second de "vérification de circuits" peut constituer
un outil intéressant lors de l'utilisation du procédé de dialogue avec
ordinateur par console de visualisation.

UTILISATION PRATIQUE

LA PROGRAMMATION

Jusqu'ici nous avons exposé le principe de la Méthode de Décompo


sition, en illustrant les différentes étapes par des exemples. Nous
exposerons ici les opérations pratiques à effectuer pour obtenir les
résultats, puis les procédés retenus pour la mécanisation.

8.1. Mode opératoire

La fonction à réaliser est donnée; considérons par exemple f qui


dépend de 4 variables :

f = cd + ab + ac + bc + ad + abcd

nous dressons ensuite sa table de vérité :


109,

(a0) (21) <22> (23)


A B c D Fonction K(

0 0 0 0 1 0

0 0 0 1 0 8
0 0 1 0 1 4
0 0 1 1 1 12

0 1 0 0 1 2

0 1 0 1 1 10

0 1 1 0 1 6
0 1 1 1 1 14
1 0 0 0 0 1

1 0 0 1 1 9
1 0 1 0 1 5
1 0 1 1 0 13
1 1 0 0 0 3
1 1 0 1 0 11

1 1 1 0 1 7
1 1 1 1 1 15

A chaque décomposition (§4) nous abaissons de deux l'ordre de la


fonction. Ici nous aurons donc une partition (2)/(2), c'est-à-dire que
l'ensemble |a,b,c,d j. des 4 variables sera divisé en deux sous-ensembles
qui en contiennent chacun deux; on essaiera ainsi tour à tour toutes
les partitions possibles : (a,b)/(c,d); (a,c)/(b,d)

Il convient alors pour chacune d'elles de dresser la matrice de


partition correspondante; par exemple :

v ca
de
ba' =\ 00 01 10 11
bd
_____

1 1 0 1 00 1 0 1 1

0 1 1 0 01 0 1 1 0

1 1 1 1 10 1 0 1 1

0 1 0 1 11 1 0 1 1

(H) (H) (1) (H)


Partition (d,c)/(b,a) Partition (c,a)/(b,d)
fonction non décomposable fonction décomposable
110.

Pratiquement, pour établir les différentes matrices de partition


on procède comme suit :

On calcule (voir ci-dessous) un coefficient K(L) associé à chaque


ligne de la table de vérité; N étant le nombre de variables de la fonc
tion, L peut donc prendre toute valeur de 1 à 2N.

Ici : N = 4 donc L = 1, 16

Chaque "case" de la matrice correspond à l'intersection d'une ligne


i et d'une colonne j. Pour des raisons pratiques d'impression des résul
tats (voir programmes p.117 et suivantes), les deux variables - X,Y dans
une partition quelconque (2)/(K) soit : (X,Y)/(Z,U,...,T) - qui servent
à l'abaissement de l'ordre de la fonction, voient les combinaisons de
leurs états correspondre aux différentes colonnes de la matrice. Ceci
explique l'ordre dans lequel sont indiquées les partitions représentées
ci-dessus.

Le nombre de colonnes est donc toujours 4 : je ]1,2,3,4 t


Le nombre de lignes est :2N"2 soit :4 dans l'exemple traité ici.
Pour établir le lien direct entre la table de vérité (TABVER sur
le programme) et la matrice de partition (TABPER sur le programme), on
calcule le coefficient K(L) : K(L) est le nombre décimal représenté en
binaire par la ligne L de la table de vérité; à chaque variable - donc
à chaque colonne - est associé un poids (puissances successives de 2).
Pour des raisons pratiques de programmation, nous avons choisi des poids
croissants suivant l'ordre alphabétique.

Nous effectuerons les décompositions successives par rapport aux


deux variables affectées des poids les plus grands, (ici c et d).
Pour représenter les états de la fonction sur la matrice correspon
dant à la partition envisagée, on se servira des deux relations que nous
avons établies liant les coordonnées i,j d'une case au coefficient K(L) :
L, ligne de la table de vérité, correspond à la case située à la :
-colonne j=partie entière (^ipj) +1
2*

ligne i = K(L) - 2N~2


N-2
(j_D + ^
111.

dans laquelle on porte la valeur 1 ou 0 représentative de l'état de la


fonction.

On procède ensuite à la reconnaissance des 4 vecteurs j = 1,4


(organigramme p. 115).

- Si le premier vecteur rencontré (la première colonne) commence


par 1 et est différent du vecteur trivial (1), il est appelé H;
son complémentaire H (HBARRE sur le programme) est aussitôt cal
culé.

- Si le premier rencontré commence par 0 et est différent du vec


teur trivial (0), il est appelé H (HBARRE); son complémentaire
H est aussitôt évalué.

- Les vecteurs apparaissant ensuite doivent être assimilables à


(H),(H),(0) ou (1). Si cette condition est vérifiée, la fonction
est dite "décomposable par rapport aux deux variables X et Y"
ici X et Y étant c et a; si elle ne l'est pas, "la fonction n'est
pas décomposable par rapport aux variables U et V", ici c et d.

On peut ensuite considérer la partition suivante en permutant les


colonnes de la table de vérité (§ 8.2) : par exemple de l'ordre :

(2°) (21) (22) (23)


A B C D

on passe au suivant :
(2°) (21) (22) (23)
C A B D

et les opérations : calcul de K(L), i, j, reconnaissance des vecteurs...


sont recommencées avec la nouvelle partition (d,b)/(a,c).

8.2. Les programmes

L'essentiel du rôle du programme principal est indiqué ci-dessus


(§ 8.1). On trouvera les organigrammes correspondants aux fonctions
complètement spécifiées et 0 booléennes au paragraphe suivant (8.3).
112

8.2.1. Deux sous-programmes de permutation (PP et PG) ont été néces


saires pour effectuer les décompositions suivant les différentes
partitions, et éviter d'utiliser plusieurs fois les mêmes partitions.
1°) Le sous-programme de "Permutation Partielle" (P.P.)
La table de vérité est établie, les variables et les poids associés
rangés dans l'ordre alphabétique :

(2°) (21) (22) (2N"5) (2N-2) (2N-1}


B

~
1 1
1 1
1 1
! '
i 1
1 '
1 "'•* >

i |
1 .

k "J i

t, 1

Les différentes opérations (§ 8.1) relatives àla partition (Z,Y)/


(X' >C>B>A) étant effectuées, on envisage la suivante; l'appel
du sous-programme P.P. permet de considérer la partition
(Z^X)/( C,B,A,Y). Ce sous-programme permet donc de faire appa
ionb (Z
raître, toutes les •^partitions •*•)/(
v-i,x;/U..... )\ ,,+.• + • 1 toujours
utilisant . une
même variable ; x ë [ A B r y v 7
, x t (A^,0, X,ÏJ après k permutations sembla
bles nous avons la partition

(Z,A)/(Y,X, ,C,B)
e
la k+1 fait apparaître :

(Z,Y)/(X,.....,C,B,A)

partition pour laquelle les opérations ont déjà été effectuées.


113.

(C'était.la première considérée; on retrouve ici l'ordre initial


de la table de vérité). Cette fois, au lieu de recommencer les opé
rations, le deuxième sous-programme de permutations est appelé.

2°) Le sous-programme de "Permutation Globale" (P.G.)

Il permet d'effectuer une permutation circulaire de toutes les co


lonnes de la table de vérité :

(21) (22) (2N-3} (2N-2) (2N-1}


(2°)
Z C

de plus il "isole" la.colonne correspondant à Z : lors de l'appel


ultérieur du sous-programme P.P. "Z" ne sera plus permuté mais res
tera en place; ainsi toutes les partitions du type (Y,x)/( )
seront envisagées sauf pour x = Y et x = Z.

Les deux sous-programmes P.P. et P.G. interviennent ainsi en séquence;


chaque fois que P.G. est utilisé, une variable de plus est isolée.

Pour l'exemple du § 8.1, l'ordre des séquences est donc :

Ordre des colonnes de la


Partition correspondante
table de vérité

(2°) (21) (22) (23)


a b c d (d,c)/(b,a)
P.P.
c a b d. (d,b)/(a,c)
P.P.
b c a d (d,a)/(c,b)
P.P.
a b c d pas d'opération de décomposition
P.G.
d a b 3_ (c,b)/(a,d)
P.P.
d b a ^ (c,a)/(b,d)
P.P.
d a b c _5-_pas d'opération de décomposition
P.G.
a b ^ (b,a)/(d,c)

Un troisième sous-programme : "NOM" sert uniquement, dans la version


actuelle, à initialiser de manière littérale les résultats obtenus sur
imprimante (p. 123).
114.

8.2.2. ^exploitation des programmes

La version présentée ici correspond à un programme d'essai


(programme test). Celle, définitive, destinée à la mise en exploitation
correspond au problème complet des fonctions 0 booléennes (§ 7), beau
coup plus intéressant pour l'utilisateur (organigramme p. 116).

Aussi nous prévoyons, en entrée, une grande souplesse, en parti


culier la possibilité d'introduire la fonction sous forme, soit :

- Littérale (expression booléenne);

- de diagramme de Karnaugh; on devra préciser le nombre de va


riables en "abscisses" et en "ordonnées" puis fournir ligne
par ligne le contenu du diagramme;

- de table de vérité rectangulaire. (Mêmes conditions que pour


le diagramme de Karnaugh);

- de table de vérité "linéaire"; cette dernière possibilité est


en général la moins pratique pour l'utilisateur, mais peut lui
être utile dans certains cas.

En sortie, le programme terminé, il obtiendra le circuit théo


rique réalisant la fonction.

Un programme est actuellement à l'étude à la Section d'Electro


nique et d'Instrumentation; il permet la répartition des éléments en
boîtiers et l'implantation de ceux-ci sur carte de circuit imprimé.
Nous envisageons dans une étape ultérieure d'effectuer le lien entre
ces deux programmes.

8-3. Organigrammes et résultats

Nous avons regroupé dans les pages suivantes : les deux organi
grammes correspondant aux fonctions complètement et incomplètement spé
cifiés (0 booléennes), le programme d'essai qui permet de traiter les
premières, ainsi que les résultats obtenus par ordinateur pour les
exemples des paragraphes 2, 6 et 8.
Fonctions complètement spécifiées
115.

Fonction

Etablis, de la
TABLE de vérité
(TABVER)

I
Matrice de
TABPER (I,J) Partition TABPER (l,J)
(TABPER)

oui

Comparaison Comparaison
—♦>
avec H
avec H
Fonction

:ompoi

Réinitialisâtior Sous programme


Permutation
sous programme
partielle
"NOM" "P.P."

Sous programme
Appel
G
FIN Permutation -» A.Z
nouvell globale
fonctior "P.G."
Fonctions 0 booléennes

116.

, Etablissement
Fonction Table de vérité -««<-
(TABVER)
-<-£.
± «4-

Matrice de
Partition
(TABPER)

>4
Toutes les Toutes les
partitions partitions
envisagées
non
non
&-*•
envisagées
oui
oui

Il existe des
partitions oui
Toutes les
nF .in^Çgppo
i iD9.gfflPgflfltijLfi, oui
fonctions sont
non
>>^non fH4»
"1=1-2/
de 3 variables
_^L Combinaisons sur

Rejet 0 î VQQ, VQUN,


VQZERO,!^ T Circuits
Bibliothèque
açcep-
tées
rejetées
Utilisateur
Résultats
contraintes
117.

C' ' ; •
£ SJe $ sjs « «# %« * « sic « * 3îc « * * * * « * * * sj: Jfc s* * sic * * * * *'# * * * * * * * * * * * * * * * * * * * * * * * # * * * * * # # *
C PROGRAMME TFST NUMERO : 2
C * * * * * s* * * * si* sjs =,- %v * * * * * * * * * * * * * * * * * * * v * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
"C '
IMPLICIT INTEGER*2(A-Z)
INTEGER IW,ÏZ,I,J,TPV,KPP,LX,N
REAL NOMV(IO)/ •A «,•B•,«C•,«D»,«E»,«F•,«G «,«H•,•I•,•J«/
DIMENSION TABV(10,1024),TABPER(256,4),VTUN(4),VTZER0(4),H(256),
1HBARRE(256),C00RDH{4),C0HBAR(4),F(1024),K(1024)
DATA TABV,VTUN,VTZERO,H,HBARRE,COORDH,COHBAR,K/11792*0/
READ(5,1)N
1 FORMAT( 13)
LX=2**N
READ(5,2)(F(RF),RF=1,LX)
2 FORMAT( 2413)
C
C J U .J* JL. J** -t» «J>-V »<- »V _V «V ».»• *>,»** *••* »*»-»* *•*-• *V -j# i*- »•» »*» *•-»!* ..i- -t- -t- -V»i- -'* •*• *•# s'- »'r i'* *'f sV V* 5*»s'* V* "V _V ^* j'- Vf Ve 5**_*e ô f A î i s'fi s'ïï'e 3*i ï'i S1. 3*£2,S5,£ i*C 5Σ 3Îi

C ETABLISSEMENT DE LA TABLE DE VERITE TABV(CL)

C
DO 9 CV=1,N
C=N+1-CV
LY=2**(C-1)
LZ=LY+1
LW«2**C
DO 9 LA=LZ,LX,LW
DO 9 LB=1,LY
TABV(CV,LA+LB-1)=1
9 CONTINUE
TPV=1
KPP = 0
100 CONTINUE
WRITE(6,62)
62 FORMATf »1« ,2(///,40(» **')),///)
VAR2=KPP+TPV+1
WRITE(6,60)N0MV(M),N0MV(N-1),TPV,VAR2
60 FORMATJ'O',' TABLE DE VERITE ET DECOMPOSITION SUIVANT LES DEUX VAR
1IABLES : «,1A1,» ET », 1A1,15X, • ..PARTITION : ( ,,I2,«, »,I2f») / ( . .
" 1....) • )
NLIM1=N+1
WRITE(6,63) (NOMV(NLIMl-NIMP) ,NIMP=1,N)
63 FORMAT( '0',10X,« PARTITION : {•,1A1,«,',1A1,')/(',8(1A1 , ' , • ) , • ) • )
WRITE(6,61) (NOMV(TILT) ,TILT = 1,M)
61 FORMATt«0»,///,4X,10A5,/)
DO 90 LT=1,LX
WRITE(6,91) (TABV(CT,LT),CT=1,M),F(LT)
90 CONTINUE
91 FORMATJ » ' ,1115)
c 118.
C *******>*************************^^
C CALCUL DU COEFFICIENT K(L) ET DISPOSITION DE LA FONCTION SUR LF
C TABLEAU POUR LA PERMUTATION ENVISAGEE
C **************************************^
C ' • -. •• . -
LH=2**(N-2)
DO" 10 L=1,LX
DO .11 C=1,N
K( L)=K(L) + TABV(C,L)*2**(C-1)
li CONTINUE
.'J = (K(L)/LH)+1 •' •.•'•""• . '
I=K(L)-LH*(J-1)+1
TABPER(I,J)=F(L) V. ."\. : :
.10. CONTINUE !
WRITE(6,12)(LE,K(LE),LE=1,LX) • "1
12 FORMATP ',///,(• K«,14,• = •,15))
WRITE(6,15)
15 FORMATt ' «,////?'***** MATRICE DE PARTITION ***** ',///)
WRITE(6,16) (NOMV(NLIMl-NIMP) ,NIMP = 1,N)
16 FORMATf • ,15X,lAl,«,',lAl,/,lX,8(lAl,i,'))
DO 14 IE=1,LH : '• :
WRITE(6,13)(TABPER(IE,JE),JE=1,4)
13 FORMAT! « »,8X,4I5)
1.4. CONTINUE
c • ; • ; ' ••
.c ************************************^^
C RECONNAISSANCE DES VECTEURS LIGNES DU TABLEAU DE PERMUTATIONS
C TABLEAU: TABPER(I,J)
C ****S****S**S**SjC%Sic*;|C«$*****#.$$%$%#$#... ...,..,;.... ... ... ...^1^^^^ ^ #£^...##^... _. ... ,,.^ I
...c •
ASSIGN 1000 TO IW "
ASSIGN 1100 TO IZ
KI=0 r
M 1=0 ; ..,.;.'; .,..-
' Pl=o • ':"•"
pb=o -• ' .............;..;;
LV=LH-1
do 20 j=i,4 ......; , .....;...:
120 CONTINUE
IF(TABPER(1,J).ME.1)G0 TO 30
DO 21 1= 1,LV
IF(TABPER(I+1,J).NE.1)G0 TO IW,{1000,1111)
21 CONTINUE
KI = KI + 1
VTUN(KI)=J :
20 CONTINUE - ....: ... ..
;J=J+1 • .••;..,.•........
•IF(5-J)2000,2000,120
c ... - :™
C **********************************************îS*********s!ss^*«s,",'s
C VECTEUR TRIVIAL ZERO : VTZERO
C *******************************s^**s:!******5:.«^^^^^^^^A^rt^^::î^^s!.5..:t.
C
30 CONTINUE
DO 31 1= 1,LV
IF(TABPER(I+l,J).NEiO)GO TO IZ,(1100,1113)
31 CONTINUE
MI=MI + 1

VTZERO(MI)=J
J = J+1
IF(5-J)2000,2000,120
119.

C
C
C RECONNAISSANCE DU VECTEUR H-.ET ARL I SSF MENT DE H BTHBARRP
c -.COQRDONMEES DE H :COORDH(PÏ)
C
c
1000 CONTINUE
ASSIGN 1111 TO IW
ASSIGN 1113 TO I?.
PI=PI+1
COORDH(PI)=J
00 1002 NP=1,LH
H(NP)=TABPER(NP,J )
IF(H(NP) .EO.O )HBARRE(NP) = 1
1002 CONTINUE
WRITE (6,1003 5C00RDH (1 ) , (H(NPF ) ,Hl!>ARRlf (NPF) ,M.P F> 1,1... i-i )
1003 FORMAT( • ',///,' COORDONNEE DE l-l('l) : COORDH (1)-•,IZ»/(T10, 'H = i
13
1,T30,' HRARRE=',13))
J = J+1
IF(5-J)2000,2000,120
C
C
C RECONNAISSANCE OU VECTEUR- H3ARRF-»H TABI. I S.S PME NT OH H FT HBARRI
C -.COORDONNEES DE HBARRE : COHBAR (PB)
C
C
1100 CONTINUE
ASSIGN 1111 TO IW
ASSIGN 1113 TO IZ
PB=PB+1
COHBAR(PB)=J

HBARRE(NB)=TABPER(NB,J )
•IF( HBARRE (MB ) .EO .0 )H (MB ) = 1
1101 CONTINUE
WRITE (6,1102) COHBAR (1 ), (HR.ARRF. (NBE ) ,H(NUE) ,,MBE- 1 ,.l..H'!
1102 FORMAT! ' ',///,• COORDONNEE DE HBARRF(l) : COHB AR ( 1 )= • , I2 , / (T I
1BARRE = « ,I3,T30, ' H=' ,13 ) )
J = J+1
IF(5-J) 2000,2000,120
C
C
C COMPARAISON DU VECTEUR LIGNE J (COMMENÇANT PAR DAVFC H.
c
c
1111 CONTINUE
DO 1112 NVH=1,LH
IFtTABPER(NVH,J).NE.H(NVH))G0 TO 8000
1112 CONTINUE
PI=PI+1
COGRDHt PI) = J
J = J+1
IF{5-J)2000,2000,120
120.

C
C
C
C
COMPARAISON DU
HBARRE-.
VECTEUR LIGNE J (COMMENÇANT PAR '0) "AVEcTÉT VECTEU
C
C
1113 CONTINUE
DO 1114 MVHB=1,LH
IF(TABPËR(NVHB,J) NE .HBARRE(NVHB))GO TO 8000
1114 CONTINUE
PB-PB+1
COHBAR( PB) = j
J = J+1
IF(5-J)2000T2000,120
8000 WRITE(6,8001 )NOMV (N ),NOMV (N-l) ,J
8001 FORMAT! «b'-,5X, ****** FONCTION \Wf^\ DECOMPOSABLE SUIVANT LES DEUX VA
1RIABLES 1A1, »• ET 1A1,
1, I?)
»//,' ARRET DU AU VECTEUR J:
DO 8003 IK=1,LH
WRITE( 6,8002 ) (TABPER ( Il< , JK ) , JK= 1,4 )
8002 FORMAT!' 4 I5 )
8003 CONTINUE
GO TO 9000
2000 WR ITE( 6,2001 )NOMV (M ),NOMV (N-l )
2001 FORMAT.;. 1. ,5X,.««* FONCTION DECOMPOSABLE SUIVANT LFS DEUX VARI
1ABLES : ',1A1 ,« ET «,lAl,///,i MATRICE DE PARTITION //)
WRITE (6,16) (NOMV (NI. IM1-N IMP ),N IMP= 1,N ï
DO 2002 LE=1,LH
WRITE(6, 2003 )(TABPER(LE,J),J=1,4)
2002 CONTINUE
2003 FORMAT( »0' ,8X,4I5)

2004

DO 2005 IM=1,LH
WR ITE(6,2006)H(IM),HBARRE( IM)
2005 CONTINUE
2006
FORMAT (to•', •H•,5X ,I2,15X ,•HRARRF ',SX•, I2)
9000 CONTINUE '
C
C
C
C
1I^L?!5 ,??V? .PR0GRA«MES DE PERMUTATION'
c

IF(TPV.EO.(N-l))G0 TO 9999
CALL PP (TA3V,N ,LX.,TPV ,KPP ,NOMV )
KA=N-TPV
IF(KA-KPP )90 10 ,9010 ,901]
9010 CALL PG (TABV,N,LX,TPV,KPP,NOMV)
121

C
C
C REMISE.A ZERO DES VECTEURS ET DE LEURS COORDONNEES
C
C
9011 DO 9100 SBUB=1,4
VTUN(SBUB)=0
VTZFRCX SBUB)=0
CO0RDH(SHUB)=0
COHBAR(SBUB)=0
9100 CONTINUE
DO 9101 SB0UB=1,LH
H(SBOUB)"0
HBARRE(SBOUB)=0
9101 CONTINUE
DO 9102 SBH0UB=1,LX
K(SBHOUB )= 0
9102 CONT INUE
GO TO 100
9999 CONTINUE
C
C
C REINITIALISATION DU TABLEAU NOMV-(VARIABL ES CORR .PONDANT A LA
C 1TABLE DE VERITE)
C
C
CALL NOM(NOMV)
STOP
END
122.

C
C
c
c SOUS PROGRAMME DE PERMUTATION PARTIELLE PP
c
c
c
SUBROUTINE PP(TABV ,N,LX,TPV,KPP-NOMV)
IMPLICIT INTEGER*2(T-Z)
INTEGER TPV
REAL TNOMV,NOMV
D IMENS ION T EM PO(1024),TABV( 10,1024),N0MV(10)
TNOMVsNOMV(N-l)
DO 40 MT=1,LX
T EM PO(MT)=TABV(N-l,MT)
40 CONTINUE
MNL=N-1-TPV
DO 41 MM=1,MNL
NOMV(N-MN)=NOMV(N-MN-1)
DO 41 MT=1,LX
TABV(M-MN,MT)= TABV(N-M M-1,M "T)
41 CONTINUE
NOMV(TPV)=TNOMV
DO 42 MT=1,LX
TABV(TPV ,MT ) =TEMPO(MT)
42 CONTINUE
KPP=KPP+1
RETURN
END
123.

c ••"•'. ; : •• " . "


C ##£#s;ss!c*«sfc5&};ss:es!c#s::s;c#sfcs:c«s,^^^ m J . «*- «A» «C %*.
- - » *«» *»• ""V* •»*

c
C SOUS PROGRAMME DE PERMUTATION GLOBALE : PG
"C""
C ********** ***»&*** **************!«***** ************* **************»*s*
x . .
SUBROUTINE PG(TABV ,N ,LX,TPV,KPP,NOMV)
IMPLICIT INTEGER*2(T-Z)
INTEGER TPV
REAL TNOMV,NOMV
DIMENSION TEMP0(1024) ,TABV(10,10.24) ,NOMV(10)
TN0MV=N0MV(N)
DO 70 MT=1,LX
TEMPO! MT) = TABV(N,MT)
70 CONTINUE
MNL=N-1
DO 71 MN=1,MNL
NOMV!N-MN+1)=NOMV(N-MN)
DO 71 MT=1,LX
TABV!N-MN+1,MT)=TABV(N-MN,MT)
71 CONTINUE
NOMV!1)=TN0MV
. ..,,;,.. DO 72 MT=1,LX
TABV! 1,MT)=TEMP0(MT)
...72 CONTINUE
TPV=TPV+1
KPP=0 '.:........;
RETURN
END . .

C
*A» *Ap sJL» •!*> - ^ .**"*.»JL. kA> -A# - ^ *A* ^J» *JO —t* "*Av •/-* %C> *tm M^> *V sA.
- - _^« •,» u^. »,-. ^,» a.,*. *,% *,fc «,>k «^ *|* #f- a\k «|« *,« *-<• •,- *«•
SX SX SX 5.C «v* «•« *»» «e* "*'**l* *P *W* •"i* "V" "b* *i* "t***** *** "tf* "i* *¥" *i* *V- *»* "t1**V "••* *•* **«* "u* 'O o" • s" i * t • < • • *ï* •

C
C SOUS PROGRAMME DE «REINITIALISATION» : NOM
C
38 3JC SXîp SXSJS ît» î,ï SX*,£ 5," 5,5SX«X#,»ï,- 3,S#,% *,v «XSX*X #4Ï«,«, 3,* »,»#,»-,* #,C»,% #t*-,» 5,*. *•,«. »,%. ••,- #,»#,>»,% #,»•,» «y -y. -v»*><* *,»«y y

C
SUBROUTINE NOM(NOMV)
REAL NOMV,BNOMV
DIMENSION NOMV(10),BN0MV(10)
DATA BNOMV/ »A',•B«,«C•,«D•,»E»,'F','G «,'H•,« I »,•J'/
DO 200 KART=1,10
NOMV!KART)=BN0MV(KART)
200 CONTINUE
RETURN
END
12k.

Exemple du § 8 . .. , •'.'.?

XABL E....DE... Vf R ITE. .JET... DECOMPUSI TiqN...S.UÎ. VA*lT....LE.S....OE.UX..y.ARI.iBLF.S ï,..jl ._E.T_._C

PARTITION ..: i .D...C )/ ! B, A, __,_ ; _.._ •..„••.,

A B C D
..3 0 0 0 1-
0 0 C 1 0
.3 C: 1 û !..
0 0 1 1 1
..a j o o i.
0 10 11
..a i i n i..
0 1111
.1 0 o n o.
10 0 1 1
-1. 0 1 0 1-
10 110
-i i -a o g
1 1 0 10
•1 1 1 c -1-
11111

K 1= 0
2= S-
K 3= 4
•K 4= 12-
K 5= 2
K 6= 10-
K 7= 6
•K 3= 14-
K 9= 1
-K 10= 9
K 11= 5
K 12= 33-
K 13= 3
K 1-4= 1,1
K 15= 7
•K 16= --1-5-

***** MATRICE DE PARTITION *****

D,C
B,A,.
1 1 0 1
0 1 1 0
1 1 1. I
0 •1 0 1
COQPD~N^F r>E h(1) : COORHHM V-« 1
-v' h= " 1 HBÀKPE= 0
H_ 0 HBAP.RE= 1
H= •' i H3'AF R==" r'
H= 3 H3AkRE= 1

***** FONCTION NON DFC.aMPQS.A3Le. SUIVANT LFS PFJX VA"IA3lç5 }


ARR^T DU AU VECTEUR J= 3
i i. c i
n i 1 r-
i i i ' ' i
o i o i
--- -.....- ;—-.._. -.. J25..

.TABLE-DE...VERI.T.E...£I....DF:CO.M.P.C!SIT.I.DN SUIVANT....L.c.S...O.C.UX...VA*IASLES..:?... C...EL1A.

PARI.IJ.J.ON....: 1C.A1/...B..D., _ _

0 B A C
.a jl.....:„.o Ci. 1-
i c c o o
.0 0 f) 1 !..
1 0 0 1 1
.0 .1 0 ...C: !..
1 1 0 0 1
-a i n i i..
1 1 0 1 1
..a o..... i. o o-
10 1 n i
..0 -..o : l i i-
1 0 i i 0
~0 1 1 o 0
11 1 C 0
•o i i 1 1-
11111

K 1= 0
2= 1-
K 3= 8
K 4=- 9-
K 5= 2
-K- 6= 3-
K 7= 10
K 8= - 11-
K 9= 4
K- 10= 5
K 11= 12
K L2= 1-3-
K 13= 6
K 14= 7-
K 15= 14
K- L6=- 1-5-

***** MATRICE DE PARTITION *****

C,A
B,D,
1 0 11
0 110
10 11
10 1 1

cooroonnee de h!1) CC0RDH(1)= 1


" "h= 1 " H3ARRE='" o
H= 0 HBARRE= i

: '•": h= ï " "H8ARR.F= n

H= 1 HBARRE= 0
127.

***** FONCTION DECOMPOSABLE SUIVANT LES DEUX VARIABLES : C FT A

V)ATR I.CE...0E...PART.I T.ir.N...s

C,A
8,0
i.y.t..

.0 1.', 1 0

.1 0 i i.

VECTEJJÎl...TRIVIAL UN VTUN !.. .1 ).=.. 3


VTUN! 2)= 0
VTUN! .3 >= -.0.
VTUN! 4)= 0

VFCTEUR....T.RI.V.IAL Z.ERO VTZ.ERO (...],)= -0...


VTZERO! 2)~ 0
.VTZERO!-.. 3)w,...0...
VTZERO! 4)= 0

POSITION!-. OU..VFCT-EUR--H COORDH! 1)=._.


COORDH! ?)= 4
:. COORDH <- 3 )S.....0..
COORDH! 4)= 0

POSITION-DE HBARRE COHBAR! V) = 2-


COHBAR! 2)= 0
-COHtvARI 3)= ~0~
COHBAR! 4)= 0

H 3. HBARRE— O-

•H ) HBARRE- 1

.H I HBARRE - O.

-H 1 HBARPE O.
126. •
Exemple du § 2.2.5
** ** ** ** ** ** ** ** ** ** ** J{A J..-V: ;;.;u jjj-j. £fy A$. jj,j

''**''''**''"'*'*"'*'*"'**•"*'*•"** **•""**" **'**"**" "**••*'*••***••"** **' ,**"**'"•** ^.* ___. jt^ *a_. •_• -_• -b.

J A3L E DE VERT TE .ET ..DECCMPOS IT ION SU] VANT .LES DEUX VAR ! ABLES .et n

PARTITION .:. {E- 0)/ ( C,B, A,

 B C D E
0 n 0 n 0
0 o 0 1 0
0 0 1 0 1
0 0 0 1 i 1
0 o 1 f) n 0
.......

"o" p
ï n" "o
.0.. 0
,1. i 0 1
0 ï i ï 1

0 1 0 0 1 o
o 1 0 1 0 1
0 1 0 1 1 1
0 1 1 0 0 0
0 1 1 0 1 1
0 1 1 1 3 n

0 1 1 1
1. 0 0 0
1 0 0 0 1 1
n n 1. 0 0
.1.,
0 1
x. G ..!.. ..0 .0. ..o
i 0 1 0 1 i
.1. .n. 1 1 0
i 0 1 1 i 1

i. 1 0 0 ,.Q 0
1 0 o 1 b
1 0 1 Û i
i o i 1 1
i i Û 0 0
1 1 o i c
1 1 1 o 1
ï ï T T 1

***** MATRICE DE PARTITION *****

E,D
C,B,A, COOROONNEE DE H{1) COORDH( 11= 2
n i A 1 H= 1 . FSAP?
n o 1 1 H= 0
0 1 C 1 H=. 1 HSARh:
n 1 o 1 H= i 'J5AkR;
0 1 0 ! H= i h3-U '-\,
0 0 1 1 H= 3 u a A f.; _ :
0 0 1 1 .: h= o
0 •1 o 1 H= 1
12-;
***** FONCTION DECOMPOSABLE SUIVANT LES ?EUV VARIABLES : r £T

MATRICE DE PARTITION s

" r,'D
C,8,A,

0 1 0 1

3 0 . 1 !..

3 1 0 1

O 1 _ r- 1

3 1 C 1.

0 0 1 1

o o ..l I.

0 1 .0 ..1.

VECT EUR TRI V IAL UN .YJ'JN (..1 ?= *'l


VTUN( 2)= J
VTUN! V~....n..
' VTUN ( 4) = !>

VECTEUR TRIVIAL ZERO VTZERO! .1 î.= ...1,


"" !- VTZERO( 2)= M
VTZERO! .3.1= .0.
' ' VTZERO! 4)= 0

POSITION OU VECTEUR H COORDH! .1)~. ?.


C00R3H( 2)= i)
COORDH! 3)= fi
CODE OH { 4)= '.»

POSITION DE HBARRE COHUAPC 1) - ;3;.


COURIR! 2)= 0
COHBAR( 31= 0
" : COHBAR! 4)= 0

H i HBARRE ±

H 3 HBARRE 1

H 1 HBARRE 0.

H 1 HBARRE il

H 1 HBARRE 0,

,) HBARRE 1

H 3 H'iARRE 1

H l i. - HBARRE 3
. r . 130.
Exemple...du...§..6.f...Er.emièr.e....dê.c.Qmpoisi.tion...(.§....6....1) __..

TABLE. .D.E.....VLR IIL ...E.T....DEC.UMP0S.II.I0N...SUI.VANJ....L£S....D.EU.X...V.ARl.Afi.LES.„.L...L„EI_A..


.PARI.IT.JON....._...t.E.,A_/.!E.,.D.,.Q*B.».G.f. „
g II 1 r.)
1 1 l ]
0 1 1 1 1 o 0 0 131.
1 1 1) fl "fl
1 1 1-
fl 1
0 1 1 1 1 1.
1 1 1 1 1 o 1 1
3 n 0 n 1 0 0
r o 0 n 1 0 0
1
0 0 0 n o 1 1 n

1 0 n n 0 1 1 o
3 c 0 0 1 1 0 1

1 l\ 0 0 1 1 3 J
0 0 1% D 1 1 1 0

1 o 0 0 1 1 ] n

0 n 0 l 0 1 0 1
1 0 n 1 3 1 o 1
0 n n 1 0 1 1 0
1 o n 1 0 1 1 0

u n 0 l 1 1 0 n

1 0 0 l 1 1 0 0
3 0 0 l 1 i 1 0
o 0 l 1 1 1 r»
1
0 1 0 0 1 0 1
1 0 1 0 0 1 0 1
0 0 . .1 p 0 .1 1 0

1 0 1 0 0 1 1 0
p 0 rv
.0 0 I ...:...i i
1 n 1 0 1 1 0 f)
o 1 ..0. 1, p
1 0 1 0 . 1 1 1 0
0 . 0 1 1 0 1 n n

1 0 1 1 0 1 0 0
0 n „ ..1 1 3 1 1 0

1 0 1 1 0 1 1 Û
0 n 1 1 1 1 0 l
1 0 1 1 1 1 0 1
u n 1 1 1 1 . 1 0
1 0 1 1 1 1 1 0
0 1 0 0 0 1 0 3
1 1 0 0 u 1 o 1
0 0 0 1 1 0

1 1 0 0 0 1 1 0
0 1 0 0 1 1 0 1
1 i 0 0 1 1 Ci n

0 1 0 0 1 1 1 n

1 1 0 0 1 1 1 0
0 l • n 1 0 1 . 0 0
l 1 0 1 0 1 .0 0
0 1 0 1 0 1 1 n

1 1 0 1 0 1 l o • •
0 1 0 1 1 1 0 1
ï 1 0 1 1 1 0 1
0 i 0 1 1 1 1 0 _ .
1 1 0 1 1 1 1 0
. -••• 0 1 1 0 0 1 .0 1
1 1 1 c 0 1 0 0
0 1 1 0 0 1 1 0
1 1 1 0 0. 1 1 • 0
0 1 1 0 1 1 n n

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

1 1 1 1 1 i n

3 1 1 1 0 1 rj 1
1 1 1 1 n 1 0- 1
0 1 1 1 n 1 1 f)

1 1 1 0 1 1 n
1
1 1 1 1 ...,...D. f)
0 ' 1
1 1 1 1 1 n 0
1
i .: 1 1 1 ] 1 n
n
1 1 1 1 1 1 1
132.
***** FONCTION DECOMPOSABLE SUIVANT LES DEUX VARIABLES i F ET A

MATRICE DE PARTITION *

F, A
E,D,C,B,0,

3 c 1

.-. o;... Q 1 Q

n Q 1 0 ..:

0 n ........o :.........

...o i..- f% q..

M 1 .C... 0-

„q ...o i ..a..

..a i-.. a... £>..

-0 1-- - -Q U 0-

.0 £%..... 1- .$..

•o & - i • ©••

-O 0 -1 : Q-

-o-- o - -i- 0-

'-1-

•i) i : o •#•

•0 1 0 - ••%••

-e i • o- <3-

•o i-- <_•-' o-

o o i - 0-

•0 0 1 0-

-o • o -i o-

-0 0 i- '.'o-

•-" -]••• -o 0"

-0 •••f» •.•-!• O-

o i- o fl-

0 1 o . • . 0

3 1 0 0

0 1 0 0
0 01 3 -

" . 133.
0 0 1 0

VECTEUR TRIVIAL UN VTUN! D* 0


VTJNt 2)= 0'
VTUN! 3)= 3
* VTUN! 4)= 3

VECTEUR TRIVIAL ZERO VTZERO! 1)= 1


VTZERO! 2)= 4
VTZERO! 3)= 0
i
VTZERO! 4)= 0

COORDH! 11= 3
COORDH! ?.)= 0
COOPPH! 31 = n __.:,
COORDH! 4)= D

PQSITION DE HBARRE COHBAR! 1)= 2 .


. COHBAR! 21= 0
COHBAR! 3)= 0
COHBAR! 4)= 0

HBARRE* 0 H* 1
HBARRE* . 0 ..., • H= 1.

HBARRE- 1 H* 0
H3ARRE* 1 . H* 0
H BARRE* 1 H* 0
HBARRE* 1 H= 0
HBARRE* 0 H= 1
HlîARRE*. 1 H* 0
""" * HBSrRë* ..ï
HBARRE* 0 H* 1
HBARRE* 0 H* 1
HBARRE* 0 H= 1
hgAr'rë* .0 H= 1
H= 0
HBARRE* ï H= 0
HBARRF* 1 • H* 0
HBARRÉ* 1 H= 0
H= 0
HBARRE* 0 H* 1
H= 1
HÛÀRRË* Ô
H* 1 .
HBARRE* 1 H* 0
H* 1
HBARRE* Û H* 1
h= n

HBARRE* 1 H= 0
H SARRE* 1 • H= !)
HBARRE* ,ï • H* 0
•H*- 1
HBARRE* 0 H* 1

' • • c .

.- » ' - •• ••,•" •
,....:. 13-.
*# ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** =* *¥ s

**************** ** ** ** ** ** ** ** ** ** ** ** ** ** *A *ft î

.,...„. Exemple du § 6; Deuxième décomposition (§ 6.2.)..

IABLE DE VERITE ET DECOMPOSITION SUIVANT LES DEUX VARIABLES : E ET C

PARTITION : !E ,C)/(B,D,G,

G D B C E
0 0 0 0 0 1
10 0 0 0 1
0 0 0 0 1 0
I o 0 ' 0 1 0
0 10 0 0 0
1 1 0 0 0 0
0 10 0 1 1
11 0 0 1 1
0 0 0 1 0 0
i 'o"*" 6" " 1 0 "o
0 0 0 1 1 1
ï o "o 1 ï 1
0 10 1 0 1
i i d 1 0 ï
0 1 0 1 1 c
"ï i o ï 1 0
0 0 1 .Q - 0 J..
ï 6 ï 0 0 0
0 „o i ... 0 1... .... „Q
10 1 0 1 1
0 11 0 0 1
ï i i 0 0 ï
0 11 0 1 0
i il 0 1 b
0 0 1 1 0 Q
i 'ô i 1 0 1
0 0 1 1 1 1
I "b i ï 1 ri
0 1 1 1 0 0
i i: " ' i 1 6 b
0 11 1 1 .. 1
111 1 1 1

***** MATRICE DE PARTITION *****

E.,C
B,D,t,
1 0 0 1
1 0 0 1
0 1 1 0
0 1 1 0
1 0 0 1
0 1 1 0
1 . 0 0 1
1 0 •o 1 -
135.
***** FONCTION DECOMPOSABLE SUIVANT LES DEUX VARIABLES : E ET C

MATRICE Ut PARTITION

E,C
6,0,G,

1 0 0 1

1 0 0 1

û 1 1 0

0 1 1 0

1 C 0 1

j.... 1 . 1 0

1 0 0 1

1 C 0 1

VECTEUR TRIVIAL UN VTUN! 1)


VTUN! 2)
VTUN! 3)
VTUN! 4) * o

VECTEUR TRIVIAL ZERO VTZERO( 1)=


VTZtKO( 2)=
VTZERO! 3)=
VTZERO( 4)=

POSITION UU VECTEUR H COORDH! 1)= 1


COÛRûh! 2)= 4
COORDH! 3J= Û
COORDH! 4)= 0

PUS 11ION Dh HBARRE COHBAR! 1)= 2


COHBAR! Z)= 3
COHBAR! 3)= 0
COHbAR! 4)= 0

H 1 H3ARRE 0

H 1 HBARRE 0

H G HBARRE 1

H 0 HaARRE 1

H 1 HBARRE 0

H 0 Hb ARRE 1

H 1 BQ ARRE 0

H 1 Hà à R R E 0
136.

9. - CONCLUSION

Du point de vue théorique, cette méthode nous a permis de cerner


la loi qui régit le coût minimal des circuits, en fixant sa borne supé
rieure.

En pratique, elle al'inconvénient de ne pas couvrir toutes les


fonctions complètement spécifiées (fonctions n'ayant pas toutes la pro
priété de décomposition disjointe).

Cependant, ces fonctions sont très rares dans les réalisations,


aussi peut-on envisager de résoudre cette difficulté, soit en faisant
appel à la méthode directe de "fusion des chaînes et combinaison des
éléments", soit en élargissant la méthode (pour les cas de rejet) à
des décompositions semi-disjointes.

Dans la plus grande majorité des cas, l'utilisateur doit réaliser


des fonctions 0 booléennes (ou : incomplètement spécifiées), qui ont
un grand nombre d'états disponibles. L'existence de ces états disponi
bles permet aux fonctions de vérifier de manière beaucoup plus souple
le critère d'Ashenhurst, car la probabilité pour qu'il soit satisfait
est nettement accrue.

D'autre part, ils permettent d'agir sur la forme de la solution


obtenue par introduction de contraintes souhaitées par l'ingénieur.
La mise au point de ces programmes est prévue pour les mois pro
chains. Celui qui correspond aux fonctions complètement spécifiées (§ 8.3)
est actuellement utilisé pour les besoins d'étude, et celui plus complexe,
destiné àla mise en exploitation, qui traite les fonctions 0 booléennes
(donc inclut le précédent), est en cours de réalisation.
137.

CONCLUSION GENERALE

1. - LES SOLUTIONS ENVISAGEES

La programmation des deux méthodes terminée, nous pensons disposer


d'outils propres à résoudre bon nombre des problèmes de conception en
logique combinatoire. Pour toute fonction booléenne, l'utilisateur pour
ra envisager une réalisation du circuit par l'une ou l'autre méthode:

1«1• La méthode de fusion des chaînes et de combinaison des éléments

Conséquence de l'étude systématique d'un grand nombre de circuits,


elle permet d'établir directement le schéma technologique correspondant
à une fonction.

Elle est composée d'une dizaine d'algorithmes qui favorisent l'uti


lisation répétée de mêmes opérateurs en de nombreux endroits du circuit.
La systématisation des différentes parties de cette méthode nous a con
duit à définir une notation nouvelle qui permet simultanément de repré
senter le circuit, et de lire la fonction correspondante. On peut ainsi
suivre l'évolution de la réalisation sans avoir à établir perpétuelle
ment la liaison fonction-circuit, souvent incommode.

Les solutions proposées par cette méthode peuvent, selon le désir


de l'utilisateur, être fournies en technologie "NOR" (opérateur NI) ou
"NAND" (fonction logique élémentaire ON). D'autre part, le traitement
est identique pour les fonctions booléennes complètement ou incomplète
ment spécifiées (0 booléennes).
138.

Ce travail fournit l'occasion d'une collaboration étroite avec le


Département de Calcul Electronique, en vue de la programmation et de la
mise en exploitation de cette méthode.

1.2. La méthode de décomposition

Elle est fondée sur un principe différent; au lieu de réaliser di


rectement les circuits à partir d'algorithmes heuristiques, on place en
bibliothèque 80 circuits de coût minimal correspondant à des fonctions
de 3 variables. Par décompositions successives, on abaisse l'ordre de
la fonction à réaliser en faisant apparaître à chaque étape des sous-
fonctions dont la réalisation est connue. Il suffit alors de relier les
différentes solutions intermédiaires pour obtenir le schéma définitif.

Comme pour la précédente méthode, les résultats obtenus peuvent au


choix de l'utilisateur faire appel à l'une des deux technologies "NOR"
(NI) ou "NAND" (ON).

On ne pourra bien sûr, affirmer que le coût des circuits obtenus


est optimal, comme le souligne DAVIDSON /8/,'dans son étude : Un minimum
étant rarement une somme de minimums.

Cependant, les résultats et les possibilités que proposent cette


méthode sont intéressants :

1°) elle a permis d'établir la loi que suit la "borne supérieure


du coût minimal" (Cmin) sup , ce qui représente une -première
approche du coût minimal en fonction du nombre n de variables.

2°) L'inconvénient de la non décomposabilité de toutes les fonction


complètement spécifiées étant réduit de beaucoup par leur très
rare emploi en pratique, elle permet :

a) une grande souplesse d'utilisation : par la possibilité d'in


troduire des contraintes particulières à certains problèmes;
b) par association à un programme de test automatique /13/,
d'envisager son utilisation dans le cadre de la liaison
conversationnelle par console de visualisation /ik/.
139,

2. - L'ORIENTATION FUTURE DE L'ETUDE

2.1. Les programmes

Actuellement, pour les deux méthodes exposées, la programmation


est en cours de réalisation. On envisage donc de les mettre en exploi
tation au cours des prochains mois.

Rappelons que toutes deux concernent les fonctions complètement


et incomplètement spécifiées pour des réalisations en technologie "NOR"
et "NAND".

2.2. Extension aux microstructures intégrées plus complexes

Un élargissement des possibilités des programmes peut être effec


tué en faisant intervenir d'autres éléments couramment utilisés; en par
ticulier :

- Les "expanseurs" : modules qui permettent d'augmenter le nombre


d'entrées disponibles (ou : entrance) des opérateurs NOR et NAND.

- Les bascules et bistables, qu'il est possible d'introduire tout


d'abord, dans le cadre de la méthode de décomposition.

- Les différentes fonctions complexes : modules plus élaborés que


les précédents : registres à décalage, puissances de dix (ou :
"décades"), décodeurs, mémoires ...

2.3- Les fonctions parallèles ou à sorties multiples

Comme elles sont fréquentes dans la pratique, il sera intéressant


d'abaisser le coût de l'appareil à construire en les considérant simul
tanément au lieu de les traiter tour à tour.

Il faudrait chercher à déterminer des "noyaux" communs à toutes ces


fonctions. Celui-ci pourrait alors être réalisé par l'une des méthodes
exposées. Les parties restantes différenciant les fonctions, seraient
alors classées par groupes suivant le même procédé, puis réalisées à
leur tour.
140.

2,Zf- Etude des fonctions de coût

La méthode de décomposition apermis d'établir leur borne supé


rieure. Cette fois, par une étude statistique il est peut-être possible
de déterminer les lois que suivent ces coûts en fonction du nombre de
variables, des bases premières irredondantes ... etc..

2-5- Conception en logique séquentielle

Après avoir, comme indiqué ci-dessus, généralisé le problème combi-


natoire, il convient de poser celui, plus général, de la conception en
logique séquentielle /3/.

Dans ce but il est possible d'établir un premier schéma d'étude :


1°) du point de vue fondamental, détermination d'un mode de nota
tion, plus représentatif des phénomènes que l'écriture boolé
enne, et qui permette l'intervention de la notion de temps;
2°) séparation du problème en deux parties :logique séquentielle
synchrone et asynchrone, et dans un premier temps établir des
programmes facilitant l'étude par utilisation de la liaison
conversationnelle graphique.

Cette étude est évidemment très vaste, et tant du point de vue


théorique que pratique, la recherche d'automatisation permettra une
synthèse propre à résoudre beaucoup de problèmes encore sans solution
générale.
o

Manuscrit reçu le 16 février 1970


141

BIBLIOGRAPHIE

/-\/ - L. HELLERMANN - A catalog of three-variable OR-Invert and


And-Invert Logical circuits. I.E.E.E. Tran
sactions of electronic computers. Vol. EC 12,
N°3j Juin 1963.

/2/ - LASCARIS et MATSUKIS-Optimization of NOR (NAND) switching circuits


for n variables. - Electronic Engineering.
Mars 1968.

/3/ - H. MERGLER - A systematic approach - The Key to optimum


logic-design - Control Engineering -
Janvier 1967.

/V ~ J* CHINAL - Techniques booléennes et calculateurs arith-


métriques - Dunod - 1967.

/5/ - P. DEBRAINE - Machines de traitement de l'information (cir


cuits et programmes) - Tome I - Etude Logique
et Construction des circuits -
Masson - 1967.

/6/ - J. VINCENT-CARREFOUR-Optimalisation d'un schéma en logique modu


laire - Revue française du traitement de
l'information. Chiffres N°3, 1964.

/7/ - J. VINCENT-CARREFOUR-Utilisation d'un calculateur pour la défini


tion des ensembles logiques. Onde électrique -
Janvier 1968.

/8/ - E.S. DAVIDSON - G. METZE -


Module complexity and Nand Network design
algorithms. - Stanford Electronics Labora
tories - Stanford University - California .
/9/ - DESCHIZEAUX - Synthèse de fonctions booléennes générales -
Thèse de Docteur-Ingénieur - Institut de
Mathématiques Appliquées - Faculté des Sciences
de Grenoble.
1^2.

/10/ - E. PICHAT - Décomposition des fonctions booléennes -


Thèse de Doctorat de Spécialité - Faculté
des Sciences - Grenoble.

/11/ - F. LAPSCHER - Décompositions simples de fonctions booléennes


- Automatisme - Tome IX - Mars 1969.
/12/ - J. KUNTZMANN Algèbre de Boole - Dunod - 1965.
/13/ P. PIGNAL, G. ROUX, J. VINCENT-CARREFOUR -
- Une méthode de test automatique pour les
ensembles logiques.
Onde électrique - Novembre 1968.
/1V - A. HAMEL, Cl. IMBRECHTS, J. LE BER, N. KIM -
- La visualisation graphique conversationnelle,
Analyse des circuits par le programme Ecap-
2250 - Ses développements futurs.
Onde électrique - Février 1969.
Edité
par le Bureau de Documentation
C.E.N. CADARACHE

Vous aimerez peut-être aussi