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

Digitale Hardware/ Software-Systeme- P13 pot

20 115 0

Đ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 272,04 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

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