DE102013217830A1 - Timing-Kalibrierung für chipinterne Verdrahtung - Google Patents

Timing-Kalibrierung für chipinterne Verdrahtung Download PDF

Info

Publication number
DE102013217830A1
DE102013217830A1 DE102013217830.1A DE102013217830A DE102013217830A1 DE 102013217830 A1 DE102013217830 A1 DE 102013217830A1 DE 102013217830 A DE102013217830 A DE 102013217830A DE 102013217830 A1 DE102013217830 A1 DE 102013217830A1
Authority
DE
Germany
Prior art keywords
delay
wire
calibration
clock
chip wiring
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE102013217830.1A
Other languages
English (en)
Inventor
Robert Palmer
John W. Poulton
William James Dally
Thomas Hastings Greer III
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nvidia Corp
Original Assignee
Nvidia Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nvidia Corp filed Critical Nvidia Corp
Publication of DE102013217830A1 publication Critical patent/DE102013217830A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K5/00Manipulating of pulses not covered by one of the other main groups of this subclass
    • H03K5/13Arrangements having a single output and transforming input signals into pulses delivered at desired time intervals
    • H03K5/131Digitally controlled
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K5/00Manipulating of pulses not covered by one of the other main groups of this subclass
    • H03K5/13Arrangements having a single output and transforming input signals into pulses delivered at desired time intervals
    • H03K5/133Arrangements having a single output and transforming input signals into pulses delivered at desired time intervals using a chain of active delay devices
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01LSEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
    • H01L2924/00Indexing scheme for arrangements or methods for connecting or disconnecting semiconductor or solid-state bodies as covered by H01L24/00
    • H01L2924/0001Technical content checked by a classifier
    • H01L2924/0002Not covered by any one of groups H01L24/00, H01L24/00 and H01L2224/00

Landscapes

  • Physics & Mathematics (AREA)
  • Nonlinear Science (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)
  • Semiconductor Integrated Circuits (AREA)
  • Pulse Circuits (AREA)

Abstract

Eine Ausführungsform legt eine Timingkalibrierungstechnik für chipinterne quellsynchrone auf komplementärem Metall-Oxid-Halbleiter-(CMOS)-Repeater basierende Verdrahtung dar. Zwei Übergangsmuster mögen appliziert werden, um die Verzögerung eines chipinternen Daten- oder Taktdrahtes zu kalibrieren. Eine Kalibrierungslogik ist dazu konfiguriert, die Übergangsmuster zu applizieren und dann die Verzögerungen der Takt- und Datendrähte zu trimmen basierend auf erfassten Kalibrierungsmustern. Das Trimmen justiert die Verzögerungen der Takt- und Datendrähte unter Verwendung einer konfigurierbaren Verzögerungsschaltung. Timing-Fehler mögen von Übersprechen, stromversorgungsinduziertem Jitter (PSIJ) oder Draht-Verzögerungsvariationen, aufgrund von Fehlanpassung von Transistor und Drahtmetallisation, verursacht werden. Chipausbeute mag verbessert werden durch Reduzieren des Vorkommens von Timing-Fehlern, die auf fehlangepasste Verzögerungen zwischen unterschiedlichen Drähten einer chipinternen Verdrahtung zurückzuführen sind.

