DE112004003057B4 - Controller und gedruckte Schaltung umfassend einen Ein- oder Ausgabepuffer und eine programmierbare Verzögerungszelle zum Umsetzen von Taktverzögerungen - Google Patents

Controller und gedruckte Schaltung umfassend einen Ein- oder Ausgabepuffer und eine programmierbare Verzögerungszelle zum Umsetzen von Taktverzögerungen Download PDF

Info

Publication number
DE112004003057B4
DE112004003057B4 DE112004003057T DE112004003057T DE112004003057B4 DE 112004003057 B4 DE112004003057 B4 DE 112004003057B4 DE 112004003057 T DE112004003057 T DE 112004003057T DE 112004003057 T DE112004003057 T DE 112004003057T DE 112004003057 B4 DE112004003057 B4 DE 112004003057B4
Authority
DE
Germany
Prior art keywords
controller
coupled
delay cell
programmable delay
conductor
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE112004003057T
Other languages
English (en)
Other versions
DE112004003057A1 (de
Inventor
Tsvika Kurts
Zelig Wayner
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.)
Intel Corp
Original Assignee
Intel 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 Intel Corp filed Critical Intel Corp
Publication of DE112004003057A1 publication Critical patent/DE112004003057A1/de
Application granted granted Critical
Publication of DE112004003057B4 publication Critical patent/DE112004003057B4/de
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • G06F13/405Coupling between buses using bus bridges where the bridge performs a synchronising function
    • G06F13/4059Coupling between buses using bus bridges where the bridge performs a synchronising function where the synchronisation uses buffers, e.g. for speed matching between buses

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Logic Circuits (AREA)
  • Pulse Circuits (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)
  • Tests Of Electronic Circuits (AREA)
  • Dram (AREA)

Abstract

Controller (4), umfassend: einen Ausgabepuffer (28), um ein elektrisches Signal auf einem Leiter (8) zu generieren, der an den Controller (4) gekoppelt ist; und eine programmierbare Verzögerungszelle (1100, 26), die an den Ausgabepuffer (28) gekoppelt ist, wobei die programmierbare Verzögerungszelle (1100, 26) mindestens beinhaltet: einen Leiter (1124), der an eine Ausgabe der programmierbaren Verzögerungszelle (26, 1100) gekoppelt ist; einen Schalttransistor (1116), der mit dem Leiter (1124) gekoppelt ist; drei oder mehr Durchgangsgatter (1130, 1132, 1134 und 1136), die parallel geschaltet sind, wobei ein erster Anschluss jedes der drei oder mehr Durchgangsgatter mit dem Leiter (1124) gekoppelt ist und ein zweiter Anschluss jedes der drei oder mehr Durchgangsgatter mit einem Kondensator (1150) gekoppelt ist, der mit einem niedrigen Versorgungspegel (1140) gekoppelt ist; und einen variablen Impedanztransistor (1118), der mit einem hohen Versorgungspegel (VCCC) und einem Source-Anschluss des Schalttransistors (1116) gekoppelt ist, so dass ein Drain-Anschluss...

