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

Digitale Hardware/ Software-Systeme- P9 ppt

30 848 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

Tiêu đề Digitale Hardware/ Software-Systeme- P9 ppt
Trường học University of Example
Chuyên ngành Digital Hardware/ Software Systems
Thể loại Lecture slides
Năm xuất bản 2023
Thành phố Example City
Định dạng
Số trang 30
Dung lượng 342,93 KB

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

Nội dung

Die Ausg¨ange der Schaltung stellen die Funktionswertedar, wobei jeder Ausgang einzeln als eigene Boolesche Funktion dargestellt wird.Das Zeitverhalten, etwa die Verz¨ogerungszeiten der

Trang 1

Beispiel 5.4.13 Gegeben sei der markierte Graph in Abb 5.34 Die

Verz¨ogerungs-zeit der Aktoren seiδmax(a0) = ··· =δmax(a4) := 2 Der Graph besitzt zwei Zyklen

(a0 ,a1,a2,a0) und (a1,a2,a3,a1) Die Iterationsintervallschranke P minergibt sich zu:

Aufz¨ahlende und strukturelle Verfahren zur Verifikation von Petri-Netzen werden

z B in [87] und [189] vorgestellt In [189] sind auch nen und eine Erweiterung auf Modellpr¨ufung f¨ur Petri-Netze ausf¨uhrlich diskutiert.Dabei werden Verfahren unterschieden, die auf der Auswahl von Referenzschalt-folgen basieren sowie auf entfaltungsbasierten Verfahren Verfahren zur Auswahlvon Referenzschaltfolgen sind u a die Stubborn-Set- und Sleep-Set-Methoden DieStubborn-Set-Methode wurde von Valmari vorgeschlagen [446, 447, 448] Die Sleep-Set-Methode wird ausf¨uhrlich in [194] diskutiert Weitere Arbeiten zur Partialord-nungsreduktion durch Auswahl von Referenzschaltfolgen sind in [196, 252, 197,

Partialordnungsreduktio-357, 358] zu finden Andere Verfahren zur Partialordnungsreduktion basierend aufder Entfaltung des Petri-Netzes sind in [155, 317, 318, 265] beschrieben

Trang 2

Modellpr¨ufung f¨ur temporale Logiken sind in [107, 39] ausf¨uhrlich beschrieben.CTL-Modellpr¨ufung wurde unabh¨angig von Clarke und Emerson [97] und Queilleund Sifakis [369] entwickelt Der von Clarke und Emerson vorgeschlagene Algo-rithmus besitzt eine polynomielle Zeitkomplexit¨at in Formell¨ange und Modellgr¨oße.Einen verbesserten Algorithmus mit linearer Zeitkomplexit¨at stellten Clarke, Emer-son und Sistla in [98] vor Einen ersten Algorithmus zur LTL-Modellpr¨ufung stelltenLichtenstein und Pnueli 1985 in [304] vor Ein alternativer Ansatz, der auf B¨uchi-Automaten und Sprachinklusion basiert, wurde von Vardi und Wolper vorgestellt[449, 183].

Zusicherungsbasierte Eigenschaftspr¨ufung ist ausf¨uhrlich in [168, 111]

beschrie-ben F¨ur die simulative Verifikation m¨ussen die Zusicherungen zun¨achst in

Monito-re oder GeneratoMonito-ren ¨ubersetzt werden Die fr¨uhesten Arbeiten zur ¨Ubersetzung vonregul¨aren Ausdr¨ucken in Automaten sind [323, 437] Die ¨Ubersetzung von LTL-

Formel mittels Tableau-Technik wurde erstmals in [467] pr¨asentiert Aufgrund der

Wichtigkeit von LTL-Formeln f¨ur die formale und simulative Verifikation wurdediese Methode st¨andig verbessert [127, 405, 181, 188, 436] Nach der Standardi-sierung von PSL wurden auch spezielle Verfahren entwickelt, die PSL-Formeln inAutomaten ¨ubersetzen [203, 95, 187, 77]

Symbolische CTL-Modellpr¨ufung ist ausf¨uhrlich in [107, 272] diskutiert Diegrundlegenden Arbeiten f¨ur die BDD-basierte Repr¨asentation von Zustandsmengen

in der Modellpr¨ufung finden sich in [74, 72, 316, 73] Die SAT-basierte pr¨ufung wurde 1999 von Biere et al [49] vorgestellt Ihre technische Anwendung ist

Modell-in [48] beschrieben

