Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

SAT-Engines-Seminar WS 2000/01 Asmir Hadzidedic

Ähnliche Präsentationen


Präsentation zum Thema: "SAT-Engines-Seminar WS 2000/01 Asmir Hadzidedic"—  Präsentation transkript:

1 SAT-Engines-Seminar WS 2000/01 Asmir Hadzidedic
Integration von SAT Checker und BDDs für den kombinatorischen Äquivalenzvergleich SAT-Engines-Seminar WS 2000/01 Asmir Hadzidedic

2 Paper „ Integrating a Boolean Satisfiability Checker and BDDs
for Combinational Equivalence Checking „ Aarti Gupta Pranav Ashar CCRL, NEC USA Princeton, NJ 1997

3 Übersicht Einführung Ausnutzung interner Korrespondenzen
Kombination von BDDs mit der ATPG basierten Methoden Integration von SAT und BDD - Aufzählung von BDD Würfel - Aufzählung von SAT Lösungen * Konsistenz Methode * Early Bounding Experimentelle Ergebnisse Iteratives SAT+BDD Verfahren

4 Einführung(1) Äquivalenztest für die kombinatorischen Schaltkreise ist ein wichtiges Problem bei dem Entwurf von digitalen Systemen. Äquivalenztest: Realisieren zwei vorgegebene kombinatorische Schaltkreise eigentlich die gleiche Funktion? Historisch, haben sich zwei unterschiedliche Vorgehensweisen zu diesem Problem durchgesetzt: - Methoden, die auf Funktionen basieren, - Methoden, die auf ATPG (Automatic Test Pattern Generation) basieren. Äquivalenztest ( Anwendungsbeispiel ): Der Entwurf von Schaltkreisen besteht aus verschiedenen Schritten. Spezifikation und Implementation ergaben zwei strukturell unterschiedliche Schaltkreisen. Äquivalenztest prüft, ob der spezifizierte Schaltkreis auch implementiert wurde. - ATPG-basierte Methoden haben so einen Namen bekommen, weil sie wie ATPG Algorithmen entstanden sind.

5 Einführung(2) Funktionen-basierte Methoden versuchen die gesamte Schaltkreisfunktionalität in eine einzelne kanonische Darstellung umzuwandeln. Äquivalenzvergleich der möglicherweise unterschiedlichen Schaltkreisstrukturen reduziert sich auf dem viel einfacheren Problem des Vergleiches der kanonischen Darstellungen. Benutzung von Reduced Ordered Binary Decision Diagrams (ROBDD) Mit ROBDD ist ein Vergleich in konstanter Zeit möglich. Nachteile von ROBDD: - Für bestimmte allgemein verwendete Funktionen ist die BDD Größe exponentiell . ( Bsp. Multiplizierer ) - Schlecht für die Random Logik. Die Größe von ROBDD hängt von der Variablensortierung ab. Bei Multiplizierer ist die Größe bei jeder Variablensortierung exponentiell. Random Logik ist eine Gruppe von boolischen Funktionen, deren Ergebnisse der Wahrheitstabelle durch einen Zufallsgenerator erzeugt wurden.

6 Einführung(3) Die ATPG basierten Methoden arbeiten direkt auf der Schaltkreisstruktur. Konstruktion eines „Miter“ Schalkreises: Falls zu prüfende Schaltkreise nur je einen Ausgang haben, kann man bei der Miter-Ausgang auf OR-Gatter verzichten. Falls zu prüfende Schaltkreise gleiche Ergebnisse liefern, kommt am Miter.Ausgang eine „0“ raus, sonst ein „1“.

7 Einführung(4) Äquivalenznachweis erfolgt durch den Nachweis der redundanten Fehler s-a-0 (Stuck at 0) am Miter-Ausgang. Die ATPG basierte Methoden können größere Schaltkreise als Funktionen basierte Methoden auffassen, wenn die Schaltkreise strukturell ähnlich sind. Keine dieser Methoden genügt allein, um heutige Äquivalenzprobleme von Schaltkreisen effizient zu lösen. Zwei neue Methoden sind vorgeschlagen worden, um die Nachteile der ATPG basierten und der BDDs basierten Methoden zu verbessern. - Es wird angenommen, daß am Miter-Ausgang eine „0“-Fehler auftritt. Durch ATPG-basierte Methode wird gezeigt, daß diese Fehler eine redundante (überflüssige) Fehler ist.

