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

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

152<br />

direkt gespeichert werden, also keine Substitution stattfindet.<br />

Rekursives Lernen hat die Aufgabe, präzise Implikationen über vorher bestimmte<br />

Signale zu machen. Diese Implikationen sind sowohl:<br />

einfache Implikationen: Liegt zum Beispiel an einem Und-Gatter eine 0 an,<br />

weiss man, dass am Ausgang ebenfalls der Wert 0 anliegt, ohne die weiteren<br />

Eingangssignale kennen zu müssen. Liegt an einem Oder-Gatter eine 1 an,<br />

weiss man auch, dass am Ausgang ebenfalls eine 1 anliegen wird.<br />

direkte Implikation: Eine direkte Implikation ergibt sich aus dem mehrfachen<br />

Anwenden der einfachen Implikationen, nur dass mehrere Gatter betrachtet<br />

werden.<br />

indirekte Implikationen: Sind solche, welche nicht aus direkten Implikationen<br />

ermittelt werden können. Sie sind also wesentlich schwerer zu ermitteln.<br />

Dies sind die hier betrachteten präzisen Implikationen.<br />

Mit dem Finden von Implikationen können also alle Wertebelegungen herausgefunden<br />

werden, die notwendig sind, um zum Beispiel bei der Miter-Anordnung<br />

am Ausgang E = 1 zu erzeugen. Da damit auch das SAT Problem gelöst würde,<br />

ist dieses Verfahren natürlich NP-vollständig (siehe Abschnitt 3.3).<br />

Der Algorithmus ermittelt zuerst alle direkten Implikationen, einfach durch das<br />

Auswerten der Wahrheitstabellen für die einzelnen Gatter. Die schwereren indirekten<br />

Implikationen werden dann durch rekursives Lernen ermittelt. Dabei<br />

werden in der Schaltung temporär Gatterausgänge mit Werten belegt, und es<br />

werden die logischen Konsequenzen, die sich daraus für die Gattereingänge ergeben,<br />

gesucht.<br />

Dies geschieht rekursiv von den Eingängen bis hin zu den Ausgängen und kann<br />

somit alle notwendigen Belegungen herausfinden. Die Ergebnisse werden in den<br />

einzelnen Knoten gespeichert, und werden nachher für den Äquivalenztest für<br />

die gesamte Schaltung verwendet, wobei ein SAT-Algorithmus verwendet wird.<br />

4.1.3 Weitere Ideen In den letzten Jahren haben weitere Arbeiten versucht<br />

die Verfahren noch effizienter zu gestalten. Unter anderem hat man wieder mit<br />

BDDs gearbeitet, aber diesmal nicht mehr für die gesamte Schaltung, sondern<br />

nur für Teile dieser. Zum Beispiel 8 erstellt man für interne Knoten BDDs und<br />

sucht dann nach isomorphen BDDs, um die internen Äquivalenzen zu finden.<br />

Die so gefundenen isomorphen BDDs werden dann zusammengefügt, und die<br />

Schaltung verkleinert sich.<br />

Beginnend werden erst für die Eingänge BDDs gebildet und dann für die innerenKnotenbishinzudenAusgängen.<br />

Bei den ersten BDDs, welche noch rein<br />

primäre Schaltungseingänge enthalten, ist dies problemlos. Kompliziert wird es<br />

8 bei [6] und [7]

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!