DE69326072T2 - Verfahren zur Prüfung eines sequentiellen endlichen Automaten - Google Patents
Verfahren zur Prüfung eines sequentiellen endlichen AutomatenInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims description 45
- 238000012360 testing method Methods 0.000 title claims description 17
- 230000006870 function Effects 0.000 claims description 66
- 238000004364 calculation method Methods 0.000 claims description 18
- 238000012545 processing Methods 0.000 claims description 9
- 238000010276 construction Methods 0.000 claims description 5
- 201000003231 brachydactyly type D Diseases 0.000 description 29
- 230000007704 transition Effects 0.000 description 16
- 238000004422 calculation algorithm Methods 0.000 description 12
- 238000012795 verification Methods 0.000 description 7
- 238000013461 design Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 238000003379 elimination reaction Methods 0.000 description 5
- 230000004044 response Effects 0.000 description 5
- 230000008030 elimination Effects 0.000 description 4
- 230000009467 reduction Effects 0.000 description 3
- 238000006467 substitution reaction Methods 0.000 description 3
- 239000002131 composite material Substances 0.000 description 2
- 150000001875 compounds Chemical class 0.000 description 2
- 238000011002 quantification Methods 0.000 description 2
- 101100311330 Schizosaccharomyces pombe (strain 972 / ATCC 24843) uap56 gene Proteins 0.000 description 1
- 230000001174 ascending effect Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000011960 computer-aided design Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 101150018444 sub2 gene Proteins 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
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
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 → {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 φ eine Boolesche Funktion und v&sub1;, v&sub2;, ..., vn ihr veränderlicher Träger. Außerdem seien φ[vi ← 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(φ) 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 φ[vi ← 0] in die rechte Richtung weist, und ein Zweig, der vom Baum von φ[vi ← 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(φ) ausgehend wird eine Boolesche Funktion üblicherweise durch ein gewöhnlich als BDD von φ 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 φ 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 δ: {0,1}n → {0,1}k. Sie ist ein Vektor aus k Booleschen Funktionen δ = (δ&sub1;, ..., δk) mit δi: {0,1}n → {0,1}. Mit anderen Worten:
- δ(x&sub1;, ..., xn) = [δ&sub1;(x&sub1;, ..., xn), ..., δk(x&sub1;, ..., xn)]
- Allgemeiner ausgedrückt ist eine vollständig spezifizierte Finite State Machine eine 5fach-Beziehung M = (I, O, S, δ, λ). 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 δj von S · I → {0,1} zugeordnet, während jede Ausgangsvariable oj einer Booleschen Funktion λj von S · I → {0,1} zugeordnet ist. Der Vektor δ = (δj) ist die Übergangsfunktion von S · I → S, während der Vektor λ (λj) die Ausgangsfunktion von S · I → 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
- δ(s&sub1;, ..., sn, x&sub1;, ..., xk): {0,1}n+k → {0,1}n = (δ&sub1;, ..., δn),
- mit δi(s&sub1;, ..., sn, x&sub1;, ..., xk): {0,1}n+k → {0,1}
- λ(s&sub1;, ..., sn, x&sub1;, ..., xk): {0,1}n+k → {0,1}¹ = (λ&sub1;, ..., λ&sub1;),
- mit λi(s&sub1;, ..., sn, x&sub1;, ..., xk): {0,1}n+k → {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 δ, eine erste Ausgangsfunktion λ und eine erste Menge S der Zustände s, während die zweite Verarbeitungsschaltung PC' eine zweite Übergangsfunktion δ', eine zweite Ausgangsfunktion λ' 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 δi wird die Funktion δ'i erhalten, indem die Variablen s&sub1;, ..., sn jeweils durch die Variablen s&sub1;', ..., sn' ersetzt werden. Dann ergibt sich
- δ'i(s'&sub1;, ..., s'n, x&sub1;, ..., xk) = = δi([s&sub1; ← s'&sub1;], ..., [s&sub1; ← 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
- Δ = (δ&sub1;, ..., δn, δ'&sub1;, ..., δn) und Δ = (s&sub1;, ..., sn, s'&sub1;, ..., s'n, x&sub1;, ..., xk): {0,1}n+n+k → {0,1}n+n.
- Die Ausgangsfunktion der Product Machine wird bezeichnet mit
- Λ = (λ&sub1;, ..., λ&sub1;, λ'&sub1;, ..., λ'&sub1;) und Λ = (s&sub1;, ..., sn, s'&sub1;, ..., s'n, x&sub1;, ..., xk): {0,1}n+n+k → {0,1}¹&spplus;¹.
- Somit ist die Product Machine eine 5fach-Beziehung
- M' = (I,[O · O],[S · S], Δ, Λ).
- Als weitere wohlbekannte Definitionen werden die folgenden Schreibweisen verwendet, wenn δ eine Boolesche Funktion ist und x eine Variable:
- xδ = δ(x ← 0) δ(x ← 1)
- xδ = δ(x ← 0) δ(x ← 1)
- wobei x ein Vektor aus Booleschen Variablen sein kann.
- Wenn außerdem δ eine Boolesche Funktion δ: {0,1}n → {0,1}k ist und P {0,1}k, dann lautet das Umkehrbild
- δ&supmin;¹(P) {0,1}n = {(x&sub1;, ..., xn) δ(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 (λj(s,x) λ'j(s',x))
- j ≤ 1
- En = E&sub1; ( x(Δ&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 Δ 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 δ&sub1;, δ'&sub1;, ..., δj, δ'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 Δ 2n Funktionen (δ, δ'), 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(δ, 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 Δ&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 Δ&supmin;¹(En) der Graph einer Äquivalenzrelation in S · S ist. Um die Menge E&sub1; zu erhalten, sind alle Zustandspaare mit demselben Bild durch δ aufzufinden. Um diese zu finden, ist die Erfindung so ausgerichtet, daß sie aus der ersten Menge En-1 einen Vektor θ findet mit der folgenden Eigenschaft:
- [θ(s) = θ(s')] [(s,s') Δ&supmin;¹(En-1)]
- D&supmin;¹(En) kann mit dem Vektor θ auf dieselbe Weise aufgebaut werden, wie die Menge E&sub1; aus der Ausgangsfunktion λ 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 Δ&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 δn-1 = C(En-1)º δ bezeichnet ist, aus dem Querschnitt und dem Vektor δ. Es kann gezeigt werden, daß der neue Vektor die gewünschten Eigenschaften des obigen Vektors θ besitzt. Somit wird dieser Vektor durch eine Modifikation der Übergangsfunktion δ 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 δ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 δn-1 enthalten. Diese Paare sind genau die Elemente von x(Δ&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(Δ&supmin;¹(En-1)) einzusetzen, kann ein alternativer Schritt (c') zur Berechnung der Elemente von x(Δ&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 φ eine Beziehung von B nach C und es sei ≤ eine Gesamtordnung in C, dann ist der Querschnitt φ die Partialfunktion C(φ), die definiert ist durch:
- C(φ) B → C
- x → min({y x,y) φ}
- 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 δen Knoten des Graphen gespeichert werden.
- Danach ist gemäß dem zweiten Schritt (b) des Verfahrens der Erfindung der mit δn-1 bezeichnete zusammengesetzte Ausdruck C(En-1)ºδ 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 δj von δ mit Hilfe des BDD von C(En-1) abläuft.
- Die Funktion δ ist als Vektor aus den Booleschen Funktionen (δ&sub1;, ..., δn) gegeben, wobei die δj aus den Zustandsvariablen si und den Eingangsvariablen xi aufgebaut sind. Der Vektor δn-1 = (δ&sub1;n-1, ..., δn δnn-1) ist aus denselben Variablen aufgebaut, wobei δn-1(s,x) = C(En-1)δ(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 δ&sub1;n-1 ebenso wie δ 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 δ&sub1;n-1 kann für j = 1 bis n durch die folgende Gleichung definiert werden:
- δ&sub1;n-1(s,x) = Kj[C(En-1)(δ(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) ≠ Kj(G). Die δjn-1 werden unter Anwendung des folgenden Theorems erhalten.
- Theorem 1: Es sei F der Vektor C(En-1), dann kann F º δ = δn-1 = (δ&sub1;n-1, ..., δnn-1) definiert werden durch
- δjn-1 = (δj δ&supmin;¹(Dj))
- Als Beweis wird geprüft, daß δjn-1(s,x) = Kj[F(δ(s,x))] für Fälle, die von den Werten von Kj(δ(s,x)) und Kj[F(δ(s,x))] abhängen:
- Kj(δ(s,x)) = 0 und Kj[F(δ(s,x))] = 0. Da δ(s,x) nicht in Dj ist und (s,x) nicht in δ&supmin;¹(Dj), und da (s,x) nicht in δ ist, folgt δjn-1(s,x) = 0.
- Kj(δ(s,x)) = 0 und Kj[F(δ(s,x))] = 1. Da δ(s,x) in Dj ist und (s,x) nicht in δ&supmin;¹(Dj), und da δ(s,x) = 0, ergibt sich δjn-1(s,x) = 1.
- Kj(δ(s,x)) = 1 und Kj[F(δ(s,x))] = 0. Da δ(s,x) in Dj ist und (s,x) in δ&supmin;¹(Dj), und da (s,x) in δ(s,x) = 0 ist, folgt δjn-1(s,x) = 0.
- Kj(δ(s,x)) = 1 und Kj(F(δ(s,x))] = 1. Da δ(s,x) nicht in Dj ist und (s,x) nicht in δ&supmin;¹(Dj), und da (s,x) in δ ist, folgt δ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(Δ&supmin;¹(En-1))] x(δn-1(s) = δn-1(s'))
- These 1: Wenn φ eine beliebig definierte transitive und symmetrische Beziehung von B in B ist, dann folgt
- x,y((C(φ)(x) = C(φ)(y)) (x,y)) φ))
- Es sei t = C(φ)(x). Per Definition sind zwei Paare (x,t) und (y,t) in φ. Durch die Symmetrie ist (t,y) in φ. Somit ist durch die Transitivität (x,y) in φ.
- Es sei angenommen, daß C(φ)(x) < C(φ)(y) und daß (x,y) φ Durch die Symmetrie ist (x,y) in φ. Durch die Transitivität ist (yC(φ)(x)) in φ. Nun ist (yC(φ) (x)) φ unvereinbar unter der Annahme, daß C(φ)(y) < C(φ)(x).
- Theorem 2: Der zusammengesetzte Ausdruck C(En-1) º δ weist die aufzuzeigende Eigenschaft der Gleichung nach.
- Die Aussagen ergeben sich aus der These 1.
- x I[F(δ(s,x)) = F(δ(s',x))]
- x I[(δ(s,x)), (δ(s',x)) En-1] aus These 1
- x I[(δ(s,s',x)) En-1] aus der Definition von δ
- (s,s') ( x(Δ&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 φ eine Funktion des Typs S · S mit einem Graphen C(En-1). Aus dem BDD von C(En-1) und der Übergangsfunktion δ wird in Übereinstimmung mit dem Verfahren der Erfindung der Vektor δn-1 berechnet. Die Vektor δn-1 wird durch Umbenennen der Variablen s in s' aufgebaut. Danach wird die Menge xΔ&supmin;¹(δn-1 δ,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Δ&supmin;¹(En-1) auf dieselbe Weise aus δn-1 aufgebaut, wie E&sub1; aus Λ aufgebaut wird. Zum Schluß ist die Menge En gleich ( xΔ&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 ≤ n){
- dif = s'(( sj s'j) proj);
- ant = δ&supmin;¹. (dif);
- case(j){
- (1){
- new&sub1; = δ&sub1; ant;
- new'&sub1; = new&sub1;[s ← s'];
- break;
- }
- [...]
- (n) {
- newn = δn ant;
- new'n = newn[s ← s'];
- break;
- }
- }
- }
- pred = x (newj new' j);
- j ≤ 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Δ&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 δ: B → 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[(δ(s,x),δ(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 δ* = CA º δ bezeichnet ist, aus dem Querschnitt und dem Vektor δ und (c) Berechnen der Paare (s, s'), derart, daß Qx&sub1;, ..., Qxk · (δ*(s, x) = δ(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 δ von der Übergangsfunktion einer FSM verschieden sein kann. Da keine iterative Berechnung ausgeführt wird, wird der Vektor δ* statt δ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 φ eine Beziehung von B in C und es sei ≤ eine Gesamtordnung in C, dann ist der Querschnitt von φ die Partialfunktion C(φ), die folgendermaßen definiert ist:
- C(φ) B → C
- x → min({y (x,y) φ}
- 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 ≤ 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 δ* aus dem Vektor δ 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 δ* 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 δ: B → 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[(δ(s,x),δ(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 δ* = CA º δ bezeichnet ist, aus dem Querschnitt und
dem Vektor δ und (c) Berechnen der Paare (s, s'), derart, daß
Qx&sub1;, ..., Qxk · (δ*(s,x) = δ(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 Δ&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 φ eine Beziehung von B in C und es sei
< eine strikte Gesamtordnung in C, dann ist der Querschnitt
von φ die Partialfunktion C(φ), die folgendermaßen definiert
ist:
C(φ): B → C
x → min({y x,y) φ)}
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 φ eine Beziehung von B nach C und es
sei ≤ eine Gesamtordnung auf C, dann ist der Querschnitt φ die
Partialfunktion C(φ), die definiert ist durch:
C(φ): B → C
x → min ({y x,y) φ}
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 δ* aus dem
Vektor δ 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 δ* 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 δn-1 = C(En-1) º δ aus dem Querschnitt und dem
Vektor δ 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 δn-1 enthält, um die Paare
( xΔ&supmin;¹(En-1)) zu erhalten.
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)
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)
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 |
-
1993
- 1993-11-02 DE DE69326072T patent/DE69326072T2/de not_active Expired - Lifetime
- 1993-11-02 EP EP93402682A patent/EP0653716B1/de not_active Expired - Lifetime
-
1994
- 1994-09-22 CA CA002132691A patent/CA2132691C/en not_active Expired - Lifetime
- 1994-10-24 US US08/327,870 patent/US5594656A/en not_active Expired - Lifetime
- 1994-11-02 JP JP26973494A patent/JPH07182406A/ja active Pending
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 |