DE102011009800A1 - Selbstkalibrierende On-Chip-Verzögerungsüberwachungsschaltung - Google Patents
Selbstkalibrierende On-Chip-Verzögerungsüberwachungsschaltung Download PDFInfo
- Publication number
- DE102011009800A1 DE102011009800A1 DE102011009800A DE102011009800A DE102011009800A1 DE 102011009800 A1 DE102011009800 A1 DE 102011009800A1 DE 102011009800 A DE102011009800 A DE 102011009800A DE 102011009800 A DE102011009800 A DE 102011009800A DE 102011009800 A1 DE102011009800 A1 DE 102011009800A1
- 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.)
- Granted
Links
- 238000012544 monitoring process Methods 0.000 title claims abstract description 105
- 238000005070 sampling Methods 0.000 claims abstract description 24
- 238000011156 evaluation Methods 0.000 claims description 49
- 238000000034 method Methods 0.000 claims description 41
- 230000008859 change Effects 0.000 claims description 34
- 238000005259 measurement Methods 0.000 claims description 26
- 238000012545 processing Methods 0.000 claims description 26
- 230000000630 rising effect Effects 0.000 claims description 26
- 230000008569 process Effects 0.000 claims description 18
- 230000003213 activating effect Effects 0.000 claims description 4
- 230000003247 decreasing effect Effects 0.000 claims description 4
- 230000000977 initiatory effect Effects 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 16
- 230000007704 transition Effects 0.000 description 13
- 238000004891 communication Methods 0.000 description 12
- 230000007423 decrease Effects 0.000 description 12
- 230000001934 delay Effects 0.000 description 11
- 238000012360 testing method Methods 0.000 description 7
- 230000001960 triggered effect Effects 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 6
- 230000001052 transient effect Effects 0.000 description 6
- 230000004044 response Effects 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 238000011065 in-situ storage Methods 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 239000000872 buffer Substances 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- BUHVIAUBTBOHAG-FOYDDCNASA-N (2r,3r,4s,5r)-2-[6-[[2-(3,5-dimethoxyphenyl)-2-(2-methylphenyl)ethyl]amino]purin-9-yl]-5-(hydroxymethyl)oxolane-3,4-diol Chemical compound COC1=CC(OC)=CC(C(CNC=2C=3N=CN(C=3N=CN=2)[C@H]2[C@@H]([C@H](O)[C@@H](CO)O2)O)C=2C(=CC=CC=2)C)=C1 BUHVIAUBTBOHAG-FOYDDCNASA-N 0.000 description 1
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000033228 biological regulation Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000006378 damage Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000010438 heat treatment Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 230000007257 malfunction Effects 0.000 description 1
- 229910044991 metal oxide Inorganic materials 0.000 description 1
- 150000004706 metal oxides Chemical class 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012805 post-processing Methods 0.000 description 1
- 230000035945 sensitivity Effects 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03L—AUTOMATIC CONTROL, STARTING, SYNCHRONISATION OR STABILISATION OF GENERATORS OF ELECTRONIC OSCILLATIONS OR PULSES
- H03L7/00—Automatic control of frequency or phase; Synchronisation
- H03L7/06—Automatic control of frequency or phase; Synchronisation using a reference signal applied to a frequency- or phase-locked loop
- H03L7/08—Details of the phase-locked loop
- H03L7/081—Details of the phase-locked loop provided with an additional controlled phase shifter
- H03L7/0812—Details of the phase-locked loop provided with an additional controlled phase shifter and where no voltage or current controlled oscillator is used
- H03L7/0814—Details 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
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K5/00—Manipulating of pulses not covered by one of the other main groups of this subclass
- H03K5/13—Arrangements having a single output and transforming input signals into pulses delivered at desired time intervals
- H03K5/135—Arrangements 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
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K5/00—Manipulating of pulses not covered by one of the other main groups of this subclass
- H03K2005/00013—Delay, i.e. output pulse is delayed after input pulse and pulse length of output pulse is dependent on pulse length of input pulse
- H03K2005/00019—Variable delay
- H03K2005/00058—Variable delay controlled by a digital setting
Landscapes
- Physics & Mathematics (AREA)
- Nonlinear Science (AREA)
- Semiconductor Integrated Circuits (AREA)
- Pulse Circuits (AREA)
Abstract
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.
- 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 19 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 Systems100 , welches eine Computervorrichtung102 beinhaltet, die eine integrierte Schaltung mit einer Verzögerungsüberwachungsschaltung aufweist. Die Computervorrichtung102 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 Computervorrichtung102 beinhaltet einen oder mehrere Prozessoren104 und einen Speicher106 . Die Computervorrichtung102 beinhaltet auch einen Spannungsregler108 , welcher die Versorgungsspannung der Prozessoren104 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 Speicher106 eine oder mehrere Anwendungen110 speichern, einschließlich Softwareinstruktionen, Firmware oder eine Kombination davon. Zum Beispiel können die Anwendungen110 Softwareinstruktionen beinhalten, welche durch den Prozessor104 ausführbar sind, um verschiedene Prozesse der Computervorrichtung102 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 Speicher106 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 Anwendungen110 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 Kommunikationsschnittstelle112 beinhalten, welche mit dem Prozessor104 gekoppelt ist. Die Kommunikationsschnittstelle112 kann Signale über eine drahtlose Verbindung, eine drahtgebundene Verbindung oder beides senden und/oder empfangen. Zum Beispiel kann die Kommunikationsschnittstelle112 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 Electrical and Electronics Engineers”). Außerdem kann die Kommunikationsschnittstelle112 drahtlose Signale über ein Headset senden und/oder empfangen, wie z. B. ein Bluetooth-Headset. - Der Prozessor
104 beinhaltet eine integrierte Schaltung114 . Bei einem Beispiel kann die integrierte Schaltung114 eine CPU (CPU: „Central Processing Unit”, Zentralprozessoreinheit) der Computervorrichtung102 sein. Bei einem weiteren Beispiel kann die integrierte Schaltung114 ein Basisbandchip der Computervorrichtung102 zur Codierung und Decodierung von Drahtloskommunikationssignalen sein. Die integrierte Schaltung114 beinhaltet eine Verarbeitungsschaltung116 . Die Verarbeitungsschaltung116 führt Prozesse der Computervorrichtung102 aus. Zum Beispiel kann die Verarbeitungsschaltung116 Instruktionen der Anwendungen110 ausführen. - Die Verarbeitungsschaltung
116 kann Prozesse der Computervorrichtung102 ü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 Anwendungen110 benötige Versorgungsspannung nicht gleich zur Ausführung von Prozessen der Anwendungen110 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überwachungsschaltung118 zur Abschätzung einer Verzögerung von Pfaden der Verarbeitungsschaltung116 . Obwohl1 eine einzige Instanz der Verzögerungsüberwachungsschaltung118 darstellt, kann die integrierte Schaltung114 tatsächlich eine Vielzahl von Verzögerungsüberwachungsschaltungen, d. h. mehrere Instanzen der Verzögerungsüberwachungsschaltung118 , beinhalten. Die Verzögerungsüberwachungsschaltung118 kann die Verzögerung von Pfaden der Verarbeitungsschaltung116 abschätzen, um Timing-Verletzungen, welche durch Änderungen der Versorgungsspannung und/oder der Taktfrequenz der Computervorrichtung102 verursacht werden, zu minimieren oder eliminieren. Zum Beispiel können Instruktionen der jeweiligen Anwendungen110 im Zusammenhang mit einer bestimmten Taktfrequenz ausgeführt werden und bestimmte Versorgungsspannungserfordernisse aufweisen. Wenn folglich der Prozessor104 von der Ausführung von Instruktionen einer ersten Anwendung110 , wie z. B. Verarbeitung eines Telefonanrufs, zur Ausführung von Instruktionen einer zweiten Anwendung110 , wie z. B. eine Web-Browsing-Anwendung, wechselt, kann sich die Versorgungsspannung oder Taktfrequenz auf Grundlage der Taktfrequenz- und Versorgungsspannungserfordernisse der bestimmten Anwendung110 ändern. Bei einem weiteren Beispiel können Versorgungsspannungsänderungen und/oder Taktfrequenzänderungen auftreten, wenn der Prozessor104 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 Anwendungen110 auszuführen, der Versorgungsspannungsregler108 der integrierten Schaltung114 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ögerungslinie120 , welche die Verzögerung von Pfaden in der Verarbeitungsschaltung116 nachbildet. Die programmierbare Verzögerungslinie120 kann ein Digital-Zeit-Wandler sein, welcher eine Anzahl von Verzögerungselementen beinhaltet. Das Ausgangssignal der programmierbaren Verzögerungslinie120 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ögerungslinie120 auszubreiten, kann die Verzögerung von einen oder mehreren kritischen Pfaden der Verarbeitungsschaltung116 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ögerungslinie120 über ein mit der programmierbaren Verzögerungslinie120 gekoppeltes Konfigurationsregister zugeführt wird. Wenn der digitale Code spezifiziert, dass die Verzögerung der programmierbaren Verzögerungslinie120 ansteigen soll, kann das Eingangssignal sich durch mehr Verzögerungselemente ausbreiten, bevor das Ausgangssignal bereitgestellt wird, und wenn die Verzögerung der programmierbaren Verzögerungslinie120 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-Wandler122 kann mit der programmierbaren Verzögerungslinie120 gekoppelt sein und verwendet werden, um die Verzögerung der programmierbaren Verzögerungslinie120 zu messen. Der Zeit-Digital-Wandler122 kann eine Kette von Verzögerungselementen beinhalten, welche in Reihe mit entsprechenden Flipflops gekoppelt sind. Nach dem ein Eingangssignal sich durch die programmierbare Verzögerungslinie120 ausgebreitet hat, können die Flipflops des Zeit-Digital-Wandlers122 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ögerungslinie120 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-Wandlers122 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ögerungslinie120 genutzt werden. Zum Beispiel werden, wenn die Verzögerung der programmierbaren Verzögerungslinie120 ansteigt, weniger Flipflops in einem gegebenen Taktzyklus ausgelöst, weil ein Eingangssignal mehr Zeit benötigt, um sich durch die programmierbare Verzögerungslinie120 auszubreiten. Umgekehrt werden, wenn die Verzögerung der programmierbaren Verzögerungslinie120 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ögerungslinie120 auszubreiten. - Sobald die Verzögerung der programmierbaren Verzögerungslinie
120 gemessen wurde, wird ein digitaler Code, welcher die Verzögerung darstellt, einer Rückkopplungsschleife124 zugeführt. Die Rückkopplungsschleife124 beinhaltet eine Auswertungsschaltung, welche dazu verwendet wird, in einem Kalibrierungsmodus die Verzögerung der programmierbaren Verzögerungslinie120 zu kalibrieren. Zum Beispiel kalibriert die Auswertungsschaltung der Rückkopplungsschleife124 die Verzögerung der programmierbaren Verzögerungslinie120 , indem die Ausgangssignale des Zeit-Digital-Wandlers122 , welche die Verzögerung der programmierbaren Verzögerungslinie120 darstellen, mit einem Zielwert verglichen werden. Der Zielwert für die Verzögerung der programmierbaren Verzögerungslinie120 kann auf einer Taktfrequenz und/oder einer Versorgungsspannung basieren, welche der integrierten Schaltung114 zu einem bestimmten Zeitpunkt zugeführt werden. Außerdem können die Taktfrequenz und Versorgungsspannung, welche der integrierten Schaltung114 zugeführt werden, von den Anwendungen110 abhängen, welche von der Verarbeitungsschaltung116 ausgeführt werden. Wenn die Verzögerung der programmierbaren Verzögerungslinie120 nicht dem Zielwert entspricht, kann die Auswertungsschaltung der Rückkopplungsschleife124 Daten an ein Konfigurationsregister zurückführen, um die Konfigurationseinstellungen der programmierbaren Verzögerungslinie120 zu ändern, um die Verzögerung der programmierbaren Verzögerungslinie120 zu erhöhen oder zu verringern, so dass die resultierende Verzögerung der programmierbaren Verzögerungslinie120 dem Zielwert entspricht. - Nach dem Kalibrierungsmodus kann die Verzögerungsüberwachungsschaltung
118 in einen Messmodus eintreten. In dem Messmodus kann die Rückkopplungsschleife124 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ögerungslinie120 in dem Messmodus nicht angepasst. Außerdem kann in dem Messmodus die Auswertungsschaltung der Rückkopplungsschleife124 verwendet werden, um die Verzögerung der programmierbaren Verzögerungslinie120 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ückkopplungsschleife124 die Verzögerung der programmierbaren Verzögerungslinie120 auf Grundlage der Ausgangssignale des Zeit-Digital-Wandlers122 . Die Auswertungsschaltung vergleicht dann die Verzögerung der programmierbaren Verzögerungslinie120 mit einem Schwellenwert. Der Schwellenwert kann für einen bestimmten Pfad der Verarbeitungsschaltung116 die maximale Verzögerung, bevor eine Timing-Verletzung auftritt, darstellen. Wenn die Verzögerung der programmierbaren Verzögerungslinie120 dem Schwellenwert entspricht und/oder diesen überschreitet, liefert die Auswertungsschaltung der Rückkopplungsschleife124 einen Alarm oder ein Warnsignal, welcher bzw. welches eine geeignete Gegenmaßnahme auslösen kann. -
2 ist ein schematisches Diagramm einer Verzögerungsüberwachungsschaltung200 , welche einen Zeit-Digital-Wandler und eine Rückkopplungsschleife beinhaltet. Die Verzögerungsüberwachungsschaltung200 beinhaltet ein Eingangs-Flipflop202 Das Eingabe-Flipflop202 kann wie in2 dargestellt, ein D-Flipflop sein. Das Eingabe-Flipflop202 kann eine Eingabe, DIN, und ein Taktsignal, CLK, aufnehmen. Die Eingabe DIN kann ein 0-1-Übergang zur Änderung des Zustands des Eingangs-Flipflops202 von „0” and „1” sein. Das Eingabe-Flipflop202 kann ein Signal, QIN, welches den 0-1-Übergang von DIN darstellt, an eine programmierbare Verzögerungslinie204 liefern. Das Signal QIN kann an einer ersten ansteigenden oder abfallenden Taktflanke an die programmierbare Verzögerungslinie204 gesendet werden. Die programmierbare Verzögerungslinie204 kann genutzt werden zur Abschätzung wenigstens eines Teils einer Verzögerung eines kritischen Pfads einer integrierten Schaltung, wie z. B. der integrierten Schaltung114 von1 . - Die programmierbare Verzögerungslinie
204 ist mit einer Konfigurationseinheit206 gekoppelt. Obwohl2 die programmierbare Verzögerungslinie204 mit der Konfigurationseinheit206 gekoppelt zeigt, kann die Konfigurationseinheit206 auch als ein Teil der programmierbaren Verzögerungslinie204 vorgesehen sein. Die Konfigurationseinheit206 liefert Konfigurationseinstellungen an die programmierbare Verzögerungslinie204 , um die Verzögerung der programmierbaren Verzögerungslinie204 einzustellen. Die Konfigurationseinheit206 kann Logik und ein Register zum Speichern der Konfigurationseinstellungen beinhalten. Außerdem empfängt die Konfigurationseinheit206 ein Signal, Modus. Das Signal Modus kann spezifizieren, dass die Verzögerungsüberwachungsschaltung200 in einem Kalibrierungsmodus oder in einem Messmodus arbeiten soll. Das Signal Modus kann mit der Maßgabe, dass die Verzögerungsüberwachungsschaltung200 in einen Kalibrierungsmodus arbeiten soll, an die Konfigurationseinheit206 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-Wandler208 kann die Verzögerung der programmierbaren Verzögerungslinie204 messen. Der Zeit-Digital-Wandler208 kann ein oder mehrere nicht invertierende Verzögerungselemente beinhalten, wie z. B. die Verzögerungselemente210 –222 , welche in Reihe gekoppelt sind. Bei einem alternativen Ausführungsbeispiel können die Verzögerungselemente210 –222 invertierende Verzögerungselemente umfassen. Obwohl2 acht Verzögerungselemente zeigt, kann der Zeit-Digital-Wandler208 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ögerungslinie204 zu quantifizieren. Zum Beispiel kann jedes der Verzögerungselemente210 –222 eine Verzögerung zwischen 10 ps bis 100 ps darstellen. Das eine oder die mehreren nicht invertierenden Verzögerungselemente210 –222 können Operationsverstärker, Puffer oder eine Kombination davon umfassen. Jedes der nicht invertierenden Verzögerungselemente210 –222 ist mit einem entsprechenden Abtast-Flipflop224 –238 gekoppelt. - Nachdem das Signal QIN sich durch die programmierbare Verzögerungslinie
204 ausgebreitet hat, werden mit den jeweiligen Verzögerungselementen210 –222 verknüpfte Signale den entsprechenden Abtast-Flipflops224 –238 zugeführt. Zum Beispiel wird, unmittelbar bevor das Signal QIN das Verzögerungselement210 erreicht, das Signal D7 an das Abtast-Flipflop238 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-Flipflops236 ,234 ,232 usw. zugeführt. Die Ausgangssignale D7–D0 ändern den Zustand der Abtast-Flipflops224 –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-Flipflop202 an die programmierbare Verzögerungslinie204 gesendet wird. Bei einem veranschaulichenden Beispiel kann bei der zweiten ansteigenden oder abfallenden Taktflanke der Zustand der Abtast-Flipflops224 –228 „0” sein, und der Zustand der Abtast-Flipflops230 –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-Flipflops230 als die führende „1” bezeichnet werden. - Die Auswertungsschaltung
240 nimmt die Ausgangssignale von den Abtast-Flipflops224 –238 auf. Die Ausgangssignale der Abtast-Flipflops224 –238 können eine Verzögerung der programmierbaren Verzögerungslinie204 anzeigen. Zum Beispiel zeigt eine größere Anzahl der Abtast-Flipflops224 –238 , welche den Zustand vor der zweiten ansteigenden oder abfallenden Taktflanke ändern, eine kürzere Verzögerung der programmierbaren Verzögerungslinie204 an, weil das Signal QIN in der Lage ist, sich durch mehr der Verzögerungselemente210 –222 auszubreiten, bevor der Zustand der Abtast-Flipflops224 –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ögerungslinie204 an, weil das Signal QIN sich vor der zweiten ansteigenden oder abfallenden Taktflanke durch weniger der Verzögerungselemente210 –222 ausbreitet. - Die Auswertungsschaltung
240 kann auch das Signal Modus aufnehmen, welches anzeigt, ob die Verzögerungsüberwachungsschaltung200 in einem Kalibrierungsmodus oder einem Messmodus arbeitet. In dem Kalibrierungsmodus kann die Auswertungsschaltung240 die Ausgangssignale der Abtast-Flipflops224 –238 mit einem Zielwert vergleichen. Zum Beispiel kann die Auswertungsschaltung240 eine führende „1” der Abtast-Flipflops224 –238 mit einem Zielwert für die führende „1” vergleichen. Die Auswertungsschaltung240 kann basierend auf dem Vergleich des Ausgangssignals der Abtast-Flipflops224 –228 mit dem Zielwert ein Ausgangssignal zum Senden an die Konfigurationseinheit206 erzeugen, welches anzeigt, dass die Verzögerung der programmierbaren Verzögerungslinie204 ansteigen oder abnehmen sollte. Zur Veranschaulichung kann, wenn die Verzögerung der programmierbaren Verzögerungslinie204 sich von der Zielverzögerung unterscheidet, die Verzögerung der programmierbaren Verzögerungslinie204 derart angepasst werden, dass die Verzögerung der programmierbaren Verzögerungslinie204 der Zielverzögerung entspricht. Auf diese Weise bilden die Auswertungsschaltung240 , die Konfigurationseinheit206 und die programmierbare Verzögerungslinie204 eine Rückkopplungsschleife242 , welche eine Selbstkalibrierung der programmierbaren Verzögerungslinie204 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ückkopplungsschleife242 , die Konfigurationseinheit206 und die programmierbare Verzögerungslinie204 einen Digital-Zeit-Wandler umfassen, welcher ein digitales Ausgangssignal der Auswertungsschaltung240 in eine Verzögerungszeit der programmierbaren Verzögerungslinie204 konvertiert. - In einem Messmodus kann die Auswertungsschaltung
240 die Ausgangssignale der Abtast-Flipflops224 –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 Auswertungsschaltung240 die Verzögerung der programmierbaren Verzögerungslinie204 mit einer Schwellenverzögerung vergleichen. Die Differenz zwischen der Verzögerung der programmierbaren Verzögerungslinie204 und der Schwellenverzögerung wird hierin auch als „Schlupfmarge” bezeichnet. Beispielsweise kann die Auswertungsschaltung240 eine auf Ausgangssignalen der Abtast-Flipflops224 –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-Wandlers208 und dem Schwellenwert für die führende „1” ist die Schlupfmarge. Die Auswertungsschaltung240 kann ein Ausgangssignal, SLACK, liefern, welches die Schlupfmarge darstellt. Wenn die Verzögerung der programmierbaren Verzögerungslinie204 ü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ögerungslinie204 einer Verzögerungsüberwachungsschaltung, wie z. B. der Verzögerungsüberwachungsschaltung200 von2 . Die programmierbare Verzögerungslinie204 beinhaltet eine Anzahl von nicht invertierenden Verzögerungsstufen302 –316 . Bei einem alternativen Ausführungsbeispiel können die Verzögerungsstufen302 –316 auch invertierende Verzögerungselemente beinhalten. Die nicht invertierenden Verzögerungsstufen302 –316 können einen oder mehrere Puffer, Operationsverstärker oder eine Kombination davon beinhalten. Jede der Verzögerungsstufen302 –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ögerungsstufen302 –316 auszubreiten. Die Anzahl von Verzögerungsstufen der programmierbaren Verzögerungslinie204 spezifiziert das Ausmaß an Verzögerung, welches durch die programmierbare Verzögerungslinie204 erzeugt werden kann. Somit können die Verzögerungsstufen302 –316 verwendet werden, um eine Verzögerung zu erzeugen, welche von t0 bis (8 × t0) reicht. Die Verzögerung der Verzögerungsstufen302 –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 in3 acht Verzögerungsstufen dargestellt sind, kann eine beliebige Anzahl von Verzögerungsstufen in der programmierbaren Verzögerungslinie204 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 Multiplexer316 , einen zweiten Multiplexer320 und einen dritten Multiplexer322 . Die Multiplexer318 –322 können eine Anzahl von Eingängen aufweisen. Zum Beispiel können der erste Multiplexer318 und der zweite Multiplexer320 vier Eingänge aufweisen, und der dritte Multiplexer322 kann zwei Eingänge aufweisen. Insbesondere nimmt der erste Multiplexer318 Signale von den Verzögerungsstufen302 –308 auf, der zweite Multiplexer320 nimmt Signale von den Verzögerungsstufen310 bis316 auf und der dritte Multiplexer nimmt Signale von dem ersten Multiplexer318 und dem zweiten Multiplexer320 auf. Die Multiplexer318 –322 können auch eine andere Anzahl von Eingängen aufweisen als in3 dargestellt. - Die programmierbare Verzögerungslinie
204 kann ein Konfigurationsregister324 beinhalten. Das Konfigurationsregister324 speichert digital codierte Konfigurationseinstellungen der programmierbaren Verzögerungslinie204 , welche eine Verzögerung spezifizieren, die durch die programmierbare Verzögerungslinie204 bereitzustellen ist. Die Verzögerung kann eine Zeit zwischen einer Eingabe in das erste Verzögerungselement202 und der Ausgabe aus dem dritten Multiplexer322 darstellen. Die Kombination der Verzögerungsstufen302 –316 mit dem Konfigurationsregister324 kann als ein Digital-Zeit-Wandler arbeiten, weil der digital codierte Inhalt des Konfigurationsregisters324 über die Verzögerungsstufen302 –316 in eine programmierbare Verzögerung umgewandelt wird. - Das Konfigurationsregister
324 liefert basierend auf den in dem Konfigurationsregister324 gespeicherten Konfigurationseinstellungen Eingangssignale an die Multiplexer318 –322 . Zum Beispiel können die Eingangssignale aus dem Konfigurationsregister324 spezifizieren, dass eine Verzögerung mit einem Wert von t0 × 2 erforderlich ist. Somit können die Signale an die Multiplexer318 –322 spezifizieren, dass das Ausmaß an Zeit, welches das Signal Eingabe benötigt, um sich durch die Verzögerungsstufen302 und304 auszubreiten, als die Ausgabe der programmierbaren Verzögerungslinie204 geliefert wird. Bei einem weiteren Beispiel können die Eingangssignale des Konfigurationsregisters324 spezifizieren, dass eine Verzögerung mit einem Wert von t0 × 6 erforderlich ist. Folglich können die Signale an die Multiplexer318 bis322 spezifizieren, dass das Ausmaß an Zeit, welches das Signal Eingabe benötigt, um sich durch die Verzögerungsstufen302 bis308 auszubreiten, an den ersten Multiplexer318 geliefert wird und dass das Ausmaß an Zeit, welches das Signal Eingabe benötigt, um sich durch die Verzögerungsstufen310 und312 auszubreiten, an den zweiten Multiplexer320 geliefert wird. Der erste und der zweite Multiplexer318 und320 liefern dann ihre Ausgabe an den dritten Multiplexer322 , um als ein Ausgangssignal die spezifizierte Verzögerung der programmierbaren Verzögerungslinie204 zu erzeugen. - Die Werte der digitalen Eingangssignale, welche durch das Konfigurationsregister
324 an die Multiplexer318 –322 geliefert werden, können auf Grundlage von Signalen, welche von einer Arithmetik-Logik-Einheit (ALU)326 in einem Kalibrierungsmodus der programmierbaren Verzögerungslinie324 empfangen werden, modifiziert werden. In dem Kalibrierungsmodus empfängt eine Logik328 ein Signal, Modus, welches die Einleitung des Kalibrierungsmodus anzeigt. Die Logik328 liefert basierend auf dem Signal CLK auch ein lokales Taktsignal an das Konfigurationsregister324 . Insbesondere sendet die Logik328 , wenn sie ein Signal Modus empfängt, welches einen Kalibrierungsmodus der programmierbaren Verzögerungslinie204 anzeigt, das lokale Taktsignal an das Konfigurationsregister324 , um ein Ändern des Inhalts des Konfigurationsregisters324 zu erleichtern. Darüber hinaus können die Einstellungen des Konfigurationsregisters324 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 Auswertungsschaltung240 von2 , um die Verzögerung der programmierbaren Verzögerungslinie204 zu aktualisieren. Wenn z. B. die Verzögerung der programmierbaren Verzögerungslinie204 auf Grundlage der von der Auswertungsschaltung empfangenen Signale zu erhöhen ist, kann das Konfigurationsregister324 Signale an die Multiplexer318 –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ögerungsstufen302 –316 auszubreiten, wird bei der Bereitstellung der Ausgabe der programmierbaren Verzögerungslinie204 berücksichtigt. Bei einem weiteren Beispiel, wenn die Verzögerung der programmierbaren Verzögerungslinie204 auf Grundlage der von der Auswertungsschaltung empfangenen Signale zu verringern ist, kann das Konfigurationsregister324 Signale an die Multiplexer318 –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ögerungsstufen302 –316 auszubreiten, wird beim Bereitstellen der Ausgabe der programmierbaren Verzögerungslinie204 berücksichtigt. -
4 ist ein schematisches Diagramm eines ersten Ausführungsbeispiels einer Auswertungsschaltung240 in einer Rückkopplungsschleife einer Verzögerungsüberwachungsschaltung. Die Auswertungsschaltung240 beinhaltet einen Thermometercode-Binärcode-Konverter402 . Der Thermometercode-Binärcode-Konverter402 empfängt Ausgangssignale Q0–Q7 von den Abtast-Flipflops eines Zeit-Digital-Wandlers, wie z. B. der Zeit-Digital-Wandler208 von2 . Der Thermometercode-Binärcode-Konverter402 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ögerungslinie204 von2 und3 . - Das Ausgangssignal QBIN des Thermometercode-Binärcode-Konverters
402 wird in einem Kalibrierungsmodus der Verzögerungsüberwachungsschaltung an eine Ziel-ALU404 geliefert. Die Ziel-ALU404 vergleicht einen Wert des Signals QBIN mit einem Wert eines Signals, TARGET, welches von einem Kalibrierungszielregister406 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 Kalibrierungszielregister406 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-ALU404 wird an eine Konfigurationseinheit der Verzögerungsüberwachungsschaltung zu rückgeführt, wie z. B. an die Konfigurationseinheit206 von2 . 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-ALU404 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-ALU404 das Ausgangssignal DELAY an die Konfigurationseinheit der Verzögerungsüberwachungsschaltung. Wenn die Verzögerungsüberwachungsschaltung in dem Messmodus ist, wird die Ziel-ALU404 deaktiviert. - Das Signal Modus wird auch an eine Schwellenwert-ALU
408 geliefert. Wenn die Verzögerungsüberwachungsschaltung in einem Messmodus ist, vergleicht die Schwellenwert-ALU408 die Verzögerung der programmierbaren Verzögerungslinie, welche durch einen Wert des Signals QBIN dargestellt ist, mit einem Wert eines von einem Schwellenwertregister410 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-ALU408 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 Auswertungsschaltung240 beinhaltet einen Thermometercode-Binärcode-Konverter502 . Der Thermometercode-Binärcode-Konverter502 empfängt Ausgangssignale Q0–Q7 von den Abtast-Flipflops eines Zeit-Digital-Wandlers, wie z. B. der Zeit-Digital-Wandler208 von2 . Der Thermometercode-Binärcode-Konverter502 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ögerungslinie204 von2 . - Das Ausgangssignal QBIN des Thermometercode-Binärcode-Konverters
502 wird an eine ALU504 geliefert. Abhängig von dem Modus der Verzögerungsüberwachungsschaltung vergleicht die ALU504 das Signal QBIN mit einem bestimmten Ausgangssignal aus einem Multiplexer506 . Ein der ALU504 und dem Multiplexer506 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 Kalibrierungszielregister508 empfangenen Signals, TARGET. Die ALU504 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 ALU504 wird an eine Konfigurationseinheit der Verzögerungsüberwachungsschaltung zurückgeführt, wie z. B. an die Konfigurationseinheit206 von2 . 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 Schwellenwertregister510 . 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 Multiplexer506 liefert das Signal THRESH an die ALU504 . Die ALU504 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-ALU504 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 Auswertungsschaltung240 beinhaltet einen Thermometercode-Binärcode-Konverter602 . Der Thermometercode-Binärcode-Konverter602 empfängt Ausgangssignale Q0–Q7 von den Abtast-Flipflops eines Zeit-Digital-Wandlers, wie z. B. der Zeit-Digital-Wandler208 von2 . Der Thermometercode-Binärcode-Konverter602 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ögerungslinie204 von2 . - Das Ausgangssignal QBIN des Thermometercode-Binärcode-Konverters
602 wird einer ALU604 zugeführt. Abhängig von dem Modus der Verzögerungsüberwachungsschaltung vergleicht die ALU604 das Signal QBIN mit einem Ausgangssignal aus einem Multiplexer606 . Ein der ALU604 und dem Multiplexer606 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 Kalibrierungszielregister608 empfangenen Signals, TARGET. Die ALU604 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 ALU604 wird an eine Konfigurationseinheit der Verzögerungsüberwachungsschaltung zurückgeführt, wie z. B. an die Konfigurationseinheit206 von2 . 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 Schwellenwertregister610 . 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 Multiplexer606 liefert das Signal THRESH an die ALU604 . Die ALU604 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-ALU604 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 Grenzzustanddetektor612 und einen Binärcode-Thermometercode-Konverter614 , um eine thermometercodierte Version des Schwellenwerts an den Grenzzustanddetektor612 zu liefern. Beispielsweise kann die Auswertungsschaltung240 den Grenzzustanddetektor612 nutzen, um zu bestimmen, ob ein Pfad einer integrierten Schaltung in einem kritischen Zustand ist, anstelle den Multiplexer606 und die ALU604 zu nutzen. Zum Beispiel kann die Auswertungsschaltung240 den Grenzzustanddetektor612 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 Grenzzustanddetektor612 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 Grenzzustanddetektor612 schneller einen Hinweis darauf liefern, ob eine Timing-Verletzung bevorsteht oder auftritt, indem die komplexeren Berechnungen der ALU604 und des Multiplexers606 vermieden werden. - Das Ausgangssignal SLACK, welches von dem in
4 –6 dargestellten ersten, zweiten oder dritten Ausführungsbeispiel der Auswertungsschaltung240 berechnet wird, kann von einer CPU, wie zum Beispiel der Prozessor104 von1 , 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 Grenzzustanddetektors612 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-Wandler208 von2 , 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 von2 . 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 in7 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 von7 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 Grenzzustanddetektor612 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 Grenzzustanddetektors612 einer Auswertungsschaltung einer Verzögerungsüberwachungsschaltung, wenn in einem Messmodus kein Fehler erfasst wird. Die Anordnung von XOR-Logik und AND-Logik in8 ist ähnlich zu der Anordnung von XOR-Logik und AND-Logik von7 . Außerdem empfängt der Grenzzustanddetektor612 von8 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 von8 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 Grenzzustanddetektors612 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 Gesamtchipstatussignal 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 von2 sein, welches von dem Eingabe-Flipflop202 an die programmierbare Verzögerungslinie204 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 von2 und können mit entsprechenden empfangenden Flipflops gekoppelt sein, wie zum Beispiel die Abtast-Flipflops224 –238 von2 . - 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 und238 von2 ) zugeführt ist, und D6 stellt das Eingangssignal dar, welches einem zweiten Verzögerungselement und entsprechenden empfangenden Flipflop (z. B.212 und236 von2 ) 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überwachungsschaltung200 von2 , 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 und10B 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, seien 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 und10B 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 in10A und10B 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 und10B ist das Ausgangssignal des letzten Abtast-Flipflops, welches seinen Zustand ändert, bevor die Zustände der Abtast-Flipflops abgetastet werden. Die führende „1” von10A wird durch das Ausgangssignal Q1 dargestellt. Außerdem wird die führende „1” von10B durch das Ausgangssignal Q6 dargestellt. Der Zielwert für die führende „1” von10A und10B 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 0-1-Ü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 von11 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 von11 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 Verfahrens1200 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 Verfahren1200 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 Verfahren200 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ögerungselemente210 –222 von2 , und können mit entsprechenden empfangenden Flipflops gekoppelt sein, wie beispielsweise die Abtast-Flipflops224 –238 von2 . - 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 Verfahren1200 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 Verfahren1200 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 Verfahren1200 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.
- ZITATE ENTHALTEN IN DER BESCHREIBUNG
- Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
- Zitierte Nicht-Patentliteratur
-
- IEEE-802.11 [0035]
Claims (24)
- 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; 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, abhängig von wenigstens einem Ausgangssignal des Abtast-Flipflops (224 ,226 ,228 ,230 ,232 ,234 ,236 ,238 ) des Zeit-Digital-Wandlers (122 ;208 ) wenigstens ein Eingangssignal an die Konfigurationseinheit (206 ) zu liefern. - 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. - 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. - 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. - 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. - 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. - 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. - 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.
- 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 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. - Verfahren nach Anspruch 9, wobei die Verzögerung der programmierbaren Verzögerungslinie (
120 ;204 ) in weniger als einem Taktzyklus der integrierten Schaltung gemessen wird. - 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. - Verfahren nach einem der Ansprüche 9–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. - Verfahren nach einem der Ansprüche 9–12, 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. - Verfahren nach Anspruch 13, 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. - Verfahren nach einem der Ansprüche 9–14, 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 ,226 ,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 ). - Verfahren nach Anspruch 15, darüber hinaus umfassend ein Einleiten einer Gegenmaßnahme, wenn die Schlupfmarge kleiner oder gleich einem spezifizierten Wert ist.
- Verfahren nach Anspruch 16, wobei das Einleiten der Gegenmaßnahme ein Modifizieren einer Versorgungsspannung der integrierten Schaltung und/oder ein Modifizieren einer Taktfrequenz der integrierten Schaltung beinhaltet.
- Verfahren nach einem der Ansprüche 15–17, 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. - 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 ); 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 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. - Vorrichtung nach Anspruch 19, wobei wenigstens ein an die Auswertungsschaltung (
240 ) geliefertes Ausgangssignal des Zeit-Digital-Wandlers (122 ;208 ) eine thermometercodierte Ausgabe darstellt, welche eine Verzögerung der programmierbaren Verzögerungslinie (120 ;204 ) anzeigt. - Vorrichtung nach Anspruch 20, 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. - Vorrichtung nach Anspruch 20 oder 21, 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. - Vorrichtung nach Anspruch 22, 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. - Vorrichtung nach Anspruch 23, 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.
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 true DE102011009800A1 (de) | 2011-08-04 |
| DE102011009800B4 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)
| 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 |
Family Cites Families (7)
| 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 |
| US6731667B1 (en) * | 1999-11-18 | 2004-05-04 | Anapass Inc. | Zero-delay buffer circuit for a spread spectrum clock system and method therefor |
| 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 |
| KR100921815B1 (ko) | 2007-06-18 | 2009-10-16 | 주식회사 애트랩 | 지연시간 측정회로 및 지연시간 측정 방법 |
| 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) |
-
2010
- 2010-01-29 US US12/696,731 patent/US8228106B2/en active Active
-
2011
- 2011-01-28 CN CN201110031003.8A patent/CN102142831B/zh active Active
- 2011-01-28 CN CN201610145925.4A patent/CN105811934B/zh active Active
- 2011-01-31 DE DE102011009800.3A patent/DE102011009800B4/de active Active
-
2012
- 2012-06-28 US US13/535,422 patent/US20120268184A1/en not_active Abandoned
- 2012-06-28 US US13/535,440 patent/US8451043B2/en active Active
Non-Patent Citations (1)
| Title |
|---|
| IEEE-802.11 |
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 |
| DE102011009800B4 (de) | 2022-05-05 |
| 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 | |
| DE102020132721A1 (de) | Vollständig digitaler spannungsmonitor (advm) mit einzelzykluslatenz | |
| DE102012102660B4 (de) | Schaltungsanordnung mit einer Mehrzahl von On-Chip-Überwachungsschaltkreisen und einem Steuerungsschaltkreis und dazugehöriges Verfahren | |
| DE102012110694A1 (de) | Temperaturmanagementschaltung, Ein-Chip-System, welches dieselbe aufweist, und Verfahren zum Managen der Temperatur | |
| DE112016004414T5 (de) | Parametermessung innerhalb eines Chips | |
| DE112020001014T5 (de) | Niederspannungs-hochpräzisions-leistungserfassungsschaltung mit verbessertem leistungsversorgungs-abweisungsverhältnis | |
| DE102014119507A1 (de) | Synchronisation eines datensignals | |
| DE102020131640A1 (de) | Vorrichtung und verfahren zur laststromerfassung mit schnellem ansprechen | |
| DE112018003053T5 (de) | Erhöhen der auflösung von messungen der zeitlichen unsicherheit auf einem chip | |
| EP3346350B1 (de) | Spannungsregelungsverfahren, steuergerät und chip | |
| DE112019002560T5 (de) | Vorrichtung, verfahren und system zum bereitstellen eines verzögerten taktsignals an eine schaltung für sperrdaten | |
| DE102014002293B4 (de) | Vorrichtung und System mit Detektoren für hohe Strahlendosen | |
| DE102019214759A1 (de) | Bereitstellen von Kompensationsparametern für integrierte Sensorschaltungen | |
| DE102021119677A1 (de) | Low power hybrid reverse-bandlückenreferenz und -digitaltemperatursensor | |
| DE112007002984T5 (de) | Kompensationsverfahren zur Reduzierung des Leistungsverbrauchs in digitaler Schaltung | |
| DE102014114877B4 (de) | Eine Vorrichtung und ein Verfahren zum Bereitstellen eines Ausgangsparameters und eines Sensorbauelements | |
| US9858368B2 (en) | Integrating manufacturing feedback into integrated circuit structure design | |
| DE102020111707A1 (de) | Einzelchip-mehrfach-die-architektur mit sicherheitskonformer kreuzüberwachungsfähigkeit | |
| WO2012121880A1 (en) | Calibrating device performance within an integrated circuit | |
| DE112019007256T5 (de) | Adaptiver Leistungsmessungsakkumulator mit sich verändernder Abtastfrequenz | |
| US9236863B2 (en) | Compensated impedance calibration circuit | |
| DE102010002370B4 (de) | Fehlerdetektion in einer integrierten Schaltung | |
| Acharya et al. | LDO-based odometer to combat IC recycling | |
| US12026001B2 (en) | LDO-based odometer to combat ic recycling |
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 |