DE19860061A1 - System zur Prüfung der kombinatorischen Äquivalenz - Google Patents

System zur Prüfung der kombinatorischen Äquivalenz

Info

Publication number
DE19860061A1
DE19860061A1 DE19860061A DE19860061A DE19860061A1 DE 19860061 A1 DE19860061 A1 DE 19860061A1 DE 19860061 A DE19860061 A DE 19860061A DE 19860061 A DE19860061 A DE 19860061A DE 19860061 A1 DE19860061 A1 DE 19860061A1
Authority
DE
Germany
Prior art keywords
variables
intersection
binary decision
variable
decision diagram
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
DE19860061A
Other languages
English (en)
Other versions
DE19860061B4 (de
Inventor
Aarti Gupta
Pranav Ashar
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Publication of DE19860061A1 publication Critical patent/DE19860061A1/de
Application granted granted Critical
Publication of DE19860061B4 publication Critical patent/DE19860061B4/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • G06F30/3323Design verification, e.g. functional simulation or model checking using formal methods, e.g. equivalence checking or property checking

Description

HINTERGRUND DER ERFINDUNG Gebiet der Erfindung
Diese Erfindung bezieht sich auf ein System zum Prüfen der Äquivalenz von Schaltnetzen. Insbesondere bezieht sich diese Erfindung auf ein System zum Prüfen einer solchen Äquivalenz, das robuster als andere bisher ge­ schaffene Systeme ist und an das Prüfen komplexer Schal­ tungen mit wesentlichen Unterschieden angepaßt ist. Die Erfindung ist in einem System, in einem Verfahren und in einem Programmprodukt für die Prüfung der kombinatori­ schen Äquivalenz ausgeführt.
Hintergrund und verwandtes Gebiet
Der Begriff eines Schaltnetzes wird hier in der Weise verwendet, daß er eine Schaltung mit einem Netz verbunde­ ner Logikgatter bezeichnet. Schaltnetze können durch Logiknetzlisten dargestellt werden. Ein gegebenes Schalt­ netz besitzt einen Eingangslastfaktor und einen Ausgangs­ lastfaktor. Im allgemeinen bezieht sich der Eingangs­ lastfaktor eines Schaltnetzes auf die für das Schaltnetz bereitgestellten Eingänge. Der Ausgangslastfaktor eines Schaltnetzes bezieht sich auf die Menge der durch das Schaltnetz gegebenen Ausgänge. Somit ist von einem gege­ benen Punkt in einem Schaltnetz aus die Eingangslastfak­ tor-Seite des Schaltnetzes die Seite, die näher an den Eingängen liegt, während die Ausgangslastfaktor-Seite die Seite ist, die näher an den Ausgängen liegt. Die Bezie­ hung der Ausgänge des Schaltnetzes zu den Eingängen des Schaltnetzes definiert die Gesamtfunktionalität des Schaltnetzes.
Es ist wohlbekannt, daß für den Entwurf eines Schaltnet­ zes mit einer vorbestimmten Gesamtfunktionalität viele verschiedene Schaltnetzstrukturen möglich sind. Mit anderen Worten, zwei Schaltnetze können bezüglich des verwendeten genauen Netzes der verbunden Logikgatter strukturell sehr verschieden sein, wobei diese aber tatsächlich eine völlig gleiche Gesamtfunktionalität besitzen können.
Der digitale Entwurf umfaßt die Erzeugung von Schaltnet­ zen. Häufig umfaßt der digitale Entwurf außerdem die Modifikation eines existierenden Schaltnetzes. Manchmal ist es wünschenswert, ein existierendes Schaltnetz nur strukturell zu modifizieren, während das geänderte Schaltnetz die gleiche Gesamtfunktionalität wie das existierende Schaltnetz behält.
Schaltnetze können äußerst komplex sein, wobei die Nach­ prüfung, daß ein Schaltnetz die völlig gleiche Ge­ samtfunktionalität wie ein anderes Schaltnetz hat, ein wichtiges Problem darstellt. Dieses Problem wird als das Schaltnetz-Nachprüfungsproblem bezeichnet. Dieses Problem betrifft ebenso die Situation, in der geprüft werden soll, daß ein Knoten in einem Schaltnetz im Gegensatz zu dem Schaltnetz als Ganzes die gleiche Gesamtfunktionali­ tät wie ein Knoten in einem anderen Schaltnetz liefert. Somit ist klar, daß sich das Schaltnetz-Nachprüfungspro­ blem auf Schaltnetze als Ganzes ebenso wie auf kleinere Schaltnetze in größeren Schaltnetzen bezieht.
Die Begriffe Schaltnetze und Knoten von Schaltnetzen werden unten üblicherweise austauschbar verwendet. Übli­ cherweise sind die zwei Begriffe aufgrund der einfachen Tatsache austauschbar, daß eine große Logiknetzliste immer Knoten enthält, wovon jeder einen kleineren Teil des Gesamtschaltnetzes definieren kann, der selbst allein als ein Schaltnetz genommen werden könnte.
Das Schaltnetz-Nachprüfungsproblem kann konzeptionell bezüglich einer im Stand der Technik bekannten Gehrungs­ schaltung (= miter circuit) formuliert werden. Fig. 1 zeigt eine Gehrungsschaltung 10. Die Schaltung 1 und die Schaltung 2 in Fig. 1 sind Schaltnetze. Es soll geprüft werden, ob die Schaltung 1 und die Schaltung 2 äquivalent sind, d. h., ob die zwei Schaltnetze eine völlig gleiche Gesamtfunktionalität besitzen. In dem Beispiel nach Fig. 1 empfängt jedes der zwei Schaltnetze völlig gleiche Eingangssignale w und x. Die Schaltung 1 besitzt einen entsprechenden Ausgang, den Ausgang y. Die Schaltung 2 besitzt einen entsprechenden Ausgang, den Ausgang y'. Die Knoten, deren Äquivalenz zu prüfen ist, liefern ihre jeweiligen Ausgangssignale y und y' an ein XOR-Gatter. Der Ausgang des XOR-Gatters ist der Ausgang z. Als nütz­ licher Hintergrund über die Gehrungsschaltung ist das folgende Dokument durch Literaturverweis eingefügt:
  • - D. Brand. Verification of large synthesized designs. In Proceedings of the IEEE International Conference on Computer-Aided Design, S. 534-537, November 1993.
Es ist klar, daß für jede mögliche Menge von Eingangs­ signalen w und x die Ausgangssignale y und y' immer völlig gleich sein sollten, wenn die Schaltnetze äquiva­ lent sind. Jedesmal, wenn die Ausgangssignale y und y' völlig gleich sind, ist das Ausgangssignal z des XOR- Gatters 0. Falls es jedoch möglich ist, am Ausgang z eine 1 zu erhalten, sind die Schaltungen nicht ideal äquiva­ lent.
Die Gehrungsschaltung 10 bildet ein vereinheitlichendes Thema über alle verschiedenen Zugänge zum Lösen des Schaltnetz-Nachprüfungsproblems.
Ein Zugang zum Lösen des Schaltnetz-Nachprüfungsproblems ist ein Strukturzugang. Gemäß dem Strukturzugang wird die Gehrungsschaltung in einer Innenschleife eines iterativen Äquivalenzprüfungsrahmens verwendet. Das heißt, daß Knoten von der Schaltung 1 und von der Schaltung 2 ver­ glichen werden. Knoten, bei denen gefunden wird, daß sie äquivalent sind, werden ersetzt, wobei die Äquivalenzprü­ fung von Grund auf fortgesetzt wird. Während in jeder Schaltung mehr Knoten ersetzt werden, wird es wahrschein­ licher, eine vereinfachte Prüfung der Primärausgänge zu erhalten. Dieser Strukturzugang oder Zugang der iterati­ ven Ersetzung funktioniert gut, wenn die Schaltung 1 und die Schaltung 2 strukturell ähnlich sind. Die folgenden Dokumente sind wegen ihres nützlichen Hintergrundmateri- als über den Strukturzugang durch Literaturverweis einge­ fügt:
  • - C. Berman und L. H. Trevyllian. Functional comparison of logic design for VLSI circuits. In Proceedings of the IEEE International Conference on Computer-Aided Design, S. 456-459. EKE Computer Society Press, Los Alamitos, CA, November 1989,
  • - E. Cerny und C. Mauras. Tautology checking using cross-controllability and cross-observability relati­ ons. In Proceedings of the IEEE International Confe­ rence on computer-Aided Design S. 34-37. IEEE Compu­ ter Society Press, Los Alamitos, CA, November 1990.
  • - J. Jain, R. Mukherjee und M. Fujita. Advanced verifi­ cation techniques based on learning. In Proceedings of the 32nd ACM/IEEE Design Automation Conference, S. 420-426. EKE Computer Society Press, Los Alamitos, CA, Juni 1995.
  • - W. Kunz und D. Pradhan. Recursive learning: A new implication technique for efficient solutions to CAD problems - test, verification and optimization. IEEE Transactions on computer-Aided Design of Integrated Circuits and Systems, 13(9): 1143-1158, September 1994.
  • - Y. Matsunaga. An efficient equivalence checker for combinational circuits. In Proceedings of the ACM/IEEE Design Automation Conference, S. 629-634. IEEE Computer Society Press, Los Alamitos, CA, Juni 1996.
  • - D. Pradhan, D. Paul und M. Chatterjee. Verilat:
    Verification using logic augmentation and transforma­ tions. In Proceedings of the IEEE International Con­ ference on Computer-Aided Design, S. 88-95. IEEE Com­ puter Society Press, Los Alamitos, CA, November 1996.
  • - S. M. Reddy, W. Kunz und D. Pradhan. Novel verifica­ tion framework combining structural and OBDD methods in a synthesis environment. In Proceedings of the 32nd ACM/IEEE Design Automation conference, S. 414-419. IEEE Computer Society Press, Los Alamitos, CA, Juni 1995.
Obgleich Schaltnetze, die zu vergleichen versucht werden, häufig ähnlich sein können, gibt es viele Fälle, in denen eine Schaltung von einer anderen wesentlich verschieden ist. Wenn z. B. Schaltungen unter Verwendung automati­ scher Entwicklungssoftware neu entworfen werden, ist es möglich, daß die neu entworfene Schaltung sehr wenig strukturelle Ähnlichkeit mit der Originalschaltung be­ sitzt. In einem solchen Fall wird der Zugang der iterati­ ven Ersetzung sehr schwierig, da es schwerer ist, in jedem der zwei Schaltnetze Knoten auszuwählen, die tat­ sächlich äquivalent sind. Die besonderen in den oben angegebenen Hintergrunddokumenten empfohlenen Verfahren versagen, wenn wenig innere Entsprechung ausgenutzt werden kann.
Ein weiterer Zugang zu dem Schaltnetz-Nachprüfungsproblem ist ein Funktionszugang. Gemäß dem Funktionszugang wird von binären Entscheidungsdiagrammen (BDDs) Gebrauch gemacht. Ein BDD resultiert daraus, daß das gesamte Schaltnetz auf eine kanonische Form reduziert wird. Da die folgenden Dokumente nützliche Hintergrundinformatio­ nen hinsichtlich funktionsbasierter Zugänge liefern, sind sie in ihrer Gesamtheit durch Literaturverweis eingefügt:
  • - J. P. Billon und J. C. Madre. Original concepts of PRIAM, an industrial tool for efficient formal veri­ fication of combinational circuits. In G. J. Milne, Herausgeber, Fusion of Hardware Design and verifica­ tion, S. 487-501. North-Holland, Amsterdam, 1988.
  • - M. Fujita, H. Fujisawa und N. Kawato. Evaluation and improvements of a Boolean comparison program based on Binary Decision Diagramms. In Proceedings of the IEEE International Conference on Computer-Aided Design, S. 2-5. EKE Computer Society Press, Los Alamitos, CA, 1988.
  • - S. Malik, R. K. Wang, A. Brayton und A. Sangiovanni- Vincentelli. Logic verification using Binary Decision Diagrams in a logic synthesis environment. In Procee­ dings of the IEEE International Conference on Compu­ ter-Aided Design, S. 6-9. EKE Computer Society Press, Los Alamitos, CA, 1988.
Sobald jedes Schaltnetz auf ein BDb reduziert ist, wird das Problem der Prüfung auf Äquivalenz aus dem komplexen Problem des Vergleichens zweier verschiedener Schaltnetze zu dem einfacheren Problem des Vergleichens zweier kano­ nischer Datenstrukturen (d. h. BDDs).
Der Funktionszugang besitzt jedoch Nachteile. Üblicher­ weise verwendet ein funktionsbasierter Zugang eine Vari­ ante des reduziert geordneten BDDs (ROBDDs). Das ROBDD wird unten diskutiert, wobei zusätzliche Hintergrundin­ formationen über dieses Thema in dem folgenden, hier durch Literaturverweis eingefügten Dokument zu finden sind: R. E. Bryant, Graph-based algorithms for Boolean function manipulation, IEEE Transactions on Computers, C-35(8):677-691, August 1986. Wie in dem folgenden, nun wegen seiner diesbezüglichen Hintergrundinformationen durch Literaturverweis eingefügten Dokument beschrieben ist, wachsen solche BDDs insbesondere für bestimmte, sehr häufig verwendete Logikfunktionen wie Multiplizierer hinsichtlich der Anzahl der Eingangsvariablen exponenti­ ell an:
  • - R. E. Bryant. On the complexity of VLSI implementati­ ons and graph representations of Boolean functions with application to integer multiplication. IEEE Transactions on Computers, 40(2):205213, Februar 1991.
Somit sind solche BDDS selbst für eine zufällige Logik nicht gut skalierbar. Mit anderen Worten, die BDDs werden um so größer und die Verwendung des Funktionszugangs wird um so schwerer, je größer die Schaltnetze werden. Für sehr große Schaltnetze ist es im wesentlichen unmöglich, den Funktionszugang zum Lösen des Schaltnetz-Nachprü­ fungsproblems zu verwenden.
Somit wird der Strukturzugang unmöglich, wenn die zwei Schaltnetze strukturell verschieden sind. Der Funktions­ zugang wird unmöglich, wenn die zwei Schaltnetze sehr groß sind.
ZUSAMMENFASSUNG DER ERFINDUNG
Somit besteht eine Aufgabe der Erfindung in der Schaffung eines robusten und praktischen Zugangs zum Lösen des Schaltnetz-Nachprüfungsproblems für zwei Schaltungen, selbst wenn sie strukturell verschieden und sehr groß sind.
Die Erfindung wird durch ein Verfahren zum Bestimmen der Nichtäquivalenz zwischen zwei Schaltnetzen realisiert. In dem Verfahren gemäß der Erfindung werden die zwei Schalt­ netze zu einer Gehrungsschaltung kombiniert; wird die Gehrungsschaltung entlang einer Grenze, die jedes der zwei Schaltnetze in eine jeweilige Eingangslastfaktorpar­ tition und in eine jeweilige Ausgangslastfaktorpartition trennt, aufgeteilt, wobei es eine Menge durch die Grenze definierter Schnittmengenvariablen gibt; wird für die jeweiligen Ausgangslastfaktorpartitionen ein kanonisches binäres Entscheidungsdiagramm definiert, wobei das kano­ nische binäre Entscheidungsdiagramm einen jeweiligen binären Entscheidungsdiagrammanfang besitzt; wird eine Menge Boolescher Erfüllbarkeitsklauseln (clause (engl) = Klausel, prädikatenlogischer Ausdruck) für die jeweiligen Eingangslastfaktorpartitionen definiert, wobei die Booleschen Erfüllbarkeitsklauseln die Schnittmengen­ variablen als eine Ausgangsgröße haben, das kanonische binäre Entscheidungsdiagramm die Schnittmengenvariablen als eine Eingangsgröße hat; werden Boolesche Erfüllbar­ keitsprüfungen ausgeführt, um Erfüllbarkeitslösungen für die Menge der Booleschen Erfüllbarkeitsklauseln ein­ schließlich von Begrenzungswerten für die in der Menge der Booleschen Erfüllbarkeitsklauseln enthaltenen Varia­ blen zu finden; und werden die Werte der Menge der Schnittmengenvariablen jedesmal geprüft, wenn eine der auf einen Wert begrenzten Variablen eine Variable der Menge der Schnittmengenvariablen ist, um zu bestimmen, ob die Werte der Menge der Schnittmengenvariablen einen von null verschiedenen Durchschnitt mit dem Anfang des binä­ ren Entscheidungsdiagramms haben. Außerdem umfaßt die Erfindung ein Computersystem und ein Computerprogrammpro­ dukt zum Verwirklichen des vorstehenden Verfahrens.
KURZBESCHREIBUNG DER ZEICHNUNG
Fig. 1 zeigt einen Hybridzugang zum Lösen des Schalt­ netz-Nachprüfungsproblems gemäß der Erfindung.
Fig. 2 zeigt eine zur Erläuterung der Booleschen Er­ füllbarkeitsprüfung verwendete Beispielschaltung.
Fig. 3 zeigt einen Variablenabhängigkeitsgraphen.
Fig. 4 zeigt, wie eine Variable begrenzt wird und wie ein Verzweigungs- und Begrenzungsverfahren arbeitet.
Fig. 5 zeigt Pseudocode für einen Zugang zum Inte­ grieren der Erfüllbarkeitsprüfung und der BDDs.
Fig. 6 zeigt Pseudocode für einen Frühbegrenzungszu­ gang zum Integrieren der Erfüllbarkeitsprüfung und der BDDs.
Fig. 7 zeigt ein Beispiel eines BDDs.
Fig. 8 zeigt Pseudocode für Spezial-BDD-Operationen.
AUSFÜHRLICHE BESCHREIBUNG DER ZWECKMÄSSIGEN AUSFÜHRUNGEN
Die Erfindung wird nun nach einigen vorbereitenden Dis­ kussionen von BDDs mit Bezug auf ein in Fig. 1 gezeigtes Beispiel beschrieben.
Ein BDD stellt eine Boolesche Funktion als einen gerich­ teten azyklischen Wegegraphen (DAG) dar, wie er z. B. in Fig. 7 gezeigt ist. Insbesondere zeigt Fig. 7 eine redu­ zierte geordnete BDD-Darstellung für die Boolesche Bei­ spielfunktion von f = a ∨ (b ∧ c) ∨ d. Jeder Nicht-End­ knoten ν ist mit einer Booleschen Variablen var(ν) be­ zeichnet und besitzt entsprechend dem Umstand, daß die Variable wahr bzw. falsch ist, zwei abgehende Kanten zu den Knoten BDD_THEN(ν) und BDD_ELSE(ν). Jeder Endknoten stellt eine Boolesche Konstante dar und ist mit 1 (BDD_ONE) oder mit 0 (BDD_ZERO) bezeichnet.
Jedem Knoten ν eines DAGs ist eine Boolesche Funktion f­ zugeordnet, so daß,
  • - falls ν ein Endknoten ist, in Abhängigkeit von der Booleschen Konstante, die ν darstellt, fν = 1 oder fν = 0 ist,
  • - falls ν ein mit der Variablen x bezeichneter Nicht- Endknoten ist,
    fν = (¬ x ∧ f0) ∨ (x ∧ f1) ist, wobei
    f0 die dem Knoten BDD_ELSE(ν) zugeordnete Funk­ tion bezeichnet und
    f1 die dem Knoten BDD_THEN(ν) zugeordnete Funk­ tion darstellt.
Ein geordnetes BDD ist ein BDD mit der zusätzlichen Nebenbedingung, daß alle gerichteten Wege in dem DAG aus Nicht-Endknoten in einer aufsteigenden Reihenfolge beste­ hen, die als eine Gesamtreihenfolge auf der Variablen­ menge spezifiziert ist. Der DAG, der ein geordnetes BDD darstellt, kann (i) durch Entfernen doppelter Knoten, d. h. weiterer Knoten, die das gleiche Tripel (var(ν), BDD_THEN(ν), BDD_ELSE(ν)) darstellen und (ii) durch Entfernen der Knoten mit einem redundanten Test, d. h. durch Entfernen eines Knotens ν mit BDD_THEN(ν) = BDD_ELSE(ν), weiter reduziert werden. Es ist gezeigt worden, daß ein ROBDD eine kanonische Dar­ stellung für eine Boolesche Funktion ist. Falls nichts anderes angegeben ist, wird ein BDD in dem Rest dieses Dokuments als geordnet und reduziert betrachtet.
Es wird daran erinnert, daß in Fig. 1 zwei Schaltnetze auf Äquivalenz geprüft werden sollen. In diesem Beispiel sind die Schaltung 1 und die Schaltung 2 zu groß dafür, daß der Funktionszugang praktikabel ist, und strukturell zu verschieden, daß der Strukturzugang praktikabel ist. Somit führen die zwei Schaltnetze selbst weder auf den Funktionszugang noch auf den Strukturzugang. Jedoch ist klar, daß die Erfindung ebenso auf Schaltnetze anwendbar ist, die strukturell ähnlich oder nicht so groß sind.
Gemäß einer zweckmäßigen Ausführung der Erfindung wird zunächst ein BDD erzeugt, das so groß wie praktisch möglich ist, indem von dem Gehrungsausgang z rückwärts zu den Eingängen w und x gearbeitet wird. Mit dem Ausdruck so groß wie praktisch möglich" ist hier das im wesentli­ chen größte BDD gemeint, das angesichts der verfügbaren Hardware- und Software-Unterstützung erzeugt werden kann. Für die Erfindung ist nicht wesentlich, daß das BDD das absolut größte praktisch mögliche BDD ist. Es ist jede Größe des BDD akzeptabel, wobei diese weiter im Einklang mit der Erfindung bleibt. Je größer das BDD jedoch ist, desto größer sind die Gewinne bezüglich der Geschwindig­ keit, mit der das Schaltnetz-Nachprüfungsproblem gelöst wird.
Die Schaltung 1 und die Schaltung 2 sind jedoch so groß, daß das BDD nicht eine der beiden Schaltungen vollständig enthält. Das BDD enthält nur einen Teil jedes der Schalt­ netze. In Fig. 1 trennt die Grenze 20 die Teile des Schaltnetzes, die in einem BDD dargestellt wurden, von den Teilen, die nicht in einem BDD dargestellt wurden. Insbesondere bezeichnet der Abschnitt 40 der Gehrungs­ schaltung 10 die Teile des Schaltnetzes, die von dem größten praktisch anwendbaren BDD in Betracht gezogen werden, wobei dieser im folgenden als der Ausgangslastab­ schnitt 40 bezeichnet wird. Der Abschnitt 30 der Geh­ rungsschaltung 10 bezeichnet die Teile der Schaltnetze, die nicht in dem BDD enthalten sind, wobei dieser im folgenden als der Eingangslastabschnitt 30 bezeichnet wird.
Mit anderen Worten, die Schaltnetze werden (durch die Grenze 20) in einen Eingangslastabschnitt 30 und in einen Ausgangslastabschnitt 40 aufgeteilt. Der Ausgangslastab­ schnitt 40 wird auf ein BDD reduziert.
Es wird nun eine Beschreibung der Booleschen Erfüllbar­ keit gegeben, soweit sie sich auf die Erfindung bezieht.
Die Boolesche Erfüllbarkeit ist ein Verfahren zum Finden von Variablenwerten, die einer als eine konjunktive Normalform-Datenstruktur (CNF-Datenstruktur) gegebenen Logikformel genügen. Ein SAT-Löser oder SAT-Prüfer ist ein Programmprodukt, das ein Boolesches Erfüllbarkeits­ verfahren ausführt. Für die SAT-Prüfung sind verschiedene effiziente Algorithmen bekannt, so daß die Spezifiken der SAT-Prüfung hier nicht weiter beschrieben werden. Die folgenden Hintergrunddokumente über die SAT sind somit durch Literaturverweis eingefügt.
  • - T. Larrabee. Test pattern generation using Boolean satisfiability. IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems, 11(1):4-15, Januar 1992.
  • - J. P. M. Silva und K. A. Sakallah. Grasp: A new search algorithm for satisfiability. In Proceedings of the IEEE International Conference on Computer-Ai­ ded Design, S. 220-227. IEEE Computer Society Press, Los Alamitos, CA, November 1996.
  • - P. Stephan, R. K. Brayton und A. Sangio­ vanni-Vincentelli. Combinatorial test generation using satisfiability. IEEE Transactions on Computer- Aided Design of Integrated Circuits and Systems, 15(9):1167-1176, September 1996.
Der SAT-Löser verwendet ein systematisches Zurückverfol­ gungsverfahren, um eine Variablenzuordnung zu erhalten, für die das Auswerten der CNF-Formel 1 ("wahr") ergibt.
Die Effizienz dieses Zugangs leitet sich aus der Tatsache ab, daß Abhängigkeiten zwischen Variablen leicht aus der CNF-Darstellung extrahiert werden können. Dies ermöglicht das sehr schnelle Ableiten nichtlokaler Abhängigkeiten zwischen Variablen. Diese Fähigkeit zum effizienten Erfassen nichtlokaler Implikationen ermöglicht seiner­ seits das frühe und schnelle Bestimmen von Widersprüchen bei den Variablenzuordnungen während eines Zurückverfol­ gungsverfahrens. Verschiedene Datenstruktursysteme können intern in bezug auf den SAT-Löser zur Darstellung der CNF-Formel und der in ihr enthaltenen Informationen verwendet werden. Ohne Verlust der Allgemeinheit ist in den folgenden Abschnitten ein auf Klauseln beruhender Zugang vorausgesetzt, der intern eine Liste von Klauseln verwendet.
In Abhängigkeit von dem Problembereich werden verschie­ dene Verfahren verwendet, um ein Problem in der CNF auszudrücken. Hier steht im Mittelpunkt das Finden einer Zuordnung für die CNF-Formel, die diese erfüllt, sobald das Problem in diese Form abgebildet wurde. Insgesamt besteht der Zugang darin, unter Verwendung eines Ent­ scheidungsbaums systematisch einer Variablen nach der anderen Werte zuzuordnen und ihre Implikationen auf den Rest der Klauseln in der Formel zu bewerten. Es wird dann von dem Auftreten eines Widerspruchs gesprochen, wenn eine transitive Implikation von einer Literalkonstanten in eine Literalkonstante der gleichen. Variablen mit entgegengesetzter Polarität existiert. (Intuitiv ist a ⇒ a widersprüchlich.) Ein Widerspruch vor dem Beginn des Zurückverfolgungsverfahrens gibt eine unlösbare CNF an. Ein Widerspruch nach einigen Teilzuordnungen gibt an, daß die Suche für diese Teilzuordnungen an diesem Punkt angehalten werden kann. Das heißt, daß einige der Werte, die Variablen zugeordnet wurden, zu einer sinnlosen Lösung führen. Das Verfahren des Identifizierens von Implikationen und des Anhaltens der Suche bei einem Widerspruch kann frei als Begrenzen bezeichnet werden.
Jeder Schritt des Zurückverfolgungsverfahrens umfaßt zwei Schritte: (1) Das Wählen einer Variablen, bei der zu verzweigen ist und für die ein Wert zu setzen ist, und (2) das Aktualisieren der CNF-Formel auf der Grundlage des Auferlegens dieses Variablenwerts, bis wie zuvor ein Fixpunkt erreicht ist. Falls Schritt (2) zu einem Wider­ spruch führt, kann die Suche an diesem Punkt angehalten und der Algorithmus zurückverfolgt werden. Wenn eine Ankunft bei einer Variablen erfolgt, gibt es drei Mög­ lichkeiten: (a) Es ist möglich, daß ihr kein Wert zuge­ ordnet wurde, (b) das System kann eine Zurückverfolgung über die erste Zuordnung für die Variable durchführen oder (c) das System kann eine Zurückverfolgung über die zweite Zuordnung für die Variable durchführen. Im Fall (a) kann sich das System dafür entscheiden, der Variablen irgendeinen Wert zuzuordnen. Im Fall (b) muß das System einen Wert zuordnen, der der entgegengesetzte Wert der vorausgehenden Zuordnung ist. Im Fall (c) muß das System eine Zurückverfolgung zu der vorangehenden Variablen in dem Entscheidungsbaum ausführen. Der Algorithmus wird abgeschlossen, wenn entweder alle Klauseln erfüllt sind oder wenn der Suchraum erschöpft ist. Zum Aussuchen der nächsten Variablen und des nächsten Werts, bei dem ver­ zweigt wird, können verschiedene Heuristiken verwendet werden. Eine übliche Strategie besteht darin, die Lite­ ralkonstante auszuwählen, die in der größten Anzahl von Klauseln auftritt.
Unten ist die Ableitung einer CNF-Formel für einen klei­ nen Fall einer typischen Anwendung des SAT gezeigt und ist gezeigt, wie ein SAT-Prüfer beim Finden einer Zuord­ nung, die diese erfüllt, vorgehen könnte.
Es wird nun mit Bezug auf Fig. 2 ein Beispiel der Ablei­ tung einer CNF-Formel für ein Schaltnetz oder für einen Teil davon gegeben. Die CNF-Formel für die Schaltung wird von Grund auf von den Eingängen bis zu den Ausgängen aufgebaut. Jedes Gatter in der Schaltung trägt Klauseln bei, die alle gültigen Eingangssignal/Ausgangssignal- Kombinationen für das Gatter kapseln. In dem Beispiel trägt das Gatter 1 (ein UND-Gatter) mit den Eingängen a und b und mit dem Ausgang c die folgenden Klauseln bei:
(a + c)(b + c)(a + b + c) (1).
Das Gatter 2 (ein NICHT-Gatter) mit dem Eingang b und mit dem Ausgang c trägt die bei:
(b + d)(b + d) (2).
Das Gatter 3 (ein UND-Gatter) mit den Eingängen d und a und mit dem Ausgang e trägt dies bei:
(d + e)(a + e)(a + d + e) (3).
Das Gatter 4 trägt dies bei:
(c + e + f)(c + e + f)(c + e + f)(c + e + f) (4).
Eine Klausel mit n Literalkonstanten wird eine n-Klausel genannt. Es wird angemerkt, daß das Gatter 1 zwei 2- Klauseln und eine 3-Klausel beiträgt. Eine 2-Klausel bezeichnet eine Variablenabhängigkeit. Zum Beispiel bezeichnet die 2-Klausel (a + c), daß a = 0 ⇒ c = 0 und c = 1 ⇒ a = 1 ist.
Das Produkt aller solcher Klauseln ist die CNF-Formel, für die der SAT-Löser eine Variablenzuordnung finden muß, die diese erfüllt. Es wird angenommen, daß das zu lösende SAT-Problem im Auffinden einer Eingangssignalzuordnung besteht, die f auf 0 setzt. Die entsprechende zu der Formel hinzugefügte 1-Klausel wäre dann
(f) (5).
Es folgt nun eine Diskussion, die das Anwenden des Er­ füllbarkeitsalgorithmus betrifft.
Vor dem Beginn des Zurückverfolgungsverfahrens zum Finden einer Zuordnung, die die Bedingung erfüllt, wird eine Datenstruktur aufgebaut, die die Abhängigkeiten zwischen den von den 2-Klauseln herrührenden Literalkonstanten angibt. Für die Beispielschaltung nach Fig. 2 ist dies in Fig. 3 gezeigt. Diese Datenstruktur wird zum Prüfen auf Implikationen und Widersprüche verwendet.
In der Vorverarbeitungsphase vor Beginn des Zurückverfol­ gungsverfahrens werden Werte auferlegt, die 1-Klauseln entsprechen. Im Ergebnis können einige Klauseln erfüllt und aus der Formel entfernt werden, während einige Klau­ seln kleiner werden, wobei sie in dem Prozeß möglicher­ weise neue 1- und 2-Klauseln erzeugen. Die Erzeugung neuer 1-Klauseln führt zu neuen Werten, die auferlegt werden können, während die Erzeugung von 2-Klauseln zu neuen Abhängigkeiten führt.
Das Verfahren wird wiederholt, bis ein Fixpunkt erreicht ist, d. h., bis es keine weiteren Änderungen in der CNF- Formel gibt. Zum Beispiel folgt mit der Anfangsbedingung von (f) = 0, daß sich die Klauseln für das Gatter 4 (siehe (4) oben) folgendermaßen vereinfachen:
(c + e + 0)(c + e + 0)(c + e + 1)(c + e + 1) (6)
und die folgenden neuen Abhängigkeiten liefern:
(c + e)(c + e ) (7).
In dieser Phase kann ein SAT-Löser ebenfalls versuchen, nichtlokale Implikationen zwischen Variablen in der Schaltung zu finden. Dies geschieht dadurch, daß vorüber­ gehend für jede Variable einzeln ein Wert gesetzt wird und dieser Wert in der CNF-Formel "simuliert wird". Solche Abhängigkeiten werden zu den bereits aus den 2- Klauseln extrahierten Abhängigkeiten hinzugefügt.
Nach dieser Vorverarbeitung wird das Zurückverfolgungs- Verzweigungs- und Begrenzungsverfahren begonnen. Die Ausführung dieses Verfahrens für das vorliegende Beispiel ist in Fig. 4 gezeigt. Da dies ein sehr einfaches Bei­ spiel ist, hat die Formel nach dem Anwenden der Anfangs­ bedingungen nur 2-Klauseln, zeigt aber dennoch das Wesen. Der Prüfer versucht zunächst, die Variable c auf 1 zu setzen (d. h., die Variable c ist auf einen Wert 1 be­ grenzt), läuft aber sofort in einen Widerspruch, indem er die Abhängigkeiten transitiv auf dem Abhängigkeitsgraphen verfolgt (Fig. 3). Als nächstes versucht er den Wert 0 für die Variable c (d. h., die Variable c ist auf einen Wert 0 begrenzt) und findet erfolgreich eine befriedi­ gende Zuordnung a = 0, b = -, wobei "-" einen Unbedeu­ tend-Wert darstellt (d. h., b könnte entweder 0 oder 1 sein).
Es wird nun die Integration der SAT-Prüfung und der BDDS diskutiert.
Zum Erfassen des Ausgangslastabschnitts 40 der Gehrungs­ schaltung 10 wird ein BDD verwendet, während zum Erfassen des Eingangslastabschnitts 30 SAT-Klauseln verwendet werden. Da die Aufgabe darin besteht zu prüfen, ob das Gehrungsausgangssignal auf '1' gesetzt werden kann, besteht eine gültige Lösung der Primäreingangssignale in einer Zuordnung, die sowohl die SAT-Klauseln erfüllt als auch zu dem Anfang des BDDs gehört (der BDD-Anfang ist die Menge der Werte, für die das BDD "an" ist, d. h. der Werte, für die das BDD an seinem Ausgang eine '1' oder einen positiven Wert erzeugt). Mit anderen Worten, ein von null verschiedener Durchschnitt wird zwischen der SAT-Lösung und dem BDD-Anfang gesucht. Es wird angemerkt, daß das BDD und die SAT-Klauseln die Variablen, die Knoten in der Schnittmenge (d. h. Knoten entlang der Grenze 20) darstellen, gemeinsam nutzen. Diese Variablen sind die Schnittmengenvariablen.
In gewisser Hinsicht kann das BDD als eine Ersetzung der SAT-Klauseln für den Ausgangslastabschnitt 40 betrachtet werden, der in einer SAT-Klausel-Darstellung der gesamten Schaltung erschienen wäre. Die Ursache dafür, daß an­ stelle einer SAT-Klausel ein BDD verwendet werden kann, besteht darin, daß es direkt alle Beziehungen zwischen dem Gehrungsausgang z und den Variablen, die andere Knoten in dem Ausgangslastabschnitt 40 darstellen, er­ faßt. Andernfalls wären diese Abhängigkeiten, wie oben beschrieben wurde, aus den SAT-Klauseln extrahiert wor­ den. Im Prinzip kann irgendeine Partition einer Schaltung mit BDDs dargestellt werden und über eine Schnittstelle mit dem Rest der Schaltung verbunden werden, wobei der Rest der Schaltung als SAT-Klauseln dargestellt wird. Die Forderung besteht darin, daß die BDDs alle Beziehungen zwischen Variablen in dieser Partition und Variablen an den Grenzen erfassen sollen. Wo sich eine BDD-Partition in der Mitte eines Schaltnetzes befindet, erfordert dies die Verwendung einer charakteristischen Funktion zum Erfassen der Beziehungen quer durch die BDD-Partition. Im Vergleich ist die Verwendung eines BDDs zum Erfassen des Ausgangslastabschnitts 40 eines einzelnen Ausgangs ver­ hältnismäßig leichter. Auf diese Weise können BDDS nicht nur wie in dem obigen Beispiel in dem Kontext der Nach­ prüfung, sondern auch in anderen SAT-basierten Anwendun­ gen direkt zum Reduzieren der Größe des ursprünglichen SAT-Problems verwendet werden.
Zwei allgemeine Möglichkeiten zum Kombinieren von BDDs mit einem SAT-Prüfer umfassen eine BDD-Würfelspezifizie­ rung und eine SAT-Lösungsspezifizierung. Zwei Möglichkei­ ten für die SAT-Lösungsspezifizierung umfassen einen Konsistenzzugang und einen Frühbegrenzungszugang. Unten wird zunächst die BDD-Würfelspezifizierung beschrieben, auf die eine Beschreibung des Konsistenzzugangs und dann eine Beschreibung des Frühbegrenzungszugangs folgt.
Zunächst wird die BDD-Würfelspezifizierung beschrieben. Gemäß der BDD-Würfelspezifizierung wird jeder die Bedin­ gung erfüllende Würfel des BDDs spezifiziert. Von jedem Würfel, d. h. von jeder vollen oder teilweisen Zuordnung zu den Schnittmengenvariablen, kann eine Schnittstelle zu dem SAT-Prüfer in Form vom 1-Klauseln hergestellt werden, die zu den Klauseln für den Rest der Schaltung hinzuge­ fügt werden. Das SAT-Problem wird unabhängig für jeden Würfel gelöst. Falls für die vorliegende Erfindung ir­ gendeines dieser Probleme zu einer Lösung führt, ist die Lösung ein Gegenbeispiel für das Schaltnetz-Nachprüfungs­ problem. Mit anderen Worten, wenn eine 1 (oder eine positive Zahl) erzeugt wird, existiert ein Fall, in dem die zwei verglichenen Schaltnetze nicht äquivalent sind.
Die Verwendung der BDD-Würfelspezifizierung besitzt Nachteile. Ein solcher Nachteil besteht darin, daß die Anzahl der BDD-Würfel untragbar groß sein kann. Ein weiterer Nachteil besteht darin, daß der SAT-Löser die Arbeit fuhr mehrere Würfel wiederholt. Obgleich es somit im Prinzip möglich sein kann, die Berechnung zwischen mehreren Würfeln gemeinsam zu nutzen, ist derzeit kein solches Verfahren verfügbar.
Anstelle des Abzählens des BDD-Anfangs besteht eine Alternative darin, statt dessen die SAT-Lösungen abzuzäh­ len, und zu prüfen, ob jede der mehreren Lösungen zu dem BDD-Anfang gehört. Obgleich das Abzählen der SAT-Lösungen prinzipiell ebenso aufwendig wie das Abzählen des BDD- Anfangs ist, sind seine potentiellen Vorteile, daß (1) SAT-Lösungen implizit unter Verwendung von Zurückverfol­ gungsverfahren spezifiziert werden können und daß (2) das Überprüfen, ob eine gegebene Zuordnung zu dem BDD-Anfang gehört, ein zeitlich lineares Problem ist, im Vergleich zum Lösen eines SAT-Problems für jeden Würfel, das ein NP-schweres Problem ist.
Gemäß einem Konsistenzzugang fährt der SAT-Prüfer wie üblich fort, wobei aber jedesmal, wenn er mit einer Lösung zurückkommt, geprüft wird, daß die Zuordnung zu den Schnittmengenvariablen zu dem BDD-Anfang gehört (siehe den Pseudocode in Fig. 5). Mit anderen Worten, jede SAT-Lösung wird auf die Konsistenz mit dem BDD geprüft. Falls die SAT-Lösung zu dem BDD-Anfang gehört, wird sie als eine gültige Lösung akzeptiert und liefert ein Gegenbeispiel zu dem Schaltnetz-Nachprüfungsproblem (d. h., sie wird als ein Beweis akzeptiert, daß die zwei Schaltnetze nicht äquivalent sind). Falls die SAT-Lösung nicht zu dem BDD-Anfang gehört, wird die letzte Varia­ blenzuordnung in der SAT-Verzweigung und das Begrenzungs­ verfahren rückgängig gemacht und erforderlichenfalls ein Zurückverfolgen ausgeführt. Dieser Zugang reduziert in keiner Weise die Anzahl der Zurückverfolgungen oder führt in keiner Weise zu einer weiteren Vereinfachung des SAT- Lösens.
Bezüglich einer Verwirklichung umfaßt dieser Zugang minimale Änderungen an einem existierenden SAT-Prüfer. Der Pseudocode ist wie der in Fig. 5 für das rekursive sat_branch-Verfahren gezeigte, bei dem die relevanten SAT-Datenstrukturargumente für Erläuterungszwecke zusam­ mengefaßt als sat dargestellt sind. Jedesmal, wenn keine Zuordnung zu einer neuen Variable vorzunehmen ist, d. h., wenn die Prozedur find_next_literal NIL zurückgibt, gibt sie an, daß eine SAT-Lösung gefunden wurde. Somit wird unter Verwendung von check_consistency_with_cutset_bdd eine Konsistenzprüfung mit dem BDD ausgeführt. Falls die Konsistenzprüfung erfolgreich ist, wurde eine gültige Lösung gefunden, wobei eine erfolgreiche Rückkehr (d. h. ein Beweis der Nichtexistenz) erfolgt. Falls das nicht der Fall ist, erfolgt eine Rückkehr mit einem Fehler, wobei die aufrufende Prozedur die letzte Zuordnung ent­ sprechend rückgängig macht. Die Konsistenzprüfung selbst kann unter Verwendung von bei Standard-BDD-Paketen ver­ fügbaren Standard-BDD-Operationen (bdd_substitute oder bdd_and) ausgeführt werden. Als ein Beispiel eines Stan­ dard BDD-Pakets wird Bezug auf D. E. Long, "BDD-Package", 1993, School of Computer Science, Carnegie Mellon Univer­ sity, Pittsburgh, PA, genommen.
Die derzeit zweckmäßige Ausführung der Erfindung wendet einen Frühbegrenzungszugang an. Der Frühbegrenzungszugang wird nun mit Bezug auf Fig. 6 beschrieben, die Pseudocode für eine mögliche Verwirklichung dieses zweckmäßigen Zugangs enthält.
Es wird daran erinnert, daß das BDD für den Ausgangs­ lastabschnitt 40 und die SAT-Klauseln für den Eingangs­ lastabschnitt 30 die Schnittmengenvariablen gemeinsam nutzen. Gemäß der Erfindung wird jedesmal, wenn irgend­ eine Schnittmengenvariable in dem SAT-Verzweigungs- und Begrenzungsverfahren begrenzt wird, der Wert der Schnitt­ mengenvariable und irgendwelcher anderen derzeit begrenz­ ten Variablen mit dem BDD verglichen. Anders gesagt, wird jede Teilzuordnung von Variablen zu Schnittmengenvaria­ blen auf einen von null verschiedenen Durchschnitt mit dem BDD-Anfang geprüft. Falls die Teilzuordnung den BDD- Anfang in einer von null verschiedenen Weise schneidet, versucht der SAT weiter, eine Lösung zu finden, indem er weiter Werte für die verbleibenden Schnittmengenvariablen setzt.
Falls die Teilzuordnung den BDD-Anfang jedoch nicht in einer von null verschiedenen Weise schneidet, hat es keinen Sinn zuzulassen, daß der SAT eine SAT-Lösung zu finden versucht, da sich irgendeine erreichte SAT-Lösung nicht als tauglich für den BDD erweisen würde. Mit ande­ ren Worten, wo eine Teilzuordnung den BDD-Anfang nicht schneidet, können auf der Grundlage dieser Teilzuordnung alle möglichen Lösungen sofort ausgeschlossen werden. Ein nachfolgendes Verzweigen von dieser Teilzuordnung wird vermieden, so daß große Teilräume des Entscheidungsbaums, die mit dem BDD-Anfang inkonsistent sind, weggestrichen werden.
Hinsichtlich einer Verwirklichung werden die Schnittmen­ gen-Variablenzuordnungen verwendet, um außerdem die entsprechenden Projektionen des BDD-Anfangs in irgend­ einem Punkt in dem rekursiven Entscheidungsbaum zu ver­ folgen. Die Pseudocodes für die Verfahren sat bound und sat_branch sind in Fig. 6 gezeigt. Jedesmal, wenn die Variable, die in der sat bound-Prozedur begrenzt wird, eine Schnittmengenvariable ist, wird sie unter Verwendung der Prozedur project_variable_in_bdd in das Argument-BDD projiziert. Falls das resultierende BDD gleich dem Zero_bdd ist, gibt es einen Durchschnitt null mit dem Gehrungs-BDD, wobei der Prozeß mit einem Fehler zurück­ kehrt. Andernfalls wird das projizierte BDD an die aufru­ fende Prozedur übergeben. Wegen der sat_branch-Prozedur wird angemerkt, daß sie lediglich die geeigneten BDDs verfolgt, die als Argumente an die rekursiven Aufrufe weiterzuleiten sind. Da alle Projektionen in dem BDD mit den SAT-Zuordnungen zu den Schnittmengenvariablen konsi­ stent gehalten werden, gibt es keinen Bedarf an einer abschließenden Konsistenzprüfung, wenn eine SAT-Lösung abgeschlossen ist.
Bezüglich der Prozedur project_variable_in_bdd kann diese leicht entweder unter Verwendung der Operation BDD sub­ stitute oder der Operation BDD cofactor, die in Standard- BDD-Paketen verfügbar sind, realisiert werden.
Die derzeit zweckmäßige Ausführung besteht somit darin, die SAT-Prüfung und die BDDs unter Verwendung eines Frühbegrenzungszugangs zu integrieren, um dort, wo Teil­ zuordnungen der Schnittmengenvariablen den BDD-Anfang nicht schneiden, eine nutzlose SAT-Lösungssuche zu ver­ meiden.
In einer letzten Ausführung der Erfindung wird der Frühbe­ grenzungszugang durch Spezial-BDD-Operationen ergänzt.
Wie oben erwähnt wurde, kann die Prozedur pro­ ject_variable_in_bdd entweder unter Verwendung der in Standard-BDD-Paketen verfügbaren BDD-Ersatz- oder BDD- Kofaktor-Operation realisiert werden. Diese Operationen können jedoch das SAT-Verfahren für große BDDs beträcht­ lich verlangsamen. In dieser besonderen Anwendung ist es interessant festzustellen, daß die vollständige Menge der Manipulationsmöglichkeiten eines BDD-Pakets, sobald das Gehrungs-BDD erzeugt ist, während des Rests der Anwendung nicht wirklich erforderlich ist. Tatsächlich sind die einzigen zwei erforderlichen Operationen:
  • - Projektion einer Variablen in ein BDD und
  • - Prüfen, ob ein BDD gleich dem Zero_bdd ist.
Weiterhin wird jede Operation beim Begrenzen einer Schnittmengenvariablen einmal verwendet. Bei Standard- BDD-Operationen ist die erstere (schlimmstenfalls) pro­ portional zur Größe des BDD, während die letztere eine Konstantzeit-Operation ist.
Es werden nun mit Bezug auf Fig. 8 die Spezial-BDD-Opera­ tionen diskutiert. In einer zweckmäßigen Ausführung wird auf die kanonische Eigenschaft eines BDD zugunsten des Eliminierens der Erzeugung neuer BDD-Knoten verzichtet. Um die Schnittmengen-Variablenzuordnungen zu verfolgen, wird eine einfache Assoziationsliste verwendet. Das Projizieren (und Entprojizieren) einer Variablen wird einfach durch Setzen (oder durch Rücksetzen) ihres Werts in der Assoziation bewirkt. Das Projizieren einer Varia­ blen bedeutet, daß ihr Wert auf Boolesch 1 oder 0 gesetzt wird; das Entprojizieren bedeutet, daß sie einen "ungültigen" Wert erhält, der angibt, daß die Variable nicht gesetzt ist. Die Variablen in der Assoziationsliste können somit logisch 1, 0 oder ungesetzt sein. Jedoch erfordert das Vergleichen mit einem Zero_bdd ein Durch­ queren des BDD, wobei Verzweigungen genommen werden, die von der Variablenassoziation vorgeschrieben werden. Falls irgendein Weg zu einem One_bdd gefunden wird, wird das Durchqueren abgeschlossen, wobei dem BDD bescheinigt wird, daß es nicht gleich dem Zero_BDD ist. Im schlimm­ sten Fall ist die dazu erforderliche Zeit proportional zu der Größe des BDD. Somit beseitigen diese Spezialopera­ tionen das aufwendige Nachschlagen in dem Cache und das Unterhalten der eindeutigen Knotentabelle in Standard- BDD-Operationen, ohne die Gesamtkomplexität zu beeinflus­ sen.
Somit verwendet die Erfindung die BDDs, um die SAT-Pro­ blemgröße und die Anzahl der Zurückverfolgungen (d. h. der "Zurücks") zu verringern; sie vermeidet die explizite Spezifizierung der BDD-Würfel; sie schafft die Frühbe­ grenzung während des SAT-Entscheidungsverfahrens; und sie verwendet Spezial-BDD-Operationen zum Verbessern der Laufzeit.
Unten ist ein experimenteller Beweis für die Verbesserun­ gen dargestellt, die durch jede dieser Maßnahmen erhalten werden. Gegen Ende werden einige experimentelle Ergeb­ nisse zur Verwendung des Verfahrens der Erfindung in einem iterativen Rahmen bereitgestellt, wobei nach intern äquivalenten Knoten gesucht wird und wobei diese, im wesentlichen im Stil der obenbeschriebenen Verfahren, beginnend von den Primäreingangssignalen aufeinanderfol­ gend ersetzt werden.
Alle in diesem Abschnitt berichteten Experimente wurden auf einer SUN ULTRA-Workstation mit 128 MB Hauptspeicher ausgeführt. Der Prototyp wurde in SIS realisiert, wobei er den SAT-Prüfer TEGUS und das Paket CMU BDD enthält. Zusätzliche Hintergrundinformationen in bezug auf SIS finden sich in E. M. Sentovich, K. J. Singh, C. Moon, H. Savoj, R. K. Brayton und A. Sangiovanni-Vincentelli, "Sequential circuit design using synthesis and optimiza­ tion", in Proceedings of the IEEE International Confe­ rence on Computer Design, 1992, wobei dieses Dokument hier durch Literaturverweis eingefügt ist. Weitere Infor­ mationen hinsichtlich TEGUS finden sich in P. Stephan, R. Brayton und A. Sangiovanni-Vincentelli, "Combinational Test Generation Using Satisfiability", in IEEE Transacti­ ons on Computer Assisted Design of Integrated Circuits and Systems, 15(9), September 1996, wobei dieses Dokument wegen seiner nützlichen Hintergrundinformationen hier ebenfalls durch Literaturverweis eingefügt ist.
Bezüglich der Vergleichsschaltungen bzw. Benchmark- Schaltungen stand im Mittelpunkt die Schaltung C6288 aus der ISCAS-Programmfamilie (wegen des Hintergrunds über die ISCAS-Programmfamilie wird auf F. Brglez, D. Bryan und K. Kozminski, "Combinational Profiles of Sequential Benchmark Circuits", in Proceedings of the International Symposium on Circuits and Systems, Portland, Oregon, Mai 1989) Bezug genommen. Da alle anderen ISCAS-Schaltungen leicht allein mit BDDs behandelt werden können (für die C6288 konnte nur bis zum 13. Ausgangssignal unter Verwendung allein von BDDs geprüft werden), stand diese Schaltung im Mittelpunkt. Außerdem kann eine nichtredundante Version des C6288 leicht allein mit SAT behandelt werden. Somit wurde für die Äquivalenzprüfung eine von SIS (script.rugged) erzeugte synthetisierte Version der Schaltung - C6288_opt - verwendet. Alle Experimente wurden zur Nachprüfung des Ausgangssignals der aus dem C6288 und aus dem C6288_opt gebildeten Gehrungsschaltung ausgeführt. Das BDD wurde dadurch erhalten, daß von dem Gehrungsausgang zurückersetzt wurde, bis eine BDD-Knotengrenze von 500 K Knoten erreicht wurde.
Tabelle 1 faßt die Ergebnisse für die Verwendung von mit BDDs integrierten SAT (SAT+BDDs) gegenüber der Verwendung allein von SAT zusammen. Für beide Zugänge listet die Spalte 1 das betrachtete Ausgangssignal, die Spalte 2 die Anzahl der Knoten/Ebenen in der Schaltung auf. Für SAT+BDDs listet die Spalte 3 die Ebene, auf der die Schnittmenge gebildet wurde, Spalte 4 die Größe des erhaltenen BDDS, Spalte 5 die Anzahl der Kno­ ten/Literalkonstanten in der SAT-Partition, Spalte 6 die Anzahl der erforderlichen Zurückverfolgungen und Spalte 7 die CPU-Zeit auf. Für SAT allein listet die Spalte 8 die Anzahl der Literalkonstanten in der gesamten Schaltung, Spalte 9 die Anzahl der erforderlichen Zurückverfolgungen und Spalte 10 die CPU-Zeit auf. Ein "T" in der Spalte bezeichnet für dieses Experiment eine Zeitüberschreitung nach 30 Stunden (für alle Ausgangssignale).
Tabelle 1
Vergleich zwischen SAT+BDDs und SAT allein
Es wird angemerkt, daß der SAT-Prüfer in dem SAT+BDDs- Zugang für die (in der Tabelle nicht gezeigten) ersten acht Ausgangssignale überhaupt nicht aufgerufen wurde, d. h., daß gefunden wurde, daß das BDD selbst konstant "0" ist. Die letzte Spalte in der Tabelle listet den Reduktionsfaktor für die Anzahl der mit den SAT+BDDs im Vergleich zu dem SAT allein erhaltenen Zurückverfolgungen auf. Für die Ausgangssignale, die mit beiden Zugängen geprüft werden konnten, wurde ein Reduktionsfaktor von bis zu 27 erhalten. Es wird außerdem angemerkt, daß der erstere die Nachprüfung bis zu dem 16. Ausgangssignal abschließt, während der letztere nach dem 13. aufgibt. Für dieses Experiment wurde der Frühbegrenzungszugang für die SAT+BDDs verwendet. Diese Gewinne ergeben sich sowohl infolge der Reduktion der SAT-Problemgröße (vergleiche die Spalten 5 und 8) als auch infolge der Frühbegrenzung der Schnittmengenvariablen unter Verwendung von BDDs.
Tabelle 2 faßt die Ergebnisse zusammen, die die Vorteile der SAT-Lösungsspezifizierung mit der Frühbegrenzung unter Verwendung von Spezial-BDD-Operationen demonstrie­ ren. Die ersten vier Spalten besitzen die gleiche Erklä­ rung wie in Tabelle 1. Ein "T" in der Spalte gibt eine Zeitüberschreitung nach 3 Stunden an. Wieder wird für die (in der Tabelle nicht gezeigten) ersten acht Ausgangs­ signale überhaupt kein SAT+BDD-Prüfer aufgerufen.
Die Spalte 5 listet die Anzahl der zu prüfenden BDD- Würfel auf, während Spalte 6 die benötigte Zeit aufli­ stet. Für das 9. Ausgangssignal wurde der BDD-Würfelspe­ zifizierungszugang nicht abgeschlossen. Dies liegt in erster Linie an der großen Anzahl - 1.250 Millionen - von Würfeln, die spezifiziert und unabhängig geprüft werden müssen. Demgegenüber konnte der SAT-Lösungsspezifizie­ rungszugang, wie in Spalte 8 gezeigt ist, mit dem glei­ chen Zeitaufwand bis zu dem 14. Ausgangssignal abge­ schlossen werden.
Die Spalten 7 und 8 listen die Anzahl der Zurückverfol­ gungen sowie die von dem Frühbegrenzungszugang benötigte Zeit auf, während die Spalten 9 und 10 diese jeweils für den Konsistenzzugang auflisten. Es wird angemerkt, daß der Reduktionsfaktor in der Anzahl der Zurückverfolgungen für die in der gegebenen Zeitgrenze zum Vergleich verfüg­ baren Ausgangssignale bis zu 34 betrug. Da die Anzahl der Zurückverfolgungen in dem Konsistenzzugang an die des SAT-Zugangs angeglichen ist, demonstriert dies nochmals den Vorteil gegenüber dem SAT allein.
Schließlich listen die Spalten 8 und 11 die mit den Spezial- bzw. mit den Standard-BDD-Operationen benötigte CPU-Zeit auf. Es wird angemerkt, daß in der gegebenen Zeitgrenze eine bis zu 65%ige Reduktion der benötigten Zeit verwirklicht wurde. Es ist zu erwarten, daß solche Gewinne wesentlich werden, wenn die BDDs- und die SAT- Partition größer werden.
Tabelle 2
Ergebnisse für die SAT-Spezifizierung mit Frühbegrenzung und Spezial-BDD-Operationen
Das SAT+BDD-Äquivalenzverfahren kann außerdem den Kern­ schritt eines iterativen Ersetzungsverfahrens bilden, das (1) nach Anwärtern für äquivalente Paare in der Gehrung sucht; (2) die Äquivalenz jedes Paars zu überprüfen versucht; und (3) die Knoten aufeinanderfolgend ersetzt, wenn gefunden wurde, daß sie äquivalent sind.
In dem iterativen Verfahren gemäß einer letzten Ausführung der Erfindung wird in Schritt 1 zum Bilden einer Liste von Anwärtern auf äquivalente Paare eine Simulation eines zufälligen Musters verwendet. Schritt 2 wird unter Ver­ wendung von SAT+BDDs gemäß der Erfindung ausgeführt. Bei Anwendung auf die Gehrungsschaltung für den C6288 konnte unter Verwendung dieses Zugangs die Äquivalenz nachgewie­ sen werden.
Es ist klar, daß die oben angegebene Erfindung in allen ihren Ausführungen in einem Computersystem ausgeführt werden kann, das Hardware und Software enthält, die ermöglicht, daß es den Frühbegrenzungszugang und die Spezial-BDD-Operationen ausführt. Ähnlich kann die oben angegebene Erfindung in einem Computerprogrammprodukt ausgeführt werden.
Auf einer praktischen Ebene wird die Software, die das Computersystem zum Ausführen des oben angegebenen Zugangs und der oben angegebenen Operationen der Erfindung befä­ higt, auf irgendeinem von einer Mehrzahl von Medien geliefert. Außerdem sind die tatsächliche Verwirklichung des Zugangs und der Operationen der Erfindung tatsächli­ che, in einer Programmiersprache geschriebene Anweisun­ gen. Wenn solche Programmiersprachenanweisungen von einem Computer ausgeführt werden, bewirken sie, daß der Compu­ ter gemäß dem besonderen Inhalt der Anweisungen arbeitet. Weiterhin kann die Software, die bewirkt, daß ein Compu­ tersystem in Übereinstimmung mit der Erfindung arbeitet, in irgendeiner Anzahl von Formen, einschließlich, aber nicht beschränkt auf, Original-Quellcode, Assemblercode, Objektcode, Maschinensprache, komprimierten oder ver­ schlüsselten Versionen der vorangehenden sowie irgendwel­ chen Äquivalenten, bereitgestellt werden.
Dem Fachmann auf dem Gebiet ist klar, daß "Medien" oder "computerlesbare Medien" wie hier verwendet eine Dis­ kette, ein Band, eine Compakt Disk, eine integrierte Schaltung, eine Einschubkassette, eine Fernübertragung über eine Kommunikationsschaltung oder über irgendein anderes ähnliches von Computern verwendbares Medium umfassen kann. Zum Beispiel könnte der Lieferant zur Lieferung von Software, die ermöglicht, daß ein Computer­ system in Übereinstimmung mit der Erfindung arbeitet, eine Diskette liefern oder die Software in einer gewissen Form über eine Satellitenübertragung, über eine Telephon- Direktverbindung oder über das Internet übertragen.
Obgleich die Software, die dies ermöglicht, "auf" einer Diskette "geschrieben" sein, "in" einer integrierten Schaltung gespeichert" oder "über" eine Kommunikations­ schaltung "übertragen" werden könnte, ist klar, daß für die Zwecke dieser Erfindung davon gesprochen wird, daß das von Computern verwendbare Medium die Software "trägt". Somit soll der Begriff "tragen" die obigen und alle äquivalenten Möglichkeiten umfassen, durch die Software mit einem von Computern verwendbaren Medium verknüpft ist.
Wie oben definiert wurde, wird der Begriff "Programmprodukt" für die Zwecke dieser Erfindung somit zum Bezug auf ein wie oben definiertes von Computern verwendbares Medium verwendet, das in irgendeiner Form Software trägt, die ermöglicht, daß ein Computersystem gemäß der oben angegebenen Erfindung arbeitet.
Somit wird die Erfindung ebenfalls in einem Programmpro­ dukt ausgeführt, das Software trägt, die ermöglicht, daß ein Computer Operationen gemäß der Erfindung ausführt.
Schließlich ist selbstverständlich, daß die Erfindung in einem Verfahren zum Lösen des Schaltnetz-Nachprüfungspro­ blems ausgeführt wird, das die oben dargestellten Schritte umfaßt.
Die Erfindung soll nicht nur mit Bezug auf die obenbe­ schriebenen Beispiele, sondern mit Bezug auf irgendwelche Äquivalente in Übereinstimmung mit den beigefügten An­ sprüchen verstanden werden.

Claims (9)

1. Verfahren zum Bestimmen der Nichtäquivalenz zwischen zwei Schaltnetzen, wobei das Verfahren umfaßt:
Kombinieren der zwei Schaltnetze in einer Geh­ rungsschaltung
Partitionieren der Gehrungsschaltung entlang einer Grenze, die jedes der zwei Schaltnetze in eine jeweilige Eingangslastfaktorpartition und in eine jewei­ lige Ausgangslastfaktorpartition trennt, wobei die Varia­ blen der zwei Schaltnetze eine Menge von durch die Grenze definierten Schnittmengenvariablen umfassen;
Definieren eines binären Entscheidungsdiagramms für die jeweiligen Ausgangslastfaktorpartitionen, wobei das binäre Entscheidungsdiagramm einen jeweiligen binären Entscheidungsdiagrammanfang besitzt;
Definieren einer Menge Boolescher Erfüllbarkeits­ klauseln für die jeweiligen Eingangslastfaktorpartitio­ nen, wobei die Schnittmengenvariablen ein Ausgangssignal der Booleschen Erfüllbarkeitsklauseln bilden, während die Schnittmengenvariablen ein Eingangssignal des binären Entscheidungsdiagramms bilden;
Ausführen einer Booleschen Erfüllbarkeitsprüfung zum Finden von Erfüllbarkeitslösungen für die Menge der Booleschen Erfüllbarkeitsklauseln einschließlich Begren­ zungswerten für die in der Menge der Booleschen Erfüll­ barkeitsklauseln enthaltenen Variablen zum Definieren momentan begrenzter Variablen;
jedesmal, wenn eine der auf einen Wert begrenzten Variablen eine Variable der Menge der Schnittmengenvaria­ blen ist, Prüfen der Werte der momentan begrenzten Varia­ blen der Menge der Schnittmengenvariablen, um eine Be­ stimmung auszuführen, ob die Werte der momentan begrenz­ ten Variablen der Menge der Schnittmengenvariablen einen von null verschiedenen Durchschnitt mit dem Anfang des binären Entscheidungsdiagramms besitzen;
vorwärtsgerichtetes Fortfahren bei der Ausführung der Booleschen Erfüllbarkeitsprüfung, wenn die Bestimmung den von null verschiedenen Durchschnitt angibt; und Zurückverfolgen bei der Ausführung der Booleschen Erfüllbarkeitsprüfung, wenn die Bestimmung den Null- Durchschnitt angibt.
2. Verfahren zum Bestimmen der Nichtäquivalenz zwischen zwei Schaltnetzen nach Anspruch 1, wobei:
der Schritt des Definierens eines binären Ent­ scheidungsdiagramms in der Weise ausgeführt wird, daß ein kanonisches binäres Entscheidungsdiagramm definiert wird; und
in dem Schritt des Prüfens der Werte der momentan begrenzten Variablen der Menge der Schnittmengenvariablen die Bestimmung auf dem kanonischen binären Entscheidungs­ diagramm beruht.
3. Verfahren zum Bestimmen der Nichtäquivalenz zwischen zwei Schaltnetzen nach Anspruch 1, wobei:
die momentan begrenzten Variablen der Menge der Schnittmengenvariablen eine neu begrenzte Schnittmengen­ variable enthalten;
das binäre Entscheidungsdiagramm Knoten ein­ schließlich eines Astknotens und einschließlich Endknoten umfaßt, wobei zwischen dem Astknoten und den Endknoten Wege verlaufen und logisch angrenzende Knoten entlang der Wege durch Kanten verbunden sind; der Schritt des Prüfens der Werte der momentan begrenzten Variablen der Schnittmengenvariablen zum Durchführen einer Bestimmung in folgender Weise ausge­ führt wird:
Vorbereiten einer Assoziationsliste, die die Werte der momentan begrenzten Variablen der Schnittmen­ genvariablen und der Knoten zuordnet;
Projizieren der neu begrenzten Schnittmengenva­ riablen auf das binäre Entscheidungsdiagramm durch Notie­ ren des Werts der neu begrenzten Schnittmengenvariablen in der Assoziationsliste; und
Bestimmen, ob einer der Wege existiert, für den die Kanten mit den momentan begrenzten Variablen der Schnittmengenvariablen konsistent sind, und für den der Endknoten einen vorgegebenen Wert hat, der den Erfolg anzeigt; und
wobei der Schritt des Zurückverfolgens das Ent­ projizieren der neu begrenzten Schnittmengenvariablen durch Setzen ihres entsprechenden Werts in der Assoziati­ onsliste auf einen vorgegebenen ungültigen Wert umfaßt.
4. Computersystem, das so beschaffen ist, daß mit ihm die Nichtäquivalenz zwischen zwei Schaltnetzen be­ stimmt werden kann, wobei das Computersystem enthält:
einen Prozessor, und
einen Speicher einschließlich Softwareanweisun­ gen, die so beschaffen sind, daß das Computersystem die folgenden Schritte ausführen kann:
Kombinieren der zwei Schaltnetze in einer Geh­ rungsschaltung;
Partitionieren der Gehrungsschaltung entlang einer Grenze, die jedes der zwei Schaltnetze in eine jeweilige Eingangslastfaktorpartition und in eine jewei­ lige Ausgangslastfaktorpartition trennt, wobei die Varia­ blen der zwei Schaltnetze eine Menge von durch die Grenze definierten Schnittmengenvariablen umfassen;
Definieren eines binären Entscheidungsdiagramms für die jeweiligen Ausgangslastfaktorpartitionen, wobei das binäre Entscheidungsdiagramm einen jeweiligen binären Entscheidungsdiagrammanfang besitzt;
Definieren einer Menge Boolescher Erfüllbarkeits­ klauseln für die jeweiligen Eingangslastfaktorpartitio­ nen, wobei die Schnittmengenvariablen ein Ausgangssignal der Booleschen Erfüllbarkeitsklauseln bilden, während die Schnittmengenvariablen ein Eingangssignal des binären Entscheidungsdiagramms bilden;
Ausführen einer Booleschen Erfüllbarkeitsprüfung zum Finden von Erfüllbarkeitslösungen für die Menge der Booleschen Erfüllbarkeitsklauseln einschließlich Begren­ zungswerten für die in der Menge der Booleschen Erfüll­ barkeitsklauseln enthaltenen Variablen zum Definieren momentan begrenzter Variablen;
jedesmal, wenn eine der auf einen Wert begrenzten Variablen eine Variable der Menge der Schnittmengenvaria­ blen ist, Prüfen der Werte der momentan begrenzten Varia­ blen der Menge der Schnittmengenvariablen, um eine Be­ stimmung auszuführen, ob die Werte der momentan begrenz­ ten Variablen der Menge der Schnittmengenvariablen einen von null verschiedenen Durchschnitt mit dem Anfang des binären Entscheidungsdiagramms besitzen;
vorwärtsgerichtetes Fortfahren bei der Ausführung der Booleschen Erfüllbarkeitsprüfung, wenn die Bestimmung den von null verschiedenen Durchschnitt angibt; und
Zurückverfolgen bei der Ausführung der Booleschen Erfüllbarkeitsprüfung, wenn die Bestimmung den Null- Durchschnitt angibt.
5. Computersystem, das so beschaffen ist, daß mit ihm die Nichtäquivalenz zwischen zwei Schaltnetzen be­ stimmt werden kann, nach Anspruch 4, wobei der Speicher weiter Softwareanweisungen enthält, die so beschaffen sind, daß das Computersystem weiter folgendes vermag:
Ausführen des Schritts des Definierens eines binären Entscheidungsdiagramms in der Weise, daß ein kanonisches binäres Entscheidungsdiagramm definiert wird; und
in dem Schritt des Prüfens der Werte der momentan begrenzten Variablen der Menge der Schnittmengenvariablen Ausführen der Bestimmung auf der Grundlage des kanoni­ schen binären Entscheidungsdiagramms.
6. Computersystem, das so beschaffen ist, daß mit ihm die Nichtäquivalenz zwischen zwei Schaltnetzen be­ stimmt werden kann, nach Anspruch 4, wobei die Softwa­ reanweisungen so beschaffen sind, daß das Computersystem in der Weise arbeiten kann, daß:
die momentan begrenzten Variablen der Menge der Schnittmengenvariablen eine neu begrenzte Schnittmengen­ variable enthalten;
das binäre Entscheidungsdiagramm Knoten ein­ schließlich eines Astknotens und einschließlich Endknoten umfaßt, wobei zwischen dem Astknoten und den Endknoten Wege verlaufen und logisch angrenzende Knoten entlang der Wege durch Kanten verbunden sind;
der Schritt des Prüfens der Werte der momentan begrenzten Variablen der Schnittmengenvariablen zum Durchführen einer Bestimmung in folgender Weise ausge­ führt wird:
Vorbereiten einer Assoziationsliste, die die Werte der momentan begrenzten Variablen der Schnittmen­ genvariablen und der Knoten zuordnet;
Projizieren der neu begrenzten Schnittmengenva­ riablen auf das binäre Entscheidungsdiagramm durch Notie­ ren des Werts der neu begrenzten Schnittmengenvariablen in der Assoziationsliste; und
Bestimmen, ob einer der Wege existiert, für den die Kanten mit den momentan begrenzten Variablen der Schnittmengenvariablen konsistent sind, und für den der Endknoten einen vorgegebenen Wert hat, der den Erfolg anzeigt; und
wobei der Schritt des Zurückverfolgens das Ent­ projizieren der neu begrenzten Schnittmengenvariablen durch Setzen ihres entsprechenden Werts in der Assoziati­ onsliste auf einen vorgegebenen ungültigen Wert umfaßt.
7. Computerprogrammprodukt, das einem Computer ermöglicht, die Nichtäquivalenz zwischen zwei Schaltnet­ zen zu bestimmen, mit:
Softwareanweisungen, die ermöglichen, daß der Computer vorgegebene Operationen ausführt, und einem computerlesbaren Medium, das die Softwa­ reanweisungen trägt;
wobei die vorgegebenen Operationen die folgenden Schritte umfassen:
Kombinieren der zwei Schaltnetze in einer Geh­ rungsschaltung;
Partitionieren der Gehrungsschaltung entlang einer Grenze, die jedes der zwei Schaltnetze in eine jeweilige Eingangslastfaktorpartition und in eine jewei­ lige Ausgangslastfaktorpartition trennt, wobei die Varia­ blen der zwei Schaltnetze eine Menge von durch die Grenze definierten Schnittmengenvariablen umfassen;
Definieren eines binären Entscheidungsdiagramms für die jeweiligen Ausgangslastfaktorpartitionen, wobei das binäre Entscheidungsdiagramm einen jeweiligen binären Entscheidungsdiagrammanfang besitzt;
Definieren einer Menge Boolescher Erfüllbarkeits­ klauseln für die jeweiligen Eingangslastfaktorpartitio­ nen, wobei die Schnittmengenvariablen ein Ausgangssignal der Booleschen Erfüllbarkeitsklauseln bilden, während die Schnittmengenvariablen ein Eingangssignal des binären Entscheidungsdiagramms bilden;
Ausführen einer Booleschen Erfüllbarkeitsprüfung zum Finden von Erfüllbarkeitslösungen für die Menge der Booleschen Erfüllbarkeitsklauseln einschließlich Begren­ zungswerten für die in der Menge der Booleschen Erfüll­ barkeitsklauseln enthaltenen Variablen zum Definieren momentan begrenzter Variablen;
jedesmal, wenn eine der auf einen Wert begrenzten Variablen eine Variable der Menge der Schnittmengenvaria­ blen ist, Prüfen der Werte der momentan begrenzten Varia­ blen der Menge der Schnittmengenvariablen, um eine Be­ stimmung auszuführen, ob die Werte der momentan begrenz­ ten Variablen der Menge der Schnittmengenvariablen einen von null verschiedenen Durchschnitt mit dem Anfang des binären Entscheidungsdiagramms besitzen; vorwärtsgerichtetes Fortfahren bei der Ausführung der Booleschen Erfüllbarkeitsprüfung, wenn die Bestimmung den von null verschiedenen Durchschnitt angibt; und Zurückverfolgen bei der Ausführung der Booleschen Erfüllbarkeitsprüfung, wenn die Bestimmung den Null- Durchschnitt angibt.
8. Computerprogrammprodukt, das einem Computer ermöglicht, die Nichtäquivalenz zwischen zwei Schaltnet­ zen zu bestimmen, nach Anspruch 7, wobei:
der Schritt des Definierens eines binären Ent­ scheidungsdiagramms in der Weise ausgeführt wird, daß ein kanonisches binäres Entscheidungsdiagramm definiert wird; und
in dem Schritt des Prüfens der Werte der momentan begrenzten Variablen der Menge der Schnittmengenvariablen die Bestimmung auf dem kanonischen binären Entscheidungs­ diagramm beruht.
9. Computerprogrammprodukt, das einem Computer ermöglicht, die Nichtäquivalenz zwischen zwei Schaltnet­ zen zu bestimmen, nach Anspruch 7, wobei die vorgegebenen Operationen in der Weise definiert sind, daß:
die momentan begrenzten Variablen der Menge der Schnittmengenvariablen eine neu begrenzte Schnittmengen­ variable enthalten;
das binäre Entscheidungsdiagramm Knoten ein­ schließlich eines Astknotens und einschließlich Endknoten umfaßt, wobei zwischen dem Astknoten und den Endknoten Wege verlaufen und logisch angrenzende Knoten entlang der Wege durch Kanten verbunden sind;
der Schritt des Prüfens der Werte der momentan begrenzten Variablen der Schnittmengenvariablen zum Durchführen einer Bestimmung in folgender Weise ausge­ führt wird:
Vorbereiten einer Assoziationsliste, die die Werte der momentan begrenzten Variablen der Schnittmen­ genvariablen und der Knoten zuordnet;
Projizieren der neu begrenzten Schnittmengenva­ riablen auf das binäre Entscheidungsdiagramm durch Notie­ ren des Werts der neu begrenzten Schnittmengenvariablen in der Assoziationsliste; und
Bestimmen, ob einer der Wege existiert, für den die Kanten mit den momentan begrenzten Variablen der Schnittmengenvariablen konsistent sind, und für den der Endknoten einen vorgegebenen Wert hat, der den Erfolg anzeigt; und
wobei der Schritt des Zurückverfolgens das Ent­ projizieren der neu begrenzten Schnittmengenvariablen durch Setzen ihres entsprechenden Werts in der Assoziati­ onsliste auf einen vorgegebenen ungültigen Wert umfaßt.
DE19860061A 1997-12-23 1998-12-23 System zur Prüfung der kombinatorischen Äquivalenz Expired - Fee Related DE19860061B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/997,551 1997-12-23
US08/997,551 US6026222A (en) 1997-12-23 1997-12-23 System for combinational equivalence checking

Publications (2)

Publication Number Publication Date
DE19860061A1 true DE19860061A1 (de) 1999-07-01
DE19860061B4 DE19860061B4 (de) 2006-09-28

Family

ID=25544150

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19860061A Expired - Fee Related DE19860061B4 (de) 1997-12-23 1998-12-23 System zur Prüfung der kombinatorischen Äquivalenz

Country Status (3)

Country Link
US (1) US6026222A (de)
JP (1) JPH11282900A (de)
DE (1) DE19860061B4 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10152213B4 (de) * 2001-10-23 2006-04-27 Onespin Solutions Gmbh Verfahren zur Verifikation digitaler arithmetischer Schaltungen mittels eines Äquivalenzvergleiches

Families Citing this family (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6212669B1 (en) 1997-11-05 2001-04-03 Fujitsu Limited Method for verifying and representing hardware by decomposition and partitioning
US6308299B1 (en) * 1998-07-17 2001-10-23 Cadence Design Systems, Inc. Method and system for combinational verification having tight integration of verification techniques
US6292916B1 (en) * 1998-12-10 2001-09-18 Lucent Technologies Inc. Parallel backtracing for satisfiability on reconfigurable hardware
US6609230B1 (en) 1999-02-24 2003-08-19 Zhe Li Method for design verification using modular templates of test benches
US6539345B1 (en) * 1999-04-09 2003-03-25 Intel Corporation Symbolic simulation using input space decomposition via Boolean functional representation in parametric form
US6606737B1 (en) * 1999-04-15 2003-08-12 Sycon Design, Inc. Method for forming a structural similarity group from a netlist of an integrated circuit
US6131078A (en) * 1999-05-06 2000-10-10 Plaisted; David A. Method for design verification of hardware and non-hardware systems
US6415430B1 (en) * 1999-07-01 2002-07-02 Nec Usa, Inc. Method and apparatus for SAT solver architecture with very low synthesis and layout overhead
US6662323B1 (en) * 1999-07-07 2003-12-09 Nec Corporation Fast error diagnosis for combinational verification
US6336206B1 (en) * 1999-09-27 2002-01-01 Synopsys, Inc. Method and apparatus for structural input/output matching for design verification
US6714902B1 (en) 2000-03-02 2004-03-30 Cadence Design Systems, Inc. Method and apparatus for critical and false path verification
US6473884B1 (en) * 2000-03-14 2002-10-29 International Business Machines Corporation Method and system for equivalence-checking combinatorial circuits using interative binary-decision-diagram sweeping and structural satisfiability analysis
US20050192789A1 (en) * 2000-06-30 2005-09-01 Jin Yang Methods for formal verification on a symbolic lattice domain
US7031896B1 (en) 2000-06-30 2006-04-18 Intel Corporation Methods for performing generalized trajectory evaluation
US6725431B1 (en) 2000-06-30 2004-04-20 Intel Corporation Lazy symbolic model checking
US6591400B1 (en) 2000-09-29 2003-07-08 Intel Corporation Symbolic variable reduction
US6643827B1 (en) 2000-09-30 2003-11-04 Intel Corporation Symbolic model checking with dynamic model pruning
US6473881B1 (en) * 2000-10-31 2002-10-29 International Business Machines Corporation Pattern-matching for transistor level netlists
US6651234B2 (en) * 2001-04-06 2003-11-18 Nec Corporation Partition-based decision heuristics for SAT and image computation using SAT and BDDs
US20040250223A1 (en) * 2001-06-15 2004-12-09 Quiroga Jose Luis L Optimal circuit verification method
US6668362B1 (en) * 2002-01-09 2003-12-23 Synopsys, Inc. Hierarchical verification for equivalence checking of designs
JP4328487B2 (ja) * 2002-01-28 2009-09-09 インターナショナル・ビジネス・マシーンズ・コーポレーション 組合せ回路、暗号回路、その生成方法及びプログラム
US20030154063A1 (en) * 2002-02-08 2003-08-14 Martin Lu Active path extraction for HDL code
US7058910B2 (en) * 2002-06-27 2006-06-06 The United States Of America As Represented By The Secretary Of The Navy Invariant checking method and apparatus using binary decision diagrams in combination with constraint solvers
US6842884B2 (en) * 2002-08-28 2005-01-11 Verplex Systems, Inc. Combinational equivalence checking methods and systems with internal don't cares
DE10239782A1 (de) * 2002-08-29 2004-03-18 Infineon Technologies Ag Verfahren und Vorrichtung zur Verifikation von digitalen Schaltungen
US7788556B2 (en) * 2002-11-13 2010-08-31 Fujitsu Limited System and method for evaluating an erroneous state associated with a target circuit
US7137082B1 (en) 2003-03-28 2006-11-14 Magma Design Automation Inc. Reduced architecture processing paths
US7203917B2 (en) * 2003-04-07 2007-04-10 Nec Laboratories America, Inc. Efficient distributed SAT and SAT-based distributed bounded model checking
US7076712B2 (en) * 2003-05-22 2006-07-11 Fujitsu Limited Generating a test sequence using a satisfiability technique
US7627842B1 (en) 2003-06-03 2009-12-01 Cadence Design Systems, Inc. Method and system for verification of circuits with encoded signals
US7512912B1 (en) * 2003-08-16 2009-03-31 Synopsys, Inc. Method and apparatus for solving constraints for word-level networks
JP4485330B2 (ja) * 2003-11-20 2010-06-23 富士通株式会社 回路の有向ファルシフィケーション
US20050193304A1 (en) * 2003-12-19 2005-09-01 Board Of Regents, The University Of Texas System Circuit modeling apparatus, systems, and methods
CN1300838C (zh) * 2004-03-12 2007-02-14 中国科学院计算技术研究所 包含黑盒的电路设计验证与错误诊断方法
US7865339B2 (en) * 2004-07-12 2011-01-04 Sri International Formal methods for test case generation
US7260799B2 (en) * 2005-02-10 2007-08-21 International Business Machines Corporation Exploiting suspected redundancy for enhanced design verification
US7376919B1 (en) * 2005-05-04 2008-05-20 Synplicity, Inc. Methods and apparatuses for automated circuit optimization and verification
US7340704B2 (en) * 2005-06-23 2008-03-04 International Business Machines Corporation Method and system for optimized automated case-splitting via constraints in a symbolic simulation framework
US7757189B1 (en) * 2005-09-23 2010-07-13 Altera Corporation Super duplicate register removal
US7389479B2 (en) * 2005-12-20 2008-06-17 Synopsys, Inc. Formally proving the functional equivalence of pipelined designs containing memories
US7398488B2 (en) * 2006-05-17 2008-07-08 International Business Machines Corporation Trace equivalence identification through structural isomorphism detection with on the fly logic writing
US20080120266A1 (en) * 2006-11-22 2008-05-22 Jean-Paul Theis Software method for solving systems of linear equations having integer variables
US8789031B2 (en) * 2007-09-18 2014-07-22 Intel Corporation Software constructed strands for execution on a multi-core architecture
US7882473B2 (en) * 2007-11-27 2011-02-01 International Business Machines Corporation Sequential equivalence checking for asynchronous verification
US20090248601A1 (en) * 2008-03-31 2009-10-01 International Business Machines Corporation Exploiting double resolutions for proof optimizations
US20140208297A1 (en) * 2013-01-20 2014-07-24 International Business Machines Corporation Validation of revised computer programs
US9651621B2 (en) * 2014-07-10 2017-05-16 Taiwan Semiconductor Manufacturing Company, Ltd. System for and method of semiconductor fault detection

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5649165A (en) * 1995-01-31 1997-07-15 Fujitsu Limited Topology-based computer-aided design system for digital circuits and method thereof
JP3179004B2 (ja) * 1995-10-17 2001-06-25 富士通株式会社 論理回路検証システムおよび方法
US5754454A (en) * 1997-03-03 1998-05-19 Motorola, Inc. Method for determining functional equivalence between design models

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10152213B4 (de) * 2001-10-23 2006-04-27 Onespin Solutions Gmbh Verfahren zur Verifikation digitaler arithmetischer Schaltungen mittels eines Äquivalenzvergleiches

Also Published As

Publication number Publication date
JPH11282900A (ja) 1999-10-15
DE19860061B4 (de) 2006-09-28
US6026222A (en) 2000-02-15

Similar Documents

Publication Publication Date Title
DE19860061A1 (de) System zur Prüfung der kombinatorischen Äquivalenz
DE69838835T2 (de) Verfahren zur Prüfung und zur Darstellung einer Hardware durch Zerlegung und Aufteilung
EP1425638B1 (de) Verfahren zur validierung von simulationsergebnissen eines systems sowie darauf aufbauender äquivalenzvergleich digitaler schaltungen
DE69432974T2 (de) Verfahren und vorrichtung zur automatischen analyse eines zielprogramms
US7386521B2 (en) Automatic test program generation using extended conditional constraint satisfaction
DE3900750A1 (de) Wissensbasis - verfahren - vorrichtung zum entwerfen integrierter schaltungen mittels funktionaler spezifikationen
DE19903633A1 (de) Implementierung von Boolescher Erfüllbarkeit mit nichtchronologischer Rückwärtsverarbeitung in rekonfigurierbarer Hardware
DE19815534A1 (de) Verfahren und System zum Entwurf und zur Simulation digitaler Rechner-Hardware
EP0580663B1 (de) Verfahren zur verifikation datenverarbeitender systeme
DE10152213B4 (de) Verfahren zur Verifikation digitaler arithmetischer Schaltungen mittels eines Äquivalenzvergleiches
DE102012100392A1 (de) Effiziente Quelle zur Bestimmung einer Unausführbarkeit in Timed Automata-Spuren
DE102010033861A1 (de) Auf einer formellen Analyse basierte Entwicklung von Anforderungsspezifikationen
DE10038499A1 (de) Verfahren und System für die verbesserte Entwicklungsprüfung mittels angepasster Ablaufverfolgung
van der Werf et al. All that glitters is not gold: Towards process discovery techniques with guarantees
DE4327660C2 (de) Vorrichtung zum Herstellen einer und Herstellungsverfahren für eine integrierte Halbleiterschaltungsvorrichtung und elektronische Schaltungsvorrichtung
Bellas et al. Improving new product planning with GERT simulation
Basten et al. Simulating and analyzing railway interlockings in ExSpect
EP3617912A1 (de) Verfahren und vorrichtung zum rechnergestützten generieren einer komponente für ein technisches system
DE60035644T2 (de) Ablauffolgeplanung der nicht ganzzahligen Simulationszeit für mixed-signal Simulation
EP3719594A1 (de) Verfahren und system zum betreiben eines industriellen automatisierungssystems
Szwed Efficiency of formal verification of ArchiMate business processes with NuSMV model checker
EP3001318A1 (de) Bestimmung von Signalen für Readback aus FPGA
DE19710463C2 (de) Verfahren zur automatischen Differentiation auf einem Rechner insbesondere zur Simulation elektronischer Schaltungen
Coudert et al. Towards an interactive fault tree analyser
Goualard et al. Controlled propagation in continuous numerical constraint networks

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8364 No opposition during term of opposition
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee