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

Digitale Hardware/ Software-Systeme- P5 ppsx

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

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