Description

  • HINTERGRUND DER ERFINDUNG
  • Wenn sich die Frequenzen, die in digitalen Systemen verwendet werden, erhöhen, dann wird es schwieriger oder sogar unmöglich, die Beschränkungen der zeitlichen Steuerung einzuhalten.
  • Es werden zum Beispiel Busprotokolle auf einem gemeinsamem Takt verwendet, um Daten, Adressen und Steuersignale zwischen Speichergeräten und einem Speichercontroller zu übertragen. Diese Signale werden relativ zu einem Takt gesampled, den sowohl die Speichergeräte als auch der Speichercontroller gemeinsam haben. Wenn die Periode des gemeinsamen Takts in der gleichen Größenordnung abnimmt, wie die Vor- und Nachhaltezeitanforderungen auf dem Bus, könnten die Fertigungstoleranzen der gedruckten Schaltung und der verschiedene Halbleiter, die an der zeitlichen Steuerung des Signals beteiligt sind, nicht eng genug sein, um zu gewährleisten, daß alle Systeme mit einer ähnlichen Konfiguration, die Anforderungen an die zeitliche Steuerung einhalten können.
  • Zusätzlich sind in „offenen” Systemen, wie etwa Personalcomputern (PCs), viele verschiedene Systemkonfigurationen möglich, wobei die Systeme gedruckte Schaltungen von verschiedenen Quellen und Speichergeräte verschiedenen Typs und in verschiedener Mengen haben. Jede dieser Konfigurationen kann verschiedene Eigenschaften der zeitlichen Steuerung haben, und diese Gesamteigenschaften können über die Toleranzen der zeitlichen Steuerung des Speichercontrollers hinausgehen.
  • Folglich können Systeme, die spezielle Konfigurationen haben, den Betrieb versagen, während andere marginal betrieben werden und unter gewissen Umweltbedingungen den Betrieb versagen könnten.
  • Die vorliegende Erfindung betrifft somit Vorrichtungen zum zeitlichen Steuern eines Takts.
  • In der US 6 131 149 A ist ein Speicher und ein Verzögerungsmodul offenbart, das ein verschobenes Taktsignal durch Hinzufügen programmierbarer zeitlicher Verzögerungen zum Systemtaktsignal erzeugt.
  • Die US 2002/0178391 A1 zeigt eine Schaltung mit mehreren Kondensatoren je Durchgangsgatter zum Erzeugen von Taktsignalen.
  • Ferner offenbart die US 5 140 554 A einen Schaltkreis zum Bestimmen, ob Verbindungen eines integrierten Schaltkreises korrekt geöffnet oder geschlossen wurden.
  • Die US 2002/0123853 A1 beschreibt die Kalibrierung elektronischer Schaltungen und offenbart eine Testschaltung welche Kalibrierungs information erzeugt.
  • Der vorliegenden Erfindung liegt die Aufgabe zugrunde, eine Verzögerungszelle bereitzustellen, die in der Lage ist, programmierbare Verzögerungen des Takts umzusetzen.
  • Diese Aufgabe wird erfindungsgemäß gelöst durch einen Controller, umfassend einen Ausgabepuffer, um ein elektrisches Signal auf einem Leiter zu generieren, der an den Controller gekoppelt ist; und eine programmierbare Verzögerungszelle, die an den Ausgabepuffer gekoppelt ist, wobei die programmierbare Verzögerungszelle mindestens beinhaltet: Einen Leiter, der an eine Ausgabe der programmierbaren Verzögerungszelle gekoppelt ist; einen Schalttransistor, der mit dem Leiter gekoppelt ist; drei oder mehr Durchgangsgatter, die parallel geschaltet sind, wobei ein erster Anschluss jedes der drei oder mehr Durchgangsgatter mit dem Leiter gekoppelt ist und ein zweiter Anschluss jedes der drei oder mehr Durchgangsgatter mit einem Kondensator gekoppelt ist, der mit einem niedrigen Versorgungspegel gekoppelt ist; und einen variablen Impedanztransistor, der mit einem hohen Versorgungspegel (VCCC) und einem Source-Anschluss des Schalttransistors gekoppelt ist, so dass ein Drain-Anschluss des Schalttransistors nicht zwischen dem Source-Anschluss des Schalttransistors und dem Drain-Anschluss des variablen Impedanztransistors liegt, wobei eine Impedanz des variablen Impedanztransistors durch ein Steuersignal gesteuert wird.
  • Alternativ wird die Aufgabe erfindungsgemäß gelöst durch einen Controller, umfassend einen Eingabepuffer, um ein elektrisches Signal von einem Leiter zu empfangen, der an den Controller gekoppelt ist; und eine programmierbare Verzögerungszelle, die an den Eingabepuffer gekoppelt ist, wobei die programmierbare Verzögerungszelle mindestens beinhaltet: einen Kondensator, der an einen niedrigen Versorgungspegel gekoppelt ist; einen Leiter, der an eine Ausgabe der programmierbaren Verzögerungszelle gekoppelt ist; und drei oder mehr Durchgangsgatter, die parallel zueinander gekoppelt sind, wobei ein erster Anschluss jedes der drei oder mehr Durchgangsgatter mit dem Leiter gekoppelt ist, und ein zweiter Anschluss jedes der drei oder mehr Durchgangsgatter mit dem Kondensator gekoppelt ist, wobei Impedanz jedes der Durchgangsgatter durch ein unabhängiges Steuersignal gesteuert wird, so dass eine kombinierte Impedanz der Durchgangsgatter durch wenigstens drei Steuersignale gesteuert wird.
  • Ferner wird diese Aufgabe erfindungsgemäß gelöst durch einen Controller, umfassend: einen Eingabepuffer, um ein elektrisches Signal von einem Leiter zu empfangen, der an den Controller gekoppelt ist; und eine programmierbare Verzögerungszelle, die an den Eingabepuffer gekoppelt ist, wobei die programmierbare Verzögerungszelle mindestens beinhaltet: einen Leiter, der an eine Ausgabe der programmierbaren Verzögerungszelle gekoppelt ist; einen Schalttransistor, der mit dem Leiter gekoppelt ist; drei oder mehr Durchgangsgatter, die parallel geschaltet sind, wobei ein erster Anschluss jedes der drei oder mehr Durchgangsgatter mit dem Leiter gekoppelt ist und ein zweiter Anschluss jedes der drei oder mehr Durchgangsgatter mit einem Kondensator gekoppelt ist, der mit einem niedrigen Versorgungspegel gekoppelt ist; und einen variablen Impedanztransistor, der mit einem hohen Versorgungspegel (VCCC) und einem Source-Anschluss des Schalttransistors gekoppelt ist, so dass ein Drain-Anschluss des Schalttransistors nicht zwischen dem Source-Anschluss des Schalttransistors und dem Drain-Anschluss des variablen Impedanztransistors liegt, wobei eine Impedanz des variablen Impedanztransistors durch ein Steuersignal gesteuert wird.
  • Die Aufgabe wird erfindungsgemäß auch gelöst durch eine gedruckte Schaltung, umfassend: einen Grafikchip; einen Controller, der mindestens eine programmierbare Verzögerungszelle beinhaltet, wobei die programmierbare Verzögerungszelle mindestens beinhaltet: einen Kondensator, der an einen niedrigen Versorgungspegel gekoppelt ist; einen Leiter, der an eine Ausgabe der programmierbaren Verzögerungszelle gekoppelt ist; und drei oder mehr Durchgangsgatter, die parallel zueinander gekoppelt sind, wobei ein erster Anschluss jedes der drei oder mehr Durchgangsgatter mit dem Leiter gekoppelt ist, und ein zweiter Anschluss jeder der drei oder mehr Durchgangsgatter mit dem Kondensator gekoppelt ist, wobei Impedanz jedes der Durchgangsgatter durch ein unabhängiges Steuersignal gesteuert wird, so dass eine kombinierte Impedanz der Durchgangsgatter durch wenigstens drei Steuersignale gesteuert wird.
  • Schließlich wird die obengenannte Aufgabe erfindungsgemäß auch gelöst durch eine gedruckte Schaltung, umfassend: einen Grafikchip; einen Controller, der mindestens eine programmierbare Verzögerungszelle beinhaltet, wobei die programmierbare Verzögerungszelle mindestens beinhaltet: einen Leiter, der an eine Ausgabe der programmierbaren Verzögerungszelle gekoppelt ist; einen Schalttransistor, der mit dem Leiter gekoppelt ist; drei oder mehr Durchgangsgatter, die parallel zueinander gekoppelt sind, wobei ein erster Anschluss jedes der drei oder mehr Durchgangsgatter mit dem Leiter gekoppelt ist, und ein zweiter Anschluss jedes der drei oder mehr Durchgangsgatter mit einem Kondensator gekoppelt ist, der mit einem niedrigen Versorgungspegel gekoppelt ist; und einen variablen Impedanztransistor, der an einen hohen Versorgungspegel (VCCC) und an einen Source-Anschluss des Schalttransistors gekoppelt ist, so dass ein Drain-Anschluss des Schalttransistors nicht zwischen dem Source-Anschuss des Schalttransistors und dem Drain-Anschluss des variablen Impedanztransistors liegt, wobei eine Impedanz des variablen Impedanztransistors durch ein Steuersignal zu bestimmen ist.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Ausführungsformen der Erfindung werden, um ein Beispiel zu geben und nicht als Beschränkung, in den Figuren der beiliegenden Zeichnungen illustriert, worin:
  • 1 ein Blockdiagramm einer gedruckten Schaltung (bzw. Schaltungsplatine) ist, auf der ein Gerät und ein Controller installiert sind;
  • 2 und 3 beispielhafte Diagramme der zeitlichen Steuerung sind, die für das Verständnis einiger Ausführungsformen der Erfindung hilfreich sind;
  • 4 eine Ablaufdiagrammillustration eines Verfahrens für das Setzen und Anpassen von Parameter für die zeitliche Steuerung ist;
  • 5 eine Ablaufdiagrammillustration eines beispielhaften Verfahrens zum generieren von Verweistabellen ist;
  • 6 eine Ablaufdiagrammillustration eines beispielhaften Verfahrens für die Bestimmung der digitalen Werte ist, die in ein Ansteuerungsimpedanz-Steuerregister und ein Ausgabeverzögerungs-Steuerregister zu programmieren sind;
  • 7 eine Ablaufdiagrammillustration einer beispielhaften Kalibrierungssequenz für die digitalen Werte ist, die in das Ausgabeverzögerungs-Steuerregister and das Eingabeverzögerungssteuerregister zu programmieren sind.
  • 8 eine Ablaufdiagrammillustration eines beispielhaften Kalibrierungsalgorithmus für die digitalen Werte ist, die in das Ausgabeverzögerungs-Steuerregister and das Eingabeverzögerungssteuerregister zu programmieren sind.
  • 9 ein Blockdiagramm einer Vorrichtung ist, die eine gedruckte Schaltung beinhaltet, auf der ein Speichercontroller installiert ist;
  • 10A bis 10D Ablaufdiagrammillustrationen einer beispielhaften Kalibrierungssequenz für die digitalen Werte sind, die in die Verzögerungssteuerregister des Speichercontrollers von 9 zu programmieren sind; und
  • 11 eine vereinfachte schematische Illustration einer beispielhaften programmierbaren Verzögerungszelle in Übereinstimmung mit einigen Ausführungsformen der Erfindung ist.
  • Aus Gründen der Einfachheit und Anschaulichkeit der Illustration, wird darauf hingewiesen, daß die Elemente, die in den Figuren gezeigt werden, nicht unbedingt maßstabsgetreu gezeichnet wurden. Aus Gründen der Anschaulichkeit können zum Beispiel die Abmessungen einiger Elemente im Verhältnis zu anderen übertrieben sein. Ferner können, wo es für angebracht gehalten wurde, Bezugszeichen innerhalb der Figuren wiederholt vorhanden sein, um entsprechende oder analoge Element anzuzeigen.
  • GENAUE BESCHREIBUNG DER ERFINDUNG
  • In der folgenden genauen Beschreibung werden zahlreiche spezifische Details bekannt gemacht, um ein gründliches Verständnis der Ausführungsformen der Erfindung bereitzustellen. Der Durchschnittsfachmann wird jedoch verstehen, daß die Ausführungsformen der Erfindung ohne diese spezifischen Details praktiziert werden. Bei anderen Fällen werden bekannte Verfahren, Prozeduren, Komponenten und Schaltkreise nicht genau beschrieben, um damit die Erfindung nicht zu verdecken.
  • Einige Abschnitte der folgenden genauen Beschreibung werden in Begriffen von Algorithmen und symbolischer Darstellung von Vorgängen auf Datenbits oder binären digitalen Signalen in einem Computerspeicher präsentiert. Diese algorithmischen Beschreibungen und Darstellungen können die Techniken sein, die von den Datenverarbeitungsfachleuten verwendet werden, um das Wesentliche ihrer Arbeit anderen Fachleuten zu vermitteln.
  • Einige Ausführungsformen der Erfindung richten sich auf das Setzen und/oder das dynamische Anpassen von Parameter physikalischer Komponenten eines Controllers, basierend auf den Attributen des einen oder der mehreren Geräte, die elektrisch an den Controller gekoppelt sind, und basierend auf den Attributen des Mediums, das das eine oder die mehreren Geräte elektrisch an den Controller koppelt. Die physikalischen Komponenten deren Parameters gesetzt und/oder angepaßt werden, können jene Komponenten beinhalten, die es elektrischen Signalen, die von dem Controller gesendet werden, ermöglichen, von dem einem oder den mehreren Geräten genau empfangen zu werden, und jene Komponenten, die es elektrischen Signalen, die von dem einem oder den mehreren Geräten gesendet werden, ermöglichen, von dem Controller genau empfangen zu werden.
  • Wie in 1 gezeigt, kann eine gedruckte Schaltung (PCB) 2 gemäß einiger Ausführungsformen der Erfindung, einen Controller 4, ein oder mehrere Geräte 6, einen Leiter 8 und einen Leiter 10 enthalten. PCB 2 kann optional einen Graphikchip 5 umfassen. Eine offene Liste von Beispielen für Controller 4 beinhaltet eine Zentraleinheit (CP) und einen Speichercontroller. Zum Beispiel kann der Controller 4 die Fähigkeit haben, Steuersignale anzusteuern, um Lese- und Schreibbefehle durchzuführen, und die Leiter 8 und 10 können Teil eines Busses für diese Steuersignale sein. Eine offene Liste von Beispielen für Gerät 6 beinhaltet ein Speichergerät und einen Coprozessor. Die folgende Beschreibung ist für ein einzelnes Gerät 6, auch wenn der Umfang der Erfindung diesbezüglich nicht beschränkt ist.
  • Wenn Gerät 6 auf PCB 2 assembliert wird, können Leiter 8 und Leiter 10 Spuren auf einer gedruckten Schaltung umfassen. Wenn Gerät 6 auf austauschbaren Modulen assembliert wird, können Leiter 8 und Leiter 10 zum Beispiel Spuren auf einer gedruckten Schaltung, Spuren auf dem austauschbaren Modul und dem leitenden Konnektor, der diese Spuren koppelt, umfassen.
  • Die folgende Beschreibung der Ausführungsformen der Erfindung bezieht sich auf die steigenden Flanken der Takte. Andere Ausführungsformen der Erfindung können sich jedoch dagegen auf fallende Flanken der Takte beziehen.
  • Parameter für Ausgabesignale
  • Die folgende Beschreibung beschreibt physikalische Komponenten eines Controllers und wie Parameter dieser physikalischen Komponenten zu setzen und/oder dynamisch anzupassen sind, um es elektrischen Signalen, die von dem Controller gesendet werden, zu ermöglichen, von einem oder mehreren Geräten, die an den Controller gekoppelt sind, genau empfangen zu werden. Das Setzen und/oder das Anpassen dieser Parameter kann auf den Attributen des einen oder der mehreren Geräte basieren, die elektrisch an den Controller gekoppelt sind, und auf den Attributen des Mediums basieren, das das eine oder die mehreren Geräte elektrisch an den Controller koppelt.
  • Der Controller 4, der ein integrierter Schaltkreis oder ein Teil eines integrierten Schaltkreises ist, kann einen Ausgabekanal 12 umfassen, der von einem optionalen Ausgabeverzögerungs-Steuerregister 14 und einem Ansteuerungsimpedanz-Steuerregister 16 gesteuert wird. Der Ausgabekanal 12 kann ein Signal 18 von einem digitalen Subsystem (nicht gezeigt) empfangen, dessen stabilisierten logischen Ebenen sich nicht öfter als ein Mal während jeder Periode eines Taktes 20 verändern, und kann ein Ausgabesignal auf dem Leiter 8 generieren, das die Veränderungen in den logischen Ebenen von Signal 18 widerspiegeln kann.
  • Das Gerät 6 kann einen Eingabekanal 22 umfassen, der einen Takt 24 und das Signal auf Leiter 8 als Eingaben empfangen kann. Der Eingabekanal 22 kann die logischen Ebenen des Signals an Leiter 8 an den steigenden Flanken von Takt 24 samplen und kann die gesampleten logischen Ebenen auf einem Signal 25 ausgeben. Ein Zweck von Ausgabekanal 12, Ausgabeverzögerungs-Steuerregister 14 und Ansteuerungsimpedanz-Stuerregister 16 kann sein, zu gewährleisten, daß Veränderungen in den logischen Ebenen von Signal 18 durch Veränderungen in den logischen Ebenen von Signal 25 genau widergespiegelt werden. Tatsächlich wird dies Signal 18 an Signal 25 übertragen.
  • Das System, das von Controller 4 und Gerät 6 gebildet wird, ist ein System mit einem gemeinsamen Takt.
  • In dem beispielhaften Diagramm der zeitlichen Steuerung aus 2 oszilliert Takt 20 mit Periode TPERIOD Nanosekunden (gemessen zwischen steigenden Flanken, zum Beispiel den steigenden Flanken 102, 104 und 106). In diesem Beispiel verändert sich die logische Ebene von Signal 18 TCO1 Nanosekunden nach jeder steigenden Flanke von Takt 20. In dem beispielhaften Diagramm zur zeitlichen Steuerung aus 2, ist die Zeitverzögerung TCO1 konstant, auch wenn der Umfang der Erfindung diesbezüglich nicht beschränkt ist.
  • Ausgabekanal 12 kann eine optionale programmierbare Verzögerungszelle 26 und einen programmierbaren Ausgabepuffer 28 umfassen.
  • Die programmierbare Verzögerungszelle 26 kann die logische Ebene von Signal 18 kontinuierlich samplen, und kann kontinuierlich logische Ebenen an ein Signal 30 ausgeben, die im Wesentlichen gleich der logischen Ebenen sind, die auf Signal 18 gesampled werden. Wenn eine Veränderung in der logischen Ebene von Signal 18 auftritt, kann sich die logische Ebene von Signal 30 dementsprechend nach einer Zeitverzögerung TPD1 verändern. Die Zeitverzögerung TPD1 kann innerhalb eines Zeitbereichs programmierbar sein, und kann gemäß einem digitalen Wert, der in Ausgabeverzögerungs-Steuerregister 14 gespeichert ist, gesetzt werden, wie nachfolgend genauer erläutert wird.
  • Der programmierbare Ausgabepuffer 28 kann Signal 30 als Eingabe empfangen und kann ein Ausgabesignal an Leiter 8 generieren, das die Veränderungen in den logischen Ebenen von Signal 30 widerspiegeln kann. Die logischen Ebenen können auf Leiter 8 durch Spannungsebenen dargestellt werden. Zum Beispiel kann eine hohe Spannungsebene eine logische Ebene darstellen, und eine niedrige Spannungsebene kann eine andere logische Ebene darstellen. Folglich kann der programmierbare Ausgabepuffer 28 Spannungsebenen an Leiter 8 generieren, um die Veränderungen in den logischen Ebenen von Signal 30 widerzuspiegeln.
  • Auch wenn der Umfang der Erfindung diesbezüglich nicht beschränkt ist, kann der programmierbare Ausgabepuffer 28 eine niedrige Spannungsebene an Leiter 8 generieren, indem eine Niederspannungsquelle (zum Beispiel Erde) durch eine Senken-Antriebsimpedanz innerhalb des programmierbaren Ausgabepuffers 28 an den Leiter 8 gekoppelt wird. Ähnlich kann ein programmierbarer Ausgabepuffer 28 eine hohe Spannungsebene auf Leiter 8 generieren, indem eine Hochspannungsquelle durch eine Quell-Antriebsimpedanz innerhalb des programmierbaren Ausgabepuffers 28 an Leiter 8 gekoppelt wird.
  • Das Antriebsimpedanz-Steuerregister 16 kann an den Ausgabepuffer 28 gekoppelt sein, und digitale Werte, die in dem Antriebsimpedanz-Steuerregister 16 gespeichert sind, können die Quell-Antriebsimpedanz und die Senken-Antriebsimpedanz des programmierbaren Ausgabepuffers 28 steuern. (Alternativ kann das Antriebsimpedanz-Steurregister 16 durch zwei Register ersetzt werden, eines, um einen digitalen Wert zu speichern, der die Quell-Antriebsimpedanz des programmierbaren Ausgabepuffers 28 steuern kann, und das andere, um einen digitalen Wert zu speichern, der die Senken-Antriebsimpedanz des programmierbaren Ausgabepuffers 28 steuern kann.)
  • Da eine niedrig-zu-hoch Transitionszeit TPLH1 (hoch-zu-niedrig Transitionszeit TPHL1)- während derer, die Spannung des Signals an Leiter 8 irgendeine logische Ebene nicht ordnungsgemäß darstellen kann – durch die Quell-Antriebsimpedanz (Senken-Antriebsimpedanz) des programmierbaren Ausgabepuffers 28 beeinflußt werden kann, kann das Antriebsimpedanz-Steuerregister 16 die niedrig-zu-hoch Transitionszeit TPLH1 und die hoch-zu-niedrig Transitionszeit TPHL1 des Signals an Leiter 8 steuern.
  • Überdies kann die niedrig-zu-hoch Transitionszeit TPLH1 und die hoch-zu-niedrig Transitionszeit TPHL1 durch die physikalische Layouttopologie von Leiter 8, durch die kapazitive Gesamtlast an Leiter 8, durch die Impedanz von Leiter 8 und durch die Eingabeimpedanz des Eingabekanals 22 beeinflußt werden.
  • Ein beispielhaftes Diagramm für die zeitliche Steuerung von Takt 24 wird in 2 gezeigt, auch wenn die Erfindung nicht auf dieses Beispiel beschränkt ist. In diesem Beispiel kann Takt 24 auf der gleichen Frequenz wie Takt 20 mit einer Periode von TPERIOD Nanosekunden (gemessen zwischen steigenden Flanken) oszillieren, und die steigenden Flanken von Takt 24 können eine konstante Zeitverschiebung von TSKW Nanosekunden von den steigenden Flanken von Takt 20 haben.
  • Wenn der Ausgabekanal 12 eine logische Ebene auf dem Leiter 8 nach einer steigenden Flanke von Takt 20 generiert, sollte der Eingabekanal 22 diese logische Ebene an der steigenden Flanke von Takt 24, um TSKW Nanosekunden von der folgenden steigenden Flanke von Takt 20 versetzt, samplen.
  • Wenn zum Beispiel der Ausgabekanal 12 eine hohe logische Ebene (niedrige logische Ebene) auf Leiter 8 nach der steigenden Flanke 102 (104) von Takt 20 generiert, sollte der Eingabekanal 22 diese logische Ebene an der steigenden Flanke 114 (116) von Takt 24 samplen.
  • Damit der Eingabekanal 22 die logischen Ebenen des Signals an Leiter 8 korrekt sampled, muß die Spannung des Signals an Leiter 8 mit den entsprechenden Spannungsebenen mindestens für die „Vorhaltezeit” („setup time”) TSU1 vor der steigenden Flanke von Takt 24 stabil sein können, und muß auf dieser Spannungsebene für mindestens eine „Nachhaltezeit” („hold time”) TH1 nach der steigenden Flanke von Takt 24 stabil bleiben können.
  • Anders ausgedrückt müssen, damit der Eingabekanal 22 eine hohe (niedrige) Ebene des Signals an Leiter 8 korrekt sampled, die folgenden Bedingungen erfüllt sein: (a) die hohe (niedrige) Spannung des Signals an Leiter 8 muß für eine Zeitperiode stabil sein, die mindestens gleich der Summe der Vorhaltezeit und der Nachhaltezeit ist;
    • (b) die hohe (niedrige) Spannung des Signals an Leiter 8 muß mindestens für TH1 nach der steigenden Flanke von Takt 24 stabil sein; und
    • (b) die hohe (niedrige) Spannung des Signals an Leiter 8 muß mindestens für TSU1 vor der steigenden Flanke von Takt 24 stabil sein;
  • Die Bedingung (a) kann durch die folgenden Relationen für hohe Spannungen und für niedrige Spannungen ausgedrückt werden: 1. TPERIOD – TPLH1 ≥ TSU1 + TH1, 1. TPERIOD – TPHL1 ≥ TSU1 + TH1,
  • Die Bedingung (b) kann durch die folgende Relation (die gleiche Relation für hohe und niedrige Spannungen) ausgedrückt werden: 2. TCO1 + TPD1 ≥ TH1 + TSKW
  • Die Bedingung (c) kann durch die folgenden Relationen für hohe Spannungen und für niedrige Spannungen ausgedrückt werden: 3. TPERIOD – TCO1 – TPD1 – TPLH1 ≥ TSU1 + TSKW 3. TPERIOD – TCO1 – TPD1 – TPHL1 ≥ TSU1 + TSKW
  • Die Bedingungen (b) und (c) können als obere und unter Grenzen auf der Zeitverzögerung TPD1 ausgedrückt werden, eingeführt durch die programmierbare Verzögerungszelle 26, wie durch die folgenden Relationen ausgedrückt: 4. TPERIOD – TPLH1 – TCO1 – TSU1 + TSKW ≥ TPD1 ≥ TH1 + TSKW – TCO1 4. TPERIOD – TPHL1 – TCO1 – TSU1 + TSKW ≥ TPD1 ≥ TH1 + TSKW – TCO1
  • Es läßt sich zeigen, daß Relation 1 ein notwenige, aber nicht hinreichende Bedingung zur Erfüllung der beiden Relationen 2 und 3 ist, wenn eine hohe Spannung gesampled wird. Ähnlich ist Relation 1' ein notwenige, aber nicht ausreichende Bedingung zur Erfüllung der beiden Relationen 2 und 3, wenn eine niedrige Spannung gesampled wird. Folglich können, sobald die in das Antriebsimpedanz-Steuerregister 16 programmierten digitalen Werte so angepaßt sind, daß die Relationen 1 und 1' erfüllt sind, die in das Ausgabeverzögerungs-Steuerregister 14 programmierten digitalen Werte so gepaßt werden, daß beide Relationen 4 und 5 erfüllt sind.
  • Die steuerbaren Parameter der Relationen 1, 1', 4 und 5 (in den Relationen durch Fettdruck hervorgehoben) können über digitale Werte angepaßt werden, die in das Antriebsimpedanz-Steuerregister 16 und das Ausgabeverzögerungs-Steuerregister 14 programmiert sind, um die Schwankungen aller anderen Parameter in den Relationen zu kompensieren, so daß die Bedingungen (a), (b) und (c) erfüllt sind, wie im Folgenden erläutert wird.
  • Relationen 1 und 1'
  • TPERIOD ist ein Festwert, während die exakten Werte für die Vorhaltezeit TSU1 und die Nachhaltezeit TH1 zum Beispiel durch Fertigungstoleranzen des Geräts 6 beeinflußt werden können, und, zum Beispiel mit Schwankungen der Umgebungstemperatur schwanken können. Indem die Quell-(Senken)-Antriebsimpedanz des programmierbaren Puffers 28 angepaßt wird, kann die niedrig-zu-hoch Transitionszeit TPLH1 (hoch-zu-niedrig Transitionszeit TPHL1) so angepaßt werden, daß die Relation 1 (1') erfüllt ist, d. h. eine hohe (niedrige) Spannung des Signals an Leiter 8 ist für eine Zeitperiode stabil, die mindestens gleich der Summe der Vorhaltezeit TSU1 und der Nachhaltezeit TH1 ist.
  • Es versteht sich, daß die niedrig-zu-hoch Transitionszeit TPLH1 (hoch-zu-niedrig Transitionszeit TPHL1) nicht nur durch die Quell-(Senken)-Antriebsimpedanz des programmierbaren Ausgabepuffers 28 bestimmt ist. Vielmehr können die Werte der niedrig-zu-hoch Transitionszeit TPLH1 und die hoch-zu-niedrig Transitionszeit TPHL1, wie zuvor erläutert, durch die kapazitive Gesamtlast an Leiter 8, durch die physikalische Layouttopologie von Leiter 8, durch die Impedanz von Leiter 8 und durch die Eingabeimpedanz des Eingabekanals 22 beeinflußt werden. Außerdem kann die kapazitive Gesamtlast an Leiter 8 zum Beispiel gemäß der Anzahl und der Art der Geräte 6, die an den Leiter 8 gekoppelt sind, und gemäß den Fertigungstoleranzen jedes Geräts 6 schwanken. Die physikalische Layouttopologie von Leiter 8 kann zum Beispiel gemäß der Anzahl von Geräten 6, die an den Leiter 8 gekoppelt sind, und gemäß des Designs der PCB 2 schwanken. Die Impedanz von Leiter 8 kann zum Beispiel gemäß dem Design von PCB 2 und gemäß den Fertigungstoleranzen von PCB 2 schwanken. Die Eingabeimpedanz von Eingabekanal 22 kann zum Beispiel gemäß dem Typ und den Fertigungstoleranzen von Gerät 6 schwanken.
  • Da es so viele verschiedene Faktoren gibt, die die anderen Parameter in den Relationen 1 und 1' beeinflussen können, ermöglicht die Fähigkeit, die niedrig-zu-hoch Transitionszeit TPLH und die hoch-zu-niedrig Transitionszeit TPHL1 zu steuern, daß die Relationen 1 und 1' in verschiedenen Situationen erfüllt werden können.
  • Relationen 4 und 5'
  • TPERIOD ist ein Festwert, und die niedrig-zu-hoch Transitionszeit TPLH1 und die hoch-zu-niedrig Transitionszeit TPHL1 werden angepaßt sein müssen, bevor versucht werden kann, die Relationen 4 und 5 zu erfüllen. Wie jedoch im Vorstehenden bezüglich der Relationen 1 und 1' diskutiert wurde, kann die Vorhaltezeit TSU1 und die Nachhaltezeit TH1 zum Beispiel durch Fertigungstoleranzen des Geräts 6 beeinflußt werden, und kann, zum Beispiel, mit Schwankungen der Umgebungstemperatur schwanken. Ähnlich kann der exakte Wert der Zeitverzögerung TCO1 zum Beispiel durch Fertigungstoleranzen des Controllers 4 beeinflußt werden und kann, zum Beispiel mit den Schwankungen der Umgebungstemperatur schwanken. Überdies kann der exakte Wert der Zeitverschiebung TSKW zwischen den steigenden Flanken von Takt 20 und Takt 24, zum Beispiel durch die Verfahren beeinflußt werden, die verwendet werden, um Takt 20 und Takt 24 zu generieren. Zum Beispiel kann Takt 24 durch einen Phasenregelkreis (PLL) generiert werden, der an Takt 20 verriegelt ist, und einen konstanten oder schwankenden Phasenfehler hat. In einem anderen Beispiel kann die Zeitverschiebung TSKW als Ergebnis eines Versatzes zwischen Signalen in einem Taktverteilungsbaum (nicht gezeigt) stattfinden, der verwendet wird, um Takt 20 und Takt 24 zu generieren, oder durch eine. Differenz in der Anstiegszeit der Signale dieses Taktverteilungsbaums.
  • Folglich kann, damit der Eingabekanal 22 die logischen Ebenen des Signals an Leiter 8 korrekt sampled, nachdem die Senken-Antriebsimpedanz und die Quell-Antriebsimpedanz des programmierbaren Ausgabepuffers 28 so angepaßt wurden, daß die Relationen 1 und 1' erfüllt sind, die Verzögerung TPD1 der programmierbaren Verzögerungszelle 26 angepaßt werden, indem der geeignete digitale Wert in das Ausgabeverzögerungs-Steuerregister 14 gesetzt wird, so daß beide Relationen 4 und 5 erfüllt sind.
  • Parameter für Eingabesignale
  • Die folgende Beschreibung beschreibt physikalische Komponenten eines Controllers und wie Parameter dieser physikalischen Komponenten zu setzen und/oder dynamisch anzupassen sind, um es elektrischen Signalen zu ermöglichen, die von einem oder mehreren Geräten gesendet werden, die elektrisch an den Controller gekoppelt sind, von dem Controller genau empfangen zu werden. Das Setzen und/oder das Anpassen dieser Parameter kann auf den Attributen des einen oder der mehreren Geräte basieren, die elektrisch an den Controller gekoppelt sind, und auf den Attributen des Mediums basieren, das das eine oder die mehreren Geräte elektrisch an den Controller koppelt.
  • Gerät 6 kann einen Ausgabekanal 32 umfassen. Der Ausgabekanal 32 kann ein Signal 34 empfangen, dessen stabilisierten logischen Ebenen sich nicht öfter als ein Mal während jeder Periode von Takt 24 verändern, und kann ein Ausgabesignal auf dem Leiter 10 generieren, das die Veränderungen in den logischen Ebenen von Signal 34 widerspiegeln kann. Die logischen Ebenen können auf Leiter 10 durch Spannungsebenen dargestellt werden.
  • Controller 4 kann einen Eingabekanal 36 umfassen, der von einem Eingabeverzögerungs-Steuerregister 13 gesteuert wird. Eingabekanal 36 kann Takt 20 und das Signal von Leiter 10 als Eingaben empfangen und kann ein Signal 38 ausgeben. Eingabekanal 36 kann die logischen Ebenen des Signals an 10 an den steigenden Flanken von Takt 20 samplen und kann die gesampleten logischen Ebenen auf Signal 38 ausgeben. Ein Zweck von Eingabekanal 36 und Eingabeverzögerungs-Steuerregister 13 kann sein, zu gewährleisten, daß Veränderungen in den logischen Ebenen von Signal 34 durch Veränderungen in den logischen Ebenen von Signal 38 genau widergespiegelt werden. Tatsächlich wird dies Signal 34 an Signal 38 übertragen.
  • In dem beispielhaften Diagramm der zeitlichen Steuerung aus 3 oszilliert Takt 24 mit Periode TPERIOD Nanosekunden (gemessen zwischen steigenden Flanken). In diesem Beispiel beginnt sich die logische Ebene von Leiter 10 TCO1 Nanosekunden nach jeder steigenden Flanke von Takt 24 zu verändern. In dem beispielhaften Diagramm zur zeitlichen Steuerung aus 3 ist die Zeitverzögerung TCO2 konstant, auch wenn der Umfang der Erfindung diesbezüglich nicht beschränkt ist.
  • Zusätzlich kann die Transition des Signals an Leiter 10 von einer niedrigen Spannungsebene zu einer hohen Spannungsebene durch eine niedrig-zu-hoch Transitionszeit TPLH2 gekennzeichnet werden, während derer die Spannung des Signals an Leiter 10 nicht durch irgendeine logische Ebene ordnungsgemäß dargestellt werden kann. Ähnlich kann die Transition des Signals an Leiter 10 von einer hohen Spannungsebene zu einer niedrigen Spannungsebene durch eine hoch-zu-niedrig Transitionszeit TPHL2 gekennzeichnet werden, während derer die Spannung des Signals an Leiter 8 nicht durch irgendeine logische Ebene ordnungsgemäß dargestellt werden kann.
  • Die niedrig-zu-hoch Transitionszeit TPLH2 kann durch die Quell-Antriebsimpedanz von Ausgabekanal 32, die kapazitive Gesamtlast an Leiter 10, die physikalische Layouttopologie von Leiter 10, die Impedanz von Leiter 10 und die Eingabeimpedanz von Eingabekanal 36 beeinflußt werden.
  • Ähnlich kann die hoch-zu-niedrig Transitionszeit TPHL2 durch die Senken-Antriebsimpedanz von Ausgabekanal 32, die kapazitive Gesamtlast an Leiter 10, die physikalische Layouttopologie von Leiter 10, die Senken-Antriebsimpedanz von Ausgabekanal 32, die Impedanz von Leiter 10 und die Eingabeimpedanz von Eingabekanal 36 beeinflußt werden.
  • In dem beispielhaften Diagramm für die zeitliche Steuerung aus 3 erreicht die Spannung an Leiter 10 eine stabilisierte hohe Spannungsebene (TCO2 + TPLH2) Nanosekunden nach einer steigenden Flanke 204 von Takt 24, und erreicht eine stabilisierte niedrige Spannungsebene ((TCO2 + TPHL2) Nanosekunden nach einer steigenden Flanke 204 von Takt 24 und erreicht eine stabilisierte hohe Spannungsebene (TCO2 + TPLH2) Nanosekunden nach der steigenden Flanke 206 von Takt 24.
  • Der Eingabekanal 36 kann einen Eingabepuffer 40, eine programmierbare Verzögerungszelle 42 und ein Eingaberegister 44 umfassen. Das Eingaberegister 44 ist ein Teil eines Frontends für das digitale Subsystem (nicht gezeigt).
  • In einigen Ausführungsformen kann der Eingabepuffer 40 das Signal an Leiter 10 als Eingabe empfangen und ein Ausgabesignal 46 generieren, daß die Veränderungen in den logischen Ebenen des Signals an Leiter 10 widerspiegeln kann. Wenn die Spannung des Signals an Leiter 10 eine spezielle logische Ebene darstellt, kann der Eingabepuffer 40 die gleiche logische Ebene auf Signal 46 ausgeben. Wenn die Spannung des Signals an Leiter 10 irgendeine logische Ebene jedoch nicht ordnungsgemäß darstellt, wie zum Beispiel etwa während der Zeitperioden TPLH2 und TPHL2, kann das Signal 46 irgendeine logische Ebene auch nicht ordnungsgemäß darstellen, wie in 3 durch ein schraffiertes Rechteck illustriert. (In anderen Ausführungsformen kann der Eingabepuffer 40 ein anderes Verhalten haben. Zum Beispiel kann der Eingabepuffer 40 ein Schmitt-Trigger-Eingabepuffer sein, für den das Signal 46 immer eine ordnungsgemäße logische Ebene darstellt, aber die Zeit, bei der die logische Ebene sich verändert, kann gemäß der Anstieg- oder der Abfallzeit schwanken.)
  • Die programmierbare Verzögerungszelle 42 kann ein Signal 46 als Eingabe empfangen und kann ein Signal 48 ausgeben. Die programmierbare Verzögerungszelle 42 kann die logische Ebene von Signal 46 kontinuierlich samplen, und kann kontinuierlich logische Ebenen an ein Signal 48 ausgeben, die im Wesentlichen gleich der logischen Ebenen sind, die auf Signal 46 gesampled werden. Wenn eine Veränderung in der logischen Ebene von Signal 46 auftritt, kann sich die logische Ebene von Signal 48 dementsprechend nach einer Zeitverzögerung TPD2 verändern. Die Zeitverzögerung TPD2 kann programmierbar sein, und kann gemäß einem digitalen Wert, der in einem Eingabeverzögerungs-Steuerregister 13 gespeichert ist, gesetzt werden.
  • Das Eingaberegister 44 kann die logischen Ebenen von Signal 48 an den steigenden Flanken samplen und kann Signal 38 ausgeben. Die logische Ebene, die Eingaberegister 44 nach jeder steigenden Flanke von Takt 20 an Signal 38 ausgeben kann, kann im Wesentlichen gleich der logischen Ebene sein, die an Signal 48 an der steigenden Flanke von Takt 20 gesampled wird.
  • Wenn der Ausgabekanal 32 eine logische Ebene an Leiter 10 nach einer steigenden Flanke von Takt 24 generiert, sollte das Eingaberegister 44 diese logische Ebene auf Signal 48 an der steigenden Flanke von Takt 20, um TSKW Nanosekunden von der folgenden steigenden Flanke von Takt 24 versetzt, samplen.
  • Wenn zum Beispiel der Ausgabekanal 32 eine hohe logische Ebene an Leiter 10 nach der steigenden Flanke 202 von Takt 24 generiert, sollte das Eingaberegister 44 diese logische Ebene auf Signal 48 an der steigenden Flanke 214 von Takt 20 samplen. Ähnlich sollte, wenn der Ausgabekanal 32 eine niedrige Logik auf Leiter 10 nach der steigenden Flanke 204 von Takt 24 generiert, das Eingaberegister 44 diese logische Ebene auf Signal 48 an der steigenden Flanke 216 von Takt 20 samplen.
  • Damit das Eingaberegister 44 die logischen Ebenen von Signal 48 korrekt sampled, muß die logische Ebene von Signal 48 mindestens für die „Vorhaltezeit” TSU2 vor der steigenden Flanke von Takt 20 stabil sein können, und muß für mindestens eine „Nachhaltezeit” TH2 nach der steigenden Flanke von Takt 20 stabil bleiben können.
  • Anders ausgedrückt müssen, damit das Eingaberegister 44 eine hohe (niedrige) Ebene des Signals 48 korrekt sampled, die folgenden Bedingungen erfüllt sein:
    • (d) die hohe (niedrige) Spannung von Signal 48 muß für eine Zeitperiode stabil sein, die mindestens gleich der Summe der Vorhaltezeit und der Nachhaltezeit ist;
    • (e) die hohe (niedrige) Spannung von Signal 48 muß mindestens für TH2 nach der steigenden Flanke von Takt 20 stabil sein; und
    • (f) die hohe (niedrige) Spannung von Signal 48 muß mindestens für TSU2 vor der steigenden Flanke von Takt 20 stabil sein;
  • Die Bedingung (d) kann durch die folgenden Relationen für hohe Spannungen und für niedrige Spannungen ausgedrückt werden: 6. TPERIOD – TPLH2 ≥ TSU2 + TH2; 6'. TPERIOD – TPHL2 ≥ TSU2 + TH2;
  • Die Bedingung (e) kann durch die folgende Relation (die gleiche Relation für hohe und niedrige Spannungen) ausgedrückt werden: 7. TCO2 + TPD2 + TSKW ≥ TH
  • Die Bedingung (f) kann durch die folgenden Relationen für hohe Spannungen und für niedrige Spannungen ausgedrückt werden: 8. TPERIOD – TCO2 – TPD2 – TPLH2 ≥ TSU2 + TSKW. 8'. TPERIOD – TCO2 – TPD2 – TPHL2 ≥ TSU2 + TSKW.
  • Die Bedingungen (e) und (f) können als obere und unter Grenzen auf der Zeitverzögerung TPD2 ausgedrückt werden, eingeführt durch die programmierbare Verzögerungszelle 42, wie durch die folgenden Relationen ausgedrückt: 9. TPERIOD – TPLH2 – TCO2 – TSU2 – TSKW ≥ TPD2 ≥ TH2 – TSKW – TCO2 10. TPERIOD – TPHL2 – TCO2 – TSU2 – TSKW ≥ TPD2 ≥ TH2 – TSKW – TCO2.
  • Die steuerbaren Parameter der Relationen 9 und 10 (in den Relationen durch Fettdruck hervorgehoben) können über digitale Werte angepaßt werden, die in das Eingabeverzögerungs-Steuerregister 13 programmiert sind, um die Schwankungen aller anderen Parameter in den Relationen zu kompensieren, so daß die Bedingungen (e) und (f) erfüllt sind, wie im Folgenden erläutert wird.
  • Relationen 6 und 6'
  • Gemäß den Ausführungsformen dieser Erfindung kann die niedrig-zu-hoch Transitionszeit TPLH2 und die hoch-zu-niedrig Transitionszeit TPHL2 nicht durch Controller 4 gesteuert werden, und daher wird angenommen, daß die Relationen 6 und 6' erfüllt sind.
  • Relationen 9 und 10'
  • TPERIOD ist ein Festwert, während die exakten Werte für die Vorhaltezeit TSU2 und die Nachhaltezeit TH2 zum Beispiel durch Fertigungstoleranzen des Controllers 4 beeinflußt werden können, und, zum Beispiel mit Schwankungen der Umgebungstemperatur, schwanken können. Ähnlich kann der exakte Wert der Zeitverzögerung TCO2 zum Beispiel durch Fertigungstoleranzen des Geräts 6 beeinflußt werden, und kann, zum Beispiel, mit den Schwankungen der Umgebungstemperatur schwanken. Überdies kann der exakte Wert der Zeitverschiebung TSKW zwischen den steigenden Flanken von Takt 20 und Takt 24 durch, zum Beispiel die Verfahren beeinflußt werden, die verwendet werden, um Takt 20 und Takt 24 zu generieren.
  • Die exakten Werte der niedrig-zu-hoch Transitionszeit TPLH2 und der hoch-zu-niedrig Transitionszeit TPHL2, können durch die kapazitive Gesamtlast an Leiter 10, die physikalische Layouttopologie von Leiter 10, die Impedanz von Leiter 10 und die Eingabeimpedanz des Eingabekanals 36 beeinflußt werden. Außerdem kann die kapazitive Gesamtlast an Leiter 10 zum Beispiel gemäß den Schwankungen der Ausgangskapazität von Ausgabekanal 32 und gemäß den Fertigungstoleranzen jedes Geräts 6 schwanken. Zusätzlich kann die kapazitive Gesamtlast an Leiter 10 zum Beispiel gemäß dem Typ und der Anzahl und den Fertigungstoleranzen von optionalen Gerät(en) 50 schwanken, die elektrisch mit dem Leiter 10 verbunden sind. Die physikalische Layouttopologie von Leiter 10 kann zum Beispiel gemäß dem Design der PCB 2 schwanken. Die Impedanz von Leiter 10 kann zum Beispiel gemäß dem Design von PCB 2 und gemäß den Fertigungstoleranzen von PCB 2 schwanken. Die Ausgabeimpedanz von Ausgabekanal 32 kann zum Beispiel gemäß den Fertigungstoleranzen von Gerät 6 schwanken.
  • Folglich kann, damit das Eingaberegister 44 die logischen Ebenen von Signal 48 korrekt sampled, die Verzögerung TPD2 der programmierbaren Verzögerungszelle 42 angepaßt werden, indem der geeignete digitale Wert in das Eingabeverzögerungs-Steuerregister 13 gesetzt wird, so daß beide Relation 9 und 10 erfüllt sind.
  • Setzen und Anpassen von Parameter
  • Die Parameter der physikalischen Komponenten des Controllers werden durch die digitalen Werte im Eingabeverzögerungs-Steuerregister 13, Ausgabeverzögerungs-Steuerregister 14 und dem Antriebsimpedanz-Steuerregister 16 bestimmt. Wie in 4 gezeigt, können die Standardwerte für diese Register durch Laborarbeit (-400-) bestimmt und in einem Speicher gespeichert werden, der auf der gedruckten Schaltung (-401-) installiert ist. Die gedruckte Schaltung kann in einer Vorrichtung (-402-) installiert sein, und die digitalen Werte, die in den Register gespeichert sind, können, wenn gewünscht, während des Betriebs der Vorrichtung (-403-) angepaßt werden. Wie im Folgenden genauer beschrieben werden wird, ist 5 eine genauere Beschreibung von -400-, während 4 6 eine genauere Beschreibung von -403- ist. 7 beschreibt ein Verfahren, das durch die Verfahren von 5 und 6 aufgerufen wurde, während 8 ein Verfahren beschreibt, das von dem Verfahren aus 7 aufgerufen wurde.
  • PCB 2 kann einen oder mehrere Speicher 62 umfassen, um die Konfigurationsinformation 64 zu PCB 2 zu speichern. Die Konfigurationsinformation 64 kann Informationen beinhalten, die die digitalen Werte beeinflussen, die in das Antriebsimpedanz-Steuerregister 16 und das Ausgabeverzögerungsregister 14 zu programmieren sind, wie zum Beispiel etwa, den Typ und die Anzahl von Geräten 6, die elektrisch an Leiter 8 gekoppelt sind, und optionale Informationen über die Topologie und die Impedanz von Leiter 8. Die Konfigurationsinformation 64 kann auch Informationen beinhalten, die die digitalen Werte beeinflußt, die in das Eingabeverzögerungs-Steuerregister 13 zu programmieren sind, wie zum Beispiel etwa den Typ von Gerät 6, der elektrische Signale an den Leiter 10 sendet, den Typ und die Anzahl der optionalen Geräte 50, die elektrisch an den Leiter 10 gekoppelt sind, und optional Information über die Topologie und die Impedanz von Leiter 10.
  • PCB 2 kann einen Speicher 52 umfassen, um Informationen zu speichern, die verwendet werden, um das Antriebsimpedanz-Steuerregister 16 und das Ausgabeverzögerungs-Steuerregister 14 zu programmieren, und um das Eingabeverzögerungs-Steuerregister 13 zu programmieren. Alternativ kann der Speicher 52 Teil des Controllers 4 sein. Solche Informationen können zum Beispiel in den folgenden Datenstrukturen angeordnet sein: Einer Antriebsimpedanz-Verweistabelle (LUT) 54, einer Ausgabefenster-zentrierenden Verweistabelle 56, einer Eingabefenster-zentrierende Verweistabelle 58 und einer Tabelle mit Goldenen Muster 60. Die Daten in allen oder in einigen der Datenstrukturen von Speicher 52 können programmierbar sein. Zusätzlich kann der Speicher 52 ein oder mehrere Speichergeräte umfassen, und die Datenstrukturen können auf diesen Geräten verteilt sein.
  • Der Speicher 52 kann auch Softwaremodule umfassen, um die Verfahren aus 6, 7 und 8 zu implementieren.
  • Die Antriebsimpedanz-LUT 54 kann eine oder mehrere Einträge umfassen. Ein Eintrag für eine spezielle kapazitive Gesamtlast an Leiter 8, eine spezielle Impedanz von Leiter 8 und eine spezielle Eingabeimpedanz von Eingabekanal 22, kann einen digitalen Wert beinhalten, um die Quell-Antriebsimpedanz des programmierbaren Ausgabepuffer 28 zu steuern, und andere digitale Werte, um die Senken-Antriebsimpedanz des programmierbaren Ausgabepuffers 28 zu steuern, die es ermöglichen, daß Bedingung (a) erfüllt wird.
  • Die Ausgabefenster-zentrierende LUT 56 kann eine oder mehrere Einträge umfassen. Ein Eintrag für eine spezielle kapazitive Gesamtlast an Leiter 8, eine spezielle Zeitverschiebung TSKW, eine spezielle Impedanz von Leiter 8 und eine spezielle Eingabeimpedanz von Eingabekanal 22, kann einen digitalen Wert beinhalten, um die Zeitverzögerung TPD1 zu steuern, die durch die programmierbare Verzögerungszelle 26 eingeführt wird, der es ermöglicht, daß die Bedingungen (b) und (c) erfüllt werden.
  • Die Eingabefenster-zentrierende LUT 58 kann eine oder mehrere Einträge umfassen. Ein Eintrag für eine spezielle kapazitive Gesamtlast an Leiter 10, eine spezielle Zeitverschiebung TSKW, eine spezielle Impedanz von Leiter 10 und eine spezielle Eingabeimpedanz von Eingabekanal 36, kann einen digitalen Wert beinhalten, um die Zeitverzögerung TPD2 zu steuern, die durch die programmierbare Verzögerungszelle 42 eingeführt wird, der es ermöglicht, daß die Bedingungen (e) und (f) erfüllt werden.
  • Die Tabelle mit den Goldenen Muster 60 kann Muster digitaler Werte enthalten, die zum Testen verwendet werden, ob der Eingabekanal 22 die logischen Ebenen des Signals auf Leiter 8 korrekt sampled. Zum Beispiel kann die Tabelle mit den Goldenen Mustern 60 Muster beinhalten, die für vereinfachten Tests bzw. Belastungstests von Nachhalte- bzw. Vorhaltezeitverletzungen designed sind. Die präzisen Muster, die zu verwenden sind, können von vielen Faktoren abhängen, wie zum Beispiel etwa der spezifischen Topologie von Leiter 8 und dem Protokoll, in dem die digitalen Werte über Leiter 8 übertragen werden. Wenn diese Muster der digitalen Werte für Nachhalte-(Vorhalte)Zeitverletzungen an Leiter 8 generiert werden, und die Zeitverzögerung TPD1 nahe dem Minimum (Maximum) ihres Bereichs ist, wird es wahrscheinlicher sein, daß der Eingabekanal 22 die logischen Ebenen des Signals an Leiter 8 für das Muster des vereinfachten Testens korrekt sampled als für das Belastungstestmuster.
  • Ähnlich kann die Tabelle mit den Goldenen Muster 60 Muster digitaler Werte enthalten, die zum Testen verwendet werden, ob das Eingaberegister 44 die logischen Ebenen des Signals an Leiter 10 korrekt sampled. Zum Beispiel kann die Tabelle mit den Goldenen Muster 60 Muster beinhalten, die für vereinfachten Tests bzw. die Belastungstests von Nachhalte- bzw. Vorhaltezeitverletzungen designed sind. Die präzisen Muster, die zu verwenden sind, können von vielen Faktoren abhängen, wie zum Beispiel etwa der spezifischen Topologie von Leiter 10 und dem Protokoll, in dem die digitalen Werte über Leiter 10 übertragen werden. Wenn diese Muster der digitalen Werte für Nachhalte-(Vorhalte)Zeitverletzungen auf Leiter 10 generiert werden, und die Zeitverzögerung TPD2 nahe dem Minimum (Maximum) ihres Bereichs ist, wird es wahrscheinlicher sein, daß das Eingaberegister 44 die logischen Ebenen des Signals an Leiter 10 für das Muster des vereinfachten Testens korrekt sampled als für das Belastungstestmuster.
  • Überdies kann die Tabelle mit den Goldenen Muster 60 programmierbar sein, und ihr Inhalt kann, wenn gewünscht, aktualisiert oder ersetzt werden, wenn Muster entwickelt werden, die effektivere Tests bereitstellen.
  • 5 ist eine Ablaufdiagrammillustration eines beispielhaften Verfahrens zur Bestimmung der Standardwerte, die in der Antriebsimpedanz-LUT 54, der Ausgabefensterzentrierenden LUT 56 und der Eingabefenster-zentrierenden LUT 58 gemäß einiger Ausführungsformen der Erfindung zu speichern sind. Auch wenn der Umfang der Erfindung diesbezüglich nicht beschränkt ist, kann das Verfahren aus 5 vor der Serienproduktion der Kombination eines speziellen Typs von PCB 2 und darauf installiertem Speicher 52, ausgeführt werden.
  • Eine „Validierungsversion” von Speicher 52 (-302-) kann, zum Beispiel, unter Verwendung von Simulations- und Validierungstests von Controller 4 generiert werden, um die „Validierung” digitaler Werte zu bestimmen, die in den Einträgen der Antriebsimpedanz-Verweistabelle 54, der Ausgabefenster-zentrierenden Verweistabelle 56 und der Eingabefensterzentrierenden Verweistabelle 58 gespeichert sind.
  • Jedoch können zum Beispiel aufgrund von Fertigungstoleranzen der PCB 2, des Controllers 4, der Geräte 6 und der optionalen Geräte 50, ein oder mehrere der Parameter der zeitlichen Steuerung, die auf das Signal an Leiter 8 (TCO1, TPD1, TPHL1, TPLH1, TSU1, TH1 and TSKW) bezogen sind, und ein oder mehrere der Parameter der zeitlichen Steuerung, die auf das Signal an Leiter 10 (TCO2, TPD2, TPHL2, TPLH2, TSU2, TH2 and TSKW) bezogen sind, Werte haben, die von den Werten abweichen, die während der Simulations- und Validierungstests verwendet werden, um die digitalen „Validierungswerte”, die in der Validierungsversion von Speicher 52 gespeichert sind, zu definieren. Folglich können die digitalen Werte, die in der Validierungsversion von Speicher 52 gespeichert sind, für den Eingabekanal 22 nicht angemessen sein, um die logischen Ebenen des Signals an Leiter 8 korrekt zu samplen, und für das Eingaberegister 44, um die logischen Ebenen des Signals an Leiter 10 unter gewissen Betriebsbedingungen korrekt zu samplen.
  • Wenn die Kalibrierung der Einträge der Tabellen 54, 56 und 58 nicht gewünscht wird (-502-), kann die Validierungsversion von Speicher 52 als eine „Produktionsversion” von Speicher 52 (-504-) verwendet werden. Daher sind die Standardwerte für die Register Validierungswerte.
  • Wenn eine Kalibrierung gewünscht wird (-502-), kann die „Validierungsversion” von Speicher 52 auf PCB 2 (-506-) installiert werden, wobei PCB 2 in Betrieb genommen wird, und die Konfigurationsinformation 64 dann gelesen werden kann. Die geeigneten Einträge der Antriebsimpedanz-Verweistabelle 54, der Ausgabefenster-zentrierenden Verweistabelle 56 und der Eingabefenster-zentrierenden Verweistabelle 58 des Validierungsspeichers werden, basierend auf der Konfigurationsinformation 64, ausgewählt, und die digitalen Werte in den ausgewählten Einträgen können in das Antriebsimpedanz-Steuerregister 16 bzw. das Ausgabeverzögerungs-Steuerregister 14 und das Eingabeverzögerungs-Steuerregister 13 programmiert werden (-508-).
  • Der Controller 4 und die Geräte 6 können auf Betriebsbedingungen gebracht werden (-510-). Zum Beispiel können der Controller 4 und die Geräte 6 auf eine Betriebstemperatur, wie zum Beispiel etwa 50°C erwärmt werden, indem, zum Beispiel, das Signal an Leiter 8 und das Signal an Leiter 10 geflipflopt wird Wenn die gewünschte Temperatur erreicht ist, kann eine Kalibrierungssequenz, die mit Bezug auf 7 genauer beschrieben wird, durchgeführt werden (-512-), um die digitalen Werte für die Antriebsimpedanz-Verweistabelle 54 und die Ausgabefenster-zentrierende Verweistabelle 56 zu bestimmen, die auf spezifische Parameter von PCB 2 und auf spezifische Parameter der Geräte 6 und Controller 4, die auf PCB 2 installiert sind, kalibriert werden. Zusätzlich kann eine entsprechende Kalibrierungssequenz durchgeführt werden (-512-), um die digitalen Werte für die Eingabefenster-zentrierende Verweistabelle 54 zu bestimmen, die auf spezifische Parameter von PCB 2 und auf spezifische Parameter der Geräte 6, der optionalen Geräte 50 und des Controllers 4 kalibriert sind, die auf PCB 2 installiert sind.
  • Die geeigneten Einträge für eine oder mehrere Antriebsimpedanz-Verweistabellen 54, Ausgabefenster-zentrierende Verweistabellen 56 und Eingabefenster-zentrierende Verweistabellen 58 können mit Werten aktualisiert werden, die durch Kalibrierungssequenzen (-514-) bestimmt werden, und eine Produktionsversion von Speicher 52 mit den aktualisierten Werten als den Standardwerten für die Register kann erzeugt werden (-504-).
  • Überdies, wenn verschiedene Konfigurationen von PCB 2 möglich sind (zum Beispiel können Controller 4 und optionale Geräte 50 permanent auf PCB 2 installiert werden, während verschiedene Konfigurationen von PCB 2 verschiedene Typen und Anzahlen von Geräten 6 haben können) und es gewünscht ist, daß die Tabellen von Speicher 52 Einträge speichern, die für jede der verschiedenen Konfigurationen geeignet sind, dann kann der Kalibrierungsprozeß (-508- bis -514-) für jede der Konfigurationen (-516- und -518-) vor der Erzeugung der Produktionsversion von Speicher 52 wiederholt werden, der auf PCB 2 zu installieren ist (-504-).
  • 6 ist eine Ablaufdiagrammillustration eines beispielhaften Verfahrens gemäß einiger Ausführungsformen der Erfindung zum Bestimmen der digitalen Werte, um das Antriebsimpedanz-Steuerregister 16 und das Ausgabeverzögerungs-Steuerregister 14 zu programmieren, so daß der Eingabekanal 22 die logischen Ebenen des Signals an Leiter 8 korrekt sampled, und zum Bestimmen der digitalen Werte, um die Eingabeverzögerungs-Steuerregister 13 zu programmieren, so daß das Eingaberegister 44 die logischen Ebenen des Signals an Leiter 10 korrekt sampled.
  • Auch wenn der Umfang der Erfindung diesbezüglich nicht beschränkt ist, kann das Verfahren von 6 jedes Mal durchgeführt werden, wenn eine Vorrichtung, die die PCB 2 von 1 beinhaltet, in Betrieb genommen wird. Auf PCB 2 ist bereits der Controller 4, ein oder mehrere Geräte 6, optionale Geräte 50, der Speicher 62 und eine Produktionsversion von Speicher 52 installiert.
  • PCB 2 kann in Betrieb genommen werden, und die Konfigurationsinformation 64 kann dann gelesen werden. Die geeigneten Einträge der Antriebsimpedanz-Verweistabelle 54, der Ausgabefenster-zentrierenden Verweistabelle 56 und der Eingabefenster-zentrierenden Verweistabelle 58 des Validierungsspeichers können, basierend auf der Konfigurationsinformation 64, ausgewählt werden, und die digitalen Werte in den ausgewählten Einträgen können in das Antriebsimpedanz-Steuerregister 16 bzw. das Ausgabeverzögerungs-Steuerregister 14 und das Eingabeverzögerungs-Steuerregister 13 (-508-) programmiert werden.
  • Der Controller 4 und die Geräte 6 können auf Betriebsbedingungen gebracht werden (-510-). Zum Beispiel können der Controller 4 und die Geräte 6 auf eine Betriebstemperatur, wie zum Beispiel etwa 50°C erwärmt werden, indem, zum Beispiel, das Signal an Leiter 8 und das Signal an Leiter 10 geflipflopt wird
  • Wenn die gewünschte Temperatur erreicht wird, wird getestet, daß der Eingabekanal 22 die logischen Ebenen des Signals an Leiter 8 korrekt sampled, und daß das Eingaberegister 44 die logischen Ebenen des Signals an Leiter 10 korrekt sampled, unter Verwendung der Muster, die in der Tabelle mit den Goldenen Muster 60 gespeichert sind, die für das Belastungstesten von Nachhalte- und Vorhaltezeitverletzungen designed sind (-612-). Wenn der Test fehlschlägt (-614-), kann das Verfahren aussteigen, während es den Fehlschlag berichtet (-616-). Optional kann der Test vor dem Ausstieg unter Verwendung der Muster wiederholt werden, die in der Tabelle mit den Goldenen Muster 60 gespeichert sind, die für das vereinfachte Testen der Nachhalte- und der Vorhaltezeitverletzungen designed sind (-618-). Wenn der wiederholte Test fehlschlägt (-620-), kann das Verfahren aussteigen, während es den Fehlschlag berichtet (-616-).
  • Wenn die Belastungstests jedoch nicht fehlschlagen, oder wenn die vereinfachten Tests nicht fehlschlagen, kann das Verfahren mit Entscheidung -622- bezüglich der Inbetriebnahme-Kalibrierung weitermachen.
  • Wenn die Inbetriebnahme-Kalibrierung der digitalen Werte im Antriebsimpedanz Steuerregister 16 und im Ausgabefenster-Verzögerungssteuerregister 14 gewünscht wird (-622-), kann eine Kalibrierungssequenz, die mit Bezug auf 7 genauer beschrieben wird, durchgeführt werden (-512-), um die digitalen Werte für das Antriebsimpedanz-Steuerregister 16 und das Ausgabefenster-Verzögerungssteuerregister 14 zu bestimmen, die auf die aktuellen Parameter von PCB 2 und die aktuellen Parameter der Geräte 6 und des Controllers 4 kalibriert werden, die auf PCB 2 installiert sind.
  • Zusätzlich kann eine entsprechende Kalibrierungssequenz durchgeführt werden (-512-), um die digitalen Werte für das Eingabeverzögerungs-Steuerregister 13 zu bestimmen, die auf die aktuellen Parameter von PCB 2 und auf die aktuellen Parameter der Geräte 6, der optionalen Geräte 50 und des Controllers 4 kalibriert sind, die auf PCB 2 installiert sind.
  • Wenn die Kalibrierung fehlschlägt (-624-), kann das Verfahren aussteigen, während es den Fehlschlag berichtet (-626-). Wenn die Kalibrierung jedoch nicht fehlschlägt, und wenn die Kalibrierungssequenz für mindestens eines von Antriebsimpedanz-Steuerregister 16, Ausgabeverzögerungs-Steuerregister 14 und Eingabeverzögerungs-Steuerregister 13 einen Wert bestimmt, der von dem Standardwert abweicht, der in -508- programmiert ist, werden die Inhalte des (der) entsprechenden Register mit dem (den) Wert(en) ersetzt, die durch die Kalibrierungssequenz (630-) bestimmt wurden.
  • Während des Betriebe des Controllers 4 und der Geräte 6, können Veränderungen in der Umgebungstemperatur, Abweichungen bei der Versorgungsspannung an Controller 4 und an den Geräten 6 und anderes, in Veränderungen der Parameter für die zeitliche Steuerung der Signale an Leiter 8 und 10 resultieren. Um solche Veränderungen zu kompensieren, kann das Kalibrieren der Inhalte der Register 13, 14 und 16 (-512-), wenn gewünscht, auf wiederkehrender Basis wiederholt werden (-632- und -634-). Diese Wiederholung der Kalibrierung kann sogar dann stattfinden, wenn eine Inbetriebnahme-Kalibrierung nicht gewünscht wird (-622-).
  • Es ist festzustellen, daß sogar wenn die Standardwerte, die in Speicher 52 gespeichert und die bei der Inbetriebnahme, basierend auf der Konfigurationsinformation 64, in die Register programmiert werden, in einem Erfolg des Tests unter Spannung mit Goldenen Belastungsmustern oder dem Test unter Spannung mit den vereinfachten Goldenen Muster resultieren, der Test unter Spannung mit einem schmalen Rand erfolgreich sein wird. Indem die Werte unter Verwendung der Kalibrierungssequenz kalibriert werden, und indem die Register mit den kalibrierten Werten aktualisiert werden, kann dieser Rand für den Erfolg beim Durchlaufen des Tests mit den Goldenen Mustern erhöht werden.
  • 7 ist eine Ablaufdiagrammillustration einer beispielhaften Kalibrierungssequenz für die digitalen Werte, die in das Ausgabeverzögerungs-Steuerregister 14 und das Eingabeverzögerungs-Steuerregister 13 gemäß einiger Ausführungsformen der Erfindung zu programmieren sind. Die Kalibrierungssequenzen -512-, auf die sich die Verfahren aus 5 und 6 beziehen, können die Sequenz von 7 beinhalten, auch wenn der Umfang der Erfindung diesbezüglich nicht beschränkt ist.
  • Wenn die Sequenz auf 7 durch das Verfahren aus 5 aufgerufen wird, sind das Eingabeverzögerungs-Steuerregister 13 und das Ausgabeverzögerungs-Steuerregister 14 bereits mit den Standardwerten aus der Eingabe-zentrierenden Verweistabelle 58 bzw. der Ausgabezentrierenden Verweistabelle 56 programmiert, wobei die Standardwerte aus den Tabellen gemäß der Konfigurationsinformation 64 bei -508- aus 5 ausgewählt wurden.
  • Ähnlich sind, wenn die Sequenz aus 7 durch das Verfahren aus 6 aufgerufen wird, das Eingabeverzögerungs-Steuerregister 13 und das Ausgabeverzögerungs-Steuerregister 14 bereits programmiert, entweder mit den Standardwerten aus den Verweistabellen, die gemäß der Konfigurationsinformation 64 bei -508- aus 6 ausgewählt wurden, oder mit Werten, die durch einen vorherigen Aufruf an die Kalibrierungssequenz aus 7 bei -630- aus 6 bestimmt wurden.
  • Ein Kalibrierungsalgorithmus kann für den Wert des Ausgabeverzögerungs-Steuerregisters 14 (-704-) durchgeführt werden. Wie im Folgenden unter Bezug auf 8 erläutert wird, kann der Kalibrierungsalgorithmus einen oder mehrere Werte für das Ausgabeverzögerungs-Steuerregister 14 bestimmen, bei denen der Eingabekanal 22 die logischen Ebenen des Signals an Leiter 8 korrekt sampled. Der kalibrierte Wert für das Ausgabeverzögerungs-Steuerregister 14 kann als Mittelwert dieser Werte ausgewählt werden. (-706-).
  • Das Ausgabeverzögerungs-Steuerregister 14 kann dann mit dem kalibrierten Wert (-708-) programmiert werden, und ein Kalibrierungsalgorithmus kann für den Wert des Eingabeverzögerungs-Steuerregisters 13 (-710-) durchgeführt werden. Der Kalibrierungsalgorithmus kann einen oder mehrere Werte für das Eingabeverzögerungs-Steuerregister 13 bestimmen, bei denen das Eingaberegister 44 die logischen Ebenen des Signals an Leiter 10 korrekt sampled. Der kalibrierte Wert für das Eingabeverzögerungs-Steuerregister 13 kann als Mittelwert dieser Werte ausgewählt werden (-712-).
  • Wenn der Kalibrierungsalgorithmus (-704-) jedoch keinerlei Werte für das Ausgabeverzögerungs-Steuerregister 14 bestimmen kann, bei dem der Eingabekanal 22 die logischen Ebenen des Signals an Leiter 8 korrekt sampled, wird das Verfahren einen Fehlschlag (-714-) berichten und aussteigen.
  • Ähnlich wird, wenn der Kalibrierungsalgorithmus (-710-) keinerlei Werte für das Eingabeverzögerungs-Steuerregister 13 bestimmen kann, bei dem das Eingaberegister 44 die logischen Ebenen des Signals an Leiter 10 korrekt sampled, das Verfahren einen Fehlschlag (-714-) berichten und aussteigen.
  • 8 ist eine Ablaufdiagrammillustration eines beispielhaften Kalibrierungsalgorithmus für die digitalen Werte, die in das Ausgabeverzögerungs-Steuerregister 14 und das Eingabeverzögerungs-Steuerregister 13 gemäß einiger Ausführungsformen der Erfindung zu programmieren sind. Die Kalibrierungsalgorithmen, auf die sich die Verfahren aus 6 bei -704- und -710- beziehen, können den Algorithmus aus 8 beinhalten, auch wenn der Umfang der Erfindung diesbezüglich nicht beschränkt ist.
  • Das zu kalibrierende Register (Ausgabeverzögerungs-Steuerregister 14 bei -704- aus 7, und Eingabeverzögerungs-Steuerregister 13 bei -710- aus 7) wird auf einen Wert programmiert, der einer Verzögerungszelle entspricht, die durch das Register gesteuert wird, wobei er die Mindestverzögerung seines Bereichs hat (-802-).
  • In einem ersten Test wird ein Muster, das für das Belastungstesten von Vorhaltezeitverletzungen designed ist, über das Signal 18 an das Gerät 6 gesendet, und vom Signal 34 an den Controller 4 zurückgesendet (-804-). Wenn die digitalen Werte, die an Signal 38 empfangen werden, sich von den digitalen Werten unterscheiden, die über das Signal 18 (-806-) gesendet werden, wird der programmierte Wert als fehlgeschlagen gekennzeichnet (-808-). Wenn die digitalen Werte, die an. Signal 38 empfangen werden, jedoch den digitalen Werten entsprechen, die von Signal 18 (-806-) gesendet werden, wird ein zweiter Test durchgeführt.
  • In einem zweiten Test wird ein Muster, das für das Belastungstesten von Nachhaltezeitverletzungen designed ist, über das Signal 18 an das Gerät 6 gesendet, und von Signal 34 an den Controller 4 zurückgesendet (-810-).
  • Wenn die digitalen Werte, die auf Signal 38 empfangen werden, sich von den digitalen Werten unterscheiden, die über das Signal 18 (-812-) gesendet werden, wird der programmierte Wert als fehlgeschlagen gekennzeichnet (-808-).
  • Wenn die digitalen Werte, die auf Signal 38 empfangen werden, jedoch den digitalen Werten entsprechen, die über das Signal 18 (-806-) gesendet werden, wird der programmierte Wert als bestanden gekennzeichnet (-814-).
  • Das zu kalibrierende Register kann dann mit einem erhöhten Wert programmiert werden, so daß die Verzögerungszelle, die von dem Register gesteuert wird, eine erhöhte Verzögerung hat, die immer noch innerhalb ihres Bereichs liegt (-818-), und der erste Test (und der zweite Test, wenn geeignet) kann wiederholt werden. Der erhöhte programmierte Wert wird als fehlgeschlagen oder bestanden markiert. Wenn alle programmierbaren Werte des Registers getestet wurden (-816-), werden die Ergebnisse der programmierten Werte überprüft (-820-). Wenn alle programmierten Werte bei den Tests fehlschlugen, wird ein Fehlschlag berichtet (-822-) und das Verfahren steigt aus. Wenn nicht alle programmierten Werte bei den Tests fehlschlugen, werden die Werte, die die Tests bestanden haben, berichtet, (-824-) und das Verfahren steigt aus.
  • Bidirektionale Signale
  • Die vorhergehende Beschreibung konzentrierte sich auf die separaten Leiter 8 und 10, die jeweils ihr eigenes Signal tragen. Die Ausführungsformen der Erfindung sind jedoch ebenso im Falle eines einzigen Leiters anwendbar, der den Ausgabekanal 12 von Controller 4 elektrisch an den Eingabekanal 22 des Geräts 6 und den Ausgabekanal 32 von Gerät 6 elektrisch an den Eingabekanal 36 des Controllers 4 koppelt. Innerhalb des Controllers 4 werden die Ausgabe des programmierbaren Ausgabepuffers 98 und die Eingabe an den Eingabepuffer 40 elektrisch gekoppelt. Innerhalb Gerät 6 werden die Ausgabe von Kanal 32 und die Eingabe von Kanal 22 elektrisch gekoppelt.
  • Es kann jede geeignete Technik verwendet werden, um zu gewährleisten, daß nur einer von Ausgabekanal 12 und Ausgabekanal 32 ein Signal zu jeder gegebenen Zeit an den einzigen Leiter sendet, einschließlich, zum Beispiel, die bekannten Techniken der Open-Drain-Ausgabe und der hohen Impedanzausgabe.
  • Gruppen von Leitern
  • Die vorhergehende Beschreibung konzentrierte sich auf die einzelnen Leiter 8 und 10. In der vorhergehenden Beschreibung hatte jeder Leiter seinen eigenen Eingabe- und Ausgabekanal, wobei die Kanäle in Controller 4 von Registern gesteuert werden. Es versteht sich jedoch, daß, wenn eine Gruppe von Leitern ähnlich ist, der Controller 4 ein einziges Eingabeverzögerungs-Steuerregister haben kann, um die Eingabekanäle für die Leiter in dieser Gruppe zu steuern, und ein einziges Ausgabeverzögerungs-Steuerregister und ein einziges Antriebsimpedanz-Steuerregister, um die Ausgabekanäle für die Leiter in der Gruppe zu steuern. Die Ähnlichkeit zwischen den Leitern in einer Gruppe kann zum Beispiel die Ähnlichkeit in der Topologie der Spuren, die Ähnlichkeit im Schaltverhalten der Signale und gegebenenfalls die Ähnlichkeit in den Protokollen der Signale beinhalten. Wenn Zum Beispiel die Adressensignale durch 64 Bits dargestellt werden, dann können die 64 Leiter, die diese Bits tragen, als Teil der gleichen Gruppe betrachtet werden, und Controller 4 kann ein einziges Ausgabeverzögerungs-Steuerregister und ein einziges Antriebsimpedanz-Steuerregister haben, um die Ausgabekanäle für die 64 Leiter auf den Adressensignalen zu steuern.
  • Beispielhafte Vorrichtung
  • Eine beispielhafte Vorrichtung 900 wird in 9 gemäß einiger Ausführungsformen der Erfindung gezeigt. Die Vorrichtung 900 kann eine gedruckte Schaltung (PCB) 902 umfassen. Die Vorrichtung 900 kann optional ein Audioeingangsgerät 901 umfassen.
  • Bekannte Komponenten und Schaltkreise von Vorrichtung 900 werden in 9 nicht gezeigt, um die Erfindung nicht zu verdecken.
  • Eine offene Liste von Beispielen für die Vorrichtung 900 beinhaltet einen Desktop-Personalcomputer, eine Servercomputer, einen Laptopcomputer, einen Notebookcomputer, einen Handheldcomputer, einen persönlichen digitalen Assistenten (PDA), ein Mobiltelefon und ähnliches; und jede eingebettete Anwendung mit einem Hochgeschwindigkeitsbus und einem Speichersubsystem.
  • Ein Prozessor 903, ein Basis-Eingabe/Ausgabesystem-Gerät (BIOS) 952, ein Speichercontroller 904, eine Speicherbank 916 und eine optionale Speicherbank 917 können auf PCB 902 installiert sein. (In einigen Ausführungsformen kann der Speichercontroller 904 Teil des Prozessors 903 sein). Ein Grafikchip 905 kann optional auf PCB 902 installiert sein.
  • Zusätzliche Komponenten, die auch auf PCB 902 installiert sein können, werden nicht gezeigt, um die Erfindung nicht zu verdecken.
  • Eine offene Liste von Beispielen für Prozessor 903 beinhaltet eine Zentraleinheit (CPU), einen digitalen Signalprozessor (DSP), einen Reduced Instruction Set Computer (RISC), einen Complex Instruction Set Computer (CISC) und ähnliches. Überdies kann Prozessor 903 Teil eines anwendungsspezifischen integrierten Schaltkreises (ASIC) sein, oder er kann Teil eines anwendungsspezifischen Standardprodukts (ASSP) sein.
  • Eine offene Liste von Beispielen für BIOS-Gerät 952 beinhaltet einen Flashspeicher, einen elektrisch löschbaren programmierbaren Nur-Lese-Speicher (EEPROM) und ähnliches. Das BIOS-Gerät 952 kann Softwaremodule umfassen, um die Verfahren aus 6, 10A bis 10D und 8 zu implementieren.
  • Eine offene Liste von Beispielen für den Speichercontroller 904 beinhaltet eine Busbrücke, eine Peripheral-Component-Interconnect(PCI)-Northbridge, eine PCI-Southbridge, eine Accelerated-Graphics-Port(AGP)-Bridge, ein Speicherschnittstellengerät und ähnliches oder eine Kombination daraus. Überdies kann der Speichercontroller 904 Teil eines anwendungsspezifischen integrierten Schaltkreises (ASIC) oder Teil eines Chipsets oder Teil eines anwendungsspezifischen Standardprodukts (ASSP) sein.
  • Eine der oder beide Speicherbanken 916 und 917 können ein austauschbares Modul sein, wie zum Beispiel etwa ein Dual In Line Memory Module (DIMM), ein Small Outline Dual In Line Memory Module (SODIMM), ein Single In Line Memory Module (SIMM), ein RAMBUS In Line Memory Module (RIMM) und ähnliches. Alternativ können eine oder beide der Speicherbanken 916 und 917 nicht austauschbar sein, z. B. können sie dauerhaft an PCB 902 angefügt sein.
  • Die Speicherbanken 916 und 917 können ein bzw. mehrere Speichergeräte 906 bzw. 907 umfassen. Eine offene Liste von Beispielen für die Speichergeräte 906 und 907 beinhaltet Synchronous-Dynamic-Random-Access-Memory(SDRAM)-Geräte, RAMBUS-Dynamic-Random-Access-Memory(RDRAM)-Geräte, Double-Data-Rate(DDR)-Speichergeräte, Static-Random-Access-Memory (SRAM) und ähnliche.
  • Das BIOS-Gerät 952 ist ein spezielles Beispiel des Speichers 52 aus 1, und der Speichercontroller 904 ist ein spezielles Beispiel von Controller 4 aus 1 und die Speichergeräte 906 und 907 sind spezielle Beispiele für die Geräte 6 aus 1. Daher wird sich die folgende Beschreibung auf das Programmieren der Register im Speichercontroller 904 konzentrieren, die die Eingabe- und Ausgabekanäle im Speichercontroller 904 der Signale zwischen dem Speichercontroller 904 und den Speichergeräten 906 und 907 steuern.
  • Der Speichercontroller 904 kann an die Speichergeräte 906 und die Speichergeräte 907 durch verschiedene Gruppen von Leitern gekoppelt werden. Für eine Gruppe aus einem oder mehreren Leitern, die ein oder mehrere Ausgabesignale tragen, kann der Speichercontroller 904 einen oder mehrere Ausgabekanäle umfassen (nicht gezeigt) die dem Ausgabekanal 12 aus 1 entsprechen. Für eine Gruppe aus einem oder mehreren Leitern, die ein oder mehrere Eingabesignale tragen, kann der Speichercontroller 904 einen oder mehrere Eingabekanäle umfassen (nicht gezeigt) die dem Eingabekanal 36 aus 1 entsprechen.
  • Eine Gruppe von Leitern 920 kann Memory-Data-In(MDIN)-Signale tragen, um Daten aus den Speichergeräten 906 und/oder den Speichergeräten 907 zu lesen. Die Leiter 920 können auch Memory-Data-Out-(MDOUT)Signale tragen, um Daten in die Speichergeräte 906 und/oder die Speichergeräte 907 zu schreiben. Der Speichercontroller 904 kann ein einziges Antriebsimpedanz-Steuerregister und ein optionales einziges Ausgabeverzögerungs-Steuerregister umfassen, um die Ausgabekanäle des Speichercontrollers 904 zu steuern, die die MDOUT-Signale an Leiter 920 ausgeben. Ähnlich kann der Speichercontroller 904 ein einziges Eingabeverzögerungssteuerregister umfassen, um die Eingabekanäle des Speichercontrollers 904 zu steuern, die die MDIN-Signale an Leiter 920 empfangen.
  • Eine andere Gruppe von Leitern 922 kann Adressensignale von dem Speichercontroller 904 zu den Speichergeräten 906 und/oder den Speichergeräten 907 tragen. Der Speichercontroller 904 kann ein einziges Antriebsimpedanz-Steuerregister und ein optionales einziges Ausgabeverzögerungs-Steuerregister umfassen, um die Ausgabekanäle des Speichercontrollers 904 zu steuern, die die Adressensignale an die Leiter 922 ausgeben.
  • Ein einziger Leiter 924 kann ein Taktsignal (ähnlich Takt 20 und Takt 24 aus 1) von dem Speichercontroller 904 zu den Speichergeräten 906 und/oder den Speichergeräten 907 tragen. Der Speichercontroller 904 kann ein einziges Antriebsimpedanz-Steuerregister und ein optionales einziges Ausgabeverzögerungs-Steuerregister umfassen, um den Ausgabekanal des Speichercontrollers 904 zu steuern, der die Taktsignale an Leiter 924 ausgibt.
  • Eine andere Gruppe von Leitern 926 (927) kann ein „Chipauswahlsignal” von dem Speichercontroller 904 zu den Speichergeräten 906 (907) tragen. Das Chipauswahlsignal wird verwendet, um einem speziellen Speichergerät zu melden, daß die an die anderen Leiter gesendeten Signale, nämlich, die Adressen- und MDIN-Signale, für dieses Speichergerät gedacht sind. Der Speichercontroller 904 kann ein einziges Antriebsimpedanz-Steuerregister und ein optionales einziges Ausgabeverzögerungs-Steuerregister umfassen, um die Ausgabekanäle des Speichercontrollers 904 zu steuern, die die Chipauswahlsignale an den Leitern 926 ausgeben, und ein anderes Antriebsimpedanz-Steuerregister und ein anderes optionales einziges Ausgabeverzögerungs-Steuerregister, um die Ausgabekanäle des Speichercontroller 904 zu steuern, die die Chipauswahlsignale an die Leiter 927 ausgeben.
  • Beispielhafte Kalibrierungssequenz
  • 10A sind 10D sind Ablaufdiagrammillustrationen aller beispielhaften Kalibrierungssequenz für die digitalen Werte, die gemäß einiger Ausführungsformen der Erfindung in die Verzögerungssteuerregister des Speichercontrollers von Fig. 904 zu programmieren sind. Die Steuerregister, die durch die beispielhafte Kalibrierungssequenz von 10A bis 10D beeinflußt. werden, sind:
    • a) das „Data-Out-Verzögerungssteuerregister” – das Ausgabeverzögerungs-Steuerregister für die Ausgabekanäle des Speichercontrollers 904, die die MDOUT-Signale an die Speicher 920 ausgeben (deren Kalibrierung in 10A beschrieben ist);
    • b) das „Data-In-Verzögerungssteuerregister” – das Eingabeverzögerungs-Steuerregister für die Eingabekanäle des Speichercontrollers 904, die die DMIN-Signale an die Speicher 920 empfangen (deren Kalibrierung in 10B beschrieben ist);
    • c) das „Adressenverzögerungs-Steuerregister” – das Ausgabeverzögerungs-Steuerregister für die Ausgabekanäle des Speichercontrollers 904, die die Adressensignale an die Speicher 922 ausgeben (deren Kalibrierung in 10C beschrieben ist);
    • d) das „erste Chipauswahl-Steuerregister” – das Ausgabeverzögerungs-Steuerregister für die Ausgabekanäle des Speichercontrollers 904, die die Chipauswahlsignale an die Speicher 926 zu den Speichergeräten 906 ausgeben (deren Kalibrierung in 10D beschrieben ist);
    • e) das „zweite Chipauswahl-Steuerregister” – das Ausgabeverzögerungs-Steuerregister für die Ausgabekanäle des Speichercontrollers 904, die die Chipauswahlsignale an die Speicher 927 zu den Speichergeräten 907 ausgeben (deren Kalibrierung in 10D beschrieben ist);
  • Wenn die Sequenz der 10A bis 10D während der Erzeugung eines Produktions-BIOS aufgerufen wird (wie in 5), sind die Register bereits von Prozessor 903 mit Werten aus den Verweistabellen im BIOS-Gerät 952 programmiert, wobei die Werte durch Prozessor 903 aus den Tabellen gemäß der Konfigurationsinformation 936 und 937 ausgewählt wurden, die in den Speichern gespeichert ist, wie etwa, zum Beispiel, EEPROM, Flashspeicher und ähnliche. Wenn zum Beispiel die Speicherbank 916 und/oder die Speicherbank 917 ein DIMM-Speicher sind, kann das Protokoll, das verwendet wird, um die Konfigurationsinformation 936 und 937 zu lesen, das Serial-Presence-Detect-(SPD)-Protokoll sein.
  • Ähnlich sind, wenn die Sequenz der 10A bis 10D während der Inbetriebnahme-Kalibrierung oder der wiederkehrenden Kalibrierung aufgerufen wird, um Veränderungen zu kompensieren (wie in 6), die Register bereits programmiert, entweder mit Werten aus den Verweistabellen im BIOS-Gerät 952, die gemäß der Konfigurationsinformation 936 und 937 ausgewählt wurden, oder mit Werten, die durch einen vorherigen Aufruf an die Kalibrierungssequenz aus den 10A bis 10D bestimmt wurden.
  • Ein Kalibrierungsalgorithmus kann für den Wert des „Data-Out-Verzögerungssteuerregisters” durchgeführt werden, wobei die Verzögerungssteuerregister des Speichercontrollers 904 in die Standardwerte (-1000-) programmiert werden können, und die Memory-Data-Out-Signale (MDOUT) an die Speichergeräte 906 gesendet werden (-1002-). Ein beispielhafter Kalibrierungsalgorithmus wird im Vorstehenden mit Bezug auf 8 beschrieben. Wie im Vorstehenden mit Bezug auf 8 erläutert, kann der Kalibrierungsalgorithmus einen oder mehrere Werte für das „Data-Out-Verzögerungssteuerregister” bestimmen, bei denen die Eingabekanäle der Speichergeräte 906 die logischen Ebenen der MDOUT-Signale an die Leiter 920 korrekt samplen.
  • Die Verzögerungssteuerregister des Speichercontrollers 904 können zu den Standardwerten (-1004-) programmiert werden. Der Kalibrierungsalgorithmus kann für den Wert des „Data-Out-Verzögerungssteuerregisters” wiederholt werden, wobei dieses Mal die Memory-Data-Out-Signale (MDOUT) an die Speichergeräte 907 (-1006-) gesendet werden Dieses Mal kann der Kalibrierungsalgorithmus einen oder mehrere Werte für das „Data-Out-Verzögerungssteuerregister” bestimmen, bei denen die Eingabekanäle der Speichergeräte 907 die logischen Ebenen der MDOUT-Signale an die Leiter 920 korrekt samplen.
  • Wenn einige der Werte, die durch den Kalibrierungsalgorithmus in -1002- und- 1006- bestimmt wurden, überlappende Regionen von Werten definieren, für die die Tests des Algorithmus bestehen, dann kann der kalibrierte Wert für das „Data-Out-Verzögerungssteuerregister” als der Mittelwert dieser überlappenden Werte ausgewählt werden (-1008-).
  • Das „Data-Out-Verzögerungssteuerregister” kann dann mit dem kalibrierten Wert programmiert werden, und die anderen Verzögerungssteuerregister können mit den Standardwerten programmiert werden (-1010-).
  • Ein Kalibrierungsalgorithmus kann für den Wert des „Data-In-Verzögerungssteuerregisters” durchgeführt werden, wobei Memory-Data-In-Signale (MDIN) von den Speichergeräten 906 empfangen werden (-1012-). Der Kalibrierungsalgorithmus kann einen oder mehrere Werte für das „Data-In-Verzögerungssteuerregister” bestimmen, bei denen die Eingabekanäle des Speichercontrollers 904 die logischen Ebenen der MDIN-Signale an die Leiter 920 von den Speichergeräten 906 korrekt samplen.
  • Das „Data-Out-Verzögerungssteuerregister” kann dann mit dem kalibrierten Wert programmiert werden, und die anderen Verzögerungssteuerregister können mit den Standardwerten programmiert werden (-1014-). Der Kalibrierungsalgorithmus kann für den Wert des „Data-In-Verzögerungssteuerregisters” wiederholt werden, wobei dieses Mal die Memory-Data-In-Signale (MDIN) von den Speichergeräten 907 (-1016-) empfangen werden. Dieses Mal kann der Kalibrierungsalgorithmus einen oder mehrere Werte für das „Data-In-Verzögerungssteuerregister” bestimmen, bei denen die Eingabekanäle der Speichercontroller 904 die logischen Ebenen der MDIN-Signale an die Leiter 920 von den Speichergeräten 907 korrekt samplen.
  • Wenn einige der Werte, die durch den Kalibrierungsalgorithmus in -1012- und- 1016- bestimmt wurden, überlappende Regionen von Werten definieren, für die die Tests des Algorithmus bestehen, dann kann der kalibrierte Wert für das „Data-In-Verzögerungssteuerregister” als der Mittelwert überlappenden Werte ausgewählt werden (-1018-).
  • Das „Data-Out-Verzögerungssteuerregister” und das „Data-In-Verzögerungssteuerregister” kann dann mit den kalibrierten Werten programmiert werden, und die anderen Verzögerungssteuerregister können mit den Standardwerten programmiert werden (-1020-).
  • Ein Kalibrierungsalgorithmus kann für den Wert des Adressen-Verzögerungssteuerregister (-1022-) durchgeführt werden. Der Kalibrierungsalgorithmus kann einen oder mehrere Werte für das „Adressen-Verzögerungssteuerregister” bestimmen, bei dem die Eingabekanäle der Speichergeräte 906 die logischen Ebenen der Adressensignale an die Leiter 9 korrekt samplen.
  • Das „Data-Out-Verzögerungssteuerregister” und das „Data-In-Verzögerungssteuerregister” können dann mit den kalibrierten Werten programmiert werden, und die anderen Verzögerungssteuerregister können mit den Standardwerten programmiert werden (-1024-).
  • Der Kalibrierungsalgorithmus kann für den Wert des „Adressen-Verzögerungssteuerregisters” wiederholt werden, wobei dieses Mal die Adressensignale von den Speichergeräten 907 (-1026-) empfangen werden. Dieses Mal kann der Kalibrierungsalgorithmus einen oder mehrere Werte für das „Adressen-Verzögerungssteuerregister” bestimmen, bei dem die Eingabekanäle der Speichergeräte 907 die logischen Ebenen der Adressensignale an die Leiter 922 korrekt samplen.
  • Wenn einige der Werte, die durch den Kalibrierungsalgorithmus in -1022- und- 1026- bestimmt wurden, überlappende Regionen von Werten definieren, für die die Tests des Algorithmus bestehen, dann kann der kalibrierte Wert für das „Adressen-Verzögerungssteuerregister” als der Mittelwert dieser überlappenden Werte ausgewählt werden (-1028-).
  • Das „Data-Out-Verzögerungssteuerregister” und das „Data-In-Verzögerungssteuerregister” und das „Adressen-Verzögerungssteuerregister” können dann mit den kalibrierten Werten programmiert werden, und die anderen Verzögerungssteuerregister können mit den Standardwerten programmiert werden (-1030-).
  • Ein Kalibrierungsalgorithmus kann für den Wert des „ersten Chipauswahlverzögerungs-Steuerregisters” (-1032-) durchgeführt werden. Der Kalibrierungsalgorithmus kann einen oder mehrere Werte für das „erste Chipauswahl-Verzögerungssteuerregister” bestimmen, bei dem die Eingabekanäle der Speichergeräte 906 die logischen Ebenen der Chipauswahlsignale an die Leiter 926 korrekt samplen. Der kalibrierte Wert für das „erste Chipauswahl-Verzögerungssteuerregister” kann als Mittelwert dieser Werte ausgewählt werden (-1034-).
  • Das „Data-Out-Verzögerungssteuerregister” und das „Data-In-Verzögerungssteuerregister” und das „Adressen-Verzögerungssteuerregister” und das „erste Chipauswahl-Verzögerungssteuerregister” können dann mit den kalibrierten Werten programmiert werden, und die anderen Verzögerungssteuerregister können mit den Standardwerten programmiert werden (-1036-).
  • Ein Kalibrierungsalgorithmus kann für den Wert des „zweiten Chipauswahlverzögerungs-Steuerregisters” (-1038-) durchgeführt werden. Der Kalibrierungsalgorithmus kann einen oder mehrere Werte für das „zweite Chipauswahl-Verzögerungssteuerregister” bestimmen, bei dem die Eingabekanäle der Speichergeräte 907 die logischen Ebenen der Chipauswahlsignale an die Leiter 927 korrekt samplen. Der kalibrierte Wert für das „zweite Chipauswahl-Verzögerungssteuerregister” kann als Mittelwert dieser Werte ausgewählt werden, und das „zweite Chipauswahl-Verzögerungssteuerregister” kann mit zu dem kalibrierten Wert programmiert werden (-1040-).
  • Wenn ein Test während der Ausführung eines Kalibrierungsalgorithmus fehlschlägt, kann der Fehlschlag berichtet werden (-1042-).
  • Verzögerungswerte und Goldene Muster für den beispielhaften Kalibrierungsalgorithmus
  • In einem Beispiel wurde der Kalibrierungsalgorithmus aus 8 aus der Kalibrierungssequenz der 10A bis 10D für die Vorrichtung aus 9 aufgerufen. In diesem Beispiel betrug die Frequenz des Taktes 924 133 MHz, auch wenn in anderen Beispielen die Frequenz andere Werte haben kann, wie zum Beispiel etwa 100 MHz, 166 MHz, 200 MHz, 266 MHz usw. Für den Fall, daß die Taktfrequenz 133 MHz ist, oszilliert Takt 924 mit einer Periode TPERIOD = 7,519 Nanosekunden. Wenn die Speicherbank 916 und die Speicherbank 917 DIMM-Speicher sind, kann der letzte Zeitpunkt, bei der ein MDIN-Signal an die Leiter 920, das von Speicherbank 916 oder Speicherbank 917 gesendet wird, nach einer steigenden Flanke von Takt 924 stabilisiert wird (max (TCO2 + TPLH2, TCO2 + TPHL2)) zum Beispiel, ungefähr 1,8 Nanosekunden bis ungefähr 4,2 Nanosekunden betragen, was einen Bereich von ungefähr 2,4 Nanosekunden darstellt. Der präzise Wert von (max (TCO2 + TPLH2, TCO2 + TPHL2)) kann zum Beispiel von der Anzahl und dem Typ der Speichergeräte 906 und der Speichergeräte 907 abhängen.
  • In diesem Beispiel können die Verzögerungen TPD2, die von der programmierbaren Verzögerungszelle der Eingabekanäle des Speichercontrollers 904 eingeführt wurden, die die MDIN-Signale an die Leiter 920 empfangen (gesteuert durch das „Data-In-Verzögerungssteuerregister” an Punkt -818- des Kalibrierungsalgorithmus aus 8) die folgenden Werte haben:
    Verzögerung (Picosekunden) Relative Verzögerung der Mitte (Picosekunden)
    0 –2000
    250 –1750
    500 –1500
    750 –1250
    1000 –1000
    1250 –750
    1500 –500
    1750 –250
    2000 0
    2250 250
    2500 500
    2750 750
    3000 1000
    3250 1250
    3500 1500
    3750 1750
    wobei eine Verzögerung TPD2 von 2000 Picosekunden der Mitte des erwarteten Bereichs für die Verzögerung TPD2 in etwa entspricht.
  • Überdies können in diesem Beispiel die Leiter 920 64 Leiter umfassen, wobei jeder Leiter ein Bit darstellt. Die 64 Bits der Leiter 920 sind in acht Bytes unterteilt, wobei jedes Byte acht Bits umfaßt, die von 0 bis 7 numeriert sind. Die Topologie der Leiter 920 kann so sein, daß Geräuschkopplung und Interferenz zwischen den Leitern, die zu verschiedenen Bytes gehören, im Wesentlichen gering sind. Daher kann jedes Byte separat auf Vorhaltezeitverletzungen und Nachhaltezeitverletzungen getestet werden.
  • Außerdem kann die Topologie der Leiter 920 so sein, daß für jedes Byte, das Bit mit der Nummer 3 dasjenige ist, das gegenüber Interferenz und Geräuschen am empfindlichsten ist, die von den übrigen Bits dieses Bytes gekoppelt werden.
  • Daher können die folgenden Goldenen Muster für die Durchführung von Belastungstests von Vorhaltezeitverletzungen und Nachhaltezeitverletzungen für eine Gruppe von Leitern verwendet werden, die ein Byte der Leiter 920 umfassen.
    Muster TAKT SCHREIBEN LESEN
    Bits 1 Bit Bits Bit
    7, 6, 5, 4, 2, 1, 0 3 7, 6, 5, 4, 2, 1, 0, 3
    VORHALTEZEIT 1 1 0
    2 0 1
    3 1 0 0 1
    4 0 1 1 0
    5 0 1 0 1
    6 1
    NACHHALTEZEIT 7 0 1
    8 0 0
    9 0 1 0 0
    10 0 0 0 1
  • In dem beispielhaften Belastungstest für Vorhaltezeitverletzungen sendet der Speichercontroller 904 ein Byte an Speichergerät 906 oder 907, wobei die Bits 7, 6, 5, 4, 2, 1 und 0 des Bytes den gleichen logischen Wert haben, der sich bei jedem der vier aufeinander folgenden Takte (Takte 1 bis 4) verändert, und Bit 3 des Bytes den entgegen gesetzten logischen Wert bei jedem der vier aufeinander folgenden Takte hat. Die Bits 7, 6, 5, 4, 2, 1 und 0 des Bytes können eine Menge Geräusch erzeugen, und der Test wird bestanden, wenn das Speichergerät 906 oder 907 Bit 3 bei jedem der Takte 3, 4 und 5 korrekt empfängt.
  • In dem beispielhaften vereinfachten Test für die Nachhaltezeitverletzungen bei den Takten 5 bis 10, sendet der Speichercontroller 904 einen unveränderlichen logischen Wert für die Bits 7, 6, 5, 4, 2, 1 und 0 des Bytes, um das System zu einzuregeln. Bei den Takten 5 bis 7 wird ein unveränderlicher entgegen gesetzter logischer Wert für das Bit gesendet, ebenfalls, um das System einzuregeln. Der logische Wert von Bit 3 wird dann in den Takten 8 und 9 verändert, und der Test wird bestanden, wenn das Speichergerät 906 oder 907 Bit 3 bei jedem der Takt 9 und 10 korrekt empfangt.
  • Programmierbare Verzögerungszelle
  • 11 ist eine vereinfachte schematische Illustration einer beispielhaften programmierbaren Verzögerungszelle 1100 in Übereinstimmung mit einigen Ausführungsformen der Erfindung.
  • Die programmierbare Verzögerungszelle 1100 kann verwendet werden, um die programmierbare Verzögerungszelle 26 und/oder die programmierbare Verzögerungszelle 42 aus 1 zu implementieren.
  • Die programmierbare Verzögerungszelle 1100 kann ein Eingabesignal 1102, die Steuersignale 1106, 1108, 1110, 1112 und 1128 empfangen, und kann ein Ausgabesignal 1104 generieren. Die programmierbare Verzögerungszelle 1100 kann die logische Ebene von Signal 1102 kontinuierlich samplen, und kann kontinuierlich logische Ebenen an ein Signal 1104 ausgeben, die im Wesentlichen gleich der logischen Ebenen sind, die auf Signal 1102 gesampled werden. Wenn eine Veränderung in der logischen Ebene von Signal 1102 auftritt, kann sich die logische Ebene von Signal 1104 dementsprechend nach einer Zeitverzögerung TPD verändern.
  • Die Zeitverzögerung TPD kann innerhalb eines Zeitbereichs programmierbar sein, und kann auf eine von sechzehn Zeitverzögerungen, gemäß den digitalen Werten der Steuersignale 1106, 1108, 1110 und 1112, gesetzt werden. Überdies kann das Steuersignal 1128 die kontinuierliche oder feinkörnige Abstimmung der Zeitverzögerung TPD ermöglichen, ausgewählt durch die Steuersignale 1106, 1108, 1110 und 1112. Zum Beispiel kann das Steuersignal 1128 so verwendet werden, daß die Zeitverzögerung TPD näher an einem gewünschten Wert sein wird. In einem anderen Beispiel kann das Steuersignal 1128 verwendet werden, um Korrekturen bei der Zeitverzögerung TPD anzuwenden, wenn es von einem gewünschten Wert abweicht, aufgrund, zum Beispiel irgendeiner, oder irgendeiner Kombination der folgenden Faktoren: Schwankungen bei der Versorgungsspannung, Schwankungen bei der Umgebungstemperatur und Schwankungen bei der Temperatur des Controllers 4. Die durch das Steuersignal 1128 angewendeten Korrekturen können als Antwort generiert werden, um ein Meßsystem (nicht gezeigt) zu bilden, um solche Schwankungen festzustellen.
  • Die programmierbare Verzögerungszelle 1100 kann einen Kondensator 1150 umfassen. Wie im Folgenden erläutert wird, können die digitalen Werte der Steuersignale 1106, 1108, 1110 und 1112 die Zeitverzögerung TPD setzen, indem sie die Impedanz eines Schaltkreises steuern, der einen Kondensator 1150 lädt und entlädt. Überdies kann das Steuersignal 1128 die Zeitverzögerung TPD anpassen, indem es die Impedanz des Schaltkreises steuert, der den Kondensator 1150 lädt.
  • Die programmierbare Verzögerungszelle 1100 kann einen Schalttransistor 1114, einen Schalttransistor 1116, einen variablen Impedanztransistor 1118 und einen Inverter 1120 umfassen.
  • Der Inverter 1120 kann ein Eingabesignal 1102 empfangen und kann ein Signal 1122 ausgeben, das eine logische Ebene hat, die von der logischen Ebene von Signal 1102 umgekehrt wird.
  • Wenn die logische Ebene des Eingabesignals 1102 logisch „0” ist, kann die logische Ebene des Signals 1122 logisch „1” sein, und der Leiter 1124 kann an einen niedrigen Versorgungspegel 1140 über eine im Wesentlichen niedrige Impedanz ZL gekoppelt werden, die von dem Schalttransistor 1114 präsentiert wird, und an einen hohen Versorgungspegel VCCC über eine im Wesentlichen hohe Impedanz ZZ, die von dem Schalttransistor 1116 präsentiert wird, wodurch Leiter 1124 und Leiter 1126 praktisch entkoppelt werden.
  • Wenn die logische Ebene des Eingabesignals 1102 logisch „1” ist, kann die logische Ebenen von Signal 1122 logisch „0” sein, und Leiter 1124 kann an den niedrigen Versorgungspegel 1140 über eine im Wesentlichen hohe Impedanz ZH gekoppelt sein, die von dem Schalttransistor 1114 präsentiert wird, und an einen hohen Versorgungspegel VCCC über eine im Wesentlichen niedrige Impedanz ZH, die von dem Schalttransistor 1116 präsentiert wird, und eine Impedanz ZY, die von dem Steuersignal 1128 bestimmt wird, und von dem variablen Impedanztransistor 1118 präsentiert wird.
  • Um jedoch die Erläuterung zu Vereinfachen kann, wenn Impedanz ZZ im Wesentlichen höher ist als die Impedanzen ZL und ZH, die Impedanz ZZ als infinite Impedanz approximiert werden. Folglich kann, unter Verwendung dieser Approximation, wenn die logische Ebene des Eingabesignals 1102 logisch „0” ist, Leiter 1124 an den niedrigen Versorgungspegel 1140 über die im Wesentlichen niedrige Impedanz ZL gekoppelt sein, die von dem Schalttransistor 1114 präsentiert wird, und wenn die logische Ebene des Eingabesignals 1102 logisch „1” ist, kann der Leiter 1124 an den hohen Versorgungspegel VCCC über die im Wesentlichen niedrige Impedanz ZH gekoppelt sein, die von dem Schalttransistor 1116 präsentiert wird, und die Impedanz ZY, die von dem variablen Impedanztransistor 1118 präsentiert wird.
  • Die programmierbare Verzögerungszelle 1100 kann Durchgangsgatter 1130, 1132, 1134 und 1136 umfassen. Die Durchgangsgatter 1130, 1132, 1134 und 1136 können die Steuersignale 1106, 1108, 1110 bzw. 1112 als Eingabe empfangen. Wenn die logische Ebene eines dieser Steuersignale logisch „0” ist, kann das entsprechende Durchgangsgatter den Leiter 1124 an den Kondensator 1150 mit der im Wesentlichen hohen Impedanz ZZ koppeln, und somit den Leiter 1124 vom Kondensator 1150 entkoppeln. Wenn die logische Ebene einer dieser Steuersignale logisch „1” ist, kann das entsprechende Durchgangsgatter Leiter 1124 an den Kondensator 1150 mit einer im Wesentlichen niedrigen Impedanz koppeln, zum Beispiel Z1 für Durchgangsgatter 130, Z2 für Durchgangsgatter 132, Z3 für Durchgangsgatter 134 und Z4 für Durchgangsgatter 136. In einem Beispiel kann die Impedanz Z2 zwei Mal die Impedanz Z1 sein, Impedanz Z3 kann zwei Mal die Impedanz Z2 sein und Impedanz Z4 kann zwei Mal die Impedanz Z3 sein.
  • Der Durchschnittsfachmann wird erkennen, daß der Leiter 1124 an den Kondensator 1150 mit einer Impedanz ZPASS gekoppelt ist, die eine Kombination von Impedanzen ist, wobei die Durchgangsgatter 1130, 1132, 1134 und 1136 den Leiter 1124 an den Kondensator 1150 koppeln (Z1, Z2, Z3, Z4 und ZZ). Überdies kann ZPASS gemäß der Kombination der logischen Ebenen der Steuersignale 1106, 1108, 1110 und 1112 einen von sechzehn Werten haben.
  • Wenn das Eingabesignal 1102 von einer logischen Ebene „0” zu einer logischen Ebene „1” assertiert wird, wird elektrischer Strom von dem hohen Versorgungspegel VCCC über die Impedanzen ZY, ZH und ZPASS an den Kondensator 1150 fließen. Folglich kann die Spannungsebene an Kondensator 1150 und an Leiter 1124 relativ zum niedrigen Versorgungspegel steigen. Wenn die Spannung an Leiter 1124 gleich oder höher als eine vordefinierte erste Schwelle wird, kann das Ausgabesignal 1104 als eine logische Ebene „1” habend, betrachtet werden. Die Zeitverzögerung TPD, die durch die Assertion des Eingabesignals 1102 zur Spannung an Leiter 1124 gleich oder höher als eine vordefinierte erste Schwelle wird, kann mindestens teilweise durch die Kapazität des Kondensators 1150 durch die Spannungsebene des hohen Versorgungspegels VCCC relativ zum niedrigen Versorgungspegel, und durch die Werte der Impedanzen ZY, ZH und ZPASS beeinflußt werden.
  • Wenn das Eingabesignal 1102 von der logischen Ebene „1” zu einer logischen Ebene „0” deassertiert wird, wird elektrischer Strom von Kondensator 1150 an den niedrigen Versorgungspegel 1140 über die Impedanzen ZPASS und ZL fließen. Folglich kann die Spannungsebene an Kondensator 1150 und an Leiter 1124 relativ zum niedrigen Versorgungspegel sinken. Wenn die Spannungsebene an Leiter 1124 gleich oder höher als eine redefinierte zweite Schwelle wird, kann das Ausgabesignal 1104 als eine logische Ebene „0” habend, betrachtet werden. Die Zeitverzögerung, die durch die Deassertion des Eingabesignals 1102 zur Spannung an Leiter 1124, gleich oder niedriger als eine redefinierte zweite Schwelle wird, kann, mindestens teilweise, durch die Kapazität des Kondensators 1150 und durch die Werte der Impedanzen ZH und ZPASS beeinflußt werden.
  • Während gewisse Merkmale der Erfindung hier illustriert und beschrieben wurden, werden dem Durchschnittsfachmann jetzt viele Modifikationen, Substitutionen, Veränderungen und Äquivalente einfallen. Es versteht sich daher, daß beabsichtigt ist, daß die beigefügten Ansprüche alle diese Modifikationen und Veränderungen abdecken, die unter den echten Geist der Erfindung fallen.

