DE69109703T2 - Sequentielle Endlichautomatenschaltung sowie integrierte Schaltung mit einer derartigen Schaltung. - Google Patents
Sequentielle Endlichautomatenschaltung sowie integrierte Schaltung mit einer derartigen Schaltung.Info
- Publication number
- DE69109703T2 DE69109703T2 DE69109703T DE69109703T DE69109703T2 DE 69109703 T2 DE69109703 T2 DE 69109703T2 DE 69109703 T DE69109703 T DE 69109703T DE 69109703 T DE69109703 T DE 69109703T DE 69109703 T2 DE69109703 T2 DE 69109703T2
- Authority
- DE
- Germany
- Prior art keywords
- values
- circuit
- input signal
- logic
- representation
- 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
Links
- 230000007704 transition Effects 0.000 claims description 20
- 230000004044 response Effects 0.000 claims description 8
- 238000001514 detection method Methods 0.000 claims description 7
- 238000004088 simulation Methods 0.000 description 6
- 230000006399 behavior Effects 0.000 description 5
- 238000010521 absorption reaction Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000000034 method Methods 0.000 description 1
- 230000000284 resting effect Effects 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/045—Programme control other than numerical control, i.e. in sequence controllers or logic controllers using logic state machines, consisting only of a memory or a programmable logic device containing the logic for the controlled machine and in which the state of its outputs is dependent on the state of its inputs or part of its own output states, e.g. binary decision controllers, finite state controllers
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Automation & Control Theory (AREA)
- Logic Circuits (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
- Tests Of Electronic Circuits (AREA)
Description
- Die Erfindung betrifft eine sequentielle Schaltung einer finiten Zustandsmaschine mit einer Menge N bistabiler Elemente {FF(1),...,FF(N)} und einer damit verbundenen Menge kombinatorischer Logik, wobei die Kombination von Logikwerten der bistabilen Elemente einen Zustand der Schaltung definiert, der eine Darstellung eines Zustandes einer finiten Zustandsmaschine ist, wobei die Schaltung zu von einem Taktsignal bestimmten Zeitpunkten, unter Einfluß der kombinatorischen Logik, des aktuellen Zustandes der Schaltung, und eines Eingangssignals, in einen nächsten Zustand übergeht, wobei die Menge kombinatorischer Logik Übergänge zwischen Zuständen der finiten Zustandsmaschine in der Schaltung realisiert.
- Eine Schaltung dieser Art ist aus der deutschen Offenlegungsschrift DE- 3719181-A1 bekannt.
- Die Erfindung betrifft auch eine integrierte Schaltung mit einer solchen Schaltung.
- Eine finite Zustandsmaschine (FSM) ist ein häufig verwendetes Modell für die Darstellung von Logiksystemen. Im Gegensatz zu stetigen oder analogen Maschinen beruht die Arbeitsweise der FSM auf diskretwertiger Information. FSMs können in kombinatorischen Maschinen (ohne Speicher: die Eingangssignale definieren die Ausgangssignale eindeutig), und sequentielle Maschinen (mit Speicher: dessen aktueller Inhalt und die Eingangssignale definieren eindeutig den neuen Inhalt des Speichers und die Ausgangssignale).
- Eine FSM kann in einer FSM-Schaltung implementiert werden: kombinatorische Logik mit Flipflops, die zu der Logik zurückgekoppelt werden, mit Eingangs- oder Steuersignalen und einem Taktsignal (synchrone FSM), wobei die Logik Übergänge zwischen Zuständen der FSM (durch den Inhalt der Flipflops dargestellt) in der Schaltung realisiert.
- Eine FSM kann einen Zustand haben, der als absorbierend bezeichnet wird: dieser sogenannte Ruhezustand wird von allen möglichen Zuständen aus erreicht, vorausgesetzt, daß das Eingangs- oder Steuersignal eine gegebene Folge von Werten angenommen hat. Die FSM ist somit selbstinitialisierend: das Zuführen der gegebenen Folge von Werten des Eingangssignals sorgt dafür, daß die FSM sich anschließend im absorbierenden Zustand befindet.
- Wenn mit einem logischen digitalen Simulator ein Modell einer solchen FSM simuliert wird, wird dieses selbstinititalisierende Verhalten der Schaltung nicht deutlich: der Simulator beginnt mit einem unbekannten Zustand zu Beginn der Simulation und ist ereignisgesteuert (d.h. er arbeitet von einem Zustand zum nächsten Zustand), so daß nur der aktuelle Zustand des Simulators bekannt ist. Wegen dieses Mangels an historischen Daten in dem Simulator sind Initialisierungen über eine Folge gelieferter Werte nicht simulierbar. Dieses Problem könnte gelöst werden, indem die FSM zu Beginn der Simulation in einen bekannten Zustand gezwungen wird. Dies ist jedoch keine Darstellung der Wirklichkeit, die während der Simulation so gut wie möglich angenähert werden sollte. Außerdem führt dieser Eingriff in die Schaltung zu praktischen Problemen, da interne Punkte der Schaltung schwer erreichbar sind.
- Der Erfindung liegt unter anderem die Aufgabe zugrunde, eine sequentielle Schaltung einer finiten Zustandsmaschine zu verschaffen, mit selbstinitialisierendem Verhalten, das simuliert werden kann. Hierzu ist eine erfindungsgemäße sequentielle Schaltung einer finiten Zustandsmaschine dadurch gekennzeichnet, daß von jedem Zustand aus mittels einer gegebenen Folge von X Werten des Eingangssignals, {c(0), c(1), ..., c(X-1)}, beginnend mit c(0), ein Ruhezustand erreicht wird, wobei jede Teilfolge {c(0), c(1), ... , c(J-1)}, mit der Länge J, die in der gegebenen Folge von X Werten des Eingangssignals auftritt, mit 1 ≤ J ≤ X oder eine Teilfolge mit der Länge J, die eine Eins-zu-Eins-Darstellung davon ist, in der Schaltung gespeichert wird. Der Simulator hat somit die Möglichkeit erhalten, den Übergang von einem unbekannten Zustand zu dem bekannten, absorbierenden Zustand schrittweise auszuführen.
- Eine Ausführungsform einer erfindungsgemäßen sequentiellen Schaltung einer finiten Zustandsmaschine ist dadurch gekennzeichnet, daß die N bistabilen Elemente voreinstellbar sind, wobei die Schaltung mit (X-1) weiteren bistabilen Elementen versehen ist, als Schieberegister geschaltet, zur Speicherung der (X-1) neuesten Werte des Eingangssignals oder von Werten, die eine Eins-zu-Eins-Darstellung davon sind, und auch mit Decodierlogik versehen ist, der das Eingangssignal und die (X-1) bistabilen Elemente des Schieberegisters zugeführt werden, wobei diese Logik hinsichtlich des Auftretens der gegebenen Folge von X Werten des Eingangssignals ein Detektionssignal bildet und dieses Detektionssignal als Voreinstellsignal den N voreinstellbaren bistabilen Elementen zugeführt wird. Ein Detektionssignal hinsichtlich des Auftretens der gegebenen Folge wird von der Decodierlogik geliefert, die das Schieberegister und das Eingangssignal auswertet.
- Eine weitere Ausführungsform einer erfindungsgemäßen sequentiellen Schaltung einer finiten Zustandsmaschine, mit X ≥ N, ist dadurch gekennzeichnet, daß die Schaltung (X-N) weitere bistabile Elemente FF(N+1), ..., FF(X) umfaßt, und zusätzliche kombinatorische Logik, die, in Reaktion auf das Auftreten der Teilfolge {c(0), c(1), ..., c(J-1)}, mit der Länge J, der gegebenen Folge von X Werten des Eingangssignals, mit 1 ≤ J ≤ X, jedesmal die ersten J bistabilen Elemente FF(1), ..., FF(J) eine Darstellungsfolge von J Werten annehmen läßt, die eine Eins-zu-Eins-Darstellung der genannten Teilfolge ist, wobei die Zuweisung von Darstellungen an Zustände der finiten Zustandsmaschine derart ist, daß die Zustände durch Kombinationen von Logikwerten der bistabilen Elemente dargestellt werden, die hinsichtlich der ersten J Werte den Darstellungsfolgen von J Werten entsprechen. Für diesen Typ einer FSM- Schaltung, bei dem die Länge der gegebenen Folge des Eingangssignals größer ist als die Zahl bistabiler Elemente (beispielsweise Setz/Rücksetz-Flipflops), wird dadurch ein Vorteil erhalten, daß eine minimale Anzahl zusätzlicher bistabiler Elemente benötigt wird und daß die verwendeten bistabilen Elemente nicht voreinstellbar zu sein brauchen. Infolge der Speicherung von auftretenden Teilfolgen wird die Schaltung beim Auftreten der gesamten Folge automatisch initialisiert.
- Eine bevorzugte Ausführungsform einer erfindungsgemäßen sequentiellen Schaltung einer finiten Zustandsmaschine, mit X ≥ N ,ist dadurch gekennzeichnet, daß die Schaltung (X-N) weitere bistabile Elemente zur Speicherung der (X-N) neuesten Werte des Eingangssignals, oder Werten, die eine Eins-zu-Eins-Darstellung davon sind, umfaßt, wobei die Schaltung auch zusätzliche Logik umfaßt, die, in Reaktion auf das Auftreten einer Teilfolge {c(0), c(1),..., c(J-1)}, mit der Länge J, der gegebenen Folge von X Werten des Eingangssignals, mit X-N < J ≤ X, jedesmal die ersten J-X+N bistabilen Elemente FF(1), ..., FF(J-X+N) eine Darstellungsfolge von J-X+N Werten annehmen läßt, die eine Eins-zu-Eins-Darstellung der genannten Teilfolge ist, wobei die Zuweisung von Darstellungen an Zustände der finiten Zustandsmaschine derart ist, daß die Zustände durch Kombinationen von Logikwerten der bistabilen Elemente dargestellt werden, die hinsichtlich der ersten J-X+N Werte den Darstellungsfolgen von J-X+N Werten entsprechen. Diese FSM hat den zusätzlichen Vorteil, daß in den Flipflops der Schaltung keine nicht verwendeten Zustände auftreten können.
- Eine weitere Ausführungsform einer erfindungsgemäßen sequentiellen Schaltung einer finiten Zustandsmaschine, mit X < N, ist dadurch gekennzeichnet, daß die Schaltung zusätzliche Logik umfaßt, die in Reaktion auf das Auftreten einer Teilfolge {c(0), c(1), ..., c(J-1)}, mit der Länge J, der gegebenen Folge von X Werten des Eingangssignals, mit 1 ≤ J ≤ X, jedesmal die ersten J bistabilen Elemente FF(1), ..., FF(J) eine Darstellungsfolge von J annehmen läßt, die eine Eins-zu-Eins-Darstellung der genannten Teilfolge ist, wobei die Zuweisung von Darstellungen an Zustände der finiten Zustandsmaschine derart ist, daß die Zustände durch Kombinationen von Logikwerten der bistabilen Elemente dargestellt werden, die hinsichtlich der ersten J Werte den Darstellungsfolgen von J Werten entsprechen, wobei die zusätzliche Logik in Reaktion auf das Auftreten der gesamten Folge von X Werten des Eingangssignals, die bistabilen Elemente FF(X+1), ..., FF(N) Werte annehmen läßt, die den Logikwerten des Ruhezustandes entsprechen. Für diesen Schaltungstyp, bei dem die Länge der gegebenen Folge des Eingangssignals kleiner ist als die Anzahl Flipflops, wird ein zusätzlicher Vorteil dadurch erhalten, daß Initialisierung ohne zusätzliche Flipflops realisiert wird.
- Ausführungsbeispiele der Erfindung sind in der Zeichnung dargestellt und werden im folgenden näher beschrieben. Es zeigen:
- Fig. 1 ein Zustandsübergangsdiagramm einer finiten Zustandsmaschine;
- Fig. 2 eine geeignete Schaltung;
- Fig. 3 eine erste Ausführungsförm einer erfindungsgemäßen FSM- Schaltung;
- Fig. 4 eine bevorzugte Ausführungsform einer erfindungsgemäßen FSM- Schaltung;
- Fig. 5 eine die Zuweisung von Darstellungen an Zustände der finiten Zustandsmaschine erläuternde Tabelle;
- Fig. 6 eine FSM-Schaltung mit einer möglichen Implementierung der zusätzlichen Logik;
- Fig. 7 eine digitale integrierte Schaltung mit einer erfindungsgemäßen Schaltung.
- Die Erfindung soll im folgenden detailliert anhand der sequentiellen finiten Zustandsmaschine beschrieben werden, deren Zustandsübergangsdiagramm in Fig. 1 gezeigt wird. Die FSM hat 16 Zustände und dazwischen verschiedene Übergänge, die von einem Taktsignal und einem Eingangssignal gesteuert werden. Das Eingangssignal ist in diesem Fall zweiwertig ("0" oder "1"). Im allgemeinen kann ein Eingangssignal auch aus mehr Bits bestehen. Zu vom Taktsignal definierten Zeitpunkten, beispielsweise bei jeder ansteigenden Flanke, geht die finite Zustandsmaschine in einen nächsten Zustand über. Der Zustand mit der Nummer 1 ist absorbierend, wenn eine Folge von 5 aufeinanderfolgenden Eingangssignalen den Wert "1" hat: der Ruhezustand 1 wird von jedem Ruhezustand aus nach höchstens 5 Einsen des Eingangssignals erreicht. Die gegebene Folge von X Werten des Eingangssignals {c(0), c(1), ..., c(X-1)} lautet in diesem Fall folgendermaßen: {"1", ,"1", "1", "1", "1"}; X = 5 und N = 4. Es wird deutlich sein, daß diese Werte nur als Beispiel gewählt worden sind; andere Werte sind auch möglich. Diese sequentielle finite Zustandsmaschine kann in einer Schaltung mit Hilfe von 4 bistabilen Elementen oder Flipflops (2 hoch 4 bedeutet 16 mögliche Zustände), und einer Menge kombinatorischer Logik, die die richtigen Übergänge zwischen den Zuständen realisiert, implementiert werden.
- Die genaue Zusammensetzung der hierzu benötigten Menge kombinatorischer Logik kann automatisch generiert und optimiert werden, beispielsweise mit Hilfe des Softwarepackets LOCAM von PRAXIS Systems PLC, 20 Manvers Street Bath BA1 IPX, United Kingdom. Die FSM-Schaltung wird in Fig. 2 gezeigt: 4 von FF(1) bis FF(4) numerierte Flipflops sind verbunden und zu einer Menge kombinatorischer Logik CL zurückgekoppelt, die auch ein Eingangssignal CS erhält, wobei das Taktsignal CK die Geschwindigkeit der Zustandsübergänge steuert.
- Die Schaltung kann mit Hilfe eines logischen digitalen Simulators simuliert werden, beispielsweise mit dem QUICKSIM von Mentor Graphics B.V., Marsstraat 9, 2132 HR Hoofddorp, Niederlande, wie im Benutzerhandbuch, Ref.-Nr. 14773, Mai 1988 beschrieben wird.
- Dem Simulator werden Daten hinsichtlich der Schaltung eingegeben: Flipflops, Verbindungen und Logik, Zustände und mögliche Übergänge. Anhand dieser Daten simuliert der Simulator das Verhalten der Schaltung. Zu Beginn einer Simulation ("Power up"), kann die FSM in einem beliebigen Zustand sein; der Inhalt der Flipflops ist dem Simulator unbekannt. Der Simulator kann sich nicht an frühere Steuersignale "erinnern": ihm stehen nicht genügend Daten zur Verfügung, um den unbekannten Zustand durch Berechnung zu verlassen. Somit bleibt der Zustand der FSM nach einem nächsten Taktsignal unbekannt. Daher kann das seibstinitialisierende Verhalten nicht simuliert werden. Der Grund für diese begrenzte Simulationsfähigkeit liegt darin, daß ein Simulator drei Logikzustände hat: niedrig ("0"), hoch ("1"), und unbekannt ("X"). Die Anzahl unbekannter Werte "X" kann reduziert werden, beispielsweise wenn eine "0" und ein "X" einem UND-Gatter zugeführt werden: das Ergebnis wird endgültig eine "0" sein. Das gleiche Ergebnis kann erhalten werden, indem eine "1" und ein "X" einem ODER-Gatter zugeführt werden: das Ergebnis ist sicher eine "1". Eine "1" und ein "X", die einem UND-Gatter zugeführt werden, erzeugen jedoch wieder ein "X".
- Es wird deutlich sein, daß die FSM zu Beginn einer Simulation in einen bekannten Zustand gebracht werden kann, indem Signale zwangsweise auf interne Punkte der Schaltung gebracht werden. Die tatsächliche Erreichbarkeit dieser internen Punkte ist jedoch häufig schwierig. Außerdem muß der Benutzer dann wissen, daß die FSM initialisiert werden muß und auch wie dies zu erfolgen hat.
- Das Problem, daß der Simulator das tatsächliche Verhalten der FSM nicht genau simuliert, kann besser durch Hardware-Anpassung gelöst werden: die (vorübergehende) Speicherung von auftretenden Teilfolgen {c(0), ..., c(J-1)}, mit 1 ≤ J ≤ X, oder Teilfolgen, die eine Eins-zu-Eins-Darstellung sind (beispielsweise das logische Komplement), versorgt den Simulator mit zusätzlichen Informationen, wodurch der Simulator den Übergang von einem unbekannten in einen bekannten Zustand schrittweise realisieren kann. Die verschiedenen Möglichkeiten in diesem Zusammenhang sollen anhand der oben definierten FSM beschrieben werden.
- Fig. 3 zeigt eine Ausführungsform einer erfindungsgemäßen FSM-Schaltung. Vier zusätzliche Flipflops SRF(1), ... SRF(4) werden der Schaltung von Fig. 2 hinzugefügt, wobei die Flipflops so geschaltet sind, daß sie ein Schieberegister bilden, in dem die 4 vorhergehenden Werte des Eingangssignals CS gespeichert werden können. Die Ausgänge der zusätzliche Flipflops SRF(1), ..., SRF(4) und das aktuelle Eingangssignal am Eingang CS werden einer Decodier-Teilschaltung zugeführt (hier aus einem NAND-Gatter bestehend), die ein Detektionssignal SET hinsichtlich des Auftretens der gegebenen Folge von Eingangssignalen bildet (hier: logische "0" nur dann, wenn alle 5 Eingänge eine logische "1" haben). Dieses Detektionssignal SET wird als Voreinstellsignal den Flipflops FF(1), ..., FF(4) zugeführt, die den Zustand der Schaltung enthalten. Hierzu sollten diese Flipflops voreinstellbar sein. Diese Losung kann für jede Wahl von X, N und die Folge, die zur Absorption führt, verwendet werden.
- In der Praxis ist der Wert von X oft größer oder gleich dem Wert von N. Für Schaltungen, die diese Bedingung erfüllen, gibt es eine andere Lösung. Durch geeignete Zuweisung binärer Darstellungen an Zustände der FSM und durch Verwendung zusätzlicher Logik können auftretende Teilfolgen "implizit" in den bereits vorhandenen Flipflops gespeichert werden. Wie aus Fig. 1 ersichtlich ist, kann der aktuelle Zustand der FSM nach dem Auftreten einer ersten logischen "1" nur einer der Zustände 1, 3, 4, 9, 10, 13, 14, 15 oder 16 sein. Nach dem Auftreten eines Eingangssignals in Form einer zweiten logischen "1" wird der Zustand 1, 3, 4, 15 oder 16 sein. Nach einem dritten Eingangssignal mit logischer "1" ist der Zustand 1, 3 oder 4. Nach einem vierten Eingangssignal mit logischer "1" , ist der Zustand 1 oder 4, und nach einer fünften logischen "1" als Eingangssignal ist der Zustand endgültig 1. Ein einziges Flipflop FF(5) wird hinzugefügt: X-N =5-4 = 1. Durch Hinzufügen weiterer Logik, die dafür sorgt, daß der Wert des Flipflops FF(J) nach einem Eingangssignal in der Form von zumindest J logischen Einsen, für 1 ≤ J ≤ X = 5, logisch "1" ist, wird der Inhalt der Flipflops nach einem Eingangssignal in Form von fünf Einsen automatisch "11111". Die Darstellungsfolge ist daher die auftretende Teilfolge selbst. Die Zuweisung der Binärdarstellungen an die Zustände der FSM erfolgt dann folgendermaßen: die Zustände, die unmittelbar nach einem Eingangssignal in der Form von zumindest J Einsen erreicht werden können, beginnen mit J Einsen, beispielsweise der Zustand 15 wird "11000". Diese Zuweisung sorgt dafür, daß die zusätzliche Logik keine unzulässigen Zustandsübergänge mit sich bringt: die von der zusätzlichen Logik bewirkten Übergänge passen jetzt genau zu der dargestellten FSM. Durch sukzessives Zuführen von Einsen als Eingangssignal, werden die Werte "X" in dem Simulator bekannte Werte umgesetzt. Jede weitere "1" als Eingangssignal sorgt dafür, daß der Simulator weiß, daß das folgende Flipflop nicht mehr den Wert "unbekannt", sondern den Wert "1" hat. Daher haben die Flipflops nach einem Eingangssignal in Form von fünf Einsen für den Simulator die Werte "11111 ": die Selbstinitialisierung ist erfolgt. Die Numerierung der Menge bistabiler Elemente ist natürlich irrelevant. Die die zugehörigen Übergänge realisierende Logik kann wieder automatisch generiert werden. Die Tatsache, daß diese Initialisierung realisiert werden kann, ohne daß es notwendig ist, die Eingangssignale länger als 1 Taktdauer zu speichern, läßt sich folgendermaßen verstehen:
- FF(1) ist "1" nach zumindest einer "1" als Eingangssignal;
- FF(2) ist "1" nach zumindest zwei logischen Einsen als Eingangssignal;
- ...
- FF(5) ist "1" nach zumindest fünflogischen Einsen als Eingangssignal;
- ist gleichwertig mit:
- FF(1) ist "1" nach aktuellem Eingangssignal 1;
- FF(2) ist "1" nach aktuellem Eingangssignal 1 und FF(1) ist "1";
- ...
- FF(5) ist "1" nach aktuellem Eingangssignal 1 und FF(1) ist "1" und FF(2) ist "1" und ... und FF(4) ist "1".
- Der Simulator kann somit die Initialisierung aus den aktuellen Werte der Flipflops und des Eingangssignals sowie den gegebenen Zustandsübergängen ableiten.
- Bei Verwendung von 5 Flipflops statt der ursprünglichen 4 Flipflops ist die Schaltung jetzt simulierbar. Die Verwendung von 5 Flipflops bringt unbenutzte Zustände mit sich, so daß die die Übergänge realisierende Logik auch für die unbenutzten Zustände arbeiten muß.
- Eine Kombination der beiden obigen Lösungen wird in Fig. 4 erläutert. Ein einziger zusätzlicher Flipflop FF(0) (denn X-1 = 1) wird der in Fig. 2 gezeigten Schaltung zugefügt. Dieser zusätzliche Flipflop wird mit dem Taktsignal CK, dem Eingangssignal CS als Eingang und dem mit der kombinatorischen Logik CL verbundenen Ausgang c(0) verbunden und dient zur Speicherung des Wertes des Eingangssignals während der vorhergegangenen Taktdauer. Für eine andere Wahl für X oder N, insbesondere wenn X > N+1, werden mehr Flipflops hinzugefügt (X-N> 1); in diesem Fall werden sie verwendet, um die neuesten Werte des Eingangssignals zu speichern. Die zusätzliche kombinatorische Logik und die Zuweisung binärer Darstellungen an die Zustände der FSM sind so, daß eine auftretende Teilfolge (hier eine oder mehr aufeinanderfolgende logische Einsen) in dem zusätzlichen Flipflop (Flipflops) gespeichert wird und, wenn sie diese genannte Teilfolge nicht mehr enthalten können, in den ursprünglichen Flipflops. Hierbei ist also die Darstellungsfolge wieder die Teilfolge selbst.
- Fig. 5 zeigt eine Tabelle, die eine mögliche Zuweisung von Darstellungen an Zustände dieser FSM erläutert: der absorbierende Zustand 1 ist der Darstellung "1111" zugewiesen, der Zustand 4 ist "1110", der Zustand 3 ist "1101" (kann auch "1100" sein), und die Zustände 15 und 16 sind "1011" bzw. "1010" (sie müssen auf jeden Fall mit einer logischen 1 beginnen). Für die anderen Zustände gibt es keine Einschränkungen. Dann gilt:
- FF(1) ist "1" nach 2 Einsen als Eingangssignal;
- FF(2) ist "1" nach 2 Einsen als Eingangssignal und FF(1) ist "1";
- FF(3) ist "1" nach 2 Einsen als Eingangssignal und FF(1) ist "1" und FF(2) ist "1";
- FF(4) ist "1" nach 2 Einsen als Eingangssignal und FF(1) ist "1" und FF(2) ist "1" und FF(3) ist "1".
- Nach 5 Einsen als Eingangssignal ist der Inhalt der Flipflops für den Simulator daher automatisch "1111": Selbstinitialisierung.
- Die die zugehörigen Übergänge realisierende Logik kann wieder automatisch generiert und optimiert werden.
- Diese Ausführungsform bietet die folgenden Vorteile: es werden keine voreinstellbaren Flipflops benötigt, es ist keine Decodierlogik erforderlich, weniger Flipflops als bei der ersten Lösung sind nötig und es treten keine unbenutzten Zustände auf, so daß keine zusätzlichen Anforderungen an die kombinatonsche Logik gestellt werden. Es sei bemerkt, daß für eine gegebene Folge in der Form "11111" für das Eingangssignal, die durch die zusätzliche Logik an die Zuweisung der Darstellungen gestellten Anforderungen nicht hoch sind: die nach zumindest J Einsen zu erreichende Anzahl Zustände darf nicht größer sein als zwei hoch (X-J). Es sei auch bemerkt, daß in einer anderen FSM eine alternierende Folge, die zu Absorption führt, auch möglich ist: beispielsweise "101010...", wobei dann ein XOR-Gatter bestimmt, wann der absorbierende Zustand verlassen wird.
- Fig. 6 zeigt eine mögliche Implementierung der erforderlichen zusätzlichen Logik (der Einfachheit halber sind die Verbindungen mit dem Taktsignal weggelassen worden): das Eingangssignal CS wird FF(0) für die Speicherung des vorhergehenden Eingangssignals zugeführt. Die Ausgänge von FF(0) und CS werden einem UND- Gatter A1 zugeführt, dessen Ausgang mit einem ODER-Gatter E1 verbunden ist, dessen Eingang auch mit einem Ausgang des Blocks aus kombinatorischer Logik CL verbunden ist. Der Ausgang des Gatters E1 ist mit dem Eingang von FF(4) verbunden, dessen Ausgang zusammen mit dem Ausgang von A1 einem UND-Gatter A2 zugeführt wird. Dessen Ausgang wird einem ODER-Gatter E2 zugeführt, dessen Eingang auch mit CL verbunden ist. Der Ausgang des Gatters E2 wird FF(3) zugeführt. Dieser Aufbau wird in völlig gleicher Weise für die anderen Flipflops fortgesetzt. Eine erste "1" als Eingangssignal wird in FF(0) gespeichert; eine zweite "1" erzeugt eine "1" am Ausgang des Gatters A1, also in FF(4), ungeachtet des Wertes des anderen Eingangs des Gatters E1. Eine dritte "1" als Eingangssignal erzeugt auch eine "1" in FF(3), wobei FF(4) und FF(0) auch den Wert "1" behalten. Eine vierte und eine fünfte "1" bringen auch die letzten beiden Flipflops auf "1".
- Es sei bemerkt, daß nach dem Hinzufügen dieser zusätzlichen Logik die gesamte Logikmenge wieder automatisch regeneriert und optimiert werden kann.
- Fig. 7 zeigt eine digitale integrierte Schaltung mit einer erfindungsgemäßen Schaltung. Der digitale IC umfaßt Anschlüsse für das Zuführen eines Steuer- oder Eingangssignals CS, eines Taktsignals CK, eines Testdateneingangs TDI und eines Testdatenausgangs TDO. Die Schaltung umfaßt auch ein Register bistabiler Elemente BIST und ein Scan-Register SCAN, mit kombinatorischer Logik verbunden (schraffiertes Gebiet), und Boundary-Scan-Zellen BSC, weitere Register INST, BYP und ID, einen Multiplexer MUX und auch eine erfindungsgemäße Schaltung einer finiten Zustandsmaschine FSM. Für weitere Informationen zum Boundary-Scan-Test sei auf die Offenlegungsschrift DE-3727723-A1 verwiesen. Die FSM bestimmt Zustandsübergänge in den Registern. Die Testbarkeit solcher in SMD-Technologie ausgeführter ICs ist von außerordentlicher Bedeutung.
- Durch Hinzufügen einer geringen Menge redundanter Logik und eine geschickte Zuweisung einer Darstellung zu den Zuständen, die der Übergangslogik kaum Beschränkungen auferlegt, kann die Schaltung einer finiten Zustandsmaschine vollständig simuliert werden. In einer integrierten Schaltung kann dies mit nur wenig zusätzlicher Chipoberfläche realisiert werden.
Claims (6)
1. Sequentielle Schaltung einer finiten Zustandsmaschine mit einer Menge N
bistabiler Elemente {FF(1),...,FF(N)} und einer damit verbundenen Menge
kombinatorischer Logik, wobei die Kombination von Logikwerten der bistabilen Elemente einen
Zustand der Schaltung definiert, der eine Darstellung eines Zustandes einer finiten
Zustandsmaschine ist, wobei die Schaltung zu von einem Taktsignal bestimmten
Zeitpunkten, unter Einfluß der kombinatorischen Logik, des aktuellen Zustandes der
Schaltung, und eines Eingangssignals, in einen nächsten Zustand übergeht, wobei die Menge
kombinatorischer Logik Übergänge zwischen Zuständen der finiten Zustandsmaschine in
der Schaltung realisiert, dadurch gekennzeichnet, daß von jedem Zustand aus mittels
einer gegebenen Folge von X Werten des Eingangssignals, {c(0), c(1), ..., c(X-1)},
beginnend mit c(0), ein Ruhezustand erreicht wird, wobei jede Teilfolge {c(0), c(1),
..., c(J-1)}, mit der Länge J, die in der gegebenen Folge von X Werten des
Eingangssignals auftritt, mit 1 ≤ J ≤ X, oder eine Teilfolge mit der Lange J, die eine Eins-zu-
Eins-Darstellung davon ist, in der Schaltung gespeichert wird.
2. Sequentielle Schaltung einer finiten Zustandsmaschine nach Anspruch 1,
dadurch gekennzeichnet, daß die N bistabilen Elemente voreinstellbar sind, wobei die
Schaltung mit (X-1) weiteren bistabilen Elementen versehen ist, als Schieberegister
geschaltet, zur Speicherung der (X-1) neuesten Werte des Eingangssignals oder von
Werten, die eine Eins-zu-Eins-Darstellung davon sind, und auch mit Decodierlogik versehen
ist, der das Eingangssignal und die (X-1) bistabilen Elemente des Schieberegisters
zugeführt werden, wobei diese Logik hinsichtlich des Auftretens der gegebenen Folge
von X Werten des Eingangssignals ein Detektionssignal bildet und dieses
Detektionssignal als Voreinstellsignal den N voreinstellbaren bistabilen Elementen zugeführt wird.
3. Sequentielle Schaltung einer finiten Zustandsmaschine nach Anspruch 1,
mit X ≥ N, dadurch gekennzeichnet, daß die Schaltung (X-N) weitere bistabile
Elemente FF(N+1), ..., FF(X) umfaßt, und zusätzliche kombinatorische Logik, die, in
Reaktion auf das Auftreten der Teilfolge {c(0), c(1), ..., c(J-1)}, mit der Länge J, der
gegebenen Folge von X Werten des Eingangssignals, mit 1 ≤ J ≤ X, jedesmal die
ersten J bistabilen Elemente FF(1), ..., FF(J) eine Darstellungsfolge von J Werten
annehmen läßt, die eine Eins-zu-Eins-Darstellung der genannten Teilfolge ist, wobei die
Zuweisung von Darstellungen an Zustände der finiten Zustandsmaschine derart ist, daß
die Zustände durch Kombinationen von Logikwerten der bistabilen Elemente dargestellt
werden, die hinsichtlich der ersten J Werte den Darstellungsfolgen von J Werten
entsprechen.
4. Sequentielle Schaltung einer finiten Zustandsmaschine nach Anspruch 1,
mit X > = N, dadurch gekennzeichnet, daß die Schaltung (X-N) weitere bistabile
Elemente zur Speicherung der (X-N) neuesten Werte des Eingangssignals, oder Werten,
die eine Eins-zu-Eins-Darstellung davon sind, umfaßt, wobei die Schaltung auch
zusätzliche Logik umfaßt, die, in Reaktion auf das Auftreten einer Teilfolge {c(0),
c(1),..., c(J-1)}, mit der Länge J, der gegebenen Folge von X Werten des
Eingangssignals, mit X-N < J ≤ X, jedesmal die ersten J-X+N bistabilen Elemente FF(1), ...,
FF(J-X+N) eine Darstellungsfolge von J-X+N Werten annehmen läßt, die eine Eins-
zu-Eins-Darstellung der genannten Teilfolge ist, wobei die Zuweisung von
Darstellungen an Zustände der finiten Zustandsmaschine derart ist, daß die Zustände durch
Kombinationen von Logikwerten der bistabilen Elemente dargestellt werden, die
hinsichtlich der ersten J-X+N Werte den Darstellungsfolgen von J-X+N Werten
entsprechen.
5. Sequentielle Schaltung einer finiten Zustandsmaschine nach Anspruch 1,
mit X < N, dadurch gekennzeichnet, daß die Schaltung zusätzliche Logik umfaßt, die
in Reaktion auf das Auftreten einer Teilfolge {c(0), c(1), ..., c(J-1)}, mit der Länge J,
der gegebenen Folge von X Werten des Eingangssignals, mit 1 ≤ J ≤ X, jedesmal die
ersten J bistabilen Elemente FF(1), ..., FF(J) eine Darstellungsfolge von J annehmen
läßt, die eine Eins-zu-Eins-Darstellung der genannten Teilfolge ist, wobei die
Zuweisung von Darstellungen an Zustände der finiten Zustandsmaschine derart ist, daß die
Zustände durch Kombinationen von Logikwerten der bistabilen Elemente dargestellt
werden, die hinsichtlich der ersten J Werte den Darstellungsfolgen von J Werten
entsprechen, wobei die zusätzliche Logik in Reaktion auf das Auftreten der gesamten Folge
von X Werten des Eingangssignals, die bistabilen Elemente FF(X+1), ..., FF(N) Werte
annehmen läßt, die den Logikwerten des Ruhezustandes entsprechen.
6. Integrierte Schaltung mit einer sequentiellen Schaltung einer finiten
Zustandsmaschine nach einem der Ansprüche 1 bis 5.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
NL9000380A NL9000380A (nl) | 1990-02-16 | 1990-02-16 | Sequentiele finite state machine schakeling, alsmede geintegreerde schakeling voorzien van de schakeling. |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69109703D1 DE69109703D1 (de) | 1995-06-22 |
DE69109703T2 true DE69109703T2 (de) | 1996-01-25 |
Family
ID=19856615
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69109703T Expired - Fee Related DE69109703T2 (de) | 1990-02-16 | 1991-02-13 | Sequentielle Endlichautomatenschaltung sowie integrierte Schaltung mit einer derartigen Schaltung. |
Country Status (5)
Country | Link |
---|---|
US (1) | US5097151A (de) |
EP (1) | EP0442580B1 (de) |
JP (1) | JPH04215316A (de) |
DE (1) | DE69109703T2 (de) |
NL (1) | NL9000380A (de) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0591593A1 (de) * | 1992-10-09 | 1994-04-13 | International Business Machines Corporation | Verfahren und Anordnung zur Verwaltung von asynchronen Ereignissen in einem endlichen Automaten |
JP3563750B2 (ja) * | 1992-10-16 | 2004-09-08 | テキサス インスツルメンツ インコーポレイテツド | アナログ回路のための走査に基づく試験 |
US5649163A (en) * | 1992-10-29 | 1997-07-15 | Altera Corporation | Method of programming an asynchronous load storage device using a representation of a clear/preset storage device |
EP0618530A1 (de) * | 1993-03-30 | 1994-10-05 | Koninklijke Philips Electronics N.V. | Endlicher Automat mit Vorrichtung zum Reduzieren von Rauscheffekten |
US5515292A (en) * | 1993-09-29 | 1996-05-07 | Texas Instruments Incorporated | Circuit activity driven state assignment of FSMS implemented in CMOS for low power reliable operations |
JPH0887462A (ja) * | 1994-09-20 | 1996-04-02 | Fujitsu Ltd | ステートマシン及び通信制御方式 |
US6074428A (en) * | 1994-10-19 | 2000-06-13 | Hewlett-Packard Company | Minimizing logic by resolving "don't care" output values in a finite state machine |
JP2967749B2 (ja) * | 1997-03-07 | 1999-10-25 | 日本電気株式会社 | テスト容易化論理合成システム |
US5949251A (en) * | 1997-08-01 | 1999-09-07 | Vlsi Technology, Inc. | Register-based programmable post-silicon system to patch and dynamically modify the behavior of synchronous state machines |
US6292023B1 (en) | 1999-09-29 | 2001-09-18 | Agere Systems Guardian Corp. | Spike-triggered asynchronous finite state machine |
US6892343B2 (en) * | 2000-03-27 | 2005-05-10 | Board Of Regents Of The University Of Nebraska | System and method for joint source-channel encoding, with symbol decoding and error correction |
JP2004336010A (ja) * | 2003-04-16 | 2004-11-25 | Seiko Epson Corp | 半導体集積回路、電子機器、及びトランジスタのバックゲート電位制御方法 |
US7877401B1 (en) * | 2006-05-24 | 2011-01-25 | Tilera Corporation | Pattern matching |
US10338558B2 (en) * | 2014-10-17 | 2019-07-02 | 21, Inc. | Sequential logic circuitry with reduced dynamic power consumption |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4488229A (en) * | 1982-12-08 | 1984-12-11 | At&T Bell Laboratories | PLA-Based finite state machine with two-level control timing and same-cycle decision-making capability |
US4649498A (en) * | 1984-05-08 | 1987-03-10 | The University Of Rochester | Computer systems for curve-solid classification and solid modeling |
US4663545A (en) * | 1984-11-15 | 1987-05-05 | Motorola, Inc. | High speed state machine |
HU195344B (en) * | 1984-12-19 | 1988-04-28 | Telefongyar | Circuit arrangement for forming sequential control circuit |
US4755967A (en) * | 1986-03-21 | 1988-07-05 | Monolithic Memories, Inc. | Programmable synchronous sequential state machine or sequencer having decision variable input mapping circuit responsive to feedback signals |
US4675556A (en) * | 1986-06-09 | 1987-06-23 | Intel Corporation | Binomially-encoded finite state machine |
NL192801C (nl) * | 1986-09-10 | 1998-02-03 | Philips Electronics Nv | Werkwijze voor het testen van een drager met meerdere digitaal-werkende geïntegreerde schakelingen, geïntegreerde schakeling geschikt voor het aanbrengen op een aldus te testen drager, en drager voorzien van meerdere van zulke geïntegreerde schakelingen. |
-
1990
- 1990-02-16 NL NL9000380A patent/NL9000380A/nl not_active Application Discontinuation
-
1991
- 1991-02-13 EP EP91200295A patent/EP0442580B1/de not_active Expired - Lifetime
- 1991-02-13 US US07/657,005 patent/US5097151A/en not_active Expired - Fee Related
- 1991-02-13 JP JP3040530A patent/JPH04215316A/ja active Pending
- 1991-02-13 DE DE69109703T patent/DE69109703T2/de not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
NL9000380A (nl) | 1991-09-16 |
DE69109703D1 (de) | 1995-06-22 |
US5097151A (en) | 1992-03-17 |
JPH04215316A (ja) | 1992-08-06 |
EP0442580A1 (de) | 1991-08-21 |
EP0442580B1 (de) | 1995-05-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE2614000C2 (de) | Diagnoseeinrichtung zur Prüfung von Funktionseinheiten | |
DE69125438T2 (de) | Ablaufsteuerung für automatische Testeinrichtung | |
DE2918053C2 (de) | ||
DE69109703T2 (de) | Sequentielle Endlichautomatenschaltung sowie integrierte Schaltung mit einer derartigen Schaltung. | |
DE10045568B4 (de) | Ereignisgestütztes Halbleiterprüfsystem | |
DE10150321A1 (de) | Verfahren und Vorrichtung zum Testen von integrierten Schaltungen | |
DE2312707A1 (de) | Pruefanordnung fuer einen computer | |
DE19510902A1 (de) | Emulation eines Mehrtor-Speichers unter Verwendung von Markierregistern | |
DE3490015T1 (de) | Abfragbarer CMOS Schalter | |
DE3900248C2 (de) | Verfahren zur schnellen Ablaufsteuerung digitaler Testmuster und Vorrichtung zur Durchführung des Verfahrens | |
DE2854782C2 (de) | Datenverarbeitungssystem und Verfahren zum Ersetzen eines Datenblocks in einem Schnellspeicher | |
DE4031136C2 (de) | ||
DE2750344C2 (de) | Logikschaltung zum Betätigen irgendeiner Teilmenge einer Mehrzahl von Vorrichtungen | |
DE2458286A1 (de) | Datenverarbeitungssystem zum verschieben von datenfeldern mit verschiedenen strukturen | |
DE2746743C2 (de) | Verfahren und Anordnung zur computergesteuerten Erzeugung von Impulsintervallen | |
DE1499701A1 (de) | Einrichtung zur automatischen Fehlerpruefung von Magnetkernspeichern | |
DE2064473B2 (de) | Schaltung zur Bestimmung der Adresse einer in einem Speicher einer Datenverarbeitungsanlage enthaltenden, gesuchten Information | |
DE4327660C2 (de) | Vorrichtung zum Herstellen einer und Herstellungsverfahren für eine integrierte Halbleiterschaltungsvorrichtung und elektronische Schaltungsvorrichtung | |
DE1191145B (de) | Elektronische Zifferrechenmaschine | |
DE3650508T2 (de) | Speicheranordnung zur Simulation eines Schieberegisters | |
DE2136270A1 (de) | Verfahren und Vergleicher zum Vergleich zweier Binärzahlen | |
DE3317593A1 (de) | Pruefspeicherarchitektur | |
EP0491998B1 (de) | Programmgesteuertes Verfahren und Anordnung zur Erzeugung von Impulsen in aufeinanderfolgenden Impulsintervallen | |
DE2235802C2 (de) | Verfahren und Einrichtung zur Prüfung nichtlinearer Schaltkreise | |
DE1119567B (de) | Geraet zur Speicherung von Informationen |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8327 | Change in the person/name/address of the patent owner |
Owner name: PHILIPS ELECTRONICS N.V., EINDHOVEN, NL |
|
8364 | No opposition during term of opposition | ||
8327 | Change in the person/name/address of the patent owner |
Owner name: KONINKLIJKE PHILIPS ELECTRONICS N.V., EINDHOVEN, N |
|
8328 | Change in the person/name/address of the agent |
Representative=s name: VOLMER, G., DIPL.-ING., PAT.-ANW., 52066 AACHEN |
|
8339 | Ceased/non-payment of the annual fee |