1. Trang chủ
  2. » Công Nghệ Thông Tin

Digitale Hardware/ Software-Systeme- P15 pdf

20 150 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 20
Dung lượng 262,82 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Darstellung einer ganzzahligen arithmetischen Funktion mit endlichem Definiti-onsbereich als Entscheidungsdiagramm [272] Eine solche Repr¨asentation besitzt allerdings den Nachteil, das

Trang 1

Ausg¨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 2

Datenpfad 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 3

beachten 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 4

Zun¨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 6

Das 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 7

Darstellung 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 8

x2

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 9

enc

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 10

Um 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

Ngày đăng: 03/07/2014, 08:20

w