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

System zur Prüfung der kombinatorischen Äquivalenz Download PDF

Info

Publication number
DE19860061B4
DE19860061B4 DE19860061A DE19860061A DE19860061B4 DE 19860061 B4 DE19860061 B4 DE 19860061B4 DE 19860061 A DE19860061 A DE 19860061A DE 19860061 A DE19860061 A DE 19860061A DE 19860061 B4 DE19860061 B4 DE 19860061B4
Authority
DE
Germany
Prior art keywords
variables
intersection
binary decision
decision diagram
variable
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.)
Expired - Fee Related
Application number
DE19860061A
Other languages
English (en)
Other versions
DE19860061A1 (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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Devices For Executing Special Programs (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)
  • Testing Or Measuring Of Semiconductors Or The Like (AREA)
  • Semiconductor Integrated Circuits (AREA)

Abstract

Verfahren zum Bestimmen der Nichtäquivalenz zwischen zwei Schaltnetzen, wobei das Verfahren umfaßt:
Kombinieren der zwei Schaltnetze in einer Gehrungsschaltung;
Partitionieren der Gehrungsschaltung entlang einer Grenze, die jedes der zwei Schaltnetze in eine jeweilige Eingangslastfaktorpartition, die nicht durch ein binäres Entscheidungsdiagramm dargestellt wurde, und in eine jeweilige Ausgangslastfaktorpartition, die durch ein binäres Entscheidungsdiagramm dargestellt wurde, trennt, wobei die Variablen 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üllbarkeitsklauseln für die jeweiligen Eingangslastfaktorpartitionen, 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, wobei Erfüllbarkeitslösungen für die Menge der Booleschen Erfüllbarkeitsklauseln gefunden werden, was das Finden von Begrenzungswerten für die in der Menge der Booleschen Erfüllbarkeitsklauseln enthaltenen Variablen einschließt, wobei...

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 geschaffene Systeme ist und an das Prüfen komplexer Schaltungen 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 kombinatorischen Äquivalenz ausgeführt.
  • Hintergrund und verwandtes Gebiet
  • Der Begriff eines Schaltnetzes wird hier in der Weise verwendet, daß er eine Schaltung mit einem Netz verbundener Logikgatter bezeichnet. Schaltnetze können durch Logiknetzlisten dargestellt werden. Ein gegebenes Schaltnetz besitzt einen Eingangslastfaktor und einen Ausgangslastfaktor. Im allgemeinen bezieht sich der Eingangslastfaktor 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 gegebenen Punkt in einem Schaltnetz aus die Eingangslastfaktor-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 Schaltnetzes 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 Schaltnetzen. 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 Nachprüfung, daß ein Schaltnetz die völlig gleiche Gesamtfunktionalitä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 Gesamtfunktionalität wie ein Knoten in einem anderen Schaltnetz liefert. Somit ist klar, daß sich das Schaltnetz-Nachprüfungsproblem 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 Gehrungsschaltung (= miter circuit) formuliert werden. 1 zeigt eine Gehrungsschaltung 10. Die Schaltung 1 und die Schaltung 2 in 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 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ützlicher 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 Eingangssignalen w und x die Ausgangssignale y und y' immer völlig gleich sein sollten, wenn die Schaltnetze äquivalent 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 äquivalent.
  • 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 verglichen 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 wahrscheinlicher, eine vereinfachte Prüfung der Primärausgänge zu erhalten. Dieser Strukturzugang oder Zugang der iterativen Ersetzung funktioniert gut, wenn die Schaltung 1 und die Schaltung 2 strukturell ähnlich sind. Die folgenden Dokumente sind wegen ihres nützlichen Hintergrundmaterials über den Strukturzugang durch Literaturverweis eingefü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 relations. In Proceedings of the IEEE International Conference on Computer-Aided Design S. 34–37. IEEE Computer Society Press, Los Alamitos, CA, November 1990.
    • • J. Jain, R. Mukherjee und M. Fujita. Advanced verification 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 and 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/IEEF 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 transformations. In Proceedings of the IEEE International Conference on Computer-Aided Design, S. 88–95. IEEE Computer Society Press, Los Alamitos, CA, November 1996.
    • • S. M. Reddy, W. Kunz und D. Pradhan. Novel verification 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 automatischer Entwicklungssoftware neu entworfen werden, ist es möglich, daß die neu entworfene Schaltung sehr wenig strukturelle Ähnlichkeit mit der Originalschaltung besitzt. In einem solchen Fall wird der Zugang der iterativen Ersetzung sehr schwierig, da es schwerer ist, in jedem der zwei Schaltnetze Knoten auszuwählen, die tatsä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 Hintergrundinformationen 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 verification of combinational circuits. In G. J. Milne, Herausgeber, Fusion of Hardware Design and Verification, 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 Proceedings of the IEEE International Conference on Computer-Aided Design, S. 6–9. EKE Computer Society Press, Los Alamitos, CA, 1988.
  • Sobald jedes Schaltnetz auf ein BDD 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 kanonischer Datenstrukturen (d. h. BDDs).
  • Der Funktionszugang besitzt jedoch Nachteile. Üblicherweise verwendet ein funktionsbasierter Zugang eine Variante des reduziert geordneten BDDs (ROBDDs). Das ROBDD wird unten diskutiert, wobei zusätzliche Hintergrundinformationen ü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 exponentiell an:
    • • R. E. Bryant. On the complexity of VLSI implementations 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 Funktionszugang 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 Schaltnetze zu einer Gehrungsschaltung kombiniert; wird die Gehrungsschaltung entlang einer Grenze, die jedes der zwei Schaltnetze in eine jeweilige Eingangslastfaktorpartition 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 kanonische 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 Schnittmengenvariablen als eine Ausgangsgröße haben, das kanonische binäre Entscheidungsdiagramm die Schnittmengenvariablen als eine Eingangsgröße hat; werden Boolesche Erfüllbarkeitsprüfungen ausgeführt, um Erfüllbarkeitslösungen für die Menge der Booleschen Erfüllbarkeitsklauseln einschließlich von Begrenzungswerten für die in der Menge der Booleschen Erfüllbarkeitsklauseln enthaltenen Variablen 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 Computerprogrammprodukt zum verwirklichen des vorstehenden Verfahrens.
  • KURZBESCHREIBUNG DER ZEICHNUNG
  • 1 zeigt einen Hybridzugang zum Lösen des Schaltnetz-Nachprüfungsproblems gemäß der Erfindung.
  • 2 zeigt eine zur Erläuterung der Booleschen Erfüllbarkeitsprüfung verwendete Beispielschaltung.
  • 3 zeigt einen Variablenabhängigkeitsgraphen.
  • 4 zeigt, wie eine Variable begrenzt wird und wie ein Verzweigungs- und Begrenzungsverfahren arbeitet.
  • 5 zeigt Pseudocode für einen Zugang zum Integrieren der Erfüllbarkeitsprüfung und der BDDs.
  • 6 zeigt Pseudocode für einen Frühbegrenzungszugang zum Integrieren der Erfüllbarkeitsprüfung und der BDDs.
  • 7 zeigt ein Beispiel eines BDDs.
  • 8 zeigt Pseudocode für Spezial-BDD-Operationen.
  • AUSFÜHRLICHE BESCHREIBUNG DER ZWECKMÄSSIGEN AUSFÜHRUNGEN
  • Die Erfindung wird nun nach einigen vorbereitenden Diskussionen von BDDs mit Bezug auf ein in 1 gezeigtes Beispiel beschrieben.
  • Ein BDD stellt eine Boolesche Funktion als einen gerichteten azyklischen Wegegraphen (DAG) dar, wie er z. B. in 7 gezeigt ist. Insbesondere zeigt 7 eine reduzierte geordnete BDD-Darstellung für die Boolesche Beispielfunktion von f = a ∨ (b ∧ c) ∨ d. Jeder Nicht-Endknoten ν ist mit einer Booleschen Variablen var(ν) bezeichnet 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, wobeif0 die dem Knoten BDD_ELSE(ν) zugeordnete Funktion bezeichnet und f1 die dem Knoten BDD_THEN(ν) zugeordnete Funktion 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 bestehen, die als eine Gesamtreihenfolge auf der Variablenmenge 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 Darstellung 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 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 wesentlichen 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 Geschwindigkeit, 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 Schaltnetze. In 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 Gehrungsschaltung 10 die Teile des Schaltnetzes, die von dem größten praktisch anwendbaren BDD in Betracht gezogen werden, wobei dieser im folgenden als der Ausgangslastabschnitt 40 bezeichnet wird. Der Abschnitt 30 der Gehrungsschaltung 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 Ausgangslastabschnitt 40 wird auf ein BDD reduziert.
  • Es wird nun eine Beschreibung der Booleschen Erfüllbarkeit 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üllbarkeitsverfahren 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-Aided Design, S. 220–227. IEEE Computer Society Press, Los Alamitos, CA, November 1996.
    • • P. Stephan, R. K. Brayton und A. Sangiovanni-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ückverfolgungsverfahren, 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 seinerseits das frühe und schnelle Bestimmen von Widersprüchen bei den Variablenzuordnungen während eines Zurückverfolgungsverfahrens. 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 verschiedene 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 Entscheidungsbaums 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 Widerspruch 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öglichkeiten: (a) Es ist möglich, daß ihr kein Wert zugeordnet 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 verzweigt wird, können verschiedene Heuristiken verwendet werden. Eine übliche Strategie besteht darin, die Literalkonstante auszuwählen, die in der größten Anzahl von Klauseln auftritt.
  • Unten ist die Ableitung einer CNF-Formel für einen kleinen Fall einer typischen Anwendung des SAT gezeigt und ist gezeigt, wie ein SAT-Prüfer beim Finden einer Zuordnung, die diese erfüllt, vorgehen könnte.
  • Es wird nun mit Bezug auf 2 ein Beispiel der Ableitung 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 Erfü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 2 ist dies in 3 gezeigt. Diese Datenstruktur wird zum Prüfen auf Implikationen und Widersprüche verwendet.
  • In der Vorverarbeitungsphase vor Beginn des Zurückverfolgungsverfahrens werden werte auferlegt, die 1-Klauseln entsprechen. Im Ergebnis können einige Klauseln erfüllt und aus der Formel entfernt werden, während einige Klauseln kleiner werden, wobei sie in dem Prozeß möglicherweise 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übergehend 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 4 gezeigt. Da dies ein sehr einfaches Beispiel ist, hat die Formel nach dem Anwenden der Anfangsbedingungen 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 begrenzt), läuft aber sofort in einen Widerspruch, indem er die Abhängigkeiten transitiv auf dem Abhängigkeitsgraphen verfolgt (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 befriedigende Zuordnung a = 0, b = –, wobei "–" einen Unbedeutend-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 Gehrungsschaltung 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 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ß anstelle 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, erfaßt. Andernfalls wären diese Abhängigkeiten, wie oben beschrieben wurde, aus den SAT-Klauseln extrahiert worden. 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 verhältnismäßig leichter. Auf diese weise können BDDs nicht nur wie in dem obigen Beispiel in dem Kontext der Nachprüfung, sondern auch in anderen SAT-basierten Anwendungen 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ürfelspezifizierung und eine SAT-Lösungsspezifizierung. Zwei Möglichkeiten 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 Bedingung 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 hinzugefügt werden. Das SAT-Problem wird unabhängig für jeden Würfel gelöst. Falls für die vorliegende Erfindung irgendeines dieser Probleme zu einer Lösung führt, ist die Lösung ein Gegenbeispiel für das Schaltnetz-Nachprüfungsproblem. 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 für 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ählen, 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ückverfolgungsverfahren 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 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 Variablenzuordnung in der SAT-Verzweigung und das Begrenzungsverfahren 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 5 für das rekursive sat_branch-Verfahren gezeigte, bei dem die relevanten SAT-Datenstrukturargumente für Erläuterungszwecke zusammengefaß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 entsprechend rückgängig macht. Die Konsistenzprüfung selbst kann unter Verwendung von bei Standard-BDD-Paketen verfügbaren Standard-BDD-Operationen (bdd_substitute oder bdd_and) ausgeführt werden. Als ein Beispiel eines Standard BDD-Pakets wird Bezug auf D. E. Long, "BDD-Package", 1993, School of Computer Science, Carnegie Mellon University, Pittsburgh, PA, genommen.
  • Die derzeit zweckmäßige Ausführung der Erfindung wendet einen Frühbegrenzungszugang an. Der Frühbegrenzungszugang wird nun mit Bezug auf 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 Ausgangslastabschnitt 40 und die SAT-Klauseln für den Eingangslastabschnitt 30 die Schnittmengenvariablen gemeinsam nutzen. Gemäß der Erfindung wird jedesmal, wenn irgendeine Schnittmengenvariable in dem SAT-Verzweigungs- und Begrenzungsverfahren begrenzt wird, der Wert der Schnittmengenvariable und irgendwelcher anderen derzeit begrenzten Variablen mit dem BDD verglichen. Anders gesagt, wird jede Teilzuordnung von Variablen zu Schnittmengenvariablen 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 anderen 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 Schnittmengen-Variablenzuordnungen verwendet, um außerdem die entsprechenden Projektionen des BDD-Anfangs in irgendeinem Punkt in dem rekursiven Entscheidungsbaum zu verfolgen. Die Pseudocodes für die Verfahren sat bound und sat_branch sind in 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ückkehrt. Andernfalls wird das projizierte BDD an die aufrufende 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 konsistent 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 Teilzuordnungen der Schnittmengenvariablen den BDD-Anfang nicht schneiden, eine nutzlose SAT-Lösungssuche zu vermeiden.
  • In einer letzen Ausführung der Erfindung wird der Frühbegrenzungszugang durch Spezial-BDD-Operationen ergänzt.
  • Wie oben erwähnt wurde, kann die Prozedur project_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ächtlich 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) proportional zur Größe des BDD, während die letztere eine Konstantzeit-Operation ist.
  • Es werden nun mit Bezug auf 8 die Spezial-BDD-Operationen 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 Variablen 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 Durchqueren 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 schlimmsten Fall ist die dazu erforderliche zeit proportional zu der Größe des BDD. Somit beseitigen diese Spezialoperationen das aufwendige Nachschlagen in dem Cache und das Unterhalten der eindeutigen Knotentabelle in Standard-BDD-Operationen, ohne die Gesamtkomplexität zu beeinflussen.
  • Somit verwendet die Erfindung die BDDs, um die SAT-Problemgröß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ühbegrenzung während des SAT-Entscheidungsverfahrens; und sie verwendet Spezial-BDD-Operationen zum Verbessern der Laufzeit.
  • Unten ist ein experimenteller Beweis für die Verbesserungen dargestellt, die durch jede dieser Maßnahmen erhalten werden. Gegen Ende werden einige experimentelle Ergebnisse 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 aufeinanderfolgend 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 optimization", in Proceedings of the IEEE International Conference on Computer Design, 1992, wobei dieses Dokument hier durch Literaturverweis eingefügt ist. weitere Informationen hinsichtlich TEGUS finden sich in P. Stephan, R. Brayton und A. Sangiovanni-Vincentelli, "Combinational Test Generation Using Satisfiability", in IEEE Transactions 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 Knoten/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).
  • Figure 00270001
    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 demonstrieren. 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 Ausgangssignale ü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 auflistet. Für das 9. Ausgangssignal wurde der BDD-Würfelspezifizierungszugang 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ösungsspezifizierungszugang, wie in Spalte 8 gezeigt ist, mit dem gleichen Zeitaufwand bis zu dem 14. Ausgangssignal abgeschlossen werden.
  • Die Spalten 7 und 8 listen die Anzahl der Zurückverfolgungen 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ügbaren 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.
  • Figure 00290001
    Tabelle 2: Ergebnisse für die SAT-Spezifizierung mit Frühbegrenzung und Spezial-BDD-Operationen
  • Das SAT+BDD-Äquivalenzverfahren kann außerdem den Kernschritt 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 letzen 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 Verwendung von SAT+BDDs gemäß der Erfindung ausgeführt. Bei Anwendung auf die Gehrungsschaltung für den C6288 konnte unter Verwendung dieses Zugangs die Äquivalenz nachgewiesen 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ächliche, in einer Programmiersprache geschriebene Anweisungen. wenn solche Programmiersprachenanweisungen von einem Computer ausgeführt werden, bewirken sie, daß der Computer gemäß dem besonderen Inhalt der Anweisungen arbeitet. weiterhin kann die Software, die bewirkt, daß ein Computersystem 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 verschlüsselten Versionen der vorangehenden sowie irgendwelchen Äquivalenten, bereitgestellt werden.
  • Dem Fachmann auf dem Gebiet ist klar, daß "Medien" oder "computerlesbare Medien" wie hier verwendet eine Diskette, ein Band, eine Compakt Disk, eine integrierte 1 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 Kommunikationsschaltung "ü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 Programmprodukt 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üfungsproblems ausgeführt wird, das die oben dargestellten Schritte umfaßt.
  • Die Erfindung soll nicht nur mit Bezug auf die obenbeschriebenen Beispiele, sondern mit Bezug auf irgendwelche Äquivalente in Übereinstimmung mit den beigefügten Ansprüchen verstanden werden.