Claims (20)

  1. Controller (4), umfassend: einen Ausgabepuffer (28), um ein elektrisches Signal auf einem Leiter (8) zu generieren, der an den Controller (4) gekoppelt ist; und eine programmierbare Verzögerungszelle (1100, 26), die an den Ausgabepuffer (28) gekoppelt ist, wobei die programmierbare Verzögerungszelle (1100, 26) mindestens beinhaltet: einen Leiter (1124), der an eine Ausgabe der programmierbaren Verzögerungszelle (26, 1100) gekoppelt ist; einen Schalttransistor (1116), der mit dem Leiter (1124) gekoppelt ist; drei oder mehr Durchgangsgatter (1130, 1132, 1134 und 1136), die parallel geschaltet sind, wobei ein erster Anschluss jedes der drei oder mehr Durchgangsgatter mit dem Leiter (1124) gekoppelt ist und ein zweiter Anschluss jedes der drei oder mehr Durchgangsgatter mit einem Kondensator (1150) gekoppelt ist, der mit einem niedrigen Versorgungspegel (1140) gekoppelt ist; und einen variablen Impedanztransistor (1118), der mit einem hohen Versorgungspegel (VCCC) und einem Source-Anschluss des Schalttransistors (1116) gekoppelt ist, so dass ein Drain-Anschluss des Schalttransistors (1116) nicht zwischen dem Source-Anschluss des Schalttransistors (1116) und dem Drain-Anschluss des variablen Impedanztransistors (1118) liegt, wobei eine Impedanz des variablen Impedanztransistors (1118) durch ein Steuersignal (1128) gesteuert wird.
  2. Controller (4) nach Anspruch 1, wobei das Steuersignal (1128) in Antwort auf eine Ausgabe eines Systems gesetzt wird, um Veränderungen beim Verhalten des Controllers (4) zu messen, wobei die Veränderungen, mindestens teilweise, aus Schwankungen einer Versorgungsspannung an dem Controller (4), Schwankungen einer Umgebungstemperatur und Schwankungen einer Temperatur des Controllers (4) resultieren.
  3. Controller (4) nach Anspruch 1, ferner umfassend: ein Register (14), das an die programmierbare Verzögerungszelle (26, 1100) gekoppelt ist, um einen Wert zu speichern, der eine Zeitverzögerung bestimmt, die von der programmierbaren Verzögerungszelle (26, 1100) eingeführt wird.
  4. Controller (4) nach Anspruch 3, ferner umfassend: einen Speicher (62), um einen oder mehrere Werte zur Programmierung des Registers (14) zu speichern.
  5. Controller (4) nach Anspruch 1, wobei der Controller (4) ein Speichercontroller ist.
  6. Controller (4) nach Anspruch 1, ferner umfassend: ein oder zwei Register (16), die an den Ausgabepuffer (28) gekoppelt sind, um einen ersten Wert zu speichern, der die Quell-Ansteuerungsimpedanz des Ausgabepuffers (28) bestimmt, und einen zweiten Wert zu speichern, der die Senken-Ansteuerungsimpedanz des Ausgabepuffers (28) bestimmt.
  7. Controller (4), umfassend: einen Eingabepuffer (40), um ein elektrisches Signal von einem Leiter (10) zu empfangen, der an den Controller (4) gekoppelt ist; und eine programmierbare Verzögerungszelle (42), die an den Eingabepuffer (40) gekoppelt ist, wobei die programmierbare Verzögerungszelle (42) mindestens beinhaltet: einen Kondensator (1150), der an einen niedrigen Versorgungspegel (1140) gekoppelt ist; einen Leiter (1124), der an eine Ausgabe der programmierbaren Verzögerungszelle (42) gekoppelt ist; und drei oder mehr Durchgangsgatter (1130, 1132, 1134, 1136), die parallel zueinander gekoppelt sind, wobei ein erster Anschluss jedes der drei oder mehr Durchgangsgatter mit dem Leiter (1124) gekoppelt ist, und ein zweiter Anschluss jedes der drei oder mehr Durchgangsgatter mit dem Kondensator (1150) gekoppelt ist, wobei Impedanz jedes der Durchgangsgatter durch ein unabhängiges Steuersignal (1106, 1108, 1110 und 1112) gesteuert wird, so dass eine kombinierte Impedanz der Durchgangsgatter durch wenigstens drei Steuersignale gesteuert wird.
  8. Controller (4) nach Anspruch 7, ferner umfassend: ein Register (13), das an die programmierbare Verzögerungszelle (42) gekoppelt ist, um einen Wert zu speichern, der eine Zeitverzögerung bestimmt, die von der programmierbaren Verzögerungszelle (42) eingeführt wird.
  9. Controller (4) nach Anspruch 8, ferner umfassend: einen Speicher (62), um einen oder mehrere Werte zur Programmierung des Registers (13) zu speichern.
  10. Controller (4) nach Anspruch 7, wobei der Controller (4) ein Speichercontroller ist.
  11. Controller (4), umfassend: einen Eingabepuffer (40), um ein elektrisches Signal von einem Leiter (10) zu empfangen, der an den Controller (4) gekoppelt ist; und eine programmierbare Verzögerungszelle (42), die an den Eingabepuffer (40) gekoppelt ist, wobei die programmierbare Verzögerungszelle (42) mindestens beinhaltet: einen Leiter (1124), der an eine Ausgabe der programmierbaren Verzögerungszelle (42) gekoppelt ist; einen Schalttransistor (1116), der mit dem Leiter (1124) gekoppelt ist; drei oder mehr Durchgangsgatter (1130, 1132, 1134 und 1136), die parallel geschaltet sind, wobei ein erster Anschluss jedes der drei oder mehr Durchgangsgatter mit dem Leiter (1124) gekoppelt ist und ein zweiter Anschluss jedes der drei oder mehr Durchgangsgatter mit einem Kondensator (1150) gekoppelt ist, der mit einem niedrigen Versorgungspegel (1140) gekoppelt ist; und einen variablen Impedanztransistor (1118), der mit einem hohen Versorgungspegel (VCCC) und einem Source-Anschluss des Schalttransistors (1116) gekoppelt ist, so dass ein Drain-Anschluss des Schalttransistors (1116) nicht zwischen dem Source-Anschluss des Schalttransistors (1116) und dem Drain-Anschluss des variablen Impedanztransistors (1118) liegt, wobei eine Impedanz des variablen Impedanztransistors (1118) durch ein Steuersignal (1128) gesteuert wird.
  12. Controller (4) nach Anspruch 11, wobei das Steuersignal (1128) in Antwort auf eine Ausgabe eines Systems gesetzt wird, um Veränderungen beim Verhalten des Controllers (4) zu messen, wobei die Veränderungen, mindestens teilweise, aus Schwankungen einer Versorgungsspannung an dem Controller (4), Schwankungen einer Umgebungstemperatur und Schwankungen einer Temperatur des Controllers (4) resultieren.
  13. Controller (4) nach Anspruch 11, ferner umfassend: ein Register (13), das an die programmierbare Verzögerungszelle (42) gekoppelt ist, um einen Wert zu speichern, der eine Zeitverzögerung bestimmt, die von der programmierbaren Verzögerungszelle (42) eingeführt wird.
  14. Controller (4) nach Anspruch 13, ferner umfassend: einen Speicher (62), um einen oder mehrere Werte zur Programmierung des Registers (13) zu speichern.
  15. Controller (4) nach Anspruch 11, wobei der Controller (4) ein Speichercontroller ist.
  16. Gedruckte Schaltung, umfassend: einen Grafikchip (5); einen Controller U (4), der mindestens eine programmierbare Verzögerungszelle (26, 42) beinhaltet, wobei die programmierbare Verzögerungszelle (26, 42) mindestens beinhaltet: einen Kondensator (1150), der an einen niedrigen Versorgungspegel (1140) gekoppelt ist; einen Leiter (1124), der an eine Ausgabe der programmierbaren Verzögerungszelle (26, 42) gekoppelt ist; und drei oder mehr Durchgangsgatter (1130, 1132, 1143, 1136), die parallel zueinander gekoppelt sind, wobei ein erster Anschluss jedes der drei oder mehr Durchgangsgatter mit dem Leiter (1124) gekoppelt ist, und ein zweiter Anschluss jeder der drei oder mehr Durchgangsgatter mit dem Kondensator (1150) gekoppelt ist, wobei Impedanz jedes der Durchgangsgatter durch ein unabhängiges Steuersignal (1106, 1108, 1110, 1112) gesteuert wird, so dass eine kombinierte Impedanz der Durchgangsgatter durch wenigstens drei Steuersignale gesteuert wird.
  17. Gedruckte Schaltung nach Anspruch 16, wobei die programmierbare Verzögerungszelle (26, 42) ferner beinhaltet: einen variablen Impedanztransistor (1118), der an einen hohen Versorgungspegel (VCCC) und an den Leiter (1124) gekoppelt ist, wobei eine Impedanz des variablen Impedanztransistors (1118) durch ein Steuersignal (1128) zu bestimmen ist.
  18. Gedruckte Schaltung, umfassend: einen Grafikchip (5); einen Controller (4), der mindestens eine programmierbare Verzögerungszelle (26, 42) beinhaltet, wobei die programmierbare Verzögerungszelle (26, 42) mindestens beinhaltet: einen Leiter, der an eine Ausgabe der programmierbaren Verzögerungszelle (26, 42) gekoppelt ist; einen Schalttransistor (1114), der mit dem Leiter (1124) gekoppelt ist; drei oder mehr Durchgangsgatter (1130, 1132, 1134, 1136), die parallel zueinander gekoppelt sind, wobei ein erster Anschluss jedes der drei oder mehr Durchgangsgatter mit dem Leiter (114) gekoppelt ist, und ein zweiter Anschluss jedes der drei oder mehr Durchgangsgatter mit einem Kondensator (1150) gekoppelt ist, der mit einem niedrigen Versorgungspegel (1140) gekoppelt ist; und einen variablen Impedanztransistor (1118), der an einen hohen Versorgungspegel (VCCC) und an einen Source-Anschluss des Schalttransistors (1114) gekoppelt ist, so dass ein Drain-Anschluss des Schalttransistors (1114) nicht zwischen dem Source-Anschuss des Schalttransistors (1116) und dem Drain-Anschluss des variablen Impedanztransistors (1118) liegt, wobei eine Impedanz des variablen Impedanztransistors (1118) durch ein Steuersignal (1128) zu bestimmen ist.
  19. Gedruckte Schaltung nach Anspruch 18, wobei das Steuersignal (1128) in Antwort auf eine Ausgabe eines Systems gesetzt wird, um Veränderungen beim Verhalten des Controllers (4) zu messen, wobei die Veränderungen, mindestens teilweise, aus Schwankungen einer Versorgungsspannung an dem Controller (4), Schwankungen einer Umgebungstemperatur und Schwankungen einer Temperatur des Controllers (4) resultieren.
  20. Gedruckte Schaltung nach Anspruch 18, wobei das Steuersignal (1128) ein kontinuierliches Signal ist.
