DE3750705T2 - Programmierbare, logische Kontrolleinrichtung. - Google Patents
Programmierbare, logische Kontrolleinrichtung.Info
- Publication number
- DE3750705T2 DE3750705T2 DE3750705T DE3750705T DE3750705T2 DE 3750705 T2 DE3750705 T2 DE 3750705T2 DE 3750705 T DE3750705 T DE 3750705T DE 3750705 T DE3750705 T DE 3750705T DE 3750705 T2 DE3750705 T2 DE 3750705T2
- Authority
- DE
- Germany
- Prior art keywords
- signals
- signal
- counter
- output
- programmable
- 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
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—Program-control systems
- G05B19/02—Program-control systems electric
- G05B19/04—Program control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/045—Program 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30036—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30036—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
- G06F9/30038—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations using a mask
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3005—Arrangements for executing specific machine instructions to perform operations for flow control
- G06F9/30054—Unconditional branch instructions
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3005—Arrangements for executing specific machine instructions to perform operations for flow control
- G06F9/30061—Multi-way branch instructions, e.g. CASE
-
- 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
- G05B2219/00—Program-control systems
- G05B2219/20—Pc systems
- G05B2219/21—Pc I-O input output
- G05B2219/21115—Same connector can represent either input or output
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Automation & Control Theory (AREA)
- Logic Circuits (AREA)
- Programmable Controllers (AREA)
Description
- Die Erfindung betrifft programmierbare Logik-Einrichtungen und insbesondere derartige Einrichtungen, die für Steuerzwecke, z. B. als Sequenzer, verwendbar sind und leicht programmierbare Hochpegel-Logikelemente wie z. B. Zähler aufweisen.
- Es wird verwiesen auf die mitanhängige Europäische Patentanmeldung Nr. 86308372.1 mit dem Titel "Programmable Input/Output Cell with Flexible Clocking and Flexible Feedback".
- Der erste Schritt beim Entwerfen des Designs einer sequentiellen digitalen Schaltung besteht in der Erstellung eines "Zustandsdiagramms", das die Zustandsübergänge und das Ausgangssignal angibt, das aus der Zuführung der verschiedenen Eingangssignale resultiert. In einer sogenannten "Moore"-Maschine sind die Ausgangssignale nur von dem Zustand abhängig, und in einer sogenannten "Mealy"-Maschine sind die Ausgangssignale sowohl von dem Zustand als auch von den Eingangssignalen abhängig. Derzeit werden Einrichtungen mit einer Logik programmierbarer Arrays (PAL) und Einrichtungen mit programmierbarem Logik-Array (PLA) zum Steuern digitaler Schaltungen verwendet, etwa in "Zustandsmaschinen" oder Sequenzern, bei denen Flexibilität und problemlose Handhabung erforderlich sind.
- Obwohl derartige PAL/PLA-Einrichtungen schnell und flexibel arbeiten, sind sie schwierig zu programmieren, da zu diesem Zweck komplexe Boolesche Gleichungen geschrieben werden müssen. Bei der Verwendung Boolescher Gleichungen für das Design des Sequenzers ist die Anzahl der für den Designer verfügbaren Variablen auf acht beschränkt, und zwar aufgrund der mathematischen Schwierigkeiten, die sich beim Spezifizieren und Vereinfachen von typischerweise mehr als acht Variablen aufweisenden Gleichungen ergeben. Zudem erfordern derartige Sequenzer zusätzliche externe Schaltungen, um Flexibilität zu erzielen, und zusätzliche bedingte Eingangssignaltestschaltungen.
- Besondere Schwierigkeiten bereitet das Programmieren und Verstehen einer generellen PAL- oder PLA-Schaltung, die zum Durchführen von niveaumäßig höheren Logik-Funktionen verwendet wird, z. B. Zählen, Zustands-Sequenzierung, Abzweigen oder Mehrfachfall-Testen. In derartigen Einrichtungen sind keine niveaumäßig höheren Logik-Blöcke - insbesondere Programmzähler
- - verfügbar, die leicht programmiert oder leicht verstanden werden können. Das Fehlen derartiger niveaumäßig höherer Logik-Blöcke macht es sehr schwierig, bei PALs und PLAs Sequenzer und Zustandsmaschinen mit auf Sprache basierenden Hochniveau-Zustandsmaschinen-Aufbau zu verwenden. Zudem ist durch das Fehlen dieser Hochniveau-Logik-Blöcke die derzeitige Architektur von PAL/PLA-Einrichtungen nicht optimal für Steuer- Logik-Verwendungen.
- Obwohl zum Reduzieren von Programmieraufwand und zur Erleichterung der Verständlichkeit eine Hochsprachen(HLL)-Programmierschemata verwendet werden können, existiert keine direkte Beziehung zwischen derartigen HLL-Systemen und der zugrundeliegenden Hardware. An sich steht keine Methodik zur Verfügung, die ein leichtes Design des Mikrosequenzers ermöglichen würde, das den für die Designer am nützlichsten Hochsprachen- Konstrukten entsprechen würde (da innerhalb der auf PAL oder PLA basierenden Systeme Hochsprachen-Konstrukte nicht leicht verfügbar sind). Derzeit müssen komplexe, detaillierte und fehlerträchtige Boolesche Gleichungen geschrieben werden, um das Design von auf PAL oder PLA basierenden Sequenzern zu erhalten. Bei diesen Gleichungen existiert keine Eins-zu-eins- Entsprechung zu den zugrundeliegenden Schaltelementen des auf PAL- oder PLA-Basis ausgelegten Sequenzers. Aus sämtlichen diesen Gründen werden PAL/PLA-Einrichtungen nicht für weitläufige, komplexe Steuerzwecke verwendet.
- Normalerweise werden auf der Basis programmierbarer Nurlesespeicher (PROM) ausgelegte mikrokodierte Sequenzer für derartige Steuerzwecke verwendet. Eine derartige Einrichtung ist in Fig. 1 als Blockschaltbild gezeigt. Derartige Mikrosequenzer weisen jedoch zahlreiche Mängel auf. Beispielsweise muß bei der Konstruktion der Moore- und Mealy-Zustandsmaschinen zum Implementieren des "bedingten Testens" ein speziell vorgesehenes Test-Multiplexer(TEST MUX)-Element verwendet werden. Dieser TEST MUX kann jedoch nur ein einziges der bedingten Test-Eingangssignale verwenden, die es zum Bestimmen des nächsten Zustandes empfängt. Somit ist es bei auf PROM-Basis ausgelegten Multiplexern nicht möglich, ein mehrfaches bedingtes Testen in einem einzigen Taktzyklus durchzuführen. Beispielsweise sind zum Durchführen des folgenden Tests in dem Zustand n:
- STATE_n: IF (COND1) THEN OUTPUT X, IF (COND2) THEN OUTPUT Y;
- für einen auf PROM-Basis ausgelegten Mikrosequenzer zwei (Unter-)Zustände erforderlich, von denen jeder eine einzelne Bedingung testet:
- STATE_n1: IF (COND1) THEN OUTPUT X;
- STATE_n2: IF (COND2) THEN OUTPUT Y;
- Der resultierende Code ist wesentlich langsamer und schwieriger auszuführen als nötig, da er zwei Taktzyklen erfordert. Zudem erlauben auf PROM-Basis ausgelegte Mikrosequenzer nur zustandsabhängiges bedingtes Testen. Es ist sehr schwierig, ein zustandsunabhängiges bedingtes Testen oder ein nur auf einer Teil-Anzahl von Zuständen basierendes bedingtes Testen durchzuführen, ohne die sogenannten "Produkt-Terme" zu verderben, da auf PROM-Basis ausgelegte Mikrosequenzer nur einen einzigen Produkt-Term pro Zustand zulassen.
- So etwa wird bei dem folgenden Beispiel ein Mehrfachbedingungstesten nur für die Zustände n und n+1 verwendet, d. h. eine Teil-Anzahl von Zuständen:
- STATE_n: IF (COND1) THEN OUT1, IF INITL THEN BOOT;
- STATE_n+1: OUT1, OUT11, IF INITL THEN BOOT;
- STATE_n+m: GOTO m;
- Es ist nicht möglich, dieses Beispiel in auf PROM-Basis ausgelegten Mikrosequenzer zu implementieren.
- Als zweites Beispiel verlangt die folgende Instruktion, daß, falls das "globale" Eingangssignal INITL angelegt wird, die Zustandsmaschine unabhängig von dem aktuellen Zustand auf START abzweigt:
- IF (INITL) GOTO STATE (START);
- Diese Instruktion ist ein Beispiel eines zustandsunabhängigen Abzweigens und kann nur in mikrounterbrechbaren auf PROM-Basis ausgelegten Mikrosequenzern implementiert werden. Dies erfordert (in Fig. 1 nicht gezeigte) zusätzliche Schaltungen und verlangt eine nicht wünschenswerte "Ausnahme-Handhabungs"- Technik für einen Vorgang, der eine relativ unkomplizierte zustandsunabhängige Operation sein sollte.
- Häufig ist es beim Design von Mikrosequenzern wünschenswert, bei verschiedenen bedingten Eingangssignalen mehrere Abzweigungen von einem gegebenen Zustand zu verschiedenen Zuständen vorzusehen. Bei auf PROM-Basis ausgelegten Mikrosequenzern muß eine zusätzliche Schaltung vorgesehen sein, um diese Funktion durchzuführen. In Mikrosequenzern auf PROM-Basis, wie etwa bei der in Fig. 1 gezeigten Einrichtung, sind sämtliche Produkt- Terme vorkodiert. Somit muß sich der Designer auf Abzweigungen beschränken, die nur zu einer einzigen Position zu einem bestimmten Zeitpunkt führen. Auf PROM-Basis ausgelegte Mikrosequenzer bieten nicht direkt eine echte "Mehrfachweg"-Abzweigfunktion. Es werden spezielle Hardware-Elemente, wie etwa das in Fig. 1 gezeigte Element BRANCH CONTROL LOGIC (GOTO) in Verbindung mit der Maskierung benötigt, um eine begrenzte Mehrfachweg-Verzweigung zu schaffen. Die Abzweigungsadresse wird zusammen mit einer anwenderdefinierbaren Maske von den bedingten (Test-) Eingangssignalen abgeleitet. Dies bewirkt einen Sprung auf nur eine begrenzte Anzahl von Zuständen, die durch Maskieren der gerade getesteten Eingangssignale wählbar sind, wie durch die Bit-um-Bit-"UND"-Funktion vorgesehen.
- Beispielsweise erfordert das Implementieren der Mehrfachabzweigung STATE_n IF (COND1) THEN OUT2, IF (COND2) THEN OUT2 bei einem auf PROM-Basis ausgelegten Mikrosequenzer die Anweisungen
- STATE_n GOTO (CONDITIONAL INPUTS "UND" MASK)
- STATE_m OUT1
- STATE_p OUT2
- bei denen die MASK derart gewählt wird, daß die Erzeugung der Adresse für STATE_m veranlaßt wird, wenn die CONDITIONAL IN- PUTS der COND1 entsprechen, und diese für STATE_p veranlaßt wird, wenn die CONDITIONAL INPUTS der COND2 entsprechen.
- Wie dem Fachmann geläufig ist, wird durch diese Techniken das Design des Mikrosequenzers unerwünschterweise verkompliziert, und es muß in jedem Fall eine zusätzliche bedingte Test-Schaltung vorgesehen sein, um diese Operationen durchzuführen. Derartige Schaltungen beanspruchen wertvollen Chipflächenbereich, verursachen langsamere Ausführungsgeschwindigkeiten und machen das Design des Sequenzers schwerfällig.
- Bei auf PROM-Basis ausgelegten Mikrosequenzern kann, wie sich aus den vorstehenden Erläuterungen ergibt, eine "Mehrfachweg"- Abzweigung von einem Zustand nur durchgeführt werden, indem entweder eine Reihe einzelner Sprünge durchgeführt wird oder eine zusätzliche Logikschaltung verwendet wird. Eine derartige Beschränkung beeinträchtigt ein gut strukturiertes Programm- Design, bei dem Hochsprachen-Konstrukte wie IF THEN ELSE und CASE verwendet werden. Zudem verlangsamt eine derartige Beschränkung die Ausführungsgeschwindigkeiten und erschwert die Programmverifikation und -dokumentation.
- Bei auf PROM-Basis ausgelegten Mikrosequenzern werden die Instruktionen in Form logischer Daten gespeichert:
- OPCODE, COND_SELECT, BRANCH ADRESS, OUTPUT.
- Die Instruktionsdekodierung bei auf PROM-Basis ausgelegten Mikrosequenzern wird zur Ausführungszeit von einem MICROIN- STRUCTION DECODE PLA, das mit den verschiedenen Elementen des in Fig. 1 gezeigten Mikrosequenzern hartverdrahtet ist. Dieses PLA empfängt den Operationscode (opcode) einer Instruktion aus dem Pipeline-Register, dekodiert diesen und erzeugt über der Zeit eine Reihe von Steuersignalen, aufgrund derer die verschiedenen Elemente in dem Mikrosequenzer, etwa die Abzweigungssteuerlogik, der Test-Multiplexer, der Programmzählermultiplexer (PC MUX), der Mikroprogramm-PROM, das Pipeline-Register, die Schieberegister und dgl., ihre jeweiligen Funktionen ausführen und koordinieren. Ferner ist bei auf PROM-Basis ausgelegten Mikrosequenzern eine separate Instruktionsdekodier-Logikschaltung erforderlich, und der Anwender unterliegt einer Einschränkung auf die feststehenden Instruktionsoperationscodes, die durch den Hersteller der Einrichtung definiert sind. Das für feststehende Instruktionsdekodierung vorgesehene PLA verursacht eine beträchtliche Einschränkung der Gebrauchsflexibilität und erfordert zusätzliche Instruktionsdekodierzeit für jeden Mikrozyklus. Auf PROM-Basis ausgelegte Mikrosequenzer weisen feststehende UND-Arrays zum Durchführen des Adressierens auf. Dadurch wird die Gesamtleistung und -geschwindigkeit des in Fig. 1 gezeigten Mikrosequenzers verschlechtert.
- Ähnlich wie das bedingte Testen und Abzweigen ist auch die Instruktions-Ausführung nur zustandsabhängig. Auf PROM-Basis ausgelegte Mikrosequenzer bieten keine Möglichkeit für zustandsunabhängiges Testen, Abzweigen oder Instruktionsdekodieren.
- Zudem muß selbst dann, wenn sich bestimmte Ausgangssignale für mehrere Taktzyklen nicht ändern, das Ausgangssignal konstant gehalten werden. Bei auf PROM-Basis ausgelegten Mikrosequenzern bedeutet diese Vorbedingung, daß Produkt-Terme zu jedem Taktzyklus erzeugt werden, wodurch PROM-Produkt-Terme verschwendet werden. Zudem verschwenden auf PROM-Basis ausgelegte Mikrosequenzer Produkt-Terme, wenn sie Abzweigungen ausführen.
- Zudem sind keine internen Feedback-Pfade vorgesehen, um die von dem auf PROM-Basis ausgelegten Mikrosequenzer erzeugten Ausgangssignale an das PROM-Array anzulegen. Ferner treibt jeder Zustandsprodukt-Term sämtliche Ausgangssignale des auf PROM-Basis ausgelegten Mikrosequenzers, was die Geschwindigkeit der Einrichtung negativ beeinträchtigt.
- Zusammenfassend betrachtet, bieten auf PROM-Basis ausgelegte Mikrosequenzer keine adäquaten Hochsprachen-Konstrukte für das Zustandsmaschinen/Sequenzer-Design, beschränken die Design- Instruktionen auf ein Konstrukt pro Leitung ein und verlangen feststehende Opcodes, wodurch die Kundenanpassung der anwenderspezifischen Software schwierig wird. Ihre Architektur ist für die von Designern vorzugsweise verwendeten Hochsprachen- Konstrukte - auch wenn sie ihnen ähnlich ist - nicht optimal.
- Verschiedene programmierbare Logik-Einrichtungen des generellen Typs, auf den sich die Erfindung bezieht, sind beschrieben in einer Veröffentlichung mit dem Titel "Programmable logic chip rivals gate arrays in flexibility" von B. Kitson et al.- Electronic Design, 8. Dezember 1983, und in einer Veröffentlichung mit dem Titel "Next Generation Programmable Logic" - Wescon Technical Papers, 30. Oktober 1984.
- Im folgenden wird eine programmierbare Logik-Steuer(PLC)-Einrichtung mit Hochsprachen-Schaltelementen beschrieben, die in Verbindung mit einem Design-Konzept verwendet werden kann, das die Entwicklung von Software erlaubt, die Hochsprachen-Konstrukte zum Programmieren der Steuereinrichtung aufweist, wobei die Konstrukte eine Eins-zu-eins-Beziehung zu der zugrundeliegenden Architektur der PLC-Einrichtung aufweisen.
- Es wird eine Vorrichtung beschrieben, bei der eine Architektur verwendet wird, die eine schnellere Instruktionssequenzierung bietet, als sie bei auf PROM-Basis ausgelegten Mikrosequenzern verfügbar ist.
- Es wird eine Vorrichtung beschrieben, die die Entwicklung von Software-Sequenzierung erlaubt, die kundenspezifisch auf bestimmte Anwendungsfälle zugeschnitten ist.
- Es wird eine Architektur verwendet, die die schnelle Steuer- Sequenzierung verbessert, indem Stufen in dem Instruktionsausführungszyklus entfallen, z. B. das Instruktionsdekodieren.
- Bei der beschriebenen Vorrichtung kommt ohne Schaltungselemente aus, die in auf PROM-Basis ausgelegte Mikrosequenzern erforderlich sind, z. B. Test-Multiplexer, Instruktionsdekodierungs-PLA-Einrichtungen, Zählermultiplexer und dgl.
- Die im folgenden beschriebene programmierbare Logik-Steuereinrichtung (PLC) ist speziell auf Steuerzwecke sowohl vom Aspekt der Funktionalität als auch vom Aspekt der Benutzung zugeschnitten. Die PLC bietet wesentliche Vorteile gegenüber herkömmlichen PALs/PLAs und auf PROM-Basis ausgelegte Mikrosequenzern, die für Steuerzwecke verwendet werden. Die Einrichtung bietet eine gattungsmäßige Kombination aus der Funktionalität von auf PROM-Basis ausgelegten Mikrosequenzern und Flexibilität. Ferner ermöglicht die Einrichtung die Verwendung von Sprach-Konstrukten mit höherem Niveau statt Boolescher Gleichungen oder Mikrocodes. Tatsächlich handelt es sich bei der Einrichtung um einen "Software-Sequenzer", da ihre Instruktionsdekodierung in der Software programmierbar ist. Ferner benötigt die PLC-Einrichtung für die gleiche Funktionalität weniger Silizium und arbeitet mit höherer Geschwindigkeit als Mikrosequenzer auf PROM-Basis.
- In einer PLC-Einrichtung bilden ein Satz von Ausgaberegsistern zusammen mit einem Zähler und ein Satz von für allgemeine Zwecke vorgesehenen vergrabenen Registern das Gegenstück zu dem Pipeline-Register von Mikrosequenzern auf PROM-Basis. Der Zähler in einem PLC-Design bietet eine Funktionalität, die derjenigen eines Programmzählers in dem Design eines auf PROM- Basis ausgelegten Mikrosequenzers analog ist. Ferner bietet er das Sprungadressenfeld des Pipeline-Registers eines auf PROM- Basis ausgelegten Mikrosequenzers. Zudem führt bei der beschriebenen PLC-Einrichtung ein programmierbares UND-Array die Adressenfunktionen von auf PROM-Basis ausgelegten Mikrosequenzer aus. Bei der beschriebenen PLC-Einrichtung ermöglichen diese Kombinationen eine besondere Flexibilität der Steuerung und einen reduzierten Silizium-Chipflächenbereich, da das UND- Array programmierbar ist und die Sprungadresse nur bei Bedarf erzeugt zu werden braucht.
- Die zusätzliche Logikschaltung, die in einem auf PROM-Basis ausgelegten Mikrosequenzer benötigt wird, etwa eine Programmzählermultiplexer-Abzweigungs-Steuerlogik, ein Test-Multiplexer, ein Instruktionsdekodierer und ein Zählregister, ist in einer PLC-Einrichtung nicht erforderlich. Zusätzlich zu dem Adressieren führt das UND-Array Instruktionsdekodierung, bedingtes Testen, Abzweigungsadressenerzeugung und eine Anzahl verschiedener Funktionen. Die im folgenden zu beschreibende PLC-Einrichtung ermöglicht typischerweise eine Kombination der Funktionalität, die diese redundanten Logik-Blöcke in Mikrosequenzern bieten. Die PLC-Einrichtung bietet im Vergleich zu herkömmlichen Sequenzern verbesserte Funktionalität, leichte Benutzbarkeit, höhere Geschwindigkeiten und verringerten Siliziumbedarf bei gleicher Funktionalität.
- Bei einer Ausführungsform der programmierbaren Logik-Steuereinrichtung gemäß der Erfindung ist eine kombinatorische Logikschaltung vorgesehen, die ein programmierbares UND-Array und ein Paar von programmierbaren ODER-Arrays aufweist. Ein erstes ODER-Array erzeugt Logik-Signale für einen Satz von Ausgangs-Makrozellen, die von einem Satz von Eingangs-/Ausgangs-Stiften bedient werden. Ein zweites ODER-Array erzeugt Logik-Signale für einen Satz von "vergrabenen" inneren Registern und einen Zähler. Das zweite ODER-Array schafft eine Hochniveau-Logiksteuerungssequenzierfunktion Signale, die von bestimmten der Ausgangs-Makrozellen sowie von den inneren Registern und dem Zähler erzeugt werden, werden über speziell dazu vorgesehene innere Feedback-Pfade zu dem UND-Array rückgeführt.
- Bei der beschriebenen PLC-Einrichtung wird das "bedingte Testen" innerhalb des programmierbaren Logik-Arrays durchgeführt und ist somit vollständig vom Anwender bestimmbar. Jeder beliebige Satz von Produkt-Termen kann in dem Design von Moore- oder Mealy-Zustandsmaschinen vom Anwender bestimmt werden. Ferner sind, da dieser Testvorgang durch das UND-Array durchgeführt wird, bei der beschriebenen PLC-Einrichtung weder eine zusätzliche Schaltung, noch die mit dieser einhergehende Komplexität, Chipbemessung und Langsamkeit vorhanden.
- Aufgrund der Flexibilität des bedingten Testens ist die Software-Sequenzierung transparenter und schneller in der Ausführung. Während beispielsweise ein auf PROM-Basis ausgelegter Mikrosequenzer drei Zustände benötigen kann, um den verlangten Testvorgang durchzuführen, benötigt die beschriebene PLC-Einrichtung nur einen einzigen Zustand.
- Der in der PLC-Einrichtung vorgesehene Zähler macht es möglich, daß die "Produkt-Terme" (Zustände), die von dem UND- Array erzeugt werden, auf dem Inhalt sowohl des Zählers als auch der Eingangssignale basieren. Ferner beseitigt die resultierende Fähigkeit der PLC-Einrichtung zum bedingten Testen die Notwendigkeit eines Test-Multiplexers, einer Test-Maske, des Programmzählermultiplexers, des Steuermultiplexers und der Abzweigungssteuerlogik, wodurch ebenfalls Chipflächenbereich eingespart wird. Zudem erlaubt die PLC-Einrichtung zustandsabhängiges, zustandsunabhängiges und teilweise zustandsabhängiges Mehrfachbedingungs-Abzweigen.
- Die beschriebenen PLC-Einrichtung unterstützt das echte Mehrfachweg-Abzweigen aufgrund des Vorhandenseins des programmierbaren UND-Arrays. Das Vorsehen des Zählers in Verbindung mit den von dem UND-Array erzeugten Produkt-Termen erlaubt das damit durchgeführte Erzeugen mehrerer Nächstzustands-Produkt- Terme aus einem einzigen aktuellen Zustand. Hochniveau-Sprachkonstrukte wie IF THEN ELSE und CASE können von dem Designer unter vorteilhafter Ausnutzung dieser Architektur verwendet werden. Der resultierende Code steht in direkter Beziehung zu der zugrundegelegten Architektur und ist somit leichter zu entwickeln und, wenn er vollständig ist, leichter zu verstehen und zu dokumentieren. Ferner können, da das benutzerprogrammierbare UND-Array vorgesehen ist, Relativ-Abzweigungen, Abzweigungen zu durch Eingangssignale definierten Positionen und Interrupts problemlos in der zu beschreibenden PLC-Einrichtung implementiert werden.
- Die PLC-Einrichtung bietet die Möglichkeit eines Mehrfach- Abzweigens bei Mehrfach-Test-Bedingungen, ohne daß zusätzlich wie bei dem auf PROM-Basis ausgelegten herkömmlichen Mikrosequenzer eine Abzweigungsteuerlogik, ein Test-Multiplexer und dgl. vorhanden sind. Während die Instruktions-Dekodierung in dem benutzerprogrammierbaren UND-Array durchgeführt wird, kann das Dekodieren jeder Instruktion von dem Designer in der Software bestimmt werden. Dadurch werden in der PLC-Einrichtung die Instruktionen entsprechend ihrer Software-Spezifikation vorkodiert und in dem UND-Array in einem Logik-Format gespeichert, das direkt von der Software verwendbar ist. Dies ist weitaus effizienter, als die Instruktionen in dem PROM-Mikroprogramm-Speicher in einem Datenformat zu speichern und ein separates Informationsdekodier-PLA zu verwenden, um sie zu dekodieren. Somit entfällt bei der PLC-Einrichtung die Notwendigkeit für das speziell vorgesehene Informationsdekodier-PLA des Standes der Technik, was zu Einsparungen an Chipflächenbereich und Instruktionsausführungszeit führt und beträchtliche Flexibilität schafft. Bei der PLC-Einrichtung kann der Designer Software mit Hochniveau-Konstrukten verwenden, die leicht zu verstehen sind und keine unnötigen Beschränkungen verursachen, da sie typischerweise nicht mehr als acht bis sechzehn Variablen in Booleschen Design-Ausdrücken erfordern.
- Da das programmierbare UND-Array vorgesehen ist, verursacht die hier beschriebene PLC-Einrichtung nicht die bei Mikrosequenzern auf PROM-Basis vorhandene Beschränkung von einer einzigen Instruktion pro Zustand. Die einem bestimmten Zustand entsprechenden Instruktionen werden in Kaskade angeordnet, und die Instruktionssequenzen können kundenspezifisch zugeschnitten und/oder vom Benutzer für bestimmten Anwendungen optimiert werden. Deshalb führt die PLC-Einrichtung Instruktionssequenzen schneller aus als Mikrosequenzer auf PROM-Basis, und der resultierende Code ist leichter zu verstehen. Zudem verlangen die meisten auf PROM-Basis ausgelegten Mikrosequenzer ein Instruktionsfeld innerhalb des Pipeline-Registers zum Speichern einer Abzweigungsadresse. Da diese Sequenzer kein programmierbares UND-Array aufweisen, sind das separate Abzweigungsfeld und ein Programmzähler für die Abzweigungssteuerung erforderlich. Bei einer PLC-Einrichtung erlaubt das Vorsehen des programmierbaren UND-Arrays die Erzeugung von Abzweigungs- Steuersignalen in dem UND-Array, und aufgrund des Vorhandenseins des Zählers, dessen Lade-Steuersignale von dem programmierbaren UND-Array erzeugt werden, benötigt die PLC-Einrichtung kein separates Abzweigungsfeld und keinen Programmzähler, was zu einer Einsparung an Chipflächenbereich und einer transparenteren Architektur führt.
- Die im folgenden zu beschreibende PLC-Einrichtung bietet speziell vorgesehene Feedback-Pfade von den Ausgangsanschlüssen und den Ausgangs-Makrozellen. Die Feedback-Pfade beseitigen die Notwendigkeit für separate Produkt-Terme für jeden Zustand, die für das Implementieren der Halte-, Freigabe, und Verzögerungs-Funktionen benötigt werden, so daß Produkt-Terme eingespart werden. Zu dem können die an den Ausgängen der PLC- Einrichtung erzeugten Signale registrierte oder kombinatorische Signale im aktiven HIGH- oder aktiven LOW-Zustand sein.
- Diese Möglichkeiten sind bei herkömmlichen auf PROM-Basis ausgelegten Mikrosequenzern nicht verfügbar. Die Fähigkeit zu kombinatorischen Ausgangssignalen gestattet Zustandsmaschinen sowohl mit Mealy- oder Moore-Typ-Design, während bei herkömmlichen auf PROM-Basis ausgelegten Mikrosequenzer nur Zustandsmaschinen vom Moore-Typ-Design implementiert werden können.
- Da auf PROM-Basis ausgelegte Sequenzer ein voll vorkodiertes UND-Array verwenden, können die von diesen erzeugten Ausgangssignale nicht zustandsunabhängig sein. "Unterbrechbare" Mikrosequenzer sind oft derart konstruiert, daß sie begrenzte zustandsunabhängige Funktionen bieten, indem ein Übermaß an externer Schaltung verwendet wird. Das bei der PLC-Einrichtung der Erfindung vorgesehene benutzerprogrammierbare UND-Array erlaubt die Erzeugung zustandsunabhängiger Funktionen und teilweise zustandsabhängiger Funktionen, ohne daß komplexe interrupt-getriebene Opcodes und externe Schaltungen verwendet werden.
- Indem in der PLC-Einrichtung ein programmierbares UND-Array vorgesehen ist, das externe Eingangssignale, Feedback-Signale und Zustandszählsignale empfängt, ist die zusätzliche Information, die in auf PROM-Basis ausgelegten Mikrosequenzer zugeführt wird, etwa die Verwendung eines Multiplexers für bedingtes Testen, der Opcode und die konstanten Instruktionsfelder, unnötig. Das UND-Array kann in Verbindung mit dem programmierbaren ODER-Array derart programmiert werden, daß die erforderlichen Steuersigale erzeugt werden. Zudem ist die Anzahl von ODER-Termen, die von einem einzigen Produkt-Term abhängen, sehr kritisch. Für eine gesteigerte Geschwindigkeit ist es wichtig, die Abmessungen des ODER-Arrays zu reduzieren, um die Zweitgateverzögerung so weit wie möglich zu beseitigen. Bei der beschriebenen PLC-Einrichtung werden zwei ODER-Arrays verwendet, von denen jedes eine zugewiesene Funktion erfüllt, und zwar entweder Ausgangssignalerzeugung oder Sequenzersteuerung, so daß die Abmessungen jedes ODER-Arrays ohne Verlust an Funktionalität reduziert werden.
- Gemäß einer alternativen Ausführungsform wird bei einer schnelleren PLC-Einrichtung eine kombinatorische Logik-Einrichtung verwendet, die ein programmierbares UND-Array und feststehende ODER-Arrays aufweist.
- Fig. 1 zeigt ein Blockschaltbild eines auf PROM-Basis ausgelegte Mikrosequenzers gemäß dem Stand der Technik.
- Fig. 2 zeigt die Architektur einer programmierbaren Logik- Steuereinrichtung (PLC) gemäß der Erfindung.
- Fig. 3 zeigt ein Blockschaltbild einer Ausführungsform der PLC-Einrichtung, die ein programmierbares UND-Array und ein Paar programmierbarer ODER-Arrays aufweist.
- Fig. 4 zeigt ein Blockschaltbild einer Ausführungsform der PLC-Einrichtung, die ein programmierbares UND-Array und feststehende ODER-Gates aufweist.
- Eine Architektur der programmierbaren Logik-Steuereinrichtung (PLC) 10 gemäß der Erfindung ist in Fig. 2 gezeigt. Eine sicherungsprogrammierbare kombinatorische Logikschaltung 12 empfängt über einen Satz von acht Signalleitungen 14 Eingangssignale von einer externen Quelle. In den Figuren der Zeichnung sind verschiedene Signalleitungen mit Querstrichen und einer daneben angeordneten Zahl markiert, um anzudeuten, daß auf der Leitung eine Anzahl von Signalen parallel geführt wird, wobei die Zahl die Anzahl paralleler Signale angibt. Somit weist die Leitung 14 die Zahl "8" an einem die Leitung 14 schneidenden Querstrich auf. Die programmierbare kombinatorische Logikschaltung 12 kann aus programmierbaren UND- und ODER-Arrays gebildet sein, wie noch detailliert beschrieben wird.
- Ein Satz von zwölf Ausgangs-Makrozellen 16 empfängt über Signalleitungen 16 Signale, die von der Schaltung 12 erzeugt werden, und dies gilt auch für einen Satz vergrabener Register 20 über Signalleitungen 22.
- Ferner empfängt ein programmierbarer Zähler 24 über Signalleitungen 26 Signale, die von der Schaltung 12 erzeugt werden. Diese Signale repräsentieren Ladeadressen- und Zählsteuerinformation, wie im Zusammenhang mit dem Zähler 24 noch detailliert beschrieben wird. Signale, die den Inhalt der vergrabenen Register 20 und des Programmzählers 24 repräsentieren, werden über Signalleitungen 28 an die programmierbare kombinatorische Logikschaltung 12 zurückgeleitet, wo sie zweite Eingangssignale in die Schaltung 12 bilden.
- Signale, die den Inhalt von Ausgangs-Makrozellen 16 repräsentieren, werden über Signalleitungen 30 an Eingangs-/Ausgangs- (I/O)-Stifte 32 geleitet sowie über Signalleitungen 34 an die kombinatorische Schaltung 12 zurückgeleitet, wo sie dritte Eingangssignale in die Schaltung 12 bilden. Der Zähler 24 ist vorzugsweise ein Gray-Code-Zähler. Da sich der Inhalt eines solchen Zählers an nur einer Bit-Position ändert, sind die Zustandsübergängen keinen Instabilitäten unterworfen, die Übergangsfehler in den an den I/O-Stiften 32 erzeugten Signalen verursachen können. Dies führt ferner zu einer verbesserten Optimierung der Booleschen Design-Gleichungen, da bei benachbarten Zustandsprodukt-Termen Unterschiede von nur einem Bit involviert sind, wie dem Fachmann geläufig ist.
- Kurz ausgedrückt, werden von der kombinatorischen Logikschaltung 12 erzeugte Datensignale und dynamische Steuersignale jeder der Ausgangs-Makrozellen 16 zugeführt, und die Makrozelle erzeugt aus diesen ein Signal, das aus dem Inhalt eines Registers innerhalb der Makrozelle 16 oder aus den von der Schaltung 12 empfangenen kombinatorischen Daten gewählt werden kann, und veranlaßt, daß dieses Signal entweder in aktiver HIGH- oder in aktiver LOW-Polarität dem I/O-Stift 32 zwecks Ausgabe und Feedback an die Schaltung 12 zugeleitet wird, oder die Makrozelle kann veranlassen, daß ein an den I/O-Stift 32 angelegtes Signal über Signalleitungen 30 und 34 an die Logikschaltung 12 geleitet wird. Ferner empfängt jedes vergrabene Register 20 Daten- und dynamische Steuersignale von der Logikschaltung 12, weist aber keinen zugeordneten I/O-Stift auf, an dem der Inhalt des Registers erzeugt wird, wobei jedoch ein Signal, das den Inhalt des Registers repräsentiert, über den Feedback-Pfad 28 zu der Logikschaltung 12 geleitet wird, wo es zur "Zustands"-Bestimmung verwendet werden kann.
- Der Inhalt des Programmzählers 24 wird in ähnlicher Weise zur "Zustands-"Bestimmung an die Logikschaltung 12 rückgeführt, und da die externen Eingangssignale auch für die Logikschaltung 12 verfügbar sind, wird die Implementierung sowohl einer "Mealy"-Zustandsmaschine, bei der die Bestimmung des nächsten Zustandes auf dem aktuellen Zustand und den Eingangssignalen basiert, als auch einer "Moore"-Zustandsmaschine, die nur auf dem aktuellen Zustand basiert, durch die PLC der Erfindung leicht durchgeführt. Der Zähler 24 kann auch Sequenzierungsfunktionen durchführen und wird über die programmierbare Logikschaltung 12 problemlos gesteuert. Der Zähler 24 empfängt ein von der Schaltung 12 erzeugtes LOAD CONTROL-Signal und einen Satz von LOAD-ADRESS-Signalen, der bei Anlegen des LOAD CONTROL-Signals erlaubt, den Inhalt des Zählers 24 auf einen programmierbaren "Zustand" zu setzen. Das auf diese Weise erfolgende Laden des Zählers schafft eine "Zustandsabzweigungs"-Funktion des PLC 10. Alternativ kann, indem das LOAD CONTROL-Signal permanent auf HIGH gesetzt wird, der Zähler 24 als Satz zusätzlicher vergrabener Register funktionieren. Der Zähler 24 empfängt ferner von der Logikschaltung 12 ein COUN- TER CLEAR (CLR)-Signal, das, wenn es angelegt wird, den Zähler auf einen vorbestimmten "Start"-Zustand, z. B. "00"Hex, rücksetzt.
- Bei den meisten Mikrosequenzern wird ein Pipeline-Register mit einem Instruktionsfeld verwendet, das die Abzweigungsadresse definiert. Da bei einem auf PROM-Basis ausgelegten Mikrosequenzer das UND-Array nicht programmierbar ist, sind ein separates Abzweigungsfeld und ein Programmzähler erforderlich. Bei einer PLC 10 gemäß der Erfindung führt die programmierbare Logikschaltung 12 die Instruktionsdekodierung durch, und die Abzweigungs-Steuersignale können von der Schaltung 12 selbst erzeugt werden. Als solche können die LOAD ADRESS- und LOAD- Steuersignale direkt zur Verwendung durch den Programmzähler 24 der PLC 10 gemäß der Erfindung verwendet werden.
- Gemäß Fig. 3, die eine besondere Implementierung der PLC 100 zeigt, bilden ein programmierbares UND-Array 122 und ein Paar programmierbarer ODER-Arrays 124 und 126 die programmierbare kombinatorische Logikschaltung 12, die der Logikschaltung 12 von Fig. 2 entspricht. Eine derartige kombinatorische Logikschaltung wird auf dem Gebiet als programmierbares Logik-Array (PLA) bezeichnet.
- Die Bezugszeichen der in Fig. 3 gezeigten Elemente weisen zusätzlich zu dem Zeichen des in Fig. 2 gezeigten vergleichbaren Elementes eine "0" auf. Gemäß Fig. 3 empfängt das programmierbare UND-Array 122 die externen Eingangssignale über Signalleitungen 140, die an einem Puffer 128 enden, der wahre und komplementäre Versionen der dem UND-Array 122 zugeführten externen Eingangssignale liefert. Ein "Ausgangssignalerzeugungs"-ODER-Array 124 empfängt sogenannte "Produkt-Term"-Signale von dem UND-Array 122 und erzeugt daraus Daten- und dynamische Steuersignale, die über Signalleitungen 180 von einem innerhalb der Ausgangs-Makrozellen 160 angeordneten Register 162 empfangen werden. Ein "Steuer-Sequenzierungs"- ODER-Array 126 empfängt Produkt-Term-Signale von dem UND-Array 122 und erzeugt daraus Daten- und dynamische Steuersignale, die über Signalleitungen 220 von den vergrabenen Registern 200 empfangen werden, und LOAD ADRESS-Signale und LOAD CONTROL- Signale, die über Signalleitungen 262 bzw. 264 von dem Zähler 240 empfangen werden. Ferner wird das COUNTER-Lösch(CLR)-Signal von dem ODER-Array 126 erzeugt und über die Signalleitung 266 von dem Zähler 240 empfangen.
- Ein von dem UND-Array 122 erzeugtes Ausgangs-Freigabe-Signal wird über einen ersten Eingangsanschluß eines Exklusiv-ODER (XOR)-Gates 164 geleitet. Eine feldprogrammierbare sicherbare Verbindung 166 ist mit einem zweiten Eingangsanschluß des XOR- Gates 164 verbunden. Der Status der Sicherung 166, herausgesprungen oder intakt, bestimmt die Polarität des Ausgangsfreigabesignals, das dem Steuereingangsanschluß eines invertierenden Ausgangspuffers 168 zugeführt wird. Der Puffer 168 empfängt das von dem Register 162 erzeugte Signal und veranlaßt bei Empfang des Ausgangsfreigabesignals, daß der Inhalt des Registers 162 zu einem Ausgangsanschluß des Puffers 168 geleitet wird. Das in dieser Weise erzeugte Signal wird über den Feedback-Pfad 340 dem I/O-Stift 320 und dem UND-Array 122 zugeführt. Ferner wird der Inhalt der vergrabenen Register 200 und des Zählers 240 über den Feedback-Pfad 340 dem UND-Array 122 zugeführt. Der Pfad 340 endet an einem Puffer 129, der wahre und komplementäre Versionen der Feedback-Signale für das UND-Array 122 erzeugt.
- Falls der invertierende Ausgangspuffer 168 deaktiviert ist, können an dem I/O-Stift 320 angelegte externe Signale über den Feedback-Pfad 340 dem UND-Array 122 zugeführt werden.
- Die beiden ODER-Arrays 124 und 126 leisten unterschiedliche Funktionen innerhalb der PLC 100. Das Ausgangssignalerzeugungs-ODER-Array 124 wird zum Erzeugen von "Ausgangs"-Steuersignalen verwendet, die von dem "Zustands"-Zählwert und den Eingangssignalen abhängig sind. Das Steuer-Sequenzierungs- ODER-Array 126 wird zum Erzeugen von "internen" Steuersignalen für die vergrabenen Register 200, und der LOAD ADRESS- und der Steuersignale, LOAD und CLR, für den Zähler 240 verwendet. Diese beiden Operationen sind im wesentlichen unabhängig voneinander, und somit wird durch das Vorsehen der beiden Arrays die Bemessung des Array gegenüber derjenigen, die ein einzelnes ODER-Array erfordert, halbiert, ohne daß die Funktionalität der PLC beeinträchtigt wird.
- Ein nicht gezeigter Taktgeber erzeugt ein Zeitsteuerungssignal CLK, das von den Registern 162 und 200 und dem Zähler 240 empfangen wird, wie dem Fachmann geläufig ist.
- In Fig. 4 ist eine alternative Ausführungsform einer PLC-Einrichtung gemäß der Erfindung gezeigt, bei der feststehende ODER-Gates verwendet werden. Eine PLC 400, ein programmierbares UND-Array 122 und ein Satz von ODER-Gates 123, 125a, 125b, 125c und 125d, bilden die programmierbare kombinatorische Logikschaltung 120, die der Logikschaltung 12 in Fig. 1 entspricht. Eine derartige kombinatorische Logikschaltung wird auf dem Gebiet als programmierbare Array-Logik (PAL) bezeichnet.
- Die Bezugszeichen der in Fig. 4 gezeigten Elemente weisen zusätzlich zu dem Zeichen des in Fig. 2 gezeigten vergleichbaren Elementes eine "0" auf, und die mit Fig. 3 gemeinsamen Elemente weisen in Fig. 4 die gleichen Bezugszeichen auf.
- Gemäß Fig. 4 empfängt das programmierbare UND-Array 122 die externen Eingangssignale über Signalleitungen 140, die an einem Puffer 128 enden, der wahre und komplementäre Versionen der dem UND-Array 122 zugeführten externen Eingangssignale liefert. Ein Satz von "Ausgangssignalerzeugungs"-ODER-Gates, von denen eines, 123, gezeigt ist, empfängt sogenannte "Produkt-Term"-Signale von dem UND-Array 122 und erzeugt daraus Datensignale, die über Signalleitungen 180 von einem innerhalb der Ausgangs-Makrozellen 160 angeordneten Register 162 empfangen werden. Eine variable Verteilung von Produkt-Termen wird den ODER-Gattern zugeführt, in diesem Fall acht und zehn.
- Ein Satz von "Steuer-Sequenzierungs"-ODER-Gates, von denen vier, 125a, 125b, 125c und 125d, gezeigt sind, empfängt eine variable Anzahl von Produkt-Term-Signalen von dem UND-Array 122 und erzeugt daraus Daten- und dynamische Steuersignale, die über Signalleitungen 220 von den vergrabenen Registern 200 empfangen werden, und LOAD ADRESS-Signale und LOAD CONTROL- Signale, die über Signalleitungen 262 bzw. 264 von dem Zähler 240 empfangen werden. Ferner wird das COUNTER-Lösch(CLR)-Signal von dem ODER-Array 125d erzeugt und über die Signalleitung 266 von dem Zähler 240 empfangen.
- Ein von dem UND-Array 122 erzeugtes Ausgangs-Freigabe-Signal wird einem ersten Eingangsanschluß eines Exklusiv-ODER (XOR)- Gates 164 zugeführt. Eine feldprogrammierbare sicherbare Verbindung 166 ist mit einem zweiten Eingangsanschluß des XOR- Gates 164 verbunden. Der Status der Sicherung 166, herausgesprungen oder intakt, bestimmt die Polarität des Ausgangsfreigabesignals, das einem ersten Eingangsanschluß eines NOR-Gates 169 zugeführt wird. Das NOR-Gate 169 empfängt an einem zweiten Eingangsanschluß das von dem Register 162 erzeugte Signal und veranlaßt bei Empfang des Ausgangsfreigabesignals, daß der Inhalt des Registers 162 zu einem Ausgangsanschluß des NOR- Gates 169 geleitet wird. Das in dieser Weise erzeugte Signal wird über den Feedback-Pfad 340 dem I/O-Stift 320 und dem UND- Array 122 zugeführt. Ferner wird der Inhalt der vergrabenen Register 200 und des Zählers 240 über den Feedback-Pfad 340 dem UND-Array 122 zugeführt. Der Pfad 340 endet an einem Puffer 129, der wahre und komplementäre Versionen der Feedbacksignale für das UND-Array 122 erzeugt.
- Falls das NOR-Gate 169 deaktiviert ist, können an dem I/O- Stift 320 angelegte externe Signale über den Feedback-Pfad 340 dem UND-Array 122 zugeführt werden.
- Die beiden Sätze von ODER-Gates 123 und 125a, 125b, 125c und 125d leisten unterschiedliche Funktionen innerhalb der PLC 400. Das Ausgangssignalerzeugungs-ODER-Gates 123 werden zum Erzeugen von "Ausgangs"-Steuersignalen verwendet, die von dem "Zustands "-Zählwert und den Eingangssignalen abhängig sind. Die Steuer-Sequenzierungs-ODER-Gates 125a, 125b, 125c und 125d werden zum Erzeugen von "internen" Steuersignalen für die vergrabenen Register 200, und der LOAD ADRESS- und der Steuersignale, LOAD und CLR, für den Zähler 240 verwendet. Diese beiden Operationen sind im wesentlichen unabhängig voneinander, und somit wird durch das Vorsehen der beiden Sätze von Gates die Anzahl der Gates verringert, während die Geschwindigkeit der PLC 100 gegenüber derjenigen der PLC 100 spürbar erhöht wird.
- Ein nicht gezeigter Taktgeber erzeugt ein Zeitsteuerungssignal CLK, das von den Registern 162 und 200 und dem Zähler 240 empfangen wird, wie dem Fachmann geläufig ist.
- Das Programmieren einer PLC-Einrichtung 10 gemäß der Erfindung erfolgt vorzugsweise über Hochniveau-Sprach-(HLL-)Konstrukte. Das in der PLC 10 vorgesehene Hochniveau-Logik-Zählerelement 24 erleichtert diese Programmierung und somit die Verständlichkeit des resultierenden Programms. Eine exemplarische Syntax ist in der nachstehenden Tabelle gezeigt. TABELLE Syntax der Hochsprache Anweisungstyp Anweisungsbezeichnung Parameter Bedeutung DEFINE INPINS Signalnamen Definierungen Signalnamen OUTPINS STATEMENT INPUT PRIOR Prioritätskodierung der Eingangssignale OUTPUT Erzeugen Signale OUTIN Testen Feedback-Signale BURD n vergrabenes Register n Testen der Signale des vergrabenen Registers/Erzeugen Ausgangssignale DELAY Halten des Ausgangssignals (der Ausgangssignale) für eine bestimmte Anzahl von Taktzyklen HOLD Nur Eingangssignale Halten des Eingangssignals (der Eingangssignale) für eine bestimmte Anzahl von Taktzyklen RELEASE Nur Eingangssignale Freigeben des Eingangssignals (der Eingangssignale) aus dem Haltezustand IF THEN ELSE Anweisungszeichen WHILE DO FOR DO CASE OF GOTO direkte Abzweigung GOTOR Relativ-Abzweigung ENABLE Nur Ausgangssignale Aktivieren Puffer DISABLE Deaktivieren Puffer RESET Rücksetzen Register PRESET Voreinstellen Register PRELOAD Vorladen Register
- Die Bedeutungen der meisten in der Tabelle aufgeführten einfachen Aussagen sind für den Fachmann aus sich selbst ersichtlich. Es sei z. B. verwiesen auf Kapitel 4, "Design and Software for Programmable Logic", in dem Programmable Array Logic Handbook von Advanced Micro Devices, Sunnyvale, CA, c 1984. Aufgrund der vielfachen Vorteile der PLC gemäß der Erfindung werden von der PLC mehrere Hochniveau-Sprach-Konstrukte unterstützt, die im Stand der Technik nicht verfügbar sind. Beispielsweise sorgt die DELAY-Instruktion dafür, daß das am Ausgang der PLC erzeugte Signal für eine bestimmte Anzahl von Taktzyklen konstant gehalten wird. Bei auf PROM-Basis ausgelegten Sequenzern sind sämtliche Zustände vorkodiert, und die Ausgangssignale werden automatisch zu jedem Taktzyklus erzeugt. Aufgrund der in der PLC vorhandenen Feedback-Pfade kann ein Signal gehalten werden, indem nur ein oder zwei Produkt- Terme, die in der PLA erzeugt werden, im Zusammenhang mit Feedback-Signalen verwendet werden. Bei einigen herkömmlichen Sequenzern (siehe Fig. 1) werden zur Schaffung der Halte-Funktion ein separates Zählregister (C-REG) und ein separater Zählmultiplexer (C-MUX) verwendet, was zusätzlichen Chipflächenbereich, Schaltungskomplexität und Programmierkomplexität erfordert. Das programmierbare UND-Array der PLC beseitigt die Notwendigkeit dieser Elemente sowie der an sie gestellten Anforderungen. Ferner sind HOLD-Eingabe- und RELEASE-Eingabe- Instruktionen verfügbar, die ähnliche Operationen an Eingangssignalen ausführen.
- Die Hochniveau-Sprach-Konstrukte . . . . . . . . . . . .ELSE, WHILE . . .DO, . . . . . .DO, CASE . . .OF, GOTO and GOTOR stehen für die Benutzer der PLC aufgrund des Vorhandenseins des programmierbaren UND- Arrays und des Zustandszählers zur Verfügung. Das programmierbare UND-Array erlaubt ein Mehrfachweg-Abzweigen von einem gegebenen Zustand, wie bereits beschrieben, und der Zustandszähler schafft eine direkte Korrelation zwischen dem Maschinenzustand, wie er für das Design des Softwaresequenzerprogramms verwendet wird, und dein Inhalt des Zustandszählers.
- Ferner gestatten die Architektur und die Software-Syntax dem Designer, in den Instruktionen Systemsteuersignalbezeichnungen statt vordefinierter Opcodes zu verwenden, was aufgrund der vorkodierten Booleschen Ausdrücke der Fall ist. Diese Konstrukte sind wegen ihres Mangels an Hochniveau-Elementen beim Stand der Technik nicht verfügbar.
- Die Instruktionen ENABLE, DISABLE, RESET, PRESET und PRELOAD sind direkt auf den PLC-Ausgangspuffer 168 und die Registerelemente bezogen. Die erstgenannten beiden Instruktionen, die sich auf das von dem programmierbaren Logik-Array erzeugten Ausgangsfreigabesignal beziehen, wie bereits im Zusammenhang mit dem XOR-Gate 164 beschrieben, und die letztgenannten drei Signale, die sich auf das Rückstellen, Voreinstellen und Vorladen der Makrozellen 16 und/oder der vergrabenen Register 20 beziehen, können, auch wenn sie in den Figuren nicht veranschaulicht sind, gemäß der mitanhängigen Europäische Patentanmeldung Nr. 86308372.1 des Anmelders erzeugt werden.
- Die in der Tabelle aufgeführten Hochniveau-Sprach-Konstrukte können in Boolesche Ausdrücke übersetzt werden und dann direkt in Verbindung mit einer beliebigen Sprache aus einer Anzahl aktueller PAL-Design-Spezifikationssprachen verwendet werden, etwa PLPL, ABEL oder CUPL, um das Programmieren der Logikschaltung 12 zu unterstützen. Insbesondere ermöglichen derartige Konstrukte eine ausgiebige Steuerung des Instruktionsdekodierens, des bedingten Testens und des Abzweigens. Als solche sind Elemente, die normalerweise in Mikrosequenzern auf PROM-Basis benötigt werden, z. B. Test-Multiplexer, Test-Masken, Programmzähler-Multiplexer, Bedingungscode-Multiplexer und Abzweigungssteuerungslogikschaltungen, in der PLC 10 der Erfindung nicht erforderlich.
- Zum besseren Verständnis des Nutzens und der Vorteile der PLC 10 gemäß der Erfindung werden im folgenden als Beispiele fünf mittels der PLC ausgeführte Steueraufgaben beschrieben: Steuersequenzierung, Ausgangssignalerzeugung, bedingtes Testen, Abzweigen und Instruktionsdekodierung.
- Der programmierbare Zähler 240 ist zum Sequenzieren, Zustandszählen und Steuern des programmierbaren UND-Arrays 122 durch den Feedback-Pfad 340 vorgesehen. Der Zähler 240 wird seinerseits über das programmierbare UND-Array 122 (und das Steuer- Sequenzierungs-ODER-Array 126 in der Ausführungsform gemäß Fig. 3) vom Benutzer gesteuert. Der Inhalt des Zählers 240 kann aus dem UND-Array 122 (dem ODER-Array 126 in Fig. 3) geladen werden, und der resultierende Zählstand kann zum Repäsentieren eines Zustandes verwendet werden, der in Verbindung mit dem UND-Array 122 (und dem ODER-Array 124 in Fig. 3) bei der Erzeugung von Ausgangssignalen mittels der Ausgangs-Makrozellen 169 benutzt werden kann.
- Somit können in einer PLC 100 gemäß der Erfindung sowohl Mealy- als auch Moore-Zustandsmaschinen leicht implementiert werden. Da der Betrieb des Zählers 240 normalerweise sequentiell erfolgt, ist der Betrieb der Zustandsmaschine leichter zu verstehen und in Software zu programmieren als die PAL- Sequenzer des Standes der Technik.
- Das Laden des Zählers 240 schafft die Abzweigungsfunktion der Zustandsmaschine. Das Löschen des Zählers setzt den Zähler 240 auf 00 (Hex) zurück, was der normale Startzustand der Zustandsmaschine ist.
- Somit wird die Steuerstruktur einer in einer PLC 100 gemäß der Erfindung implementierten Zustandsmaschine oder eines Sequenzers von der Kombination aus dem UND-ODER-Array 122 und 126 gesteuert und ist von dem aktuellen Zustand der Maschine abhängig, d. h. dem aktuellen Inhalt des Zählers 240, den Eingangssignalen in das UND-Array 122, und den Ausgangssignalen, die über den Pfad 340 an das UND-Array rückgeführt werden.
- Bei einer repräsentativen Ausführungsform schafft ein Zehn- Bit-Zähler 240 1024 Zustände. Es können jedoch zusätzliche Zustände geschaffen werden, indem der Inhalt der vergrabenen Register 200 beim Bestimmen des aktuellen Zustandes verwendet wird.
- Eine zweite Hauptaufgabe bei dem Zustandsmaschinen-Design besteht in der Erzeugung der Steuerausgangssignale. Durch die programmierbaren UND/ODER-Arrays 12 in der PLC 10 der Erfindung können Ausgangssignale problemlos in Abhängigkeit von dem Zustand der Maschine und den Eingangssignalen erzeugt werden. Es sei z. B. angenommen, daß eine Zustandsmaschine mit den Zuständen 00 und 01 die folgende Operation durchführen soll: ZUSTAND OPERATION
- Durch Kodieren der Zustände 00 und 01, etwa , und ; bzw. S0, und , wobei S0, S1 und S2 die von dem Zähler 240 erzeugten Signale repräsentieren, können Ausgangssignale 01 und 03 entsprechend den folgenden Gleichungen erzeugt werden, und zwar in Abhängigkeit von den Signalen S0, S1, S2 und ihren Komplementärsignalen und dem Eingangssignal I3:
- Diese zuletzt aufgeführten Gleichungen können problemlos in dem programmierbaren UND/ODER-Array 12 implementiert werden, wie dem Fachmann ersichtlich ist.
- Die Wahl der bedingten Eingangssignale ist in der PLC 100 durch Software und das programmierbare UND-Array programmierbar. Bei dem bedingten Testen kann jeder Zustand (sämtliche Zustände) verwendet werden, oder das Testen kann unabhängig vom Zustand sein, es können jede Kombination von Eingangssignalen und an das UND-Array rückgeführte Ausgangssignale verwendet werden, und das Testen kann für jede beliebige Zeitdauer erfolgen.
- Beispielsweise können in einer Zustandsmaschine mit den Zuständen 04 und 05 die folgenden bedingten Testoperationen an den Eingangssignalen , und durchgeführt werden: ZUSTAND OPERATION
- Durch Kodieren der Zustände 04 und 05 als , und S2; bzw. S0, und S2 kann die PLC 10 die Testoperationen implementieren als:
- Das Abzweigen wird von der PLC gemäß der Erfindung auf der Basis der programmierbaren bedingten Eingangssignale in das programmierbare UND-Array 122 durchgeführt. In Abhängigkeit von dem aktuellen Zustand, wie er durch den Inhalt des Zählers 240 wiedergegeben wird, und der bedingten Eingangssignale, können ein LOAD CONTROL-Signal und ein Satz von LOAD ADRESS- Signalen von dem Steuersequenz-ODER-Array 126 erzeugt werden. Der letztgenannte Satz von Signalen repräsentiert den Zustand, zu dem eine Abzweigung gewünscht ist. Während des nächsten Taktzyklus wird der Inhalt des Zählers 240 auf einen gewünschten Abzweigungszustand gesetzt, und bei nachfolgenden Taktzyklen wird die Zählung von diesem Zustand an aufwärts wiederaufgenommen.
- Es sei z. B. angenommen, daß die folgenden Abzweigungsoperationen durchgeführt werden sollen:
- 00 GOTO 03
- 01 IF THEN GOTO 00 ELSE GOTO 01
- Unter Fortführung der Zustandskodier-Verwendung bei den vorherigen Beispielen kann der programmierbare Zähler 240 der PLC 100 diese Abzweigungsoperationen wie folgt implementieren:
- Dabei wird das LOAD CONTROL-Signal als LOAD bezeichnet, und der Satz von LOAD-ADRESS-Signalen wird als LS2, LS1 und LS0 bezeichnet, und zwar vom signifikantesten zum am wenigsten signifikanten.
- Wie oben beschrieben, ist hinsichtlich des Zählers 240 eine speziell zugewiesene klare Funktion vorgesehen. Das Anlegen des COUNTER CLR-Signals veranlaßt, daß der Inhalt des Zählers 240 auf ZERO oder einen anderen vorbestimmten Wert gesetzt wird, der den "Start"-Zustand repräsentiert. Eine Erweiterung des Beispiels des Abzweigens dahingehend, daß eine Operation "Rückkehr zu Start" durchgeführt wird, wird dem Fachmann nun ersichtlich sein.
- Die Instruktionen der PLC 10 gemäß der Erfindung werden durch Umsetzung in Boolesche Gleichungen vorkodiert und in dieser funktionalen logischen Form in dem UND-ODER-Array-Teil 12 gespeichert. Da die Umsetzung durch Software durchgeführt wird, kann in der PLC 10 jeder benutzerbestimmte anwendungsorientierte Instruktionssatz ausgeführt werden, im Gegensatz zu herkömmlichen, auf PROM-Basis ausgelegten Mikrosequenzern, bei denen ein Hardware-Element - ein speziell vorgesehenes Instruktionsdekodier-PLA - zum Umsetzen der Instruktionen verwendet wird. Da zudem die herkömmlichen, auf PROM-Basis ausgelegten Mikrosequenzer zur Ausführungszeit die Instruktionen aus einem Datenformat umsetzen müssen, arbeiten derartige Mikrosequenzer langsamer als die PLC 10 der Erfindung.
Claims (41)
1. Programmierbare Logik-Steuereinrichtung, die eine mit
mehreren Eingängen (14, 1 40) und mehreren Ausgängen (I/O)
versehene Logikeinrichtung aufweist, mit:
einer programmierbaren Logikeinrichtung (12, 120), die auf
einer Anzahl der Eingänge (14, 140) zugeführte
Eingangssignale reagiert, um mehrere programmierbar definierte
Logiksignale zu erzeugen;
gekennzeichnet durch eine Zählereinrichtung (24, 240), um
eine erste Anzahl der programmierbar definierten
Logiksignale zu empfangen, eine aus der ersten Anzahl von
Logiksignalen abgeleitete Zähladresse zu speichern, und um
daraus basierend auf dieser Zähladresse eine Sequenz von
Adressen-Ausgangssignalen zu erzeugen;
wobei die erste Anzahl (26, 262-266) von Logiksignalen ein
oder mehrere Steuersignale (264, 266) enthält, um die
Zählereinrichtung (24, 240) selektiv anzuweisen, entweder eine
aktuelle Zähladresse beizubehalten oder eine durch die
erste Anzahl (26, 262-266) von Logik-Ausgangssignalen
definierte neue Zähladresse zu laden, wobei das Laden einer
neuen Zähladresse veranlaßt, daß sich jede nachfolgende
Zähladresse aus der geladenen neuen Zähladresse ableitet.
2. Programmierbare Logik-Steuereinrichtung nach Anspruch 1,
dadurch gekennzeichnet, daß die Zählereinrichtung als
Reaktion auf ein Systemtaktsignal (CLK), das der
Zählereinrichtung und weiteren Teilen (200, 162) der Einrichtung
zugeführt wird, eine Sequenz von Adressen-Ausgangssignalen
erzeugt.
3. Programmierbare Logik-Steuereinrichtung nach Anspruch 2,
dadurch gekennzeichnet, daß die Zählereinrichtung als
Reaktion auf die Taktsignale die Adresse selektiv
inkrementiert oder dekrementiert.
4. Programmierbare Logik-Steuereinrichtung nach Anspruch 1, 2
oder 3, dadurch gekennzeichnet, daß die erste Anzahl von
Logiksignalen ein Verzweigungsadressensignal (262) und ein
Ladesteuersignal (264) aufweisen kann, und daß die
Zählereinrichtung (240) ferner auf das Ladesteuersignal
reagiert, um eine durch das Verzweigungsadressensignal
repräsentierte neue Zähladresse zu laden.
5. Programmierbare Logik-Steuereinrichtung nach einem der
Ansprüche 2 bis 4, dadurch gekennzeichnet, daß die
programmierbare Logikeinrichtung (12, 120) aufweist: eine vom
Anwender programmierbare Bedingungstesteinrichtung (122),
um innerhalb eines Zyklus des Taktsignals (CLK) die
Erfüllung einer oder mehrerer vom Anwender definierter, in dem
Eingangssignal (14, 140) enthaltener Bedingungen zu testen,
und eine Signalerzeugungseinrichtung (126,125), um als
Reaktion auf das Bestehen einer oder mehrerer der
Bedingungstests die erste Anzahl von Logiksignalen als
bedingungsanzeigende Signale (262, 266) zu erzeugen.
6. Programmierbare Logik-Steuereinrichtung nach einem der
vorhergehenden Ansprüche, gekennzeichnet durch mehrere
Ausgabeeinrichtungen (160), von denen jede eine zweite
Anzahl der programmierbar definierten Logiksignale
empfängt und an einem betreffenden Ausgang der Einrichtung
ein entsprechendes Einrichtungs-Ausgangssignal erzeugt.
7. Programmierbare Logik-Steuereinrichtung nach Anspruch 6,
gekennzeichnet durch eine weitere Logikeinrichtung
(124, 123), um als Reaktion auf das Bestehen einer oder
mehrerer der Bedingungstests die zweite Anzahl von
Logiksignalen als bedingungsanzeigende Signale (180) zu
erzeugen.
8. Programmierbare Logik-Steuereinrichtung nach Anspruch 6
oder 7, dadurch gekennzeichnet, daß die
Ausgabeeinrichtungen (160) mehrere programmierbare Ausgabezellen (160)
aufweisen.
9. Programmierbare Logik-Steuereinrichtung nach einem der
vorhergehenden Ansprüche, gekennzeichnet durch mehrere
vergrabene Speicherzelleneinrichtungen (200), von denen
jede jeweils eines einer dritten Anzahl der programmierbar
definierten Logiksignale empfängt, diese Signale speichert
und daraus ein Speicherzellen-Ausgangssignal erzeugt.
10. Programmierbare Logik-Steuereinrichtung nach Anspruch 9,
soweit von Anspruch 5 abhängig, dadurch gekennzeichnet,
daß die Signalerzeugungseinrichtung (126, 125) als Reaktion
auf das Bestehen einer oder mehrerer der Bedingungstests
die dritte Anzahl der Logiksignale als weitere
bedingungsanzeigende Signale (220) erzeugt.
11. Programmierbare Logik-Steuereinrichtung nach einem der
vorhergehenden Ansprüche, ferner dadurch gekennzeichnet,
daß die programmierbare Logikeinrichtung (12, 120) auf von
den mehreren Logiksignalen (18, 22, 26) abgeleitete
Feedback-Signale (34, 340) reagiert.
12. Programmierbare Logik-Steuereinrichtung nach einem der
vorhergehenden Ansprüche, dadurch gekennzeichnet, daß eine
vierte Anzahl (180) der Logiksignale an bidirektionale
Eingangs-/Ausgangs-Ports übertragen wird und die
programmierbare Logikeinrichtung (12, 120) ferner auf ein an einem
Eingangs-/Ausgangs-Port (I/O) stehendes Signal reagiert.
13. Programmierbare Logik-Steuereinrichtung nach einem der
vorhergehenden Ansprüche, dadurch gekennzeichnet, daß die
erste Anzahl von Logiksignalen ein Löschsignal (266)
enthält und daß die Zählereinrichtung (240) derart auf das
Löschsignal reagiert, daß der Empfang des Löschsignals die
Zählereinrichtung veranlaßt, die gespeicherte Zähladresse
auf eine vorbestimmte Adresse rückzusetzen.
14. Programmierbare Logik-Steuereinrichtung nach einem der
vorhergehenden Ansprüche, dadurch gekennzeichnet, daß die
Zählereinrichtung (240) ein Gray-Kode-Zähler ist.
15. Programmierbare Logik-Steuereinrichtung nach einem der
vorhergehenden Ansprüche, dadurch gekennzeichnet, daß die
programmierbare Logikeinrichtung (12, 120) ein
programmierbares UND-Array (122) aufweist.
16. Programmierbare Logik-Steuereinrichtung nach einem der
vorhergehenden Ansprüche, dadurch gekennzeichnet, daß die
programmierbare Logikeinrichtung (12, 120) eine
ODER-Einrichtung (124, 126) aufweist.
17. Programmierbare Logik-Steuereinrichtung nach Anspruch 16,
dadurch gekennzeichnet, daß die ODER-Einrichtung
programmierbar ist.
18. Programmierbare Logik-Steuereinrichtung nach Anspruch 16,
dadurch gekennzeichnet, daß die ODER-Einrichtung erste
(124) und zweite (126) programmierbare ODER-Arrays
aufweist.
19. Programmierbare Logik-Steuereinrichtung nach Anspruch 18,
soweit von Anspruch 6 abhängig, dadurch gekennzeichnet,
daß die zweite Anzahl von Logiksignalen von dem ersten
ODER-Array (124) erzeugt wird und die erste und die dritte
Anzahl von Logiksignalen von dem zweiten ODER-Array (126)
erzeugt werden.
20. Programmierbare Logik-Steuereinrichtung nach einem der
vorhergehenden Ansprüche, soweit von Anspruch 6 abhängig,
dadurch gekennzeichnet, daß jede der programmierbaren
Ausgabeeinrichtungen (160) aufweist:
eine auf ein Taktsignal (CLK) reagierende
Registereinrichtung (162) zum Registrieren des jeweiligen Logiksignals
und zum Erzeugen eines registrierten Signals (Q) daraus;
eine Ausgangsfreigabe-Steuereinrichtung (164), die auf ein
vorbestimmtes der mehreren von der Logikeinrichtung (12,
120) erzeugten Logiksignale und den Status einer
programmierbaren Einrichtung (166) reagiert, um daraus selektiv
ein Ausgangsfreigabe-Signal zu erzeugen; und
zum Empfang des registrierten Signals (Q) verbundene
Eingabe-/Ausgabe-Einrichtungen (168, 169), die auf das
Ausgangsfreigabe-Signal reagieren, um daraus selektiv das
jeweilige Zellen-Ausgangssignal an dem betreffenden
Ausgangs-Port (I/O) zu erzeugen.
21. Maschinenimplementiertes Verfahren zum Ausführen eines
Programms entsprechend einem vordefiniertem
Zustands-Maschinen-Design, mit den folgenden Schritten:
(a) innerhalb eines Taktzyklus erfolgendes Testen und
Detektieren (122) der Erfüllung einer oder mehrerer in
einem Satz zugeführter Eingangssignale (140, 340)
enthaltener Bedingungen, wobei die Bedingungen solche
Bedingungen enthalten, die den Übergang von einem
Zustand zu einem anderen in dem Zustands-Maschinen-
Design und/oder das Ausgeben eines vorbestimmten
Ausgangssignals verlangen;
(b) Erzeugen (124, 126) bedingungsanzeigender Signale
(180, 220, 262-266) als Reaktion auf die Erfüllung einer
oder mehrerer der Bedingungen;
wobei das maschinenimplementierte Verfahren gekennzeichnet
ist durch:
(c) Vorsehen eines Adressenzählers (240), der zum Empfang
mindestens einiger der bedingungsanzeigenden Signale
(262-266) geschaltet ist;
(d) Betreiben des Zählers zum Erzeugen einer Sequenz von
Adressensignalen; und
(e) weiteres Betreiben des Zählers zum Abzweigen aus der
Sequenz als Reaktion auf eines oder mehrere der
bedingungsanzeigenden Signale (264, 266).
22. Maschinenimplementiertes Verfahren nach Anspruch 21,
gekennzeichnet durch den zusätzlichen Schritt des
Einbeziehens eines von dem Adressenzähler (240) ausgegebenen
Adressensignals in die von dem Bedingungstest-Schritt
(122) berücksichtigten Eingangssignale (140, 340).
23. Maschinenimplementiertes Verfahren nach einem der
Ansprüche 21 oder 22, gekennzeichnet durch den zusätzlichen
Schritt des Einbeziehens eines oder mehrerer durch den
Erzeugungsschritt (124, 126) erzeugter
bedingungsanzeigender Signale (180, 220) in die der Bedingungstesteinrichtung
(122) zugeführten, von dem Bedingungstest-Schritt (122)
berücksichtigten Eingangssignale (140, 340).
24. Maschinenimplementiertes Verfahren nach einem der
Ansprüche 21 bis 23, ferner gekennzeichnet durch den folgenden
Schritt:
Speichern einer oder mehrerer durch den
Signalerzeugungsschritt (126) erzeugter bedingungsanzeigender Signale
(220) in einem vergrabenen Register (200).
25. Maschinenimplementiertes Verfahren nach Anspruch 24,
ferner gekennzeichnet durch den zusätzlichen Schritt des
Einbeziehens eines oder mehrerer der in dem vergrabenen
Register (200) gespeicherten bedingungsanzeigenden Signale
(220) in die von dem Bedingungstest-Schritt (122)
berücksichtigten Eingangssignale (340).
26. Maschinenimplementiertes Verfahren nach Anspruch 21 oder
22, ferner gekennzeichnet durch den zusätzlichen Schritt
des Einbeziehens eines oder mehrerer der in dem
vergrabenen
Register (200) gespeicherten bedingungsanzeigenden
Signale (220) in die von dem Bedingungstest-Schritt (122)
berücksichtigten Eingangssignale (340).
27. Maschinenimplementiertes Verfahren nach einem der
Ansprüche 21 bis 26, ferner gekennzeichnet durch die folgenden
Schritte:
Speichern einer oder mehrerer der durch den
Signalerzeugungsschritt (124) erzeugten bedingungsanzeigenden Signale
(180) in einer Ausgabe-Makrozelle (160);
Erzeugen (122) eines Ausgangsfreigabe-Signals (164) als
Reaktion auf die Erfüllung einer oder mehrerer der
Bedingungen; und
selektives Ausgeben des in der Ausgabe-Makrozelle (160)
gespeicherten Signals entsprechend dem Ausgangsfreigabe-
Signal (164).
28. Maschinenimplementiertes Verfahren nach Anspruch 27,
ferner gekennzeichnet durch den Schritt des programmierbaren
Änderns der Polarität des Ausgangsfreigabe-Signals (164).
29. Maschinenimplementiertes Verfahren nach einem der
Ansprüche 21 bis 28, ferner gekennzeichnet durch den
zusätzlichen Schritt des gleichzeitigen Durchführens mehrerer
logischer UND-Schritte in dem Bedingungstest-Schritt (122)
und des dadurch erfolgenden Erzeugens mehrerer
Produktterm-Signale, die jeweils die Erfüllung einer durch einen
Produktterm definierbaren Bedingung repräsentieren.
30. Maschinenimplementiertes Verfahren nach einem der
Ansprüche 21 bis 29, ferner gekennzeichnet durch den
zusätzlichen Schritt des gleichzeitigen Durchführens mehrerer
logischer ODER-Schritte in dem Signalerzeugungsschritt
(124, 126) und des dadurch erfolgenden Erzeugens mehrerer
Produktsummen-Signale, die jeweils die Erfüllung einer
durch die Summe einer oder mehrerer Produktterme
definierbaren Bedingung repräsentieren.
31. Maschinenimplementiertes Verfahren nach Anspruch 30,
ferner gekennzeichnet durch den zusätzlichen Schritt des
Verwendens eines nichtprogrammierbaren Arrays logischer
ODER-Einrichtungen zum Durchführen der mehreren logischen
ODER-Schritte.
32. Maschinenimplementiertes Verfahren nach Anspruch 30,
ferner gekennzeichnet durch den zusätzlichen Schritt des
Verwendens eines programmierbaren Arrays logischer ODER-
Einrichtungen zum Durchführen der mehreren logischen ODER-
Schritte.
33. Maschinenimplementiertes Verfahren nach einem der
Ansprüche 21 bis 32, ferner dadurch gekennzeichnet, daß der
Adressenzähler (240) in dem Sequenzerzeugungsschritt als
Gray-Kode-Zähler arbeitet, derart, daß benachbarte
Adressensignale einer vorliegenden Sequenz nur um eine Bit-
Stelle differieren.
34. Maschinenimplementiertes Verfahren nach einem der
Ansprüche 21 bis 33, ferner gekennzeichnet durch den
zusätzlichen Schritt des Ladens des Adressenzählers (240) mit
einer Abzweigungsadresse (262) als Reaktion auf ein durch
den Bedingungsanzeigesignal-Erzeugungsschritt (126)
erzeugtes bedingungsanzeigendes Signal (264).
35. Maschinenimplementiertes Verfahren nach einem der
Ansprüche 21 bis 34, ferner gekennzeichnet durch den
zusätzlichen Schritt des Rücksetzens des Adressenzählers (240)
auf einen vorbestimmten Zustand als Reaktion auf ein durch
den Bedingungsanzeigesignal-Erzeugungsschritt (126)
erzeugtes bedingungsanzeigendes Signal (266).
36. Maschinenimplementiertes Verfahren nach einem der
Ansprüche 21 bis 35, ferner gekennzeichnet durch den
zusätzlichen Schritt des Ladens des Adressenzählers (240) mit
einer durch den Bedingungsanzeigesignal-Erzeugungsschritt
(126) erzeugten Sprung-Adresse (262).
37. Maschinenimplementiertes Verfahren nach einem der
Ansprüche 21 bis 36, ferner gekennzeichnet durch den
zusätzlichen Schritt des Verwendens einer auf einem IC-Chip
definierten Schaltung zum Durchführen der Schritte (a) bis
(e) von Anspruch 21.
38. Maschinenimplementiertes Verfahren nach Anspruch 37,
ferner gekennzeichnet durch den zusätzlichen Schritt des
Hinzufügens eines von einem I/O-Anschluß (320) des IC-
Chips ausgegebenen Eingangssignals (340) in dem
Bedingungstest-Schritt (122), wobei der I/O-Anschluß (320) zur
Verbindung der auf dem IC-Chip definierten Schaltung mit
einer externen Schaltung vorgesehen ist.
39. Maschinenimplementiertes Verfahren nach Anspruch 38,
ferner gekennzeichnet durch die zusätzlichen Schritte des
Vorsehens einer Ausgabe-Makrozelle (160) auf dem IC-Chip
und des Ausgebens eines von der Makrozelle (160) erzeugten
Signals an den I/O-Anschluß (320).
40. Maschinenimplementiertes Verfahren nach einem der
Ansprüche 21 bis 39, ferner gekennzeichnet durch den
zusätzlichen Schritt des Verwendens des Adressen-Ausgangssignals
des Zählers (240) zum Repräsentieren eines Zustandes des
Zustandsübergangs-Designs.
41. Maschinenimplementiertes Verfahren nach einem der
Ansprüche 21 bis 40, ferner gekennzeichnet durch den
zusätzlichen Schritt des Zuführens des Adressen-Ausgangssignals
von dem Zähler (240) zu einer kombinatorischen
Logikschaltung (122), des Zuführens eines bedingungsdefinierenden
Eingangssignals zu der kombinatorischen Logikschaltung
(122), und des Verwendens des Ausgangssignals der
kombinatorischen Logikschaltung (122) zum Repräsentieren eines
Ausgangssignals des Zustandsübergangs-Designs.
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US06/827,840 US4876640A (en) | 1986-02-07 | 1986-02-07 | Logic controller having programmable logic "and" array using a programmable gray-code counter |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| DE3750705D1 DE3750705D1 (de) | 1994-12-08 |
| DE3750705T2 true DE3750705T2 (de) | 1995-05-18 |
Family
ID=25250303
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| DE3750705T Expired - Fee Related DE3750705T2 (de) | 1986-02-07 | 1987-01-30 | Programmierbare, logische Kontrolleinrichtung. |
Country Status (5)
| Country | Link |
|---|---|
| US (1) | US4876640A (de) |
| EP (1) | EP0244925B1 (de) |
| JP (1) | JP2711251B2 (de) |
| AT (1) | ATE113736T1 (de) |
| DE (1) | DE3750705T2 (de) |
Families Citing this family (32)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5015884A (en) * | 1985-03-29 | 1991-05-14 | Advanced Micro Devices, Inc. | Multiple array high performance programmable logic device family |
| US5225719A (en) * | 1985-03-29 | 1993-07-06 | Advanced Micro Devices, Inc. | Family of multiple segmented programmable logic blocks interconnected by a high speed centralized switch matrix |
| US5157595A (en) | 1985-07-19 | 1992-10-20 | El Paso Technologies, Company | Distributed logic control system and method |
| US5168177A (en) * | 1985-12-06 | 1992-12-01 | Advanced Micro Devices, Inc. | Programmable logic device with observability and preloadability for buried state registers |
| ATE83867T1 (de) * | 1986-03-06 | 1993-01-15 | Advanced Micro Devices Inc | Programmierbare logische vorrichtung. |
| US5349670A (en) * | 1986-07-23 | 1994-09-20 | Advanced Micro Devices, Inc. | Integrated circuit programmable sequencing element apparatus |
| US4858178A (en) * | 1986-09-30 | 1989-08-15 | Texas Instruments Incorporated | Programmable sequence generator |
| US5046035A (en) * | 1987-08-26 | 1991-09-03 | Ict International Cmos Tech., Inc. | High-performance user programmable logic device (PLD) |
| DE3804266A1 (de) * | 1988-02-11 | 1989-09-14 | Leitz Wild Gmbh | Gray-code-wandler mit fehlersignal |
| US4987319A (en) * | 1988-09-08 | 1991-01-22 | Kawasaki Steel Corporation | Programmable input/output circuit and programmable logic device |
| US5218707A (en) * | 1988-10-28 | 1993-06-08 | Dallas Semiconductor Corp. | Integrated circuit with remappable interrupt pins |
| JP3063006B2 (ja) * | 1989-02-08 | 2000-07-12 | インテル・コーポレーション | マイクロプログラムされるコンピュータ装置及びマイクロコードシーケンスメモリをアドレツシングする方法 |
| FR2730836B1 (fr) * | 1989-08-23 | 1997-08-14 | Ibm | Sequenceur de commande en temps reel avec logique de matrice d'etat |
| US5122685A (en) * | 1991-03-06 | 1992-06-16 | Quicklogic Corporation | Programmable application specific integrated circuit and logic cell therefor |
| US5416367A (en) * | 1991-03-06 | 1995-05-16 | Quicklogic Corporation | Programmable application specific integrated circuit and logic cell therefor |
| WO1992018944A1 (de) * | 1991-04-17 | 1992-10-29 | Siemens Aktiengesellschaft | Verfahren zur verifikation datenverarbeitender systeme |
| US5369772A (en) * | 1992-05-21 | 1994-11-29 | Compaq Computer Corporation | Method of maximizing data pin usage utilizing post-buffer feedback |
| US5410660A (en) * | 1992-12-24 | 1995-04-25 | Motorola, Inc. | System and method for executing branch on bit set/clear instructions using microprogramming flow |
| US5379442A (en) * | 1993-03-31 | 1995-01-03 | Intel Corporation | Fast primary and feedback path in a programmable logic circuit |
| US5774738A (en) * | 1993-05-03 | 1998-06-30 | Texas Instruments Incorporated | State machines |
| EP0629933A1 (de) * | 1993-06-15 | 1994-12-21 | International Business Machines Corporation | Selbststeuernde Zustandsmaschine |
| JPH0887462A (ja) * | 1994-09-20 | 1996-04-02 | Fujitsu Ltd | ステートマシン及び通信制御方式 |
| EP0713173A1 (de) * | 1994-09-30 | 1996-05-22 | Texas Instruments Incorporated | Datenverarbeitungssystem |
| US6072510A (en) * | 1994-11-23 | 2000-06-06 | Compaq Computer Corporation | Anti-aliasing apparatus and method using pixel subset analysis and center pixel correction including specialized sample window |
| US5898701A (en) * | 1995-12-21 | 1999-04-27 | Cypress Semiconductor Corporation | Method and apparatus for testing a device |
| US5835503A (en) * | 1996-03-28 | 1998-11-10 | Cypress Semiconductor Corp. | Method and apparatus for serially programming a programmable logic device |
| US5815510A (en) * | 1996-03-28 | 1998-09-29 | Cypress Semiconductor Corp. | Serial programming of instruction codes in different numbers of clock cycles |
| US5768288A (en) * | 1996-03-28 | 1998-06-16 | Cypress Semiconductor Corp. | Method and apparatus for programming a programmable logic device having verify logic for comparing verify data read from a memory location with program data |
| US6327508B1 (en) | 1998-12-10 | 2001-12-04 | Advanced Micro Devices, Inc. | Programmable state machine |
| AU2001289045A1 (en) * | 2000-09-08 | 2002-03-22 | Avaz Networks | Hardware function generator support in a dsp |
| US7315936B2 (en) * | 2001-02-14 | 2008-01-01 | University Of North Carolina At Charlotte | Enhanced boolean processor |
| US8966416B2 (en) | 2013-03-07 | 2015-02-24 | Cadence Design Systems, Inc. | Finite-state machine encoding during design synthesis |
Family Cites Families (21)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US3891972A (en) * | 1972-06-09 | 1975-06-24 | Hewlett Packard Co | Synchronous sequential controller for logic outputs |
| US3924243A (en) * | 1974-08-06 | 1975-12-02 | Ibm | Cross-field-partitioning in array logic modules |
| US4075707A (en) * | 1976-05-21 | 1978-02-21 | Xerox Corporation | Programmed device controller |
| JPS5360133A (en) * | 1976-11-10 | 1978-05-30 | Nippon Telegr & Teleph Corp <Ntt> | Programable logic array |
| US4132979A (en) * | 1976-12-15 | 1979-01-02 | Teletype Corporation | Method and apparatus for controlling a programmable logic array |
| US4195352A (en) * | 1977-07-08 | 1980-03-25 | Xerox Corporation | Split programmable logic array |
| US4357678A (en) * | 1979-12-26 | 1982-11-02 | International Business Machines Corporation | Programmable sequential logic array mechanism |
| US4429238A (en) * | 1981-08-14 | 1984-01-31 | Bell Telephone Laboratories, Incorporated | Structured logic array |
| US4556938A (en) * | 1982-02-22 | 1985-12-03 | International Business Machines Corp. | Microcode control mechanism utilizing programmable microcode repeat counter |
| US4509114A (en) * | 1982-02-22 | 1985-04-02 | International Business Machines Corporation | Microword control mechanism utilizing a programmable logic array and a sequence counter |
| JPS58178430A (ja) * | 1982-04-14 | 1983-10-19 | Oki Electric Ind Co Ltd | マイクロプロセツサ |
| US4504904A (en) * | 1982-06-15 | 1985-03-12 | International Business Machines Corporation | Binary logic structure employing programmable logic arrays and useful in microword generation apparatus |
| US4546273A (en) * | 1983-01-11 | 1985-10-08 | Burroughs Corporation | Dynamic re-programmable PLA |
| US4508977A (en) * | 1983-01-11 | 1985-04-02 | Burroughs Corporation | Re-programmable PLA |
| US4562538A (en) * | 1983-05-16 | 1985-12-31 | At&T Bell Laboratories | Microprocessor having decision pointer to process restore position |
| US4684830A (en) * | 1985-03-22 | 1987-08-04 | Monolithic Memories, Inc. | Output circuit for a programmable logic array |
| US4742252A (en) * | 1985-03-29 | 1988-05-03 | Advanced Micro Devices, Inc. | Multiple array customizable logic device |
| US4677318A (en) * | 1985-04-12 | 1987-06-30 | Altera Corporation | Programmable logic storage element for programmable logic devices |
| US4758746A (en) * | 1985-08-12 | 1988-07-19 | Monolithic Memories, Inc. | Programmable logic array with added array of gates and added output routing flexibility |
| JPS6258722A (ja) * | 1985-09-06 | 1987-03-14 | Ricoh Co Ltd | プログラマブル・ロジツク・デバイス |
| US4644192A (en) * | 1985-09-19 | 1987-02-17 | Harris Corporation | Programmable array logic with shared product terms and J-K registered outputs |
-
1986
- 1986-02-07 US US06/827,840 patent/US4876640A/en not_active Expired - Lifetime
-
1987
- 1987-01-30 DE DE3750705T patent/DE3750705T2/de not_active Expired - Fee Related
- 1987-01-30 AT AT87300869T patent/ATE113736T1/de not_active IP Right Cessation
- 1987-01-30 EP EP87300869A patent/EP0244925B1/de not_active Expired - Lifetime
- 1987-02-04 JP JP62025532A patent/JP2711251B2/ja not_active Expired - Lifetime
Also Published As
| Publication number | Publication date |
|---|---|
| EP0244925B1 (de) | 1994-11-02 |
| EP0244925A3 (en) | 1990-03-28 |
| US4876640A (en) | 1989-10-24 |
| EP0244925A2 (de) | 1987-11-11 |
| DE3750705D1 (de) | 1994-12-08 |
| JPS62249226A (ja) | 1987-10-30 |
| ATE113736T1 (de) | 1994-11-15 |
| JP2711251B2 (ja) | 1998-02-10 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| DE3750705T2 (de) | Programmierbare, logische Kontrolleinrichtung. | |
| DE68909452T2 (de) | Integrierte monolithische Schaltung mit einem Prüfbus. | |
| DE69221611T2 (de) | Vorrichtung und verfahren zum multiplexen von pins zur in-system programmierung | |
| DE69226001T2 (de) | Hochgeschwindigkeitsprüfung einer integrierten Schaltung mit JTAG | |
| DE69029390T2 (de) | Programmierbare Schaltung für eine neurale Logik | |
| DE60009856T2 (de) | Umkonfigurierbare integrierte schaltung mit eingebautem fehlersuchsystem für ein simulationssystem | |
| EP0010173B1 (de) | Halbleiterplättchen mit verbesserter Prüfbarkeit der monolithisch hochintegrierten Schaltungen | |
| DE69914864T2 (de) | Steuerung der konfiguration in einer programmierbaren logik-einheit mittels nichtflüchtiger bauelemente | |
| DE69321124T2 (de) | Verfahren zur simulation einer elektronischen schaltung mit verbesserter genauigkeit. | |
| DE69326467T2 (de) | Unterbrechungsfreies, wahlfreies zugriffspeichersystem. | |
| DE68927984T2 (de) | Logikschaltung mit einer Prüffunktion | |
| DE69032342T2 (de) | Mikroprozessor und Verfahren zur Aufstellung seiner Peripheriefunktionen | |
| EP0097725B1 (de) | Einrichtung im Befehlswerk eines mikroprogrammgesteuerten Prozessors zur direkten hardwaregesteuerten Ausführung bestimmter Instruktionen | |
| DE69024138T2 (de) | Verfahren und Einrichtung zur Erzeugung von Steuersignalen | |
| DE3851514T2 (de) | Verfahren und Vorrichtung zur überprüfung der Zustände einer Maschine. | |
| DE19639629C2 (de) | Programmierbare, monolithische, integrierte Logikschaltung und Verfahren zum Implementieren derselben | |
| DE69031398T2 (de) | Schaltung einer programmierbaren logischen Anordnung | |
| DE69225527T2 (de) | Verfahren und System zur automatischen Bestimmung der logischen Funktion einer Schaltung | |
| DE69107476T2 (de) | Vorrichtung für eine in-circuit-prüfung mit einem minimalspeicher. | |
| DE69628034T2 (de) | Hochimpedanzmodus für jtag | |
| EP0010194A1 (de) | Wartungsschnittstelleneinrichtung für eine datenverarbeitende Anlage mit einer zentralen Verarbeitungseinheit und mit einem Dienstprozessor und Verfahren zu ihrem Betrieb | |
| DE19510902A1 (de) | Emulation eines Mehrtor-Speichers unter Verwendung von Markierregistern | |
| DE3508640A1 (de) | Computersystem zur implementierung eines ereignisgesteuerten simulationsalgorithmus | |
| DE68921227T2 (de) | Selbstprüfung von Informationsprozessoren. | |
| DE60306164T2 (de) | Verfahren und kontrolllogik zum ansteuern von mehreren taps (test access ports) über einen einzigen tap |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 8364 | No opposition during term of opposition | ||
| 8327 | Change in the person/name/address of the patent owner |
Owner name: VANTIS CORP.)N.D.GES.D.STAATES DELAWARE), SUNNYVAL |
|
| 8339 | Ceased/non-payment of the annual fee |