-
Hintergrund der Erfindung
-
Die
vorliegende Erfindung betrifft Eingabe- und Ausgabeschnittstellen
für integrierte
Schaltungen, und insbesondere Hochleistungsschnittstellen, die einen
hohen Grad an Flexibilität
und Konfigurierbarkeit aufweisen.
-
Elektronische
Systeme werden komplexer, da sie zunehmend schwierigere Aufgaben
bewältigen.
Deshalb nimmt die Datenmenge, die in diesen Systemen zwischen integrierten
Schaltungen ausgetauscht wird, immer mehr zu. Zugleich wollen Systemdesigner
kleinere Baueinheiten mit geringer Pinzahl (pin-count), die weniger
Raum auf den Leiterplatten des Systems in Anspruch nehmen. Deshalb sind
an den Eingangs- und Ausgangspins der integrierten Schaltungen sehr
hohe Datenraten wünschenswert.
-
Für die Schaltungen,
welche die Eingangs- und Ausgangsstrukturen an diesen Pins formen,
ist es aber auch wünschenswert,
daß sie
hochflexibel sind. Zum Beispiel können Sets, Presets und Enables
an Eingängen
und Ausgängen
mit Registern die Implementierung von komplizierten Logikfunktionen erleichtern,
und ein JTAG Boundary-Prüfzugang kann
die Systemdiagnose vereinfachen.
-
Leider
hat eine erhöhte
Flexibilität
langsamere Schaltungen zur Folge. Die gleichen Transistoren, die
Funktionen hinzufügen
und das Multiplexieren erhöhen,
Eigen parasitäre
Kapazitäten
und Widerstände
ein, wodurch die Leistung des Geräts herabgesetzt wird. Die Erhöhung der
Konfigurierbarkeit einer Eingangs- und Ausgangsschnittstelle senkt
die Höchstgeschwindigkeit,
mit welcher die Schnittstelle Daten verarbeiten kann. Um Strom zu
sparen, können
Designer auch die Verwendung von langsameren Schaltungen in der
integrierten Schaltung wünschen.
-
Daher
besteht ein Bedarf an einer hochflexiblen Eingangs- und Ausgangsschnittstelle,
die auch mit hoher Geschwindigkeit betrieben werden kann. Für einen
maximalen Nutzen sollte die Schnittstelle auch in der Lage sein,
auf effektive Weise mit anderen langsameren Schaltungen in der integrierten
Schaltung zu kommunizieren.
-
Das
Dokument
EP 0 818 734
A2 offenbart eine Eingangs-/Ausgangsschnittstelle, die
sowohl die Hochgeschwindigkeitsdatenübertragung mit Hochfrequenzsignalen
als auch die Niedergeschwindigkeitsdatenübertragung mit Niederfrequenzsignalen bewältigt. Diese
Schnittstelle umfaßt
einen Eingangspuffer und einen Ausgangspuffer, die jeder jeweilige
Puffer aufweisen, um jeweils Hochfrequenzsignale und Niederfrequenzsignale
zu verarbeiten.
-
Zusammenfassung
-
Daher
stellen Ausführungsformen
der vorliegenden Erfindungen ein Verfahren und eine Vorrichtung
bereit, um Eingänge
und Ausgänge
entweder mit hoher Geschwindigkeit oder mit niedriger Geschwindigkeit
bereitzustellen. Es wird eine Eingangs- und Ausgangsstruktur bereitgestellt,
die einen Eingang mit hoher Geschwindigkeit, einen Ausgang mit hoher
Geschwindigkeit, einen Eingang mit niedriger oder moderater Geschwindigkeit
und einen Ausgang mit niedriger oder moderater Geschwindigkeit aufweist.
Eine der Eingangs- und Ausgangsschaltungen wird gewählt, und
die anderen werden abgewählt.
In einem Beispiel, das nur ein Enable-Signal als Steuerleitungseingabe
aufweist, sind die Eingangs- und Ausgangsschaltungen mit hoher Geschwindigkeit
relativ einfach und in der Lage, eine Schnittstelle zu einer langsameren
Schaltung im Kern einer integrierten Schaltung zu bilden. Die Eingangs-
und Ausgangsschaltungen mit niedriger oder moderater Geschwindigkeit
sind flexibler, z.B. mit Preset, Enable und Clear als Steuerleitungseingaben,
und können die
JTAG Boundary-Prüfung
unterstützen.
Diese parallelen Schaltungen mit hoher und niedriger Geschwindigkeit
sind derart wählbar,
daß die
Eingangs-/Ausgangsstruktur den Anforderungen der Anwendung entsprechend
zwischen Geschwindigkeit und Funktionalität optimiert wird.
-
Eine
beispielhafte Ausführungsform
der vorliegenden Erfindung stellt eine integrierte Schaltung bereit,
umfassend ein Pad, einen High-Speed-Ausgangspuffer, der mit dem
Pad verbunden ist, und einen Low-Speed-Ausgangspuffer, der auch
mit dem Pad verbunden ist. Der High-Speed-Ausgangspuffer und der Low-Speed-Ausgangspuffer
werden auf wählbare
Weise aktiviert. Wenn der High-Speed-Ausgangspuffer aktiv ist, ist
der Low-Speed-Ausgangspuffer inaktiv, und wenn der Low-Speed-Ausgangspuffer
aktiv ist, ist der High-Speed-Ausgangspuffer inaktiv.
-
Diese
Ausführungsform
kann außerdem
ein erstes Flipflop umfassen, das mit dem High-Speed-Ausgangspuffer verbunden
ist, und ein zweites Flipflop, das mit dem Low-Speed-Ausgangspuffer verbunden
ist. Das erste Flipflop ist konfiguriert, um eine erste Zahl von Steuersignalen
zu empfangen, und das zweite Flipflop ist konfiguriert, um eine
zweite Zahl von Steuersignalen zu empfangen, wobei die zweite Zahl
größer als
die erste Zahl ist.
-
Eine
andere beispielhafte Ausführungsform der
vorliegenden Erfindung stellt eine integrierte Schaltung bereit,
umfassend ein Pad, einen High-Speed-Eingangspuffer, der mit dem
Pad verbunden ist, und einen Low-Speed-Eingangspuffer, der auch
mit dem Pad verbunden ist. Der High-Speed-Eingangspuffer und der
Low-Speed-Eingangspuffer werden auf wählbare Weise aktiviert. Wenn
der High-Speed-Eingangspuffer aktiv ist, ist der Low-Speed-Eingangspuffer
inaktiv, und wenn der Low-Speed-Eingangspuffer aktiv ist, ist der High-Speed-Eingangspuffer
inaktiv.
-
Diese
Ausführungsform
kann zudem ein erstes Flipflop vorsehen, das mit dem High-Speed-Eingangspuffer verbunden
ist, und ein zweites Flipflop, das mit dem Low-Speed-Eingangspuffer
verbunden ist. Das erste Flipflop ist konfiguriert, um eine erste Zahl
von Steuersignalen zu empfangen, und das zweite Flipflop ist konfiguriert,
um eine zweite Zahl von Steuersignalen zu empfangen, wobei die zweite Zahl
größer ist
als die erste Zahl.
-
Eine
weitere Ausführungsform
stellt eine integrierte Schaltung mit einem High-Speed-Ausgangsweg bereit.
Dieser Weg weist ein erstes Register mit doppelter Datenrate auf,
das mit einem ersten Ausgangspuffer verbunden ist. Diese integrierte Schaltung
umfaßt
auch einen Low-Speed-Ausgangsweg
mit einem zweiten Register mit doppelter Datenrate, das mit einem
zweiten Ausgangspuffer verbunden ist, einen High-Speed-Eingangsweg
mit einem dritten Register mit doppelter Datenrate, das mit einem
ersten Eingangspuffer verbunden ist, und einen Low-Speed-Eingangsweg mit einem
vierten Register mit doppelter Datenrate, das mit einem zweiten
Eingangspuffer verbunden ist. Der erste Ausgangspuffer, der zweite
Ausgangspuffer, der erste Eingangspuffer und der zweite Eingangspuffer
sind mit einem Pad verbunden.
-
Ein
besseres Verständnis
der Beschaffenheit und Vorteile der vorliegenden Erfindung kann
aus der folgenden ausführlichen
Beschreibung und den beiliegenden Zeichnungen gewonnen werden.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
1 ist
ein Diagramm eines Digitalsystems mit einer integrierten Schaltung
mit programmierbarer Logik;
-
2 ist
ein Diagramm, das einen Grundflächenplan
einer integrierten Schaltung mit programmierbarer Logik und einem
eingebetteten Prozessor zeigt;
-
3 ist
ein vereinfachtes Blockdiagramm eines Logic Array Blocks (LAB);
-
4 ist
ein Diagramm, das den programmierbaren Logik-Abschnitt der integrierten
Schaltung mit programmierbarer Logik zeigt;
-
5 ist
ein Blockdiagramm, das Eingangs- und Ausgangsschaltungen nach einer
Ausführungsform
der vorliegenden Erfindung zeigt;
-
6 ist
ein anderes Blockdiagramm, die Eingangs- und Ausgangsschaltungen
nach einer Ausführungsform
der vorliegenden Erfindung zeigt;
-
7 ist
ein detailliertes Blockdiagramm einer Eingabe- und Ausgabeschnittstelle
nach einer Ausführungsform
der vorliegenden Erfindung;
-
8A ist
ein Blockdiagramm, das mehr Details eines High-Speed-Differentialausgangs
zeigt, der als HSOUT in 6, High-Speed-Ausgangsregister
und der Differentialausgangspuffer in 7 oder andere
Schaltungen in anderen Ausführungsformen
der vorliegenden Erfindung verwendet werden kann;
-
8B veranschaulicht
eine anpassbare Verzögerungsleitung,
die in Ausführungsformen
der vorliegenden Erfindung verwendet werden kann;
-
9A ist
ein Ablaufdiagramm, das die Arbeitsweise der Ausgangsschaltung von 8A veranschaulicht;
-
9B ist
ein Ablaufdiagramm, das eine alternative Arbeitsweise der Ausgangsschaltung
von 8A veranschaulicht;
-
10 ist
ein Blockdiagramm, das mehr Details eines High-Speed-Differentialeingangs
zeigt, der als HSIN in 6, High-Speed-Eingangsregister und
Differentialeingangspuffer in 7 oder andere Schaltungen
in anderen Ausführungsformen
der vorliegenden Erfindung verwendet werden kann;
-
11A ist ein Ablaufdiagramm, das die Arbeitsweise
der Eingangsschaltung von 10 veranschaulicht;
-
11B ist ein Ablaufdiagramm, das eine alternative
Arbeitsweise der Eingangsschaltung von 10 veranschaulicht;
-
12 ist
ein detaillierteres Blockdiagramm einer Ausgangsschaltung, die als
die Ausgangs- und Ausgangs-Enable-Schaltungen
in 6 oder als Ausgangsregister, Ausgangs-Enable-Register und Ausgangspuffer
in 7 oder als andere Schaltungen in anderen Ausführungsformen
der vorliegenden Erfindung verwendet werden kann;
-
13 ist
ein detaillierteres Blockdiagramm, das eine Ausgangsschaltung zeigt,
die als die Eingangsschaltung in 6, als Eingangsregister
und Eingangspuffer von 7 oder als andere Schaltungen
in anderen Ausführungsformen
der vorliegenden Erfindung verwendet werden kann;
-
14 ist
ein Blockdiagramm, das die Phasenregelkreise zeigt, die in einer
Ausführungsform der
vorliegenden Erfindung zur Erzeugung der globalen, lokalen und High-Speed-Takte
verwendet werden; und
-
15 ist
ein Beispiel eines Phasenregelkreises, der als der Phasenregelkreis
in 14 verwendet werden kann.
-
BESCHREIBUNG MÖGLICHER
AUSFÜHRUNGSFORMEN
-
1 zeigt
ein Blockdiagramm eines Digitalsystems, in dem erfindungsgemäße Eingabe-
und Ausgabeschnittsstellen implementiert werden können. Das
System kann auf einer Einzelplatine, auf Mehrfachplatinen oder in
Mehrfachgehäusen
vorgesehen sein. Auch wenn Ausführungsformen
der vorliegenden Erfindung allgemein in elektronischen und integrierten
Schaltungen nützlich
sind, sind sie in programmierbaren Logikbausteinen besonders sinnvoll.
-
1 veranschaulicht
ein System
101, in dem solch ein programmierbarer Logikbaustein
121 verwendet
werden kann. Programmierbare Logikbausteine oder integrierte Schaltungen
mit programmierbarer Logik werden auch als PALs, PLAs, FPLAs, PLDs,
CPLDs, EPLDs; EEPLDs, LCAs oder FPGAs bezeichnet und sind wohlbekannte
integrierte Schaltungen, die die Vorteile von festen integrierten Schaltungen
mit der Flexibilität
von kundenspezifischen integrierten Schaltungen versehen. Derartige Bausteine
erlauben einem Benutzer, Standardlogikbausteine elektrisch zu programmieren,
um den spezifischen Bedürfnissen
eines Benutzers zu entsprechen. Beispiele gegenwärtiger programmierbarer Logikbausteine
werden durch Ateras PLD-Serien Classic, MAX
®, FLEX
®,
APEC
TM repräsentiert. Diese werden z.B.
in den
US-Patenten Nummer 4.617.479 ,
4.871.930 ,
5.241.224 ,
5.258.668 ,
5.260.610 ,
5.260.611 ,
5.436.575 und dem Altera Data Book (1999)
beschrieben. Integrierte Schaltungen mit programmierbarer Logik
und deren Arbeitsweise sind dem Fachmann wohlbekannt.
-
In
der speziellen Ausführungsform
von 1 ist eine Verarbeitungseinheit 101 mit
einem Speicher 105 und einer E/A 111 gekoppelt
und enthält
einen programmierbaren Logikbaustein 121. Der PLD 121 kann
eigens durch eine Verbindung 131 mit dem Speicher 105 und
durch eine Verbindung 135 mit einer E/A 111 verbunden
sein. Das System kann ein programmiertes digitales Computersystem
sein, ein Digitalsignalverarbeitungssystem, ein spezialisiertes digitales
Schaltnetz oder ein sonstiges Verarbeitungssystem sein. Überdies
können
solche Systeme für
eine große
Vielfalt von Anwendungen wie Telekommunikationssysteme, Kraftfahrzeugsysteme, Steuerungssysteme,
Unterhaltungselektronik, Personal Computer, Internetkommunikation
und Netzverbindungen ausgelegt sein, um nur einige Beispiele zu
nennen.
-
Die
Verarbeitungseinheit 101 kann Daten zur Verarbeitung oder
Speicherung an eine geeignete Systemkomponente leiten, ein im Speicher 105 gespeichertes
Programm ausführen
oder mit der E/A 111 eingeben oder eine ähnliche
Funktion ausführen. Die
Verarbeitungseinheit 101 kann eine Zentraleinheit (CPU),
ein Mikroprozessor, ein Fließkomma-Coprozessor,
ein Graphik-Coprozessor,
ein Hardware-Controller, ein Mikrocontroller, ein programmierbarer
Logikbaustein, der zum Gebrauch als ein Controller programmiert
wurde, ein Netzwerkcontroller oder eine sonstige Verarbeitungseinheit
sein. In vielen Ausführungsformen
besteht zudem oft nicht die Notwendigkeit einer CPU. Zum Beispiel
können statt
einer CPU ein oder mehrere PLDs 121 die logischen Operationen
des Systems steuern. In einer Ausführungsform wirkt der PLD 121 als
umkonfigurierbarer Prozessor, der bei Bedarf umprogrammiert werden
kann, um eine bestimmte Rechenaufgabe durchzuführen. Alternativ dazu kann
der programmierbare Logikbaustein 121 einen Prozessor einschließen. In
einigen Ausführungsformen
kann die Verarbeitungseinheit 101 sogar ein Computersystem sein.
Der Speicher kann ein Schreib-und-Lese-Speicher (RAM), ein Nur-Lesen-Speicher
(ROM), eine Festplatte oder eine Diskette, ein PC Card Flash-Disk-Speicher,
ein Band oder jedes andere Mittel zur Informationsspeicherung und
-wiederauffindung sein, oder jede Kombination aus diesen Mitteln.
Der PLD 121 kann vielen verschiedenen Zwecken im System
von 1 dienen. Der PLD 121 kann ein logischer
Baustein der Verarbeitungseinheit 101 sein, der ihre internen
und externen Operationen unterstützt.
Der PLD 121 ist programmiert, um die logischen Funktionen
zu implementieren, die notwendig sind, um seine spezifische Rolle
im Systembetrieb zu erfüllen.
-
2 ist
ein vereinfachtes Blockdiagramm einer Gesamtinnenarchitektur und
der Organisation eines PLDs. Viele Details der Architektur der programmierbaren
Logik, der Organisation und des Schaltungsaufbaus sind für das Verständnis der
vorliegenden Erfindung nicht erforderlich, und diese Details werden
nicht gezeigt.
-
2 zeigt
eine zweidimensionale sechs-mal-sechs-Anordnung mit sechsunddreißig Logic
Array Blocks (LABs) 200. Der LAB 200 ist ein physikalisch
gruppierter Satz logischer Ressourcen, die konfiguriert oder programmiert
sind, um logische Funktionen durchzuführen. Die Innenarchitektur
eines LABs wird unten ausführlicher
beschrieben. Die programmierbare Logikabschnitt kann jede beliebige Zahl
von LABs enthalten. Allgemein werden in Zukunft dank des Fortschritts
und der Verbesserungen der Technologie zweifellos programmierbare
Logikbausteine mit einer größeren Zahl
von Logic Array Bloch hergestellt werden. Zudem müssen die
LABs nicht in einer quadratischen Matrix oder Array organisiert
sein; das Array kann zum Beispiel in einer fünf-mal-sieben- oder in einer
zwanzig-mal-siebzig-Matrix von LABs organisiert sein.
-
Der
LAB 200 weist Eingänge
und Ausgänge auf
(nicht gezeigt) auf, von denen einige der vorliegenden Erfindung
entsprechen können
und die auf programmierbare Weise mit einer globalen Verbindungsstruktur
verbunden sein können
oder nicht, die eine Anordnung aus globalen horizontalen Verbindungen
(GHs) 210 und globalen vertikalen Verbindungen (GVs) 220 umfaßt. Auch
wenn sie in 2 als einzelne Linien dargestellt
sind, kann jede GH 210 und GV 220-Leitung eine Vielzahl
von Signalleitern darstellen. Die Eingänge und Ausgänge des LABs 200 können auf
programmierbare Weise mit einer benachbarten GH 210 und
einer benachbarten GV 220 verbunden werden. Durch Verwenden
der Verbindungen GH 210 und GV 220 können mehrfache
LABs 200 verbunden und kombiniert werden, um größere, komplexere
Logikfunktionen zu implementieren als mit einem einzigen LAB 200 möglich wäre.
-
In
einer Ausführungsform
können
GH 210- und GV 220-Leiter an Schnittpunkten 225 dieser
Leiter auf programmierbare Weise verbindbar sein oder nicht. Überdies
können
GH 210- und GV 220-Leiter Mehrfachverbindungen zu anderen GH 210-
und GV 220-Leitern herstellen. Verschiedene GH 210- und GV 220-Leiter
können
auf programmierbare Weise miteinander verbunden werden, um einen
Signalweg von einem LAB 200 an einer Stelle des PLD-Abschnitts 154 zu
einem anderen LAB 200 an einer anderen Stelle des PLD-Abschnitts 154 herzustellen. Ein
Signal kann eine Vielzahl von Schnittpunkten 225 durchlaufen.
Zudem kann ein Ausgangssignal von einem LAB 200 in die
Eingänge
eines oder mehrerer LABs 200 geleitet werden. Mit der globalen
Verbindung können
Signale aus einem LAB 200 auch zum selben LAB zurückgeführt werden.
In spezifischen Ausführungsformen
der vorliegenden Erfindung sind nur ausgewählte GH 210-Leiter auf programmierte Weise
mit einer Auswahl von GV 220-Leitern
verbindbar. Überdies
können
in weiteren Ausführungsformen
GH 210- und GV 220-Leiter
spezifisch benutzt werden, um Signale in einer spezifischen Richtung
wie z.B. Eingang oder Ausgang durchzulassen, aber nicht in beiden.
-
In
anderen Ausführungsformen
kann die integrierte Schaltung mit programmierbarer Logik eine spezielle
oder segmentierte Verbindung aufweisen, die mit einer spezifischen
Zahl von LABs verbunden ist, und nicht unbedingt mit einer ganzen
Reihe oder Spalte von LABs. Zum Beispiel kann die segmentierte Verbindung
auf programmierbare Weise zwei, drei, vier, fünf oder mehr LABs verbinden.
-
Die
programmierbare Logikarchitektur in 2 zeigt
ferner Eingangs- und Ausgangsschaltungen 230 an den Rändern des
Chips. Eingangs- und Ausgangsschaltungen 230 dienen dazu,
den PLD an externe, nicht auf dem Chip befindliche Schaltungen anzuschließen. Einige
oder alle dieser Eingangs- und Ausgangsschaltungen 230 können Ausführungsformen
der vorliegenden Erfindung entsprechen. 2 zeigt
zweiunddreißig
Eingangs- und Ausgangsschaltungen 230; doch eine integrierte
Schaltung mit programmierbarer Logik kann eine Zahl von Eingangs- und
Ausgangsschaltungen enthalten, die größer oder kleiner ist als die
dargestellte Zahl. Wie oben erläutert,
können
einige dieser Eingangs-/Ausgangstreiber vom eingebetteten Prozessor
und pro grammierbaren Logikabschnitten gemeinsam benutzt werden. Jede
Eingangs- und Ausgangsschaltung 230 ist konfigurierbar,
um als Eingangstreiber, Ausgangstreiber oder bidirektionaler Treiber
benutzt zu werden. In anderen Ausführungsformen einer integrierten
Schaltung mit programmierbarer Logik können die Eingangs- und Ausgangsschaltungen 230 im
Kern der integrierten Schaltung selbst integriert sein. Diese eingebettete
Anordnung der Eingangs- und Ausgangsschaltungen 230 kann
mit Flip-Chip-Packaging verwendet werden und wird Störungen des
Routings der Signale zu Eingangs- und Ausgangsschaltungen minimieren.
-
3 zeigt
ein vereinfachtes Blockdiagramm des LABs 200 von 2.
Der LAB 200 besteht aus einer variierenden Zahl von Logikelementen
(LEs) 300, die manchmal als „Logikzellen" bezeichnet werden,
und einer lokalen (oder internen) Verbindungsstruktur 310.
Der LAB 200 weist acht LEs 300 auf, doch der LAB 200 kann
eine Zahl von LEs aufweisen, die größer oder kleiner als acht ist.
-
Hier
wird ein allgemeiner Überblick
des LEs 300 gegeben, der ausreicht, um ein Grundverständnis der
vorliegenden Erfindung zu ermöglichen.
Das LE 300 ist der kleinste Logikbaustein eines PLDs. Signale,
die extern zum LAB sind, wie z.B. von GHs 210 und GVs 220,
werden auf programmierbare Weise durch die lokale Verbindungsstruktur 310 mit
dem LE 300 verbunden. In einer Ausführungsform enthält das erfindungsgemäße LE 300 einen
Funktionsgenerator, der programmierbar ist, um eine logische Funktion
mit einer Anzahl von Variablen durchzuführen, wie z.B. eine Boolesche
Operation mit vier Variablen. Neben kombinatorischen Funktionen
unterstützt
das LE 300 sequentielle und registrierte Funktionen zum Beispiel
durch D-Flipflops.
-
Das
LE 300 stellt kombinatorische und registrierte Ausgaben
bereit, die mit den GHs 210 und GVs 220 außerhalb
des LABs 200 verbindbar sind. Zudem können die Ausgaben vom LE 300 intern
in die lokale Verbindungsstruktur 310 rückgeführt werden; über die
lokale Verbindungsstruktur 310 kann eine Ausgabe von einem
LE 300 auf programmierbare Weise mit den Eingängen anderer
LEs 300 verbunden werden, ohne die GHs 210 und
GVs 220 der globalen Verbindungsstruktur zu benutzen. Die
lokale Verbindungsstruktur 310 erlaubt die Nahverbindung
von LEs ohne die begrenzten globalen Ressourcen, GHs 210 und
GVs 220, zu in Anspruch zu nehmen.
-
4 zeigt
eine programmierbare Logikarchitektur. Die Architektur in
4 umfaßt außerdem (kleine)
Embedded Array Blocks (EABs). EABs enthalten Benutzerspeicher, einen
flexiblen RAM-Block. Eine ausführlichere
Erläuterung
dieser Architektur ist im Altera Data Book (1999) in der Beschreibung
der FLEX 10K-Produktfamilie und auch im
US-Patent Nummer 5.550.782 zu finden.
Einige oder alle Eingangs-/Ausgangselemente können den Ausführungsformen
der vorliegenden Erfindung entsprechen. Die Embedded Array Blocks
können
als FIFOs konfiguriert sein, die als Frequenzumsetzer und Seriell-Parallel-Umsetzer
wirken, um als Schnittstelle zwischen den High-Speed-Eingängen und
Ausgängen
und den die Logic Array Blocks enthaltenden Kernschaltungen zu dienen.
Andere Architekturen wie Alteras Produktfamilien APEX
TM und
Stratix
TM werden in ihren jeweiligen Datenblättern im
Detail beschrieben, die von Atera Corporation, 101 Innovation Drive,
San Jose, CA 95134 erhältlich
sind.
-
5 ist
ein Blockdiagramm, das Eingangs- und Ausgangsschaltungen nach einer
Ausführungsform
der vorliegenden Erfindung zeigt. Eingeschlossen sind eine Low-Speed-Ausgangsschaltung 530, ein
Low-Speed-Ausgangspuffer 550, eine High-Speed-Ausgangsschaltung 535,
ein High-Speed-Ausgangspuffer 555, ein Low-Speed-Eingangspuffer 560,
eine Low-Speed-Eingangsschaltung 540, ein High-Speed-Eingangspuffer 565,
eine High-Speed-Eingangsschaltung 545,
Multiplexer 570 und 575, und Pads P1 510 und
P2 520. Die Low-Speed-Ausgangsschaltung 530 und
der Low-Speed-Ausgangspuffer 550 formen einen Low-Speed-Ausgangsweg, um dem
Pad P1 510 Signale von Kernschaltungen zuzuführen. Ein High-Speed-Ausgangsweg wird
durch die High-Speed-Ausgangsschaltung 535 und den High-Speed-Ausgangspuffer 555 bereitgestellt.
Dieser Weg empfängt
Signale von FIFOs oder anderen Kernschaltungen und stellt eine Differentialausgabe an
Pads P1 510 und P2 520 bereit.
-
Der
Low-Speed-Eingangspuffer 560 und die Low-Speed-Eingangsschaltung 540 formen
einen Low-Speed-Eingangsweg, um am Pad P1 510 Signale zu
empfangen und den Kernschaltungen Ausgaben bereitzustellen. Ein
High-Speed-Eingangsweg wird durch einen High-Speed-Eingangspuffer 565 und
eine High-Speed-Eingangsschaltung 545 bereitgestellt. Dieser
Weg empfängt
an Pads P1 510 und P2 520 Differentialeingaben
und führt
die Signale FIFOs oder anderen Schaltungen im Kern zu.
-
Zusätzlich stellt
der Multiplexer 570 einen Low-Speed-Weg bereit, der die
Low-Speed-Ausgangsschaltung 530 und
den High-Speed-Differentialausgangspuffer 555 umfaßt. Auf
diese Weise können
Low-Speed-Signale von den Kernschaltungen als Differentialausgangssignale
bereitgestellt werden. Dementsprechend können Differentialeingangssignale
vom High-Speed-Eingangspuffer 565 empfangen
werden und durch den Multiplexer 575 der Low-Speed-Eingangsschaltung 540 zugeführt werden.
Auf diese Weise kann ein Low-Speed-Differentialeingangssignal empfangen
und an die Kernschaltungen ausgegeben werden.
-
In
einer spezifischen Ausführungsform
der vorliegenden Erfindung sind die Low-Speed-Ausgangsschaltung 530, die
High-Speed-Ausgangsschaltung 535, die Low-Speed-Eingangsschaltung 540 und
die High-Speed-Eingangsschaltung 545 Register mit doppelter
Datenrate. Die Bezeichnungen High-Speed (hohe Geschwindigkeit) und
Low-Speed (niedrige Geschwindigkeit) sind relativ und stehen für keine
spezifische Datenrate.
-
6 ist
ein anderes Blockdiagramm, das Eingangs- und Ausgangsschaltungen
nach einer anderen Ausführungsform
der vorliegenden Erfindung zeigt. Diese Zeichnung wird wie alle
anderen Zeichnungen nur als Beispiel gezeigt und schränkt die möglichen
Ausführungsformen
der Erfindung oder die Ansprüche
in keiner Weise ein.
-
Eingeschlossen
sind Pads P1 610 und P2 620, ein Eingangsblock
IN1 650, ein Ausgangsblock OUT1 670, ein High-Speed-Ausgangsblock
HSOUT 680, ein High-Speed-Eingangsblock HSIN 690,
ein Ausgangsblock OUT2 675 und ein Eingangsblock IN2 655.
Es sind auch Ansgangs-Enable-Blöcke OE1 660 und
OE2 665 eingeschlossen.
-
Jeder
Eingangs-, Ausgangs- und Ausgangs-Enable-Block kann synchron oder
asynchron sein. In einer Ausführungsform
sind globale (GLCK) und lokale (LCLK) Taktleitungen 630 und High-Speed-Taktleitungen
(HCLK) 640 vorgesehen. In einer spezifischen Ausführungsform
der vorliegenden Erfindung sind den Schaltungen in der ganzen integrierten
Schaltung mehrere globale Takte mit langsamer oder moderater Geschwindigkeit
verfügbar.
Zusätzlich
sind mehrere lokale Takte mit langsamer oder moderater Geschwindigkeit
verfügbar.
-
Diese
lokalen Takte sind nur einem Teil der integrierten Schaltung verfügbar und
werden zu diesem geroutet, zum Beispiel einem Viertel der integrierten
Schaltung.
-
Zusätzlich zu
diesen langsamen und moderaten Takten sind auch mehrere High-Speed-Takte, HCLKs 640,
verfügbar.
Diese Takte können
wie die lokalen und globalen Taktleitungen Einfach- oder Differentialtakte
sein. Die Begriffe niedriger, moderater und hoher Takt sind relativ
gemeint, und für
den Fachmann versteht es sich, daß, was nun eine hohe Geschwindigkeit
ist, bald eine moderate Geschwindigkeit sein wird.
-
Eingangs-
und Ausgangsleitungen zu und von den Eingangs- und Ausgangsblöcken können direkt
zu und von Logikgattern oder Logic Array Blocks im Kern der integrierten
Schaltung vorgesehen sein. Alternativ dazu können diese Eingangs- und Ausgangssignale
zu und von First-in-first-out (FIFO)-Speichern
zugeführt
werden, die als Datenpuffer oder Frequenzumsetzer dienen können.
-
Diese
Eingangs- und Ausgangsschaltungen sind derart wählbar, daß die Pads P1 610 und
P2 620 bereitstellen können:
einen
High-Speed-Differentialausgang;
einen High-Speed-Differentialeingang;
einen
moderaten oder Low-Speed-Differentialausgang;
einen moderaten
oder Low-Speed-Differentialeingang;
zwei Eintakteingänge;
zwei
Eintaktausgänge;
oder
einen Eintakteingang und einen Eintaktausgang.
-
Signalwege
sind durch Multiplexersignale, öffnende
und kurzschließende
Durchlass-Bauelemente
oder durch Verwendung anderer Wählstrukturen
wählbar.
Eine spezifische Ausführungsform
verwendet Multiplexer, um Schaltungen mit den Eingangs- und Ausgangspads
zu verbinden oder von diesen zu trennen. Die Eingangs- und Ausgangsschaltungen
anderer Ausführungsformen
können derart
wählbar
sein, daß sie
mehr, andere oder weniger Arten von Eingängen und Ausgängen als
in der obigen Liste bereitstellen.
-
Wenn
die Schaltung in 6 als High-Speed-Ausgang konfiguriert
ist, ist der High-Speed-Ausgangsblock
HSOUT 680 gewählt, während die
anderen Blöcke
deaktiviert sind. Das Ausgangssignal DOH wird auf der Leitung 684 empfangen.
Das Signal DOH kann von Logikgattern im Kern der integrierten Schaltung
oder von einem FIFO empfangen werden. DOH kann zum Beispiel von
einem FIFO bereitgestellt werden, der von Schaltungen in der integrierten
Schaltung Daten mit einer niedrigen oder moderaten Frequenz empfängt und Daten
mit einer höheren
Frequenz ausgibt. Ein Taktsignal wird auf der Leitung 682 empfangen,
die durch Durchlass-Gatter 642 auf selektive Weise mit
einem der High-Speed-Takte 640 gekoppelt ist. Ein Ausgangs-Enable-Signal
OEH wird auf der Leitung 683 empfangen, das die High-Speed-Ausgangsschaltung aktiviert
oder deaktiviert. High-Speed-Differentialausgänge werden an den Pads P1 610 und
P2 620 bereitgestellt.
-
Wenn
die Schaltung in 6 konfiguriert ist, um einen
High-Speed-Differentialeingang bereitzustellen, ist der High-Speed-Eingangsblock 690 gewählt, während die
anderen Eingangs- und
Ausgangsschaltungen abgewählt
sind. Die High-Speed-Differentialeingaben werden an den Pads P1 610 und
P2 620 empfangen. Das High-Speed-Signal DIH wird dem Kern
der integrierten Schaltung auf Leitung 694 zugeführt. Das
Signal DIH kann von High-Speed-Schaltungen
in der integrierten Schaltung empfangen werden, oder es kann von
einem FIFO empfangen werden, dessen Ausgang mit einer geringeren
Geschwindigkeit getaktet wird. Ein High-Speed-Taktsignal wird dem High-Speed-Eingangsblock
auf der Leitung 692 zugeführt, die durch die Durchlass-Bauelemente 644 auf
selektive Weise mit einem der High-Speed-Takte 640 gekoppelt
ist.
-
Diese
Schaltung kann auch so konfiguriert sein, daß jedes Pad einen Eintaktausgang
mit moderater oder geringer Geschwindigkeit bereitstellt. Zum Beispiel
kann der Ausgangsblock OUT1 670 gewählt sein, während der High-Speed-Ausgangsblock HSOUT 680 und
der Eingangsblock IN1 650 abgewählt sind. Der Ausgangsblock
OUT1 670 stellt ein Ausgangssignal auf der Leitung 612 zum
Ausgangspad P1 610 bereit. Das Eingangssignal DO1 wird
auf Leitung 674 empfangen, wieder von Kernschaltungen oder
von einem Umsetz-FIFO. Ein Taktsignal mit niedriger oder moderater
Geschwindigkeit von einem der globalen und lokalen Takte 630 wird
durch das Durchlass-Bauelement 634 auf der Leitung 672 empfangen.
Der Ausgangsblock OUT1 kann durch Ausgangsaktivierungsschaltungen
OE1 660 aktiviert und deaktiviert werden. In diesem spezifischen
Beispiel haben die Ausgangsaktivierungsschaltung 660 und die
Ausgangsschaltung 670 auf Leitung 672 das gleiche
Taktsignal empfangen. In anderen Ausführungsformen können diese
Blöcke
verschiedene Taktsignale empfangen. Der Ausgangsaktivierungsblock OE1 660 empfangt
ein Ausgangs-Enable-Signal 664 vom Kern der integrierten
Schaltung und stellt auf Leitung 661 zum Ausgangsblock
OUT1 670 ein Freigabesignal bereit. Entsprechende Schaltungen
werden vom Ausgangsblock OUT2 675 und dem Ausgangs-Enable-Block
OE2 665 vorgesehen, die mit dem Pad 2 620 gekoppelt
sind.
-
Die
Schaltungen von 6 können auch so konfiguriert sein,
daß ein
oder beide Pads P1 610 und P2 620 auch ein Eintakteingangssignal
empfangen können.
Zum Beispiel kann ein Eintakteingangssignal am Pad P1 610 empfangen
werden und auf Leitung 612 der Eingangsschaltung IN1 650 zugeführt werden.
Die Eingangsschaltung IN1 650 führt dem Rest des Chips auf
Leitung DI1 654 ein Eingangssignal zu. DI1 ist kann Kernschaltungen
in der integrierten Schaltung oder einem FIFO zugeführt werden,
wie zuvor. Ein Taktsignal wird durch Durchlass-Bauelemente 632 von
einem der globalen oder lokalen Takte auf Leitung 652 empfangen.
Eine entsprechende Schaltung wird vom Eingangsblock IN2 655 bereitgestellt,
der mit dem Pad P2 620 gekoppelt ist.
-
Zusätzlich sind
weitere Signalleitungen vorgesehen, wie die Signalleitung 693,
die einen Weg bereitstellt, der diesen Schaltungen erlaubt, als
Differentialeingang mit niedriger oder moderater Geschwindigkeit
konfiguriert zu werden, wobei eine Differentialeingabe, die an Pads
P1 610 und P2 620 empfangen wird, auf Leitung 654 als
eine Ausgabe DI1 bereitgestellt wird. Zusätzlich ist ein Signalweg 673 derart
vorgesehen, daß ein
Ausgangssignal DO1 674 mit moderater oder niedriger Geschwindigkeit, das
vom Ausgangsblock OUT1 670 empfangen wird, den Pads P1 610 und
P2 620 als eine Differentialausgabe zugeführt wird.
-
Die
flexibleren, langsameren Eingangs- und Ausgangsschaltungen bieten
zusätzliche
Konfigurierbarkeit. Zum Beispiel können langsamere Schaltungen
auf selektive Weise eine größere Anzahl
von Taktleitungen koppeln, die bei verschiedenen Frequenzen und
verschiedenen Phasen betrieben werden. Auch JTAG Bounday-Prüfung kann
unterstützt werden.
In einer spezifischen Ausführungsform
ist am Ausgangspuffer oder -treiber ein Ausgangs-Enable-Signal mit genauerer Zeitsteuerung
verfügbar, und
die langsameren Schaltungen können
entweder mit einem FIFO oder direkt mit den Kern-Logic Array Blocks
gekoppelt werden, während
die schnelleren Eingangs- und Ausgangsschaltungen typischerweise die
Frequenzumsetzungsfähigkeiten
eines FIFOs erfordern. Die langsameren Schaltungen schließen auch
Presets, Clear- und Enable-Funktionen ein, im Gegensatz zu nur einer
Clear-Funktion bei der High-Speed-Schaltung. Da die langsameren
Schaltungen zudem Eintaktschaltungen sind, können zwei Pads als zwei Ausgangspads,
zwei Eingangspads oder 1 Eingangs- und 1 Ausgangspad für die Schaltungen
mit niedrigerer Geschwindigkeit verwendet werden, wogegen nur für einen
High-Speed-Eingang oder Ausgang aufgrund ihrer differentialen Beschaffenheit
zwei Pads erforderlich sind.
-
7 ist
ein Blockdiagramm einer Eingangs- und Ausgangsschnittstelle nach
einer Ausführungsform
der vorliegenden Erfindung. Eingeschlossen sind Pads P1 710 und
P2 720, die mit Eingangs- und Ausgangsschaltungen 701 verbunden
sind, welche die Schnittstelle zu Kernschaltungen 702 und
FIFOs 715 und 725 bilden. Oft sind die Kernschaltungen 702 und
FIFOs 715 und 725 im Zentrum einer integrierten
Schaltung angeordnet, während
die Eingangs- und
Ausgangsschaltungen 701 um den Umfang der integrierten
Schaltung herum angeordnet sind und die Pads an ihrer Kante entlang
angeordnet sind.
-
Die
Eingangs- und Ausgangsregister können beide
Register mit doppelter Datenrate sein. Alternativ dazu kann jedes
Register ein Einzelflipflop sein. Dementsprechend kann jede Eingangs-
und Ausgangsleitung vom Register zu den FIFOs 715 und 725 eine
oder mehrere Datenleitungen sein. Wenn zum Beispiel ein Ausgangsregister
ein Register mit doppelter Datenrate ist, kann die gezeigte Eingangsleitung
aus zwei Datenleitungen bestehen. Jede Datenleitung kann eine Leitung
zur Eintaktsignalisierung oder zwei Leitungen zur differentiellen
Signalisierung sein aufweisen. Wenn ein Register mit doppelter Datenrate
mit einem FIFO gekoppelt ist, kann jeder gezeigte FIFO ein einzelner
FIFO mit zwei Ausgängen
oder zwei separate FIFOs sein.
-
Ein
High-Speed-Differentialausgangsweg wird durch den FIFO 715,
das Ausgangsregister 780, den Multiplexer 781 und
den Differentialausgangspuffer oder -treiber 782 bereitgestellt.
Wenn die Schaltung von 7 auf selektive Weise konfiguriert ist,
um einen High-Speed-Differentialausgang
bereitzustellen, sind diese Schaltungen typischerweise auf selektive
Weise aktiviert, während
die anderen Schaltungen deaktiviert sind. Zum Beispiel können die
aktivierten Schaltungen durch einen Multiplexer mit den Ausgangspads
gekoppelt sein, während
die deaktivierten Schaltungen durch andere Multiplexer getrennt
sind. Um Strom zu sparen, können
die Takteingänge
zu den deaktivierten Schaltungen auch getrennt sein, das heißt, nicht
durch ein Durchlass-Bauelement oder eine andere Verbindung mit einer
aktiven Taktleitung verbunden sein. Diese Multiplexer, Durchlass-Bauelemente
und sonstigen Verbindungen können
durch pro grammierbare Bits, dynamische Signale oder durch andere
Mittel gesteuert werden. Programmierbare Bits können in ERPROM-, Flash-, SRAM-,
DRAM-, MRAM-, Kurzschluss-, Sicherungs- oder andere Schaltungen
gespeichert werden. Dynamische Signale können von Kern-Logikblocke,
externe Schaltungen oder anderen Quellen erzeugt werden.
-
Der
FIFO 715 empfangt ein Eingangssignal (nicht gezeigt) von
den Kernschaltungen und stellt eine Ausgabe bereit, die mit der
Eingabe der High-Speed-Ausgangsregister 780 gekoppelt ist.
Oft wirkt der FIFO 715 als ein Puffer und Frequenzumsetzer
zwischen den Kernschaltungen mit niedrigerer Frequenz und dem Hochfrequenz-Differentialausgang.
Das High-Speed-Ausgangsregister 780 wird von
einer der High-Speed-Taktleitungen 740 getaktet. Die Ausgabe
des High-Speed-Registers wird dem Multiplexer 781 zugeführt, der
seinerseits den Ausgangspuffer 782 treibt. Der Ausgangspuffer 782 führt den
Pads P2 720 und P1 710 Umkehr- und Nichtumkehrausgangssignale zu.
Der Differentialausgangspuffer 782 kann Ausgangssignale
bereitstellen, die auf selektive Weise mit einem oder mehreren Standards
oder Konventionen kompatibel sind. Zum Beispiel kann der Ausgangspuffer 782 Ausgangssignale
bereitstellen, die mit einem oder mehreren der folgenden kompatibel
sind: LVDS, LVPECL, Hypertransport und PCML. Diese Hochfrequenz-Eingangs-
und Ausgangsstandards und Konventionen benötigen typischerweise eine differentielle
Signalisierung. Daher erfordern die High-Speed-Eingangs- und Ausgangsschaltungen
oft die Verwendung von zwei Pads.
-
Ein
High-Speed-Differentialeingangsweg wird durch den Differentialeingangspuffer
oder- treiber 791,
das High-Speed-Eingangsregister 790, den Multiplexer 793 und
den FIFO 725 bereitgestellt. Wenn die Eingangs- und Ausgangsschaltungen
von 7 auf selektive Weise konfiguriert sind, um einen High-Speed-Differentialeingang
bereitzustellen, sind diese Schaltungen typischerweise aktiviert,
während die
restlichen Schaltungen deaktiviert sind. Ein High-Speed-Differentialeingangssignal
wird an den Pads PA 710 und P2 720 empfangen und
dem Differentialeingangspuffer 791 zugeführt, der
dem High-Speed-Eingangsregister 790 ein Eingangssignal
zuführt.
Das High-Speed-Eingangsregister 790 stellt durch den Multiplexer 793 eine
Ausgabe zum FIFO 725 bereit. Das High-Speed-Eingangsregister 790 wird
von einem der High-Speed-Takte HCLKs 740 getaktet. Der
FIFO 725 gewährleistet
typischerweise eine Frequenzumsetzung für die High-Speed-Eingangsregister
zu den langsameren Kernschaltungen im Kern 702. Der Differentialeingangspuffer 791 kann
Eingangssignale empfangen, die mit einem oder mehreren Standards
oder Konventionen kompatibel sind. Zum Beispiel kann der Eingangspuffer 791 Eingangssignale
empfangen, die kompatibel mit einem oder mehreren des Folgenden sind:
LVDS, LVPECL, Hypertransport und PCML.
-
Ein
Eintaktausgangssignal kann durch das Ausgangsregister 770 und
den Ausgangspuffer oder- treiber 771 am
Pad P1 710 bereitgestellt werden. Wenn ein Eintaktausgangssignal
am Pad 710 bereitgestellt wird, sind diese Schaltungen
typischerweise aktiv, während
die anderen zugehörigen
Schaltungen in den Eingangs- und Ausgangsschaltungen 701 wie z.B.
das Eingangsregister 750, der Eingangspuffer 751,
das High-Speed-Ausgangsregister 780 und das High-Speed-Eingangsregister 790 inaktiv
sind. Signale werden am Ausgangsregister 790 von Kernschaltungen 702 oder
vom FIFO 715 empfangen. Das Ausgangsregister 770 führt Ausgangssignale dem
Eintaktausgangspuffer 771 zu, der seinerseits das Pad P1 710 treibt.
Der Ausgangspuffer 771 kann durch das Ausgangs-Enable-Register 760 aktiviert oder
deaktiviert werden. Das Ausgangsregister 770 und das Ausgangs-Enable-Register 760 können durch
wahre oder komplementäre
Versionen eines der globalen oder lokalen Takte 730 getaktet
werden. In diesem spezifischen Beispiel sind Taktmultiplexer 763 und 773,
die jeweils das Ausgangs-Enable-Register 760 und
das Ausgangsregister 770 takten, mit der gleichen Taktleitung
gekoppelt. In anderen Ausführungsformen
können
diese Multiplexer mit verschiedenen Taktleitungen gekoppelt sein.
Der Ausgangspuffer 771 kann Ausgaben bereitstellen, die
mit einem oder mehreren Standards oder Konventionen kompatibel sind.
Zum Beispiel kann der Ausgangspuffer 771 Signale bereitstellen,
die mit einem oder mehreren des Folgenden kompatibel sind: LVTTL, LVCMOS,
SSTL und TTL. Dementsprechend können Eintaktausgangssignale
dem Pad P2 720 durch das Ausgangsregister 775 und
den Ausgangspuffer 776 zugeführt werden, das vom Ausgangs-Enable-Register 765 aktiviert
wird.
-
Eintakteingangssignale
können
vom Pad P1 710 mit dem Eingangspuffer 751 und
dem Eingangsregister 750 empfangen werden. Wenn am Pad
P1 Eintakteingangssignale empfangen werden, sind diese Schaltungen
typischerweise aktiv, während
die anderen zugehörigen
Schaltungen wie z.B. das Ausgangsregister 770, der Ausgangspuffer 771,
das Ausgangs-Enable-Register 760,
das High-Speed-Ausgangsregister 780 und das High-Speed-Eingangsregister 790 inaktiv
sind. Am Pad P1 710 empfangene Signale werden auf der Leitung 712 zum
Eingangspuffer 751 geroutet. Der Eingangspuffer 751 kann
einem oder mehreren Standards oder Konventionen entsprechen. Zum
Beispiel kann der Eingangspuffer 751 einem oder mehreren von
Folgendem entsprechen: LVTTL, LVCMOS, SSTL und TTL. Der Eingangspuffer 751 führt ein
Eingangssignal dem Eingangsregister 750 zu, das seinerseits
den FIFO 725 oder andere Schaltungen im Kern 702 treiben
kann. Das Eingangsregister 750 wird vom Multiplexer 753 durch
wahre oder komplementäre
Versionen eines Taktsignals von einer der globalen oder lokalen
Taktleitungen 730 getaktet. Dementsprechend können Eintakteingangssignale vom
Pad P2 720 durch den Puffer 756 empfangen werden,
der das Eingangsregister 755 treibt.
-
Diese
Eingangs- und Ausgangsschaltungen 701 können auf selektive Weise in
anderen Konfigurationen aktiviert werden. Zum Beispiel kann die
Ausgabe des Differentialeingangspuffers 791 durch den Multiplexer 752 zum
Eingangsregister 750 geroutet werden. Auch die Ausgabe
des Ausgangsregisters 770 kann durch den Multiplexer 781 zum
Differentialausgangspuffer 782 geroutet werden. In anderen Ausführungsformen
der vorliegenden Erfindung können
andere Kombinationen von Eingangs- und Ausgangsschaltungen 701 auf
selektive Weise aktiviert werden und auf selektive Weise mit FIFOs 715 und 725 und
Kernschaltungen 702 gekoppelt werden.
-
Die
FIFOs 715 und 725 gewährleisten eine Frequenzumsetzung
zwischen den High-Speed-Eingangs-
und Ausgangsschaltungen und den langsameren Kern-Logic Array Blocks.
Das heißt,
jeder FIFO kann aus einem Small Embedded Array Block (SEAB) oder
aus einem anderen eingebetteten Speicherblock bestehen. Ein SEAB
ist ein eingebetteter Speicherblock-Typ, der in Alters Stratix-Geräten zu finden
ist. Wenn die Schaltung von 7 als High-Speed-Eingang
konfiguriert ist, werden Datensignale vom High-Speed-Eingangsregister 790 seriell
empfangen und vom FIFO 725 gespeichert. Diese Daten können vom
FIFO 725 auf eine von zwei Weisen mit einer niedrigeren
Frequenz ausgegeben werden. Zuerst kann der Leseanschluss des FIFOs 725 breiter
als sein Schreibanschluss sein. Dadurch führt der FIFO 725 eine
Seriell-Parallel-Umwandlung durch,
die die High-Speed-Eingangsdaten in eine niedrigere Frequenz umwandelt.
Zweitens kann der Leseanschluss des FIFOs 725 bei einer
niedrigeren Frequenz getaktet sein als sein Schreibanschluss. Dadurch
werden High-Speed-Daten, die mit einer höheren Frequenz seriell geschrieben
werden, mit einer niedrigeren Frequenz seriell gelesen. In diesem
Fall ist darauf zu achten, daß Pufferüberläufe vermieden werden.
Wenn die Schaltung von 7 als High-Speed-Ausgang konfiguriert
ist, können
Datensignale von den Kern-Logic Array Blocks seriell oder parallel
vom FIFO 715 empfangen werden. Wenn Daten vom FIFO 715 parallel
empfangen werden, können
sie zum High-Speed-Ausgangsregister 770 seriell ausgelesen
werden. Dies gewährleistet
wieder eine Frequenzumsetzung von den langsameren Kern-Logic Array
Blocks zum High-Speed-Ausgangsregister 770. Wenn Daten
alternativ dazu vom FIFO 715 seriell empfangen werden,
können
sie mit einer höheren
Frequenz seriell ausgetaktet werden und dem Ausgangsregister 770 zugeführt werden.
In diesem Fall ist darauf zu achten, daß Pufferunterläufe vermieden
werden.
-
8A ist
ein Blockdiagramm, das mehr Details eines High-Speed-Differentialausgangs
zeigt, das als HSOUT 680 in 6, das High-Speed-Ausgangsregister 780 und
der Differentialausgangspuffer 782 in 7 oder
andere Schaltungen in anderen Ausführungsformen der vorliegenden
Erfindung verwendet werden kann. Eingeschlossen sind FIFOs 825a und 825b,
Flipflops 880a und 880b, ein Multiplexer 850 und
ein Ausgangspuffer 882. Die FIFOs 825a und 825b können alternativ
dazu ein FIFO mit zwei Ausgängen
sein. Die Flipflops 880a und 880b und der Multiplexer 850 formen
ein Ausgangsregister mit doppelter Datenrate. Ein zweiter Multiplexer,
der mit dem Ausgang des Multiplexers 850 verbunden ist,
kann zur Bereitstellung eines anderen Signalwegs für den Zugriff
auf den Differentialausgangspuffer 882 verwendet werden.
Dieser zweite Multiplexer kann auch benutzt werden, um die High-Speed-Register
vom Ausgangspuffer zu trennen, wenn der High-Speed-Ausgang deaktiviert
und nicht gewählt ist.
Zusätzliche
Multiplexer oder Durchlass-Bauelemente können in die Registerdaten-
und Takteingabewege eingefügt
werden, um diesen Weg zu deaktivieren und Strom zu sparen. Für den Fachmann
versteht es sich, daß an
diesen Schaltungen andere Modifikationen vorgenommen werden können, die
der vorliegenden Erfindung entsprechen.
-
Eingangssignale
werden auf Leitungen DIN1 821 und DIN2 822 von
FIFOs 825a und 825b empfangen. In diesem Beispiel
werden die Eingangssignale durch globale oder lokale Takte 830,
die von Durchlass-Bauelementen 834 und 832 gewählt werden,
in die FIFOs eingetaktet. Der FIFO 825a stellt eine Ausgabe
bereit, die vom Flipflop 880a empfangen wird. Der FIFO 825b stellt
eine Ausgabe bereit, die vom Flipflop 880b empfangen wird.
Die Ausgangssignale der FIFOs 825a und 825b werden durch
High-Speed-Taktleitungen 840 getaktet, die von Durchlass-Bauelementen 846 und 844 gewählt werden.
Auch die Flipflops 880a und 880b werden von einer
der High-Speed-Taktleitungen 840 getaktet, die vom Durchlass-Bauelement 842 gewählt wurde.
Die Ausgaben der Flipflops 880a und 880b werden
dem Multiplexer 850 als Ausgabe zugeführt, dessen Ausgang durch das
gleiche Taktsignal wie das von den Flipflops empfangene gewählt wird.
Die Ausgabe des Multiplexers 850 wird dem High-Speed-Differentialausgangspuffer 882 zugeführt, der
seinerseits die Pads P1 810 und P2 820 treibt.
-
Durch
Multiplexieren zwischen Flipflops 880a und 880b bei
jedem Taktzyklus entspricht die Datenrate des Ausgangssignals dem
Zweifachen von der der Flipflopausgaben Q1 811 und Q2 812. Überdies
können
Daten an den FIFO-Eingängen DIN1 821 und
DIN2 822 parallel empfangen werden. Zum Beispiel können vier
Datenbits vom FIFO 825a am Eingang DIN1 821 empfangen
werden, und vier Datenbits können
vom FIFO 825b am Eingang DIN2 822 empfangen werden,
Vier Bits von jedem FIFO können
mit der vierfachen Datenrate der Datenübertragung an DIN1 821 und
DIN2 822 in die Flipflops 880a und 880b eingetaktet
werden. Durch Multiplexieren der Ausgaben der Flipflops 880a und 880b mit dem
Multiplexer 850 wird die Datenrate erneut effektiv verdoppelt,
was im Vergleich zu DIN1 821 und DIN2 822 eine
Erhöhung
in der Datenrate von VOUT um einen Faktor acht ergibt. In anderen
Ausführungsformen
können
mehr oder weniger als vier Bits von FIFOs parallel empfangen werden,
was zu höheren oder
niedrigeren Datenumsetzungsgeschwindigkeiten führt.
-
Wenn
der Ausgang des FIFOs 825a auf logisch eins gehalten wird
und der Ausgang des FIFOs 825b auf logisch null gehalten
wird, ist das resultierende Ausgangssignal ein High-Speed-Takt,
der alternierende Nullen und Einsen aufweist. Das heißt, wenn
DIN1 auf Leitung 811 auf logisch eins gehalten wird und
DIN2 auf Leitung 822 auf logisch null gehalten wird, ist
die Ausgabe des FIFOs 825a und daher Q1 auf Leitung 811 logisch
eins, während
die Ausgabe des FIFOs 825b und daher Q2 auf Leitung 812 logisch
null ist. Der Multiplexer 850 wählt alternierend zwischen dem
Eins-Signal Q1 auf Leitung 811 und dem Null-Signal Q2 auf
Leitung 812, wodurch ein Taktsignal erzeugt wird. Alternativ
dazu können
die Flipflops 880a und 880b mit Multiplexer gekoppelt werden,
die als wählbare
Eingaben logisch eins- oder logisch null-Pegel haben.
-
Eine
Clear-Leitung ist auf der Leitung 885 zu den Flipflops 880a und 880b vorgesehen.
Um die höchstmögliche Geschwindigkeit
zu erreichen, ist es wünschenswert,
die Funktionalität
der Flipflops 880a und 880b zu begrenzen. Daher
weisen diese Flipflops keine Preset- oder Enable-Leitungen auf. In anderen Ausführungsformen
können
diese Leitungen enthalten sein. In anderen Ausführungsformen kann keine Clear-Leitung
enthalten sein, wodurch der Aufbau der Flipflops 880a und 880b sogar
zusätzlich vereinfacht
wird.
-
8B veranschaulicht
eine anpassbare Verzögerungsleitung,
die in spezifischen Ausführungsformen
der vorliegenden Erfindung verwendet werden kann. Zum Beispiel kann
die Eingangsleitung 815a mit dem Ausgang des Multiplexers 850 gekoppelt
sein, während
die Ausgangsleitung 815b mit dem Eingang des High-Speed-Differentialausgangspuffers 882 gekoppelt
ist. Die anpassbare Verzögerungsleitung
umfaßt
eine Verzögerungsleitung 860 und
einen Multiplexer 870. Signale, die auf Leitung 815a empfangen
werden, werden verzögert
und auf Leitungen 861, 862 und 863 als
Ausgaben bereitgestellt. Diese Leitungen können Anzapfungen und einer
Ausgabe einer Verzögerungsleitung
entsprechen. Diese Leitungen sind zusammen mit dem Eingangssignal
auf Leitung 815a vom Multiplexer 870 wählbar und
werden auf der Leitung 815b ausgegeben. Auf diese Weise
kann die Takt-zu-Q-Verzögerung
des Differentialausgangs angepasst werden. Dies ist sinnvoll, um
die Setup- und Hold-Zeiten zu optimieren. Entsprechende anpassbare
Verzögerungsleitungen
können
in jeder der enthaltenen Eingangs- und Ausgangsschaltungen an einer
geeigneten Stelle eingefügt
werden.
-
9A ist
ein Ablaufdiagramm, das die Arbeitsweise der Ausgangsschaltung von 8A veranschaulicht.
Eingeschlossen sind FIFO-Eingangssignale DIN1 921a und
DIN2 922a, Flipflop-Ausgaben Q1 911a und Q2 912a,
das Taktsignal 986a und die Ausgangsspannung Vout 910a.
In diesem Beispiel ist der Schreibanschluss des FIFOs vier Bits
breit, und ein Teil des FIFO-Eingangssignals DIN1 921 umfaßt vier
Eingangsbits A, B, C und D, jedes auf einer Eingangsleitung. Ein
Teil des FIFO-Eingangssignals DIN2 922 umfaßt Bits
E, F, G und H, jedes auf einer Eingangsleitung. Die FIFOs speichern
diese Eingangssignale und senden sie an die Flipflops 880a und 880b.
Diese Flipflops werden durch das Taktsignal 986 getaktet
und geben Daten mit der vierfachen Frequenz der Datenrate am Eingang
der FIFOs 825a und 825b aus. Der Multiplexer 850 wählt alternierend zwischen
seinen Eingängen,
wodurch er die Datenrate verdoppelt und Daten von den Ausgängen der Flipflops
verschachtelt. Dadurch wird den Pads P1 810 und P2 820 Vout 910a zugeführt, das
Ausgabebits in der Folge A, E, B, F, C, G, D und H enthält. Wie zu
ersehen ist, entspricht die Datenrate von Vout 910a dem
Achtfachen der Datenrate der vier Eingangssignale, aus denen DIN1 921a und
DIN2 922a zusammengesetzt sind. In diesem spezifischen
Beispiel sind DIN1 921a und DIN2 922a vier Bit
breit. In anderen Ausführungsformen
können
sie mehr oder weniger als vier Bits breit sein.
-
9B ist
ein Ablaufdiagramm, das eine andere Arbeitsweise der Ausgangsschaltung
von 8A veranschaulicht. Eingeschlossen sind FIFO-Eingangssignale
DIN1 921 und DIN2 922, die Flipflop-Ausgaben Q1 911 und
Q2 912, das Taktsignal 986 und die Ausgangsspannung
Vout 910. In diesem Beispiel umfaßt ein Teil des FIFO-Eingangssignals
DIN1 921 vier Eingangsbits A, B, C und D. Ein Teil des
FIFO-Eingangssignals DIN2 922 umfaßt Bits E, F, G und H, jedes
auf einer Eingangsleitung. Die FIFOs speichern diese Eingangssignale
und senden sie später
an die Flipflops 880a und 880b. Diese Flipflops
werden durch das Taktsignal 986 getaktet und geben Daten
mit höherer
Frequenz als die Datenrate am Eingang der FIFOs 825a und 825b aus.
Der Multiplexer 850 wählt
alternierend zwischen seinen Eingängen, wodurch er die Daten
von den Ausgängen der
Flipflops verschachtelt. Dadurch werden den Pads P1 810 und
P2 820 Ausgabebits in der Folge A, E, B, F, C, G, D und
H zugeführt.
-
10 ist
ein Blockdiagramm, das mehr Details eines High-Speed-Differentialeingangs
zeigt, der als HSIN 690 in 6, das High-Speed-Eingangsregister 790 und
der Differentialeingangspuffer 791 in 7 oder
andere Schaltungen der vorliegenden Erfindung verwendet werden kann.
Eingeschlossen sind FIFOs 1025a und 1025b, Flipflops 1090b und 1090c,
ein Latch 1090a und ein Eingangspuffer 1091. Die
FIFOs 1025a und 1025b können alternativ dazu ein FIFO
mit zwei Eingängen
sein. Wie in den anderen Zeichnungen können diese FIFOs zum Beispiel
ein FIFO mit zwei Eingangs- und zwei Ausgangsanschlüssen sein.
Die Eingangs- und Ausgangsanschlüsse
können
auch konfigurierbar sein, und die Eingangsanschlüsse können einen Takt gemeinsam benutzen,
während
die Ausgangsanschlüsse
einen anderen Takt gemeinsam benutzen.
-
Die
Flipflops 1090b und 1090c und das Latch 1090c formen
ein Eingangsregister mit doppelter Datenrate. Das Latch 1090a kann
alternativ dazu in ein drittes Flipflop sein. Multiplexer oder Durchlass-Bauelemente
können
in die Eingangswege von CLK 1043, Q1 1062, Q2 1061 oder
der Registerdaten eingefügt
werden, um diesen High-Speed-Eingangsweg zu deaktivieren und Strom
zu sparen. Für
den Fachmann versteht es sich, daß an diesen Schaltungen andere
erfindungsgemäßen Modifikationen
vorgenommen werden können.
-
Eingangssignale
werden an den Pads P1 1010 und P2 1020 vom Eingangspuffer 1091 empfangen.
Der Eingangspuffer 1091 führt den Flipflops 1090b und 1090c Eingaben
zu. Ein High-Speed-Taktsignal wird durch Durchlass-Bauelemente 1042 von
einer der HCLK-Taktleitungen 1040 gewählt. Das Taktsignal wird auf
der Leitung 1043 an den Flipflop 1090c und das
Latch 1090a angelegt und wird durch einen Inverter 1050 invertiert
und an ein Flipflop 1090b gesendet. Daten vom Eingangspuffer 1091 werden
bei steigenden Taktflanken vom Flipflop 1090c und gelatcht
und bei fallenden Taktflanken an den Flipflop 1090b gesendet.
Daten vom Eingangspuffer 1091 werden bei steigenden Taktflanken
vom Flipflop 1090c gelatcht und bei fallenden Taktflanken
vom Flipflop 1090b. Daten, die vom Flipflop 1090b gespeichert
werden, werden vom Latch 1090a wieder eingetaktet, wodurch
Signale Q2 1061 und Q3 1062 bei steigenden Taktflanken
an die FIFOs 1025a und 1025b gesendet werden,
die FIFOs 1025a und 1025b die Daten Puffern und
sie auf Leitungen DOUT1 1026 und DOUT2 1027 mit
einer niedrigeren Frequenz den Kernschaltungen zuführen.
-
Weil
das Signal Vin 1012 bei steigenden Taktflanken vom Flipflop 1090c und
bei fallenden Taktflanken vom Flipflop 1090b gelatcht wird,
entspricht die bei Q3 1062 und Q2 1061 resultierende Datenrate
der Hälfte
von der von Vin 1012. Mit anderen Worten, die Flipflops 1090a und 1090b führen eine
Zweibit-Seriell-Parallel-Umwandlung der Eingangsdaten durch. Dieses
Konzept kann auf die FIFOs 1025a und 1025b ausgeweitet
werden. Zum Beispiel können
vier Bits, die seriell empfangen werden, von den FIFO-Ausgängen DOUT1 1026 und DOUT2 1027 parallel
ausgegeben werden. Auf diese Weise wird eine Frequenzumsetzung um
einen Faktor von acht vom Eingangssignal Vin 1012 zu DOUT1 1026 und
DOUT2 1027 erreicht. In anderen Ausführungsformen können mehr
oder weniger als 4 Bit von den FIFOs 1025a und 1025b von
serielle in parallele Daten umgewandelt werden, wodurch eine andere Gesamtfrequenzumwandlung
erreicht wird.
-
11A ist ein Ablaufdiagramm, das die Arbeitsweise
der Eingangsschaltung von 10 veranschaulicht.
Eingeschlossen sind das Taktsignal 1143a, das Eingangssignal 1112a,
Flipflop-Ausgaben Q1 1160a und
Q2 1161a, die Latch-Ausgabe Q3 1162a und die FIFO-Ausgaben
DOUT1 1126a und DOUT2 1127a. In diesem Beispiel
umfaßt
ein Teil des Eingangssignals VIN 1112a die Datenbitfolge
A, B, C, D, E, F und G. Das Taktsignal 1143a latcht das
Eingangssignal 1112a bei alternierenden steigenden und
fallenden Flanken in jedes Flipflop, was Wellenformen Q1 1160a und
Q2 1161a ergibt. Das Taktsignal 1143a ist typischerweise
in Quadratur mit dem Eingangssignal VIN 1112a. Dies wird
als „Fensterzentrierung" bezeichnet und minimiert
Datenfehler im Eingangsregister. Q1 1160a wird durch das
Latch 1090a um einen halben Taktzyklus verzögert, um
das Signal 1162a zu ergeben. Diese Signale Q2 1161a und
Q3 1162a werden von den FIFOs 1025a und 1025b gespeichert
und mit geringerer Frequenz als Wellenformen DOUT1 1126a und
DOUT2 1127a ausgegeben.
-
11B ist ein Ablaufdiagramm, das eine alternative
Arbeitsweise der Eingangsschaltung von 10 zeigt.
Eingeschlossen sind das Taktsignal 1143b, das Eingangssignal 1112b,
Flipflop-Ausgaben
Q1 1160b und Q2 1161b, die Latch-Ausgabe Q3 1162b und
die FIFO-Ausgaben DOUT1 1126b und DOUT2 1127b.
In diesem Beispiel umfaßt
ein Teil des Eingangssignals VIN 1112b die Datenbitfolge
A, B, C, D, E, F und G. Das Taktsignal 1143b latcht das
Eingangssignal 1112b bei alternierenden steigenden und
fallenden Flanken in jedes Flipflop, was zu Wellenformen Q1 1160b und
Q2 1161b führt.
Q1 1160b wird durch das Latch 1090a um einen halben
Taktzyklus verzögert.
Diese Signale Q2 1161b und Q3 1162b werden von
den FIFOs 1025a und 1025b gepuffert und mit geringerer
Frequenz als Wellenformen DOUT1 1126b und DOUT2 1127b ausgegeben. Wieder
ist das Taktsignal 1143b oft in (oder nahezu) in Quadratur
mit dem Eingangssignal 1112b. Alternativ dazu kann das
Eingangssignal so getaktet werden, daß die Setup- und Hold-Zeiten
der Eingangsflipflosp eingehalten werden.
-
12 ist
ein detaillierteres Blockdiagramm einer Ausgangsschaltung, die als
die Ausgangs- und Ausgangs-Enable-Schaltungen 670 und 660 in 6 oder
als Ausgangsregister 770, Ausgangs-Enable-Register 760 und
Ausgangspuffer 771 und 782 in 7 oder
als andere Schaltungen in anderen Ausführungsformen der Erfindung
verwendet werden können.
Eingeschlossen sind Ausgangsregister 1270a und 1270b,
Multiplexer 1260 und 1290, ein Taktmultiplexer 1273,
ein Eintaktausgangspuffer 1271, ein Differentialausgangspuffer 1282,
Ausgangs-Enable-Register 1250a und 1250b und ein ODER-Gatter 1295.
Multiplexer oder Durchlass-Bauelemente können in die Registerdaten-
und Takteingabewege eingefügt
werden, um diesen Ausgangsweg zu deaktivieren. Zusätzlich können Multiplexer verwendet
werden, um einen Ausgabeweg direkt von einem Register oder den Kernschaltungen
zu einem oder beiden Ausgangspuffer bereitzustellen. Für den Fachmann
versteht es sich, daß andere
Modifikationen an dieser Schaltung vorgenommen werden können, die
der vorliegenden Erfindung entsprechen.
-
Datensignale
werden auf Leitungen 1274a und 1274b von den Kernschaltungen
oder FIFOs empfangen. Ein Taktsignal auf Leitung 1277 wird durch
Durchlass-Bauelemente 1232 von einem der globalen oder
lokalen Takte 1230 ausgewählt. Der Taktmultiplexer 1273 wählt wahre
oder komplementäre
Versionen dieses Taktsignals aus und treibt die Takteingänge der
Flipflops 1270a und 1270b und den Wähleingang
des Datenmultiplexers 1260. Ausgaben werden von den Flipflops 1270a und 1270b dem Multiplexer 1260 zugeführt, wo
sie verschachtelt werden und verwendet werden, um jeden der Ausgabepuffer 1271 oder 1282 zu
treiben. Wenn der Ausgangspuffer 1271 gewählt ist,
treibt er einen Eintaktausgang am Pad P1 1210. Wenn der
Ausgangspuffer 1282 aktiv ist, treibt er einen Differentialausgang
an Pads P1 1210 und P2 1220.
-
Der
Ausgangspuffer 1271 wird durch das ODER-Gatter 1295 aktiviert,
welches durch Enable-Register 1250a und 1250b getrieben
wird. Das heißt,
ein Ausgangs-Enable-Signal wird auf Leitung 1254 vom Flipflop 1250a empfangen,
der den Flipflop 1250b treibt. Die Ausgaben der Flipflops 1250a und 1250b werden
vom ODER-Gatter 1290, das den Enable-Eingang des Ausgangspuffers 1271 treibt, ODER-verknüpft. Diese
Konfiguration erlaubt den Enable-Registern,
den Ausgangspuffer 1271 bei aufeinanderfolgenden steigenden
und fallenden Flanken (oder aufeinanderfolgenden fallenden und steigenden
Flanken) zu aktivieren und zu deaktivieren.
-
Auf
diese Weise kann der Ausgangspuffer 1271 auf dynamische
Weise „tristated" oder aktiviert werden.
Alternativ dazu kann der Multiplexer 1290 logisch eins
(oder VCC) wählen,
wodurch der Flipflop 1250b gelöscht wird. Dies erlaubt dem
Flipflop 1250a, den Ausgangspuffer 1271 bei aufeinanderfolgenden
steigenden Flanken des CLK1-Signals auf Leitung 1257 zu
aktivieren und zu deaktivieren. In jedem dieser Fälle können eine
oder mehrere Takte zwischen Aktivierung und Deaktivierung (oder
Deaktivierung und Aktivierung) vorhanden sein.
-
Da
dieser Signalweg allgemein dazu bestimmt ist, um für Signale
mit niedriger und moderater Frequenz verwendet zu werden, können die
Flipflops 1270a und 1270b und der Ausgangspuffer 1271 einen
höheren
Grad an Funktionalität
unterstützen
als die Flipflops und der Ausgangspuffer, die in Signalwegen mit
höherer
Geschwindigkeit verwendet werden. In diesem Beispiel weist jedes
Flipflop Preset-, Clear- und Enable-Signaleingänge auf, die diesem zugeordnet
sind, während
der Ausgangspuffer einen Enable-Eingang aufweist, sodaß er einen
Ausgang mit hoher Impedanz bereitstellen kann. In diesem Beispiel
sind die Datenausgangsflipflops und Ausgangs-Enable-Flipflops mit
separaten Preset-, Enable- und Clear-Leitungen versehen. In anderen
Ausführungsformen
können
die Signalleitungen miteinander gekoppelt sein, oder einige dieser
Funktionen können
entfallen. Alternativ dazu kann jedes Flipflop eine separate Signalleitung
für eine
oder mehrere dieser Funktionen aufweisen. Auch andere Signale können von
diesen Schaltungen unterstützt
werden.
-
13 ist
ein detailliertes Blockdiagramm, das eine Eingangsschaltung zeigt,
die als die Eingangsschaltung 650 in 6,
das Eingangsregister 750 und der Eingangspuffer 751 von 7 oder
andere Schaltungen in anderen Ausführungsformen der Erfindung
verwendet werden kann. Eingeschlossen sind ein Eintakteingangspuffer 1351,
ein Differentialeingangspuffer 1391, ein Latch 1350a,
Flipflops 1350b und 1350c und ein Taktmultiplexer 1353.
Alternativ dazu kann das Latch 1350a ein Flipflop sein. Multiplexer
können
in die Registerdaten- oder Takteingabewege eingefügt werden,
um diesen langsameren Eingangsweg zu deaktivieren. Für den Fachmann
versteht es sich, daß an
dieser Schaltung andere Modifikationen vorgenommen werden können, die
der vorliegenden Erfindung entsprechen.
-
Eintaktsignale
werden am Pad P1 1310 vom Eingangspuffer 1351 empfangen,
der eine Eingabe an Flipflops 1350b und 1350c bereitstellt.
Differentialeingaben werden an den Pads P1 P1310 und P2 1320 vom
Differentialeingangspuffer 1391 empfangen. Die Eingaben
der Flipflops 1350b und 1350c werden bei alternierenden
Taktflanken gespeichert. Die Ausgabe des Flipflops 1350b wird
durch das Latch 1350a wieder eingetaktet. Das Taktsignal
wird von einem der globalen oder lokalen Takte 1330 durch
Durchlass-Bauelemente 1332 ausgewählt. Wahre oder komplementäre Versionen
des gewählten
Taktsignals werden vom Multiplexer 1353 dem Flipflop 1350c und
Latch 1350a zugeführt.
Dieses Signal wird vom Inverter 1360 invertiert, der seinerseits den
Flipflop 1350b treibt. Die Ausgaben des Latches 1350a und
des Flipflops 1350c, Q3 1361 und Q2 1363,
werden den FIFOs oder Kernschaltungen zugeführt. Da diese Schaltungen wie
zuvor für
Eingangssignale mit niedriger oder moderater Frequenz bestimmt sind,
können
Flipflops und Latches mit höheren
Funktionalitätsgraden
verwendet werden. Im spezifischen Beispiel, das gezeigt wird, weist
jedes Flipflop und jedes Latch Preset-, Clear- und Enable-Eingangssignalleitungen
auf. In anderen Ausführungsformen
können
andere Eingangssignalleitungen verwendet werden, oder einige der
gezeigten Eingaben können
entfallen. Im spezifischen Beispiel werden eine Preset-Leitung 1365,
eine Clear-Leitung 1366 und eine Enable-Leitung 1367 als
mit jedem Flipflop und Latch verbunden gezeigt.
-
In
anderen Ausführungsformen
der vorliegenden Erfindung können
einige oder alle dieser Schaltungen mit separaten Leitungen verbunden sein.
-
14 ist
ein Blockdiagramm, das die Phasenregelkreise zeigt, die in einer
Ausführungsform der
Erfindung zur Erzeugung der globalen, lokalen und High-Speed-Takte
verwendet werden. Eingeschlossen sind Eingangspads LVDSCLK 1410,
Takteingangspads 1420, Multiplexer 1450 und Phasenregelkreise 1460.
Diese Schaltungen erzeugen HCLKs 1140, LCLKs 1430a und
HCLKs 1430b. In diesem Beispiel können die LVDSCLK-Eingänge als Takteingänge oder
als Eingangs-/Ausgangspads konfiguriert sein. Die Takteingangspads 1420 sind dedizierte
Takteingänge.
Jedes Takteingangspad 1420 kann zwei Einzelpads sein, um
Differentialeingaben zu empfangen, oder ein Pad, um Eintakteingaben
zu empfangen. Jeder Multiplexer 1450 wählt eines von zwei Eingangssignalen
aus und führt
dem Phasenregelkreis 1460 einen Bezugstakt zu. Die Ausgaben
des PLLs sind als lokale, globale oder High-Speed-Taktleitung wählbar. In
einer spezifischen Ausführungsform
der vorliegenden Erfindung werden die in 14 gezeigten
Schaltungen einmal auf jeder Seite einer integrierten Schaltung
wiederholt. Demnach wird jeder HLCK 1440 durch ein Viertel
jeder Seite der integrierten Schaltung geroutet, oder ein Sechzehntel
des Gesamtumfangs. Jedes Viertel der integrierten Schaltung weist
vier lokale Taktleitungen auf, die verfügbar sind, während es
in der ganzen integrierten Schaltung insgesamt 16 globale Taktleitung
gibt.
-
15 ist
ein Beispiel des Phasenregelkreises, das als der Phasenregelkreis 1460 in 14 verwendet
werden kann. Eingeschlossen sind Eingangspads 1505 und 1510,
ein Eingangspuffer 1515, ein Summierknoten 1520,
ein spannungsgeregelter Oszillator 1525, ein Frequenzteiler 1530,
Multiplexer 1540, 1550, 1560 und 1570,
und Dividierer 1545, 1555 und 1565. Eintakt- oder Differentialbezugstakt-Eingangssignale
werden an Pads 1505 und 1510 empfangen und treiben
den Eingangspuffer 1515. Der VCO 1525 erzeugt
ein Taktsignal, das vom Dividierer 1530 dividiert wird
und am Summierknoten 1520 mit dem gepufferten Bezugstaktsignal
verglichen wird. Phasendifferenzen zwischen Signalen führen zu
einem Fehlersignal oder einer Steuerspannung, welche die VCO-Frequenz
anpasst.
-
Der
VCO 1525 kann ein Ringoszillator oder eine ähnliche
Struktur sein, sodaß Taktsignale
mit den verschiedenen Phasen den Multiplexer 1540, 1550 und 1560 zugeführt werden
können.
In spezifischen Ausführungsformen
umfaßt
der VCO vier Differentialstufen. In anderen Ausführungsformen kann die Zahl
der Stufen variieren. In dieser Ausführungsform sind Takte mit um
0, 45, 90, 135, 180, 225, 270 und 315 Grad verschobenen Phasen verfügbar. In anderen
Ausführungsformen
der vorliegenden Erfindung können
eine andere Zahl von Leitungen und Leitungen mit anderen Phasen
vom VCO verfügbar sein.
Multiplexer 1540, 1550 und 1560 wählen einen der
verfügbaren
Eingänge
und treiben die Dividierer 1545, 1555 und 1565.
Die Dividierer 1545, 1555 und 1565 teilen
ihre Eingangsfrequenzen durch K, V und L. In einer spezifischen
Ausführungsform
sind K, V und L programmierbare ganzzahlige Werte zwischen 1 und
16. In anderen Ausführungsformen
können
diese Festwerte sein, oder sie können
innerhalb eines anderen Bereichs variabel sein, oder anderer Wertebereiche.
Der Multiplexer 1570 wählt
zwischen der Ausgabe des Dividierers 1565 und der Ausgabe
des Eingangspuffers 1515. In verschiedenen Ausführungsformen
können
die Ausgaben der Dividierer 1545 und 1555 und
die Ausgabe des Multiplexers 1570 als High-Speed-, lokale
oder globale Taktsignale wählbar
sein. Ein Beispiel dafür
wird in 14 gezeigt.