Darstellung einer ganzzahligen arithmetischen Funktion mit endlichem Definiti-onsbereich als Entscheidungsdiagramm [272] Eine solche Repr¨asentation besitzt allerdings den Nachteil, das
Trang 1Ausg¨ange der Schaltwerke gezeigt werden Hierzu muss zus¨atzlich der Fall
betrach-tet werden, dass y1 [2] ¨aquivalent mit z
1[2] ist Die neue Instruktionsqueue ergibt sich zu:
Q [3] = (y1[t] → z
1[t]),(s1[t] → s2[t])
Die Stub-Schaltung ergibt sich durch Bestimmung der Verschmelzungspunkte und ist in Abb 6.28 zu sehen
≥ 1
s1[1]
x1[1] x2 [1]
y 1[1]
y1[1]
≥ 1
&
&
y[1]
x1[2] x2 [2]
z1 [3]
z2 [3]
z 1[3]
y[2] = F
y1[2]
y 1[2]
≥ 1
&
&
&
z1[1]
z2 [2]
z1 [2]
≥ 1
Abb 6.28 Stub-Schaltung f¨ur den dritten Zeitschritt [412]
Man erkennt, dass die im zweiten und dritten Schritt ermittelte Stub-Schaltung
identisch ist Aus diesem Grund wird durch Abspielen von Q[3] nach Anh¨angen des Schaltungsmodells f¨ur den vierten Zeitschritt ¨Aquivalenz erkannt Da somit der Fixpunkt detektiert ist, und in keinem Zeitschritt der Miter-Ausgang erf¨ullbar war, sind die beiden Schaltwerke ¨aquivalent
6.2 ¨ Aquivalenzpr ¨ufung arithmetischer Schaltungen
Im Folgenden werden Verfahren f¨ur die Architekturebene pr¨asentiert, die zur ¨ Aqui-valenzpr¨ufung arithmetischer Schaltungen geeignet sind Diese eignen sich weiterhin auch zur ¨Aquivalenzpr¨ufung zwischen Modellen auf Architektur- und Logikebene
6.2.1 Implizite ¨ Aquivalenzpr ¨ufung auf der Architekturebene
Auf der Architekturebene (siehe Abb 6.1 auf Seite 235) ist die Granularit¨at der Ope-rationen in der Verhaltensspezifikation oftmals durch arithmetische Funktionen spe-zifiziert Entsprechend sind die Objekte der Strukturmodelle der Implementierung
Addierer, Multiplizierer, ALUs (engl Arithmetic Logical Units) etc In der
Synthe-se werden die arithmetischen Funktionen auf eine Architektur bestehend aus einem
Trang 2Datenpfad und einem Steuerwerk abgebildet Ganzzahlige arithmetische Funktionen
besitzen die Form f :Zn → Z F¨ur die implizite ¨Aquivalenzpr¨ufung dieser
Funktio-nen bedarf es einer geeigneten kanonischen Repr¨asentation
Eine m¨ogliche kanonische Repr¨asentation besteht darin, erweiterte
Diagram-me ¨ahnlich zu ROBDDs zu verwenden Da bei BDDs allerdings der Definitions-bereich endlich ist, bedarf es einer Einschr¨ankung der Menge der (ganzzahligen) arithmetischen Funktionen Diese Einschr¨ankung ist durchaus eine g¨ultige
Annah-me, da bei Hardware-Implementierungen bereits Datentypen mit festen Wortbreiten (Ganzzahl- oder Festpunkt-Datentypen) verwendet werden, diese also bereits
einge-schr¨ankt sind Seien l ∈ Z und u ∈ Z zwei ganze Zahlen mit l < u Dann beschreibe
[l,u] → Z l¨asst
sich in einem Entscheidungsdiagramm darstellen, indem jeder Knoten mit einer der
n Variablen assoziiert wird und jeder Knoten genau u −l +1 Nachfolger besitzt Dies
bedeutet, dass der WertebereichZ[l,u] f¨ur jede Variable in u − l + 1 Partitionsbl¨ocke
aufgeteilt wird, d h.Δ(Z[l,u] ) = {Δl(Z[l,u] ),Δl+1(Z[l,u] ), ,Δu(Z[l,u] )} (siehe
An-hang B.1) Bei der Traversierung des Diagramms wird dann eine Kante entsprechend der Variablenbelegung ausgew¨ahlt Der Wertebereich der Funktion selbst muss hier-bei nicht beschr¨ankt werden, da der endliche Definitionsbereich in einem endlichen Entscheidungsdiagramm resultiert (siehe Abb 6.29)
x1
x2
x2
x2
l
Abb 6.29 Darstellung einer ganzzahligen arithmetischen Funktion mit endlichem
Definiti-onsbereich als Entscheidungsdiagramm [272]
Eine solche Repr¨asentation besitzt allerdings den Nachteil, dass sie sowohl ex-ponentiell in der Anzahl der Variablen als auch der Gr¨oße des Definitionsbereichs
Z[l,u] wachsen kann [272] Dies gilt auch, wenn der Definitionsbereich bin¨ar codiert wird und ROBDDs zum Einsatz kommen Viele der f¨ur die Hardware-Verifikation
auf Architekturebene relevanten Funktionen lassen auf die Klasse der sog Pseudo-Booleschen Funktionen einschr¨anken Eine Pseudo-Boolesche Funktion ist eine Ab-bildung f :Bn → Z, d h nur der Wertebereich umfasst die ganzen Zahlen Eine
Belegung ist eine Funktionβ, die jeder Variable in f den WertT oder F zuweist Wie bei Booleschen Funktionen gibt es auch unterschiedliche Repr¨asentationen f¨ur Pseudo-Boolesche Funktionen als Entscheidungsdiagramme F¨ur die Verifika-tion sind hierbei wieder kanonische Repr¨asentaVerifika-tionen besonders wichtig, also Re-pr¨asentationen, die vollst¨andig und eindeutig sind Eine offensichtliche Repr¨asen-tation Pseudo-Boolescher Funktionen basiert auf der Idee von ROBDDs, wobei zu
Trang 3beachten ist, dass die Menge der Terminalknoten VTnicht mehr auf die WerteT und
F beschr¨ankt ist, sondern ganze Zahlen beinhalten kann, d h value : VT→ Z (siehe
Anhang B.1) Eine solche kanonische Repr¨asentation Pseudo-Boolescher
Funktio-nen, basierend auf der Shannon-Zerlegung, heißt algebraisches Entscheidungsdia-gramm (engl Algebraic Decision Diagram, ADD) oder engl Multi-Terminal BDD
(MTBDD) [99, 106] Das folgende Beispiel stammt aus [66]
Beispiel 6.2.1 Gegeben ist die Pseudo-Boolesche Funktion in Tabelle 6.4 Das
ent-sprechende MTBDD ist in Abb 6.30 zu sehen Wie bei ROBDDs w¨ahlt eine Bele-gungβ der Variablen einen Pfad im MTBDD vom Quellknoten zu einem Terminal-knoten aus Die TerminalTerminal-knoten sind mit den entsprechenden Funktionswerten f¨ur die gegebene Belegung beschriftet
Tabelle 6.4 Pseudo-Boolesche Funktion [66]
x1 x2 f
F F 8
F T −12
T F 10
T T −6
x1
Abb 6.30 MTBDD der Pseudo-Booleschen Funktion aus Tabelle 6.4
Die Repr¨asentation von Funktionen durch MTBDDs hat in der Praxis oftmals den Nachteil, dass diese exponentiell mit der Anzahl der Variablen wachsen Dies kann dadurch begr¨undet werden, dass es aufgrund vieler unterschiedlicher
Funktionswer-te h¨aufig schwierig ist, die Reduktionsregeln anzuwenden, da die Identifikation iso-morpher Teilgraphen nicht mehr trivial ist Anstatt eine Funktionstabelle direkt in ein
MTBDD abzubilden, stellt sich eine momentenbasierte Zerlegung als vorteilhaft her-aus Die resultierende Repr¨asentation wird als bin¨arer Momentengraph (engl Binary Moment Diagram, BMD) bezeichnet (siehe u a [324]) BMDs wurden erstmalig von
Bryant und Chen vorgestellt [65, 66]
Trang 4Zun¨achst wird aus der Funktionstabelle der Pseudo-Booleschen Funktion ein li-nearer Ausdruck gebildet: Die Belegungβ(x i ) = T wird als Literal x i und die Be-legungβ(x i ) = F wird als Literal (1 − x i) codiert Ein Ausdruck f¨ur jede Belegung wird durch Multiplikation der entsprechenden Literale gebildet Dabei wird die Co-dierung der Belegung noch mit dem Funktionswert gewichtet Anschließend werden alle Ausdr¨ucke aufsummiert
Beispiel 6.2.2 Betrachtet wird wiederum die Pseudo-Boolesche Funktion in
Tabel-le 6.4 Der lineare Ausdruck nach obiger Konstruktionsvorschrift ergibt sich zu:
f (x1,x2) = 8 · (1 − x1) · (1 − x2) − 12 · (1 − x1) · x2+ 10 · x1· (1 − x2) − 6 · x1· x2
= 8 − 20 · x2+ 2 · x1+ 4 · x2· x1
Das zugeh¨orige BMD ist in Abb 6.31 zu sehen Das BMD ist dabei wie folgt zu interpretieren: Kanten, die den Wertβ(x i) = T darstellen und ¨uber die ein
Termi-nalknoten vT ∈ VTerreicht werden kann, zeigen an, dass der Koeffizient value(vT) von dieser Variablen abh¨angt Andernfalls ist der Koeffizient unabh¨angig von dieser Variablen
x1
Abb 6.31 BMD der Pseudo-Booleschen Funktion aus Tabelle 6.4
Aus mathematischer Sicht basieren MTBDDs auf der Shannon-Zerlegung Diese lautet f¨ur eine Pseudo-Boolesche Funktion f :Bn → Z:
f = (1 − x i ) · f | x i: =F+ x i · f | x i: =T (6.1)
Durch Umformung erh¨alt man die positive Davio-Zerlegung f¨ur eine
Pseudo-Boolesche Funktion:
f = f | x i: =F+ x i · ( f | x i: =T− f | x i: =F)
Hierbei wird f | x i: =Fals konstantes Moment und f |∂x i als lineares Moment
bezeich-net Damit l¨asst sich ein bin¨arer Momentengraph formal definieren:
Definition 6.2.1 (Bin¨arer Momentengraph) Gegeben sei eine Pseudo-Boolesche
Funktion f :Bn → Z mit den Variablen x1, ,x n Der zugeh¨orige bin¨are Momen-tengraph (BMD) (V,E) mit Quellknoten v0ist ein Entscheidungsdiagramm nach De-finition B.1.1 auf Seite 533 mit folgenden Eigenschaften:
Trang 5• Der Quellknoten v0repr¨asentiert die Funktion f , d h.φ(v0) = f
• F¨ur jeden Knoten v ∈ V gilt:
– Falls v ∈ VT, dann repr¨asentiert v die entsprechende konstante
Pseudo-Boolesche Funktion value (v), d h.φ(v) = value(v).
– Falls v ∈ VN, dann repr¨asentiert v die Funktion φ(v) =φ(child(v,1)) +
xindex(v) ·φ(child(v,2)).
Ein geordnetes BMD (engl Ordered BMD, OBMD) besitzt die Eigenschaft, dass
auf jedem Pfad vom Quellknoten zu einem Terminalknoten die Variablen in der
sel-ben Reihenfolge auftreten Ein reduziertes OBMD (engl Reduced OBMD, ROBMD)
enth¨alt man durch wiederholtes Anwenden der Verschmelzungsregel und der Elimi-nationsregel f¨ur OFDDs (siehe Anhang B.3) ROBMDs sind kanonische Repr¨asen-tationen f¨ur Pseudo-Boolesche Funktionen und somit f¨ur die implizite ¨ Aquivalenz-pr¨ufung auf Architekturebene geeignet
In [65, 66] stellen Bryant und Chen eine Erweiterung von BMDs um
multiplikati-ve Kantengewichte als Erweiterung additimultiplikati-ver Kantengewichte vor, wie sie
beispiels-weise auch in sog EVBDDs (engl Edge Valued Binary Decision Diagrams) zum
Einsatz kommen [281] Als Abgrenzung zu BMDs werden diese Momentengraphen
als multiplikative BMDs (engl multiplicative BMDs, *BMDs) bezeichnet *BMDs
verwenden ganzzahlige Faktoren der konstanten und linearen Momente als Kanten-gewichte, um die Anzahl von Terminalknoten zu verringern und dadurch die Anzahl isomorpher Teilgraphen zu erh¨ohen Das Ergebnis sind kompaktere Repr¨asentanten Pseudo-Boolescher Funktionen
F¨ur die Interpretation eines *BMD wird das Kantengewicht w eeiner
eingehen-den Kante e als Faktor f¨ur die Interpretation des Knotens v verwendet Somit gilt f¨ur
*BMDs:
• Der Quellknoten v0repr¨asentiert die Funktion f , d h.φ(w0,v0) = f
• F¨ur jeden Knoten v ∈ V gilt:
– Falls v ∈ VT, dann repr¨asentiert v die konstante Pseudo-Boolesche Funktion
φ(w e ,v) = w e · value(v).
– Falls v ∈VN, dann repr¨asentiert v die Funktionφ(w e ,v) = w e ·(φ(w (v,child(v,1)) ,
child(v,1)) + xindex(v) ·φ(w (v,child(v,2)) ,child(v,2))).
Das Ergebnis einer Interpretation wird also immer mit dem entsprechenden
Kan-tengewicht multipliziert Weiterhin wird angenommen, dass der Quellknoten v0eine
eingehende Kante mit Kantengewicht w0besitzt Dies ist notwendig, um kanonische
*BMDs zu konstruieren (s u.)
Beispiel 6.2.3 Gegeben ist die Pseudo-Boolesche Funktion f : = 8−20·x3+2·x2+
4· x2· x3+ 12 · x1+ 24 · x1· x3+ 15 · x1· x2 Das zugeh¨orige ROBMD mit
Variablen-ordnung x1 < x2< x3ist in Abb 6.32a) zu sehen Man sieht, dass das BMD reduziert ist, da es keine isomorphen Teilgraphen enth¨alt, und somit die Verschmelzungsregel
nicht angewendet werden kann Weiterhin fehlt der Knoten x3im ganz rechten Ast Dieser besaß eine ausgehende Kante child(v,2) = F Somit konnte die
Eliminations-regel angewendet werden (siehe Anhang B.3)
Trang 6Das entsprechende geordnete *BMD (O*BMD) mit der selben Variablenordnung ist in Abb 6.32b) zu sehen Die Kantengewichte sind als Quadrate auf die Kanten gezeichnet Kanten ohne Beschriftung haben das Kantengewicht 1 Man sieht, dass das O*BMD u a die m¨ogliche Faktorisierung der Terme 2· x2+ 4 · x2· x3und 12·
x1 +24·x1·x3zu 2·x2·(1+2·x3) bzw 12·x1·(1+2·x3) ausnutzt Das O*BMD ist allerdings noch nicht reduziert Hierzu m¨ussten die Kantengewichte noch wie unten beschrieben angepasst werden
x3
x3
x2
x3
x2
x1
a)
x2
4
5
x2
2
−5
3 2
x1 b)
Abb 6.32 a) BMD und b) entsprechendes *BMD der Pseudo-Booleschen Funktion aus
Bei-spiel 6.2.3 [66]
Damit O*BMDs eine kanonische Repr¨asentation Pseudo-Boolescher Funktionen sind, m¨ussen die Kantengewichte einige Einschr¨ankungen erf¨ullen:
1 Ein *BMD enth¨alt h¨ochstens zwei Terminalknoten, die mit value(v) = 0 und
value(v) = 1 beschriftet sind.
2 Alle Kantengewichte m¨ussen von 0 verschieden sein
3 Falls eine Kante e = (v,vT) auf den Terminalknoten vTmit Wert value(vT) = 0
zeigt, so muss das zugeh¨orige Kantengewicht w e= 1 sein Falls es sich hierbei
um eineF-Kante handelt, d h e = (v,child(v,1)) gilt, muss die entsprechende T-Kante (v,child(v,2)) ebenfalls das Kantengewicht 1 besitzen.
4 Alle Kantengewichte vonF-Kanten m¨ussen nichtnegativ sein
5 Der gr¨oßte gemeinsame Teiler der Kantengewichte ausgehender Kanten eines Nichtterminalknotens muss 1 sein, d h gcd(w (v,child(v,1)) ,w (v,child(v,2))) = 1
*BMD-Repr¨asentation arithmetischer Komponenten
Abbildung 6.33 zeigt das *BMD von drei wichtigen arithmetischen Operationen
Um die Lesbarkeit der graphischen Repr¨asentationen zu erh¨ohen, wurden bei der
Trang 7Darstellung mehr als zwei Terminalknoten zugelassen Abbildung 6.33a) zeigt die
*BMD-Repr¨asentation einer 3-Bit Ganzzahladdition x + y Dies kann interpretiert werden, als ob die einzelnen Bin¨arstellen gewichtet addiert werden, wobei die i-ten Stellen x i und y imit 2igewichtet sind
Die Multiplikation x · y zweier 3-Bit Zahlen ist in Abb 6.33b) als *BMD
darge-stellt Die Pseudo-Boolesche Funktion lautet
$
∑2
i:=0x i · 2 i%
·$∑2
i:=0y i · 2 i%
Schließ-lich zeigt Abb 6.33c) das *BMD f¨ur die Berechnung von 2x= 2∑ 3
i:=0x i ·2i Man kann feststellen, dass die Gr¨oße dieses Graphen lediglich linear mit der Anzahl der Varia-blen w¨achst
2 4
x3
x2
x1
x0
4
255
15
3
x2
y2
x1
y1
x0
y0
x1
x0
y0
y1
y2
b)
2
1
Abb 6.33 *BMDs von a) Addition, b) Multiplikation und c) 2x[66]
*BMD-Repr¨asentation kombinatorischer Schaltungen
Neben der Repr¨asentation von arithmetischen Operationen k¨onnen mit *BMDs eben-falls Boolesche Funktionen repr¨asentiert werden Somit stellen reduzierte O*BMDs (RO*BMDs) eine weitere M¨oglichkeit dar, kombinatorische Schaltungen kanonisch
zu repr¨asentieren In Abb 6.34 sind die *BMDs von drei wichtigen Gattern mit vier
Eing¨angen (x1 ,x2,x3,x4) dargestellt Man sieht, dass die Kantengewichte nicht auf die Werte 0 und 1 beschr¨ankt sind Dennoch ist der Wertebereich der implementier-ten Funktionen{0,1} mit der entsprechenden Interpretation als B = {F,T}.
Analog zu positiven Zerlegung existiert ebenfalls eine negative Davio-Zerlegung f¨ur Pseudo-Boolesche Funktionen:
Trang 8x2
x2
x3
x4
x3
x4
x1
x2
x2
x3
x4
x3
x4
−1
1
−2
−2
1
−1
x1
x2
x3
x4
1 0
Abb 6.34 *BMD eines a) OR-Gatters, b) AND-Gatters und c) XOR-Gatters mit jeweils vier
Eing¨angen [66]
f = f | x i: =T+ (1 − x i ) · ( f | x i: =T− f | x i: =F)
= f | x i: =T+ (1 − x i ) · f |∂x i (6.3)
In [136] stellen Drechsler et al Kronecker *BMDs (K*BMDs) als
Verallgemeine-rung von *BMDs vor Wie bei KFDDs k¨onnen bei K*BMDs f¨ur jede Variable der Zerlegungstyp gew¨ahlt werden, d h entweder Shannon-, positive Davio- oder nega-tive Davio-Zerlegung Ein Vergleich von Entscheidungsdiagrammen f¨ur Boolesche und Pseudo-Boolesche Funktionen findet sich in [134]
6.2.2 ¨ Aquivalenzpr ¨ufung zwischen Architektur- und Logikebene
Bisher wurde lediglich die ¨Aquivalenzpr¨ufung zweier Schaltungen auf der selben Abstraktionsebene betrachtet Hierbei wurden implizite Verfahren auf der
Logikebe-ne basierend auf ROBDDs oder ROKFDDs diskutiert Diese lassen sich jedoch nicht gut auf Architekturebene einsetzen, wo sich RO*BMDs als vorteilhaft herausgestellt haben M¨ochte man allerdings ¨uberpr¨ufen, ob eine Implementierung auf Logikebene, also eine Gatternetzliste, ¨aquivalent zum spezifizierten Verhalten auf
Architekturebe-ne ist, bedarf es zus¨atzlicher Schritte Ein erster Ansatz wurde in [65, 66] vorgestellt Die Idee ist in Abb 6.35 dargestellt
Die Spezifikation ist durch eine Funktion f2:Z2→ Z gegeben Hierbei ist
da-von auszugehen, dass der Definitionsbereich eingeschr¨ankt ist bzw eingeschr¨ankt werden muss, um eine Implementierung in Hardware zu erm¨oglichen Der Einfach-heit halber wird in diesem Beispiel davon ausgegangen, dass alle Definitionsbereiche der Eingangsvariablen und der Wertebereich der Funktion identisch sind Die resul-tierende Implementierung als Gatternetzliste implementiert die Boolesche Funktion
Trang 9enc
enc
Spezifikation
Implementierung
f1
f2
x
y
f1
f2
Abb 6.35 Schematische Darstellung zur ¨Aquivalenzpr¨ufung einer Spezifikation auf Archi-tekturebene und einer Implementierung auf Logikebene [66]
f1:B2n → B n (im Beispiel n= 4) Bei der Hardware-Implementierung wird eine Codierung der Bitvektoren gew¨ahlt, die es erlaubt, die Ein- und Ausg¨ange als ganze Zahlen aus dem Definitions- und Wertebereich zu interpretieren Dies erfolgt in den Bl¨ocken enc, die eine Funktion enc :Bn → Z implementieren Hieraus ergibt sich,
dass die Funktionen f1 und f2 Pseudo-Boolesche Funktionen sind
Typische Codierungen sind vorzeichenlose bin¨are Darstellung, Vorzeichen-Be-trag-Darstellung und 2er-Komplement-Darstellung Um eine ¨Aquivalenzpr¨ufung zwischen unterschiedlichen Abstraktionsebenen durchf¨uhren zu k¨onnen, m¨ussen die gew¨ahlten Codierungen ber¨ucksichtigt werden Die Darstellung der drei oben ge-nannten Codierungen als *BMD f¨ur vier Bin¨arstellen ist in Abb 6.36 dargestellt
1 0
4 8
2
x0
x1
x2
x3
a)
1
4
2
x0
x1
x2
x3
0
4
2
x0
x1
x2
x3
−2
−8
Abb 6.36 *BMDs der a) vorzeichenlosen bin¨aren Darstellung, b)
Vorzeichen-Betrag-Darstellung und c) 2er-Komplement-Vorzeichen-Betrag-Darstellung [329]
Trang 10Um eine ¨Aquivalenzpr¨ufung ¨uber Abstraktionsebenen hinweg durchf¨uhren zu k¨onnen, wird jede Schaltung zun¨achst in ihre einzelnen Komponenten zerlegt und jede Komponente gegen ihre Spezifikation gepr¨uft Anschließend wird die kor-rekte Verschaltung der einzelnen Komponenten ¨uberpr¨uft Dies wird anhand einer Volladdierer-Schaltung demonstriert [329]
Beispiel 6.2.4 Gegeben ist der Volladdierer aus Abb A.2 auf Seite 527 Zun¨achst
wird f¨ur jeden Ausgang des Volladdierers ein *BMD auf Basis der implementierten
Booleschen Funktionen aufgestellt Der Volladdierer hat die Ausg¨ange s1 f¨ur die
Summe und c1f¨ur den ¨Ubertrag Die drei Eing¨ange sind a1, b1 und c0 Die Summe
berechnet sich anhand der implementierten Booleschen Funktionen zu:
s1 (a1,b1,c0) = a1⊕ b1⊕ c0 Der ¨Ubertrag zu:
c1 (a1,b1,c0) = (a1∧ b1) ∨ ((a1⊕ b1) ∧ c0) Zur Erstellung der beiden *BMD m¨ussen die Booleschen Funktionen in Pseudo-Boolesche Funktionen umgewandelt werden Hierbei gilt:
x0 ∧ x1= x0· x1,
x0 ∨ x1= x0+ x1− x0· x1 sowie
x0 ⊕ x1= (x0∧ ¬x1) ∨ (¬x0∧ x1)
= (x0· (1 − x1)) ∨ ((1 − x0) · x1)
= (x0− x0· x1) ∨ (x1− x0· x1)
= (x0− x0· x1) + (x1− x0· x1) − (x0− x0· x1) · (x1− x0· x1)
= x0+ x1− 2 · x0· x1− (x0· x1− x0· x1− x0· x1+ x0· x1)
= x0+ x1− 2 · x0· x1,
wobei x0 ,x1∈ {0,1}.
F¨ur die Summen- und ¨Ubertragsberechnung ergibt sich dann:
s1 (a1,b1,c0) = a1⊕ b1⊕ c0
= (a1+ b1− 2 · a1· b1) ⊕ c0
= (a1+ b1− 2 · a1· b1) + c0− 2 · (a1+ b1− 2 · a1· b1) · c0
= a1+ b1+ c0− 2 · a1· b1− 2 · a1· c0− 2 · b1· c0+ 4 · a1· b1· c0 und
c1 (a1,b1,c0) = a1· b1+ a1· c0+ b1· c0− 2 · a1· b1· c0
Die resultierenden *BMDs f¨ur die Variablenordnung c0 < b1< a1sind in Abb 6.37
zu sehen