DE112004003057T 2003-10-16 2004-10-14 Controller und gedruckte Schaltung umfassend einen Ein- oder Ausgabepuffer und eine programmierbare Verzögerungszelle zum Umsetzen von Taktverzögerungen Expired - Fee Related DE112004003057B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/685,418 US20050083095A1 (en) 2003-10-16 2003-10-16 Adaptive input/output buffer and methods thereof
US10/685,418 2003-10-16

Publications (2)

Publication Number Publication Date
DE112004003057A1 DE112004003057A1 (de) 2008-12-18
DE112004003057B4 true DE112004003057B4 (de) 2011-09-15

Family

ID=34465468

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112004003057T Expired - Fee Related DE112004003057B4 (de) 2003-10-16 2004-10-14 Controller und gedruckte Schaltung umfassend einen Ein- oder Ausgabepuffer und eine programmierbare Verzögerungszelle zum Umsetzen von Taktverzögerungen

Country Status (6)

Country Link
US (1) US20050083095A1 (de)
JP (1) JP2007509541A (de)
CN (3) CN1894679B (de)
DE (1) DE112004003057B4 (de)
TW (1) TWI341461B (de)
WO (1) WO2005038657A2 (de)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9009698B2 (en) * 2002-10-15 2015-04-14 Rpx Corporation System and method for providing computer upgrade information
US7529955B2 (en) * 2005-06-30 2009-05-05 Intel Corporation Dynamic bus parking
US8819474B2 (en) * 2009-04-03 2014-08-26 Intel Corporation Active training of memory command timing
TWI489718B (zh) * 2009-10-14 2015-06-21 Inventec Appliances Corp 儲存裝置及其運作方法
US8806093B2 (en) * 2010-04-01 2014-08-12 Intel Corporation Method, apparatus, and system for enabling a deterministic interface
US20140380000A1 (en) * 2013-06-20 2014-12-25 Silicon Motion, Inc. Memory controller and accessing system utilizing the same
KR102628533B1 (ko) * 2016-08-16 2024-01-25 에스케이하이닉스 주식회사 반도체장치 및 반도체시스템
CN108009372B (zh) * 2017-12-15 2020-07-31 中国科学院计算技术研究所 一种ddr内存虚拟写电平校准响应的方法
US11079946B2 (en) 2018-10-26 2021-08-03 Micron Technology, Inc. Write training in memory devices
CN109857684B (zh) * 2019-01-04 2020-11-06 烽火通信科技股份有限公司 通信设备板卡槽位地址和类型识别的装置、方法和系统
CN112035520A (zh) * 2019-06-03 2020-12-04 吕纪竹 一种实时判断流数据自身给定延迟重复性的方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5140554A (en) * 1990-08-30 1992-08-18 Texas Instruments Incorporated Integrated circuit fuse-link tester and test method
US6131149A (en) * 1997-06-04 2000-10-10 Oak Technology, Inc. Apparatus and method for reading data from synchronous memory with skewed clock pulses
US20020123853A1 (en) * 2001-03-02 2002-09-05 Simon Thomas D. Generating and using calibration information
US20020178391A1 (en) * 2001-04-02 2002-11-28 Kushnick Eric B. High resolution clock signal generator

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS54153565A (en) * 1978-05-24 1979-12-03 Nec Corp Semiconductor circuit using insulation gate type field effect transistor
FR2501813B1 (fr) * 1981-03-13 1986-06-13 Amiot Expl Procedes Felix Perfectionnements aux dispositifs pour accoupler selectivement a un arbre a entrainer deux organes entraineurs distincts
JPS5861629A (ja) * 1981-10-09 1983-04-12 Hitachi Ltd ビツトパタ−ン発生装置
US4584492A (en) * 1984-08-06 1986-04-22 Intel Corporation Temperature and process stable MOS input buffer
JPS61129916A (ja) * 1984-11-29 1986-06-17 Fujitsu Ltd 遅延回路
JPH0681018B2 (ja) * 1986-03-31 1994-10-12 三菱電機株式会社 半導体集積回路
JPH02195716A (ja) * 1989-01-25 1990-08-02 Nec Eng Ltd 半導体集積回路の論理ゲート回路
JPH02274121A (ja) * 1989-04-17 1990-11-08 Nec Corp Cmos遅延回路
JP2671516B2 (ja) * 1989-08-02 1997-10-29 日本電気株式会社 スキュー補正回路
DE69024582T2 (de) * 1989-10-06 1996-05-15 Sumitomo Metal Mining Co Stahllegierung zum Anwenden in spritzgegossenen pulvermetallurgisch hergestellten gesinterten Formkörpern
JPH0661810A (ja) * 1992-08-12 1994-03-04 Hitachi Ltd 可変遅延回路、及びこれを用いた半導体集積回路装置
JPH07115351A (ja) * 1993-10-19 1995-05-02 Hitachi Ltd 遅延回路およびそれを用いた信号処理回路、ならびにこの信号処理回路を内蔵した半導体集積回路装置
JPH08330921A (ja) * 1995-06-02 1996-12-13 Advantest Corp 可変遅延回路
JP3547854B2 (ja) * 1995-06-08 2004-07-28 株式会社ルネサステクノロジ 駆動電流調整機能付きバッファ回路
JPH09172356A (ja) * 1995-12-19 1997-06-30 Fujitsu Ltd 遅延回路及びデジタル位相ロック回路
US5847617A (en) * 1996-08-12 1998-12-08 Altera Corporation Variable-path-length voltage-controlled oscillator circuit
US6073259A (en) * 1997-08-05 2000-06-06 Teradyne, Inc. Low cost CMOS tester with high channel density
JPH11145800A (ja) * 1997-11-10 1999-05-28 Toshiba Corp Cmos型可変遅延回路及びその遅延時間の制御方法並びに半導体試験装置
JP3348432B2 (ja) * 1999-09-14 2002-11-20 日本電気株式会社 半導体装置および半導体記憶装置
US6731667B1 (en) * 1999-11-18 2004-05-04 Anapass Inc. Zero-delay buffer circuit for a spread spectrum clock system and method therefor
JP2002082830A (ja) * 2000-02-14 2002-03-22 Mitsubishi Electric Corp インターフェイス回路
TW498778U (en) * 2000-08-03 2002-08-11 Paokai Electronic Entpr Co Ltd Structure of frame for game machine
US6868504B1 (en) * 2000-08-31 2005-03-15 Micron Technology, Inc. Interleaved delay line for phase locked and delay locked loops
US6456126B1 (en) * 2001-05-25 2002-09-24 Xilinx, Inc. Frequency doubler with polarity control
JP2003050738A (ja) * 2001-08-03 2003-02-21 Elpida Memory Inc キャリブレーション方法及びメモリシステム
EP1294205A1 (de) * 2001-09-13 2003-03-19 Alcatel Mehrkanalige Zeitausrichtung in einem digitalen Signalprozessor und die zugehörige Methode
US6954134B2 (en) * 2001-09-28 2005-10-11 Alps Automotive, Inc. Apparatus and method for timing an output of a remote keyless entry system
US6605969B2 (en) * 2001-10-09 2003-08-12 Micron Technology, Inc. Method and circuit for adjusting the timing of ouput data based on an operational mode of output drivers
KR100507877B1 (ko) * 2002-03-28 2005-08-18 주식회사 하이닉스반도체 면적 축소용 알디엘엘 회로
JP3498741B2 (ja) * 2002-05-07 2004-02-16 株式会社日立製作所 可変遅延回路

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5140554A (en) * 1990-08-30 1992-08-18 Texas Instruments Incorporated Integrated circuit fuse-link tester and test method
US6131149A (en) * 1997-06-04 2000-10-10 Oak Technology, Inc. Apparatus and method for reading data from synchronous memory with skewed clock pulses
US20020123853A1 (en) * 2001-03-02 2002-09-05 Simon Thomas D. Generating and using calibration information
US20020178391A1 (en) * 2001-04-02 2002-11-28 Kushnick Eric B. High resolution clock signal generator

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
US 2002/0178391 A1 (im internationalen Recherchebericht genannt) *
US 61 31 149 A (im internationalen Recherchebericht genannt) *

