[go: up one dir, main page]

DE102011009800B4 - Selbstkalibrierende On-Chip-Verzögerungsüberwachungsschaltung - Google Patents

Selbstkalibrierende On-Chip-Verzögerungsüberwachungsschaltung Download PDF

Info

Publication number
DE102011009800B4
DE102011009800B4 DE102011009800.3A DE102011009800A DE102011009800B4 DE 102011009800 B4 DE102011009800 B4 DE 102011009800B4 DE 102011009800 A DE102011009800 A DE 102011009800A DE 102011009800 B4 DE102011009800 B4 DE 102011009800B4
Authority
DE
Germany
Prior art keywords
delay
delay line
circuit
programmable delay
programmable
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.)
Active
Application number
DE102011009800.3A
Other languages
English (en)
Other versions
DE102011009800A1 (de
Inventor
Thomas Baumann
Stefan Henzler
Peter Huber
Christian Pacha
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.)
Apple Inc
Original Assignee
Apple Inc
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 Apple Inc filed Critical Apple Inc
Publication of DE102011009800A1 publication Critical patent/DE102011009800A1/de
Application granted granted Critical
Publication of DE102011009800B4 publication Critical patent/DE102011009800B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03LAUTOMATIC CONTROL, STARTING, SYNCHRONISATION OR STABILISATION OF GENERATORS OF ELECTRONIC OSCILLATIONS OR PULSES
    • H03L7/00Automatic control of frequency or phase; Synchronisation
    • H03L7/06Automatic control of frequency or phase; Synchronisation using a reference signal applied to a frequency- or phase-locked loop
    • H03L7/08Details of the phase-locked loop
    • H03L7/081Details of the phase-locked loop provided with an additional controlled phase shifter
    • H03L7/0812Details of the phase-locked loop provided with an additional controlled phase shifter and where no voltage or current controlled oscillator is used
    • H03L7/0814Details of the phase-locked loop provided with an additional controlled phase shifter and where no voltage or current controlled oscillator is used the phase shifting device being digitally controlled
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K5/00Manipulating of pulses not covered by one of the other main groups of this subclass
    • H03K5/13Arrangements having a single output and transforming input signals into pulses delivered at desired time intervals
    • H03K5/135Arrangements having a single output and transforming input signals into pulses delivered at desired time intervals by the use of time reference signals, e.g. clock signals
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K5/00Manipulating of pulses not covered by one of the other main groups of this subclass
    • H03K2005/00013Delay, i.e. output pulse is delayed after input pulse and pulse length of output pulse is dependent on pulse length of input pulse
    • H03K2005/00019Variable delay
    • H03K2005/00058Variable delay controlled by a digital setting

Landscapes

  • Physics & Mathematics (AREA)
  • Nonlinear Science (AREA)
  • Semiconductor Integrated Circuits (AREA)
  • Pulse Circuits (AREA)

Abstract

Schaltungsanordnung, umfassend:ein Eingabe-Flipflop (202);eine programmierbare Verzögerungslinie (120; 204), welche mit dem Eingabe-Flipflop (202) gekoppelt ist, wobei die programmierbare Verzögerungslinie (120; 204) eine Konfigurationseinheit (206) umfasst;einen Zeit-Digital-Wandler (122; 208), welcher mit der programmierbaren Verzögerungslinie (120; 204) gekoppelt ist, wobei der Zeit-Digital-Wandler (122; 208) wenigstens ein Verzögerungselement (210, 212, 214, 216, 218, 220, 222) umfasst, welches mit einem entsprechenden Abtast-Flipflop (224, 226, 228, 230, 232, 234, 236, 238) gekoppelt ist, wobei wenigstens ein Ausgangssignal des Abtast-Flipflops (224, 226, 228, 230, 232, 234, 236, 238) des Zeit-Digital-Wandler (122, 208) eine gemessene Verzögerung in der programmierbaren Verzögerungslinie (120; 204) repräsentiert; undeine Rückkopplungsschleife (124; 242), welche mit dem Zeit-Digital-Wandler (122; 208) und der Konfigurationseinheit (206) gekoppelt ist, wobei die Rückkopplungsschleife (124; 242) dazu ausgestaltet ist, die gemessene Verzögerung mit einem Zielwert zu vergleichen und abhängig von dem Vergleich wenigstens ein Eingangssignal an die Konfigurationseinheit (206) zu liefern.

Description

  • Informationen zu Pfadverzögerungen in integrierten Schaltungen können verwendet werden, um geeignete Versorgungsspannungseinstellungen zur Einsparung von Energie zu spezifizieren, während nach wie vor eine ausreichende Versorgungsspannung bereitgestellt wird, um Betriebserfordernisse zu erfüllen. Mit abnehmender Größe von MOS-Transistoren (MOS: „Metal-Oxide-Semiconductor“ bzw. Metall-Oxid-Halbleiter) sind Verzögerungen der Schaltungspfade von integrierten Schaltungen und Taktfrequenzen empfindlicher gegenüber vorübergehenden Variationen der Versorgungsspannung und Temperatur geworden. Die Größenabnahme von MOS-Transistoren hat auch zu einer Abnahme der den integrierten Schaltungen zugeführten Versorgungsspannungen geführt. Zum Beispiel kann für einen 32/28 nm CMOS-Technologieknoten (CMOS: „Complementary Metal Oxide Semiconductor“) die Versorgungsspannung, VDD, ungefähr 1 V sein, und für einen 22/20 nm CMOS-Technologieknoten kann VDD ungefähr 0,9 V sein. Die Versorgungsspannung von integrierten Schaltungen wird typischerweise von einem Versorgungsspannungsregler bereitgestellt, welcher auf demselben Chip wie die integrierten Schaltungen integriert sein kann oder auf einem separaten Chip bereitgestellt sein kann.
  • Die von einer integrierten Schaltung benötigte Versorgungsspannung kann sich ändern aufgrund von An/Aus-Zyklen von Subsystemen einer Computervorrichtung, Taktfrequenzänderungen und Auslastungsänderungen, wie z.B. Änderungen der unter Verwendung der integrierten Schaltung ausgeführten Anwendungen. Diese Arten von Versorgungsspannungsänderungen sind dazu gedacht, die Leistungsaufnahme von integrierten Schaltungen zu optimieren. Die gezielte Änderung der Versorgungsspannung, welche üblicherweise durch das von der integrierten Schaltung ausgeführte Betriebssystem veranlasst wird, ist bekannt als dynamische Spannungsskalierung oder adaptive Spannungsskalierung. Die von dem Betriebssystem veranlassten Versorgungsspannungsänderungen können die Energieaufnahme der integrierten Schaltung optimieren, indem die Taktfrequenz an den zeitlich variierenden tatsächlichen Leistungsbedarf einer spezifischen Anwendung angepasst wird.
  • Versorgungsspannungsänderungen können auch durch transiente Gesamtstromvariationen der integrierten Schaltung verursacht werden. Diese nicht beabsichtigten Gesamtstromvariationen können auch als ein IR-Abfall bezeichnet werden, weil die Gesamtstromvariation in eine Gesamtvariation der On-Chip-Versorgungsspannung umgesetzt wird. Zur Veranschaulichung ist die Versorgungsspannungsvariation, ΔV, ungefähr gegeben durch das Produkt der Gesamtvariation des Stroms, ΔI, und des Gesamtwiderstands der Summe aller Leitungen, welche den Versorgungsspannungsregler mit den Versorgungsanschlüssen der integrierten Schaltung verbinden, RSUM. Die Versorgungsspannungsänderungen aufgrund der transienten Gesamtstromvariationen kann bis zu 20 % der spezifizierten nominalen Versorgungsspannung betragen.
  • Mit abnehmender Versorgungsspannung für integrierte Schaltungen nimmt die Verzögerungsempfindlichkeit gegenüber Variationen der Versorgungsspannung zu. Zum Beispiel können nicht beabsichtigte Änderungen der Versorgungsspannung, welche von einer integrierten Schaltung benötigt wird, schneller auftreten als ein Versorgungsspannungsregler die Versorgungsspannung an die Änderungen anpassen kann. Mit anderen Worten kann die transiente Reaktion des Versorgungsspannungsreglers langsamer sein als die Zeitskala eines On-Chip-IR-Abfallereignisses. Somit kann die von der integrierten Schaltung benötigte Versorgungsspannung nicht gleich verfügbar sein, was eine Verzögerung in der Ausführung von Prozessen durch die integrierte Schaltung verursachen kann. Außerdem kann eine Unsicherheit in der Messung der Verzögerung von integrierten Schaltungen entstehen, weil der Versorgungsspannungsregler nicht in der Lage ist, den Änderungen der von der integrierten Schaltung benötigten Versorgungsspannung zu folgen.
  • Unsicherheit bei der Messung der Verzögerung eines Schaltungspfades einer integrierten Schaltung kann zu Schwierigkeiten bei der Bestimmung, ob der Zustand eines Chips kritisch ist (z.B. dass eine Timing-Verletzung auftritt oder bevorsteht), führen. Eine Timing-Verletzung kann definiert werden als ein Zustand, in welchem die Verzögerung eines geschwindigkeitskritischen Pfades einer integrierten Schaltung die Taktperiode der integrierten Schaltung überschreitet. Eine Timing-Verletzung kann zu einer vorübergehenden oder permanenten Fehlfunktion der integrierten Schaltung führen.
  • Bei einem speziellen Beispiel kann die Verzögerung eines geschwindigkeitskritischen Pfades von integrierten Schaltungen mit Pipelining, welche taktgesteuerte Flipflops oder Register umfassen, welche durch kombinatorische Logik mit ungefähr 10 - 50 CMOS-Logikstufen separiert sind, verschiedene Komponenten aufweisen. Zur Veranschaulichung kann die Verzögerung eines geschwindigkeitskritischen Pfades einer integrierten Schaltung mit Pipelining die Takt-Ausgang-Verzögerung eines ersten Dateneingabe-Flipflops, die Verzögerung der kombinatorischen Logik, eine Setup-Zeit eines zweiten Datenausgabe-Flipflops und eine Timing-Marge zur Abdeckung von Nichtidealitäten der Taktverteilung, wie z.B. Taktversatz oder Takt-Jitter, beinhalten. Jegliche räumliche und/oder zeitliche Variation dieser Timing-Parameter der integrierten Schaltung mit Pipelining kann eine Timing-Verletzung hervorrufen. In dieser Offenbarung kann der Taktversatz eine räumliche Variation der Ankunftszeit der Taktflanke an verschiedenen Flipflops aufgrund von Ungleichgewichten in der Taktverteilungsschaltung beinhalten, und der Takt-Jitter kann eine vorübergehende Variation der Ankunftszeit der Taktflanke an verschiedenen Flipflops beinhalten.
  • Timing-Verletzungen in integrierten Schaltungen können auch durch nicht beabsichtigte Temperaturvariationen hervorgerufen werden. Diese Temperaturvariationen können verursacht werden durch Aufheizen des Siliziumsubstrats aufgrund der Leistungsaufnahme der integrierten Schaltung. Temperaturvariationen können auch hervorgerufen werden, indem zusätzliche Leistung aufnehmende integrierte Schaltungen auf derselben Leiterplatte wie eine bestimmte integrierte Schaltung angebracht werden oder die zusätzlichen Leistung aufnehmenden integrierten Schaltungen und die bestimmte integrierte Schaltung innerhalb eines Gehäuses angeordnet werden, so dass die von den zusätzlichen Leistung aufnehmenden integrierten Schaltungen erzeugte Wärme sich auf die bestimmte integrierte Schaltung ausbreitet und die Temperatur erhöht. Temperaturvariationen können auf einer sehr viel langsameren Zeitskala auftreten als nicht beabsichtigte Spannungsvariationen. Zum Beispiel können Temperaturvariationen zwischen einigen Millisekunden und Sekunden auftreten, wohingegen nicht beabsichtigte Variationen der Versorgungsspannung zwischen 100 Picosekunden und ungefähr 10 Millisekunden auftreten.
  • Bei CMOS-Technologien können sowohl Temperatur- als auch Versorgungsspannungsvariationen die Geschwindigkeit der MOS-Transistoren ändern. Zum Beispiel reduzieren bei Versorgungsspannungen oberhalb von 1,1 V in einer 32/28 nm CMOS-Technologie steigende Temperaturen den Treiberstrom („Drive Current“) von MOS-Transistoren und reduzieren somit die Geschwindigkeit der CMOS-Schaltungen. Bei einem weiteren Beispiel erhöht bei Versorgungsspannungen unterhalb von 0,9 V in einer 32/28 nm CMOS-Technologie steigende Temperatur den Treiberstrom von MOS-Transistoren und erhöht somit die Geschwindigkeit der CMOS-Schaltungen. Die Wechselwirkungen von Temperatur- und Versorgungsspannungsvariationen sind während der Entwurfphase eines CMOS-Schaltungsdesigns a priori nicht vollständig bekannt. Daher können der Zielschaltungsgeschwindigkeit Sicherheitsmargen hinzugefügt werden. Außerdem können, um eine fehlerfreie oder im Wesentlichen fehlerfreie Funktionalität von integrierten Schaltungen für eine große Anzahl von möglichen Temperatur- und Versorgungsspannungszuständen zu ermöglichen, in der Entwurfphase Simulationen unter Annahme bestimmter Versorgungsspannungs- und Temperaturarbeitspunkte durchgeführt werden.
  • US 6 993 109 B2 beschreibt eine Taktrückgewinnungsschaltung und ein Verfahren zum Reduzieren elektromagnetischer Emission und Erhöhen einer erreichbaren Taktfrequenz umfassen einen Spreizspektrum-Taktgenerator, der ein Eingangstaktsignal empfängt und ein frequenzmoduliertes Taktsignal erzeugt.
  • WO 2008 / 156 289 A2 beschreibt eine Verzögerungszeit-Messschaltung und ein entsprechendes Verfahren.
  • Es besteht somit ein Bedarf für Technologien, welche eine effiziente Überwachung von Verzögerungen bei integrierten Schaltungen ermöglichen. Eine Aufgabe der vorliegenden Erfindung ist, diesem Bedarf gerecht zu werden.
  • Gemäß der vorliegenden Erfindung werden eine Schaltungsanordnung gemäß Anspruch 1, ein Verfahren gemäß Anspruch 9 sowie eine Vorrichtung gemäß Anspruch 18 bereitgestellt. Die abhängigen Ansprüche definieren Weiterbildungen der Erfindung.
  • Die Erfindung wird nachfolgend unter Bezugnahme auf die beigefügten Zeichnungen näher erläutert. In den Zeichnungen ist die Figur, in welcher ein Bezugszeichen als erstes auftritt, durch die linke Ziffer bzw. durch die linken Ziffern des Bezugszeichens gekennzeichnet. Die Verwendung desselben Bezugszeichens an verschiedenen Stellen der Beschreibung und der Figuren kann ähnliche oder identische Elemente bezeichnen.
    • 1 ist ein schematisches Diagramm eines Systems, welches eine Computervorrichtung beinhaltet, die eine integrierte Schaltung mit Verzögerungsüberwachungsschaltung aufweist.
    • 2 ist ein schematisches Diagramm einer Verzögerungsüberwachungsschaltung, welche einen Zeit-Digital-Wandler und eine Rückkopplungsschleife beinhaltet.
    • 3 ist ein schematisches Diagramm einer programmierbaren Verzögerungslinie einer Verzögerungsüberwachungsschaltung.
    • 4 ist ein schematisches Diagramm eines ersten Ausführungsbeispiels einer Auswertungsschaltung in einer Rückkopplungsschleife einer Verzögerungsüberwachungsschaltung.
    • 5 ist ein schematisches Diagramm eines zweiten Ausführungsbeispiels einer Auswertungsschaltung in einer Rückkopplungsschleife einer Verzögerungsüberwachungsschaltung.
    • 6 ist ein schematisches Diagramm eines dritten Ausführungsbeispiels einer Auswertungsschaltung in einer Rückkopplungsschleife einer Verzögerungsüberwachungsschaltung.
    • 7 ist ein Logikdiagramm eines Grenzzustanddetektors in einer Auswertungsschaltung einer Verzögerungsüberwachungsschaltung, welches zeigt, dass in einem Messmodus ein Fehler auftritt.
    • 8 ist ein Logikdiagramm eines Grenzzustanddetektors in einer Auswertungsschaltung einer Verzögerungsüberwachungsschaltung, welches zeigt, dass in einem Messmodus kein Fehler erfasst wurde.
    • 9 ist ein Timing-Diagramm, welches ein Beispiel zur Messung einer Verzögerung einer programmierbaren Verzögerungslinie einer Verzögerungsüberwachungsschaltung zeigt.
    • 10A veranschaulicht Werte von Ausgangssignalen von Abtast-Flipflops eines Zeit-Digital-Wandlers im Verhältnis zu Zielwerten der Ausgangssignale, welche anzeigen, dass in einem Kalibrierungsmodus die Verzögerung einer programmierbaren Verzögerungslinie ansteigt.
    • 10B veranschaulicht Werte von Ausgangssignalen von Abtast-Flipflops eines Zeit-Digital-Wandlers im Verhältnis zu Zielwerten der Ausgangssignale, welche anzeigen, dass in einem Kalibrierungsmodus die Verzögerung einer programmierbaren Verzögerungslinie abnimmt.
    • 11 veranschaulicht die Ausgangssignale von Abtast-Flipflops eines Zeit-Digital-Wandlers für eine kalibrierte programmierbare Verzögerungslinie und an vier unterschiedlichen Zeitpunkten in einem Messmodus.
    • 12 ist ein Flussdiagramm eines Verfahrens zur Verzögerungskalibrierung einer Verzögerungsüberwachungsschaltung.
  • Verzögerungsüberwachungsschaltungen können genutzt werden zur Minimierung oder Vermeidung von Timing-Verletzungen, welche durch Änderungen an der von einer integrierten Schaltung benötigen Versorgungsspannung und/oder durch Temperaturvariationen der integrierten Schaltung verursacht werden, indem die Verzögerung von Pfaden der integrierten Schaltung unter bestimmten Bedingungen abgeschätzt wird. Die Pfade der integrierten Schaltung können ein Dateneingabe-Master-Slave-Flipflop, welches mit einer kombinatorischen Logik verbunden ist, welche wiederum mit einem Datenempfang-Master-Slave-Flipflop verbunden ist, beinhalten. Die Master-Slave-Flipflops können getaktete Speicherelemente beinhalten, welche ihren Zustand nur an einer oder an beiden Taktflanken ändern.
  • In einigen Fällen kann die Verzögerungsüberwachungsschaltung in einen oder mehrere kritische Pfade der integrierten Schaltung integriert sein. Diese Art von Verzögerungsüberwachungsschaltung kann hierin auch als „In Situ“ Verzögerungsüberwachungsschaltung bezeichnet werden. Eine In-Situ-Verzögerungsüberwachungsschaltung kann eine größere Anzahl von Flipflops erfordern, wie z.B. 20.000 - 50.000, um eine Master-Slave-Flipflop-Anordnung des zu überwachenden Pfades zu ersetzen. Somit verbrauchen In-Situ-Verzögerungsüberwachungs-Flipflops eine größere Fläche der integrierten Schaltung als die Master-Slave-Flipflop-Anordnung. Außerdem kann der überwachte kritische Pfad nicht immer aktiv sein, wenn Daten zur Abschätzung der Verzögerung des Pfades gesammelt werden. Folglich kann die Genauigkeit von Abschätzungen für die Verzögerung des Pfades verringert sein.
  • Eine Verzögerungsüberwachungsschaltung kann auch außerhalb des Chips angeordnet sein. Zum Beispiel können während des Tests einer integrierten Schaltung Konfigurationseinstellungen für die integrierte Schaltung auf Grundlage von Testbedingungen bestimmt werden. Zur Veranschaulichung können Konfigurationseinstellungen bezüglich Taktbetrieb und Versorgungsspannungsregelung in einem Konfigurationsregister der integrierten Schaltung für eine Anzahl von Versorgungsspannungswerten und Taktfrequenzwerten, welche während des Tests des Chips ausgewertet wurden, gespeichert werden. Außerdem können die Konfigurationseinstellungen auf Grundlage von Betriebsvariationen der integrierten Schaltung, welche auftreten können, während der Chip in einem bestimmten Produkt genutzt wird, bestimmt werden. Die Marge für diese Konfigurationseinstellungen ist häufig groß, weil die tatsächliche Reaktion der integrierten Schaltung im Betrieb in einem Produkt nicht bekannt ist. Nachdem die integrierte Schaltung in einer Computervorrichtung angeordnet wurde, kann daher die Computervorrichtung während eines eingebauten Selbsttests (BIST: „Built-In Self Test“) Testsignale ablaufen lassen, um die Verzögerung von Pfaden der integrierten Schaltung zu messen und Taktbetrieb und Versorgungsspannung auf Grundlage der gemessenen Verzögerungen und der Konfigurationseinstellungen anzupassen. Der eingebaute Selbsttest wird jedoch nicht gleichzeitig mit dem normalen Betrieb der integrierten Schaltung ausgeführt, und während des eingebauten Selbsttests bestimmte Konfigurationseinstellungen können unter Umständen den Bedingungen während der tatsächlichen Verwendung der integrierten Schaltung nicht entsprechen.
  • Die vorliegende Anmeldung beschreibt eine selbstkalibrierende On-Chip-Verzögerungsüberwachungsschaltung. Die Verzögerungsüberwachungsschaltung kann eine On-Chip angeordnete Replikaschaltung beinhalten, welche eine Verzögerung eines oder mehrerer Pfade der integrierten Schaltung abschätzt. Hierbei bedeutet „On-Chip“, dass die Verzögerungsüberwachungsschaltung mit der integrierten Schaltung auf einem Chip angeordnet ist. Bei einem speziellen Ausführungsbeispiel beinhaltet eine Vorrichtung eine integrierte Schaltung, welche eine Verarbeitungsschaltung zur Ausführung von einem oder mehreren Prozessen der integrierten Schaltung und eine Verzögerungsüberwachungsschaltung zur Abschätzung einer Verzögerung von wenigstens einem Pfad der Verarbeitungsschaltung aufweist. Die Verzögerungsüberwachungsschaltung beinhaltet eine Konfigurationseinheit und eine programmierbare Verzögerungslinie, welche mit der Konfigurationseinheit gekoppelt ist. Die Verzögerungsüberwachungsschaltung beinhaltet auch einen Zeit-Digital-Wandler, welcher mit der programmierbaren Verzögerungslinie gekoppelt ist, und eine Rückkopplungsschleife, welche mit dem Zeit-Digital-Wandler gekoppelt ist. Die Rückkopplungsschleife beinhaltet eine Auswertungsschaltung, welche mit der Konfigurationseinheit gekoppelt ist. Die Auswertungsschaltung kann Signale an die Konfigurationseinheit liefern, um die Verzögerung der programmierbaren Verzögerungslinie zu modifizieren.
  • Die Verzögerungsüberwachungsschaltung kann in einem Kalibrierungsmodus arbeiten, welcher eingeleitet wird, wenn die von der integrierten Schaltung benötigte Taktfrequenz und/oder Versorgungsspannung sich ändern. Der Kalibrierungsmodus der Verzögerungsüberwachungsschaltung kann auch eingeleitet werden, wenn mehrere unabhängige Funktionsblöcke der integrierten Schaltung unabhängig von einem Betriebssystem an oder ausgeschaltet werden, um eine bestimmte Gesamtfunktionalität der integrierten Schaltung bereitzustellen. Insbesondere können mehrere Blöcke mit der auf dem Chip verteilten lokalen Energieversorgung vorübergehend verbunden oder vorübergehend davon getrennt werden. Bei einem veranschaulichenden Beispiel können integrierte Schaltungen zur Basisbandverarbeitung von Signalen zellbasierter Mobilfunknetze Blöcke beinhalten, welche angeschaltet werden, wenn Daten gemäß dem GSM-Kommunikationsstandard (GSM: „Global System for Mobile Communications“) verarbeitet werden, und zusätzliche Blöcke beinhalten, welche angeschaltet werden, wenn Daten gemäß dem CDMA-Kommunikationsstandard (CDMA: „Code Division Multiple Access“) oder HSPA-Kommunikationsstandard (HSPA: „High Speed Packet Access“) verarbeitet werden. Ein Ankoppeln oder Abkoppeln von Schaltungsblöcken der integrierten Schaltung kann den Gesamtstromverbrauch der integrierten Schaltung ändern, was transiente Versorgungsspannungsvariationen hervorrufen kann. In dem Kalibrierungsmodus wird eine Verzögerung der programmierbaren Verzögerungslinie der Verzögerungsüberwachungsschaltung von der Auswertungsschaltung gemessen und mit einem Zielwert verglichen. Wenn die Verzögerung der programmierbaren Verzögerungslinie sich von dem Zielwert unterscheidet, liefert die Auswertungsschaltung über die Rückkopplungsschleife Signale an die Konfigurationseinheit, um die Verzögerung der programmierbaren Verzögerungslinie anzupassen, so dass sie dem Zielwert entspricht.
  • Indem eine selbstkalibrierende On-Chip-Verzögerungsüberwachungsschaltung verwendet wird, kann die Messung der Verzögerung der integrierten Schaltung zeitgleich mit dem normalen Betrieb des Chips erfolgen. Außerdem können Konfigurationseinstellungen der Verzögerungsüberwachungsschaltung in Echtzeit anwendungsspezifische Taktfrequenzwerte und Versorgungsspannungswerte berücksichtigen, um auf genauere Weise eine Abschätzung der Verzögerung der integrierten Schaltung bereitzustellen. Darüber hinaus kann ein Anordnen der Verzögerungsüberwachungsschaltung On-Chip, jedoch außerhalb eines kritischen Pfades, Chipfläche sparen und ermöglichen, dass die Verzögerungsüberwachungsschaltung genutzt wird, um die Verzögerung für eine Vielzahl von kritischen Pfaden abzuschätzen.
  • 1 ist ein schematisches Diagramm eines Systems 100, welches eine Computervorrichtung 102 beinhaltet, die eine integrierte Schaltung mit einer Verzögerungsüberwachungsschaltung aufweist. Die Computervorrichtung 102 kann beinhalten einen Personal-Computer, einen Laptop-Computer, einen Netbook-Computer, einen persönlichen digitalen Assistenten (PDA: „Personal Digital Assistant“), ein tragbares Spielgerät, ein Drahtloskommunikationsgerät (z.B. ein Smartphone, ein Mobiltelefon oder dergleichen), eine Set-Top-Box, eine Spielkonsole, ein tragbares Musikabspielgerät, einen Router, ein Haushaltsgerät, einen persönlichen Gegenstand (z.B. eine Armbanduhr, einen Taschenrechner oder dergleichen), weitere mit einem Netzwerk zu verbindende Geräte und dergleichen. Die Computervorrichtung 102 beinhaltet einen oder mehrere Prozessoren 104 und einen Speicher 106. Die Computervorrichtung 102 beinhaltet auch einen Spannungsregler 108, welcher die Versorgungsspannung der Prozessoren 104 erzeugt und einstellt.
  • Der Speicher 106 kann einen Nur-Lese-Speicher (ROM: „Read-Only Memory“), Wahlzugriffsspeicher (RAM: „Random Access Memory“), nicht-flüchtigen Speicher, eine Festplatte oder jegliche Kombination davon beinhalten. Außerdem kann der Speicher 106 eine oder mehrere Anwendungen 110 speichern, einschließlich Softwareinstruktionen, Firmware oder eine Kombination davon. Zum Beispiel können die Anwendungen 110 Softwareinstruktionen beinhalten, welche durch den Prozessor 104 ausführbar sind, um verschiedene Prozesse der Computervorrichtung 102 auszuführen.
  • Bei einem veranschaulichenden Ausführungsbeispiel kann der Speicher 106 eine Anwendung speichern, um mit Telefonanrufen verknüpfte drahtlose Signale zu senden und empfangen, wie z.B. Sprachdaten oder Steuerinformationen. Darüber hinaus kann der Speicher 106 eine Anwendung speichern, wie z.B. eine Browser-Anwendung, um Webseitendaten anzufordern und zu empfangen, eine Anwendung zum Senden und Empfangen von Textnachrichten, eine Anwendung zum Senden und Empfangen von Fotos oder Bildern, eine Anwendung zum Senden und Empfangen von Videonachrichten oder jegliche Kombination davon beinhalten. Darüber hinaus können die Anwendungen 110 eine Textverarbeitungsanwendung, eine Tabellenkalkulationsanwendung, eine E-Mail-Anwendung, ein Betriebssystem, eine oder mehrere Spielanwendungen, eine GPS-Anwendung (GPS: „Global Positioning System“), Medienwiedergabeanwendungen oder dergleichen beinhalten.
  • Die Computervorrichtung 102 kann auch eine Kommunikationsschnittstelle 112 beinhalten, welche mit dem Prozessor 104 gekoppelt ist. Die Kommunikationsschnittstelle 112 kann Signale über eine drahtlose Verbindung, eine drahtgebundene Verbindung oder beides senden und/oder empfangen. Zum Beispiel kann die Kommunikationsschnittstelle 112 Signale über eine Basisstation senden und/oder empfangen, welche in einem drahtlosen Weitverkehrskommunikationsnetzwerk enthalten ist, wie z.B. ein GSM-Netzwerk, ein UMTS-Netzwerk (UMTS: „Universal Mobile Telecommunications System“), ein CDMA-Netzwerk, ein HSPA-Netzwerk, ein GPRS-Netzwerk (GPRS: „General Packet Radio Service“), ein EDGE-Netzwerk (EDGE: „Enhanced Data Rates for GSM Evolution“), ein WiMAX-Netzwerk (WiMAX: „Worldwide Interoperability for Microwave Access“), ein TDMA-Netzwerk (TDMA: „Time Division Multiple Access“), ein FDMA-Netzwerk (FDMA: „Frequency Division Multiple Access“), ein LTE-Netzwerk (LTE: „Long Term Evolution“), ein UWB-Netzwerk (UWB: „WiMedia Ultra Wideband“) oder jegliche Kombination davon.
  • Die Kommunikationsschnittstelle 112 kann auch Signale über einen Kommunikationssatelliten senden und/oder empfangen und drahtlose Signale über einen Drahtloszugangspunkt senden und/oder empfangen, welcher in einem drahtlosen Weitverkehrsnetzwerk oder einem drahtlosen lokalen Netzwerk enthalten ist, wie z.B. ein Bluetooth-Netzwerk oder ein Netzwerk auf Basis eines IEEE-802.11 Protokolls (IEEE: „Institute of E-lectrical and Electronics Engineers“). Außerdem kann die Kommunikationsschnittstelle 112 drahtlose Signale über ein Headset senden und/oder empfangen, wie z.B. ein Bluetooth-Headset.
  • Der Prozessor 104 beinhaltet eine integrierte Schaltung 114. Bei einem Beispiel kann die integrierte Schaltung 114 eine CPU (CPU: „Central Processing Unit“, Zentralprozessoreinheit) der Computervorrichtung 102 sein. Bei einem weiteren Beispiel kann die integrierte Schaltung 114 ein Basisbandchip der Computervorrichtung 102 zur Codierung und Decodierung von Drahtloskommunikationssignalen sein. Die integrierte Schaltung 114 beinhaltet eine Verarbeitungsschaltung 116. Die Verarbeitungsschaltung 116 führt Prozesse der Computervorrichtung 102 aus. Zum Beispiel kann die Verarbeitungsschaltung 116 Instruktionen der Anwendungen 110 ausführen.
  • Die Verarbeitungsschaltung 116 kann Prozesse der Computervorrichtung 102 über eine Anzahl von Pfaden ausführen, welche Rechenlogik beinhalten, die mit einem sendenden Flipflop und einem empfangenden Flipflop gekoppelt ist. Das sendende Flipflop kann der Rechenlogik an einer ersten ansteigenden oder abfallenden Taktflanke Daten zuführen, und die Ausgabe der Rechenlogik wird an dem empfangenden Flipflop an einer zweiten ansteigenden oder abfallenden Taktflanke abgetastet. Die Verzögerung jedes Pfads kann eine Verzögerung aus dem sendenden Flipflop, auch bezeichnet als Eingabe-Flipflop, eine Verzögerung aus dem empfangenden Flipflop, auch bezeichnet als Abtast-Flipflop, eine Verzögerung aus der Rechenlogik und zusätzliche Verzögerungen beinhalten. Die zusätzlichen Verzögerungen können Verzögerungen aufgrund von Takt-Jitter und Taktversatz umfassen. Die zusätzlichen Verzögerungen können auch Verzögerungen aufgrund von Versorgungsspannungsvariationen umfassen, weil unter Umständen die von einer oder mehreren der Anwendungen 110 benötige Versorgungsspannung nicht gleich zur Ausführung von Prozessen der Anwendungen 110 verfügbar sein kann. Die mit dem Eingabe-Flipflop, der Rechenlogik und dem empfangenen Flipflop verknüpften Verzögerungen können mit einer größeren Genauigkeit abgeschätzt werden als die Verzögerungen aufgrund von Versorgungsspannungsvariationen und Takt-Jitter. Wenn die Gesamtverzögerung eines Pfads die Taktperiode überschreitet, tritt eine Setup-Timing-Verletzung auf, und Daten können an der zweiten ansteigenden oder abfallenden Taktflanke nicht richtig in dem empfangenden Flipflop abgetastet und gespeichert werden, was einen Rechenfehler hervorrufen kann.
  • Die integrierte Schaltung 114 beinhaltet auch eine Verzögerungsüberwachungsschaltung 118 zur Abschätzung einer Verzögerung von Pfaden der Verarbeitungsschaltung 116. Obwohl 1 eine einzige Instanz der Verzögerungsüberwachungsschaltung 118 darstellt, kann die integrierte Schaltung 114 tatsächlich eine Vielzahl von Verzögerungsüberwachungsschaltungen, d.h. mehrere Instanzen der Verzögerungsüberwachungsschaltung 118, beinhalten. Die Verzögerungsüberwachungsschaltung 118 kann die Verzögerung von Pfaden der Verarbeitungsschaltung 116 abschätzen, um Timing-Verletzungen, welche durch Änderungen der Versorgungsspannung und/oder der Taktfrequenz der Computervorrichtung 102 verursacht werden, zu minimieren oder eliminieren. Zum Beispiel können Instruktionen der jeweiligen Anwendungen 110 im Zusammenhang mit einer bestimmten Taktfrequenz ausgeführt werden und bestimmte Versorgungsspannungserfordernisse aufweisen. Wenn folglich der Prozessor 104 von der Ausführung von Instruktionen einer ersten Anwendung 110, wie z.B. Verarbeitung eines Telefonanrufs, zur Ausführung von Instruktionen einer zweiten Anwendung 110, wie z.B. eine Web-Browsing-Anwendung, wechselt, kann sich die Versorgungsspannung oder Taktfrequenz auf Grundlage der Taktfrequenz- und Versorgungsspannungserfordernisse der bestimmten Anwendung 110 ändern. Bei einem weiteren Beispiel können Versorgungsspannungsänderungen und/oder Taktfrequenzänderungen auftreten, wenn der Prozessor 104 beginnt, Prozesse einer Anzahl von Anwendungen auszuführen, welche größer oder kleiner ist als eine Anzahl von Anwendungen, welche bislang ausgeführt wurden.
  • Die Änderungen der Taktfrequenz und/oder Versorgungsspannung können zu Timing-Verletzungen führen. Zur Veranschaulichung kann, wenn sich die von der Verarbeitungsschaltung 116 benötigte Versorgungsspannung ändert, um Prozesse der Anwendungen 110 auszuführen, der Versorgungsspannungsregler 108 der integrierten Schaltung 114 nicht in der Lage sein, die Versorgungsspannung schnell entsprechend den Änderungen anzupassen. Folglich kann die Verzögerung bei der Bereitstellung der richtigen Versorgungsspannung ansteigen, so dass die Gesamtverzögerung eines bestimmten Pfades die Taktperiode übersteigt.
  • Die Verzögerungsüberwachungsschaltung 118 beinhaltet eine programmierbare Verzögerungslinie 120, welche die Verzögerung von Pfaden in der Verarbeitungsschaltung 116 nachbildet. Die programmierbare Verzögerungslinie 120 kann ein Digital-Zeit-Wandler sein, welcher eine Anzahl von Verzögerungselementen beinhaltet. Das Ausgangssignal der programmierbaren Verzögerungslinie 120 ist verknüpft mit dem Ausmaß an Zeit, welche ein Eingangssignal benötigt, um sich durch eine spezifizierte Anzahl der Verzögerungselemente auszubreiten. Das Ausmaß an Zeit, welches ein Eingangssignal braucht, um sich durch eine spezifizierte Anzahl der Verzögerungselemente der programmierbaren Verzögerungslinie 120 auszubreiten, kann die Verzögerung von einen oder mehreren kritischen Pfaden der Verarbeitungsschaltung 116 darstellen und wird hierin auch als „die Verzögerung der programmierbaren Verzögerungslinie“ bezeichnet.
  • Die Anzahl der Verzögerungselemente, durch welche das Eingangssignal sich ausbreitet, bevor die programmierbare Verzögerungslinie 120 das Ausgangssignal liefert, kann durch einen digitalen Code spezifiziert werden, welcher der programmierbaren Verzögerungslinie 120 über ein mit der programmierbaren Verzögerungslinie 120 gekoppeltes Konfigurationsregister zugeführt wird. Wenn der digitale Code spezifiziert, dass die Verzögerung der programmierbaren Verzögerungslinie 120 ansteigen soll, kann das Eingangssignal sich durch mehr Verzögerungselemente ausbreiten, bevor das Ausgangssignal bereitgestellt wird, und wenn die Verzögerung der programmierbaren Verzögerungslinie 120 sich verringern soll, kann sich das Eingangssignal durch weniger Verzögerungselemente ausbreiten, bevor das Ausgangssignal bereitgestellt wird.
  • Die Verzögerungsüberwachungsschaltung 118 beinhaltet auch einen Zeit-Digital-Wandler (TDC: „Time-to-Digital Converter“) 122. Der Zeit-Digital-Wandler 122 kann mit der programmierbaren Verzögerungslinie 120 gekoppelt sein und verwendet werden, um die Verzögerung der programmierbaren Verzögerungslinie 120 zu messen. Der Zeit-Digital-Wandler 122 kann eine Kette von Verzögerungselementen beinhalten, welche in Reihe mit entsprechenden Flipflops gekoppelt sind. Nach dem ein Eingangssignal sich durch die programmierbare Verzögerungslinie 120 ausgebreitet hat, können die Flipflops des Zeit-Digital-Wandlers 122 sequentiell ausgelöst werden (d. h. den Zustand ändern), während sich das Eingangssignal durch die Kette von Verzögerungselementen ausbreitet. In einigen Fällen wird nur ein Teil der Flipflops ausgelöst, bevor der Zustand jedes Flipflops abgetastet wird. Zum Beispiel kann ein Eingangssignal der programmierbaren Verzögerungslinie 120 während einer ersten ansteigenden Taktflanke zugeführt werden, und der Zustand der jeweiligen Flipflops kann an einer zweiten ansteigenden Taktflanke abgetastet werden. Bei diesem Beispiel zeigen die Ausgangssignale des Zeit-Digital-Wandlers 122 die Anzahl von Flipflops an, welche vor der zweiten ansteigenden Taktflanke das Eingangssignal empfangen und den Zustand geändert haben.
  • Die Anzahl von Flipflops des Zeit-Digital-Wandlers 120, welche ausgelöst werden, bevor die Zustände der Flipflops abgetastet werden, kann als Indikator für die Verzögerung der programmierbaren Verzögerungslinie 120 genutzt werden. Zum Beispiel werden, wenn die Verzögerung der programmierbaren Verzögerungslinie 120 ansteigt, weniger Flipflops in einem gegebenen Taktzyklus ausgelöst, weil ein Eingangssignal mehr Zeit benötigt, um sich durch die programmierbare Verzögerungslinie 120 auszubreiten. Umgekehrt werden, wenn die Verzögerung der programmierbaren Verzögerungslinie 120 abnimmt, eine größere Anzahl von Flipflops in einem gegebenen Taktzyklus ausgelöst, weil das Eingangssignal weniger Zeit benötigt, um sich durch die programmierbare Verzögerungslinie 120 auszubreiten.
  • Sobald die Verzögerung der programmierbaren Verzögerungslinie 120 gemessen wurde, wird ein digitaler Code, welcher die Verzögerung darstellt, einer Rückkopplungsschleife 124 zugeführt. Die Rückkopplungsschleife 124 beinhaltet eine Auswertungsschaltung, welche dazu verwendet wird, in einem Kalibrierungsmodus die Verzögerung der programmierbaren Verzögerungslinie 120 zu kalibrieren. Zum Beispiel kalibriert die Auswertungsschaltung der Rückkopplungsschleife 124 die Verzögerung der programmierbaren Verzögerungslinie 120, indem die Ausgangssignale des Zeit-Digital-Wandlers 122, welche die Verzögerung der programmierbaren Verzögerungslinie 120 darstellen, mit einem Zielwert verglichen werden. Der Zielwert für die Verzögerung der programmierbaren Verzögerungslinie 120 kann auf einer Taktfrequenz und/oder einer Versorgungsspannung basieren, welche der integrierten Schaltung 114 zu einem bestimmten Zeitpunkt zugeführt werden. Außerdem können die Taktfrequenz und Versorgungsspannung, welche der integrierten Schaltung 114 zugeführt werden, von den Anwendungen 110 abhängen, welche von der Verarbeitungsschaltung 116 ausgeführt werden. Wenn die Verzögerung der programmierbaren Verzögerungslinie 120 nicht dem Zielwert entspricht, kann die Auswertungsschaltung der Rückkopplungsschleife 124 Daten an ein Konfigurationsregister zurückführen, um die Konfigurationseinstellungen der programmierbaren Verzögerungslinie 120 zu ändern, um die Verzögerung der programmierbaren Verzögerungslinie 120 zu erhöhen oder zu verringern, so dass die resultierende Verzögerung der programmierbaren Verzögerungslinie 120 dem Zielwert entspricht.
  • Nach dem Kalibrierungsmodus kann die Verzögerungsüberwachungsschaltung 118 in einen Messmodus eintreten. In dem Messmodus kann die Rückkopplungsschleife 124 deaktiviert sein, so dass Signale aus der Rückkopplungsschleife nicht zurück an das Konfigurationsregister gesendet werden. Auf diese Weise wird die Verzögerung der programmierbaren Verzögerungslinie 120 in dem Messmodus nicht angepasst. Außerdem kann in dem Messmodus die Auswertungsschaltung der Rückkopplungsschleife 124 verwendet werden, um die Verzögerung der programmierbaren Verzögerungslinie 120 zu messen und die gemessene Verzögerung mit einer Schwellenverzögerung zu vergleichen, um zu bestimmen, ob eine Gegenmaßnahme zur Vermeidung einer Timing-Verletzung einzuleiten ist oder nicht. Die Gegenmaßnahme kann beinhalten, die Taktfrequenz zu reduzieren oder den Takt für eine spezifizierte Anzahl von Zyklen anzuhalten. Bei einem veranschaulichenden Ausführungsbeispiel misst in dem Messmodus die Auswertungsschaltung der Rückkopplungsschleife 124 die Verzögerung der programmierbaren Verzögerungslinie 120 auf Grundlage der Ausgangssignale des Zeit-Digital-Wandlers 122. Die Auswertungsschaltung vergleicht dann die Verzögerung der programmierbaren Verzögerungslinie 120 mit einem Schwellenwert. Der Schwellenwert kann für einen bestimmten Pfad der Verarbeitungsschaltung 116 die maximale Verzögerung, bevor eine Timing-Verletzung auftritt, darstellen. Wenn die Verzögerung der programmierbaren Verzögerungslinie 120 dem Schwellenwert entspricht und/oder diesen überschreitet, liefert die Auswertungsschaltung der Rückkopplungsschleife 124 einen Alarm oder ein Warnsignal, welcher bzw. welches eine geeignete Gegenmaßnahme auslösen kann.
  • 2 ist ein schematisches Diagramm einer Verzögerungsüberwachungsschaltung 200, welche einen Zeit-Digital-Wandler und eine Rückkopplungsschleife beinhaltet. Die Verzögerungsüberwachungsschaltung 200 beinhaltet ein Eingangs-Flipflop 202 Das Eingabe-Flipflop 202 kann wie in 2 dargestellt, ein D-Flipflop sein. Das Eingabe-Flipflop 202 kann eine Eingabe, DIN, und ein Taktsignal, CLK, aufnehmen. Die Eingabe DIN kann ein 0-1-Übergang zur Änderung des Zustands des Eingangs-Flipflops 202 von „0“ and „1“ sein. Das Eingabe-Flipflop 202 kann ein Signal, QIN, welches den 0-1-Übergang von DIN darstellt, an eine programmierbare Verzögerungslinie 204 liefern. Das Signal QIN kann an einer ersten ansteigenden oder abfallenden Taktflanke an die programmierbare Verzögerungslinie 204 gesendet werden. Die programmierbare Verzögerungslinie 204 kann genutzt werden zur Abschätzung wenigstens eines Teils einer Verzögerung eines kritischen Pfads einer integrierten Schaltung, wie z.B. der integrierten Schaltung 114 von 1.
  • Die programmierbare Verzögerungslinie 204 ist mit einer Konfigurationseinheit 206 gekoppelt. Obwohl 2 die programmierbare Verzögerungslinie 204 mit der Konfigurationseinheit 206 gekoppelt zeigt, kann die Konfigurationseinheit 206 auch als ein Teil der programmierbaren Verzögerungslinie 204 vorgesehen sein. Die Konfigurationseinheit 206 liefert Konfigurationseinstellungen an die programmierbare Verzögerungslinie 204, um die Verzögerung der programmierbaren Verzögerungslinie 204 einzustellen. Die Konfigurationseinheit 206 kann Logik und ein Register zum Speichern der Konfigurationseinstellungen beinhalten. Außerdem empfängt die Konfigurationseinheit 206 ein Signal, Modus. Das Signal Modus kann spezifizieren, dass die Verzögerungsüberwachungsschaltung 200 in einem Kalibrierungsmodus oder in einem Messmodus arbeiten soll. Das Signal Modus kann mit der Maßgabe, dass die Verzögerungsüberwachungsschaltung 200 in einen Kalibrierungsmodus arbeiten soll, an die Konfigurationseinheit 206 gesendet werden, wenn eine Frequenz- und Leistungsmanagementeinheit einer integrierten Schaltung eine Änderung der Taktfrequenz und/oder Versorgungsspannung identifiziert.
  • Die programmierbare Verzögerungslinie 204 ist auch mit einem Zeit-Digital-Wandler (TDC) 208 gekoppelt. Der Zeit-Digital-Wandler 208 kann die Verzögerung der programmierbaren Verzögerungslinie 204 messen. Der Zeit-Digital-Wandler 208 kann ein oder mehrere nicht invertierende Verzögerungselemente beinhalten, wie z.B. die Verzögerungselemente 210 - 222, welche in Reihe gekoppelt sind. Bei einem alternativen Ausführungsbeispiel können die Verzögerungselemente 210 - 222 invertierende Verzögerungselemente umfassen. Obwohl 2 acht Verzögerungselemente zeigt, kann der Zeit-Digital-Wandler 208 eine beliebige Anzahl von Verzögerungselementen beinhalten. Die Anzahl von Verzögerungselementen und die Größe der Verzögerungselemente kann abhängen von einer Länge der Verzögerung, welche mit einem oder mehreren Pfaden einer integrierten Schaltung verknüpft ist, und/oder von einer spezifizierten Auflösung, welche verwendet wird, um die Verzögerung der programmierbaren Verzögerungslinie 204 zu quantifizieren. Zum Beispiel kann jedes der Verzögerungselemente 210 - 222 eine Verzögerung zwischen 10 ps bis 100 ps darstellen. Das eine oder die mehreren nicht invertierenden Verzögerungselemente 210 - 222 können Operationsverstärker, Puffer oder eine Kombination davon umfassen. Jedes der nicht invertierenden Verzögerungselemente 210 - 222 ist mit einem entsprechenden Abtast-Flipflop 224 - 238 gekoppelt.
  • Nachdem das Signal QIN sich durch die programmierbare Verzögerungslinie 204 ausgebreitet hat, werden mit den jeweiligen Verzögerungselementen 210-222 verknüpfte Signale den entsprechenden Abtast-Flipflops 224-238 zugeführt. Zum Beispiel wird, unmittelbar bevor das Signal QIN das Verzögerungselement 210 erreicht, das Signal D7 an das Abtast-Flipflop 238 weitergegeben. Außerdem werden, während das Signal QIN sich durch die Verzögerungselemente ausbreitet, die entsprechenden Signale D6, D5, D4 usw. ihren entsprechenden Abtast-Flipflops 236, 234, 232 usw. zugeführt. Die Ausgangssignale D7 - D0 ändern den Zustand der Abtast-Flipflops 224-238, wie z.B. von einer „0“ auf eine „1“, wenn das Signal QIN einen 0-1-Übergang darstellt.
  • Der Zustand der jeweiligen Abtast-Flipflops 224-238 wird abgetastet an einer zweiten ansteigenden oder abfallenden Taktflanke nach der ersten ansteigenden oder abfallenden Taktflanke, welche bewirkt hat, dass das Signal QIN von dem Eingangs-Flipflop 202 an die programmierbare Verzögerungslinie 204 gesendet wird. Bei einem veranschaulichenden Beispiel kann bei der zweiten ansteigenden oder abfallenden Taktflanke der Zustand der Abtast-Flipflops 224 - 228 „0“ sein, und der Zustand der Abtast-Flipflops 230 - 238 kann „1“ sein. Das letzte Abtast-Flipflop, welches vor der zweiten ansteigenden oder abfallenden Taktflanke einen Zustand von „1“ aufweist, wird hierin als eine „führende ‚1'“ bezeichnet. Daher würde bei diesem veranschaulichenden Beispiel die „1“ des Abtast-Flipflops 230 als die führende „1“ bezeichnet werden.
  • Die Auswertungsschaltung 240 nimmt die Ausgangssignale von den Abtast-Flipflops 224 - 238 auf. Die Ausgangssignale der Abtast-Flipflops 224 - 238 können eine Verzögerung der programmierbaren Verzögerungslinie 204 anzeigen. Zum Beispiel zeigt eine größere Anzahl der Abtast-Flipflops 224 - 238, welche den Zustand vor der zweiten ansteigenden oder abfallenden Taktflanke ändern, eine kürzere Verzögerung der programmierbaren Verzögerungslinie 204 an, weil das Signal QIN in der Lage ist, sich durch mehr der Verzögerungselemente 210-222 auszubreiten, bevor der Zustand der Abtast-Flipflops 224 - 238 abgetastet wird. Bei einem weiteren Beispiel zeigt eine kleinere Anzahl der Abtast-Flipflops, welche den Zustand vor der zweiten ansteigenden oder abfallenden Taktflanke ändern, eine längere Verzögerung der programmierbaren Verzögerungslinie 204 an, weil das Signal QIN sich vor der zweiten ansteigenden oder abfallenden Taktflanke durch weniger der Verzögerungselemente 210-222 ausbreitet.
  • Die Auswertungsschaltung 240 kann auch das Signal Modus aufnehmen, welches anzeigt, ob die Verzögerungsüberwachungsschaltung 200 in einem Kalibrierungsmodus oder einem Messmodus arbeitet. In dem Kalibrierungsmodus kann die Auswertungsschaltung 240 die Ausgangssignale der Abtast-Flipflops 224-238 mit einem Zielwert vergleichen. Zum Beispiel kann die Auswertungsschaltung 240 eine führende „1“ der Abtast-Flipflops 224-238 mit einem Zielwert für die führende „1“ vergleichen. Die Auswertungsschaltung 240 kann basierend auf dem Vergleich des Ausgangssignals der Abtast-Flipflops 224-228 mit dem Zielwert ein Ausgangssignal zum Senden an die Konfigurationseinheit 206 erzeugen, welches anzeigt, dass die Verzögerung der programmierbaren Verzögerungslinie 204 ansteigen oder abnehmen sollte. Zur Veranschaulichung kann, wenn die Verzögerung der programmierbaren Verzögerungslinie 204 sich von der Zielverzögerung unterscheidet, die Verzögerung der programmierbaren Verzögerungslinie 204 derart angepasst werden, dass die Verzögerung der programmierbaren Verzögerungslinie 204 der Zielverzögerung entspricht. Auf diese Weise bilden die Auswertungsschaltung 240, die Konfigurationseinheit 206 und die programmierbare Verzögerungslinie 204 eine Rückkopplungsschleife 242, welche eine Selbstkalibrierung der programmierbaren Verzögerungslinie 204 ermöglicht, wenn sich mit einer bestimmten integrierten Schaltung verknüpfte Bedingungen ändern, wie z.B. eine Änderung der Versorgungsspannung oder ein Änderung der Taktfrequenz. Außerdem können die Rückkopplungsschleife 242, die Konfigurationseinheit 206 und die programmierbare Verzögerungslinie 204 einen Digital-Zeit-Wandler umfassen, welcher ein digitales Ausgangssignal der Auswertungsschaltung 240 in eine Verzögerungszeit der programmierbaren Verzögerungslinie 204 konvertiert.
  • In einem Messmodus kann die Auswertungsschaltung 240 die Ausgangssignale der Abtast-Flipflops 224 - 238 mit einem Schwellenwert vergleichen, um zu bestimmen, ob bezüglich eines bestimmten Pfades einer integrierten Schaltung eine Timing-Verletzung auftreten kann oder nicht. Zum Beispiel kann die Auswertungsschaltung 240 die Verzögerung der programmierbaren Verzögerungslinie 204 mit einer Schwellenverzögerung vergleichen. Die Differenz zwischen der Verzögerung der programmierbaren Verzögerungslinie 204 und der Schwellenverzögerung wird hierin auch als „Schlupfmarge“ bezeichnet. Beispielsweise kann die Auswertungsschaltung 240 eine auf Ausgangssignalen der Abtast-Flipflops 224 - 238 basierende führende „1“ mit einem Schwellenwert für eine führende „1“ vergleichen, und die Differenz zwischen der führenden „1“ des Zeit-Digital-Wandlers 208 und dem Schwellenwert für die führende „1“ ist die Schlupfmarge. Die Auswertungsschaltung 240 kann ein Ausgangssignal, SLACK, liefern, welches die Schlupfmarge darstellt. Wenn die Verzögerung der programmierbaren Verzögerungslinie 204 über dem Schwellenwert ist, kann das Ausgangssignal SLACK eine mögliche Timing-Verletzung anzeigen. Folglich kann eine Gegenmaßnahme eingeleitet werden, was ein Verlangsamen der Taktfrequenz oder ein Anhalten des Takts für eine spezifizierte Anzahl von Zyklen beinhaltet.
  • 3 ist ein schematisches Diagramm einer programmierbaren Verzögerungslinie 204 einer Verzögerungsüberwachungsschaltung, wie z.B. der Verzögerungsüberwachungsschaltung 200 von 2. Die programmierbare Verzögerungslinie 204 beinhaltet eine Anzahl von nicht invertierenden Verzögerungsstufen 302-316. Bei einem alternativen Ausführungsbeispiel können die Verzögerungsstufen 302-316 auch invertierende Verzögerungselemente beinhalten. Die nicht invertierenden Verzögerungsstufen 302-316 können einen oder mehrere Puffer, Operationsverstärker oder eine Kombination davon beinhalten. Jede der Verzögerungsstufen 302-316 kann ungefähr dieselbe Verzögerung aufweisen, wie z.B. eine Verzögerung t0. Die Verzögerung t0 kann ein Ausmaß an Zeit anzeigen, welches ein Signal, Eingabe, benötigt, um sich durch eine der Verzögerungsstufen 302 - 316 auszubreiten. Die Anzahl von Verzögerungsstufen der programmierbaren Verzögerungslinie 204 spezifiziert das Ausmaß an Verzögerung, welches durch die programmierbare Verzögerungslinie 204 erzeugt werden kann. Somit können die Verzögerungsstufen 302 - 316 verwendet werden, um eine Verzögerung zu erzeugen, welche von t0 bis (8 x t0) reicht. Die Verzögerung der Verzögerungsstufen 302 - 316 kann abhängen von einer Größe der jeweiligen Verzögerungsstufe, wie z.B. der Anzahl von Komponenten der Verzögerungsstufe, und/oder von der Konfiguration der jeweiligen Verzögerungsstufe. Obwohl in 3 acht Verzögerungsstufen dargestellt sind, kann eine beliebige Anzahl von Verzögerungsstufen in der programmierbaren Verzögerungslinie 204 enthalten sein, abhängig von dem Ausmaß an Verzögerung, welches benötigt wird, um die Verzögerung eines Pfads einer integrierten Schaltung abzuschätzen.
  • Die programmierbare Verzögerungslinie 204 beinhaltet auch einen ersten Multiplexer 316, einen zweiten Multiplexer 320 und einen dritten Multiplexer 322. Die Multiplexer 318-322 können eine Anzahl von Eingängen aufweisen. Zum Beispiel können der erste Multiplexer 318 und der zweite Multiplexer 320 vier Eingänge aufweisen, und der dritte Multiplexer 322 kann zwei Eingänge aufweisen. Insbesondere nimmt der erste Multiplexer 318 Signale von den Verzögerungsstufen 302-308 auf, der zweite Multiplexer 320 nimmt Signale von den Verzögerungsstufen 310 bis 316 auf und der dritte Multiplexer nimmt Signale von dem ersten Multiplexer 318 und dem zweiten Multiplexer 320 auf. Die Multiplexer 318-322 können auch eine andere Anzahl von Eingängen aufweisen als in 3 dargestellt.
  • Die programmierbare Verzögerungslinie 204 kann ein Konfigurationsregister 324 beinhalten. Das Konfigurationsregister 324 speichert digital codierte Konfigurationseinstellungen der programmierbaren Verzögerungslinie 204, welche eine Verzögerung spezifizieren, die durch die programmierbare Verzögerungslinie 204 bereitzustellen ist. Die Verzögerung kann eine Zeit zwischen einer Eingabe in das erste Verzögerungselement 202 und der Ausgabe aus dem dritten Multiplexer 322 darstellen. Die Kombination der Verzögerungsstufen 302-316 mit dem Konfigurationsregister 324 kann als ein Digital-Zeit-Wandler arbeiten, weil der digital codierte Inhalt des Konfigurationsregisters 324 über die Verzögerungsstufen 302-316 in eine programmierbare Verzögerung umgewandelt wird.
  • Das Konfigurationsregister 324 liefert basierend auf den in dem Konfigurationsregister 324 gespeicherten Konfigurationseinstellungen Eingangssignale an die Multiplexer 318 - 322. Zum Beispiel können die Eingangssignale aus dem Konfigurationsregister 324 spezifizieren, dass eine Verzögerung mit einem Wert von t0 x 2 erforderlich ist. Somit können die Signale an die Multiplexer 318-322 spezifizieren, dass das Ausmaß an Zeit, welches das Signal Eingabe benötigt, um sich durch die Verzögerungsstufen 302 und 304 auszubreiten, als die Ausgabe der programmierbaren Verzögerungslinie 204 geliefert wird. Bei einem weiteren Beispiel können die Eingangssignale des Konfigurationsregisters 324 spezifizieren, dass eine Verzögerung mit einem Wert von t0 x 6 erforderlich ist. Folglich können die Signale an die Multiplexer 318 bis 322 spezifizieren, dass das Ausmaß an Zeit, welches das Signal Eingabe benötigt, um sich durch die Verzögerungsstufen 302 bis 308 auszubreiten, an den ersten Multiplexer 318 geliefert wird und dass das Ausmaß an Zeit, welches das Signal Eingabe benötigt, um sich durch die Verzögerungsstufen 310 und 312 auszubreiten, an den zweiten Multiplexer 320 geliefert wird. Der erste und der zweite Multiplexer 318 und 320 liefern dann ihre Ausgabe an den dritten Multiplexer 322, um als ein Ausgangssignal die spezifizierte Verzögerung der programmierbaren Verzögerungslinie 204 zu erzeugen.
  • Die Werte der digitalen Eingangssignale, welche durch das Konfigurationsregister 324 an die Multiplexer 318 - 322 geliefert werden, können auf Grundlage von Signalen, welche von einer Arithmetik-Logik-Einheit (ALU) 326 in einem Kalibrierungsmodus der programmierbaren Verzögerungslinie 324 empfangen werden, modifiziert werden. In dem Kalibrierungsmodus empfängt eine Logik 328 ein Signal, Modus, welches die Einleitung des Kalibrierungsmodus anzeigt. Die Logik 328 liefert basierend auf dem Signal CLK auch ein lokales Taktsignal an das Konfigurationsregister 324. Insbesondere sendet die Logik 328, wenn sie ein Signal Modus empfängt, welches einen Kalibrierungsmodus der programmierbaren Verzögerungslinie 204 anzeigt, das lokale Taktsignal an das Konfigurationsregister 324, um ein Ändern des Inhalts des Konfigurationsregisters 324 zu erleichtern. Darüber hinaus können die Einstellungen des Konfigurationsregisters 324 in Reaktion auf Empfang eines Rücksetzsignals RST auf Vorgabeeinstellungen zurückgesetzt werden.
  • Die ALU 326 empfängt Signale von einer Auswertungsschaltung, wie z.B. die Auswertungsschaltung 240 von 2, um die Verzögerung der programmierbaren Verzögerungslinie 204 zu aktualisieren. Wenn z.B. die Verzögerung der programmierbaren Verzögerungslinie 204 auf Grundlage der von der Auswertungsschaltung empfangenen Signale zu erhöhen ist, kann das Konfigurationsregister 324 Signale an die Multiplexer 318-322 liefern, um die erhöhte Verzögerung bereitzustellen. Das heißt, dass die Zeit, welche das Signal Eingabe benötigt hat, um sich durch mehr der Verzögerungsstufen 302-316 auszubreiten, wird bei der Bereitstellung der Ausgabe der programmierbaren Verzögerungslinie 204 berücksichtigt. Bei einem weiteren Beispiel, wenn die Verzögerung der programmierbaren Verzögerungslinie 204 auf Grundlage der von der Auswertungsschaltung empfangenen Signale zu verringern ist, kann das Konfigurationsregister 324 Signale an die Multiplexer 318-322 liefern, um die verringerte Verzögerung hervorzurufen. Das heißt, dass die Zeit, welche das Signal Eingabe benötigt hat, um sich durch weniger der Verzögerungsstufen 302 - 316 auszubreiten, wird beim Bereitstellen der Ausgabe der programmierbaren Verzögerungslinie 204 berücksichtigt.
  • 4 ist ein schematisches Diagramm eines ersten Ausführungsbeispiels einer Auswertungsschaltung 240 in einer Rückkopplungsschleife einer Verzögerungsüberwachungsschaltung. Die Auswertungsschaltung 240 beinhaltet einen Thermometercode-Binärcode-Konverter 402. Der Thermometercode-Binärcode-Konverter 402 empfängt Ausgangssignale Q0 -Q7 von den Abtast-Flipflops eines Zeit-Digital-Wandlers, wie z.B. der Zeit-Digital-Wandler 208 von 2. Der Thermometercode-Binärcode-Konverter 402 kann eine Logikschaltungsanordnung beinhalten, um ein binäres Ausgangssignal, QBIN, aus den Signalen Q0 bis Q7 zu erzeugen. Das Ausgangssignal QBIN zeigt die Verzögerung einer programmierbaren Verzögerungslinie einer Verzögerungsüberwachungsschaltung an, wie z.B. diejenige der programmierbaren Verzögerungslinie 204 von 2 und 3.
  • Das Ausgangssignal QBIN des Thermometercode-Binärcode-Konverters 402 wird in einem Kalibrierungsmodus der Verzögerungsüberwachungsschaltung an eine Ziel-ALU 404 geliefert. Die Ziel-ALU 404 vergleicht einen Wert des Signals QBIN mit einem Wert eines Signals, TARGET, welches von einem Kalibrierungszielregister 406 empfangen wird. Der Wert des Signals TARGET stellt ein Ziel für die Verzögerung der programmierbaren Verzögerungslinie dar. Die Kalibrierungszieldaten, welche verwendet werden, um das Signal TARGET zu erzeugen, sind in dem Kalibrierungszielregister 406 gespeichert.
  • Der Zielwert für die Verzögerung der programmierbaren Verzögerungslinie kann auf Betriebsbedingungen einer integrierten Schaltung basieren, wobei die Verzögerung von einem oder mehreren Pfaden der integrierten Schaltung von der programmierbaren Verzögerungslinie nachgebildet wird. Die Betriebsbedingungen können die Versorgungsspannung und/oder die Taktfrequenz beinhalten, welche an einem gegebenen Zeitpunkt der integrierten Schaltung zugeführt werden. Darüber hinaus können die Betriebsbedingungen von einer Anwendung abhängen, welche über die integrierte Schaltung ausgeführt wird.
  • Ein Ausgangssignal der Ziel-ALU 404, DELAY, zeigt eine Differenz zwischen der Verzögerung der programmierbaren Verzögerungslinie und dem durch das Signal TARGET spezifizierten Wert für die Verzögerung der programmierbaren Verzögerungslinie an. Das Signal DELAY der Ziel-ALU 404 wird an eine Konfigurationseinheit der Verzögerungsüberwachungsschaltung zurückgeführt, wie z.B. an die Konfigurationseinheit 206 von 2. Das Signal DELAY kann von der Konfigurationseinheit verwendet werden, um die Verzögerung der programmierbaren Verzögerungslinie anzupassen. Zum Beispiel kann das Signal DELAY der Ziel-ALU 404 anzeigen, dass die Verzögerung der programmierbaren Verzögerungslinie größer ist als die Zielverzögerung. Bei diesem Beispiel kann die Verzögerung der programmierbaren Verzögerungslinie verringert werden, so dass sie dem Zielwert entspricht. Bei einem weiteren Beispiel kann das Signal DELAY anzeigen, dass die Verzögerung der programmierbaren Verzögerungslinie kleiner ist als die Zielverzögerung. Folglich kann dann die Verzögerung der programmierbaren Verzögerungslinie erhöht werden, so dass sie dem Zielwert entspricht.
  • Die Ziel-ALU 404 empfängt auch ein Signal, Modus, welches anzeigt, ob die Verzögerungsüberwachungsschaltung in einem Kalibrierungsmodus oder einem Messmodus ist. Wenn die Verzögerungsüberwachungsschaltung in einem Kalibrierungsmodus ist, liefert die Ziel-ALU 404 das Ausgangssignal DELAY an die Konfigurationseinheit der Verzögerungsüberwachungsschaltung. Wenn die Verzögerungsüberwachungsschaltung in dem Messmodus ist, wird die Ziel-ALU 404 deaktiviert.
  • Das Signal Modus wird auch an eine Schwellenwert-ALU 408 geliefert. Wenn die Verzögerungsüberwachungsschaltung in einem Messmodus ist, vergleicht die Schwellenwert-ALU 408 die Verzögerung der programmierbaren Verzögerungslinie, welche durch einen Wert des Signals QBIN dargestellt ist, mit einem Wert eines von einem Schwellenwertregister 410 empfangenen Signals, THRESH. Das Signal THRESH kann eine Verzögerung von einem oder mehreren Pfaden einer integrierten Schaltung darstellen, welche eine Timing-Verletzung bewirkt oder anzeigt, dass eine Timing-Verletzung bevorsteht. Ein Ausgangssignal SLACK, welches von der Schwellenwert-ALU 408 bereitgestellt wird, zeigt eine Differenz zwischen der Verzögerung der programmierbaren Verzögerungslinie und einem Schwellenwert für die Verzögerung eines oder mehrerer Pfade einer integrierten Schaltung an. Das Signal SLACK kann an ein Softwaremodul, eine CPU oder andere Logik einer Computervorrichtung geliefert werden, welches bzw. welche Alarme ausgibt oder Gegenmaßnahmen einleitet, wenn eine Timing-Verletzung aufgetreten ist oder bevorsteht. Zum Beispiel kann, wenn das Signal SLACK unterhalb eines bestimmten Wertes ist, eine Gegenmaßnahme eingeleitet werden, wie z.B. Anhalten des Takts für eine bestimmte Anzahl von Zyklen oder Verringern der Taktfrequenz.
  • 5 ist ein schematisches Diagramm eines zweiten Ausführungsbeispiels einer Auswertungsschaltung in einer Rückkopplungsschleife einer Verzögerungsüberwachungsschaltung. Die Auswertungsschaltung 240 beinhaltet einen Thermometercode-Binärcode-Konverter 502. Der Thermometercode-Binärcode-Konverter 502 empfängt Ausgangssignale Q0 - Q7 von den Abtast-Flipflops eines Zeit-Digital-Wandlers, wie z.B. der Zeit-Digital-Wandler 208 von 2. Der Thermometercode-Binärcode-Konverter 502 kann eine Logikschaltungsanordnung beinhalten, um ein binäres Ausgangssignal, QBIN, aus den von dem Zeit-Digital-Wandler empfangenen Signalen Q0 - Q7 zu erzeugen. Das binäre Ausgangssignal QBIN stellt die Verzögerung einer programmierbaren Verzögerungslinie einer Verzögerungsüberwachungsschaltung dar, wie z.B. diejenige der programmierbaren Verzögerungslinie 204 von 2.
  • Das Ausgangssignal QBIN des Thermometercode-Binärcode-Konverters 502 wird an eine ALU 504 geliefert. Abhängig von dem Modus der Verzögerungsüberwachungsschaltung vergleicht die ALU 504 das Signal QBIN mit einem bestimmten Ausgangssignal aus einem Multiplexer 506. Ein der ALU 504 und dem Multiplexer 506 zugeführtes Signal Modus zeigt an, ob die Verzögerungsüberwachungsschaltung in einem Kalibrierungsmodus oder einem Messmodus ist.
  • In dem Kalibrierungsmodus vergleicht die ALU 504 einen Wert des Signals QBIN mit einem Wert eines von dem Kalibrierungszielregister 508 empfangenen Signals, TARGET. Die ALU 504 liefert in dem Kalibrierungsmodus ein Ausgangssignal, DELAY. Das Signal DELAY zeigt eine Differenz zwischen der Verzögerung der programmierbaren Verzögerungslinie und dem durch das Signal TARGET spezifizierten Zielwert für die Verzögerung der programmierbaren Verzögerungslinie an. Das Signal DELAY der ALU 504 wird an eine Konfigurationseinheit der Verzögerungsüberwachungsschaltung zurückgeführt, wie z.B. an die Konfigurationseinheit 206 von 2. Das Signal DELAY kann von der Konfigurationseinheit verwendet werden, um die Verzögerung der programmierbaren Verzögerungslinie anzupassen.
  • Wenn die Verzögerungsüberwachungsschaltung in einem Messmodus ist, empfängt der Multiplexer 506 ein Signal, THRESH, von einem Schwellenwertregister 510. Das Signal THRESH kann eine Verzögerung eines oder mehrerer Pfade einer integrierten Schaltung darstellen, welche eine Timing-Verletzung bewirkt oder anzeigt, dass eine Timing-Verletzung bevorsteht. Der Multiplexer 506 liefert das Signal THRESH an die ALU 504. Die ALU 504 vergleicht die Verzögerung der programmierbaren Verzögerungslinie, welche durch einen Wert des Signals QBIN dargestellt ist, mit dem Wert des Signals THRESH. Ein in dem Messmodus von der Schwellenwert-ALU 504 bereitgestelltes Ausgangssignal SLACK zeigt eine Differenz zwischen der Verzögerung der programmierbaren Verzögerungslinie und einem Schwellenwert für die Verzögerung eines oder mehrerer Pfade einer integrierten Schaltung an. Das Signal SLACK kann an ein Softwaremodul, eine CPU oder an eine andere Logik einer Computervorrichtung geliefert werden, welches bzw. welche Alarme ausgibt oder Gegenmaßnahmen einleitet, wenn eine Timing-Verletzung aufgetreten ist oder bevorsteht.
  • 6 ist ein schematisches Diagramm eines dritten Ausführungsbeispiels einer Auswertungsschaltung in einer Rückkopplungsschleife einer Verzögerungsüberwachungsschaltung. Die Auswertungsschaltung 240 beinhaltet einen Thermometercode-Binärcode-Konverter 602. Der Thermometercode-Binärcode-Konverter 602 empfängt Ausgangssignale Q0 - Q7 von den Abtast-Flipflops eines Zeit-Digital-Wandlers, wie z.B. der Zeit-Digital-Wandler 208 von 2. Der Thermometercode-Binärcode-Konverter 602 kann eine Logikschaltungsanordnung beinhalten, um aus den von dem Zeit-Digital-Wandler empfangenen Signale Q0 - Q7 ein binäres Ausgangssignal, QBIN, zu erzeugen. Das binäre Ausgangssignal QBIN stellt-die Verzögerung einer programmierbaren Verzögerungslinie einer Verzögerungsüberwachungsschaltung dar, wie z.B. diejenige der programmierbaren Verzögerungslinie 204 von 2.
  • Das Ausgangssignal QBIN des Thermometercode-Binärcode-Konverters 602 wird einer ALU 604 zugeführt. Abhängig von dem Modus der Verzögerungsüberwachungsschaltung vergleicht die ALU 604 das Signal QBIN mit einem Ausgangssignal aus einem Multiplexer 606. Ein der ALU 604 und dem Multiplexer 606 zugeführtes Signal, Modus, zeigt an, ob die Verzögerungsüberwachungsschaltung in einem Kalibrierungsmodus oder einem Messmodus ist.
  • In dem Kalibrierungsmodus vergleicht die ALU 604 einen Wert des Signals QBIN mit einem Wert des von einem Kalibrierungszielregister 608 empfangenen Signals, TARGET. Die ALU 604 liefert in dem Kalibrierungsmodus ein Ausgangssignal, DELAY. Das Signal DELAY zeigt eine Differenz zwischen der Verzögerung der programmierbaren Verzögerungslinie und dem durch das Signal TARGET spezifizierten Zielwert für die Verzögerung der programmierbaren Verzögerungslinie an. Das Signal DELAY der ALU 604 wird an eine Konfigurationseinheit der Verzögerungsüberwachungsschaltung zurückgeführt, wie z.B. an die Konfigurationseinheit 206 von 2. Das Signal DELAY kann von der Konfigurationseinheit verwendet werden, um die Verzögerung der programmierbaren Verzögerungslinie anzupassen.
  • Wenn die Verzögerungsüberwachungsschaltung in einem Messmodus ist, empfängt der Multiplexer 606 ein Signal, THRESH, von einem Schwellenwertregister 610. Das Signal, THRESH, kann eine Verzögerung eines oder mehrerer Pfade einer integrierten Schaltung darstellen, welche eine Timing-Verletzung verursacht oder anzeigt, dass eine Timing-Verletzung bevorsteht. Der Multiplexer 606 liefert das Signal THRESH an die ALU 604. Die ALU 604 vergleicht die Verzögerung der programmierbaren Verzögerungslinie, welche durch einen Wert des Signals QBIN dargestellt ist, mit dem Wert des Signals THRESH. Ein in dem Messmodus von der Schwellenwert-ALU 604 bereitgestelltes Ausgangssignal SLACK zeigt eine Differenz zwischen der Verzögerung der programmierbaren Verzögerungslinie und einem Schwellenwert für die Verzögerung eines oder mehrerer Pfade einer integrierten Schaltung an. Das Signal SLACK kann an ein Softwaremodul, eine CPU oder andere Logik einer Computervorrichtung geliefert werden, welches bzw. welche Alarme ausgibt oder Gegenmaßnahmen einleitet, wenn eine Timing-Verletzung aufgetreten ist oder bevorsteht.
  • Die Auswertungsschaltung 240 beinhaltet auch einen Grenzzustanddetektor 612 und einen Binärcode-Thermometercode-Konverter 614, um eine thermometercodierte Version des Schwellenwerts an den Grenzzustanddetektor 612 zu liefern. Beispielsweise kann die Auswertungsschaltung 240 den Grenzzustanddetektor 612 nutzen, um zu bestimmen, ob ein Pfad einer integrierten Schaltung in einem kritischen Zustand ist, anstelle den Multiplexer 606 und die ALU 604 zu nutzen. Zum Beispiel kann die Auswertungsschaltung 240 den Grenzzustanddetektor 612 nutzen, wenn eine schnelle Auswertung erforderlich ist, um zu identifizieren, ob wegen schnellen Versorgungsspannungs- und/oder Taktfrequenzänderungen ein Pfad einer integrierten Schaltung in einem kritischen Zustand ist oder nicht. Bei einigen Ausführungsbeispielen können schnelle Versorgungsspannungs- und/oder Taktfrequenzänderungen auftreten, wenn eine integrierte Schaltung als ein Mikroprozessor einer Computervorrichtung arbeitet.
  • Der Grenzzustanddetektor 612 vergleicht den thermometercodierten Wert der Verzögerung der programmierbaren Verzögerungslinie, welche durch die Signale Q0 - Q7 dargestellt ist, und den thermometercodierten Wert des Schwellenwerts. Basierend auf dem Vergleich zwischen den thermometercodierten Werten der Verzögerung der programmierbaren Verzögerungslinie und des Schwellenwerts liefert der Grenzzustanddetektor 612 ein binäres Ausgangssignal, Status, welches anzeigt, ob die Verzögerung der programmierbaren Verzögerungslinie oberhalb oder unterhalb des Schwellenwerts ist. Wenn zum Beispiel die Verzögerung der programmierbaren Verzögerungslinie geringer ist als der Schwellenwert, dann kann das Signal Status anzeigen, dass eine Timing-Verletzung aufgetreten ist oder bevorsteht. Wenn die Verzögerung der programmierbaren Verzögerungslinie größer ist als der Schwellenwert, dann kann das Signal Status anzeigen, dass eine Timing-Verletzung wahrscheinlich nicht auftritt oder nicht bevorsteht. Das Signal Status kann als ein Warnsignal dienen, um Gegenmaßnahmen einzuleiten, so dass Timing-Verletzungen einer integrierten Schaltung korrigiert oder vermieden werden können. Indem direkt die thermometercodierten Werte für die Verzögerung der programmierbaren Verzögerungslinie und den Schwellenwert verglichen werden, um ein binäres Ausgangssignal bereitzustellen, kann somit der Grenzzustanddetektor 612 schneller einen Hinweis darauf liefern, ob eine Timing-Verletzung bevorsteht oder auftritt, indem die komplexeren Berechnungen der ALU 604 und des Multiplexers 606 vermieden werden.
  • Das Ausgangssignal SLACK, welches von dem in 4 - 6 dargestellten ersten, zweiten oder dritten Ausführungsbeispiel der Auswertungsschaltung 240 berechnet wird, kann von einer CPU, wie zum Beispiel der Prozessor 104 von 1, auf der integrierten Schaltung weiterverarbeitet werden. Die Nachverarbeitung des Signals SLACK kann umfassen, dass mehrere SLACK-Signale von mehreren Verzögerungsüberwachungsschaltungen kombiniert werden, um mögliche Timing-Verletzungen für eine Anzahl von Pfaden der integrierten Schaltung zu identifizieren. Die CPU kann in Reaktion auf die von einer oder mehreren Verzögerungsüberwachungsschaltungen empfangenen SLACK-Signale ein Gesamtchip-Statussignal erzeugen und eine Gegenmaßnahme einleiten. Die CPU kann auch statistische Informationen bezüglich der Häufigkeit von spezifischen SLACK-Werten sammeln und eine Anzahl von kritischen Timing-Zuständen zählen und speichern.
  • 7 ist ein Logikdiagramm eines Grenzzustanddetektors 612 einer Auswertungsschaltung einer Verzögerungsüberwachungsschaltung, wenn in einem Messmodus ein Fehler auftritt. 7 zeigt eine thermometercodierte Version von Ausgangssignalen eines Zeit-Digital-Wandlers, wie zum Beispiel der Zeit-Digital-Wandler 208 von 2, welche durch die Werte der Signale Q0 - Q7 dargestellt ist. 7 zeigt auch eine thermometercodierte Version eines Schwellenwerts für die Verzögerung eines oder mehrerer Pfade der integrierten Schaltung, welche durch die Werte der Signale THRESH0 - THRESH7 dargestellt ist.
  • Die Werte der Signale Q0 - Q7 stellen eine Verzögerung einer programmierbaren Verzögerungslinie einer Verzögerungsüberwachungsschaltung dar, wobei die Verzögerungsüberwachungsschaltung genutzt wird, um einen oder mehrere Pfade einer integrierten Schaltung nachzubilden. Jedes der Ausgangssignale Q0 - Q7 kann erzeugt werden durch ein entsprechendes Flipflop einer Vielzahl von Flipflops eines Zeit-Digital-Wandlers, wie zum Beispiel die Flipflops 224 - 238 von 2. Somit können die Signale Q0 - Q7 eine Änderung im Zustand entsprechender Flipflops in einem gegebenen Taktzyklus anzeigen. Die Verzögerung eines Pfads einer integrierten Schaltung kann auf Grundlage von Signalen mit einem Wert von „1“ abgeschätzt werden. Bei dem in 7 dargestellten Beispiel ist die Länge einer abgeschätzten Verzögerung als von unten nach oben ansteigend dargestellt, so dass die kürzeste abgeschätzte Verzögerung dadurch angezeigt würde, dass Q0 - Q7 einen Wert von „1“ haben, und die längste abgeschätzte Verzögerung dadurch angezeigt würde, dass Q0 - Q7 einen Wert von „0“ haben. Bei dem speziellen Beispiel von 7 wird die Länge der abgeschätzten Verzögerung für einen Pfad einer integrierten Schaltung durch den Wert „1“ für die Signale Q7 - Q4 angezeigt.
  • Darüber hinaus zeigen die Werte der Signale THRESH0 - THRESH7 eine Schwellenwertverzögerung für einen Pfad einer integrierten Schaltung an. Die Länge einer Schwellenwertverzögerung ist ebenfalls als von unten nach oben ansteigend dargestellt, so dass die längste Schwellenwertverzögerung durch THRESH0 - THRESH7 mit einem Wert von „0“ angezeigt würde, und die kürzeste Schwellenwertverzögerung durch THRESH7 - THRESH0 mit einem Wert von „1“ angezeigt würde. Bei dem speziellen Beispiel von 7 wird die Länge der Schwellenwertverzögerung für einen Pfad einer integrierten Schaltung durch den Wert „1“ für die Signale THRESH7 - THRESH3 angezeigt.
  • Die jeweiligen Werte der Ausgangssignale Q0 - Q7 werden an eine XOR-Logik, welche eine logische Entweder-Oder-Verknüpfung bewerkstelligt, und dann an eine AND-Logik, welche eine logische Und-Verknüpfung bewerkstelligt, gesendet. Die AND-Logik empfängt auch die Signale THRESH0 - THRESH7. Die Ausgabe der XOR-Logik zeigt eine Differenz zwischen zwei aufeinanderfolgenden Signalen an. Zum Beispiel zeigt eine Ausgabe von „0“ der XOR-Logik denselben Wert für zwei aufeinanderfolgende Signale an, wie zum Beispiel den Wert „0“ für die Signale Q1 und Q2 oder den Wert „1“ für die Signale Q4 und Q5. Eine Ausgabe von „1“ der XOR-Logik zeigt einen Unterschied zwischen den Werten von zwei aufeinanderfolgenden Signalen an. Wenn zum Beispiel die XOR-Logik den Werte der Signale von Q3 und Q4 aufnimmt, ruft dies eine Ausgabe von „1“ hervor, weil der Wert des Signals Q3 „0“ ist, und der Wert des Signals Q4 „1“ ist.
  • Die AND-Logik erzeugt eine „1“, wenn die Eingangswerte von der XOR-Logik und die entsprechenden Werte für die Signale THRESH0 - THRESH7 beide „1“ sind, und die AND-Logik erzeugt eine „0“ für andere Kombinationen von Eingangswerten. Wenn die Länge der abgeschätzten Verzögerung für einen Pfad einer integrierten Schaltung geringer ist als die Schwellenwertverzögerung ist die Ausgabe für jede Instanz der AND-Logik „0“. Wenn jedoch die Länge der abgeschätzten Verzögerung für einen Pfad einer integrierten Schaltung die Schwellenwertverzögerung übersteigt, ist die Ausgabe einer Instanz der AND-Logik „1“. Die Ausgabe jeder Instanz der AND-Logik wird an eine OR-Logik gesendet, welche eine logische Oder-Verknüpfung bewirkt. Wenn das Ausgangssignal einer Instanz der AND-Logik „1“ ist, ist die Ausgabe der OR-Logik ebenfalls „1“, was einen Fehler anzeigt. Wenn das Ausgangssignal jeder Instanz der AND-Logik „0“ ist, ist die Ausgabe der OR-Logik „0“, was anzeigt, dass kein Fehler auftritt.
  • Wie in 7 dargestellt, wird eine Differenz der abgeschätzten Verzögerung eines Pfades der integrierten Schaltung und der Schwellenwertverzögerung erfasst. Insbesondere ist die abgeschätzte Verzögerung für den Pfad der integrierten Schaltung größer als die Schwellenwertverzögerung, was durch die Nichtübereinstimmung zwischen der „0“ von Q3 und der „1“ von THRESH3 angezeigt wird. Somit ist die Ausgabe der schraffierten Instanz der AND-Logik „1“, was eine Ausgabe von „1“ an der OR-Logik hervorruft. Folglich ist das binäre Signal Status, welches von dem Grenzzustanddetektor 612 bereitgestellt wird, ein Warnsignal, das bezüglich des speziellen ausgewerteten Pfads der integrierten Schaltung anzeigt, dass ein Fehler auftritt oder bevorsteht.
  • 8 ist ein Logikdiagramm eines Grenzzustanddetektors 612 einer Auswertungsschaltung einer Verzögerungsüberwachungsschaltung, wenn in einem Messmodus kein Fehler erfasst wird. Die Anordnung von XOR-Logik und AND-Logik in 8 ist ähnlich zu der Anordnung von XOR-Logik und AND-Logik von 7. Außerdem empfängt der Grenzzustanddetektor 612 von 8 ebenfalls die Werte von Signalen Q0 - Q7 von einem Zeit-Digital-Wandler, welche eine abgeschätzte Verzögerungslänge für einen Pfad einer integrierten Schaltung anzeigen, und die Werte von Signalen THRESH0 - THRESH7, welche einen Schwellenwert für die Verzögerung des Pfades der integrierten Schaltung anzeigen. Bei dem speziellen Beispiel von 8 wird die Länge einer abgeschätzten Verzögerung für einen Pfad einer integrierten Schaltung durch den Wert „1“ für die Signale Q7 - Q2 angezeigt, und die Länge der Schwellenwertverzögerung für einen Pfad einer integrierten Schaltung wird durch den Wert „1“ für die Signale THRESH7 - THRESH3 angezeigt. Folglich ist die abgeschätzte Verzögerungslänge eines Pfades einer integrierten Schaltung geringer als der Schwellenwert für die Verzögerung des Pfades, was durch die Nichtübereinstimmung zwischen der „1“ von Q2 und der „0“ von THRESH2 angezeigt wird. Somit ist der Wert für jede Instand der AND-Logik „0“ und der Wert der OR-Logik ist „0“. Wenn der Wert der OR-Logik „0“ ist, zeigt das Signal Status des Grenzzustanddetektors 612 bezüglich des speziellen ausgewerteten Pfads der integrierten Schaltung an, dass kein Fehler auftritt.
  • Die über die in 6 - 8 dargestellten Grenzzustanddetektoren erzeugten Status-Signale können in einer CPU gesammelt werden. Bei einem Ausführungsbeispiel, wenn eine oder mehrere Verzögerungsüberwachungsschaltungen auf einer integrierten Schaltung angeordnet sind, um Verzögerungsvariationen an verschiedenen Chip-Positionen an verschiedenen funktionalen Blöcken zu messen, können die Status-Signale von mehreren Grenzzustanddetektoren in der CPU kombiniert werden. Die CPU kann basierend auf den von den mehreren Grenzzustanddetektoren der integrierten Schaltung empfangenen Signalen ein Gesamtchip-statussignal erzeugen und/oder eine Gegenmaßnahme einleiten. Die CPU kann mit der Leistungsmanagementeinheit der integrierten Schaltung und/oder einer Phasenregelschleife (PLL: „Phase Locked Loop“) verbunden sein, um eine oder mehrere Gegenmaßnahmen einzuleiten. Die Gegenmaßnahmen können beinhalten, dass die Versorgungsspannung geändert wird und/oder die Taktfrequenz reduziert wird. Eine weitere Gegenmaßnahme kann beinhalten, ein lokales Takt-Gating zu veranlassen, um den Takt an bestimmten funktionalen Blöcken der integrierten Schaltung anzuhalten. Die CPU kann auch eine Zähleinheit beinhalten, um die Anzahl von kritischen Zuständen, welche durch die Status-Signale angezeigt werden, zu zählen und speichern und statistische Informationen bezüglich der Häufigkeit von Werten der Status-Signale zu erzeugen.
  • 9 ist ein Timing-Diagramm, welches ein Beispiel zur Messung einer Verzögerung einer programmierbaren Verzögerungslinie einer Verzögerungsüberwachungsschaltung zeigt. 9 veranschaulicht die Eingabe eines Eingangssignals, wie z.B. ein 0-1-Übergang, von einem sendenden Flipflop in eine programmierbare Verzögerungslinie an einer ersten ansteigenden Taktflanke, EDGE1. Bei einem speziellen Beispiel kann das Eingangssignal das Signal QIN von 2 sein, welches von dem Eingabe-Flipflop 202 an die programmierbare Verzögerungslinie 204 geliefert wird. Bei einem alternativen Ausführungsbeispiel kann das Eingangssignal an einer ersten abfallenden Taktflanke eingegeben werden.
  • Die Verzögerung der programmierbaren Verzögerungslinie ist das Ausmaß an Zeit, welche verstreicht von dem Empfang des Eingangssignals an der programmierbaren Verzögerungslinie bis zu einer Änderung des Zustand eines empfangenden Flipflops, welches mit einem ersten Verzögerungselement aus einer Vielzahl von Verzögerungselementen mit der programmierbaren Verzögerungslinie gekoppelt ist. Die Verzögerungselemente können jeweils mit einem entsprechenden empfangenden Flipflop gekoppelt sein, und die Verzögerungselemente und empfangenden Flipflops können verwendet werden, um die Verzögerung der programmierbaren Verzögerungslinie zu messen. Bei einem bestimmten Beispiel können die Verzögerungselemente in Reihe gekoppelt sein, wie beispielsweise die Verzögerungselemente 210 - 222 von 2 und können mit entsprechenden empfangenden Flipflops gekoppelt sein, wie zum Beispiel die Abtast-Flipflops 224 - 238 von 2.
  • Bei 9 zeigen die Signale D7 - D4 ein Eingangssignal an, welches entsprechenden Verzögerungselementen zugeführt ist. Zum Beispiel stellt D7 das Eingangssignal dar, welches einem ersten Verzögerungselement und entsprechenden empfangenden Flipflop (z.B. 210 und 238 von 2) zugeführt ist, und D6 stellt das Eingangssignal dar, welches einem zweiten Verzögerungselement und entsprechenden empfangenden Flipflop (z.B. 212 und 236 von 2) zugeführt ist. Außerdem zeigen die gestrichelten Linien Q7 - Q4 eine Zustandsänderung der entsprechenden empfangenden Flipflops bei Aufnahme des Eingangssignals an. Zur Veranschaulichung, wenn das Eingangssignal ein 0-1-Übergang ist, kann sich der Zustand der empfangenden Flipflops von „0“ auf „1“ ändern, wenn das Eingangssignal aufgenommen wird. Die TDC-Stufenverzögerung zeigt ein Ausmaß an Zeit an, welches das Eingangssignal benötigt, sich von einem Verzögerungselement zu einem nachfolgenden Verzögerungselement auszubreiten.
  • Der Zustand der empfangenden Flipflops wird an einer zweiten ansteigenden Taktflanke, EDGE2, abgetastet. Bei einem alternativen Ausführungsbeispiel kann der Zustand der empfangenden Flipflops an einer zweiten abfallenden Taktflanke abgetastet werden. Bei dem in 9 dargestellten Beispiel ändern die empfangenden Flipflops, welche die Signale D7, D6 und D5 aufnehmen, ihren Zustand vor der Taktflanke EDGE2, aber das empfangende Flipflop, welches das Signal D4 aufnimmt, ändert seinen Zustand vor der Taktflanke EDGE2 nicht. In einem Kalibrierungsmodus der programmierbaren Verzögerungslinie kann die Anzahl von empfangenden Flipflops, welche ihren Zustand ändern, verwendet werden, um die Verzögerung der programmierbaren Verzögerungslinie zu messen. Zum Beispiel ändern umso weniger empfangende Flipflops ihren Zustand vor der Taktflanke EDGE2, je länger die Verzögerung der programmierbaren Verzögerungslinie wird. Außerdem ändern umso mehr empfangende Flipflops ihren Zustand vor der Taktflanke EDGE2, je kürzer die Verzögerung der programmierbaren Verzögerungslinie wird. Somit kann die Verzögerung der programmierbaren Verzögerungslinie in einem einzigen Taktzyklus gemessen werden.
  • Die Anzahl von empfangenden Flipflops, welche ihren Zustand vor der Taktflanke EDGE2 ändern, kann mit einem Zielwert verglichen werden, welcher eine Zielverzögerung für die programmierbare Verzögerungslinie anzeigt. Wenn die Anzahl von Flipflops, welche vor der Taktflanke EDGE2 ausgelöst werden, geringer ist als der Zielwert, dann kann die Verzögerung der programmierbaren Verzögerungslinie verringert werden, so dass mehr empfangende Flipflops vor der Taktflanke EDGE2 ausgelöst werden, um sich dem Zielwert anzupassen. Außerdem kann, wenn die Anzahl von Flipflops, welche vor der Taktflanke EDGE2 ausgelöst werden, mehr als der Zielwert ist, die Verzögerung der programmierbaren Verzögerungslinie erhöht werden, so dass weniger empfangende Flipflops ihren Zustand vor der Taktflanke EDGE2 ändern, um sich dem Zielwert anzupassen.
  • 10A veranschaulicht Werte von Ausgangssignalen von Abtast-Flipflops eines Zeit-Digital-Wandlers im Verhältnis zu Zielwerten der Ausgangssignale, welche anzeigen, dass die Verzögerung einer programmierbaren Verzögerungslinie in einem Kalibrierungsmodus zu erhöhen ist. 10B veranschaulicht Werte von Ausgangssignalen von Abtast-Flipflops eines Zeit-Digital-Wandlers im Verhältnis zu Zielwerten der Ausgangssignale, welche anzeigen, dass die Verzögerung einer programmierbaren Verzögerungslinie in einem Kalibrierungsmodus zu verringern ist. Die programmierbare Verzögerungslinie und der Zeit-Digital-Wandler können in einer Verzögerungsüberwachungsschaltung enthalten sein, wie zum Beispiel in der Verzögerungsüberwachungsschaltung 200 von 2, welche genutzt wird, um die Verzögerung eines Pfades einer integrierten Schaltung abzuschätzen. Die Verzögerung der programmierbaren Verzögerungslinie kann durch die Ausgangssignale Q0 - Q7 dargestellt sein, welche durch Abtast-Flipflops des Zeit-Digital-Wandlers erzeugt werden, wenn die Zustände der Abtast-Flipflops abgetastet werden, wie zum Beispiel während einer gegebenen ansteigenden oder abfallenden Taktflanke. Der Zustand der Abtast-Flipflops hängt davon ab, ob das jeweilige Abtast-Flipflop vor der Abtastung der Zustände der Abtast-Flipflops ein einem 0-1-Übergang entsprechendes Eingangssignal aufgenommen hat.
  • Bei den veranschaulichenden Beispielen von 10A und 10B stellt der Wert des Signals Q7 einen Zustand eines ersten Abtast-Flipflops dar, welches ein einem 0-1-Übergang entsprechendes Eingangssignal aufnimmt, nachdem das Eingangssignal sich durch die programmierbare Verzögerungslinie ausgebreitet hat. Der Wert des Signals Q0 stellt einen Zustand eines letzten Abtast-Flipflops dar, welches das einem 0-1-Übergang entsprechende Eingangssignal aufnimmt, nachdem sich das Eingangssignal durch die programmierbare Verzögerungslinie ausgebreitet hat. Somit erhöht sich die Verzögerung der programmierbaren Verzögerungslinie, wenn die Werte der Signale Q7 - Q0 sich von unten nach oben von „0“ auf „1“ ändern. Zum Beispiel würde eine kürzeste Verzögerung der programmierbaren Verzögerungslinie als ein Wert von „1“ für jedes der Signale Q0 - Q7 dargestellt werden, weil alle Abtast-Flipflops in der Lage wären, ihren Zustand zu ändern, bevor die Zustände der Flipflops abgetastet werden. Außerdem würde eine längste Verzögerung der programmierbaren Verzögerungslinie dargestellt werden als ein Wert von „0“ für jedes der Signale Q0 - Q7, weil keines der Abtast-Flipflops in der Lage wäre, seinen Zustand zu ändern, bevor die Zustände der Flipflops abgetastet werden.
  • Ein Fehlerpunkt kann durch das Ausgangssignal Q7 angezeigt werden. Somit stellt die Verzögerung der programmierbaren Verzögerungslinie, welche damit verbunden ist, dass das Signal Q7 erzeugende Abtast-Flipflop ausgelöst wird, die kürzeste Verzögerung eines Pfades einer integrierten Schaltung ohne Verursachung einer Timing-Verletzung dar. Wenn folglich der Wert des Signals Q7 „0“ ist, kann bezüglich des Pfads der integrierten Schaltung eine Timing-Verletzung auftreten oder bevorstehen, und wenn der Wert des Signals Q7 „1“ ist, kann eine Timing-Verletzung für den Pfad der integrierten Schaltung nicht auftreten.
  • Die erste Spalte von Werten für die Signale Q0 - Q7 in 10A und 10B sind die Werte der Signale Q0 - Q7, wie sie im Kalibrierungsmodus der Verzögerungsüberwachungsschaltung gemessen werden. Außerdem sind die zweite Spalte von Werten für die Signale Q0 - Q7 in 10A und 10B die Zielwerte für die Signale Q0 - Q7. Die Zielwerte für die Signale Q0 - Q7 stellen eine Zielverzögerung für einen bestimmten Pfad der integrierten Schaltung dar.
  • Die führende „1“ von 10A und 10B ist das Ausgangssignal des letzten Abtast-Flipflops, welches seinen Zustand ändert, bevor die Zustände der Abtast-Flipflops abgetastet werden. Die führende „1“ von 10A wird durch das Ausgangssignal Q1 dargestellt. Außerdem wird die führende „1“ von 10B durch das Ausgangssignal Q6 dargestellt. Der Zielwert für die führende „1“ von 10A und 10B stellt ein Ziel-Abtast-Flipflop dar, welches seinen Zustand ändern soll, bevor die Zustände der Abtast-Flipflops abgetastet werden. Die Differenz zwischen dem Zielwert für die führende „1“ und dem Fehlerpunkt ist die Schlupfmarge.
  • Bei 10A sind die in dem Kalibrierungsmodus abgetasteten Werte der Signale Q0 - Q7 unterschiedlich von den Zielwerten der Signale Q0 - Q7, was anzeigt, dass die Verzögerung der programmierbaren Verzögerungslinie angepasst werden sollte, um die Verzögerung eines Pfades der integrierten Schaltung genauer abzuschätzen. Weil die führende „1“ im Kalibrierungsmodus bei Q1 auftritt und der Zielwert für die führende „1“ bei Q3 liegt, ist insbesondere die Verzögerung der programmierbaren Verzögerungslinie zu kurz. Folglich kann die Verzögerung der programmierbaren Verzögerungslinie erhöht werden, um eine führende „1“ bei der Position des Signals Q3 zu erzeugen, so dass dem Zielwert für die führende „1“ entsprochen wird.
  • In 10B sind die in dem Kalibrierungsmodus abgetasteten Werte der Signale Q0 - Q7 ebenfalls unterschiedlich von den Zielwerten für die Signale Q0 - Q7, was anzeigt, dass die Verzögerung der programmierbaren Verzögerungslinie angepasst werden sollte, um die Verzögerung eines Pfades der integrierten Schaltung genauer abzuschätzen. Da die führende „1“ der Kalibrierungsmodusausgabe bei Q6 auftritt und der Zielwert für die führende „1“ bei Q3 liegt, ist die Verzögerung der programmierbaren Verzögerungslinie zu lang. Folglich kann die Verzögerung der programmierbaren Verzögerungslinie verringert werden, um eine führende „1“ bei Q3 zu erzeugen, so dass dem Zielwert für die führende „1“ entsprochen wird.
  • 11 veranschaulicht die Ausgangssignale von Abtast-Flipflops einer Verzögerungsüberwachungsschaltung für eine kalibrierte programmierbare Verzögerungslinie an vier unterschiedlichen Zeitpunkten, Zeitpunkt I - Zeitpunkt IV, in einem Messmodus. Die programmierbare Verzögerungslinie der Verzögerungsüberwachungsschaltung kann eine Verzögerung eines oder mehrerer Pfade einer integrierten Schaltung abschätzen.
  • Bei dem veranschaulichenden Beispiel von 11 stellt der Wert des Signal Q7 einen Zustand eines ersten Abtast-Flipflops dar, welches ein einem 0-1-Übergang entsprechendes Eingangssignal aufnimmt, nachdem das Eingangssignal sich durch die programmierbare Verzögerungslinie ausgebreitet hat. Der Wert des Signals Q0 stellt den Zustand eines letzten Abtast-Flipflops dar, welches das einem 0-1-Übergang entsprechende Eingangssignal aufnimmt, nachdem sich das Eingangssignal durch die programmierbare Verzögerungslinie ausgebreitet hat. Ein Fehlerpunkt kann durch das Ausgangssignal Q7 angezeigt werden. Die Verzögerung der programmierbaren Verzögerungslinie, welche mit Auslösen des das Signal Q7 erzeugenden Abtast-Flipflops verbunden ist, stellt somit die längste Verzögerung eines Pfads der integrierten Schaltung dar, welche keine Timing-Verletzung hervorrufen würde. Die Schlupfmarge zeigt eine Differenz zwischen dem letzten Abtast-Flipflop, welches ein einem O-l-Übergang entsprechendes Eingangssignal aufnimmt, bevor die Zustände der Abtast-Flipflops abgetastet werden, und dem Fehlerpunkt an.
  • Die erste Spalte von 11 beinhaltet die Werte von Ausgangssignalen von Abtast-Flipflops eines Zeit-Digital-Wandlers der Verzögerungsüberwachungsschaltung, wenn eine programmierbare Verzögerungslinie der Verzögerungsüberwachungsschaltung kalibriert wurde. Zum Zeitpunkt I werden die Zustände der Abtast-Flipflops abgetastet, und die Werte der Ausgangssignale der Abtast-Flipflops sind in der zweiten Spalte von 11 dargestellt. Die Werte der Ausgangssignale Q0 - Q7 zeigen an, dass die Schlupfmarge am Zeitpunkt I abnimmt. Eine Verzögerung des überwachten Schaltungspfads kann somit im Begriff sein anzusteigen.
  • Zum Zeitpunkt II werden die Zustände der Abtast-Flipflops abgetastet, und die Werte der Ausgangssignale der Abtast-Flipflops sind in der dritten Spalte von 11 dargestellt. Die Werte der Ausgangssignale Q0 - Q7 am Zeitpunkt II zeigen eine weitere Abnahme der Schlupfmarge an. Die in der dritten Spalte von 11 dargestellte Schlupfmarge kann wegen der fortgesetzten Abnahme der Verzögerung des Pfads der integrierten Schaltung anzeigen, dass der Zustand des überwachten Pfads der integrierten Schaltung kritisch ist.
  • Zum Zeitpunkt III werden die Zustände der Abtast-Flipflops abgetastet und die Werte der Ausgangssignale der Abtast-Flipflops sind in der vierten Spalte von 11 dargestellt. Die Werte der Ausgangssignale Q0 - Q7 zum Zeitpunkt III zeigen, dass bezüglich des überwachten Pfads der integrierten Schaltung die Schlupfmarge überschritten wurde und das eine Timing-Verletzung aufgetreten ist oder bevorsteht, weil die Verzögerung des Pfads der integrierten Schaltung zu lang ist und die Taktperiode überschritten hat.
  • Zum Zeitpunkt IV werden die Zustände der Abtast-Flipflops abgetastet und die Werte Ausgangssignale der Abtast-Flipflops sind in der fünften Spalte von 11 dargestellt. Die Werte der Ausgangssignale Q0 - Q7 zum Zeitpunkt IV zeigen, dass die Schlupfmarge angestiegen ist und das der überwachte Pfad der integrierten Schaltung nicht in einem kritischen Zustand ist. Zum Beispiel kann die Schlupfmarge angestiegen sein, weil die dem überwachten Pfad der integrierten Schaltung zugeführte Versorgungsspannung in der Lage war, sich zu erholen, und die Verzögerung des Pfads der integrierten Schaltung sich verringert hat.
  • 12 ist ein Flussdiagramm eines Verfahrens 1200 zur Verzögerungskalibrierung einer Verzögerungsüberwachungsschaltung. Details von beispielhaften Verfahren werden nachfolgend beschrieben. Es versteht sich jedoch, dass abhängig von den Umständen bestimmte Maßnahmen nicht in der beschriebenen Reihenfolge durchgeführt werden müssen, modifiziert werden können, und/oder vollständig ausgelassen werden können.
  • Bei 1202 beinhaltet das Verfahren 1200 eine Aktivierung eines Kalibrierungsmodus einer Verzögerungsüberwachungsschaltung einer integrierten Schaltung. Die Verzögerungsüberwachungsschaltung kann die Verzögerung abschätzen, welche mit einem oder mehreren Pfaden der integrierten Schaltung verbunden ist, um mögliche Timing-Verletzungen zu identifizieren und geeignete Gegenmaßnahmen auszulösen. Insbesondere kann eine programmierbare Verzögerungslinie der Verzögerungsüberwachungsschaltung die Verzögerung des einen oder der mehreren Pfade der integrierten Schaltung nachbilden.
  • Der Kalibrierungsmodus kann aktiviert werden aufgrund von Änderungen der Taktfrequenz und/oder Versorgungsspannung, welche von Prozessen benötigt wird, die von der integrierten Schaltung ausgeführt werden. Zum Beispiel kann die integrierte Schaltung übergehen von der Ausführung von Prozessen einer ersten Anwendung, welche einen Satz von Taktfrequenz- und Versorgungsspannungseinstellungen erfordern, zur Ausführung von Prozessen einer zweiten Anwendung, welche einen anderen Satz von Taktfrequenz- und Versorgungsspannungseinstellungen erfordern. Mit sich ändernden Taktfrequenz- und/oder Versorgungsspannungserfordernissen kann sich auch die mit bestimmten Pfaden der integrierten Schaltung verbundene Verzögerung ändern. Daher kann es nötig sein, dass die Einstellungen der programmierbaren Verzögerungslinie angepasst werden, um die mit dem überwachten Pfad bzw. mit den überwachten Pfaden der integrierten Schaltung verbundene Verzögerung genauer abzuschätzen.
  • Bei 1204 beinhaltet das Verfahren 200 eine Messung einer Verzögerung der programmierbaren Verzögerungslinie der Verzögerungsüberwachungsschaltung. Die Verzögerung der programmierbaren Verzögerungslinie kann gemessen werden über einen Zeit-Digital-Wandler, welcher mit der programmierbaren Verzögerungslinie gekoppelt ist. Der Zeit-Digital-Wandler kann eine Anzahl von Verzögerungselementen beinhalten, welche jeweils mit einem entsprechenden Abtast-Flipflop gekoppelt sind. Als veranschaulichendes Beispiel können die mehreren Verzögerungselemente in Reihe gekoppelt sein, wie beispielsweise die Verzögerungselemente 210 - 222 von 2, und können mit entsprechenden empfangenden Flipflops gekoppelt sein, wie beispielsweise die Abtast-Flipflops 224 - 238 von 2.
  • Der Zeit-Digital-Wandler kann die Verzögerung der programmierbaren Verzögerungslinie auf Grundlage der Ausgangssignale der Abtast-Flipflops messen. Bei einem veranschaulichenden Ausführungsbeispiel kann ein einem 0-1-Übergang entsprechendes Eingangssignal der programmierbaren Verzögerungslinie an einer ersten ansteigenden oder abfallenden Taktflanke zugeführt werden, und die Zustände der Abtast-Flipflops können an einer zweiten ansteigenden oder abfallenden Taktflanke abgetastet werden. Die Anzahl von Abtast-Flipflops, welche ihren Zustand vor der zweiten ansteigenden oder abfallenden Taktflanke ändern, zeigt die Verzögerung der programmierbaren Verzögerungslinie an. Wenn zum Beispiel eine größere Anzahl der Abtast-Flipflops ihren Zustand vor der zweiten ansteigenden oder abfallenden Taktflanke ändert, ist die Verzögerung der programmierbaren Verzögerungslinie kürzer, als wenn eine kleinere Anzahl der Abtast-Flipflops ihren Zustand vor der zweiten ansteigenden oder abfallenden Taktflanke ändert.
  • Bei 1206 beinhaltet das Verfahren 1200 ein Vergleichen der Verzögerung der programmierbaren Verzögerungslinie mit einem Zielwert. Der Zielwert kann einen bestimmten Wert für die Verzögerung eines Pfads einer integrierten Schaltung darstellen, welcher durch die programmierbare Verzögerungslinie nachgebildet wird.
  • Bei 1208 beinhaltet das Verfahren 1200 ein Bestimmen, ob die Verzögerung der programmierbaren Verzögerungslinie anzupassen ist oder nicht. Wenn die Verzögerung der programmierbaren Verzögerungslinie sich von dem Zielwert unterscheidet, dann kann die Verzögerung der programmierbaren Verzögerungslinie angepasst werden. Wenn zum Beispiel die Verzögerung der programmierbaren Verzögerungslinie zu lang ist, kann eine Auswertungsschaltung der Verzögerungsüberwachungsschaltung ein Rückkopplungssignal an ein Konfigurationsregister senden, welches die Verzögerung der programmierbaren Verzögerungslinie steuert und spezifiziert, dass die Verzögerung der programmierbaren Verzögerungslinie verringert werden sollte. Außerdem kann, wenn die Verzögerung der programmierbaren Verzögerungslinie zu kurz ist, das Rückkopplungssignal der Auswertungsschaltung spezifizieren, dass die Verzögerung der programmierbaren Verzögerungslinie ansteigen soll.
  • Bei 1210 beinhaltet das Verfahren 1200 ein Aktivieren eines Messmodus der Verzögerungsüberwachungsschaltung der integrierten Schaltung. Nachdem die Verzögerung der programmierbaren Verzögerungslinie kalibriert wurde, kann der Messmodus der Verzögerungsüberwachungsschaltung aktiviert werden. In dem Messmodus kann die Verzögerung der programmierbaren Verzögerungslinie gemessen werden, um in Echtzeit eine Abschätzung der Verzögerung eines Pfades der integrierten Schaltung bereitzustellen. Somit kann die Verzögerung der programmierbaren Verzögerungslinie verwendet werden, um zu bestimmen, ob die Verzögerung des Pfads der integrierten Schaltung sich einem kritischen Wert annähert. Wenn zum Beispiel die Verzögerung der programmierbaren Verzögerungslinie einen bestimmten Wert erreicht, welcher größer oder gleich einem Schwellenwert ist, kann die Verzögerung des Pfads der integrierten Schaltung eine Timing-Verletzung verursachen, oder eine Timing-Verletzung kann bevorstehen. Wenn die Verzögerung der programmierbaren Verzögerungslinie anzeigt, dass sich die Verzögerung des Pfads der integrierten Schaltung einem kritischen Wert annähert, kann die Verzögerungsüberwachungsschaltung ein Signal liefern, um eine Gegenmaßnahme zur Vermeidung oder Korrektur einer Timing-Verletzung einzuleiten.
  • In dieser Beschreibung und den nachfolgenden Ansprüchen werden die Ausdrücke „gekoppelt“ und „verbunden“ verwendet, um zu beschreiben, auf welche Weise verschiedene Elemente zusammenhängen. Ein solches beschriebenes Zusammenhängen von verschiedenen Elementen kann entweder direkt oder indirekt sein. Obwohl hierin Gegenstände mit Ausdrücken beschrieben wurden, welche spezifisch für strukturelle Merkmale und/oder Verfahrensschritte sind, versteht es sich, dass die in den nachfolgenden Ansprüchen definierten Gegenstände nicht notwendigerweise auf die beschriebenen speziellen Merkmale beschränkt sind. Vielmehr sind die beschriebenen spezifischen Merkmale, Verfahrensschritte und Maßnahmen als bevorzugte Formen zur Implementierung der Ansprüche offenbart. Die hierin beschriebenen spezifischen Merkmale, Verfahrensschritte und Maßnahmen sowie Variationen dieser spezifischen Merkmale, Verfahrensschritte und Maßnahmen können separat implementiert werden oder miteinander geeignet kombiniert werden.

