DE3603975A1 - Software-programmierbare logikanordnung - Google Patents
Software-programmierbare logikanordnungInfo
- 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
Links
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/02—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
- H03K19/173—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
- H03K19/177—Logic 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/17704—Logic 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/17708—Logic 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/17712—Logic 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.
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;
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
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)
1. Software-programmierbare Logikanordnung,
dadurch gekennzeichnet ,
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:
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.
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:
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.
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.
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
dadurch gekennzeichnet, daß jedes der programmierbaren Bits
(31) der ÜND-Ebene (13) dynamisch derart programmierbar ist,
daß es selektiv die folgenden Ausgangszustände erzeugt:
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.
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)
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)
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 | 汎用論理回路 |
-
1985
- 1985-09-16 GB GB8522863A patent/GB2171231B/en not_active Expired
- 1985-10-11 JP JP60226628A patent/JPS61192125A/ja active Pending
-
1986
- 1986-02-08 DE DE19863603975 patent/DE3603975A1/de not_active Withdrawn
-
1987
- 1987-02-20 GB GB8703963A patent/GB2184878B/en not_active Expired
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 |