25.11.2014 Aufrufe

Verifikation reaktiver Systeme - Universität Kaiserslautern

Verifikation reaktiver Systeme - Universität Kaiserslautern

Verifikation reaktiver Systeme - Universität Kaiserslautern

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

145<br />

3 Ansätze<br />

3.1 Erster Ansatz<br />

Ein erster Ansatz besteht in der Simulation der Schaltungen. Man versucht alle<br />

Eingangskombinationen der beiden Schaltungen durchzutesten und beobachtet<br />

dabei die Ausgangsvektoren. Sind sie bei jeder Eingangskombination gleich, sind<br />

die Schaltungen äquivalent. Wenn man alle Kombinationen durchspielt, handelt<br />

es sich um eine sogenannte erschöpfende Simulation, welche einen formalen Beweis<br />

darstellt.<br />

Es stellte sich sehr schnell heraus, dass diese Art des Vergleichs sehr ineffizient<br />

und unpraktisch ist. Die Anzahl der Kombinationen von Eingangsbelegungen<br />

(auch Testvektoren genannt) steigt exponentiell mit der Anzahl der Eingänge<br />

an. Verwendet man ein kleineres Set, ist es kaum möglich herauszufinden, ob<br />

man damit wirklich jeden Zustand der Schaltung einmal erreicht hat, und somit<br />

ist dies kein formaler Äquivalenzbeweis mehr.<br />

Bei sequentiellen Schaltungen muss man zusätzlich noch überlegen, wieviele time<br />

frames manbetrachtenmöchte, bis abgebrochen wird. Somit scheidet diese<br />

Art des Äquivalenztests in der Praxis für große Schaltungen aus.<br />

3.2 OBDD Ansatz<br />

Die nächste Idee war die Verwendung von Ordered Binary Decision Diagrams,<br />

kurzOBDDs.DiesehabennachderEinführung von Bryant 1986 [3] eine sehr<br />

große Beliebtheit erfahren, und die Algorithmen zur Berechnung von OBDDs<br />

sind inzwischen sehr schnell und effizient.<br />

Definition OBDD:<br />

Gegeben eine Variablenmenge V = {x 1 , ··· ,x n } mit einer Ordnung ≤.<br />

Ein OBDD über den Variablen V bezüglich der Ordnung < ist dann ein Tupel<br />

mit folgenden Eigenschaften:<br />

G =(V ∪{L 0 ,L 1 },v 0 ,label,high,low)<br />

– ∀v ∈ V [label(v) ∈ V ]<br />

– label(L 0 ) = 0 und label(L 1 )=1<br />

– high: V → V ∪{L 0 ,L 1 } mit label(v)

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!