Claims (7)

  1. Verfahren zum Bestimmen der Nichtäquivalenz zwischen zwei Schaltnetzen, wobei das Verfahren umfaßt: Kombinieren der zwei Schaltnetze in einer Gehrungsschaltung; Partitionieren der Gehrungsschaltung entlang einer Grenze, die jedes der zwei Schaltnetze in eine jeweilige Eingangslastfaktorpartition, die nicht durch ein binäres Entscheidungsdiagramm dargestellt wurde, und in eine jeweilige Ausgangslastfaktorpartition, die durch ein binäres Entscheidungsdiagramm dargestellt wurde, trennt, wobei die Variablen 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üllbarkeitsklauseln für die jeweiligen Eingangslastfaktorpartitionen, 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, wobei Erfüllbarkeitslösungen für die Menge der Booleschen Erfüllbarkeitsklauseln gefunden werden, was das Finden von Begrenzungswerten für die in der Menge der Booleschen Erfüllbarkeitsklauseln enthaltenen Variablen einschließt, wobei momentan begrenzte Variablen definiert werden; jedesmal, wenn eine der auf einen Wert begrenzten Variablen eine Variable der Menge der Schnittmengenvariablen ist, Prüfen der Werte der momentan begrenzten Variablen der Menge der Schnittmengenvariablen, wobei eine Bestimmung ausgeführt wird, ob die Werte der momentan begrenzten 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, wobei die momentan begrenzten Variablen der Menge der Schnittmengenvariablen eine neu begrenzte Schnittmengenvariable enthalten; das binäre Entscheidungsdiagramm Knoten einschließ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, der eine Bestimmung durchführt, in folgender Weise ausgeführt wird: Vorbereiten einer Assoziationsliste, die die werte der momentan begrenzten Variablen der Schnittmengenvariablen und der Knoten zuordnet; Projizieren der neu begrenzten Schnittmengenvariablen auf das binäre Entscheidungsdiagramm durch Notieren 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 Entprojizieren der neu begrenzten Schnittmengenvariablen durch Setzen ihres entsprechenden Werts in der Assoziationsliste auf einen vorgegebenen ungültigen Wert umfaßt.
  2. Verfahren zum Bestimmen der Nichtäquivalenz zwischen zwei Schaltnetzen nach Anspruch 1, wobei: der Schritt des Definierens eines binären Entscheidungsdiagramms 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 Entscheidungsdiagramm beruht.
  3. Computersystem, das so beschaffen ist, daß mit ihm die Nichtäquivalenz zwischen zwei Schaltnetzen bestimmt werden kann, wobei das Computersystem enthält: einen Prozessor, und einen Speicher einschließlich Softwareanweisungen, die so beschaffen sind, daß das Computersystem die folgenden Schritte ausführen kann: Kombinieren der zwei Schaltnetze in einer Gehrungsschaltung; Partitionieren der Gehrungsschaltung entlang einer Grenze, die jedes der zwei Schaltnetze in eine jeweilige Eingangslastfaktorpartition, die nicht durch ein binäres Entscheidungsdiagramm dargestellt wurde, und in eine jeweilige Ausgangslastfaktorpartition, die durch ein binäres Entscheidungsdiagramm dargestellt wurde, trennt, wobei die Variablen 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üllbarkeitsklauseln für die jeweiligen Eingangslastfaktorpartitionen, 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, wobei die Erfüllbarkeitslösungen für die Menge der Booleschen Erfüllbarkeitsklauseln gefunden werden, was das Finden von Begrenzungswerten für die in der Menge der Booleschen Erfüllbarkeitsklauseln enthaltenen Variablen einschließt, wobei momentan begrenzte Variablen definiert werden; jedesmal, wenn eine der auf einen Wert begrenzten Variablen eine Variable der Menge der Schnittmengenvariablen ist, Prüfen der Werte der momentan begrenzten Variablen der Menge der Schnittmengenvariablen, wobei eine Bestimmung ausgeführt wird, ob die Werte der momentan begrenzten 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, wobei die momentan begrenzten Variablen der Menge der Schnittmengenvariablen eine neu begrenzte Schnittmengenvariable enthalten; das binäre Entscheidungsdiagramm Knoten einschließ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, der eine Bestimmung durchführt, in folgender Weise ausgeführt wird: Vorbereiten einer Assoziationsliste, die die Werte der momentan begrenzten Variablen der Schnittmengenvariablen und der Knoten zuordnet; Projizieren der neu begrenzten Schnittmengenvariablen auf das binäre Entscheidungsdiagramm durch Notieren 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 Entprojizieren der neu begrenzten Schnittmengenvariablen durch Setzen ihres entsprechenden Werts in der Assoziationsliste auf einen vorgegebenen ungültigen Wert umfaßt.
  4. Computersystem, das so beschaffen ist, daß mit ihm die Nichtäquivalenz zwischen zwei Schaltnetzen bestimmt werden kann, nach Anspruch 3, 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 kanonischen binären Entscheidungsdiagramms.
  5. Daten repräsentierende Signalfolge, wobei die Daten ausführbaren Programmcode darstellen, der einem Computer ermöglicht, die Nichtäquivalenz zwischen zwei Schaltnetzen zu bestimmen, wobei der ausführbare Programmcode die folgenden Schritte den Computer ausführen läßt, wenn der Programmcode abläuft: Kombinieren der zwei Schaltnetze in einer Gehrungsschaltung; Partitionieren der Gehrungsschaltung entlang einer Grenze, die jedes der zwei Schaltnetze in eine jeweilige Eingangslastfaktorpatition, die nicht durch ein binäres Entscheidungsdiagramm dargestellt wurde, und in eine jeweilige Ausgangslastfaktorpartition, die durch ein binäres Entscheidungsdiagramm dargestellt wurde, trennt, wobei die Variablen 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üllbarkeitsklauseln für die jeweiligen Eingangslastfaktorpartitionen, 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, wobei Erfüllbarkeitslösungen für die Menge der Booleschen Erfüllbarkeitsklauseln gefunden werden, was das Finden von Begrenzungswerten für die in der Menge der Booleschen Erfüllbarkeitsklauseln enthaltenen Variablen einschließt, wobei momentan begrenzte Variablen definiert werden; jedesmal, wenn eine der auf einen Wert begrenzten Variablen eine Variable der Menge der Schnittmengenvariablen ist, Prüfen der Werte der momentan begrenzten Variablen der Menge der Schnittmengenvariablen, wobei eine Bestimmung ausgeführt wird, ob die Werte der momentan begrenzten 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.
  6. Daten repräsentierende Signalfolge nach Anspruch 5, wobei: der Schritt des Definierens eines binären Entscheidungsdiagramms 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 Entscheidungsdiagramm beruht.
  7. Daten repräsentierende Signalfolge nach Anspruch 5, wobei die vorgegebenen Operationen in der Weise definiert sind, daß: die momentan begrenzten Variablen der Menge der Schnittmengenvariablen eine neu begrenzte Schnittmengenvariable enthalten; das binäre Entscheidungsdiagramm Knoten einschließ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, der eine Bestimmung durchführt, in folgender Weise ausgeführt wird: Vorbereiten einer Assoziationsliste, die die Werte der momentan begrenzten Variablen der Schnittmengenvariablen und der Knoten zuordnet; Projizieren der neu begrenzten Schnittmengenvariablen auf das binäre Entscheidungsdiagramm durch Notieren 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 Entprojizieren der neu begrenzten Schnittmengenvariablen durch Setzen ihres entsprechenden Werts in der Assoziationsliste 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 DE19860061A1 (de) 1999-07-01
DE19860061B4 true 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)

Families Citing this family (49)

* 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
US6725431B1 (en) 2000-06-30 2004-04-20 Intel Corporation Lazy symbolic model checking
US7031896B1 (en) 2000-06-30 2006-04-18 Intel Corporation Methods for performing generalized trajectory evaluation
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
WO2002103583A1 (en) * 2001-06-15 2002-12-27 Quiroga Jose L Optimal circuit verification method
DE10152213B4 (de) * 2001-10-23 2006-04-27 Onespin Solutions Gmbh Verfahren zur Verifikation digitaler arithmetischer Schaltungen mittels eines Äquivalenzvergleiches
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
US6904578B2 (en) * 2002-11-13 2005-06-07 Fujitsu Limited System and method for verifying a plurality of states 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
US7281225B2 (en) * 2003-11-20 2007-10-09 Fujitsu Limited Circuit verification using multiple engines
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

Citations (1)

* 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

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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

Patent Citations (1)

* 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

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
AKERS, S.B.: Binary Decision Diagramms. In: IEEE Trans. on Computers, Vol. C-27, No. 6, June 1978, S. 509-516 *
JAIN, J. u.a.: Formal Verification of Combinatio- nal Circuits. In: IEEE 10th Int.Conf. on VLSI Design, Jan. 1997, S. 218-225 *
LARRABEE, T.: Test Pattern Generation Using Boolean Satisfiability. In: IEEE Trans. on Computer-Aided Design, Vol. 11, No. 1, Jan. 1992, S. 4-15 *
ROTH, J.P.: Diagnosis of Automata Failures. A Calculus an a Method. In: IBM J.Res.Develop., Vol. 10, July 1966, S. 278-291 *
ZEMANEK, H.: Logische Algebra und Theorie der Schaltwerke. In: STEINBUCH, K.: Taschenbuch der Nachrichtenverarbeitung, 2te Aufl., Springer, Berlin, 1967, S. 84-105 *

Also Published As

Publication number Publication date
JPH11282900A (ja) 1999-10-15
DE19860061A1 (de) 1999-07-01
US6026222A (en) 2000-02-15

Similar Documents

Publication Publication Date Title
DE19860061B4 (de) System zur Prüfung der kombinatorischen Äquivalenz
DE69838835T2 (de) Verfahren zur Prüfung und zur Darstellung einer Hardware durch Zerlegung und Aufteilung
DE69432974T2 (de) Verfahren und vorrichtung zur automatischen analyse eines zielprogramms
DE69919144T2 (de) Verfahren und gerät zum analysieren von statusbasiertem modell
DE3856079T2 (de) Verfahren für einen Blockdiagramm-Simulator
DE69129067T2 (de) Verfahren um die skalaren datenabhängigkeiten für einen optimisationskompiler darzustellen
DE68926849T2 (de) Struktur und Verfahren zur Anordnung rekursiv abgeleiteter Daten in einer Datenbank
DE3889882T2 (de) Modellierungssystem für Festkörper.
DE69909945T2 (de) Verfahren und Anordnung zur Korrelation von Profildaten dynamisch erzeugt durch ein optimiertes ausführbares Programm mit Quellcodeanweisungen
DE69326072T2 (de) Verfahren zur Prüfung eines sequentiellen endlichen Automaten
US20060184468A1 (en) Automatic test program generation using extended conditional constraint satisfaction
DE10143101A1 (de) Verfahren zur Validierung von Simulationsergebnissen eines Systems sowie darauf aufbauender Äquivalenzvergleich digitaler Schaltungen
DE68920560T2 (de) Restprüfungsvorrichtung zur Fehlerkennung in Additions-, Substraktions-, Multiplikations-, Divisions- und Quadratwurzel-Operationen.
DE69838441T2 (de) Verfahren und Anordnung zur Verifizierung logischer Geräte
EP0580663B1 (de) Verfahren zur verifikation datenverarbeitender systeme
DE112018006540T5 (de) Dynamisches ersetzen eines aufrufs einer software-bibliothek durch einen aufruf eines beschleunigers
WO2000026824A1 (de) Verfahren und anordnung zum vergleich einer ersten eigenschaft mit vorgegebenen eigenschaften eines technischen systems
DE69328103T2 (de) Verfahren zur automatischen Beweisführung in einer unbeschränkten Logik ersten Grades
DE69715525T2 (de) Verfahren und System um Datenstrukturen zu vereinigen
DE3854636T2 (de) Automatischer Prüfprozess für logische Geräte.
WO1996033470A1 (de) Abbildung eines graphen in einen speicher
DE102010033861A1 (de) Auf einer formellen Analyse basierte Entwicklung von Anforderungsspezifikationen
DE202012013461U1 (de) Vorrichtungen zur Berechnung von Prüfsummen für effektives Caching bei konzinuierlich verteilten Builds
US20090259454A1 (en) Automatic test program generation using extended conditional constraint satisfaction
DE102019008598A1 (de) Identifikation und Visualisierung von Assoziationen zwischen Code, der von einem Modell generiert ist, und Quellen, welche die Codegeneration beeinflussen

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