Eine Vielzahl an Verifikationsaufgaben f¨ur zeitliche Anforderungen k¨onnen alsModellpr¨ufungsproblem f¨ur zeitbehaftete Modelle formuliert werden Viele Metho-den hierzu wurden im Umfeld von zeitbehafteten Automaten entwickelt [8] DieRepr¨asentation und Manipulation der Zeitzonen f¨ur die Erreichbarkeitsanalyse bei

zeitbehafteten Automaten kann effizient auf sog engl difference bound matrices

durchgef¨uhrt werden [132] Eine einfachere Klasse an Modelle kann direkt durchzeitbehaftete temporale Strukturen definiert werden F¨ur diese Modelle ist die TCTL-Modellpr¨ufung in polynomieller Zeitkomplexit¨at m¨oglich Ein erster Algorithmuszur TCTL-Modellpr¨ufung ist in [151] gegeben Erweiterungen sind in [152] und[288] diskutiert Die Zeitanalyse von TSDF-Graphen ist ausf¨uhrlich in [184] be-schrieben Die hier pr¨asentierten Ergebnisse wurden erstmals in [185] und [186]vorgestellt Dort verwenden Ghamarian et al bei ihrer Analyse eine Ausf¨uhrungs-semantik f¨ur SDF-Graphen, die ein mehrfaches, gleichzeitiges Feuern von Aktorenzul¨asst Dies ist eine offensichtliche Semantik, sofern man jegliche Ressourcenbe-schr¨ankungen vernachl¨assigt Um die in diesem Buch vorgestellte Analyse konsis-tent zu dem eingef¨uhrten zeitbehafteten Petri-Netzen zu halten, wurde diese Seman-tik hier nicht ¨ubernommen Die Bestimmung des maximalen Durchsatzes basierendauf der Spektralanalyse ist ebenfalls in [185] vorgestellt Erste Ans¨atze dieser Metho-

de gehen allerdings auf [375] zur¨uck und wurden sp¨ater mit dem Eigenwert-Problemder Max-Plus-Algebra [22] verbunden

Trang 3

Abb 6.1 Hardware-Verifikation

In diesem Kapitel werden wichtige Methoden zur Verifikation von Hardware gestellt Diese Methoden sind notwendige Hilfsmittel zur Verifikation auf verschie-denen Abstraktionsebenen In Abb 6.1 sind die hier betrachteten Abstraktionsebenenhervorgehoben Zun¨achst werden Methoden zur ¨Aquivalenzpr¨ufung von kombinato-rischen und sequentiellen Schaltungen beschrieben, die ¨uberwiegend auf der Logi-kebene eingesetzt werden Anschließend werden Methoden zur ¨Aquivalenzpr¨ufungvon arithmetischen Schaltungen pr¨asentiert, mit denen sich Schaltungen auf Archi-tekturebene vergleichen lassen Ein Spezialfall stellt dabei die Prozessorverifikationdar Im Anschluss werden Methoden zur Modellpr¨ufung von Hardware auf Logik-und Architekturebene beschrieben Schließlich folgen Verfahren zur Verifikation desZeitverhaltens auf Logik- und Architekturebene

vor-C Haubelt, J Teich, Digitale Hardware/Software-Systeme, eXamen.press,

DOI 10.1007/978-3-642-05356-6 6, c Springer-Verlag Berlin Heidelberg 2010

Trang 4

6.1 ¨ Aquivalenzpr ¨ufung kombinatorischer und sequentieller Schaltungen

¨

Aquivalenzpr¨ufung von Hardware wird sowohl auf der Logik- als auch auf der

Architekturebene durchgef¨uhrt Hierbei unterscheidet man verschiedene Arten derPr¨ufung Zum einen k¨onnen zwei Implementierungen auf der selben Abstraktions-ebene verglichen werden, zum anderen ist es oft notwendig, die ¨Aquivalenz des Ver-haltensmodells einer Spezifikation und des Strukturmodells der zugeh¨origen Imple-mentierung zu zeigen Dar¨uber hinaus ist es aber oft w¨unschenswert, ebenfalls die

6.1.1 Implizite ¨ Aquivalenzpr ¨ufung auf der Logikebene

Auf der Logikebene (siehe Abb 6.1) ist das Verhaltensmodell der Spezifikationh¨aufig ein endlicher Zustandsautomat Die Zustands¨ubergangsfunktion bzw Aus-gabefunktion kann dann mit Hilfe von Booleschen Funktionen beschrieben werden

Das Strukturmodell der Implementierung ist entweder eine kombinatorische tung, auch Schaltnetz genannt, bzw ein Schaltwerk Im Gegensatz zu Schaltwerken

Schal-enthalten Schaltnetze keine Speicherelemente Sowohl Schaltnetze als auch werke lassen sich in Form von Booleschen Funktionen repr¨asentieren Somit l¨asstsich das grundlegende Problem bei der ¨Aquivalenzpr¨ufung auf Logikebene immerauf die ¨Aquivalenzpr¨ufung von Booleschen Funktionen reduzieren

Schalt-¨

Aquivalenzpr ¨ufung zweier Implementierungen

Kombinatorische Schaltungen bezeichnen das strukturelle Modell einer Implementierung auf der Logikebene ohne Speicher (Flip-Flops, Register etc.) Hier-bei handelt es sich um eine Netzliste bestehend aus Logikgattern, wobei R¨uckkopp-lung nicht zul¨assig sind Die Aufgabe der ¨Aquivalenzpr¨ufung auf Logikebene ist

Hardware-es, zu zeigen, dass zwei gegebene Schaltungen f¨ur die selben Eingaben die selbenAusgaben erzeugen Dann implementieren sie die selbe Funktion In diesem Fall

bezeichnet man beide Schaltungen als ¨aquivalent, andernfalls als nicht ¨aquivalent.

Eine M¨oglichkeit, diesen Vergleich zweier kombinatorischer Schaltungen formaldurchzuf¨uhren, besteht darin, beide Schaltungen durch eine kanonische Repr¨asen-

tation darzustellen und die Repr¨asentanten zu vergleichen Dies wird als

implizi-te ¨ Aquivalenzpr¨ufung bezeichnet Da es sich um eine formale Verifikationsmethode

handelt, ist sie auch f¨ur einen Beweis der ¨Aquivalenz einsetzbar

Das Verhalten kombinatorischer Schaltungen l¨asst sich mit Hilfe von BooleschenFunktionen beschreiben Hierbei werden die Eing¨ange der Schaltung als Argumente

Trang 5

der Funktion interpretiert Die Ausg¨ange der Schaltung stellen die Funktionswertedar, wobei jeder Ausgang einzeln als eigene Boolesche Funktion dargestellt wird.Das Zeitverhalten, etwa die Verz¨ogerungszeiten der Gatter oder Leitungen, wird beidieser Abstraktion vernachl¨assigt.

Die Konstruktion der durch eine kombinatorische Schaltung implementierten

Booleschen Funktionen wird auch als symbolische Simulation bezeichnet piell existieren hierzu zwei Verfahren, die Vorw¨artskonstruktion und die R¨uckw¨arts- konstruktion Bei der Vorw¨artskonstruktion bestimmt man Gatterausg¨ange als Funk-

Prinzi-tionen der Eing¨ange, beginnend mit den Schaltungseing¨angen Bei der konstruktion stellt man jeden Schaltungsausgang als Funktion des letzten Gatters darund bestimmt f¨ur dieses die Eing¨ange aus den direkt davor liegenden Gattern usw

R¨uckw¨arts-Im Folgenden werden Schaltungen mit nur einem Ausgang betrachtet Das folgendeBeispiel stammt aus [272]

Beispiel 6.1.1 Gegeben ist die kombinatorische Schaltung in Abb 6.2 Durch w¨artskonstruktion ergibt sich die Funktion f1 zu: f1(x1,x2) := x1∧ x2 Das zwei-

Vor-te GatVor-ter ist ein OR-GatVor-ter Somit ist f2(x1,x2,x3) := f1(x1,x2) ∨ x2∨ x3= (x1 ∧

x2) ∨ x2∨ x3 Das dritter Gatter ist ein XOR-Gatter und somit f (x1 ,x2,x3,x4) :=

f2(x1,x2,x3) ⊕ x4= ((x1 ∧ x2) ∨ x2∨ x3) ⊕ x4

Die R¨uckw¨artskonstruktion liefert hier das selbe Ergebnis, baut die Boolesche

Funktion allerdings von dem Ausgang her auf, d h f ( f2 ,x4) := f2⊕ x4 Durch

Substitution der Variablen f2 mit f2:= f1 ∨ x2∨ x3 erh¨alt man f ( f1 ,x2,x3,x4) =

( f1 ∨ x2∨ x3) ⊕ x4 Zuletzt wird noch f1mit f1:= x1 ∧ x2substituiert, was zu dem