8 Ausnutzung interner Korrespondenzen(1)
Diese Methode versucht, Korrespondenz zwischen internen Knotenpunkten des Schaltkreises auszunutzen. Das Ziel ist die Überprüfung des Verifizierungsproblems zu vereinfachen. Berman schlug vor, die Simulation auszunutzen, um die Paare des möglicherweise gleichwertigen internen Signals zu kennzeichnen. Gleichwertigkeit der Korrespondenzpaare wurde mit einem ATPG basierten Checker durchgeführt. In der Praxis hat diese Methode gute Ergebnisse erbracht, sogar für die Schaltkreise, die sich strukturell deutlich unterscheiden.

9 Ausnutzung interner Korrespondenzen(2)
Beispiel: - In jedem Schritt wird nur ein Punktpaar gefunden, verifiziert und ersetzt durch die entsprechende Leitung.

10 Kombination von BDDs mit der ATPG basierten Methoden(1)
Diese Methode baut vom Output zu den Inputs einen, so groß wie möglich, BDD auf. Der Teil des „Miter“ Schaltkreises wird „Fanout-Partition“ genannt. Der Rest des „Miter“ Schaltkreises wird „Fanin-Partition“ genannt.

11 Kombination von BDDs mit der ATPG basierten Methoden(2)
Die ATPG basierte Methoden werden verwendet, um die Vektoren an der Grenze zwischen der „Fanout-“ und der „Fanin-Partition“ zu überprüfen. Jeder Vektor, für den es eine Belegung der Inputvariablen gibt, muß noch gegen BDD überprüft werden, um sicherzugehen, daß am Output von „Miter“-Schaltkreis eine " 1" ausgegeben wird. Oder: jeder Vektor aus der ON-Menge von BDD muß überprüft werden, ob es eine Belegung der Inputvariablen gibt, die für den Vektor verantwortlich ist. Der erste Vorschlag dieser Methode stammt von Berman (1989).

12 Kombination von BDDs mit der ATPG basierten Methoden(3)
Die Ausnutzung interner Korrespondenzen kann zusätzlich benutzt werden, um die Größe der „Fanout-Partition“ zu erhöhen. Damit wird die Suche nach den erfüllenden Vektoren in der „Fanin-Partition“ vereinfacht. Eine explizite Aufzählung der erfüllenden Vektoren bzw. der ON-Menge des BDD ist selbst für eine gemäßigte Größe schwer durchführbar. Das gilt auch,wenn man eine Würfeldarstellung statt der Minterme nimmt. Die Aufzählung aller Elemente der ON-Menge kann man mit SAT-ALL Algorithmus durchführen. Die Lauzeit von dem Algorithmus ist bei der BDDs O( n * | ON(f) | ) . Literatur: R.E. Bryant „Graph based algorithms for Boolean function manipulation“ Jede Boolische Funktion F in n Variablen und einen Ausgang kann über einen n-dimensionalen Würfel durch Markierung von ON(f)-Menge spezifiziert werden. Ein n-dimensionaler Würfel besteht aus zwei (n-1)–dimensionalen Teilwürfel.

13 Integration von SAT und BDD (1)
Sei gegeben eine Boolesche Formel in KNF. Finde eine Belegung der Booleschen Variablen, so daß das Ergebnis der Formel wahr ist. Typische SAT-Algorithmen verwenden bei der Suche nach Belegungen systematisches Backtracking. Jeder Schritt von Backtracking besteht aus zwei Teilschritte: 1. Branching: Auswahl einer Variable und setzen ihres Wertes 2. Bounding: Aktualisieren die KNF-Formel mit dem Wert der Variable bis ein Fixpunkt erreicht ist. Wenn Schritt 2. zu einen Widerspruch führt, kann die Suche gestoppt werden und die Prozedur kann einen Schritt zurückgehen. Der Wert wahr,kann man als „1“ kodieren und falsch als „0“. Widerspruch bedeutet falsch bzw. „0“.

