Nothing Special   »   [go: up one dir, main page]

DE60038659T2 - Verbindungs- und eingangs/ausgangsmittel für programmierbare logische integrierte schaltungen - Google Patents

Verbindungs- und eingangs/ausgangsmittel für programmierbare logische integrierte schaltungen Download PDF

Info

Publication number
DE60038659T2
DE60038659T2 DE60038659T DE60038659T DE60038659T2 DE 60038659 T2 DE60038659 T2 DE 60038659T2 DE 60038659 T DE60038659 T DE 60038659T DE 60038659 T DE60038659 T DE 60038659T DE 60038659 T2 DE60038659 T2 DE 60038659T2
Authority
DE
Germany
Prior art keywords
conductors
subset
signals
output
connection
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 - Lifetime
Application number
DE60038659T
Other languages
English (en)
Other versions
DE60038659D1 (de
Inventor
Tony San Jose Ngai
Bruce San Jose PEDERSON
Sergey San Jose SHUMARAYEV
James San Jose Schleicher
Wei-Jen San Jose HUANG
Michael San Jose HUTTON
Victor San Jose MARURI
Rakesh San Jose PATEL
Peter J. San Jose KAZARIAN
Andrew San Jose LEAVER
David W. San Jose MENDEL
Jim San Jose PARK
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Altera Corp
Original Assignee
Altera Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Altera Corp filed Critical Altera Corp
Publication of DE60038659D1 publication Critical patent/DE60038659D1/de
Application granted granted Critical
Publication of DE60038659T2 publication Critical patent/DE60038659T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
    • H03K19/17736Structural details of routing resources
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/1733Controllable logic circuits
    • H03K19/1737Controllable logic circuits using multiplexers
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
    • H03K19/17724Structural details of logic blocks
    • H03K19/17728Reconfigurable logic blocks, e.g. lookup tables
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
    • H03K19/17736Structural details of routing resources
    • H03K19/17744Structural details of routing resources for input/output signals

Landscapes

  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Logic Circuits (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)
  • Semiconductor Integrated Circuits (AREA)

Description

  • Hintergrund der Erfindung
  • Diese Erfindung betrifft integrierte Schaltungsvorrichtungen mit programmierbaren logischen Anordnungen ("programmierbare Logikvorrichtungen" oder „PLDs" (Programmable Logic Devices) und insbesondere Verbindungsressourcen zur Verwendung auf programmierbaren Logikvorrichtungen, welche die Geschwindigkeit steigern, mit der diese Vorrichtungen arbeiten können. Auch betrifft die Erfindung solche anderen Merkmale von PLDs wie eine Verteilung von Sekundärsignalen (z. B. Takt- und Löschsignalen), Ein- und Ausgangs-Schaltungen und Kaskadenschaltungen zwischen Logikmodulen.
  • Programmierbare Logikvorrichtungen umfassen typischerweise (1) viele Bereiche programmierbarer Logik und (2) programmierbare Verbindungsressourcen zum wahlweisen Übertragen von Signalen zu, von und/oder zwischen jenen logischen Bereichen. Jeder logische Bereich ist programmierbar, um beliebige mehrerer unterschiedlicher, relativ einfacher Logikfunktionen auszuführen. Die Verbindungsressourcen sind programmierbar, um es den logischen Bereichen zu ermöglichen, zusammenzuarbeiten, um viel komplexere Logikfunktionen auszuführen, als durch irgendeinen einzelnen logischen Bereich ausgeführt werden können. Beispiele bekannter PLDs sind in Wahlstrom, US-Patentschrift 3,473,160 , Freeman, US-Patentschrift Re. 34,363 , Cliff et al., US-Patentschrift 5,689,195 , Cliff et al., US-Patentschrift 5,828,229 , Cliff et al., US-Patentschrift 5,909,126 und Jefferson et al., US-Patentschrift 6,215,326 gezeigt.
  • Ein typisches Maß für die Maximalgeschwindigkeit, mit der zu arbeiten eine PLD veranlasst werden kann, ist die längste Zeit, die für ein Signal benötigt wird, um sich durch die Vorrichtung vom Register irgendeines logischen Bereichs (oder einer anderen Ressource mit einem Register) zum Register irgendeines anderen logischen Bereichs (oder einer anderen Ressource mit einem Register) auszubreiten. Eine PLD kann nicht mit einer Taktrate sicher getaktet werden, die eine Periode kleiner als diese längste Signalausbreitungszeit aufweist. Bei den meisten PLDs ist es ein wichtiges Konstruktionsziel, die längste Signalausbreitungszeit zu minimieren. Somit sind sowohl die logischen Bereiche als auch die Verbindungsressourcen typischerweise so konstruiert, dass sie in dieser Beziehung zeiteffizient sind. Sobald dies geschehen ist, ist es jedoch bei einer gegebenen Fabrikationstechnologie für integrierte Schaltungen schwierig, die längste Signalausbreitungszeit wesentlich weiter zu verringern. Beispielsweise können, um die Geschwindigkeit der Verbindungsressourcen zu erhöhen, größere Treiber und Passtransistoren verwendet werden, aber die entsprechende Diffusionsbelastung auf den Führungskanälen wird ebenfalls zunehmen. Für Verbindungsleiter können breitere Metallleiterbahnen verwendet werden, um Metall-RC-Verzögerung zu verringern, dies wird aber die Chipgröße wesentlich vergrößern. Als Folge davon wird die endgültige Beschleunigung vermindert.
  • Im Hinblick auf das Vorstehende ist es eine Aufgabe dieser Erfindung, verbesserte programmierbare Logikvorrichtungen bereitzustellen.
  • Eine speziellere Aufgabe dieser Erfindung ist es, verbesserte Verbindungsressourcen für programmierbare Logikvorrichtungen bereitzustellen.
  • Eine noch speziellere Aufgabe dieser Erfindung ist es, Verbindungsressourcen für programmierbare Logikvorrichtungen bereitzustellen, welche ohne die Nachteile im Zusammenhang mit einfachem Erhöhen der Geschwindigkeit all jener Ressourcen die Eigenschaft der längsten Signalausbreitungszeit der Vorrichtung verringert.
  • Noch eine andere Aufgabe dieser Erfindung ist es, PLDs in Bezug auf solche Merkmale wie Verteilung von Sekundärsignalen (z. B. Takt- und Löschsignalen), Ein- und Ausgangs-Schaltungen und Schaltungen zum Zusammenkaskadieren von zwei oder mehr Logikmodulen zu verbessern.
  • Zusammenfassung der Erfindung
  • Diese und andere Aufgaben der Erfindung werden gemäß den Prinzipien der Erfindung, wie in den angehängten Ansprüchen definiert, durch Bereitstellen einer programmierbaren Logikvorrichtung mit Verbindungsressourcen gelöst, die mindestens teilweise in zwei im Wesentlichen parallelen Formen oder Untermengen aufgebaut sind. Die Verbindungsressourcen in der ersten Untermenge sind so aufgebaut, dass sie das aufweisen, was als Eigenschaften „normaler" Signalausbreitungsgeschwindigkeit bezeichnet werden kann. Die Verbindungsressourcen in der im Wesentlichen parallelen zweiten Untermenge sind so aufgebaut, dass sie Eigenschaften wesentlich schnellerer Signalausbreitungsgeschwindigkeit aufweisen. Beispielsweise kann, verglichen mit der ersten Untermenge, die zweite Untermenge mit größeren Treibern und Passgates, breiteren und weiter beabstandeten Metallleiterbahnen für Leiter und anderen ähnlichen Merkmalen zum Erhöhen der Signalausbreitungsgeschwindigkeit aufgebaut sein. Wo beide Formen von Verbindungsressourcen bereitgestellt sind, sind die meisten Ressourcen vorzugsweise von der Normalgeschwindigkeitsvariante, und nur eine Minderheit (z. B. von etwa 20% bis etwa 33%, in am meisten zu bevorzugender Weise etwa 25%) sind von der Hochgeschwindigkeitsform.
  • Die Hochgeschwindigkeits-Verbindungsressourcen sind vorzugsweise ausreichend umfangreich auf der Vorrichtung bereitgestellt, sodass sie für wenigstens einen Teil der Führung von Signalen zwischen im Wesentlichen beliebigen zwei (oder mehr) logischen Bereichen auf der Vorrichtung verwendet werden können. (Man wird natürlich verstehen, dass die Hochgeschwindigkeitsressourcen beim Herstellen von Verbindungen zwischen logischen Bereichen, die auf der Vorrichtung relativ weit voneinander entfernt sind, wahrscheinlich vom größten Wert sind und daher den größten Nutzen finden.) Somit können Verbindungen zwischen logischen Bereichen an praktisch jedweden Orten auf der Vorrichtung entweder gänzlich über die Normalgeschwindigkeits-Verbindungsressourcen oder mindestens teilweise über die Hochgeschwindigkeits-Verbindungsressourcen hergestellt werden.
  • Es ist eine typische Konstruktionsaufgabe für die Hochgeschwindigkeitsressourcen, es möglich zu machen, durch Bereitstellen einer ausreichenden Menge ausreichend schneller Hochgeschwindigkeitsressourcen die Geschwindigkeit zu verdoppeln, mit der die Vorrichtung getaktet werden kann, sodass jene Ressourcen verwendet werden können, um die Signale zu übertragen, die der Vorrichtung ihre längste Signalausbreitungszeit verleihen, und dadurch die Ausbreitungszeit jener Signale zu halbieren. Andererseits wird, um die Nachteile des einfachen Versuchens, die Geschwindigkeit aller Verbindungsressourcen auf der Vorrichtung bedeutend zu erhöhen, zu vermeiden, nur ein kleinerer Teil der Verbindungsressourcen jedweder gegebenen Art für Hochgeschwindigkeit hergestellt. Der größere Teil bleibt für Normalgeschwindigkeit ausgelegt und wird für das Gros der Verbindungen verwendet, die weniger geschwindigkeitskritisch sind.
  • Die Ein- und Ausgangs-(„E/A"-)Schaltungen von PLDs können gemäß der Erfindung durch Bereitstellen von Reihen von E/A-Zellen (einschließlich E/A-Pins) verbessert werden, die unter den Reihen von Logik und anderen Schaltungen auf der Vorrichtung eingefügt sind. Dies verteilt die E/A-Pins gleichförmiger über die Vorrichtung, wodurch E/A-Pin-Knappheiten abgemildert werden können, die sich daraus ergeben können, das E/A-Pins nur um den Umfang der Vorrichtung herum vorhanden sind. Das Verteilen von E/A-Pins über die Vorrichtung kann außerdem die Verteilung von Sekundärsignalen (z. B. Takt- und Löschsignalen) erleichtern (z. B. mit verringertem Laufzeitunterschied), indem ermöglicht wird, dass derartige Signale von E/A-Pins näher der Mitte der Vorrichtung kommen. Sekundärsignalverteilungsschaltungen können bereitgestellt sein, um Vorteil aus derartig verbesserter E/A-Pin-Verteilung zu ziehen. Kaskadenschaltungen zwischen benachbarten oder nahe liegenden logischen Bereichen können verbessert werden, um derartige Verbindungen zu beschleunigen, deren Nutzen zu steigern und, wenn sie nicht benutzt werden, die Belastung durch sie auf die Vorrichtung zu vermindern.
  • Weitere Merkmale der Erfindung, ihre Natur und verschiedene Vorteile werden aus den beiliegenden Zeichnungen und der folgenden ausführlichen Beschreibung der bevorzugten Ausführungsformen offensichtlicher.
  • Kurze Beschreibung der Zeichnungen
  • 1 ist ein vereinfachtes Blockschaltbild einer veranschaulichenden programmierbaren Logikvorrichtung, die gemäß der Erfindung aufgebaut sein kann.
  • 2 zeigt einen Teil von 1 mit der Ergänzung durch repräsentative, veranschaulichende Verbindungsressourcen gemäß der Erfindung.
  • 3 ist ein vereinfachtes Prinzipschaltbild zusätzlicher repräsentativer, veranschaulichender Verbindungsressourcen zur Verwendung auf der Vorrichtung nach 1 und 2 gemäß der Erfindung.
  • 4 ist ein vereinfachtes Prinzipschaltbild noch anderer repräsentativer, veranschaulichender Verbindungsressourcen zur Verwendung auf der Vorrichtung nach 1 und 2.
  • 5A und 5B (manchmal gemeinschaftlich als 5 bezeichnet) sind ein vereinfachtes Prinzipschaltbild repräsentativer, veranschaulichender programmierbarer Logik und diesbe züglicher Schaltungen zur Verwendung auf der Vorrichtung nach 1 und 2 gemäß der Erfindung.
  • 6 ist ein vereinfachtes Prinzipschaltbild noch weiterer repräsentativer, veranschaulichender Verbindungsressourcen zur Verwendung auf der Vorrichtung nach 1 und 2 gemäß der Erfindung.
  • 7A ist ein detaillierteres, aber dennoch vereinfachtes Prinzipschaltbild einer veranschaulichenden Ausführungsform anderer repräsentativer Teile der Schaltungen nach 1 gemäß der Erfindung.
  • 7B ist 7A ähnlich, aber zeigt zusätzliche Elemente, die den Schaltungen nach 7A zugeordnet sind und in 7A nicht gezeigt werden konnten, ohne 7A zu überfüllen. 7A und 7B werden manchmal gemeinschaftlich als 7 bezeichnet.
  • 8 ist ein noch detaillierteres, aber dennoch vereinfachtes Prinzipschaltbild einer veranschaulichenden Ausführungsform repräsentativer Teile der Schaltungen nach 7.
  • 9 ist ein detaillierteres, aber dennoch vereinfachtes Prinzipschaltbild einer veranschaulichenden Ausführungsform noch anderer repräsentativer Teile der Schaltungen nach 1 gemäß der Erfindung.
  • 10 ist ein vereinfachtes Prinzipschaltbild einer alternativen Ausführungsform von Teilen der 5 gemäß der Erfindung.
  • 11 ist ein vereinfachtes Prinzipschaltbild einer anderen alternativen Ausführungsform von Teilen der 5 gemäß der Erfindung.
  • 12 ist ein vereinfachtes Blockschaltbild eines veranschaulichenden Systems, das eine programmierbare Logikvorrichtung gemäß der Erfindung einsetzt.
  • Ausführliche Beschreibung der bevorzugten Ausführungsformen
  • Eine veranschaulichende programmierbare Logikvorrichtung 10, die gemäß dieser Erfindung aufgebaut sein kann, ist in 1 gezeigt. Vorrichtung 10 umfasst 12 Reihen von Bereichen 20 programmierbarer Logik. Jede Reihe umfasst 40 Bereiche 20. Somit sind Bereiche 20 auf Vorrichtung 10 in einer zweidimensionalen Anordnung von 12 Reihen angeordnet, die 40 Spalten von Bereichen 20 kreuzen.
  • Jeder Bereich 20 umfasst zehn Unterbereiche 30 programmierbarer Logik. Um ein Überkomplizieren von 1 zu vermeiden, sind die einzelnen Unterbereiche 30 nur im äußerst oberen linken Bereich 20 skizziert. Wie später in dieser Spezifikation vollständiger erklärt wird, ist jeder Unterbereich 30 durch einen Benutzer von Vorrichtung 10 programmierbar, um eine beliebige von mehreren relativ kleinen Logikfunktionen auszuführen. Äußerst komplexe Logikfunktionen können durch Verketten von Unterbereichen 30 über ein programmierbares Netzwerk von Verbindungsleitern und anderen zugeordneten Verbindungsressourcen auf Vorrichtung 10 ausgeführt werden.
  • Eingefügt unter den Reihen von Bereichen 20 sind fünf Reihen von Ein- und Ausgangs-(„E/A")Pins und zugeordnete E/A-Schaltungen 40. Eine der E/A-Reihen 40 befindet sich oben unter den Reihen von Bereichen 20. Eine andere E/A-Reihe 40 befindet sich unten unter den Reihen von Bereichen 20. Eine dritte E/A-Reihe 40 befindet sich zwischen den dritten und vierten Reihen von Bereichen 20. Eine vierte E/A-Reihe 40 befindet sich zwischen den sechsten und siebten Reihen von Bereichen 20. Eine fünfte E/A-Reihe 40 befindet sich zwischen den neunten und zehnten Reihen von Bereichen 20.
  • Oberhalb der obersten E/A-Reihe 40 befindet sich eine Reihe von Speicherbereichen 50, die durch den Benutzer von Vorrichtung 10 als Direktzugriffsspeicher (Random Access Memory, „RAM"), Lese-Speicher (Read-Only Memory, „ROM"), Produktterm-(„P-Term"-)Logik, Assoziativspeicher, usw. benutzt werden können. Eine andere ähnliche Reihe von Speicherbereichen 50 ist unterhalb der untersten E/A-Reihe 40 bereitgestellt. Geeignete Schaltungen für Speicherbereiche 50 sind in solchen Referenzen wie Cliff et al., US-Patentschrift 5,550,782 , Sung et al., US-Patentschrift 5,555,214 , Sung et al., US-Patentschrift 5,633,830 , Cliff et al., US-Patentschrift 5,689,195 , Sung et al., US-Patentschrift 5,717,901 , Sung et al., US-Patentschrift 5,802,540 , Heile, US-Patentschrift 6,020,759 , Pedersen, US-Patentschrift 6,072,332 , Reddy et al., US-Patentschrift 6,052,327 , Reddy et al., US-Patentschrift 6,288,970 , Ngai et al., US-Patentschrift 6,467,017 , Heile, US-Patentschrift 6,144,573 und Heile, US-Patentschrift 6,453,382 gezeigt.
  • Am rechten Ende jeder Reihe von Speicherbereichen 50 befindet sich ein Bereich 60 von Phase-Locked-Loop-Schaltungen, die verwendet werden können, um Taktsignale zu generieren, die relativ zu Taktsignalen, die von externen Schaltungen, die nicht in 1 gezeigt sind, an Vorrichtung 10 gelegt sind, in der Phase verschoben sind. Geeignete Phase-Locked-Loop-Schaltungen sind in solchen Referenzen wie Jefferson, US-Patentschrift 5,642,082 , Jefferson, US-Patentschrift 5,699,020 , Reddy et al., US-Patentschrift 5,847,617 , Sung et al., US-Patentanmeldung Nr. 09/366,940, Sung et al., US-Patentanmeldung Nr. 09/368,464, Sung et al., US-Patentanmeldung Nr. 09/392,095 und Sung et al., US-Patentanmeldung Nr. 09/393,036 (alle Patentanmeldungen 1999 eingereicht) gezeigt.
  • Am linken Ende der obersten Reihe von Bereichen 50 befindet sich ein Bereich 70 von Steuerlogik und Pins. Diese Schaltungen werden zum Steuern von Vorrichtung 10 während Programmierung und Test der Vorrichtung vor deren Verwendung in normalen Logikoperationen verwendet.
  • Am linken Ende der untersten Reihe von Bereichen 50 befindet sich ein Bereich 80 von JTAG-Logik und Pins. Die Schaltungen von Bereich 80 können durch den Benutzer der Vorrichtung für In-System-Programming und Test von Vorrichtung 10 vor der Verwendung der Vorrichtung in normalen Logikoperationen verwendet werden. Geeignete Schaltungen zur Verwendung in Bereich 80 sind in solchen Referenzen wie Chu et al., US-Patentschrift 5,650,734 und Wong, US-Patentschrift 5,699,312 gezeigt.
  • Die oberste Reihe von Schaltungen, die in 1 gezeigt sind, sind Adress- und Löschregisterschaltungen 90, die während der Programmierung von Vorrichtung 10 vor normalen Logikoperationen verwendet werden. Die ganz links befindliche Reihe von Schaltungen, die in 1 gezeigt sind, sind Datenregisterschaltungen 100, die während der Programmierung vor normalen Logikoperationen verwendet werden. Die ganz rechts befindliche Reihe von Schaltungen, die in 1 gezeigt sind, sind Testregisterschaltungen 110, die ebenfalls während der Programmierung vor normalen Logikoperationen verwendet werden. Bei typischer Verwendung werden Programmierdaten aus externen Schaltungen, die nicht gezeigt sind, in Schaltungen 100 geladen.
  • Diese Daten fließen von links nach rechts über Vorrichtung 10 zur Speicherung in einem vertikalen Schnitt von Orten, bestimmt durch Adressinformationen in Schaltungen 90. Daten zur Verwendung beim Bestätigen, dass Vorrichtung 10 sachgerecht programmierbar und/oder sachgerecht betreibbar ist, können über Register 110 aus Vorrichtung 10 ausgelesen werden. Zu veranschaulichenden Schaltungen, die für die Programmierungs- und Test-Aspekte von Vorrichtung 10 geeignet sind, die in den vorhergehenden Sätzen und in dem früheren Absatz beschrieben sind, der Bereich 70 beschreibt, siehe Cliff, US-Patentschrift 5,237,219 .
  • Der einzige Aspekt dessen, was in 1 gezeigt ist, der noch nicht erwähnt worden ist, ist ein vertikal ausgerichteter Bereich 120 sogenannter Sekundärsignalleiterressourcen, der sich in oder nahe der auf die Links-rechts-Richtung bezogenen Mitte von Vorrichtung 10 befindet. Bereich 120 ist Teil eines Netzwerks von Signalausbreitungsressourcen, das zum Verteilen weitreichend benötigter Signale über die gesamte Vorrichtung 10 verwendet wird. Zu Beispielen derartiger Signale zählen Taktsignale, Löschsignale, Setzsignale, Zurücksetzsignale und dergleichen. Eine veranschaulichende Ausführungsform von Bereich 120 und zugeordneten Schaltungen sind in 7A und 7B gezeigt und später in dieser Spezifikation beschrieben.
  • Im Allgemeinen betreffen Programmier- und Testbetriebsarten und -schaltungen die vorliegende Erfindung im Wesentlichen nicht, und so wird es nicht notwendig sein, jene Aspekte von Vorrichtung 10 ausführlicher zu zeigen oder zu beschreiben. Dies betrifft die Elemente 70, 80, 90, 100 und 110. Geeignete Aufbauweisen und Techniken für diese Aspekte der Vorrichtung sind dem Fachmann wohlbekannt, und Beispiele sind in anderen Referenzen enthalten, wie früher in dieser Spezifikation angegeben. Der Aufbau, der Betrieb und die Verwendung von Phase-Locked-Loop-Schaltungen 60 betreffen diese Erfindung ebenfalls im Wesentlichen nicht, was den Bedarf an weiteren Einzelheiten bezüglich jener Schaltungen umgeht. Wieder gilt, dass geeignete Phase-Lock-Loop-Schaltungen dem Fachmann wohlbekannt sind, und dass Beispiele in anderen Referenzen zu finden sind, die früher in dieser Spezifikation angegeben sind. Die Erfindung kann ausgeweitet werden, um Speicherbereichen 50 zu dienen, aber eine derartige mögliche Ausweitung wird aus der folgenden Erläuterung offensichtlich, welche hauptsächlich die Anwendung der Erfindung auf logische Bereiche 20, E/A-Bereiche 40 und Verbindungen unter jenen logischen und E/A-Bereichen behandelt. Somit wird es hier wieder nicht notwendig sein, bezüglich der Speicherbereiche 50 viel tiefer ins Detail zu gehen.
  • 2 ist einem Teil von 1 ähnlich, zeigt aber einige der Verbindungsressourcen, die auf Vorrichtung 10 bereitgestellt sind. Jeder Spalte von logischen Bereichen 20 zugeordnet und in die Speicherreihen 50 verlaufend sind mehrere sogenannter globaler vertikaler Leiter 200. Es sind nur einige repräsentative Leiter 200 in 1 gezeigt, um ein Überfüllen der Zeichnung zu vermeiden. Jede Gruppe von Leitern 200 umfasst eine relativ große Untermenge derartiger, mit 200a bezeichneter Leiter, die Eigenschaften normaler Signalausbreitungsgeschwindigkeit aufweisen. Jede Gruppe von Leitern 200 umfasst außerdem eine relativ kleine Untermenge derartiger, mit 200b bezeichneter Leiter, die Eigenschaften wesentlich schnellerer Signalausbreitungsgeschwindigkeit aufweisen. Beispielsweise kann jede Untermenge 200a in etwa 67–80% (in am meisten zu bevorzugender Weise etwa 75%) der zugeordneten Menge an Leitern 200 umfassen, und jede Untermenge 200b kann in etwa 20–33% (in am meisten zu bevorzugender Weise etwa 25%) der zugeordneten Menge an Leitern 200 umfassen.
  • Der oberen Hälfte jeder Spalte logischer Bereiche 20 zugeordnet und in die obere Reihe von Speicherbereichen 50 verlaufend sind mehrere sogenannter halber vertikaler Verbindungsleiter 210. Ähnliche halbe vertikale Verbindungsleiter 210 sind der unteren Hälfte jeder Spalte von logischen Bereichen 20 und der unteren Reihe von Speicherbereichen 50 zugeordnet. Wieder sind nur einige repräsentative Leiter 210 gezeigt, um ein Überfüllen der Zeichnung zu vermeiden. Wie im Falle der Leiter 200 umfasst jede Menge von Leitern 210 eine relativ große Untermenge 210a von Leitern normaler Geschwindigkeit und eine relativ kleine Untermenge 210b von Leitern höherer Geschwindigkeit. Das Verhältnis von Leitern 210a zu Leitern 210b kann ähnlich dem Verhältnis von Leitern 200a zu 200b sein.
  • Ebenfalls jeder Spalte logischer Bereiche 20 zugeordnet sind mehrere sogenannte eingeschachtelte vertikale („EV"-)Leitern 220. Wiederum sind nur einige repräsentative Leiter 220 gezeigt, um ein Überfüllen der Zeichnung zu vermeiden. Jede Gruppe von Leitern 220 verläuft zwischen vertikal benachbarten logischen Bereichen 20 und Speicherbereichen 50, über jedweden dazwischenliegenden E/A-Bereich 40 hinweg verlaufend. Während Leiter 200 und 210 nützlich sind, um Signale zwischen beliebigen Reihen von Elementen 20, 40 und 50 zu übertragen, die sie kreuzen, sind Leiter 220 nützlich, um Verbindungen zwischen vertikal benachbarten Elementen 20 und 50 zu beschleunigen und um außerdem die Anzahl von Leitern 200 und 210 verringern zu helfen, die bereitgestellt werden muss, um dem Bedarf an vertikalen Zusammenschaltungen auf Vorrichtung 10 zu genügen. Zusätzliche Einzelheiten bezüglich EV-Leitern sind in Schleicher et al., US-Patentschrift 6,366,120 zu finden.
  • Jeder Reihe logischer Bereiche 20 zugeordnet sind mehrere sogenannter globaler horizontaler Verbindungsleiter 230. Es sind nur einige repräsentative Leiter 230 gezeigt, um ein Überfüllen der Zeichnung zu vermeiden. Jede Menge von Leitern 230 umfasst eine relativ große Untermenge 230a von Leitern normaler Geschwindigkeit und eine relativ kleine Untermenge 230b von wesentlich schnelleren Leitern. Das Verhältnis von normalen zu schnellen Leiter 230 kann ähnlich vorher beschriebenen Verhältnissen von normalen zu schnellen Leitern sein.
  • Der linken Hälfte jeder Reihe logischer Bereiche 20 zugeordnet und entlang dieser verlaufend sind mehrere sogenannter halber oder direkter horizontaler Verbindungsleiter 240. Ähnliche halbe horizontale Leiter 240 verlaufen entlang der rechten Hälfte jeder Reihe logischer Bereiche 20. Wiederum sind nur ein paar repräsentative Leiter 240 gezeigt, um ein Überfüllen der Zeichnung zu vermeiden.
  • Ebenfalls jeder Reihe logischer Bereiche 20 zugeordnet sind einige Mehrzahlen von sogenannten HNSL-Verbindungsleitern 250 (HNSL = Horizontales Netzwerk schneller Leitungen). Außer an den Enden der Reihen, wo einige HNSL-Leiter notwendigerweise kürzer sind, überspannt jede Gruppe von HNSL-Leitern 250 10 logische Bereiche 20. Darüber hinaus können die Leiter in jeder Gruppe von HNSL-Leitern 250 nur durch den logischen Bereich 20 oder andere Signalquellen in der Mitte jener Gruppe angesteuert werden (Ausnahmen werden wieder an den Enden der Reihen gemacht). Während Leiter 230 und 240 nützlich sind, um Signale zwischen beliebigen logischen Bereichen 20 zu übertragen, die sie überspannen, sind Leiter 250 nur verwendbar, um Signale vom logischen Bereich 20 oder von anderen Signalquellen, die mittig zu der Gruppe sind, die jenen Leiter umfasst, zu der festen Anzahl logischer Bereiche zur Linken und/oder Rechten des mittigen logischen Bereichs zu übertragen. Jeder logische Bereich 20 in jeder Reihe ist der mittige/ansteuernde logische Bereich für eine zugeordnete Mehrzahl von Leitern 250. Zusätzliche Einzelheiten bezüglich HNSL-Leitern sind in Schleicher et al., US-Patentschrift 6,366,120 zu finden.
  • 3 zeigt repräsentative Zusammenschaltungen und Schaltungen zum Übertragen von Signalen von horizontalen Leitern, die einer Reihe logischer Bereiche 20 zugeordnet sind, zu logischen Bereichen in jener Reihe. 3 zeigt, dass es 215 globale horizontale Leiter 230a mit Normalgeschwindigkeit, die nahe einem logischen Bereich vorbeiführen, 100 schnelle globale horizontale Leiter 230b, die nahe jenem logischen Bereich vorbeiführen, 105 halbe horizontale Leiter 240, die nahe dem logischen Bereich vorbeiführen, 90 HNSL-Leiter 250, die nahe dem logischen Bereich vorbeiführen, und 12 Sekundärleiter 260 gibt, die nahe dem logischen Bereich vorbeiführen. Wie früher erwähnt, können die letztgenannten Sekundärleiter 260 Signale wie z. B. Takte, Löschungen und dergleichen übertragen. Einige dieser Signale 260 können vom mittigen Sekundärsignalbereich 120 (1) kommen; andere können lokaler generiert sein (z. B. in der benachbarten Reihe des logischen Bereichs 20) und können nur in der Örtlichkeit der Quelle verwendbar sein (d. h. in der Quellreihe) (zu weiteren Einzelheiten siehe die spätere Diskussion von 7A und 7B).
  • 3 zeigt ferner einen repräsentativen Logikbereichszuführungsleiter 300. Der abgebildete Leiter 300 ist einer einer Gruppe von 26 ähnlichen Leitern, die zwischen zwei horizontal benachbarten logischen Bereich 20 in der Reihe logischer Bereiche angeordnet sind, die durch die abgebildeten Leiter 230a, 230b usw. bedient werden. Ähnliche Gruppen von 26 Leitern 300 sind zwischen allen horizontal benachbarten logischen Bereichen 20 in allen Reihen logischer Bereiche eingeschachtelt.
  • Für jeden Leiter 300 sind ausgewählte der Leiter 230a, 230b, 240 und 260 mit Eingängen von zwei programmierbaren Logikverbindern (Programmable Logic Connectors, „PLCs"; z. B. Multiplexern) 270-1 und 270-2 verbunden. Die PLCs 270 sind jeweils typischerweise durch programmierbare Funktionssteuerelemente (Function Control Elements, „FCEs") 272 gesteuert, um an deren Ausgang das Signal an jedwedem ihrer Eingänge zu legen. (Obgleich mit vier Eingängen gezeigt, versteht es sich, dass jeder PLC 270 weniger oder mehr als vier Eingänge (z. B. zwei, drei, sechs, sieben oder acht Eingänge) aufweisen kann.) Das Ausgangssignal jedes PLC 270 wird an einen jeweiligen invertierenden Puffer (Verstärker) 274 und folglich an einen jeweiligen Eingang von PLC 276 gelegt. Die anderen Eingaben in PLC 276 kommen von ausgewählten der benachbarten Leiter 230b und 250 und (über Leitungen 280) von einem zugeordneten E/A-Bereich 40 (falls vorhanden). PLC 276 ist durch (nicht gezeigte, aber den FCEs 272 ähnliche) FCEs gesteuert, um an seinem Ausgang die Signale an jedwedem seiner Eingänge anzulegen. Das Ausgangssignal von PLC 276 wird über einen invertierenden Puffer 278 an Leiter 300 gelegt. Die oben erwähnte Zuordnung von E/A-Bereichen 40 und logischen Bereichen 20 ist wie folgt: obere Reihen 20 und 40, zweite Reihe 40 und vierte Reihe 20, dritte Reihe 40 und siebte Reihe 20, vierte Reihe 40 und zehnte Reihe 20 und fünfte Reihe 40 und zwölfte Reihe 20.
  • Die in 3 gezeigten Zusammenschaltungen sind vorzugsweise derartig, dass jeder der abgebildeten Leiter 230, 240, 250, 260 und 280, der einem logischen Bereich 20 benachbart ist, einen Weg aufweist, um zu mindestens einem Leiter 300 zur Linken oder Rechten jenes logischen Bereichs zu gelangen. Darüber hinaus weist jeder Leiter 230b und 250 einen Weg auf, um direkt über einen PLC 276, und ohne einen PLC 270 durchlaufen zu müssen, zu mindestens einem Leiter 300 zur Linken oder Rechten des logischen Bereichs zu gelangen. Diese letzt Punkt ist bedeutsam, weil die Leiter 230b und 250 auf Geschwindigkeit optimiert sind, und es ist für ein Signal schneller, nur über Elemente 276 und 278 zu einem Leiter 300 zu gelangen, statt auch Elemente 270 und 274 durchlaufen zu müssen.
  • 4 zeigt repräsentative Leiter, die zwischen horizontal benachbarten Bereichen 20 angeordnet sind, um Signale zu jenen Bereichen von den anderen Verbindungsressourcen der Vorrichtung zu bringen und um lokale Verbindungen unter den Unterbereichen 30 in jenen Bereichen bereitzustellen. Jede Gruppe derartiger Leiter umfasst 26 Leiter 300 (deren Signalquellen wie in 3 gezeigt sind), eine Abzweigung eines der benachbarten HNSL-Leiter 250 und zehn lokale Rückführungsleiter 310. Fünf dieser lokalen Rückführungsleiter 310 empfangen ihre Signale von fünf der Unterbereiche 30 im Bereich 20 zur Linken der abgebildeten Leitergruppe. Die anderen fünf dieser Leiter 310 empfangen ihre Signale von fünf der Unterbereiche 30 im Bereich 20 zur Rechten der abgebildeten Leitergruppe.
  • Jeder Unterbereich 30 weist vier Hauptdatensignaleingänge auf, die manchmal als Eingänge A–D bezeichnet werden. Beliebige Leiter 300 und 310 können als Quellen) der Signale, die an die A- und C-Eingänge der zehn Unterbereiche 30 zur Rechten jener Leiter gelegt werden, und als Quelle(n) der Signale verwendet werden, die an die B- und D-Eingänge der zehn Unterbereiche 30 zur Linken jener Leiter gelegt werden. Alternativ kann die abgebildete HNSL-Leiterabzweigung 250 als Quelle des Signals, das an den A-Eingang des obersten Unterbereichs zur Rechten gelegt wird, und als Quelle des Signals verwendet werden, das an den B-Eingang des obersten Unterbereichs zur Linken gelegt wird. Jedem Unterbereichseingang A–D sind vier Zwischenleiter 320 zugeordnet. Jeder der Leiter 250, 300 und 310, welche diese Leiter 320 schneiden, ist mit einem der vier Leiter 320 verbindbar, der jedem Eingang A–D zugeordnet ist. Diese Verbindungen werden durch PLCs 322 hergestellt, die in Vierergruppen durch FCEs 324 gesteuert werden. (Ausnahmen von den Vierergruppierungen werden für die Verbindungen zu HNSL-Abzweigung 250 gemacht.) Somit ist ein einzelnes FCE 324 programmiert, um vier Leiter 300/310 mit den vier Leitern 320 zu verbinden, die jedem Eingang A–D zugeordnet sind. Eine letzte Auswahl des Signals, das an jeden Eingang A–D gelegt wird, erfolgt durch Programmieren eines der vier FCEs 326, die jenem Eingang zugeordnet sind, um einen der PLCs 328 zu aktivieren, die keinem Eingang zugeordnet sind. (Alternativ kann das Signal auf der HNSL-Abzweigung 250 durch zweckentsprechendes Programmieren zugeordneter FCEs 324 und 326 an einen A- oder B-Eingang gelegt werden.)
  • Aus dem Vorstehenden ist zu sehen, dass HNSL-Signale zwei mögliche Wege in die logischen Bereiche 20 aufweisen, die durch die Leiter 300 usw. bedient werden, gezeigt in 4. Einer dieser Wege ist die relativ schnelle Führung durch Elemente 276 und 278 in 3. Der andere Weg ist für einen bestimmten HNSL-Leiter 250 und die obersten der Unterbereiche 30, die durch die Leiter 300 bedient werden, die in 4 gezeigt sind, die noch schnellere Führung über die Leiterabzweigung 250, die in 4 gezeigt ist, und die zugeordneten Elemente 322 und 328. Obgleich etwas langsamer, ist der erste Weg insofern mehrzweckfähiger, als er jedwedes benachbarte HNSL-Signal befähigt, zu mindestens großen Anzahlen der Eingänge in die logischen Bereiche 20 zu gelangen, die durch die Schaltungen bedient werden, die in 4 gezeigt sind. Der andere schnellere Weg ist insofern beschränkter, als er nur für eines der benachbarten HNSL-Signale funktioniert und nur Eingabe in einen Eingang eines Unterbereichs 30 in jedem der logischen Bereiche 20 gestattet, die durch die Schaltungen nach 4 bedient werden.
  • 5A und 5B (manchmal gemeinschaftlich als 5 bezeichnet) zeigen eine veranschaulichende Ausführungsform eines repräsentativen Unterbereichs 30. Der Kern von Unterbereich 30 ist eine Vier-Eingangs-Nachschlagetabelle (die Elemente 402, 404, 406 und 408 umfasst) und ein Register 480. Obgleich mit anderen Merkmalen angereichert, die später in dieser Spezifikation beschrieben werden, ist der grundlegende Betrieb von Unterbereich 30 der als Vier-Eingangs-Nachschlagetabelle, die programmierbar ist, um ein Nachschlagetabellen-Ausgangssignal (von PLC 408) zu erzeugen, das jedwede logische Kombination von Eingängen A–D sein kann. Das Nachschlagetabellen-Ausgangssignal kann unmittelbar über jedweden oder mehrere der PLCs 482 ausgegeben werden. Alternativ oder zusätzlich kann das Nachschlagetabellen-Ausgangssignal durch Register 480 registriert und dann über beliebige PLCs 482 ausgegeben werden, die nicht zum Ausgeben des nicht registrierten Nachschlagetabellen-Ausgangssignals in Gebrauch sind.
  • Betrachtet man den repräsentativen Unterbereich 30 nun eingehender, ist die erste Stufe der Vier-Eingangs-Nachschlagetabellen-Logik als vier Zwei-Eingangs-Nachschlagetabellen 402a402d aufgebaut. Jede der Nachschlagetabellen 402 empfängt Unterbereichseingänge A und B und ist programmierbar, um ein Ausgangssignal zu erzeugen, welches jedwede logische Kombination jener zwei Eingangssignale ist. Die zweite Stufe der Vier-Eingangs-Nachschlagetabellen-Logik als zwei PLCs 404a und 404b aufgebaut. Die PLCs (z. B. Multiplexer) 404 können durch (1) den C-Eingang in Unterbereich 30, (2) den D-Eingang in Unterbereich 30 oder (3) ein Carry-in-Signal gesteuert sein, das durch PLC 410b ausgewählt ist. Die Auswahl unter den Optionen (1), (2) und (3) erfolgt durch zweckentsprechendes Programmieren von PLC 414a. Option (3) wird ausgewählt, wenn der Unterbereich verwendet wird, um eine Stelle gewisser binärer arithmetischer Operationen auszuführen (z. B. schnelle Addierer-, Zähler-, Multiplizierer- und weite Paritätsfunktionen). Die Auswahl zwischen den Optionen (1) und (2) kann basierend auf Signalzeitverlaufs-Betrachtungen erfolgen, die in Verbindung mit den Elementen 406, 408 und 418 weiter diskutiert werden. Die Ausgangssignale von PLCs 404a und 404b werden durch invertierende Puffer 406a bzw. 406b gestärkt. (Obgleich Elemente 404 manchmal als PLCs bezeichnet werden, sind sie eher dynamisch als programmierbar gesteuert. Anders ausgedrückt, können Elemente 404, statt programmierbar durch FCEs gesteuert zu sein, um stets dieselben Signalauswahlen zu treffen, sobald Vorrichtung 10 programmiert worden ist, unterschiedliche Signalauswahlen zu unterschiedlichen Zeiten während normaler logischer Operation der Vorrichtung treffen, weil deren Steuersignal ein logisches Signal ist, das als Folge derartiger logischer Operation variieren kann. Nichtsdestotrotz werden der Einfachheit halber Elemente wie z. B. 404 hierin allgemein als PLCs bezeichnet. Zur größeren Genauigkeit können derartige dynamisch gesteuerten Elemente manchmal alternativ als logische Verbinder bezeichnet werden. Andere Beispiele von Elementen wie Elementen 404, die alternativ als PLCs oder logische Verbinder bezeichnet werden, sind Elemente 408, 410, 422, 442, 464 und 466.)
  • Die letzte Stufe der Vier-Eingangs-Nachschlagetabellen-Logik wird durch PLC (z. B. Multiplexer) 408 ausgeführt. PLC 408 kann durch (1) den C-Eingang in Unterbereich 30, (2) den D- Eingang in Unterbereich 30 oder (3) einen sogenannten „Direktverbindungs"-Eingang DVEIN von einem anderen benachbarten oder nahe gelegenen Unterbereich 30 gesteuert sein. Die Auswahl unter den gerade erwähnten Optionen (1), (2) und (3) erfolgt durch zweckentsprechendes Programmieren von PLC 418. Option (3) wird ausgewählt, wenn der abgebildete Unterbereich 30 eine Logikfunktion ausführt, die (wenigstens zum Teil) auf Empfangen eines Direktverbindungssignals von einem anderen benachbarten oder nahe gelegenen Unterbereich basiert. Diese Direktverbindungs-Verbindungen zwischen Unterbereichen können verwendet werden, um die Leistung von Logikfunktionen mit weitem Eingangslastfaktor oder dergleichen zu unterstützen, die erfordern, dass mehrere Unterbereiche in Reihe geschaltet werden, die manchmal als Kaskadenkette bezeichnet werden. (Zu zusätzlicher Diskussion von Kaskadenschaltungen zwischen Logikmodulen in programmierbaren Logikvorrichtungen siehe beispielsweise Cliff et al., US-Patentschrift 5,258,668 .) Die Wahl zwischen den Optionen (1) und (2) kann auf Signalzeitverlaufs-Betrachtungen basieren.
  • Die Signalzeitverlaufs-Betrachtungen, auf die in den zwei vorhergehenden Absätzen Bezug genommen wurde, können Führung des langsamsten der Datensignale (d. h. desjenigen, das als letztes ankommen soll), das durch die Vier-Eingangs-Nachschlagetabellen-Logik zu verarbeiten ist, zur letzten Stufe jener Logik (d. h. zum Steuereingang von PLC 408) umfassen. Auf diese Weise können die früher ankommenden Datensignale durch die ersten zwei Stufen der Nachschlagetabellen-Logik verarbeitet werden, um an den Ausgängen der Puffer 406a und 406b zwei bereits gepufferte Signale zu erzeugen. Dann, wenn das Datensignal, das als letztes ankommen soll, empfangen wird, ist PLC 408 unmittelbar in der Lage, das Pufferausgangssignal auszugeben, das durch den Zustand des Signals, das als letztes ankommen soll, ausgewählt wird. Durch Anlegen des Datensignals, das als letztes ankommen soll, an die letzte Stufe der Nachschlagetabellen-Logik kann das Nachschlagetabellen-Ausgangssignal wesentlich früher verfügbar gemacht werden, als wenn das Signal, das als letztes ankommen soll, an eine frühere Stufe der Nachschlagetabelle gelegt würde. Diese Beschleunigung der Nachschlagetabelle wird durch das Platzieren von Puffern 406 in Upstream-Richtung von PLC 408 weiter gesteigert, statt dass das endgültige Nachschlagetabellen-Ausgangssignal durch einen Puffer in Downstream-Richtung von PLC 408 verzögert wird.
  • Die oben beschriebenen Elemente 414a und 418 ermöglichen es, dass entweder Eingang C oder Eingang D als derjenige ausgewählt wird, der an die letzte Stufe der Nachschlagetabelle zu legen ist. Der Eingang C oder D, der somit nicht für die letzte Stufe ausgewählt ist, kann an die vorletzte Stufe der Nachschlagetabelle gelegt werden. Weil Eingang C von den Leitern 300/310 zur Linken von Unterbereich 30 kommt (siehe 4), während Eingang D von den Leitern 300/310 zur Rechten des Unterbereichs kommt, erleichtert die Fähigkeit, (mithilfe der PLCs 414a und 418) entweder Eingang C oder Eingang D als den Eingang, der als letztes ankommen soll, auszuwählen, die Führungseinschränkungen in der Vorrichtung. Somit kann das Signal, das als letztes ankommen soll, geführt werden, um über Leiter 300/310 anzukommen, die entweder zur Linken oder Rechten des Unterbereichs sind.
  • Weil das Direktverbindungssignal DVEIN auch eines sein kann, das relativ spät ankommen soll (z. B. in dem Fall, dass es nahe dem Downstream-Ende einer relativ langen Kaskadenkette erzeugt wird), ist dieses Signal auch unter jenen, die durch PLC 418 um Anlegen an die letzte Stufe der Nachschlagetabellen-Logik auswählbar ist. Dies wiederum unterstützt das Beschleunigen von Kaskadenketten.
  • Fortfahrend mit der Diskussion anderer Elemente in 5A, können, wenn Unterbereich 30 verwendet wird, um eine Stelle einer binären Addition, Zählen oder dergleichen auszuführen, Elemente 402a und 402b zum Erzeugen von zwei Präkursoren der Summe von Eingang A, Eingang B und eines Carry-in-Signals (von PLC 410b) programmiert werden. PLC 404a wird dann durch das Carry-in-Signal (über PLC 414a) gesteuert, um den zweckentsprechenden dieser zwei Präkursoren als Summenausgabesignal auszuwählen. PLC 408 wird gesteuert, um das Summenausgabesignal stets an die Schaltungen nach 5B weiterzuleiten. (Dieser Zustand von PLC 408 kann erreicht werden, indem der D-Eingang zum Unterbereich verwendet wird, um PLC 408 zu steuern, und indem alle zugeordneten D-Eingangselemente 328 (4) so programmiert werden, dass sie aus sind, was bewirkt, dass der D-Eingang standardmäßig auf high gesetzt wird.) Elemente 402c und 402d sind zum Erzeugen von zwei Präkursoren des Carry-outs programmiert, das sich aus dem Summieren von Eingang A, Eingang B und des Carry-in-Signals ergibt. Diese zwei Präkursoren werden jeweils durch Puffer 420a und 420b invertiert und parallel an die zwei Dateneingänge jedes der PLCs (z. B. der Multiplexer) 422a und 422b gelegt. Die PLCs 422a bzw. 422b wählen basierend auf den Signalen C0EIN und C1EIN, die an Unterbereich 30 gelegt sind, Präkursoren zum Ausgeben als C0AUS und C1AUS aus. Die Signale C0AUS und C1AUS jedes Unterbereichs 30 sind die Signale C0EIN und C1EIN des nächsten Unterbereichs 30 in der Transportkette. Somit werden zwei Transportsignale parallel als Teil von Schaltungen zum Beschleunigen von Transportketten ausgebreitet. Diese Schaltungen (welche die Generierung des Signals LABCINH zur Steuerung von PLC 410b umfassen) sind kein Teil der vorliegenden Erfindung und werden somit hierin nicht weiter beschrieben. Jedoch sind sie in Park et al., US-Patentschrift 6,359,468 , weiter beschrieben.
  • Elemente 430, 432, 434, 436, 438, 440, 442 und 444 sind als Teil von Schaltungen bereitgestellt, um die Leistung von Multiplikationsoperationen durch Unterbereich 30 zu erleichtern und zu beschleunigen. Diese Schaltungen (welche die Generierung des Signals LABCINV zur Steuerung von PLC 410a umfassen) sind ebenfalls kein Teil der vorliegenden Erfindung und werden somit hierin nicht weiter beschrieben. Sie sind jedoch in Pedersen et al., US-Patentschrift 6,323,680 , weiter beschrieben.
  • Die Elemente 450 und 452 sind Teil von Schaltungen zum Ermöglichen, dass Register 480 (5B) in einer Betriebsart verwendet wird, die „Einzelregister"-Betriebsart genannt wird. Die bedeutet, dass, wenn Register 480 nicht zum Registrieren des Nachschlagetabellen-Ausgangssignals von PLC 408 benötigt wird, das Register alternativ zum Registrieren von Eingang C oder Eingang D verwendet werden kann. Die C/D-Auswahl wird durch PLC 414b vorgenommen. PLC 450 ist programmiert, um entweder das Wahre oder das Komplement des ausgewählten Signals auszubreiten. Puffer 452 invertiert und verstärkt das ausgewählte Signal.
  • Jetzt übergehend zu dem Teil der repräsentativen Schaltungen von Unterbereich 30, der in 5B gezeigt ist, ermöglichen die Elemente 454 und 456, dass das Nachschlagetabellen-Ausgangssignal (von PLC 408 in 5A) als Direktverbindungsausgangssignal DVAUS des Unterbereichs ausgegeben wird. Das Signal DVAUS jedes Unterbereichs 30 ist das Signal DVEIN des nächsten Unterbereichs in einer Kaskadenkette oder Reihe von Unterbereichen. Element 454 ist ein invertierender Puffer für das Signal DVAUS, und Element 456 ist Teil der Pegelwiederherstellschaltungen für jenes Signal.
  • Die Elemente 460 und 462 sind Schaltungen zum Steuern der Zustände der PLCs 464 und 466 basierend auf der Programmierung von Elementen 460, dem logischen Zustand des Ausgangssignals von Puffer 452 (5A) und den logischen Zuständen der Signale ABTST, SYNLAD und SYNLOS. Das Signal ABTST ist ein vorrichtungsweites Signal zum Versetzen der Vorrichtung in eine Abtasttestbetriebsart, in der Register 480 und andere Register auf der Vorrichtung wirksam in Abtastketten verbunden sind, um deren Inhalte auszulesen und dadurch die Vorrichtung leichter auf ordnungsgemäßen Betrieb zu prüfen. Somit steuert, wenn das Signal ABTST festgestellt wird, Decodierlogik 462 die PLCs 464 und 466 so, dass das Signal ABTSTEIN an Register 480 gelegt wird. Das Signal ABTSTEIN jedes Unterbereichs 30 ist das Signal ABTSTAUS des vorhergehenden Unterbereichs oder anderer Registerschaltungen in einer Abtastkette. Das Ausgangssignal Q von Register 480 wird über den invertierenden Puffer 486 als Signal ABTSTAUS von Unterbereich 30 ausgegeben.
  • SYNLAD und SYNLOS sind Signale, die vorzugsweise auf bereichsweiter Basis für den Bereich 20 ausgewählt werden, der Unterbereich 30 umfasst. Diese Signale werden verwendet, um Decodierlogik 462 zu veranlassen, Signale anzulegen, die zum synchronen Laden oder synchronen Löschen von Register 480 geeignet sind. Beispielsweise kann VSS (Masse oder logische 0) über PLCs 464 und 466 mit dem D-Eingang von Register 480 verbunden werden, um synchrones Löschen des Registers zu bewirken. Andere Zustände der Eingänge in Logik 462 und die daraus folgenden Ausgänge aus jener Logik können Register 480 veranlassen, sein Ausgangssignal neu zu registrieren, das sogenannte „Direktsummenausgabe"-Signal DSA von Puffer 444 (5A) zu registrieren oder in Einzelregisterbetriebsart zu arbeiten, in dem es das Ausgangssignal von Puffer 452 (5A) registriert. Pederson, US-Patentschrift 5,835,998 zeigt ein Beispiel von Schaltungen des Typs, der für Elemente 460 und 462 verwendet werden kann, um Elemente wie 464, 466 und 480 (in Verbindung mit Elementen wie 490, 492, 494 und 496 (unten weiter beschrieben)) zu steuern.
  • Elemente 470, 472 und 474 ermöglichen es, dass eines der zwei Taktsignale TKT0 oder TKT1 als Taktsignal ausgewählt wird, das an den Takteingang von Register 480 gelegt wird. FCE 470 ist programmiert, um PLC 472 zu veranlassen, eines der zwei Taktsignale auszuwählen, das dann durch den invertierenden Puffer 474 um Anlegen an Register 480 invertiert wird.
  • Elemente 490496 sind programmierbar und anderweitig betreibbar, um Register 480 zu steuern, um verschiedene Voreinstellungs-, asynchrone Lade- und Löschoperationen vorzunehmen. Elemente 490 sind FCEs, Elemente 492 sind Inverter, Elemente 494a und 494b sind AND-Gatter, Elemente 494c und 494d sind OR-Gatter, Element 496a ist ein NOR-Gatter und Element 496b ist ein NAND-Gatter. Das Signal VES/ASYNLD ist ein Steuersignal für asynchrones Laden. Das Signal NLOS ist ein Löschsignal.
  • Jeder der PLCs 482a–c ist durch FCEs (nicht gezeigt) programmierbar, um entweder VSS (logische 0), das Q-Ausgangssignal von Register 480 oder das unregistrierte Nachschlagetabellen-Ausgangssignal von PLC 408 (5A) auszugeben. PLC 482d ist ähnlich, außer dass er statt VSS VCC (logische 1) ausgeben kann. Das Ausgangssignal von PLC 482a wird durch den invertierenden Puffer 484a an eine erste Ausgangsleitung AUS0 von Unterbereich 30 gelegt. Das Ausgangssignal von PLC 482b wird durch den invertierenden Puffer 484b an eine zweite Ausgangsleitung AUS1 von Unterbereich 30 gelegt. Das Ausgangssignal von PLC 482c wird durch den invertierenden Puffer 484c an eine lokale Ausgangsleitung von Unterbereich 30 gelegt. Das Ausgangssignal von PLC 482d wird durch invertierende Puffer 484d und 484d' an einen eingeschachtelten vertikalen („EV"-)Leiter 220 gelegt.
  • Die Ziele der Signale AUS0 und AUS1 werden unten in Verbindung mit 6 beschrieben. Das lokale Signal wird an einen der lokalen Rückführungsleiter 310 (4) zur Linken oder Rechten des Bereichs 20 gelegt, der Unterbereich 30 umfasst. Insbesondere (und wie bereits gesagt worden ist) werden die lokalen Ausgänge der Hälfte der Unterbereiche 30 in jedem Bereich 20 an jeweilige der Leiter 310 zur Linken jenes Bereiches gelegt, und die lokalen Ausgänge der anderen Hälfte der Unterbereiche in jedem Bereich werden an jeweilige der Leiter 310 zur Rechten jenes Bereiches gelegt. In den lokalen Ausgangssignalen etwas ähnlicher Weise verlaufen die EV-Ausgangsleitungen 220 der Hälfte der Unterbereiche 30 in jedem Bereich 20 von jenem Bereich aufwärts, und die EV-Ausgangsleitungen 220 der anderen Hälfte der Unterbereiche verlaufen von jenem Bereich abwärts.
  • 6 zeigt repräsentative Schaltungen zum Herstellen von Verbindungen von Unterbereichen 30 zu Verbindungsleitern der Vorrichtung sowie zwischen verschiedenen Typen von Verbindungsleitern (anderen als jenen, die in 4 gezeigt und somit bereits vollständig beschrieben sind). 6 kann charakterisiert werden als eine, die einen repräsentativen Block 500 von Treiberschaltungen zeigt. Es gibt einen derartigen Block von Treiberschaltungen, der jeder Gruppe von vier Unterbereichen 30 zugeordnet ist, die zwei Unterbereiche von jedem von zwei horizontal benachbarten Bereichen 20 umfasst.
  • Betrachtet man zuerst die verschiedenen Ausgangssignale des oberen Unterbereichs 30 zur Linken, wird das Signal AUS0 jenes Unterbereichs an einen Eingang von PLC 502 gelegt. (Man beachte, dass das Signal AUS0 auch an den Treiberblock zur Linken desjenigen gelegt wird, der in 6 gezeigt ist.) Die anderen Eingänge in PLC 502 sind (1) einer eingeschachtelter vertikaler Signale 220 von einem Unterbereich 30 in derselben Spalte von Bereichen 20, aber in der Reihe von Bereichen oberhalb oder unterhalb der Reihe, welche die in 6 gezeigten Unterbereiche umfasst, (2) das Direktsummenausgabesignal DSA vom selben Unterbereich 30 wie dem, welcher sein Signal AUS0 liefert, und (3) einer der ersten Hälfte der vertikalen Leiter 210b, die der Spalte von Treiberschaltungsblöcken 500 zugeordnet sind, die zum Teil in 6 gezeigt ist. PLC 502 ist (durch FCEs, die nicht in 6 gezeigt sind) programmierbar, um eines seiner vier Eingangssignale zum Anlegen an den invertierenden Puffer 504 auszuwählen. Das Ausgangssignal von Puffer 504 wird an einen der HNSL-Leiter 250 in der Gruppe derartiger Leiter gelegt, die in der Mitte auf der Spalte von Bereichen 20 liegt, welche die Unterbereiche umfasst, die in 6 zur Linken gezeigt sind. Insbesondere wird das Ausgangssignal von Puffer 504 an ein HNSL-Leitersegment 250 gelegt, das zur Linken von jener Spalte von Bereichen 20 verläuft. Das Ausgangssignal des invertierenden Puffers 562 (unten ausführlicher diskutiert) wird an ein Segment jenes selben HNSL-Leiters 250 gelegt, der zur Rechten von jener Spalte von Bereichen 20 verläuft. (Obgleich die links und rechts verlaufenden Segmente jedes HNSL-Leiters 250 eigentlich separate Leiter sind, die separat ansteuerbar sind, werden sie hierin manchmal gemeinsam als ein einziger HNSL-Leiter 250 bezeichnet.)
  • Das Ausgangssignal AUS des oberen linken Unterbereichs 30 in 6 wird an einen Eingang jedes der PLCs 510, 522, 530, 540, 550 und 560 gelegt. Die anderen Eingänge in PLC 560 sind dieselben wie die oben beschriebenen Eingänge (1)–(3) in PLC 502. PLC 560 ist programmierbar, jedwedes seiner vier Eingangssignale zum Anlegen an ein nach rechts verlaufendes Segment eines HNSL-Leiters 250 an den invertierenden Puffer 562 zu legen, wie im unmittelbar vorhergehenden Absatz beschrieben.
  • Das sogenannte lokale Ausgangssignal (LOCAL) des oberen linken Unterbereichs 30 in 6 wird an einen der benachbarten lokalen Rückführungsleiter 310 gelegt. Wie erwähnt worden ist, werden die lokalen Ausgangssignale der Hälfte der Unterbereiche 30 in jedem Bereich 20 an lokale Rückführungsleiter 310 zur Linken jenes Unterbereichs gelegt, und die lokalen Ausgangssignale der anderen Hälfte der Unterbereiche in jedem Bereich werden an lokale Rückführungsleiter 310 zur Rechten jenes Unterbereichs gelegt.
  • Das EV-Ausgangssignal des oberen linken Unterbereichs 30 in 6 wird an einen EV-Leiter 220 gelegt, der zur entsprechenden Position in der Reihe oberhalb der Reihe verläuft, die teilweise in 6 gezeigt ist.
  • Die Ziele der Ausgangssignale des unteren linken Unterbereichs 30 in 6 sind im Allgemeinen jenen ähnlich, die oben für den oberen linken Unterbereich beschrieben sind. Das Signal AUS0 ist eines der Eingänge in PLC 506. (Wiederum wird das Signal AUS0 auch an einen anderen Treiberblock 500 zur Linken gelegt) Die anderen Eingänge in PLC 506 sind (1) ein Signal von einem benachbarten schnellen globalen vertikalen Leiter 200b, (2) ein EV-Signal 220 und (3) das Direktsummenausgabesignal des unteren linken Unterbereichs 30. PLC 506 ist programmierbar, jedwedes seiner Eingangssignale zum Anlegen an ein anderes benachbartes, nach links verlaufendes HNSL-Segment 250 an den invertierenden Puffer 508 zu legen.
  • Das Signal AUS1 des unteren linken Bereichs 30 wird an einen Eingang jedes der PLCs 510, 522, 530, 540, 550 und 564 gelegt. Die anderen Eingänge in PLC 564 sind dieselben wie die oben beschriebenen Eingänge (1)–(3) in PLC 506, und der Ausgang von PLC 564 wird (über Puffer 566) an das nach rechts verlaufenden Segment desselben HNSL-Leiters 250 gelegt, der Puffer 508 ansteuert. Das lokale Ausgangssignal des unteren linken Unterbereichs 30 wird an einen benachbarten lokalen Rückführungsleiter 310 gelegt. Das EV-Ausgangssignal des unteren linken Unterbereichs 30 wird an einen EV-Leiter 220 gelegt, der zu einem entsprechenden Ort in einer benachbarten Reihe unterhalb der Reihe verläuft, welche die in 6 gezeigten Schaltungen umfasst.
  • Das Signal AUS0 des in 6 gezeigten oberen rechten Unterbereichs 30 wird an einen Eingang jedes der PLCs 510, 522, 530, 540 und 550 gelegt. Dieses Signal wird auch an einen anderen ähnlichen Treiberblock 500 zur Rechten desjenigen gelegt, der in 6 gezeigt ist. Die Ausgangssignale AUS1 und DSA des oberen rechten Unterbereichs 30 werden auch an den Treiberblock zur Rechten gelegt. Das lokale Ausgangssignal des oberen rechten Unterbereichs 30 wird an einen benachbarten lokalen Rückführungsleiter 310 gelegt. Das EV-Ausgangssignal des oberen rechten Unterbereichs 30 wird an einen aufwärts verlaufenden EV-Leiter 220 gelegt.
  • Die Ziele der Ausgangssignale des unteren rechten Unterbereichs 30 sind in Allgemeinen ähnlich. Das Signal AUS0 wird an einen Eingang jedes der PLCs 510, 522, 530, 540 und 550 und an den Treiberblock 500 zur Rechten dessen gelegt, was in 6 gezeigt ist. Die Signale AUS1 und DSA werden auch an den Treiberblock 500 zur Rechten gelegt. Das lokale Ausgangssignal wird an einen benachbarten lokalen Rückführungsleiter 310 gelegt. Und das EV-Ausgangssignal wird an einen EV-Leiter 220 gelegt, der nach unten zu einer ähnlichen Position in der benachbarten Reihe unterhalb der Reihe verläuft, die zum Teil in 6 gezeigt ist.
  • PLC 510 ist (durch FCEs, die nicht in gezeigt sind) programmierbar, um jedwedes seiner Eingangssignale zum Anlegen an Treiber 512 auszuwählen. Das Ausgangssignal von Treiber 512 wird an PLC 514 (z. B. einen Demultiplexer) gelegt, der durch FCEs (nicht gezeigt) programmierbar ist, um sein Eingangssignal an jedweden seiner Ausgänge zu legen. Ein Ausgang von PLC 514 ist mit einem benachbarten schnellen globalen vertikalen Leiter 200b verbunden. Der andere Ausgang von PLC 514 ist mit einem benachbarten schnellen halben vertikalen Leiter 210b verbunden. Aus dem Vorstehenden ist zu sehen, dass Elemente 510, 512 und 514 es möglich machen, jedwedes der AUS1-Signale des Unterbereichs 30 zur Linken oder der AUS0-Signale des Unterbereichs 30 zur Rechten mit einem eines benachbarten schnellen globalen vertikalen Leiters 200b oder eines benachbarten schnellen halben vertikalen Leiters 210b zu verbinden. Somit ermöglichen es Elemente 510, 512 und 514 jedwedem der vier Unterbereiche 30, die durch den Treiberblock 500 bedient werden, der in 6 gezeigt ist, entweder einen schnellen globalen vertikalen Leiter 200b oder einen schnellen halben vertikalen Leiter 210b anzusteuern.
  • Die Eingänge in PLC 522, die nicht bereits beschrieben worden sind, sind wie folgt: (1) ein Signal von einem benachbarter schneller globaler vertikaler Leiter 200b, (2) ein Signal von einem benachbarter schneller halber vertikaler Leiter 210b, (3) zwei Signale eingeschachtelter vertikaler Leiter 220 (von denen eines von der Reihe oberhalb der Reihe kommt, die zum Teil in 6 gezeigt ist, und von denen das andere von der Reihe unterhalb der Reihe kommt, die zum Teil in 6 gezeigt ist) und (4) ein Signal von einem von vier benachbarten globalen vertikalen Leitern 200a (wobei die Auswahl jenes einen von vier Signalen durch PLC 520 erfolgt). Wie andere PLCs auf Vorrichtung 10 ist PLC 522 durch FCEs (nicht gezeigt) programmierbar gesteuert, um jedweden seiner Eingänge zum Anlegen an Tri-State-Treiber 524 auszuwählen. Tri-State-Treiber 524 ist durch FCE 526 programmierbar derart gesteuert, dass er entweder aus (hohe Ausgangsimpedanz) oder ein ist (das angelegte Dateneingangssignal weiterleiten und verstärken kann). Das Ausgangssignal von Tri-State-Treiber 524 wird an einen benachbarten der schnellen globalen horizontalen Leiter 230b gelegt. Aus dem Vorstehenden ist zu sehen, dass es die Elemente 522, 524 und 526 ermöglichen, dass ein Ausgangssignal beliebiger Unterbereiche 30, die durch den Treiberblock 500 bedient werden, der in 6 gezeigt ist, auf einen der benachbarten schnellen globalen horizontalen Leiter 230b gesteuert wird. Alternativ ermöglichen es die Elemente 522, 524 und 526, dass ein Signal von entweder einem benachbarten schnellen globalen vertikalen oder schnellen halben vertikalen Leiter 200b oder 210b umschwenkt und auf den oben erwähnten schnellen globalen horizontalen Leiter 230b gesteuert wird. Als noch eine andere Alternative ermöglichen es die Elemente 522, 524 und 526, dass eines von zwei Signalen eingeschachtelter vertikaler Leiter 220 auf den oben erwähnten schnellen globalen horizontalen Leiter 230b gesteuert wird. Und als eine letzte Alternative ermöglichen es die Elemente 520, 522, 524 und 526, dass jedwedes von vier benachbarten globalen Signalen vertikaler Leiter 200a umschwenkt und auf den oben erwähnten schnellen globalen horizontalen Leiter 230b gesteuert wird.
  • Betrachtet man nun die Eingänge in PLC 530, die nicht bereits diskutiert worden sind, werden zwei der vier Signale, die an PLC 520 angelegt werden, auch an PLC 530 angelegt, wie es auch Signale von zwei der benachbarten halben vertikalen Leiter 210a werden. Eines der verschachtelten Signale vertikaler Leiter, die an PLC 522 gelegt werden, wird auch an PLC 530 gelegt. Wie andere PLCs auf Vorrichtung 10 ist PLC 530 durch FCEs (nicht gezeigt) programmierbar gesteuert, um jedweden seiner Eingänge zur Verstärkung durch jene Vorrichtung an Treiber 532 zu legen. Das Ausgangssignal von Treiber 532 wird an PLC 534 (z. B. einen Demultiplexer) gelegt. PLC 534 ist durch FCEs (nicht gezeigt) programmierbar gesteuert, um sein Eingangssignal an jedwede seiner Ausgangsleitungen zu legen. Zwei der Ausgangsleitungen von PLC 534 sind jeweils mit zwei der benachbarten globalen horizontalen Leiter 230a verbunden. Die dritte Ausgangsleitung von PLC 534 ist mit einem benachbarten halben vertikalen Leiter 210a verbunden. Aus dem Vorstehenden ist zu sehen, dass die Elemente 530, 532 und 534 verwendet werden können, um ein Ausgangssignal jedweder der vier Unterbereiche 30, die in 6 gezeigt sind, heraus auf benachbarte der regulären (Normalgeschwindigkeits-) horizontalen und vertikalen Leiter 230a und 210a zu steuern. Alternativ können die Elements 530, 532 und 534 verwendet werden, um ein Signal von benachbarten regulären (Normalgeschwindigkeits-)Leitern 200a und 210a oder von einem eingeschachtelten vertikalen Leiter 220 auf einen regulären horizontalen oder vertikalen Leiter 230a oder 210a zu steuern. Somit können die Elemente 530, 532 und 534 beispielsweise verwendet werden, um ein Signal in die Lage zu versetzen, von einem regulären vertikalen Leiter auf einen regulären horizontalen Leiter umzuschwenken.
  • Die Eingänge in und Ausgänge aus den Elementen 540, 542 und 544 sind im Allgemeinen jenen ähnlich, die oben für die Elemente 530, 532 und 534 beschrieben sind. Die einzigen Unterschiede sind, dass (1) ein unterschiedlicher der Leiter 220 mit PLC 540 statt mit PLC 530 verbunden ist, (2) nur einer der Leiter 210a mit PLC 540 verbunden ist und (3) der dritte Ausgang von PLC 544 an einen benachbarten globalen vertikalen Leiter 200a statt an einen halben vertikalen Leiter 210a gelegt ist. Nichtsdestotrotz stellen die Elemente 540, 542 und 544 mehr desselben grundlegenden Typs von Führungsfähigkeit bereit, als die Elemente 530, 532 und 534 bereitstellen.
  • Die Eingänge in PLCs 550, die nicht bereits betrachtet worden sind, sind Signale von vier der benachbarten Leiter 200a und von drei der benachbarten Leiter 210a. Wie andere ähnliche PLCs auf Vorrichtung 10 ist PLC 550 (durch FCEs, die nicht in gezeigt sind) programmierbar, um jedwedes der angelegten Signale zum Anlegen an Treiber 552 auszuwählen. Treiber 552 verstärkt das Signal, das er empfängt, und legt das verstärkte Signal an einen der benachbarten direkten horizontalen Leiter 240. Somit ermöglichen es Elemente 550 und 552 beliebigen Unterbereichen 30, die in 6 gezeigt sind, oder jedweden verschiedener benachbarter vertikaler Leiter 200a oder 210a, einen benachbarten direkten horizontalen Leiter 240 anzusteuern. Beispielsweise können die Elemente 550 und 552 verwendet werden, um ein Signal in die Lage zu versetzen, von einem vertikalen Leiter 200a oder 210a auf einen horizontalen Leiter 240 umzuschwenken.
  • Aus dem Vorstehenden ist zu sehen, dass eine programmierbare Logikvorrichtung 10, die gemäß dieser Erfindung aufgebaut ist, mindestens einige Verbindungsressourcen aufweist, die in sowohl einer Normalgeschwindigkeitsform als auch einer („schnellen") Form höherer Geschwindigkeit bereitgestellt sind. Falls bereitgestellt, sind beide Formen vorzugsweise architektonisch einander ähnlich. „Architektonisch ähnlich" bedeutet, dass im Allgemeinen bei Verwendung einer der beiden Formen der Verbindungsressourcen derselbe Typ von Führung verfügbar ist. Ein Signal kann von derselben Quelle zum selben Ziel über einen Pfad gelangen, der bei Verwendung einer der beiden Formen der Verbindungsressourcen grundsätzlich ähnlich ist. Jedoch bewegt sich das Signal über die schnelle Form der Ressource wesentlich schneller als über die Normalgeschwindigkeitsform der Ressource fort.
  • Die schnelle Form einer Verbindungsressource kann auf jedwedem von verschiedenen Wegen schneller gemacht werden. Beispielsweise können schnelle Leiter breiter und weiter voneinander beabstandet als Normalgeschwindigkeitsleiter hergestellt sein. Insbesondere können schnelle Leiter etwa zwei- oder dreimal breiter als Normalgeschwindigkeitsleiter hergestellt sein. Alternativ oder zusätzlich kann der Abstand zwischen schnellen Leitern mit etwa zwei- oder dreimal dem Abstand zwischen Normalgeschwindigkeitsleitern hergestellt sein. Auch kann es vorteilhaft sein, die dickeren oberen Metallschichten für die schnellen Leiter zu verwenden, während die reguläre Führung in den dünneren unteren Metallschichten verbleibt. Mithilfe dieser Techniken kann die RC-Zeitkonstante für schnelle Leiter auf etwa 20% der RC-Zeitkonstante für Normalgeschwindigkeitsleiter verringert werden. Die Treiber (z. B. 512 und 524) und Passgates, die schnelle Leiter bedienen, können größer und stärker (z. B. als Normalgeschwindigkeitstreiber 532, 542, 552) hergestellt sein. Beispielsweise können schnelle Treiber Transistorgrößen von in etwa der doppelten Normalgeschwindigkeitstreiber-Transistorgröße aufweisen. Darüber hinaus ist, während ein Normalgeschwindigkeitstreiber unter Verwendung eines Treibers mit einem Ausgangsdemultiplexer implementiert sein kann, ein architektonisch entsprechender schneller Treiber vorzugsweise als einzelner tristatefähiger Treiber implementiert, um bessere Geschwindigkeit zu erreichen. Die PLCs (z. B. Multiplexer 510 und Demultiplexer 514), die mit schnellen Leitern verbunden sind, können mit weniger Eingängen (für Multiplexer) oder weniger Ausgängen (für Demultiplexer) als die entsprechenden Komponenten (z. B. 530 und 534) hergestellt sein, die mit Normalgeschwindigkeitsleitern verbunden sind. Schnelle Leiter können weniger Abgriffe und daher geringere Belastung als entsprechende Normalgeschwindigkeitsleiter aufweisen. Jedwede oder alle dieser Techniken können verwendet werden, um die schnellen Verbindungsressourcen wesentlich schneller als die ansonsten architektonisch ähnlichen Normalgeschwindigkeitsressourcen zu machen. Beispielsweise ist es eine Konstruktionsaufgabe, die in Vorrichtung 10 gemäß dieser Erfindung gelöst werden kann, die schnellen Verbindungsressourcen aufzuweisen, die fähig sind, wenigstens am in etwa doppelt so schnellen Bereitstellen im Wesentlichen jedweder Verbindung (besonders jedweder relativ langen Verbindung) mitzuwirken, als jene selbe Verbindung allein durch die Normalgeschwindigkeits-Verbindungsressourcen hergestellt werden kann.
  • Ein spezifisches Beispiel architektonisch ähnlicher Normalgeschwindigkeits- und schneller Verbindungsressourcen in Vorrichtung 10 ist wie folgt: Um ein Signal von einem ersten Unterbereich 30 in einer ersten Reihe und Spalte von Bereichen 20 zu einem zweiten Unterbereich 30 in einer zweiten entfernten Reihe und zweiten entfernten Spalte von Bereichen 20 über Normalgeschwindigkeits-Verbindungsressourcen zu übertragen, verwende man Normalgeschwindigkeitselemente 540, 542 und 544, um vom ersten Unterbereich zu einem benachbarten vertikalen Normalgeschwindigkeitsleiter 200a zu gelangen. Man verwende den Normalgeschwindigkeitsleiter 200a, um von der Reihe des ersten Unterbereichs 30 zur Reihe des zweiten Unterbereichs 30 zu gelangen. In der Zielreihe verwende man Normalgeschwindigkeitselemente 530, 532 und 534, um vom oben erwähnten vertikalen Leiter 200a zu einem horizontalen Normalgeschwindigkeitsleiter 230a zu gelangen. An der Zielspalte verwende man Normalgeschwindigkeitselemente 270, 274 usw., um in die Eingangsschaltungen 300/320 des Zielunterbereichs 30 zu gelangen. Im Gegensatz dazu verwende man, um dieselbe Verbindung über die schnellen Verbindungsressourcen herzustellen, schnelle Elemente 510, 512 und 514, um das Ausgangssignal des ersten Unterbereichs 30 an einen benachbarten schnellen vertikalen Leiter 200b oder 210b zu legen. An der Zielreihe verwende man schnelle Elemente 522 und 524, um das Signal vom schnellen vertikalen Leiter auf einen schnellen horizontalen Leiter 230b zu schwenken. An der Zielspalte verwende man schnelle Elemente 276, um das Signal vom schnellen horizontalen Leiter 230b in die Eingangsschaltungen 300/320 des Zielunterbereichs 30 gelangen zu lassen.
  • Das Vorstehende macht es offensichtlich, dass zusätzlich zu den schnellen Leitern, die durch Bezugszeichen mit dem Nachsatz „b" angegeben sind, die schnellen Verbindungsressourcen von Vorrichtung 10 PLCs, Treiber, usw. umfassen, die primär jenen schnellen Leitern dienen. Beispiele umfassen PLCs 510, 514, 522 und 276 und Treiber 512, 524 und 278. Beispiele architektonisch ähnlicher Normalgeschwindigkeits-PLCs und -treiber (die primär Normalgeschwindigkeitsleitern dienen) sind 530, 532, 534, 540, 542, 544, 550, 552, 270 und 274.
  • Zusätzlich zur Bereitstellung gewisser Verbindungsressourcen in architektonisch ähnlichen schnellen und Normalgeschwindigkeitsformen umfasst Vorrichtung 10 andere Verbindungsressourcen, welche die Gesamtgeschwindigkeit der Vorrichtung steigern helfen. Ein Beispiel dieser Ressourcen sind HNSL-Leiter 250 (auch manchmal als Hochgeschwindigkeitsbereichsverbindungsleiter bezeichnet) und die zugeordneten PLCs 502, 506, 560, 564 und Treiber 504, 508, 562 und 566, die jene Leiter ansteuern. Leiter 250 sind schnell, weil sie relativ kurz sind und daher wenige Abgriffe aufweisen. Die PLCs und die Treiber, die sie ansteuern, können schnell gemacht werden (z. B. aufgrund dessen, dass die PLCs relativ wenige Eingänge aufweisen und die Treiber relativ groß und stark hergestellt sind).
  • Ein anderes Beispiel von Verbindungsressourcen, die auf Vorrichtung 10 bereitgestellt sind, um die Geschwindigkeit der Vorrichtung zu erhöhen, sind EV-Leiter 220 (auch manchmal als Überbrückungsverbindungsleiter bezeichnet). Die Leiter stellen relativ direkte und kurze Verbindungen zwischen benachbarten oder nahe gelegenen Reihen von Bereichen 20 bereit. Sie können durch relativ starke Treiber 484 angesteuert werden. Wo sie verwendet werden können, umgehen sie die Notwendigkeit zur Verwendung längerer und daher langsamerer vertikaler Mehrzweck-Verbindungsleiter 200/210, um von einer Reihe zu einer anderen zu gelangen.
  • 7A zeigt detaillierter Teile einer veranschaulichenden Ausführungsform eines Sekundärsignalleiterressourcenbereichs 120 und diesbezüglicher Schaltungen. (Zusätzliche Elemente, die in den Schaltungen nach 7A vorhanden sind, sind in 7B gezeigt.) Vier Leiter 610 verlaufen vertikal entlang im Wesentlichen der ganzen vertikalen Ausdehnung von Vorrichtung 10. Jeder der Leiter 610 überträgt ein jeweiliges von vier Taktsignalen von einem jeweiligen von vier zweckbestimmten Taktsignaleingangspins 612-1 bis 612-4, die sich vorzugsweise nahe der Mitte von Vorrichtung 10 befinden, um den Taktsignallaufzeitunterschied überall in der Vorrichtung verringern zu helfen. Die Taktsignale auf Leitern 610 werden durch abzweigende horizontale Taktleiter 620, die jeder Reihe benachbart sind, horizontal auf jede Reihe von Bereichen 20, 40 usw. verteilt. Leiter 620 sind unter den Leitern, die vorher (z. B. in 3) durch das Bezugszeichen 260 identifiziert wurden. Die Signale auf Leitern 620 werden an die benachbarten (und daher zugeordneten) logischen Bereiche 20 oder E/A-Zellen 630 gelegt.
  • Sechs zusätzliche Leiter 640 verlaufen vertikal entlang im Wesentlichen der ganzen vertikalen Ausdehnung von Vorrichtung 10. Jeder der Leiter 640 überträgt ein jeweiliges von sechs sogenannten schnellen Signalen. Jedes dieser schnellen Signale kann von entweder einem jeweiligen von sechs zweckbestimmten Eingangspins 642-1 bis 642-6, die sich nahe der Mitte von Vorrichtung 10 befinden, oder von der Logik ausgewählter logischer Bereiche 20-1/20-2 kommen, die sich ebenfalls nahe der Mitte von -Vorrichtung 10 befinden. Außer dass sie Extra-Ausgangsleitungen zum Zuführen der oben erwähnten schnellen Signale aufweisen, können die logischen Bereiche 20-1 und 20-2 den anderen logischen Bereichen 20 auf Vorrichtung 10 ähnlich sein. Ein PLC 644 ist jedem Eingangspin 642 zum programmierbaren Auswählen entweder des Eingangspinsignals oder eines Signals eines logischen Bereiches 20-1 oder 20-2 als schnelles Signal zugeordnet. Das Ausgangssignal jedes PLCs 644 wird über einen zugeordneten Puffer 646 an einen jeweiligen der Leiter 640 gelegt. Das Ausgangssignal jedes PLCs 644 wird auch an einen jeweiligen von sechs horizontalen schnellen Leitern 650, die der Reihe zugeordnet sind, welche die Bereiche 20-1 und 20-2 umfasst, und einen jeweiligen von sechs ähnlichen horizontalen schnellen Leitern 650 gelegt, die der E/A-Reihe 40 zugeordnet sind, die der Reihe logischer Bereiche zugeordnet ist, welche die Bereiche 20-1 und 20-2 umfasst. (Wie früher in dieser Spezifikation angemerkt, ist die vollständige Zuordnung von E/A-Reihen 40 und Reihen logischer Bereiche, die gerade für zwei derartige Reihen erwähnt worden ist, wie folgt (siehe 1): (1) oberste E/A-Reihe 40 und oberste Reihe logischer Bereiche, (2) zweite E/A-Reihe 40 von oben und vierte Reihe logischer Bereiche von oben, (3) dritte E/A-Reihe 40 von oben und siebte Reihe logischer Bereiche von oben, (4) vierte E/A-Reihe 40 von oben und zehnte Reihe logischer Bereiche von oben und (5) unterste E/A-Reihe 40 und unterste Reihe logischer Bereiche.) Andere Reihen logischer Bereiche und E/A-Reihen als jene, die im vorhergehenden Absatz unter Bezug auf Bereiche 20-1 und 20-2 beschrieben sind, weisen ebenfalls zugeordnete horizontale schnelle Leiter 650 auf. Bei jeder jener anderen Reihe logischer Bereiche kann das Signal auf jedem der zugeordneten Leiter 650 von entweder einem jeweiligen der Leiter 640 oder einem logischen Bereich 20 in jener Reihe und dem Bereich 120 benachbart kommen. PLCs 648 sind zum Treffen dieser weiteren Auswahlen schneller Signale bereitgestellt. Bei jeder anderen E/A-Reihe 40 als derjenigen, die im vorhergehenden Absatz erwähnt wurden, sind die Signale auf den zugeordneten Leitern 650 dieselben wie die Signale auf den Leitern 650, die der Reihe logischer Bereiche zugeordnet sind, die jener E/A-Reihe zugeordnet ist.
  • Leiter 650 sind ebenfalls unter den Leitern, die vorher (z. B. in 3) durch Bezugszeichen 260 identifiziert wurden. Die Signale auf den Leitern 650, die jeder Reihe logischer Bereiche oder E/A-Reihe zugeordnet sind, werden an die logischen Bereiche 20 oder E/A-Zellen 630 in jener Reihe gelegt.
  • Aus dem Vorstehenden ist zu sehen, dass jedes Signal eines schnellen Leiters 650, das jeder Reihe logischer Bereiche 20 (und jedweder E/A-Reihe 40, die jener Reihe logischer Bereiche zugeordnet ist) zugeordnet ist, entweder lokal (durch einen der logischen Bereiche 20 nahe der Mitte der Reihe) oder globaler (entweder durch einen der logischen Bereiche 20-1/20-2 oder von einem Eingangspin 642) generiert werden kann. Das Ermöglichen, dass die schnellen Leiter 640/650 durch entweder Eingangspins 642 oder logische Bereiche 20 angesteuert werden, er möglicht es, dass einige der Sekundärsignale mit niedrigem Laufzeitunterschied zusätzlich zu Eingangspins durch intern generierte Logik angesteuert werden. Das Ermöglichen, dass jeder schnelle Leiter 640/650 vorzugsweise durch genau einen Eingangspin oder genau einen speziellen logischen Bereich angesteuert wird, verringert die Menge an Führung, die erforderlich ist, um ein Ausgangssignal eines logischen Bereichs oder ein Eingangspinsignal auf das globale Sekundärsignalleiternetzwerk zu bekommen. Dafür zu sorgen, dass die globalen Taktsignale unmittelbar durch zweckbestimmte Eingangspins 612 angesteuert werden, macht diese Signale so schnell wie möglich. Das Wählen, dass alle zweckbestimmten Quellen 610/620/20-1/20-2 usw. nahe der Mitte der Vorrichtung sind, verringert den Betrag des Signallaufzeitunterschieds über der Vorrichtung. Die Möglichkeit lokalen Gewinnens der Signale für schnelle Leiter 650, die jeder Reihe logischer Bereiche 20 zugeordnet sind, ermöglicht es, dass Vorrichtung 10 viel mehr Sekundärsignale aufweist, um damit zu arbeiten (d. h. zehn globale Signale plus bis zu N·6 lokale Signale, wobei N die Anzahl von Reihen logischer Bereiche ist). Darüber hinaus werden die lokalen Sekundärsignale, die durch den/die logischen Bereich(e) innerhalb der Reihe gewonnen werden, kleinere Verzögerung als jene aufweisen, die global von der mittigen Säule angesteuert werden müssen.
  • Zusätzlich zu den oben beschriebenen Leitern 620 und 650 weist jede Reihe logischer Bereiche 20 oder von E/A-Zellen 630 zwei lokale schnelle Leiter 660 auf, die horizontal entlang ihrer Länge verlaufen. Leiter 660 sind ebenfalls unter den Leitern, die vorher (z. B. in 3) durch Bezugszeichen 260 identifiziert wurden. 7B zeigt die Signalquellen für diese Leiter. Bei jeder E/A-Zellenreihe und der Reihe logischer Bereiche, die jener E/A-Zellenreihe zugeordnet ist, können die Signale auf den zugeordneten Leitern 660 von entweder einem Eingangspin 662 nahe der Mitte jener E/A-Zellenreihe oder einem logischen Bereich 20 nahe der Mitte jener Reihe logischer Bereiche kommen. PLCs 664 wählen zwischen diesen Signalen von Eingangspins und logischen Bereichen aus. Bei jeder Reihe logischer Bereiche, die keiner E/A-Zellenreihe zugeordnet ist, können die Signale von Leitern 660 von logischen Bereichen 20 nahe der Mitte jener Reihe kommen.
  • Modifikationen an den Schaltungen, die in 7 gezeigt sind, könnten das Aufweisen lokaler Reiheneingangspins (wie Eingangspins 662) in jeder Reihe logischer Bereiche, welche die lokalen Sekundärsignale 650 und/oder 660 für jene Reihe ansteuern können, als Alternative zum Ansteuern jener Leiter von logischen Bereichen 20 in der Reihe umfassen. Eine andere Möglich keit ist es, dass die lokalen Sekundärsignale 650/660 feiner granuliert oder gröber granuliert sind (z. B., indem diese Signale nach Halbreihen gruppiert sind, oder durch Gruppieren der lokalen Sekundärsignale in Quadranten von Vorrichtung 10 statt in einzelnen Reihen).
  • 7 zeigt auch die Art und Weise, in der jede E/A-Reihe 40 Sekundärsignale 650/660 mit der Reihe logischer Bereiche 20 gemeinsam nutzt, die jener E/A-Reihe zugeordnet ist. Somit weist die repräsentative E/A-Reihe 40, die nahe dem oberen Ende von 7 gezeigt ist, dieselben Sekundärsignale 650/660 wie die zugeordnete Reihe logischer Bereiche unmittelbar unterhalb jener E/A-Reihe auf. In ähnlicher Weise weist die andere E/A-Reihe 40, die nahe dem unteren Ende von 7 gezeigt ist, dieselben Sekundärsignale 650/660 wie die zugeordnete Reihe logischer Bereiche unmittelbar unterhalb jener E/A-Reihe auf.
  • 7 zeigt auch einen anderen Aspekt der Zuordnung jeder E/A-Reihe 40 zu einer jeweiligen Reihe logischer Bereiche 20. Dies bezieht sich auf die Verwendung der Bereichszuführungsleiter 300 und der lokalen Rückführungsleiter 310 in der Reihe logischer Bereiche, die jeder E/A-Reihe 40 zugeordnet ist, als zusätzliche Eingangssignalquellen für die E/A-Zellen 630 in jener E/A-Reihe 40. Beispielsweise sind die Leiter 300/310, die dem logischen Bereich 20-1 in 7 zugeordnet sind, bis zu den E/A-Zellen 630 oberhalb jenes logischen Bereichs verlängert, sodass die Signale auf jenen Leitern 300/310 als zusätzliche Eingänge in jene E/A-Zelle verwendet werden können. Als anderes Beispiel sind die Leiter 300/310, die dem logischen Bereich 20 zugeordnet sind, der nahe der oberen rechten Ecke in 7 gezeigt ist, bis zu den E/A-Zellen 630 oberhalb jenes logischen Bereichs verlängert, sodass die Signale auf jenen Leitern 300/310 als zusätzliche Eingänge in jene E/A-Zelle verwendet werden können. 8, die als Nächstes beschrieben wird, zeigt mehr Einzelheiten bezüglich des Aufbaus einer bevorzugten Ausführungsform einer repräsentativen E/A-Zelle 630 einschließlich der Art und Weise, in der die verschiedenen Signale verwendet werden können, die an eine derartige Zelle gelegt sind.
  • Eine veranschaulichende Ausführungsform einer typischen E/A-Zelle 630 ist in 8 detaillierter gezeigt. E/A-Zelle 630 umfasst E/A-Pin 710, Eingangsregister 740, Ausgangsregister 720 und Tri-State-Steuersignalregister (oder Ausgangsaktivierungsregister) 730. Jedes der Register 720, 730 und 740 weist einen Dateneingang D, einen Takteingang, einen Taktaktivierungseingang AK, einen Lösch- und Voreinstellungseingang L/V und einen Datenausgang Q auf. Außer beim Dateneingang von Eingangsregister 740 (der von E/A-Pin 710 kommt) sind alle Ein gänge in Register 720, 730 und 740 in verschiedener Weise aus den Signalen auf den vier Takteingängen 620 in die E/A-Zelle, den sechs Eingängen schneller Leiter 650 in die E/A-Zelle und 36 Leitern 300/310 auswählbar, die für die E/A-Zelle verfügbar sind. Kreise 754 zeigen die verfügbare Verbindungsfähigkeit zwischen den verschiedenen Leitern 620/650/300/310 und den Registereingängen an. Jeder der PLCs 756 trifft eine Auswahl eines Signals unter den mehreren verbindbaren Signalen. Programmierbare Invertierelemente 758 (die wie Schaltungen 450 in 5A sein können) ermöglichen es, dass jedes Ausgangssignal eines PLCs 756 invertiert oder nicht invertiert wird, wie durch den Benutzer der Vorrichtung gewünscht.
  • Wie es aus 7 und der früheren Diskussion jener FIG. offensichtlich ist, sind die Leiter 300/310, die in 8 gezeigt sind, Bereichszuführungsleiter 300 und lokale Rückführungsleiter 310 von der Reihe logischer Bereiche 20, die der E/A-Reihe 40 zugeordnet ist, welche die E/A-Zelle 630 umfasst, die in 8 gezeigt ist. (Die mehreren E/A-Zellen in jeder Reihe 40 weisen typischerweise Leiter 300/310 von unterschiedlichen der Bereiche 20 in der zugeordneten Reihe logischer Bereiche auf.) Die Leiter 620 und 650 in 8 sind Abzweigungen der in 7 gezeigten horizontalen Leiter 620, die der E/A-Reihe zugeordnet sind, welche die E/A-Zelle 630 nach 8 umfasst.
  • Dasselbe Signal wird verwendet, um sowohl Ausgangsregister 720 als auch Ausgangsaktivierungsregister 730 zu takten. Alle Register 720, 730 und 740 weisen dasselbe Lösch- und Voreinstellungseingangssignal auf. Jedes Register ist programmierbar, um in Reaktion auf das Lösch- und Voreinstellungseingangssignal entweder zu löschen oder voreinzustellen.
  • Das Datenausgangssignal Q von Ausgangsregister 720 wird an einen Eingang von PLC 722 gelegt. Der andere Eingang in PLC 722 ist der Dateneingang in Register 720. Dementsprechend kann PLC 722 verwendet werden, um an Tri-State-Treiber 724 ein Ausgangssignal von Vorrichtung 10 zu legen, das entweder durch Register 720 registriert wurden ist oder das jenes Register umgangen hat. Das Datenausgangssignal Q von Ausgangsaktivierungsregister 730 wird an einen Eingang von PLC 732 gelegt. Der andere Eingang in PLC 732 ist der Eingang unregistrierter Daten in Register 730. Das Ausgangssignal von PLC 732 wird an den Tri-State-Steuereingang von Tri-State-Treiber 724 gelegt. Dementsprechend kann das Tri-State-Treiber-Steuersignal entweder das registrierte oder das unregistrierte Datensignal sein, das an Register 730 gelegt ist. Das Ausgangssignal von Tri-State-Treiber 724 wird an E/A-Pin 710 gelegt.
  • Auf der Eingangsseite wird ein Eingangssignal von E/A-Pin 710 an den Dateneingang D von Eingangsregister 740 gelegt. Jenes Signal wird auch an einen Eingang jedes der PLCs 742-1 und 742-2 gelegt. Der andere Eingang in jeden dieser PLCs ist das Q-Ausgangssignal von Eingangsregister 740. Das Ausgangssignal von PLC 742-1 wird über Puffer 744-1 an die Logik von Vorrichtung 10 gelegt. Das Ausgangssignal von PLC 742-2 wird ähnlich über Puffer 744-2 an die Logik von Vorrichtung 10 gelegt. Beispielsweise kann das Ausgangssignal jedes der Puffer 744 an einen oder eine größere Anzahl der Verbindungsleiter 200a/b, 210a/b, 230a/b, 240 usw. der Vorrichtung gelegt werden (z. B. über Tri-State-Treiber oder Passgate-Demultiplexer (nicht gezeigt)). Somit können einer der oder beide Pfade 742-1/744-1 und 742-2/744-2 für entweder die registrierten oder die unregistrierten Eingangssignale von E/A-Pin 710 verwendet werden. Anders ausgedrückt, kann Pin 710 die Logik von Vorrichtung 10 sowohl in ihrer registrierten als auch unregistrierten Form beschicken.
  • Register 720 und 730 sind auch gezeigt, wie sie Rückführungspfade zur Logik der Vorrichtung über Puffer 726 bzw. 736 aufweisen. Wie unmittelbar oben erwähnt, können diese Rückführungspfade über Tri-State-Treiber oder Passgate-Demultiplexer mit geeigneten Verbindungsleitern der Vorrichtung verbinden.
  • 9 zeigt, dass E/A-Zellen 630 und ihre zugeordneten E/A-Pins 710 vorzugsweise über jede E/A-Reihe 40 verteilt sind. Anders ausgedrückt, befinden sich diese E/A-Pins 710 nicht um den Umfang der Vorrichtung 10 herum. Stattdessen befinden sie sich überall im Inneren der Vorrichtung, indem sie über jede der mehreren E/A-Reihen 40 beabstandet sind. Dies hilft die Anzahl von E/A-Pins zu steigern, die auf Vorrichtung 10 bereitgestellt werden kann.
  • Kaskadieren von Unterbereichen 30, wie beispielsweise in 5 gezeigt (d. h. unter Verwendung der Signale DVEIN und/oder DVAUS) ermöglicht es, zwei oder mehr Unterbereiche wirksam zusammen (ohne Rückgriff auf die allgemeineren Verbindungsressourcen der Vorrichtung) als einzelne Nachschlagetabelle zu benutzen, die mehr als die vier Eingänge aufweist, die jeder Unterbereich einzeln aufweist. Beispielsweise können zwei Unterbereiche 30 zum Erzeugen vieler (obgleich nicht aller) der möglichen logischen Kombinationen von fünf, sechs oder sieben Eingängen zusammenkaskadiert sein. Im Allgemeinen weisen größere Nachschlagetabellen den Vorteil auf, dass sie die logischen Kombinationen von mehr Eingängen schneller als mehrere kleinere Nachschlagetabellen erzeugen können, die durch die allgemeinen Verbindungsressourcen der Vorrichtung verbunden werden müssen. Andererseits sind größere Nachschlagetabelle verschwenderisch, wenn sie zum Erzeugen von logischen Kombinationen relativ kleiner Anzahlen von Eingängen benötigt werden. Somit stellt die Fähigkeit zum Kaskadieren oder unmittelbaren Verbinden relativ kleiner (z. B. Vier-Eingangs-)Nachschlagetabellen einen guten Kompromiss dar. Wenn logische Kombinationen relativ großer Anzahlen von Eingängen erzeugt werden müssen, können zwei oder mehr Unterbereiche 30 zusammenkaskadiert werden. Andererseits können, wenn logische Kombinationen relativ kleiner Anzahlen von Eingängen erzeugt werden müssen, die Unterbereiche 30 einzeln verwendet werden, um unangemessene Verschwendung von Nachschlagetabellenressourcen zu vermeiden. Natürlich können, wie bereits erwähnt worden ist, nicht alle logischen Kombinationen von mehr als vier Eingängen durch Kaskadieren von zwei oder mehr Unterbereichen 30 erzeugt werden.
  • 10 zeigt eine alternative Ausführungsform, in der die Vier-Eingangs-Nachschlagetabellen in zwei Unterbereichen 30 optional zum Erzeugen einer echten Fünf-Eingangs-Nachschlagetabelle (d. h. einer Nachschlagetabelle, die zum Erzeugen aller logischen Kombinationen von fünf Eingängen fähig ist) über Direktverbindungen des Kaskadentyps verbunden sein können. Die Elemente 810-1 und 810-2 sind zwei Drei-Eingangs-Nachschlagetabellen, die einen Teil eines ersten Unterbereichs 30-1 bilden. PLC 812-1 bildet ebenfalls einen Teil jenes ersten Unterbereichs 30-1. Allein verwendet, kann Unterbereich 30-1 als AUS1 jedwede logische Kombination seiner Eingänge A1–D1 erzeugen.
  • Die Elemente 810-3 und 810-4 sind zwei Drei-Eingangs-Nachschlagetabellen, die einen Teil eines zweiten Unterbereichs 30-2 bilden. PLCs 812-2, 814-1, 814-2 und 818 und FCE 816 sind zusätzliche Komponenten von Unterbereich 30-2. Wenn Unterbereich 30-2 allein zu verwenden ist, ist FCE 816 programmiert, PLC 814-1 zu veranlassen, Eingang D2 an den Steuereingang von PLC 812-2 zu legen, und PLC 814-2 zu veranlassen, das feste VCC (logische 1) an den Steuereingang PLC 818 zu legen. Ein Steuereingang einer logischen 1 in PLC 818 veranlasst, dass jenes Element das Ausgangssignal von PLC 812-2 zum Ausgang AUS2 weiterleitet. Dies ermöglicht, dass Unterbereich 30-2 zum Erzeugen jedweder logischen Kombination der vier Eingänge A2–D2 von Unterbereich 30-2 als AUS2 allein verwendet wird.
  • Andererseits ist, wenn alle Schaltungen, die in 10 gezeigt sind, zusammen als Fünf-Eingangs-Nachschlagetabelle zu verwenden sind, FCE 816 programmiert, PLC 814-1 zu veranlassen, Eingang D1 an den Steuereingang von PLC 812-2 zu legen, und PLC 814-2 zu veranlassen, Eingang D2 an den Steuereingang PLC 818 zu legen. Darüber hinaus werden dieselben Signale A–C jeweils an Eingänge A1–C1 und A2–C2 gelegt. Dies erfolgt durch zweckentsprechendes Programmieren der allgemeinen Verbindungsressourcen (wie z. B. der Elemente, die in 3 und 4 gezeigt sind) von Vorrichtung 10. Der vierte Eingang in die Fünf-Eingangs-Nachschlagetabelle ist Eingang D (der an Eingang D1 gelegt ist), und der fünfte Eingang in die Fünf-Eingangs-Nachschlagetabelle ist Eingang E (der an Eingang D2 gelegt ist). Basierend auf Eingang D wählen die PLCs 812-1 und 812-2 zwei Signale aus den vier Ausgängen der Drei-Eingangs-Nachschlagetabellen 810-1 bis 810-4 aus. Aus diesen zwei Signalen trifft PLC 818 eine abschließende Auswahl eines Signals (AUS2) basierend auf Eingang E. Somit ist zu sehen, dass bei gemeinsamer Verwendung in dieser Art und Weise die in 10 gezeigten Schaltungen als Fünf-Eingangs-Nachschlagetabelle zum Erzeugen jedweder logischen Kombination von fünf Eingängen A–E verwendet werden können.
  • Obgleich 10 Schaltungen zum optionalen Umwandeln von zwei Vier-Eingangs-Nachschlagetabellen in eine Fünf-Eingangs-Nachschlagetabelle zeigt, kann das Prinzip auf Schaltungen zum optionalen Umwandeln von zwei M + 1-Eingangs-Nachschlagetabellen in eine M + 2-Eingangs-Nachschlagetabelle verallgemeinert werden, wobei M die Anzahl von Eingängen in jeden Start-Nachschlagetabellenblock wie z. B. Element 810-1 ist. In 10 weist M einen Wert von 3 auf, aber Schaltungen des in 10 gezeigten Typs können leicht für jedweden anderen Wert von M wie z. B. 2, 4, 5, 6, 7 usw. modifiziert werden.
  • Noch andere alternative Schaltungen zum Kaskadieren von Unterbereichen 30 sind in 11 gezeigt. In der Haupt-Ausführungsform, die in 5 gezeigt ist, versorgt das Ausgangssignal von PLC 408 sowohl das Direktverbindungsausgangssignal DVAUS als auch das Haupt-Datenausgangssignal des Nachschlagetabellenteils des Unterbereichs 30, der jenen PLC 408 umfasst. In der alternativen Ausführungsform, die in 11 gezeigt ist, umfasst jeder Unterbereich 30-1 und 30-2 zwei PLCs 912-1 und 912-2 (im Fall des Unterbereichs 30-1) und 912-3 und 912-4 (im Fall des Unterbereichs 30-2). In jedem Unterbereich 30 sind diese beiden PLCs 912 parallel durch das Ausgangssignal des PLCs 914 in jenem Unterbereich gesteuert. In jedem Unterbereich ist der PLC 914 programmierbar durch das zugeordnete FCE 916 gesteuert, um entweder den D- Eingang oder den Kaskadeneingang in jenen Unterbereich auszugeben. Schließlich wählt in jedem Unterbereich einer der PLCs 912 das Haupt-Datenausgangssignal des Unterbereichs aus, und der zweite PLC 912 trifft unabhängig dieselbe Signalauswahl, um das Kaskadenausgangssignal des Unterbereichs zu erzeugen. Durch Bereitstellen zweier separater PLCs 912 in jedem Unterbereich 30 wird weder das Haupt-Datenausgangssignal noch das Kaskadenausgangssignal durch das andere jener zwei Signale geladen. Dies hilft, beide jener Signale zu beschleunigen. In anderer Hinsicht kann die in 11 gezeigte Ausführungsform logisch dieselbe wie die Haupt-Ausführungsform sein, die in 5 gezeigt ist.
  • Verglichen mit der in 5 gezeigten Haupt-Ausführungsform sind 10 und 11 beide vereinfacht worden. Er versteht sich jedoch, dass jedwedes der anderen Merkmale, die in 5 gezeigt sind, mit Merkmalen verwendet werden kann, die in 10 und 11 gezeigt sind.
  • 12 stellt eine programmierbare Logikvorrichtung 10 dieser Erfindung in einem Datenverarbeitungssystem 1002 dar. Datenverarbeitungssystem 1002 kann eine oder mehrere der folgenden Komponenten beinhalten: einen Prozessor 1004; einen Speicher 1006; E/A-Schaltungen 1008 und Peripheriegeräte 1010. Diese Komponenten sind durch einen Systembus 1020 zusammengekoppelt und sind auf einer Platine 1030 bestückt, die in einem Endanwendersystem 1040 enthalten ist.
  • System 1002 kann in einer breiten Vielfalt von Anwendungen verwendet werden, wie z. B. Computervernetzung, Datenvernetzung, Messtechnik, Videoverarbeitung, digitale Signalverarbeitung oder jedweder anderen Anwendung, in denen der Vorteil des Verwendens programmierbarer oder neu programmierbarer Logik wünschenswert ist. Die programmierbare Logikvorrichtung 10 kann verwendet werden, um eine Vielzahl unterschiedlicher logischer Funktionen auszuführen. Beispielsweise kann die programmierbare Logikvorrichtung 10 als ein Prozessor oder eine Steuerung konfiguriert werden, die in Kooperation mit Prozessor 1004 arbeitet. Die programmierbare Logikvorrichtung 10 kann auch als Arbiter verwendet werden, um den Zugriff auf eine gemeinsam genutzte Ressource im System 1002 zu regeln. In noch einem anderen Beispiel kann die programmierbare Logikvorrichtung 10 als eine Schnittstelle zwischen Prozessor 1004 und einer der anderen Komponenten in System 1002 konfiguriert sein. Es ist anzumerken, dass System 1002 nur beispielhaft ist und dass der wahre Umfang und Geist der Erfindung durch die nachfolgenden Ansprüche angegeben sein muss.
  • Verschiedene Technologien können verwendet werden, um programmierbare Logikvorrichtungen 10 zu implementieren, welche die Merkmale dieser Erfindung sowie die verschiedenen Komponenten jener Vorrichtungen aufweisen (z. B. die oben beschriebenen PLCs und die FCEs, welche die PLCs steuern). Beispielsweise kann jeder PLC ein relativ einfacher programmierbarer Verbinder wie z. B. ein Schalter oder mehrere Schalter zum Verbinden jedwedes von mehreren Eingängen mit einem Ausgang sein. Alternativ kann jeder PLC ein etwas komplexeres Element sein, das des Ausführens von Logik (z. B. durch logisches Kombinieren mehrerer seiner Eingänge) sowie des Herstellens einer Verbindung fähig ist. In letzterem Fall beispielsweise kann jeder PLC Produkttermlogik sein, die Funktionen wie z. B. AND, NAND, OR oder NOR implementiert. Beispiele von Komponenten, die zum Implementieren von PLCs geeignet sind, sind EPROMs, EEPROMs, Passtransistoren, Übertragungsgatter, Antifuses, Laserfuses, optionale Metallverbindungen usw. Wie erwähnt worden ist, können die verschiedenen Komponenten von PLCs durch verschiedene, programmierbare, Funktionssteuerelemente („FCEs") gesteuert sein. (Bei gewissen PLC-Implementierungen (z. B. Sicherungen und optionalen Metallverbindungen) sind separate FCE-Vorrichtungen nicht erforderlich.) FCEs können auch in jedweder von mehreren unterschiedlichen Weisen implementiert sein. Beispielsweise können FCEs SRAMs, DRAMs, First-In-First-Out-Speicher („FIFO"-Speicher), EPROMs, EEPROMs, Funktionssteuerregister (z. B. wie in Wahlstrom, US-Patentschrift 3,473,160 ), ferroelektrische Speicher, Sicherungen, Antifuses oder dergleichen sein. Aus den verschiedenen Beispielen, die oben erwähnt sind, ist zu sehen, dass diese Erfindung sowohl auf nur einmal programmierbare als auch neu programmierbare Vorrichtungen anwendbar ist.
  • Es versteht sich, dass das Vorstehende lediglich veranschaulichend für die Prinzipien der Erfindung ist und dass verschiedene Modifikationen durch den Fachmann vorgenommen werden können, ohne den Umfang der Ansprüche zu verlassen. Beispielsweise können die Anzahlen der verschiedenen Typen von Ressourcen auf Vorrichtung 10 von den Anzahlen verschieden sein, die in den abgebildeten und beschriebenen veranschaulichenden Ausführungsformen vorhanden sind. Dies betrifft solche Parameter wie die Anzahlen von Reihen und Spalten der verschiedenen Typen von Schaltungen, die Anzahl von Unterbereichen 30 in jedem Bereich 20, die Anzahlen der verschiedenen Typen von Verbindungsleitern, die Anzahlen und Größen der PLCs, die zum Herstellen von Verbindungen zwischen verschiedenen Typen von Verbindungsleitern bereitgestellt sind, usw. Auch versteht es sich, dass verschiedene Richtungs- und Orientierungsbegriffe wie z. B. „vertikal" und „horizontal", „links" und „rechts", „oberhalb" und „unterhalb", „Reihe" und „Spalte" und dergleichen hier lediglich der Einfachheit halber verwendet werden und dass keine festen oder absoluten Richtungs- oder Orientierungseinschränkungen durch die Verwendung dieser Wörter beabsichtigt sind. Beispielsweise können die Vorrichtungen dieser Erfindung jedwede gewünschte Orientierung aufweisen. Bei Umorientierung können unterschiedliche Richtungs- oder Orientierungsbegriffe bei ihrer Beschreibung verwendet werden müssen, aber das wird ihre grundlegende Natur innerhalb des Umfangs und Geistes dieser Erfindung nicht ändern. Begriffe wie „Bereich" und „Unterbereich" werden ebenfalls lediglich als gewöhnliche, relative Begriffe verwendet, und für im Allgemeinen ähnliche Schaltungen können andere Begriffe verwendet werden. Tatsächlich können diese Begriffe hier in Kontexten synonym verwendet werden, in denen eine Bereichs-Unterbereichs-Hierarchie nicht wichtig ist. Alternativ können Vorrichtungen innerhalb des Umfangs dieser Erfindung Bereiche programmierbarer Logik aufweisen, die nicht in Unterbereiche geteilt sind. Obgleich in den veranschaulichenden Ausführungsformen, die hier gezeigt und beschrieben sind, Nachschlagetabellen-Logik eingesetzt wird, versteht es sich, dass, falls gewünscht, andere Typen von Logik verwendet werden können. Beispielsweise kann Logik in disjunktiver Normalform, wie es z. B. das primäre Beispiel ist, das in Referenzen wie Pederson et al., US-Patentschrift 5,241,224 und Patel et al., US-Patentschrift 5,371,422 betrachtet wird, statt Nachschlagetabellen-Logik verwendet werden. Obgleich hierin im Kontext einer bestimmten Architektur einer programmierbaren Logikvorrichtung veranschaulicht, versteht es sich, dass verschiedene Aspekte der Erfindung gleicherweise auf andere Architekturen programmierbarer Logikvorrichtungen anwendbar sind, wie z. B. die verschiedenen Architekturen, die in Freeman, US-Patentschrift Re. 34,363 , Cliff et al., US-Patentschrift 5,689,195 und Jefferson et al., US-Patentschrift 6,215,326 gezeigt sind.

Claims (23)

  1. Programmierbare Logikvorrichtung (10), welche umfasst: mehrere Bereiche (20) programmierbarer Logik; wobei jeder Bereich (20) mehrere Eingänge und wenigstens einen Ausgang aufweist und jeder Bereich (20) zum Erzeugen eines an den Ausgang angelegten Ausgangssignals dazu programmierbar ist, eine beliebige von mehreren Logikfunktionen an an die Eingänge angelegten Eingangssignalen wahlweise durchzuführen; ferner umfassend ein Verbindungsnetzwerk, welches dazu programmierbar ist, den Ausgang eines im wesentlichen beliebigen Bereichs (20) mit wenigstens einem der Eingänge eines im wesentlichen beliebigen Bereichs (20) wahlweise zu verbinden, wobei das Verbindungsnetzwerk einen ersten Normalgeschwindigkeitsteil (200a, 210a, 230a), welcher dazu programmierbar ist, den Ausgang eines im wesentlichen beliebigen Bereichs (20) mit wenigstens einem der Eingänge eines im wesentlichen beliebigen Bereichs (20) wahlweise zu verbinden, und einen zweiten Hochgeschwindigkeitsteil (200b, 210b, 230b) umfasst, und wobei die Bereiche (20) in einer zweidimensionalen Anordnung einander kreuzender Reihen und Spalten der Bereiche (20) auf der Vorrichtung angeordnet sind, wobei das Verbindungsnetzwerk eine Gruppe horizontaler Verbindungsleiter (230) umfasst, die entlang jeder Reihe verlaufen und dieser zugeordnet sind, wobei eine erste Untermenge (230a) der horizontalen Verbindungsleiter (230a) in jeder der Gruppen dazu eingerichtet ist, Teil des ersten Normalgeschwindigkeitsteils des Verbindungsnetzwerks zu bilden, und eine zweite Untergruppe (230b) der horizontalen Verbindungsleiter in jeder der Gruppen dazu eingerichtet ist, Teil des zweiten Hochgeschwindigkeitsteils des Verbindungsnetzwerks zu bilden, dadurch gekennzeichnet, dass der zweite Hochgeschwindigkeitsteil dazu programmierbar ist, wenigstens Teil einer Verbindung zwischen dem Ausgang eines im wesentlichen beliebigen Bereichs (20) und wenigstens einem der Eingänge eines im wesentlichen beliebigen Bereichs (20) optional herzustellen; und wobei jeder der horizontalen Verbindungsleiter (230b) des zweiten Hochgeschwindigkeitsteils dazu programmierbar ist, den Ausgang eines beliebigen Bereichs (20) mit wenigstens einem der Eingänge eines im wesentlichen beliebigen der horizontal benachbart liegenden Bereiche (20) unmittelbar zu verbinden.
  2. Vorrichtung nach Anspruch 1, dadurch gekennzeichnet, dass der zweite Hochgeschwindigkeitsteil (200b, 210b, 230b) dazu eingerichtet ist, wenigstens Teil einer Verbindung zwischen dem Ausgang eines im wesentlichen beliebigen Bereichs (20) und wenigstens einem der Eingänge eines im wesentlichen beliebigen Bereichs (20) durch Bereitstellen von Signalführung optional herzustellen, welche sich von zumindest einem Teil der Führung für die gleiche Verbindung durch den ersten Normalgeschwindigkeitsteil (200a, 210a, 230a) unterscheidet, wobei die alternative Führung durch den zweiten Hochgeschwindigkeitsteil (200b, 210b, 230b) wesentlich schneller ist als die Führung durch den ersten Normalgeschwindigkeitsteil (200a, 210a, 230a), von welchem sich die alternative Führung unterscheidet.
  3. Vorrichtung nach Anspruch 1, ferner gekennzeichnet durch eine Gruppe vertikaler Verbindungsleiter (200, 210), welche entlang jeder Spalte verlaufen und dieser zugeordnet sind, und programmierbare Verbinder, welche dazu eingerichtet sind, horizontale (230) und vertikale (200, 210) Verbindungsleiter wahlweise zu verbinden, und wobei eine erste Untermenge der Leiter (200a, 210a) in jeder der Gruppen dazu eingerichtet ist, Teil des ersten Normalgeschwindigkeitsteils des Verbindungsnetzwerks zu bilden, und eine zweite Untermenge der Leiter (200b, 210b) in jeder der Gruppen dazu eingerichtet ist, Teil des zweiten Hochgeschwindigkeitsteils des Verbindungsnetzwerks zu bilden.
  4. Vorrichtung nach Anspruch 3, dadurch gekennzeichnet, dass die erste Untermenge (200a, 210a, 230a) in jeder der Gruppen eine größere Anzahl an Leitern jener Gruppe umfasst, als die zweite Untermenge (200b, 210b, 230b) jener Gruppe umfasst.
  5. Vorrichtung nach Anspruch 4, dadurch gekennzeichnet, dass die erste Untermenge (200a, 210a, 230a) in jeder der Gruppen einen Anteil der Leiter in jener Gruppe umfasst, der in einem Bereich von zwischen etwa 67% und etwa 80% liegt.
  6. Vorrichtung nach Anspruch 3, dadurch gekennzeichnet, dass die programmierbaren Verbinder eine erste Untermenge der Verbinder umfassen, welche dazu eingerichet sind, horizontale (230) und vertikale (200, 210) Verbindungsleiter in der ersten Untermenge (200a, 210a, 230a) der Leiter wahlweise zu verbinden, nicht jedoch horizontale (230) und vertikale (200, 210) Verbindungsleiter in der zweiten Untermenge (200b, 210b, 230b) der Leiter.
  7. Vorrichtung nach Anspruch 3, dadurch gekennzeichnet, dass die programmierbaren Verbinder eine zweite Untermenge (200b, 210b, 230b) der Verbinder umfassen, welche dazu eingerichtet sind, horizontale (230) und vertikale (200, 210) Verbindungsleiter in der zweiten Untermenge (200b, 210b, 230b) der Leiter wahlweise zu verbinden, nicht jedoch horizontale (230) und vertikale (200, 210) Verbindungsleiter in der ersten Untermenge (200a, 210a, 230a) der Leiter.
  8. Vorrichtung nach Anspruch 6, dadurch gekennzeichnet, dass die programmierbaren Verbinder eine zweite Untermenge (200a, 210b, 230b) der Verbinder umfassen, welche dazu eingerichtet sind, horizontale (230) und vertikale (200, 210) Verbindungsleiter in der zweiten Untermenge (200b, 210b, 230b) der Leiter wahlweise zu verbinden, nicht jedoch horizontale (230) und vertikale (200, 210) Verbindungsleiter in der ersten Untermenge (200a, 210a, 230a) der Leiter.
  9. Vorrichtung nach Anspruch 8, dadurch gekennzeichnet, dass jeder der programmierbaren Verbinder einen Signaltreiber umfasst, und wobei die Signaltreiber der zweiten Unter menge (200b, 210b, 230b) der Verbinder größer und stärker als die Signaltreiber der ersten Untermenge (200a, 210a, 230a) der Verbinder sind.
  10. Vorrichtung nach Anspruch 3, dadurch gekennzeichnet, dass die Leiter in der zweiten Untermenge (200b, 210b, 230b) der Leiter in jeder der Gruppen breiter als die Leiter in der ersten Untermenge (200a, 210a, 230a) der Leiter in jener Gruppe sind.
  11. Vorrichtung nach Anspruch 3, dadurch gekennzeichnet, dass die Leiter in der zweiten Untermenge (200b, 210b, 230b) der Leiter in jeder der Gruppen von anderen Leitern weiter beabstandet sind, als die Leiter in der ersten Untermenge (200a, 210a, 230a) der Leiter in jener Gruppe.
  12. Vorrichtung nach Anspruch 1, dadurch gekennzeichnet, dass der Ausgang jedes Bereichs (20) im wesentlichen mit sowohl dem ersten Normalgeschwindigkeitsteil (200a, 210a, 230a) als auch dem zweiten Hochgeschwindigkeitsteil (200b, 210b, 230b) des Verbindungsnetzwerks unmittelbar verbindbar ist.
  13. Vorrichtung nach Anspruch 3, dadurch gekennzeichnet, dass das Verbindungsnetzwerk ferner programmierbare Schaltungen umfasst, welche dazu eingerichtet sind, Signale von wenigstens einigen der Verbindungsleiter, die jedem Bereich (20) zugeordnet sind, an wenigstens einen Eingang jener Region (20) anzulegen, wobei die programmierbaren Schaltungen Verbindungspfade umfassen, welche für Signale von Leitern in der zweiten Untermenge (200b, 210b, 230b) der Leiter, die jenem Bereich (20) zugeordnet sind, direkter sind als für Signale von Leitern in der ersten Untermenge (200a, 210a, 230a) der Leiter, die jenem Bereich (20) zugeordnet sind.
  14. Vorrichtung nach Anspruch 3, ferner gekennzeichnet durch: Mehrere Hochgeschwindigkeitsbereichsverbindungsleiter (250), zugeordnet und verlaufend entlang jeder einer Mehrzahl von Untermengen von mehreren benachbarten Bereichen (20) in jeder der Reihen.
  15. Vorrichtung nach Anspruch 14, dadurch gekennzeichnet, dass jeder der Hochgeschwindigkeitsbereichsverbindungsleiter (250) zur programmierbaren Verbindung mit dem Ausgang des einen der zugeordneten Bereiche (20) eingerichtet ist, welcher in etwa in der Mitte der mehreren benachbarten Bereichen (20) liegt, welche dem Hochgeschwindigkeitsbereichsverbindungsleiter (250) zugeordnet sind.
  16. Vorrichtung nach Anspruch 15, dadurch gekennzeichnet, dass jeder der Hochgeschwindigkeitsbereichsverbindungsleiter (250), der einem Bereich zugeordnet ist, mit wenigstens einem Eingang eines im wesentlichen beliebigen Bereichs (20) programmierbar verbindbar ist, welcher jenem Hochgeschwindigkeitslokalverbindungsleiter (250) zugeordnet ist.
  17. Vorrichtung nach Anspruch 3, ferner gekennzeichnet durch einen überbrückenden Verbindungsleiter (220), welcher jedem benachbarten Paar von Bereichen (20) in jeder Spalte zugeordnet und dazu eingerichtet ist, ein Signal von einem der Bereiche (20) in dem zugeordneten Paar nur an programmierbare Ausgangsschaltungen zu übertragen, welche dem anderen Bereich (20) in dem Paar zugeordnet sind, wobei die Ausgangsschaltungen dazu eingerichtet sind, ein Signal auf dem Überbrückungsverbindungsleiter (220) an das Verbindungsnetzwerk anstelle des Signals von dem Ausgang des anderen Bereichs (20) in jenem Paar wahlweise anzulegen.
  18. Vorrichtung nach Anspruch 1, ferner gekennzeichnet durch mehrere Eingangspins (642-1 bis 642-6), welche nahe der Mitte der Vorrichtung (10) angeordnet und dazu eingerichtet sind, Signale von Schaltungen zu empfangen, welche extern zu der Vorrichtung (10) liegen; erste programmierbare Logikverbinderschaltungen (644), welche dazu eingerichtet sind, aus den Signalen, welche von den Eingangspins (642-1 bis 642-6) empfangen werden, und den Signalen, welche von einer Untermenge (20-1, 20-2) der Bereiche (20) ausgege ben werden, welche benachbart zu der Mitte der Vorrichtung (10) liegen, schnelle Leitersignale auszuwählen; wobei der zweite Hochgeschwindigkeitsteil mehrere schnelle Leiter (640) umfasst, welche senkrecht zu den Reihen verlaufen, welche benachbart zu dem Mittelpunkt der Reihe sind und dazu eingerichtet sind, die schnellen Leitersignale, welche durch die ersten programmierbaren Logikverbinderschaltungen (644) ausgewählt sind, zu übertragen; mehrere Abzweigungsleiter (660), benachbart zu jeder der Reihen und entlang der benachbarten Reihe verlaufend, wobei die zu jeder Reihe benachbarten Abzweigungsleiter (660) dazu eingerichtet sind, Signale an die Bereiche (20) in der benachbarten Reihe zu übertragen; und zweite programmierbare Logikverbinderschaltungen (648), welche jeder der Reihen zugeordnet und dazu eingerichtet sind, schnelle Leitersignale von dem zweiten Hochgeschwindigkeitsteil an die Abzweigungsleiter (660) wahlweise anzulegen, die benachbart der Reihe liegen, welcher die zweiten programmierbaren Logikverbinderschaltungen (648) zugeordnet sind.
  19. Vorrichtung nach Anspruch 18, dadurch gekennzeichnet, dass die zweiten programmierbaren Logikverbinderschaltungen (648), welche jeder der Reihen zugeordnet sind, ferner dazu eingerichtet sind, zum Anlegen an die Abzweigungsleiter (660) benachbart zu der Reihe, welcher die zweiten programmierbaren Logikverbinderschaltungen (648) zugeordnet sind, Ausgangssignale der Bereiche (20) in jener Reihe alternativ auszuwählen, welche benachbart zu dem Mittelpunkt jener Reihe sind.
  20. Digitales Verarbeitungssystem (1002), gekennzeichnet durch: Verarbeitungsschaltungen (1004); einen Speicher (1006), welcher mit den Verarbeitungsschaltungen (1004) gekoppelt ist; und eine programmierbare Logikvorrichtung (10) nach Anspruch 1, welche mit den Verarbeitungsschaltungen (1004) und dem Speicher (1006) gekoppelt ist.
  21. Leiterplatte (1030), auf welcher eine programmierbare Logikschaltung (10) nach Anspruch 1 angeordnet ist.
  22. Leiterplatte (1030) nach Anspruch 21, ferner gekennzeichnet durch: einen Speicher (1006), welcher auf der Leiterplatte (1030) angeordnet und mit der programmierbaren Logikvorrichtung (10) gekoppelt ist.
  23. Leiterplatte (1030) nach Anspruch 21, ferner gekennzeichnet durch: Verarbeitungsschaltungen (1004), angeordnet auf der Leiterplatte (1030) und gekoppelt mit der programmierbaren Logikvorrichtung (10).
DE60038659T 1999-03-04 2000-03-02 Verbindungs- und eingangs/ausgangsmittel für programmierbare logische integrierte schaltungen Expired - Lifetime DE60038659T2 (de)

Applications Claiming Priority (9)

Application Number Priority Date Filing Date Title
US12278899P 1999-03-04 1999-03-04
US122788P 1999-03-04
US14251399P 1999-07-06 1999-07-06
US14250899P 1999-07-06 1999-07-06
US14243199P 1999-07-06 1999-07-06
US142513P 1999-07-06
US142508P 1999-07-06
US142431P 1999-07-06
PCT/US2000/005628 WO2000052826A2 (en) 1999-03-04 2000-03-02 Interconnection and input/output resources for programmable logic integrated circuit devices

Publications (2)

Publication Number Publication Date
DE60038659D1 DE60038659D1 (de) 2008-06-05
DE60038659T2 true DE60038659T2 (de) 2009-06-18

Family

ID=27494451

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60038659T Expired - Lifetime DE60038659T2 (de) 1999-03-04 2000-03-02 Verbindungs- und eingangs/ausgangsmittel für programmierbare logische integrierte schaltungen

Country Status (4)

Country Link
EP (1) EP1092268B1 (de)
JP (7) JP4206203B2 (de)
DE (1) DE60038659T2 (de)
WO (1) WO2000052826A2 (de)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE60012639T2 (de) 1999-03-04 2005-08-04 Altera Corp., San Jose Verbindungsressourcen für programmierbare logische integrierte schaltungen
US6590419B1 (en) 1999-10-12 2003-07-08 Altera Toronto Co. Heterogeneous interconnection architecture for programmable logic devices
US6930510B2 (en) 2003-03-03 2005-08-16 Xilinx, Inc. FPGA architecture with mixed interconnect resources optimized for fast and low-power routing and methods of utilizing the same
JP2005268536A (ja) 2004-03-18 2005-09-29 Matsushita Electric Ind Co Ltd プログラマブル・ロジック・デバイスおよびその設計方法
US7389485B1 (en) 2006-03-28 2008-06-17 Xilinx, Inc. Methods of routing low-power designs in programmable logic devices having heterogeneous routing architectures
KR101420817B1 (ko) 2008-01-15 2014-07-21 삼성전자주식회사 3 차원의 직렬 및 병렬 회로들을 가지고 차례로 적층된집적회로 모듈들을 전기적으로 접속하는 반도체 집적회로장치 및 그 장치의 형성방법
US8987868B1 (en) 2009-02-24 2015-03-24 Xilinx, Inc. Method and apparatus for programmable heterogeneous integration of stacked semiconductor die
US7893712B1 (en) 2009-09-10 2011-02-22 Xilinx, Inc. Integrated circuit with a selectable interconnect circuit for low power or high performance operation
JP5336398B2 (ja) 2010-02-01 2013-11-06 ルネサスエレクトロニクス株式会社 半導体集積回路、半導体集積回路の構成変更方法
US9015023B2 (en) 2010-05-05 2015-04-21 Xilinx, Inc. Device specific configuration of operating voltage
JP5704240B2 (ja) * 2011-08-12 2015-04-22 株式会社デンソー 集積回路

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4761768A (en) * 1985-03-04 1988-08-02 Lattice Semiconductor Corporation Programmable logic device
JPS6264124A (ja) * 1985-09-13 1987-03-23 Ricoh Co Ltd プログラマブル・ロジツク・デバイス
US4771285A (en) * 1985-11-05 1988-09-13 Advanced Micro Devices, Inc. Programmable logic cell with flexible clocking and flexible feedback
EP0227329B1 (de) * 1985-12-06 1992-03-25 Advanced Micro Devices, Inc. Programmierbare logische Vorrichtung
JPS6323419A (ja) * 1986-07-15 1988-01-30 Ricoh Co Ltd プログラマブル・ロジツク・デバイス
JPS63276327A (ja) * 1987-05-08 1988-11-14 Hitachi Ltd ダイナミック型ロジック・アレイ
JP2548301B2 (ja) * 1988-05-25 1996-10-30 富士通株式会社 プログラマブル論理回路装置
JP2772051B2 (ja) * 1988-09-08 1998-07-02 川崎製鉄株式会社 プログラマブル入出力回路及びプログラマブル論理素子
JPH02174249A (ja) * 1988-12-27 1990-07-05 Nec Corp Ecl型ゲートアレイ集積回路装置
JP3179800B2 (ja) * 1991-07-22 2001-06-25 株式会社日立製作所 半導体集積回路装置
US5633830A (en) * 1995-11-08 1997-05-27 Altera Corporation Random access memory block circuitry for programmable logic array integrated circuit devices
JP3429844B2 (ja) * 1994-04-22 2003-07-28 沖電気工業株式会社 モード切り替えインタフェース回路
US5465056A (en) * 1994-06-30 1995-11-07 I-Cube, Inc. Apparatus for programmable circuit and signal switching
JPH08102492A (ja) * 1994-08-02 1996-04-16 Toshiba Corp プログラム可能な配線回路及びテストボード装置
US5442306A (en) * 1994-09-09 1995-08-15 At&T Corp. Field programmable gate array using look-up tables, multiplexers and decoders
JPH09181598A (ja) * 1995-12-18 1997-07-11 At & T Corp フィールドプログラマブルゲートアレイ
JPH09293784A (ja) * 1996-04-26 1997-11-11 Nippon Telegr & Teleph Corp <Ntt> フィールドプログラマブルゲートアレイ
US5894565A (en) * 1996-05-20 1999-04-13 Atmel Corporation Field programmable gate array with distributed RAM and increased cell utilization
US5763556A (en) * 1996-05-21 1998-06-09 Exxon Chemical Patents Inc. Copolymers of ethylene and geminally disubstituted olefins
US5977793A (en) * 1996-10-10 1999-11-02 Altera Corporation Programmable logic device with hierarchical interconnection resources
US5999016A (en) * 1996-10-10 1999-12-07 Altera Corporation Architectures for programmable logic devices
US5963050A (en) * 1997-02-26 1999-10-05 Xilinx, Inc. Configurable logic element with fast feedback paths
US6215326B1 (en) * 1998-11-18 2001-04-10 Altera Corporation Programmable logic device architecture with super-regions having logic regions and a memory region

Also Published As

Publication number Publication date
JP2012044708A (ja) 2012-03-01
WO2000052826A2 (en) 2000-09-08
DE60038659D1 (de) 2008-06-05
WO2000052826A3 (en) 2001-01-25
EP1092268B1 (de) 2008-04-23
JP2009065694A (ja) 2009-03-26
JP2006246534A (ja) 2006-09-14
JP5820508B2 (ja) 2015-11-24
JP2014200106A (ja) 2014-10-23
JP2006287964A (ja) 2006-10-19
JP4813257B2 (ja) 2011-11-09
EP1092268A2 (de) 2001-04-18
JP4206203B2 (ja) 2009-01-07
JP2012186863A (ja) 2012-09-27
JP4637790B2 (ja) 2011-02-23
JP5144462B2 (ja) 2013-02-13
JP2002538634A (ja) 2002-11-12

Similar Documents

Publication Publication Date Title
DE60025196T2 (de) Heterogenes programmierbares gatterfeld
DE69822796T2 (de) Nutzerprogrammierbarer prozessor
DE69231933T2 (de) Programmierbare logische zelle und programmierbares logisches feld
DE69429073T2 (de) Logische struktur und schaltung für schnellen übertrag
DE69028395T2 (de) Konfigurierbare zellenanordnung
DE69031861T2 (de) Programmierbare logische Schaltung mit Multifunktionseingangspin
DE69431848T2 (de) Konfigurierbares logisches Feld
DE60128960T2 (de) Architektur für ziegelförmig aufbaubares nutzerprogrammierbares gatterfeld
DE69812898T2 (de) Nutzerprogrammierbare prozessorfelder
DE69721342T2 (de) FPGA mit erhöhter Zellnutzung
DE69121122T2 (de) Integrierter Schaltkreis
DE69304163T2 (de) Programmierbare logische Vorrichtung
DE4425552C2 (de) Gatterarray
DE69933525T2 (de) Architekturen für programmierbare logische Vorrichtungen
DE60204189T2 (de) FPGA mit zumindest zwei unterschiedlichen und unabhängig konfigurierbaren Speicherstrukturen
DE60038659T2 (de) Verbindungs- und eingangs/ausgangsmittel für programmierbare logische integrierte schaltungen
DE69924486T2 (de) Spezielle schnittstellenarchitektur für eine hybride schaltung
DE19639629C2 (de) Programmierbare, monolithische, integrierte Logikschaltung und Verfahren zum Implementieren derselben
EP1222739B1 (de) Rekonfigurierbares gate-array
DE60012639T2 (de) Verbindungsressourcen für programmierbare logische integrierte schaltungen
DE102004045527B4 (de) Konfigurierbare Logikschaltungsanordnung
EP0202456A2 (de) In integrierter Technik hergestellter Logik-Array-Baustein
DE4416881A1 (de) Datenverarbeitungseinrichtung
DE19854730A1 (de) LCD-Quellentreiber
DE69031832T2 (de) Programmierbare logische gatter

Legal Events

Date Code Title Description
8364 No opposition during term of opposition