Abb 6.2 Kombinatorische Schaltung [272]

F¨ur eine implizite ¨Aquivalenzpr¨ufung werden die beiden Booleschen tionen, welche die zwei zu vergleichenden kombinatorischen Schaltungen imple-mentieren, mit Hilfe einer kanonischen Repr¨asentation dargestellt Kanonische Re-

Funk-pr¨asentationen besitzen die Eigenschaft, dass diese vollst¨andig und eindeutig sind,

d h es existiert f¨ur jede Boolesche Funktion genau ein Repr¨asentant Sind die zweiresultierenden Repr¨asentanten identisch, so implementieren die beiden kombina-

torischen Schaltungen die selbe Boolesche Funktion Reduzierte geordnete bin¨are Entscheidungsdiagramme (engl Reduced Ordered Binary Decision Diagrams, RO- BDDs) und reduzierte geordnete Kronecker funktionale Entscheidungsdiagramme (engl Reduced Ordered Kronecker Functional Decision Diagrams, ROKFDDs) sind

Trang 6

solche kanonischen Repr¨asentationen Boolescher Funktionen (siehe Anhang B.2 undB.3).

Beispiel 6.1.2 Abbildung 6.3 zeigt zwei kombinatorische Schaltungen Beide

Schal-tungen unterscheiden sich lediglich in einem Gatter: W¨ahrend die erste Schaltung in

Abb 6.3a) die Eing¨ange x5und x6mit Hilfe eines NAND-Gatters verkn¨upft, wird

in der zweiten Schaltung (Abb 6.3b)) x6 negiert Die Frage, ob beide Schaltungen

¨aquivalent sind, l¨asst sich formal durch die Konstruktion je eines ROBDD mit derselben Variablenordnung und deren Vergleich beantworten

Abb 6.3 Zwei kombinatorische Schaltungen [275]

F¨ur die kombinatorische Schaltung in Abb 6.3a) wird mit Hilfe der konstruktion und des ITE-Operators (siehe Anhang B.2) ein ROBDD konstruiert

Vorw¨arts-Die Variablenordnung ist x1< x4< x3< x5< x7< x6< x2

1 Im ersten Schritt werden die ROBDDs f¨ur die Funktionen der Variablen z1und

z2bestimmt Zur Konstruktion des ROBDD der Funktion des Ausgangs z1(das

OR-Gatter mit den Eing¨angen x2und x5) wird die Operation ITE(x2 ,T,x5)

ver-wendet Wegen der Variablenordnung (x5 steht vor x2) muss diese Funktion

zun¨achst nach x5entwickelt werden

z = ITE(x2 ,T,x5) = ITE(x5,T,x2)

Trang 7

Zur Konstruktion des ROBDD der Funktion des Ausgangs z2(das NAND-Gatter

mit den Eing¨angen x5 und x6) wird die Operation ITE(x5 ,¬x6,T) verwendet.

Dies ist bereits die richtige Variablenordnung

Trang 8

2 Im zweiten Schritt werden die Funktionen der Variablen z3 und z4bestimmt.

Der Ausdruck f¨ur z3ergibt sich aus der Definition des ITE-Operators f¨ur Gatter

AND-z3= ITE(x3 ,z1,F)

Da x3in der Variablenordnung vor x5und x2steht, ist keine weitere Umformung

n¨otig Das resultierende ROBDD ist in Abb 6.4c) zu sehen Die Funktion f¨ur z4ergibt sich zu ITE(z1 ,x4,F) Aufgrund der gegebenen Variablenordnung muss

zun¨achst nach x4entwickelt werden Da z1unabh¨angig von der Variablen x4ist,bleibt dieser Term unver¨andert erhalten

z4= ITE(z1 ,x4,F)

= ITE(x4 ,ITE(z1,T,F),ITE(z1,F,F))

= ITE(x4 ,z1,F)

Das resultierende ROBDD f¨ur z4ist in Abb 6.4d) dargestellt

3 Im dritten Schritt erfolgt die Repr¨asentation der Variablen z5, z6 und z7 als

ROBDD Die Konstruktion des ROBDD f¨ur die z5ergibt:

z5= ITE(x1 ,z3,F)

Ausgangspunkt ist wiederum die Definition des ITE-Operators f¨ur AND-Gatter

Da das ROBDD f¨ur die Funktion der Variablen z3lediglich die Variablen x3, x5

und x2enth¨alt (siehe Abb 6.4c)) und x1in der Variablenordnung an erster Stelle

steht, ist keine weitere Umformung n¨otig Das ROBDD f¨ur z5ist in Abb 6.4e)

dargestellt Die Konstruktion des ROBDD f¨ur z6ergibt:

z6= ITE(z3 ,T,z4)

= ITE(x4 ,ITE(z3,T,z1),ITE(z3,T,F))

= ITE(x4 ,ITE(x3,ITE(z1,T,z1),ITE(F,T,z1)),z3)

= ITE(x4 ,z1,z3)Ausgangspunkt ist die Definition des ITE-Operators f¨ur OR-Gatter Die h¨ochste

Variable in der Variablenordnung, die in den beiden ROBDDs z3 und z4

ent-halten ist, ist x4 Deshalb wird zun¨achst nach x4 entwickelt Der f¨ur den Fall

x4= T verbleibende Term enth¨alt x3als h¨ochste Variable in der

Variablenord-nung Durch Umformungen k¨onnen die Ausdr¨ucke auf z1und z3reduziert

wer-den Das ROBDD f¨ur z6ist in Abb 6.4f) zu sehen Die Konstruktion des ROBDD

f¨ur z7ergibt:

z7= ITE(z4 ,x7,F)

= ITE(x4 ,ITE(z1,x7,F),ITE(F,x7,F))

= ITE(x4 ,ITE(x5,ITE(T,x7,F),ITE(x2,x7,F)),F)

= ITE(x4 ,ITE(x ,x ,ITE(x ,x ,F)),F)

Trang 9

Ausgehend von der Definition des ITE-Operators f¨ur AND-Gatter werden die

ROBDDs f¨ur z4 und x7 verkn¨upft Dieser Ausdruck wird f¨ur die Variable x4

und der f¨ur x4= T entstehende Ausdruck nach x5(entsprechend der

Variablen-ordnung) entwickelt Zur endg¨ultigen Konstruktion des ROBDD f¨ur z7 wirddann die Kommutativit¨at der UND-Verkn¨upfung ausgenutzt (ITE(x2 ,x7,F) =

ITE(x7 ,x2,F)) Das resultierende ROBDD f¨ur z7ist in Abb 6.4g) dargestellt

4 Im vierten Schritt wird das ROBDD f¨ur die Variable z8konstruiert

z8= ITE(z6 ,¬z3,T)

= ITE(x4 ,ITE(z1,¬z2,T),ITE(z3,¬z2,T))

= ITE(x4 ,ITE(x5,ITE(T,x6,T),ITE(x2,F,T)),

ITE(x3 ,ITE(z1,¬z2,T),ITE(F,¬z2,T)))

= ITE(x4 ,ITE(x5,x6,¬x2),ITE(x3,ITE(x5,ITE(T,x6,T),ITE(x2,F,T)),T))

= ITE(x4 ,ITE(x5,x6,¬x2),ITE(x3,ITE(x5,x6,¬x2),T))

Ausgehend von der Definition des ITE-Operators f¨ur NAND-Gatter erfolgt dieEntwicklung entsprechend der Variablenordnung Das Ergebnis ist in Abb 6.4h)

zu sehen

5 Im letzte Schritt wird das ROBDD f¨ur den Ausgang y1 durch eine

ODER-Verkn¨upfung konstruiert Der resultierende ROBDD f¨ur y1ist in Abb 6.5 stellt

darge-Neben der Vorw¨artskonstruktion ist es ebenfalls m¨oglich, das ROBDD vom gang her zu konstruieren Aufgrund der Konstruktionsregeln sind die Ergebnisse derVorw¨arts- und der R¨uckw¨artskonstruktion identisch

Aus-Beispiel 6.1.3 F¨ur die Schaltung aus Abb 6.3b) soll das ROBDD durch konstruktion f¨ur die Variablenordnung x1< x4< x3< x5< x7< x6< x2erstellt wer-den Es handelt sich hierbei um die selbe Variablenordnung wie in Beispiel 6.1.2

R¨uckw¨arts-1 Im ersten Schritt wird das ROBDD f¨ur das OR-Gatter am Ausgang y2als

Funk-tion y2= z5 ∨ x2∨ z8∨ z7erstellt

2 Im zweiten Schritt werden die Variablen z5, z7und z8durch die ROBDDs derentsprechenden Gatter (zweimal AND-Gatter, einmal NAND-Gatter) substitu-

