DE102009041815B4 - Verfahren zur Erzeugung einer Schaltung aus einer Darstellung von Eigenschaften in einem Eigenschaftsgraphen - Google Patents

Verfahren zur Erzeugung einer Schaltung aus einer Darstellung von Eigenschaften in einem Eigenschaftsgraphen Download PDF

Info

Publication number
DE102009041815B4
DE102009041815B4 DE102009041815.6A DE102009041815A DE102009041815B4 DE 102009041815 B4 DE102009041815 B4 DE 102009041815B4 DE 102009041815 A DE102009041815 A DE 102009041815A DE 102009041815 B4 DE102009041815 B4 DE 102009041815B4
Authority
DE
Germany
Prior art keywords
property
graph
circuit
time
state
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE102009041815.6A
Other languages
English (en)
Other versions
DE102009041815A1 (de
Inventor
Dipl.-Ing. Langer Jan
Prof. Dr.-Ing. Heinkel Ulrich
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.)
Technische Universitaet Chemnitz
Original Assignee
Technische Universitaet Chemnitz
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 Technische Universitaet Chemnitz filed Critical Technische Universitaet Chemnitz
Priority to DE102009041815.6A priority Critical patent/DE102009041815B4/de
Publication of DE102009041815A1 publication Critical patent/DE102009041815A1/de
Application granted granted Critical
Publication of DE102009041815B4 publication Critical patent/DE102009041815B4/de
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design

Abstract

Die Erfindung betrifft 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. ...

Description

  • 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
    Figure DE102009041815B4_0002
  • 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 s0 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
    Figure DE102009041815B4_0003
    Figure DE102009041815B4_0004
  • Die Funktion successorH(s) ist in Algorithmus 2 beschrieben. Zuerst werden die Zeitpunkte aller Eigenschaftspositionen p:tp
    Figure DE102009041815B4_0005
    s um einen Schritt erhöht. Dabei entfallen alle Positionen, deren Zeitpunkt tp 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)
    Figure DE102009041815B4_0006
    Figure DE102009041815B4_0007
  • 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.

Claims (5)

  1. Verfahren zum Erzeugen einer elektrischen Schaltung mit Hilfe eines Computers mit einem Computerprogramm, a) wobei die elektrische Schaltung umfasst a1) eine Speichereinheit (M) zum Speichern von Schaltungs-Zuständen (S1, S2, ...), a11) wobei ein Schaltungs-Zustand jeweils wenigstens einen Folge-Zustand (S2, S3, ...) aufweist, a2) eine Logikeinheit (L) zum Bestimmen der Folge-Zustände, sowie insbesondere zur Erzeugung von Ausgangswerten (A), durch Verarbeiten von Schaltungs-Zuständen (S1, S2, S3, ...), insbesondere unter Einbeziehung von Eingangswerten (E), a3) eine Takterzeugungseinheit (T) 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 (G2) Graphen-Eigenschaften (P1, P2, ...) aufweist, b2) wobei eine Graphen-Eigenschaft (P1, P2, ...) zeitlich aufeinanderfolgende Eigenschaftszeitpunkte (P11, P12, P21, P22, ...) aufweist, b3) wobei die Eigenschaftszeitpunkte einen Anfangszeitpunkt (P11, P21, ...) sowie einen Endzeitpunkt (P12, P22, ...) umfassen, b4) wobei ein Eigenschaftszeitpunkt (P11, P12, P21, P22, ...) in einem folgenden Zeitpunkt, insbesondere im folgenden Takt-Zeitpunkt, in einen anderen Eigenschaftszeitpunkt übergeht, c) wobei der Computer zu jedem Schaltungs-Zustand (S1, S2, S3, ...) wenigstens einen Folge-Zustand (S1, S2, S3, ...) bestimmt, indem für jeden Eigenschaftszeitpunkt (P11, P12, P21, P22, ...) des Eigenschaftsgraphen (G2), den der Schaltungs-Zustand abbildet, jeweils wenigstens ein folgender Eigenschaftszeitpunkt bestimmt wird, d) wobei der Computer zu wenigstens einem Endzeitpunkt (P22) einer ersten Graphen-Eigenschaft (P2) jeweils wenigstens einen Anfangszeitpunkt (P31) wenigstens einer weiteren Graphen-Eigenschaft (P3) ermittelt, e) wobei derjenige Anfangszeitpunkt ermittelt wird, in den der Endzeitpunkt (P22) der ersten Graphen-Eigenschaft (P2) übergeht, f) wobei der Computer auch den wenigstens einen Anfangszeitpunkt (P31) der wenigstens einen weiteren Graphen-Eigenschaft (P3) auf den den Endzeitpunkt (P22) der ersten Graphen-Eigenschaft (P2) abbildenden Schaltungs-Zustand abbildet, g) wobei die bestimmten Schaltungs-Zustände (S1, S2, S3, ...) einen Automatengraphen (H) bilden und h) wobei der Computer den Automatengraphen (H) anschließend auf Register-Transfer-Ebene abbildet.
  2. Verfahren gemäß Anspruch 1, wobei der Eigenschaftsgraph (G2) aus dem Kantengraphen eines Zustandsautomaten oder Zustandsgraphen (Z) erzeugt wird.
  3. Elektrische Schaltung, wobei die Schaltung unter Verwendung eines Verfahrens gemäß einem der Ansprüche 1 bis 2 hergestellt ist.
  4. Computer mit einem Computer-Programm zur Durchführung des Verfahrens nach einem der Ansprüche 1 bis 2.
  5. Computerprogramm mit Programmcode, der auf einem Speichermedium gespeichert ist, zur Durchführung des Verfahrens nach einem der Ansprüche 1 bis 2.
DE102009041815.6A 2009-09-18 2009-09-18 Verfahren zur Erzeugung einer Schaltung aus einer Darstellung von Eigenschaften in einem Eigenschaftsgraphen Expired - Fee Related DE102009041815B4 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE102009041815.6A DE102009041815B4 (de) 2009-09-18 2009-09-18 Verfahren zur Erzeugung einer Schaltung aus einer Darstellung von Eigenschaften in einem Eigenschaftsgraphen

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102009041815.6A DE102009041815B4 (de) 2009-09-18 2009-09-18 Verfahren zur Erzeugung einer Schaltung aus einer Darstellung von Eigenschaften in einem Eigenschaftsgraphen

Publications (2)

Publication Number Publication Date
DE102009041815A1 DE102009041815A1 (de) 2011-03-31
DE102009041815B4 true DE102009041815B4 (de) 2014-02-06

Family

ID=43662336

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102009041815.6A Expired - Fee Related DE102009041815B4 (de) 2009-09-18 2009-09-18 Verfahren zur Erzeugung einer Schaltung aus einer Darstellung von Eigenschaften in einem Eigenschaftsgraphen

Country Status (1)

Country Link
DE (1) DE102009041815B4 (de)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113570925B (zh) * 2021-07-19 2023-12-15 华中师范大学 一种可组装的虚实融合实验电路的计算方法及系统

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
SCHICKEL, M. (ET AL.): CandoGen-A Property-Based Model Generator. Presented at University Booth, DATE, 2007, http://www.cecs.uci.edu/~papers/date07_universitybooth/Sessions/Session2/S27.pdf *
SCHICKEL, M. [et.al.]: A Case-Study in Property-Based Synthesis: Generating a Cache Controller from a Property-Set. In: Embedded Systems Specification and Design Languages. Springer Netherlands, 2008. S. 271-275, (Reprint S. 1 - 2). *
Wikipedia-Artikel: Schaltwerk (Technische Informatik), 03.04.2009, http://de.wikipedia.org/w/index.php?title=Schaltwerk_(Technische_Informatik)&oldid=58627768 *

Also Published As

Publication number Publication date
DE102009041815A1 (de) 2011-03-31

Similar Documents

Publication Publication Date Title
DE60202749T2 (de) Schnittstelle von synchron zu asynchron zu synchron
DE19824796B4 (de) Verfahren und Vorrichtung zur Leistungsoptimierung der Registerübertragungsebene, insbesondere mit einer Störimpuls-Analyse und -Reduktion
WO2003021366A1 (de) Verfahren zur validierung von simulationsergebnissen eines systems sowie darauf aufbauender äquivalenzvergleich digitaler schaltungen
DE19860062A1 (de) Verfahren der erzwungenen Registerteilung für die Konstruktion von leistungsarmen VLSI
EP0580663B1 (de) Verfahren zur verifikation datenverarbeitender systeme
DE3228405A1 (de) Emulator zur erzeugung einer folge von steuersignalen
DE19741915A1 (de) Zwischenspeicheroptimierung in Hardware-Logikemulations-Systemen
DE4318422A1 (de) Integrierte Schaltung mit Registerstufen
DE102008024193A1 (de) System mit konfigurierbaren Funktionseinheiten und Verfahren
EP3244326A1 (de) Verfahren zum erstellen einer fpga-netzliste
DE102009041815B4 (de) Verfahren zur Erzeugung einer Schaltung aus einer Darstellung von Eigenschaften in einem Eigenschaftsgraphen
DE2321200A1 (de) Einrichtung zur durchfuehrung boolescher verknuepfungen
CH657487A5 (de) Funktionsgenerator zur erzeugung einer anzahl von sich wiederholenden digitalen wellenformen.
EP2085890A1 (de) Verfahren zur Übertragung von Daten zwischen wenigstens zwei Taktdomänen
EP2963541B1 (de) Implementierung einer Konstanten in FPGA-Code
DE19934500A1 (de) Synchroner integrierter Speicher
EP1548603B1 (de) Verfahren und Vorrichtung zum Steuern eines Speicherzugriffs
DE102009054567A1 (de) Verfahren und Vorrichtung zum Entwurf einer SEE-toleranten Schaltung
DE10158853A1 (de) Verfahren zur Analyse des Zeitverhaltens komplexer verteilter Systeme
DE102013208836A1 (de) Verfahren und Vorrichtung zur Erzeugung eines Hash-Werts
DE3422287A1 (de) Pruefanordnung fuer digitalschaltungen
WO2003063355A1 (de) Integrierte schaltung und schaltungsanordnung zur umwandlung eines single-rail-signals in ein dual-rail-signal
WO2004001971A1 (de) Logikschaltung
DE1537307B2 (de) Binäres Schaltwerk
WO2007025491A1 (de) Cosimulationssystem mit langsamen betriebsmodus in dem anfragen von der hardware bearbeitet werden und schnellem modus

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final
R020 Patent grant now final

Effective date: 20141107

R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06F0017500000

Ipc: G06F0030000000

R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee