DE4417575C2 - Verbesserte Array-Architektur für programmierbare logische Zellen - Google Patents
Verbesserte Array-Architektur für programmierbare logische ZellenInfo
- Publication number
- DE4417575C2 DE4417575C2 DE4417575A DE4417575A DE4417575C2 DE 4417575 C2 DE4417575 C2 DE 4417575C2 DE 4417575 A DE4417575 A DE 4417575A DE 4417575 A DE4417575 A DE 4417575A DE 4417575 C2 DE4417575 C2 DE 4417575C2
- Authority
- DE
- Germany
- Prior art keywords
- programmable logic
- inputs
- register file
- bit
- circuit
- 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
- 230000015654 memory Effects 0.000 claims description 53
- 230000004913 activation Effects 0.000 claims description 6
- 230000002457 bidirectional effect Effects 0.000 claims description 4
- 201000007902 Primary cutaneous amyloidosis Diseases 0.000 description 68
- 230000006870 function Effects 0.000 description 29
- 238000010586 diagram Methods 0.000 description 27
- 230000002829 reductive effect Effects 0.000 description 16
- 238000013461 design Methods 0.000 description 8
- 238000013459 approach Methods 0.000 description 5
- 238000003491 array Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 230000011664 signaling Effects 0.000 description 3
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 230000006386 memory function Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 101100420769 Drosophila melanogaster scaf gene Proteins 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000000034 method Methods 0.000 description 1
- 229920001610 polycaprolactone Polymers 0.000 description 1
- 235000021395 porridge Nutrition 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1051—Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits
- G11C7/106—Data output latches
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1051—Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1078—Data input circuits, e.g. write amplifiers, data input buffers, data input registers, data input level conversion circuits
-
- 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/1733—Controllable logic circuits
- H03K19/1737—Controllable logic circuits using multiplexers
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Logic Circuits (AREA)
- Static Random-Access Memory (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
- Electronic Switches (AREA)
Description
Die vorliegende Erfindung bezieht sich auf ein Array für
programmierbare logische Zellen und insbesondere auf eine
Array-Architektur für programmierbare logische Zellen, die
wirksam Demultiplexer und Registerdateien mit mehreren Ein
gängen unterstützt. Arrays für programmierbare logische Zel
len (Programmable Logic Cell Arrays = PLCAs) sind integrier
te Schaltungen, die konfigurierbare digitale logische Funk
tionen und Signalführungsmittel enthalten. Es seien zum Bei
spiel Brandenburg und andere, Poor Man′s Gate Arrays: Logic
Cell Arrays, IEEE Transactions on Nuclear Science, Band 35,
Nr. 1, Februar 1988, Seiten 213-216, und Freeman, User-pro
grammable Gate Arrays, IEEE Spectrum, Dezember 1988, Seiten
32-35, betrachtet. Durch geeignete Programmierung kann ein
PLCA eine Vielzahl von verschiedenen logischen Schaltungen
simulieren. Die Fähigkeit PLCAs zu programmieren und umzu
programmieren liefert den Schaltungsentwicklern erwiesener
maßen ein großes Maß an Flexibilität.
Die Flexibilität, die durch die PLCAs geboten wird, macht es
möglich, neue logische Entwürfe ohne den Aufwand, den Ent
wurf mit diskreten Komponenten aufzubauen oder den Entwurf
in einer kundenspezifischen integrierten Schaltung als Pro
totyp herzustellen, schnell zu erstellen. Der Kompromiß
liegt selbstverständlich darin, daß, da PLCAs dazu bestimmt
sind, eine große Vielzahl von logischen Entwürfen zu unter
stützen, die Architektur der PLCAs eine Funktionalität der
Signalführung und eine logische Funktionalität enthalten
muß, die wahrscheinlich nicht in allen Anwendungen verwendet
wird. Deshalb neigen für eine gegebene Anwendung die Effi
zienz oder die wirksame Verwendung der PLCA-Mittel dazu,
verglichen mit der Effizienz, die bei einer kundenspezifi
schen integrierten Schaltungsrealisation erreicht werden
kann, niedrig zu sein. Der Verlust an Effizienz wird durch
die Flexibilität der Vorrichtung gemildert, aber es gibt ei
nige digitale Schaltungen, die, wenn sie auf ein übliches
PLCA abgebildet werden, eine derart extrem niedrige Effizi
enz aufweisen, daß es unzweckmäßig ist, diese in einem PLCA
(oder einem System von PLCAs) zu realisieren.
Aufgrund ihrer Flexibilität sind PLCAs wichtige Komponenten
beim Aufbau von Schnellstlogik-Simulatoren oder allgemeiner
von konfigurierbaren Hardware-Systemen (auch "virtuelle
Hardware" genannt). Es seien zum Beispiel Kean u. a., Imple
mentation of Configurable Hardware using Wafer Scale Inte
gration, 1990 International Conference on Wafer Scale Inte
gration, Seiten 68-73; Kean u. a., Configurable Hardware: A
New Paradigm for Computation, 1989 Decennial Caltech Confe
rence on VLSI, betrachtet. In solchen Anwendungen sind hun
derte oder tausende von PLCAs elektrisch verschaltet, um ein
Prototypen-Prüffeld zum Entwickeln von und Experimentieren
mit neuen digitalen Systementwürfen. Ein neuer Entwurf wird
auf dem Simulator durch Programmierung der PLCA-Komponenten
"abgebildet", so daß der Simulator als ein Ganzes funktional
das Verhalten des Systems, das entwickelt werden soll, simu
liert. Dies macht es möglich, komplexe logische Systeme (z. B.
Computerprozessoren, Graphikprozessoren, digitale Signal
verarbeitungssysteme, usw.) viel schneller als es bei der
Verwendung von üblichen Werkzeugen, z. B. Softwaresimulation
und Erstellung von Hardware-Prototypen, möglich ist, zu ent
wickeln, auszutesten und zu prüfen.
Eine wichtige Komponente vieler neuer digitaler Schnellst
schaltungsentwürfe (z. B. Computerprozessorentwürfe) ist ei
ne Registerdatei mit mehreren Eingängen (ein Array von Regi
stern, das gleichzeitig an vielen verschiedenen Eingängen
gelesen und beschrieben werden kann). Daher ist es er
wünscht, solche Registerdateien auf PLCAs abzubilden, damit
ein Logiksimulator, der aus solchen PLCAs aufgebaut ist, die
Entwicklung solcher digitaler Schaltungsentwürfe unter
stützt. Ungünstigerweise existiert ein schwerwiegendes Pro
blem, das es unmöglich macht, Demultiplexer oder Registerfi
les mit ausreichender Effizienz auf bekannte PLCA-Architek
turen abzubilden, um zweckmäßig zu sein.
Wenn Registerdateien mit mehreren Eingängen mit reiner
Bool′scher Logik realisiert sind, erfordern sie eine große
Anzahl von Gattern. Zum Beispiel erfordert eine 80 Bit brei
te Datei von 96 Registern mit vier Schreibeingängen und acht
Leseeingängen mehr als 250 000 Gatter oder logische Funkti
onen mit zwei Eingängen. Es wurde berechnet, daß eine solche
Registerdatei mit mehreren Eingängen über 400 herkömmliche
PLCAs erfordern würde, um dargestellt zu werden, wenn dies
überhaupt möglich ist.
Man könnte hoffen, daß das Darstellen einer solchen Schal
tung in Ausdrücken von logischen Zellen mit sechs Eingängen
und zwei Ausgängen zu einer signifikanten Verringerung der
benötigten logischen Funktionen führen könnte, da beobachtet
wurde, daß dies bei vielen anderen Schaltungen der Fall ist.
Zum Beispiel besitzt die Xilinx Corporation in San Jose, Ka
lifornien, PLCA-Software, die eine Schaltung, die aus Gat
tern mit zwei Eingängen und einem Ausgang besteht, verwenden
kann, und diese in eine logisch-äquivalente Schaltung von
Gattern (logischen Funktionen) mit fünf Eingängen und zwei
Ausgängen transformiert, wobei häufig eine Verringerung der
Anzahl der benötigten Gatter um einen Faktor von 10 oder
mehr erreicht wird. Allerdings geschieht dies nicht für De
multiplexer (Decoder) oder Registerdateien mit mehreren Ein
gängen. Die oben genannte Registerdatei bewirkt z. B. eine
Komprimierung auf näherungsweise 90 000 Gatter (logische
Funktionen) mit sechs Eingängen und zwei Ausgängen, was ein
sehr geringes Maß an Komprimierung, verglichen mit vielen
anderen Schaltungen, ist. Die Verwendung von PLCAs, die 256
logische Zellen mit sechs Eingängen und zwei Ausgängen (das
ist eine ziemlich typische Anzahl für existierende PLCAs)
enthalten, um die Registerdatei zu realisieren, würde mini
mal 350 von diesen erfordern, wobei unbegrenzte Signalfüh
rungsmittel und keine E/A-Anschlußstift-Begrenzungen (E/A =
Eingangs/Ausgangs) vorausgesetzt sind. Wahrscheinlich wird
tatsächlich eine größere Anzahl an PLCAs als diese erforder
lich sein.
Ein weiterer Lösungsansatz könnte darin liegen, eine Regi
sterdatei mit mehreren Eingängen als einen Sonderfall zu be
handeln, indem sie aus diskreten Komponenten aufgebaut wird
und über eine Schnittstelle an den Simulator angeschlossen
wird. Dieser Lösungsansatz ist jedoch aus einer Anzahl von
Gründen nicht zweckmäßig. Ein Grund ist, daß der Sonderfall
lösungsansatz eine große Anzahl von diskreten gebrauchsfer
tigen Komponenten (z. B. mehr als 100) erfordert. Ein weite
rer Grund liegt darin, daß der Sonderfallösungsansatz eine
große Anzahl von Signalen (z. B. mehr als 1000) erfordert,
die über eine Schnittstelle an den Simulator angelegt werden
müssen. Noch ein weiterer Grund, warum der Sonderfallösungs
ansatz unzweckmäßig ist, liegt darin, daß er, bezugnehmend
auf die Registerdateiparamater (z. B. Bit-Breite, Anzahl der
Register, Anzahl der Eingänge), unflexibel ist.
Folglich besteht ein Bedarf nach einer PLCA-Architektur, die
effizient Demultiplexer und Registerdateien mit mehreren
Eingängen unterstützen kann, ohne PLCA-Funktionalität oder
-Flexibilität zu opfern.
Die DE-A-38 39 113 beschreibt ein programmierbares Logikfeld
mit veränderbarem Logikaufbau. Dieses bekannte Logikfeld
weist eine Mehrzahl von programmierbaren Zellen auf, die
über Schalteinrichtungen zum Erhalten einer erwünschten
Logikfunktion programmierbar sind.
Die DE-A-39 41 710 beschreibt eine programmierbare integrierte
Schaltungsanordnung, die mehrere Verknüpfungsglieder in der
Form einer Matrix aus programmierbaren Kopplungspunkten zwi
schen Zeilen- und Spaltenleitungen aufweisen, von denen die
Zeilenleitungen mit Eingangsanschlüssen der Schaltungsan
ordnung sowie über Rückkopplungswege mit Ausgängen einiger
Spaltenzuleitungen der Matrix verbunden sind. Zumindest ei
nige Rückkopplungswege haben binäre Schaltungen mit Multi
plexer, die in einer Stellung über die binäre Schaltung füh
ren und in einer anderen Stellung direkt unter Umgehung der
binären Schaltung durchschalten.
Die Schrift on Jenny Yee, "Programmierbare Logik mit flexi
bler Ausgangsarchitektur", elektronik industrie 9, 1985,
S. 43-49, beschreibt die einfache Anwendung und hohe Flexi
bilität programmierbarer Logikbausteine.
Ausgehend von diesem Stand der Technik besteht die Aufgabe
der vorliegenden Erfindung besteht darin, eine verbesserte
programmierbare logische Schaltung für programmierbare lo
gische Zellen zu schaffen, die als Multiplexer und Demulti
plexer wirksam ist, ohne die Funktionalität oder die Flexi
bilität der Schaltung zu opfern.
Diese Aufgabe wird durch eine programmierbare logische
Schaltung nach Anspruch 1 gelöst.
Gemäß einem weiteren Aspekt der vorliegenden Erfindung wird
ein programmierbares logisches Array geschaffen, eine Mehr
zahl der programmierbaren Schaltungen verwendet.
Allgemein gesprochen stellt die Erfindung eine verbesserte
Array-Architektur für programmierbare logische Zellen (PLCA)
dar, die eine wirksame Unterstützung für Demultiplexer und
Registerdateien mit mehreren Eingängen schafft, ohne die
Funktionalität oder die Flexibilität des PLCA zu opfern.
Grundsätzlich verändert die Erfindung die Architektur her
kömmlicher PLCs (PLC = Programmable Logic Cell = Program
mierbare Logische Zelle), so daß Demultiplexer und Register
dateien mit mehreren Eingängen effizient in PLCAs realisiert
werden können. Üblicherweise ist jede PLC eines PLCA mit ei
nem PLC-Multiplexer (Auswahlvorrichtung) und einem PLC-Spei
cher realisiert. Gemäß der Erfindung ist der PLC-Speicher
modifiziert, so daß er arbeiten kann, um Signale vom PLC-
Multiplexer (Auswahlvorrichtung) zu den Eingängen der PLC
weiterzuleiten, wenn der PLC-Multiplexer (aus einem Baum von
Durchlaßtransistoren aufgebaut) rückwärts betrieben wird, um
als ein Demultiplexer (Decoder) zu arbeiten. Daher realisie
ren PLCs gemäß der Erfindung Demultiplexer, wenn die PLCs
rückwärts betrieben werden. Außerdem kann eine Registerdatei
mit mehreren Eingängen effizient realisiert werden, indem
eine Registerdatei auf dem PLCA plaziert wird, und indem der
PLC-Speicher modifiziert wird, so daß er in verschiedenen
Modi arbeitet (normal, vorwärts und rückwärts). Im normalen
Modus arbeiten die PLCs als herkömmliche PLCs, im Vorwärts
modus arbeiten die PLCs als Leseeingänge und im Rückwärtsmo
dus arbeiten die PLCs als Schreibeingänge.
Bei einem ersten Ausführungsbeispiel der Erfindung enthält
ein PLCA zumindest PLCs, die mehr Eingänge als Ausgänge auf
weisen, wobei jede der PLCs geeignet ist, eine logische
Funktion durchzuführen, und konfigurierbare Signalführungs
mittel, um die Eingänge und die Ausgänge der PLCs zu ver
schalten. Jede der PLCs ist mit mindestens einem PLC-Spei
cher und einem PLC-Multiplexer realisiert, wodurch, in einem
normalen Modus, der PLC-Speicher Daten speichert und der
PLC-Multiplexer die Daten auswählt und ausgibt, und, im
Rückwärtsmodus, der PLC-Multiplexer als ein Demultiplexer
arbeitet und der PLC-Speicher die Ausgangsdaten vom Demulti
plexer zu den Eingängen der PLC, die im Rückwärts-Modus als
Ausgänge dienen, weiterleitet.
Bei einem zweiten Ausführungsbeispiel der Erfindung umfaßt
ein PLCA zumindest eine Registerdatei zum Speichern von Da
ten, PLCs mit Eingängen und Ausgängen, wobei eine Mehrzahl
der PLCs wirksam mit der Registerdatei verbunden ist, und
wobei jede der PLCs in einem Vorwärtsmodus, einem Rückwärts
modus und einem normalen Modus betrieben werden kann, und
konfigurierbare Signalführungsmittel, um Eingänge und Aus
gänge der PLCs zu verschalten. Schreibeingänge für die Re
gisterdatei werden durch die PLCs, die im Rückwärtsmodus
arbeiten, gebildet. Leseeingänge für die Registerdatei wer
den durch die PLCs, die im Vorwärtsmodus arbeiten, gebildet.
Jede PLC ist mit mindestens einem PLC-Speicher und einem
PLC-Multiplexer realisiert. Im Rückwärtsmodus arbeitet der
PLC-Multiplexer als ein Demultiplexer und der PLC-Speicher
leitet die Ausgangsdaten vom Demultiplexer zu den Eingängen
der PLC, die im Rückwärtsmodus als Ausgänge dienen, weiter.
Ferner sind im Rückwärtsmodus die Daten, die das Ausgabesi
gnal der Eingänge der PLC darstellen, mit der Registerdatei
gekoppelt, um Schreibbetrieb durchzuführen. Im Vorwärtsmodus
leitet der PLC-Speicher die Eingangsdaten für die PLC von
der Registerdatei zum PLC-Multiplexer, der die Daten aus
wählt und ausgibt.
Es gibt viele Vorteile, die mit der Erfindung verknüpft
sind. Erstens sind die Modifikationen zum herkömmlichen PLCA
minimal. Im speziellen benötigen die Modifikationen sehr we
nig zusätzliche Schaltungstechnik über das Maß hinaus, das
für PLCAs normalerweise erforderlich ist. Zweitens erreicht
die Erfindung eine wesentliche Komprimierung der Anzahl der
PLCs, die benötigt werden, um Demultiplexer oder Registerda
teien mit mehreren Eingängen zu realisieren. Zum Beispiel
wird die Anzahl von PLCs, die nötig ist, um eine 80 × 96-Regi
sterdatei mit vier Schreibeingängen und acht Leseeingängen
zu realisieren, von über 90 000 auf weniger als 3000 redu
ziert.
Bevorzugte Ausführungsbeispiele der vorliegenden Erfindung
werden nachfolgend unter Bezugnahme auf die beiliegenden
Zeichnungen näher erläutert. Es zeigen:
Fig. 1 ein Blockdiagramm einer Registerdatei mit mehreren
Eingängen, das wenig detailliert einen Array von
Registern, die gleichzeitig durch mehrere Schreib
eingänge beschrieben und durch mehrere Leseeingän
ge gelesen werden können, zeigt;
Fig. 2 ein Blockdiagramm einer Realisation eines Schreib
eingangs für eine Registerdatei mit mehreren Ein
gängen gemäß Fig. 1;
Fig. 3 ein Blockdiagramm einer Realisation von mehrfachen
Schreibeingängen für eine Registerdatei mit mehre
ren Eingängen gemäß Fig. 1;
Fig. 4 ein Blockdiagramm einer Realisation eines Leseein
gangs für eine Registerdatei mit mehreren Eingän
gen gemäß Fig. 1;
Fig. 5 ein Blockdiagramm einer Realisation einer Spei
cherzelle der Registerdatei gemäß Fig. 1;
Fig. 6 ein Blockdiagramm einer programmierbaren logischen
Zelle eines PLCAs;
Fig. 7 ein Blockdiagramm eines logischen Funktionsblocks
eines PLCAs, der als programmierbare Zugriffsta
belle realisiert ist;
Fig. 8 ein Blockdiagramm einer programmierbaren logischen
Zelle mit sechs Eingängen und zwei Ausgängen;
Fig. 9 ein schematisches Diagramm eines 4 : 1-Multiplexers,
der durch die Verwendung von Durchlaßtransistoren
realisiert ist;
Fig. 10 ein Blockdiagramm eines elementaren Ausführungs
beispiels der PLCA-Architektur für eine Register
datei mit mehreren Eingängen gemäß der Erfindung;
Fig. 11A und 11B Blockdiagramme eines ersten detaillierten
Ausführungsbeispiels einer Registerdatei mit meh
reren Eingängen gemäß der Erfindung;
Fig. 12A ein schematisches Diagramm einer Realisation des
steuerbaren Schalters, der in den Fig. 11A und 11B
gezeigt ist;
Fig. 12B ein Blockdiagramm einer Realisation der Register
datei gemäß Fig. 11;
Fig. 13 ein Blockdiagramm einer Realisation eines PLC-
Speichers gemäß der Erfindung; und
Fig. 14A und 14B Blockdiagramme eines zweiten detaillier
ten Ausführungsbeispiels einer Registerdatei mit
mehreren Eingängen gemäß der Erfindung.
Die Erfindung stellt eine PLCA-Architektur dar, die nicht
reduktive Funktionen, zum Beispiel Demultiplexer und Regi
sterdateien mit mehreren Eingängen, unterstützt. Die Erfin
dung erfordert nur minimale Änderungen und Ergänzungen der
Schaltungstechnik, die üblicherweise in existierenden PLCA-
Architekturen, die reduktive Funktionen realisieren, vorge
sehen sind. Ein wichtiges Merkmal der Erfindung besteht da
rin, daß sie existierende Strukturen in PLCAs ausnutzt, in
dem sie ermöglicht, daß diese rückwärts betrieben werden.
Um die Erfindung voll einzusehen ist es nützlich, zuerst die
Struktur der Demultiplexer und Registerdateien mit mehreren
Eingängen zu beschreiben und dann zu beschreiben, warum her
kömmliche PLCA-Architekturen nicht in der Lage sind, Demul
tiplexer und Registerdateien mit mehreren Eingängen wirksam
zu formen. Unten folgt eine solche Erörterung.
Fig. 1 ist ein Blockdiagramm einer Registerdatei mit mehre
ren Eingängen 2, das wenig detailliert ein Array von Regi
stern 4 darstellt, die gleichzeitig durch mehrere Schreib
eingänge 6 beschrieben und durch mehrere Leseeingänge 8
gelesen werden können. Jeder Schreibeingang verwendet als
Eingangssignale die Adresse des Registers 4, das beschrieben
werden soll, die Daten, die in das Register 4 geschrieben
werden sollen, und eine Schreibaktivier-Leitung, die ange
legt ist, um tatsächlich den Schreibbetrieb durchzuführen.
Jeder Leseeingang 8 verwendet eine Adresse des Registers 4,
um als ein Eingangssignal gelesen zu werden, und liefert den
Inhalt dieses Registers 4 als ein Ausgangssignal. Um die
folgende Erörterung zu vereinfachen wird angenommen, daß die
Registerdatei 2 aus N Registern besteht, wobei jedes Regi
ster ein Bit breit ist. Es sollte jedoch offensichtlich
sein, daß sich die Erörterung auf Register erstreckt, die
breiter sind.
Fig. 2 ist ein Blockdiagramm einer Realisation des Schreib
eingangs 6 gemäß Fig. 1. Jeder Schreibeingang 6 besteht näm
lich aus ersten und zweiten 1:N-Demultiplexern 20, die ein
Signalpaar an jeden der N Einzelbit-Register 4 in der Regi
sterdatei 2 liefern. Der erste Demultiplexer 20-1 decodiert
das Adreß- und das Schreibaktivier-Signal, um ein DATEI_-
SCHREIBEN-Signal zu höchstens einem der N Register 4 zu lie
fern. Der zweite Demultiplexer 20-2 decodiert die Adreß- und
Signalführungs-Eingangsdaten als ein DATEI_DATEN-Signal zu
dem gleichen Register 4 wie der erste Multiplexer 20-1. Die
se Signale sagen jedem Register 4, ob Daten darauf geschrie
ben werden sollen oder nicht, und wenn das der Fall ist,
welche Daten geschrieben werden sollen. Jeder Schreibeingang
6 ist in der Lage, gleichzeitig nur auf ein einzelnes Regi
ster zu schreiben.
Wenn mehrere Schreibeingänge 6 mit Schnittstellen an die Re
gisterdatei 2 angeschlossen sind, muß das Signalpaar (DA-
TEI_SCHREIBEN, DATEI_DATEN) von jedem Schreibeingang 6 gemäß
Fig. 3 kombiniert werden, bevor es dem Register 4 geliefert
wird, da jedes Register 4 nur ein einzelnes Paar von Signa
len (DATEI_SCHREIBEN, DATEI_DATEN) verarbeiten kann. Für ein
gegebenes Register 4 sind die DATEI_SCHREIBEN-Signale von
jedem Schreibeingang 6 durch die logische Bedingung ODER
miteinander verknüpft, um ein kombiniertes DATEI_SCHREIBEN-
Eingangssignal zu bilden. Die logische ODER-Verbindung kann
durch ODER-Gatter 30 gemäß Fig. 3 durchgeführt sein. Ähnlich
werden die DATEI_DATEN-Signale von jedem Leseeingang 6 durch
eine ODER-Bedingungen miteinander verknüpft, um ein kombi
niertes DATEI_DATEN-Eingangssignal zu bilden. Es sei zu be
merken, daß ein undefinierter Betrieb vorliegt, wenn zwei
Eingänge gleichzeitig versuchen, auf das gleiche Register zu
schreiben.
Fig. 4 ist ein Blockdiagramm einer Realisation des Leseein
gangs 8 für die Registerdatei mit mehreren Eingängen 2 gemäß
Fig. 1. Der Leseeingang 8 besteht aus einem Multiplexer 40,
der den Inhalt des Registers 4, der durch die Eingangsadres
se bezeichnet ist, auswählt und an seinen Ausgang liefert.
Mehrere Leseeingänge 8 haben die Ausgänge des Registers 4
einfach gemeinsam und erfordern keine Kombinier-Operationen
wie die Schreibeingänge 6.
Jedes Register 4 (genauer gesagt jedes Bit jedes Registers)
der Registerdatei 2 könnte als ein D-Typ-Flip-Flop 50 und
als ein 2 : 1-Multiplexer 52 gemäß Fig. 5 realisiert sein. Bei
Fig. 5 wählt das DATEI_SCHREIBEN-Signal eines von zwei Si
gnalen (DATEI_DATEN oder das gegenwärtige Ausgangssignal 54
des Flip-Flops) als Eingangssignal zum Flip-Flop 50. Wenn
das Signal DATEI_SCHREIBEN angelegt ist, wird das DATEI_DA-
TEN-Signal zum Eingang D des Flip-Flops 50 geliefert, an
dernfalls wird das gegenwärtige Ausgangssignal 54 des Flip-
Flops 50 an seinen Eingang zurückgeführt, so daß der Zustand
des Flip-Flops 50 ohne Veränderung wirksam gehalten wird,
wenn es durch einen Systemtakt getaktet wird.
Die meisten herkömmlichen PLCAs umfassen zwei Hauptkomponen
ten: programmierbare logische Zellen, die gewisse kombinato
rische logische Funktionen realisieren, und konfigurierbare
Signalführungsmittel, die verwendet werden können, um Ein
gänge und Ausgänge der logischen Zellen miteinander und mit
externen E/A-Anschlußstiften zu verbinden. Fig. 6 ist ein
Blockdiagramm einer programmierbaren logischen Zelle 60. Die
programmierbare logische Zelle 60 besteht aus einem logi
schen Funktionsblock 62, der mehrere Eingangssignale verwen
det und ein oder mehrere Ausgangssignale erzeugt, und dem
oft optionale Flip-Flops 64 folgen. Wenn die programmierbare
logische Zelle 60 Flip-Flops 64 enthält, kann das Ausgangs
signal der logischen Zelle 60 gemäß Fig. 6 den Ausgang des
Flip-Flops 64 typischerweise umgehen, wenn es erwünscht ist.
Im Handel erhältliche PLCAs haben typischerweise zwischen
drei und neun Eingänge und nur ein oder zwei Ausgänge. Es
ist wichtig zu bemerken, daß die Funktionen, die von exi
stierenden PLCs unterstützt werden, alle reduktiv sind.
Existierende PLCs verwenden nämlich eine Anzahl von Eingän
gen und kombinieren diese, um eine geringere Anzahl von Aus
gängen zu erzeugen.
Der logische Funktionsblock 62 ist in den meisten Fällen,
wenn auch nicht immer, als eine programmierbare Zugriffsta
belle realisiert. Fig. 7 ist ein Blockdiagramm eines logi
schen Funktionsblocks 62, der als eine programmierbare Zu
griffstabelle realisiert ist. Bei Fig. 7 besteht die pro
grammierbare Zugriffstabelle aus einem Multiplexer 70 und
einem kleinen programmierbaren Speicher 72, wobei beide im
logischen Funktionsblock 62 realisiert sind. Eingangssignale
werden vom Multiplexer 70 verwendet, um eines der Bits des
Speichers 72 zu adressieren, so daß die gewünschte Funktion
ausgegeben werden kann. Dieses Schema ermöglicht es, jede
willkürliche Funktion der Eingangssignale zu realisieren.
Die obige Beschreibung der Struktur der Demultiplexer und
der Registerdateien mit mehreren Eingängen hilft zu erklä
ren, warum herkömmliche PLCA-Architektur nicht in der Lage
ist, wirksam Demultiplexer und Registerdateien mit mehreren
Eingängen zu formen. Es wird angenommen, daß die Demulti
plexer der Ursprung des Problems sind. Gemäß der obigen Er
örterung erfordern die Schreibeingänge der Registerdateien
mit mehreren Eingängen die Verwendung von Demultiplexern.
Demultiplexer sind nicht-reduktive logische Elemente. Das
heißt, sie verwenden eine kleine Anzahl von Eingängen und
transformieren diese in eine große Anzahl von Ausgängen. Im
Gegensatz dazu sind die logischen Zellen in PLCAs, wie oben
erörtert, reduktiv. Obwohl eine reduktive Logik eine ver
nünftige Architekturentwurfs-Entscheidung ist, macht sie es
schwierig, Schaltungen zu realisieren, die eine nicht-reduk
tive Logik enthalten, da die Realisierung derartiger Logik
mit reduktiven logischen Zellen extrem uneffizient ist.
Eine Lösung könnte darin bestehen, einige nicht-reduktive
logische Zellen in ein PLCA einzubauen, um Situationen wie
diese zu handhaben, aber Nachteile machen diese Lösung un
zweckmäßig. Die Nachteile, einige nicht-reduktive logische
Zellen in einem PLCA vorzusehen lauten wie folgt: (1) dies
muß auf Kosten von Schaltungen, die solche Funktionen nicht
benötigen, geschehen; (2) es werden so viele nicht-reduktive
logische Zellen benötigt (zumindest im Fall der Registerda
teien mit mehreren Eingängen), daß auf der PLCA wenig Platz
für die reduktiven Funktionen bleibt; und (3) die Menge der
PLCA-Signalführungsmittel müßte stark erhöht werden, um die
größere Anzahl von Signalen zu handhaben, wobei folglich die
Anzahl der logischen Zellen, die auf einem einzelnen Chip
untergebracht werden kann, reduziert wird.
Die Erfindung schafft eine neuartige Lösung dieses Problems,
so daß PLCAs effizient nicht-reduktive Schaltungen (z. B.
Demultiplexer und Registerdateien mit mehreren Eingängen)
unterstützen, ohne merklich Schaltungen zu benachteiligen,
die solche Unterstützung nicht erfordern.
Ausführungsbeispiele der Erfindung sind nachfolgend bezug
nehmend auf die Fig. 8-14 erörtert. Für Fachleute ist es je
doch ohne weiteres offensichtlich, daß die hierin gegebene
detaillierte Beschreibung bezugnehmend auf diese Figuren er
läuternden Zwecken dient, während sich die Erfindung über
diese begrenzten Ausführungsbeispiele hinaus erstreckt.
In der folgenden Erörterung wird vorausgesetzt, daß die PLCA
programmierbare logische Zellen (PLCs) mit sechs Eingängen
und zwei Ausgängen umfaßt, da angenommen wird, daß dies die
beste Verwendung der gegenwärtigen Hardware- und Software-
Technologie darstellt, obwohl die Erfindung auf konfigurier
bare logische Blöcke mit unterschiedlichen Anzahlen von Ein
gängen und Ausgängen anwendbar ist.
Eine PLC mit sechs Eingängen und zwei Ausgängen kann gemäß
Fig. 8 realisiert werden (wenn man die optionalen Flip-Flops
an den Ausgängen der PLCs, die in Fig. 6 gezeigt sind, um
geht). Intern ist der logische Funktionsblock 80 mit sechs
Eingängen und zwei Ausgängen als zwei Funktionen 82, 84 mit
sechs Eingängen und einem Ausgang realisiert, wobei der
gleiche Satz von sechs Eingängen für beide Funktionen 82, 84
verwendet wird. Die Wahrheitstabelle für jede Funktion 82,
84 mit sechs Eingängen und einem Ausgang ist in einem 64-
Bit-Speicher (2⁶ = 64) 86 gespeichert. Während der Konfigu
ration wird jeder 64-Bit-Speicher 86 beschrieben, wobei die
gezeigten Konfigurationsleitungen verwendet werden. Während
des normalen Betriebs sind die Konfigurationsleitungen elek
trisch von den Speichern 86 getrennt, so daß die Speicher 86
die Bits halten, mit denen sie programmiert worden sind. Die
6 Eingangssignale (ausgewählt und betrieben durch die Si
gnalführungsmittel des PLCA) werden verwendet, um zwei
64 : 1-Multiplexer 88 zu adressieren, von denen jeder eines
der 64 Bits im Speicher 86, der diesem zugeordnet ist, aus
wählt und es zum Signalführungs-Netzwerk hinaus zurücklei
tet. Es sei bemerkt, daß eine beliebige Funktion mit sechs
Eingängen und zwei Ausgängen durch eine geeignete Konfigu
ration der 64-Bit-Speicher realisiert werden kann.
PLCAs werden typischerweise unter Verwendung von Technolo
gien, die bidirektional sind, z. B. MOSFETs, hergestellt. In
solchen Bidirektionaltechnologien (z. B. CMOS, NMOS, PMOS)
sind die 64 : 1-Multiplexer 88 effizienter realisiert, wobei
ein Baum von Durchlaßtransistoren und nicht Bool′sche Gatter
(z. B. Bipolar-Transistoren) verwendet wird. Fig. 9 ist ein
schematisches Diagramm eines 4 : 1-Multiplexers 90, der unter
Verwendung eines Baums von Durchlaßtransistoren 92 re
alisiert ist, wobei die gleichen Grundsätze für den Aufbau
von größeren Multiplexern verwendet werden. Eine wichtige
Tatsache, die bemerkt werden muß, ist, daß die Schaltung als
ein Demultiplexer arbeitet, indem diese Schaltung "rück
wärts" (z. B. indem der einzelne Ausgang als ein Eingang
verwendet wird und die mehrfachen Eingänge als Ausgänge ver
wendet werden) betrieben wird.
Die Erfindung verwendet diesen Rückwärtsbetrieb, um die For
mung von Demultiplexern und Registerdateien mit mehreren
Eingängen in PLCAs zu erleichtern. Speziell indem die Multi
plexer 88 in der PLC 80 rückwärts betrieben werden, arbeiten
die Multiplexer 88 als Demultiplexer. Die Realisierung der
Registerdatei mit mehreren Eingängen 2 ist komplizierter.
Ein Leseeingang mit einem N:1-Multiplexer (siehe Fig. 4)
kann realisiert werden. Speziell durch das Abtrennen des
PLC-Speichers 86 kann der PLC-Multiplexer 88 für diese Funk
tion verwendet werden. Ein Schreibeingang kann realisiert
werden, indem zwei 1:N-Demultiplexer (siehe Fig. 2) verwen
det werden. Durch das Abtrennen der PLC-Speicher 86 und das
Rückwärtsbetreiben der zwei PLC-Multiplexer 88 werden die
zwei PLC-Multiplexer Demultiplexer.
Folglich ist die nicht-reduktive Logik, die benötigt wird,
um Demultiplexer und Registerdateien mit mehreren Eingängen
zu realisieren, verfügbar, wenn die PLCs rückwärts betrieben
werden. Die Erfindung schafft eine Einrichtung, durch die
auf diese reduktive Logik zugegriffen werden kann. Im Fall
der Registerdateien mit mehreren Eingängen ist die einzige
weitere Funktionalität, die benötigt wird, die ODER-Verknüp
fung der DATEI_SCHREIBEN- und DATEI_DATEN-Signale, die be
nötigt wird, um mehrfache Schreibeingänge, wie in Fig. 3 ge
zeigt, zu unterstützen. Wie nachfolgend gezeigt wird, kann
diese Funktionalität erreicht werden, indem verdrahtete
UND-Logik auf den Konfigurationsleitungen oder indem ODER-
Gatter verwendet werden.
PCLs werden im allgemeinen in einer Art von zweidimensio
nalem Array in PLCAs angeordnet. Jede Spalte kann als 16
unabhängige PLCs betrachtet werden. Andernfalls kann sie als
eine einzelne Einheit konfiguriert sein, um eine Registerda
tei mit mehreren Eingängen von 64 Registern und 16 Eingängen
zu werden. Es ist bevorzugt, die PLCs so zu betrachten, als
wären sie in "Spalten" logisch gruppiert, wobei jede Spalte
zum Beispiel 16 PLCs enthält. Die Verwendung von Spalten in
dieser Art und Weise reduziert die Verdrahtungslängen.
Fig. 10 ist ein Blockdiagramm eines elementaren Ausführungs
beispiels einer Registerdatei mit mehreren Eingängen gemäß
der Erfindung. Gemäß Fig. 10 umfaßt ein PLCA 100 eine Mehr
zahl von PLCs 102, 103, Registerdateien 104, Konfigurati
onsschaltungen 106, Konfigurationsleitungen 107, Pull-Up-
Schaltungen 108 und Schaltkreise 109. Obwohl die PLCs 102,
103 typischerweise in Spalten angeordnet sind, wie in Fig.
10 gezeigt ist, kann eine beliebige Topology verwendet wer
den. Die Registerdateien 104 können irgendwo auf der PLCA
100 vorgesehen sein, befinden sich jedoch vorzugsweise in
der Mitte jeder Spalte, um Leseeingänge von Schreibeingängen
zu trennen. Die Schreibeingänge 102 z. B. befinden sich gemäß
Fig. 10 über der dazugehörigen Registerdatei 104. Die Lese
eingänge 103 befinden sich unter der entsprechenden Regi
sterdatei 104.
Die Konfigurationsschaltung 106 existiert auf herkömmlichen
PLCAs und muß nicht weiter erörtert werden. Gemäß dem ele
mentaren Ausführungsbeispiel der Erfindung sind jedoch die
Konfigurationsleitungen 107 für jede Spalte mit jeder der
PLCs 102, 103 und der Registerdatei 104 in der jeweiligen
Spalte gekoppelt. Es sei zu bemerken, daß die Registerdatei
104 einen Durchlaßzustand besitzt, so daß die Konfigurati
onsleitungen 107 mit den PLCs 103 durch die Registerdatei
104 während des Programmierens der PLC-Speicher gekoppelt
werden können.
Die Schaltereinheit 109 wird durch ein Modus-Steuersignal
gesteuert. Wenn der PLCA 100 in seinem normalen Modus be
trieben wird, werden die PLC-Speicher in den PLCs 102, 103
durch Signale, die von der Konfigurationsschaltung 106 er
zeugt werden, und dann den Konfigurationsleitungen 107 über
die Schaltereinheit 109 zugeführt werden, programmiert. An
dererseits sind die Eingänge der PLC-Speicher der PLCs 102
(nur Schreibeingänge) mit der Pull-Up-Einheit 108 über die
Schaltereinheit 109 und mit der Registerdatei 104 gekoppelt,
wenn der PLCA in seinem Registerdatei-Modus betrieben wird.
Jedoch sind die Eingänge der PLC-Speicher der PLCs 103 (nur
Leseeingänge) mit den Ausgängen der Registerdatei 104 über
die Konfigurationsleitungen 107 gekoppelt, wenn das PLCA 100
in seinem Registerdatei-Modus betrieben wird. Zusätzlich
durchlaufen die Signale auf den Konfigurationsleitungen 107
nicht einfach die Registerdatei 104, wie dies im Durch
gangs-Modus der Fall ist, wenn das PLCA in dem Registerda
tei-Modus betrieben wird.
Die Details des Aufbaus der PLCs 102, 103, der Registerdatei
104, der Pull-Up-Einheit 108 und der Schaltereinheit 109
sind nachfolgend bezugnehmend auf weitere Figuren erörtert.
Dennoch werden die PLCs entweder in einem Rückwärts-Modus
betrieben, um Schreibeingänge zu bilden, oder in einem Vor
wärtsmodus betrieben, um Leseeingänge zu bilden, wenn das
PLCA in dem Registerdatei-Modus betrieben wird. Ferner, be
züglich der Realisierung eines Demultiplexers, realisiert
jede PLC, die im Rückwärtsmodus betrieben wird, einen Demul
tiplexer.
Die Fig. 11A und 11B stellen ein Blockdiagramm eines ersten
detaillierten Ausführungsbeispiels einer Registerdatei mit
mehreren Eingängen, die durch die Verwendung der PLCs effi
zient realisiert ist, dar. Eine Spalte von PLCs 110 in einem
PLCA ist in den Fig. 11A und 11B gezeigt. Jedoch sind der
Einfachheit halber nur vier der PLCs der Spalte gezeigt. Je
de PLC 110 besteht aus zwei Multiplexern 112, die aus Bidi
rektionalgattern (d. h. Schaltbäumen), UND-Gattern 113 mit
drei logischen Zuständen, zwei Sätzen von 64-Bit PLC-Spei
chern 114 und zwei Sätzen von Konfigurationsleitungen 116-1,
116-2 (64 Bits pro Satz), um die Bits der PLC-Speicher 114
zu programmieren, aufgebaut sind. Jeder Satz von Konfigura
tionsleitungen 116-1 und 116-2 bildet einen Bus. Während ei
ner Konfiguration werden Konfigurationsdaten gleichzeitig
parallel über den Bus zu allen PLCs 110 in einer Spalte ge
sendet, aber nur eine der PLCs 110 ist aktiviert, um die Da
ten anzunehmen. Somit benutzt jede PLC 110 die Konfigurati
onsleitungen 116-1, 116-2 mit den anderen PLCs in ihrer Rei
he zeitgestaffelt, wodurch nutzbare Chip-Fläche gesichert
wird.
Um in der Lage zu sein, die PLCAs als Registerdateien mit
mehreren Eingängen zu verwenden, müssen zwei zusätzliche
Komponenten ergänzt werden, nämlich Pull-Up-Widerstände 117,
die durch einen elektrisch steuerbaren Schalter 118 (durch
das "x" in Fig. 11 dargestellt) mit dem oberen Ende jeder
Konfigurationsleitung verbunden sind, was eine Verbindung
zur Vcc herstellt, und einer 64-Bit-Registerdatei 119. Vor
zugsweise halbiert die 64-Bit-Registerdatei 119 näherungs
weise mindestens einen der 64-Bit-Konfigurationsbusse 116.
In jedem Fall ist die Registerdatei 119, wie in Fig. 11A ge
zeigt, wirksam mit den Bussen 116-1 und 116-2 verbunden.
Die verbesserte PLCA-Architektur gemäß der Erfindung ist in
der Lage, in zwei verschiedenen Modi betrieben zu werden. In
einem ersten (normalen) Modus sind die PLCs einer Spalte als
einzelne PLCs konfiguriert und wirksam. In einem zweiten
(Registerdatei-) Modus sind die PLCs einer Spalte als ein
Registerdatei-Prozessorelement (bit slice) mit mehreren Ein
gängen konfiguriert und wirksam. Jeder dieser Modi wird
nachfolgend detaillierter erörtert.
In dem ersten Modus arbeiten die PLCs 110 in einer Spalte
wie einzelne PLCs in einem herkömmlichen PLCA. Während einer
Konfiguration der Spalte sind die Pull-Up-Widerstände 117 am
oberen Ende der Konfigurationsleitungen 116-1, 116-2 von den
Konfigurationsleitungen durch die steuerbaren Schalter 118
abgetrennt. Die Konfigurationsleitungen 116-1, 116-2 werden
von herkömmlicher Konfigurationsschaltungstechnik (Fig. 10)
betrieben.
Im ersten Modus ist die 64-Bit-Registerdatei 119 in einen
Durchlaßzustand gesetzt. In dem Durchlaßzustand werden alle
64 Signale, die die Registerdatei 119 von der linken Halb
spalte der Konfigurationsleitungen 116-1 über ihr empfängt,
zu der linken Halbspalte der Konfigurationsleitungen 116-1
unter ihr hinabgeleitet. Die 64 Signale, die von der Regi
sterdatei 119 von der rechten Halbspalte empfangen werden,
werden einfach ignoriert. Jeder PLC-Speicher 114 verwendet
die Konfigurationsleitungen 116-1, 116-2 als einen Eingang,
um seine Bits zu programmieren, wobei jedoch, wie oben er
örtert, nur ein PLC 110 gleichzeitig programmiert wird. Wenn
die Registerdatei 119 im Durchlaßzustand ist, überträgt sie
vorzugsweise nicht nur die Signale die Spalte hinab, sondern
erzeugt sie auch neu.
Während des Betriebs ist die Registerdatei 119 nicht pro
grammiert. Daher sind die Speicher-Bits wirksam von den Kon
figurationsbussen 116 abgetrennt. Nach der Konfiguration
kann die 64-Bit Registerdatei 119 im Durchlaßzustand belas
sen werden, wenn es erwünscht ist, sie kann jedoch nicht
länger das Wirken des PLCA bewirken.
Im ersten Modus arbeiten die PLC-Speicher 114 in einer her
kömmlichen Art und Weise. Jedes Bit ist nämlich in anti-pa
rallelen Invertern gespeichert. Jedes Inverterpaar ist über
einen Durchlaßtransistor mit einer Konfigurationsleitung
verbunden. Wenn das Programmsignal während der Konfiguration
angelegt ist, werden die Durchlaßtransistoren in den "an"-
Zustand geschaltet, und Daten von den Konfigurationsbussen
116 überschreiben die vorher gespeicherten Bits, wobei somit
die Bits programmiert werden.
Im zweiten Modus arbeiten die PLCs 110 in einer Spalte als
Eingänge für eine Registerdatei mit mehreren Eingängen. Ins
besondere wird jede PLC 110 über der 64-Bit-Registerdatei
119 als ein Schreibeingang verwendet, und jede PLC 110 unter
der Registerdatei 119 wird als ein Leseeingang verwendet.
Ferner wird die 64-Bit-Registerdatei 119 als eine ein Bit
breite Datei mit 64 Registern verwendet. Die Pull-Up-Wider
stände 117 sind mit den Konfigurationsleitungen, die als
"verdrahtete UNDs" verwendet sind, verbunden. Zusammen bil
den diese Komponenten ein 64 × 1 Prozessorelement, das mit
weiteren Prozessorelementen kombiniert werden kann, um Re
gisterdateien einer willkürlichen Größe zu bilden. Es sei
bemerkt, daß die Pull-Up-Widerstände 117 und die steuerbaren
Schalter 118 eine Realisation der Pull-Up-Einheit 108 und
der Schaltereinheit 109, die in Fig. 10 gezeigt sind, dar
stellen.
Die UND-Gatter mit drei logischen Zuständen 113 sind nur ak
tiviert, wenn die PLC 110 als ein Schreibeingang für eine
Registerdatei betrieben wird. Fig. 13 stellt die UND-Gatter
113 in den PLCs 110 dar, wobei sie als Schreibeingänge ar
beiten. Die UND-Gatter 113 hindern Daten daran, geschrieben
zu werden, wenn sie nicht durch das Schreibaktivier-Signal
zugelassen sind. Andererseits werden die UND-Gatter 113 um
gangen oder liegen nicht vor, wenn die PLCs 110 nicht als
Schreibeingänge arbeiten. In Fig. 11B arbeiten die PLCs 110
z. B. als Leseeingänge. Deshalb sind die UND-Gatter 113
nicht dargestellt, da sie entweder nicht existent oder inak
tiv sind.
Wenn eine Spalte als Eingänge für eine Registerdatei mit
mehreren Eingängen konfiguriert werden soll, müssen die
PLC-Speicher 114 nicht programmiert werden, da sie beim Be
trieb der Registerdatei mit mehreren Eingängen nicht verwen
det werden. Daher wird der PLC-Speicher 114 im zweiten Modus
in einem Durchlaßzustand betrieben, da eine Speicherfunktion
weder benötigt noch erwünscht ist. Mit Durchlaßzustand ist
sowohl der Fall gemeint, bei dem das Ausgangssignal das Ein
gangssignal ist, als auch der Fall, bei dem das Ausgangssi
gnal das invertierte Eingangssignal ist.
Fig. 12A ist ein schematisches Diagramm einer Realisation
des steuerbaren Schalters 118 gemäß Fig. 11A. Der Schalter
118 wird durch ein Modus-Steuersignal gesteuert, um eine
Konfigurationsleitung 116 (Anschluß B), einen Pull-Up-Wider
stand (Anschluß A) oder nichts auszuwählen. Fig. 12B ist ein
Blockdiagramm einer Realisation der Registerdatei 119 gemäß
Fig. 11A. Die Registerdatei 119 empfängt Datensignale D und
aktiviert Signale EN von den Konfigurationsbussen 116. Jede
Speicherzelle in der Registerdatei 119 kann mit einer Aus
wahlvorrichtung 120 und einem D-Typ-Flip-Flop, ähnlich dem
in Fig. 5 gezeigten, realisiert sein. Der Unterschied be
steht darin, daß jede Speicherzelle einen Durchlaßzustand
für den normalen Modus aufweist. Gemäß Fig. 12B wird ein
Schalter 124 verwendet, um zwischen den Anschlüssen C und D
gemäß einem Modus-Steuersignal umzuschalten. Im ersten Modus
verbindet der Schalter 124 den Ausgang der Registerdatei 119
mit dem Anschluß D, um die Speicherzelle zu umgehen. Im
zweiten Modus verbindet der Schalter 124 den Ausgang der Re
gisterdatei 119 mit dem Anschluß C.
Es können zusätzliche Leitungen verwendet werden, um Signale
von den Schreibeingängen zu der Registerdatei zu liefern,
obwohl die bevorzugte Realisation die existierenden Konfi
gurationsbusse 116 nicht nur verwendet, um die PLC-Speicher
114 zu konfigurieren, sondern auch um Signale von den PLCs
110, die als Schreibeingänge zu der Registerdatei 119 arbei
ten, zu liefern. Solche zusätzlichen Leitungen komplizieren
jedoch den Entwurf und verbrauchen Platz auf dem Chip.
Fig. 13 ist ein Blockdiagramm einer Realisation des PLC-
Speichers 114, 130 gemäß der Erfindung. Der PLC-Speicher
114, 130 umfaßt Inverter mit drei logischen Zuständen 132,
134 und Durchlaßtransistoren 136. Die Inverter 134 sind Bau
elemente mit offenem Drain. Es sei zu bemerken, daß der
PLC-Speicher 130 wie ein herkömmlicher PLC-Speicher arbei
tet, wenn er im ersten Modus betrieben wird. Andererseits
führt der PLC-Speicher 130 keine Speicherfunktion aus, wenn
er im zweiten Modus betrieben wird, da einer der Inverter
132, 134 in jeder Speicherzelle inaktiv ist. Die Arbeitswei
se des PLC-Speichers im zweiten Modus ist nachfolgend de
taillierter erörtert.
Wenn der PLC 110 als ein Schreibeingang konfiguriert ist,
sind die Inverter 132, die den Multiplexer 112 betreiben,
inaktiv, die Inverter 134, die die Konfigurationsleitungen
betreiben, sind in einem Modus mit "offenem Drain" (geeig
net, den Strom in den niederen Zustand zu senken, aber nicht
geeignet, den Strom in den hohen Zustand zu treiben) ge
setzt. Die Durchlaßtransistoren 136 sind konfiguriert, um zu
sperren. Dies ermöglicht es den Multiplexern 112, "rück
wärts" als Demultiplexer für die SCHREIBEN_AKTIVIEREN- und
die SCHREIBEN_DATEN-Signale betrieben zu werden, wobei folg
lich die benötigten zweifachen Demultiplexer-Funktionen ge
mäß Fig. 2 geliefert werden.
Da ein Pull-Up-Widerstand 117 mit jeder Konfigurationslei
tung verbunden ist, und da die Inverter 134 jeder PLC 110
(Schreibeingänge), die die Leitung betreibt, ein offenes
Drain aufweisen, führt jede Konfigurationsleitung eine "ver
drahtete UND"-Funktion aus, die, aufgrund der Inverter 134,
wirksam eine NOR-Funktion durchführt. Da jedoch die Vielzahl
der Schreibeingänge gemäß Fig. 3 eine ODER-Operation benö
tigt, sollte das Ergebnis der verdrahteten UND-Verknüpfung
vor seiner Speicherung in der Registerdatei 119 invertiert
werden. Zum Beispiel könnten Inverter in der Registerdatei
119 vorgesehen sein, um die Invertierung durchzuführen. In
jedem Fall liefert die linke Halbspalte der Konfigurations
leitungen 116-1 die ODER-verknüpften oder die NOR-verknüpf
ten Daten-Bits für jedes der 64 Bits zu der Registerdatei
119. Die rechte Halbspalte der Konfigurationsleitungen 116-2
(zusammen mit den Erweiterungsleitungen 116-3) liefert die
ODER-verknüpften oder NOR-verknüpften Aktivierungs-Bits.
Folglich liefern diese zwei Halbspalten der Konfigurations
leitungen ein Paar von Signalen, DATEI_SCHREIBEN und DATEI_-
DATEN, zu jedem Bit der Registerdatei 119 (Fig. 12B). Der
Ausgang der Registerdatei 119 betreibt die zugehörige linke
Halbspalte der Konfigurationsleitung 116-1.
Wenn die PLC 110 als ein Leseeingang (wie dies bei den PLCs
unter der Registerdatei 119 der Fall ist) konfiguriert ist,
sind die Inverter 134, die die Konfigurationsleitungen 116-1
betreiben, vollständig inaktiv, die Inverter 132, die die
Multiplexer 112 betreiben, sind aktiv, und die Durchlaßtran
sistoren 136 sperren. In diesem Fall haben die Multiplexer
112 für alle Leseeingänge Zugriff zu denselben 64 Daten-
Bits, und jeder kann unabhängig ein Bit auswählen, das gele
sen werden soll.
Die Fig. 14A und 14B sind Blockdiagramme eines zweiten de
taillierten Ausführungsbeispiels einer Registerdatei mit
mehreren Eingängen gemäß der Erfindung. Der Abschnitt eines
PLCA, der in den Fig. 14A und 14B gezeigt ist, ist im Regi
sterdatei-Modus dargestellt. Dieses Ausführungsbeispiel ist
dem in den Fig. 11A und 11B gezeigten ähnlich. Deshalb wer
den nur die Unterschiede erörtert. Bei diesem Ausführungs
beispiel sind die Pull-Up-Widerstände 117 und die steuer
baren Schalter 118 durch zusätzliche Leitungsbusse 140 und
logische ODER-Schaltungen 142 ersetzt. In diesem Fall ver
knüpft die logische ODER-Schaltung 142-1 die jeweiligen Bits
der zusätzlichen Busse 140 mit einer logischen ODER-Verbin
dung, wodurch sie wie die ODER-Gatter 30 gemäß Fig. 3 arbei
tet. Außerdem sind bei diesem Ausführungsbeispiel die PLC-
Speicher 144 herkömmliche Speicher und müssen nicht modifi
ziert werden, wie dies bei denen in den Fig. 11A und 11B
nötig war. Zusätzlich ist ein Datenbus 146 vorgesehen, um
die Daten, die von der Registerdatei 119 gelesen werden, zu
den PLCs 110, die als Leseeingänge arbeiten, zu liefern. Die
Menge der Leitungen kann bei diesem Ausführungsbeispiel re
duziert werden, wenn die Konfigurationsbusse 116 wie in den
Fig. 11A und 11B verwendet werden, da die zusätzlichen Busse
114 dann wesentlich verkürzt oder entfernt werden können.
Zusammenfassend gesprochen werden Registerdatei-Prozessor
elemente unterstützt, indem PLCs zusammen in "Spalten" grup
piert werden, indem ein Dateiregister, Pull-Up-Widerstände
oder ODER-Schaltungen hinzugefügt werden, und indem die
Speicherzellen in jedem PLC leicht modifiziert werden.
Schreibeingänge sind aktiv, indem die PLC-Multiplexer rück
wärts als Demultiplexer betrieben werden. Mehrere Schreib
eingänge werden unterstützt, indem die DATEN- und AKTIVIE
RUNGS-Signale, die von jedem Schreibeingang erzeugt werden,
mit einer verdrahteten UND-Bedingung oder einer ODER-Bedin
gung verknüpft werden. Bits, die von den Schreibeingängen
geschrieben werden, werden in einer Registerdatei gespei
chert, die die Konfigurationsleitungen betreibt, die an den
Leseeingängen befestigt sind. Die Leseeingänge sind aktiv,
indem die Konfigurationsleitungen (und nicht die PLC-Spei
cher-Bits) durch die PLC-Multiplexer gelesen werden.
Obwohl es sich bei den in den Fig. 10 bis 13 gezeigten Aus
führungsbeispielen um eine Registerdatei mit mehreren Ein
gängen handelt, gilt die Erfindung für einen Demultiplexer
selbst. Der in Fig. 10 gezeigte PLCA 110 z. B. enthält PLCs
102, die als Schreibeingänge arbeiten, wenn das PLCA im Re
gisterdatei-Modus ist. Dadurch arbeiten die PLC-Multiplexer
112 tatsächlich rückwärts, um als Demultiplexer zu arbeiten.
Somit bezieht sich die Erfindung allgemeiner auf eine PLC,
die rückwärts betrieben werden kann- um als Demultiplexer zu
arbeiten.
Claims (9)
1. Programmierbare logische Schaltung, mit
- - zumindest einem logischen N-Bit-Zellenspeicher (114), bei dem jede Zelle ein Paar von kreuzgekoppelten In vertern (132) aufweist; und
- - einer Schaltungsvorrichtung (112) mit bidirektionalen Durchlaßtransistoren, die erste Anschlüsse, die mit den Zellen verbunden sind, einen zweiten Anschluß und einen Steuerungsanschluß aufweist,
bei der
- - an die Inverter (132) ein erstes und ein zweites Ak tivierungssignal anlegbar ist, wobei zumindest einer der Inverter (132) einer jeden Zelle ein Tri-State- Inverter ist, wobei der andere Inverter (132) der Zelle beim Anlegen des ersten Aktivierungssignales einen inaktiven Zustand annimmt, und der Tri-State- Inverter (134) bei Anlegen des zweiten Aktivierungs signales einen inaktiven Zustand annimmt;
- - bei Anlegen des ersten Aktivierungssignales eine Zelle mit dem zweiten Anschluß durch ein am Steue rungsanschluß anliegendes Steuersignal verbindbar ist, so daß die Schaltungsvorrichtung als N:1-Bit- Multiplexer wirksam ist; und
- - bei Anlegen des zweiten Aktivierungssignales das am zweiten Anschluß anliegende Signal durch das am Steuerungsanschluß anliegende Steuersignal an ausge wählten Zellen anliegt, so daß die Schaltungsvor richtung als 1:N-Bit-Demultiplexer wirksam ist.
2. Programmierbare logische Schaltung nach Anspruch 1, bei
der die Schaltungsvorrichtung (112) durch die Verwen
dung von CMOS-Transistoren realisiert ist.
3. Programmierbare logische Schaltung nach Anspruch 1 oder
2, bei der der andere der Inverter (132) ein Bauelement
mit offener Drain ist.
4. Programmierbare logische Schaltung nach einem der An
sprüche 1 bis 3, mit steuerbaren Schaltern (118), die
wirksam sind, um Konfigurationsleitungen (116) des lo
gischen N-Bit-Zellenspeichers (114) mit entweder einer
Konfigurations-Steuerschaltung (106) oder Pull-Up-Wi
derständen (108; 117), die mit einer Spannungsquelle
verbunden sind, zu verbinden.
5. Programmierbares logisches Array, das folgende Merkmale
aufweist:
mindestens eine Registerdatei (119) zum Speichern von Daten;
programmierbare logische Schaltungen (110) nach einem der Ansprüche 1 bis 4; und
konfigurierbare Signalführungsmittel (107; 116), die zumindest einen der Eingänge und Ausgänge der program mierbaren logischen Schaltungen (110) verbinden;
wobei Schreibeingänge für die Registerdatei (119) ge bildet sind, wenn die jeweiligen Schaltungsvorrich tungen (112) der programmierbaren logischen Schaltungen (110) als 1:N-Bit-Demultiplexer wirksam sind, und bei dem Leseeingänge für die Registerdatei (119) gebildet sind, wenn die jeweiligen Schaltungsvorrichtungen (112) der programmierbaren logischen Schaltungen (110) als N:1-Bit-Multiplexer wirksam sind.
mindestens eine Registerdatei (119) zum Speichern von Daten;
programmierbare logische Schaltungen (110) nach einem der Ansprüche 1 bis 4; und
konfigurierbare Signalführungsmittel (107; 116), die zumindest einen der Eingänge und Ausgänge der program mierbaren logischen Schaltungen (110) verbinden;
wobei Schreibeingänge für die Registerdatei (119) ge bildet sind, wenn die jeweiligen Schaltungsvorrich tungen (112) der programmierbaren logischen Schaltungen (110) als 1:N-Bit-Demultiplexer wirksam sind, und bei dem Leseeingänge für die Registerdatei (119) gebildet sind, wenn die jeweiligen Schaltungsvorrichtungen (112) der programmierbaren logischen Schaltungen (110) als N:1-Bit-Multiplexer wirksam sind.
6. Programmierbares logisches Array nach Anspruch 5,
bei dem der logische N-Bit-Zellenspeicher (114) in einem Rückwärtsmodus wirksam ist, wenn die jeweiligen Schaltungsvorrichtungen (112) der programmierbaren logischen Schaltungen (110) als 1:N-Bit-Demultiplexer wirksam sind, um die zu schreibenden Daten derart wei terzuleiten, daß die zu schreibenden Daten von den Ein gängen des logischen N-Bit-Zellenspeichers (114) an die Registerdatei (119) ausgegeben werden, und
bei dem der logische N-Bit-Zellenspeicher (114) in einem Vorwärtsmodus wirksam ist, wenn die jeweiligen Schaltungsvorrichtungen (112) der programmierbaren lo gischen Schaltungen (110) als N:1-Bit-Multiplexer wirk sam sind, um die Daten von der Registerdatei (119) zu der Schaltungsvorrichtung (112) weiterzuleiten, und die Schaltungsvorrichtung (112) gibt die aus der Register datei (119) gelesenen Daten aus.
bei dem der logische N-Bit-Zellenspeicher (114) in einem Rückwärtsmodus wirksam ist, wenn die jeweiligen Schaltungsvorrichtungen (112) der programmierbaren logischen Schaltungen (110) als 1:N-Bit-Demultiplexer wirksam sind, um die zu schreibenden Daten derart wei terzuleiten, daß die zu schreibenden Daten von den Ein gängen des logischen N-Bit-Zellenspeichers (114) an die Registerdatei (119) ausgegeben werden, und
bei dem der logische N-Bit-Zellenspeicher (114) in einem Vorwärtsmodus wirksam ist, wenn die jeweiligen Schaltungsvorrichtungen (112) der programmierbaren lo gischen Schaltungen (110) als N:1-Bit-Multiplexer wirk sam sind, um die Daten von der Registerdatei (119) zu der Schaltungsvorrichtung (112) weiterzuleiten, und die Schaltungsvorrichtung (112) gibt die aus der Register datei (119) gelesenen Daten aus.
7. Programmierbares logisches Array nach Anspruch 5 oder
6, mit Einrichtungen (116, 117, 118, 134), um die Da
ten, die von den Eingängen der Schaltungsvorrichtung
(112) der programmierbaren logischen Schaltungen (110),
die im Rückwärtsmodus betrieben sind, ausgegeben wer
den, mit einer ODER-Bedingung zu verknüpfen.
8. Programmierbares logisches Array nach einem der Ansprü
che 5 bis 7, das folgende Merkmale aufweist:
eine Mehrzahl von Konfigurationsleitungen (116), die wirksam mit den programmierbaren logischen Schaltungen (110) und der Registerdatei (119) verbunden sind;
eine Konfigurations-Steuerschaltung (106) zum Erzeugen der Signale auf den Konfigurationsleitungen (116), um die logischen N-Bit-Zellenspeicher (114) der program mierbaren logischen Schaltungen (110) zu programmieren;
eine Mehrzahl von Pull-Up-Widerständen (117) mit einem ersten und einem zweiten Anschluß, wobei der erste An schluß wirksam mit einer Spannungsquelle verbindbar ist; und
eine Mehrzahl von steuerbaren Schaltern (118) zum wirk samen Verbinden der Konfigurationsleitungen (116) mit der Konfigurations-Steuerschaltung (106) oder dem zwei ten Anschluß der Pull-Up-Widerstände (117).
eine Mehrzahl von Konfigurationsleitungen (116), die wirksam mit den programmierbaren logischen Schaltungen (110) und der Registerdatei (119) verbunden sind;
eine Konfigurations-Steuerschaltung (106) zum Erzeugen der Signale auf den Konfigurationsleitungen (116), um die logischen N-Bit-Zellenspeicher (114) der program mierbaren logischen Schaltungen (110) zu programmieren;
eine Mehrzahl von Pull-Up-Widerständen (117) mit einem ersten und einem zweiten Anschluß, wobei der erste An schluß wirksam mit einer Spannungsquelle verbindbar ist; und
eine Mehrzahl von steuerbaren Schaltern (118) zum wirk samen Verbinden der Konfigurationsleitungen (116) mit der Konfigurations-Steuerschaltung (106) oder dem zwei ten Anschluß der Pull-Up-Widerstände (117).
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/113,578 US5315178A (en) | 1993-08-27 | 1993-08-27 | IC which can be used as a programmable logic cell array or as a register file |
Publications (2)
Publication Number | Publication Date |
---|---|
DE4417575A1 DE4417575A1 (de) | 1995-03-02 |
DE4417575C2 true DE4417575C2 (de) | 1996-02-01 |
Family
ID=22350258
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE4417575A Expired - Fee Related DE4417575C2 (de) | 1993-08-27 | 1994-05-19 | Verbesserte Array-Architektur für programmierbare logische Zellen |
Country Status (4)
Country | Link |
---|---|
US (1) | US5315178A (de) |
JP (1) | JP3471088B2 (de) |
DE (1) | DE4417575C2 (de) |
GB (1) | GB2281427B (de) |
Families Citing this family (54)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5343406A (en) * | 1989-07-28 | 1994-08-30 | Xilinx, Inc. | Distributed memory architecture for a configurable logic array and method for using distributed memory |
US6759870B2 (en) | 1991-09-03 | 2004-07-06 | Altera Corporation | Programmable logic array integrated circuits |
US5633830A (en) * | 1995-11-08 | 1997-05-27 | Altera Corporation | Random access memory block circuitry for programmable logic array integrated circuit devices |
US5550782A (en) * | 1991-09-03 | 1996-08-27 | Altera Corporation | Programmable logic array integrated circuits |
US20020130681A1 (en) * | 1991-09-03 | 2002-09-19 | Cliff Richard G. | Programmable logic array integrated circuits |
US5815024A (en) * | 1993-06-11 | 1998-09-29 | Altera Corporation | Look-up table using multi-level decode |
US5438295A (en) | 1993-06-11 | 1995-08-01 | Altera Corporation | Look-up table using multi-level decode |
US5386156A (en) * | 1993-08-27 | 1995-01-31 | At&T Corp. | Programmable function unit with programmable fast ripple logic |
US5535343A (en) * | 1994-03-07 | 1996-07-09 | Intel Corporation | Method and apparatus for generating write signals |
US5481495A (en) * | 1994-04-11 | 1996-01-02 | International Business Machines Corporation | Cells and read-circuits for high-performance register files |
US5802540A (en) * | 1995-11-08 | 1998-09-01 | Altera Corporation | Programming and verification address generation for random access memory blocks in programmable logic array integrated circuit devices |
US5406525A (en) * | 1994-06-06 | 1995-04-11 | Motorola, Inc. | Configurable SRAM and method for providing the same |
US5566123A (en) | 1995-02-10 | 1996-10-15 | Xilinx, Inc. | Synchronous dual port ram |
US6052773A (en) * | 1995-02-10 | 2000-04-18 | Massachusetts Institute Of Technology | DPGA-coupled microprocessors |
US5742180A (en) * | 1995-02-10 | 1998-04-21 | Massachusetts Institute Of Technology | Dynamically programmable gate array with multiple contexts |
US6049223A (en) * | 1995-03-22 | 2000-04-11 | Altera Corporation | Programmable logic array integrated circuit with general-purpose memory configurable as a random access or FIFO memory |
US5752077A (en) * | 1995-05-15 | 1998-05-12 | Motorola, Inc. | Data processing system having a multi-function input/output port with individual pull-up and pull-down control |
US5745734A (en) * | 1995-09-29 | 1998-04-28 | International Business Machines Corporation | Method and system for programming a gate array using a compressed configuration bit stream |
US5781031A (en) * | 1995-11-21 | 1998-07-14 | International Business Machines Corporation | Programmable logic array |
US6570404B1 (en) | 1996-03-29 | 2003-05-27 | Altera Corporation | High-performance programmable logic architecture |
US5977791A (en) | 1996-04-15 | 1999-11-02 | Altera Corporation | Embedded memory block with FIFO mode for programmable logic device |
US5818261A (en) * | 1996-08-08 | 1998-10-06 | Hewlett Packard Company | Pseudo differential bus driver/receiver for field programmable devices |
US5933023A (en) * | 1996-09-03 | 1999-08-03 | Xilinx, Inc. | FPGA architecture having RAM blocks with programmable word length and width and dedicated address and data lines |
US6029236A (en) * | 1997-01-28 | 2000-02-22 | Altera Corporation | Field programmable gate array with high speed SRAM based configurable function block configurable as high performance logic or block of SRAM |
US6421817B1 (en) * | 1997-05-29 | 2002-07-16 | Xilinx, Inc. | System and method of computation in a programmable logic device using virtual instructions |
US6034857A (en) * | 1997-07-16 | 2000-03-07 | Altera Corporation | Input/output buffer with overcurrent protection circuit |
US6020760A (en) | 1997-07-16 | 2000-02-01 | Altera Corporation | I/O buffer circuit with pin multiplexing |
US6011744A (en) * | 1997-07-16 | 2000-01-04 | Altera Corporation | Programmable logic device with multi-port memory |
US5995425A (en) * | 1997-07-23 | 1999-11-30 | International Business Machines Corporation | Design of provably correct storage arrays |
US6128215A (en) | 1997-08-19 | 2000-10-03 | Altera Corporation | Static random access memory circuits |
US6072332A (en) * | 1997-10-14 | 2000-06-06 | Altera Corporation | Variable depth memories for programmable logic devices |
US6289494B1 (en) | 1997-11-12 | 2001-09-11 | Quickturn Design Systems, Inc. | Optimized emulation and prototyping architecture |
US6188633B1 (en) * | 1998-04-28 | 2001-02-13 | Hewlett-Packard Company | Multi-port computer register file having shared word lines for read and write ports and storage elements that power down or enter a high-impedance state during write operations |
US6020776A (en) * | 1998-06-22 | 2000-02-01 | Xilinx, Inc. | Efficient multiplexer structure for use in FPGA logic blocks |
US6467017B1 (en) | 1998-06-23 | 2002-10-15 | Altera Corporation | Programmable logic device having embedded dual-port random access memory configurable as single-port memory |
US6240507B1 (en) | 1998-10-08 | 2001-05-29 | International Business Machines Corporation | Mechanism for multiple register renaming and method therefor |
US6262933B1 (en) | 1999-01-29 | 2001-07-17 | Altera Corporation | High speed programmable address decoder |
US6486702B1 (en) | 1999-07-02 | 2002-11-26 | Altera Corporation | Embedded memory blocks for programmable logic |
US6529040B1 (en) | 2000-05-05 | 2003-03-04 | Xilinx, Inc. | FPGA lookup table with speed read decoder |
US6697957B1 (en) | 2000-05-11 | 2004-02-24 | Quickturn Design Systems, Inc. | Emulation circuit with a hold time algorithm, logic analyzer and shadow memory |
US6658438B1 (en) * | 2000-08-14 | 2003-12-02 | Matrix Semiconductor, Inc. | Method for deleting stored digital data from write-once memory device |
US20030120858A1 (en) | 2000-09-15 | 2003-06-26 | Matrix Semiconductor, Inc. | Memory devices and methods for use therewith |
US20020061107A1 (en) * | 2000-09-25 | 2002-05-23 | Tham Terry K. | Methods and apparatus for implementing a cryptography engine |
US20020078342A1 (en) * | 2000-09-25 | 2002-06-20 | Broadcom Corporation | E-commerce security processor alignment logic |
GB2376781B (en) | 2001-03-29 | 2003-09-24 | Mentor Graphics Corp | Memory device |
US6388466B1 (en) * | 2001-04-27 | 2002-05-14 | Xilinx, Inc. | FPGA logic element with variable-length shift register capability |
US6720796B1 (en) | 2001-05-06 | 2004-04-13 | Altera Corporation | Multiple size memories in a programmable logic device |
US7111110B1 (en) | 2002-12-10 | 2006-09-19 | Altera Corporation | Versatile RAM for programmable logic device |
US7366032B1 (en) * | 2005-11-21 | 2008-04-29 | Advanced Micro Devices, Inc. | Multi-ported register cell with randomly accessible history |
US7868605B1 (en) * | 2007-07-02 | 2011-01-11 | Altera Corporation | Mixed mode power regulator circuitry for memory elements |
US8510485B2 (en) * | 2007-08-31 | 2013-08-13 | Apple Inc. | Low power digital interface |
DE112012003335T5 (de) * | 2011-08-12 | 2014-04-30 | Denso Corp. | Integrierte Schaltung |
TWI681300B (zh) * | 2014-11-14 | 2020-01-01 | 美商凱為有限責任公司 | 在64位元資料路徑上實行128位元simd操作之方法、系統及電腦可讀取媒體 |
US10802754B2 (en) * | 2018-03-12 | 2020-10-13 | Micron Technology, Inc. | Hardware-based power management integrated circuit register file write protection |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2541248B2 (ja) * | 1987-11-20 | 1996-10-09 | 三菱電機株式会社 | プログラマブル・ロジック・アレイ |
EP0317287B1 (de) * | 1987-11-20 | 1992-11-11 | Kawasaki Steel Corporation | Programmierbare logische Vorrichtung |
US4933909A (en) * | 1988-12-19 | 1990-06-12 | Bull Hn Information Systems Inc. | Dual read/write register file memory |
DE3941710A1 (de) * | 1989-12-18 | 1991-06-20 | Philips Patentverwaltung | Programmierbare integrierte schaltungsanordnung |
US5115411A (en) * | 1990-06-06 | 1992-05-19 | Ncr Corporation | Dual port memory system |
US5245227A (en) * | 1990-11-02 | 1993-09-14 | Atmel Corporation | Versatile programmable logic cell for use in configurable logic arrays |
US5111431A (en) * | 1990-11-02 | 1992-05-05 | Analog Devices, Inc. | Register forwarding multi-port register file |
-
1993
- 1993-08-27 US US08/113,578 patent/US5315178A/en not_active Expired - Lifetime
-
1994
- 1994-05-19 DE DE4417575A patent/DE4417575C2/de not_active Expired - Fee Related
- 1994-08-24 GB GB9417139A patent/GB2281427B/en not_active Expired - Fee Related
- 1994-08-29 JP JP20317694A patent/JP3471088B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
GB9417139D0 (en) | 1994-10-12 |
DE4417575A1 (de) | 1995-03-02 |
JP3471088B2 (ja) | 2003-11-25 |
GB2281427B (en) | 1998-03-18 |
GB2281427A (en) | 1995-03-01 |
JPH07177008A (ja) | 1995-07-14 |
US5315178A (en) | 1994-05-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE4417575C2 (de) | Verbesserte Array-Architektur für programmierbare logische Zellen | |
DE69813974T2 (de) | Programmierbares gatterfeld mit erhöhter leistung | |
DE68923541T2 (de) | Programmierbare Logikeinrichtung mit einer Vielzahl von programmierbaren Logikarrays, die sich in mosaikförmiger Anordnung zusammen mit einer Vielzahl von vermischt angeordneten Interface-Blöcken befinden. | |
EP0010173B1 (de) | Halbleiterplättchen mit verbesserter Prüfbarkeit der monolithisch hochintegrierten Schaltungen | |
DE3689834T2 (de) | Feldprogrammierbare logische Vorrichtung mit programmierbarer Rückführung zur Bestimmung der Anzahl logischer Pegel. | |
DE60100476T2 (de) | Unterstützung mehrerer konfigurationszustände eines fpga mittels eines auf dem integrierten schaltkreis dafür vorgesehenen prozessors | |
DE69534812T2 (de) | Programmierbare logische Vorrichtung, die mehr als eine Konfiguration speichert, und Mittel zum Umschalten der Konfiguration | |
DE69827589T2 (de) | Konfigurierbare Verarbeitungsanordnung und Verfahren zur Benutzung dieser Anordnung, um eine Zentraleinheit aufzubauen | |
DE2723821C2 (de) | Programmierbare logische Anordnung | |
DE69633370T2 (de) | Benutzerprogrammierbares Gatterfeld mit Multiport-RAM | |
DE3645224C2 (de) | ||
DE69031861T2 (de) | Programmierbare logische Schaltung mit Multifunktionseingangspin | |
DE69028395T2 (de) | Konfigurierbare zellenanordnung | |
DE69716623T2 (de) | Fpga-architektur mit ram-blöcken mit programmierbarer wortlänge und -breite und zugeordneten adress- und datenleitungen | |
DE69031525T2 (de) | Konfigurierbare Logikanordnung und zugehöriges Verfahren | |
DE69924486T2 (de) | Spezielle schnittstellenarchitektur für eine hybride schaltung | |
DE69411292T2 (de) | Programmierbare logische Schaltung | |
DE3049437C2 (de) | Matrixanordnung einer Vielzahl von Verarbeitungselementen | |
DE69221611T2 (de) | Vorrichtung und verfahren zum multiplexen von pins zur in-system programmierung | |
DE4212202C2 (de) | Logikgatter | |
EP0202456B1 (de) | In integrierter Technik hergestellter Logik-Array-Baustein | |
DE60309931T2 (de) | Verbindung mehrerer testzugriffsportsteuerungsvorrichtungen durch ein einzeltestzugriffsport | |
DE69029390T2 (de) | Programmierbare Schaltung für eine neurale Logik | |
DE69012355T2 (de) | Architektur einer programmierten Logik mit mehreren Seiten. | |
DE69425744T2 (de) | Verfahren zur modellierung von bidirektionalen oder multiplikativ gesteuerten signalpfaden in einem system zum erreichen eines statisch geplanten allzwecksimulators |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
D2 | Grant after examination | ||
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |