DE69711159T2 - Benutzerprogrammierbares logisches feld mit verteiltem ram und erhöhter zellnutzung - Google Patents
Benutzerprogrammierbares logisches feld mit verteiltem ram und erhöhter zellnutzungInfo
- Publication number
- DE69711159T2 DE69711159T2 DE69711159T DE69711159T DE69711159T2 DE 69711159 T2 DE69711159 T2 DE 69711159T2 DE 69711159 T DE69711159 T DE 69711159T DE 69711159 T DE69711159 T DE 69711159T DE 69711159 T2 DE69711159 T2 DE 69711159T2
- Authority
- DE
- Germany
- Prior art keywords
- cells
- logic
- blocks
- cell
- output
- 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 38
- 239000011159 matrix material Substances 0.000 claims description 18
- 230000009977 dual effect Effects 0.000 claims description 2
- 230000006386 memory function Effects 0.000 claims 1
- 210000004027 cell Anatomy 0.000 description 306
- 239000000872 buffer Substances 0.000 description 38
- 230000006870 function Effects 0.000 description 26
- 238000010586 diagram Methods 0.000 description 9
- 230000002457 bidirectional effect Effects 0.000 description 8
- 238000003491 array Methods 0.000 description 4
- 230000006872 improvement Effects 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 210000004460 N cell Anatomy 0.000 description 1
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 1
- 210000003719 b-lymphocyte Anatomy 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000000034 method Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
-
- 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/17736—Structural details of routing resources
-
- 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/1735—Controllable logic circuits by wiring, e.g. uncommitted logic arrays
-
- 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
-
- 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/17724—Structural details of logic blocks
- H03K19/17728—Reconfigurable logic blocks, e.g. lookup tables
Landscapes
- Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Logic Circuits (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Description
- Die vorliegende Erfindung betrifft programmierbare, multifunktionale, digitale integrierte Logikmatrixschaltungen der Art, die als anwenderprogrammierbare Gate-Arrays (FPGAs) bekannt sind, und insbesondere Verbesserungen in der Struktur der konfigurierbaren Logikzellen solcher FPGAs sowie der direkten Zellen-Zellen-Verbindungen und des Verbindungsbusnetzwerks solcher FPGAs, die zum Verbessern der Zellennutzung und -funktionalität zum Ausführen von Logikfunktionen ausgelegt sind. Die Erfindung betrifft auch FPGAs, die für den Anwender zugängliche Speicherelemente darin enthalten, um eine gewisse Speicherfähigkeit zur Verwendung durch die Logikzellen der FPGA-Bauelemente zu integrieren.
- Eine digitale Logik kann unter Verwendung von beliebigen von mehreren erhältlichen integrierten Schaltungsarchitekturen implementiert werden, einschließlich festverdrahteten anwendungsspezifischen integrierten Schaltungen (ASICs), masken- oder schmelzverbindungsprogrammierten kundenspezifischen Gate- Arrays (CGAs), einer programmierbaren Matrixlogik (PALs), programmierbaren Logikmatrizes (PLAs) und anderen programmierbaren Logikbauelementen (PLDs), die typischerweise die Technologie nicht-flüchtiger EPROM- oder EEPROM-Speicherzellen zur Konfiguration durch den Anwender verwenden, und anwenderprogrammierbaren Gate-Arrays (FPGAs), die im allgemeinen SRAM-Konfigurations-Bits verwenden, die während jedes Einschaltens des Chips gesetzt werden. Unter diesen verschiedenen Architekturen sind gewöhnlich jene mit einer anwenderprogrammierbaren, löschbaren und wiederprogrammierbaren Fähigkeit gegenüber jenen mit fester oder nur einmalig programmierbarer Funktionalität bevorzugt. FPGAs sind in der Lage, große, sehr komplexe Logikfunktionen zu implementieren, die nicht in eine Zweiebenen-Produktsummenform umgewandelt werden müssen, um in diese Bauelemente programmiert zu werden. Die SRAM-gesteuerten Schalter ermöglichen nicht nur, daß verschiedene Funktionen geladen werden, um ein Bauelement sehr leicht zu rekonfigurieren, sondern sind auch für eine Hochgeschwindigkeitsoperation optimiert.
- Eine breite Vielfalt von FPGAs stehen nun zur Verfügung, die sich in der Komplexität von ihren Komponentenlogikzellen sowie in den Verbindungsbetriebsmitteln, die vorgesehen sind, unterscheiden. FPGAs sind beispielsweise im US-Pat. Nr. 4 706 216 4 758 985; 5 019 736; 5 144 166; 5 185 706; 5 231 588; 5 258 688; 5 296 759; 5 343 406; 5 349 250; 5 352 940; 5 408 434 und vielen anderen offenbart.
- Eine typische FPGA-Architektur besteht aus einer zweidimensionalen Anordnung oder Matrix von konfigurierbaren Logikzellen, die durch eine programmierbare Verbindungsstruktur, die sowohl aus direkten Verbindungen zwischen benachbarten Logikzellen als auch einem Netzwerk von Busleitungen und Verbindungsschaltern, die zwischen den Zeilen und Spalten von Zellen in der Matrix verteilt sind, besteht, selektiv miteinander verbunden werden können. Um den Umfang der Matrix verbindet ein Satz von Eingangs/Ausgangs- Kontaktstellen mit dem Busnetzwerk, den Umfangslogikzellen oder beiden, wobei ermöglicht wird, daß Signale in den und aus dem Chip übertragen werden. Jede einzelne Logikzelle ist programmiert, um eine relativ einfache Logikfunktion auszuführen. Jede Logikzelle umfaßt typischerweise eine Eingangs- und Ausgangsauswahllogik (MUX), eine kombinatorische Logik, eine oder mehrere Speicherelemente (Flip-Flop-Register) für eine synchrone Operation und möglicherweise ein oder mehrere interne Rückführungsleitungen zum Ausführen einer sequentiellen Logik. Die kombinatorische Logik in den Zellen von einigen FPGAs liegt in Form von Logikgattern mit fester Funktion, möglicherweise mit auswählbaren Eingangskonfigurationen, vor. Eine bevorzugte FPGA-Zelle verwendet jedoch einen Nachschlagetabellenspeicher (konfigurierter SRAM), um eine breitere Vielfalt von Logikfunktionen vorzusehen. Die Speicherzellen der Nachschlagetabelle speichern einen Satz von Datenbits, deren Werte der Wahrheitstabelle für eine spezielle Funktion entsprechen. Ein Satz von Eingangssignalen, die auf den Adressenleitungen des Speichers dargestellt werden, bewirkt, daß der Speicher ein Ein-Bit-Ausgangssignal liefert, das der Wert ist, der an der Adresse gespeichert ist, die durch diese Eingangssignale festgelegt wird. Daher implementiert der Nachschlagetabellenspeicher eine Funktion, die durch die gespeicherten Wahrheitswerte im Speicher festgelegt ist. Die Verbindungsstruktur sieht direkte Verbindungen zwischen jeder Zelle und ihren nächsten Nachbarn in derselben Zeile oder Spalte der Matrix vor. Das US-Pat. Nr. 5 296 759 sieht zusätzlich Verbindungen mit diagonal benachbarten Zellen in einer Richtung vor. Zusätzlich zu den direkten Zellen- Zellen-Verbindungen sieht ein Satz von "lokalen" Busleitungen Verbindungen zwischen den Zellen und einem Busleitungsnetzwerk vor. Regelmäßig beabstandete konfigurierbare Schalter, die Zwischenverstärkereinheiten genannt werden, verbinden die kurzen lokalen Bussegmente mit längeren Expreßbussen. Die Zwischenverstärker sind normalerweise in Zeilen und Spalten ausgerichtet, wodurch die gesamte Matrix in Blöcke von Zellen unterteilt wird. Eine übliche Anordnung organisiert Gruppen von 64 Logikzellen zu 8 · 8-Blöcken, die jeweils einen zugehörigen Satz von lokalen Bussegmenten aufweisen. Im Gegensatz zu den lokalen Bussegmenten erstrecken sich die Expreßbusse über mehr als einen Block von Zellen über die Zwischenverstärker, was ermöglicht, daß Signale zwischen verschiedenen Blöcken von Zellen geleitet werden. Die Expreßbusleitungen greifen auf die Logikzellen nur über die lokalen Bussegmente zu, wobei Signallaufzeitverzögerungen auf den Expreßleitungen verringert werden.
- FPGA-Entwickler machen weiterhin Verbesserungen bei einem Versuch, die Geschwindigkeit und Funktionsflexibilität der Bauelemente zu steigern. Es ist beispielsweise ein Konstruktionsziel, die Funktionsfähigkeiten der einzelnen Logikzellen zu erhöhen, während gleichzeitig die Zellen klein und einfach gehalten werden, was eine Haupteigenschaft der FPGA-Architektur ist. Ein weiterer Bereich, der eine Verbesserung benötigt, ist die Gesamtzellennutzung der Schaltung. Aufgrund einer Anzahl von Kompromissen und Ineffizienzen in dem Busleitungsnetzwerk und der Zellen-Bus-Schnittstelle werden FPGA-Zellen insbesondere häufig nur als "Drahtzellen" zum Leiten von Signalen zwischen anderen Zellen verwendet, was rechtwinklige Wendungen, Überkreuzungsverbindungen und eine Signalausgangsverzweigung vorsieht. Eine solche Signalleitweglenkung ist eine ineffiziente Verwendung von Logikzellen. Idealerweise würde die Leitweglenkung nur durch die direkten Verbindungen und das Busleitungsnetzwerk vorgesehen werden, während die Logikzellen nur für die Logik verwendet werden würden. Aufgrund der relativen Einfachheit der von einzelnen Zellen durchgeführten Funktionen stellen einige Konstruktionen auch Zellen bereit, die zum Ausführen von speziellen Funktionen wie z. B. Decodier- und schnellen Übertragungsoperationen reserviert sind. Wenn die spezielle Funktion nicht erforderlich ist, wird diese Zelle leider verschwendet. Die Zellenkonstruktion selbst kann zur Gesamtnutzung von Zellen in einer Matrix beitragen. Vorzugsweise weisen die Zellen eine Spiegel- und Drehsymmetrie bezüglich der Funktionen auf, die für ihre mehreren Eingänge und Ausgänge verfügbar sind, was den Bedarf für die Signalwendung verringert und die Funktionsanordnung der Matrix von Zellen vereinfacht. Schließlich besteht bei den meisten FPGAs ein Bedarf für einen für den Anwender zugänglichen Direktzugriffsspeicher (RAM). Verschiedene Hersteller verwenden unterschiedliche Methoden, um diesen erforderlichen Ein-Chip-Speicher vorzusehen. Altera stellt beispielsweise einen RAM an der Außenkante der Matrix bereit, während Actel abwechselnde Bänder von Logikzellen und eines RAM bereitstellt. Xilinx ermöglicht, daß der Nachschlagetabellenspeicher innerhalb der Logikzellen durch den Anwender während der Bauelementoperation aktualisiert wird, um die von diesen Zellen bereitgestellten Funktionen zu ändern.
- Eine Aufgabe der vorliegenden Erfindung ist die Bereitstellung eines FPGA mit erhöhter Logikzellenfunktionalität, verbesserter Zellennutzung, effizienterer Signalleitweglenkung durch das Busleitungsnetzwerk und direkten Zellen-Zellen-Verbindungen und einer integrierten, für den Anwender zugänglichen Speicherfähigkeit in dem Bauelement.
- Ein FPGA gemäß dem Oberbegriff von Anspruch 1 ist aus WO 95 25 348 A bekannt.
- Die Aufgabe wird durch eine FPGA-Matrix gelöst, bei der für den Anwender zugängliche Speicherstrukturen (oder eine zweckorientierte Logik), d. h. sowohl die Speicherstrukturen als auch die zweckorientierte Logik werden als "zweckorientierte Funktionselemente" betrachtet, in den normalerweise leeren Zwischenräumen an den Ecken jedes Blocks von Logikzellen am Schnittpunkt von Zeilen und Spalten von Zwischenverstärker-Schalteinheiten vorgesehen sind. Eine Art Speicherstruktur könnte ein Direktzugriffsspeicher, d. h. eine RAM-Struktur, sein. Adressen- und Datenleitungen des RAM sind mit den Busleitungen verbunden, ebenso wie die Schreibfreigabe- und Ausgabefreigabe-Steueranschlüsse des RAM. Der RAM kann ein SRAM entweder mit einzelnem Anschluß oder mit doppeltem Anschluß sein. Paare von benachbarten Spalten des RAM können durch denselben Satz von Busleitungen adressiert werden. Die Speicherstrukturen könnten auch nicht-flüchtige Speicherstrukturen sein.
- Die Aufgabe wird auch durch eine FPGA-Matrix gelöst, in der Zwischenverstärker-Schalteinheiten, die die lokalen Bussegmente verbinden, die einem Block von Logikzellen zugeordnet sind, regelmäßig nach jeweils N Logikzellen beabstandet sind, wodurch die Zellen in NxN-Blöcke von Zellen unterteilt werden, wobei die Zellen in jedem Block nur mit einem zugeordneten Satz von lokalen Bussegmenten, aber nicht mit lokalen Bussegmenten, die anderen Blöcken von Zellen zugeordnet sind, verbindbar sind. Die Zwischenverstärker-Schalteinheiten verbinden jedes lokale Bussegment mit Expreßbusleitungen an entgegengesetzten Enden eines Blocks, wobei die Zwischenverstärker in einer versetzten Konfiguration angeordnet sind, so daß jede Expreßbusleitung auf eine Zwischenverstärkereinheit weniger häufig als die lokalen Busleitungen trifft, beispielsweise nach jeweils 2·N Logikzellen.
- Die Aufgabe wird ferner durch ein FPGA gelöst, in dem eine Matrix von Logikzellen einen ersten Satz von direkten Verbindungen mit vier nächsten benachbarten Logikzellen in derselben Zeile oder Spalte von Zellen aufweist und auch einen zweiten Satz von direkten Verbindungen mit vier anderen diagonal benachbarten Logikzellen aufweist.
- Die Aufgabe wird noch ferner durch ein FPGA gelöst, in dem jede Logikzelle eine kombinatorische Logik in Form von einem Paar von Strukturen, die als Nachschlagetabellen, für den Anwender zugängliche Speicherelemente oder beide funktionieren können, umfaßt. Diese Strukturen sind beide durch einen gemeinsamen Satz von Eingängen adressierbar, deren Ausgänge selektiv für denselben Satz von Ausgängen verfügbar sind, wobei ein Ausgang einen selektiven Zugriff auf ein Register aufweist, und wobei noch ein weiterer Eingang in die Zelle selektiv eines oder das andere Speicherelement-Ausgangssignal ausgeben kann, um beide Speicherelemente effektiv zu einem einzelnen größeren, vollständig adressierbaren Speicherelement zu kombinieren. Zwei der Speicherelement-Adresseneingänge können Eingangssignale empfangen, die von irgendwelchen von vier direkten Verbindungseingängen oder einem lokalen Buseingang auswählbar sind.
- Ferner können globale Taktsignale, von denen viele für jede Spalte von Zellen vorhanden sein können, um aus diesen auszuwählen, eine Polaritäts- und Freigabeauswahl auf der Basis eines Sektors von mehreren Zellen in einer Spalte von Zellen aufweisen. Globale Setz- oder Rücksetzsignale können auch eine Polaritäts- und Freigabeauswahl auf einer sektorweisen Basis aufweisen.
- E/A-Kontaktstellen können mit mehreren Logikzellen auf dem Umfang der Matrix von Zellen verbindbar sein und können auch mit mehreren Zeilen oder Spalten von Busleitungen verbindbar sein. Jede Umfangslogikzelle und Zeile oder Spalte von Busleitungen kann mit beliebigen von mehreren E/A-Kontaktstellen verbindbar sein. Es können zusätzliche E/A-Kontaktstellen vorliegen, die nur mit Busleitungen verbindbar sind.
- Fig. 1 ist eine schematische Draufsicht auf eine FPGA- Schaltung der vorliegenden Erfindung.
- Fig. 2 ist eine schematische Draufsicht auf vier Logikzellen der FPGA-Schaltung von Fig. 1, die direkte Verbindungen zwischen Zellen darstellt.
- Fig. 3 ist eine schematische Draufsicht auf vier Logikzellen einer FPGA-Schaltung der vorliegenden Erfindung, die ein alternatives Ausführungsbeispiel von direkten Zellen-Zellen-Verbindungen darstellt.
- Fig. 4 ist eine schematische Draufsicht auf einen 4 · 4-Block von Logikzellen der FPGA-Schaltung von Fig. 1 mit einem Busleitungsnetzwerk und einem RAM.
- Fig. 5 ist ein schematischer Logikebenen-Schaltplan einer Logikzelle der FPGA-Schaltung von Fig. 1.
- Fig. 6 ist ein schematischer Schaltplan einer Zellen-Bus- Schnittstelle für die Logikzelle von Fig. 5.
- Fig. 7 und 8 sind schematische Logikebenen-Schaltpläne von zwei alternativen Logikzellen-Ausführungsbeispielen einer FPGA-Schaltung der vorliegenden Erfindung.
- Fig. 9 und 10 sind schematische Draufsichten auf Teile der FPGA-Schaltung von Fig. 1, die eine Takt- und Rücksetzsignalverteilung für die vorliegende Erfindung zeigen.
- Fig. 11 ist eine schematische Draufsicht auf vier Blöcke von Zellen von Fig. 4, die die versetzte Anordnung der Zwischenverstärker-Schalteinheiten in der FPGA-Schaltung der vorliegenden Erfindung darstellt.
- Fig. 12 ist eine schematische Draufsicht auf einen 3 · 3-Satz von Blöcken von Zellen des FPGA von Fig. 1 und 4, die die Anordnung von zweckorientierten Funktionselementen (DFE) wie z. B. einem RAM an den Ecken von jedem Block zwischen den Zeilen und Spalten von Zwischenverstärkern darstellt.
- Fig. 13 ist ein schematischer Logikebenen-Schaltplan eines RAM und der RAM-Bus-Schnittstelle für die FPGA-Schaltung der vorliegenden Erfindung.
- Fig. 14 ist eine schematische Draufsicht auf einen Teil einer FPGA-Schaltung der vorliegenden Erfindung, die acht Blöcke von Logikzellen und ihre zugeordneten RAM-Blöcke enthält, welche ein alternatives Verbindungsschema des RAM mit dem Busnetzwerk zu dem in Fig. 4 gezeigten darstellt.
- Fig. 15 ist eine vergrößerte Ansicht des RAM-Blocks in dem gestrichelten Kreis 150 in Fig. 14.
- Fig. 16 ist ein teilweises schematisches Diagramm eines Satzes von Logikzellen am Umfang der FPGA-Schaltung von Fig. 1, welches die Anschlußfähigkeit von Zellen an einen Satz von E/A-Kontaktstellen für die Schaltung darstellt.
- Fig. 17 ist ein schematischer Logikebenen-Schaltplan einer Eckenlogikzelle des FPGA und der Zellen-Kontaktstellen- Schnittstelle gemäß einem Ausführungsbeispiel der vorliegenden Erfindung.
- Fig. 18 ist ein teilweises schematisches Diagramm eines Satzes von Logikzellen am Umfang der FPGA-Schaltung von Fig. 1, welches eine alternative Anschlußfähigkeit solcher Zellen an E/A-Kontaktstellen der Schaltung zu der in Fig. 16 gezeigten darstellt.
- Fig. 19 ist ein schematischer Logikebenen-Schaltplan einer Zellen-Kontaktstellen-Schnittstellenzusammenfassung der in Fig. 18 gezeigten Anschlußfähigkeit.
- Fig. 20 und 21 sind schematische Logikebenen-Schaltpläne von Zellen-Kontaktstellen-Schnittstellen für zwei Arten von E/A-Kontaktstellen gemäß einem dritten Verbindungsausführungsbeispiel.
- Mit Bezug auf Fig. 1 umfaßt eine integrierte Schaltung eines anwenderprogrammierbaren Gate-Arrays (FPGA) der vorliegenden Erfindung eine Matrix oder eine zweidimensionale Anordnung von mehreren Zeilen und Spalten von programmierbaren Logikzellen 11. Jede der einzelnen Logikzellen 11 kann konfiguriert oder programmiert werden, um eine festgelegte Logikfunktion auszuführen. Die Zellen sind zusammen sowohl direkt mit benachbarten Zellen, wie in Fig. 2 oder 3 zu sehen, als auch über ein Netzwerk von Busleitungen mit Verbindungsschaltern, wie in Fig. 4 zu sehen, verbunden, um eine komplexere Gesamtlogikfunktion des gesamten FPGA-Bauelements oder -Chips zu erzielen, welche eine Zusammensetzung der viel einfacheren Funktionen ist, die von jeder der einzelnen Zellen vorgesehen werden. Somit muß in FPGA-Bauelementen die Funktion nicht als Zweiebenen-Produktsumme berechnet werden, da die Verbindungsstruktur es möglich macht, ein Ausgangssignal von irgendeiner Logikzelle einem Eingang irgendeiner anderen Logikzelle zuzuführen, wodurch eine Kette von Logikzellen gebildet wird, die eine Funktion mit vielen Logikebenen erzeugen kann.
- Das Muster von lokalen und Expreßbusleitungen und ihrer Verbindungs-Zwischenverstärkerschalter in dem Busnetzwerk von Fig. 11 unterteilt die Grundmatrix von Logikzellen in kleinere geradlinige Blöcke von Zellen. Der in Fig. 1 zu sehende Satz von gestrichelten Linien 13 stellt diese unterteilte Anordnung dar, in der Gruppen von 16 Logikzellen zu quadratischen 4 · 4-Blöcken von Zellen organisiert sind. Jeder Block 15 weist seinen eigenen Satz von zugeordneten lokalen Bussegmenten auf, die für diese spezielle Gruppe von Logikzellen reserviert sind, wie nachstehend mit Bezug auf Fig. 4 und 11 zu sehen ist, während sich Expreßbusleitungen über mehr als einen Block erstrecken, um Signale zwischen den verschiedenen Blöcken von Logikzellen zu leiten. Obwohl die in Fig. 1 gezeigte Schaltung 32 Zeilen und Spalten von Zellen (insgesamt 1024 Logikzellen) aufweist, die als 8 · 8-Matrix von 4 · 4- Zellenblöcken organisiert sind, können andere Bauelemente typischerweise nicht mehr als 16 Zeilen und Spalten von Zellen oder nicht weniger als 64 (oder mehr) Zeilen und Spalten von Zellen aufweisen. Die Blöcke 15 von Logikzellen 11 müssen nicht über das gesamte FPGA-Bauelement dieselbe Größe aufweisen. Verschiedene Quadranten des Bauelements können beispielsweise quadratische 4 · 4-, 6 · 6- oder 8 · 8- Blöcke oder rechteckige 4 · 6-, 4 · 8-, 6 · 8-, 6 · 12- oder 8 · 16- Blöcke usw. enthalten.
- Die FPGA-Schaltung weist auch Eingangs/Ausgangs- (E/A) Kontaktstellen 17 auf, die mit den Busleitungen und mit den Logikzellen entlang des Umfangs der Matrix von Zellen verbunden sind, was ermöglicht, daß Signale zu und von dem Chip übertragen werden. Die Einzelheiten der Eingangs/Ausgangs-Kontaktstellen-Verbindungen werden nachstehend mit Bezug auf Fig. 16-21 erörtert.
- Fig. 2 zeigt die direkten Zellen-Zellen-Verbindungen für ein Ausführungsbeispiel der Schaltung. Jede Logikzelle 11 weist einen ersten Satz von identischen A-Ausgängen und einen zweiten Satz von identischen B-Ausgängen auf. Die A- Ausgänge von irgendeiner Zelle sind mit allen vier angrenzenden nächsten benachbarten Logikzellen in derselben Zeile oder Spalte wie die Ausgabezelle verbunden. Ebenso sind die B-Ausgänge von der Zelle auch mit allen vier nächsten benachbarten Zellen verbunden, jede Logikzelle weist auch einen Satz von A-Eingängen (mit An, Ae, As, Aw bezeichnet) auf, die Signale empfangen, die von den jeweiligen A-Ausgängen der vier nächsten benachbarten Zellen ausgegeben werden. Schließlich weist jede Logikzelle einen Satz von B-Eingängen (hier als Bn, Be, BS, Bw bezeichnet) auf, die Signale empfangen, die von den jeweiligen B-Ausgängen der vier nächsten benachbarten Zellen ausgegeben werden. Somit sind zwischen beliebigen zwei benachbarten Zellen in derselben Zeile oder Spalte vier Verbindungssignalwege vorhanden, wobei zwei Wege in jede Richtung verlaufen.
- Fig. 3 zeigt direkte Zellen-Zellen-Verbindungen für ein alternatives Ausführungsbeispiel einer FPGA-Schaltung gemäß der vorliegenden Erfindung. Bei diesem Ausführungsbeispiel weist jede Logikzelle 12 einen ersten Satz von identischen A-Ausgängen und einen zweiten Satz von identischen B- Ausgängen auf. Die A-Ausgänge von irgendeiner Zelle sind mit allen vier angrenzenden nächsten benachbarten Logikzellen in derselben Zeile oder Spalte wie die Ausgabezelle verbunden, aber die B-Ausgänge von der Zelle sind mit den vier diagonal angrenzenden benachbarten Zellen verbunden. Jede Logikzelle weist auch einen Satz von A- Eingängen (mit An, Ae, As, Aw bezeichnet), die Signale empfangen, die von den jeweiligen A-Ausgängen der vier nächsten benachbarten Zellen in derselben Zeile oder Spalte wie die Empfangszelle ausgegeben werden, und einen Satz von B-Eingängen (mit Bnw, Bne, Bse, Bsw bezeichnet), die Signale empfangen, die von den jeweiligen B-Ausgängen der vier diagonal angrenzenden benachbarten Zellen ausgegeben werden, auf. Somit steht jede Logikzelle mit allen acht benachbarten Zellen in Verbindung, und zwischen beliebigen zwei Zellen sind zwei Verbindungssignalwege vorhanden, wobei einer in jede Richtung verläuft.
- Fig. 4 zeigt die Zellen-Bus-Verbindungen in der FPGA- Schaltung. Die 4 · 4-Gruppe von Logikzellen 11 in einem einzelnen Block weist Busleitungen auf, die zwischen den Zeilen und Spalten von Zellen verteilt sind. Insbesondere können fünf Sätze von drei vertikalen Busleitungen 19 benachbart zu jeder Spalte von Logikzellen und fünf Sätze von drei horizontalen Busleitungen 21 benachbart zu jeder Zeile von Logikzellen vorhanden sein. Jeder Satz von drei Busleitungen umfaßt eine lokale Busleitung 23 und zwei Expreßbusleitungen 25. Die Logikzellen 11 sind nur mit den lokalen Busleitungen 23 direkt verbunden, wobei der Zugang zu den Expreßbusleitungen 25 über die lokalen Busleitungen an Verbindungs-Zwischenverstärkereinheiten 27, die sich am Umfang jedes Blocks von Zellen befinden, indirekt ist. Wie nachstehend mit Bezug auf Fig. 11 erläutert wird, weisen die Zwischenverstärker 27 Busverbindungen auf, die derart versetzt sind, daß jede Expreßbusleitung nur nach jeweils 8 Zellen anstatt jeweils 4 Zellen auf einen Zwischenverstärker trifft. Jede Logikzelle 11 weist 10 bidirektionale Datenbusleitungen 29 auf, die die Logikzelle mit den 5 horizontalen lokalen Busleitungen und mit den 5 vertikalen lokalen Busleitungen benachbart zur jeweiligen Zeile und Spalte von Zellen, in denen sich diese spezielle Logikzelle befindet, verbinden. Diese 10 bidirektionalen Leitungen 29 (in Fig. 6 als V0-V4 und H0-H4 bezeichnet) stehen mit ihrer entsprechenden Logikzelle in einer Weise in Verbindung, die nachstehend mit Bezug auf Fig. 6 genauer beschrieben wird, um Datensignalwege vorzusehen, über die Zelleneingangssignale (in Fig. 5 und 6 AL, BL, CL und DL) und Zellenausgangssignale (L in Fig. 5 und 6) zwischen den Logikzellen und dem Busnetzwerk übertragen werden können.
- Mit Bezug auf Fig. 5 weist ein Ausführungsbeispiel einer Logikzelle in dem FPGA der vorliegenden Erfindung vier Sätze von Eingängen, einschließlich jenen, die als A- Eingänge bezeichnet sind (direkte Verbindungen An, Ae, As, Aw von benachbarten Zellen und einem lokalen Buseingang AL), einen zweiten Satz, der als B-Eingänge bezeichnet ist (direkte Verbindungen Bn, Be, Bs, Bw von den benachbarten Zellen und einem lokalen Buseingang BL), einen dritten lokalen Buseingang, der als CL bezeichnet ist und einen vierten lokalen Buseingang, der als DL bezeichnet ist, auf. Die Logikzelle weist auch drei Sätze von Ausgängen auf, einschließlich A-Ausgängen und B-Ausgängen, die mit den jeweiligen A-Eingängen und B-Eingängen der vier benachbarten Zellen verbunden sind, und auch einschließlich eines lokalen Busausgangs L. Die A- und B-Ausgänge und die direkten A- und B-Eingänge sind wie vorstehend mit Bezug auf Fig. 2 beschrieben verbunden. Die lokalen Buseingänge (AL, BL, CL, DL) und der lokale Busausgang (L) einer Zelle sind mit den zehn benachbarten horizontalen und vertikalen lokalen Busleitungen 23 über Verbindungssignalwege 29 wie vorher mit Bezug auf Fig. 4 beschrieben und genauer in der in Fig. 6 gezeigten Weise verbunden. Insbesondere verläuft in Fig. 6 jeder der lokalen Bus-Verbindungssignalwege (H0- H4 und V0-V4) durch ein entsprechendes Durchgangsgatter 31 zu einer von fünf Zwischensignalleitungen 33&sub0;-33&sub4; innerhalb der Zelle. Jede Zwischensignalleitung 33&sub0;-33&sub4; kann durch die Durchgangsgatter 31 mit einem von zwei lokalen Bus- Verbindungssignalwegen gekoppelt werden, wobei einer von ihnen von einer entsprechenden vertikalen Busleitung (über die Wege V0-V4) und der andere von einer horizontalen Busleitung (über die Wege H0-H4) stammt. Jede dieser fünf Zwischensignalleitungen 330-334 ist wiederum mit vier Buseingangs-Auswahlmultiplexern 35A-35D verbunden. Somit weist jeder Multiplexer 35A-35D fünf Eingänge auf, einen für jede Zwischensignalleitung 330-334. Der Ausgang jedes Multiplexers 35A-35D bildet die vier lokalen Buseingänge (AL, BL, CL, DL) der Zelle. Daher kann irgendeine der zehn benachbarten lokalen Busleitungen, mit denen die Logikzelle verbunden ist, Eingangssignale zu irgendeinem der vier lokalen Buseingänge liefern, wie durch die Durchgangsgatter 31 und die Auswahl der Multiplexer 35A-35D konfiguriert. Der lokale Busausgang L für die Logikzelle steht auch mit den fünf Zwischensignalleitungen 33Q-334 über einen Satz von Durchgangsgattern 37 in Verbindung. Daher kann der Ausgang L verbunden werden, um Ausgangssignale zu irgendeiner der zehn benachbarten lokalen Busleitungen zu liefern, wie durch die Durchgangsgatter 37 und 31 konfiguriert. Falls erwünscht, kann der Ausgang L sowohl mit einer horizontalen Busleitung als auch einer vertikalen Busleitung gleichzeitig verbunden werden, indem beide entsprechenden Verbindungsdurchgangsgatter 31 freigegeben werden. Obwohl üblicherweise eine der Zwischensignalleitungen 33 durch ein Durchgangsgatter 37 zur Verwendung des lokalen Busausgangs L ausgewählt wird und die anderen vier Zwischensignalleitungen 33 durch die Multiplexer 35A-35D zum Empfang von lokalen Buseingangssignalen ausgewählt werden (und die entsprechenden Ausgangsdurchganggatter 37 gesperrt werden), hat der Anwender die Wahl, die Ausgangsdurchgangsgatter 37 und die Eingangsauswahlmultiplexer 35A-35D zu konfigurieren, um einen Rückführungsweg vom lokalen Busausgang L zu irgendeinem der lokalen Buseingänge AL, BL oder DL vorzusehen, wenn zusätzliche Rückführungswege erforderlich sind. (Wie in Fig. 5 zu sehen, ermöglicht die interne Zellenstruktur bereits die Auswahl der Rückführung gegen den lokalen CL-Buseingang durch den Multiplexer 39).
- Wenn man zu Fig. 5 zurückkehrt, kann die interne Logik jeder Logikzelle zwei 8-Bit-Nachschlagetabellen (L. U. T.s) 45 und 47 enthalten, die durch die A-, B- und C-Eingänge adressiert werden. Die Nachschlagetabellen bestehen typischerweise aus statischen RAM-Speicherzellen, die als Festwertspeicher betrieben werden, d. h. die während der anfänglichen Konfiguration des FPGA-Bauelements belegt werden und während des Betriebs nicht dynamisch umprogrammiert werden. Der Satz von A-Eingängen (An, Ae, As, Aw, AL) wird von einem Multiplexer 41 empfangen und einer von ihnen wird ausgewählt. Der ausgewählte Ausgang dieses A-Multiplexers wird mit dem a&sub0;-Adresseneingang der ersten L. U. T. 45 und dem a&sub1;-Adresseneingang der zweiten L. U. T. 47 verbunden. Der Satz von B-Eingängen (Bn, Be, Bs, Bw, BL) wird ebenso durch einen B-Eingangs-Auswahlmultiplexer 43 ausgewählt und der ausgewählte Ausgang wird mit dem a&sub0;- Adresseneingang der zweiten L. U. T. 47 und dem a&sub1;- Adresseneingang der ersten L. U. T. 45 verbunden. Ein dritter Multiplexer 39 empfängt den lokalen Buseingang CL und ein internes Rückführungssignal auf der Rückführungsleitung 40 und gibt eines von ihnen an die a&sub2;-Adresseneingänge der ersten und der zweiten L. U. T. 45 und 47 aus. Die Logikzelle verwendet die zwei 8-Bit-Nachschlagetabellen 45 und 47, um eine breite Vielfalt einer kombinatorischen Logik bereitzustellen. Die SRAM-Speicherzellen der zwei L. U. T.s 45 und 47 speichern einen Satz von Datenbits, deren Werte der Wahrheitstabelle für eine spezielle Logikfunktion entsprechen. Wenn ein Satz von Eingangssignalen an jedem der drei Adresseneingänge (a&sub0;-a&sub2;) der L. U. T.s dargestellt wird, lesen die zwei Tabellen die jeweiligen Bitwerte, die an den Adressen gespeichert sind, die durch diese Eingangssignale festgelegt werden. Somit liefert jede L. U. T. 45 und 47 an ihrem jeweiligen Ausgang 49 und 51 ein Ein-Bit-Ausgangssignal, das eine spezielle Funktion des Satzes von Eingangssignalen ist, wobei die vom Speicher implementierte Funktion durch die gespeicherten Wahrheitswerte festgelegt ist.
- Die Ausgänge 49 und 51 der Nachschlagetabellen 45 und 47 verzweigen sich zu einer Anzahl von Signalwegen, die sowohl zu den A- und B-Ausgängen der Zelle als auch zum lokalen Busausgang L führen. Insbesondere sind die Ausgänge 49 und 51 der L. U. T.s mit jeweiligen Datenleitungen 52 und 53 verbunden, die durch jeweilige erste und zweite Ausgangsmultiplexer 54 und 55 mit den Ausgangsleitungen 56 und 57 gekoppelt werden können, die Ausgangssignale zu den jeweiligen A- und B-Ausgängen liefern. Die L. U. T.-Ausgänge 49 und 51 stehen auch mit jeweiligen zweiten Datenleitungen 59 und 60 in Verbindung, die zu noch einem dritten Ausgangsmultiplexer 61 führen. Das Steuersignal für den Multiplexer 61 wird vom lokalen Buseingang DL oder von einem Signal mit festem Logikpegel ("0" oder "1") abgeleitet, wie durch einen Multiplexer 62 ausgewählt. Wenn das "0"-Logiksignal ausgewählt wird, überträgt der dritte Ausgangsmultiplexer 61 das Ausgangssignal der ersten Nachschlagetabelle 45, das über die zweite Datenleitung 59 empfangen wird, zu seinem Ausgang 63, wenn jedoch das "1"- Logiksignal ausgewählt wird, überträgt der dritte Ausgangsmultiplexer 61 das Ausgangssignal der zweiten Nachschlagetabelle 47, das über die andere, zweite Datenleitung 60 empfangen wird, zu seinem Ausgang 63. Wenn der lokale Buseingang DL ausgewählt wird, ist die Steuerung des dritten Ausgangsmultiplexers 61 dynamisch. Tatsächlich wirken die zwei 8-Bit-Nachschlagetabellen 45 und 47 dann zusammen als einzelne 16-Bit-Nachschlagetabelle, wobei der lokale Buseingang DL als vierter Adresseneingang zum Zugreifen auf das gewünschte Datenbit, das in der kombinierten Nachschlagetabelle gespeichert ist, wirkt. Der ausgewählte dritte Multiplexerausgang 63 ist in zwei parallele Wege aufgeteilt, wobei einer ein kombinatorischer Weg 65 ohne Register und der andere ein Weg mit Register, der einen Flip-Flop 66 enthält, ist. Ein vierter Ausgangsmultiplexer 67 verbindet einen dieser zwei Wege mit seinem Ausgang 69. Der vierte Multiplexerausgang 69 teilt sich auch in mehrere parallele Wege auf. Einer dieser Wege 70 führt zum ersten Ausgangsmultiplexer 54 für eine mögliche Auswahl und Kopplung mit den A-Ausgängen der Zelle, und ein anderer dieser Wege 71 führt zum zweiten Ausgangsmultiplexer 55 für eine mögliche Auswahl und Kopplung mit den B-Ausgängen der Zelle. Ein dritter Weg führt durch einen Ausgangspuffer 73 zu einer Ausgangsleitung 75, die Ausgangssignale zum lokalen Busausgang L der Zelle liefert. Der Ausgangspuffer 73 kann ein Puffer mit drei Ausgangszuständen sein, der durch ein Freigabesignal gesteuert wird, das von noch einem weiteren Multiplexer 74 geliefert wird. Auswählbare Optionen umfassen ein "1"-Logiksignal, bei dem der Puffer 73 immer freigegeben wird, und zwei dynamische Ausgangsfreigabesignale OEH und OEv, die von zweckorientierten Busleitungen empfangen werden. Ein vierter Weg für den vierten Multiplexerausgang 69 ist ein Rückführungsweg 40, der zum Eingangsmultiplexer 39 für eine mögliche Auswahl anstelle des lokalen Buseingangs CL führt.
- Die Zellenstruktur ergibt eine beträchtliche Flexibilität, während eine relative Einfachheit und kompakte Größe beibehalten werden. Die A- und B-Eingangsmultiplexer 41 und 43 sehen eine vollständige Symmetrie bezüglich der vier nächsten benachbarten Zellen vor. Ebenso sieht die Eingangsschaltung des lokalen Busses von Fig. 6 eine vollständige Identität von Optionen für alle zehn der lokalen Busverbindungen der Zelle vor. Am Ausgangsende der Zelle sind die A- und B-Ausgänge mit entsprechenden Optionen versehen. Die A-Ausgänge können mit dem Ausgangssignal der ersten Nachschlagetabelle 45 versehen werden, entweder ohne Register über die direkte Signalleitung 52 oder mit Register über die zweite Signalleitung 59, das Register 66 und die Signalleitung 70. Oder sie können mit dem Ausgangssignal der zweiten Nachschlagetabelle 47 über die zweite Signalleitung 60 und die Signalleitung 70, wieder entweder mit Register oder ohne Register, versehen werden. Oder sie können mit Register oder ohne Register mit dem Ausgangssignal der kombinierten 16-Bit-L. U. T. versehen werden, wenn der lokale Buseingang DL durch den Multiplexer 62 ausgewählt wird, um als vierter Adresseneingang zu wirken. Ebenso können die B- Ausgänge mit dem Ausgangssignal der zweiten Nachschlagetabelle 47, der ersten Nachschlagetabelle 45 oder der kombinierten,16-Bit-Nachschlagetabelle versehen werden, und beliebige dieser Ausgänge können entweder mit Register oder ohne Register sein. Dieselben Optionen stehen auch für den lokalen Busausgang L der Zelle zur Verfügung.
- Zusätzlich zu den symmetrischen und flexiblen Eingangs- und Ausgangsauswahloptionen führt die Zellenstruktur zu einem relativ schnellen Durchsatz von den Eingängen zu den direkten Zellen-Zellen-Ausgängen der Zelle. Aufgrund der Einfachheit der Zelle können nicht mehr als drei Schaltungselemente zwischen einem Eingang und einem Ausgang der Zelle vorhanden sein. Insbesondere verlaufen die A-, B-, C- und D-Eingangssignale nur durch eine Auswahlschaltung, nämlich irgendeinen der Multiplexer 41, 43, 39 und 62, bevor sie einen Adresseneingang a&sub0;, a&sub1;, a&sub2; oder den Steuereingang des Multiplexers 61 erreichen, die gemeinsam den Zugriff auf die Datenbits steuern, die in den Nachschlagetabellen 45 und 47 gespeichert sind. Ebenso kann auf der Ausgangsseite der Nachschlagetabellen 45 und 47 ein auf den Nachschlagetabellen-Ausgangsleitungen 49 und 51 geliefertes Signal nur durch einen Multiplexer 54 oder 55 verlaufen, um die A- oder B-Ausgänge der Zelle zu erreichen.
- Fig. 7 zeigt eine alternative Logikzelle gemäß der vorliegenden Erfindung. Die Zelle umfaßt einen Satz von Eingangsmultiplexern 41', 43', 39' und 62', die A-, B-, C- und D-Eingänge empfangen und auswählen. Die A-Eingänge umfassen wie in Fig. 5 direkte Zellen-Zellen-Eingänge An, Ae, AS und AW von angrenzenden nächsten benachbarten Logikzellen in derselben Zeile oder Spalte wie die fragliche Zelle, und umfassen auch einen lokalen Buseingang AL. Die B-Eingänge können auch dieselben wie in Fig. 5 sein oder können alternativ Zellen-Zellen-Eingänge Bnw, Bne, Bse und Bsw von diagonal benachbarten Logikzellen zusätzlich zum lokalen Buseingang BL umfassen. Somit können die B- Eingänge den in Fig. 3 gezeigten Zellen-Zellen-Verbindungen entsprechen. Der Eingangsmultiplexer 39' wählt entweder einen lokalen Buseingang CL oder ein "1"-Logiksignal aus. Sein Ausgang 42' ist mit einem Eingang eines UND-Gatters 44' verbunden. Ein Multiplexer 38' wählt entweder ein Rückführungssignal auf der Rückführungsleitung 34', einen lokalen Buseingang DL oder ein "1"-Logiksignal aus und übergibt das ausgewählte Signal an seinem Ausgang 40' dem anderen Eingang des UND-Gatters 44'. Folglich kann das UND- Gatter 44' entweder den lokalen Buseingang CL oder DL oder ein Rückführungssignal an seinem Ausgang 46' durchlassen oder kann die lokalen Buseingänge CL und DL (oder den Eingang CL mit dem Rückführungssignal) logisch kombinieren (UND), um die UND-Verknüpfung dieser zwei Eingangssignale zu bilden. Die Zelle mit dem UND-Gatter 44' sieht die Fähigkeit vor, ein Element eines Matrixmultiplizierers in einer einzelnen Zelle zu implementieren. Wie in Fig. 5 stehen die ausgewählten Ausgänge der Eingangsmultiplexer 41' und 43' mit zwei der Adresseneingänge a&sub0; und a&sub1; von zwei 8-Bit-Nachschlagetabellen 45' und 47' in Verbindung. Der Ausgang 46' des UND-Gatters 44' ist mit einem dritten Adresseneingang a&sub2; der Nachschlagetabellen 45' und 47' verbunden.
- Wie in Fig. 5 sind die Ausgänge der Nachschlagetabellen 45' und 47' über die Ausgangsmultiplexer 54' und 55' mit jeweiligen A- und B-Ausgängen der Logikzelle verbunden. Die. Tabellen 45' und 47' sind auch mit einem dritten Multiplexer 61' verbunden, der durch ein festes "0"- oder "1"-Steuersignal oder durch den lokalen Buseingang DL gesteuert wird, wie durch noch einen weiteren Multiplexer 62' ausgewählt. Wenn der lokale Buseingang DL ausgewählt wird, kombinieren sich die zwei Nachschlagetabellen 45' und 47' wie vorher effektiv zu einer einzelnen 16-Bit-Tabelle, wobei der lokale Buseingang DL als vierter Adresseneingang wirkt. Der ausgewählte Ausgang des dritten Multiplexers 61' steht mit einer Auswahlschaltung mit Register/ohne Register in Verbindung, die aus einem Signalweg 65' ohne Register, einem Flip-Flop-Register 66' in einem Signalweg mit Register und einem Multiplexer 67', der einen dieser zwei Signalwege auswählt, besteht. Der resultierende Ausgang 69' ist über die Multiplexer 54' und 55' mit den A- und B- Ausgängen der Zelle und über einen Ausgangspuffer 73' mit dem lokalen Busausgang L der Zelle verbunden. Wieder kann der Ausgangspuffer 73' ein Puffer mit drei Ausgangszuständen sein, der auf ein Ausgangsfreigabesignal reagiert, das von einem Multiplexer 74' ausgewählt wird. Fig. 7 stellt auch dar, daß die Ausgangspufferschaltung 73' auch eine Ausgangspolaritätssteuerung über noch einen weiteren Multiplexer 72' umfassen kann.
- Mit Bezug auf Fig. 8 verwendet eine weitere alternative Logikzelle gemäß der vorliegenden Erfindung zwei statische 8 · 1-RAMs, die während der Operation des Bauelements durch Liefern einer Schreibfreigabe und eines Datenzugriffs zur Zelle vom Busnetzwerk beschreibbar sind. Dies ermöglicht, daß die Zellen als Ein-Chip-Speicher verwendet werden, oder ermöglicht alternativ, daß Logikfunktionen, die normalerweise durch im voraus belegte und feste Nachschlagetabellen ausgeführt werden, während der Operation z. B. durch das Bauelement selbst infolge einer gewissen Funktion, die von anderen Zellen im FPGA- Bauelement ausgeführt wird, dynamisch geändert werden. Bei diesem Ausführungsbeispiel sind die Eingangsmultiplexer 41", 43" und 39" mit den direkten A-, B- und C- und den lokalen Buseingängen und der Rückführungsleitung 40" und mit den Adresseneingängen a&sub0;, a&sub1; und a&sub2; der SRAMs 45" und 47" in derselben Weise wie in Fig. 5 verbunden. Die Ausgänge 49" und 51" der SRAMs 45" und 47" teilen sich jeweils in einen Weg 64" und 65" ohne Register und einen Weg mit Register, der einen Flip-Flop 66" und 68" enthält, die zu Ausgangsmultiplexern 54" bzw. 55" führen, auf. Die Ausgänge der Multiplexer 54" und 55" führen entlang Signalwegen 56" und 57" zu den direkten A- und B-Zellen- Zellen-Ausgängen der Logikzelle und führen auch entlang zweiter Signalwege 59" und 60" zu einem Ausgangsauswahlmultiplexer 61" des lokalen Busses, der von einem durch einen Multiplexer 62" ausgewählten Signal gesteuert wird. Diese Wahl umfaßt feste logisch niedrige ("0") und logisch hohe ("1") und dynamische lokale Buseingangssignale DH und Dv, die jeweils von horizontalen und vertikalen lokalen Bussen erhalten werden. Wenn ein dynamisches lokales Buseingangssignal DH oder Dv ausgewählt wird, um den Ausgangsmultiplexer 61" zu steuern, dann wirkt dieses Eingangssignal effektiv als vierter Adresseneingang für einen kombinierten 16-Bit-SRAM, der aus den zwei 8-Bit- SRAMs 45" und 47" besteht. Der ausgewählte Ausgang 69" aus dem Ausgangsmultiplexer 61" ist mit einer Rückführungsleitung 40" verbunden, die zum Eingangsmultiplexer 39" führt, und ist auch über einen Puffer 73" mit einem lokalen Busausgang L verbunden. Wie vorher kann der Puffer 73" eine Ausgangsfreigabesteuerung von einem lokalen Bus OEH oder OEv über einen Multiplexer 74" aufweisen. Alternativ kann die Schaltung zwischen den SRAM-Ausgängen 49" und 51" und den direkten A- und B- Ausgängen und dem lokalen Busausgang L wie in Fig. 5 sein.
- Der Schreibzugriff auf die SRAMs 45" und 47", der für dieses Zellenausführungsbeispiel einzigartig ist, wird durch eine Leitung 84" DATA_IN, die mit dem FPGA- Busnetzwerk und mit Dateneingängen d&sub0; der zwei SRAMs 45" und 47" verbunden ist, durch Adresseneingänge a&sub0;-a&sub2; und durch eine Schreibfreigabeschaltung, die ein Schreibfreigabesignal WE zu einem der SRAMs 45" und 47" liefert, vorgesehen. Die Schreibfreigabeschaltung umfaßt zwei UND-Gatter 76" und 77" mit jeweils drei Eingängen 78"- 80" und jeweils mit einem Ausgang, der mit dem Schreibfreigabeeingang in einen der SRAMs 45" und 47" gekoppelt ist. Einer der UND-Gatter-Eingänge 78" empfängt dasselbe Steuersignal, das vom Multiplexer 62" ausgewählt wird, wie der Ausgangsmultiplexer 61" des lokalen Busses. Das heißt, der Eingang 78" empfängt selektiv entweder feste logisch niedrige ("0") oder hohe ("1") oder dynamische lokale Buseingangssignale DH oder Dv. Der Eingang 78" wird vor der Ankunft am UND-Gatter 76" invertiert, wird jedoch nicht vor der Ankunft am anderen UND-Gatter 77" invertiert. Somit empfängt nur einer der SRAMs 45" und 47" auf einmal ein Schreibfreigabesignal. Wenn der Eingang 78" auf einem niedrigen Logikpegel liegt, wird der linke SRAM 45" freigegeben, wenn jedoch der Eingang 78" auf einem hohen Logikpegel liegt, wird der rechte SRAM 47" freigegeben. Die Verwendung desselben Steuersignals für die Ausgangsmultiplexer 61" des lokalen Busses stellt sicher, daß die von der Leitung 84" DATA IN geschriebenen Daten am lokalen Busausgang L überprüft werden können. Der zweite UND-Gatter-Eingang 79" liefert ein invertiertes TAKT-Signal zu den UND-Gattern 76" und 77", um sicherzustellen, daß die zu schreibenden Eingangsdaten auf der Leitung 84" korrekt hergestellt werden, bevor das Schreibfreigabesignal WE zum ausgewählten SRAM 45" und 47" geliefert wird. Der dritte UND-Gatter-Eingang 80" liefert das Schreibfreigabesignal WE selbst über einen Multiplexer 82", der ermöglicht, daß das Schreiben für diese Logikzelle selektiv gesperrt wird (durch ein festes niedriges Logikeingangssignal "0").
- Mit Bezug auf Fig. 9 und 10 empfängt das Flip-Flop-Register (oder die Flip-Flop-Register) 66, 66', 66" und 68" in jeder Zelle (Fig. 5, 6 bzw. 8) ein TAKT-Eingangssignal und ein RÜCKSETZ- (oder Setz-) Eingangssignal. Fig. 9 zeigt die Taktverteilungsschaltung für ein FPGA der vorliegenden Erfindung. Es können mehrere globale Taktleitungen CKO-CK7 vorhanden sein, die Taktsignale liefern, die sich in der Frequenz, Phase oder beiden voneinander unterscheiden können. Andere mögliche Taktverteilungsanordnungen können irgendeine andere Anzahl von Taktleitungen, die teilweise die Multiplexer 88 belegen, usw. umfassen. Jede Spalte von Logikzellen 11 kann mit ihrem eigenen Taktauswahlmultiplexer 88 mit Eingängen, die jeweils mit einigen oder allen der globalen Taktleitungen CKO-CK7 verbunden sind, versehen sein. Somit kann jede Spalte von Logikzellen 11 mit einem anderen Taktsignal gegenüber den anderen Spalten von Logikzellen 11 versehen werden. Der Ausgang jedes Taktauswahlmultiplexers 88 bildet eine Hauptspaltenleitung 92 zum Verteilen des ausgewählten Taktsignals zu jeder der Zellen in dieser Spalte. Die Spalte von Logikzellen kann in Sektoren von jeweils 4 oder 8 oder allgemeiner N Zellen unterteilt sein. In Fig. 9 ist zu sehen, daß ein Sektor 14 aus 4 Zellen besteht. Für jeden Sektor von Zellen ist eine Taktpolaritätsauswahl- und Verteilungsfreigabeschaltung 94, die von der Hauptspaltenleitung 92 abzweigt, vorgesehen. Diese Schaltung 94 umfaßt einen ersten Multiplexer 106 mit einem Eingang, der mit der Hauptspaltenleitung 92 verbunden ist, zum Empfangen eines Taktsignals und einem weiteren Eingang, der ein festes hohes ("1") Logiksignal empfängt. Wenn das Taktsignal durch den Multiplexer 106 ausgewählt wird, dann wird dieses Signal zum entsprechenden Sektor 14 von Logikzellen 11 verteilt, wenn jedoch das feste Signal ausgewählt wird, dann wird kein Taktsignal zu diesem Sektor 14 geliefert. Die Schaltung 94 umfaßt ferner einen gegabelten Signalweg (105 und 107), der zu einem zweiten Multiplexer 108 führt. Ein Eingang des zweiten Multiplexers kommt direkt vom Ausgang 105 des ersten Multiplexers 106, während der andere Eingang zuerst durch einen Inverter 107 verläuft. Der zweite Multiplexer 108 ermöglicht somit, daß die Polarität des Taktsignals für den entsprechenden Sektor ausgewählt wird, wodurch ermöglicht wird, daß andere Sektoren in derselben Spalte von Logikzellen 11 das Taktsignal mit der entgegengesetzten Polarität empfangen. Schließlich können einige Sektoren von Zellen im Gegensatz zum obersten Satz von Sektoren, die am nächsten zu den globalen Taktleitungen CKO-CK7 liegen, alternativ ein direktes A-Ausgangssignal 110 von einer Zelle in einem benachbarten Sektor von Zellen in derselben Spalte empfangen.
- In Fig. 10 kann die Polarität eines RÜCKSETZ-Signals, das von einer globalen RÜCKSETZ-Leitung 114 geliefert wird, um Spaltenleitungen 115 zurückzusetzen, ebenso durch Sektoren von Logikzellen mittels einer Rücksetzpolaritätsauswahl- und Verteilungsfreigabeschaltung 116, die in derselben Weise wie die Taktschaltungen 94 konstruiert ist, festgelegt werden.
- Mit Bezug auf Fig. 11 sind die Logikzellen 11 zu 4 · 4- Blöcken 15 von Zellen organisiert, an deren Grenzen 13 sich ein Satz von "Zwischenverstärker" genannten Verbindungsschaltern 27 für das Busnetzwerk befindet. Wie vorher erwähnt, umfaßt das Busnetzwerk Sätze von horizontalen Busleitungen 21, die zwischen den Zeilen von Logikzellen 11 verlaufen, und Sätze von vertikalen Busleitungen 19, die zwischen den Spalten von Logikzellen 11 verlaufen. Jeder Satz von Busleitungen 19 oder 21 umfaßt eine lokale Busleitung 23, die auf einen einzelnen Block 15 von Zellen begrenzt ist, und zwei Expreßbusleitungen 25, die sich durch die Zwischenverstärker 27 über mehrere Blöcke von Zellen erstrecken. Der Einfachheit halber ist nur ein Satz von drei Busleitungen 23 und 25 für jede Zeile und Spalte von Zellen 11 dargestellt. Wie auch vorher erwähnt, sind jedoch normalerweise fünf Sätze von drei Busleitungen 19 und 21 für jede Zeile und Spalte von Zellen 11 vorhanden, wie in Fig. 4 zu sehen. Die Zwischenverstärker 27 ermöglichen, daß lokale Busleitungen 23 mit Expreßbusleitungen 25 verbunden werden. Nur lokale Busleitungen stehen direkt mit den Logikzellen 11 in Verbindung. Die Zwischenverstärker 27 weisen eine versetzte Anordnung auf, wobei irgendein Zwischenverstärker 27 eine auswählbare Verbindung zwischen einer lokalen Busleitung 23 und nur einer der zwei Expreßbusleitungen 25 in dem Satz vorsieht und wobei aufeinanderfolgende Zwischenverstärker 27 mit abwechselnden Expreßbusleitungen in dem Satz in Verbindung stehen. Somit trifft jede Expreßbusleitung 25 alle acht Zeilen oder Spalten von Zellen 11 anstatt alle vier Zeilen oder Spalten auf einen Zwischenverstärker 27, während jede lokale Busleitung 23 alle vier Zeilen oder Spalten von Zellen 11 auf einen Zwischenverstärker 27 trifft. Jede lokale Busleitung 23 in einem Block 15 von Zellen 11 ist mit jeder ihrer entsprechenden Expreßbusleitungen 25 an entgegengesetzten Enden des Blocks 15 verbindbar. Eine bequeme Weise zum Anordnen der Zwischenverstärker 27, um die gewünschte versetzte Anordnung zu erhalten, besteht darin, daß eine gesamte Zeile oder Spalte von Zwischenverstärkern 27 mit entsprechenden Expreßbusleitungen in den jeweiligen Sätzen von drei Busleitungen verbindbar ist (z. B. alle mit den am weitesten links liegenden oder obersten Expreßleitungen verbunden) und die nächstfolgende Zeile oder Spalte von Zwischenverstärkern 27, im Abstand von vier Logikzellen, alle mit den entgegengesetzten entsprechenden Expreßleitungen in dem Satz verbindbar ist (z. B. alle mit den am weitesten rechts liegenden oder untersten Expreßleitungen verbunden) und so weiter. Fig. 11 zeigt auch, daß zusätzliche Schalter 81 dort angeordnet sein können, wo sich Zeilen und Spalten von Busleitungen schneiden, um zu ermöglichen, daß Signale zwischen Zeilen und Spalten von Busleitungen um 90º gewendet werden. Diese Schalter 81 verbinden lokale Busleitungen mit anderen lokalen Busleitungen und Expreßbusleitungen mit anderen Expreßbusleitungen.
- Mit Bezug auf Fig. 12 befinden sich an den Ecken jedes Blocks 15 von Logikzellen 11 in den Zwischenräumen, die an den Schnittpunkten von Zeilen und Spalten von Zwischenverstärkern 27, die die Blöcke 15 begrenzen, vorgesehen sind, zweckorientierte Funktionselemente 83 (DFE), die Speicherstrukturen wie z. B. Blöcke von Direktzugriffsspeichern (RAM) sein können, oder andere zweckorientierte oder spezialisierte Schaltungen wie z. B. Multiplizierer, Schieberegister, eine digitale oder analoge Logik mit fester Funktion, Mikrosteuereinheiten, Vergleicher und Analog-Digital- oder Digital-Analog- Wandler. Da sich die Eckenzwischenräume natürlicherweise aus der Blockorganisation der Zellen und ihrer zugehörigen Busleitung und Zwischenverstärker ergeben, geschieht die Anordnung einer zweckorientierten Speicherlogik in solchen Zwischenräumen wenig oder nicht auf Kosten der Siliziumfläche für das gesamte Bauelement.
- Jedes zweckorientierte Funktionselement 83 kann ein RAM- Block oder eine andere Speicherstruktur (wie z. B. ein nicht-flüchtiger Speicher) sein, der als 32 4-Bit- Datenworte für insgesamt 128 Bits pro Block organisiert ist, wie in Fig. 4 und 13 zu sehen. Mit Bezug auf Fig. 13 kann jeder RAM-Block 83 einen SRAM 85 mit fünf synchronen Adresseneingängen a&sub0;-a&sub4;, die Adressensignale von Adressenleitungen 86&sub0;-86&sub4; über einen Satz von Flip-Flop- Registern 87 empfangen, und mit vier bidirektionalen Datenanschlüssen d&sub0;-d&sub3; umfassen. Die Datenanschlüsse d&sub0;-d&sub3; sind mit jeweiligen Datenleitungen 89&sub0;-89&sub3; verbunden, von denen jede wiederum mit einem Paar von Eingangs- und Ausgangspuffern 90 und 91 verbunden ist. Die Eingangspuffer 90 sind über Flip-Flops 93 mit Datenleitungen 950-953 verbunden. Die Ausgangspuffer 91 sind direkt mit den Datenleitungen 95o-953 verbunden. Ein Schreibfreigabesignal WE wird von einer Schreibfreigabeleitung 96 über ein Flip- Flop-Register 97 empfangen. Der Registerausgang Q des Flip- Flops 97 ist über eine erste Verzweigung mit einem Schreibfreigabe-Eingangsanschluß des SRAM 85 und über eine zweite Verzweigung 99 über jeweilige Seitenverzweigungen 99&sub0;-99&sub3; mit den Dreizustands-Steuereingängen der Eingangspuffer 90 für jeden Datenanschluß d&sub0;-d&sub3; verbunden. Ein Ausgangsfreigabesignal OE wird auch von einer Ausgangsfreigabeleitung 102 über ein Flip-Flop-Register 103 empfangen. Der Ausgang 104 des Registers 103 steht mit einem ersten Eingang eines UND-Gatters 101 in Verbindung, während eine dritte Verzweigung 100 des Ausgangs des Flip- Flop-Registers 97 mit einem komplementären zweiten Eingang des UND-Gatters 101 verbunden ist. Der Ausgang 105 des UND- Gatters 101 ist über jeweilige Seitenverzweigungen 105o- 1053 mit den Dreizustands-Steuereingängen der Ausgangspuffer 91 für jeden Datenanschluß d&sub0;-d&sub3; verbunden.
- Zum Schreiben von Daten in den SRAM 85 wird folglich eine 5-Bit-Adresse synchron von den Ausgängen der Register 87 an den Adressenanschlüssen 9&sub0;-9&sub4; empfangen und ein Schreibfreigabesignal wird auch synchron am Schreibfreigabeanschluß WE des SRAM 85 über die erste Verzweigung 98 vom Flip-Flop-Register 97 empfangen. Das Schreibfreigabesignal gibt auch die Eingangspuffer 90 über die Seitenverzweigungen 99&sub0;-99&sub3; frei und sperrt die Ausgangspuffer 91 über das UND-Gatter 101 und die Seitenverzweigungen 105&sub0;-105&sub3;. Daher werden die auf den Datenleitungen 95&sub0;-95&sub3; empfangenen Datenbits über die Eingangspuffer 90 und die Datenleitungen 89&sub0;-89&sub3; zu den jeweiligen Datenanschlüssen d&sub0;-d&sub3; übertragen und an der Adresse, die an den Adressenanschlüssen a&sub0;-a&sub4; empfangen wird, in den SRAM 85 geschrieben. Um gespeicherte Daten aus dem SRAM 85 zu lesen, werden eine Adresse und ein Ausgangsfreigabesignal OE synchron über die Register 87 und 103 an den Adressenanschlüssen a&sub0;-a&sub4; bzw. am UND-Gatter 101 empfangen. Das Schreibfreigabesignal WE, das vom Register 97 übertragen wird, ist niedrig, wobei die Eingangspuffer 90 über die Verzweigungsleitungen 990-993 gesperrt werden und ermöglicht wird, daß das UND-Gatter 101 die Ausgangspuffer 91 über die Verzweigungsleitungen 105&sub0;-105&sub3; freigibt. An der empfangenen Adresse gespeicherte Daten werden über die Datenanschlüsse d&sub0;-d&sub3; zu den Datenleitungen 95&sub0;-95&sub3; ausgegeben. Als Alternative kann der RAM-Block 83 geeignet modifiziert werden, so daß die Schreibfreigabe- und Ausgangsfreigabesignale im aktiven Zustand niedrig sind.
- Wenn man zu Fig. 4 zurückkehrt, kann der RAM-Block 83 von Fig. 13 mit dem Busnetzwerk derart verbunden sein, daß jede der fünf Adressenleitungen 86 mit einer anderen der fünf vertikalen lokalen Busleitungen 23 entsprechend einer Spalte von Zellen 11 verbunden ist, die Schreibfreigabe- und Ausgangsfreigabeleitungen 96 und 102 mit zwei vertikalen Expreßbusleitungen 25 entsprechend eben dieser Spalte von Zellen verbunden sind, und jede der vier Datenleitungen 95 mit einer anderen horizontalen lokalen Busleitung entsprechend jeder der vier Zeilen von Zellen 11 in der 4 · 4-Gruppe von Zellen benachbart zu diesem RAM-Block 83 verbunden ist. Andere Verbindungsschemen sind auch möglich.
- Alternativ können anstelle der in Fig. 4 und 13 gezeigten Anordnung die RAM-Blöcke 83 mit dem Busnetzwerk in der in Fig. 14 und 15 zu sehenden Weise verbunden sein. Fig. 14 zeigt acht der 4 · 4-Blöcke 15 von Logikzellen 11 zusammen mit einigen der vertikalen und horizontalen Expreßbusleitungen 19 und 21, die zwischen den Zeilen und Spalten von Zellen 11 in und zwischen den Blöcken 15 verlaufen. Wendeschalter 81 verbinden ausgewählte vertikale und horizontale Busleitungen 19 und 21 miteinander, wo sie sich schneiden. In der unteren rechten Ecke jedes Blocks 15 von Logikzellen 11 befindet sich ein RAM-Block 83. Wie in Fig. 15 zu sehen, kann jeder RAM-Block 83 ein SRAM mit doppeltem Anschluß mit einem Schreibfreigabeanschluß , Schreibadressenanschlüssen Ain und Dateneingangsanschlüssen Din für Schreiboperationen in den SRAN. und mit einem Lesefreigabeanschluß E, separaten Leseadressenanschlüssen Aout und separaten Datenausgangsanschlüssen Dout für das Lesen von Daten aus dem SRAM sein. Somit können Lese- und Schreiboperationen unabhängig und sogar gleichzeitig auf separaten Adressen- und Datenleitungen stattfinden.
- Wenn man zu Fig. 14 zurückkehrt, wird eine 6-Bit- Schreibadresse (WRITE ADDR.) entsprechend einem Satz von Stellen im RAM, in die 8 Datenbits geschrieben werden sollen, vom Busnetzwerk oder von externen Kontaktstellen des Bauelements empfangen. Es ist zu sehen, daß zwei der sechs Bits in einen herkömmlichen 2-Zu-4-Bit-Decodierer 171 eingegeben werden. Der Decodierer 171 aktiviert einen und nur einen seiner vier Ausgänge 173 in Abhängigkeit davon, welchen der vier möglichen Zwei-Bit-Eingangswerte er empfängt. Jeder der vier Decodiererausgänge 173 ist mit einem Eingang von einem von vier ODER-Gattern 175 verbunden. Ein globales Schreibfreigabesignal wird am anderen Eingang der vier ODER-Gatter 175 empfangen. Die ODER-Gatter-Ausgänge 177 stehen mit vertikalen Expreßbusleitungen 19 entsprechend jeder der vier Spalten von Blöcken 15 und ihren entsprechenden Spalten von RAM- Blöcken 83 in Verbindung. Der Schreibfreigabeanschluß E dieser RAM-Blöcke ist mit diesen speziellen vertikalen Expressbusleitungen verbunden, um ein decodiertes Schreibfreigabesignal von den entsprechenden ODER-Gatter- Ausgängen 177 zu empfangen. Für eine beliebige Kombination der zwei Schreibadressenbits wird folglich eine der vier Spalten voh RAM-Blöcken 83 für eine Schreiboperation aktiviert, wenn das globale Schreibfreigabesignal aktiv ist. Die anderen vier Schreibadressenbits in der 6-Bit- Adresse stehen mit horizontalen Expreßbusleitungen 21 und dann über Wendeschalter 81 mit vertikalen Busleitungen 19, die mit Schreibadressenanschlüssen Ain jedes RAM-Blocks 83 verbunden sind, in Verbindung. Acht Dateneingangsleitungen Din(0)-Din(7) sind über horizontale Busse 19 benachbart zu jeder Zeile von Logikzellen 11 mit den Dateneingangsanschlüssen Din der RAM-Blöcke 83 verbunden, wobei jeder RAM-Block 83 vier parallele Dateneingangssignale von entweder Din(0)-Din(3) oder Din(4)- Din(7) empfängt. Somit sind zwei Zeilen von RAM-Blöcken erforderlich, um einzelne Datenbytes in irgendeine gegebene Adresse zu schreiben.
- Ebenso wird für Leseoperationen eine 6-Bit-LESEADRESSE geliefert, wobei zwei der Adressenbits mit einem weiteren 2-Zu-4-Bit-Decodierer 172 verbunden sind, welcher vier Ausgangssignale 174, eines für jede RAM-Spalte, liefert, und wobei die vier restlichen Adressenbits über horizontale Expreßbusleitungen 21 und Wendeschalter 81 mit vertikalen Expreßbusleitungen 19 verbunden sind, die zu Leseadressenanschlüssen der RAM-Blöcke 83 führen. Wieder werden alle acht RAM-Blöcke mit vier Adressenbits versehen, aber nur eine Spalte von RAM-Blöcken wird mit einem Lesefreigabesignal versehen, das von den zwei Adressenbits, die in den Decodierer 172 eingegeben werden, abgeleitet wird. Acht Datenausgangsleitungen Dout(O)-Dout(7) sind über horizontale Expreßbusleitungen mit den Datenausgangsanschlüssen Dout in zwei Zeilen von RAM-Blöcken 83 verbunden.
- Eine wertvolle Anordnung sieht eine Spiegelsymmetrie zwischen den Lese- und Schreibadressenanschlüssen Ain und Aout in benachbarten Spalten von RAM-Blöcken 83 vor. Dies verringert die erforderliche Anzahl von vertikalen Busbetriebsmitteln, die für Adressensignale verwendet werden, um ungefähr die Hälfte, wenn ein RAM-Element mit doppeltem Anschluß konstruiert wird. Man beachte, daß sich in Fig. 14 die ersten zwei Spalten von RAM-Blöcken gemeinsame Leseadressenleitungen 176 teilen. Ebenso teilen sich die letzten zwei Spalten von RAM-Blöcken gemeinsame Leseadressenleitungen 178. Die zweite und die dritte Spalte von RAM-Blöcken teilen sich gemeinsame Schreibadressenleitungen 179. In größeren Gruppen von Speicherblöcken wie z. B. jenen mit acht oder sechzehn Spalten von RAM-Blöcken und 3-Zu-8- oder 4-Zu-16-Bit- Decodierern würde die Verwendung von vertikalen Busbetriebsmitteln von Leseadressenleitungen in einer Spalte von Logikblöcken 15 zu Schreibadressenleitungen in der nächsten Spalte von Logikblöcken 15 abwechseln.
- Die zweckorientierten Funktionselemente an den Ecken von jedem Block von Logikzellen könnten auch spezialisierte Logikstrukturen wie z. B. Multiplizierer sein. Ein 4 · 4- Multiplizierer kann beispielsweise mit dem Busnetzwerk in derselben Weise wie der SRAM mit doppeltem Anschluß, der in Fig. 14 und 15 zu sehen ist, verbunden sein, wobei ein Satz von Adresseneingängen gegen einen Vier-Bit-Operanden ausgetauscht ist und der andere Satz von Adresseneingängen gegen einen zweiten Vier-Bit-Operanden ausgetauscht ist. Der Acht-Bit-Produkt-Ausgang des Multiplizierers ersetzt die zwei Vier-Bit-Dateneingangs- und -Datenausgangsleitungen des RAM.
- Mit Bezug auf Fig. 16 können die Logikzellen 11 an der Kante der Matrix mit den Eingangs/Ausgangs- (E/A) Kontaktstellen 17 in einer beliebigen einer Anzahl von Weisen verbunden sein. Eine hier gezeigte Weise verbindet jede Logikzelle, z. B. die Zelle 112, mit drei benachbarten E/A-Kontaktstellen 117-119 über E/A-Leitungen 121-123 und verbindet auch jede E/A-Kontaktstelle, z. B. die Kontaktstelle 118, mit drei benachbarten Logikzellen 111- 113 über E/A-Leitungen 122, 124 und 125. Eine Ausnahme für dieses Schema tritt gewöhnlich an den Ecken der Matrix und an den Enden der Zeile von Kontaktstellen auf. Somit ist die Endkontaktstelle 131 mit nur zwei Logikzellen 134 und 135 über E/A-Leitungen 132 und 133 verbunden. Die Eckenlogikzelle 135 ist mit vier E/A-Kontaktstellen verbunden, nämlich den Kontaktstellen 130 und 131 in einer Zeile von E/A-Kontaktstellen und den Kontaktstellen 139 und 140 in der anderen Zeile von Kontaktstellen, über E/A- Leitungen 132 und 136-138. Andere Anordnungen sind möglich.
- Ein Detail des Eckenverbindungsschemas ist in Fig. 17 gezeigt. Verbindungen für andere Logikzellen und E/A- Kontaktstellen sind analog. Die spezielle Logikzelle 135, die in Fig. 17 zu sehen ist, ist die Zelle der unteren rechten Ecke der Matrix, d. h. die Zelle in der unteren Zeile und der am weitesten rechts liegenden Spalte in Fig. 1, Wie in Fig. 16 zu sehen, steht diese spezielle Zelle 135 mit den zwei am weitesten rechts liegenden E/A- Kontaktstellen 139 und 140 in der unteren Zeile von Kontaktstellen und mit den zwei untersten E/A- Kontaktstellen 130 und 131 in der rechten Zeile von Kontaktstellen der Schaltung in Verbindung. Die Zelle 135 in Fig. 17 ist wie alle anderen Zellen in der Matrix mit einem Satz von benachbarten vertikalen und horizontalen Busleitungen 19 und 21 entweder direkt mit lokalen Bussen 23 oder indirekt mit Expreßbusleitungen 25 über die lokalen Busse 23 und Zwischenverstärkerschalter 27 verbunden. Wie in Fig. 4 und 6 können die Verbindungen zwischen der Zelle 135 und den 5 horizontalen und 5 vertikalen lokalen Busleitungen 23 über einen Satz von zehn bidirektionalen Datenbusleitungen 29 hergestellt werden. Die Eckenzelle 135 stellt auch direkte Verbindungen mit der nächsten benachbarten Zelle (nicht dargestellt) wie in Fig. 2 her. Da jedoch der Zelle 135 Nachbarn rechts von ihr und unter ihr fehlen, werden die vier unbenutzten direkten A- und B- Eingänge (AE, BE, AS und BS) und die vier unbenutzten direkten A- und B-Ausgänge (zwei A und zwei B) zum Erleichtern der Verbindungen mit den E/A-Kontaktstellen und mit gewissen Expreßbusleitungen 25 verwendet.
- Insbesondere steht jede der 5 horizontalen Expreßleitungen 25, die nicht auf die End-Zwischenverstärkereinheiten 27 trifft, mit einem Paar von 5-Zu-1-Multiplexern 141 und 143 und einem Paar von fünfgliedrigen Sätzen von Schaltern 145 und 147 in Verbindung. Ebenso sind die 5 vertikalen Expreßleitungen 25, die nicht auf End- Zwischenverstärkereinheiten 27 treffen, welche die Spalte von Busleitungen abschließen, mit Multiplexern 142 und 144 und Sätzen von Schaltern 146 und 148 verbunden. Die Ausgänge der Multiplexer 141 und 142 stehen mit jeweiligen direkten B-Eingängen BE und Bs und auch mit Ausgangssignalwegen 153 und 154 in Verbindung, die zu E/A- Kontaktstellen führen. Die Ausgänge der Multiplexer 143 und 144 sind nur mit Ausgangssignalwegen 155 und 156 verbunden, die zu E/A-Kontaktstellen führen. Die Sätze von Schaltern 145 und 146 verbinden die direkten B-Ausgänge der Zelle 135 mit den 10 horizontalen und vertikalen Expreßleitungen 25, die nicht durch Zwischenverstärker 27 abgeschlossen sind. Die Sätze von Schaltern 147 und 148 verbinden Eingangssignalwege 169 und 170 von E/A-Kontaktstellen mit denselben 10 horizontalen und vertikalen Expreßleitungen 25. Die Eingangssignalwege 169 und 170 stehen ebenfalls mit jeweiligen direkten A-Eingängen AE und AS der Zelle 135 in Verbindung.
- Die Ausgangssignalwege 151, 153 und 155 auf der rechten Seite verlaufen jeweils zu den untersten zwei Kontaktstellen 130 und 131 in der rechten Zeile von Kontaktstellen und zur am weitesten rechts liegenden Kontaktstelle 139 in der unteren Zeile von Kontaktstellen in Fig. 16. Die Ausgangssignalwege 152, 154 und 156 auf der unteren Seite verlaufen jeweils zu den am weitesten rechts liegenden zwei Kontaktstellen 139 und 140 in der unteren Zeile von Kontaktstellen und der untersten Kontaktstelle 131 in der rechten Zeile von Kontaktstellen in Fig. 16. Somit ist jeder der Ausgangssignalwege 151-156 selektiv mit irgendeiner von drei verschiedenen Kontaktstellen von den vier verfügbaren Kontaktstellenverbindungen verbindbar. Die Signalwege 155 und 156 können auch verwendet werden, um ein Dreizustands-Freigabesignal zu einem Ausgangspuffer zwischen den Wegen 151-154 und den E/A-Kontaktstellen zu liefern. Die Eingangssignalwege 169 und 170 sind ebenso mit den E/A-Kontaktstellen verbindbar. Leitende Leitungen 161, 163 und 165 stehen mit jeweiligen Kontaktstellen 130, 131 und 139 in Verbindung, während leitende Leitungen 162, 164 und 166 mit jeweiligen Kontaktstellen 131, 139 und 140 in Verbindung stehen, die in Fig. 16 zu sehen sind. Die Eingangsauswahlmultiplexer 167 und 168 verbinden jeweils eine ausgewählte leitende Leitung 161-166 mit den Eingangssignalwegen 169 und 170.
- Mit Bezug auf Fig. 18 und 19 kann die Anzahl von E/A- Kontaktstellen von einer Kontaktstelle 17 pro Umfangslogikzelle 11 in Fig. 16 auf drei Kontaktstellen 17' pro Paar von Umfangslogikzellen 12, die hier gezeigt sind, oder auch auf nicht weniger als zwei Kontaktstellen pro Umfangslogikzelle, falls erwünscht, erhöht werden. In Fig. 18 können die E/A-Kontaktstellen 180, 181, 183, 184 usw. direkt gegenüber einer der Nicht-Ecken-Umfangslogikzellen 187-190 mit drei Umfangslogikzellen und mit ihren zugehörigen Busleitungen wie in Fig. 16 verbunden werden. Die E/A-Kontaktstelle 181 ist beispielsweise mit den Umfangslogikzellen 187-189 und den zugehörigen Busleitungen verbindbar, wie nachstehend mit Bezug auf Fig. 19 zu sehen ist. Zusätzliche E/A-Kontaktstellen 182, 185 usw., die nicht direkt gegenüber einer Umfangslogikzelle liegen, sondern gegenüber den Zwischenräumen zwischen den Logikzellen 188 und 189 bzw. den Logikzellen 190 und 191 angeordnet sind, sind mit den zwei nächsten Umfangslogikzellen über die diesen zugeordneten Busleitungen indirekt verbindbar, wie in Fig. 19 zu sehen ist. Ebenso ist jede Nicht-Ecken-Umfangslogikzelle 187-190 usw. mit vier E/A-Kontaktstellen verbindbar. Die Zelle 188 ist beispielsweise mit den E/A-Kontaktstellen 180-183 verbindbar. Die Eckenzellen 191 usw. stehen mit sechs E/A- Kontaktstellen 184-186 und 192-194 in Verbindung, drei von jeder Zeile von Kontaktstellen.
- Wie in Fig. 19 zu sehen ist, ist die E/A-Kontaktstelle 181 mit einem Eingangspuffer 201 verbunden, dessen Ausgang 202 sich in drei Eingangsleitungen 203-205 aufteilt, die zu direkten Zelleneingängen 206-208 der Logikzellen 187-189 führen. Der Ausgang 202 des Puffers ist auch über programmierbare Schalter 209 mit bidirektionalen Signalleitungen 210-212 verbindbar, die zu Zwischenverstärker-Schalteinheiten 27 an den Enden von horizontalen Busleitungen 21, die jeder von drei Zeilen von Logikzellen zugeordnet sind, welche die Zellen 187-189 enthalten, führen. Der E/A-Kontaktstelle 181 ist ein Ausgangsmultiplexer 213 zugeordnet. Dieser Multiplexer 213 ist mit den bidirektionalen Signalleitungen 210-212 von den drei Zeilen von horizontalen Busleitungen 21 verbunden, die den Logikzellen 187-189 zugeordnet sind, und ist auch mit Zellenausgangsleitungen 214-216 verbunden, die von den direkten Zellenausgängen 217-219 der Logikzellen 187-189 kommen. Jede dieser Signalleitungen 210-212 und 217-219 steht mit den Eingängen des Multiplexers 213 in Verbindung, der höchstens einen von ihnen zur Übertragung über einen Ausgangspuffer 220 zur E/A-Kontaktstelle 181 auswählt. Die E/A-Kontaktstellen 180 und 183 direkt gegenüber den Zellen 187 und 189 sind in einer Weise identisch zur E/A- Kontaktstelle 181 verbunden.
- Eine zusätzliche E/A-Kontaktstelle 182 befindet sich zwischen den E/A-Kontaktstellen 181 und 183. Während die E/A-Kontaktstellen 181 und 183 direkt gegenüber den Umfangslogikzellen 188 und 189 angeordnet sind, ist die Kontaktstelle 182 nicht gegenüber irgendeiner Logikzelle angeordnet, sondern ist vielmehr gegenüber dem Zwischenraum zwischen den Zeilen, der den Zellen 188 und 189 zugeordnet ist und die horizontalen Busleitungen 21, die der Zelle 189 zugeordnet sind, enthält, angeordnet. Die E/A-Kontaktstelle 182 ist mit einem Eingangspuffer 221 verbunden, dessen Ausgang über programmierbare Schalter 222 mit bidirektionalen Signalleitungen 223 und 224 verbindbar ist. Diese Signalleitungen 223 und 224 koppeln auch über einen Ausgangsmultiplexer 225 mit einem Ausgangspuffer 226, der mit der E/A-Kontaktstelle 182 verbunden ist. Die bidirektionalen Signalleitungen 223 und 224 sind mit den Signalleitungen 210 verbunden, die zu und von den End- Zwischenverstärker-Schalteinheiten 27 für die horizontalen Busleitungen 21, die den Zellen 188 und 189 zugeordnet sind, führen.
- Mit Bezug auf Fig. 20 und 21 ist noch ein weiteres Ausführungsbeispiel einer Eingangs/Ausgangs-Schnittstelle für FPGAs der vorliegenden Erfindung für zwei der E/A- Kontaktstellen 230 und 231 gezeigt. Für eine leichte Betrachtung der Vielzahl von Signalwegen zeigt Fig. 20 nur die Wege, die einer E/A-Kontaktstelle 231 zugeordnet sind, welche unmittelbar gegenüber einer Logikzelle 228 angeordnet ist. Dieses Schema wiederholt sich für jede Zelle 227, 228, 229 usw. um den Umfang der Matrix von Zellen in dem FPGA-Bauelement. Ebenso zeigt Fig. 21 nur die Wege, die einer E/A-Kontaktstelle 230 zugeordnet sind, die gegenüber einer Position zwischen zwei Logikzellen 227 und 228 angeordnet ist. Dieses Schema wiederholt sich auch um den Umfang des FPGA, obwohl gewöhnlich diese zweiten E/A- Kontaktstellen 230 nur an jeder zweiten verfügbaren Position zwischen den Zellen zu finden sind. Beide Arten von E/A-Kontaktstellen, jene direkt gegenüber Logikzellen und jene gegenüber zwischen den Zellenpositionen, sind normalerweise zusammen in einem FPGA zu finden, wie in dem zweiten Ausführungsbeispiel der E/A-Schnittstelle in Fig. 19 zu sehen.
- Wie in Fig. 20 und 21 zu sehen, weisen die E/A- Kontaktstellen 231 und 230 Pull-up-Transistoren 232 und 252 auf, deren Gates durch ein vom Anwender konfigurierbares Bit (PULL-UP) gesteuert werden. Die Hauptfunktion dieser Transistoren 232 und 252 besteht darin, eine logische "1" zu unbenutzten Kontaktstellen zu liefern. Wenn er durchgesteuert ist, ist ein Transistor 232 oder 252 ungefähr äquivalent zu einem Widerstand von 10 K zu Vcc. Jede Kontaktstelle 231 und 230 weist einen mit dieser verbundenen Eingangspuffer 234 bzw. 254 auf und weist auch einen ebenfalls mit dieser verbundenen Ausgangspuffer 233 bzw. 253 auf. Die Eingangspuffer 234 und 254 weisen einen auswählbaren Schwellenpegel, entweder TTL oder CMOS, auf, der durch ein vom Anwender konfigurierbares Bit (TTL/CMOS) festgelegt wird. Die Ausgangspuffer 233 und 253 weisen auswählbare Ansteuerpegel auf, die durch ein weiteres vom Anwender konfigurierbares Bit (HALBE/VOLLE ANSTEUERUNG) gesteuert werden. Die Ansteuerpegel unterscheiden sich in ihren Gleichstromentnahmefähigkeiten. Alternativ könnten die Puffer eine steuerbare, schnelle oder langsame Ausgangsspannungsänderungsgeschwindigkeit bei derselben vollen Gleichstromentnahmefähigkeit aufweisen. Halbe Ansteuerung oder eine langsame Ausgangsspannungsänderungsgeschwindigkeit, von denen beide Rauschen und Erdungsprellen verringern, wird für Ausgangssignale, die hinsichtlich der Geschwindigkeit nicht kritisch sind, empfohlen. Ein Konfigurationsbit eines "OFFENEN KOLLEKTORS" aktiviert oder deaktiviert selektiv das aktive Hochsetzen des Ausgangspuffers 233 oder 253. Das Freigabesignal (TRI-STATE) für die Dreizustands- Ausgangspuffer 233 und 253 wird durch Multiplexer 235 und 255 von einer Anzahl von Optionen ausgewählt. Die Optionen umfassen typischerweise feste Logikpegel "0" und "1", wobei der Puffer entweder immer ansteuert oder nie ansteuert, und eine Anzahl von dynamischen Signalen, die in der Matrix erzeugt werden. Die primären E/A-Kontaktstellen 231 direkt gegenüber einer Umfangslogikzelle 228 weisen drei dynamische Signalauswahlmöglichkeiten (ZELLE 1, ZELLE 2, ZELLE 3) auf, die den drei verfügbaren Ausgangszellen 227, 228 und 229 zugeordnet sind, während die sekundären E/A- Kontaktstellen 230, die sich in einer Position zwischen Zellen befinden, zwei dynamische Signalauswahlmöglichkeiten (ZELLE 1, ZELLE 2) aufweisen, die ihren zwei verfügbaren Ausgangszellen 227 und 228 zugeordnet sind. Die dynamischen Signale können innerhalb der jeweiligen Zellen selbst erzeugt werden oder können durch die Busleitungen 247, 248 oder 249, die diesen Zellen zugeordnet sind, geliefert werden.
- Mit Bezug nun nur auf Fig. 20 steht die E/A-Kontaktstelle 231 über einen Ausgangsauswahlmultiplexer 237 und den Ausgangspuffer 233 mit Busleitungen 247, 248 und 249, die drei benachbarten Umfangslogikzellen 227, 228 und 229 (als ZELLE 1, ZELLE 2 bzw. ZELLE 3 bezeichnet) zugeordnet sind, durch Leitungen 241-244 in Verbindung. Man beachte, daß zwei Signaloptionen von den Busleitungen 248 erhältlich sind, die der Zelle 228 unmittelbar gegenüber der Kontaktstelle 231 zugeordnet ist, während nur eine Signaloption von den benachbarten Busleitungen 247 und 249 erhältlich ist. Der Ausgangsauswahlmultiplexer 237 empfängt auch ein direktes Zellenausgangssignal 245 von der Logikzelle 228. Die E/A-Kontaktstelle 231 ist über den Eingangspuffer 234 mit einem direkten Zelleneingang 250 in die Logikzelle 228 verbunden und ist auch über vom Anwender konfigurierbare Schalter 251 mit demselben Satz von Leitungen 241-244 verbunden, die zu den Busleitungen 247- 249 führen.
- Mit Bezug auf Fig. 21 steht die Kontaktstelle 230, die gegenüber der Position zwischen den Zellen 227 und 228 angeordnet ist, über einen Ausgangsauswahlmultiplexer 257 und einen Ausgangspuffer 253 mit Busleitungen 247 und 248, die den Zellen 227 und 228 zugeordnet sind, durch Leitungen 261 und 262 in Verbindung. Der Multiplexer 257 empfängt auch direkte diagonale Zellenausgangssignale 263 und 264 von den Zellen 227 und 228. Die E/A-Kontaktstelle 230 ist über den Eingangspuffer 254 mit direkten diagonalen Zelleneingängen 265 und 266 von Zellen 227 und 228 verbunden und ist auch über vom Anwender konfigurierbare Schalter 267 mit den Leitungen 261 und 262 verbunden, die zu den Bussen 247 und 248 führen.
- Andere E/A-Schnittstellenkonfigurationen für das FPGA- Bauelement als die in Fig. 16-21 gezeigten sind möglich.
Claims (12)
1. Konfigurierbare integrierte Logikschaltung mit
nicht zweckorientierten Logikzellen (11), die in einer
Vielzahl von identischen Blöcken (15) angeordnet sind,
wobei jeder Block (15) eine Vielzahl der Logikzellen (11)
aufweist, wobei die Blöcke (15) von Zellen (11) in einem
Gittermuster mit mehreren Zeilen und Spalten von Blöcken
(15) angeordnet sind, wobei die Zellen (11) innerhalb jedes
Blocks entlang von für die Blöcke (15) internen Wegen
miteinander in Verbindung stehen, wobei die Blöcke (15) von
Zellen (11) entlang von Wegen über Zwischenverstärker (27),
die zwischen den Zeilen und Spalten von Blöcken (15)
liegen, miteinander in Verbindung stehen, wobei
Zwischenräume an den Ecken von jedem der Blöcke (15) von
Zellen (11) belassen sind, dadurch gekennzeichnet, daß
zweckorientierte Funktionselemente (83) an den Ecken
von jedem der Vielzahl von Blöcken (15) von Zellen (11) in
den Zwischenräumen angeordnet sind und mit den Zellen (11)
von entsprechenden Blöcken (15) über die für die Blöcke
internen Wege in Verbindung stehen, wobei jedes
zweckorientierte Funktionselement (83) konstruiert ist, um
eine spezielle Logik- oder Speicherfunktion auszuführen.
2. Schaltung nach Anspruch 1, wobei die Logikzellen (11)
als Matrix von Zeilen und Spalten von Zellen angeordnet
sind, wobei die Schaltung ein anwenderprogrammierbares
Gate-Array bildet.
3. Schaltung nach Anspruch 2, wobei die Wege ein Netzwerk
von Busleitungen bilden, die entlang der Zeilen und Spalten
von Logikzellen (11) verteilt sind.
4. Schaltung nach Anspruch 3, wobei das Netzwerk von
Busleitungen Sätze von lokalen Busleitungen, die für die
jeweiligen Blöcke intern sind, und einen Satz von
Expreßbusleitungen, die sich über mehrere Blöcke (15)
erstrecken, umfaßt, wobei die lokalen Busleitungen in
irgendeinem Satz selektiv miteinander verbindbar sind und
auch selektiv mit den Logikzellen (11) innerhalb des
Blocks, der diesem Satz zugeordnet ist, verbindbar sind,
wobei die Expreßbusleitungen selektiv miteinander und mit
lokalen Busleitungen verbindbar sind, aber nicht direkt mit
irgendwelchen Logikzellen (11) verbindbar sind.
5. Schaltung nach Anspruch 4, wobei das Netzwerk von
Busleitungen ferner einen Satz von Zwischenverstärker-
Schalteinheiten (81) umfaßt, die entlang der Busleitungen
beabstandet sind und selektiv Expreßbusleitungen
miteinander und mit zugehörigen lokalen Busleitungen
verbinden und ermöglichen, daß mit diesen verbundene
Expreßbusleitungen sich über mehr als einen Block von
Logikzellen (11) erstrecken.
6. Schaltung nach Anspruch 1, wobei die
Zwischenverstärker-Schalteinheiten (81) in Zeilen und
Spalten entlang Grenzen zwischen den Blöcken (15)
ausgerichtet sind, wodurch Zwischenräume an den Ecken der
Blöcke (15) belassen werden, wo sich die Zeilen und Spalten
von Zwischenverstärker-Schalteinheiten (81) schneiden,
wobei die zweckorientierten Funktionselemente in den
Zwischenräumen an den Schnittpunkten der Zeilen und Spalten
von Zwischenverstärker-Schalteinheiten (81) angeordnet
sind.
7. Schaltung nach Anspruch 1, wobei die zweckorientierten
Funktionselemente (83) Speicherstrukturen umfassen.
8. Schaltung nach Anspruch 7, wobei die
Speicherstrukturen einen Direktzugriffsspeicher (RAM)
umfassen.
9. Schaltung nach Anspruch 7, wobei die
Speicherstrukturen einen nicht-flüchtigen Speicher
umfassen.
10. Schaltung nach Anspruch 7, wobei die
Speicherstrukturen einen zweiteiligen Speicher [mit
Doppelzugriff, siehe S. 5, Zeile 3] mit separaten
Adresseneingängen für Lese- und Schreiboperationen und auch
separaten Datenbussen für die Lese- und Schreiboperationen
umfassen.
11. Schaltung nach Anspruch 1, wobei die zweckorientierten
Funktionselemente (83) spezialisierte Logikstrukturen
umfassen.
12. Schaltung nach Anspruch 11, wobei die spezialisierten
Logikstrukturen Multiplizierer umfassen.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/650,477 US5894565A (en) | 1996-05-20 | 1996-05-20 | Field programmable gate array with distributed RAM and increased cell utilization |
PCT/US1997/007924 WO1997044730A1 (en) | 1996-05-20 | 1997-05-09 | Field programmable gate array with distributed ram and increased cell utilization |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69711159D1 DE69711159D1 (de) | 2002-04-25 |
DE69711159T2 true DE69711159T2 (de) | 2002-11-07 |
Family
ID=24609080
Family Applications (5)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69721343T Expired - Fee Related DE69721343T2 (de) | 1996-05-20 | 1997-05-09 | FPGA mit Setz-/Rücksetzleitungen |
DE69730254T Expired - Fee Related DE69730254T2 (de) | 1996-05-20 | 1997-05-09 | FPGA mit Nachschlagtabellen |
DE69721342T Expired - Fee Related DE69721342T2 (de) | 1996-05-20 | 1997-05-09 | FPGA mit erhöhter Zellnutzung |
DE69711159T Expired - Fee Related DE69711159T2 (de) | 1996-05-20 | 1997-05-09 | Benutzerprogrammierbares logisches feld mit verteiltem ram und erhöhter zellnutzung |
DE69721344T Expired - Fee Related DE69721344T2 (de) | 1996-05-20 | 1997-05-09 | FPGA mit konfigurierbaren Taktleitungen |
Family Applications Before (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69721343T Expired - Fee Related DE69721343T2 (de) | 1996-05-20 | 1997-05-09 | FPGA mit Setz-/Rücksetzleitungen |
DE69730254T Expired - Fee Related DE69730254T2 (de) | 1996-05-20 | 1997-05-09 | FPGA mit Nachschlagtabellen |
DE69721342T Expired - Fee Related DE69721342T2 (de) | 1996-05-20 | 1997-05-09 | FPGA mit erhöhter Zellnutzung |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69721344T Expired - Fee Related DE69721344T2 (de) | 1996-05-20 | 1997-05-09 | FPGA mit konfigurierbaren Taktleitungen |
Country Status (8)
Country | Link |
---|---|
US (5) | US5894565A (de) |
EP (5) | EP1158402B1 (de) |
JP (1) | JPH11510038A (de) |
KR (1) | KR100429063B1 (de) |
CN (1) | CN1105970C (de) |
DE (5) | DE69721343T2 (de) |
HK (1) | HK1011227A1 (de) |
WO (1) | WO1997044730A1 (de) |
Families Citing this family (204)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5943242A (en) | 1995-11-17 | 1999-08-24 | Pact Gmbh | Dynamically reconfigurable data processing system |
US7266725B2 (en) * | 2001-09-03 | 2007-09-04 | Pact Xpp Technologies Ag | Method for debugging reconfigurable architectures |
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 |
US6624658B2 (en) * | 1999-02-04 | 2003-09-23 | Advantage Logic, Inc. | Method and apparatus for universal program controlled bus architecture |
US6034547A (en) * | 1996-09-04 | 2000-03-07 | Advantage Logic, Inc. | Method and apparatus for universal program controlled bus |
AU1546797A (en) * | 1996-10-10 | 1998-05-05 | Semiconductores Investigacion Y Diseno, S.A. - (Sidsa) | Process for the prototyping of mixed signal applications and field programmable system on a chip for applying said process |
DE19651075A1 (de) * | 1996-12-09 | 1998-06-10 | Pact Inf Tech Gmbh | Einheit zur Verarbeitung von numerischen und logischen Operationen, zum Einsatz in Prozessoren (CPU's), Mehrrechnersystemen, Datenflußprozessoren (DFP's), digitalen Signal Prozessoren (DSP's) oder dergleichen |
US6338106B1 (en) * | 1996-12-20 | 2002-01-08 | Pact Gmbh | I/O and memory bus system for DFPS and units with two or multi-dimensional programmable cell architectures |
DE19654595A1 (de) * | 1996-12-20 | 1998-07-02 | Pact Inf Tech Gmbh | I0- und Speicherbussystem für DFPs sowie Bausteinen mit zwei- oder mehrdimensionaler programmierbaren Zellstrukturen |
ATE243390T1 (de) * | 1996-12-27 | 2003-07-15 | Pact Inf Tech Gmbh | Verfahren zum selbständigen dynamischen umladen von datenflussprozessoren (dfps) sowie bausteinen mit zwei- oder mehrdimensionalen programmierbaren zellstrukturen (fpgas, dpgas, o.dgl.) |
DE19654846A1 (de) | 1996-12-27 | 1998-07-09 | Pact Inf Tech Gmbh | Verfahren zum selbständigen dynamischen Umladen von Datenflußprozessoren (DFPs) sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstrukturen (FPGAs, DPGAs, o. dgl.) |
DE19704728A1 (de) | 1997-02-08 | 1998-08-13 | Pact Inf Tech Gmbh | Verfahren zur Selbstsynchronisation von konfigurierbaren Elementen eines programmierbaren Bausteines |
US6542998B1 (en) | 1997-02-08 | 2003-04-01 | Pact Gmbh | Method of self-synchronization of configurable elements of a programmable module |
DE19704742A1 (de) * | 1997-02-11 | 1998-09-24 | Pact Inf Tech Gmbh | Internes Bussystem für DFPs, sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstrukturen, zur Bewältigung großer Datenmengen mit hohem Vernetzungsaufwand |
US6160419A (en) * | 1997-11-03 | 2000-12-12 | Altera Corporation | Programmable logic architecture incorporating a content addressable embedded array block |
US6262595B1 (en) | 1997-06-10 | 2001-07-17 | Altera Corporation | High-speed programmable interconnect |
US9092595B2 (en) | 1997-10-08 | 2015-07-28 | Pact Xpp Technologies Ag | Multiprocessor having associated RAM units |
US8686549B2 (en) | 2001-09-03 | 2014-04-01 | Martin Vorbach | Reconfigurable elements |
US6185724B1 (en) * | 1997-12-02 | 2001-02-06 | Xilinx, Inc. | Template-based simulated annealing move-set that improves FPGA architectural feature utilization |
US6069490A (en) * | 1997-12-02 | 2000-05-30 | Xilinx, Inc. | Routing architecture using a direct connect routing mesh |
US6202194B1 (en) * | 1997-12-11 | 2001-03-13 | Intrinsity, Inc. | Method and apparatus for routing 1 of N signals |
DE19861088A1 (de) * | 1997-12-22 | 2000-02-10 | Pact Inf Tech Gmbh | Verfahren zur Reparatur von integrierten Schaltkreisen |
US6034545A (en) * | 1998-01-30 | 2000-03-07 | Arm Limited | Macrocell for data processing circuit |
US6198304B1 (en) * | 1998-02-23 | 2001-03-06 | Xilinx, Inc. | Programmable logic device |
DE19807872A1 (de) | 1998-02-25 | 1999-08-26 | Pact Inf Tech Gmbh | Verfahren zur Verwaltung von Konfigurationsdaten in Datenflußprozessoren sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstruktur (FPGAs, DPGAs, o. dgl. |
US6020756A (en) * | 1998-03-03 | 2000-02-01 | Xilinx, Inc. | Multiplexer enhanced configurable logic block |
DE19810294A1 (de) * | 1998-03-10 | 1999-09-16 | Bayerische Motoren Werke Ag | Datenbus für mehrere Teilnehmer |
US7146441B1 (en) * | 1998-03-16 | 2006-12-05 | Actel Corporation | SRAM bus architecture and interconnect to an FPGA |
US7389487B1 (en) | 1998-04-28 | 2008-06-17 | Actel Corporation | Dedicated interface architecture for a hybrid integrated circuit |
US6242814B1 (en) * | 1998-07-31 | 2001-06-05 | Lsi Logic Corporation | Universal I/O pad structure for in-line or staggered wire bonding or arrayed flip-chip assembly |
US6204686B1 (en) * | 1998-12-16 | 2001-03-20 | Vantis Corporation | Methods for configuring FPGA's having variable grain blocks and shared logic for providing symmetric routing of result output to differently-directed and tristateable interconnect resources |
JP3616518B2 (ja) | 1999-02-10 | 2005-02-02 | 日本電気株式会社 | プログラマブルデバイス |
JP4206203B2 (ja) * | 1999-03-04 | 2009-01-07 | アルテラ コーポレイション | プログラマブルロジック集積回路デバイスの相互接続ならびに入力/出力リソース |
US6407576B1 (en) | 1999-03-04 | 2002-06-18 | Altera Corporation | Interconnection and input/output resources for programmable logic integrated circuit devices |
JP2002544586A (ja) * | 1999-05-07 | 2002-12-24 | モーフィックス テクノロジー インコーポレイテッド | プログラマブルデータ経路算術アレイのための装置及び方法 |
US6150841A (en) * | 1999-06-06 | 2000-11-21 | Lattice Semiconductor Corporation | Enhanced macrocell module for high density CPLD architectures |
CN1378665A (zh) * | 1999-06-10 | 2002-11-06 | Pact信息技术有限公司 | 编程概念 |
US6360348B1 (en) * | 1999-08-27 | 2002-03-19 | Motorola, Inc. | Method and apparatus for coding and decoding data |
US6215327B1 (en) * | 1999-09-01 | 2001-04-10 | The United States Of America As Represented By The Secretary Of The Air Force | Molecular field programmable gate array |
US6438737B1 (en) * | 2000-02-15 | 2002-08-20 | Intel Corporation | Reconfigurable logic for a computer |
US6256253B1 (en) * | 2000-02-18 | 2001-07-03 | Infineon Technologies North America Corp. | Memory device with support for unaligned access |
US6694491B1 (en) | 2000-02-25 | 2004-02-17 | Lightspeed Semiconductor Corporation | Programmable logic array embedded in mask-programmed ASIC |
US6769109B2 (en) * | 2000-02-25 | 2004-07-27 | Lightspeed Semiconductor Corporation | Programmable logic array embedded in mask-programmed ASIC |
US20010025363A1 (en) * | 2000-03-24 | 2001-09-27 | Cary Ussery | Designer configurable multi-processor system |
US6661812B1 (en) * | 2000-04-05 | 2003-12-09 | Triscend Corporation | Bidirectional bus for use as an interconnect routing resource |
WO2001093426A1 (en) * | 2000-05-30 | 2001-12-06 | Koninklijke Philips Electronics N.V. | Integrated circuit with a matrix of programmable logic cells |
EP1342158B1 (de) | 2000-06-13 | 2010-08-04 | Richter, Thomas | Pipeline ct-protokolle und -kommunikation |
US6294927B1 (en) * | 2000-06-16 | 2001-09-25 | Chip Express (Israel) Ltd | Configurable cell for customizable logic array device |
US6476636B1 (en) * | 2000-09-02 | 2002-11-05 | Actel Corporation | Tileable field-programmable gate array architecture |
US7055125B2 (en) * | 2000-09-08 | 2006-05-30 | Lightspeed Semiconductor Corp. | Depopulated programmable logic array |
EP1417590A2 (de) * | 2000-10-02 | 2004-05-12 | Altera Corporation (a Delaware Corporation) | Programmierbare logische integrierte schaltung mit spezifischen prozessorkomponenten |
US8058899B2 (en) | 2000-10-06 | 2011-11-15 | Martin Vorbach | Logic cell array and bus system |
US20040015899A1 (en) * | 2000-10-06 | 2004-01-22 | Frank May | Method for processing data |
US7765095B1 (en) | 2000-10-26 | 2010-07-27 | Cypress Semiconductor Corporation | Conditional branching in an in-circuit emulation system |
US8160864B1 (en) | 2000-10-26 | 2012-04-17 | Cypress Semiconductor Corporation | In-circuit emulator and pod synchronized boot |
US8103496B1 (en) | 2000-10-26 | 2012-01-24 | Cypress Semicondutor Corporation | Breakpoint control in an in-circuit emulation system |
US6892310B1 (en) * | 2000-10-26 | 2005-05-10 | Cypress Semiconductor Corporation | Method for efficient supply of power to a microcontroller |
US6724220B1 (en) | 2000-10-26 | 2004-04-20 | Cyress Semiconductor Corporation | Programmable microcontroller architecture (mixed analog/digital) |
US8176296B2 (en) | 2000-10-26 | 2012-05-08 | Cypress Semiconductor Corporation | Programmable microcontroller architecture |
US6981090B1 (en) * | 2000-10-26 | 2005-12-27 | Cypress Semiconductor Corporation | Multiple use of microcontroller pad |
US8149048B1 (en) | 2000-10-26 | 2012-04-03 | Cypress Semiconductor Corporation | Apparatus and method for programmable power management in a programmable analog circuit block |
US6990555B2 (en) * | 2001-01-09 | 2006-01-24 | Pact Xpp Technologies Ag | Method of hierarchical caching of configuration data having dataflow processors and modules having two- or multidimensional programmable cell structure (FPGAs, DPGAs, etc.) |
US7844796B2 (en) | 2001-03-05 | 2010-11-30 | Martin Vorbach | Data processing device and method |
US9552047B2 (en) | 2001-03-05 | 2017-01-24 | Pact Xpp Technologies Ag | Multiprocessor having runtime adjustable clock and clock dependent power supply |
US7444531B2 (en) * | 2001-03-05 | 2008-10-28 | Pact Xpp Technologies Ag | Methods and devices for treating and processing data |
US9436631B2 (en) | 2001-03-05 | 2016-09-06 | Pact Xpp Technologies Ag | Chip including memory element storing higher level memory data on a page by page basis |
US9250908B2 (en) | 2001-03-05 | 2016-02-02 | Pact Xpp Technologies Ag | Multi-processor bus and cache interconnection system |
US20090300262A1 (en) * | 2001-03-05 | 2009-12-03 | Martin Vorbach | Methods and devices for treating and/or processing data |
US9141390B2 (en) | 2001-03-05 | 2015-09-22 | Pact Xpp Technologies Ag | Method of processing data with an array of data processors according to application ID |
US9037807B2 (en) * | 2001-03-05 | 2015-05-19 | Pact Xpp Technologies Ag | Processor arrangement on a chip including data processing, memory, and interface elements |
US20090210653A1 (en) * | 2001-03-05 | 2009-08-20 | Pact Xpp Technologies Ag | Method and device for treating and processing data |
SE0102199D0 (sv) * | 2001-06-20 | 2001-06-20 | Ericsson Telefon Ab L M | Upgrading field programmable gate arrays over datacommunication networks |
AU2002347560A1 (en) * | 2001-06-20 | 2003-01-02 | Pact Xpp Technologies Ag | Data processing method |
US10031733B2 (en) | 2001-06-20 | 2018-07-24 | Scientia Sol Mentis Ag | Method for processing data |
DE10139610A1 (de) * | 2001-08-11 | 2003-03-06 | Daimler Chrysler Ag | Universelle Rechnerarchitektur |
US7996827B2 (en) * | 2001-08-16 | 2011-08-09 | Martin Vorbach | Method for the translation of programs for reconfigurable architectures |
US7139292B1 (en) * | 2001-08-31 | 2006-11-21 | Cypress Semiconductor Corp. | Configurable matrix architecture |
US7434191B2 (en) | 2001-09-03 | 2008-10-07 | Pact Xpp Technologies Ag | Router |
US8686475B2 (en) * | 2001-09-19 | 2014-04-01 | Pact Xpp Technologies Ag | Reconfigurable elements |
EP1296254A3 (de) * | 2001-09-24 | 2009-10-21 | Broadcom Corporation | Verfahren und Gerät zum Erleichtern des Entwurfs von Schaltungen |
US7406674B1 (en) | 2001-10-24 | 2008-07-29 | Cypress Semiconductor Corporation | Method and apparatus for generating microcontroller configuration information |
US8078970B1 (en) | 2001-11-09 | 2011-12-13 | Cypress Semiconductor Corporation | Graphical user interface with user-selectable list-box |
US8042093B1 (en) | 2001-11-15 | 2011-10-18 | Cypress Semiconductor Corporation | System providing automatic source code generation for personalization and parameterization of user modules |
US7770113B1 (en) | 2001-11-19 | 2010-08-03 | Cypress Semiconductor Corporation | System and method for dynamically generating a configuration datasheet |
US7844437B1 (en) | 2001-11-19 | 2010-11-30 | Cypress Semiconductor Corporation | System and method for performing next placements and pruning of disallowed placements for programming an integrated circuit |
US7774190B1 (en) | 2001-11-19 | 2010-08-10 | Cypress Semiconductor Corporation | Sleep and stall in an in-circuit emulation system |
US8069405B1 (en) | 2001-11-19 | 2011-11-29 | Cypress Semiconductor Corporation | User interface for efficiently browsing an electronic document using data-driven tabs |
US6971004B1 (en) | 2001-11-19 | 2005-11-29 | Cypress Semiconductor Corp. | System and method of dynamically reconfiguring a programmable integrated circuit |
DE10159480B4 (de) * | 2001-12-04 | 2006-05-24 | Daimlerchrysler Ag | Steuervorrichtung |
US7577822B2 (en) * | 2001-12-14 | 2009-08-18 | Pact Xpp Technologies Ag | Parallel task operation in processor and reconfigurable coprocessor configured based on information in link list including termination information for synchronization |
WO2003071418A2 (de) * | 2002-01-18 | 2003-08-28 | Pact Xpp Technologies Ag | Übersetzungsverfahren |
AU2003208266A1 (en) | 2002-01-19 | 2003-07-30 | Pact Xpp Technologies Ag | Reconfigurable processor |
AU2003214003A1 (en) * | 2002-02-18 | 2003-09-09 | Pact Xpp Technologies Ag | Bus systems and method for reconfiguration |
US9170812B2 (en) | 2002-03-21 | 2015-10-27 | Pact Xpp Technologies Ag | Data processing system having integrated pipelined array data processor |
US8914590B2 (en) | 2002-08-07 | 2014-12-16 | Pact Xpp Technologies Ag | Data processing method and device |
AU2003223892A1 (en) * | 2002-03-21 | 2003-10-08 | Pact Xpp Technologies Ag | Method and device for data processing |
US8103497B1 (en) | 2002-03-28 | 2012-01-24 | Cypress Semiconductor Corporation | External interface for event architecture |
US7308608B1 (en) | 2002-05-01 | 2007-12-11 | Cypress Semiconductor Corporation | Reconfigurable testing system and method |
US6970967B2 (en) * | 2002-06-18 | 2005-11-29 | Texas Instruments Incorporated | Crossbar circuit having a plurality of repeaters forming different repeater arrangements |
US20040199894A1 (en) * | 2002-07-23 | 2004-10-07 | Klein Robert C. | Interconnect structure for electrical devices |
WO2004021176A2 (de) | 2002-08-07 | 2004-03-11 | Pact Xpp Technologies Ag | Verfahren und vorrichtung zur datenverarbeitung |
US20110238948A1 (en) * | 2002-08-07 | 2011-09-29 | Martin Vorbach | Method and device for coupling a data processing unit and a data processing array |
US7657861B2 (en) | 2002-08-07 | 2010-02-02 | Pact Xpp Technologies Ag | Method and device for processing data |
US7136108B2 (en) * | 2002-09-04 | 2006-11-14 | Darien K. Wallace | Segment buffer loading in a deinterlacer |
US7480010B2 (en) * | 2002-09-04 | 2009-01-20 | Denace Enterprise Co., L.L.C. | Customizable ASIC with substantially non-customizable portion that supplies pixel data to a mask-programmable portion in multiple color space formats |
US7782398B2 (en) * | 2002-09-04 | 2010-08-24 | Chan Thomas M | Display processor integrated circuit with on-chip programmable logic for implementing custom enhancement functions |
US7202908B2 (en) * | 2002-09-04 | 2007-04-10 | Darien K. Wallace | Deinterlacer using both low angle and high angle spatial interpolation |
AU2003289844A1 (en) | 2002-09-06 | 2004-05-13 | Pact Xpp Technologies Ag | Reconfigurable sequencer structure |
US7761845B1 (en) | 2002-09-09 | 2010-07-20 | Cypress Semiconductor Corporation | Method for parameterizing a user module |
US6774670B1 (en) * | 2002-12-30 | 2004-08-10 | Actel Corporation | Intra-tile buffer system for a field programmable gate array |
DE112004000026D2 (de) * | 2003-04-04 | 2006-06-14 | Pact Xpp Technologies Ag | Verfahren und Vorrichtung für die Datenverarbeitung |
US6996785B1 (en) | 2003-04-25 | 2006-02-07 | Universal Network Machines, Inc . | On-chip packet-based interconnections using repeaters/routers |
US6882555B2 (en) * | 2003-06-18 | 2005-04-19 | Lattice Semiconductor Corporation | Bi-directional buffering for memory data lines |
AU2003248073A1 (en) * | 2003-07-16 | 2005-02-04 | Innotech Corporation | Semiconductor integrated circuit |
EP1676208A2 (de) * | 2003-08-28 | 2006-07-05 | PACT XPP Technologies AG | Datenverarbeitungseinrichtung und verfahren |
US7306977B1 (en) | 2003-08-29 | 2007-12-11 | Xilinx, Inc. | Method and apparatus for facilitating signal routing within a programmable logic device |
DE102004056322B4 (de) * | 2003-11-21 | 2012-07-19 | Infineon Technologies Ag | Logik-Grundzelle und Logik-Grundzellen-Anordnung |
US7167022B1 (en) | 2004-03-25 | 2007-01-23 | Altera Corporation | Omnibus logic element including look up table based logic elements |
US7295049B1 (en) | 2004-03-25 | 2007-11-13 | Cypress Semiconductor Corporation | Method and circuit for rapid alignment of signals |
WO2011061099A1 (en) * | 2004-04-02 | 2011-05-26 | Panasonic Corporation | Reset/load and signal distribution network |
DE102004021047B3 (de) * | 2004-04-29 | 2005-10-06 | Koenig & Bauer Ag | Verfahren zum Vergleich eines Bildes mit mindestens einem Referenzbild |
US7243329B2 (en) * | 2004-07-02 | 2007-07-10 | Altera Corporation | Application-specific integrated circuit equivalents of programmable logic and associated methods |
JP2006053687A (ja) * | 2004-08-10 | 2006-02-23 | Sony Corp | 演算装置 |
US8069436B2 (en) | 2004-08-13 | 2011-11-29 | Cypress Semiconductor Corporation | Providing hardware independence to automate code generation of processing device firmware |
US8286125B2 (en) | 2004-08-13 | 2012-10-09 | Cypress Semiconductor Corporation | Model for a hardware device-independent method of defining embedded firmware for programmable systems |
KR100718216B1 (ko) * | 2004-12-13 | 2007-05-15 | 가부시끼가이샤 도시바 | 반도체 장치, 패턴 레이아웃 작성 방법, 노광 마스크 |
US7332976B1 (en) | 2005-02-04 | 2008-02-19 | Cypress Semiconductor Corporation | Poly-phase frequency synthesis oscillator |
EP1849095B1 (de) * | 2005-02-07 | 2013-01-02 | Richter, Thomas | Vorrichtung zur verarbeitung massiver paralleldaten mit geringer latenz |
JP2006285572A (ja) * | 2005-03-31 | 2006-10-19 | Toshiba Corp | 半導体集積回路のレイアウト方法 |
US7400183B1 (en) | 2005-05-05 | 2008-07-15 | Cypress Semiconductor Corporation | Voltage controlled oscillator delay cell and method |
US8089461B2 (en) | 2005-06-23 | 2012-01-03 | Cypress Semiconductor Corporation | Touch wake for electronic devices |
US7571395B1 (en) * | 2005-08-03 | 2009-08-04 | Xilinx, Inc. | Generation of a circuit design from a command language specification of blocks in matrix form |
US7571406B2 (en) * | 2005-08-04 | 2009-08-04 | Freescale Semiconductor, Inc. | Clock tree adjustable buffer |
CN100495696C (zh) * | 2005-11-17 | 2009-06-03 | 中国科学院电子学研究所 | 可编程逻辑器件的对称型连线通道 |
US7281942B2 (en) * | 2005-11-18 | 2007-10-16 | Ideal Industries, Inc. | Releasable wire connector |
CN101310442A (zh) * | 2005-11-28 | 2008-11-19 | 太阳诱电株式会社 | 半导体器件 |
US8085067B1 (en) | 2005-12-21 | 2011-12-27 | Cypress Semiconductor Corporation | Differential-to-single ended signal converter circuit and method |
US7352602B2 (en) * | 2005-12-30 | 2008-04-01 | Micron Technology, Inc. | Configurable inputs and outputs for memory stacking system and method |
WO2007082730A1 (de) * | 2006-01-18 | 2007-07-26 | Pact Xpp Technologies Ag | Hardwaredefinitionsverfahren |
US8352242B2 (en) * | 2006-02-21 | 2013-01-08 | Mentor Graphics Corporation | Communication scheme between programmable sub-cores in an emulation environment |
US8067948B2 (en) | 2006-03-27 | 2011-11-29 | Cypress Semiconductor Corporation | Input/output multiplexer bus |
US7720838B1 (en) * | 2006-06-21 | 2010-05-18 | Actuate Corporation | Methods and apparatus for joining tables from different data sources |
US7702616B1 (en) | 2006-06-21 | 2010-04-20 | Actuate Corporation | Methods and apparatus for processing a query joining tables stored at different data sources |
CN101496283A (zh) * | 2006-07-27 | 2009-07-29 | 松下电器产业株式会社 | 半导体集成电路、程序变换装置以及映射装置 |
US8018248B2 (en) * | 2006-09-21 | 2011-09-13 | Quicklogic Corporation | Adjustable interface buffer circuit between a programmable logic device and a dedicated device |
US8040266B2 (en) | 2007-04-17 | 2011-10-18 | Cypress Semiconductor Corporation | Programmable sigma-delta analog-to-digital converter |
US8516025B2 (en) | 2007-04-17 | 2013-08-20 | Cypress Semiconductor Corporation | Clock driven dynamic datapath chaining |
US7737724B2 (en) | 2007-04-17 | 2010-06-15 | Cypress Semiconductor Corporation | Universal digital block interconnection and channel routing |
US8092083B2 (en) | 2007-04-17 | 2012-01-10 | Cypress Semiconductor Corporation | Temperature sensor with digital bandgap |
US9564902B2 (en) | 2007-04-17 | 2017-02-07 | Cypress Semiconductor Corporation | Dynamically configurable and re-configurable data path |
US8026739B2 (en) | 2007-04-17 | 2011-09-27 | Cypress Semiconductor Corporation | System level interconnect with programmable switching |
US8130025B2 (en) | 2007-04-17 | 2012-03-06 | Cypress Semiconductor Corporation | Numerical band gap |
US8065653B1 (en) | 2007-04-25 | 2011-11-22 | Cypress Semiconductor Corporation | Configuration of programmable IC design elements |
US9720805B1 (en) | 2007-04-25 | 2017-08-01 | Cypress Semiconductor Corporation | System and method for controlling a target device |
US8266575B1 (en) | 2007-04-25 | 2012-09-11 | Cypress Semiconductor Corporation | Systems and methods for dynamically reconfiguring a programmable system on a chip |
US7557607B1 (en) * | 2007-05-14 | 2009-07-07 | Xilinx, Inc. | Interface device reset |
US7702840B1 (en) | 2007-05-14 | 2010-04-20 | Xilinx, Inc. | Interface device lane configuration |
US7535254B1 (en) | 2007-05-14 | 2009-05-19 | Xilinx, Inc. | Reconfiguration of a hard macro via configuration registers |
US7573295B1 (en) | 2007-05-14 | 2009-08-11 | Xilinx, Inc. | Hard macro-to-user logic interface |
US7626418B1 (en) | 2007-05-14 | 2009-12-01 | Xilinx, Inc. | Configurable interface |
US7979228B2 (en) * | 2007-07-20 | 2011-07-12 | The Regents Of The University Of Michigan | High resolution time measurement in a FPGA |
US7941777B1 (en) * | 2007-08-08 | 2011-05-10 | Xilinx, Inc. | Generating a module interface for partial reconfiguration design flows |
US8049569B1 (en) | 2007-09-05 | 2011-11-01 | Cypress Semiconductor Corporation | Circuit and method for improving the accuracy of a crystal-less oscillator having dual-frequency modes |
US7970979B1 (en) * | 2007-09-19 | 2011-06-28 | Agate Logic, Inc. | System and method of configurable bus-based dedicated connection circuits |
US8131909B1 (en) * | 2007-09-19 | 2012-03-06 | Agate Logic, Inc. | System and method of signal processing engines with programmable logic fabric |
US7759972B1 (en) * | 2007-10-31 | 2010-07-20 | Altera Corporation | Integrated circuit architectures with heterogeneous high-speed serial interface circuitry |
US8003948B2 (en) * | 2007-11-02 | 2011-08-23 | University Of Washington | Data acquisition for positron emission tomography |
GB0802245D0 (en) * | 2008-02-07 | 2008-03-12 | Univ Durham | Self-repairing electronic data systems |
JP5260077B2 (ja) * | 2008-02-15 | 2013-08-14 | 太陽誘電株式会社 | プログラマブル論理デバイスおよびその構築方法およびその使用方法 |
US8441298B1 (en) * | 2008-07-01 | 2013-05-14 | Cypress Semiconductor Corporation | Analog bus sharing using transmission gates |
US8217700B1 (en) * | 2008-07-01 | 2012-07-10 | Cypress Semiconductor Corporation | Multifunction input/output circuit |
FR2933826B1 (fr) * | 2008-07-09 | 2011-11-18 | Univ Paris Curie | Reseau logique programmable, commutateur d'interconnexion et unite logique pour un tel reseau |
US20100057685A1 (en) * | 2008-09-02 | 2010-03-04 | Qimonda Ag | Information storage and retrieval system |
KR101515568B1 (ko) * | 2009-02-03 | 2015-04-28 | 삼성전자 주식회사 | 재구성 가능 어레이의 스케줄러, 스케줄링 방법 및 이를 이용한 컴퓨팅 장치 |
US9448964B2 (en) | 2009-05-04 | 2016-09-20 | Cypress Semiconductor Corporation | Autonomous control in a programmable system |
US8179161B1 (en) | 2009-05-05 | 2012-05-15 | Cypress Semiconductor Corporation | Programmable input/output circuit |
US8487655B1 (en) | 2009-05-05 | 2013-07-16 | Cypress Semiconductor Corporation | Combined analog architecture and functionality in a mixed-signal array |
US9612987B2 (en) * | 2009-05-09 | 2017-04-04 | Cypress Semiconductor Corporation | Dynamically reconfigurable analog routing circuits and methods for system on a chip |
US8085603B2 (en) * | 2009-09-04 | 2011-12-27 | Integrated Device Technology, Inc. | Method and apparatus for compression of configuration bitstream of field programmable logic |
FR2954023B1 (fr) | 2009-12-14 | 2012-02-10 | Lyon Ecole Centrale | Matrice interconnectee de cellules logiques reconfigurables avec une topologie d'interconnexion croisee |
US8120382B2 (en) * | 2010-03-05 | 2012-02-21 | Xilinx, Inc. | Programmable integrated circuit with mirrored interconnect structure |
US8380911B2 (en) | 2010-09-13 | 2013-02-19 | Lsi Corporation | Peripheral device, program and methods for responding to a warm reboot condition |
US8913601B1 (en) * | 2010-10-01 | 2014-12-16 | Xilinx, Inc. | Programmable integrated circuit and method of asynchronously routing data in a circuit block of an integrated circuit |
KR20130006942A (ko) * | 2011-06-27 | 2013-01-18 | 삼성전자주식회사 | 재구성 가능한 논리 장치 |
CN103259528A (zh) * | 2012-02-17 | 2013-08-21 | 京微雅格(北京)科技有限公司 | 一种异构可编程逻辑结构的集成电路 |
US8930872B2 (en) * | 2012-02-17 | 2015-01-06 | Netronome Systems, Incorporated | Staggered island structure in an island-based network flow processor |
US8608490B2 (en) * | 2012-03-21 | 2013-12-17 | Ideal Industries, Inc. | Modular wiring system |
US9270278B2 (en) | 2012-03-30 | 2016-02-23 | Intel Corporation | Spin transfer torque based memory elements for programmable device arrays |
US8902902B2 (en) | 2012-07-18 | 2014-12-02 | Netronome Systems, Incorporated | Recursive lookup with a hardware trie structure that has no sequential logic elements |
CN103777136B (zh) * | 2012-10-24 | 2016-06-08 | 中国科学院微电子研究所 | 一种现场可编程门阵列的配置方法 |
US8645892B1 (en) * | 2013-01-07 | 2014-02-04 | Freescale Semiconductor, Inc. | Configurable circuit and mesh structure for integrated circuit |
US9735783B2 (en) * | 2013-02-08 | 2017-08-15 | The Trustees Of Princeton University | Fine-grain dynamically reconfigurable FPGA architecture |
FR3003969B1 (fr) * | 2013-03-28 | 2015-04-17 | Nanoxplore | Dispositif d'interconnexion programmable |
JPWO2014163099A1 (ja) * | 2013-04-02 | 2017-02-16 | 太陽誘電株式会社 | 再構成可能な論理デバイス |
CN104678815B (zh) * | 2013-11-27 | 2017-08-04 | 京微雅格(北京)科技有限公司 | Fpga芯片的接口结构及配置方法 |
US20170031621A1 (en) * | 2013-12-23 | 2017-02-02 | Aaron Brady | Grid Processing Electronic Memory |
US9378326B2 (en) * | 2014-09-09 | 2016-06-28 | International Business Machines Corporation | Critical region identification |
US20160358653A1 (en) * | 2015-06-08 | 2016-12-08 | Altera Corporation | Hardware programmable device with integrated search engine |
US10116311B2 (en) | 2016-08-03 | 2018-10-30 | Silicon Mobility | Embedded FPGA with multiple configurable flexible logic blocks instantiated and interconnected by abutment |
US10454480B2 (en) | 2016-08-03 | 2019-10-22 | Silicon Mobility | Embedded FPGA with multiple configurable flexible logic blocks instantiated and interconnected by abutment |
WO2018122658A1 (en) * | 2016-12-27 | 2018-07-05 | Semiconductor Energy Laboratory Co., Ltd. | Semiconductor device |
JP2018120992A (ja) * | 2017-01-26 | 2018-08-02 | 株式会社東芝 | 集積回路および電子機器 |
US11043823B2 (en) * | 2017-04-06 | 2021-06-22 | Tesla, Inc. | System and method for facilitating conditioning and testing of rechargeable battery cells |
CN108427829B (zh) * | 2018-02-09 | 2022-11-08 | 京微齐力(北京)科技有限公司 | 一种具有公共线结构的fpga |
Family Cites Families (58)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US34363A (en) * | 1862-02-11 | Improvement in machinery for cleaning cotton | ||
USRE34363E (en) * | 1984-03-12 | 1993-08-31 | Xilinx, Inc. | Configurable electrical circuit having configurable logic elements and configurable interconnects |
US4706216A (en) * | 1985-02-27 | 1987-11-10 | Xilinx, Inc. | Configurable logic element |
CA1234224A (en) * | 1985-05-28 | 1988-03-15 | Boleslav Sykora | Computer memory management system |
US4935734A (en) * | 1985-09-11 | 1990-06-19 | Pilkington Micro-Electronics Limited | Semi-conductor integrated circuits/systems |
US4700187A (en) * | 1985-12-02 | 1987-10-13 | Concurrent Logic, Inc. | Programmable, asynchronous logic cell and array |
US4758745B1 (en) * | 1986-09-19 | 1994-11-15 | Actel Corp | User programmable integrated circuit interconnect architecture and test method |
US5019736A (en) * | 1986-11-07 | 1991-05-28 | Concurrent Logic, Inc. | Programmable logic cell and array |
US4918440A (en) * | 1986-11-07 | 1990-04-17 | Furtek Frederick C | Programmable logic cell and array |
US5377123A (en) * | 1992-06-08 | 1994-12-27 | Hyman; Edward | Programmable logic device |
US5253363A (en) * | 1988-03-15 | 1993-10-12 | Edward Hyman | Method and apparatus for compiling and implementing state-machine states and outputs for a universal cellular sequential local array |
US5343406A (en) * | 1989-07-28 | 1994-08-30 | Xilinx, Inc. | Distributed memory architecture for a configurable logic array and method for using distributed memory |
US5212652A (en) * | 1989-08-15 | 1993-05-18 | Advanced Micro Devices, Inc. | Programmable gate array with improved interconnect structure |
US5457409A (en) * | 1992-08-03 | 1995-10-10 | Advanced Micro Devices, Inc. | Architecture of a multiple array high density programmable logic device with a plurality of programmable switch matrices |
US5185706A (en) * | 1989-08-15 | 1993-02-09 | Advanced Micro Devices, Inc. | Programmable gate array with logic cells having configurable output enable |
US5255203A (en) * | 1989-08-15 | 1993-10-19 | Advanced Micro Devices, Inc. | Interconnect structure for programmable logic device |
US5260881A (en) * | 1989-10-30 | 1993-11-09 | Advanced Micro Devices, Inc. | Programmable gate array with improved configurable logic block |
US5231588A (en) * | 1989-08-15 | 1993-07-27 | Advanced Micro Devices, Inc. | Programmable gate array with logic cells having symmetrical input/output structures |
US5295090A (en) * | 1992-05-10 | 1994-03-15 | Xilinx, Inc. | Logic structure and circuit for fast carry |
US5144166A (en) * | 1990-11-02 | 1992-09-01 | Concurrent Logic, Inc. | Programmable logic cell and array |
US5245227A (en) * | 1990-11-02 | 1993-09-14 | Atmel Corporation | Versatile programmable logic cell for use in configurable logic arrays |
US5224056A (en) * | 1991-10-30 | 1993-06-29 | Xilinx, Inc. | Logic placement using positionally asymmetrical partitioning algorithm |
US5313119A (en) * | 1991-03-18 | 1994-05-17 | Crosspoint Solutions, Inc. | Field programmable gate array |
US5204556A (en) * | 1991-05-06 | 1993-04-20 | Lattice Semiconductor Corporation | Programmable interconnect structure for logic blocks |
US5338984A (en) * | 1991-08-29 | 1994-08-16 | National Semiconductor Corp. | Local and express diagonal busses in a configurable logic array |
US5260610A (en) * | 1991-09-03 | 1993-11-09 | Altera Corporation | Programmable logic element interconnections for programmable logic array integrated circuits |
US5513124A (en) * | 1991-10-30 | 1996-04-30 | Xilinx, Inc. | Logic placement using positionally asymmetrical partitioning method |
US5296090A (en) * | 1991-12-03 | 1994-03-22 | New England Medical Center Hospitals, Inc. | High resolution track etch autoradiography |
US5208491A (en) * | 1992-01-07 | 1993-05-04 | Washington Research Foundation | Field programmable gate array |
US5367209A (en) * | 1992-01-07 | 1994-11-22 | Hauck Scott A | Field programmable gate array for synchronous and asynchronous operation |
US5258668A (en) * | 1992-05-08 | 1993-11-02 | Altera Corporation | Programmable logic array integrated circuits with cascade connections between logic modules |
US5254886A (en) * | 1992-06-19 | 1993-10-19 | Actel Corporation | Clock distribution scheme for user-programmable logic array architecture |
US5365125A (en) * | 1992-07-23 | 1994-11-15 | Xilinx, Inc. | Logic cell for field programmable gate array having optional internal feedback and optional cascade |
US5386154A (en) * | 1992-07-23 | 1995-01-31 | Xilinx, Inc. | Compact logic cell for field programmable gate array chip |
US5317698A (en) * | 1992-08-18 | 1994-05-31 | Actel Corporation | FPGA architecture including direct logic function circuit to I/O interconnections |
US5425036A (en) * | 1992-09-18 | 1995-06-13 | Quickturn Design Systems, Inc. | Method and apparatus for debugging reconfigurable emulation systems |
US5384497A (en) * | 1992-11-04 | 1995-01-24 | At&T Corp. | Low-skew signal routing in a programmable array |
US5414377A (en) * | 1992-12-21 | 1995-05-09 | Xilinx, Inc. | Logic block with look-up table for configuration and memory |
US5424589A (en) * | 1993-02-12 | 1995-06-13 | The Board Of Trustees Of The Leland Stanford Junior University | Electrically programmable inter-chip interconnect architecture |
US5302865A (en) * | 1993-02-16 | 1994-04-12 | Intel Corporation | High-speed comparator logic for wide compares in programmable logic devices |
GB9303084D0 (en) * | 1993-02-16 | 1993-03-31 | Inmos Ltd | Programmable logic circuit |
US5311080A (en) * | 1993-03-26 | 1994-05-10 | At&T Bell Laboratories | Field programmable gate array with direct input/output connection |
US5352940A (en) * | 1993-05-27 | 1994-10-04 | Altera Corporation | Ram convertible look-up table based macrocell for PLDs |
US5457410A (en) * | 1993-08-03 | 1995-10-10 | Btr, Inc. | Architecture and interconnect scheme for programmable logic circuits |
US5386156A (en) * | 1993-08-27 | 1995-01-31 | At&T Corp. | Programmable function unit with programmable fast ripple logic |
US5349250A (en) * | 1993-09-02 | 1994-09-20 | Xilinx, Inc. | Logic structure and circuit for fast carry |
US5455525A (en) * | 1993-12-06 | 1995-10-03 | Intelligent Logic Systems, Inc. | Hierarchically-structured programmable logic array and system for interconnecting logic elements in the logic array |
US5425039A (en) * | 1994-02-24 | 1995-06-13 | Micron Optics, Inc. | Single-frequency fiber Fabry-Perot micro lasers |
EP0698294A1 (de) * | 1994-03-15 | 1996-02-28 | National Semiconductor Corporation | Dreidimensionale logische verbindungen zwischen integrierten schaltungschips mit zweidimensionaler multichip-modulverpackung |
US5426379A (en) * | 1994-07-29 | 1995-06-20 | Xilinx, Inc. | Field programmable gate array with built-in bitstream data expansion |
US5442306A (en) * | 1994-09-09 | 1995-08-15 | At&T Corp. | Field programmable gate array using look-up tables, multiplexers and decoders |
US5537057A (en) * | 1995-02-14 | 1996-07-16 | Altera Corporation | Programmable logic array device with grouped logic regions and three types of conductors |
US5671432A (en) * | 1995-06-02 | 1997-09-23 | International Business Machines Corporation | Programmable array I/O-routing resource |
US5732246A (en) * | 1995-06-07 | 1998-03-24 | International Business Machines Corporation | Programmable array interconnect latch |
US5692147A (en) * | 1995-06-07 | 1997-11-25 | International Business Machines Corporation | Memory mapping method and apparatus to fold sparsely populated structures into densely populated memory columns or rows by selectively transposing X and Y address portions, and programmable gate array applications thereof |
US5559450A (en) * | 1995-07-27 | 1996-09-24 | Lucent Technologies Inc. | Field programmable gate array with multi-port RAM |
US5712579A (en) * | 1995-10-16 | 1998-01-27 | Xilinx, Inc. | Deskewed clock distribution network with edge clock |
US5841295A (en) * | 1996-02-09 | 1998-11-24 | Hewlett-Packard Company | Hybrid programmable logic device |
-
1996
- 1996-05-20 US US08/650,477 patent/US5894565A/en not_active Expired - Lifetime
-
1997
- 1997-05-09 EP EP01107756A patent/EP1158402B1/de not_active Expired - Lifetime
- 1997-05-09 JP JP9542458A patent/JPH11510038A/ja not_active Ceased
- 1997-05-09 EP EP01107760A patent/EP1143336B1/de not_active Expired - Lifetime
- 1997-05-09 DE DE69721343T patent/DE69721343T2/de not_active Expired - Fee Related
- 1997-05-09 DE DE69730254T patent/DE69730254T2/de not_active Expired - Fee Related
- 1997-05-09 EP EP01107759A patent/EP1150431B1/de not_active Expired - Lifetime
- 1997-05-09 EP EP97926441A patent/EP0846289B1/de not_active Expired - Lifetime
- 1997-05-09 DE DE69721342T patent/DE69721342T2/de not_active Expired - Fee Related
- 1997-05-09 DE DE69711159T patent/DE69711159T2/de not_active Expired - Fee Related
- 1997-05-09 EP EP01107758A patent/EP1158403B1/de not_active Expired - Lifetime
- 1997-05-09 WO PCT/US1997/007924 patent/WO1997044730A1/en active IP Right Grant
- 1997-05-09 CN CN97190570A patent/CN1105970C/zh not_active Expired - Fee Related
- 1997-05-09 DE DE69721344T patent/DE69721344T2/de not_active Expired - Fee Related
- 1997-05-09 KR KR10-1998-0700335A patent/KR100429063B1/ko not_active IP Right Cessation
- 1997-09-24 US US08/937,105 patent/US6014509A/en not_active Expired - Lifetime
- 1997-09-24 US US08/936,334 patent/US6026227A/en not_active Expired - Lifetime
-
1998
- 1998-05-13 US US09/078,409 patent/US6167559A/en not_active Expired - Lifetime
- 1998-11-27 HK HK98112366A patent/HK1011227A1/xx not_active IP Right Cessation
-
2000
- 2000-08-29 US US09/650,979 patent/US6292021B1/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
KR100429063B1 (ko) | 2004-08-04 |
DE69730254D1 (de) | 2004-09-16 |
EP1158402B1 (de) | 2003-04-23 |
US6014509A (en) | 2000-01-11 |
US6167559A (en) | 2000-12-26 |
JPH11510038A (ja) | 1999-08-31 |
DE69721344T2 (de) | 2004-02-19 |
US5894565A (en) | 1999-04-13 |
US6026227A (en) | 2000-02-15 |
DE69711159D1 (de) | 2002-04-25 |
EP1150431B1 (de) | 2004-08-11 |
EP1158403A1 (de) | 2001-11-28 |
EP1150431A1 (de) | 2001-10-31 |
US6292021B1 (en) | 2001-09-18 |
EP1158402A1 (de) | 2001-11-28 |
EP0846289B1 (de) | 2002-03-20 |
CN1194702A (zh) | 1998-09-30 |
DE69730254T2 (de) | 2005-08-04 |
EP0846289A1 (de) | 1998-06-10 |
DE69721343D1 (de) | 2003-05-28 |
EP1143336B1 (de) | 2003-04-23 |
HK1011227A1 (en) | 1999-07-09 |
CN1105970C (zh) | 2003-04-16 |
KR19990029032A (ko) | 1999-04-15 |
DE69721342D1 (de) | 2003-05-28 |
EP0846289A4 (de) | 2000-11-22 |
EP1143336A1 (de) | 2001-10-10 |
WO1997044730A1 (en) | 1997-11-27 |
DE69721342T2 (de) | 2004-02-05 |
EP1158403B1 (de) | 2003-04-23 |
DE69721343T2 (de) | 2004-02-19 |
DE69721344D1 (de) | 2003-05-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69711159T2 (de) | Benutzerprogrammierbares logisches feld mit verteiltem ram und erhöhter zellnutzung | |
DE69716623T2 (de) | Fpga-architektur mit ram-blöcken mit programmierbarer wortlänge und -breite und zugeordneten adress- und datenleitungen | |
DE69904241T2 (de) | Konfigurierbarer logischer block in einem nutzerprogrammierbaren gatterfeld mit einer vielzwecklogig/speicherschaltung | |
DE69031525T2 (de) | Konfigurierbare Logikanordnung und zugehöriges Verfahren | |
DE69822796T2 (de) | Nutzerprogrammierbarer prozessor | |
DE69716771T2 (de) | Benutzerprogrammierbares gatterfeld mit sich wiederholender verbindungsstruktur | |
US6396303B1 (en) | Expandable interconnect structure for FPGAS | |
DE69128888T2 (de) | Programmierbares logisches feld | |
US6137308A (en) | Programmable interconnect matrix architecture for complex programmable logic device | |
DE69812898T2 (de) | Nutzerprogrammierbare prozessorfelder | |
DE69125201T2 (de) | Konfigurierbares logisches Feld | |
DE69028395T2 (de) | Konfigurierbare zellenanordnung | |
DE69827589T2 (de) | Konfigurierbare Verarbeitungsanordnung und Verfahren zur Benutzung dieser Anordnung, um eine Zentraleinheit aufzubauen | |
US5942914A (en) | PLD with split multiplexed inputs from global conductors | |
DE69430320T2 (de) | Anwendungsspezifische module in einem programmierbaren logikbaustein | |
KR100340310B1 (ko) | 구성가능한논리배열 | |
US5986470A (en) | Programmable logic array integrated circuit devices | |
DE60128679T2 (de) | Nachschlagtabelle für nutzerprogrammierbares gatterfeld mit zwei toren für schreiblese- und schieberegister- modus | |
DE69534659T2 (de) | Architektur und Verbindungsmodel für programmierbare logische Schaltungen | |
DE102020111904A1 (de) | Logikschaltkreise mit erhöhten arithmetischen dichten | |
US6370140B1 (en) | Programmable interconnect matrix architecture for complex programmable logic device | |
DE69630352T2 (de) | Programmierbarer schalter für eingangs-/ausgangssignale eines anwenderprogrammierbaren gatterfeldes | |
JPH06511118A (ja) | マルチ共有論理アレイを備えるプログラマブル論理装置 | |
AU723157B2 (en) | Configurable logic array | |
DE29824773U1 (de) | Feldprogrammierbare Prozessoranordnungen |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |