DE3603975A1 - Software-programmierbare logikanordnung - Google Patents

Software-programmierbare logikanordnung

Info

Publication number
DE3603975A1
DE3603975A1 DE19863603975 DE3603975A DE3603975A1 DE 3603975 A1 DE3603975 A1 DE 3603975A1 DE 19863603975 DE19863603975 DE 19863603975 DE 3603975 A DE3603975 A DE 3603975A DE 3603975 A1 DE3603975 A1 DE 3603975A1
Authority
DE
Germany
Prior art keywords
programmable
output
input
bits
gate
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.)
Withdrawn
Application number
DE19863603975
Other languages
English (en)
Inventor
Mark Phoenix Ariz. Poret
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of DE3603975A1 publication Critical patent/DE3603975A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
    • H03K19/17704Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form the logic functions being realised by the interconnection of rows and columns
    • H03K19/17708Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form the logic functions being realised by the interconnection of rows and columns using an AND matrix followed by an OR matrix, i.e. programmable logic arrays
    • H03K19/17712Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form the logic functions being realised by the interconnection of rows and columns using an AND matrix followed by an OR matrix, i.e. programmable logic arrays one of the matrices at least being reprogrammable

Landscapes

  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Logic Circuits (AREA)

Description

PATENTANWÄLTE ZENZ & HELBER · D 43OO ESSEim 1 · AW\ RUHRSTEIN 1 · TEL.: (02 01) 4126
Seite - fc- : 262
INTEL CORPORATION 3065 Bowers Avenue, Santa Clara, Kalifornien 95051, V.St.A
Software-programmierbare Logikanordnung
Programmierte Logikanordnungen, die häufig als PLA's bezeichnet werden, sind bekanntlich Schaltungen zur Erzeugung eines Satzes vorgegebener Ausgangssignale, deren Werte von den Werten der Eingangssignale der PLA abhängen. Nach dem Stande der Technik können gewöhnliche logische Verknüpfungsglieder, z.B. NAND-Gatter und/oder NOR-Gatter oder andere bekannte logische Matrixanordnungen zum Aufbau einer PLA verwendet werden. In alternativer Ausführung dienen nach dem Stande der Technik auch Festwertspeicher (ROM's) zum Aufbau von PLA's. Beispielsweise kann jede Adresse innerhalb eines ROM auf einen gewünschten Wert initiiert werden. Durch Anlegen geeigneter Signale auf die Adreßleitungen eines ROM kann ein spezieller Speicherplatz im ROM adressiert und sein Inhalt auf die Ausgangsleitungen des ROM gelegt werden. Selbstverständlich bleiben die einmal in die Speicherplätze des ROM geladenen Werte fest bzw. erhalten. Obwohl programmierbare ROM's (PROM's) bekannt und verfügbar sind, können sie während der normalen Betriebszyklen ihrer Natur nach nicht geändert werden. Um einen PROM umzuprogrammieren, ist es daher nötig, den PROM einer Umgebung auszusetzen, die sich wesentlich von derjenigen im normalen betrieblichen Einsatz des PROM's unterscheidet. So können PROM's beispielsweise UV-PROM's oder EE-PROM's sein,
die durch ultraviolette Strahlung oder elektrisch löschbar sind. Um UV-PROM's neu zu programmieren, ist es notwendig, das Bauelement aus seiner normalen Betriebsumgebung herauszunehmen und in ein Gerät einzusetzen, das zum Programmieren des PROM's besonders geeignet ist. Die Umprogrammierung eines EE-PROM's bedingt Spannungen, die wesentlich höher als die in Logikschaltungen während des Normalbetriebs verwendeten Spannungen sind.
Obwohl PLA's außerordentlich zweckmäßige Anordnungen zur Erzeugung vorgegebener Ausgangssignale in Abhängigkeit von eingehenden Signalen sind, können sie aus den vorgenannten Gründen nicht für Anwendungen benutzt werden, bei denen vorgegebene Ausgangssignale dynamisch geändert werden müssen, und zwar bei demselben Satz von an der PLA anstehenden Eingangssignalen.
Selbstverständlich ist es möglich, eine PLA aufzubauen, welche alle möglichen Ausgangssignale liefert. Wenn beispielsweise ein PROM als PLA benutzt wird, können alle möglichen Ausgänge in einem Feld (array) von 2 Speicherplätzen geschaffen werden. Ausgenommen in den Fällen, in denen die Nutzung aller oder praktisch aller möglichen Ausgänge notwendig ist, wäre eine solche Anordnung bzw. ein solches Datenfeld äußerst ineffizient, da die meisten Plätze niemals zugegriffen werden. Außerdem wäre selbst bei einer Logikanordnung, die alle möglichen Ausgaben zu erzeugen vermag, die einer speziellen Dateneingabe zugeordnete Datenausgabe notwendigerweise stets dieselbe.
/, Der Erfindung liegt daher die Aufgabe zugrunde, eine Software- -programmierbare Logikanordnung (SPLA) zur Verfügung zu stellen, die dynamisch programmierbar ist, um eine beliebige Kombination von vorgegebenen Ausgangssignalen bzw. Ausgaben aus
jeder Kombination von gewünschten Eingaben bzw. Eingangssignalen zu erzeugen.
Zu diesem Zweck sieht die Erfindung eine erste Ebene von programmierbaren Bits zur Erzeugung einer Vielzahl von UND-Termen vor, die in eine zweite Ebene von programmierbaren Bits zur Erzeugung einer Vielzahl von ODER-Termen eingegeben werden. Die ODER-Terme werden danach in eine dritte Ebene von programmierbaren Bits eingegeben, um eine Vielzahl von Ausgangssignalen bzw. Ausgaben mit jeweils einer gewünschten Polarität zu erzeugen.
Zusätzlich zu den gewünschten Eingängen bzw. Eingaben für die SPLA, welche die vorgegebenen Ausgangssignale erzeugen, wird ein zweiter Satz von Eingängen bzw. Eingangssignalen vorgesehen, die nur während der Initiierung der SPLA zum Programmieren jedes programmierbaren Bit verfügbar sind, damit die vorgegebenen Ausgangssignale in der gewünschten Weise erzeugt werden können. Der zweite Satz von Eingaben bzw. Eingangssignalen wird dadurch erzeugt, daß die gewünschten Adressen und Daten an einen Adreß/Daten-Bus angelegt werden und daß die Adressen derart dekodiert werden, daß jedes programmierbare Bit durch die Daten auf dem Bus geeignet adressiert und in einen gewünschten Zustand gesetzt werden kann, damit jedes programmierbare Bit auf der Basis einer vorgegebenen Eingabe ein gewünschtes vorgegebenes Ausgangssignal erzeugt. Insbesondere ist in der ÜND-Ebene jedes programmierbare Bit so programmiert, daß es selektiv ausgeben kann: eine "0" unabhängig von seinem Eingang; eine "1" unabhängig von seinem Eingang; einen Ausgang entsprechend seinem Eingang, d.h. ein "0" Eingang führt zu einem "0" Ausgang und ein "1" Eingang führt zu einem "1" Ausgang; oder den Inversionswert seines Eingangs. In der ODER-Ebene ist jedes programmierbare Bit so programmiert, daß es ausgibt: eine "0" unabhängig von seinem Eingang; oder
einen Ausgang entsprechend seinem Eingang, d.h. ein "O" Eingang führt zu einem "O" Ausgang und ein "1" Eingang führt zu
einem "1" Ausgang. In der dritten, d.h. Ausgangsebene ist
jedes programmierbare Bit so programmiert, daß es seinen Eingang oder den Inversionswert seines Eingangs ausgibt.
Im folgenden wird die Erfindung anhand eines in der Zeichnung schematisch dargestellten Ausführungsbeispielen näher erläutert. In der Zeichnung zeigen:
Fig. 1 ein Blockdiagramm mit den verschiedenen Elementen einer SPLA nach der Erfindung;
Fig. 2 ein Logikschaltbild eines einzigen programmierbaren Bit in einem UND-Term;
Fig. 3 ein Blockschaltbild mehrerer programmierbarer
Bits der in Fig. 2 veranschaulichten Art, die
zur Bildung eines UND-Terms verknüpft sind;
Fig. 4 ein Logikschaltbild mit einem einzigen programmierbaren Bit eines ODER-Terms;
Fig. 5 ein Blockschaltbild mit mehreren programmierbaren Bits der in Fig. 4 gezeigten Art, die zur
Erzeugung eines einzigen ODER-Terms kombiniert
sind; und
Fig. 6 ein Logikschaltbild eines programmierbaren Bits eines Ausgangsterms.
Beschrieben wird eine Software-programmierbare Logikanordnung (SPLA) zur Erzeugung einer Vielzahl vorgegebener Ausgaben auf der Basis der Werte von gewünschten Eingängen bzw. Eingaben
'0'
derart, daß der Ausgang oder die Ausgabe für einen vorgegebenen Eingang bzw. eine vorgegebene Eingabe dynamisch programmiert werden kann, ohne daß die SPLA aus der Schaltung und der Umgebung, in denen sie verwendet wird, entfernt wird.
In der folgenden Beschreibung werden zahlreiche Einzelheiten, z.B. spezielle Wort- oder Termlängen usw. angegeben, um das Verständnis für die vorliegende Erfindung zu vertiefen. Andererseits ist es für den Fachmann klar, daß die Erfindung auch ohne solche speziellen Einzelheiten realisierbar ist. In anderen Fällen sind bekannte Schaltungen nur als Blockschaltbild gezeigt, um das Wesen der Erfindung nicht mit unnötigen Einzelheiten zu belasten. Zum überwiegenden Teil sind Einzelheiten bezüglich der Zeitgabe o.dgl. fortgelassen worden, da diese Details für die Erläuterung der vorliegenden Erfindung nicht erforderlich sind und den auf dem vorliegenden Sachgebiet tätigen Fachleuten ohnehin bekannt sind.
Im folgenden wird auf Fig. 1 Bezug genommen. Die dort gezeigte SPLA 11 weist eine M Bit breite ÜND-Ebene 13 auf, der Eingänge 0 bis L durch Latches bzw. Verriegelungsschaltungen 15 eingeblendet (latched) werden. Die Einblendung des Eingangs 0 bis L findet natürlich auf der Basis eines vorgegebenen Taktgabesignals (nicht dargestellt) statt. Die Ausgangssignale aus der UND-Ebene werden danach in eine N-Bit breite ODER-Ebene 17 eingegeben. In diesem Zusammenhang sei darauf hingewiesen, daß M und N die Anzahl von UND-Termen bzw. ODER-Termen in der UND-Ebene 13 bzw. ODER-Ebene 17 bezeichnen. M und N können irgendeine Zahl größer oder gleich 1 sein. In der Praxis liegen M und N gewöhnlich im Bereich zwischen 8 und 32 Bits Breite. Es ist einzusehen, daß die Anzahl von programmierbaren Bits innerhalb der UND-Ebene 13 L*M und die Anzahl von programmierbaren Bits in der ODER-Ebene 17 M*N ist. Die von der ODER-Ebene 17 erzeugten ODER-Terme werden dann in die Aus-
gangspolarität-Auswahlebene 21 eingegeben, deren Ausgang von einem Ausgangslatch und Register 23 festgehalten wird, wobei das Ausgangslatch und Register das SPLA-Ausgangssignal einfach solange speichert, wie das Ausgangssignal von der Schaltung, in der die PLA implementiert ist, benötigt wird oder akzeptiert werden kann.
Ebenfalls in Fig. 1 gezeigt sind eine SPLA-Register-Dekodierschaltung 39, ein Bus 33, SPLA I/O Treiber 35 und Adreßspeicher 37, die jeweils in Verbindung mit der SPLA weiter unten beschrieben werden. Obwohl diese Komponenten für die Funktion der SPLA notwendig sind, bilden sie selbst keinen an sich neuen Bestandteil der Erfindung.
Unter Bezugnahme auf Fig. 2 wird im folgenden die Konstruktion eines einzigen programmierbaren Bit 31 innerhalb der UND-Ebene 13 beschrieben. Funktionell wird das programmierbare Bit 31 programmiert, um ein Ausgangssignal zu erzeugen, das: gleich dem Eingangssignal; gleich dem Inversionswert des Eingangssignals; eine "0" unabhängig vom Eingangssignal; oder eine "1" ist, unabhängig vom Eingangssignal. Diese Funktion wird durch Programmierung des Bits vor dem Anlegen eines der Eingangssignale 0-L an das programmierbare Bit erreicht. Insbesondere werden unter Bezugnahme auf Fig. 1 die programmierbaren Bits in der UND-Ebene dadurch programmiert, daß eine Adresse und Daten an den Bus 3 3 angelegt werden, wobei die Adresse auf dem Bus die Adresse eines speziellen UND-Terms ist, in welchem ein programmierbares Bit 31 angeordnet ist, und die Daten auf dem Bus eine Folge von Nullen und Einsen sind, je nachdem, ob eine "0" oder "1" an ein spezielles Eingabe-Ansteuerregister, d.h. Flipflop 43 oder 45 innerhalb des programmierbaren Bits des adressierten UND-Terms, angelegt werden soll. Eine Adresse auf dem Bus 33, bestimmt durch geeignete Taktsignale (nicht gezeigt), wird von Adreßspeichern (address latches) 37 festge-
halten bzw. gespeichert. Die festgehaltene^ Adresse wird dann in die SPLA-Register-Dekodierschaltung 3 9 eingegeben, welche die Adresse dekodiert und geeignete Signale auf die Leitung gibt, um die Programmierung der entsprechenden programmierbaren Bits in der UND-Ebene 13 mit den auf dem Bus 33 anstehenden Daten zu ermöglichen. Nach der Adressierung der gewünschten programmierbaren Bits werden Daten auf den Bus 33 gegeben, um die adressierten programmierbaren Bits in eine gewünschte Konfiguration zu setzen. Die Daten auf dem Bus 33 werden dann in die adressierten programmierbaren Bits in der UND-Ebene 13 von dem SPLA I/O-Treiber 35 eingegeben, und die adressierten programmierbaren Bits werden sodann in der gewünschten Weise rekonfiguriert. In ähnlicher Weise können programmierbare Bits innerhalb der ODER-Ebene 17 oder der Ausgangspolarität-Auswahlebene 21 adressiert und rekonfiguriert wird.
Bus 33, SPLA I/O-Treiber 35, Adreßspeicher 37 und SPLA-Register-Dekodierschaltung 39 können nach bekannten Konstruktionskriterien für derartige Schaltungen implementiert werden; Einzelheiten hierüber werden im Rahmen der vorliegenden Anmeldung nicht erläutert, da sie dem Fachmann auf dem einschlägigen Sachgebiet bekannt sind und weitgehend von dem zur Erzeugung der Daten und Adreßsignale verwendeten Prozessor abhängig sind. Wenn erwünscht, können besondere programmierbare Bits innerhalb der SPLA durch Adressieren der gewünschten Bits über die SPLA-Register-Dekodierschaltung 39 und Setzen der RD/WR Steuerleitung 38 gelesen werden, wobei der Dekodierer 39 und der Treiber 35 instruiert werden, daß eine Leseoperation stattfindet. In diesem Falle werden die Ausgangssignale von den adressierten programmierbaren Bits an den Bus 33 zur nachfolgenden Verarbeitung angelegt.
Es sei beispielsweise angenommen, daß ein spezielles programmierbares Bit 31 dadurch programmiert wird, daß eine "1" an
den der Leitung 41 zugeordneten Eingang zum Flipflop 43 und eine "1" an den zur Leitung 42 gehörigen Eingang des Flipflops 45 angelegt wird. Auf diese Weise sorgen die Ausgänge 47 und 49 der Flipflops 4 3 bzw. 45 dafür, daß ein Eingangssignal der UND-Gatter 53 und 57 "1" wird. Wenn jetzt eine "0" an die Eingangsleitung 51 angelegt wird, so werden die Eingänge am UND-Gatter 53 "1" und "0", so daß ein Eingang am ODER-Gatter 59 zu einer "0" wird. Da jedoch der "0" Eingang auf der Leitung 51 vom Inverter 55 invertiert wird, werden beide Eingangssignale am UND-Gatter 57 zu "1", und daher wird der andere Eingang zum ODER-Gatter 59 mit "1" beaufschlagt, und der Ausgang des programmierbaren Bit 31 wird daher eine "1". Ähnliches gilt für den Fall, daß am Eingang der Leitung 51 eine "1" ansteht. Die beiden Eingänge zum UND-Gatter 5 3 werden "1 wodurch einer der Eingänge des ODER-Gatters 5 9 "1" wird und dessen Ausgang daher "1" wird. In dieser Konfiguration gibt daher das programmierbare Bit 31 eine "1" aus, unabhängig davon, ob eine "0" oder "1" eingegeben wird.
Wenn auf beiden Leitungen 41 und 42 zu den Flipflops 43 und eine "0" ansteht, sind die Ausgänge der Flipflops an den Leitungen 47 und 49 "0", und daher sind die Ausgänge der UND-Gatter 53 und 5 7 unabhängig von der Eingabe auf der Leitung 51 stets "0". Die Eingänge zum ODER-Gatter 59 sind daher "0", und das Ausgangssignal des ODER-Gatters 5 9 ist dementsprechend auch "0".
Wenn das programmierbare Bit 31 derart programmiert wird, daß eine "1" auf die Leitung 41 gegeben und eine "0" auf die Leitung 42 gegeben wird, so ist das Ausgangssignal des UND-Gatters 53 stets das gleiche wie das Eingangssignal auf der Leitung 51, und das Ausgangssignal des UND-Gatters 57 ist stets eine "0". Auf diese Weise ist das Ausgangssignal des ODER-Gatters 59 stets das gleiche wie das Eingangssignal auf der Ein-
gabeleitung 51.
Wenn das programmierbare Bit 31 so programmiert wird, daß eine "0" auf die Leitung 41 und eine "1" auf die Leitung 42 gegeben wird, so wird nur der Umkehrwert des Eingangssignals auf der Leitung 51 (d.h. das Ausgangssignal des Inverters 55) dem ODER-Gatter 59 eingegeben, während der andere Eingang stets auf "0" bleibt. Auf dieser Weise ist das Ausgangssignal des programmierbaren Bits stets der Umkehrwert des Eingabesignals auf der Leitung 51. Die folgende Tabelle faßt die möglichen Konfigurationen und Ausgangssignale eines speziellen programmierbaren Bit 31 zusammen:
Leitung 51 Flipflop 43 Flipflop 45 ODER-Gatter 59
Eingabe Q-Ausgang Q-Ausgang Ausgang
0 0 0 0 0 0 11 0 1 0 0 0 1 1 1 10 0 0 10 10
1 Γ ο 1
1111
Selbstverständlich wird jedes der Eingangssignale 0 bis L einem anderen programmierbaren Bit für jeden UND-Term eingegeben. Im folgenden wird auf Fig. 3 Bezug genommen. Durch UND-Verknüpfung der Gruppe von programmierbaren Bits für jedes der Eingangssignale 0 bis L wird ein einziger UND-Term am Ausgang des UND-Gatters 61 erzeugt. Durch Anlegen der Eingangssignale 0 bis L an eine zweite Gruppe von programmierbaren Bits 31, deren Ausgänge ebenfalls UND-verknüpft sind, wird
10
-/IS.
ein zweiter UND-Term erzeugt. In ähnlicher Weise können ebenfalls dritte, vierte, fünfte usw. bis M UND-Terme vorgesehen sein. Daher werden in einer M-Bit breiten bzw. großen UND-Ebene M UND-Terme ausgegeben.
In Fig. 4 ist ein einziges programmierbares Bit 65 der ODER-Ebene 17 gezeigt. Selbstverständlich gibt es für jeden Pegel der ODER-Ebene ein einziges programmierbares Bit 65 in Zuordnung zu jedem von 0 bis M Eingängen, die die 0 bis M UND-Terme aus der UND-Ebene 13 enthalten. Jedes programmierbare Bit 6 5 weist ein Flipflop 6 7 auf, dessen Q-Ausgang einen Eingang zu einem UND-Gatter 69 darstellt. Der andere Eingang zum UND-Gatter 6 9 ist einer der Eingänge 0 bis M. Durch Programmierung jedes programmierbaren Bits 65 derart, daß der Q-Ausgang des Flipflops 67 entweder eine "1" oder eine "0" ist, wird der Ausgang jedes programmierbaren Bits 65 entweder gleich dem Eingang auf der Leitung 68, wenn der "Q-Ausgang eine "1" ist, oder eine "0", wenn der "^-Ausgang eine "0" ist.
Im folgenden wird auf Fig. 5 Bezug genommen. Wie im Falle der UND-Terme wird durch ODER-Verknüpfung der Ausgänge der programmierbaren Bits 65 für jedes der UND-Terme 0 bis M durch ODER-Gatter 70 ein einziger ODER-Term ausgegeben. Durch Anlegen der UND-Terme 0 bis M an einen zweiten Satz von programmierbaren Bits 65, deren Ausgänge ihrerseits .ODER-verknüpft sind, wird ein zweiter ODER-Term erzeugt. In ähnlicher Weise werden dritte, vierte und fünfte usw. bis N ODER-Terme ebenfalls vorgesehen. Daher werden in einer N-Bit breiten ODER-Ebene N ODER-Terme ausgeben.
Jeder der ODER-Terme wird sodann in die Ausgangspolarität-Auswahlebene 21 eingegeben, welche N programmierbare Bits 71 entsprechend demjenigen gemäß Fig. 6 enthält. Jedes der programmierbaren Bits ist derart vorprogrammiert, daß sein Aus-
11
gang entweder gleich dem eingegebenen ODER-Term oder gleich dessen Inversionswert ist. Wenn die programmierbaren Bits 71 dadurch programmiert werden, daß eine" 1" auf Leitung 73, d.h. den Eingang des Flipflops 75 gegeben wird, wird der Q-Ausgang auf "1" gesetzt und in das UND-Gatter 77 eingegeben und der (2-Ausgang wird "0" und in das UND-Gatter 79 eingegeben. Wenn jetzt der eingegebene ODER-Term auf der Leitung 81 eine "1" ist, so wird das Ausgangssignal des UND-Gatters 7 7 eine "1" und das Ausgangssignal des UND-Gatters 79 eine "0". Da ein "1" Eingang und "0" Eingang am ODER-Gatter 85 anstehen, ergibt sich ein Ausgangsterm von "1" bzw. das gleiche Ausgangssignal wie der Eingabeterm. Wenn eine "0" auf die Leitung 81 gegeben wird, so ist in ähnlicher Weise ein Eingang jedes der UND-Gatter 77 und 79 eine "0", die beiden Eingänge zum ODER-Gatter werden "0", und der Ausgang ist daher eine "0" oder der gleiche wie der eingegebene ODER-Term auf der Leitung 81.
Wenn das Flipflop 76 jedoch durch eine "0" auf der Leitung 73 rückgesetzt ist, so ist der Q*-Ausgang zum UND-Gatter 79 eine "1" und der Q-Ausgang zum UND-Gatter 77 wird zu einer "0". Auf diese Weise wird jedes Eingangssignal auf der Leitung 81 vom Inverter 83 invertiert, und der Ausgang vom UND-Gatter 79 ergibt in Kombination mit dem "0" Ausgang vom UND-Gatter 77 im ODER-Gatter 85 eine Ausgabe des Inversionswertes des über die Leitung 81 zugeführten Eingangssignals.
Im folgenden wird auf Fig. 1 erneut Bezug genommen. Je nach Programmierung der Ausgangspolarität-Auswahlebene 21 wird jeder der N ODER-Terme aus der ODER-Ebene 17 wie der Eingabewert oder wie dessen Kehrwert ausgegeben. Der Ausgabespeicher und Register 23 hält in Abhängigkeit von einem Signal auf der Leitung 85, erzeugt durch den Dekodierer 39, danach jeden der N ODER-Terme, bis er von derjenigen Schaltung gebraucht wird, in der die SPLA implementiert ist, oder bis er durch einen
12
nachfolgenden Satz von Ausgängen ersetzt wird.
Zu beachten ist, daß die zuvor beschriebene SPLA mit nur einer Ebene, nämlich einer UND-Ebene, einer ODER-Ebene oder einer Ausgangspolarität-Auswahlebene ebenso wie mit einer beliebigen Kombination dieser drei Ebenen implementiert werden kann. In ähnlicher Weise können die UND-Terme und ODER-Terme als NAND-Terme und/oder NOR-Terme im Rahmen der Erfindung implementiert werden. Zusätzlich können die programmierbaren Bits, die in der UND-Ebene, ODER-Ebene und Ausgangspolarität-Auswahlebene verwendet werden, unter Verwendung anderer Kombinationen von Flipflops, Gattern, Invertern und anderen Komponenten als die zuvor beschriebenen implementiert werden.
- Leerseite -

Claims (12)

PATENTANWÄLTE ZENZ & HELBER ■ D 4300 ESSEN t, · AM R1JHRSTEIN 1 · TEL.:(O2O1) 412687 ^ INTEL CORPORATION Patentansprüche
1. Software-programmierbare Logikanordnung,
dadurch gekennzeichnet ,
daß eine erste Anzahl programmierbarer Bits (31) vorgesehen
ist, von denen jedes dynamisch derart programmierbar ist, daß es selektiv die folgenden Ausgangszustände erzeugt:
"0" unabhängig von einer Eingabe "0" oder "1";
"1" unabhängig von einer Eingabe "0" oder "1";
"0" bei einer Eingabe "0" und 1M" bei einer Eingabe "1"; oder
"1" bei einer Eingabe "0" und "0" bei einer Eingabe "1", und daß die Ausgänge jedes der programmierbaren Bits (31) zur Erzeugung eines UND-Terms miteinander UND-verknüpft sind.
2. Programmierbare Logikanordnung nach Anspruch 1, dadurch
gekennzeichnet, daß wenigstens eine zweite Anzahl von programmierbaren Bits mit den Eingaben beaufschlagbar ist und daß die Ausgänge jedes der zweiten Anzahl programmierbarer Bits zur
Bildung wenigstens eines zweiten UND-Terms miteinander
UND-verknüpft sind.
3. Software-programmierbare Logikanordnung, dadurch gekennzeichnet, daß eine erste Anzahl programmierbarer Bits (65)
vorgesehen ist, von denen jedes dynamisch derart programmierbar ist, daß es selektiv die folgenden Ausgangssignale erzeugt:
"0" bei einer Eingabe "1" und "0" bei einer Eingabe "0";
"1" bei einer Eingabe "1" und "0" bei einer Eingabe "0", und daß die Ausgänge jedes der programmierbaren Bits (65) zur Erzeugung eines ODER-Terms miteinander ODER-verknüpft sind (70).
4. Programmierbare Logikanordnung nach Anspruch 3, dadurch gekennzeichnet, daß wenigstens eine zweite Anzahl von programmierbaren Bits (65Y mit den Eingaben beaufschlagbar ist und daß die Ausgänge jedes der zweiten Anzahl von programmierbaren Bits zur Bildung wenigstens eines zweiten ODER-Terms miteinander ODER-verknüpft sind.
5. Software-programmierbare Logikanordnung, gekennzeichnet durch eine Anzahl von programmierbaren Bits (71 ^, von denen jedes dynamisch derart programmierbar ist, daß sein Ausgang selektiv
"0" bei einer Eingabe "1" und "1" bei einer Eingabe "0" ist; oder
"1" bei einer Eingabe "1" und "0" bei einer Eingabe "0" ist.
6. Software-programmierbare Logikanordnung, dadurch gekennzeichnet ,
daß eine UND-Ebene (13) zur Aufnahme mehrerer Eingangssignale mit wenigstens einem Satz programmierbarer Bits (3 1) versehen ist, die jeweils ein vorgegebenes und dynamisch programmierbares Ausgangssignal erzeugen, wobei die Ausgänge jedes der Sätze von programmierbaren Bits zur Ausgabe wenigstens eines UND-Terms miteinander ÜND-verknüpft sind, und daß eine ODER-Ebene (17) an die UND-Ebene (13) derart angekoppelt ist, daß wenigstens ein ÜND-Term-Ausgang der UND-Ebene in die ODER-Ebene eingegeben wird, daß die ODER-Ebene wenigstens einen Satz von programmierbaren Bits (65) aufweist, von denen
jeder ein vorgegebenes und dynamisch programmierbares Ausgangssignal erzeugt, und daß die Ausgänge jedes programmierbaren Bits (65) dieses Satzes zur Ausgabe wenigstens eines
ODER-Terms miteinander ODER-verknüpft sind.
7. Programmierbare Logikanordnung nach Anspruch 6, dadurch gekennzeichnet, daß eine Ausgangspolarität-Auswahlebene (21)
der ODER-Ebene (17) derart nachgeschaltet ist, daß der wenigstens eine ODER-Term-Ausgang der ODER-Ebene in die Ausgangspolarität-Auswahlebene eingegeben wird, und daß die Ausgangspolarität-Auswahlebene wenigstens einen Satz programmierbarer
Bits (71) aufweist, von denen jedes ein vorgegebenes und dynamisch programmierbares Ausgangssignal erzeugt, das entweder
gleich dem eingegebenen Signal oder gleich dessen Inversionswert ist.
8. Programmierbare Logikanordnung nach Anspruch 6 oder 7,
dadurch gekennzeichnet, daß jedes der programmierbaren Bits
(31) der ÜND-Ebene (13) dynamisch derart programmierbar ist,
daß es selektiv die folgenden Ausgangszustände erzeugt:
"0" unabhängig von einer Eingabe "0" oder "1";
"1" unabhängig von einer Eingabe "0" oder "1";
"0" bei einer Eingabe "0" und "1" bei einer Eingabe "1"; oder
"1" bei einer Eingabe "0" und "0" bei einer Eingabe "1", und daß die Ausgänge jedes der programmierbaren Bits (31) zur Erzeugung eines UND-Terms UND-verknüpft sind.
9. Programmierbare Logikanordnung nach einem der Ansprüche bis 8, dadurch gekennzeichnet, daß jedes der programmierbaren Bits (65) der ODER-Ebene derart dynamisch programmierbar ist, daß sein Ausgang selektiv
"0" bei einer Eingabe "1" und "0" bei einer Eingabe "0"; oder
"1" bei einer Eingabe "1" und "O" bei einer Eingabe "0" ist,
und daß die Ausgänge jedes der programmierbaren Bits (65) der ODER-Ebene zur Erzeugung eines ODER-Terms miteinander ODER-verknüpft sind.
10. Programmierbare Logikanordnung nach Anspruch 1 oder 8, dadurch gekennzeichnet, daß jedes der programmierbaren Bits (31) mit einem ersten Flipflop (43), dessen Q-Ausgang 47 einem ersten UND-Gatter (5 3) eingegeben wird, und einem zweiten Flipflop (45) versehen ist, dessen Q-Ausgang (49) einem zweiten UND-Gatter (5 7) eingegeben wird, daß ein zweiter Eingang (51) des ersten UND-Gatters (53) ein vorgegebenes Eingangssignal (0-L) erhält, daß ein zweiter Eingang des zweiten UND-Gatters (57) mit dem invertierten vorgegebenen Eingangssignal beaufschlagt ist und daß die Ausgangssignale der beiden UND-Gatter (53, 57) einem ODER-Gatter (59) eingegeben werden, dessen Ausgangssignal der Ausgang jedes der programmierbaren Bits (31) ist.
11. Programmierbare Logikanordnung nach Anspruch 3 oder 9, dadurch gekennzeichnet, daß jedes der programmierbaren Bits (65) ein Flipflop (67) aufweist, dessen Q-Ausgang einem UND-Gatter (69) eingegeben wird, daß der zweite Eingang (68) des UND-Gatters (69) mit einem vorgegebenen Eingangssignal beaufschlagt ist und daß das Ausgangssignal des UND-Gatters (69) der Ausgang jedes der programmierbaren Bits (65) ist.
12. Programmierbare Logikanordnung nach Anspruch 5 oder 7, dadurch gekennzeichnet, daß jedes der programmierbaren Bits (71) ein Flipflop (75) aufweist, dessen Q-Ausgang ein Eingang eines ersten UND-Gatters (77) und dessen ^-Ausgang ein Eingang eines zweiten UND-Gatters (79) ist, daß ein zweiter Eingang (81) des ersten UND-Gatters (77) mit einem vorgegebenen Ein-
gangssignal beaufschlagt ist, daß ein zweiter Eingang des zweiten UND-Gatters (79) mit dem invertierten vorgegebenen Eingangssignal beaufschlagt ist und daß die Ausgänge der beiden UND-Gatter (77, 79) mit den Eingängen eines ODER-Gatters (85) verbunden sind, dessen Ausgangssignal den Ausgang jedes der programmierbaren Bits (71) darstellt.
DE19863603975 1985-02-14 1986-02-08 Software-programmierbare logikanordnung Withdrawn DE3603975A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US70204685A 1985-02-14 1985-02-14

Publications (1)

Publication Number Publication Date
DE3603975A1 true DE3603975A1 (de) 1986-08-14

Family

ID=24819660

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19863603975 Withdrawn DE3603975A1 (de) 1985-02-14 1986-02-08 Software-programmierbare logikanordnung

Country Status (3)

Country Link
JP (1) JPS61192125A (de)
DE (1) DE3603975A1 (de)
GB (2) GB2171231B (de)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4870302A (en) * 1984-03-12 1989-09-26 Xilinx, Inc. Configurable electrical circuit having configurable logic elements and configurable interconnects
USRE34363E (en) 1984-03-12 1993-08-31 Xilinx, Inc. Configurable electrical circuit having configurable logic elements and configurable interconnects
GB2202355B (en) * 1985-02-27 1989-10-11 Xilinx Inc Configurable storage circuit
GB8621357D0 (en) * 1986-09-04 1986-10-15 Mcallister R I Hinged barrier semiconductor integrated circuits
US4823295A (en) * 1986-11-10 1989-04-18 Harris Corp. High speed signal processor
US4831573A (en) * 1987-03-06 1989-05-16 Altera Corporation Programmable integrated circuit micro-sequencer device
US5144582A (en) * 1990-03-30 1992-09-01 Sgs-Thomson Microelectronics, Inc. Sram based cell for programmable logic devices
US5198705A (en) 1990-05-11 1993-03-30 Actel Corporation Logic module with configurable combinational and sequential blocks
US5936426A (en) 1997-02-03 1999-08-10 Actel Corporation Logic function module for field programmable array

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
BE631780A (de) * 1962-05-09
IT1063025B (it) * 1975-04-29 1985-02-11 Siemens Ag Disposizione circuitale logica integrata e programmabile
US4009472A (en) * 1975-05-16 1977-02-22 Ibm Corporation Dynamic associative cell
US4071902A (en) * 1976-06-30 1978-01-31 International Business Machines Corporation Reduced overhead for clock testing in a level system scan design (LSSD) system
US4578771A (en) * 1980-12-29 1986-03-25 International Business Machines Corporation Dynamically reprogrammable array logic system
US4524430A (en) * 1983-01-11 1985-06-18 Burroughs Corporation Dynamic data re-programmable PLA
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
DE3342354A1 (de) * 1983-04-14 1984-10-18 Control Data Corp., Minneapolis, Minn. Weich programmierbare logikanordnung
JPS59207743A (ja) * 1983-05-11 1984-11-24 Mitsubishi Electric Corp 汎用論理回路

Also Published As

Publication number Publication date
JPS61192125A (ja) 1986-08-26
GB2184878A (en) 1987-07-01
GB2171231B (en) 1989-11-01
GB2184878B (en) 1989-11-01
GB2171231A (en) 1986-08-20
GB8522863D0 (en) 1985-10-23
GB8703963D0 (en) 1987-03-25

Similar Documents

Publication Publication Date Title
DE2751097C2 (de) Schaltungsanordnung zum Erzeugen eines Kennsignals
DE2725395C3 (de) Einrichtung zur Echtzeittransformation von m in Zeilen angeordneten Wörtern der Bitlänge n in n in Spalten angeordneten Wörter der Bitlänge n
DE1499722C2 (de) Einrichtung zur Modifizierung von Informationswörtern
DE68914172T2 (de) Datenverarbeitungssystem und Videoverarbeitungssystem mit einem derartigen Datenverarbeitungssystem.
DE2540975A1 (de) Multi-mikro-prozessor-einheit
DE2364408A1 (de) System zur erstellung von schaltungsanordnungen aus hochintegrierten chips
DE3243935C2 (de)
DE3789253T2 (de) Bildverarbeitungsgerät zur Bildvergrösserung und/oder Bildschrumpfung.
DE2926322A1 (de) Speicher-subsystem
DE1262641B (de) Mikroprogrammsteuerwerk
DE2951040C2 (de)
DE3603975A1 (de) Software-programmierbare logikanordnung
DE2900586C2 (de) Anordnung zum Decodieren von Codewörtern variabler Länge
DE2638208C2 (de)
DE68926597T2 (de) Mikrorechner
DE3543471C1 (de) In integrierter Technik hergestellter Baustein zur Erstellung integrierter Schaltungen
DE68926158T2 (de) Einchip-Mikrorechner mit EPROM
DE2235883C3 (de) Datenverarbeitungseinrichtung
DE69215184T2 (de) Integrierte Schaltung
DE2729361A1 (de) Speicherschaltung
DE2233164C3 (de) Schaltungsanordnung zur Übertragung von aufeinanderfolgenden Bitstellen zwischen zwei Registern
DE3149926A1 (de) Programmierbare vergleichsschaltung
AT354783B (de) Programmierbare schaltung zur datenverarbeitung
DE1806172A1 (de) Prioritaetsschaltung
DE1806464A1 (de) Adressengenerator fuer einen Digitalrechner

Legal Events

Date Code Title Description
8139 Disposal/non-payment of the annual fee