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
331,6 KB
Nội dung
112 3 Verifikation Beschr ¨ ankung der Testf ¨ alle Beschr ¨ ankungen und Zusicherungen sind zwei Seiten der selben Medaille. Beide sind formale Spezifikationen von Eigenschaften. Zusicherungen sind diejenigen Ei- genschaften,dieesw ¨ ahrend der Verifikation zu ¨ uberpr ¨ ufen gilt. Beschr ¨ ankungen hingegen sind Bedingungen,diew ¨ ahrend der Verifikation erf ¨ ullt sein m ¨ ussen. Bei der gesteuerten, zuf ¨ alligen Simulation geben Beschr ¨ ankungen also an, welche Kom- binationen von Eingaben wann erzeugt werden d ¨ urfen. Prinzipiell k ¨ onnen zwei Arten von Beschr ¨ ankungen unterschieden werden: 1. Umgebungsbeschr ¨ ankungen spezifizieren die Protokolle der Schnittstellen des Systems mit seiner Umgebung. 2. Testvorschriften sind diejenigen Beschr ¨ ankungen, die verwendet werden, um die Simulation zu interessanten Testf ¨ allenzuf ¨ uhren. Mit anderen Worten: Man kann sagen, dass gesteuerte zuf ¨ allige Simulation nur dann sinnvoll ist, wenn diese sowohl die Randbedingungen der Umgebung ber ¨ ucksich- tigt als auch in der Lage ist, interessantere Testf ¨ alle unter Ber ¨ ucksichtigung von Testvorschriften zu generieren. Dies ist in Abb. 3.7 dargestellt. Der Eingaberaum wird durch die Umgebungsbeschr ¨ ankungen auf einen akzeptierten Eingaberaum re- duziert. Testfalleingaben aus dem akzeptierten Eingaberaum k ¨ onnen zur Stimulation des SUV verwendet werden. Man erkennt allerdings, dass es kleine Bereiche am Rand gibt, die eventuell interessanter f ¨ ur die Verifikation sein k ¨ onnten. In diesen Be- reichen einen Testfall zuf ¨ allig zu generieren ist relativ unwahrscheinlich, da eine viel gr ¨ oßere Anzahl g ¨ ultiger Testf ¨ alle außerhalb des interessierenden Bereichs existiert. Durch die Verwendung zus ¨ atzlicher Testvorschriften kann man allerdings erreichen, dass Testf ¨ alle genau aus diesen Randbereichen erzeugt werden. Einhalten der Beschr ¨ ankungen Liegen alle Beschr ¨ ankungen, inklusive Umgebungsbeschr ¨ ankungen und Testvor- schriften, f ¨ ur einen neuen Simulationsschritt vor, so muss eine neue Belegung f ¨ ur die Eing ¨ ange des SUV gefunden werden, die alle Beschr ¨ ankungen erf ¨ ullt. Dies wird auch als L ¨ osen eines sog. Beschr ¨ ankungs-Erf ¨ ullbarkeitsproblem (engl. Constraint Satisfaction Problem, CSP) bezeichnet. Ein CSP besteht dabei aus: • einer Menge an Variablen, • einer nichtleeren Wertemenge f ¨ ur jede Variable, • einer Menge an Beschr ¨ ankungen, welche die Wertebelegungen f ¨ ur die Variablen beschr ¨ anken, und • optional einer Kostenfunktion, welche die Qualit ¨ at einer erf ¨ ullenden Wertebele- gung bestimmt. Das L ¨ osen eines CSP besteht in der Suche einer Wertebelegung aller Variablen, so dass alle Beschr ¨ ankungen gleichzeitig erf ¨ ullt sind, oder es wird gezeigt, dass keine solche Belegung existiert. Abh ¨ angig von der Art der Definitionsbereiche und der Art der Beschr ¨ ankungen kann das allgemeine CSP in Klassen unterteilt werden, f ¨ ur die spezielle L ¨ osungsans ¨ atze existieren: 3.3 Gesteuerte zuf ¨ allige Simulation 113 Umgebungsbeschr ¨ ankungen Eingaberaum mit Umgebungsbeschr ¨ ankungen Eingaberaum mit und Testvorschriften Eingaberaum Abb. 3.7. Einfluss von Umgebungsbeschr ¨ ankungen und Testvorschriften [472] • Bin ¨ are Entscheidungsdiagramme (engl. Binary Decision Diagrams, BDDs)sind graphenbasierte Datenstrukturen zur Repr ¨ asentation Boolescher Funktionen. Las- sen sich also die Beschr ¨ ankungen als Boolesche Funktionen darstellen, kann das CSP durch Konstruktion eines BDDs gel ¨ ost werden, das alle erf ¨ ullenden Varia- blenbelegungen beschreibt. • SAT-Solver und automatische Testfallgenerierung (siehe auch Abschnitt 6.1.2) sind Suchverfahren f ¨ ur Belegungen aussagenlogischer Formeln. Der Unterschied zwischen beiden Verfahren besteht darin, dass SAT-Solver auf einer Menge von Klauseln operieren, w ¨ ahrend die automatische Testfallgenerierung auf Schal- tungsbeschreibungen arbeitet. Allerdings lassen sich die Schaltungsbeschrei- bungen in eine Klauselmenge und umgekehrt transformieren. Im Gegensatz zu BDDs wird aber bei diesen Suchverfahren immer nur eine erf ¨ ullende Variablen- belegung generiert. • Lineare Programmierung l ¨ ost ein lineares Ungleichungssystem f ¨ ur reellwertige Variablen mit linearer Zielfunktion. Eine Spezialform ist die sog. ganzzahlige lineare Programmierung (engl. Integer Linear Programming, ILP), bei der die Variablen ganzzahlig sein m ¨ ussen. Dies kann weiter auf die Definitionsmenge {0,1} eingeschr ¨ ankt werden, hierdurch entstehen sog. 0-1-ILPs. • Die engl. Constraint Logic Programming (CLP) verbindet CSP und Logikpro- grammierung. Somit kann CLP sowohl lineare als auch nichtlinear Beschr ¨ ankun- gen sowie aussagenlogische als auch temporallogische Formeln l ¨ osen. Das ei- gentliche L ¨ osen erfolgt dabei mittels SAT-Solvern, (I)LP-Solvern oder Intervall- arithmetik. Der erste Ansatz mittels bin ¨ arer Entscheidungsdiagramme wird als Offline-An- satz zum L ¨ osen von CSPs bezeichnet, da bereits nach Konstruktion des Entschei- 114 3 Verifikation dungsdiagramms alle L ¨ osungen bekannt sind, und somit die Testf ¨ alle generiert wer- den k ¨ onnen. Die restlichen drei Verfahren werden im Gegensatz dazu als Online- Ans ¨ atze bezeichnet, da diese w ¨ ahrend der Simulation f ¨ ur jede neue Testfalleingabe immer wieder nach neuen L ¨ osungen gefragt werden. In beiden F ¨ allen stellt die Unerf ¨ ullbarkeit der Beschr ¨ ankungen ein schwieriges Problem dar. Tritt dieses Problem auf, kann die Verifikation nicht fortgesetzt wer- den. Es muss zun ¨ achst eine Diagnose der Beschr ¨ ankungen durchgef ¨ uhrt werden, um festzustellen, ob ein Fehler bei der Erstellung der Umgebungsbeschr ¨ ankungen oder bei der Erstellung der Testvorschriften vorliegt. Die Randomisierung Durch das L ¨ osen des CSP ist sichergestellt, dass lediglich g ¨ ultige Testfalleingaben generiert werden. Daneben stellt sich allerdings die Frage, wie auch gute Testfallein- gaben erzeugt werden k ¨ onnen? Eine Minimalanforderung an gute Testf ¨ alle sollte bei einer zuf ¨ alligen Simula- tion sein, dass jeder g ¨ ultige Testfall mit der selben Wahrscheinlichkeit ausgew ¨ ahlt werden kann. Diese Annahme gilt allerdings nur solange, wie jeder Testfall auch den gleichen Beitrag zu dem gew ¨ ahlten Vollst ¨ andigkeitskriterium beitr ¨ agt. Dies ist offensichtlich nicht allgemeing ¨ ultig. Zum einen hat das zu pr ¨ ufende System ein spe- zielles Ein-/Ausgabeverhalten, zum anderen betonen verschiedene ¨ Uberdeckungs- maße auch unterschiedliche Testf ¨ alle. Vor diesem Hintergrund ist es besser, von ei- ner gewichteten Verteilung f ¨ ur die H ¨ aufigkeit von Testf ¨ allen auszugehen und spe- ziell f ¨ ur diese Verteilung Fairness bei der Auswahl der Testf ¨ alle zu schaffen. Als Beispiel sei hier lediglich die Verifikation von Einheiten f ¨ ur arithmetische Berech- nungen genannt. Bei diesen ist es oft vorteilhaft, minimale und maximale Werte bei der Variablenbelegung st ¨ arker zu gewichten, da diese erfahrungsgem ¨ aß eher Fehler provozieren. Neben der Fairness bei der Erzeugung von Testf ¨ allen muss allerdings ber ¨ uck- sichtigt werden, dass die Simulationsl ¨ aufe nachvollziehbar und reproduzierbar sein m ¨ ussen. Ohne Kenntnis der fehlererzeugenden Testfalleingabe k ¨ onnte sonst die Fehlerlokalisierung unangemessen aufwendig werden. Durch die Verwendung von Pseudo-Randomisierungsalgorithmen wird nahezu eine Gleichverteilung bei der Testfallauswahl erreicht und die Reproduzierbarkeit durch Speicherung des Anfangs- zustands des Zufallszahlengenerators garantiert. Das L ¨ osen der Beschr ¨ ankungen und die zuf ¨ allige Generierung von Testf ¨ allen sind eng miteinander gekoppelt. Um hier den Aufwand bei der Erstellung von Test- benches zu minimieren, bietet es sich an, auf existierende L ¨ osungen zur ¨ uckzugreifen. Die wichtigsten Vertreter in diesem Bereich sind SystemVerilogs Random Constraint language (SVRC), SystemC Verification Library (SCV) und die Testbenchsprache e. 4 ¨ Aquivalenzpr ¨ ufung Aufgabe der ¨ Aquivalenzpr ¨ ufung ist es, zu zeigen, dass das Verhaltensmodell einer Spezifikation und das Strukturmodell einer Implementierung die gleiche Funktion repr ¨ asentieren (siehe Abb. 4.1). Hierbei kann eine Pr ¨ ufung zwischen zwei Beschrei- bungen auf der selben oder unterschiedlichen Abstraktionsebenen erfolgen. Obwohl auf vielen Abstraktionsebenen die Synthese mittlerweile automatisiert abl ¨ auft [426], ist eine ¨ Aquivalenzpr ¨ ufung h ¨ aufig notwendig, da die verwendeten Synthesewerk- zeuge nicht zwangsl ¨ aufig fehlerfrei funktionieren. Zum anderen wird ¨ Aquivalenz- pr ¨ ufung eingesetzt, um zu zeigen, dass das Verhalten zweier Implementierungen identisch ist. In diesem Fall dient eine der Implementierungen als Spezifikation (Re- ferenz). Verhalten ¨ Aquivalenz- pr ¨ ufung Abstraktion & Struktur Abb. 4.1. ¨ Aquivalenzpr ¨ ufung Da bei der ¨ Aquivalenzpr ¨ ufung jedes m ¨ ogliche Verhalten sowohl der Spezifikati- on als auch der Implementierung zu ¨ uberpr ¨ ufen ist, sind Verfahren zur ¨ Aquivalenz- pr ¨ ufung sehr rechenintensiv. Deshalb wird die ¨ Aquivalenzpr ¨ ufung typischerweise C. Haubelt, J. Teich, Digitale Hardware/Software-Systeme, eXamen.press, DOI 10.1007/978-3-642-05356-6 4, c Springer-Verlag Berlin Heidelberg 2010 116 4 ¨ Aquivalenzpr ¨ ufung lediglich auf kleine und mittelgroße Systeme angewendet. Sie ist daher vorwiegend auf tieferen Abstraktionsebenen zu finden. Abbildung 4.2 visualisiert die ¨ Aquivalenzpr ¨ ufung von zwei Implementierungen. In diesem Fall wurde jede Implementierung von unterschiedlichen Entwicklern ba- sierend auf der selben Spezifikation entworfen. Ein solches Vorgehen findet man beispielsweise in der Luft- und Raumfahrttechnik, um eine redundante Auslegung von Systemen zu erreichen. Ein Problem, welches hierbei adressiert wird, ist, dass unterschiedliche Entwickler die selbe Spezifikation verschieden umsetzen. So l ¨ asst sich in einem Vergleich der Implementierungen ein Fehler detektieren. Ist also eine Spezifikation unvollst ¨ andig oder mehrdeutig, ist die Chance gr ¨ oßer, dass mindestens ein Entwickler Teile des System richtig implementiert. Bild der Spezifikation Bild der Spezifikation Spezifikation ? ≡ Implementierung 1 Implementierung 2 Abb. 4.2. ¨ Aquivalenzpr ¨ ufung [305] Zur Klassifikation von ¨ Aquivalenzpr ¨ ufungsverfahren k ¨ onnen sowohl die ange- wandten Methoden als auch die betrachteten Systeme dienen. Die Methoden werden als implizit, explizit oder strukturell bezeichnet. Implizite ¨ Aquivalenzpr ¨ ufung setzt stets ein formales Modell voraus, w ¨ ahrend explizite Verfahren sowohl formal also auch simulativ sein k ¨ onnen. Strukturelle Verfahren verwenden implizite oder expli- zite Methoden. Bei Systemen unterscheidet man zwischen Systemen ohne Speicher 4.1 Implizite ¨ Aquivalenzpr ¨ ufung 117 und Systemen mit Speicher. Verfahren zur ¨ Aquivalenzpr ¨ ufung, die auf Systeme oh- ne Speicher angewendet werden, nennt man kombinatorisch. ¨ Aquivalenzpr ¨ ufungs- verfahren f ¨ ur Systeme mit Speicher werden als sequentiell bezeichnet. Auf wichtige Methoden zur ¨ Aquivalenzpr ¨ ufung, klassifiziert nach impliziten, expliziten, sequenti- ellen und strukturellen Methoden, wird im Folgenden n ¨ aher eingegangen. 4.1 Implizite ¨ Aquivalenzpr ¨ ufung Implizite Verfahren zur ¨ Aquivalenzpr ¨ ufung basieren auf der Idee, dass (eingeschr ¨ ank- te) Funktionen eindeutig repr ¨ asentiert werden k ¨ onnen. Besitzen zwei Funktionen in einer solchen Repr ¨ asentation den selben Repr ¨ asentanten, so sind sie ¨ aquivalent. Die- ses Vorgehen wird implizite ¨ Aquivalenzpr ¨ ufung genannt, da die eigentliche Verifika- tionsaufgabe, die ¨ Aquivalenz zu zeigen, nicht explizit ausgedr ¨ uckt wird. Im Folgen- den wird die implizite, kombinatorische ¨ Aquivalenzpr ¨ ufung anhand von Polynom- funktionen eingef ¨ uhrt. In den Abschnitten 6.1.1 und 6.2 werden spezielle Methoden zur impliziten, kombinatorischen ¨ Aquivalenzpr ¨ ufung von Hardware diskutiert. 4.1.1 Kanonische Funktionsrepr ¨ asentationen Die implizite, kombinatorische ¨ Aquivalenzpr ¨ ufung auf Basis eindeutiger Funktions- repr ¨ asentationen ist eine formale Verifikationsmethode. Sie ist vollst ¨ andig und somit f ¨ ur das Verifikationsziel eines Beweises geeignet. Um implizite Verfahren zur ¨ Aqui- valenzpr ¨ ufung entwickeln zu k ¨ onnen, muss zun ¨ achst der Begriff der Repr ¨ asentati- on von Funktionen genauer definiert werden. Formal kann dies wie folgt formuliert werden (siehe auch Anhang A.2): Sei (R, φ ) eine Repr ¨ asentation der betrachteten Funktionen f ∈F mit φ : R→F. Dann heißt (R, φ ) vollst ¨ andig, falls φ surjek- tivist,d.h.f ¨ ur jedes Element f ∈F existiert ein r ∈R, so dass φ (r)= f . (R, φ ) heißt eindeutig, falls φ injektiv ist, d. h. jede Funktion f ∈F ist h ¨ ochstens einmal Funktionswert. Falls φ bijektiv ist, also surjektiv und injektiv ist, dann ist (R, φ ) eine kanonische Repr ¨ asentation der Funktionen f ∈F. Sei φ (r)= f , dann sagt man, dass r ein Repr ¨ asentant von f ist und φ ist die Interpretation. Man beachte, dass f ¨ ur ka- nonische Repr ¨ asentationen von Funktionen, die Repr ¨ asentanten einer Funktion stets eindeutig sind. Beispiel 4.1.1. Viele Berechnungen, die in Systemen durchgef ¨ uhrt werden, lassen sich als Polynome beschreiben. Als Beispiel sei hier die diskrete Faltung conv (x 1 ,x 2 ,N) von zwei Signalen x 1 und x 2 in einem endlichen Zeitfenster von N Schritten genannt, die sich wie folgt berechnen l ¨ asst: conv (x 1 ,x 2 ,N) (i) := N−1 ∑ k:=0 x 1 (k) · x 2 (i − k) F ¨ ur N = 4 ist das Blockschaltbild in Abb. 4.3 dargestellt. Die aktuellen Signale x 1 (3) und x 2 (3) liegen zusammen mit den drei vorherigen Signalen x i (2),x i (1) und x i (0) als Eing ¨ ange des Systems an. Die vier neusten Ergebnisse y(4), ,y(0) sind Ausg ¨ ange des Systems. 118 4 ¨ Aquivalenzpr ¨ ufung y(0) y(1) y(2) y(3)x 2 (0) x 2 (1) x 2 (2) x 2 (3) x 1 (0) x 1 (1) x 1 (2) x 1 (3) conv (x 1 ,x 2 ,4) Abb. 4.3. Diskrete Faltung [92] Allgemein ist ein Polynom ein Ausdruck, der anhand einer oder mehrerer Va- riablen und Konstanten nur unter Verwendung von Addition (+), Subtraktion (−), Multiplikation (·) und konstanten positiven ganzzahligen Exponenten gebildet wird. Im Fall von n Variablen kann das n-variate Polynom p(x 1 , ,x n ) mit x 1 , ,x n ∈ R wie folgt dargestellt werden: p(x 1 , ,x n )= m ∑ i:=0 p i (x 1 , ,x n−1 ) · x i n (4.1) Die individuellen Polynome p i (x 1 , ,x n−1 ) k ¨ onnen dabei als Koeffizienten der Va- riable x n angesehen werden. Diese Repr ¨ asentation wird als engl. sparse recursive representation bezeichnet und stellt nur Polynome ungleich null dar. Sie ist f ¨ ur eine gegebene Variablenordnung kanonisch. Um eine Funktion f (x 1 , ,x n ) in die Form von Gleichung (4.1) zu bringen, kann die Taylor-Reihen-Entwicklung verwendet werden. F ¨ ur eine Funktion f (x) mit einer Variablen x ist die Taylor-Reihen-Entwicklung um den Punkt x = a wie folgt definiert: f (x) := ∞ ∑ k:=0 1 k! (x − a) k · f (k) (a) (4.2) = f (0) (a)+x · f (1) (a)+ 1 2 x 2 · f (2) (a)+ Hierzu muss die Funktion f stetig sein und alle Ableitungen nach den Variablen x 1 , ,x n in x i = a existieren. Hierbei beschreibt f (k) (a) die k-te Ableitung der Funk- tion f ausgewertet an der Position x = a.ImFallvonn Variablen sieht die Taylor- Reihen-Entwicklung wie folgt aus: f (x 1 , ,x n ) := f (x 1 , ,x n−1 ,a n )+ ∂ f (x 1 , ,x n ) ∂ x n x n :=a n · (x n − a n ) + 1 2 ∂ 2 f (x 1 , ,x n ) ∂ x 2 n x n :=a n · (x n − a n ) 2 + 4.1 Implizite ¨ Aquivalenzpr ¨ ufung 119 Durch sukzessive Taylor-Reihen-Entwicklung nach allen Variablen in einer gegebe- nen Reihenfolge, der sog. Variablenordnung,erh ¨ alt man somit eine Polynomfunktion in der Form von Gleichung (4.1). Beispiel 4.1.2. Das folgende Beispiel stammt aus [92]. Gegeben ist die folgende Po- lynomfunktion: f (x 1 ,x 2 ,x 3 ) :=(x 1 + x 2 )(x 1 + 2 · x 3 )=x 2 1 + x 1 · (x 2 + 2 · x 3 )+2 · x 2 · x 3 F ¨ ur die Variablenordnung x 1 < x 2 < x 3 ergibt die Taylor-Reihen-Entwicklung f ¨ ur a 1 = a 2 = a 3 := 0: f (x 1 ,x 2 ,x 3 )=x 2 1 + x 1 · (x 2 + 2 · x 3 )+2 · x 2 · x 3 = f (0, x 2 ,x 3 )+x 1 · ∂ f (x 1 ,x 2 ,x 3 ) ∂ x 1 x 1 :=0 + = 2 · x 2 · x 3 + x 1 · (x 2 + 2 · x 3 )+x 2 1 Der konstante Term ergibt sich durch Einsetzen von null f ¨ ur x 1 und resultiert in 2 · x 2 · x 3 .F ¨ ur die erste Ableitung nach x 1 ergibt sich 2 · x 1 + x 2 + 2 · x 3 . Durch die Substitution x 1 := 0 resultiert der Koeffizient x 2 + 2 · x 3 .F ¨ ur die zweite Ableitung nach x 1 ergibt sich 1 2 · 2 und somit der Koeffizient 1. Im n ¨ achsten Schritt erfolgt die Taylor-Reihen-Entwicklung dieser Koeffizienten nach x 2 f ¨ ur a 2 := 0. Da der Koeffizient f ¨ ur die zweite Ableitung nach x 1 bereits eine Konstante ist, muss dieser nicht weiter ber ¨ ucksichtigt werden. Zun ¨ achst wird f (0,x 2 ,x 3 ) betrachtet: f (0,x 2 ,x 3 )=2 · x 2 · x 3 = f (0, 0, x 3 )+x 2 · ∂ f (0,x 2 ,x 3 ) ∂ x 2 x 2 :=0 + = 0 + x 2 · 2 · x 3 Der konstante Koeffizient ergibt sich durch x 2 := 0, wobei dieser zu null evaluiert. Der Koeffizient f ¨ ur die erste Ableitung liefert 2 · x 3 . Alle weiteren Ableitungen sind null. Als n ¨ achstes wird der Koeffizient f ¨ ur die erste Ableitung nach x 1 betrachtet, also x 2 + 2 · x 3 : ∂ f (x 1 ,x 2 ,x 3 ) ∂ x 1 x 1 :=0 = x 2 + 2 · x 3 = 2 · x 3 + 1 · x 2 Aus beiden Rechnungen bleibt lediglich ein nichtkonstanter Term ¨ ubrig (2 · x 3 ). Da dieser bereits als Polynom vorliegt, er ¨ ubrigt sich die Taylor-Reihen-Entwicklung. Das resultierende Polynom f ¨ ur die Funktion f lautet somit f (x 1 ,x 2 ,x 3 )=x 2 1 + x 1 · x 2 + 2 · x 1 · x 3 + 2 · x 2 · x 3 . 120 4 ¨ Aquivalenzpr ¨ ufung 4.1.2 Taylor-Expansions-Diagramme Endliche Taylor-Reihen lassen sich mit Hilfe sog. Taylor-Expansions-Diagramme (engl. Taylor Expansion Diagram, TED) darstellen [92]. Hierbei wird davon ausge- gangen, dass die Taylor-Reihen-Entwicklung um den Nullpunkt a 1 = ··· = a n := 0 erfolgt. Ein TED ist wie folgt definiert: Definition 4.1.1 (TED). Ein TED ist ein gerichteter azyklischer Graph G =(V, E) mit Knotenmenge V und Kantenmenge E sowie den folgenden Eigenschaften: • G ist ein Baum, • V ist eine Partition von Terminalknoten V T und Nichtterminalknoten V N , • eine Funktion index : V N →{1, ,n} weist jedem Nichtterminalknoten v ∈ V N eine Variable x index(v) ∈{x 1 , ,x n } zu, • f ¨ ur jeden Nichtterminalknoten v ∈ V N weist eine Funktion child : V N × N → V dem Knoten v seine Nachfolger zu • eine Funktion weight : V N × N → R weist jeder ausgehenden Kante eines Nicht- terminalknotens einen Wert zu. • eine Funktion value : V T → R weist jedem Terminalknoten einen Wert zu. Die Interpretation eines TED erfolgt rekursiv. Die Polynomfunktion f v = φ (v), die durch den Knoten v repr ¨ asentiert wird, ergibt sich zu: φ (v) := value(v) falls v ∈ V T ∑ k i:=1 weight(v,i) · φ (child(v, i)) · x i−1 index(v) falls v ∈ V N Beispiel 4.1.3. Als Fortsetzung zu Beispiel 4.1.2 soll das TED f ¨ ur die Polynomfunk- tion f (x 1 ,x 2 ,x 3 )=(x 1 + x 2 )(x 1 + 2 · x 3 ) mit der Variablenordnung x 1 < x 2 < x 3 entwickelt werden. Die Konstruktion ist in Abb. 4.4 zu sehen. Die Taylor-Reihen- Entwicklung nach x 1 ist in Abb. 4.4a) dargestellt. Der Quellknoten ist entsprechend mit x 1 beschriftet. Kanten, die als durchgezogene Linien dargestellt sind, zeigen auf den konstanten Koeffizienten. Gestrichelte Kanten zeigen auf den Koeffizienten f ¨ ur die erste Ableitung. Gepunktete Kanten auf Koeffizienten f ¨ ur die zweite Ableitung. Da die zweite Ableitung nach x 1 die Konstante 1 ergibt, zeigt die gepunktete Kan- te auf den entsprechenden Terminalknoten. Alle weiteren Koeffizienten in diesem Beispiel sind null und werden nicht im TED dargestellt. Abbildung 4.4b) zeigt den zweiten Schritt bei der Taylor-Reihen-Entwicklung, die Entwicklung nach x 2 . In diesem Fall sind zwei Koeffizienten unabh ¨ angig von allen weiteren Variablen, also Konstanten, und somit zeigen die zugeh ¨ origen Kanten auf Terminalknoten. Weiterhin kann man sehen, dass zwei Koeffizienten den selben Ausdruck ergeben (2·x 3 ). Somit muss nur dieser Ausdruck weiter entwickelt werden. Das Ergebnis der Taylor-Reihen-Entwicklung ist in Abb. 4.4c) zu sehen. 4.1.3 Reduktion und Normalisierung von TEDs H ¨ aufig ist es m ¨ oglich, die Gr ¨ oße eines Taylor-Expansions-Diagramm zu reduzie- ren. Die Gr ¨ oße eines TED G ist die Anzahl seiner Knoten size(G) := |V |. Analog 4.1 Implizite ¨ Aquivalenzpr ¨ ufung 121 x 1 x 2 x 2 x 3 021 c) x 1 1 x 1 x 2 x 2 01 a) b) 2 · x 3 2 · x 2 · x 3 x 2 + 2 · x 3 Abb. 4.4. Konstruktion eines TED f ¨ ur die Polynomfunktion (x 1 + x 2 )(x 1 + 2 · x 3 ) [92] zu OBDDs (siehe Anhang B.2) k ¨ onnen TEDs reduziert werden, indem redundante Knoten eliminiert und isomorphe Teilgraphen verschmolzen werden. F ¨ ur redundan- te Knoten gilt, dass diese aus dem Graphen entfernt werden k ¨ onnen und alle ihre eingehenden Kanten auf ihren Nachfolger umgelenkt werden k ¨ onnen. Die repr ¨ asen- tierte Polynomfunktion bleibt dabei unver ¨ andert. Hieraus ergibt sich f ¨ ur TEDs die folgende Eliminationsregel: Definition 4.1.2 (Redundanter TED-Knoten). Ein TED-Knoten v heißt redundant, wenn außer dem ersten alle seine Nachfolger der Terminalknoten mit dem Wert 0 sind, d. h. ∀k > 1:value(child(v, k)) = 0 und value(child(v, 1)) = 0. Redundante TED-Knoten haben also lediglich einen konstanten Koeffizienten. Da dieser nicht mit der Variablen des Knotens gewichtet wird, ist der Knoten redundant und kann entfernt werden. F ¨ ur den Fall, dass der erste Nachfolger child(v, 1) eben- falls auf den Terminalknoten mit dem Wert null zeigt, ist die repr ¨ asentierte Funktion die Konstante 0. Auch in diesem Fall darf v entfernt werden und alle eingehenden Kanten auf den Terminalknoten mit dem Wert 0 umgelenkt werden. Aus der obi- gen Argumentation folgt ebenfalls, dass der Terminalknoten mit dem Wert 0 nicht ben ¨ otigt wird und alle eingehenden Kanten gel ¨ oscht werden k ¨ onnen, ohne die re- pr ¨ asentierte Funktion zu ver ¨ andern. Der Terminalknoten mit dem Wert 0 wird dann ebenfalls gel ¨ oscht. Neben redundanten Knoten, kann ein TED auch redundante Teilgraphen enthal- ten. Existieren zwei Knoten v und v im TED mit identischer Interpretation, d. h. φ (v)= φ (v ), so ist der Teilgraph mit Quellknoten v redundant. Solche Teilgraphen sind isomorph (siehe Anhang B.2). Umgangssprachlich bedeutet dies, dass beide Teilgraphen mit Quellknoten v und v die selbe Struktur und die selben Attribute besitzen. Es existiert also eine Eins-zu-Eins-Abbildung zwischen den Knoten- und Kantenmengen der Teilgraphen, so dass die Adjazenz von Knoten, die Kantenbe- schriftung und die Werte der Terminalknoten erhalten bleiben. Existieren isomorphe Teilgraphen in einem TED, k ¨ onnen alle bis auf einen dieser Teilgraphen gel ¨ oscht werden und alle eingehenden Kanten in den Quellknoten werden auf den einen ver- [...]... maxin ; maxout := −minin p4 = (v1 , v3 , v5 , v6 , v7 ): d(p4 ) : (minin ≥ 0) ∧ (maxin ≥ 0) ∧ (maxin < minin ) c(p4 ) : minout := maxin ; maxout := minin p5 = (v1 , v2 , v3 , v4 , v5 , v7 ): d (p5 ) : (minin < 0) ∧ (maxin < 0) ∧ (−minin ≤ −maxin ) c (p5 ) : minout := −minin ; maxout := −maxin p6 = (v1 , v3 , v4 , v5 , v7 ): d(p6 ) : (minin ≥ 0) ∧ (maxin < 0) ∧ (minin ≤ −maxin ) c(p6 ) : minout := minin... Aquivalenzklassen d(s1 ) und d(s3 ) nicht u gemacht werden So gilt z B., dass d (p5 ) zum Teil in d(s1 ) und zum Teil in d(s3 ) a enthalten ist, aber weder d(s1 ) noch d(s3 ) vollst¨ ndig in d (p5 ) enthalten ist Durch die paarweise Schnittmengenbildung k¨ nnen die fehleroffenbarenden Unterbereiche o identifiziert werden: d1 = d(s1 ) ∩ d (p5 ) = (minin < 0) ∧ (maxin < 0) ∧ (−minin < −maxin ) d2 = d(s1 ) ∩ d(p6... Formale Methoden zur expliziten Aquivalenzpr¨ fung u kombinatorischer Hardware sind in Abschnitt 6.1.2 zu finden ¨ 4.3 Sequentielle Aquivalenzpr¨ fung u 141 ¨ ¨ 4.3 Sequentielle Aquivalenzprufung ¨ Digitale Hardware/Software-Systeme arbeiten typischerweise uber sehr lange Zeitr¨ ume ohne Neustart Dabei verarbeiten sie nicht nur ein einzelnes Eingabesymbol a zu einem Ausgabesymbol, sondern Sequenzen von... = (minin ≥ 0) ∧ (maxin < 0) ∧ (−maxin < minin ) d7 = d(s2 ) ∩ d(p3 ) = (minin < 0) ∧ (maxin ≥ 0) ∧ (maxin < −minin ) d8 = d(s2 ) ∩ d(p4 ) = (minin ≥ 0) ∧ (maxin ≥ 0) ∧ (maxin < minin ) d9 = d(s3 ) ∩ d (p5 ) = (minin < 0) ∧ (maxin < 0) ∧ (−minin = −maxin ) d10 = d(s3 ) ∩ d(p6 ) = (minin ≥ 0) ∧ (maxin < 0) ∧ (minin = −maxin ) d11 = d(s3 ) ∩ d(p7 ) = (minin < 0) ∧ (maxin ≥ 0) ∧ (−minin = maxin ) d12 = d(s3... d(pi ) entsprechend mit den u u On-Off-On-Testf¨ llen durch, kann es zu einem nicht erwarteten Ergebnis kommen a 138 ¨ 4 Aquivalenzpr¨ fung u ε minin d(p2 ) d(p4 ) x1 x2 d(p6 ) d(p8 ) 1 x3 0 maxin 1 d (p5 ) d(p7 ) d(p1 ) d(p3 ) offene Grenze f¨ r d(p3 ) u geschlossene Grenze f¨ r d(p7 ) u Abb 4.13 Pfadbereiche des Programms minMaxBetrag aus Beispiel 4.2.2 [305] Ob dieses unerwartete Ergebnis auf einen . rechenintensiv. Deshalb wird die ¨ Aquivalenzpr ¨ ufung typischerweise C. Haubelt, J. Teich, Digitale Hardware/Software-Systeme, eXamen.press, DOI 10.1007/978-3-642-05356-6 4, c Springer-Verlag