DE60206845T2 - Testsystem - Google Patents

Testsystem Download PDF

Info

Publication number
DE60206845T2
DE60206845T2 DE60206845T DE60206845T DE60206845T2 DE 60206845 T2 DE60206845 T2 DE 60206845T2 DE 60206845 T DE60206845 T DE 60206845T DE 60206845 T DE60206845 T DE 60206845T DE 60206845 T2 DE60206845 T2 DE 60206845T2
Authority
DE
Germany
Prior art keywords
clock
test
scan
pll
logic circuit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE60206845T
Other languages
English (en)
Other versions
DE60206845D1 (de
Inventor
Richard J. Clifton Evans
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Broadcom Corp
Original Assignee
Broadcom Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Broadcom Corp filed Critical Broadcom Corp
Application granted granted Critical
Publication of DE60206845D1 publication Critical patent/DE60206845D1/de
Publication of DE60206845T2 publication Critical patent/DE60206845T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/3185Reconfiguring for testing, e.g. LSSD, partitioning
    • G01R31/318502Test of Combinational circuits
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/3185Reconfiguring for testing, e.g. LSSD, partitioning
    • G01R31/318533Reconfiguring for testing, e.g. LSSD, partitioning using scanning techniques, e.g. LSSD, Boundary Scan, JTAG
    • G01R31/318552Clock circuits details
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/3185Reconfiguring for testing, e.g. LSSD, partitioning
    • G01R31/318533Reconfiguring for testing, e.g. LSSD, partitioning using scanning techniques, e.g. LSSD, Boundary Scan, JTAG
    • G01R31/318594Timing aspects

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Tests Of Electronic Circuits (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)
  • Iron Core Of Rotating Electric Machines (AREA)
  • Transition And Organic Metals Composition Catalysts For Addition Polymerization (AREA)
  • Lubricants (AREA)

Description

  • GEBIET DER ERFINDUNG
  • Die vorliegende Erfindung betrifft eine Vorrichtung und ein Verfahren zum Testen von digitalen Logikschaltungen, insbesondere von Fehlern im Schaltungsbetrieb während Operationsübergängen in der Schaltung.
  • HINTERGRUND DER ERFINDUNG
  • Die allgemein verwendete Scan-Test-Methodik testet im Allgemeinen auf Übergangsfehler, wobei zwei oder mehr Capture Zyklen zwischen den Shifts verwendet werden, um die logische Performanz zusätzlich zu der absoluten Funktion zu testen. Der Taktimpuls in der ersten Capture-Phase stört den Zustand der Logik (wodurch ein Übergang bewirkt wird), und ein zweiter Capture Zyklus wird verwendet, um das Ergebnis zu erfassen. Das Übergangsfehlertesten ermöglicht es somit, das Shifting der Scan Chains (Scanketten) bei einer niedrigen Geschwindigkeit durchzuführen und dann zwei schnelle Taktimpulse für den Capture Zyklus bereitzustellen, wodurch viel mehr Timing-bezogene Fehler als in einem herkömmlichen Scan entdeckt werden.
  • Genauer gesagt können während des Scan-Testens alle Flipflops in einer Schaltung in ein oder mehrere Schieberegister zusammengeschaltet werden (die Shift-Phase des Test), so dass sie von einer externen Testausrüstung (ATE) zu anfangs mit Werten geladen werden können. Während der Capture-Phase des Tests werden diese Werte durch die Schaltung fortgepflanzt. Die sich ergebenden Werte werden zurück in die Flipflops erfasst, bevor sie von dem Chip herunter geschoben werden (wobei wieder die Shift-Phase verwendet wird), um mit den von der ATE erwarteten Werten verglichen zu werden. Chips sind "fehlerhaft", wenn die während der Herstellung eingeführten Fehler bewirken, dass sich die tatsächlichen Daten von den erwarteten Daten unterscheiden.
  • Das Scan-Testen wird normalerweise bei einer niedrigen Geschwindigkeit ausgeführt, so dass es kein guter Test für Fehler ist, die eher die Performanz der Logik als die absolute Funktion beeinträchtigen. Um dies anzugehen, erweitert das Übergangsfehlertesten das Scan-Testverfahren derart, dass es zwei (oder mehr) Captu re Zyklen zwischen den Shifts gibt. Wie vorher wird die Shift-Phase dazu verwendet, alle Flipflops (und deshalb alle kombinatorischen Knoten) auf bestimmte Werte zu setzen. Der Taktimpuls in der ersten Capture-Phase wird dazu verwendet, den Zustand der Logik zu stören (wodurch ein Übergang bewirkt wird), und der zweite Capture Zyklus wird dazu verwendet, das Ergebnis zu erfassen.
  • Der Lösungsunterschied hier ist, dass die Zeit zwischen den beiden aktiven Taktflanken in den Capture Zyklen die Timing-Genauigkeit des Tests bestimmt – wir sind nun unabhängig von irgendeinem langsamen globalen Signal-Timing wie z.B. dem "scan_enable"-(scan_en)-Signal, das dazu verwendet wird, zwischen Shift-Phasen und Capture-Phasen umzuschalten, und dem normalerweise nicht optimierten Weg durch die Schieberegister. Somit ist es möglich, das Shifting der Scan Chains mit einer niedrigen Geschwindigkeit auszuführen und dann zwei schnelle Taktimpulse für den Capture Zyklus bereitzustellen, wodurch viel mehr Timing-bezogene Fehler als bei einem herkömmlichen Scan entdeckt werden.
  • Dies ist ein etabliertes Verfahren, und es existieren Werkzeuge, um Testmuster für die Applikation zu erstellen, die diese Methodik verwenden. Aber es gibt nun integrierte Schaltungen (ICs), die auf Hunderte von MHz getaktet sind, und es ist schwierig, Impulse so dicht beieinander (etwa innerhalb ein paar ns voneinander) an einen IC von einer externen Testausrüstung anzulegen, und zwar sowohl von einem Standpunkt der Flankenplacierungsgenauigkeit der ATE aus als auch der Signalintegritätsprobleme aus betrachtet, Impulse durch die IC-Pads zu bekommen und über den Kern (core) des IC verteilt zu bekommen.
  • Ein spezielles Beispiel eines herkömmlichen Capture-Scan ist in 1 gezeigt, in der die dicken Linien das Erfassen der Daten durch die Flipflops veranschaulichen, wenn das scan_en-Signal niedrig gesetzt ist (auf 0). 2 zeigt, wie die Flipflops als ein Schieberegister benutzt werden können, wenn scan_en hoch gesetzt ist (auf 1), wodurch es ermöglicht wird, dass Daten in die Flipflops von dem scan_in-Eingang geladen werden können und Werte, die in die Flipflops während des Capture Zyklus geladen worden sind, zur Beobachtung beim scan_out hinausgeschoben werden können. Der Zustand der kombinatorischen Logik spielt während des Shifting keine Rolle, solange er elektrisch sicher ist.
  • 3 zeigt, wie ein Übergangstest während einer normalen Scan-Operation durchgeführt werden kann. An Punkt A bewirkt die steigende Flanke des Taktes einen Übergang, der in einem Flipflop an Punkt B beobachtet werden kann. Die Qualität des Tests wird davon bestimmt, wie nahe die Flanken A und B zusammen gebracht werden können. Für gewöhnlich ist die Zeit zwischen den Flanken A und B groß, was teilweise daran liegt, dass es schwierig ist, Hochgeschwindigkeits-Takte in einer integrierten Schaltung zu bekommen, und teilweise daran, dass das stark beanspruchte scan_en-Signal zwischen A und B den Übergang schaffen muss.
  • 4 zeigt einen bekannten Versuch, die Situation in 3 durch Verwendung von zwei Capture Zyklen zu verbessern. Die Flipflops werden bei der steigenden Flanke C mit einem Anfangszustand geladen. Die Taktflanke A stört nun diesen Zustand und bewirkt einen Übergang, der in einem Flipflop bei Punkt B beobachtet werden kann. Da es keinen Übergang bei scan_en zwischen A und B gibt, ist es möglich, die Flanken näher zusammen zu bringen. Aber die Flanken A und B können immer noch nicht auf einfache Weise nahe genug zusammen, das heißt auf die Betriebsgeschwindigkeit in der Schaltung (bei 300 MHz zum Beispiel müsste TB–TA weniger als 3,3 ns betragen) gebracht werden. Es ist bis jetzt nicht möglich gewesen, dies mit einer kostengünstigen Testvorrichtung zu erreichen, und selbst mit einer teuren Vorrichtung ist es bis jetzt nicht möglich gewesen, diese Geschwindigkeiten zu erreichen.
  • Die JP-A-08201481 beschreibt eine PLL-Schaltung, die einen 33 MHz-Niederfrequenztakt, der eingegeben wird, in ein 100 MHz-Hochfrequenz-Taktsignal umwandelt und dieses an eine zusätzliche Taktschaltung liefert. Die zusätzliche Taktschaltung startet das Generieren eines Taktes (ein Verzögerungsimpuls, der zwei Impulswellen umfasst) in dem gleichen Intervall wie die Hochfrequenz-Taktfrequenz, die intern von der PLL-Schaltung generiert wird. Ein Befehlsschaltungsblock eines Scan-Pfad-Designs gibt nach und nach jedes Mal dann Daten aus, wenn er Takte empfängt, indem Daten eingegeben werden, und bildet ein Schieberegister beim Testen. In einem Verzögerungsimpuls-Testmodus verteilt die Taktschaltung erzeugte Takte an jede Latch-Schaltung und führt somit den Verzögerungsimpulstest des Blocks mit Wechselstrom durch. Somit wird ein Verzögerungsimpulstest mit einer hohen Frequenz, die äquivalent zu einem internen Takt ist, ermöglicht, indem ein Hochfrequenz-Taktsignal auf der Grundlage eines Eingangstaktes generiert wird und ein Verzögerungsimpuls mit der gleichen Verzögerungsdauer wie die Zeitspanne davor generiert wird.
  • Die US-A-5,519,715 beschreibt ein Verfahren zum Laden eines kompilierten Testprogramms in die internen Caches eines Mikroprozessors und dann zum Steuern der Durchführung dieses Programms. Zu anfangs wird der interne Takt des Mikroprozessors deaktiviert. Dann wird für jeden Speicherplatz, der in dem kompilierten Programm angegeben ist, der diesem Platz zugeordnete Speicherinhalt in den zugehörigen Mikroprozessor-Cache geladen. Dies wird in zwei primären Schritten erreicht. Zuerst wird der Speicherinhalt durch eine Boundary-Scan-Shift-Operation über eine IEEE 1149.1-Schnittstelle in Positionen auf den Pins (Anschlüssen) des Mikroprozessors geschoben. Zweitens beliefert ein externer Takt dann, nachdem die Pins die passenden Bitwerte für den augenblicklichen Speicherinhalt aufweisen, den Mikroprozessor mit Taktzyklen, die dann von dem Mikroprozessor verwendet werden, um das Laden von Daten/Befehlen von den Pins in die zugehörigen Daten- oder Befehlscaches zu steuern. Der Vorgang des Ladens der Pins mit Daten über einen Boundary Scan und dann das Schieben von Daten in passende Caches wird für jeden Speicherinhalt des kompilierten Programms wiederholt, bis alle Befehle in dem Programm in die entsprechenden Caches geladen worden sind. Danach wird der Mikroprozessor in den normalen Ausführungsmodus gezwungen, indem der Mikroprozessor zurückgesetzt wird, um seinen internen Takt wieder zu aktivieren. Schließlich wird das Testprogramm in einer Weise ausgeführt, die es einem Benutzer erlaubt, mit dem Mikroprozessor während der Ausführung zu interagieren.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Die Aufgabe der vorliegenden Erfindung liegt darin, das Testen von logischen Schaltungen zu verbessern. Diese Aufgabe wird durch ein Verfahren, das die Merkmale gemäß Anspruch 1 aufweist, und durch ein System gelöst, das die Merkmale gemäß Anspruch 5 aufweist.
  • Gemäß einem Ausführungsbeispiel ist ein Verfahren zum Testen einer logischen Schaltung vorgesehen, die von Hochfrequenz-Schwingeinrichtungen angetrieben wird und einem externen Takt, wobei der externe Takt während des Normalbetriebs verwendet wird, um den Betrieb der Schaltung zeitlich zu steuern, wobei das Verfahren die Schritte des Deaktivierens des externen Takts, des Synchronisierens von Testeinrichtungen mit der internen Schwingeinrichtung, des Durchführens von Tests der Schaltung, während der externe Takt deaktiviert ist, und des Wiederaktivierens des externen Taktes nach dem Testen aufweist.
  • In dem bevorzugten Ausführungsbeispiel ist die verwendete Schwingeinrichtung ein Phase Locked Loop (phasengekoppelter Regelkreis) innerhalb der Logikschaltung.
  • Vorteilhafterweise umfasst das Verfahren den Schritt des Ermittelns der Zeitdauer, während der der externe Takt deaktiviert ist. Dies kann für zwei oder mehr Taktzyklen des internen Takts sein.
  • Das Verfahren testet bevorzugt den Betrieb der Schaltung während der Übergänge.
  • Gemäß einem anderen Ausführungsbeispiel ist ein System zum Testen einer Logikschaltung vorgesehen, die von Hochfrequenz-Schwingeinrichtungen und einem externen Takt angetrieben wird, wobei der externe Takt während des Normalbetriebs verwendet wird, um den Betrieb der Schaltung zeitlich zu steuern; wobei das System eine Taktsteuerung aufweist, die so betrieben werden kann, dass sie den externen Takt deaktiviert, Testeinrichtungen mit der internen Schwingeinrichtung synchronisiert, und den externen Takt nach dem Testen der Schaltung wieder aktiviert.
  • Es wird klar sein, dass die Schaltung jegliche logische Schaltung sein kann, die einen Mikroprozessor umfasst.
  • In dem bevorzugten Ausführungsbeispiel wird der Testtakt mit dem PLL im Inneren der Schaltung synchronisiert. Für das Übergangstesten deaktiviert eine Synchronisierschaltung die Fortpflanzung des externen Taktes vor der Capture-Phase. Während der Capture-Phase wird eine vorgegebene Anzahl von Hochgeschwindigkeits-PLL-Impulsen ausgesandt und die Synchronisiereinrichtung schaltet dann zurück zu dem externen Takt, um die erfassten Daten von dem Chip herunter zu schieben.
  • Die bevorzugten Ausführungsbeispiele gehen die Schwierigkeiten bei der herkömmlichen Testmethodik derart an, dass sie den Testtakt mit dem Phase Locked Loop (PLL) innerhalb des IC synchronisieren, wobei dies in dem bevorzugten Ausführungsbeispiel folgendermaßen erreicht wird:
    • a) während des Scan Chain Shifting wird der interne Takt von einem herkömmlich gelieferten externen Takt genommen;
    • b) vor den Capture Zyklen deaktiviert eine Synchronisierschaltung die Fortpflanzung des externen Taktes und führt Vorbereitungen durch, um auf die Verwendung des internen PLL umzuschalten;
    • c) während der Capture-Phase wird eine programmierbare Anzahl von Hochgeschwindigkeits-PLL-Impulsen ausgesandt (in manchen Fällen sind mehr als 2 Capture Zyklen notwendig, um bestimmte Fehler zu entdecken), bevor sich die Synchronisiereinrichtung darauf vorbereitet, zurück in den externen Takt zu schalten;
    • d) die Daten in den Flipflops werden nun von dem Chip herunter geschoben, wobei der extern zugeführte Takt verwendet wird (zur Synchronisierung mit der externen ATE).
  • Die Vorteile des bevorzugten Ausführungsbeispiels sind folgende:
    • a) das Schalten zwischen externem Takt und PLL-Takt ist immer sauber, so dass es keine "verkümmerten" Impulse gibt, die den Test ungültig machen würden;
    • b) es gibt keine kritischen Timings von externen Signalen, so dass es möglich ist, Übergangsfehlertests bei sehr hohen Geschwindigkeiten zu fahren (z.B. 500 MHz), wobei kostengünstige ATE verwendet werden, die nur zu einer bescheidenen Geschwindigkeit (50 MHz) und einer Pin-Flankenplacierungsgenauigkeit in der Lage sind;
    • c) die Synchronisiereinrichtungsschaltung erlaubt es, dass eine vorprogrammierte Anzahl von PLL-Impulsen ausgesandt werden kann (in Santorini ist die Anzahl 1 < N < 5, aber im Prinzip könnten auch höhere Anzahlen verwendet werden), um Feh ler zu testen, die mehrere Capture Zyklen benötigen, um den relevanten Übergang zu erzeugen und zu erfassen.
  • BESCHREIBUNG DER ZEICHNUNGEN
  • Ein Ausführungsbeispiel der vorliegenden Erfindung wird unten nur beispielshalber unter Bezugnahme auf die beigefügten Zeichnungen beschrieben, in denen:
  • 1 eine schematische Darstellung einer Testschaltung ist, die eine herkömmliche Scan Capture Operation bereitstellt;
  • 2 eine schematische Darstellung einer Testschaltung ist, die einen herkömmlichen Scan Shift Zyklus bereitstellt;
  • 3 ein Ablaufdiagramm ist, das einen Übergangstest zeigt, der von der Schaltung von 2 durchgeführt wird;
  • 4 ein Ablaufdiagramm eines Übergangstests ist, der zwei Capture Zyklen verwendet;
  • 5 eine schematische Darstellung eines Ausführungsbeispiels der Testschaltung gemäß der vorliegenden Erfindung ist;
  • 6 ein Ablaufdiagramm eines Übergangstests ist, der die Testschaltung von 5 benutzt;
  • 7 ein Blockdiagramm eines Beispiels einer Taktsteuerung ist; die 8a und 8b die Form eines PLL-Steuerungsregisters zeigen, das in der Steuerung von 7 verwendet wird;
  • 9 die Form eines anderen Registers zeigt, das in der Steuerung von 7 verwendet wird;
  • 10 eine vereinfachte schematische Darstellung eines Beispiels einer Rücksetz-Logik (reset logic) für die Steuerung von 7 ist;
  • 11 ein Blockdiagramm eines Beispiels eines Rücksetz-Zustandsregisters (reset status register) für die Rücksetz-Logik von 10 ist;
  • 12 ein Blockdiagramm eines Beispiels eines Taktumschaltstromkreises für die Steuerung von 7 ist;
  • 13 ein Blockdiagramm einer Schaltung zum Erzeugen von gck- und gck/2-Taktimpulsen für die Steuerung von 7 ist;
  • 14 Signale zeigt, die für eine Teststeuerungsblock-(TCB; test control block)-Taktsteuerungsschnittstelle für die Steuerung von 7 verwendet werden;
  • 15 den Taktumschaltstromkreis von 12 zeigt, an den die Steuersignale von 14 angelegt worden sind; und
  • 16 eine schematische Darstellung eines Impulsstromgatters für die Steuerung von 7 ist.
  • BESCHREIBUNG DES BEVORZUGTEN AUSFÜHRUNGSBEISPIELS
  • Nun wird Bezug auf 5 genommen. Das bevorzugte Ausführungsbeispiel einer Testanordnung umfasst einen Taktschalter 10, der in der Taktleitung zwischen der logischen Schaltung 12, die die zu testende Schaltung ist, und dem herkömmlichen extern zugeführten Testtakt 14 und dem freilaufenden internen PLL-Takt 16 zwischengeschaltet ist. Der Ausgang des Taktschalters 10 ist die logic_clk-Leitung, die das Taktsignal darstellt, das tatsächlich von der internen Logikschaltung, die getestet wird, gesehen wird.
  • Der Taktschalter umfasst drei Steuereingänge, die als use_tck, pulse_gate und num_pulses gezeigt sind und deren Funktionen weiter unten beschrieben werden. Diese Signale werden extern von einer Teststeuerung (nicht gezeigt) einer ATE gesteuert. Das scan_en-Signal wird im Allgemeinen hoch gehalten, um das Scan Shifting durchzuführen, und ist für Capture Zyklen niedrig.
  • Wenn scan_en heruntergezogen wird (um von Shift in den Capture Zyklus zu gehen), dann kann sich das Signal über die gesamte Schaltung stabilisieren, bevor Impulse durchgelassen werden. Folglich wird pulse_gate niedrig gehalten, bis dies erreicht ist, wodurch das System unabhängig von der ATE-Impulsflanken-Plazierungsgenauigkeit für das scan_en-Signal wird. Die Steuerung des Taktschalters 10 ist derart, dass gewährleistet wird, dass alle Schaltübergänge sauber (clean) sind, ohne dass es zu irgendwelchen Störimpulsen oder verkümmerten Impulsen kommt, und dass keines der Steuersignale kritisch in Bezug auf die Zeitsteuerung (timing) ist.
  • Wenn use_tck hoch ist, koppelt der Taktschalter 10 den Testtakt 14 an die zu testende Schaltung 12, wie bei herkömmlichen Shift-Zyklen. Aber wenn der Eingang pulse_gate hoch gesetzt wird, wird eine vorprogrammierte Anzahl von Impulsen von dem PLL-Takt anstelle des Testtakts zu der Schaltung, die getestet wird, durchgekoppelt. In dem gezeigten Beispiel können zwei Impulse hindurchgehen, obwohl diese Anzahl von dem Benutzer je nach Wunsch ausgewählt werden kann.
  • Unter Bezugnahme auf das Ablaufdiagramm von 6 läuft der verbesserte Übergangstest, der mit dem Taktschalter 10 ermöglicht wird, folgendermaßen ab.
  • Während der Shifts wird der Testtakt TCK durch den Taktschalter durchgelassen, um das logic_clk-Signal zu bilden, das an die Schaltung 12, die getestet wird, gesandt wird. Wenn in dem Capture Zyklus das Signal scan_en niedrig wird, wird der use_tck-Eingang zu dem Taktschalter 10 niedrig (zur Zeit C), wodurch effektiv alle die Testtaktimpulse gestoppt werden, die zu der Schaltung 12 hindurchgehen. Wenn der pulse_gate-Eingang nach einer Anzahl von PLL-Taktzyklen (in Abhängigkeit davon, wann in dem PLL_ck-Zyklus das pulse_gate aktiv wurde) hoch geht (zur Zeit D), schaltet der Taktschalter 10 auf den PLL-Takt 16, um die vorprogrammierte Anzahl von PLL_clk-Impulsen (in diesem Beispiel zwei Impulse) zur Leitung logic_clk und somit zu der Schaltung 12 zu übermitteln.
  • Von dem Testtakt 14 werden keine Taktimpulse durch den Taktschalter 10 weitergeleitet, bis das use_tck-Signal wieder hoch geht. Wenn dies eintritt, wird das Testtakt-TCK-Signal wieder durch den Schalter 10 durchgelassen, um die scan_in/out-Daten auf die externe ATE wie normal zu synchronisieren.
  • Somit liegt die Taktfrequenz, auf die die ATE synchronisiert wird, während der Zeitdauer, in der die PLL_ck-Impulse durch den Schalter 10 durchgelassen werden, bei einer viel höheren Frequenz als dies durch den herkömmlichen Testtakt 14 bereitgestellt werden kann. Insbesondere ist die Zeit TA–TB nun nur von dem PLL-Takt abhängig. Die Zeit TA–TD spielt für den Test überhaupt keine Rolle; in ähnlicher Weise sind Übergänge bei scan_en und use_tck nicht kritisch.
  • Es wird dem Fachmann klar sein, dass das Signal pulse_gate nach dem Durchlauf der vorgegebenen Anzahl von PLL-Taktsignalen durch den Schalter 10 entweder hoch gelassen bleiben kann oder heruntergefahren werden kann. Sein Zustand spielt keine Rolle, da keine PLL-Impulse mehr angetrieben werden, das heißt, nur die steigende Impulsflanke des pulse_gate ist von Bedeutung, so dass das System wiederum nicht von der ATE-Impulsflanken-Plazierungsgenauigkeit abhängig ist.
  • Die in diesem Beispiel verwendete Taktsteuerung ist die Steuerung, die als die Santorini-Taktsteuerung bekannt ist, die die folgenden Dienste während des normalen Betriebs bereitstellt:
    • – registergestütztes Programmieren der PLL-Parameter;
    • – störimpulsfreies Schalten zwischen Quarz- und PLL-Taktquellen;
    • – Rücksetzsteuerung nach dem Einschalten (power-on), nach Rücksetzungen ausgelöst von Pins oder Überwachungsprogrammen (watchdogs).
  • Zusätzlich interagiert die Santorini-Taktsteuerung mit dem Teststeuerungsblock (TCB), um mehrere Testfunktionen zu implementieren, die folgendes einschließen:
    • – JTAG-Auswahl einer TCK- oder PLL-Quelle für BIST und andere Testmodi
    • – JTAG-Programmierung von PLL-Parametern
    • – sauberes Schalten zwischen PLL und TCK für eine CoreDump-Operation
    • – sauberes Durchlassen von PLL-Impulsfolgen mit variabler Länge für das Übergangsfehlertesten
    • – einen Testzähler für das Testen der PLL selbst bei der Produktion.
  • Das Takt- und Rücksetzsteuerungsmodul ist verantwortlich für: sequentielles Ordnen von internen Rücksetzoperationen; Programmieren des PLL zur Auswahl der Betriebsfrequenz; und Auswählen von und sauberes Schalten (ohne Störimpulse) zwischen Taktquellen zur Verteilung an den Taktbaum.
  • Ein Blockdiagramm der Santorini-Taktsteuerung ist in 7 gezeigt. Die Steuerung weist einen integrierten Phase Locked Loop (PLL)-Takt 50 auf, dessen Ausgang von dem Takteingang auf der Basis der statischen Signale abgeleitet wird, die dem Steuerabschnitt des PPL über den Multiplexer-(MUX)-Block 52 zugeführt werden.
  • Der Multiplexerblock 52 ist ein einfacher kombinatorischer Multiplexer, wobei der Teststeuerungsblock auswählt, ob die statischen Steuerwerte von den Taktsteuerungsregistern (der Standard) oder von einem der JTAG-Register genommen werden sollen. Das Übergeben der Steuerung des Multiplexers 52 an den Teststeuerungsblock erlaubt es, dass bei der Taktsteuerung wie bei dem Rest der integrierten Schaltung (IC) ein Scan-Test durchgeführt werden kann. Beim normalen Betrieb befindet sich der Teststeuerungsblock in einem inaktiven Zustand, so dass die Taktsteuerung standardmäßig effektiv den PLL 50 steuert.
  • Der FSM & programmierbare Registerblock 54 stellt die benötigte registerbezogene Schnittstelle für den Bus bereit. Dies erlaubt es dem Kern (core), die PLL-Parameter zu programmieren und zwischen verschiedenen Taktquellen zu wählen. Dieser Block 54 beschäftigt sich auch mit dem Rücksetz-Sequentialisieren beim Start (start-up) oder wenn dies von einem der Überwachungsprogrammeingänge ausgelöst wird. Das saubere Schalten von einem Takt zum anderen wird von dem FSM-Block 54 in Verbindung mit dem Taktschalter 56 gehandhabt.
  • Der Taktschalter 56 enthält die Logik, die einen der xtal_in-, PLL- oder (nur im Testmodus) TCK-Takte als die Quelle des globalen Kerntakts gck auswählen kann. Das Umschalten findet statt, während sowohl der augenblickliche Takt als auch der angeforderte Takt laufen und muss sauber ohne Störimpulse erzielt werden. Eine Retiming-Logik in dem Schalter 56 gewährleistet, dass der ursprüngliche Takt angehalten wird, während er niedrig ist, und dass der neue Takt gestartet wird, während er ebenfalls niedrig ist. Wiederum hat der Teststeuerungsblock Priorität bei der Auswahl der Taktquelle gegenüber der Taktsteuerung FSM 54.
  • Schließlich ist der Testzähler 58 ein einfacher rücksetzbarer Asynchronzähler (nicht scanbar), der bei der höchsten Rate des PLL 50 zählen kann. Dies wird lediglich verwendet, um den Betrieb des PLL 50 zu testen und wird durch den JTAG-Port gesteuert und abgerufen.
  • Die unten beschriebenen Register werden physisch in dem Registerblock existieren, auf den über den Santorini-TDM-Bus zugegriffen werden kann. Sie können dann von dem Hostport und dem Prozessor bzw. den Prozessoren, die damit gekoppelt sind, gelesen oder beschrieben werden.
  • Die Taktsteuerung stellt nur zwei Register bereit:
    PLL_CONFIG_RED – für das Programmieren und Aktivieren des PLL 50; und
    PLL_STATUS_RED – für das Auswählen entweder der Quarz- oder der PLL-Frequenz für die Verteilung zu dem Kern. Dieses Register stellt auch den Rücksetz-Zustand bereit.
  • Nun wird Bezug auf die 8a und 8b genommen. Das PLL_CONFIG_RED- oder PLL-Parameter-Register ist ein 32-Bit-Register. Alle Bits in diesem Register werden auf Null gesetzt, wenn die Schaltung zurückgesetzt wird. Die Zuordnung von Bits in diesem Register ist derart, dass die verschiedenen Dividierwerte aus Bequemlichkeitsgründen alle auf Byte ausgerichtet sind. Alle Bits in dem Register sind von dem Kern lesbar. Aber nur die Dividier- und Setup-Werte sowie das Freigabebit (enable bit) sind beschreibbar; alle anderen Bits geben einen konstanten Wert von Null zurück, mit Ausnahme des INLOCK-Bit, das immer direkt von dem PLL bereitgestellt wird.
  • Die Abschaltfrequenz (cut-out frequency) des PLL 50 steht mit der Eingangsfrequenz und den Dividierstufen durch die folgende Gleichung in Beziehung: Faus = Fein·(2M/(N·((2^P)))
  • So können zum Beispiel zur Programmierung eines Wertes von 495 MHz unter Verwendung eines 35329 MHz Kristalls die folgenden Dividierwerte benutzt werden: M = 28; N = 2 und P = 1. Dies wird wie in 8b gezeigt programmiert.
  • Es sei angemerkt, dass auf dieses Register nur für jeweils ein Byte von dem Hostport zugegriffen werden kann. Deshalb sollte das Freigabebit (Bit 1) dann, wenn über den Hostport programmiert wird, gelöscht werden, bevor die oberen Bytes programmiert werden. Dies verhindert, dass der PLL 50 so zurückgelassen wird, dass er mit potentiell unzulässigen Kombinationen von Werten in den oberen Bytes arbeitet. Wenn alle Werte in den oberen Bytes auf zulässige Werte programmiert worden sind, dann können die PDIV-Bits und das Freigabebit gleichzeitig gesetzt werden, um den PLL 50 zu starten.
  • Das PLL_STATUS_RED-Register ist in 9 zu sehen. Dieses Register enthält nur ein einziges Lese-/Schreib-Bit (read/writable bit) PLLnotXtal und drei Nur-Lese-Bits (read only bits) clkSource, wdog0 und wdog1. Wenn PLLnotXtal '1' ist, dann wird der PLL 50 ausgewählt, um den Haupttaktbaum anzutreiben; wenn PLLnotXtal '0' ist, dann wird der Taktbaum direkt von einem Taktsignal angetrieben, das von der Quarzquelle erzeugt wird. Wenn der IC eingeschaltet wird, wird das PLLnotXtal-Bit auf Null gesetzt, um die Quarztaktquelle auszuwählen.
  • Das Schreiben eines Wertes in das PLLnotXtal-Bit ist eine Anforderung (request), die Taktquelle zu wechseln. Dieser Wechsel wird von der Taktsteuerung durchgeführt, aber die Resynchronisation auf die neue Taktquelle erfordert eine Anzahl von Zyklen des xtal- und des Zieltakts. Das Bit in dem clkSource-Register zeigt an, welche Taktquelle zur Zeit ausgewählt ist (1 für PLL, 0 für xtal) und wird dem Wert in PLLnotXtal nach einer kurzen Verzögerung effektiv folgen.
  • Die beiden wdog-Bits geben den Status der Überwachungsprogrammauslöser (watchdog triggers) von vor dem Zeitpunkt zurück, als der IC gemäß der folgenden Tabelle zuletzt zurückgesetzt wurde:
  • Figure 00140001
  • Alle anderen Bits in diesem Register sind undefiniert; das heißt, die oberen Bits sollten immer demaskiert (masked off) sein, wenn dieses Register gelesen wird.
  • Wenn die Schaltung eingeschaltet wird, wird der Takt Xtal ausgewählt und dem Schaltungskern (circuit core) bereitgestellt. In diesem Beispiel ist dies ein 35328 MHz Kristall. Um auf PLL-Betrieb umzuschalten, wird das PLL_CONFIG_REG-Register mit den notwendigen PLL-Parametern programmiert und der PLL 50 wird aktiviert. Das INLOCK-Bit wird dann gesetzt, bevor das PLLnotXtal-Bit in dem PLL_STATUS_RED-Register gesetzt wird. Das Setzen des PLLnotXtal-Bit, bevor der PLL die Sperrung erreicht hat, könnte unvorhersagbar Ergebnisse haben.
  • Wenn der PLL 50 programmiert worden ist und als die Kerntaktquelle ausgewählt worden ist, sollte er nicht 'in aller Eile' neu programmiert werden, um die Frequenz einzustellen. Wenn man dies tun würde, könnte dies Störimpulse in dem Taktausgang zu dem Kern verursachen und zu einem nicht vorhersagbaren Schaltungsbetrieb führen. Um zu gewährleisten, dass dies nicht eintritt, ist das PLL_CONFIG_RED-Register immer dann gesperrt (nicht beschreibbar), wenn das PLLnotXtal-Bit in dem Register PLL_STATUS_RED gesetzt wird.
  • Es ist möglich, den PLL 50 neu zu programmieren, indem zuerst zurück zu der Quarztaktquelle geschaltet wird, indem "Null" in das PLLnotXtal-Bit des PLL_STATUS_REG geschrieben wird. Nun kann der PLL normal neu programmiert werden.
  • Rücksetzungen können entweder von dem physischen Rücksetz-Pin oder durch eines der beiden Überwachungsprogramm-Eingangssignale von dem Kern initiiert werden. Alle Rücksetz-Quellen sind bevorzugt logisch durch ein ODER miteinander verknüpft, so dass sie sich identisch verhalten. Die Dauer des Rücksetz-Impulses wird intern synchron zu dem xtal_in-Takt gesteuert (hauptsächlich um zu gewährleisten, dass die Überwachungsprogramm-Rücksetz-Impulse nicht von dem Überwachungsprogramm abgebrochen werden, das sich selber zurücksetzt).
  • Die bevorzugte Rücksetzsequenz in der Taktsteuerung folgt drei Phasen.
  • Phase 1 tritt auf, wenn das Rücksetzen extern aktiviert wird, wobei: die Taktsteuerung sofort asynchron zurückgesetzt wird, wobei die Übertragung irgendwelcher weiterer Taktimpulse zu dem Kern gestoppt wird; und das globale Initialisierungssignal (init_n) nach einer ausreichenden Verzögerung aktiviert wird, die es erlaubt, dass alle Takte zu dem Kern gestoppt worden sind.
  • Phase 2 tritt auf, wenn init_n intern aktiviert wird, und zwar derart, dass: keine Takte zu dem Kern geliefert werden; und alle Dreizustandsbusse (tri-state buses) und One-Hot-Multiplexer auf einen sicheren, nicht strittigen Zustand unter Verwendung eines Test-Override-Signals ausgesteuert worden sind.
  • Phase 3 tritt auf, wenn das Rücksetzen extern deaktiviert (deasserted) wird, wobei in diesem Fall: das init_n-Signal sofort deaktiviert wird (während alle Takte immer noch niedrig sind); das Rücksetzen bei der Taktsteuerung auf einer nachfolgenden steigenden Impulsflanke von xtal_in deaktiviert wird; die Taktsteuerung xtal_in standardmäßig als den Systemtakt auswählt und damit beginnt, diesen Takt zu dem Haupttaktbaum zu liefern, wobei das Schalten durchgeführt wird, während xtal_in niedrig ist; und die Schaltung den normalen Betrieb wieder aufnimmt, sobald das Ankommen von Takten wieder beginnt, wobei jede logische Rücksetz-/Boot-Sequenz je nach Bedarf vollendet wird.
  • Eine vereinfachte schematische Darstellung eines Beispiels einer Rücksetz-Logik ist in 10 gezeigt.
  • In diesem Beispiel sind die Überwachungsprogrammeingänge mit einer positiven Polarität und der reset_n-Pin mit einer negativen Polarität dargestellt. Alle gezeigten Flipflops sind auf der steigenden Flanke von xtal_in getaktet und sind voll scanbar.
  • Das Rücksetz-Signal zu dem Kern (init_n) wird durch eine rein kombinatorische Verzögerung verzögert, die an die Taktbaumverzögerung angepasst ist, so dass die Taktsteuerung zurückgesetzt wird und die Takte gestoppt werden, bevor das init_n-Signal von dem Kern empfangen wird. Der FSM 54 liest das init_n-Signal immer nach der Verzögerung (wobei er dieses auf den xtal-Takt resynchronisiert, bevor er dies tut), um zu gewährleisten, dass das init_n-Signal deaktiviert worden ist, bevor die Takte wieder gestartet werden.
  • Die wdog1- und wdog0-Signale sind immer Null, wenn das init_n-Signal ausgelöst wird, da die Flipflops, die diese Signale ausgeben, selber durch das init_n-Signal zurückgesetzt werden. Durch das Teststeuerungs-Multiplexen werden alle sequentiellen Elemente von dem Rücksetz-Pfad während des Testmodus entfernt, wobei jeweils entweder nur der Takt oder die Rücksetzung zu einer bestimmten Zeit aktiv sind.
  • Es wird angenommen, dass die wdog0/1-Signale gesetzt bleiben, bis sie durch die Rücksetzung, die sie auslösen, gelöscht werden, und zwar derart, dass die Retiming-Flipflops gewährleisten, dass der Überprüfungsprogramm-Rücksetz-'Impuls' für mindestens drei Zyklen des xtal_in-Takts aktiviert ist.
  • Ein test_bus_off-Signal wird eher von dem JTAG/TCB als von der Taktsteuerung gesourct und folgt einfach dem init_n-Signal, wenn der TCB die Benutzung des Signals für seine eigenen Zwecke nicht benötigt.
  • Ein Rücksetz-Zustandsregister ist vorgesehen, um die letzte Ursache für eine Schaltungsrücksetzung zu berichten. Eine Schaltung, wie sie in 11 gezeigt ist, ist ausreichend, um dies zu realisieren. In der in 11 gezeigten Schaltung sind die wdog1'/0'-Signale die taktangepassten (retimed) Versionen von 10, so dass sie mit xtal synchronisiert sind. Beide Flipflops sind durch xtal getaktet und sind voll scanbar. Wenn das reset_n-Pad aktiviert wird, werden beide Flipflops auf niedrig zurückgesetzt. Wenn eines (oder beide) der Überwachungsprogramme aktiv wird, dann erfassen die Flipflops den Wert der geeigneten Überwachungsprogrammleitung. Wenn man das Register liest, werden beide Bits '0' enthalten, wenn zuletzt ein hartes Rücksetzen angelegt worden war (das heißt, wenn reset_n aktiviert wurde), anderenfalls enthalten die Bits eine '1', wenn das entsprechende Überwachungsprogramm aktiv war.
  • Ein Beispiel eines Taktumschaltstromkreises ist in 12 gezeigt. Die Taktumschaltung zwischen xtal und dem PLL 50 wird unter Verwendung eines kleinen FSM 60 und zwei Reihen von Retiming-Flipflops 62, 64 gesteuert.
  • Die Taktsteuerung FSM 54 und die beiden Gruppen von Retiming-Flipflops 62, 64 werden durch die externe Rücksetz-Quelle asynchron zurückgesetzt, so dass alle Takte zu dem Kern gestoppt werden. (Die gemeinsame Rücksetz-Leitung ist in 12 nicht gezeigt).
  • Die Retiming-Flipflops 62, 64 gewährleisten, dass alle Änderungen bezüglich der Taktaktivierung auftreten, während der relevante Takt niedrig ist, wodurch gewährleistet wird, dass keine 'verkümmerten' Impulse zu dem Taktbaum durchgelassen werden. Drei Flipflops werden für das Retiming auf die PLL-Taktdomäne ausgewählt, um die Wahrscheinlichkeit von Metastabilitätsproblemen zu minimieren. Das Retiming für die xtal-Domäne könnte, falls notwendig, mit einem einzigen Flipflop erzielt werden, obwohl es vorgesehen ist, dass in der Praxis die gleiche Retiming-Struktur wie für den PLL 50 verwendet würde. Die Verzögerung, die durch zusätzliche Retiming-Flipflops eingeführt wird, spielt keine Rolle.
  • Beim Herauskommen aus dem Zurücksetzen wählt der FSM 60 standardmäßig xtal als die Quelle von gck aus. Während dieser Auswahl und zu jeder anderen Zeit, wenn von dem FSM gefordert wird, die Taktquelle zu wechseln, arbeitet der FSM folgendermaßen. Zuerst deaktiviert er alle Takte und wartet, bis sowohl pll_ack als auch xtal_ack Null sind, um dies zu bestätigen. Dann aktiviert er je nach Zweck dienlichkeit eines der Anforderungsbits. Schließlich wartet er, dass das entsprechende Quittungsbit hoch geht.
  • Während der FSM 60 diese Schritte durchführt, ignoriert er alle anderen Anforderungen bezüglich eines Taktumschaltens.
  • Die Santorini-Taktsteuerung benötigt einen Takt, der halb so groß ist wie die Rate des gck-Takts, zur Verwendung für den Haupt-TDM-Bus und Peripheriegeräte. Dieser Takt wird in der Taktsteuerung abgeleitet, indem alle anderen gck-Impulse durchgelassen werden. Sowohl der gck- als auch der gck/2-Takt werden über die gesamte Schaltung durch identische Taktbaumstrukturen verteilt. 13 zeigt eine geeignete Schaltung zur Erzeugung der gck- und gck/2-Taktimpulse. In dieser Schaltung gewährleistet das tst_force_cke-Signal, dass der gck/2-Takt immer direkt in dem Testmodus angetrieben wird.
  • Während mehrerer der zur Verfügung stehenden Testmodi werden die internen Takte direkt gesteuert. In einigen dieser Modi kann die Testmodussteuerung selber einen "zufälligen" Zustand enthalten, so dass der TCB immer jeden Zustand in der Taktsteuerung überlagert (overrides).
  • In Scan-Testmodi wird die JTAG normalerweise den TCK dazu zwingen, der globale Takt zu sein. Es besteht keine Notwendigkeit, den vorhergehenden Takt in diesem Fall sauber zu stoppen. Die Schaltung wird nach einem Scan-Test immer zurückgesetzt.
  • In BIST-Modi wird die JTAG entweder den TCK oder den PLL als den globalen Takt auswählen. Wiederum gibt es keine Notwendigkeit eines sauberen Starts/Stopps, da die Schaltung nach einer BIST-Operation immer zurückgesetzt wird.
  • In einem COREDUMP-Modus bewirkt die JTAG, dass die ursprüngliche Taktquelle sauber stoppt, bevor zu TCK umgeschaltet wird (so dass ein brauchbarer Zustand für den Dump vorliegt), aber es besteht keine Notwendigkeit, die Operation wieder aufzunehmen.
  • In einem komplexen TRSCAN-Modus lässt die JTAG eine saubere Folge von Impulsen von dem PLL während der Capture Zyklen durch, verwendet aber den TCK während der Shift Zyklen.
  • Die TCB-Taktsteuerungs-Schnittstelle wird aus den in 14 gezeigten Signalen gebildet, die in 15 angelegt gezeigt sind (das heißt, an die Schaltung von 12). Während des normalen Betriebs befindet sich der JTAG/TCB in einem Ruhezustand, so dass die tcb_cc_use_tck- und tcb_cc_clksel-Signale beide niedrig sind. In diesem Fall arbeitet die Schaltung genau so, wie dies oben beschrieben worden ist.
  • Während der meisten Scan-Tests aktiviert der TCB das tcb_cc_use_tck-Signal und liefert den Testtakt (tcb_cc_tck) durch zu gck, wodurch die Scan-Operation komplett unabhängig von der Taktsteuerung wird. Dies erlaubt es, dass der größte Teil der Taktsteuerung selber einem Scan-Test unterzogen werden kann.
  • Für die Testmodi, die die Verwendung des PLL die ganze Zeit über benötigen (PLLBIST, RUNSIST), wird das tcb_cc_clksel-Signal bestätigt und die tcb_pll_en-Leitung wird von dem TCB hochgefahren.
  • Zwei Testmodi benötigen die Verwendung von sowohl PLL als auch TCK:
    • – COREDUMP muss sowohl die xtal_in- als auch die PLL-gesourcten Takte zu dem Kern sauber anhalten, bevor es zum TCK für den Shifting-Out-Zustand schaltet; und
    • – TRSCAN muss den PLL verwenden, um kurze Bursts von Impulsen in den Capture Zyklen abzufeuern, während er den TCK-Takt für den Shifting-Out-Zustand verwendet.
  • Wenn der COREDUMP-Befehl in die JTAG geladen wird, werden die internen Takte von der JTAG gestoppt, indem das tcb_cc_clksel-Signal aktiviert wird und sowohl tch_cc_clkctrl[0] als auch tcb_pll_en niedrig gehalten werden. Die JTAG pausiert lange genug, damit die Takte von den Retiming-Flipflops 62, 64 angehalten werden können, bevor das tcb_cc_use_tck-Signal aktiviert wird und der neue TCK-Takt für das Shifting Out des scanbaren Zustands geliefert wird.
  • Der Betrieb des Übergangsfehler-Testmodus ist wie oben unter Bezugnahme auf das Ablaufdiagramm von 6 beschrieben. Im Allgemeinen wird das tcb_cc_use_tck-Signal hoch sein, während das tst_scan_en-Signal (scan_en in 6) aktiviert ist, wodurch bewirkt wird, dass TCK für das Scan Chain Shifting verwendet wird. Aber für die Capture Zyklen müssen wir eine variable Anzahl von Impulsen von dem PLL durchlassen. Dieser Impulsstrom wird von dem Signal tcb_cc_pll_gate (pulse_gate in 6) zeitlich gesteuert. Die Sequenz von 6 nimmt an, dass ein Strom von nur zwei PLL-Impulsen zum Anlegen an den Kern ausgewählt worden ist. Tatsächlich ist es möglich, je nach Bedarf zwischen 1 und 4 Impulse auszuwählen.
  • Wenn scan_en heruntergezogen wird (um von Shift in den Capture Zyklus zu gehen), sollte es dem Signal möglich sein, sich über die gesamte Schaltung zu stabilisieren, bevor irgendwelche Impulse durchgelassen werden. Folglich wird tcb_cc_pll_gate (pulse_gate) niedrig gehalten, bis dies erreicht ist. Wenn tcb_cc_pll_gate (pulse_gate) hoch geht, lässt die Taktsteuerung die programmierte Anzahl an Impulsen heraus. Nach einer gewissen Arbitrierungsperiode, die lang genug ist, dass die mehreren Capture-Impulse angelegt werden konnten, wird wieder in den Shift-Modus gegangen, indem tst_scan_en (scan_en) hochgezogen wird. Tcb_cc_pll_gate kann an diesem Punkt entweder hoch gelassen bleiben oder kann heruntergefahren werden.
  • Sein Zustand spielt keine Rolle, da keine PLL-Impulse mehr angetrieben werden, das heißt, nur die steigende Flanke von tcb_cc_pll_gate ist wichtig. Aber an einem Punkt während des Shifts muss die tcb_cc_pll_gate-Leitung herunter gehen, um den Impulszähler in der Taktsteuerung zurückzusetzen. Der Einfachheit halber kann diese während der ganzen Shiftperiode niedrig angetrieben werden, wie in 6 gezeigt ist.
  • Während der TRSCAN-Operation befindet sich der PLL in dem Zustand, der von dem vorhergehenden PLLCTRL-Befehl programmiert worden ist.
  • Eine schematische Darstellung des Impulsstromgatters ist in 16 gezeigt. Das Ausgangssignal tcb_pll_en treibt das Eingangssignal des gleichen Namens in 15 an. Wenn die JTAG einen Testbefehl geladen hat, der ein anderer ist als einer von den Übergangsfehler-Befehlen, wird das Signal tcb_pll_en direkt von tcb_cc_clkctrl[1] genommen. Dies ist der Fall, wenn der PLLBIST- oder der RUNBIST-Befehl und so weiter abläuft. Natürlich ist dann, wenn die JTAG keinen Testbefehl geladen hat, der Wert an dem tcb_pll_en-Signal in jedem Fall ohne Bedeutung.
  • Wenn die JTAG mit einem Übergangsfehlerbefehl geladen ist, wird der Wert von tcb_pll_en aus einem Schieberegister genommen, das an der fallenden Flanke des PLL-Taktes arbeitet. Das Schieberegister arbeitet folgendermaßen. Wenn tcb_cc_pll_gate niedrig ist, sind die 4 LHS-Flipflops 72 mit den Werten 0011, 0111 oder 1111 in Abhängigkeit davon vorher geladen, welcher TRSCAN-Befehl geladen ist, (der 4. Flipflop ist immer auf '1' gesetzt), und der 5. ist immer auf Null gesetzt. Somit ist es möglich, 1, 2, 3 oder 4 Capture-Takte sauber zu liefern. Wenn tcb_cc_pll_gate hoch geht, wird dies durch drei Retiming-Flipflops 70 einem Retiming auf die steigende Flanke des PLL-Taktes unterzogen. Danach bewirkt dies, dass die niedrigeren Flipflops 72 in ein Schieberegister konfiguriert werden. Das tcb_pll_en-Signal wird von den Retiming-Flipflops, die in früheren Figuren gezeigt sind, einer weiteren Pipelineverarbeitung unterzogen, aber die zusätzliche Verzögerung spielt keine Rolle.
  • Da der vorher geladene Wert aus dem Register heraus geschoben wird, werden Nullen hineingeschoben, so dass am Ende der Capture Sequenz der PLL-Strom ungeachtet des Zustands des tcb_cc_pll_gate-Signals immer deaktiviert wird; das Schieberegister ist geleert worden. Die JTAG 'wartet' einfach eine ausreichende Zeit lang, bis die Capture vollendet ist, bevor sie den TCK-Takt erneut auswählt, um die erfassten Daten hinaus zu schieben. (Die Auswahl wird asynchron getroffen, während der TCK-Takt niedrig ist, um zu gewährleisten, dass diese ebenfalls sauber ist).
  • Während des Shift-Prozesses wird das tst_cc_pll_gate-Signal wieder hochgesetzt, um das Schieberegister für die nächste Capture Sequenz fertig vorzubereiten.
  • Natürlich kann keiner der Flipflops 70, 72 scanbar sein.
  • In dem bevorzugten Ausführungsbeispiel ist ein Testzähler in dem PLL 50 als ein einfaches digitales Testverfahren für den PLL bei der Produktion vorgesehen. Der Betrieb wird über den JTAG-Port gesteuert, wobei PLLCTRL-(Setup von PLL-Parametern) und PLLBIST-(Rücksetzen, Starten und Stoppen des Testzählers)-Befehle verwendet werden. Das allgemeine Schema ist, den PLL derart einzurichten, dass er mit einer bestimmten Frequenz läuft und dann den Testzähler zurückzusetzen, Impulse über eine gegebene Zeitspanne zu zählen und dann den Zähler zu stoppen und den Wert zu inspizieren, ihn mit einer Sicherheitsfrequenzband-Zahl zu vergleichen, um Tester-Timing-Ungenauigkeiten zu berücksichtigen, und so weiter.
  • Der Testzähler selber kann als ein einfacher 20-Bit-Asynchronzähler implementiert werden und ist in dem Scan-Test des Taktsteuerungsblocks nicht enthalten. Man betrachtet den Zähler als durch Implikation während des PLL-Tests vollständig getestet.
  • Es wird in diesem Beispiel klar sein, dass die Funktionen der Taktsteuerung zwischen dem Santorini-Taktsteuerungsblock und dem JTAG/TCB aufgeteilt worden sind. Dies vereinfacht das Design des Taktsteuerungsblocks, und indem es dem Testport überlassen wird, die Steuerung der Takte während den verschiedenen Testmodi zu erzwingen, wird es ermöglicht, dass der größte Teil des Steuerblocks selbst einem Scan-Test unterzogen werden kann. Die einzigen Teile, die keinem Scan-Test unterzogen werden können, sind der PLL-Testzähler (der als ein Teil des PLLBIST-Tests getestet wird) und eine kleine Anzahl von wichtigen Retiming-Flipflops.

Claims (8)

  1. Verfahren zum Scan-Testen einer Logikschaltung (12), die von internen Schwingeinrichtungen (16) angetrieben wird, die einen Hochfrequenz-Takt und einen externen Takt (14) erzeugen können, wobei der externe Takt (14) während des Normalbetriebs verwendet wird, um den Betrieb der Logikschaltung zeitlich zu steuern, wobei das Verfahren die Schritte des Deaktivierens des externen Takts (14), des Synchronisierens von Testeinrichtungen mit der interen Schwingeinrichtung (16), des Durchführens von Scan-Tests der Logikschaltung (12), während der externe Takt (14) deaktiviert ist, und das Wiederaktivieren des externen Takts (15) nach dem Testen der Logikschaltung (12) aufweist, dadurch gekennzeichnet, dass, das Verfahren des Weiteren den Schritt des Aktivierens des Scan Chain Shifting umfasst, wobei das Verfahren den externen Takt (14) während des Scan Chain Shiftings bereitstellt, wobei die Testtaktsteuerung drei Steuereingänge (use_tck, pulse_gate, num_pulses) eines Taktschalters (10), der in einer Taktleitung zwischen der Logikschaltung (12) und dem extern zugeführten Testtakt (14) und der freilaufenden internen Schwingeinrichtung (16) zwischengeschaltet ist; extern steuert, wobei ein Signal (scan_en) im allgemeinen hoch gehalten wird, um Scan Shifting durchzuführen, und für Capture Zyklen niedrig ist, und wenn das Signal (scan_en) heruntergezogen wird, um vom Shift in den Capture Zyklus zu gehen, sich das Signal (scan_en) über die gesamte Logikschaltung (12) stabilisieren kann, bevor Impulse durchgelassen werden, indem der Eingang (pulse_gate) niedrig gehalten wird, und wenn der Eingang (use_tck) hoch ist, der Taktschalter (10) den Testtakt (14) an die zu testende Logikschaltung (12) koppelt, und wenn der Eingang (pulse_gate) hoch gesetzt wird, eine vorprogrammierte Anzahl von Impulsen von der internen Schwingeinrichtung (16) anstelle des Testtakts (14) zu der Logikschaltung (12), die getestet wird, durchgekoppelt wird.
  2. Verfahren nach Anspruch 1, wobei die verwendete interne Schwingeinrichtung ein Phase Locked Loop (16) innerhalb der Logikschaltung (12) ist.
  3. Verfahren nach Anspruch 1 oder 2, das den Schritt des Ermittelns der Zeitdauer umfasst, während der der externe Takt (14) deaktiviert ist.
  4. Verfahren nach einem der vorhergehenden Ansprüche, wobei zum Übergangstesten, das eine Capture-Phase umfasst, das Verfahren den Schritt des Deaktivierens der Fortpflanzung des externen Takts (14) vor der Capture-Phase aufweist, des Aussendens einer vorgegebenen Anzahl von Hochgeschwindigkeits-Oszillatorimpulsen, und des Zurückschaltens auf den externen Takt (14), um erfasste Daten vom Chip herunter zu schieben.
  5. System zum Scan-Testen einer Logikschaltung (12), die von internen Schwingeinrichtungen (16) angetrieben wird, die einen Hochfrequenz-Takt und einen externen Takt (14) erzeugen konnen, wobei der externe Takt (14) während des Normalbetriebs verwendet wird, um den Betrieb der Logikschaltung (12) zeitlich zu steuern, wobei das System eine Taktsteuerung aufweist, die so betrieben werden kann, dass sie den externen Takt (14) deaktiviert, Testeinrichtungen mit der internen Schwingeinrichtung (16) synchronisiert, und den externen Takt (14) nach dem Testen der Logikschaltung (12) wieder aktiviert, dadurch gekennzeichnet, dass die Steuerung so betrieben werden kann, dass sie das externe Taktsignal zum Scan Chain Shift Testen bereitstellt, und dass ein Taktschalter (10) bereitgestellt wird, der in der Taktleitung zwischen der Logikschaltung (12) und dem extern zugeführten Testtakt (14) und der freilaufenden internen Schwingeinrichtung (16) zwischengeschaltet ist, wobei der Ausgang des Taktschalters (10) eine Leitung (logic_clk) ist, die das Taktsignal, das tatsächlich von der internen getesteten Logikschaltung (12) gesehen wird, ist, wobei die Taktschaltung (10) drei Steuereingänge (use_tck, pulse_gate, num_pulses) aufweist, wobei diese Signale extern durch die Testtaktsteuerung gesteuert werden, wobei ein Signal (scan_en) im allgemeinen hoch gehalten wird, um Scan Shifting durchzuführen, und für Capture Zyklen niedrig ist, und wenn das Signal (scan_en) heruntergezogen wird, um von Shift in den Capture Zyklus zu gehen, kann sich das Signal (scan_en) über die gesamte Logikschaltung (12) stabilisieren, bevor Impulse durchgelassen werden, indem der Eingang (pulse_gate) niedrig gehalten wird, und wenn der Eingang (use_tck) hoch ist, koppelt der Taktschalter (14) den Testtakt (14) an die zu testende Logikschaltung (12), und wenn der Eingang (pulse_gate) hoch gesetzt wird, wird eine vorprogrammierte Anzahl von Impulsen von der internen Schwingeinrichtung (16) anstelle des Testtakts (14) zu der Logikschaltung (12), die getestet wird, durchgekoppelt.
  6. System nach Anspruch 5, wobei die interne Schwingeinrichtung ein Phase Locked Loop (16) ist.
  7. System nach Anspruch 5 oder 6, wobei die Testtaktsteuerung Einrichtungen zum Einstellen der Zeitdauer, während der der externe Takt (14) deaktiviert ist, aufweist.
  8. System nach einem der Ansprüche 5 bis 7, wobei die Testtaktsteuerung eine Santorini Taktsteuerung ist.
DE60206845T 2001-06-20 2002-06-18 Testsystem Expired - Lifetime DE60206845T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US29917501P 2001-06-20 2001-06-20
US299175P 2001-06-20

Publications (2)

Publication Number Publication Date
DE60206845D1 DE60206845D1 (de) 2005-12-01
DE60206845T2 true DE60206845T2 (de) 2006-07-06

Family

ID=23153615

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60206845T Expired - Lifetime DE60206845T2 (de) 2001-06-20 2002-06-18 Testsystem

Country Status (4)

Country Link
US (1) US20030009714A1 (de)
EP (1) EP1271162B1 (de)
AT (1) ATE308054T1 (de)
DE (1) DE60206845T2 (de)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040085082A1 (en) * 2002-10-30 2004-05-06 Townley Kent Richard High -frequency scan testability with low-speed testers
US7085976B1 (en) * 2003-02-18 2006-08-01 Xilinx, Inc. Method and apparatus for hardware co-simulation clocking
US7155649B2 (en) * 2003-03-12 2006-12-26 Matsushita Electric Industrial Co., Ltd. Scan test control method and scan test circuit
US7404128B2 (en) * 2004-02-17 2008-07-22 Texas Instruments Incorporated Serial data I/O on JTAG TCK with TMS clocking
US7519111B2 (en) * 2004-03-15 2009-04-14 Texas Instruments Incorporated Apparatus and method for providing system and test clock signals to an integrated circuit on a single pin
DE602004013918D1 (de) * 2004-04-07 2008-07-03 Sgs Thomson Microelectronics Hochgeschwindigkeitsprüfung von integrierten Schaltungen
JP2006038743A (ja) * 2004-07-29 2006-02-09 Nec Electronics Corp 半導体集積回路装置及びその試験装置
US7627798B2 (en) * 2004-10-08 2009-12-01 Kabushiki Kaisha Toshiba Systems and methods for circuit testing using LBIST
WO2006123204A1 (en) * 2005-05-19 2006-11-23 Freescale Semiconductor, Inc. Method and device for high speed testing of an integrated circuit
KR100870037B1 (ko) * 2006-10-26 2008-11-24 삼성전자주식회사 테스트가 용이한 반도체 장치, 반도체 장치 테스트 방법,반도체 장치 테스트를 위한 테스트 클럭 생성 방법 및 장치
US7987401B2 (en) * 2006-11-27 2011-07-26 Broadcom Corporation System and method for generating self-synchronized launch of last shift capture pulses using on-chip phase locked loop for at-speed scan testing
US20080282110A1 (en) * 2007-05-09 2008-11-13 Amar Guettaf Scan clock architecture supporting slow speed scan, at speed scan, and logic bist
JP5029161B2 (ja) * 2007-06-15 2012-09-19 株式会社デンソー 半導体集積装置
US8205125B2 (en) * 2009-10-23 2012-06-19 Texas Instruments Incorporated Enhanced control in scan tests of integrated circuits with partitioned scan chains
KR101992205B1 (ko) 2012-12-12 2019-06-24 삼성전자주식회사 온칩 클록 제어회로 및 시스템 온 칩
US9194915B2 (en) * 2013-09-12 2015-11-24 International Business Machines Corporation Control test point for timing stability during scan capture
US9465404B2 (en) * 2014-08-06 2016-10-11 Freescale Semiconductor, Inc. Timing synchronization circuit for wireless communication apparatus
KR20160121947A (ko) * 2015-04-13 2016-10-21 에스케이하이닉스 주식회사 반도체 장치

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0770573B2 (ja) * 1989-07-11 1995-07-31 富士通株式会社 半導体集積回路装置
US5524114A (en) * 1993-10-22 1996-06-04 Lsi Logic Corporation Method and apparatus for testing semiconductor devices at speed
US5519715A (en) * 1995-01-27 1996-05-21 Sun Microsystems, Inc. Full-speed microprocessor testing employing boundary scan
JPH08201481A (ja) * 1995-01-27 1996-08-09 Internatl Business Mach Corp <Ibm> 半導体集積回路
US6055658A (en) * 1995-10-02 2000-04-25 International Business Machines Corporation Apparatus and method for testing high speed components using low speed test apparatus
US5909451A (en) * 1996-11-21 1999-06-01 Sun Microsystems, Inc. System and method for providing scan chain for digital electronic device having multiple clock domains
JP3257425B2 (ja) * 1996-12-25 2002-02-18 日本電気株式会社 テスト回路及びテスト方法
US5875153A (en) * 1997-04-30 1999-02-23 Texas Instruments Incorporated Internal/external clock option for built-in self test
US6000051A (en) * 1997-10-10 1999-12-07 Logic Vision, Inc. Method and apparatus for high-speed interconnect testing
US6158032A (en) * 1998-03-27 2000-12-05 International Business Machines Corporation Data processing system, circuit arrangement and program product including multi-path scan interface and methods thereof
US6163865A (en) * 1998-07-22 2000-12-19 Lucent Technologies, Inc. Built-in self-test circuit for read channel device
US6418545B1 (en) * 1999-06-04 2002-07-09 Koninklijke Philips Electronics N.V. System and method to reduce scan test pins on an integrated circuit
TW484016B (en) * 1999-07-28 2002-04-21 Hitachi Ltd Semiconductor integrated circuit and recording medium
JP3434762B2 (ja) * 1999-12-27 2003-08-11 エヌイーシーマイクロシステム株式会社 半導体集積回路
US6598192B1 (en) * 2000-02-28 2003-07-22 Motorola, Inc. Method and apparatus for testing an integrated circuit
US6715105B1 (en) * 2000-11-14 2004-03-30 Agilent Technologies, Inc. Method for reducing stored patterns for IC test by embedding built-in-self-test circuitry for chip logic into a scan test access port
US7191373B2 (en) * 2001-03-01 2007-03-13 Syntest Technologies, Inc. Method and apparatus for diagnosing failures in an integrated circuit using design-for-debug (DFD) techniques
US6738921B2 (en) * 2001-03-20 2004-05-18 International Business Machines Corporation Clock controller for AC self-test timing analysis of logic system
US6671848B1 (en) * 2001-03-20 2003-12-30 Advanced Micro Devices, Inc. Test circuit for exposing higher order speed paths

Also Published As

Publication number Publication date
EP1271162A3 (de) 2003-12-17
ATE308054T1 (de) 2005-11-15
EP1271162A2 (de) 2003-01-02
DE60206845D1 (de) 2005-12-01
US20030009714A1 (en) 2003-01-09
EP1271162B1 (de) 2005-10-26

Similar Documents

Publication Publication Date Title
DE60206845T2 (de) Testsystem
DE69533275T2 (de) Ein Steuergerät zur Durchführung der Abtastprüfung
DE3882266T2 (de) Abfrageprüfgerät für digitale Systeme mit dynamischem Direktzugriffspeicher.
DE69126575T2 (de) Durch Ereignis befähigte Prüfarchitektur
DE60211659T2 (de) Verfahren und vorrichtung zur diagnose von ausfällen in einer integrierten schaltung unter verwendung von techniken des typs design-for-debug (dfd)
DE68928837T2 (de) Prüf-Puffer/Register
DE69031362T2 (de) Verzögerungsfehler-Testvorrichtung
DE68928613T2 (de) Bidirektionale-Boundary-Scan-Testzelle
DE112005001517B4 (de) Synchronisation zwischen Niedrigfrequenz- und Hochfrequenzdigitalsignalen
US9264049B2 (en) Synchronous on-chip clock controllers
DE69024138T2 (de) Verfahren und Einrichtung zur Erzeugung von Steuersignalen
DE602005003302T2 (de) Automatischer mit Geschwindigkeit ablaufender Test auf Fehler von Logikblöcken unter Verwendung von BIST-Logikschaltungen
DE69217524T2 (de) Testschaltung, vorgesehen in digitalen logischen Schaltungen
DE102006024507B4 (de) Integrierte Schaltung und Verfahren zum Erkennen von Laufzeitfehlern in integrierten Schaltungen
DE102008029796A1 (de) Messungs-Vorrichtung zur Verbesserung der Leistungsfähigkeit einer Standardzellen-Bibliothek
DE60109321T2 (de) Prüfung von asynchroner rücksetzschaltung
DE112006002092T5 (de) Schaltungskartensynchronisation innerhalb eines standardisierten Prüfinstrumentenchassis
DE102009012768B4 (de) JTAG Nachrichtenbox
DE69533018T2 (de) Struktur und Leistungsabtastprüfung
DE10345150B3 (de) Verfahren, Vorrichtung und System zum Analysieren digitaler Schaltungen
US10110234B1 (en) Efficient system debug infrastructure for tiled architecture
DE10141523A1 (de) Randanordnung und Sterilitätsmessung für elektronische Bauteile
EP1430320B1 (de) Elektronischer baustein und verfahren zu dessen qualifizierungsmessung
DE60007196T2 (de) Vorrichtung zur Beseitigung von &#34;Durchgleiten&#34; von Daten während einer Schiebeoperation mit Master-Slave Kippschaltungen
DE60100808T2 (de) Erfassung eines regeisterwertes zu einem anderen taktbereich

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8328 Change in the person/name/address of the agent

Representative=s name: BOSCH JEHLE PATENTANWALTSGESELLSCHAFT MBH, 80639 M