-
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 402a–402d 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 490–496 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.