14 Integration von SAT und BDD (2)
„Fanout-Partition“ wird mit BDD und „Fanin-Partition“ mit SAT Klauseln aufgefaßt. Ziel ist es, zu bestimmen, ob der Miter Ausgang jemals „1“ annehmen kann. Eine Lösung besteht darin, daß eine erfüllende Belegung der SAT-Klauseln durch die Primarinputs existiert, und diese Belegung bzw. Teilbelegung auch Element der ON-Mende des BDDs ist. Das heißt, wir suchen nach einem nicht leeren Durchschnitt zwischen der SAT Lösung und der BDD-ON-Menge. Man beachte, daß BDD und die SAT Klauseln jene Variablen teilen, die die Knotenpunkte auf der Grenze der beiden Partitionen darstellen. Diese Variablen werden „Cutset“-Variablen genannt.

15 Aufzählung von BDD Würfel
Jeder „erfüllende“ Würfel des BDDs wird aufgezählt. Jeder dieser Würfel kann zum SAT Checker in Form von 1-Klausel angeschlossen werden, die zu dem Rest des Schaltkreises hinzugefügt werden können. Das SAT Problem wird unabhängig für jeden Würfel gelöst. Falls für irgendeines dieser Probleme eine Lösung gefunden wird, ist diese Lösung bereits ein Gegenbeispiel für das Äquivalenzproblem. Nachteile: - Die Zahl von BDD Würfeln kann groß sein, und - SAT Checker wiederholt die Arbeit für ähnliche Würfel. - Mit Würfeldarstellung kann man mehrere Minterme zusammenfassen. Bei der Darstellung der ON-Menge können mehrere Würfel ähnlich aussehen. Der SAT Checker kann sich nicht merken, ob er schon so einen Würfel geprüft hat.

16 Aufzählung von SAT Lösungen
Anstatt, die Elemente der BDD-ON-Menge aufzuzählen, sollen die SAT Lösungen aufgezählt und überprüft werden, ob sie der BDD-ON-Menge angehören. Nachteil: - SAT Lösungen aufzuzählen ist kostspieliger als die BDD-ON- Menge aufzuzählen. Vorteile: - SAT Lösungen können implizit aufgezählt werden, indem man „Backtracking“ verwendet, und - Überprüfung, ob eine gegebene Belegung der BDD-ON-Menge angehört, ist ein lineares Zeitproblem, im Vergleich zu dem Lösen eines SAT Problems für jeden Würfel (ein NP-hartes Problem).

17 Die Konsistenz Methode
Der SAT Checker wird gestartet; aber immer, wenn er mit einer Lösung endet, prüfen wir, ob die Belegung von der Cutset-Variablen zu der BDD-ON-Menge gehört. Falls ja, dann ist das ein Gegenbeispiel für den Äquivalenzvergleich. Fall nein, dann überspringen wir die letzte Belegung in SAT Branch-und-Bound Prozedur und suchen wir nach der nächsten SAT Lösung Dies wird die Konsistenz Methode genannt, da jede SAT Lösung auf Zugehörigkeit zur BDD-ON-Menge überprüft wird. Nachteil: - Die Zahl von „Backtracks“ wird nicht verringert und dadurch wird das Lösen des SAT Problems in keiner Hinsicht vereinfacht.

18 Early Bounding (1) Idee:
Immer, wenn eine Cutset-Variable in die SAT Branch-und-Bounding Prozedur genommen wird, können wir überprüfen, ob die bisherige unvollständige Zuweisung, einschließlich der neuesten Zuweisung zur Cutset-Variable, einen nicht leeren Durchschnitt mit der BDD-ON-Menge hat. Folgerung: Wenn ja, dann müssen wir den Rest der Variablen wie üblich überprüfen. Wenn nein, dann können wir die Teillösung der SAT Prozedur sofort durchstreichen, die bis zu diesem Schritt erreicht werden konnte. Vorteil: Der Bounding-Schritt kann für die Cutset-Variable früher abgebrochen werden, und das Ausbreiten kann dadurch verhindert werden. Gibt es einen nicht leeren Durchschnitt zwischen SAT-Lösungen und BDD-ON-Menge? Nein => Die zu prüfende Schaltkreise sind äquivalent, Ja =>Die zu prüfende Schaltkreise sind nicht äquivalent.

