DE19860061A1 - System zur Prüfung der kombinatorischen Äquivalenz - Google Patents
System zur Prüfung der kombinatorischen ÄquivalenzInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
- G06F30/3323—Design verification, e.g. functional simulation or model checking using formal methods, e.g. equivalence checking or property checking
Description
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.
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.
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.
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.
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).
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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)
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)
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)
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 |
-
1997
- 1997-12-23 US US08/997,551 patent/US6026222A/en not_active Expired - Lifetime
-
1998
- 1998-12-23 DE DE19860061A patent/DE19860061B4/de not_active Expired - Fee Related
- 1998-12-24 JP JP10376812A patent/JPH11282900A/ja active Pending
Cited By (1)
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 |