iert Der entsprechende ITE-Operator ist definiert zu f (x,g(x)) = ITE(g(x),

f (x,T), f (x,F)) Das resultierende ROBDD ist in Abb 6.6a) zu sehen.

3 Im dritten Schritt werden die Variablen z2 und z6 durch die ROBDDs f¨ur die

Booleschen Funktionen z2= ¬x6 und z6= z3 ∨ z4= ¬(z3 ∧ z4) substituiert Dasresultierende ROBDD ist in Abb 6.6b) dargestellt

4 Im vierten Schritt werden die Variablen z3und z4durch die ROBDDs der

Funk-tionen z3= x3 ∧z1und z4= z1 ∧x4substituiert Das resultierende ROBDD ist inAbb 6.6c) dargestellt

5 Im letzten Schritt wird z1durch x2∨ x5substituiert Hiermit ist die konstruktion vollst¨andig Das Ergebnis ist identisch mit der Vorw¨artskonstruk-tion f¨ur die Schaltung aus Abb 6.3a) wie in Abb 6.5 dargestellt Da beide

Trang 10

Abb 6.5 ROBDD f¨ur die Ausg¨ange y1und y2f¨ur die Schaltungen aus Abb 6.3

Schaltungen bei gleicher Variablenordnung durch das selbe ROBDD tiert werden, sind beide Schaltungen ¨aquivalent

repr¨asen-An den vorangegangenen beiden Beispielen kann man sehen, dass die ROBDDs

in den Zwischenschritten bei der Vorw¨arts- und R¨uckw¨artskonstruktion lich groß sein k¨onnen Deshalb kann es n¨utzlich sein, beide Verfahren zu kombi-nieren, um Spitzen im Speicherbedarf w¨ahrend der Konstruktion von ROBDDs zuverhindern [245]

unterschied-¨

Aquivalenzpr ¨ufung zwischen Spezifikation und Implementierung

Neben der ¨Aquivalenzpr¨ufung zweier Implementierungen wird oftmals auch die

¨

Aquivalenz zwischen dem Verhaltensmodell der Spezifikation und dem dell der Implementierung gepr¨uft W¨ahrend Strukturmodelle auf Logikebene durch

Strukturmo-kombinatorische Schaltungen bzw Schaltwerke dargestellt werden, ist das

Verhal-tensmodell der Spezifikation durch Boolesche Funktionen beschrieben Da natorische Schaltungen Boolesche Funktionen implementieren, kann man die Schal-tungen auch direkt in eine Boolesche Funktion ¨ubersetzen und auf ¨Aquivalenz mit

kombi-der Spezifikation pr¨ufen Dies kann wiekombi-derum implizit durch kanonische

Trang 11

z4 z4 z3

x2

x7 x7

Abb 6.6 R¨uckw¨artskonstruktion des ROBDD f¨ur die Schaltungen aus Abb 6.3b)

tationen erfolgen Es handelt sich somit ebenfalls um eine formale thode

Verifikationsme-Beispiel 6.1.4 Gegeben ist die Boolesche Funktion f = x2 ∨¬x5∨x6∨x5∧((x1∧ x3)

∨(x4∧ x7) ∨ (¬x3∧ ¬x4)) Diese dient als Verhaltensmodell der Spezifikation f¨ur diekombinatorischen Schaltungen in Abb 6.3 Um die ¨Aquivalenz der Spezifikation

und der Implementierungen zu zeigen, wird ein reduziertes geordnetes Kronecker funktionales Entscheidungsdiagramm (engl Reduced Ordered Kronecker Functional Decision Diagram, ROKFDD, siehe Anhang B.3) mit der Variablenordnung x2<

x6< x5< x3< x4< x1< x7erstellt F¨ur die Variable x3wird dabei die positive, f¨ur die Variable x4die negative Davio-Zerlegung angewendet F¨ur alle anderen Variablen wird die Shannon-Zerlegung verwendet.

1 Im ersten Schritt wird die Boolesche Funktion f mit Hilfe der legung nach der Variable x2 entwickelt Dabei ergibt sich f |x2: =T = T und

Shannon-Zer-f |x: =F= ¬x5 ∨ x6∨ x5∧ ((x1∧ x3) ∨ (x4∧ x7) ∨ (¬x3∧ ¬x4)).

Trang 12

2 Im zweiten Schritt erfolgt die Entwicklung nach x6 mit Hilfe der

Shannon-Zerlegung Da der positive Kofaktor von x2 aus der vorherigen Zerlegungkonstant T ist, muss dieser nicht weiter entwickelt werden Es ergibt sich

f |x2: =F,x6 : =T= T und f | x2,x6 : =F= ¬x5 ∨x5∧((x1∧ x3) ∨ (x4∧ x7) ∨ (¬x3∧ ¬x4)).

3 Im dritten Schritt erfolgt die Entwicklung des negativen Kofaktors aus Schritt

2 bez¨uglich der Variablen x5 mit Hilfe der Shannon-Zerlegung Der

positi-ve Kofaktor von x6 ist eine konstante Funktion und muss deshalb nicht

zer-legt werden Die Zerlegung der Funktion f |x2,x6 : =F ergibt f |x2,x5,x6 : =F= T und

f |x2,x6 : =F,x5 : =T= (x1 ∧ x3) ∨ (x4∧ x7) ∨ (¬x3∧ ¬x4).

4 Wieder bleibt aus dem vorherigen Schritt nur eine nicht konstante Funktion

¨ubrig, der positive Kofaktor f |x2,x6 : =F,x5 : =T Dieser wird nun bzgl x3 mit derpositiven Davio-Zerlegung entwickelt Dabei ergibt sich:

f |x2,x3,x6 : =F,x5 : =T= ¬x4 ∨ x7sowie

Um die ¨Aquivalenz der Funktion f aus Beispiel 6.1.4 und den kombinatorischen

Schaltungen aus Abb 6.3 zu zeigen, muss ein ROKFDD mit der selben ordnung wie in Beispiel 6.1.4 f¨ur eine der Schaltungen aufgestellt werden, und diesesmit dem ROKFDD aus Abb 6.7 isomorph sein Es ist ausreichend, das ROKFDD f¨ureine der beiden Schaltungen aufzustellen, da die ¨Aquivalenz der beiden Schaltungen

Trang 13

f |x2: =F= x1 ∧ x3∧ x5∨ ¬(((x3∧ x5) ∨ (x4∧ x5)) ∧ ¬x6) ∨ x4∧ x5∧ x7

2 Der positive Kofaktor f |x2: =Tist konstant T, weshalb keine weitere

Entwick-lung f¨ur diesen notwendig ist F¨ur den negativen Kofaktor f |x2: =F erfolgt dieEntwicklung entsprechend der Variablenordnung per Shannon-Zerlegung nach

Variable x6 Der resultierende positive Kofaktor ist wieder konstantT Der gative Kofaktor ergibt sich zu:

Trang 14

ne-f |x2,x6 : =F= x1 ∧ x3∧ x5∨ ¬((x3∧ x5) ∨ (x4∧ x5)) ∨ x4∧ x5∧ x7

3 Im folgenden Schritt wird der negative Kofaktor f |x2,x6 : =F nach Variable x5mit

Hilfe der Shannon-Zerlegung entwickelt Der negative Kofaktor f |x2,x5,x6 : =F gibt konstantT Der positive Kofaktor ist:

er-f |x2,x6 : =F,x5 : =T= (x1 ∧ x3) ∨ ¬(x3∨ x4) ∨ (x4∧ x7)

= (x1 ∧ x3) ∨ (x4∧ x7) ∨ (¬x3∧ ¬x4)Dies ist die selbe aussagenlogische Formel wie in Schritt 3 der obigen RO-KFDD-Entwicklung aus Beispiel 6.1.4 Da die Variablenordnung und die Zerle-gungen hier die selben sind, verl¨auft auch die weitere Konstruktion des ROKFDDidentisch Als Ergebnis entsteht bei der Entwicklung des ROKFDD f¨ur die kom-binatorische Schaltung in Abb 6.3b) auch das in Abb 6.7 gezeigte ROKFDD.Dies bedeutet, dass die Implementierung (kombinatorische Schaltung) ¨aquiva-

lent zur Spezifikation (Boolesche Funktion f ) ist.

6.1.2 Explizite ¨ Aquivalenzpr ¨ufung auf der Logikebene

Neben der impliziten ¨Aquivalenzpr¨ufung von kombinatorischen Schaltungen mittels

kanonischer Funktionsrepr¨asentationen, gibt es effiziente Verfahren zur expliziten

¨

Aquivalenzpr¨ufung auf der Logikebene Hierzu k¨onnen entweder Verfahren zur

for-malen Erf¨ullbarkeitspr¨ufung mittels SAT-Solver oder Verfahren zur automatischen

Testfallgenerierung (auch Testmustergenerierung engl Automatic Test Pattern neration, ATPG) zum Einsatz kommen Beiden Verfahren liegt eine gemeinsame Datenstruktur zugrunde, die als engl Miter bezeichnet wird [58].

Ge-Die Idee bei der Konstruktion einer Miter-Schaltung besteht darin, dass die

bei-den Ausg¨ange von zwei kombinatorischen Schaltungen f1und f2mit einem Gatter verglichen werden Gleichzeitig werden die Eing¨ange beider Schaltungenmiteinander verbunden, so dass diese stets die selben Eingaben verarbeiten DerBeweis der ¨Aquivalenz von f1 und f2 erfolgt, indem gezeigt wird, dass der Aus-gang des XOR-Gatters niemals den WertT annehmen kann Bei der Falsifikationist die Aufgabe, eine Testfalleingabe zu finden, so dass der Ausgang des XOR-GattersT wird Besitzen die beiden kombinatorischen Schaltungen mehr als einenAusgang, so werden die Ausg¨ange paarweise mit XOR-Gattern verglichen und derAusgang der Miter-Schaltung mit einem OR-Gatter berechnet, welches als Eing¨angedie Ausg¨ange der XOR-Gatter erh¨alt Dies ist in Abb 6.8 dargestellt

XOR-Vor diesem Hintergrund sind die folgenden drei Aussagen ¨aquivalent [329]:

1 f1und f2sind funktional nicht ¨aquivalent

2 Der Ausgang der Miter-Schaltung aus f1und f2ist erf¨ullbar, d h es existierteine Eingabe, so dass der Ausgang der Miter-Schaltung zuT evaluiert

3 Der Ausgang der Miter-Schaltung ist auf sog Haftfehler (engl stuck-at faults)

pr¨ufbar (siehe auch [1])

Trang 15

SAT-basierte ¨ Aquivalenzpr ¨ufung

Um eine explizite ¨Aquivalenzpr¨ufung zweier kombinatorischer Schaltungen mitSAT-Solvern durchzuf¨uhren, wird die entsprechende Miter-Schaltung zun¨achst in

eine aussagenlogische Formel in konjunktiver Normalform (KNF) ¨ubersetzt [289] Eine aussagenlogische Formel in KNF besteht aus der Konjunktion von sog Klau- seln Jede Klausel besteht wiederum aus der Disjunktion von Literalen, wobei ein

Literal eine Variable oder deren Negation ist Um eine aussagenlogische Formel inKNF zu erf¨ullen, muss jede Klausel und somit mindestens ein Literal in jeder Klauselden WertT zugewiesen bekommen

Klauseln k¨onnen als Menge von Literalen interpretiert werden Die Anzahl derLiterale in einer Klausel wird als|c| geschrieben Die leere Klausel repr¨asentiert den

konstanten WertF Formeln in KNF k¨onnen als MengeΦ von Klauseln tiert werden In diesem Fall beschreibt die leere Menge∅ die konstante Boolesche

repr¨asen-FunktionT

Die Konstruktion der Formel in KNF aus einer kombinatorischen Schaltung folgt anhand des Booleschen NetzwerkesN (siehe auch Definition A.2.1 auf Sei-

er-te 525), welches die Mier-ter-Schaltung repr¨asentiert Jeder Knoer-ten v ∈ V im

Boole-schen NetzwerkN wird mit einer Formel in KNF annotiert, welche die

implemen-tierte Funktion des assoziierten Gatters beschreibt Im Folgenden werden lediglich

Gatter (Knoten) mit zwei Eing¨angen x1und x2und einem Ausgang z betrachtet Der Typ des Knoten v sei gegeben durch die Funktion type (v) Die Evaluierung eines

Knotens wird als konsistent bezeichnet, wenn gilt:

z = type(v)(x1 ,x2)Dies kann auch wie folgt geschrieben werden [329]:

(type(v)(x1 ,x2) ⇒ z) ∧ (z ⇒ type(v)(x1,x2))Mit anderen Worten: Es muss die mit den beiden Eing¨angen berechnete Funktion amAusgang zu sehen sein und weiterhin das am Ausgang ausgegebene Ergebnis mit derberechneten Funktion ¨ubereinstimmen In KNF kann dieser Zusammenhang auch als

(¬type(v)(x1 ,x2) ∨ z) ∧ (¬z ∨ type(v)(x1,x2))

Ngày đăng: 02/07/2014, 14:20

TỪ KHÓA LIÊN QUAN