Claims (23)

  1. Schaltungsanordnung, umfassend: ein Eingabe-Flipflop (202); eine programmierbare Verzögerungslinie (120; 204), welche mit dem Eingabe-Flipflop (202) gekoppelt ist, wobei die programmierbare Verzögerungslinie (120; 204) eine Konfigurationseinheit (206) umfasst; einen Zeit-Digital-Wandler (122; 208), welcher mit der programmierbaren Verzögerungslinie (120; 204) gekoppelt ist, wobei der Zeit-Digital-Wandler (122; 208) wenigstens ein Verzögerungselement (210, 212, 214, 216, 218, 220, 222) umfasst, welches mit einem entsprechenden Abtast-Flipflop (224, 226, 228, 230, 232, 234, 236, 238) gekoppelt ist, wobei wenigstens ein Ausgangssignal des Abtast-Flipflops (224, 226, 228, 230, 232, 234, 236, 238) des Zeit-Digital-Wandler (122, 208) eine gemessene Verzögerung in der programmierbaren Verzögerungslinie (120; 204) repräsentiert; und eine Rückkopplungsschleife (124; 242), welche mit dem Zeit-Digital-Wandler (122; 208) und der Konfigurationseinheit (206) gekoppelt ist, wobei die Rückkopplungsschleife (124; 242) dazu ausgestaltet ist, die gemessene Verzögerung mit einem Zielwert zu vergleichen und abhängig von dem Vergleich wenigstens ein Eingangssignal an die Konfigurationseinheit (206) zu liefern.
  2. Schaltungsanordnung nach Anspruch 1, wobei die Rückkopplungsschleife (124; 242) eine Auswertungsschaltung (240) umfasst, um das wenigstens eine Ausgangssignal von dem Abtast-Flipflop (224, 226, 228, 230, 232, 234, 236, 238) des Zeit-Digital-Wandlers (122; 208) aufzunehmen und das wenigstens eine Eingangssignal an die Konfigurationseinheit (206) zu liefern.
  3. Schaltungsanordnung nach Anspruch 1 oder 2, wobei die Rückkopplungsschleife (124; 242) dazu ausgestaltet ist, das wenigstens eine Eingangssignal in einem Kalibrierungsmodus an die Konfigurationseinheit (206) zu liefern.
  4. Schaltungsanordnung nach einem der vorhergehenden Ansprüche, wobei die Konfigurationseinheit (206) eine Arithmetik-Logik-Einheit (326) und ein Konfigurationsregister (324) umfasst, wobei die Arithmetik-Logik-Einheit (326) mit der Rückkopplungsschleife (124; 242) und dem Konfigurationsregister (324) gekoppelt ist, wobei das Konfigurationsregister (324) dazu ausgestaltet ist, wenigstens eine Konfigurationseinstellung der programmierbaren Verzögerungslinie (120; 204) zu speichern, und wobei die Arithmetik-Logik-Einheit (326) dazu ausgestaltet ist, wenigstens ein Signal an das Konfigurationsregister (324) zu liefern, um die wenigstens eine Konfigurationseinstellung der programmierbaren Verzögerungslinie (120; 204) basierend auf dem wenigstens einen von der Rückkopplungsschleife (124; 242) empfangenen Eingangssignal zu ändern.
  5. Schaltungsanordnung nach einem der vorhergehenden Ansprüche, wobei die Rückkopplungsschleife (124; 242), die Konfigurationseinheit (206) und die programmierbare Verzögerungslinie (120; 204) dazu ausgestaltet sind, einen Digital-Zeit-Wandler bereitzustellen.
  6. Schaltungsanordnung nach einem der vorhergehenden Ansprüche, wobei die Rückkopplungsschleife (124; 242) dazu ausgestaltet ist, in einem Messmodus das wenigstens eine Eingangssignal nicht an die Konfigurationseinheit (206) zu liefern.
  7. Schaltungsanordnung nach einem der vorhergehenden Ansprüche, wobei das Eingabe-Flipflop (202), die programmierbare Verzögerungslinie (120; 204), der Zeit-Digital-Wandler (208) und die Rückkopplungsschleife (124; 242) in derselben integrierten Schaltung integriert sind, und wobei ein Kalibrierungsmodus aktiviert wird, wenn von der integrierten Schaltung ausgeführte Prozesse sich von einem ersten Prozesstyp auf einen zweiten Prozesstyp ändern, wenn die integrierte Schaltung dazu ausgestaltet ist, Prozesse von mehr als einem Typ auszuführen.
  8. Schaltungsanordnung nach Anspruch 7, wobei die integrierte Schaltung dazu ausgestaltet ist, den ersten Prozesstyp und den zweiten Prozesstyp unter Nutzung einer unterschiedlichen Versorgungsspannung und/oder einer unterschiedlichen Taktfrequenz auszuführen.
  9. Verfahren, umfassend: Aktivieren eines Kalibrierungsmodus einer programmierbaren Verzögerungslinie (120; 204) einer Verzögerungsüberwachungsschaltung (200) einer integrierten Schaltung; Messen einer Verzögerung der programmierbaren Verzögerungslinie (120; 204); Vergleichen der gemessenen Verzögerung der programmierbaren Verzögerungslinie (120; 204) mit einem Zielwert; und abhängig von dem Vergleich der Verzögerung der programmierbaren Verzögerungslinie (120; 204) mit dem Zielwert, Bestimmen, ob die Verzögerung der programmierbaren Verzögerungslinie (120; 204) anzupassen ist; wobei das Aktivieren des Kalibrierungsmodus der Verzögerungsüberwachungsschaltung (200) beinhaltet, dass an einer ersten ansteigenden oder abfallenden Taktflanke ein Eingangssignal von einem Eingabe-Flipflop (202) der Verzögerungsüberwachungsschaltung (200) an die programmierbare Verzögerungslinie (120; 204) der Verzögerungsüberwachungsschaltung (200) geliefert wird.
  10. Verfahren nach Anspruch 9, wobei die Verzögerung der programmierbaren Verzögerungslinie (120; 204) in weniger als einem Taktzyklus der integrierten Schaltung gemessen wird.
  11. Verfahren nach Anspruch 9 oder 10, darüber hinaus umfassend ein Verringern der Verzögerung der programmierbaren Verzögerungslinie (120; 204), wenn die Verzögerung der programmierbaren Verzögerungslinie (120; 204) größer ist als der Zielwert.
  12. Verfahren nach einem der Ansprüche 9 bis 11, darüber hinaus umfassend ein Erhöhen der Verzögerung der programmierbaren Verzögerungslinie (120; 204), wenn die Verzögerung der programmierbaren Verzögerungslinie (120; 204) geringer ist als der Zielwert.
  13. Verfahren nach Anspruch 9, wobei das Messen der Verzögerung der programmierbaren Verzögerungslinie (120; 204) beinhaltet, dass an einer zweiten ansteigenden oder abfallenden Taktflanke ein Zustand von einem oder mehreren empfangenden Flipflops (224, 226, 228, 230, 232, 234, 236, 238) eines Zeit-Digital-Wandlers (122; 208) der Verzögerungsüberwachungsschaltung (200) abgetastet wird.
  14. Verfahren nach einem der Ansprüche 9 bis 13, darüber hinaus umfassend ein Aktivieren eines Messmodus der Verzögerungsüberwachungsschaltung (200), wobei der Messmodus umfasst: an einer ersten ansteigenden oder abfallenden Taktflanke, Liefern eines Eingangssignals aus einem Eingabe-Flipflop (202) der Verzögerungsüberwachungsschaltung (200) an die programmierbare Verzögerungslinie (120; 204); an einer zweiten ansteigenden oder abfallenden Taktflanke, Abtasten von wenigstens einem Ausgangssignal von einem oder mehreren empfangenden Flipflops (224, 226, 228, 230, 232, 234, 236, 238) eines Zeit-Digital-Wandlers (122; 208) der Verzögerungsüberwachungsschaltung (200); basierend auf dem wenigstens einen Ausgangssignal des einen oder der mehreren empfangenden Flipflops (224, 22 6, 228, 230, 232, 234, 236, 238), Messen einer zusätzlichen Verzögerung der programmierbaren Verzögerungslinie (120; 204); und durch Vergleichen der zusätzlichen Verzögerung der programmierbaren Verzögerungslinie (120; 204) mit einem Schwellenwert, Bestimmen einer Schlupfmarge der programmierbaren Verzögerungslinie (120; 204).
  15. Verfahren nach Anspruch 14, darüber hinaus umfassend ein Einleiten einer Gegenmaßnahme, wenn die Schlupfmarge kleiner oder gleich einem spezifizierten Wert ist.
  16. Verfahren nach Anspruch 15, wobei das Einleiten der Gegenmaßnahme ein Modifizieren einer Versorgungsspannung der integrierten Schaltung und/oder ein Modifizieren einer Taktfrequenz der integrierten Schaltung beinhaltet.
  17. Verfahren nach einem der Ansprüche 14 bis 16, darüber hinaus umfassend ein Bereitstellen eines Signals, welches die Schlupfmarge der programmierbaren Verzögerungslinie (120; 204) anzeigt, an einen Prozessor (104), wobei der Prozessor (104) zusätzliche Signale empfängt, welche jeweils eine Schlupfmarge von einer oder mehreren zusätzlichen Verzögerungsüberwachungsschaltungsinstanzen der integrierten Schaltung aufnimmt.
  18. Vorrichtung, umfassend: eine integrierte Schaltung (114), umfassend: eine Verarbeitungsschaltung (116) zur Ausführung eines oder mehrerer Prozesse der integrierten Schaltung (114); und eine Verzögerungsüberwachungsschaltung (118) zur Abschätzung einer Verzögerung der Verarbeitungsschaltung (116), wobei die Verzögerungsüberwachungsschaltung (118) umfasst: eine Konfigurationseinheit (206) die eingerichtet ist, eine Vielzahl von Konfigurationseinstellungen zu speichern; eine programmierbare Verzögerungslinie (120; 204), welche mit der Konfigurationseinheit (206) gekoppelt ist; einen Zeit-Digital-Wandler (122; 208), welcher mit der programmierbaren Verzögerungslinie (120; 204) gekoppelt ist und eingerichtet ist, eine Verzögerung in der Verzögerungslinie zu messen; und eine Rückkopplungsschleife (124; 242), welche mit dem Zeit-Digital-Wandler (122; 208) und der Konfigurationseinheit (206) gekoppelt ist, wobei die Rückkopplungsschleife (124; 242) eine Auswertungsschaltung (240) umfasst, welche mit der Konfigurationseinheit (206) gekoppelt ist, und wobei die Auswertungsschaltung (240) eingerichtet ist, eine der Vielzahl der Konfigurationseinstellungen basierend auf der gemessenen Verzögerung auszuwählen.
  19. Vorrichtung nach Anspruch 18, wobei wenigstens ein an die Auswertungsschaltung (240) geliefertes Ausgangssignal des Zeit-Digital-Wandlers (122; 208) eine thermometercodierte Ausgabe darstellt, welche die Verzögerung der programmierbaren Verzögerungslinie (120; 204) anzeigt.
  20. Vorrichtung nach Anspruch 19, wobei die Auswertungsschaltung (240) dazu ausgestaltet ist, Eingangssignale an die Konfigurationseinheit (206) zu liefern, indem sie thermometercodierte Ausgabe des Zeit-Digital-Wandlers(122; 208) in ein Binärsignal konvertiert.
  21. Vorrichtung nach Anspruch 19 oder 20, wobei die Auswertungsschaltung (240) einen Binärcode-Thermometercode-Konverter (614) umfasst, welcher dazu ausgestaltet ist, einen Schwellenwert für die Verzögerung der Verarbeitungsschaltung (116) von einem binärcodierten Wert in einen thermometercodierten Wert zu konvertieren.
  22. Vorrichtung nach Anspruch 21, wobei die Auswertungsschaltung (240) einen Grenzzustanddetektor (612) umfasst, welcher dazu ausgestaltet ist, die thermometercodierte Ausgabe, welche die Verzögerung der programmierbaren Verzögerungslinie (120; 204) anzeigt, mit dem thermometercodierten Wert des Schwellenwerts für die Verzögerung der Verarbeitungsschaltung (116) zu vergleichen und ein Warnsignal bereitzustellen, wenn die Verzögerung der programmierbaren Verzögerungslinie (120; 204) größer oder gleich dem Schwellenwert ist.
  23. Vorrichtung nach Anspruch 22, darüber hinaus umfassend eine Verarbeitungseinheit (104), welche dazu ausgestaltet ist, das Warnsignal von der Verzögerungsüberwachungsschaltung (118) zu empfangen und zusätzliche Warnsignale von einer oder mehreren zusätzlichen Verzögerungsüberwachungsschaltungsinstanzen zu empfangen, wobei die zentrale Verarbeitungseinheit (104) dazu ausgestaltet ist, basierend auf dem Warnsignal und den zusätzlichen Warnsignalen ein Gesamtchipstatussignal zu erzeugen, eine Gegenmaßnahme einzuleiten und/oder eine Anzahl von kritischen Timing-Zuständen zu zählen und zu speichern.