Also Published As

Publication number Publication date
DE112004003057A1 (de) 2008-12-18
WO2005038657A3 (en) 2005-06-16
CN104978297A (zh) 2015-10-14
TW200525349A (en) 2005-08-01
CN104978297B (zh) 2019-06-28
CN102880582B (zh) 2016-04-27
JP2007509541A (ja) 2007-04-12
US20050083095A1 (en) 2005-04-21
CN1894679A (zh) 2007-01-10
CN102880582A (zh) 2013-01-16
TWI341461B (en) 2011-05-01
WO2005038657A2 (en) 2005-04-28
CN1894679B (zh) 2012-09-19

Similar Documents

Publication Publication Date Title
DE102012204991B4 (de) Speichereinrichtungen, Systeme und Verfahren unter Verwendung einer Befehls/Adressenkalibrierung
DE10110315C2 (de) Optimieren des Leistungsvermögens eines getakteten Systems durch Anpassen der Einstellungen der Taktsteuerung und der Taktfrequenz
DE60034788T2 (de) Verfahren und schaltung zur zeitlichen anpassung der steuersignale in einem speicherbaustein
DE10302128B3 (de) Pufferverstärkeranordnung
DE60221407T2 (de) Speichersystem und Speichersubsystem
DE10144247B4 (de) Halbleiterspeicherbauelement und zugehöriges Halbleiterspeichersystem
DE10245536B4 (de) Kalibrieren von Halbleitereinrichtungen mittels einer gemeinsamen Kalibrierreferenz
DE60207356T2 (de) System und Methode zur Anpassung der Kommunikation über Signalleitungen
DE10233865B4 (de) Speichermodul
DE112004003057B4 (de) Controller und gedruckte Schaltung umfassend einen Ein- oder Ausgabepuffer und eine programmierbare Verzögerungszelle zum Umsetzen von Taktverzögerungen
DE102006050103A1 (de) ZQ-Eichschaltung und Halbleitervorrichtung
DE3782775T2 (de) Integrierte halbleiterschaltung.
DE10149104B4 (de) Halbleiterbaustein zum Verarbeiten von Daten und Verfahren zum Erfassen eines Betriebszustandes
DE10312261A1 (de) Verzögerungsregelschleife, die einen variablen Spannungsregler aufweist
DE112021004180T5 (de) Speichersubsystemkalibrierung unter verwendung von ersatzergebnissen
DE102009004565A1 (de) Vorrichtung und Verfahren zum Zwischenspeichern von Daten zwischen Speichercontroller und DRAM
DE10246741B4 (de) Verfahren und Halbleitereinrichtung zum Abgleich von Schnittstelleneinrichtungen
DE102005030594A1 (de) Schaltung und Verfahren zum Einstellen einer Schwellendrift über eine Temperatur bei einem CMOS-Empfänger
DE112021001262T5 (de) Versorgungsspannungs-auswahlschaltung
DE10121309B4 (de) Testschaltung zum Testen einer zu testenden Schaltung
DE602004007349T2 (de) Vorrichtung zur Bestimmung der Zugriffszeit und/oder der minimalen Zykluszeit eines Speichers
DE4336883C2 (de) Ausgangstreiberschaltung
DE19839105B4 (de) Integrierter Halbleiterspeicher mit Steuerungseinrichtung zum taktsynchronen Schreiben und Lesen
DE102005053294B4 (de) Schaltungsanordnung zur zeitlichen Verzögerung von Lesedaten, Halbleiterspeicherschaltung und Verfahren
DE102022116560A1 (de) Robuste schaltung für negative bitleitungserzeugung in sram-zellen

Legal Events

Date Code Title Description
AC Divided out of

Ref document number: 112004001971

Country of ref document: DE

Kind code of ref document: P

OP8 Request for examination as to paragraph 44 patent law
R018 Grant decision by examination section/examining division
R020 Patent grant now final

Effective date: 20111216

R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee