DE69326072T2 - Verfahren zur Prüfung eines sequentiellen endlichen Automaten - Google Patents

Verfahren zur Prüfung eines sequentiellen endlichen Automaten

Info

Publication number
DE69326072T2
DE69326072T2 DE69326072T DE69326072T DE69326072T2 DE 69326072 T2 DE69326072 T2 DE 69326072T2 DE 69326072 T DE69326072 T DE 69326072T DE 69326072 T DE69326072 T DE 69326072T DE 69326072 T2 DE69326072 T2 DE 69326072T2
Authority
DE
Germany
Prior art keywords
vector
variables
function
sets
graph
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 - Lifetime
Application number
DE69326072T
Other languages
English (en)
Other versions
DE69326072D1 (de
Inventor
Thomas Tamisier
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.)
Bull SAS
Original Assignee
Bull SAS
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 Bull SAS filed Critical Bull SAS
Application granted granted Critical
Publication of DE69326072D1 publication Critical patent/DE69326072D1/de
Publication of DE69326072T2 publication Critical patent/DE69326072T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime 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)
  • Complex Calculations (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Description

  • Die Erfindung bezieht sich auf ein Verfahren zum Prüfen einer sequentiellen Finite State Machine, die ein technisches System repräsentiert, und insbesondere auf ein Verfahren zum Berechnen einer Äquivalenzrelation einer Finite State Machine mit Hilfe eines Computers.
  • Der Entwurf von größtintegrierten Schaltungen erfordert Null- Fehler-Schaltungen, da das Fertigen von Prototypen zur Schaltungsdiagnose sehr teuer ist. Bei dem Entwurf und der Prüfung der Hardware wird eine abstrakte Beschreibung einer Schaltungsrealisierung (Hardware-Baustein) und eine Schaltungsspezifikation (erwartetes Verhalten) in Form eines endlichen Automaten angewandt, der als Finite State Machine oder FSM bezeichnet wird. Die Finite State Machine wird aus einer Beschreibung der Schaltungsrealisierung in einer Hardware- Beschreibungssprache (z. B. VHDL) oder der Schaltungsspezifikation durch Abstraktionswerkzeuge erhalten. Die Finite State Machine führt den Vergleich auf Äquivalenz oder Implikation zwischen der Schaltungsrealisierung und der Schaltungsspezifikation durch. Die Finite State Machine ist in der folgenden Veröffentlichung (1) beschrieben: Workshop on Automating Verification Method of Finite State Systems, Grenoble, Juli 1989, "Verification of Synchronous Sequential Machines Based on Symbolic Execution, Coudert u. a. In einer Finite State Machine wird ein Verfahren zum Berechnen von Äquivalenzrelationen, insbesondere der beobachtbaren Äquivalenz, angewandt. Eine gegenwärtige Anwendung der beobachtbaren Äquivalenz bei dem Entwurf und der Prüfung der Hardware ist hauptsächlich das Auto/Autograph genannte Werkzeug, das z. B. in Proceedings of the DIMACS Workshop on Computer-Aided Verification, Bd. 3, DIMACS Series in Discrete Mathematics and Theoretical Computer Science, 1990, Seiten 477-492, Roy u. a., "Auto/Autograph" beschrieben ist. Dieses Werkzeug ermöglicht eine Verringerung des Umfangs der aus den Anfangszuständen erreichbaren Zustände, wodurch die Anzahl der veränderlichen Zustände mini miert wird, was zu einer Verringerung der Anzahl der Zustandsregister in einer Schaltung führt.
  • Fig. 1 enthält ein Blockschaltbild, das die Arbeitsweise einer Finite State Machine FSM veranschaulicht. Die drei Mengen umfassen eine Menge der Eingänge, die mit I bezeichnet sind, eine Menge der Zustände, die mit S bezeichnet sind, und eine Menge der Ausgänge, die mit O bezeichnet sind, wobei die Funktionen eine Übergangsfunktion δ des Typs I x S → S und eine Ausgangsfunktion λ des Typs I x S → O umfassen. Die drei Mengen I, S und O sind endliche Mengen und bestehen aus den Eingängen x, den Zuständen s bzw. den Ausgängen o. In der in Fig. 1 gezeigten Maschine verwendet die Übergangsfunktion δ die Menge I der Eingänge als erste Eingabe und die Menge S der Zustände als zweite Eingabe, um eine Ausgabe an die Menge S der Zustände zu liefern. Die Ausgangsfunktion λ verwendet die Menge I der Eingänge als erste Eingabe und die Menge S der Zustände als zweite Eingabe, um eine Ausgabe an die Menge O der Ausgänge zu liefern. Die Übergangsfunktion δ, die Ausgangsfunktion λ und die Menge der Zustände arbeiten als Verarbeitungsschaltung PC. Im Betrieb ist die Finite State Machine FSM anfänglich in einem vorgegebenen Zustand, wobei Eingangsfolgen aus der Menge I der Eingänge nacheinander an die zwei Funktionen angelegt werden. Als Antwort auf jede Eingangsfolge berechnet die Maschine aus der Eingangsfolge, dem momentanen Status und der Übergangsfunktion δ einen Status s, während sie aus der Eingangsfolge, dem momentanen Status und der Ausgangsfunktion λ einen Ausgang o berechnet und in den Zustand s schaltet.
  • Anders ausgedrückt erzeugt die Maschine FSM als Antwort auf eine Folge von n Eingängen eine Folge von n Ausgängen. In dem folgenden Beispiel
  • {s&sub1;, s&sub2;} S und δ: (s&sub1;, s&sub2;) → s&sub2; und λ: (s&sub1;, x&sub1;) → o&sub2;
  • {x&sub1;, x&sub2;} I δ: (s&sub2;, x&sub1;) → s&sub1; λ: (s&sub1;, x&sub1;) → o&sub2;
  • {o&sub1;, o&sub2;} O λ: (s&sub1;, x&sub2;) → o&sub1;
  • erzeugt die Maschine FSM dann, wenn der Zustand s&sub1; ist, aus der Folge "x&sub1; x&sub1; x&sub2;" die Folge "o&sub2; o&sub2; o&sub1;".
  • Die Erfindung bezieht sich auf das Problem der Berechnung der beobachtbaren Äquivalenzrelation einer Maschine FSM. Es wird angenommen, daß die Maschine als Antwort auf eine Folge von m Eingängen X = (x&sub1;, ..., xm) den Zustand s und eine Folge von m Ausgängen O = (o&sub1;, ..., om) hat. Die beobachtbare Äquivalenz ist die Äquivalenz für die Zustände in bezug auf die erzeugten Ausgänge. Zwei Zustände s und s' werden als äquivalent bezeichnet, wenn die Maschine als Antwort auf dieselbe Eingangsfolge beliebiger Länge aus den Zuständen s und s' stets dieselbe Ausgangsfolge erzeugt. Zwei Zustände s und s' werden als k-äquivalent bezeichnet (wobei k eine ganze Zahl ≥ 1 ist), wenn sie für eine beliebige Folge einer Länge ≤ k äquivalent sind. Die Menge der äquivalenten (bzw. k-äquivalenten) Zustandspaare wird als E (bzw. Ek) bezeichnet. Es wird angenommen, daß für jedes j ≤ i die Menge Ei in Ej enthalten ist. Mit anderen Worten:
  • E Ej Ei S · S, wenn i < j.
  • Ferner betrifft die Erfindung eine auf Booleschen Funktionen basierenden Datenstruktur. Eine Boolesche Funktion ist vom Typ f(x&sub1;, ..., xn): {0,1}n &rarr; {0,1}. Eine Identität zwischen der Booleschen Funktion f und der Menge der Variablen X {0,1}n: X = {(x&sub1;, ..., xn) f(x&sub1;, ..., xn) = 1} ist bekannt, so daß jede Menge durch ihre charakteristische Funktion dargestellt werden kann, wobei beide mit demselben Symbol bezeichnet werden. Es seien &phi; eine Boolesche Funktion und v&sub1;, v&sub2;, ..., vn ihr veränderlicher Träger. Außerdem seien &phi;[vi &larr; 0] die Formel, in der die Variable durch die Konstante 0 ersetzt wird, und O eine Ordnung von v&sub1;, v&sub2;, ..., vn, die hier als v&sub1; < v&sub2; < ... < vn angenommen wird. Dann kann in Verbindung mit den folgenden zwei Regeln ein mit A(&phi;) bezeichneter Graph von cp in der Ordnung 0 aufgebaut werden, der gewöhnlich Shannon-Baum genannt wird. Erstens besteht der Konstanten-Baum aus den Blättern "wahr" und "falsch", zweitens besitzt der Baum eine einzige Wurzel, die mit der Variablen v&sub1; bezeichnet ist. Aus der Wurzel wachsen zwei Zweige, d. h. ein Zweig, der vom Baum von &phi;[vi &larr; 0] in die rechte Richtung weist, und ein Zweig, der vom Baum von &phi;[vi &larr; 0] in die linke Richtung weist. Zwei äquivalente Boolesche Funktionen besitzen dieselbe Modulo-N-Ordnung des Shannon-Baums in der Menge der Booleschen Variablen und die Wahl eines veränderlichen Trägers. Von dem Shannon-Baum A(&phi;) ausgehend wird eine Boolesche Funktion üblicherweise durch ein gewöhnlich als BDD von &phi; für die Ordnung 0 bezeichnetes binäres Bryant-Enscheidungdiagramm dargestellt, das in der Veröffentlichung (2) IEEE Transactions on Computers, C-35(8), August 1986, Seiten 677-691, R. E. Bryant, "Graph-Based Algorithms for Boolean Function Manipulation" beschrieben ist. Kurz zusammengefaßt wird, wie in dieser Veröffentlichung beschrieben ist, ein BDD von &phi; für die Ordnung 0 durch die erschöpfende Anwendung zweier Reduktionsregeln, (1) des Eliminierens redundanter Knoten und (2) des Teilens äquivalenter Untergraphen, aus dem Shannon-Baum erhalten. Das BDD wird unabhängig von der Ordnung der Anwendung der beiden Regeln erhalten. Das Eliminieren redundanter Knoten führt dazu, daß das BDD eine strengere kanonische Eigenschaft besitzt als der Shannon-Baum, da es sich nicht auf ein veränderliches Argument bezieht. Zwei äquivalente Funktionen für eine vorgegebene Ordnung in der Menge der Booleschen Variablen haben dasselbe BDD. Zum Beispiel haben v&sub1; v&sub1; und v&sub2; v&sub2; dasselbe BDD.
  • Die Übergangsfunktion ist ein Vektor &delta;: {0,1}n &rarr; {0,1}k. Sie ist ein Vektor aus k Booleschen Funktionen &delta; = (&delta;&sub1;, ..., &delta;k) mit &delta;i: {0,1}n &rarr; {0,1}. Mit anderen Worten:
  • &delta;(x&sub1;, ..., xn) = [&delta;&sub1;(x&sub1;, ..., xn), ..., &delta;k(x&sub1;, ..., xn)]
  • Allgemeiner ausgedrückt ist eine vollständig spezifizierte Finite State Machine eine 5fach-Beziehung M = (I, O, S, &delta;, &lambda;). Die Menge I = {0,1}k ist der Eingangsraum, die Menge 0 = {0,1}¹ ist der Ausgangsraum und die Menge S = {0,1}n ist der Zustandsraum. Jede Zustandsvariable s~ ist einer Booleschen Funktion &delta;j von S · I &rarr; {0,1} zugeordnet, während jede Ausgangsvariable oj einer Booleschen Funktion &lambda;j von S · I &rarr; {0,1} zugeordnet ist. Der Vektor &delta; = (&delta;j) ist die Übergangsfunktion von S · I &rarr; S, während der Vektor &lambda; (&lambda;j) die Ausgangsfunktion von S · I &rarr; O ist. Die Symbole s&sub1;, ..., sn werden verwendet, um die Booleschen Zustandsvariablen zu bezeichnen, und x&sub1;, ..., xk, um die Booleschen Eingangsvariablen zu bezeichnen. Der Vektor [s&sub1;, ..., sn] wird auch als s geschrieben. Mit anderen Worten:
  • I = {0,1}k, codiert über die Variablen x&sub1;, ..., xk
  • O = {0,1}¹, codiert über die Variablen o&sub1;, ..., o&sub1;
  • S = {0,1}n, codiert über die Variablen s&sub1;, ..., sn
  • &delta;(s&sub1;, ..., sn, x&sub1;, ..., xk): {0,1}n+k &rarr; {0,1}n = (&delta;&sub1;, ..., &delta;n),
  • mit &delta;i(s&sub1;, ..., sn, x&sub1;, ..., xk): {0,1}n+k &rarr; {0,1}
  • &lambda;(s&sub1;, ..., sn, x&sub1;, ..., xk): {0,1}n+k &rarr; {0,1}¹ = (&lambda;&sub1;, ..., &lambda;&sub1;),
  • mit &lambda;i(s&sub1;, ..., sn, x&sub1;, ..., xk): {0,1}n+k &rarr; {0,1}
  • In Fig. 2 ist die Struktur einer als PFSM bezeichneten, im weiteren auch Product Maschine genannten Product Finite State Machine gezeigt. Sie ist wie die in Fig. 1 gezeigte Maschine ein intuitives und sequentielles Objekt. Die Product Machine ist der in Fig. 1 gezeigten Maschine ähnlich, wobei die Verarbeitungsschaltung PC doppelt ausgeführt ist, um zwischen der Menge I der Eingänge und der Menge O der Ausgänge eine zweite Verarbeitungsschaltung PC' zu besitzen, die zur ersten Verarbeitungsschaltung PC parallelgeschaltet ist. Genauer umfaßt die erste Verarbeitungsschaltung PC eine erste Übergangsfunktion &delta;, eine erste Ausgangsfunktion &lambda; und eine erste Menge S der Zustände s, während die zweite Verarbeitungsschaltung PC' eine zweite Übergangsfunktion &delta;', eine zweite Ausgangsfunktion &lambda;' und eine zweite Menge S' der Zustände s' umfaßt. Die ersten und zweiten Übergangsfunktionen und die ersten und zweiten Ausgangsfunktionen sind mit der Menge I der Eingänge bzw. den Mengen S, S' der Zustände verbunden, während die Ausgänge der ersten und zweiten Ausgangsfunktionen mit der Menge O der Ausgänge verbunden sind.
  • Es seien s und s' ein Paar von Zuständen, die äquivalent sind, wenn die Verarbeitungsschaltungen mit den Zuständen s bzw. s' dieselben Ausgänge als Antwort auf dieselben Eingänge erzeugen. Die Product Machine wird zur Bestimmung verwendet, ob ein Paar von Zuständen s und s' aus äquivalenten Zuständen besteht. Die Bestimmung wird durch Verkettung der Maschine aus Fig. 1 ausgeführt. S = {0,1}n sei codiert über die Variablen s&sub1;, ..., sn und s&sub1;', ..., sn' seien n Variable, die in der ursprünglichen Maschine nicht verwendet werden. Die Untermenge der Paare durch die BDD über s&sub1;, ..., sn wird als s&sub1;', ..., sn' bezeichnet. Für jede Boolesche Funktion &delta;i wird die Funktion &delta;'i erhalten, indem die Variablen s&sub1;, ..., sn jeweils durch die Variablen s&sub1;', ..., sn' ersetzt werden. Dann ergibt sich
  • &delta;'i(s'&sub1;, ..., s'n, x&sub1;, ..., xk) = = &delta;i([s&sub1; &larr; s'&sub1;], ..., [s&sub1; &larr; s'n])
  • l i(s'1, ..., s'n, x&sub1;, ..., xk) = = li([s&sub1; ¬ s'&sub1;], ..., [s&sub1; ¬ s'n])
  • Die Übergangsfunktion der Product Machine wird bezeichnet mit
  • &Delta; = (&delta;&sub1;, ..., &delta;n, &delta;'&sub1;, ..., &delta;n) und &Delta; = (s&sub1;, ..., sn, s'&sub1;, ..., s'n, x&sub1;, ..., xk): {0,1}n+n+k &rarr; {0,1}n+n.
  • Die Ausgangsfunktion der Product Machine wird bezeichnet mit
  • &Lambda; = (&lambda;&sub1;, ..., &lambda;&sub1;, &lambda;'&sub1;, ..., &lambda;'&sub1;) und &Lambda; = (s&sub1;, ..., sn, s'&sub1;, ..., s'n, x&sub1;, ..., xk): {0,1}n+n+k &rarr; {0,1}¹&spplus;¹.
  • Somit ist die Product Machine eine 5fach-Beziehung
  • M' = (I,[O · O],[S · S], &Delta;, &Lambda;).
  • Als weitere wohlbekannte Definitionen werden die folgenden Schreibweisen verwendet, wenn &delta; eine Boolesche Funktion ist und x eine Variable:
  • x&delta; = &delta;(x &larr; 0) &delta;(x &larr; 1)
  • x&delta; = &delta;(x &larr; 0) &delta;(x &larr; 1)
  • wobei x ein Vektor aus Booleschen Variablen sein kann.
  • Wenn außerdem &delta; eine Boolesche Funktion &delta;: {0,1}n &rarr; {0,1}k ist und P {0,1}k, dann lautet das Umkehrbild
  • &delta;&supmin;¹(P) {0,1}n = {(x&sub1;, ..., xn) &delta;(x&sub1;, ..., xn) P}.
  • Sobald die Product Machine aufgebaut ist, stellt jeder Zustand in der Product Machine eigentlich ein Paar von Zuständen s, s' für die Maschine dar. Das Ziel ist die Berechnung des BDD über die Variablen s&sub1;, ..., sn, s'&sub1;, ..., s'n der äquivalenten Zustandspaare, wobei die erste Komponente über die Variablen s&sub1;, ..., sn codiert ist und die zweite Komponente über die Variablen s'&sub1;, ..., s'n. Im Stand der Technik wird ein Algorithmus angewandt, um die äquivalenten Zustandspaare zu erlangen. Dieser Algorithmus besteht darin, nacheinander die BDD der Mengen Ej aufzubauen, bis der Fixpunkt erreicht ist. Der Fixpunkt einer Funktion f ist das Element x: f(x) = x. Hierbei ist der Fixpunkt erreicht, wenn En = En+1 = E. Er wird durch die Berechnung der folgenden Ej-Folge erhalten:
  • E&sub1;(s, s') = x (&lambda;j(s,x) &lambda;'j(s',x))
  • j &le; 1
  • En = E&sub1; ( x(&Delta;&supmin;¹(En-1))
  • Diese Berechnung basiert auf einer geeigneten Ordnung der Variablen für die BDD der Mengen Ej, die mit der folgenden durch Versuch bestätigten Beziehung verträglich sein muß:
  • {s&sub1;,s'&sub1;} < {s&sub2;,s'&sub2;} < ... < {sn,s'n}
  • Bei einer solchen Ordnung sind intuitiv zumindest die beiden folgenden Tatsachen gegeben: die Mengen Ej sind Graphen von Äquivalenzrelationen, und die ursprüngliche Ordnung des Zustandsraums ist s&sub1; < s&sub2; < ... < sn.
  • Die Berechnung der Menge E&sub1; erfordert nur Boolesche Operationen über die BDD, d. h. quadratische Operationen und eine Eliminierung von Variablen. Experimentelle Tests ergaben, daß die Konstruktion der Menge E&sub1; im allgemeinen bei niedrigen Kosten ausgeführt wird, wenn die obige veränderliche Ordnung gewählt wird. Um die Menge En aus En-1 zu berechnen, muß über den Vektor &Delta; das Umkehrbild von En-1 berechnet und eine universelle Eliminierung der Eingangsvariablen ausgeführt werden. Die Berechnung des Umkehrbildes kann unter Anwendung verschiedener Verfahren ausgeführt werden. Eines beinhaltet die Konstruktion des Graphen der Übergangsfunktion, jedoch kann dieser Graph nicht für sehr große FSM-Maschinen aufgebaut werden. Ein anderes Verfahren (Substitutionsverfahren genannt) besteht darin, die Variablen s&sub1;, s'&sub1;, ..., sj, s'j, ... jeweils durch die Variablen &delta;&sub1;, &delta;'&sub1;, ..., &delta;j, &delta;'j, ... zu ersetzen. Es gibt einige Implementierungen, die diese Substitution und die Eliminierung der Eingangsvariablen gleichzeitig ausführen. Ein Beispiel für dieses Verfahrens im Stand der Technik ist in der obenerwähnten Veröffentlichung (1) beschrieben.
  • Die Berechnung des Umkehrbildes durch das Substitutionsverfahren geschieht durch einen Algorithmus mit exponentiellem Umfang. Ferner umfaßt der Vektor &Delta; 2n Funktionen (&delta;, &delta;'), und das Umkehrbild wird aus der Menge En-1 mit 2n Booleschen Variablen berechnet. Somit ist die Berechnung von D&supmin;¹(En) ein Schritt, der viel Zeit und Speicherplatz erfordert.
  • Ein weiteres Prüfverfahren ist in "A Unified Frameweork for the Formal Verification of Sequential Circuits", IEEE International Conference of Computer-Aided Design, 11. November 1990, Santa Clara, USA, Seiten 126-129, Coudert u. a. beschrieben. In diesem Dokument geht es darum, eine Menge aller gültigen Zustände der Maschine durch Berechnung einer anfänglichen minimalen Menge V&sub0;, die mit "Init" bezeichnet wird, zu berechnen und Bildelemente Img(&delta;, Vk · {0,1}n) iterativ hinzuzufügen, um die Menge Vk+1 zu erhalten.
  • Die vorliegende Erfindung bezieht sich auf ein neues Verfahren zur Berechnung von &Delta;&supmin;¹(En), das einer neuen Berechnung des erreichten Fixpunktes entspricht, wenn En = En+1 = E. Es überwindet die Nachteile des Standes der Technik, indem eine Berechnung in kurzer Zeit und mit wesentlich weniger Speicherplatz ermöglicht wird.
  • Allgemeiner ausgedrückt liefert die Erfindung ein Verfahren zum Prüfen einer sequentiellen Finite State Machine, wie es in Anspruch 1 definiert ist.
  • Die Aufgaben und Vorteile der Erfindung werden deutlich aus der folgenden Beschreibung einer zweckmäßigen Ausführung der Erfindung mit Bezug auf die beigefügte Zeichnung.
  • In der Zeichnung ist
  • Fig. 1 ein Blockschaltbild einer Finite State Machine und
  • Fig. 2 ein Blockschaltbild einer Product Finite State Machine.
  • Der grundlegende Gedanke der vorliegenden Erfindung basiert auf der Tatsache, daß die Menge &Delta;&supmin;¹(En) der Graph einer Äquivalenzrelation in S · S ist. Um die Menge E&sub1; zu erhalten, sind alle Zustandspaare mit demselben Bild durch &delta; aufzufinden. Um diese zu finden, ist die Erfindung so ausgerichtet, daß sie aus der ersten Menge En-1 einen Vektor &theta; findet mit der folgenden Eigenschaft:
  • [&theta;(s) = &theta;(s')] [(s,s') &Delta;&supmin;¹(En-1)]
  • D&supmin;¹(En) kann mit dem Vektor &theta; auf dieselbe Weise aufgebaut werden, wie die Menge E&sub1; aus der Ausgangsfunktion &lambda; aufgebaut wird.
  • Die vorliegende Erfindung bezieht sich auf ein Verfahren zur Berechnung des Umkehrbildes der Übergangsfunktion einer Product Finite State Machine aus der Menge der n - 1 äquivalenten Zustände, d. h. auf ein Verfahren zur Berechnung von &Delta;&supmin;¹(En-1), das die folgenden Schritte enthält:
  • (a) Konstruieren des BDD des Graphen einer Gesamtfunktion von S · S, die Querschnitt genannt wird und mit C(En-1) bezeichnet ist, aus dem BDD des Graphen der Beziehung En in kanonischer Weise und
  • (b) Konstruieren eines neuen Vektors, der mit &delta;n-1 = C(En-1)º &delta; bezeichnet ist, aus dem Querschnitt und dem Vektor &delta;. Es kann gezeigt werden, daß der neue Vektor die gewünschten Eigenschaften des obigen Vektors &theta; besitzt. Somit wird dieser Vektor durch eine Modifikation der Übergangsfunktion &delta; mittels der Menge C(En-1) erhalten. Obwohl der Umkehrbild-Rechenalgorithmus angewandt wird, sind die Mengen, deren Umkehrbild jetzt berechnet wird, Untermengen von S (codiert über die Variablen s&sub1;, s&sub2;, ..., sn) anstatt von &delta;er Menge En-1 der Zustandspaare (codiert über die Variablen s&sub1;, s&sub2;, ..., sn, s'&sub1;, s'&sub2;, ..., s'n) wie im Stand der Technik.
  • Ferner kann die Erfindung einen dritten Schritt (c) der Berechnung äquivalenter Zustandspaare hinsichtlich des Vektors &delta;n-1 enthalten. Diese Paare sind genau die Elemente von x(&Delta;&supmin;¹(En-1)). Jedoch kann dieser dritte Schritt selbstverständlich zur Berechnung einer beliebigen existentiellen oder universellen Eliminierung der Variablen verwendet werden, indem das Umkehrbild durch Anwendung des Verfahrens der Erfindung berechnet wird. Mit anderen Worten, anstatt den Schritt (c) zur Berechnung der Elemente von x(&Delta;&supmin;¹(En-1)) einzusetzen, kann ein alternativer Schritt (c') zur Berechnung der Elemente von x(&Delta;&supmin;¹(En-1)) eingesetzt werden.
  • Der in Schritt (a) definierte kanonische Querschnitt C(En-1) kann unter Anwendung verschiedener Verfahren berechnet werden. Hier wird gezeigt, wie auf kanonische Weise ein Graph einer Funktion C(R) aus einem Graphen einer Beziehung R gewonnen wird. Die Funktion C(R) wird als Querschnitt der Beziehung R bezeichnet. Die Definition, die gegeben wird, ist ein besonderer Fall eines in der Veröffentlichung (3) Research Report, University of California, Berkeley, 1992, B. Lin und A. Richard Newton aufgeführten Verfahrens: "Implicit Manipulation of Equivalence Classes Using Binary Descision Diagrams", das unter dem Namen "kompatible Projektion" bekannt ist.
  • Es sei angenommen, daß alle Elemente einer Menge {0,1}n in aufsteigender Ordnung der ganzen Zahlen sortiert sind. Zum Beispiel ist das durch ( s&sub1; s&sub2; ... sn&submin;&sub1; sn) dargestellte Element (0, 0, ..., 1) der Vorgänger des durch ( s&sub1; s&sub2; ... sn-1 sn) dargestellten Elements (0, 0, ..., 1, 0).
  • Definition 1: Es seien B und C zwei Mengen und &phi; eine Beziehung von B nach C und es sei &le; eine Gesamtordnung in C, dann ist der Querschnitt &phi; die Partialfunktion C(&phi;), die definiert ist durch:
  • C(&phi;) B &rarr; C
  • x &rarr; min({y x,y) &phi;}
  • Um den Querschnitt der Beziehung En-1 zu berechnen, sind die Variablen des Cobereichs s&sub1;, ..., sn und die Variablen für den Bereich s'&sub1;, ..., s'n. Aus dem BDD von En-1 kann das BDD von C(En-1) rekursiv berechnet werden, indem die folgenden Transformation angewandt werden, die die in C(En-1) nicht enthaltenen Paare aus dem BDD von En-1 entfernt, d. h. aus dem folgenden Algorithmus 1.
  • CrossSection(bdd){ if((bdd = = true) (bdd = = false)) return(bdd);
  • if(bdd = = [si, left, right]) return([si, C(left), C(right)]);
  • if(bdd = = [s'i, left, right]){ aux = s'i, ..., s'n(left);
  • return([s'i, C(left), C(right) aux]);
  • }
  • }
  • Diese Konstruktion kann mit einem einzigen Durchlaufen des Graphen von En-1 ausgeführt werden, wobei gelieferte Zwischenergebnisse in &delta;en Knoten des Graphen gespeichert werden.
  • Danach ist gemäß dem zweiten Schritt (b) des Verfahrens der Erfindung der mit &delta;n-1 bezeichnete zusammengesetzte Ausdruck C(En-1)º&delta; zu konstruieren. Die Konstruktion könnte unter Anwendung verschiedener Verfahren ausgeführt werden. Das folgende Beispiel ist ein Verfahren, das durch getrenntes Modifizieren jeder ursprünglichen Funktion &delta;j von &delta; mit Hilfe des BDD von C(En-1) abläuft.
  • Die Funktion &delta; ist als Vektor aus den Booleschen Funktionen (&delta;&sub1;, ..., &delta;n) gegeben, wobei die &delta;j aus den Zustandsvariablen si und den Eingangsvariablen xi aufgebaut sind. Der Vektor &delta;n-1 = (&delta;&sub1;n-1, ..., &delta;n &delta;nn-1) ist aus denselben Variablen aufgebaut, wobei &delta;n-1(s,x) = C(En-1)&delta;(s,x) gilt. Da En-1 eine Äquivalenzrelation ist, ist es trivial, zu beweisen, daß C(En-1) eine beliebig definierte Funktion ist. Folglich ist der zusammengesetzte Ausdruck &delta;&sub1;n-1 ebenso wie &delta; beliebig definiert.
  • Es sei s in S, und Ki(s) bezeichne den Wert der Komponente si von s. Zum Beispiel sei K&sub3;([0, 1, 1, ..., 0]) gleich 1. Die Funktion &delta;&sub1;n-1 kann für j = 1 bis n durch die folgende Gleichung definiert werden:
  • &delta;&sub1;n-1(s,x) = Kj[C(En-1)(&delta;(s,x))]
  • Nun wird das BDD G des Graphen des Querschnitts C(En-1) betrachtet. Für j von 1 bis n wird die Menge
  • Dj = ( s'( (sj s'j) G)
  • aufgebaut.
  • Dj S enthält alle Zustände s, derart, daß Kj(s) &ne; Kj(G). Die &delta;jn-1 werden unter Anwendung des folgenden Theorems erhalten.
  • Theorem 1: Es sei F der Vektor C(En-1), dann kann F º &delta; = &delta;n-1 = (&delta;&sub1;n-1, ..., &delta;nn-1) definiert werden durch
  • &delta;jn-1 = (&delta;j &delta;&supmin;¹(Dj))
  • Als Beweis wird geprüft, daß &delta;jn-1(s,x) = Kj[F(&delta;(s,x))] für Fälle, die von den Werten von Kj(&delta;(s,x)) und Kj[F(&delta;(s,x))] abhängen:
  • Kj(&delta;(s,x)) = 0 und Kj[F(&delta;(s,x))] = 0. Da &delta;(s,x) nicht in Dj ist und (s,x) nicht in &delta;&supmin;¹(Dj), und da (s,x) nicht in &delta; ist, folgt &delta;jn-1(s,x) = 0.
  • Kj(&delta;(s,x)) = 0 und Kj[F(&delta;(s,x))] = 1. Da &delta;(s,x) in Dj ist und (s,x) nicht in &delta;&supmin;¹(Dj), und da &delta;(s,x) = 0, ergibt sich &delta;jn-1(s,x) = 1.
  • Kj(&delta;(s,x)) = 1 und Kj[F(&delta;(s,x))] = 0. Da &delta;(s,x) in Dj ist und (s,x) in &delta;&supmin;¹(Dj), und da (s,x) in &delta;(s,x) = 0 ist, folgt &delta;jn-1(s,x) = 0.
  • Kj(&delta;(s,x)) = 1 und Kj(F(&delta;(s,x))] = 1. Da &delta;(s,x) nicht in Dj ist und (s,x) nicht in &delta;&supmin;¹(Dj), und da (s,x) in &delta; ist, folgt &delta;jn-1(s,x) = 0.
  • Nun wird die Richtigkeit des zusammengesetzten Ausdrucks gezeigt. Es muß geprüft werden, daß die folgende Gleichung erfüllt ist:
  • [(s,s') x(&Delta;&supmin;¹(En-1))] x(&delta;n-1(s) = &delta;n-1(s'))
  • These 1: Wenn &phi; eine beliebig definierte transitive und symmetrische Beziehung von B in B ist, dann folgt
  • x,y((C(&phi;)(x) = C(&phi;)(y)) (x,y)) &phi;))
  • Beweis:
  • Es sei t = C(&phi;)(x). Per Definition sind zwei Paare (x,t) und (y,t) in &phi;. Durch die Symmetrie ist (t,y) in &phi;. Somit ist durch die Transitivität (x,y) in &phi;.
  • Es sei angenommen, daß C(&phi;)(x) < C(&phi;)(y) und daß (x,y) &phi; Durch die Symmetrie ist (x,y) in &phi;. Durch die Transitivität ist (yC(&phi;)(x)) in &phi;. Nun ist (yC(&phi;) (x)) &phi; unvereinbar unter der Annahme, daß C(&phi;)(y) < C(&phi;)(x).
  • Theorem 2: Der zusammengesetzte Ausdruck C(En-1) º &delta; weist die aufzuzeigende Eigenschaft der Gleichung nach.
  • Die Aussagen ergeben sich aus der These 1.
  • x I[F(&delta;(s,x)) = F(&delta;(s',x))]
  • x I[(&delta;(s,x)), (&delta;(s',x)) En-1] aus These 1
  • x I[(&delta;(s,s',x)) En-1] aus der Definition von &delta;
  • (s,s') ( x(&Delta;&supmin;¹(En-1)) nach einer V-Eliminierung von Eingangsvariablen
  • Somit ermöglicht ein neuer Algorithmus, die Menge En aus En-1 zu berechnen. Das BDD ist der Graph einer Äquivalenzrelation in S · S. Die Menge En-1 wird aus den Booleschen Variablen s&sub1;, s&sub2;, ..., sn, s&sub1;', s'&sub2;, ..., sn' aufgebaut, wobei si die erste Komponente von Paaren von S · S codiert, während s'i die zweite Komponente von Paaren von S · S codiert. Zuerst wird das BDD des Graphen der kanonischen Anwendung dieser Äquivalenzrelation aufgebaut und mit C(En-1) bezeichnet. C(En-1) wird aus den Booleschen Variablen s&sub1;, s&sub2;, ..., sn, s&sub1;', s'&sub2;, ..., sn' aufgebaut, wobei die si die erste Komponente von Paaren von S · S codieren, während die s'i die zweite Komponente von Paaren von S · S codieren.
  • Es sei &phi; eine Funktion des Typs S · S mit einem Graphen C(En-1). Aus dem BDD von C(En-1) und der Übergangsfunktion &delta; wird in Übereinstimmung mit dem Verfahren der Erfindung der Vektor &delta;n-1 berechnet. Die Vektor &delta;n-1 wird durch Umbenennen der Variablen s in s' aufgebaut. Danach wird die Menge x&Delta;&supmin;¹(&delta;n-1 &delta;,n-1) berechnet. Die Menge En ist die Schnittmenge der letzteren, aus den Variablen s&sub1;, s&sub2;, ..., sn, s&sub1;', s'&sub2;, ..., sn' aufgebauten Menge und der Menge E&sub1;. Somit wird die Menge x&Delta;&supmin;¹(En-1) auf dieselbe Weise aus &delta;n-1 aufgebaut, wie E&sub1; aus &Lambda; aufgebaut wird. Zum Schluß ist die Menge En gleich ( x&Delta;&supmin;¹(En-1) E&sub1;).
  • Der folgende zweite Algorithmus ist für den iterativen Schritt angegeben. Dieser Algorithmus erhält als Eingabe das BDD von En-1 und die Liste der für eine Kopie der Zustandsvariablen und den Bereich des Querschnitts C(En-1) verwendeten Variablen (s&sub1;', s'&sub2;, ..., sn'). Das erhaltene Ergebnis ist das BDD von (En-1). Sowohl En als auch En-1 haben veränderliche Argumente s&sub1;, s&sub2;, ..., sn, s&sub1;', s'&sub2;, ..., sn'. Der Algorithmus 2 lautet:
  • IterativeStep(E,s') { proj = CrossSection(E,s');
  • for (j &le; n){
  • dif = s'(( sj s'j) proj);
  • ant = &delta;&supmin;¹. (dif);
  • case(j){
  • (1){
  • new&sub1; = &delta;&sub1; ant;
  • new'&sub1; = new&sub1;[s &larr; s'];
  • break;
  • }
  • [...]
  • (n) {
  • newn = &delta;n ant;
  • new'n = newn[s &larr; s'];
  • break;
  • }
  • }
  • }
  • pred = x (newj new' j);
  • j &le; 1
  • Enew = E&sub1; pred;
  • return(Enew);
  • }
  • Der Algorithmus der vorliegenden Erfindung wurde mit der Implementierung des Standes der Technik verglichen. Das Verfahren der Erfindung erfordert einen geringen Speicherumfang aufgrund der Vereinfachung der Umkehrbild-Berechnung und ermöglicht allgemein bessere zeitliche Ergebnisse. Die folgende Tabelle zeigt die Merkmale der Testmodelle: den Schaltungsnamen des ISCAS89 - Benchmarks -, die Anzahl der Variablen (nacheinander: Eingänge, Ausgänge, Zustände), die Anzahl der Scheitelpunkte aller BDD, die Anzahl der Äquivalenzklassen und die Anzahl der zur Berechnung erforderlichen Schritte.
  • Die folgende Tabelle zeigt die Ergebnisse des Verfahrens der Erfindung im Vergleich zu dem Verfahren des Standes der Technik. Die CPU-Zeiten auf einem IBM-RS-6000-Arbeitsplatzrechner sind in Sekunden wiedergegeben.
  • Die zur Berechnung erzeugten Scheitelpunkte sind aus der folgenden Tabelle ersichtlich.
  • Das Verfahren der Erfindung kann durch einen Fachmann im Hinblick auf mehrere verschiedene Ausführungen modifiziert werden. Zum Beispiel kann ein BDD verschiedene Ausführungen haben, insbesondere als sogenannter TDG (Typed Descision Graph), der z. B. in dem Buch "The Fusion between Hardware Design and Verification", veröffentlicht von G. Milne, North- Holland, in dem Abschnitt mit dem Titel "Original Concepts of PRIAM, An Industrial Tool for Efficient Formal Verification of Combinational Circuits" beschrieben ist. Alle Formen eines BDD können von der vorliegenden Erfindung verwendet werden. Ferner kann, auch wenn die Ordnung aller BDD mit
  • s&sub1; < s'&sub1; < s&sub2; < ... < sn < s'n angenommen wurde, eine andere Ordnung verwendet werden und das Verfahren entsprechend modifiziert werden. Ferner zeigte es sich, daß, auch wenn die Beschreibung der obigen Ausführung der Erfindung auf die Berechnung der Menge x&Delta;&supmin;¹(En-1) gerichtet war, die Erfindung auf eine beliebige Quantifizierung jeder Variablen von x erweitert werden kann.
  • Außerdem kann das Verfahren der Erfindung, auch wenn es eine Lösung eines Problems ist, das durch eine auf den Entwurf und die Prüfung von Hardware angewandte Finite State Machine entstanden war, zu einem Verfahren zum Prüfen einer sequentiellen Maschine mit endlichen Zuständen erweitert werden, da eine Finite State Machine eine als Software ausgeführte sequentielle Maschine ist. Zum Beispiel kann das Verfahren zum Prüfen von Protokollen, zum Prüfen der Steuerschnittstelle und noch allgemeiner zum Prüfen von Software-Programmteilen mit endlichen Zuständen in einem technischen System verwendet werden. Außerdem kann die Erfindung selbstverständlich zur Prüfung einer durch Hardware ausgeführten sequentiellen Maschine, wie etwa einer Ablaufsteuerung und einer automatischen Maschine mit endlichen Zuständen, angewandt werden. Die Bedeutung des Wortes "Prüfung" schließt den Test zum Nachweis, daß die geforderten Bedingungen erfüllt worden sind, mit ein.
  • Ferner kann die vorliegende Erfindung offensichtlich ohne iterative Berechnung und für eine beliebige Quantifizierung aller Variablen angewandt werden, auch wenn die obige zweckmäßige Ausführung zeigt, daß das Verfahren der vorliegenden Erfindung eine iterative Berechnung aus En-1 anwendet.
  • Als Ergebnis läßt sich das Verfahren der Erfindung als Verfahren zum Prüfen einer sequentiellen Finite State Machine definieren, die enthält: das Berechnen mit einer Datenverarbeitungsmaschine einer Menge Y, die durch zwei endliche Mengen B und S definiert ist, die über Boolesche Variablen codiert ist, einer Funktion &delta;: B &rarr; S. die durch einen Vektor aus Booleschen Funktionen gegeben ist, sowie einer Äquivalenzrelation A in S, wobei die Menge B über Variablen s = s&sub1;, ..., sn und x = x&sub1;, ..., xk codiert ist, wobei x leer sein kann und wobei Qxi entweder xi oder Vxi bezeichnet, derart, daß:
  • Y = {(s,s') ( x&sub1;, ..., xkB)² Qx&sub1;, ..., Qxk[(&delta;(s,x),&delta;(s',x)) A]}
  • dadurch gekennzeichnet, daß die Berechnung der Menge Y die folgenden Schritte enthält: (a) Konstruieren des BDD des Graphen einer Gesamtfunktion von S · S. die Querschnitt genannt wird und mit C(A) bezeichnet ist, aus dem BDD des Graphen der Äquivalenzrelation A in kanonischer Weise, (b) Konstruieren eines neuen Vektors, der mit &delta;* = CA º &delta; bezeichnet ist, aus dem Querschnitt und dem Vektor &delta; und (c) Berechnen der Paare (s, s'), derart, daß Qx&sub1;, ..., Qxk · (&delta;*(s, x) = &delta;(s', x)). In dieser Definition sind die Mengen B und S beliebige Mengen, die von den obigen Mengen B und S verschieden sein können, und die Variablen s und x beliebige Variablen, die von den obigen Variablen s und x verschieden sein können, während die Äquivalenzrelation A eine beliebige Äquivalenzrelation ist und die Übergangsfunktion &delta; von der Übergangsfunktion einer FSM verschieden sein kann. Da keine iterative Berechnung ausgeführt wird, wird der Vektor &delta;* statt &delta;n-1 in der iterativen Berechnung der obigen Ausführung verwendet. Die Gleichung zur Berechnung von Y ist der Algorithmus zur Berechnung des Umkehrbildes. Demgemäß kann der Zusammenhang dieser allgemeinen Definition mit dem Verfahren, das in der obigen Ausführung beschrieben worden ist, hergestellt werden, indem das letztere als ein Verfahren definiert wird, das zur Berechnung einer Äquivalenzrelation (E) einer Finite State Machine FSM verwendet wird, wobei die Äquivalenzrelation (E) als Fixpunkt einer monotonen Folge E&sub1;, ..., En = E definiert ist und die Berechnung der Äquivalenzrelation (E) durch sukzessives Konstruieren der Menge En unter Verwendung des Umkehrbildes von En-1, das anhand der Menge Y definiert ist, erfolgt.
  • In der obigen Beschreibung der zweckmäßigen Ausführung wurde gezeigt, daß der in dem obigen Schritt (a) verwendete kanonische Querschnitt aus der kompatiblen Projektion berechnet werden kann, in der die folgende Definition verwendet wird: Es seien B und C zwei Mengen und &phi; eine Beziehung von B in C und es sei &le; eine Gesamtordnung in C, dann ist der Querschnitt von &phi; die Partialfunktion C(&phi;), die folgendermaßen definiert ist:
  • C(&phi;) B &rarr; C
  • x &rarr; min({y (x,y) &phi;}
  • In dieser Definition wird für die Variablen eine ansteigende Ordnung angenommen. Es könnten eine andere Ordnung und eine andere Definition angewandt werden. Zum Beispiel kann eine andere Ordnung angewandt werden, indem in der obigen Defini tion "es sei &le; eine Gesamtordnung in C" durch" es sei < eine strikte Gesamtordnung in C" ersetzt wird. Außerdem kann ein von der kompatiblen Projektion verschiedenes Verfahren zur Berechnung angewandt werden.
  • Aus dem Theorem 1 in der zweckmäßigen Ausführung läßt sich zeigen, daß im Schritt (b) in der allgemeinen Definition der vorliegenden Erfindung der Vektor &delta;* aus dem Vektor &delta; und dem Graphen C(A) aufgebaut wird, wobei dieser Graph auf der Variablen s = s&sub1;, ..., sn für den Bereich und auf einer Variablen s' = s'&sub1; ... sn für den Cobereich codiert ist, während &delta;* unter Verwendung der Mengen Dj = s'( (sj s'j) C(A)) aufgebaut ist, und die Berechnung des Umkehrbildes ausschließlich für die Mengen Dj ausgeführt wird. Das Wort "ausschließlich" ist eine Konsequenz der vorliegenden Erfindung.
  • Das Verfahren kann durch ein Computer-Programm auf einem Informationsträger wie etwa einem Magnetband oder einer Magnetplatte und durch ein Prüfwerkzeug ausgeführt werden.

Claims (7)

1. Verfahren zum Prüfen einer sequentiellen Finite State Machine (FSM), die ein technisches System repräsentiert, wobei das Verfahren enthält: Berechnen mit einer Datenverarbeitungsmaschine einer Menge Y, die durch zwei endliche Mengen B und S definiert ist, die über Boolschen Variablen codiert ist, einer Funktion &delta;: B &rarr; S, die durch einen Vektor aus Boolschen Funktionen gegeben ist, sowie einer Äquivalenzrelation A in S, wobei die Menge B über Variablen s = s&sub1;, ..., sn und x = x&sub1;, ..., xk codiert ist, wobei x leer sein kann und wobei Qxi entweder xi oder xi bezeichnet, derart, daß:
Y = {(s,s') ( x&sub1;, ..., xkB)² Qx&sub1;, ..., Qxk[(&delta;(s,x),&delta;(s',x)) A]}
wobei die Berechnung der Menge Y die folgenden Schritte enthält: (a) Konstruieren des BDD des Graphen einer Gesamtfunktion von S · S. die Querschnitt genannt wird und mit C(A) bezeichnet ist, aus dem BDD des Graphen der Äquivalenzrelation A in kanonischer Weise, (b) Konstruieren eines neuen Vektors, der mit &delta;* = CA º &delta; bezeichnet ist, aus dem Querschnitt und dem Vektor &delta; und (c) Berechnen der Paare (s, s'), derart, daß Qx&sub1;, ..., Qxk · (&delta;*(s,x) = &delta;(s', x)).
2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß es zum Berechnen einer Äquivalenzrelation E der Finite State Machine (FSM) verwendet wird, wobei die Äquivalenzrelation E definiert ist als Fixpunkt einer monotonen Folge E&sub1;, ..., En = E, wobei die Berechnung der Äquivalenzrelation E durch sukzessives Konstruieren der Menge En unter Verwendung des Umkehrbildes der Menge En-1, das anhand der Menge Y definiert ist und &Delta;&supmin;¹(En-1) entspricht, erfolgt.
3. Verfahren nach Anspruch 1 oder 2, dadurch gekennzeichnet, daß der Schritt (a) aus der kompatiblen Projektion berechnet wird, in der die folgende Definition verwendet wird: Es seien B und C zwei Mengen und &phi; eine Beziehung von B in C und es sei < eine strikte Gesamtordnung in C, dann ist der Querschnitt von &phi; die Partialfunktion C(&phi;), die folgendermaßen definiert ist:
C(&phi;): B &rarr; C
x &rarr; min({y x,y) &phi;)}
4. Verfahren nach Anspruch 1 oder 2, dadurch gekennzeichnet, daß der Schritt (a) aus der kompatiblen Projektion berechnet wird, in der die folgende Definition verwendet wird: Es seien B und C zwei Mengen und &phi; eine Beziehung von B nach C und es sei &le; eine Gesamtordnung auf C, dann ist der Querschnitt &phi; die Partialfunktion C(&phi;), die definiert ist durch:
C(&phi;): B &rarr; C
x &rarr; min ({y x,y) &phi;}
wobei für die Ordnung eine sukzessive ansteigende Ordnung gewählt ist.
5. Verfahren nach irgendeinem der Ansprüche 1 bis 4, dadurch gekennzeichnet, daß im Schritt (b) der Vektor &delta;* aus dem Vektor &delta; und dem Graphen C(A) aufgebaut wird, wobei dieser Graph auf der Variable s = s&sub1;, ..., sn für den Bereich und auf einer Variable s' = s'&sub1; ... sn für den Cobereich codiert ist, und &delta;* auch unter Verwendung der Mengen Dj = s'( {sj s'j) C(A)) aufgebaut ist, wobei die Berechnung des Umkehrbildes ausschließlich für die Mengen Dj ausgeführt wird.
6. Verfahren nach irgendeinem der Ansprüche 2 bis 5, dadurch gekennzeichnet, daß der Schritt (b) die Konstruktion eines neuen Vektors &delta;n-1 = C(En-1) º &delta; aus dem Querschnitt und dem Vektor &delta; enthält.
7. Verfahren nach Anspruch 6, dadurch gekennzeichnet, daß es ferner einen Schritt (c) des Berechnens äquivalenter Paare von Zuständen in bezug auf den Vektor &delta;n-1 enthält, um die Paare ( x&Delta;&supmin;¹(En-1)) zu erhalten.
DE69326072T 1993-11-02 1993-11-02 Verfahren zur Prüfung eines sequentiellen endlichen Automaten Expired - Lifetime DE69326072T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
EP93402682A EP0653716B1 (de) 1993-11-02 1993-11-02 Verfahren zur Prüfung eines sequentiellen endlichen Automaten

Publications (2)

Publication Number Publication Date
DE69326072D1 DE69326072D1 (de) 1999-09-23
DE69326072T2 true DE69326072T2 (de) 1999-12-23

Family

ID=8214762

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69326072T Expired - Lifetime DE69326072T2 (de) 1993-11-02 1993-11-02 Verfahren zur Prüfung eines sequentiellen endlichen Automaten

Country Status (5)

Country Link
US (1) US5594656A (de)
EP (1) EP0653716B1 (de)
JP (1) JPH07182406A (de)
CA (1) CA2132691C (de)
DE (1) DE69326072T2 (de)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5774370A (en) * 1995-09-18 1998-06-30 Vlsi Technology, Inc. Method of extracting implicit sequential behavior from hardware description languages
US5680332A (en) * 1995-10-30 1997-10-21 Motorola, Inc. Measurement of digital circuit simulation test coverage utilizing BDDs and state bins
EP0966703B1 (de) * 1997-03-11 2002-10-02 Siemens Aktiengesellschaft Verfahren zur rechnergestützten fehleranalyse von sensoren und/oder aktoren in einem technischen system
US5937181A (en) * 1997-03-31 1999-08-10 Lucent Technologies, Inc. Simulation of a process of a concurrent system
GB9718688D0 (en) * 1997-09-03 1997-11-12 Sgs Thomson Microelectronics Post image techniques
US6816821B1 (en) 1997-09-03 2004-11-09 Stmicroelectronics Limited Post image techniques
US5974242A (en) * 1997-09-25 1999-10-26 The United States Of America As Represented By The Secretary Of The Army Methods and computer programs for minimizing logic circuit design using identity cells
US6059837A (en) * 1997-12-30 2000-05-09 Synopsys, Inc. Method and system for automata-based approach to state reachability of interacting extended finite state machines
US6339837B1 (en) 1998-02-25 2002-01-15 Zhe Li Hybrid method for design verification
CA2243761C (en) * 1998-07-21 2009-10-06 Certicom Corp. Timing attack resistant cryptographic system
US6446243B1 (en) 1999-04-23 2002-09-03 Novas Software, Inc. Method for functional verification of VLSI circuit designs utilizing reusable functional blocks or intellectual property cores
US6728665B1 (en) * 2000-03-20 2004-04-27 Nec Corporation SAT-based image computation with application in reachability analysis
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
US20050192789A1 (en) * 2000-06-30 2005-09-01 Jin Yang Methods for formal verification on a symbolic lattice domain
US6341367B1 (en) * 2000-07-25 2002-01-22 Lsi Logic Corporation Hardware realized state machine
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
US7783997B1 (en) 2004-07-30 2010-08-24 Synopsys, Inc. Large scale finite state machines
CN102890735B (zh) * 2012-07-09 2014-11-05 南京南瑞继保电气有限公司 稳控装置的策略表和策略搜索匹配的建模方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5491639A (en) * 1991-04-17 1996-02-13 Siemens Aktiengesellschaft Procedure for verifying data-processing systems
US5331568A (en) * 1991-06-18 1994-07-19 Microelectronics & Computer Technology Corporation Apparatus and method for determining sequential hardware equivalence
US5394347A (en) * 1993-07-29 1995-02-28 Digital Equipment Corporation Method and apparatus for generating tests for structures expressed as extended finite state machines

Also Published As

Publication number Publication date
EP0653716A1 (de) 1995-05-17
EP0653716B1 (de) 1999-08-18
JPH07182406A (ja) 1995-07-21
US5594656A (en) 1997-01-14
DE69326072D1 (de) 1999-09-23
CA2132691A1 (en) 1995-05-03
CA2132691C (en) 2000-01-18

Similar Documents

Publication Publication Date Title
DE69326072T2 (de) Verfahren zur Prüfung eines sequentiellen endlichen Automaten
DE19860061B4 (de) System zur Prüfung der kombinatorischen Äquivalenz
DE69919144T2 (de) Verfahren und gerät zum analysieren von statusbasiertem modell
DE102018100239A1 (de) Schleifen- und Bibliotheksfusion
WO2003021366A1 (de) Verfahren zur validierung von simulationsergebnissen eines systems sowie darauf aufbauender äquivalenzvergleich digitaler schaltungen
DE19903633A1 (de) Implementierung von Boolescher Erfüllbarkeit mit nichtchronologischer Rückwärtsverarbeitung in rekonfigurierbarer Hardware
EP0580663B1 (de) Verfahren zur verifikation datenverarbeitender systeme
EP1764715A1 (de) Verfahren zur Bestimmung der Güte einer Menge von Eigenschaften, verwendbar zur Verifikation and zur Spezifikation von Schaltungen
EP2442248B1 (de) Kopplungsmethodik für nicht-iterative Co-Simulation
DE69838441T2 (de) Verfahren und Anordnung zur Verifizierung logischer Geräte
DE102016222814A1 (de) Verfahren zum berechnen einer ausgabe eines neuronalen netzes
DE10038499A1 (de) Verfahren und System für die verbesserte Entwicklungsprüfung mittels angepasster Ablaufverfolgung
DE202018100066U1 (de) Schleifen- und Bibliotheksfusion
DE69127798T2 (de) Verfahren und Gerät zum Organisieren und Analysieren von Zeitsteuerungsinformationen
DE3854636T2 (de) Automatischer Prüfprozess für logische Geräte.
DE19513960A1 (de) Abbildung eines Graphen in einen Speicher
EP1062604B1 (de) Verfahren und vorrichtung zur ermittlung einer störung eines technischen systems
DE112018006331B4 (de) Testfallgenerierungsvorrichtung, Testfallgenerierungsverfahren und Testfallgenerierungsprogramm
DE102019130971A1 (de) Computerimplementiertes Verfahren zur Simulation einer elektrischen Schaltung
EP1068580B1 (de) Verfahren zum vergleich elektrischer schaltungen
EP1745375A1 (de) Verfahren zur bestimmung von verklemmungen in nebenläufigen prozessen
DE112020000193T5 (de) Quantenschaltungsanordnung
DE3854284T2 (de) Paralleladdierer mit entfernten Abhängigkeiten.
EP0973091B1 (de) Verfahren zum Erzeugen eines regel- und anpassbaren Netzwerkes von Modellen von Verhaltensmustern
DE19710463C2 (de) Verfahren zur automatischen Differentiation auf einem Rechner insbesondere zur Simulation elektronischer Schaltungen

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8327 Change in the person/name/address of the patent owner

Owner name: BULL S.A., LES CLAYES SOUS BOIS, FR