DE102011009800.3A 2010-01-29 2011-01-31 Selbstkalibrierende On-Chip-Verzögerungsüberwachungsschaltung Active DE102011009800B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/696,731 US8228106B2 (en) 2010-01-29 2010-01-29 On-chip self calibrating delay monitoring circuitry
US12/696,731 2010-01-29

Publications (2)

Publication Number Publication Date
DE102011009800A1 DE102011009800A1 (de) 2011-08-04
DE102011009800B4 true DE102011009800B4 (de) 2022-05-05

Family

ID=44316302

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102011009800.3A Active DE102011009800B4 (de) 2010-01-29 2011-01-31 Selbstkalibrierende On-Chip-Verzögerungsüberwachungsschaltung

Country Status (3)

Country Link
US (3) US8228106B2 (de)
CN (2) CN102142831B (de)
DE (1) DE102011009800B4 (de)

Families Citing this family (61)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8154335B2 (en) * 2009-09-18 2012-04-10 Stmicroelectronics Pvt. Ltd. Fail safe adaptive voltage/frequency system
US9444497B1 (en) * 2010-08-26 2016-09-13 Xilinx, Inc. Method and apparatus for adaptively tuning an integrated circuit
KR101710669B1 (ko) * 2010-09-15 2017-02-27 삼성전자주식회사 클록 지연 회로, 지연 동기 회로, 및 그것을 포함하는 반도체 메모리 장치
US10169500B2 (en) * 2011-08-08 2019-01-01 International Business Machines Corporation Critical path delay prediction
US9077375B2 (en) * 2011-12-21 2015-07-07 Intel Mobile Communications GmbH DTC system with high resolution phase alignment
DE102012212397B4 (de) 2011-12-21 2024-02-29 Apple Inc. Schaltung und Verfahren
US8680908B2 (en) * 2012-01-18 2014-03-25 Qualcomm Incorporated On-chip coarse delay calibration
US8669794B2 (en) 2012-02-21 2014-03-11 Qualcomm Incorporated Circuit for detecting a voltage change using a time-to-digital converter
US9147620B2 (en) * 2012-03-28 2015-09-29 Teradyne, Inc. Edge triggered calibration
CN103457596A (zh) * 2012-06-05 2013-12-18 国民技术股份有限公司 一种延时补偿电路及方法
JP2014045268A (ja) * 2012-08-24 2014-03-13 Toshiba Corp 時間デジタル変換回路、および、デジタル時間変換回路
US8781049B1 (en) * 2012-12-27 2014-07-15 Intel Mobile Communications GmbH Signal delay estimator with absolute delay amount and direction estimation
KR102013840B1 (ko) 2013-03-15 2019-08-23 삼성전자주식회사 다중 위상 생성기
JP6201401B2 (ja) * 2013-04-26 2017-09-27 富士通株式会社 タイミング制御回路
US9118371B2 (en) * 2013-05-21 2015-08-25 Mediatek Inc. Digital transmitter and method for compensating mismatch in digital transmitter
US9876501B2 (en) * 2013-05-21 2018-01-23 Mediatek Inc. Switching power amplifier and method for controlling the switching power amplifier
US8887120B1 (en) 2013-12-27 2014-11-11 Freescale Semiconductor, Inc. Timing path slack monitoring system
US9438265B2 (en) * 2014-01-14 2016-09-06 Intel Corporation Phase multiplexer
US9312837B2 (en) 2014-08-05 2016-04-12 Apple Inc. Dynamic margin tuning for controlling custom circuits and memories
WO2016029000A2 (en) * 2014-08-20 2016-02-25 Zaretsky, Howard Split transformer based lc-tank digitally controlled oscillator
US9996645B2 (en) * 2015-04-06 2018-06-12 Synopsys, Inc. Method and apparatus for modeling delays in emulation
TWI606322B (zh) * 2015-06-22 2017-11-21 聯華電子股份有限公司 訊號監測積體電路以及訊號監測方法
US10630075B2 (en) 2015-10-30 2020-04-21 Intel IP Corporation Multi-level output circuit having centralized ESD protection
CN106788350A (zh) * 2015-11-18 2017-05-31 凌阳科技股份有限公司 工作时钟信号调整装置
US9735679B2 (en) * 2015-12-03 2017-08-15 Nuvoton Technology Corporation Method and apparatus for a delay locked power supply regulator
US9569571B1 (en) 2015-12-10 2017-02-14 International Business Machines Corporation Method and system for timing violations in a circuit
EP3179260B1 (de) * 2015-12-10 2018-09-26 Stichting IMEC Nederland Vorrichtung und verfahren zur überwachung der leistung einer integrierten schaltung
US9641185B1 (en) * 2016-06-30 2017-05-02 Intel IP Corporation Digital time converter systems and method
KR102546302B1 (ko) 2016-07-08 2023-06-21 삼성전자주식회사 클락 지터 측정 회로 및 이를 포함하는 반도체 장치
US9935762B2 (en) * 2016-07-19 2018-04-03 Qualcomm Incorporated Apparatus and method for centering clock signal in cumulative data eye of parallel data in clock forwarded links
CN108304019B (zh) * 2017-01-12 2020-12-01 新唐科技股份有限公司 电压调整器
US10332574B2 (en) 2017-03-24 2019-06-25 Mediatek Inc. Embedded memory with setup-hold time controlled internally or externally and associated integrated circuit
US10048316B1 (en) 2017-04-20 2018-08-14 Qualcomm Incorporated Estimating timing slack with an endpoint criticality sensor circuit
US10230360B2 (en) * 2017-06-16 2019-03-12 International Business Machines Corporation Increasing resolution of on-chip timing uncertainty measurements
IL274688B2 (en) 2017-11-15 2025-01-01 Proteantecs Ltd Integrated circuit margin measurement and failure prediction device
ES2982280T3 (es) 2017-11-23 2024-10-15 Proteantecs Ltd Detección de fallos en un panel de circuito integrado
US12282058B2 (en) * 2017-11-23 2025-04-22 Proteantecs Ltd. Integrated circuit pad failure detection
US10983587B2 (en) * 2017-12-12 2021-04-20 Kandou Labs, S.A. Dynamic voltage scaling in hierarchical multi-tier regulator supply
TWI813615B (zh) 2018-01-08 2023-09-01 以色列商普騰泰克斯有限公司 積體電路工作負荷、溫度及/或次臨界洩漏感測器
US11740281B2 (en) 2018-01-08 2023-08-29 Proteantecs Ltd. Integrated circuit degradation estimation and time-of-failure prediction using workload and margin sensing
CN108375725A (zh) * 2018-01-31 2018-08-07 佛山市联动科技实业有限公司 精密测量板卡
TWI828676B (zh) 2018-04-16 2024-01-11 以色列商普騰泰克斯有限公司 用於積體電路剖析及異常檢測之方法和相關的電腦程式產品
WO2019244154A1 (en) 2018-06-19 2019-12-26 Proteantecs Ltd. Efficient integrated circuit simulation and testing
US10690721B2 (en) 2018-09-12 2020-06-23 Stmicroelectronics Asia Pacific Pte Ltd Adaptive glitch detector for system on a chip
US10739846B2 (en) 2018-12-11 2020-08-11 Nxp B.V. Closed-loop adaptive voltage, body-biasing and frequency scaling
US11283435B2 (en) 2018-12-19 2022-03-22 Rambus Inc. Adjustment of multi-phase clock system
WO2020141516A1 (en) 2018-12-30 2020-07-09 Proteantecs Ltd. Integrated circuit i/o integrity and degradation monitoring
EP4070315A4 (de) 2019-12-04 2023-11-29 Proteantecs Ltd. Überwachung der verschlechterung einer speichervorrichtung
EP3843317A1 (de) * 2019-12-23 2021-06-30 Nagravision SA Verfahren zur erkennung von störungen in einer logischen schaltung und logische schaltung zur implementierung dieses verfahrens
CN115461632A (zh) 2020-04-20 2022-12-09 普腾泰克斯有限公司 晶粒对晶粒的连接性监视
CN113746475B (zh) * 2020-05-28 2023-12-01 华邦电子股份有限公司 延迟锁相回路装置及其操作方法
US12241933B2 (en) 2020-07-06 2025-03-04 Proteantecs Ltd. Integrated circuit margin measurement for structural testing
US12470223B2 (en) 2021-04-07 2025-11-11 Proteantecs Ltd. Adaptive frequency scaling based on clock cycle time measurement
TWI792632B (zh) * 2021-10-22 2023-02-11 瑞昱半導體股份有限公司 偵測電路與偵測方法
US11680983B1 (en) * 2022-02-01 2023-06-20 Nxp Usa, Inc. Integrated circuit having an in-situ circuit for detecting an impending circuit failure
US11815551B1 (en) 2022-06-07 2023-11-14 Proteantecs Ltd. Die-to-die connectivity monitoring using a clocked receiver
US12013800B1 (en) 2023-02-08 2024-06-18 Proteantecs Ltd. Die-to-die and chip-to-chip connectivity monitoring
CN116382420B (zh) * 2023-03-14 2024-01-23 灿芯半导体(上海)股份有限公司 一种解决全数字传感器裕量小的系统及方法
CN116153362B (zh) * 2023-04-20 2023-08-25 浙江力积存储科技有限公司 读取等待时间计数器延迟反馈方法、延迟反馈存储结构
US12123908B1 (en) 2023-09-12 2024-10-22 Proteantecs Ltd. Loopback testing of integrated circuits
US12461143B2 (en) 2024-01-24 2025-11-04 Proteantecs Ltd. Integrated circuit margin measurement

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6993109B2 (en) 1999-11-18 2006-01-31 Anapass Inc. Zero-delay buffer circuit for a spread spectrum clock system and method therefor
WO2008156289A2 (en) 2007-06-18 2008-12-24 Atlab Inc. Delay time measurement circuit and method

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6115310A (en) * 1999-01-05 2000-09-05 International Business Machines Corporation Wordline activation delay monitor using sample wordline located in data-storing array
US8736323B2 (en) * 2007-01-11 2014-05-27 International Business Machines Corporation Method and apparatus for on-chip phase error measurement to determine jitter in phase-locked loops
JPWO2009084396A1 (ja) * 2007-12-28 2011-05-19 日本電気株式会社 遅延モニタ回路および遅延モニタ方法
US8433025B2 (en) * 2008-01-04 2013-04-30 Qualcomm Incorporated Digital phase-locked loop with gated time-to-digital converter
US8090068B2 (en) * 2008-04-22 2012-01-03 Qualcomm, Incorporated System and method of calibrating power-on gating window for a time-to-digital converter (TDC) of a digital phase locked loop (DPLL)

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6993109B2 (en) 1999-11-18 2006-01-31 Anapass Inc. Zero-delay buffer circuit for a spread spectrum clock system and method therefor
WO2008156289A2 (en) 2007-06-18 2008-12-24 Atlab Inc. Delay time measurement circuit and method

Also Published As

Publication number Publication date
CN102142831A (zh) 2011-08-03
CN102142831B (zh) 2016-04-13
US20120268184A1 (en) 2012-10-25
CN105811934B (zh) 2019-07-09
CN105811934A (zh) 2016-07-27
US8451043B2 (en) 2013-05-28
DE102011009800A1 (de) 2011-08-04
US8228106B2 (en) 2012-07-24
US20110187433A1 (en) 2011-08-04
US20120262213A1 (en) 2012-10-18

Similar Documents

Publication Publication Date Title
DE102011009800B4 (de) Selbstkalibrierende On-Chip-Verzögerungsüberwachungsschaltung
DE102010006578B4 (de) Schaltungsanordnung mit einer Prüfschaltung und einer Referenzschaltung und ein entsprechendes Verfahren
Agarwal et al. Optimized circuit failure prediction for aging: Practicality and promise
US8860502B2 (en) Method and apparatus for monitoring timing of critical paths
DE102022133943A1 (de) Systeme zur bereitstellung einer koexistenz zwischen zellularen und drahtlosen kommunikationstechnologien
DE102020132721A1 (de) Vollständig digitaler spannungsmonitor (advm) mit einzelzykluslatenz
DE102017122872A1 (de) On-Chip-Messung für eine Phasenregelschleife
CN105183062B (zh) 基于在线监测的自适应电压调节系统及监测路径筛选方法
DE102012110694A1 (de) Temperaturmanagementschaltung, Ein-Chip-System, welches dieselbe aufweist, und Verfahren zum Managen der Temperatur
DE102014119507A1 (de) Synchronisation eines datensignals
DE112016004414T5 (de) Parametermessung innerhalb eines Chips
DE102012102660A1 (de) Schaltungsanordnung mit einer Mehrzahl von On-Chip-Überwachungsschaltkreisen und einem Steuerungsschaltkreis und dazugehöriges Verfahren
DE102020131640A1 (de) Vorrichtung und verfahren zur laststromerfassung mit schnellem ansprechen
EP3346350B1 (de) Spannungsregelungsverfahren, steuergerät und chip
DE102014001399B4 (de) RFI-Abschwächung über die Arbeitszyklussteuerung
US10048316B1 (en) Estimating timing slack with an endpoint criticality sensor circuit
DE102014002293B4 (de) Vorrichtung und System mit Detektoren für hohe Strahlendosen
Liang et al. On-chip measurement of clock and data jitter with sub-picosecond accuracy for 10 Gb/s multilane CDRs
US9858368B2 (en) Integrating manufacturing feedback into integrated circuit structure design
US7225092B2 (en) Method and apparatus for measuring and adjusting the duty cycle of a high speed clock
US20160191066A1 (en) Method and apparatus to suppress digital noise spurs using multi-stage clock dithering
DE102010002370B4 (de) Fehlerdetektion in einer integrierten Schaltung
US12026001B2 (en) LDO-based odometer to combat ic recycling
CN102955363A (zh) 光学临近效应修正在线监控的方法
US11165416B2 (en) Duty cycle and skew measurement and correction for differential and single-ended clock signals

Legal Events

Date Code Title Description
R081 Change of applicant/patentee

Owner name: INTEL DEUTSCHLAND GMBH, DE

Free format text: FORMER OWNER: INFINEON TECHNOLOGIES AG, 85579 NEUBIBERG, DE

Effective date: 20121025

Owner name: INTEL MOBILE COMMUNICATIONS GMBH, DE

Free format text: FORMER OWNER: INFINEON TECHNOLOGIES AG, 85579 NEUBIBERG, DE

Effective date: 20121025

R082 Change of representative

Representative=s name: VIERING, JENTSCHURA & PARTNER, DE

Effective date: 20121025

Representative=s name: VIERING, JENTSCHURA & PARTNER MBB PATENT- UND , DE

Effective date: 20121025

Representative=s name: PATENT- UND RECHTSANWAELTE KRAUS & WEISERT, DE

Effective date: 20121025

R082 Change of representative

Representative=s name: VIERING, JENTSCHURA & PARTNER MBB PATENT- UND , DE

Representative=s name: VIERING, JENTSCHURA & PARTNER, DE

R081 Change of applicant/patentee

Owner name: INTEL DEUTSCHLAND GMBH, DE

Free format text: FORMER OWNER: INTEL MOBILE COMMUNICATIONS GMBH, 85579 NEUBIBERG, DE

R082 Change of representative

Representative=s name: VIERING, JENTSCHURA & PARTNER MBB PATENT- UND , DE

R016 Response to examination communication
R082 Change of representative

Representative=s name: BARDEHLE PAGENBERG PARTNERSCHAFT MBB PATENTANW, DE

R081 Change of applicant/patentee

Owner name: APPLE INC., CUPERTINO, US

Free format text: FORMER OWNER: INTEL DEUTSCHLAND GMBH, 85579 NEUBIBERG, DE

R082 Change of representative

Representative=s name: BARDEHLE PAGENBERG PARTNERSCHAFT MBB PATENTANW, DE

R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final