Description

  • HINTERGRUND DER ERFINDUNG
  • Gebiet der Erfindung
  • Die vorliegende Erfindung bezieht sich generell auf Timing-Kalibrierung und spezifischer auf Timing-Kalibrierung für eine chipinterne Verdrahtung (engl. „interconnect”).
  • Beschreibung der verwandten Technik
  • Eine quellsynchrone (engl. „source-synchronous”) auf komplementärem Metall-Oxid-Halbleiter-(CMOS)-Repeater basierende Verdrahtung stellt eine einfache Hochleistungstopologie für chipinterne Kommunikationsgewebe (engl. „communication fabric”) bereit. Mit zunehmender Größen von Silizium-Dies mag die chipinterne Verdrahtung sich aber über eine Länge von 10 mm oder mehr erstrecken, und die Kommunikationskanäle unterliegen viele Quellen zu Timing-Fehlern, inklusive Übersprechen, stromversorgungsinduzierter Jitter (engl. „power supply induced jitter”) (PSIJ) und Draht-Verzögerungsvariationen, aufgrund von Fehlanpassung von Transistor und Drahtmetallisation.
  • Für einen 10-mm Metalldraht niedrigerer Ebene mit 130 um Breite und Platz, 50% Verwendung auf benachbarten Schichten und mit einer Repeatergröße und optimiert für das Produkt mit minimaler Leistungs-Verzögerung, ist die 1-σ Verzögerungsvariation etwa 8 ps pro Übergangs-Polarität pro Draht aufgrund Transistorvariation (langsamer Prozess, 0,75 V und 125 Grad Celsius). Falls eine „alleinige 1” über einen solchen Draht übertragen wird, mögen die vordere und hintere Signalübergänge (engl. „signal transitions”) jeweils unabhängige Timing-Offsets aufweisen, die um eine mittlere Verzögerung mit σ = 8 ps normalverteilt sind. Dies ist äquivalent zu 1-σ Werten von 2,3% Tastzyklus-Verzerrung (DCD) für eine 4-Gb/s Umschaltung (engl. „toggle”) (oder 2-GHz Doppel-Daten-Rate-Takt) und 5,7 ps Versatz (das heißt netto Verzögerungsoffset in dem zentralen Punkt zwischen den zwei Flanken). Ein beispielhaftes chipinternes Netzwerk ist aus hunderten 10-mm Kanälen zusammengesetzt, die jeweils 10 Bytes breit sind und bei 4 Gb/s pro Draht arbeiten (das heißt, sie liefern insgesamt 4 TB/s über 10-mm). Angenommen, dass Übersprechen, PSIJ und zufälliger Jitter (extrapoliert an die Bit-Fehler-Rate von Interesse) 0,44 UI (110 ps) betragen und dass Flip-Flop-Toleranzen und Taktpufferversatz 0,2 UI (50 ps) betragen, dann prognostiziert ein statistisches Timing-Budget eine Ausbeute von 0% für die Sammlung von Links, die das chipinterne Netzwerk aufweist, aufgrund von Draht-Verzögerungs-Fehlanpassung. Mit anderen Worten, mit einer Ausbeute von 0%, würde keine Chips, die ein solches chipinternes Netzwerk aufweisen, bei voller Geschwindigkeit korrekt funktionieren.
  • Verfahren zur Minderung von Übersprechen, die für quellsynchrone, auf komplementärem Metall-Oxid-Halbleiter-(CMOS)-Repeater basierende Topologien entwickelt wurden, können den resultierende Jitter auf etwa 200 Milli-Einheitsintervallen (mUI) bei aggressiven Bandbreitedichten (zum Beispiel etwa 30 Tb/s pro mm Busbreite bei dem 28-nm Prozessknoten) begrenzen. Stromversorgungsrauschen um etwa +/–7% kann zur bedeutenden Modulation der Datenrate (durch Modulation von Signalausbreitungsgeschwindigkeit) führen, was die effektive Timing-Spanne weiter um so viel wie 400 mUI reduziert. In solchen harten Umgebungen kann Draht-Verzögerungs-Fehlanpassung bewirken, dass Chips nicht korrekt arbeiten können, wie es oben mit Bezug auf das Übertragen der „alleinigen 1” erklärt wurde, was zu signifikanten Ausbeuteeinbußen führt. Die Kombination von Draht-Verzögerungs-Fehlanpassungen, Timing-Jitter und Stromversorgungsrauschen mag die effektive Timing-Spanne so reduzieren, dass die Taktfrequenz reduziert werden muss, um zu sichern, dass Timing-Spanne-Bedingungen eingehalten werden, so dass die Chips korrekt arbeiten. Die Chips mögen insbesondere versagen, wenn eine chipinterne quellsynchrone auf komplementärem Metall-Oxid-Halbleiter-(CMOS)-Repeater basierende Verdrahtung als der Baustein für große chipinterne Netzwerke dient, die für das Bewegen von mehreren Terabytes von Daten pro Sekunde querüber große Abschnitte des Chips verantwortlich sind. Ein Verfehlen von auch nur einem einzigen Signal, das auf dem Draht der Verdrahtung übertragen wird, die Timing-Spanne-Bedingungen einzuhalten, wird wahrscheinlich zu einem Funktionsversagen des Chips führen.
  • Wenn Stromversorgungsregelschemen eingesetzt werden, um PSIJ zu mindern und Energieeffizienz zu verbessern, mag Gate-Übersteuerung reduziert werden. Die reduzierte Gate-Übersteuerung verschlimmert die Verzögerungs-Fehlanpassungen zwischen verschiedenen Drähten der quellsynchronen auf CMOS-Repeater basierenden Verdrahtung. Verzögerungs-Fehlanpassungen unter den verschiedenen Drähten in einem gegebenen Sub-Kanal der chipinternen Verdrahtung hat DCD und Takt-zu-Daten-Versatz zur Folge, was die Ausbeute reduziert.
  • Folglich ist das, was auf dem technischen Gebiet benötigt wird, eine Timing-Kalibrierungstechnik für chipinterne quellsynchrone auf CMOS-Repeater basierende Verdrahtung, die Draht-Verzögerungs-Fahlanpassungen mindert und zur Verbesserung der Chipausbeute beiträgt.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Eine Ausführungsform der vorliegenden Erfindung legt eine Timing-Kalibrierungstechnik für chipinterne quellsynchrone auf CMOS-Repeater basierende Verdrahtung dar. Zwei Übergangsmuster (engl. „transition patterns”) mögen appliziert werden, um die Verzögerung einer chipinternen Daten- oder Taktdraht zu kalibrieren. Kalibrierungslogik ist dazu konfiguriert, die Übergangsmuster zu applizieren und dann die Verzögerungen der Takt- und Datendrähte basierend auf erfassten Kalibrierungsmustern zu trimmen. Das Trimmen justiert die Verzögerung der Daten- und Taktdrähte unter Verwendung einer konfigurierbaren Verzögerungsschaltung.
  • Verschiedene Ausführungsformen der Erfindung zur Kalibrierung einer chipinternen Verdrahtung weist ein Applizieren eines ersten Signalübergangsmusters auf einen ersten Draht der chipinternen Verdrahtung auf, um eine Mehrzahl von ersten Messungen zu erzeugen. Basierend auf der Mehrzahl von ersten Messungen wird eine Verzögerungsschaltung konfiguriert zum Justieren einer Verzögerung des ersten Drahtes, so dass diese innerhalb eines Bereiches einer vorbestimmten Verzögerungsvariation fällt, der im Wesentlichen auf einer Flanke eines Taktsignals zentriert ist.
  • Es ist ein Vorteil der offenbarten Timing-Kalibrierungstechnik, dass sie verwendet werden mag, um Draht-Verzögerungs-Fehlanpassungen für chipinterne Verdrahtungen zu reduzieren, was wiederum hilft, die gesamte Chipausbeute zu verbessern.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • So dass die Art und Weise, in der die oben angeführten Merkmale der vorliegenden Erfindung im Detail verstanden werden kann, mag eine detailliertere Beschreibung der Erfindung, die oben kurz zusammengefasst wurde, durch Bezugnahme auf Ausführungsformen gehabt haben, von denen einige in der angehängten Zeichnungen dargestellt sind. Es muss aber bemerkt werden, dass die angehängten Zeichnungen nur typische Ausführungsformen dieser Erfindung illustrieren und somit nicht als den Umfang der Erfindung beschränkend angesehen werden dürfen, da die Erfindung andere gleich effektive Ausführungsformen zulassen mag.
  • Die 1A stellt eine konfigurierbare Verzögerungsschaltung dar, gemäß einer Ausführungsform der vorliegenden Offenbarung;
  • Die 1B stellt eine Stufe der konfigurierbaren Verzögerungsschaltung von 1A dar, gemäß einer Ausführungsform der vorliegenden Offenbarung;
  • Die 1C stellt eine Verzögerung-Übertragungskennlinie dar, gemäß einer Ausführungsform der vorliegenden Offenbarung;
  • Die 2 ist ein Flussdiagram, das eine Technik zum Konfigurieren der konfigurierbaren Verzögerungsschaltung darstellt, gemäß einer Ausführungsform der vorliegenden Offenbarung;
  • Die 3A ist ein Diagramm, das ein System zum Kalibrieren des Timings einer chipinternen Verdrahtung darstellt, das die konfigurierbare Verzögerungsschaltung für einen Subkanal (den In-Phase-Subkanal) enthält, gemäß einer Ausführungsform der vorliegenden Offenbarung;
  • Die 3B ist Graphen, die Takt-zu-Daten-Offsets darstellen, vor, während und nach dem Kalibrierungsprozess für einen einzigen Kanal einer chipinternen Verdrahtung, gemäß einer Ausführungsform der vorliegenden Offenbarung;
  • Die 3C ist ein Graph, der Takt-zu-Daten-Offsets während der Kalibrierung für eine Baugruppe von 100 Kanälen darstellt, gemäß einer Ausführungsform der vorliegenden Offenbarung;
  • Die 3D ist Graphen, die die vorbestimmte akzeptable Verzögerungsvariation und Takt-zu-Daten-Verzögerungsoffsets darstellen, vor, während und nach der Kalibrierung für Drähte einer chipinternen Verdrahtung, gemäß einer Ausführungsform der vorliegenden Offenbarung;
  • Die 4A ist ein Blockdiagramm von der in 3A gezeigten Takterzeugungseinheit, gemäß einer Ausführungsform der vorliegenden Offenbarung;
  • Die 4B ist ein Blockdiagramm von der Interpolationseinheit der 4A, gemäß einer Ausführungsform der vorliegenden Offenbarung;
  • Die 4C ist ein Blockdiagramm von der Kalibrierungsmuster-Erzeugungseinheit der 3A, gemäß einer Ausführungsform der vorliegenden Offenbarung;
  • Die 4D ist ein Blockdiagramm von der Kalibrierungsmuster-Erfassungseinheit der 3A, gemäß einer Ausführungsform der vorliegenden Offenbarung;
  • Die 5A ist ein Flussdiagram, das eine Technik zum Kalibrieren chipinterner Verdrahtung darstellt, gemäß einer Ausführungsform der vorliegenden Offenbarung;
  • Die 5B ist ein Flussdiagram, das eine Technik zum Kalibrieren chipinterner Verdrahtung für ein Taktsignal darstellt, gemäß einer Ausführungsform der vorliegenden Offenbarung;
  • Die 6 ist ein Flussdiagram, das eine Technik zum Kalibrieren chipinterner Verdrahtung für ein Datensignal darstellt, gemäß einer Ausführungsform der vorliegenden Offenbarung;
  • Die 7 ist ein Flussdiagram, das eine Technik zum Durchführen von Taktphasenjustierungen darstellt, gemäß einer Ausführungsform der vorliegenden Offenbarung;
  • Die 8A ist ein Flussdiagram, das eine Technik zum Kalibrieren chipinterner Verdrahtung mit Redundanz darstellt, gemäß einer Ausführungsform der vorliegenden Offenbarung;
  • Die 8B ist ein Flussdiagram, das eine Technik zum dynamischen Messen von Eigenschaften chipinterner Verdrahtung unter Verwendung redundanter Drähte darstellt, gemäß einer Ausführungsform der vorliegenden Offenbarung; und
  • 9 ist ein Blockdiagramm, das ein Computersystem darstellt, das zum Implementieren eines oder mehrerer Aspekte der vorliegenden Erfindung konfiguriert ist.
  • DETAILLIERTE BESCHREIBUNG
  • In der folgenden Beschreibung werden zahlreiche spezifische Details dargelegt, um ein eingehenderes Verständnis der vorliegenden Erfindung bereitzustellen. Es wird aber für einen Fachmann offenkundig sein, dass die vorliegende Erfindung ohne ein oder mehrere dieser spezifischen Details praktiziert werden mag. In anderen Fällen sind wohl bekannte Merkmale nicht beschrieben worden, um eine Verschleierung der vorliegenden Erfindung zu vermeiden.
  • Eine konfigurierbare Verzögerungsschaltung kann zum Korrigieren von Fehlanpassungen in Verzögerungen zwischen Signalen, wie zum Beispiel zwischen Taktsignalen und Daten und zwischen verschiedenen Bits von Daten innerhalb eines Multibit-Datenbusses, verwendet werden. Falsch ausgerichtete Taktflanken relativ zu Datensignalen können zu Funktionsfehlern führen, zum Beispiel Timing-Fehlern. Die konfigurierbare Verzögerungsschaltung mag zum Ausrichten des Takts relativ zu den Datensignalen und zum Sicherstellen, dass Timing-Bedingungen besser eingehalten werden, verwendet werden.
  • Fehlanpassungen in Verzögerungen zwischen verschiedenen Signalen eines Multibit-Datenbusses stellen Herausforderungen dar bzgl. Einhaltung der Timing-Bedingungen, um alle Signale des Multibit-Datenbusses korrekt abzutasten. Die Fehlanpassungen werden typisch von variierenden Drahtlängen und von Variationen aufgrund des Silizium-Herstellungsprozesses für die verschiedenen Datensignale des Multibit-Datenbusses verursacht. Insbesondere mögen die Verzögerungen von verschiedenen Repeater-Elementen, die entlang der Länge der Daten- und Taktsignaldrähte eingefügt sind, variieren, was Fehlanpassungen zwischen den verschiedenen Datensignalen und zwischen Taktsignalen relativ zu den Datensignalen zur Folge hat. Die konfigurierbare Verzögerungsschaltung mag zum Minimieren der Variation zwischen den gültigen Abtastfenstern für jedes Datensignal eines Multibit-Busses verwendet werden, wobei Funktionsfehler reduziert werden.
  • Andere potentielle Quellen des systematischen Versatzes zwischen Takt- und Datensignalen sind Asymmetrie in den Taktpuffern an den Sender- und Empfänger-Enden eines Links, über welches die Daten übermittelt werden, und Apertur-Offsets in den Empfänger-Flipflops. Justierungen der abgesandten Taktphasen können unter Verwendung der konfigurierbaren Verzögerungsschaltung zum Kompensieren für solche Offsets gemacht werden. Die Fähigkeit zum unabhängigen Justieren der Anstieg-Verzögerung und der Abfall-Verzögerung, welche Fähigkeit von der konfigurierbaren Verzögerungsschaltung bereitgestellt wird, erlaubt ein Trimmen der Datensignale und ein Justieren eines Tastzyklus oder einer Pulsbreite eines Taktsignals. Justierung des Timings der ansteigenden Flanke sollte im Wesentlichen von dem Timing der abfallenden Flanke unabhängig sein. Anderenfalls, wenn die Justierungen von beiden Flanken sich gegenseitig stark beeinflussen, ist es schwierig, einen passenden Tuning-Algorithmus zur Entfernung von Timing-Offsets zu finden.
  • Die 1A stellt eine konfigurierbare Verzögerungsschaltung 100 dar, gemäß einer Ausführungsform der vorliegenden Offenbarung. Wie in der 1A gezeigt, weist die konfigurierbare Verzögerungsschaltung 100 drei justierbare Stufen auf, wobei jede Stufe (zum Beispiel Stufe der konfigurierbaren Verzögerungsschaltung 100) einen festen (engl. „fixed”) Inverter aufweist, der parallel mit einem Tristate-Inverter gekoppelt ist. Weitere konfigurierbare Verzögerungsschaltungen mögen eine oder mehrere justierbaren Stufen zum Erzeugen eines Ausgangssignals, das relativ zu einem Eingangssignals verzögert ist, basierend auf mindestens zwei unabhängigen Steuersignalen aufweisen. Die konfigurierbare Verzögerungsschaltung 100 erhält ein Eingangssignal 101 und erzeugt ein Ausgangssignal 131, das relativ zu dem Eingangssignal 101 verzögert ist, basierend auf den Steuersignalen en2H, en1H, en0H, en2L, en1L und en0L.
  • Bei jeder Stufe der konfigurierbaren Verzögerungsschaltung 100 kann die ansteigende Flanke bei dem Ausgang einer bestimmten Stufe durch Deaktivierung (engl. „de-asserting”) des entsprechenden Steuersignals en2L, en1L und en0L für die bestimmte Stufe verzögert werden. Die abfallende Flanke bei dem Ausgang einer bestimmten Stufe kann durch Deaktivierung des entsprechenden Steuersignals en2H, en1H und en0H für die bestimmte Stufe verzögert werden. Durch Zusammensetzen einer Reihe von diesen Stufen der konfigurierbaren Verzögerungsschaltung 100 mag einen Bereich von Steuerung für das Timing jeder Ausgangsflanke erreicht werden. Das Timing der ansteigenden Flanke bei dem Ausgangssignal 131 wird zum Beispiel von dem Satz von Steuerungen en2H, en1H und en0H gesteuert. Das Timing der abfallenden Flanke bei dem Ausgangssignal 131 wird von den übrigen drei Steuerungen gesteuert, d. h. den Steuerungen en2L, en1L, en0L. Die Struktur mit mehreren Stufen stellt einen sehr flexiblen Mechanismus zum Steuern der relativen Verzögerung zwischen dem Ausgang und Eingang von jeder Stufe und der gesamten Verzögerung des Ausgangssignals 131 relativ zu dem Eingangssignal 101 bereit, da die Gesamtdimensionierung von jeder Stufe und die relativen Dimensionen der festen und Tristate-Inverter freie Parameter sind.
  • Die 1B stellt eine Stufe der konfigurierbaren Verzögerungsschaltung 100 dar, die eine von den drei Stufen ist, die in der konfigurierbaren Verzögerungsschaltung 100 von 1A gezeigt sind, gemäß einer Ausführungsform der vorliegenden Offenbarung. Die Stufe der konfigurierbaren Verzögerungsschaltung 100 weist einen Tristate-Inverter 105 auf, der parallel mit einem festen Inverter 110 gekoppelt ist. Der Tristate-Inverter 105 und der festen Inverter 110 erhält jeweils die Eingabe und erzeugt eine Ausgabe, die eine invertiert Version der Eingabe ist.
  • Das enL-Steuersignal aktiviert und deaktiviert den Pullup-Transistor des Tristate-Inverters 105. Wenn das Low-Aktiv-enL-Steuersignal aktiviert wird (das heißt, auf Low getrieben wird), dann wird die Pullup-Operation des Tristate-Inverters 105 aktiviert. Wenn das High-Aktiv-enH-Steuersignal aktiviert wird (das heißt, auf High getrieben wird), dann wird die Pulldown-Operation des Tristate-Inverters 105 aktiviert. Wenn weder enL noch enH aktiviert ist, dann ist der Ausgang des Tristate-Inverters 105 in einem Zustand mit hoher Impedanz und der Ausgang wird nur von dem festen Inverter 110 angesteuert.
  • Der Feste Inverter 110 stellt einen ersten Level von Treiberstärke bereit, um einen Last am Ausgang zu treiben. Wenn enL aktiv ist, ist die Treiberstärke eines ansteigenden Übergangs am Ausgang größer wegen des Pullup des Tristate-Inverters 105, so dass die Verzögerung des ansteigenden Übergangs reduziert wird. In ähnlicher Weise, wenn enH aktiv ist, ist die Treiberstärke eines abfallenden Übergangs am Ausgang größer wegen des Pulldown des Tristate-Inverters 105, so dass die Verzögerung des abfallenden Übergangs reduziert wird. Angenommen, dass der logische Aufwand, ein Maß für Treiberstärke, für einen festen Inverter 110 gleich 1 ist, dann ist der logische Aufwand für den Tristate-Inverter 105 gleich 2, wenn alle Transistoren gleich dimensioniert sind. Folglich ist die Treiberstärke der Stufe der konfigurierbaren Verzögerungsschaltung 100 mit 50% erhöht, wenn der Tristate-Inverter 105 aktiv ist.
  • Die relative Treiberstärke von jeder Stufe wird basierend auf den Breiten der Transistoren bestimmt, die den Tristate-Inverter 105 und den festen Inverter 110 aufweist. Jede Stufe der konfigurierbaren Verzögerungsschaltung 100 kann dazu konfiguriert sein, vier verschiedene Verzögerungsvariationen bereitzustellen, unter Verwendung der Steuersignale enL und enH. Eine erste Verzögerung wird von der Eingabe verursacht, um die Ausgabe zu erzeugen, wenn enL und enH beide deaktiviert sind. Die erste Verzögerung wird für die ansteigende Flanke der Ausgabe und für die abfallende Flanke der Ausgabe reduziert, wenn enL und enH beide aktiviert sind, um die Treiberstärke des Zustandes der konfigurierbaren Verzögerungsschaltung 100 zu erhöhen. Die erste Verzögerung wird nur für die ansteigende Flanke der Ausgabe reduziert, wenn enL aktiviert ist und enH deaktiviert ist. Endlich wird die erste Verzögerung nur für die abfallende Flanke der Ausgabe reduziert, wenn enH aktiviert ist und enL deaktiviert ist.
  • Die relative Dimensionierung der Transistoren, die den Tristate-Inverter 105 und den festen Inverter 110 aufweisen, mag verwendet werden zum Steuern der möglichen Verzögerungen und reduzierten Verzögerungen, die von jeder Stufe der konfigurierbaren Verzögerungsschaltung 100 erzeugt werden. Annehmend zum Beispiel, dass jede Stufe in der konfigurierbaren Verzögerungsschaltung 100, die in 1A gezeigt ist, eine feste Gesamtdimensionierung (oder Treiberstärke) von 4S hat, gibt es drei verschiedene mögliche Kombinationen von relative Dimensionierung zwischen den Transistoren des Tristate-Inverters 105 und den Transistoren des festen Inverters 110. Der Feste Inverter 110 mag eine Größe von 3S haben und der Tristate-Inverter 105 mag eine Größe von 1S haben. Der Feste Inverter 110 mag eine Größe von 2S haben und der Tristate-Inverter 105 mag eine Größe von 2S haben. Der Feste Inverter 110 mag eine Größe von 1S haben und der Tristate-Inverter 105 mag eine Größe von 3S haben. Jede Stufe der konfigurierbaren Verzögerungsschaltung 100 stellt eine Last von 4S für die vorhergehende Stufe (oder den Eingang) da.
  • Die 1C stellt eine Verzögerung-Übertragungskennlinie 150 der konfigurierbaren Verzögerungsschaltung von 1A dar, gemäß einer Ausführungsform der vorliegenden Offenbarung. Wie in der 1C gezeigt, wird die ansteigende Flanke des Eingangssignals 101 mit verschiedenen Beträgen verzögert, um die ansteigende Flanke des Ausgangssignals 131 zu erzeugen. Wenn en2H aktiviert ist, wird die Pulldown-Vorrichtung innerhalb des Tristate-Inverter-Elements in der ersten Stufe der konfigurierbaren Verzögerungsschaltung 100 aktiviert, um die Verzögerung des Übergangs von der ansteigenden Flanke des Eingangssignals 101 zu der abfallenden Flanke des invertieren Eingangssignals 115 zu reduzieren. Wenn en1L aktiviert ist, wird die Pull-Up-Vorrichtung innerhalb des Tristate-Inverter-Elements in der zweiten Stufe der konfigurierbaren Verzögerungsschaltung 100 aktiviert, um die Verzögerung des Übergangs von der abfallenden Flanke des invertierten Eingangssignals 115 zu der ansteigenden Flanke des zweiten Signals 107 zu reduzieren. Wenn en0H aktiviert ist, wird die Pulldown-Vorrichtung innerhalb des Tristate-Inverter-Elements in der dritten Stufe der konfigurierbaren Verzögerungsschaltung 100 aktiviert, um die Verzögerung des Übergangs von der ansteigenden Flanke des zweiten Signals 107 zu der abfallenden Flanke des dritten Signals 125 zu reduzieren. Das Ausgangssignal 131 ist die Inversion des dritten Signals 125, so dass die abfallende Flanke auf dem dritten Signal 125 eine ansteigende Flanke an dem Ausgang 131 erzeugt.
  • Die Verzögerung-Übertragungskennlinie 150 entspricht einer konfigurierbaren Verzögerungsschaltung 100, in welcher die erste Stufe einen Tristate-Inverter von Größe 1S und einen festen Inverter von Größe 3S hat, die zweite Stufe einen Tristate-Inverter von Größe 2S und einen festen Inverter von Größe 2S hat und die dritte Stufe einen Tristate-Inverter von Größe 3S und einen festen Inverter von Größe 1S hat.
  • Die niedrigste Verzögerung von ungefähr 30 ps tritt auf, wenn die en2H-, en1L- und en0H-Steuersignale aktiviert sind, so dass die jeweiligen Pull-Down-Vorrichtungen und Pull-Up-Vorrichtungen in den Tristate-Inverter-Elementen aktiviert sind. Die größte Verzögerung von ungefähr 58 ps tritt auf, wenn die en2H-, en1L- und en0H-Steuersignale deaktiviert bzw. nicht aktiviert sind, so dass die jeweiligen Pull-Down-Vorrichtungen und Pull-Up-Vorrichtungen in den Tristate-Inverter-Elementen, die von den en2H-, en1L- und en0H-Steuersignalen gesteuert werden, deaktiviert sind.
  • Die ansteigende Flanke des Eingangssignals 101 wird mit einer zunehmenden Zeitdauer verzögert als die en2H-, en1L- und en0H-Steuersignale durch die folgenden acht unterschiedlichen binären Werte fortschreiten, die jeweils einer unterschiedlichen Verzögerungsstufe entsprechen: 101, 100, 111, 110, 001, 000, 011, 010, wobei die minimale Verzögerung von 101 spezifiziert ist und die maximale Verzögerung von 010 spezifiziert ist, weil en1L low-aktiv ist. Während Justierungen in den en2H-, en1L- und en0H-Steuersignalen die Verzögerung beeinflussen, die auf der ansteigenden Flanke des Ausgangssignals 131 erzeugt wird, beeinflussen die Justierungen von den en2H-, en1L- und en0H-Steuersignalen nicht die Verzögerung der abfallenden Flanke des Ausgangssignals 131. Wie es in der 1C gezeigt ist, variieren die Verzögerungen, die während eines ansteigenden Flankenübergangs des Ausgangssignals 131 eingeführt werden, linear basierend auf zumindest einem von den en2H-, en1L- und en0H-Steuersignalen.
  • Die folgende Tabelle repräsentiert die verschiedenen Treiberstärken von den Stufen, die gesteuert werden, als en2H, en1L und en0H justiert werden, um die Verzögerung der ansteigenden Flanke bei dem Ausgang 131 progressiv zu reduzieren.
    En2H, en1L, en0H Erste Stufe Treiberstärke Zweite Stufe Treiberstärke Dritte Stufe Treiberstärke
    010 3 2 1
    110 2 1
    000 3 3 1
    100 3 1
    011 3 2
    111 2
    001 3 3
    101 3
  • Wie in der 1C gezeigt, verbleibt die Verzögerung der abfallenden Flanke des Ausgangssignals 131 im Wesentlichen konstant während die en2H-, en1L- und en0H-Steuersignale variieren und die en2L-, en1H- und en0L-Steuersignale nicht justiert werden, d. h. sie werden konstant gehalten. In ähnlicher Weise verbleibt die Verzögerung der ansteigenden Flanke des Ausgangssignals 131 im Wesentlichen konstant während die en2L-, en1H- und en0L-Steuersignale variieren und die en2H-, en1L- und en0H-Steuersignale nicht justiert werden. Auch die Verzögerungen, die während eines ansteigenden Flankenübergangs des Ausgangssignals 131 eingeführt werden, variieren linear basierend auf zumindest einem von den en2L-, en1H- und en0L-Steuersignalen.
  • Die 2 ist ein Flussdiagram, das eine Technik zum Konfigurieren der konfigurierbaren Verzögerungsschaltung 100 darstellt, gemäß einer Ausführungsform der vorliegenden Offenbarung. Obwohl die Verfahrensschritte in Verbindung mit der konfigurierbaren Verzögerungsschaltung 100 von 1A beschrieben werden, werden Fachleute mit durchschnittlichen Kenntnissen verstehen, dass jedes System, das zum Durchführen der Verfahrensschritte konfiguriert ist, in jeder beliebigen Reihenfolge, innerhalb des Umfangs der vorliegenden Offenbarung ist. Bei Schritt 205 werden Steuersignaleinstellungen erhalten, die eine Verzögerung steuern, die von der ansteigenden Flanke des Eingangssignals 101 verursacht wird, um das Ausgangssignal 131 zu erzeugen. Mit anderen Worten steuern die Steuersignaleinstellungen die Verzögerung der ansteigenden Flanke des Ausgangssignals 131 relativ zu der ansteigenden Flanke des Eingangssignals 101. Die Steuersignaleinstellungen, die eine Verzögerung der ansteigenden Flanke steuern, sind en2H, en1L und en0H.
  • Bei Schritt 210 werden Steuersignaleinstellungen erhalten, die eine Verzögerung steuern, die von der abfallenden Flanke des Eingangssignals 101 verursacht wird, um das Ausgangssignal 131 zu erzeugen. Mit anderen Worten steuern die Steuersignaleinstellungen die Verzögerung der abfallenden Flanke des Ausgangssignals 131 relativ zu der abfallenden Flanke des Eingangssignals 101. Die Steuersignaleinstellungen, die eine Verzögerung der abfallenden Flanke steuern, sind en2L, en1H und en0L. Bei Schritt 215 werden die Steuersignaleinstellungen auf die konfigurierbare Verzögerungsschaltung 100 appliziert, um den Betrag der Verzögerung zu steuern, der von dem Eingangssignal verursacht wird, um das Ausgangssignal zu erzeugen. Bei Schritt 220 wird das Ausgangssignal erzeugt, das relativ zu dem Eingangssignal verzögert ist.
  • Die Steuersignale der konfigurierbaren Verzögerungsschaltung 100 mögen justiert werden, um die Verzögerung eines ansteigenden Übergangs an dem Ausgang separat von einem abfallenden Übergang an dem Ausgang unabhängig zu erhöhen oder reduzieren. Die konfigurierbare Verzögerungsschaltung 100 mag über die Steuersignale justiert werden, um die Verzögerungsvariation zwischen unterschiedlichen Signalen eines Multibit-Busses für ansteigende und/oder abfallende Datenübergänge zu reduzieren. Eine vorbestimmte akzeptable Verzögerungsvariation mag identifiziert werden. Die vorbestimmte akzeptable Verzögerungsvariation mag identifiziert werden, um die funktionelle Ausbeute eines integrierten Schaltkreises für einen bestimmten Leistungslevel, zum Beispiel Taktrate, zu verbessern. In einer Ausführungsform sind die relativen Treiberstärken des festen Inverters und des Tristate-Inverters in der konfigurierbaren Verzögerungsschaltung 100 implementiert, so dass eine oder mehrere Verzögerungsstufen gleich der vorbestimmten akzeptablen Verzögerungsvariation ist.
  • Timing-Kalibrierung von chipinterner Verdrahtung
  • Die konfigurierbare Verzögerungsschaltung 100 mag zum Justieren des Timings von individuellen Drähten verwendet werden, die entweder Daten- oder Taktsignale übermitteln, die mit einem Kommunikationskanal von einer chipinternen Verdrahtung assoziiert sind. Jeder Kommunikationskanal weist typisch einen Satz von 8 bis 16 Bytes von Daten und ein paar von übermittelten Takten auf. Die Anzahl von Drähten (oder Links) ist begrenzt wegen Versatzes und Rauschens in den Taktpuffern, die lokal in den Sender- und Empfängerschaltkreisen an den Drahtanschlüssen vorhanden sind. Eine erste Hälfte der Datendrähte ist mit einem ersten von den übermittelten Takten assoziiert und die zweite Hälfte der Datendrähte ist mit einem zweiten von den übermittelten Takten assoziiert, wobei zwei Subkanäle gebildet werden: In-Phase- und Quadrature-Phase-Komponente, zum Beispiel I und Q. Das Timing der zwei Subkanäle ist um 0,5 UI versetzt (engl. „staggered”) und die Datendrähte sind physikalisch verschachtelt (engl. „interleaved”), so dass Signalübergänge auf benachbarten Drähten nicht simultan vorkommen sollten. Des Weiteren mögen Techniken zur Reduktion von Übersprechen, in denen Ausgangsdrähte mit Eingangsdrähten verschachtelt sind, auch eingesetzt werden.
  • Konventionelle chipinternen Verdrahtung bauen auf mehrfache Re-Timing-Elemente, zum Beispiel Flip-Flops, die entlang der Drähte des Kanals eingefügt werden, um sicherzustellen, dass Timing-Bedingungen eingehalten werden. Statt Einfügen mehrerer Re-Timing-Elemente mag eine Timing-Kalibrierungstechnik verwendet werden zum Messen und Konfigurieren der verschiedenen Datendrähte des Kanals, so dass die gesamte Länge von jedem Draht mit nur einem Re-Timing-Element (Flip-Flop) pro Datendraht am Empfängerende durchlaufen werden mag. Reduzieren der Anzahl von Re-Timing-Elementen minimiert vorteilhafterweise Latenz und Stromverbrauch in Vergleich mit konventionellen Techniken.
  • Die 3A ist ein Diagramm, das ein System 300 zum Kalibrieren des Timings einer chipinternen Verdrahtung darstellt, das die konfigurierbare Verzögerungsschaltung für einen Subkanal (den I-Subkanal) enthält, gemäß einer Ausführungsform der vorliegenden Offenbarung. Obwohl in der 3A nur ein einziger Datendraht 301 gezeigt ist, mögen mehrere Drähte für sowohl den I-Subkanal als auch für den Q-Subkanal inkludiert sein. Das Timingkalibrierungssystem 300 weist eine Takterzeugungseinheit 325, eine Takt-Switch-Einheit 305, einen Sender 312, eine Kalibrierungsmuster-Erzeugungseinheit 310, eine Kalibrierungsmuster-Erfassungseinheit 315, einen Empfänger 316 und eine Kalibrierungssteuereinheit 320 auf. Der Datendraht 301 zum Übermitteln bzw. Senden eines Datensignals ist zwischen dem Sender 312 und dem Empfänger 316 gekoppelt. Ein paar von übermittelten Taktsignalen, ClkI_clk und ClkQ_clk, wird jeweils auf den clkI-Draht 302 und den clkQ-Draht 304 übermittelt. Eine konfigurierbare Verzögerungsschaltung 100 ist auch an jeden der Drähte gekoppelt.
  • Die chipinterne Verdrahtung baut auf ein quellsynchrones Taktschema, das ein Taktsignal auf einen Taktdraht zusammen mit den Datendrähten für einen Kanal übermittelt. Der übermittelte Takt hat nominell die gleiche Ausbreitungszeit wie die Daten entlang eines Drahts und wird zum Re-Timing der Daten in empfangende Flip-Flops hinein verwendet. Die quellsynchrone Technik erlaubt, dass die Ausbreitungsverzögerung zwischen Flops länger als eine Taktperiode ist. Eine quellsynchrone Technik bietet Latenz- und Leistungsvorteile gegenüber einem konventionellen synchronen Schema, in dem Drähte in kürzere gepipelinete Stufen geteilt sind, die von der Taktperiode beschränkt sind. Die quellsynchrone Technik hat auch Vorteile gegenüber „wave-pipelined”-Ansätzen, die kein Takt Signal übermittelt aber stattdessen ein Takt-und-Daten-Widerherstellungssystem (engl. „clock and data recovery system”) (CDR) verwendet, um einen Empfänger-Takt auszurichten, der von einem globalen Taktverteilungsnetzwerk und/oder einer lokalen PLL abgeleitet ist. In der Praxis hat ein CDR ein Bandweitelimit von wenigen Megahertz und mag (anders als ein taktübermitteltes Schema) nicht dazu fähig sein, die erheblichen Mengen von Mittel- bis Hochfrequenz-Jitter zu verfolgen, die in jegliche praktische Implementierung vorhanden sind.
  • Staffelung der Übergangszeiten von gekoppelten Datendrähten innerhalb eines Signalkanals kann zusätzlich verwendet werden, um Timing-Jitter zu reduzieren. Verzögerungen zwischen Datensignalen können unter Verwendung des Paares von übermittelten Takten implementiert werden, die relativ zu einander versetzt sind und zum Timing von wechselnden Datendrähten verwendet werden – zum Beispiel: Viertelzyklus-Drähte mit In-Phase- und Quadratur-Phase-(I/Q)-Doppeldatenrate-(DDR)-Takten, wie in der 3A gezeigt. Alternativ mögen Halbzyklus-Drähte mit einer übermittelten Vollrate-(Einzeldatenrate, SDR)-Takt implementiert werden.
  • Wie in der 3A gezeigt, ist der Sender 312 dazu konfiguriert, Halbratedaten auf den Datendraht 301 des I-Subkanals hinauf zu multiplexen unter Verwendung eines Taktsignals, clkI_data. Umgekehrt ist der Empfänger 314 dazu konfiguriert, Daten, die auf dem Datendraht 301 erhalten sind, zurück zu der Halb-Rate hinunter zu demultiplexen unter Verwendung des übermittelten clkQ-clk-Signals. An dem 28-nm-CMOS-Knoten ist die gezielte maximale Datenrate etwa 4 Gb/s. Um Schnittstellen mit vernünftigen Datenraten für die Einheiten, die die Signale erzeugen und empfangen, die auf der chipinternen Verdrahtung übermittelt werden, versorgen zu können, führen der Sender 312 und der Empfänger 314 jeweils 2:1-Serialisierung und 1:2-Deserialisierung der Daten durch.
  • Die Takterzeugungseinheit 325 erzeugt Hochgeschwindigkeitstakten für den Sender 312 und die Takt-Switch-Einheit 305. Die Takt-Switch-Einheit 305 ist dazu konfiguriert, entweder ClkI-clk oder ClkQ_clk für Ausgabe auf den Taktdraht eines Subkanals hinauf auszuwählen. Die Kalibrierungsmuster-Erzeugungseinheit 310 ist dazu konfiguriert, Kalibrierungsmuster zu erzeugen, die zum Messen der Timing-Eigenschaften jedes Drahtes verwendet werden. Die Kalibrierungsmuster-Erfassungseinheit 315 ist dazu konfiguriert, Muster zu erfassen, die auf dem Datendraht 301 als Antwort auf die Kalibrierungsmuster erzeugt werden. Die Kalibrierungssteuereinheit 320 ist dafür verantwortlich, die Operationen zu sequentialisieren, die zum Trimmen der Verzögerungen der Takt- und Datendrähte benötigt werden. Endlich konfiguriert die Kalibrierungssteuereinheit 320 die Kalibrierungsmuster-Erzeugungseinheit 310 zum Applizieren der Kalibrierungsmuster auf die Datendrähte über den Transmittler 312 und konfiguriert die Kalibrierungsmuster-Erfassungseinheit 315 zum Erfassen der Muster bei dem Empfänger 314. Die Kalibrierungsmuster-Erfassungseinheit 315 und die Kalibrierungssteuereinheit 320 analysieren die erfassten Muster und, basierend auf der Analyse der erfassten Muster, programmiert die Kalibrierungssteuereinheit 320 auch die konfigurierbaren Verzögerungsschaltungen 100. Die Kalibrierungssteuereinheit 320 steuert zusätzlich die Takt-Switch-Einheit 305 zum Stellen der übermittelten Taktsignale nach Bedarf während des Kalibrierungsprozesses. Die Kalibrierungssteuereinheit 320 mag in Schaltkreisen, Software oder einer Kombination von Schaltkreisen und Software implementiert.
  • Zusammengefasst misst das Kalibrierungssystem 300 die Verzögerungsoffsets der Takt- und Datendrähte unter Verwendung von Phasendetektionstechniken und korrigiert die Verzögerungen, wie es zum Einhalten von Timing-Bedingungen benötigt wird, unter Verwendung der konfigurierbaren Verzögerungsschaltungen 100, die in Reihe mit dem Drähten der chipinternen Verdrahtung platziert sind. Timing-Kalibrierung von einem Kanal wird separat für jeden I- und Q-Subkanal durchgeführt.
  • Die Phase eines Signalübergangs auf einem Draht wird relativ zu einem Referenzsignal unter Verwendung eines Alexander-Phasendetektors gemessen. Der Detektor wird implementiert durch Applizieren zweier verschiedener Kalibrierungsmuster, die von der Kalibrierungsmuster-Erzeugungseinheit 310 erzeugt wurden, auf den Datendraht. Die zwei verschiedenen Kalibrierungsmuster sind 1010... oder 0101... Die resultierenden Muster werden von der Kalibrierungsmuster-Erfassungseinheit 315 abgetastet unter Verwendung des übermittelten Taktes, der mit dem Subkanal assoziiert ist, in dem der Draht enthalten ist und der nominell mit den Flankenübergängen des Datensignals ausgerichtet ist. Wenn ein ansteigender Datenübergang relativ zu der aktiven Taktflanke verzögert ist, wird eine „0” abgetastet, das heißt, der Takt ist „früh” relativ zu den Daten oder die Daten sind „spät” relativ zu dem Takt. Wenn ein ansteigender Datenübergang relativ zu der aktiven Taktflanke fortgeschritten ist, wird ein „1” abgetastet, das heißt, der Takt ist „spät” relativ zu den Daten oder die Daten sind „früh” relativ zu dem Takt. Die Detektionstechniken stellen das Vorzeichen des relativen Offsets zwischen gewählten Polaritäten von Takt- und Datenflanken bereit. Übergänge auf dem übermittelten Takt stellen die Referenz für Datendrahtoffsetmessungen bereit. Die Phasenreferenz für den übermittelten Takt ist als der Punkt definiert, an dem es eine gleiche Anzahl von frühen und späten Indikationen von dem Satz von Übergängen über die Sammlung von Datendrähten innerhalb eines Subkanals gibt.
  • Die Kalibrierungssteuereinheit 320 konfiguriert die Kalibrierungsmuster-Erfassungseinheit 315 zum Abtasten ansteigender oder abfallender Datenübergänge unter Verwendung von entweder ansteigenden oder abfallenden Taktübergängen. Die Muster wiederholen sich alle zwei Bits, so dass 1:2-Demultiplexen der Daten bei dem Empfänger 316 Konstante Werte auf den Halbrateausgängen produzieren wird. Timing-Rauschen wird aber Variationen in den abgetasteten Konstanten Werten in der Nähe von dem Punkt bewirken, bei dem Takt- und Datenübergänge ausgerichtet sind. Solche Variationen können durch Akkumulieren mehrerer Messungen und Filtern der mehreren Messungen reduziert werden.
  • Das Kalibrierungsverfahren wurde für eine beispielhafte chipinterne Verdrahtung simuliert, die einhundert 10-mm-Kanäle aufweist, die jeweils 10 Bytes breit sind und bei 4 Gb/s pro Draht arbeiten. Die konfigurierbaren Verzögerungsschaltungen waren justierbar für 5 verschiedene Verzögerungen (0, +/–1 und +/–2 Justierungsstufen um einen zentralen Punkt herum), mit jeder Justierungsstufe ungefähr gleich 10 ps. Zufällige Offsets wurden unabhängig auf die positiven und negativen Signalübergangspolaritäten für jeden Draht appliziert und dann wurde der Kalibrierungsprozess verwendet, um das Timing der Drähte zu messen und die konfigurierbaren Verzögerungsschaltungen zu programmieren. Die Resultate der Simulation sind in den 3B und 3C gezeigt.
  • Die 3B ist Graphen, die Takt-zu-Daten-Offsets darstellen, vor, während und nach dem Kalibrierungsprozess für einen einzigen Kanal einer chipinternen Verdrahtung, gemäß einer Ausführungsform der vorliegenden Offenbarung. Der obere Timing-Verteilungsgraph 350 ist ein Histogramm, das zeigt, dass es vor jeglicher Kalibrierung ein mittleres Offset von etwa 10 ps gibt und dass die Spanne von Verzögerungsoffsets etwa 55 ps ist. Bevor die Datendrähte kalibriert werden, werden die Drähte kalibriert, die den Takt 351. übermitteln. Nach der Kalibrierung des Taktes, zeigt der mittlere Timing-Verteilungsgraph 352, dass die systematische Komponente des Verzögerungsoffsets entfernt ist, aber die Spanne von Verzögerungsoffsets verbleibt um etwa 50 ps. Wenn der Taktdraht kalibriert ist, um den justierten Takt 353 zu erzeugen, werden die Datendrähte kalibriert, um den Kalibrierungsprozess abzuschließen. Nachdem die Takt- und Datendrähte beide kalibriert sind, zieht sich die Verteilung dramatisch zusammen, wie es in dem unteren Timing-Verteilungsgraphen 354 gezeigt ist. Nach der Kalibrierung sind die meisten Verzögerungsoffsets zu einem Bereich von +/– einer Justierungsstufengröße 356 begrenzt. Die zwei Spitzen in der Verteilung, die in dem Timing-Verteilungsgraphen 354 gezeigt sind, entsprechen dem Restfehler in der Platzierung der ansteigenden und abfallenden Flanken des übermittelten Taktes, der auf dem justierten Takt 353 basiert.
  • Die 3C sind Graphen, der Takt-zu-Daten-Verzögerungsoffsets vor, während und nach Kalibrierung für 100 Kanäle einer Verdrahtung darstellt, gemäß einer Ausführungsform der vorliegenden Offenbarung. Der obere Timing-Verteilungsgraph 360 ist ein Histogramm von den Verzögerungsoffsets vor jeglicher Kalibrierung der Drähte, die den Takt 361 übermitteln. Der mittlere Timing-Verteilungsgraph 362 zeigt die Verzögerungsoffsets nach der Kalibrierung des Taktes. Der untere Timing-Verteilungsgraph 364 zeigt die Verzögerungsoffsets nachdem die Takt- und Datendrähte beide kalibriert sind.
  • Mit dem größeren Samplesatz ist die in 3C gezeigte Verteilung von Verzögerungen vollständiger ausgefüllt. Die Dicke in den Ausläufern in der Nähe von dem Rand der zentralen Verteilung ist auf Restjustierungsfehler in den übermittelten Takten zurückzuführen. Idealisierte Taktjustierung produziert scharfe Ränder von dem Hochwahrscheinlichkeitsbereich des Timing-Verteilungsgraphen 362 und der Timing-Verteilung 364.
  • Das Timing-Spanne-Budget, das für das Beispiel verwendet wurde, ist 0,36 UI, oder 90 ps, das nach der Kalibrierung von den Rest-Timing-Offsets eingehalten werden muss. Nach der Kalibrierung sind die meisten von den Verzögerungsoffsets zu einer Spanne von +/– einer Justierungsstufengröße 366 limitiert. Wie in der 3C gezeigt, wurde die Spanne der Offsetverzögerungen für die simulierte chipinterne Verdrahtung mit 100 Kanälen von etwa 100 ps zu 40 ps komprimiert, was das Timing-Spanne-Budget erfüllt.
  • Eine detailliertere Analyse zeigt, dass es für eine feste Anzahl von Justierungsstufen in der konfigurierbaren Verzögerungsschaltung 100 eine optimale Justierungsstufengröße gibt zum Maximieren der Link-Ausbeute, was wiederum die Chip-Ausbeute maximiert. In dem obigen Beispiel kann die Kalibrierung mit einer konfigurierbaren Verzögerungsschaltung 100 mit vier Justierungsstufen die Fehlerrate für eine chipinterne Verdrahtung mit 100 Kanälen von Einheit (100% Fehler) bis besser als 1e–5 (0,001% Fehler) reduzieren. Eine konfigurierbare Verzögerungsschaltung mit sechs Justierungsstufen kann besseres als eine Fehlerrate von 1e–7 (0,00001% Fehler) zu Stande bringen.
  • In einer Ausführungsform ist eine vorbestimmte akzeptable Verzögerungsvariation spezifiziert, innerhalb der die Verzögerung jedes Datendrahtes sich befinden muss für eine bestimmte Ziel-Chip-Ausbeute, die erreicht werden soll. Die Ziel-Chip-Ausbeute basiert typisch auf einer maximalen BER (Bit-Fehlerrate) für die chipinterne Verdrahtung. Die Justierungsstufengröße mag gleich der vorbestimmten akzeptablen Verzögerungsvariation gesetzt sein und die konfigurierbare Verzögerungsschaltung 100 mag dazu konfiguriert sein, die Verzögerung von jedem Draht mit einer ganzzahligen Anzahl von den Justierungsstufengrößen zu justieren, um die Verzögerung des Drahtes zu erhöhen oder zu reduzieren.
  • Die 3D sind Graphen, die die vorbestimmte akzeptable Verzögerungsvariation und Takt-zu-Daten-Verzögerungsoffsets darstellen, vor, während und nach der Kalibrierung für Drähte einer chipinternen Verdrahtung, gemäß einer Ausführungsform der vorliegenden Offenbarung. Der obere Graph ist ein Timing-Verteilungsgraph 370 der Verzögerungsoffsets vor jeglicher Kalibrierung. Beachte, dass die Abtasttaktflanke 372 nicht im Wesentlichen innerhalb der Verteilung der Verzögerungsoffsets zentriert ist. Wie gezeigt, ist die Anzahl von Drahtverzögerungen, die relativ zu der Abtasttaktflanke 372 positiv sind, größer als die Anzahl von Drahtverzögerungen, die relativ zu der Abtasttaktflanke 372 negativ sind.
  • Der mittlere Graph ist ein Timing-Verteilungsgraph 390 von den Verzögerungsoffsets nach der Kalibrierung des Taktes und die Abtasttaktflanke 372 ist jetzt kalibriert, zum Beispiel kalibrierter Takt 374, und ist im wesentlichen zentriert innerhalb der Verteilung der Verzögerungsoffsets. Mit anderen Worten ist die Anzahl von Datendrähten, die Verzögerungen haben, die relativ zu der Abtasttaktflanke positiv sind, ungefähr gleich der Anzahl von Datendrähten, die Verzögerungen haben, die relativ zu der Abtasttaktflanke negativ sind. Es ist wichtig, dass für sowohl den Timing-Verteilungsgraphen 370 als auch den Timing-Verteilungsgraphen 390 die Abtasttaktflanke in Phase mit den Datensignalen ist, so dass die Verzögerungen der ansteigenden und abfallenden Flanken für die Datendrähte relativ zu der kalibrierten Taktflanke 374 gemessen werden.
  • Eine Spanne 375 ist gezeigt, die an der kalibrierten Taktflanke 374 zentriert ist. In einer Ausführungsform ist die Spanne 375 gleich der vorbestimmten akzeptablen Verzögerungsvariation. Drähte, die Verzögerungen haben, die außerhalb der Spanne 375 liegen, werden als Ausreißer erachtet und die Verzögerung von jedem der Ausreißerdrähte wird individuell justiert, um die Ausreißer während des Datendrahtkalibrierungsprozesses innerhalb der Spanne von der Spanne 375 zu positionieren. Zum Beispiel werden die konfigurierbaren Verzögerungsschaltungen 100, die in Reihe mit den Datendrähten von Ausreißer innerhalb der Spanne 382 sind, justiert, um die Verzögerung von den jeweiligen Datendrähten mit einer Justierungsstufengröße zu reduzieren. Wenn die Justierungsstufengröße gleich der vorbestimmten akzeptablen Verzögerungsvariation (Spanne 375) ist, werden alle Ausreißer innerhalb der Spanne 382 verschoben, um innerhalb der Spanne von der vorbestimmten akzeptablen Verzögerungsvariation 375 zu liegen. In ähnlicher Weise werden die konfigurierbaren Verzögerungsschaltungen 100, die in Reihe mit den Datendrähten von Ausreißern innerhalb der Spanne 383 sind, justiert, um die Verzögerung von den jeweiligen Datendrähten mit einer Justierungsstufengröße zu erhöhen. Alle Ausreißer innerhalb der Spanne 383 werden verschoben, um innerhalb der Spanne von der Spanne 375 zu liegen, wenn die Justierungsstufengröße gleich der Spanne 375 ist.
  • Folglich mag die Justierungsstufengröße grob sein, wenn verglichen mit einer kleineren Justierungsstufengröße, die konfiguriert ist zum Verschieben der Verzögerung eines Datendrahtes mit einem minimalen Betrag, der benötigt wird, um innerhalb der Spanne 375 zu liegen. Eine grobe Präzision für Justierungen ist vorteilhaft, weil eine konfigurierbare Verzögerungsschaltung 100, die Justierungsstufengrößen feinerer Präzision haben, typisch mehr Energie verbraucht.
  • Wenn die konfigurierbare Verzögerungsschaltung 100 justiert werden mag, um eine Verzögerung von zwei Justierungsstufengrößen einzufügen, mögen die Datendrähte von Ausreißer innerhalb der Spanne 384 justiert werden, um die Verzögerung der jeweiligen Datendrähte mit zwei Justierungsstufengrößen zu reduzieren. In ähnlicher Weise mögen die Datendrähte von Ausreißer innerhalb der Spanne 385 justiert werden, um die Verzögerung der jeweiligen Datendrähte mit zwei Justierungsstufengrößen zu erhöhen. Der untere Graph 395 zeigt die Drahtverzögerungen nachdem die Takt- und Datendrähte beide kalibriert wurden und die Datendrähte, die mit einer Justierungsstufengröße justiert wurden, innerhalb der vorbestimmten akzeptablen Verzögerungsvariation (Spanne 375) liegen.
  • Die 4A ist ein Blockdiagramm von der in 3A gezeigten Takterzeugungseinheit 325, gemäß einer Ausführungsform der vorliegenden Offenbarung. Die Takterzeugungseinheit 325 weist einen Taktmultiplikator 405, Interpolationseinheiten 410 und I/Q-Taktteiler 412 auf. Jedes Ende von einem Kommunikationskanal weist eine Phasenregelschleife (PLL) auf, die innerhalb des Taktmultiplikators 405 enthalten ist, um die Hochgeschwindigkeitstakten für die Schnittstelle zwischen einer Kern-Logikeinheit und der chipinternen Verdrahtung zu erzeugen. Die PLL wird typisch verwendet zum Multiplizieren eines lokalen Kern-Taktes, wie zum Beispiel refclk 401, um einen Hochgeschwindigkeitstakt für die chipinterne Verdrahtung zu erzeugen.
  • Zusätzlich zu einer PLL weist die Takterzeugungseinheit 325 auch einen 360-Grad Phasenrotator auf. In einer Ausführungsform wird ein 1-GHz Referenztakt mit 4 multipliziert und ein Satz sechs-phasiger 4-GHz Takte wird von der Taktmultiplikator-Einheit 405 erzeugt. Die Takte in dem Satz von Takten dienen als Referenzphasen für ein Paar Interpretationseinheiten 410. Die Interpretationseinheiten 410 sind jeweils ein 360-Grad Phasenrotator. Die Ausgabe von jeder Interpretationseinheiten 410 steuert einen jeweiligen Taktteiler 412 an, der Doppeldatenrate-(DDR)-In-Phase-(I)- und -Quadratur-(Q)-Takte erzeugt – das heißt, ein Paar 2-GHz Takte mit einem Takt um 125 ps verzögert relativ zu dem anderen (0,5 UI). Eine von den I/Q-Taktausgaben steuert einen lokalen Sendeschaltkreis an, zum Beispiel den Sender 312, während die andere Taktausgabe verwendet wird, um die übermittelten Takte anzusteuern, zum Beispiel ClkI_clk und ClkQ_clk, für jeden Subkanal eines Kanals.
  • Separieren der Taktpfade für den Sender 312, zum Beispiel ClkI_data und ClkQ_data, von den übermittelten Takten, zum Beispiel ClkI_clk und ClkQ_clk, erlaubt, dass die Phase der übermittelten Takte relativ zu den Daten justiert wird, um Ausrichtung zu optimieren und/oder um die Timing-Spanne für jeden Datendraht zu messen. Beachte, dass der übermittelte Quadratur-Takt (ClkQ_clk) zum Abtasten von I-Subkanaldaten am Empfängerende des Drahtes verwendet wird und dass der übermittelte (invertierte) In-Phase-Takt (ClkI_clk) zum Abtasten der Q-Subkanaldaten verwendet wird. Die Abtastanordnung platziert nominell die Taktflanken in der Mitte des Datenauges für jeden Subkanal. Die Flanke des Taktes ist im Wesentlichen zwischen Übergängen eines Signals zentriert, das auf den Datendraht übermittelt wird, wenn die Taktsignalflanken in der Mitte des Datenauges platziert sind. Bei hohen Datenraten führt die Takterzeugungstechnik keine übermäßig große Takteinfügungsverzögerungsstrafe mit sich. Die übermittelten Taktphasen können auch relativ zu den Daten vorwärts bewegt werden, wenn es überschüssige Timing-Spanne gibt.
  • Die 4B ist ein Blockdiagramm von der Interpolationseinheit 410 der 4A, gemäß einer Ausführungsform der vorliegenden Offenbarung. Die Interpolationseinheit 410 funktioniert wie ein 360-Grad Wrapping-Phase-Interpolator, der in N Stufen justierbar ist, wobei N gleich 48 sein mag. Eine Phasensteuereinheit 415 wird von der Kalibrierungssteuereinheit 320 konfiguriert zum Justieren der Phase eines Taktes, der von der Takterzeugungseinheit 325 erzeugt wird. Die 3:1 Multiplexer 416 und 418 sind konfiguriert zum Auswählen zweier benachbarter Taktphasen, die interpoliert werden. Ein linearer Interpolator 420 wird von einer Anzahl von digitalen Steuerdrähten von der Phasensteuerlogik 415 so gesteuert, dass die Phase von PhClk in Stufen zwischen einer der ausgewählten Referenzphasen, zum Beispiel multipliziertem TaktA, multipliziertem TaktB und multipliziertem TaktC, und einer anderen Referenzphase, zum Beispiel multipliziertem TaktA, multipliziertem TaktB und multipliziertem TaktC, variieren kann.
  • Die 4C ist ein Blockdiagramm von der Kalibrierungsmuster-Erzeugungseinheit 310 der 3A, gemäß einer Ausführungsform der vorliegenden Offenbarung. Die Kalibrierungsmuster-Erzeugungseinheit 310 enthält lineare rückgekoppelte Schieberegister (LFSRs) für Test und Kalibrierungsmustererzeugung. Die LFSRs sind über die Drähte gestreift, wiederverwendend die Register, die mit den 2:1 Datenserialisierern (für Testfunktionen verwendet) assoziiert sind, um Leistung und Schaltkreisfläche zu reduzieren. In der in 4C gezeigten Ausführungsform sind die übermittelnden Drähte in zwei-Byte LFSRs hinein gruppiert, die Rückkopplungsabzweigungen haben, die 2:1 Serialisierung von unabhängigen 215–1 pseudozufälligen-binären-Sequenz-(PRBS)-Datenströmen und einfachen Schleifendurchlauf eines 32-Bit statischen Musters ermöglichen. Die Einschiebe- und Ausschiebe-Pfade können in die Serialisiererregisterpfade hinein ausgewählt werden, um das LFSR möglich zu machen. Die Mustererzeugungsfähigkeit ist nützlich für integrierten Selbsttest (BIST) und notwendig für das Timing-Kalibrierungsverfahren, als hierin weiter beschrieben.
  • Die 4D ist ein Blockdiagramm von der Kalibrierungsmuster-Erfassungseinheit 315 der 3A, gemäß einer Ausführungsform der vorliegenden Offenbarung. Die Kalibrierungsmuster-Erfassungseinheit 315 enthält auch einen Satz von LFSRs, die komplementär zu denen der Kalibrierungsmuster-Erzeugungseinheit 310 sind. Die Kalibrierungsmuster-Erfassungseinheit 315 erlaubt pro-Draht-Prüfung von PRBS und statischen Mustern. Bereitstellung von dedizierten Registern für das LFSR in verhindert, dass eingehende Fehler das Referenzmuster zerstört, das um den Kreis herum verschieben wird, und stellt einen zweiten angesteuerten Taktpfad bereit zum Erfassen von Halbratedaten auf dem Ausgang des De-Serialisierers. Die Fehlerausgaben werden an dedizierte Fehlerprüfungslogik gesendet und erfasste Werte werden der Kalibrierungssteuereinheit 320 zugeführt.
  • Die 5A ist ein Flussdiagram, das eine Technik zum Kalibrieren chipinterner Verdrahtung darstellt, gemäß einer Ausführungsform der vorliegenden Offenbarung. Obwohl die Verfahrensschritte in Verbindung mit dem Timing-Kalibrierungssystem 300 von 3A, der Takterzeugungseinheit 325 von 4A, der Kalibrierungsmuster-Erzeugungseinheit 310 von 4C und der Kalibrierungsmuster-Erfassungseinheit 315 von 4D beschrieben werden, werden Fachleute mit durchschnittlichen Kenntnissen verstehen, dass jedes System, das zum Durchführen der Verfahrensschritte konfiguriert ist, in jeder beliebigen Reihenfolge, innerhalb des Umfangs der vorliegenden Offenbarung ist.
  • Bei dem Schritt 500 erzeugt das Timing-Kalibrierungssystem 300 eine Mehrzahl von Messungen, um die Drahtverzögerungen auf der chipinternen Verdrahtung zu charakterisieren. Die Kalibrierungsmuster-Erzeugungseinheit 310 wird konfiguriert zum Applizieren eines ersten Signalübergangsmusters auf Drähte der chipinternen Verdrahtung, um eine Mehrzahl von ersten Messungen zu erzeugen. Die Kalibrierungsmuster-Erzeugungseinheit 310 wird dann konfiguriert zum Applizieren eines zweiten Signalübergangsmusters auf die Drähte der chipinternen Verdrahtung, um eine Mehrzahl von zweiten Messungen zu erzeugen.
  • Bei dem Schritt 505 wird das Taktsignal für jeden Subkanal kalibriert durch Zentrieren des Taktsignals relativ zu einer Verteilung der gemessenen Drahtverzögerungen für den Subkanal. Ein detailliertes Flussdiagramm für den Schritt 505 wird in Zusammenhang mit der 5B beschrieben. Eine vorbestimmte akzeptierbare Verzögerungsvariation ist für die Drähte der chipinternen Verdrahtung spezifiziert. Die vorbestimmte akzeptierbare Verzögerungsvariation entspricht einer Ziel-Chipausbeute und wenn einer oder mehrere von den Drähten außerhalb der Spanne der vorbestimmten akzeptierbaren Verzögerungsvariation fallen, dann mag die Ziel-Chipausbeute nicht eingehalten werden. Wenn das Taktsignal relativ zu der Verteilung der gemessenen Drahtverzögerungen zentriert ist, dann ist das Taktsignal auch relativ zu der Spanne der vorbestimmten akzeptierbaren Verzögerungsvariation.
  • Bei dem Schritt 510 werden die Datendrahtverzögerungen relativ zu dem zentrierten Takt kalibriert, so dass Datendrähte, die Verzögerungen haben, die außerhalb der Spanne der vorbestimmten akzeptierbaren Verzögerungsvariation fallen, justiert werden. Basierend auf der Mehrzahl von ersten Messungen und der Mehrzahl von zweiten Messungen programmiert die Kalibrierungssteuereinheit 320 einen oder mehrere von den konfigurierbaren Verzögerungsschaltungen 100, um Verzögerung von den Drähten nach Bedarf zu justieren, so dass diese innerhalb der Spanne der vorbestimmten akzeptierbaren Verzögerungsvariation fällt. Endlich, bei dem Schritt 515, wird die Phase der übermittelten Takte justiert, so dass die Taktflanken zwischen Datenübergängen für jeden Subkanal zentriert werden. Ein detailliertes Flussdiagramm vom Schritt 510 ist in Zusammenhang mit der 5B beschrieben.
  • Die 5B ist ein Flussdiagram, das eine Technik vom Schritt 505 der 5A zum Kalibrieren chipinterner Taktverdrahtung darstellt, gemäß einer Ausführungsform der vorliegenden Offenbarung. Obwohl die Verfahrensschritte in Verbindung mit dem Timing-Kalibrierungssystem 300 von 3A, der Takterzeugungseinheit 325 von 4A, der Kalibrierungsmuster-Erzeugungseinheit 310 von 4C und der Kalibrierungsmuster-Erfassungseinheit 315 von 4D beschrieben werden, werden Fachleute mit durchschnittlichen Kenntnissen verstehen, dass jedes System, das zum Durchführen der Verfahrensschritte konfiguriert ist, in jeder beliebigen Reihenfolge, innerhalb des Umfangs der vorliegenden Offenbarung ist.
  • Bei dem Schritt 520 beginnt der Taktdrahtkalibrierungsprozess durch Identifizieren der Taktflanke als ansteigend oder abfallend. Bei dem Schritt 522 spezifiziert die Taktkalibrierungssteuereinheit 320 die abfallende Taktflanke für Kalibrierung. Bei dem Schritt 521 spezifiziert die Taktkalibrierungssteuereinheit 320 die ansteigende Taktflanke für Kalibrierung. Bei dem Schritt 525 wird ein ansteigendes Datenübergangssignal von der Kalibrierungsmuster-Erzeugungseinheit 310 auf die Datendrähte der chipinternen Verdrahtung appliziert. Bei dem Schritt 528 zählt die Kalibrierungsmuster-Erfassungseinheit 315 „Takt spät”-Abtastungen, das heißt ansteigende Datenübergänge, die vor der Abtastungstaktflanke auftreten und als Daten-High abgetastet werden.
  • Bei dem Schritt 530 wird ein abfallendes Datenübergangssignal von der Kalibrierungsmuster-Erzeugungseinheit 310 auf die Datendrähte der chipinternen Verdrahtung appliziert. Bei dem Schritt 532 zählt die Kalibrierungsmuster-Erfassungseinheit 315 „Takt spät”-Abtastungen. Bei dem Schritt 535 erhält die Kalibrierungssteuereinheit 320 die Anzahlen der „Takt spät”-Abtastungen von der Kalibrierungsmuster-Erfassungseinheit 315 und berechnet eine totale Anzahl (Summe) der „Takt spät”-Abtastungen durch Summieren der Anzahle, die bei den Schritten 528 und 532 erzeugt wurden. Bei dem Schritt 537 bestimmt die Kalibrierungssteuereinheit 320, ob die Summe größer als die Anzahl der Datendrähte, NDrähte ist. Falls die Kalibrierungssteuereinheit 320 beim Schritt 537 bestimmt, dass die Summe größer als die Anzahl von Datendrähten ist, dann ist der Takt spät bei Schritt 538 und die konfigurierbare Verzögerungsschaltung 100, die in Reihe mit dem Taktdraht ist, der kalibriert wird, wird von der Kalibrierungssteuereinheit 320 zum Reduzieren der Verzögerung konfiguriert. Falls die Kalibrierungssteuereinheit 320 beim Schritt 537 bestimmt, dass die Summe nicht größer als die Anzahl von Datendrähten ist, dann ist der Takt früh bei Schritt 540 und die konfigurierbare Verzögerungsschaltung 100, die in Reihe mit dem Taktdraht ist, der kalibriert wird, wird von der Kalibrierungssteuereinheit 320 zum Auslösen der Verzögerung konfiguriert.
  • Bei dem Schritt 542 bestimmt die Kalibrierungssteuereinheit 320, ob beide Flanken des Taktes justiert worden sind, so dass die Kalibrierung komplett ist, und wenn nicht, konfiguriert die Kalibrierungssteuereinheit 320 bei dem Schritt 544 die Takt-Switch-Einheit 305 zum Kalibrieren der gegenüberliegenden Flanke und zum Rückkehren zum Schritt 520.
  • Anderenfalls, bei dem Schritt 545, konfiguriert die Kalibrierungssteuereinheit 320 die Takterzeugungseinheit 325 zum Rückkehren zu der originalen Takt-Switch-Position. Mit anderen Worten ist das Taktsignal während der Kalibrierung in Phase mit den Datensignalen, so dass die Datensignale relativ zu dem Taktsignal gemessen werden mögen. Wenn der Schritt 545 erreicht wird, ist die Taktsignalflanke innerhalb der Verteilung der Verzögerungsvariationen zentriert. Für normalen Betrieb sollte das Taktsignal außer Phase mit den Datensignalen sein, so dass die Taktflanke innerhalb eines Auges von Datenübergängen zentriert wird, um die Datensignalen am besten abzutasten. Folglich wird die Takterzeugungseinheit 325, beim Schritt 545, konfiguriert zum Justieren des Taktsignales, so dass dieses 90 Grad phasenverschoben relativ zu den Datensignalübergängen ist.
  • Die 6 ist ein Flussdiagram, das eine Technik zum Kalibrieren von Datendrähten der chipinternen Verdrahtung zum Durchführen des Schrittes 510 von 5A darstellt, gemäß einer Ausführungsform der vorliegenden Offenbarung. Obwohl die Verfahrensschritte in Verbindung mit dem Timing-Kalibrierungssystem 300 von 3A, der Takterzeugungseinheit 325 von 4A, der Kalibrierungsmuster-Erzeugungseinheit 310 von 4C und der Kalibrierungsmuster-Erfassungseinheit 315 von 4D beschrieben werden, werden Fachleute mit durchschnittlichen Kenntnissen verstehen, dass jedes System, das zum Durchführen der Verfahrensschritte konfiguriert ist, in jeder beliebigen Reihenfolge, innerhalb des Umfangs der vorliegenden Offenbarung ist.
  • Bei dem Schritt 605 konfiguriert die Kalibrierungssteuereinheit 320 die Takterzeugungseinheit 325 zum Ausrichten der Flanken des übermittelten Taktsignals (der übermittelten Taktsignale) mit den Datenflanken. Bei dem Schritt 610 beginnt der Datendrahtkalibrierungsprozess durch Identifizieren der Datenflanke als ansteigend oder abfallend. Bei dem Schritt 620 spezifiziert die Kalibrierungssteuereinheit 320 die abfallende Taktflanke für Kalibrierung. Bei dem Schritt 615 spezifiziert die Kalibrierungssteuereinheit 320 die ansteigende Taktflanke für Kalibrierung.
  • Bei dem Schritt 625 werden das Früh-Flag und das Spät-Flag gelöscht, die für die Datendrähte von der Kalibrierungsmuster-Erfassungseinheit 315 verwaltet werden. Separate Flags werden von der Kalibrierungsmuster-Erfassungseinheit 315 für jeden Datendraht verwaltet. Bei dem Schritt 630 wird ein ansteigendes oder abfallendes (je nachdem was beim Schritt 615 oder 620 spezifiziert wurde) Datenübergangssignal von der Kalibrierungsmuster-Erzeugungseinheit auf die Datendrähte der chipinternen Verdrahtung appliziert. Bei dem Schritt 635 registriert die Kalibrierungsmuster-Erfassungseinheit 315, ob die Daten früh oder spät relativ zu der übermittelten ansteigenden Taktflanke sind.
  • Die Daten werden als früh registriert, wenn eine „0” für einen ansteigenden Datenübergang erfasst wird, und die Daten werden als spät registriert, wenn eine „1” für einen ansteigenden Datenübergang erfasst wird. In ähnlicher Weise werden die Daten als früh registriert, wenn eine „1” für einen abfallenden Datenübergang erfasst wird, und die Daten werden als spät registriert, wenn eine „0” für einen abfallenden Datenübergang erfasst wird.
  • Bei dem Schritt 640 wird ein ansteigendes oder abfallendes (je nachdem was beim Schritt 615 oder 620 spezifiziert wurde) Datenübergangssignal von der Kalibrierungsmuster-Erzeugungseinheit 310 auf die Datendrähte der chipinternen Verdrahtung appliziert. Bei dem Schritt 645 registriert die Kalibrierungsmuster-Erfassungseinheit 315, ob die Daten früh oder spät relativ zu der übermittelten abfallenden Taktflanke sind. Bei dem Schritt 650 setzt die Kalibrierungsmuster-Erzeugungseinheit 310 die Flags basierend auf den Daten, die bei den Schritten 635 und 645 registriert wurden. Wenn die Daten, die für sowohl die ansteigende Flanke als auch für die abfallende Flanke des übermittelten Taktes registriert wurden, früh sind, wird das Früh-Flag für den Datendraht gesetzt. Wenn die Daten, die für sowohl die ansteigende Flanke als auch für die abfallende Flanke des übermittelten Taktes registriert wurden, spät sind, wird das Spät-Flag für den Datendraht gesetzt. Für jeden Datendraht mag entweder das Früh-Flag oder das Spät-Flag gesetzt werden oder beide Flags mögen gelöscht werden, was darauf hinweist, dass der Datendraht weder früh noch spät ist.
  • Bei dem Schritt 655 erhält die Kalibrierungssteuereinheit 320 die Flags von der Kalibrierungsmuster-Erfassungseinheit 315 und parst die Flags. Wenn, beim Schritt 655, die Kalibrierungssteuereinheit 320 bestimmt, dass ein Datendraht das Früh-Flag gesetzt hat, dann wird, bei dem Schritt 660, die konfigurierbare Verzögerungsschaltung 100, die in Reihe mit dem Datendraht ist, der kalibriert wird, von der Kalibrierungssteuereinheit 320 konfiguriert zum Erhöhen der Verzögerung des Datendrahtes. Wenn, beim Schritt 655, die Kalibrierungssteuereinheit 320 bestimmt, dass ein Datendraht das Spät-Flag gesetzt hat, dann wird, bei dem Schritt 665, die konfigurierbare Verzögerungsschaltung 100, die in Reihe mit dem Datendraht ist, der kalibriert wird, von der Kalibrierungssteuereinheit 320 konfiguriert zum Reduzieren der Verzögerung des Datendrahtes. Wenn, beim Schritt 655, die Kalibrierungssteuereinheit 320 bestimmt, dass ein Datendraht kein Flag gesetzt hat, dann wird, beim Schritt 665, die konfigurierbare Verzögerungsschaltung 100, die in Reihe mit dem Datendraht ist, der kalibriert wird, von der Kalibrierungssteuereinheit 320 dazu konfiguriert, die Verzögerung des Datendrahtes weder zu erhöhen noch zu reduzieren.
  • Bei dem Schritt 670 bestimmt die Kalibrierungssteuereinheit 320, ob die Datensignale für beide Taktflanken justiert worden sind, so dass die Kalibrierung komplett ist, und wenn nicht, wählt die Kalibrierungssteuereinheit 320, bei dem Schritt 675, die gegenüberliegende Taktflanke des Datensignals aus und kehrt zu Schritt 605 zurück. Anderenfalls, bei dem Schritt 680, konfiguriert die Kalibrierungssteuereinheit 320 die Takterzeugungseinheit 325 zum Rückkehren zu der originalen Takt-Switch-Position, das heißt, dass das Taktsignal so justiert wird, dass es 90 Grad phasenverschoben relativ zu den Datensignalübergängen ist.
  • Die 7 ist ein Flussdiagram, das eine Technik zum Durchführen von Schritt 515 von 5A darstellt, um Taktphasenjustierungen zu machen, gemäß einer Ausführungsform der vorliegenden Offenbarung. Obwohl die Verfahrensschritte in Verbindung mit dem Timing-Kalibrierungssystem 300 von 3A, der Takterzeugungseinheit 325 von 4A, der Kalibrierungsmuster-Erzeugungseinheit 310 von 4C und der Kalibrierungsmuster-Erfassungseinheit 315 von 4D beschrieben werden, werden Fachleute mit durchschnittlichen Kenntnissen verstehen, dass jedes System, das zum Durchführen der Verfahrensschritte konfiguriert ist, in jeder beliebigen Reihenfolge, innerhalb des Umfangs der vorliegenden Offenbarung ist.
  • Die Fähigkeit, die relative Phase der übermittelten Takte und Daten mit Phasenrotatoren zu steuern, kann zum Korrigieren von systematischem Taktversatz verwendet werden. Während der Takt- und Datendrahtkalibrierungsprozesse werden die konfigurierbaren Verzögerungsschaltungen 100 für jeden Draht ausgelegt zum Kompensieren für Drahtverzögerungsvariation, die auf Variationen in dem CMOS-Herstellungsprozess zurückzuführen sind. Es gibt aber andere potentielle Quellen zum systematischen Versatz zwischen Takt- und Datensignalen, wie beispielsweise Asymmetrie in den Taktpuffern an den Sender- und Empfängerenden des Links und Apertur-Offsets in den Empfänger-Flipflops. Justierungen der übermittelten Taktphase kann gemacht werden, um für solche Offsets zu kompensieren.
  • Der im Zusammenhang mit 5B beschriebene Taktverzögerung-Kalibrierungsprozess ergibt zwei Justierungswerte (zum Beispiel Steuersignaleinstellungen) für die konfigurierbare Verzögerungsschaltung 100: jeweils einen für ansteigende und abfallende Übergangspolaritäten. Es ist das Ziel der Phasenrotatorjustierung, die zwei Justierungswerte innerhalb der Spanne von der konfigurierbaren Verzögerungsschaltung 100 zu zentrieren. Wenn zum Beispiel beide Justierungswerte an der minimalen oder maximalen Verzögerung angeklammert (engl. „pegged”) sind, muss der Versatz zwischen den übermittelten Takten- und Datensignalen größer als der Wurf (engl. „throw”) des Taktverzögerungselementes sein, wobei der Wurf die maximale Verzögerung ist, welche die konfigurierbare Verzögerungsschaltung 100 produzieren mag. Als wir diesen Takt-zu-Daten-Versatz mit dem Phasenrotator entfernen, werden die Zweijustierungswerte sich in Richtung des Zentrums der Verzögerungsjustierungsspanne bewegen, d. h. keine Erhöhung und keine Reduktion in der Verzögerung. Das Kriterium für das Zentrieren der Justierungscodes ist, den Mittelwert der zwei Verzögerung Justierungswerte so nahe an dem zentralen Wert wie möglich zu platzieren.
  • Wieder mit Bezug auf 7 beginnt die Taktverzögerungselementkalibrierung zum Justieren für Taktversatz bei dem Schritt 750. Bei dem Schritt 755 bestimmt die Kalibrierungssteuereinheit 320, ob die Justierungswerte für die Datendrähte zentriert sind, und wenn dies der Fall ist, ist der Taktphasenjustierungsprozess bei dem Schritt 760 fertig. Anderenfalls bestimmt die Kalibrierungssteuereinheit 320 bei dem Schritt 765, ob die Justierungswerte zum Minimieren der Verzögerung der Datendrähte gesetzt sind, und wenn dies der Fall ist, wird die Takterzeugungseinheit 325 bei dem Schritt 775 konfiguriert zum Erhöhen der Phasenrotatorverzögerung vor Rückkehr zum Schritt 750. Anderenfalls, bei dem Schritt 770, wird die Takterzeugungseinheit 325 konfiguriert zum Reduzieren der Phasenrotatorverzögerung vor Rückkehr zum Schritt 750.
  • Ein weiterer interessanter Fall, in welchem die Phasenrotatoren zum Optimieren von Taktausrichtung verwendet werden können, ist bei niedrigen Datenraten. Wenn die Datenrate des Kommunikationskanals von der maximalen Rate reduziert wird durch Reduzieren der Frequenz des refclk, der zu der Takterzeugungseinheit 325 eingegeben wird, oder wenn der Multiplikationsfaktor (engl. „multiplication ratio”) reduziert wird, wird die 90-Grad-Phasenverschiebung zwischen I- und Q-Takten aufrechterhalten und die Timing-Spanne (und Takteinfügungsverzögerung) erhöht sich entsprechend. In einigen Ausführungsformen mag ein programmierbarer Taktteiler aber stromabwärts von jedem I/Q-Teiler angebracht werden. Der programmierbare Taktteiler erweitert die Spanne von verfügbaren Datenraten auf unter die Spanne der taktmultiplizierenden PLL hinunter. Das von jedem Nach-Teiler (engl. „post-divider”) erzeugte Takt-Paar wird mit 90°/N beabstandet sein, wobei N der Teilungsfaktor des Nach-Teilers und 90° auf die geteilte Taktrate bezogen ist. Die Erweiterung von den verfügbaren Datenraten mag wünschenswert sein, da sie die Takteinfügungsverzögerung auf der der maximalen Datenrate festlegt, statt mit der zunehmenden Bitperiode aufzuskalieren. Falls mehr Timing-Spanne bei den niedrigeren Datenraten (auf Kosten der Takteinfügungsverzögerung) erwünscht ist, können die Phasenrotatoren zum Verzögern des Taktes verwendet werden bis die erwünschte Setup-Spanne erreicht ist. Beachte, dass die Drahtverzögerungskalibrierung weiterhin arbeiten wird, wenn Nach-Teiler verwendet werden.
  • Redundanz und kontinuierliches Messen
  • In einer Ausführungsform mögen zusätzlichen Datendrähte und mindestens ein zusätzlicher Taktdraht für einen oder mehrere Kanäle der chipinternen Verdrahtung inkludiert sein. Die zusätzlichen Drähte sind redundant und mögen anstelle eines Drahtes verwendet werden, der die Timing-Bedingungen nicht erfüllt, selbst nach Justierung der Verzögerung des Drahtes justiert wurde. Um Chipausbeute weiter zu verbessern, mögen alle die verfügbaren Drähte kalibriert werden, einschließlich der redundanten Drähte, und der Satz von Drähten, der die Timing-Bedingungen am besten erfüllt, mag zum übermitteln der Datensignale auf der chipinternen Verdrahtung ausgewählt werden.
  • Die Kalibrierungsmuster-Erzeugungseinheit 310 und die Kalibrierungsmuster-Erfassungseinheit 315 mögen modifiziert werden, um zu erlauben, dass ein redundanter Draht für irgendeinen anderen Draht von jedem Subkanal ausgetauscht wird. Einfügung von einem 2:1 multiplexer ermöglicht, dass ein Signal über einen von zwei Drähten übermittelt wird, was ein Subkanal erlaubt, die besten N von N + 1 Drähten, die verfügbar sind, zu verwenden. Die Ausbeute wird verbessert, da Daten nicht über nicht funktionierende Drähte oder Drähte, die die geringste Timing-Spanne haben, übermittelt werden.
  • Die 8A ist ein Flussdiagram, das eine Technik zum Kalibrieren chipinterner Verdrahtung mit Redundanz darstellt, gemäß einer Ausführungsform der vorliegenden Offenbarung. Obwohl die Verfahrensschritte in Verbindung mit dem Timing-Kalibrierungssystem 300 von 3A, der Takterzeugungseinheit 325 von 4A, der Kalibrierungsmuster-Erzeugungseinheit 310 von 4C und der Kalibrierungsmuster-Erfassungseinheit 315 von 4D beschrieben werden, werden Fachleute mit durchschnittlichen Kenntnissen verstehen, dass jedes System, das zum Durchführen der Verfahrensschritte konfiguriert ist, in jeder beliebigen Reihenfolge, innerhalb des Umfangs der vorliegenden Offenbarung ist.
  • Bei dem Schritt 805 wird das übermittelte Taktsignal für einen Subkanal unter Verwendung der in Zusammenhang mit 5B beschriebenen Technik kalibriert, das heißt, dass Verzögerungen der Datendrähte relativ zu jeder Flanke des übermittelten Taktsignals gemessen werden. Bei dem Schritt 810 wird ein Satz von Drähten ausgewählt, der die Timing-Bedingungen am besten erfüllt, und die konfigurierbare Verzögerungsschaltung 100, die in Reihe mit dem übermittelten Taktsignal ist, wird innerhalb einer Verteilung der Drahtverzögerungen der ausgewählten Drähte im Wesentlichen zentriert. Beachte, dass die ausgewählten Drähte auch einen oder mehrere redundante(n) Datendrähte enthalten mögen.
  • Bei dem Schritt 812 werden die Datendrahtverzögerungen relativ zu dem Taktsignal (ClkI_data oder ClkQ_data) unter Verwendung der in Zusammenhang mit 6 beschriebenen Techniken kalibriert. Endlich, bei dem Schritt 815, wird die Phase des übermittelten Taktsignals (ClkI_clk oder ClkQ_clk) unter Verwendung der in Zusammenhang mit 7 beschriebenen Techniken justiert.
  • Eine andere Nutzung für die redundanten Drähte ist, Timing-Spanne-Charakterisierung durchzuführende während ein Kanal arbeitet. Redundante Drähte mögen in rauschenden Umgebungen gerandet (engl. „margined”) werden, wenn tatsächliche Anwendungen auf dem Chip ausgeführt werden. Eine zusätzliche Takt-Switch-Einheit 305 mag eingefügt werden und in Verbindung mit der existierenden Kalibrierungsmuster-Erzeugungseinheit 310, Kalibrierungsmuster-Erfassungseinheit 315 und Kalibrierungssteuereinheit 320 verwendet werden, während die chipinterne Verdrahtung aktiviert ist zum Übermitteln von Signalen während normales Betriebs, um die redundanten Drähte zu charakterisieren. Das Timing-Kalibrierungssystem 200 ist konfiguriert zum Fegen der Phase der übermittelten Takten und Daten für die redundanten Drähte während die bei der Kalibrierungsmuster-Erfassungseinheit 315 empfangenen Kalibrierungsmuster auf Fehler überprüft werden, die Timing-Spanne kann während normales Betriebs für jeden redundanten Draht gemessen werden. Wenn der Phasenrotator eine hohe Auflösung hat, kann eine „Badewanne”-Kurve von der Bitfehlerrate gegenüber dem Phasenoffset von der Kalibrierungsmuster-Erfassungseinheit 315 erzeugt werden, was Messung und Extrapolieren von Timing-Spanne auf bestimmten Bitfehlerraten erlaubt.
  • Die 8B ist ein Flussdiagram, das eine Technik zum dynamischen Messen von Eigenschaften bzw. Charakteristiken chipinterner Verdrahtung während normales Betriebs unter Verwendung repräsentativer redundanter Drähte darstellt, gemäß einer Ausführungsform der vorliegenden Offenbarung. Obwohl die Verfahrensschritte in Verbindung mit dem Timing-Kalibrierungssystem 300 von 3A, der Takterzeugungseinheit 325 von 4A, der Kalibrierungsmuster-Erzeugungseinheit 310 von 4C und der Kalibrierungsmuster-Erfassungseinheit 315 von 4D beschrieben werden, werden Fachleute mit durchschnittlichen Kenntnissen verstehen, dass jedes System, das zum Durchführen der Verfahrensschritte konfiguriert ist, in jeder beliebigen Reihenfolge, innerhalb des Umfangs der vorliegenden Offenbarung ist.
  • Bei dem Schritt 820 wird das übermittelte Taktsignals für einen Subkanal kalibriert unter Verwendung der in Zusammenhang mit 5B beschriebenen Technik, das heißt, dass Verzögerungen der Datendrähte relativ zu jeder Flanke des übermittelten Taktsignals gemessen werden und dass die konfigurierbare Verzögerungsschaltung 100, die in Reihe mit dem übermittelten Taktsignal ist, innerhalb einer Verteilung der Drahtverzögerungen im Wesentlichen zentriert wird. Bei dem Schritt 825 werden die Datendrahtverzögerungen relativ zu dem Taktsignal (ClkI_data oder ClkQ_data) unter Verwendung der in Zusammenhang mit 6 beschriebenen Techniken kalibriert. Bei dem Schritt 830 wird die Phase der übermittelten Taktsignale (ClkI_clk oder ClkQ_clk) unter Verwendung der in Zusammenhang mit 7 beschriebenen Techniken justiert.
  • Bei dem Schritt 820 werden Datensignale auf die Datendrähte übermittelt und die übermittelten Taktsignale werden auf die Taktdrähte für den Kanal der chipinternen Verdrahtung übermittelt. Bei dem Schritt 825 werden die Timing-Eigenschaften der repräsentativen redundanten Drähte gemessen. Die redundanten Drähte werden als repräsentativ erachtet, weil sie in einer ähnlichen Weise wie die Drähte des Kanals geroutet sind. Die Timing-Eigenschaften der repräsentativen redundanten Drähte werden gemessen durch Durchführen der Schritte, die in Zusammenhang mit der 6 beschrieben sind. Das Früh-Flag und das Spät-Flag mögen für jeden repräsentativen redundanten Draht bestimmt werden und die konfigurierbare Verzögerungsschaltung 100 mag auch justiert werden, um die Charakterisierung durchzuführen.
  • Systemübersicht
  • 9 ist ein Blockdiagramm, das ein Computersystem 900 zeigt, das zum Implementieren eines oder mehrerer Aspekte der vorliegenden Erfindung konfiguriert ist. Das Computersystem 900 weist eine zentrale Verarbeitungseinheit (CPU) 902 und einen Systemspeicher 904 auf, die über einen Verbindungspfad (engl. „interconnection path”), der eine Speicherbrücke 905 aufweisen mag, miteinander kommunizieren. Die Speicherbrücke 905, die zum Beispiel ein Northbridge-Chip sein mag, ist über einen Bus oder einen anderen Kommunikationspfad 906 (zum Beispiel einen HyperTransport-Link) mit einer I/O-(Input/Output)-Brücke 907 verbunden. Eine oder mehrere von den Vorrichtungen, die in 3B gezeigt sind, mögen die konfigurierbare Verzögerungsschaltung 100 zum Verzögern von Takt- und/oder Datensignalen einer chipintegrierten Verdrahtung enthalten.
  • Die I/O-Brücke 907, die zum Beispiel ein Southbridge-Chip sein mag, erhält Benutzereingaben von einer oder mehreren Benutzereingabevorrichtungen 908 (zum Beispiel Tastatur, Maus) und leitet die Eingaben über den Kommunikationspfad 906 und die Speicherbrücke 905 an die CPU 902 weiter. Ein Parallelverarbeitungssubsystem 912 ist über einen Bus oder einen zweiten Kommunikationspfad 913 (zum Beispiel einen Peripheral Component Interconnect (PCI) Express, einen Accelerated Graphics Port oder einen HyperTransport-Link) an die Speicherbrücke 905 gekoppelt; in einer Ausführungsform ist das Parallelverarbeitungssubsystem 912 ein Grafiksubsystem, das Pixel zu einer Displayvorrichtung 910 (zum Beispiel einem konventionellen auf Kathodenstrahlröhre oder Flüssigkristalldisplay basierenden Monitor) liefert. Eine Systemdisk 914 ist auch mit der I/O-Brücke 907 verbunden. Ein Switch 916 stellt Verbindungen zwischen der I/O-Brücke 907 und anderen Bauteilen, wie zum Beispiel einem Netzwerkadapter 918 und verschiedenen Erweiterungskarten 920 und 921, bereit. Andere (nicht explizit gezeigte) Bauteile, einschließlich Universal Serial Bus (USB) oder anderer Portanschlüsse, Compact-Disc-(CD)-Laufwerke, Digital-Video-Disc-(DVD)-Laufwerke, Filmaufzeichnungsvorrichtungen und ähnliches, mögen auch mit der I/O-Brücke 907 verbunden sein. Die verschiedene Verbindungspfade, die in 3B gezeigt sind, einschließlich der spezifisch benannten Kommunikationspfade 906 und 913, mögen unter Verwendung jeglicher geeigneten Protokollen, wie zum Beispiel PCI-Express, AGP (Accelerated Graphics Port), HyperTransport oder jedem anderen Bus oder Punkt-zu-Punkt-Kommunikationsprotokoll(en) implementiert sein, und Verbindungen zwischen verschiedenen Vorrichtungen mögen verschiedene Protokolle benutzen, wie es aus dem Stand der Technik bekannt ist.
  • Das Parallelverarbeitungssubsystem 912 weist in einer Ausführungsform Schaltkreise auf, die für Grafik- und Videoverarbeitung optimiert sind, einschließlich zum Beispiel Videoausgabeschaltkreise, und stellt eine Grafikverarbeitungseinheit (GPU) dar. In einer anderen Ausführungsform weist das Parallelverarbeitungssubsystem 912 Schaltkreise auf, die für Universalverarbeitung optimiert sind, während die unterliegende rechnerische Architektur aufrechterhalten wird, wie es hierin detaillierter beschrieben wurde. In noch einer weiteren Ausführungsform mag das Parallelverarbeitungssubsystem 912 mit einem oder mehreren anderen Systemelementen in einem einzigen Subsystem integriert sein, wie zum Beispiel durch Zusammenfügen (engl. „joining”) der Speicherbrücke 905, der CPU 902 und der I/O-Brücke 907, um ein System-auf-Chip (engl. „system on chip”) (SoC) zu bilden.
  • Es wird verstanden werden, dass das hierin gezeigte System illustrativ ist und dass Variationen und Modifikationen möglich sind. Die Verbindungstopologie, einschließlich der Anzahl und Anordnung von Brücken, der Anzahl von CPUs 902 und der Anzahl von Parallelverarbeitungssubsystemen 912, mag wie gewünscht variiert werden. In einigen Ausführungsformen ist der Systemspeicher 904 zum Beispiel direkt mit der CPU 902 verbunden, statt über eine Brücke, und andere Vorrichtungen kommunizieren über die Speicherbrücke 905 und die CPU 902 mit dem Systemspeicher 904. In weiteren alternativen Topologien ist das Parallelverarbeitungssubsystem 912 mit der I/O-Brücke 907 oder direkt mit der CPU 902 verbunden, statt mit der Speicherbrücke 905. In noch weiteren Ausführungsformen mögen die I/O-Brücke 907 und Speicherbrücke 905 in einem einzigen Chip integriert sein, statt als eine oder mehrere diskrete Vorrichtungen zu existieren. Große Ausführungsformen mögen zwei oder mehr CPUs 902 und zwei oder mehr Parallelverarbeitungssubsysteme 912 aufweisen. Die jeweiligen hierin gezeigten Bauteile sind optional; zum Beispiel mag jede Anzahl von Erweiterungskarten oder Peripherievorrichtungen unterstützt werden. In einigen Ausführungsformen ist der Switch 916 eliminiert und der Netzwerkadapter 918 und die Erweiterungskarten 920, 921 sind direkt mit der I/O-Brücke 907 verbunden.
  • Zusammenfassend reduziert eine Technik zur Einhaltung von Timing-Bedingungen auf einer chipinternen quellsynchronen auf CMOS-Repeater basierenden Verdrahtung Timing-Fehlanpassungen zwischen unterschiedlichen Drähten, die die chipinterne Verdrahtung aufweisen. Kalibrierungslogik ist konfiguriert zum Applizieren von Übergangsmustern, um Verzögerungen von individuellen chipinternen Drähten zu messen, die sich aufgrund von Unterschiedliche Transistor- und Drahtmetallisierungen ergeben. Basierend auf den Messungen werden Drähte ausgewählt, die die Timing-Bedingungen der chipinternen Verdrahtung am besten erfüllen. Die Verzögerungen der ausgewählten chipinternen Datendrähte werden individuell justiert, um die Timing-Fehlanpassungen weiter zu reduzieren. Wenn die Verzögerungsvariationen zwischen den verschiedenen Datendrähten der chipinternen Verdrahtung reduziert werden, wird die Geschwindigkeit, bei der die chipinterne Verdrahtung zuverlässig arbeiten mag, erhöht und die Chipausbeute wird verbessert.
  • Die offenbarte Technik des Einfügens redundanter Drähte in eine chipinterne Verdrahtung hinein reduziert vorteilhafterweise Drahtverzögerungsfehlanpassungen, was wiederum zur Verbesserung der gesamten Chipausbeute beiträgt. Zusätzliche redundante Drähte, die repräsentativ für die Drähte in der chipinternen Verdrahtung sind, die zum Übermitteln von Daten verwendet wird, mögen in der chipinternen Verdrahtung enthalten sein. Verzögerungen, die mit den zusätzlichen redundanten Drähten assoziiert sind, mögen dynamisch gemessen werden von der Kalibrierungslogik, während die chipinterne Verdrahtung zum Charakterisieren der chipinternen Verdrahtung verwendet wird.
  • Eine Ausführungsform der Erfindung mag als ein Programmprodukt zur Verwendung mit einem Computersystem implementiert werden. Das Programm bzw. die Programme des Programmprodukts definiert bzw. definieren Funktionen der Ausführungsformen (einschließlich der hierin beschriebenen Verfahren) und kann bzw. können auf einer Vielfalt von computerlesbaren Speichermedien enthalten werden. Beispielhafte computerlesbare Speichermedien umfassen, sind aber nicht darauf begrenzt: (i) nicht-schreibbare Speichermedien (zum Beispiel schreibgeschützte Speichervorrichtungen innerhalb eines Computers, wie zum Beispiel CD-ROM-Discs, die mittels eines CD-ROM-Laufwerks lesbar sind, Flash-Speicher, ROM-Chips oder jede andere Art von nicht-flüchtigem Festkörper-Halbleiterspeicher), auf welchen Informationen permanent gespeichert werden; und (ii) schreibbare Speichermedien (zum Beispiel Floppy-Disks in einem Diskettenlaufwerk oder Festplattenlaufwerk oder jede Art von Festkörper-Halbleiterspeicher mit wahlfreiem Zugriff), auf welchem veränderbare Informationen gespeichert sind.
  • Die Erfindung ist oben mit Bezug auf spezifische Ausführungsformen beschrieben worden. Fachleute werden aber verstehen, dass verschiedene Modifikationen und Änderungen davon gemacht werden können, ohne von dem breiteren Geist und Umfang der Erfindung, wie sie in den angehängten Patentansprüchen dargelegt ist, abzuweichen. Die vorhergehenden Beschreibung und Zeichnungen sind folglich eher in einer illustrativen als in einer restriktiven Bedeutung zu betrachten.
  • Folglich wird der Umfang von Ausführungsformen der vorliegenden Erfindung in den nachfolgenden Patentansprüchen dargelegt.

Claims (22)

  1. Ein Verfahren zur Kalibrierung einer chipinternen Verdrahtung, aufweisend: Applizieren eines ersten Signalübergangsmusters auf einen ersten Draht der chipinternen Verdrahtung, um eine Mehrzahl von ersten Messungen zu erzeugen; und Konfigurieren, basierend auf der Mehrzahl von ersten Messungen, einer Verzögerungsschaltung zum Justieren einer Verzögerung des ersten Drahtes, so dass diese innerhalb eines Bereiches einer vorbestimmten Verzögerungsvariation fällt, der im Wesentlichen auf einer Flanke eines Taktsignals zentriert ist.
  2. Das Verfahren gemäß Anspruch 1, ferner aufweisend Applizieren eines zweiten Signalübergangsmusters auf den ersten Draht der chipinternen Verdrahtung, um eine Mehrzahl von zweiten Messungen zu erzeugen, wobei die Verzögerungsschaltung ferner, basierend auf der Mehrzahl von zweiten Messungen, zum Justieren der Verzögerung des ersten Drahtes konfiguriert wird, so dass diese innerhalb des Bereiches der vorbestimmten Verzögerungsvariation fällt.
  3. Das Verfahren gemäß einem der Ansprüche 1 oder 2, ferner aufweisend: Bestimmen einer Verzögerungsverteilung, die mit dem ersten Draht und anderen Dräten der chipinternen Verdrahtung assoziiert ist; und Positionieren der Flanke des Taktsignals, um die Flanke des Taktsignals innerhalb der Verzögerungsverteilung im Wesentlichen zu zentrieren.
  4. Das Verfahren gemäß einem der Ansprüche 1 bist 3, wobei die Mehrzahl von ersten Messungen indizieren, dass eine mit dem ersten Draht assoziierte Verzögerung relativ zu der Flanke des Taktsignals negativ ist, und wobei die Verzögerungsschaltung zum Erhöhen der mit dem ersten Draht assoziierten Verzögerung konfiguriert wird.
  5. Das Verfahren gemäß einem der Ansprüche 1 bis 3, wobei die Mehrzahl von ersten Messungen indizieren, dass eine mit dem ersten Draht assoziierten Verzögerung relativ zu der Flanke des Taktsignals positiv ist, und wobei die Verzögerungsschaltung zum Reduzieren der mit dem ersten Draht assoziierten Verzögerung konfiguriert wird.
  6. Das Verfahren gemäß einem der Ansprüche 1 bis 3, wobei die Verzögerungsschaltung konfiguriert wird zum Erhöhen oder Reduzieren einer Verzögerung, die mit dem ersten Draht assoziiert ist, mit einem Betrag, der gleich dem Bereich der vorbestimmten Verzögerungsvariation ist.
  7. Das Verfahren gemäß einem der Ansprüche 1 bis 3, wobei die Verzögerungsschaltung konfiguriert wird zum Erhöhen oder Reduzieren einer Verzögerung, die mit dem ersten Draht assoziiert ist, mit einem Betrag, der gleich einem ganzzahligen Vielfaches von dem Bereich der vorbestimmten Verzögerungsvariation ist.
  8. Das Verfahren gemäß einem der Ansprüche 1 bis 7, wobei der Bereich der vorbestimmten Verzögerungsvariation mit einer Ziel-Produktionsausbeute von einem Chip assoziiert ist, der die chipinterne Verdrahtung aufweist.
  9. Das Verfahren gemäß einem der Ansprüche 1 bis 8, ferner aufweisend, nach dem Konfigurieren, Justieren des Taktsignals, um die Flanke des Taktsignals im Wesentlichen zwischen Übergängen eines Signals zu zentrieren, das auf dem ersten Draht übermittelt wird.
  10. Das Verfahren gemäß einem der Ansprüche 1 bis 9, ferner aufweisend Übertragen von Daten auf dem ersten Draht der chipinternen Verdrahtung und Übertragen des Taktsignals auf einem zweiten Draht der chipinternen Verdrahtung.
  11. Das Verfahren gemäß einem der Ansprüche 1 bis 10, wobei die Verzögerungsschaltung konfiguriert ist zum Verzögern ansteigender Flanken eines Datensignals, das auf dem ersten Draht übermittelt wird, mit einem ersten Betrag und zum Verzögern fallender Flanken des Datensignals mit einem zweiten Betrag.
  12. Das Verfahren gemäß einem der Ansprüche 1 bis 11, ferner aufweisend Konfigurieren einer zweiten Verzögerungsschaltung zum Verzögern ansteigender Flanken des Taktsignals mit einem ersten Betrag und zum Verzögern fallender Flanken des Taktsignals mit einem zweiten Betrag.
  13. Ein Kalibrierungssystem für eine chipinterne Verdrahtung, aufweisend: eine Kalibrierungsmuster-Erzeugungseinheit, die zum erzeugen eines ersten Signalübergangsmusters konfiguriert ist; eine Kalibrierungsmuster-Erfassungseinheit, die zum erzeugen einer Mehrzahl von ersten Messungen konfiguriert ist; eine Verzögerungseinheit, die an einen ersten Draht der chipinternen Verdrahtung gekoppelt ist; und eine Kalibrierungssteuereinheit, die an die Kalibrierungsmuster-Erzeugungseinheit und eine Kalibrierungsmuster-Erfassungseinheit gekoppelt ist und konfiguriert ist zum: Applizieren des ersten Signalübergangsmusters auf den ersten Draht der chipinternen Verdrahtung, um die Mehrzahl von ersten Messungen zu erzeugen; und Konfigurieren, basierend auf der Mehrzahl von ersten Messungen, der Verzögerungsschaltung zum Justieren einer Verzögerung des ersten Drahtes, so dass diese innerhalb eines Bereiches einer vorbestimmten Verzögerungsvariation fällt, der im Wesentlichen auf einer Flanke eines Taktsignals zentriert ist.
  14. Das Kalibrierungssystem für eine chipinterne Verdrahtung gemäß Anspruch 13, wobei die Kalibrierungsmuster-Erzeugungseinheit ferner zum Erzeugen eines zweiten Signalübergangsmusters konfiguriert ist, die Kalibrierungsmuster-Erfassungseinheit ferner zum Erzeugen einer Mehrzahl von zweiten Messungen konfiguriert ist, die Kalibrierungssteuereinheit ferner zum Applizieren des zweiten Signalübergangsmusters auf den ersten Draht der chipinternen Verdrahtung konfiguriert ist, um die Mehrzahl von zweiten Messungen zu erzeugen und, basierend auf der Mehrzahl von zweiten Messungen, die Verzögerungsschaltung zum Justieren der Verzögerung des ersten Drahtes, so dass diese innerhalb des Bereiches der vorbestimmten Verzögerungsvariation fällt, zu konfigurieren.
  15. Das Kalibrierungssystem für eine chipinterne Verdrahtung gemäß einem der Ansprüche 13 oder 14, ferner aufweisend eine Takt-Switch-Einheit, die an die Kalibrierungssteuereinheit gekoppelt und zum Erzeugen des Taktsignals konfiguriert ist.
  16. Das Kalibrierungssystem für eine chipinterne Verdrahtung gemäß einem der Ansprüche 13 bis 15, ferner aufweisend eine zweite Verzögerungseinheit, die an einen zweiten Draht gekoppelt ist, der das Taktsignal überträgt, wobei die Kalibrierungssteuereinheit die zweite Verzögerungseinheit konfiguriert um die Flanke des Taktsignals innerhalb einer Verzögerungsverteilung, die mit dem ersten Draht und anderen Drähten der chipinternen Verdrahtung assoziiert sind, im Wesentlichen zu zentrieren.
  17. Das Kalibrierungssystem für eine chipinterne Verdrahtung gemäß einem der Ansprüche 13 bis 16, wobei die Mehrzahl von ersten Messungen indizieren, dass eine Verzögerung des ersten Drahtes relativ zu der Flanke des Taktsignals negativ ist, und die Verzögerungsschaltung von der Kalibrierungssteuereinheit zum Erhöhen der mit dem ersten Draht assoziierten Verzögerung konfiguriert wird.
  18. Das Kalibrierungssystem für eine chipinterne Verdrahtung gemäß einem der Ansprüche 13 bis 16, wobei die Mehrzahl von ersten Messungen indizieren, dass eine Verzögerung des ersten Drahtes relativ zu der Flanke des Taktsignals positiv ist, und die Verzögerungsschaltung von der Kalibrierungssteuereinheit zum Reduzieren der mit dem ersten Draht assoziierten Verzögerung konfiguriert wird.
  19. Das Kalibrierungssystem für eine chipinterne Verdrahtung gemäß einem der Ansprüche 13 bis 16, wobei die Verzögerungsschaltung von der Kalibrierungssteuereinheit konfiguriert wird zum Erhöhen oder Reduzieren einer Verzögerung, die mit dem ersten Draht assoziiert ist, mit einem Betrag, der gleich dem Bereich der vorbestimmten Verzögerungsvariation ist.
  20. Das Kalibrierungssystem für eine chipinterne Verdrahtung gemäß einem der Ansprüche 13 bis 19, wobei der Bereich der vorbestimmten Verzögerungsvariation mit einer Ziel-Produktionsausbeute von einem Chip assoziiert ist, der die chipinterne Verdrahtung aufweist.
  21. Das Kalibrierungssystem für eine chipinterne Verdrahtung gemäß einem der Ansprüche 13 bis 20, wobei die zweite Verzögerungseinheit ferner von der Kalibrierungssteuereinheit konfiguriert wird zum Justieren des Taktsignals, um die Flanke des Taktsignals im Wesentlichen zwischen Übergängen eines Datensignals zu zentrieren, das auf dem ersten Draht übermittelt wird.
  22. Ein Computersystem aufweisend: Ein Kalibrierungssystem für eine chipinterne Verdrahtung, aufweisend: eine Kalibrierungsmuster-Erzeugungseinheit, die zum Erzeugen eines ersten Signalübergangsmusters konfiguriert ist; eine Kalibrierungsmuster-Erfassungseinheit, die zum Erzeugen einer Mehrzahl von ersten Messungen konfiguriert ist; eine Verzögerungseinheit, die an einen ersten Draht der chipinternen Verdrahtung gekoppelt ist; und eine Kalibrierungssteuereinheit, die an die Kalibrierungsmuster-Erzeugungseinheit und die Kalibrierungsmuster-Erfassungseinheit gekoppelt ist und konfiguriert ist zum: Applizieren des ersten Signalübergangsmusters auf den ersten Draht der chipinternen Verdrahtung, um die Mehrzahl von ersten Messungen zu erzeugen; und Konfigurieren, basierend auf der Mehrzahl von ersten Messungen, der Verzögerungsschaltung zum Justieren einer Verzögerung des ersten Drahtes, so dass diese innerhalb eines Bereiches einer vorbestimmten Verzögerungsvariation fällt, der im Wesentlichen auf einer Flanke eines Taktsignals zentriert ist.