19 Early Bounding (2) Algorithmus: sat_bound ( sat ,lit, bdd ) {
if ( lit_is_a_cutset_variable ( lit ) ) { new_bdd = project_variable_in_bdd ( bdd, lit ); if ( bdd_equal ( new_bdd, Zero_bdd ) ) return failure; else bdd = new_bdd; } /* rest of the procedure is unchanged */ Meldungen „failure“ und „success“ beziehen sich auf Abfrage : „Gibt es einen nicht leeren Durchschnitt?“.

20 Early Bounding (3) sat_branch ( sat,bdd ) {
lit = find_next_lit ( sat ) ; /* find the next literal to bound */ if ( lit == NIL ) return success; /* SAT solution is found */ old_bdd = bdd; if ( sat_bound ( sat,lit,bdd ) && sat_branch ( sat,bdd ) ) return success; undo_lit_assignment ( sat ) ; /* previous branch failed:backtrack */ bdd = old_bdd; if ( sat_bound ( sat,neg(lit),bdd ) && sat_branch ( sat,bdd ) ) return success; return failure; }

21 Early Bounding (4) Immer wenn eine Variable Cutset-Variable ist, projizieren wir sie in der sat_bound Prozedur in BDD mit der project_variable_in_bdd Prozedur. Die Prozedur project_variable_in_bdd verwendet entweder die bdd_substitute oder die bdd_cofactoroperation Prozedur, die in den Standard-BDD-Paketen vorhanden sind. Wenn das resultierende BDD dem Zero_bdd gleich ist, haben wir einen leeren Durchschnitt, und wir geben „Fehler“ zurück. D.h. diese SAT Lösung bzw. Teillösung ist nicht in der ON-Menge von BDD enthalten. Andernfalls wird das projizierte BDD auf die Aufrufprozedur geführt.

22 Early Bounding (5) In der sat_branch Prozedur suchen wir zunächst nach dem nächsten Literal; und wir prüfen, ob wir schon eine vollständige Lösung haben. Wenn dieses Literal eine Cutset-Variable ist, die nicht zu einem Zero_bdd führt, und wir besitzen eine vollständige Lösung, die dieses Literal enthält, dann beenden wir die Prozedur mit Erfolg. D.h. die entsprechenden Schaltkreise sind nicht äquivalent. Wenn dieser Fall nicht auftritt, dann wird die SAT Lösung bezüglich des Literals zurückgesetzt und die oben drei genannten Bedingungen werden auch für den negierten Literale geprüft. Falls die beiden Fälle mit nicht negiertem und negiertem Literal nicht auftreten, dann haben die SAT Lösungsmenge und BDD-ON-Menge einen leeren Durchschnitt.

23 Spezielle BDD Operationen (1)
Erfahrung hat gezeigt, daß die Nutzung der Standard BDD Operationen die SAT Prozedur für große BDDs beträchtlich verlangsamt. Hier: Sobald die Miter BDD Partition erstellt ist, wird nicht das volle Set von Programmen eines BDD-Manipulationspakets für die restliche Arbeit angefordert. Denn: nur zwei Operationen sind eigentlich erforderlich: - Projektion einer Variable in ein BDD, und - Prüfung, ob resultierendes BDD gleich Zero_bdd ist. Jede Operation wird beim Bounding der Cutset-Variablen einmal verwendet.

24 Spezielle BDD Operationen (2)
Mit den Standard BDD Paketen ist die Laufzeit im Worst Case zur Größe des BDD proportional; und mit den speziellen BDD Operationen ist die Laufzeit konstant. Es wird eine einfach verkettete Liste verwendet, um die Zuweisung von Cutset-Variable zu verfolgen. Das Projizieren einer Variable wird einfach durch Setzen ihres Wertes bewerkstelligt, was eine konstante Zeitoperation ist. Die Überprüfung gegen ein Zero_bdd setzt voraus, daß BDD durchquert wird. Wenn irgendein Pfad zu einem One_bdd gefunden wird, wird die Suche abgebrochen, und das BDD ist dem Zero_bdd nicht gleich. Im Worst Case ist die benötigte Zeit proportional zu der BDD Größe. Ohne die Gesamtkomplexität zu beeinflussen, beseitigen diese speziellen Operationen so kostspielige Cachezugriffe und die Wartung der Knotentabelle, was eigentlich die Laufzeit verringert. - Die konstante Laufzeit bezieht sich auf den letzen Punkt d.h. keine Cachezugriffe und ohne Wartung der Tabelle.

25 Analyse (1) Methoden: - Benutzung von BDDs für die Reduzierung des SAT Problems bezüglich der Anzahl der Backtracks, - Vermeiden der expliziten Aufzählung der BDD Würfel, - “Early Bounding” während der SAT Prozedur, - Benutzung von speziellen BDD Operationen zur Verbesserung der Laufzeit.

26 Analyse (2) Umgebung: - SUN ULTRA WORKSTATION mit 128 MB Arbeitsspeicher, - SIS mit einem SAT Checker, der in der Literatur als TEGUS oder als CMU BDD Paket benannt wird, - Benchmark von ISCAS-Gruppe mit dem Schaltkreis C6288, - Bei BDD ist eine Knotenbegrenzung auf 500 K eingebaut, - Eine Zeitschranke ist auch vorhanden ( 30 bzw. 3 Stunden ) . - Der C6288 wird mit C6288_opt ( entstanden durch Synthese von C6288 mit SIS bzw. script.rugged )

27 SAT+BDDs vs SAT (1)

28 SAT+BDDs vs. SAT (2) T ist eine Zeitschranke von 30 Stunden für alle Ausgänge. Für die ersten acht Ausgänge wurde SAT+BDD Checker nicht aufgerufen, da das Miter BDD selbst die Konstante „0“ geliefert hat. SAT hat nur bis zum 13. Ausgang die Zeitschranke eingehalten. Für die Ausgänge, die verifiziert werden konnten, wurde ein Faktor (Verhältnis zwischen 9. Und 6. Spalte) bis zu 27 erzielt. (siehe die letzte Spalte in der Tabelle 1.) Für das Experiment wurde bei den SAT+BDD Verfahren das „Early Bounding“ benutzt. (vgl. 5. und 8. Spalte in Tabelle 1.)

29 Vorteile durch die Aufzählung der SAT Lösungen (1)

30 Vorteile durch die Aufzählung der SAT Lösungen (2)
T ist eine Zeitschranke von 3 Stunden. Die Spalte 5. enthält die Anzahl der BDD-Würfel, die überprüft werden müssen, und die Spalte 6. die entsprechende Zeit. Für den 9. Ausgang ist die BDD-Würfel-Aufzählungsmethode nicht beendet. Dies liegt an der großen Zahl von 1250 Millionen Würfeln, die unabhängig aufgezählt und überprüft werden müssen. Demgegenüber konnte die SAT Lösung Aufzählungsmethode bis zum 14. Ausgang durchgeführt werden. Beim Vergleich zwischen „Early Bounding“- und „Konsistenz“-Methoden wurde ein Faktor bezüglich der Anzahl von Backtracks von bis zu 34 erzielt.

31 Vorteile durch die Aufzählung der SAT Lösungen (3)
Die Spalte 8. Stellt die Zeit dar, die mit den speziellen BDD Operationen erreicht wurde und die Spalte 11. die Zeit, die mit den Standard-BDD-Operationen erreicht wurde. Innerhalb der festgesetzten Grenzzeit wurde eine Verringerung der Laufzeit bis zu 65% erreicht. Falls man die BDD und die SAT Partitionen vergrößert, kann man auch größere Gewinne erwarten.

32 Iteratives SAT+BDD Verfahren
Die SAT+BDD Äquivalenztechnik kann einen Kern aus einer Iterativen Methode haben: 1. Suchen nach Kandidaten für die äquivalenten Paare im Miter Schaltkreis 2. Versuche, die Äquivalenz jedes Paares zu überprüfen 3. Ersetze die Knoten, wenn ein zu ihnen äquivalentes Paar gefunden wurde Im Schritt 1. wird die randomisierte Mustersimulation von einer Liste der Kandidaten für die Äquivalenzpaare verwendet. Im Schritt 2. wird die SAT+BDD Methode verwendet. In der Wirklichkeit kann man hier alleine SAT Verfahren verwenden. - Diese Methode wird oft in der Praxis angewendet.

33 Zusammenfassung Einführung Ausnutzung interner Korrespondenzen
Kombination von BDDs mit der ATPG basierten Methoden Integration von SAT und BDD - Aufzählung von BDD Würfel ( nicht effizient ) - Aufzählung von SAT Lösungen * Konsistenz Methode ( nicht effizient ) * Early Bounding Experimentelle Ergebnisse Iteratives SAT+BDD Verfahren


Herunterladen ppt "SAT-Engines-Seminar WS 2000/01 Asmir Hadzidedic"

Ähnliche Präsentationen


Google-Anzeigen