-
Die Erfindung betrifft ein Verfahren zur Erzeugung einer Schaltung aus einer Darstellung von Eigenschaften in einem Eigenschaftsgraphen, eine unter Verwendung dieses Verfahrens hergestellte Schaltung, einen Computer mit einem Computerprogramm zur Durchführung dieses Verfahrens sowie ein Computerprogramm mit Programmcode, der auf einem Speichermedium gespeichert ist, zur Durchführung dieses Verfahrens.
-
Systeme, insbesondere zur Signalverarbeitung, werden häufig durch Zustandsgraphen oder Eigenschaftsgraphen beschrieben.
-
Aus der Internet-Datenbank http://de.wikipedia.org ist ein Schaltwerk bekannt, gemäß dem verschiedene Eingangswerte als boolsche Variablen entsprechend einer festgelegten Schaltmatrix zu einem Ausgangswert verarbeitet werden. Im Gegensatz zu Schaltnetzen, bei denen definitionsgemäß keine Rückkopplungen vorliegen, ist bei einem Schaltwerk mindestens einer der Ausgänge auf mindestens einen der Eingänge rückgekoppelt, wodurch die Schaltung einen speichernden Charakter (ein Gedächtnis) erhält. Ein Schaltwerk heißt „synchron”, wenn die Eingänge und Rückkopplung durch Taktsignale synchronisiert sind, andernfalls heißt es „asynchron”.
-
Zur Konferenz DATE 2007 ist von Martin Schickel et. al. eine Veröffentlichung mit dem englischen Titel „CandoGen – A Property-Based Model Generator” bekannt. Diese wurde auf dem University Booth auf der Konferenz DATE 2007 präsentiert. Demzufolge hat ein eigenschaftsbasierter Entwurf (Property-Based Design) viele Anwendungen im Bereich der formalen Verifikation. Im Rahmen der Veröffentlichung stellt der Verfasser ein Computerprogramm vor, mit Hilfe dessen eine exakte Implementierung aus einer Menge von finiten PSL-Eigenschaften automatisch generierbar ist.
-
Des Weiteren ist vom Autor Martin Schickel et. al. eine Veröffentlichung mit dem Titel „A Case-Study in Property-Based Synthesis: Generating a Cache Controller from a Property-Set” aus der Veröffentlichung „Embedded Systems Specification and Design Languages”, Springer Netherlands, 2008, Seiten 271 bis 275 bekannt, der zufolge eine eigenschaftsbasierte Synthese ein wichtigeres Thema im Verlauf der vergangenen Jahre geworden ist, und diese in vielen Gebieten wie beispielsweise der formalen Verifikation und der Designautomation verwendet wird. Der Verfasser beschreibt ein eigenschaftsbasiertes formales Spezifikationswerkzeug eines Cache Controllers für einen MIPS-Core, das verwendet werden kann, um automatisch eine funktionale Implementierung dieses Controllers zu generieren. Des Weiteren ist darin beschrieben, wie zusätzliche Performance-Information über das komplette System aus dieser Tätigkeit erhalten werden kann.
-
Es ist wünschenswert, für derartige Zustandsgraphen oder Eigenschaftsgraphen geeignete Schaltungen und auch die erforderlichen Verfahren zur Umsetzung in eine solche Schaltung bereitzustellen.
-
Aufgabe der Erfindung ist daher die Bereitstellung eines Verfahrens zur Erzeugung einer Schaltung aus einer Darstellung von Eigenschaften in einem Eigenschaftsgraphen, einer unter Verwendung dieses Verfahrens hergestellten elektrischen Schaltung, eines Computers mit einem Computerprogramm zur Durchführung dieses Verfahrens sowie eines Computerprogramms mit Programmcode, der auf einem Speichermedium gespeichert ist, zur Durchführung dieses Verfahrens.
-
Diese Aufgabe wird gelöst durch ein Verfahren zur Erzeugung einer Schaltung aus einer Darstellung von Eigenschaften mit einem Eigenschaftsgraphen mit den Merkmalen des Patentanspruchs 1, einer elektrischen Schaltung unter Verwendung des erfindungsgemäßen Verfahrens, einem Computer mit einem Computerprogramm zur Durchführung des erfindungsgemäßen Verfahrens sowie ein Computerprogramm mit Programmcode, das auf einem Speichermedium gespeichert ist, zur Durchführung des erfindungsgemäßen Verfahrens.
-
Gemäß Anspruch 1 betrifft die Erfindung ein Verfahren zur Erzeugung einer elektrischen Schaltung mit Hilfe eines Computers mit einem Computerprogramm,
- a) wobei die elektrische Schaltung umfasst
- a1) eine Speichereinheit zum Speichern von Schaltungs-Zuständen,
- a11) wobei ein Schaltungs-Zustand jeweils wenigstens einen Folge-Zustand aufweist,
- a2) eine Logikeinheit zum Bestimmen der Folge-Zustände, sowie insbesondere zur Erzeugung von Ausgangswerten, durch Verarbeiten von Schaltungs-Zuständen, insbesondere unter Einbeziehung von Eingangswerten,
- a3) eine Takterzeugungseinheit zur Festlegung von aufeinanderfolgenden Takt-Zeitpunkten,
- a4) wobei die Schaltung das Verhalten, das ein Eigenschaftsgraph beschreibt, wiedergibt,
- b) wobei im Computerprogramm ein Eigenschaftsgraph verwendet wird,
- b1) wobei der Eigenschaftsgraph Graphen-Eigenschaften aufweist,
- b2) wobei eine Graphen-Eigenschaft zeitlich aufeinanderfolgende Eigenschaftszeitpunkte aufweist,
- b3) wobei die Eigenschaftszeitpunkte einen Anfangszeitpunkt sowie einen Endzeitpunkt umfassen,
- b4) wobei ein Eigenschaftszeitpunkt in einem folgenden Zeitpunkt, insbesondere im folgenden Takt-Zeitpunkt, in einen anderen Eigenschaftszeitpunkt übergeht,
- c) wobei der Computer zu jedem Schaltungs-Zustand wenigstens einen Folge-Zustand bestimmt, indem für jeden Eigenschaftszeitpunkt des Eigenschaftsgraphen, den der Schaltungs-Zustand abbildet, jeweils wenigstens ein folgender Eigenschaftszeitpunkt bestimmt wird,
- d) wobei der Computer zu wenigstens einem Endzeitpunkt einer ersten Graphen-Eigenschaft jeweils wenigstens einen Anfangszeitpunkt wenigstens einer weiteren Graphen-Eigenschaft ermittelt,
- e) wobei derjenige Anfangszeitpunkt ermittelt wird, in den der Endzeitpunkt der ersten Graphen-Eigenschaft übergeht,
- f) wobei der Computer auch den wenigstens einen Anfangszeitpunkt der wenigstens einen weiteren Graphen-Eigenschaft auf den den Endzeitpunkt der ersten Graphen-Eigenschaft abbildenden Schaltungs-Zustand abbildet,
- g) wobei die bestimmten Schaltungs-Zustände einen Automatengraphen bilden und
- h) wobei der Computer den Automatengraphen anschließend auf Register-Transfer-Ebene abbildet.
-
Mit Hilfe der erfindungsgemäßen Schaltung lässt sich das Verhalten, das ein Eigenschaftsgraph beschreibt, in vorteilhafter Weise wiedergeben.
-
Ein Schaltungs-Zustand bildet jeweils wenigstens einen Eigenschaftszeitpunkt ab, wobei ein Eigenschaftszeitpunkt ein Element eines Eigenschaftsgraphen ist, wobei der Eigenschaftsgraph Graphen-Eigenschaften aufweist, wobei eine Graphen-Eigenschaft zeitlich aufeinanderfolgende Eigenschaftszeitpunkte aufweist, wobei die Eigenschaftszeitpunkte einen Anfangszeitpunkt sowie einen Endzeitpunkt umfassen, wobei ein Eigenschaftszeitpunkt im folgenden Zeitpunkt in einen anderen Eigenschaftszeitpunkt übergeht.
-
Wenigstens ein Endzeitpunkt einer ersten Graphen-Eigenschaft ist mit wenigstens einem Anfangszeitpunkt wenigstens einer weiteren Graphen-Eigenschaft verknüpft, wobei der wenigstens eine Endzeitpunkt sowie der wenigstens eine Anfangszeitpunkt im gleichen Schaltungs-Zustand abgebildet sind.
-
Mit Hilfe des Eigenschaftsgraphens lassen sich in vorteilhafter Weise technische Abläufe spezifizieren, die sich bevorzugt mit Hilfe des erfindungsgemäßen Verfahrens in eine Schaltung umwandeln lassen.
-
Die erfindungsgemäße Schaltung ist unter Verwendung des erfindungsgemäßen Verfahrens hergestellt.
-
Es wird zu wenigstens einem Endzeitpunkt einer ersten Graphen-Eigenschaft jeweils wenigstens ein Anfangszeitpunkt wenigstens einer weiteren Graphen-Eigenschaft ermittelt, wobei derjenige Anfangszeitpunkt ermittelt wird, in den der Endzeitpunkt der ersten Graphen-Eigenschaft übergeht, wobei auch der wenigstens eine Anfangszeitpunkt der wenigstens einen weiteren Graphen-Eigenschaft auf den den Endzeitpunkt der ersten Graphen-Eigenschaft abbildenden Schaltungs-Zustand abgebildet wird. Dies ermöglicht eine zumindest relativ einfach in einer Schaltung realisierbare Verknüpfung zwischen dem Endzeitpunkt der ersten Graphen-Eigenschaft und dem wenigstens einen Anfangszeitpunkt der wenigstens einen weiteren Graphen-Eigenschaft.
-
Die bestimmten Schaltungs-Zustände bilden einen Automatengraphen und der Automatengraph wird anschließend auf Register-Transfer-Ebene und vorzugsweise in eine Schaltung abgebildet, wobei insbesondere nichtdeterministische Übergänge in deterministische Übergänge umgewandelt werden und/oder wobei insbesondere Zuweisungen oder Zusicherungen in explizite Form überführt werden.
-
Bevorzugt wird der Eigenschaftsgraph aus dem Kantengraphen eines Zustandsautomaten erzeugt.
-
Das Verfahren ist computerimplementiert. Weiterhin betrifft die Erfindung ein Computerprogramm mit Programmcode, der auf einem Speichermedium gespeichert ist, zur Durchführung des Verfahrens gemäß der Erfindung und einen Computer mit einem Computerprogramm zur Durchführung des Verfahrens gemäß der Erfindung.
-
Die Erfindung wird im Folgenden anhand von Ausführungsbeispielen genauer beschrieben, wobei
-
1 einen Zustandsgraph,
-
2 die Eigenschaft reset,
-
3 die Eigenschaft idle,
-
4 die Eigenschaft sync,
-
5 die Eigenschaft inframe,
-
6 die Eigenschaft nosync,
-
7 einen ersten Eigenschaftsgraphen,
-
8 einen zweiten Eigenschaftsgraphen,
-
9 einen Automatengraphen und
-
10 die Struktur einer erfindungsgemäßen Schaltung
zeigt.
-
Das nachfolgende Ausführungsbeispiel beschreibt zunächst beispielhaft einen einfachen Zustandsgraphen Z, der aus 1 ersichtlich ist, und dessen Verhalten die erfindungsgemäße Schaltung abbilden soll, die mit Hilfe des erfindungsgemäßen Verfahrens erzeugt ist.
-
Zum besseren Verständnis des Zustandsgraphens Z wird nachfolgend grob und beispielhaft das Verhalten einer möglichen Komponente mit der Bezeichnung mini_framer-Komponente skizziert, die in stark abstrahierter Form durch einen derartigen Zustandsgraphen beschrieben werden kann.
-
Es soll ein auf 16-Bit-Datenworte parallelisierter serieller Datenstrom empfangen werden, darin nach einem Synchronisationswort gesucht werden, um diesen im Erfolgsfall korrekt auszurichten und, mit entsprechenden Statussignalen versehen, am Ausgang anlegen zu können. Tabelle 1 zeigt elektrische Anschlüsse für die Ein- und Ausgangsdaten der Komponente. Der eingehende Datenstrom besteht aus direkt aufeinanderfolgenden Rahmen von je acht mal 16 Bit. Tabelle 1: Elektrische Anschlüsse für die Ein- und Ausgangsdaten der mini_framer-Komponente
Anschluss | Richtung | Breite |
clk | In | 1 |
rst | In | 1 |
din | In | 16 |
dout | Out | 16 |
frmpulse | Out | 1 |
inframe | Out | 1 |
-
Die Grundzüge des Verhaltens der zu erzeugenden Komponente werden im Folgenden grob auf Verhaltensebene beschrieben.
-
Die 16-Bit-Datenworte des Rahmens können gegenüber dem Eingang din beliebig verschoben anliegen. Jeder Rahmen besteht aus 3 Worten Overhead, die zur Synchronisation dienen, sowie 5 Worten Payload, die die zu übertragenden Daten enthalten.
-
Das zweite und dritte Overheadwort sind dabei eine feste Synchronisationssequenz, beispielsweise 0xF6F62828 in Hexadezimalschreibweise. Die mini_framer Komponente dient dazu, diese Sequenz zu erkennen und die vorliegende Verschiebung der Bits innerhalb eines Wortes zu korrigieren und dann am Ausgang dout anzulegen.
-
Der Eingang clk liest die Taktperioden des Taktsignals ein, über rst lässt sich die Schaltung in den Ausgangszustand versetzen.
-
Die weiteren Ausgangssignale frmpulse und inframe stellen Statusinformationen bereit. Sobald eine Synchronisationssequenz erkannt wird, schaltet ab dem nächsten beginnenden Payload-Datenwort der Ausgang inframe in einen aktiven Zustand, und bleibt dauerhaft aktiv, bis die Synchronisation eines zukünftigen Rahmens fehlschlägt. Der Ausgang frmpulse ist jeweils für eine Taktperiode am ersten Datenwort eines synchronisierten Rahmens aktiv.
-
Die Komponente hat zwei wesentliche Betriebsfälle, zum einen den Zustand U2 (s_idle), in dem keine Synchronisation vorliegt und zum anderen den Zustand U1 (s_inframe), der ein synchronisiertes System repräsentiert. Diese Zustände sowie die Übergänge zwischen den beiden Zuständen sind im Zustandsgraphen gemäß 1 graphisch dargestellt. Nach dem Rücksetzen der Komponente gelangt man automatisch in den Zustand U2 (s_idle).
-
Wenn kein Synchronisationswort gefunden wird, bleibt dieser Zustand erhalten, anderenfalls wird in den Zustand U1 (s_inframe) gewechselt und auf das entsprechende Synchronisationswort im nächsten Rahmen gewartet. Die weiteren Übergänge kennzeichnen wiederum entweder das Verbleiben in U1 (s_inframe) oder den Fall, dass ein erwartetes Synchronisationswort nicht aufgefunden wurde und zurück in U2 (s_idle) gewechselt werden muss.
-
Jeder der Übergänge in diesem Zustandsgraphen kann im Gegensatz zu herkömmlichen oder anderen Zustandsgraphen mehr als eine Taktperiode lang sein. Die Übergänge werden im erfindungsgemäßen Verfahren als selbständige Eigenschaften modelliert, und sind jeweils nur dafür verantwortlich, das System von einem wohldefinierten Zustand in einen anderen zu überführen, wobei die dazwischen liegende Zeit beliebig lang sein kann.
-
2 bis 6 stellen die Eigenschaften der Komponente graphisch dar. Dabei werden die Signale dout, frmpulse sowie inframe geschrieben, während das Signal din gelesen wird, wobei der Inhalt von din darüber entscheidet, ob die Eigenschaft sync oder no_sync gewählt werden kann. Jede der Eigenschaften kann weiterhin ein internes Signal sync_pos schreiben und lesen.
-
Das Signal sync_pos beinhaltet die genaue Bitposition, um die der Eingang din verschoben werden muss, um am Ausgang dout korrekt ausgerichtet zu erscheinen. Die genauen Details der Eigenschaften sind in den Abbildungen meist nur schematisch dargestellt.
-
Die Komponente entspricht einem stark vereinfachten industriellen Design, dessen Funktionstüchtigkeit mit ähnlichen Eigenschaften vollständig verifiziert wurde. Die Rahmenlänge von vielen tausend Takten wurde beispielsweise auf acht Takte heruntergesetzt.
-
Weiterhin besitzt die Originalkomponente einen wesentlich aufwändigeren Zustandsautomaten, der beispielsweise nicht sofort nach U1 (s_inframe) springt, sondern erst eine bestimmte Anzahl Rahmen mit erfolgreicher Synchronisation abwartet. Zusätzlich wurden für das Beispiel fast alle Datenflussoperationen, wie das Scrambling oder die Parity-Bit-Prüfung nicht berücksichtigt.
-
Anhand dieses Beispiels werden in den folgenden alle Schritte der erfindungsgemäßen Erzeugung einer Schaltung illustriert.
-
Ein Eigenschaftsgraph G1, der in 7 gezeigt ist, ist ein gerichteter, zyklischer Graph ohne Mehrfachkanten. Der Eigenschaftsgraph kann im Gegensatz zum Zustandsgraphen keine Mehrfachkanten aufweisen. Mehrfachkanten sind Kanten, die jeweils den selben Start- und Endknoten haben. Der Eigenschaftsgraph umfasst im gezeigten Ausführungsbeispiel die Knoten P1 bis P5, die jeweils den Eigenschaften der Komponente entsprechen und die Kanten U1 bis U2, die die Übergänge zwischen den Eigenschaften darstellen.
-
Der Eigenschaftsgraph G1, der auch als Kantengraph des Zustandsgraphen Z gemäß 1 bezeichnet werden kann, lässt sich aus dem Zustandsgraphen Z ermitteln. Bei der formalen Verifikation beispielsweise wird der Eigenschaftsgraph G1 erstellt, und nicht der in manchen anderen Fällen intuitiver zu handhabende Zustandsgraph Z. Umgekehrt kann mit Hilfe bekannter Algorithmen auch der Zustandsgraph Z aus dem Kanten- oder Eigenschaftsgraphen gewonnen werden.
-
Der Eigenschaftsgraph G1 ist ein nichtdeterministischer Automatengraph, da auf jede Eigenschaft mehr als eine weitere folgen kann.
-
7 zeigt den Eigenschaftsgraphen G1 für das beschriebene mini_framer-Beispiel. Die Zustände des Zustandsgraphen Z aus 1 sind dabei zur Illustration noch angedeutet, sind jedoch beim Eigenschaftsgraphen G1 nicht erforderlich.
-
Die Eigenschaften P1 bis P5 bestehen im Wesentlichen aus zwei Teilen, dem Annahmen- und dem Zusicherungsteil, wobei die Annahmen alle Bedingungen formulieren, die darüber entscheiden, ob diese Eigenschaft in einer bestimmten Situation überhaupt ausgeführt wird. Annahmen sind in den 3 bis 6 mit Fragezeichen versehen, und kennzeichnen im konkreten Fall, ob ein entsprechendes Synchronisationswort gefunden wurde. Die Zusicherungen sind dann diejenigen Anweisungen, die beim Zutreffen aller Annahmen in der Folge auch ausgeführt werden.
-
8 zeigt einen Eigenschaftsgraphen G2, bei dem im Gegensatz zum Eigenschaftsgraphen G1 aus 7 die einzelnen Eigenschaften zeitlich abgerollt sind.
-
Die Eigenschaftsgraphen G1 und G2 haben jeweils eine Rücksetzeigenschaft P1 (reset), die, wie aus 8 ersichtlich, als einzige keine Vorgängereigenschaft besitzt und deren Zeitpunkt 0 den ersten Takt nach dem Rücksetzen der Komponente darstellt.
-
Jede Eigenschaft P1 bis P5 gemäß dem Eigenschaftsgraphen G2 besitzt mehrere speziell markierte Zeitpunkte. Alle Eigenschaften P2 bis P5 außer der reset-Eigenschaft P1 besitzen einen Zeitpunkt, der den Beginn der Eigenschaft markiert (leftHook). Dieser ist P21 für die Eigenschaft P2, P31 für P3, P41 für P4 und P51 für die Eigenschaft P5 und muss nicht der Zeitpunkt 0 sein. Das ist darin begründet, dass bei bestimmten formalen Verifikationsverfahren, beispielsweise im Bounded Model Checking, die Eigenschaften in vielen Fällen eine Anzahl Takte als Historie benötigen, um die erreichbaren Zustände einzuschränken. Es wäre möglich, im Zuge der Synthese der Schaltung den leftHook auf den Zeitpunkt 0 zu normalisieren, was aber dann zu Unterschieden zwischen den Eigenschaften für Synthese der Schaltung und den Eigenschaften für formale Verifikation führt, bei der eine Anzahl Takte als Historie benötigt wird.
-
Das Ende einer Eigenschaft ist durch den Zeitpunkt rightHook gekennzeichnet. Dieser ist P22 für die Eigenschaft P2, P32 für P3, P42 für P4 und P52 für die Eigenschaft P5.
-
Wenn zwei Eigenschaften direkt aufeinander folgen, d. h. wenn die Komponente sie nacheinander abarbeitet, dann entspricht der rightHook der vorangegangenen Eigenschaft dem leftHook der darauffolgenden Eigenschaft. Der jeweils letzte Zeitpunkt einer Eigenschaft, zu dem Annahmen oder Zusicherungen ausgeführt werden, wird durch last markiert, wobei immer gilt rightHook ≤ last.
-
Es existiert für jeden Übergang zwischen zwei Eigenschaften eine Kante vom rightHook der ersten zum leftHook der zweiten. Da aber bei dem Übergang keine Zeit vergehen darf, kann man sich diese Kanten als ε-Kanten vorstellen, die an sich bekannt sind und beispielsweise von J. E. Hopcroft und J. D. Ullmann beschrieben wurden.
-
Zu beachten ist auch, dass noch die bereits erwähnten Zustände vor dem leftHook existieren. Um diese im weiteren Verfahren nicht mehr beachten zu müssen, muss festgelegt werden, dass es keine Annahmen und Zusicherungen vor dem leftHook geben darf. Bei den Annahmen kann dies erreicht werden, indem die Auswertung von Annahmen um entsprechend viele Takte verzögert wird, bis diese hinter dem leftHook erscheinen.
-
Die Synthese des Eigenschaftsgraphen zu einer Schaltung geschieht in zwei Schritten. Im ersten Schritt wird der Graph in einen Automatengraphen umgeformt und dieser im zweiten Schritt als elektrische Schaltung auf Register-Transfer-Ebene abgebildet.
-
9 zeigt einen Automatengraphen H, der durch das erfindungsgemäße Verfahren aus dem Graphen G2 erzeugt wurde. Die Knoten S1 bis Sn entsprechen den Zuständen des Automaten, während die Kanten E1 bis En des Graphen Zustandsübergänge darstellen.
-
Der Automatengraph H ist ein nichtdeterministischer endlicher Automat (NEA). Die Knoten S1 bis Sn von H entsprechen jeweils bestimmten Zeitpunkten einer Eigenschaft. Dabei werden die Eigenschaft p, die in 9 exemplarisch mit S1p, S2p bezeichnet ist, und der Zeitpunkt tp, der in 9 mit S1t, S2t bezeichnet ist, relativ zu dieser Eigenschaft zu einem Tupel zusammengefasst.
-
Im Folgenden wird ein solches Tupel mit p: tp notiert und als Eigenschaftsposition bezeichnet. Allerdings reicht diese Angabe in vielen Fällen noch nicht aus, um einen Zustand vollständig zu beschreiben, da vorangegangene Eigenschaften in ihren Auswirkungen auch während nachfolgender Eigenschaften noch aktiv sein können. Deshalb enthält ein Zustand meist nicht nur die Eigenschaftsposition der aktuellen Eigenschaft, sondern auch alle Eigenschaftspositionen vorangegangener, noch nicht abgeschlossener Eigenschaften.
-
Ein Zustand des Automatengraphen H ist also eine geordnete Menge S von Eigenschaftspositionen. Die Ordnungsrelation dieser Menge ist dabei
-
t-leftHook(p) ist die Zeit, die seit dem Start left hook(p) einer Eigenschaft p vergangen ist. Entsprechend ist t-leftHook(q) die Zeit, die seit dem Start left hook(q) einer Eigenschaft q vergangen ist. Die Eigenschaftspositionen werden entsprechend dieser Zeit sortiert, d. h. „junge” Eigenschaftspositionen sind weiter vorn in der Menge S positioniert als „ältere”.
-
Das minimale Element einer solchen Menge S von Eigenschaftspositionen bezeichnet die gegenwärtig jüngste Eigenschaft. Sie wurde von allen parallel ablaufenden Eigenschaften in S zuletzt gestartet und hat als einzige noch nicht ihren rightHook erreicht. Die im untenstehenden Algorithmus 1 dargestellte Funktion veranschaulicht die Konstruktion von H.
-
Beginnend mit dem Startzustand {reset: 0} als erster Eigenschaftsposition oder erstem Zustand s
0 wird für jeden Zustand die Menge seiner Nachfolger mit der Funktion
successorH : S ↦ 2S berechnet und eine entsprechende Kante {s, s'} zu H hinzugefügt, die den Übergang zwischen der jeweiligen Eigenschaftsposition oder erstem Zustand s zum Nachfolger s' kennzeichnet. Die Menge S wird jeweils um den Nachfolger s' ergänzt, soweit dieser noch kein Element von S ist. Algorithmus 1: Funktion createH
-
Die Funktion successorH(s) ist in Algorithmus 2 beschrieben. Zuerst werden die Zeitpunkte aller Eigenschaftspositionen p:t
p s um einen Schritt erhöht. Dabei entfallen alle Positionen, deren Zeitpunkt t
p hinter dem Ende last der Eigenschaft liegt. Der so entstandene Zustand wird in der Variable s' abgelegt.
-
Bei der weiteren Berechnung sind zwei Fälle zu unterscheiden. Im ersten Fall erreicht die momentan jüngste Eigenschaft p im nächsten Schritt ihren rightHook. Dabei entsteht für jeden aus der Menge P aller Eigenschaftspositionen im Eigenschaftsgraphen, hier G2, ermittelten Nachfolger q von p, bei dem es also in der Menge U aller Kanten eine Kante von q nach p gibt, ein neuer Zustand in H, bei dem der leftHook(q) an den bereits errechneten Zustand s' angehängt wird. Im zweiten Fall kann s' direkt zurückgegeben werden. Algorithmus 2: Funktion successorH(s)
-
Der in 9 gezeigte Graph stellt das Resultat der Anwendung der Algorithmen 1 und 2 für das bereits vorgestellte mini_framer-Beispiel dar. Der Graph umfasst 39 Knoten, die nach der Synthese den Kontrollzuständen des Systems entsprechen werden. Dieser Graph ist immer noch ein nichtdeterministischer endlicher Automat ohne Mehrfachkanten, aber mit Schleifen.
-
Der erhaltene Graph wird anschließend üblicherweise auf Register-Transfer-Ebene abgebildet. Für die Abbildung des Graphen in 9 auf Register-Transfer-Ebene können gängige Verfahren angewandt werden, die allgemein bekannt sind und auf die daher nicht näher eingegangen wird. Aus der Beschreibung in Register-Transfer-Ebene oder auch direkt aus dem Graphen lässt sich dann in ebenfalls bekannter Weise die erfindungsgemäße Schaltung erzeugen, die schematisch in 10 gezeigt ist.
-
10 zeigt schematisch eine erfindungsgemäße Schaltung mit einer Speichereinheit M, die ein Taktsignal von einer Takterzeugungseinheit T einliest und Werte an eine Logikeinheit L ausgibt und von dieser einliest. Dabei können auch Eingangssignale E verarbeitet werden und Ausgangssignale A ausgegeben werden.