Verifikation reaktiver Systeme - Universität Kaiserslautern
Verifikation reaktiver Systeme - Universität Kaiserslautern
Verifikation reaktiver Systeme - Universität Kaiserslautern
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]