DE102013217830.1A 2012-09-12 2013-09-06 Timing-Kalibrierung für chipinterne Verdrahtung Pending DE102013217830A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/612,614 US8941430B2 (en) 2012-09-12 2012-09-12 Timing calibration for on-chip interconnect
US13/612,614 2012-09-12

Publications (1)

Publication Number Publication Date
DE102013217830A1 true DE102013217830A1 (de) 2014-03-13

Family

ID=50153551

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102013217830.1A Pending DE102013217830A1 (de) 2012-09-12 2013-09-06 Timing-Kalibrierung für chipinterne Verdrahtung

Country Status (4)

Country Link
US (1) US8941430B2 (de)
CN (1) CN103684363A (de)
DE (1) DE102013217830A1 (de)
TW (1) TWI538405B (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117269738A (zh) * 2023-11-23 2023-12-22 杭州至千哩科技有限公司 一种交流信号的校准方法、装置、设备及介质

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9473291B2 (en) * 2014-07-08 2016-10-18 Intel Corporation Apparatuses and methods for reducing switching jitter
US9571155B2 (en) * 2014-08-25 2017-02-14 Samsung Display Co., Ltd. Method of startup sequence for a panel interface
US9160518B1 (en) * 2014-09-30 2015-10-13 Realtek Semiconductor Corporation Half-rate clock-data recovery circuit and method thereof
US9355696B1 (en) * 2014-11-06 2016-05-31 Xilinx, Inc. Calibration in a control device receiving from a source synchronous interface
US9692402B2 (en) 2014-12-25 2017-06-27 Intel Corporation Method, apparatus, system for centering in a high performance interconnect
CN106470024A (zh) * 2015-08-18 2017-03-01 飞思卡尔半导体公司 使用穆勒c元件的无假信号时钟切换电路
US9485080B1 (en) * 2015-09-01 2016-11-01 Qualcomm Incorporated Multiphase clock data recovery circuit calibration
US9640278B1 (en) 2015-12-10 2017-05-02 Integrated Device Technology, Inc. Testability/manufacturing method to adjust output skew timing
EP3639370A4 (de) * 2017-06-13 2020-07-29 Flex Logix Technologies, Inc. Taktverteilungs- und -erzeugungsarchitektur für logische kacheln einer integrierten schaltung und verfahren zum betrieb davon
CN109286535B (zh) * 2018-09-06 2022-04-01 晶晨半导体(上海)股份有限公司 获取存储模块内部延时阶梯时间的方法及系统
CN111010169B (zh) * 2018-10-08 2024-01-19 中兴通讯股份有限公司 相位检测方法、装置、存储介质及电子装置
US11789076B2 (en) 2019-11-12 2023-10-17 Mediatek Inc. Apparatus and method of monitoring chip process variation and performing dynamic adjustment for multi-chip system by pulse width
US20220352879A1 (en) * 2021-04-30 2022-11-03 Bitmain Development Inc. Dynamic pulse generator with small propagation delay
US11411560B1 (en) * 2021-07-30 2022-08-09 Global Unichip Corporation Electronic system, integrated circuit die and operation method thereof
TWI779853B (zh) * 2021-09-29 2022-10-01 智原科技股份有限公司 時脈校準模組、高速接收器及與其相關的校準方法
US20230288953A1 (en) * 2022-03-09 2023-09-14 Oppstar Technology Sdn Bhd Adjustable clock phase for peak-current reduction

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5182632A (en) * 1989-11-22 1993-01-26 Tactical Fabs, Inc. High density multichip package with interconnect structure and heatsink
US5972788A (en) * 1996-05-22 1999-10-26 International Business Machines Corporation Method of making flexible interconnections with dual-metal-dual-stud structure
US6378109B1 (en) * 1999-07-15 2002-04-23 Texas Instruments Incorporated Method of simulation for gate oxide integrity check on an entire IC
US6499131B1 (en) * 1999-07-15 2002-12-24 Texas Instruments Incorporated Method for verification of crosstalk noise in a CMOS design
JP3444270B2 (ja) * 2000-05-23 2003-09-08 日本電気株式会社 アレーアンテナ受信装置の校正システム
JP2002040108A (ja) * 2000-07-27 2002-02-06 Advantest Corp 半導体デバイス試験装置のタイミング校正方法・半導体デバイス試験装置
US6507247B2 (en) 2001-02-27 2003-01-14 Corrent Corporation Circuit and method for generating a variable frequency clock signal
JP3621358B2 (ja) 2001-05-25 2005-02-16 Necマイクロシステム株式会社 コンパレータ及びアナログディジタルコンバータ
US7283917B2 (en) * 2001-12-12 2007-10-16 Alcatel Canada Inc. System and method for calibrating an adjustable delay time for a delay module
US7095789B2 (en) * 2004-01-28 2006-08-22 Rambus, Inc. Communication channel calibration for drift conditions
US7400670B2 (en) * 2004-01-28 2008-07-15 Rambus, Inc. Periodic calibration for communication channels by drift tracking
US8422568B2 (en) * 2004-01-28 2013-04-16 Rambus Inc. Communication channel calibration for drift conditions
US7451049B2 (en) * 2004-02-27 2008-11-11 National Instruments Corporation Automatic delays for alignment of signals
US7616036B1 (en) 2005-09-12 2009-11-10 Virage Logic Corporation Programmable strobe and clock generator
US7519888B2 (en) 2005-09-12 2009-04-14 Virage Logic Corporation Input-output device testing
US7882471B1 (en) * 2005-11-15 2011-02-01 Cadence Design Systems, Inc. Timing and signal integrity analysis of integrated circuits with semiconductor process variations
US7583209B1 (en) * 2008-03-19 2009-09-01 Mitsubishi Electric Research Laboratories, Inc. System and method for signaling on a bus using forbidden pattern free codes
JPWO2010095378A1 (ja) * 2009-02-18 2012-08-23 株式会社アドバンテスト 出力装置および試験装置
JP5377275B2 (ja) * 2009-12-25 2013-12-25 キヤノン株式会社 情報処理装置又は情報処理方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117269738A (zh) * 2023-11-23 2023-12-22 杭州至千哩科技有限公司 一种交流信号的校准方法、装置、设备及介质
CN117269738B (zh) * 2023-11-23 2024-03-12 杭州至千哩科技有限公司 一种交流信号的校准方法、装置、设备及介质

Also Published As

Publication number Publication date
TWI538405B (zh) 2016-06-11
TW201419759A (zh) 2014-05-16
US8941430B2 (en) 2015-01-27
US20140070862A1 (en) 2014-03-13
CN103684363A (zh) 2014-03-26

Similar Documents

Publication Publication Date Title
DE102013217830A1 (de) Timing-Kalibrierung für chipinterne Verdrahtung
DE102007060805B4 (de) Speichersteuerung und Computersystem mit derselben sowie Verfahren zur Steuerung eines Speichers
DE112012001224B4 (de) Vorrichtung, System und Verfahren zur Taktrückgewinnung
DE69833467T2 (de) Zeitgeberschaltung, Vorrichtung und System für integrierten Halbleiterschaltkreis unter deren Anwendung und Signalübertragungssystem
US9711189B1 (en) On-die input reference voltage with self-calibrating duty cycle correction
DE102013224636B4 (de) Masse-referenziertes-Einzel-Ende-Signalisierung-verbundenes-Grafik-Verarbeitungs-Einheit-Mehr-Chip-Modul
DE10110315A1 (de) Optimieren des Leistungsvermögens eines getakteten Systems durch Anpassen der Einstellungen der Taktsteuerung und der Taktfrequenz
DE102004032478A1 (de) Verzögerungsregelkreis in Halbleiterspeichervorrichtung und sein Taktsynchronisierverfahren
DE10102887A1 (de) Verzögerungsvorrichtung, die eine Verzögerungssperrschleife aufweist und Verfahren zum Kalibrieren derselben
DE102012219056B4 (de) Störimpulsfreier programmierbarer Taktformer
DE102007005708A1 (de) Takt- und Datenrückgewinnungsschaltung, die erste und zweite Stufen umfasst
EP2132582B1 (de) Verfahren zur bestimmung einer asymmetrischen signalverzögerung eines signalpfades innerhalb einer integrierten schaltung
DE102019117499A1 (de) Einrichtung zum Synchronisieren von Takten konfigurierbarer Dies integrierter Schaltungen über eine Zwischenverbindungsbrücke
DE112007000443T5 (de) Gemeinsame analoge Schnittstelle für mehrere Prozessorkerne
DE102007016318B4 (de) Belastungszykluskorrektor und Verfahren zum Korrigieren des Belastungszyklus eines Signals
DE102013109695B4 (de) Ringoszillator, mobilkommunikationsvorrichtung und verfahren
DE102021202667A1 (de) Phasendetektor-befehlsausbreitung zwischen spuren in mcm usr serdes
DE10393657T5 (de) Verfahren und Vorrichtung zur Datenabfrage
DE112009000739T5 (de) Empfänger zum Rückgewinnen und Neutakten elektromagnetisch gekoppelter Daten
DE102009008224B4 (de) Invertierende Zelle
DE10232382A1 (de) PLL-Schaltung
DE102007006374B3 (de) Digitaler Datenbuffer
DE102006041962A1 (de) Frequenzdetektionsschaltung, Halbleitervorrichtung und Frequenzdetektionsverfahren
DE102013021987A1 (de) Analyse von Taktsignal-Jitter und Rauschen der Leistungsversorgung
DE112019000658T5 (de) Programmierbares taktdatenwiederherstellungs- (cdr) system

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R082 Change of representative

Representative=s name: KRAUS & WEISERT PATENTANWAELTE PARTGMBB, DE

Representative=s name: DILG HAEUSLER SCHINDELMANN PATENTANWALTSGESELL, DE

R083 Amendment of/additions to inventor(s)
R082 Change of representative

Representative=s name: KRAUS & WEISERT PATENTANWAELTE PARTGMBB, DE

R016 Response to examination communication