Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 30 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
30
Dung lượng
342,93 KB
Nội dung
232 5 Eigenschaftspr ¨ ufung Beispiel 5.4.13. Gegeben sei der markierte Graph in Abb. 5.34. Die Verz ¨ ogerungs- zeit der Aktoren sei δ max (a 0 )=···= δ max (a 4 ) := 2. Der Graph besitzt zwei Zyklen (a 0 ,a 1 ,a 2 ,a 0 ) und (a 1 ,a 2 ,a 3 ,a 1 ). Die Iterationsintervallschranke P min ergibt sich zu: P min := max 2 + 2 + 2 2 , 2 + 2 + 2 3 = 3 Ein periodischer Ablaufplan mit P = P min ist in Abb. 5.34 zu sehen. a) b) 1 Zeit 2345678910111213 a 0 a 1 a 3 a 2 a 3 a 1 a 0 a 3 a 2 a 4 a 1 a 0 a 0 a 1 a 3 a 0 a 1 a 2 Abb. 5.34. a) markierter Graph und b) periodischer Ablaufplan 5.5 Literaturhinweise Aufz ¨ ahlende und strukturelle Verfahren zur Verifikation von Petri-Netzen werden z. B. in [87] und [189] vorgestellt. In [189] sind auch Partialordnungsreduktio- 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 Auswahl von Referenzschaltfolgen sind u. a. die Stubborn-Set- und Sleep-Set-Methoden. Die Stubborn-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, 357, 358] zu finden. Andere Verfahren zur Partialordnungsreduktion basierend auf der Entfaltung des Petri-Netzes sind in [155, 317, 318, 265] beschrieben. 5.5 Literaturhinweise 233 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 Queille und 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 stellten Lichtenstein 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 Generatoren ¨ ubersetzt werden. Die fr ¨ uhesten Arbeiten zur ¨ Ubersetzung von regul ¨ 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 wurde diese Methode st ¨ andig verbessert [127, 405, 181, 188, 436]. Nach der Standardi- sierung von PSL wurden auch spezielle Verfahren entwickelt, die PSL-Formeln in Automaten ¨ ubersetzen [203, 95, 187, 77]. Symbolische CTL-Modellpr ¨ ufung ist ausf ¨ uhrlich in [107, 272] diskutiert. Die grundlegenden Arbeiten f ¨ ur die BDD-basierte Repr ¨ asentation von Zustandsmengen in der Modellpr ¨ ufung finden sich in [74, 72, 316, 73]. Die SAT-basierte Modell- pr ¨ ufung wurde 1999 von Biere et al. [49] vorgestellt. Ihre technische Anwendung ist in [48] beschrieben. Eine Vielzahl an Verifikationsaufgaben f ¨ ur zeitliche Anforderungen k ¨ onnen als Modellpr ¨ ufungsproblem f ¨ ur zeitbehaftete Modelle formuliert werden. Viele Metho- den hierzu wurden im Umfeld von zeitbehafteten Automaten entwickelt [8]. Die Repr ¨ 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 durch zeitbehaftete temporale Strukturen definiert werden. F ¨ ur diese Modelle ist die TCTL- Modellpr ¨ ufung in polynomieller Zeitkomplexit ¨ at m ¨ oglich. Ein erster Algorithmus zur 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 Aktoren zul ¨ 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 basierend auf 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-Problem der Max-Plus-Algebra [22] verbunden. 6 Hardware-Verifikation System Logik Software Hardware Implementierung Spezifikation ArchitekturModul Block Abb. 6.1. Hardware-Verifikation In diesem Kapitel werden wichtige Methoden zur Verifikation von Hardware vor- gestellt. Diese Methoden sind notwendige Hilfsmittel zur Verifikation auf verschie- denen Abstraktionsebenen. In Abb. 6.1 sind die hier betrachteten Abstraktionsebenen hervorgehoben. 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 ¨ ufung von arithmetischen Schaltungen pr ¨ asentiert, mit denen sich Schaltungen auf Archi- tekturebene vergleichen lassen. Ein Spezialfall stellt dabei die Prozessorverifikation dar. Im Anschluss werden Methoden zur Modellpr ¨ ufung von Hardware auf Logik- und Architekturebene beschrieben. Schließlich folgen Verfahren zur Verifikation des Zeitverhaltens auf Logik- und Architekturebene. 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 236 6 Hardware-Verifikation 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 der Pr ¨ 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 ¨ Aquivalenz zweier Verhaltensmodelle bzw. zweier Strukturmodelle von unterschied- lichen Abstraktionsebenen zu zeigen. Methoden zur ¨ Aquivalenzpr ¨ ufung werden unterschieden in implizite, explizite, und strukturelle Verfahren (siehe auch Kapitel 4), die im Folgenden zun ¨ achst an Hand der Logikebene diskutiert werden. Anschließend werden Methoden f ¨ ur die Architekturebene pr ¨ asentiert. Diese eignen sich dann sogar zur ¨ Aquivalenzpr ¨ ufung zwischen Logik- und Architekturebene. 6.1.1 Implizite ¨ Aquivalenzpr ¨ ufung auf der Logikebene Auf der Logikebene (siehe Abb. 6.1) ist das Verhaltensmodell der Spezifikation h ¨ 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 Schal- tung, auch Schaltnetz genannt, bzw. ein Schaltwerk. Im Gegensatz zu Schaltwerken enthalten Schaltnetze keine Speicherelemente. Sowohl Schaltnetze als auch Schalt- werke lassen sich in Form von Booleschen Funktionen repr ¨ asentieren. Somit l ¨ asst sich das grundlegende Problem bei der ¨ Aquivalenzpr ¨ ufung auf Logikebene immer auf die ¨ Aquivalenzpr ¨ ufung von Booleschen Funktionen reduzieren. ¨ Aquivalenzpr ¨ ufung zweier Implementierungen Kombinatorische Schaltungen bezeichnen das strukturelle Modell einer Hardware- 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 es, zu zeigen, dass zwei gegebene Schaltungen f ¨ ur die selben Eingaben die selben Ausgaben 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 formal durchzuf ¨ 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 s ich 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 Booleschen Funktionen beschreiben. Hierbei werden die Eing ¨ ange der Schaltung als Argumente 6.1 ¨ Aquivalenzpr ¨ ufung kombinatorischer und sequentieller Schaltungen 237 der Funktion interpretiert. Die Ausg ¨ ange der Schaltung stellen die Funktionswerte dar, wobei jeder Ausgang einzeln als eigene Boolesche Funktion dargestellt wird. Das Zeitverhalten, etwa die Verz ¨ ogerungszeiten der Gatter oder Leitungen, wird bei dieser Abstraktion vernachl ¨ assigt. Die Konstruktion der durch eine kombinatorische Schaltung implementierten Booleschen Funktionen wird auch als symbolische Simulation bezeichnet. Prinzi- piell existieren hierzu zwei Verfahren, die Vorw ¨ artskonstruktion und die R ¨ uckw ¨ arts- konstruktion. Bei der Vorw ¨ artskonstruktion bestimmt man Gatterausg ¨ ange als Funk- tionen der Eing ¨ ange, beginnend mit den Schaltungseing ¨ angen. Bei der R ¨ uckw ¨ arts- konstruktion stellt man jeden Schaltungsausgang als Funktion des letzten Gatters dar und bestimmt f ¨ ur dieses die Eing ¨ ange aus den direkt davor liegenden Gattern usw. Im Folgenden werden Schaltungen mit nur einem Ausgang betrachtet. Das folgende Beispiel stammt aus [272]. Beispiel 6.1.1. Gegeben ist die kombinatorische Schaltung in Abb. 6.2. Durch Vor- w ¨ artskonstruktion ergibt sich die Funktion f 1 zu: f 1 (x 1 ,x 2 ) := x 1 ∧ x 2 . Das zwei- te Gatter ist ein OR-Gatter. Somit ist f 2 (x 1 ,x 2 ,x 3 ) := f 1 (x 1 ,x 2 ) ∨ x 2 ∨ x 3 =(x 1 ∧ x 2 ) ∨ x 2 ∨ x 3 . Das dritter Gatter ist ein XOR-Gatter und somit f (x 1 ,x 2 ,x 3 ,x 4 ) := f 2 (x 1 ,x 2 ,x 3 ) ⊕ x 4 =((x 1 ∧ x 2 ) ∨ x 2 ∨ x 3 ) ⊕ x 4 . Die R ¨ uckw ¨ artskonstruktion liefert hier das selbe Ergebnis, baut die Boolesche Funktion allerdings von dem Ausgang her auf, d. h. f ( f 2 ,x 4 ) := f 2 ⊕ x 4 . Durch Substitution der Variablen f 2 mit f 2 := f 1 ∨ x 2 ∨ x 3 erh ¨ alt man f ( f 1 ,x 2 ,x 3 ,x 4 )= ( f 1 ∨ x 2 ∨ x 3 ) ⊕ x 4 . Zuletzt wird noch f 1 mit f 1 := x 1 ∧ x 2 substituiert, was zu dem Ergebnis f (x 1 ,x 2 ,x 3 ,x 4 )=((x 1 ∧ x 2 ) ∨ x 2 ∨ x 3 ) ⊕ x 4 f ¨ uhrt. & ≥ 1 = 1 x 1 x 2 x 3 x 4 f 1 f 2 f Abb. 6.2. Kombinatorische Schaltung [272] F ¨ ur eine implizite ¨ Aquivalenzpr ¨ ufung werden die beiden Booleschen Funk- tionen, welche die zwei zu vergleichenden kombinatorischen Schaltungen imple- mentieren, mit Hilfe einer kanonischen Repr ¨ asentation dargestellt. Kanonische Re- 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 zwei resultierenden 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 238 6 Hardware-Verifikation solche kanonischen Repr ¨ asentationen Boolescher Funktionen (siehe Anhang B.2 und B.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 x 5 und x 6 mit Hilfe eines NAND-Gatters verkn ¨ upft, wird in der zweiten Schaltung (Abb. 6.3b)) x 6 negiert. Die Frage, ob beide Schaltungen ¨ aquivalent sind, l ¨ asst sich formal durch die Konstruktion je eines ROBDD mit der selben Variablenordnung und deren Vergleich beantworten. ≥ 1≥ 1 x 1 ≥ 1 ≥ 1≥ 1 x 1 ≥ 1 & & & & & & & & & & z 1 z 2 z 3 z 4 z 5 z 6 z 7 z 8 z 1 z 2 z 3 z 4 z 5 z 6 z 7 z 8 x 4 x 2 x 3 x 7 b) x 5 x 6 x 4 x 5 x 6 x 2 x 3 x 7 y 1 a) y 2 1 & Abb. 6.3. Zwei kombinatorische Schaltungen [275] F ¨ ur die kombinatorische Schaltung in Abb. 6.3a) wird mit Hilfe der Vorw ¨ arts- konstruktion und des ITE-Operators (siehe Anhang B.2) ein ROBDD konstruiert. Die Variablenordnung ist x 1 < x 4 < x 3 < x 5 < x 7 < x 6 < x 2 . 1. Im ersten Schritt werden die ROBDDs f ¨ ur die Funktionen der Variablen z 1 und z 2 bestimmt. Zur Konstruktion des ROBDD der Funktion des Ausgangs z 1 (das OR-Gatter mit den Eing ¨ angen x 2 und x 5 ) wird die Operation ITE(x 2 ,T,x 5 ) ver- wendet. Wegen der Variablenordnung (x 5 steht vor x 2 ) muss diese Funktion zun ¨ achst nach x 5 entwickelt werden. z 1 = ITE(x 2 ,T,x 5 )=ITE(x 5 ,T,x 2 ) 6.1 ¨ Aquivalenzpr ¨ ufung kombinatorischer und sequentieller Schaltungen 239 Zur Konstruktion des ROBDD der Funktion des Ausgangs z 2 (das NAND-Gatter mit den Eing ¨ angen x 5 und x 6 ) wird die Operation ITE(x 5 ,¬x 6 ,T) verwendet. Dies ist bereits die richtige Variablenordnung. z 2 = ITE(x 5 ,¬x 6 ,T) Abbildung 6.4a) und b) zeigen die resultierenden ROBDDs. a) z 1 :b)z 2 : x 5 x 2 x 5 x 6 x 2 x 5 x 4 d) z 4 : e) z 5 :f)z 6 :g)z 7 :h)z 8 : x 2 x 5 x 3 x 2 x 5 x 1 x 3 x 4 x 7 x 2 x 5 x 7 x 2 x 6 x 3 x 4 x 4 x 5 TFTF T F TFTFTFTF c) z 3 : x 2 x 5 x 3 TF Abb. 6.4. ROBDD-Vorw ¨ artskonstruktion f ¨ ur die Schaltung aus Abb. 6.3a) 240 6 Hardware-Verifikation 2. Im zweiten Schritt werden die Funktionen der Variablen z 3 und z 4 bestimmt. Der Ausdruck f ¨ ur z 3 ergibt sich aus der Definition des ITE-Operators f ¨ ur AND- Gatter. z 3 = ITE(x 3 ,z 1 ,F) Da x 3 in der Variablenordnung vor x 5 und x 2 steht, ist keine weitere Umformung n ¨ otig. Das resultierende ROBDD ist in Abb. 6.4c) zu sehen. Die Funktion f ¨ ur z 4 ergibt sich zu ITE(z 1 ,x 4 ,F). Aufgrund der gegebenen Variablenordnung muss zun ¨ achst nach x 4 entwickelt werden. Da z 1 unabh ¨ angig von der Variablen x 4 ist, bleibt dieser Term unver ¨ andert erhalten. z 4 = ITE(z 1 ,x 4 ,F) = ITE(x 4 ,ITE(z 1 ,T,F),ITE(z 1 ,F,F)) = ITE(x 4 ,z 1 ,F) Das resultierende ROBDD f ¨ ur z 4 ist in Abb. 6.4d) dargestellt. 3. Im dritten Schritt erfolgt die Repr ¨ asentation der Variablen z 5 , z 6 und z 7 als ROBDD. Die Konstruktion des ROBDD f ¨ ur die z 5 ergibt: z 5 = ITE(x 1 ,z 3 ,F) Ausgangspunkt ist wiederum die Definition des ITE-Operators f ¨ ur AND-Gatter. Da das ROBDD f ¨ ur die Funktion der Variablen z 3 lediglich die Variablen x 3 , x 5 und x 2 enth ¨ alt (siehe Abb. 6.4c)) und x 1 in der Variablenordnung an erster Stelle steht, ist keine weitere Umformung n ¨ otig. Das ROBDD f ¨ ur z 5 ist in Abb. 6.4e) dargestellt. Die Konstruktion des ROBDD f ¨ ur z 6 ergibt: z 6 = ITE(z 3 ,T,z 4 ) = ITE(x 4 ,ITE(z 3 ,T,z 1 ),ITE(z 3 ,T,F)) = ITE(x 4 ,ITE(x 3 ,ITE(z 1 ,T,z 1 ),ITE(F,T,z 1 )),z 3 ) = ITE(x 4 ,z 1 ,z 3 ) Ausgangspunkt ist die Definition des ITE-Operators f ¨ ur OR-Gatter. Die h ¨ ochste Variable in der Variablenordnung, die in den beiden ROBDDs z 3 und z 4 ent- halten ist, ist x 4 . Deshalb wird zun ¨ achst nach x 4 entwickelt. Der f ¨ ur den Fall x 4 = T verbleibende Term enth ¨ alt x 3 als h ¨ ochste Variable in der Variablenord- nung. Durch Umformungen k ¨ onnen die Ausdr ¨ ucke auf z 1 und z 3 reduziert wer- den. Das ROBDD f ¨ ur z 6 ist in Abb. 6.4f) zu sehen. Die Konstruktion des ROBDD f ¨ ur z 7 ergibt: z 7 = ITE(z 4 ,x 7 ,F) = ITE(x 4 ,ITE(z 1 ,x 7 ,F),ITE(F,x 7 ,F)) = ITE(x 4 ,ITE(x 5 ,ITE(T,x 7 ,F),ITE(x 2 ,x 7 ,F)),F) = ITE(x 4 ,ITE(x 5 ,x 7 ,ITE(x 7 ,x 2 ,F)),F) 6.1 ¨ Aquivalenzpr ¨ ufung kombinatorischer und sequentieller Schaltungen 241 Ausgehend von der Definition des ITE-Operators f ¨ ur AND-Gatter werden die ROBDDs f ¨ ur z 4 und x 7 verkn ¨ upft. Dieser Ausdruck wird f ¨ ur die Variable x 4 und der f ¨ ur x 4 = T entstehende Ausdruck nach x 5 (entsprechend der Variablen- ordnung) entwickelt. Zur endg ¨ ultigen Konstruktion des ROBDD f ¨ ur z 7 wird dann die Kommutativit ¨ at der UND-Verkn ¨ upfung ausgenutzt (ITE(x 2 ,x 7 ,F)= ITE(x 7 ,x 2 ,F)). Das resultierende ROBDD f ¨ ur z 7 ist in Abb. 6.4g) dargestellt. 4. Im vierten Schritt wird das ROBDD f ¨ ur die Variable z 8 konstruiert. z 8 = ITE(z 6 ,¬z 3 ,T) = ITE(x 4 ,ITE(z 1 ,¬z 2 ,T),ITE(z 3 ,¬z 2 ,T)) = ITE(x 4 ,ITE(x 5 ,ITE(T,x 6 ,T),ITE(x 2 ,F,T)), ITE(x 3 ,ITE(z 1 ,¬z 2 ,T),ITE(F,¬z 2 ,T))) = ITE(x 4 ,ITE(x 5 ,x 6 ,¬x 2 ),ITE(x 3 ,ITE(x 5 ,ITE(T,x 6 ,T),ITE(x 2 ,F,T)),T)) = ITE(x 4 ,ITE(x 5 ,x 6 ,¬x 2 ),ITE(x 3 ,ITE(x 5 ,x 6 ,¬x 2 ),T)) Ausgehend von der Definition des ITE-Operators f ¨ ur NAND-Gatter erfolgt die Entwicklung entsprechend der Variablenordnung. Das Ergebnis ist in Abb. 6.4h) zu sehen. 5. Im letzte Schritt wird das ROBDD f ¨ ur den Ausgang y 1 durch eine ODER- Verkn ¨ upfung konstruiert. Der resultierende ROBDD f ¨ ur y 1 ist in Abb. 6.5 darge- stellt. Neben der Vorw ¨ artskonstruktion ist es ebenfalls m ¨ oglich, das ROBDD vom Aus- gang her zu konstruieren. Aufgrund der Konstruktionsregeln sind die Ergebnisse der Vo r w ¨ arts- und der R ¨ uckw ¨ artskonstruktion identisch. Beispiel 6.1.3. F ¨ ur die Schaltung aus Abb. 6.3b) soll das ROBDD durch R ¨ uckw ¨ arts- konstruktion f ¨ ur die Variablenordnung x 1 < x 4 < x 3 < x 5 < x 7 < x 6 < x 2 erstellt wer- den. Es handelt sich hierbei um die selbe Variablenordnung wie in Beispiel 6.1.2. 1. Im ersten Schritt wird das ROBDD f ¨ ur das OR-Gatter am Ausgang y 2 als Funk- tion y 2 = z 5 ∨ x 2 ∨ z 8 ∨ z 7 erstellt. 2. Im zweiten Schritt werden die Variablen z 5 , z 7 und z 8 durch die ROBDDs der entsprechenden 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 z 2 und z 6 durch die ROBDDs f ¨ ur die Booleschen Funktionen z 2 = ¬x 6 und z 6 = z 3 ∨ z 4 = ¬(z 3 ∧ z 4 ) substituiert. Das resultierende ROBDD ist in Abb. 6.6b) dargestellt. 4. Im vierten Schritt werden die Variablen z 3 und z 4 durch die ROBDDs der Funk- tionen z 3 = x 3 ∧z 1 und z 4 = z 1 ∧x 4 substituiert. Das resultierende ROBDD ist in Abb. 6.6c) dargestellt. 5. Im letzten Schritt wird z 1 durch x 2 ∨ x 5 substituiert. Hiermit ist die R ¨ uckw ¨ arts- 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 242 6 Hardware-Verifikation x 5 x 5 x 2 x 6 x 7 x 3 x 4 x 1 x 4 x 3 TF Abb. 6.5. ROBDD f ¨ ur die Ausg ¨ ange y 1 und y 2 f ¨ ur die Schaltungen aus Abb. 6.3 Schaltungen bei gleicher Variablenordnung durch das selbe ROBDD repr ¨ asen- tiert werden, sind beide Schaltungen ¨ aquivalent. An den vorangegangenen beiden Beispielen kann man sehen, dass die ROBDDs in den Zwischenschritten bei der Vorw ¨ arts- und R ¨ uckw ¨ artskonstruktion unterschied- lichgroßseink ¨ onnen. Deshalb kann es n ¨ utzlich sein, beide Verfahren zu kombi- nieren, um Spitzen im Speicherbedarf w ¨ ahrend der Konstruktion von ROBDDs zu verhindern [245]. ¨ Aquivalenzpr ¨ ufung zwischen Spezifikation und Implementierung Neben der ¨ Aquivalenzpr ¨ ufung zweier Implementierungen wird oftmals auch die ¨ Aquivalenz zwischen dem Verhaltensmodell der Spezifikation und dem Strukturmo- dell der Implementierung gepr ¨ uft. W ¨ ahrend Strukturmodelle auf Logikebene durch kombinatorische Schaltungen bzw. Schaltwerke dargestellt werden, ist das Verhal- tensmodell der Spezifikation durch Boolesche Funktionen beschrieben. Da kombi- natorische Schaltungen Boolesche Funktionen implementieren, kann man die Schal- tungen auch direkt in eine Boolesche Funktion ¨ ubersetzen und auf ¨ Aquivalenz mit der Spezifikation pr ¨ ufen. Dies kann wiederum implizit durch kanonische Repr ¨ asen- . Verfahren zur Verifikation des Zeitverhaltens auf Logik- und Architekturebene. C. Haubelt, J. Teich, Digitale Hardware/Software-Systeme, eXamen.press, DOI 10.1007/978-3-642-05356-6 6, c Springer-Verlag