DE3783151T2 - Programmierbare logische vorrichtung. - Google Patents
Programmierbare logische vorrichtung.Info
- Publication number
- DE3783151T2 DE3783151T2 DE8787301800T DE3783151T DE3783151T2 DE 3783151 T2 DE3783151 T2 DE 3783151T2 DE 8787301800 T DE8787301800 T DE 8787301800T DE 3783151 T DE3783151 T DE 3783151T DE 3783151 T2 DE3783151 T2 DE 3783151T2
- Authority
- DE
- Germany
- Prior art keywords
- signals
- logic
- signal
- array
- stack
- 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
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Automation & Control Theory (AREA)
- Logic Circuits (AREA)
Description
- Die Erfindung betrifft programmierbare Logikeinrichtungen und vorzugsweise Einrichtungen, die zur Verwendung bei Steuerungen, beispielsweise bei Folgesteuerungseinheiten, geeignet sind und leicht programmierbare Hochpegel-Logikelemente wie etwa eine Last-in-first-out- Stapeleinrichtung, und einen RAM-Speicher aufweist.
- Es wird verwiesen auf unsere mitanhängige Europäische Patentschrift EP-A2-0 244 925 (Artikel 54(3)).
- Derzeit finden programmierbare Array-Logik-Einrichtungen (PAL) und programmierbare Logik-Array-Einrichtungen (PLA) Anwendung zur Steuerung digitaler Schaltungen, etwa von "Zustands-Maschinen" oder Folgesteuerungseinheiten, die Flexibilität und leichte Verwendbarkeit erfordern. Obwohl derartige PAL/PLA-Einrichtungen schnell und flexibel arbeiten, sind sie schwierig zu programmieren, da sie zu diesem Zweck das Schreiben komplexer Boolescher Ausdrücke erfordern. Die Verwendung Boolescher Gleichungen zur Konzipierung der Folgesteuerungseinheit begrenzt die Anzahl der dem Designer zur Verfügung stehenden Variablen typischerweise auf acht bis sechszehn, und zwar wegen der mathematischen Schwierigkeiten beim Spezifizieren und Vereinfachen von Gleichungen, die mehr als acht Variablen aufweisen. Ferner erfordern derartige Folgesteuerungseinheiten zusätzliche externe Schaltungen zur Schaffung von Flexibilität sowie zusätzliche bedingte Testschaltungen.
- Besondere Schwierigkeiten bereitet das Programmieren und Verstehen einer generellen PAL- oder PLA-Einrichtung, die zum Durchführen von Logik-Funktionen mit höherem Pegel verwendet wird, wie etwa Zählen, Zustands-Folgesteuerung, Abzweigen oder Mehrfachfall- Testen. In derartigen Einrichtungen sind keine Logik- Blöcke mit höherem Pegel, etwa Programmzähler, Last-infirst-out(LIFO)-Stapeleinrichtungen oder Speicher verfügbar, die leicht programmierbar oder leicht verständlich sind. Subroutinen sind ein sehr wünschenswertes Hochpegel-Sprachkonstrukt, wie dem Fachmann auf dem Gebiet ersichtlich ist, und das Vorsehen einer Stapeleinrichtung bietet in einem Steuerungs- oder Folgesteuerungsprogramm eine leichte Subroutine-Durchführbarkeit. Das Weglassen einer Stapeleinrichtung in den auf PAL/PLA basierenden Einrichtungen ist nicht förderlich für die Hochpegel-Sprachkonstrukte GOSUB und RE- TURN. Die Abwesenheit dieser Hochpegelelemente macht es sehr schwierig, Folgesteuerungseinheiten und Zustandsmaschinen mit auf Hochpegel-Sprache basierenden Zustandsmaschinenkonstrukten mit PALs und PLAs zu versehen. Zudem bewirkt das Fehlen dieser Hochpegelelemente, daß die aktuelle Architektur von PAL/PLA-Einrichtungen nicht optimal für Steuer-Logik-Anwendungen ist.
- Während zum Reduzieren von Programmieraufwand und zum Erleichtern der Verständlichkeit einige Hochpegelsprachen(HLL)-Programmierschemata verfügbar sein mögen, existiert keine direkte Beziehung zwischen derartigen HLL-Konstrukten und der zugrundegelegten Hardware. Per se ist keine Methodologie verfügbar, die eine leichte Konzeption der Folgesteuerungseinheit ermöglicht, da innerhalb der auf PAL oder PLA basierenden Folgesteuerungseinheiten keine Hochpegelkonstrukte verfügbar sind, die den für die Designer höchst nützlichen Hochpegel-Sprach-Konstrukten entsprechen. Derzeit müssen komplexe, detaillierte und fehlerträchtige Boolesche Gleichungen geschrieben werden, um die Konzeption von auf PAL oder PLA basierenden Folgesteuerungseinheiten zu ermöglichen, und derartige Gleichungen weisen keine Eins-zu-eins-Entsprechung zu den zugrundegelegten Schaltungselementen der auf PAL oder PLA basierenden Folgesteuerungseinheit auf. Aus all diesen Gründen sind PAL/PLA-Einrichtungen nicht geeignet zur Anwendung bei großen, komplexen Steuerungen.
- Üblicherweise werden zur Anwendung bei derartigen Steuerungen mikrokodierte Folgesteuerungseinheiten verwendet, welche auf einem programmierbaren Nurlesespeicher (PROM) basieren. Diese Mikro-Folgesteuerungseinheiten haben jedoch viele Nachteile. Insbesondere bieten auf PROM basierende Mikro-Folgesteuerungseinheiten keine adäquaten Hochpegelelemente zur Zustandsmaschinen/Folgesteuerungseinheiten-Konzeption, und ihre Architektur steht nicht in Beziehung zu den für höheren Pegel vorgesehenen Konstrukten, die von Designern bevorzugt verwendet werden.
- Ein solches Hochpegelelement, ein programmierbarer Zähler, der im Stand der Technik im Zusammenhang mit auf PROM basierenden Mikro-Folgesteuerungseinheiten nicht verfügbar ist, ist Gegenstand der hierauf bezogenen mitanhängigen Anmeldung. Der Zähler liefert dem Designer Hochpegel-Steuerungs-Folgesteuerungs-Konstrukte wie "Mehrwege"-Abzweigung, flexibles konditionales Testen und Abzweigen, Erzeugung von eingabeabhängigen Ausgangssignalen, und benutzeranpaßbare Instruktionsdekodierung. Die resultierende Einrichtung, die als "programmierbarer Logik-Steuerer" (PLC) bezeichnet wird, versieht eine Anzahl von Hochpegel-Sprach-Konstrukten mit einer Architektur, die eine starke Eins-zu eins-Entsprechung zu den Konstrukten aufweist. Sie vermeidet die komplexe Architektur von auf PROM basierenden Folgesteuerungseinheiten, welche Elemente wie einen Testmultiplexer, einen Programmzählermultiplexer und ein Instruktionsdekodierungs-PLA aufweisen. Diese Elemente verlangsamen zudem die Ausführungszeit des Steuerungs- oder Folgesteuerungsprogramms und machen die Konzeption und das Verständnis des Programms schwierig.
- Ein weiteres Hochpegelelement, das in auf PROM basierenden Mikro-Folgesteuerungseinheiten nicht verfügbar ist, ist ein Direktzugriffsspeicher (RAM). Die Speicherung von Daten in einer Steuerungs-Folgesteuerungseinheit, insbesondere von Daten, die zu bestimmten Intervallen extern aufdatiert werden sollen, zieht vergrößerte Speicherpositionen nach sich. Herkömmlicherweise machte dies die Verwendung größerer programmierbarer UND- oder ODER-Gatter erforderlich, als für die Steuerfunktion unbedingt benötigt werden. Herkömmlichweise resultierte dies aus der Verwendung vergrabener Register für eine solche Datenspeicherung. Eine Vermehrung der Anzahl dieser Speicherstellen für zu einem sehr starken (exponentialen) Ansteigen der Array-Größe. Dieses große Array wiederum bewirkt, daß die Folgesteuerungseinheit langsamer arbeitet, und vergrößert die Kosten im Vergleich zu dem Gewinn an Speicherung unverhältnismäßig. Ferner wird eine derartige Speicherungsfunktionalität nicht durch eine Hochpegel-Sprache, die beispielsweise als READ oder WRITE aufgebaut ist, unterstützt, sondern muß durch das Schreiben umständlicher Boolescher Ausdrücke erzielt werden.
- In einer programmierbaren Logik-Steuereinrichtung (PLC), wie sie in unserer Europäischen Patentschrift EP-A2-0 244 925 beschrieben wird, bilden ein Satz von Ausgangsregistern zusammen mit einem Zähler und ein Satz von vergrabenen Allzweck-Registern das Pipeline- Register von auf PROM basierenden Mikro-Folgesteuerungseinheiten. Der Zähler in einem PLC-Konzept bietet die Funktionalität eines Programmzählers im Mikro-Folgesteuerungseinheits-Konzept. Er bietet ferner das Sprungadressenfeld des Pipeline-Registers. Zudem führt in einer PLC-Einrichtung ein programmierbares UND-Array die Adressierfunktionen der Mikro-Folgesteuerungseinheiten aus, wohingegen auf PROM basierende Mikro-Folgesteuerungseinheiten fixierte UND-Arrays aufweisen.
- Folglich schafft die Erfindung eine programmierbare Logikeinrichtung mit:
- einer programmierbaren Array-Einrichtung, die derart ausgelegt ist, daß sie auf an Array-Eingänge angelegte Eingangssignale hin mehrere Logiksignale erzeugt;
- einer Ausgangseinrichtung, die derart geschaltet ist, daß sie eine erste Anzahl der Logiksignale empfängt und daraus eine Anzahl von Einrichtungs-Ausgangssignalen an einer zugehörigen Anzahl von Eingangs-/Ausgangs-Ports der Einrichtung erzeugt;
- einem Statusregister, das derart geschaltet ist, daß es eine zweite Anzahl der Logiksignale empfängt, und das derart ausgelegt ist, daß es daraus abgeleitete Daten speichert und ein Statuswortdatenausgangssignal erzeugt;
- und die gekennzeichnet ist durch
- eine Stapeleinrichtung, die derart geschaltet ist, daß sie auf eine dritte Anzahl der Logiksignale als Steuersignale reagiert, und die derart ausgelegt ist, daß sie von dem Statusregister übermittelte Statusworte auf First-in-last-out-Basis speichert, und daß sie den zuletzt eingegebenen Inhalt des Stapels wegnimmt und daraus an einem Statuswortausgang der Stapeleinrichtung ein das letzte gespeicherte Statuswort beinhaltendes Stapelausgangssignal erzeugt.
- Die Stapeleinrichtung schafft eine sehr zweckmäßige und flexible Steuerstruktur für eine Zustandsmaschine. Es kann eine Einrichtung vorgesehen sein, die dem UND- Array die Stapelzustandsinformation zuführt. Beispielsweise können die Indikatoren STACK EMPTY und STACK FULL dem programmierbaren UND-Array rückübermittelt werden. Dies erlaubt die Verwendung komplexer Steuerstrukturen wie beispielsweise rekursiver Subroutinen. In der die Stapeleinrichtung aufweisenden PLC-Einrichtung wird eine verbesserte Flexibilität der Steuerungsstruktur erzielt. Die Stapeleinrichtung kann in sehr effizienter Weise Subroutinenaufrufe verwenden und Abzweigungen durchführen. Die Stapelverwendung basiert auf Adresszeigern. Die Zeiger adressieren stets die letzte Eingangsstelle. Ferner kehrt der Zeiger um, wenn die Anzahl der PUSH oder POPs die Anzahl der Stapelstellen überschreitet. Zudem ist ein Signal vorgesehen, um diesen Zeiger auf Null rückzusetzen. Dieses Signal wird ferner durch das ODER-Array gesteuert und meistens während der Initialisierung des Systems verwendet.
- Eine weitere Ausführungsform der Erfindung enthält einen Direktzugriffsspeicher (RAM), der mit einer auf PAL oder PLA basierenden programmierbaren Logik-Einrichtung kombiniert ist. Das RAM ist sehr nützlich zur Informationsspeicherung. Es bietet eine sehr leicht betreibbare Einrichtung zur Speicherung von Steuerinformation, die extern aktualisierbar ist, typischerweise durch eine externe zentrale Verarbeitungseinheit (CPU). Die Arbeitsweise der Einrichtung kann von dieser Steuerinformation abhängig gemacht werden. Ferner kann der Benutzer mittels Software auf einfache Weise ein Benutzer-Interface programmieren, um diese Information von der externen Quelle zu aktualisieren.
- Das Vorsehen des RAM bietet anders als die sogenannten "vergrabenen Register" zusätzliche Speicherleistung von externen Daten. Wie in der Systemkonzeption typisch ist, liefert die externe CPU periodisch Information an die Steuereinrichtung. Beispiele dieser Funktion sind DMA-Steuerer, Unterbrechungssteuerer und Videosteuerer. Das RAM kann diese Funktionalität sehr effizient handhaben. Die Arbeitsweise der Steuereinrichtung kann in Abhängigkeit von dieser Steuerinformation modifiziert werden. Ferner kann der Benutzer mittels Software das Benutzer-Interface definieren, um diese Information von jeglicher Art von externer Quelle zu erhalten. Eine solche Fähigkeit existiert nicht in den Einrichtungen, die auf PAL, PLA oder PROM basieren.
- Das RAM bietet ferner eine Notizblockspeicherfunktion. Unter der Steuerung durch das ODER-Array kann ein Einschreiben oder Auslesen aus jedem Adressplatz erfolgen. Diese Plätze können als separate unabhängige Zähl- und Zeitsteuerungskanäle verwendet werden. Auch diese Funktion existiert nicht in herkömmlichen Folgesteuerungseinheiten. Diese unabhängigen, programmierbaren Zähl- und Zeitsteuerungskanäle können für eine Vielzahl von Systemsteuerungsfunktionen verwendet werden, etwa für einen Auffrisch-Zeitgeber für den Speichersteuerer.
- Diese Funktion existiert nicht in herkömmlichen Folgesteuerungseinheiten.
- Bei der Einrichtung nach der Erfindung sind Funktionen möglich, die bei derzeitigen auf PROM basierenden Mikro-Folgesteuerungseinheiten nicht existieren, beispielsweise eine flexiblere und einfachere Steuerung des RAM, womit neue Anwendungsbereiche eröffnet werden. Diese Funktion kann für PALs und PLAs durch Boolesche Gleichungen und im Falle von PLCs durch Software leicht gesteuert werden.
- Bei einer weiteren Ausführungsform der Erfindung ist das RAM in einem PLC der hiermit zusammenhängenden, mitanhängigen Erfindung vorgesehen. Alternative bevorzugte Ausführungsformen beinhalten die Stapeleinrichtung und das RAM, das für eine Folgesteuerungseinheit auf PAL- oder PLA-Basis oder für ein PLC vorgesehen ist.
- In einer repräsentativen Ausführungsform einer programmierbaren Logik-Einrichtung der Erfindung ist eine kombinatorische Logik-Schaltung vorgesehen, die ein programmierbares UND-Array und ein Paar von programmierbaren ODER-Arrays aufweist. Ein erstes ODER-Array erzeugt Logik-Signale, die an einen Satz von Ausgangs- Makrozellen und einen Direktzugriffsspeicher (RAM) übermittelt werden, der mit einem Satz von Eingangs/ Ausgangs-Stiften angeschlossen ist. Ein zweites ODER- Gatter erzeugt Logik-Signale, die einem Satz von "vergrabenen" internen Registern, einem Zähler und einer Last-in-first-out(LIFO)-Stapeleinrichtung zugeführt werden. Das zweite ODER-Array bietet eine Hochpegel- Logiksteuerungs-Folgesteuerungsfunktion. Die von bestimmten der Ausgangs-Makrozellen sowie von den internen Registern, dem RAM und dem Zähler erzeugten Signale werden über dazu vorgesehene interne Feedback-Wege zu dem UND-Array rückgeführt.
- Das AND-Array der programmierbaren Logik-Einrichtung der Erfindung kann in Verbindung mit dem programmierbaren ODER-Array derart programmiert werden, daß die erforderlichen Steuersignale erzeugt werden. Ferner ist die Anzahl der von einem einzigen Produkt abhängigen ODER-Ausdrücke ziemlich kritisch. Für eine gesteigerte Geschwindigkeit ist es wichtig, die Abmessungen des ODER-Arrays so zu reduzieren, daß die Verzögerung des zweiten Gatters so weit wie möglich beseitigt wird. Bei einer Logik-Einrichtung nach der Erfindung werden zwei ODER-Arrays verwendet, von denen jedes eine ihm zugeteilte Funktion erfüllt, und zwar entweder die Ausgangssignal-Erzeugung oder die Folgesteuerungseinheit- Steuerung, wodurch die Abmessungen jedes ODER-Arrays reduziert werden.
- Nach einer weiteren alternativen Ausführungsform wird bei einer schnelleren Einrichtung eine kombinatorische Logik-Schaltung verwendet, die ein programmierbares UND-Array und festgelegte ODER-Arrays aufweist.
- Fig. 1 zeigt ein Blockschaltbild einer Ausführungsform einer programmierbaren Logik-Einrichtung nach der Erfindung, wobei ein programmierbarer Logik-Steuerer (PLC) eine LASt-in-first-out-Stapeleinrichtung und einen Direktzugriffsspeicher aufweist.
- Fig. 2 zeigt ein Blockschaltbild der in einer programmierbaren Logik-Einrichtung nach der Erfindung verwendeten Stapeleinrichtung.
- Fig. 1 zeigt die programmierbare Logik-Steuereinrichtung (PLC) 100, die einen Direktzugriffsspeicher (RAM) 110 und einen Subroutinen-Speicher 130 als Hochpegel- Schaltungselemente aufweist, und zwar zusätzlich zu einem programmierbaren Zähler 240. Eine Beschreibung der die in Fig. 1 gezeigte PLC 100 bildenden Elemente außer dem RAM 110 und der Stapeleinrichtung 130 ist in der hiermit zusammenhängenden mitanhängigen Anmeldung "Flexible Programmable Logic Controller" enthalten, wobei diese Beschreibung durch Verweis hierin eingeschlossen ist. Zum besseren Verständnis weisen in der Beschreibung die somit eingeschlossenen ähnlichen Elemente, auf die verwiesen wird, gleiche Bezugszeichen auf wie die Elemente in der vorliegenden Anmeldung.
- Auf die Beschreibung der in Fig. 1 gezeigten bevorzugten Ausführungsform folgen die Beschreibungen alternativer Ausführungsformen mit auf PAL oder PLA basierenden Einrichtungen, bei denen das RAM 110 und/oder die Stapeleinrichtung 130 verwendet werden.
- Kurz gesagt weist die PLC 100 eine sicherungsprogrammierbare kombinatorische Logik-Schaltung 120 auf, die von einer externen Quelle Eingangssignale empfängt, die über einen Satz von zehn Signalleitungen 140 zugeführt werden. In den Figuren sind mehrere Signalleitungen summiert mit einem nebenstehenden Zahlenzeichen markiert, womit angezeigt ist, daß eine Anzahl von Signalen parallel auf den Leitungen geführt ist, obwohl lediglich eine einzige Leitung gezeigt ist, wobei das Zahlenzeichen die Zahl der parallelen Signale spezifiziert. Folglich weist die Leitung 140 das Zahlenzeichen "10" an einer Summierungs-Schnittlinie 140 auf. Die programmierbare kombinatorische Logik-Schaltung 120 kann aus programmierbaren UND- und ODER-Arrays gebildet sein, wie im folgenden detailliert erläutert wird.
- Ein Satz von vierundzwanzig Ausgangs-Makrozellen 160, von denen jede ein Ausgangsregister 162 aufweist, empfängt über Signalleitungen 180 von der Schaltung 120 erzeugte Signale, wie es ein Satz von vergrabenen Registern 200 über Signalleitungen 220 macht. Die Register können beispielsweise herkömmliche Flip-flop-Einrichtungen sein.
- Ferner empfängt ein programmierbarer Zähler 240 über Signalleitungen 262, 264 und 266 Signale, die von einer Schaltung 120 erzeugt werden. Diese Signale repräsentieren die Ladeadressen- und die Zählsteuerinformation. Signale, die den Inhalt der vergrabenen Register 200 und des Programmzählers 240 repräsentieren, werden über Signalleitungen 280 zu der programmierbaren kombinatorischen Schaltung 120 zurückgeführt, wo sie ein zweites Eingangssignal in die Schaltung 120 bilden.
- Signale, die den Inhalt der Ausgangs-Makrozellen 160 repräsentieren, werden über Signalleitungen 300 zu Eingangs/Ausgangs(I/O)-Stiften 320 geleitet sowie über Signalleitungen 340 zu der kombinatorischen Schaltung 120 rückgeführt, wo sie ein drittes Eingangssignal in die Schaltung 120 bilden. Der Zähler 240 ist vorzugsweise ein Gray-Code-Zähler. Da der Inhalt eines solchen Zählers lediglich an einer Bit-Stelle verändert wird, sind Zustands-Übergänge keinen Instabilitäten unterzogen, die Übergangsfehler in den an den I/O-Stiften 320 erzeugten Signalen erzeugen können. Zudem bewirkt dies eine gesteigerte Optimierung der Booleschen Konzept-Gleichungen, da Produkt-Ausdrücke angrenzender Zustände Unterschiede von lediglich einem Bit involvieren, wie dem Fachmann geläufig ist.
- Kurz gesagt werden Datensignale und dynamische Steuersignale, die von der kombinatorischen Logik-Schaltung 120 erzeugt werden, jeder der Ausgangs-Makrozellen 160 zugeführt, und die Makrozelle erzeugt daraus ein Signal, das aus dem Inhalt eines Registers innerhalb der Makrozelle 160 gewählt werden kann, oder das von der Schaltung 120 her empfangene kombinatorische Datensignal, und bewirkt, daß dieses Signal entweder in einer aktiven HIGH oder einer aktiven LOW-Polarität dem I/O- Stift 320 zur Ausgabe und Rückkopplung an die Schaltung 120 zugeführt wird, oder die Makrozelle kann bewirken, daß ein an den I/O-Stift 320 angelegtes Signal über die Signalleitung 340 an die Logik-Schaltung 120 übermittelt wird. Jedes vergrabene Register 200 empfängt ferner Daten- und dynamische Steuersignale von der Logik- Schaltung 120; es wird ihm jedoch kein I/O-Stift zugeteilt, an dem der Inhalt des Registers erzeugt werden kann, jedoch wird ein den Inhalt des Registers repräsentierendes Signal über den Feedback-Weg 280 an die Logik-Schaltung 120 rückgeführt, wo es zur "Zustands"- Bestimmung verwendet werden kann.
- Der Inhalt des Programm-Zählers 240 wird in ähnlicher Weise zu der Logik-Schaltung 120 rückgeführt, um bei der "Zustands"-Bestimmung verwendet zu werden, und, da die externen Eingangssignale auch für die Logik-Schaltung 120 verfügbar sind, wird der Einsatz sowohl einer "Mealy"-Zustands-Maschine, bei der die Bestimmung des nächsten Zustandes auf dem aktuellen Zustand und den Eingangssignalen basiert, als auch einer "Moore"-Zustands-Maschine, die lediglich auf dem aktuellen Zustand basiert, von der PLC 100 der Erfindung komplikationslos erzielt. Der Zähler 240 kann auch Sequenzsteuerungsfunktionen durchführen und wird über die programmierbare Logik-Schaltung 120 leicht gesteuert. Der Zähler 240 empfängt ferner ein von der Schaltung 120 erzeugtes LOAD CONTROL-Signal und einen Satz von LOAD ADDRESS-Signalen, die bei Anlegen des LOAD CON- TROL-Signals das Einstellen des Inhaltes des Zählers 240 auf einen programmierbaren "Zustand" erlauben. Das auf diese Weise erfolgende Laden des Zählers schafft eine "Zustandsabzweige"-Funktion der PLC 100. Alternativ kann durch permanentes Einstellen des LOAD CONTROL- Signals auf HIGH der Zähler 240 als ein Extra-Satz von vergrabenen Registern funktionieren. Der Zähler 240 empfängt ferner ein Signal COUNTER CLEAR (CLR) von der Logik-Schaltung 120, das, wenn es geltend gemacht wird, den Zähler auf einen vorbestimmten "Start"-Zustand, beispielsweise "00"Hex, rücksetzt.
- Die PLC 100 enthält ein RAM 110, das zur Datenspeicherung verwendet wird. Das RAM 110 erhält das Zeitgebungssignal CLK, das von den Registern 162 und 200 und dem Zähler 240 empfangen wird. Ein Adress-Signal, das von einem der kombinatorischen Schaltung 120 zugehörigen Bereich mit dem ODER-Ausgangssignalerzeugungs-Array 124 erzeugt wird, wird über eine Signalleitung 112 dem RAM 110 zugeführt. Bei der bevorzugten Ausführungsform weist das RAM 110 acht Speicherplätze auf, und folglich werden die Adress-Signale zeitlich gemultiplext auf der Leitung 112 geführt, oder alternativ könnte ein Satz von drei Signalleitungen verwendet werden, um binär kodierte Adress-Signale parallel zu führen. Ein von dem ODER-Array 124 erzeugtes Schreibfreigabesignal wird dem RAM 110 über eine Signalleitung 114 zugeführt, und ein Satz von acht Datensignalleitungen 116 leitet von dem ODER-Array 124 erzeugte Daten zu dem RAM 110 zur Speicherung darin. Das Anlegen des Schreibfreigabesignals bewirkt, daß die über die Signalleitungen 116 zugeführten Daten in dem RAM-Platz gespeichert werden, der durch die über die Signalleitung 112 empfangen Adress- Signale bestimmt ist, und zwar bei Empfang des nächsten Taktsignals.
- Ein Satz von acht Datensignalleitungen 118 leitet bei Empfang des nächsten Taktsignals die Daten, die in dem RAM 110 an der durch die Adress-Signale auf der Leitung 112 bestimmten Stelle gespeichert sind, über den Feedback-Weg 340 zu einem der kombinatorischen Schaltung 120 zugehörigen Bereich mit dem programmierbaren UND- Array. Wenn keine RAM-Adresse bestimmt ist, wird eine Vorgabe-Adresse ZERO verwendet, um Daten von dem RAM 110 zu speichern oder wiederaufzufinden.
- Die Daten, die in dem RAM 110 gespeichert sind, das, wie noch zu erläutern ist, von Software gesteuert wird, können eine interne Konstante oder einen variablen Wert, oder dem UND-Array 122 über Eingangsleitungen 1340 zugeführte Daten umfassen. Eine typische Anwendungsform des RAM 110 besteht in einem "Notizblock", der separate programmierbare Zähl- und Zeitgebungskanäle erlaubt, wie es für einen Auffrisch-Zeitgeber für einen Speichersteuerer erforderlich ist.
- Die PLC 100 weist ferner eine Last-in-first-out-Stapeleinrichtung 130 auf, die dem PLC 100 eine Subroutine- Fähigkeit verleiht. Die Stapeleinrichtung 130 erhält das von dem RAM 110, den Registern 162 und 200 und dem Zähler 240 empfangene Zeitgebungssignal CLK und, auf der Signalleitung 266, das von dem Zähler 240 empfangene CLR-Signal. Ein PUSH-Signal und ein POP-Signal, die von einem der kombinatorischen Schaltung 120 zugehörigen Bereich mit dem Steuerungs-Folgesteuerungs-ODER- Array 126 erzeugt wird, wird über Signalleitungen 132 bzw. 134 der Stapeleinrichtung 130 zugeführt. Der Zähler 240 empfängt über Signalleitungen 136 einen Satz von LOAD STATE-Signalen, und zwar zusätzlich zu den über Signalleitungen 262 von dem ODER-Array 126 empfangenen LOAD ADDRESS-Signalen. Signale, die den Inhalt des Zählers 240 repräsentieren, werden über Signalleitungen 138 an der Stapeleinrichtung 130 zugeführt.
- Im folgenden wird im Zusammenhang mit Fig. 2 eine Ausführungsform der Stapeleinrichtung 130 erläutert, die innerhalb der unterbrochenen Linie gezeigt ist. Ein Direktzugriffsspeicher (RAM) 131, der acht adressierbare Speicherplätze aufweist, von denen jeder zum Speichern eines 10-Bit-Wortes imstande ist, empfängt von dem Zähler 240 über Leitungen 138 das Datenwort. Ein Zähler (CTR) 133 innerhalb der Stapeleinrichtung 130 empfängt von dem ODER-Array 126 über die Leitungen 132 und 134 die PUSH- und POP-Signale. Der Zähler 133 ist vorzugsweise ein Modulo-8-Ring-Zähler und inkrementiert bei Empfang eines PUSH-Signals seinen Inhalt um eins (Modulo 8), und dekrementiert bei Empfang eines POP- Signals seinen Inhalt um eins (Modulo 8), und zwar typischerweise synchronisiert um das CLK-Signal, das der Zähler 133 empfängt. Der Zähler 133 empfängt ferner das von dem ODER-Array 126 erzeugte CLR-Signal, und der Empfang dieses Signals bewirkt typischerweise das Rücksetzen des Inhaltes des Zählers auf ZERO.
- Der Zähler 133 erzeugt auf den Signalleitungen 135 einen Satz von drei Zählwertsignalen, die binär kodiert den aktuellen Wert repräsentieren, auf den in der Stapeleinrichtung 130 "gezeigt" wird. Diese Zählwertsignale werden einem Adressport des RAM 131 zugeführt und schaffen den Platz innerhalb des RAM 131, in den Daten eingeschrieben werden, wie sie an den Leitungen 138 anliegen, oder aus dem Daten gelesen werden. In ersteren Fall wird das von dem ODER-Array 126 erzeugte PUSH- Signal an einem Schreibfreigabe(W)-Anschluß des RAM 131 empfangen, damit das RAM 131 zum Schreiben freigegeben werden kann.
- Von dem RAM 131 ausgelesene Daten werden über Signalleitungen einen Satz von zehn Freigabe/Sperr-Puffern 137 zugeführt, die ihrerseits mit dem Satz von Signalleitungen 26 verbunden sind, die die LOAD ADDRESS-Signale führen. Die Puffer 137 und ein Dreizustands-Puffer 139 empfangen das von dem ODER-Array 126 erzeugte POP-Signal an einem Wahr- bzw. an einem Komplementär- Freigabeanschluß. Die Dreizustands-Puffer 139 sind auf den Signalleitungen 262 vor ihrer Verbindung mit den Puffern 137 angeordnet.
- Obwohl dies aus Gründen der Übersicht in Fig. 1 nicht gezeigt ist, kann der in der Stapeleinrichtung 130 verwendete Zähler 133 ein STACK FULL- und ein STACK EMPTY-Signal erzeugen, das den Inhalt des Zählers 133 angibt, der sieben oder null beträgt.
- Generell gleicht die Arbeitsweise der Stapeleinrichtung 130 derjenigen der Last-in-first-out(FIFO)-Stapeleinrichtung und ist dem Fachmann ersichtlich. Kurz gesagt bewirkt der Empfang des PUSH-Signals auf der Leitung 132, daß der Inhalt des Zählers 240, der den aktuellen "Zustand" repräsentiert, über Signalleitungen 138 an die Stapeleinrichtung übermittelt wird. Dann wird der derzeitige Zustand an der aktuellen Position gespeichert, die durch den Stapel-"Zeiger" an dem Stapel 130 gezeigt ist; wobei mit dem auf dem Gebiet verwendeten Ausdruck von einem "Pushen" auf den Stapel die Rede ist. Dann wird der Wert des Stapel-Zeigers aktualisiert, um das Pushen dieses aktuellen Zustandes auf den Stapel 130 zu reflektieren. Eine konverse "POP"-Operation wird durch Empfang eines POP-Signals auf der Leitung 134 durchgeführt, das bewirkt, daß der Inhalt des Stapels 130, der sich an der durch den aktuellen Wert des Stapelzeigers repräsentierten Position befindet, über Signalleitungen 136 an den Zähler 240 übermittelt wird. Der derart entnommene Zustands-Wert ersetzt den Inhalt des Zählers 240. Die Push- und Pop-Operationen werden durch das von dem Zähler 240 und der Stapeleinrichtung 130 empfangene Taktsignal synchronisiert.
- Bei einer bevorzugten Ausführungsform wird für die Stapeleinrichtung 130 ein in Fig. 2 nicht gezeigter Inkrementierer verwendet, der vor der Speicherung in der Stapeleinrichtung, d. h. wenn das PUSH-Signal auf der Signalleitung 132 erscheint, jeden von dem Zähler 240 erhaltenen Zustandszählwert um eins inkrementiert. Wenn das POP-Signal auf die Signalleitung 134 angelegt wird, wird der zuletzt auf der Stapeleinrichtung 130 gespeicherte Wert, d. h. der Zustandszählwert plus eins, dem Zähler 240 übermittelt.
- Die in der Stapeleinrichtung 130 enthaltenen Puffer 137 und die Dreizustandspuffer 139 empfangen das POP-Signal, und der Zähler 240 gelangt in einen Zustand, in dem er nicht auf LOAD ADDRESS-Signale anspricht, die von dem Steuerungs-Folgesteuerungs-ODER-Array 126 erzeugt werden, während das POP-Signal auftritt. Das Auftreten des POP-Signals bewirkt ferner, daß der Zähler 240 das LOAD-Signal intern auf HIGH setzt, und zwar unabhängig von dem von dem ODER-Array 126 erzeugten LOAD-Signal, und der Inhalt der Stapeleinrichtung 130 wird dann über die Dreizustands-Puffer 139 dem Zähler 240 zugeführt, wie dem Fachmann ersichtlich ist. Das Auftreten des CLR-Signals auf der Leitung 266 bewirkt, daß der Wert des Stapel-Zeigers auf einen vorbestimmten Wert, beispielsweise null, rückgesetzt wird.
- Durch das Pushen des Inhalts des Zählers 240 auf die Stapeleinrichtung 240 und das gleichzeitige Laden des Zählers 240 mit einer von dem ODER-Array 126 erzeugten Sprung-Adresse kann eine Subroutine durchgeführt werden, wie dem Fachmann geläufig ist. Durch das Entnehmen des so gespeicherten Zustands-Zählwertes aus der Stapeleinrichtung 130 und zurück zu dem Zähler 240 kann eine Rückkehr von der Subroutine durchgeführt werden.
- Es ist anzumerken, daß das Laden des Zählers 240 eine vom Pushen des Inhaltes des Zählers auf die Stapeleinrichtung getrennte Operation ist. Folglich kann die Stapeleinrichtung 130 bei einer bestimmten Anwendung zum Speichern von Zustands-Information ohne Abzweigen verwendet werden.
- Bei einer bevorzugten Ausführungsform hat die Stapeleinrichtung 130 eine Tiefe von acht Ebenen und erlaubt die Ausführung von bis zu acht verschachtelten Subroutinen. In diesem Fall arbeitet der Stapel-Zeiger in einer Modulo 8-Betriebsart, wie der Fachmann verstehen wird. Obwohl dies in Fig. 1 nicht gezeigt ist, können Signale, die den Zustand der Stapeleinrichtung 130 reflektieren, beispielsweise die Signale STACK FULL und STACK EMPTY, von der Stapeleinrichtung 130 erzeugt und dem UND-Array 122 zugeführt werden, um darin einen Stapeleinrichtungs-"Überlauf" oder -"Unterlauf" zu verhindern.
- Das Programmieren der PLC-Einrichtung 100 der Erfindung erfolgt vorzugsweise über Hochpegelsprach(HLL)-Konstrukte. Das Vorsehen der Hochpegel-RAM 110- und Stapeleinrichtungs 130-Schaltelemente innerhalb der Einrichtungen der PLC 100 erleichtert dieses Programmieren und die sich daraus ergebende Verständlichkeit des resultierenden Programms. Eine exemplarische Syntax ist in der anliegenden Tabelle gezeigt. TABELLE Syntax der Hochpegel-Sprache Anweisung Typ Name Parameter Bedeutung DEFINIEREN INPINS Signalnamen Definieren OUTPINS ANWEISUNG INPUT PRIOR Prioritätskodierung eingegebener Signale OUTPUT Erzeugen Signale OUTIN Test-Feedback-Signale BURD n Vergrabenes Register n Testen der Signale des vergrabenen Registers/Erzeugen von Ausgangssignalen DELAY Halten des Ausgangssignals (der Ausgangssignale) für eine bestimmte Anzahl von Taktzyklen HOLD Nur Eingangssignale Halten der Eingangssignale für eine bestimmte Anzahl von Taktzyklen RELEASE Freigabe der Eingangssignale aus dem Haltezustand IF THEN ELSE Anweisungsmarkierung(en) WHILE DO FOR DO CASE OF GOTO direkter Abzweig GOTOR Relativer Abzweig ENABLE Nur Ausgangssignale Freigabe Puffer DISABLE Sperren Puffer RESET Rücksetzen Register PRESET Voreinstellen Register PRELOAD Vorladen Register GOSUB Ausrichten Subroutinen-Abzweig GOSUBr Abzweig der Relativ-Subroutine RETURN Rückkehr von Subroutine STORE Adresse, = Daten Speichern Daten in RAM 110 an Adresse RAMREAD Adresse (Bit-Zahl) Lesen RAM 110 an Adr. und Bit-Zahl
- Die Bedeutung sämtlicher in der Tabelle gezeigter Anweisungen mit Ausnahme der letzten fünf, die sich auf die Stapeleinrichtung 130 und das RAM 110 beziehen, findet sich in der hiermit zusammenhängenden mitanhängigen Anmeldung "Flexible Programmable Logic Controller", deren Beschreibung hier durch Verweis eingeschlossen ist.
- Die GOSUB- und GOSUBR-Anweisungen sind Anforderungen für direkte bzw. relative Subroutinen, die von der Stapeleinrichtung 130 verwendet werden, die den aktuellen Zustands-Zählstand auf den Stapel pusht und in den Zähler 240 im Falle der GOSUB-Anweisung die absolute Adresse der ersten Instruktion der Subroutine oder im Falle der GOSUBR-Anweisung die relative Adresse der ersten Instruktion einlädt. Die RETURN-Anweisung wird in die Subroutine plaziert, um eine Rückkehr zu dem Punkt in der Aufruf-Routine zu bewirken, der als nächstes auf die GOSUB- oder GOSUBR-Anweisung folgt, welche die Subroutine veranlaßt hat. Die RETURN-Anweisung wird realisiert durch Entnahme des Zustands-Zählstandes aus der Stapeleinrichtung 130 und in den Zähler 240.
- Die STORE-Anweisung wird durch das RAM 110 realisiert, das auf der Leitung 112 Signale, die den Adressparameter repräsentieren, und auf der Leitung 116 Signale empfängt, die den Datenparameter repräsentieren. Die Daten werden dann an der korrekten Stelle in dem RAM 110 gespeichert. Die RAMREAD-Anweisung veranlaßt, daß Signale, die den Inhalt der durch den Adressparameter repräsentierten Stelle innerhalb des RAM 110 darstellen, auf den Leitungen 118 erzeugt werden, um zu dem UND-Array 122 rückgeführt zu werden. Ein optionaler Bit-Anzahl-Parameter erlaubt die Wahl eines bestimmten Bit-Parameters in der auszulesenden Stelle; die übrigen auf den Leitungen 118 erzeugten Signale werden so gebildet, daß sie ZERO entsprechen.
- Die STORE-Anweisung, die durch das RAM 110 der PLC 100 realisiert wird, gibt dem Benutzer die Möglichkeit, die in dem RAM 110 gespeicherten Daten über das UND-Array 122 extern zu aktualisieren. Da diese Daten durch die RAMREAD-Anweisung rückgerufen werden können und zu dem UND-Array 122 rückgeführt werden können, kann das RAM 110 wahlweise zur Speicherung von extern aktualisierbarer Steuerinformation, wie sie von einer Host-Zentralverarbeitungseinheit (CPU) erzeugt wird, verwendet werden, und die Arbeitsweise der PLC 100 kann in Abhängigkeit von dieser Steuerinformation verändert werden. Somit sorgt das RAM 110 für die Speicherung externer Daten, zusätzlich zu der von den vergrabenen Registern 200 geschaffenen Speicherungsmöglichkeit. Typische Einsatzmöglichkeiten dieser Anwendungsform des RAM 110 finden sich in Steuereinrichtungen mit direktem Speicherzugriff (DMA), Unterbrechungs-Steuereinrichtungen und Video-Steuereinrichtungen.
- Die STORE- und RAMREAD-Anweisungen ermöglichen ferner, daß das RAM 110 als "Notizblock" verwendet wird. Unter Verwendung von Signalen, die durch das Ausgangssignalerzeugungs-ODER-Array 124 erzeugt werden, kann ein Einschreiben oder Auslesen aus jeder Stelle innerhalb des RAM 110 durchgeführt werden. Diese Stellen können als separate unabhängige Zähl- und Zeitgebungskanäle verwendet werden, wie es ein Auffrisch-Zeitgeber für einen Speichersteuerer erfordert.
- Bei alternative Ausführungsformen der Erfindung kann ein RAM 110 zusammen mit der programmierbaren Logik- Schaltung 120 verwendet werden, jedoch unter Weglassen des Zählers 240, wodurch eine auf PAL oder PLA basierende Einrichtung geschaffen wird, die ein RAM zur leichten Datenspeicherung aufweist, anders als bei den vergrabenen Registern 200. Alternativ kann entweder ein RAM 110 oder eine Stapeleinrichtung 130 allein mit der den Zähler 240 aufweisenden PLC-Einrichtung verwendet werden.
Claims (25)
1. Programmierbare Logikeinrichtung mit:
einer programmierbaren Array-Einrichtung (120), die
derart ausgelegt ist, daß sie auf an Array-Eingänge
(128,129) angelegte Eingangssignale hin mehrere
Logiksignale erzeugt;
einer Ausgangseinrichtung (160), die derart
geschaltet ist, daß sie eine erste Anzahl der
Logiksignale empfängt und daraus eine Anzahl von
Einrichtungs-Ausgangssignalen an einer zugehörigen
Anzahl von Eingangs-/Ausgangs-Ports (320) der
Einrichtung erzeugt;
einem Statusregister (240), das derart geschaltet
ist, daß es eine zweite Anzahl der Logiksignale
empfängt, und das derart ausgelegt ist, daß es
daraus abgeleitete Daten speichert und ein
Statuswortdatenausgangssignal erzeugt;
gekennzeichnet durch:
eine Stapeleinrichtung (130), die derart geschaltet
ist, daß sie auf eine dritte Anzahl der
Logiksignale als Steuersignale reagiert, und die derart
ausgelegt ist, daß sie von dem Statusregister (240)
übermittelte Statusworte auf First-in-last-out-
Basis speichert, und daß sie den zuletzt
eingegebenen
Inhalt des Stapels wegnimmt und daraus an
einem Statuswortausgang der Stapeleinrichtung (130)
ein das letzte gespeicherte Statuswort
beinhaltendes Stapelausgangssignal erzeugt.
2. Logikeinrichtung nach Anspruch 1, gekennzeichnet
durch eine erste Einrichtung (137,139) zum
Übermitteln des Stapelausgangssignals an das
Statuswortregister (240).
3. Logikeinrichtung nach Anspruch 2, dadurch
gekennzeichnet, daß die erste Einrichtung eine
Einrichtung zum selektiven Koppeln des Eingangs des
Statusregisters (240) mit entweder der zweiten Anzahl
von Logiksignalen oder dem Statuswortausgang der
Stapeleinrichtung (130) aufweist.
4. Logikeinrichtung nach Anspruch 1, 2 oder 3,
gekennzeichnet durch eine zweite Einrichtung zum
Übermitteln des Stapelausgangssignals an eine erste
Anzahl von Array-Eingängen, mit:
einer Einrichtung zum Laden des Statusregisters
(240) mit einem durch das Stapelausgangssignal
repräsentierten Statuswort; und
einer Einrichtung zum Übermitteln des
Datenausgangssignals des Statusregisters (240) an die erste
Anzahl von Array-Eingängen.
5. Logikeinrichtung nach einem der vorhergehenden
Ansprüche, dadurch gekennzeichnet, daß das
Statusregister (240) ferner einen Ladeinstruktionseingang
aufweist, der zum Empfangen eines der Logiksignale
geschaltet ist.
6. Logikeinrichtung nach Anspruch 5, dadurch
gekennzeichnet, daß die zweite Anzahl von Logiksignalen
ein Ladeadressensignal und ein
Ladeinstruktionssignal enthält; wobei der Empfang des
Ladesteuersignals bewirkt, daß das Statusregister (240)
seinen Inhalt durch die Ladeadresse ersetzt.
7. Logikeinrichtung nach einem der vorhergehenden
Ansprüche, dadurch gekennzeichnet, daß das
Statusregister (240) einen vorladbaren Zähler aufweist.
8. Logikeinrichtung nach einem der vorhergehenden
Ansprüche, dadurch gekennzeichnet, daß der Zähler ein
Gray-Kode-Zähler ist.
9. Logikeinrichtung nach einem der vorhergehenden
Ansprüche, dadurch gekennzeichnet, daß die zweite
Anzahl von Logiksignalen ein Löschsignal aufweist
und daß das Statusregister (240) auf das
Löschsignal reagiert, wobei der Empfang des Löschsignals
das Statusregister (240) dazu veranlaßt, ein
vorbestimmtes Wort zu halten.
10. Logikeinrichtung nach Anspruch 9, dadurch
gekennzeichnet, daß die Stapeleinrichtung (130) ebenfalls
auf das Löschsignal reagiert, wobei der Empfang des
Löschsignals bewirkt, daß sämtliche Inhalte der
Stapeleinrichtung entfernt werden.
11. Logikeinrichtung nach einem der vorhergehenden
Ansprüche, dadurch gekennzeichnet, daß die dritte
Anzahl der Logiksignale ein Einspeicher- und
Entnahmesignal enthält, wobei der Empfang des
Einspeichersignals das Statusregister (240) zum Erzeugen
eines Datenausgangssignals veranlaßt und die
Stapeleinrichtung (130) zum Speichern dieses
Datenausgangssignals veranlaßt, und wobei der Empfang
des Entnahmesignals die Stapeleinrichtung (130) zum
Entfernen des zuletzt eingegebenen Statuswortes und
zum Erzeugen des Statusausgangssignals veranlaßt,
das dieses zuletzt eingegebene Statuswort und
dessen Statuswortausgangssignal beinhaltet.
12. Logikeinrichtung nach einem der vorhergehenden
Ansprüche, dadurch gekennzeichnet, daß die
Stapeleinrichtung (130) einen "Full"- und einen "Empty"-
Ausgang aufweist, wobei die "Full"- und "Empty"-
Ausgänge mit betreffenden Array-Eingängen verbunden
sind.
13. Logikeinrichtung nach einem der vorhergehenden
Ansprüche, dadurch gekennzeichnet, daß die Tiefe der
Stapeleinrichtung (130) größer als 1 ist.
14. Logikeinrichtung nach einem der vorhergehenden
Ansprüche, dadurch gekennzeichnet, daß die
programmierbare Array-Einrichtung (120) einen ersten
programmierbaren kombinatorischen Array-Bereich (122),
der Array-Eingänge hat und zum Erzeugen von Array-
Zwischenausgangssignalen ausgelegt ist, und einen
zweiten Array-Bereich (126) aufweist, der zum
Empfangen einer Anzahl der
Array-Zwischenausgangssignale und zum Erzeugen der zweiten und/oder dritten
Anzahl von Logiksignalen daraus geschaltet ist.
15. Logikeinrichtung nach einem der vorhergehenden
Ansprüche, gekennzeichnet durch mehrere vergrabene
Speicherzelleneinrichtungen (200), von denen jede
zum Empfangen eines Signals einer vierten Anzahl
von Logiksignalen geschaltet ist, und mit einer
Einrichtung zum Speichern dieses Logiksignals zur
Erzeugung eines vergrabenen Ausgangssignals daraus.
16. Logikeinrichtung nach Anspruch 13, dadurch
gekennzeichnet, daß die programmierbare Array-Einrichtung
(120) eine Anzahl vergrabener Ausgangssignale als
zweite Anzahl der Eingangssignale empfängt.
17. Logikeinrichtung nach einem der vorhergehenden
Ansprüche, dadurch gekennzeichnet, daß die
programmierbare Array-Einrichtung (120) eine Anzahl der
Einrichtungs-Ausgangssignale als dritte Anzahl der
Eingangssignale empfängt.
18. Logikeinrichtung nach einem der vorhergehenden
Ansprüche, dadurch gekennzeichnet, daß die
programmierbare Array-Einrichtung (120) eine vierte Anzahl
der Eingangssignale als Anzahl von Ausgangssignalen
von dem Statusregister (240) empfängt.
19. Logikeinrichtung nach einem der vorhergehenden
Ansprüche, gekennzeichnet durch eine
Speichereinrichtung (110), die zum Empfang einer fünften Anzahl
von Logiksignalen, die Daten repräsentieren,
geschaltet ist und zum Speichern dieser Logiksignale
sowie zum Erzeugen von die gespeicherten Signale
angebenden Speicherausgangssignalen ausgelegt ist.
20. Logikeinrichtung nach Anspruch 19, dadurch
gekennzeichnet, daß die programmierbare Array-Einrichtung
(120) die Speicherausgangssignale als sechste
Anzahl von Eingangssignalen empfängt.
21. Logikeinrichtung nach Anspruch 19 oder 20, dadurch
gekennzeichnet, daß die fünfte Anzahl von
Logiksignalen
Speicheradressensignale sowie ein
Schreibfreigabesignal beinhaltet und daß die
Speichereinrichtung (110) mehrere Speicherzellen beinhaltet,
von denen jede eine bestimmte Adresse hat, wobei
die Speichereinrichtung auf die Speicheradressen-
und die Schreibfreigabesignale derart reagiert, daß
der Empfang von Schreibfreigabesignalen die
Speichereinrichtung (110) dazu veranlaßt, den Inhalt
einer Speicherstelle, deren Adresse durch die
Adressensignale repräsentiert wird, durch von der
fünften Anzahl von Logiksignalen repräsentierte
Daten zu ersetzen.
22. Logikeinrichtung nach einem der Ansprüche 19 bis
21, dadurch gekennzeichnet, daß die
Speichereinrichtung (110) ein Schreib-/Lese-Speicher ist.
23. Logikeinrichtung nach einem der vorhergehenden
Ansprüche, dadurch gekennzeichnet, daß die Logik-
Array-Einrichtung (120) programmiert ist zum
Erzeugen von Signalen zur Ausführung von
Unterprogrammen, die folgende Schritte hervorrufen:
a) Übertragen des Inhalts des Statusregisters
(240) in die Stapeleinrichtung (130);
b) Inkrementieren eines Stapelzeigers; und
c) Laden gewünschter Sprungadressenwerte in das
Statusregister (240) und Anlegen des
Ausgangssignals
des Statusregisters (240) als
Eingangssignale an das programmierbare Logik-Array
(120).
24. Logikeinrichtung nach Anspruch 23, ferner
programmiert mit den folgenden
Unterprogramm-Rücksprungschritten, die als Reaktion auf dem
programmierbaren Logik-Array (120) erzeugte Signale
durchgeführt werden:
d) Laden des Statusregisters (240) mit dem Inhalt
des oberen Endes des Stapels (130) (Entnahme);
und Dekremtieren (modulo p) des
Stapelzeigers.
25. Logikeinrichtung nach Anspruch 13, ferner
programmiert mit dem folgenden Löschschritt, der als
Reaktion auf von dem programmierbaren Logik-Array
erzeugte Signale durchgeführt wird:
f) Löschen der Stapeleinrichtung (130) auf einen
vorbestimmten Wert.
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US83678286A | 1986-03-06 | 1986-03-06 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| DE3783151D1 DE3783151D1 (de) | 1993-02-04 |
| DE3783151T2 true DE3783151T2 (de) | 1993-06-24 |
Family
ID=25272720
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| DE8787301800T Expired - Fee Related DE3783151T2 (de) | 1986-03-06 | 1987-03-02 | Programmierbare logische vorrichtung. |
Country Status (4)
| Country | Link |
|---|---|
| EP (1) | EP0238230B1 (de) |
| JP (1) | JPH0792740B2 (de) |
| AT (1) | ATE83867T1 (de) |
| DE (1) | DE3783151T2 (de) |
Families Citing this family (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4858178A (en) * | 1986-09-30 | 1989-08-15 | Texas Instruments Incorporated | Programmable sequence generator |
| CA2010122A1 (en) * | 1989-06-21 | 1990-12-21 | Makoto Sakamoto | Integrated circuit including programmable circuit |
| US5022008A (en) * | 1989-12-14 | 1991-06-04 | Texas Instruments Incorporated | PROM speed measuring method |
| GB9121591D0 (en) * | 1991-10-11 | 1991-11-27 | Pilkington Micro Electronics | Data security arrangement for semiconductor programmable logic devices |
| US5754823A (en) * | 1995-02-23 | 1998-05-19 | Datalogic, Inc. | Configurable I/O system using logic state arrays |
Family Cites Families (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| IT985055B (it) * | 1972-07-24 | 1974-11-30 | Babcock & Wilcox Co | Apparecchiatura elettronica e meto do per la elaborazione di informa zioni per macchine utensili ed altro |
| JPS5354936A (en) * | 1976-10-29 | 1978-05-18 | Toshiba Corp | Programable logical array |
| JPS558135A (en) * | 1978-07-04 | 1980-01-21 | Mamoru Tanaka | Rewritable programable logic array |
| WO1981002937A1 (fr) * | 1980-04-05 | 1981-10-15 | Y Kuze | Systeme de commande sequentielle a memoire morte |
| JPS57116431A (en) * | 1981-01-10 | 1982-07-20 | Nec Corp | Programmable logic array |
| JPS60101642A (ja) * | 1983-11-08 | 1985-06-05 | Matsushita Electric Ind Co Ltd | マイクロコンピユ−タ入力制御回路 |
| US4876640A (en) * | 1986-02-07 | 1989-10-24 | Advanced Micro Devices, Inc. | Logic controller having programmable logic "and" array using a programmable gray-code counter |
-
1987
- 1987-03-02 DE DE8787301800T patent/DE3783151T2/de not_active Expired - Fee Related
- 1987-03-02 EP EP87301800A patent/EP0238230B1/de not_active Expired - Lifetime
- 1987-03-02 AT AT87301800T patent/ATE83867T1/de not_active IP Right Cessation
- 1987-03-04 JP JP62049895A patent/JPH0792740B2/ja not_active Expired - Lifetime
Also Published As
| Publication number | Publication date |
|---|---|
| DE3783151D1 (de) | 1993-02-04 |
| EP0238230A2 (de) | 1987-09-23 |
| EP0238230B1 (de) | 1992-12-23 |
| JPS62277813A (ja) | 1987-12-02 |
| JPH0792740B2 (ja) | 1995-10-09 |
| EP0238230A3 (en) | 1989-03-15 |
| ATE83867T1 (de) | 1993-01-15 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| DE68928213T2 (de) | Inhaltadressierte Speicherzellenanordnung | |
| DE3853613T2 (de) | Mikrorechner mit flexiblen anwendungsspezifischen integrierten Schaltungen. | |
| DE3587591T2 (de) | Mikroprozessor für Forth-ähnliche Sprache. | |
| DE3786594T3 (de) | Speicherverwaltungseinheit für Digitalsignalprozessor. | |
| DE69326467T2 (de) | Unterbrechungsfreies, wahlfreies zugriffspeichersystem. | |
| DE3750705T2 (de) | Programmierbare, logische Kontrolleinrichtung. | |
| DE68914172T2 (de) | Datenverarbeitungssystem und Videoverarbeitungssystem mit einem derartigen Datenverarbeitungssystem. | |
| DE68907518T2 (de) | Inhaltsadressierte Speicheranordnung. | |
| DE4305442C2 (de) | Verfahren und Vorrichtung zum Erzeugen eines Testvektors | |
| DE4212202C2 (de) | Logikgatter | |
| DE69914864T2 (de) | Steuerung der konfiguration in einer programmierbaren logik-einheit mittels nichtflüchtiger bauelemente | |
| DE3586603T2 (de) | Datenprozessor fuer interpretierende und kompilierte sprache. | |
| DE68924637T2 (de) | Speicheranordnung für Mehrprozessorsysteme. | |
| DE2813128C2 (de) | Steuereinrichtung für Mikroprogrammspeicher | |
| DE68922975T2 (de) | Speichereinheit mit zwei Toren. | |
| DE3689595T2 (de) | Datenverarbeitungssystem. | |
| DE68927611T2 (de) | Digitales neuronales Netwerk | |
| DE3508640A1 (de) | Computersystem zur implementierung eines ereignisgesteuerten simulationsalgorithmus | |
| DE2714805A1 (de) | Datenverarbeitungssystem | |
| DE3587309T2 (de) | Mehrfachvideospeichersystem mit Bildelementkartierung. | |
| DE2524046A1 (de) | Elektronische datenverarbeitungsanlage | |
| DE69130513T2 (de) | Verfahren zur Durchführung boolescher Operationen zwischen zwei beliebigen Bits von zwei beliebigen Registern | |
| DE3854212T2 (de) | Signalgenerator für die Umlaufadressierung. | |
| DE69314732T2 (de) | Programmierbare logische Vorrichtung | |
| DE60129269T2 (de) | Speicherschaltung für eine programmierbare logische integrierte Schaltungsanordnung |
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 |