-
Die
Erfindung betrifft eine integrierte Schaltung und ein Verfahren
zum Erkennen von Laufzeitfehlern in integrierten Schaltungen. Bei
integrierten Schaltungen stellt sich das Problem, dass Laufzeitfehler
auftreten. Es besteht die Gefahr, dass es durch zu schnelle oder
zu langsame Signallaufzeiten zu Fehlfunktionen der integrierten
Schaltung kommt. Je höher
die Taktfrequenzen sind, umso größer ist
das Risiko des Auftretens von Laufzeitfehlern, was in digitalen
Schaltungen ab etwa 300 MHz bemerkbar wird.
-
Die
US 2003/0084390 zeigt ein Verfahren zum Test von integrierten Schaltungen
mit unterschiedlichen Takttreibern. Die Flip-Flops der Schaltung
können
in einem Scan-Verfahren als Schieberegister geschaltet werden. Zur
Erkennung von Laufzeitfehlern werden zunächst Daten mit einem relativ langsamen
Takt in Scanzellen eingeschoben, um die integrierte Schaltung in
einen bestimmten Zustand zu bringen. Für den anschließend eigentlichen
Test werden aus einer PLL Taktpulse generiert. Die so erzeugten
Taktpulse werden auch als Launch/Capture Pulse bezeichnet, wobei
durch den Launchpuls ein Signal ausgelöst wird, das mittels des Capturepulses empfangen
wird. Dazu werden Taktpulse erzeugt, deren Frequenz gleich der Anwendungsfrequenz
der integrierten Schaltung ist, wodurch Laufzeitfehler erkannt werden
können.
-
Allerdings
ist die Programmierung des Laufzeitfehlertests immer noch aufwendig.
-
Es
ist daher Aufgabe der Erfindung, ein Verfahren und eine integrierte
Schaltung anzugeben, mit denen das Erkennen von Laufzeitfehlern
mit weniger Steueraufwand ermöglicht
wird.
-
Diese
Aufgabe wird durch den Gegenstand der unabhängigen Ansprüche gelöst. Vorteilhafte Ausgestaltungen
ergeben sich aus den jeweiligen Unteransprüchen.
-
Erfindungsgemäß wird ein
Verfahren zum Erkennen von Laufzeitfehlern in integrierten Schaltungen
bereitgestellt. Die integrierte Schaltung enthält eine Vielzahl von Scanzellen,
die in einem Scan-Ketten-Schiebe-Modus als Schieberegister geschaltet
sind. Zudem enthält
die integrierte Schaltung eine Vielzahl von Taktdomänen. Taktdomänen sind Teile
der integrierten Schaltung, wobei jede Taktdomäne von einem eigenen Takttreiber
betrieben wird. Als Takteingänge
weist die integrierte Schaltung zumindest einen Funktional-Takteingang
und einen Scan-Takteingang
auf.
-
Bei
dem Verfahren wird der Scan-Ketten-Schiebe-Modus eingeschaltet,
sodass die Scanzellen ein Schieberegister bilden. Anschließend werden
Daten in die Scantestzellen geschoben. Dies erfolgt mithilfe von
Signalwechseln an dem Scan-Takteingang.
An den Funktional-Takteingang werden ebenfalls Taktsignale angelegt.
Zusätzlich
werden Signalfolgeregister programmiert. Nach dem Ausschalten des
Scan-Ketten-Schiebe-Modus
wird eine Vielzahl von Taktsignalen in mindestens einer Taktdomäne entsprechend
der in den Signalfolgeregistern gespeicherten Werte erzeugt. Dieser
Takt wird aus dem Takt am Funktional-Takteingang erzeugt. Anschließend wird
festgestellt, ob Laufzeitfehler in der im vorherigen Verfahrens schritt
betriebenen Taktdomäne aufgetreten
ist. Die Überprüfung erfolgt
in der Regel dadurch, dass verglichen wird, ob in Speicherzellen der
integrierten Schaltung gespeicherte Werte erwarteten Werten entsprechen.
-
Der
Scan-Ketten-Schiebe-Modus muss deutlich von einem Modus unterschieden
werden, der in vielen Implementierungen als "scan_mode" bezeichnet wird, aber lediglich für die Umschaltung
der Takteingänge
sorgt. Im "scan_mode" werden die Scan-Flip-Flops mit einem
an einem Testeingang anliegenden Testtakt betrieben.
-
Die
Erzeugung der Taktsignale aus dem Takt am Funktional-Takteingang wird
durch einen Signalwechsel an dem Scan-Takteingang ausgelöst. Dieses Erzeugen der Taktsignale
muss nach dem Ausschalten des Scan-Ketten-Schiebe-Modus erfolgen, damit
sich die Scanzellen in dem Modus befinden, in dem sie sich im normalen,
funktionalen Betrieb befinden. Für
das Auslösen
der Taktsignale wird vorteilhafter Weise der Scan-Takteingang verwendet,
wodurch ein Eingangspin eingespart wird. Die Anzahl der Eingangspins
ist kritisch für
die Gesamtkosten einer integrierten Schaltung. Jeder eingesparte
Pin, besonders wenn er nur für
Testzwecke benötigt
wird, verbilligt die Gesamtkosten der integrierten Schaltung. Zudem
wird die Ansteuerung vereinfacht, da lediglich ein Signalwechsel
auf dem Scan-Takteingang nötig
ist, um die Taktpulse zu erzeugen. Wie die Signalform der Takte
konkret aussieht, ist bereits in den Signalfolgeregistern abgespeichert.
-
Die
Reihenfolge der Verfahrensschritte kann variiert werden. Bspw. kann
die Programmierung der Signalfolgeregister vor dem Einschalten des Scan-Ketten-Schiebe-Modus
erfolgen. Vorzugs weise werden die Taktsignale an dem Funktional-Takteingang
angelegt, bevor der Scan-Ketten-Schiebe-Modus aktiviert wird. Dadurch
hat eine auf dem Chip befindliche PLL genügend Zeit, einzuschwingen.
-
Vorzugsweise
werden die Testmodi über eine
JTAG-Schnittstelle programmiert. Eine solche Schnittstelle ist in
dem Standard IEEE 1149.1 definiert. Sie enthält vier oder fünf Schnittstellenanschlüsse. Die
Eingänge
sind "Testdata ein
(TDI)", "Testtakt (TCK)", "Testmode select (TMS)" und optional "Testreset (TRST)". Zudem gibt es einen
Ausgang "Testdaten
aus (TDO)". Der
JTAG und der Scantest verwenden in der Regel unabhängige Schnittstellen.
Der JTAG wird gerne verwendet, um via Programmierung des Testregisters
den gesamten Chip in scan_mode zu setzen. Durch den scan_mode wird
auf einen anderen Takteingang umgeschaltet.
-
Falls
in dem Schritt des Überprüfens auf Laufzeitfehler
der Scan-Ketten-Schiebe-Modus wieder eingeschaltet wird, können gezielt
die in der elektrischen Schaltung abgespeicherten Werte, bei denen
ein Fehler vermutet wird, ausgelesen werden. Diese Daten werden
von der integrierten Schaltung mit dem langsamen Scantakt ausgegeben,
wodurch die Daten mit relativ einfachen und somit kostengünstigen
Messgeräten
gelesen werden können.
-
In
einer Ausführungsform
werden in den Signalfolgeregistern pro Taktdomäne jeweils die Länge der
Signalfolgen und die Werte für
die Signalfolgen gespeichert. Durch die Vorgabe der Länge wird
eine zweistufige Taktgenerierung ermöglicht. In der ersten Stufe
treibt ein Takttreiber während
der gesamten Dauer der Signalfolge Taktsignale, während in
der zweiten Stufe nur die Takte, die in der Signalfolge der speziellen
Taktdomäne
enthalten sind, durchgelassen werden.
-
Falls
die Taktsignale entsprechend den Signalfolgeregistern für mehrere
Taktdomänen
gleichzeitig erzeugt werden, ist die Überprüfung von Laufzeiten für Signale,
die in mehreren Taktdomänen
verlaufen, möglich.
Bspw. wird ein Signal in einer ersten Taktdomäne erzeugt und in einer zweiten
Taktdomäne
empfangen.
-
Bei
den Taktdomänen
wird zwischen synchronen und asynchronen Taktdomänen unterschieden. Synchrone
Taktdomänen
werden von einem gleichen Basistakt, bspw. von einem gleichen PLL-Ausgang,
betrieben. Bei asynchronen Taktdomänen werden die Takte in den
Taktdomänen
von Takten betrieben, die nicht miteinander synchron sind, weil
sie bspw. sich bezüglich
ihrer Phase oder ihrer Frequenz unterscheiden. Die unterschiedlichen Takte
werden von unterschiedlichen PLL-Ausgängen, die auch unterschiedlichen
PLLs zugeordnet sein können,
gespeist.
-
Die
Erfindung betrifft auch ein Verfahren zum Herstellen eines Halbleiterchips,
bei dem zunächst ein
Halbleiterchip entworfen wird. Dabei wird ein Multiplexer entworfen,
der als Eingangssignale einen Scan-Takteingang und mindestens ein
Ausgangssignal einer PLL empfängt.
Der Multiplexer gibt als Ausgangssignal ein Taktsignal für Takteingänge von Flip-Flops
aus. Der Multiplexer ist so ausgebildet, dass in einem Funktionalmodus
des Halbleiterchips der Ausgang der PLL auf die Takteingänge der Flip-Flops
geschaltet wird. In einem Scan-Ketten-Schiebe-Modus wird das Signal eines Scan-Takteingangs
auf die Takteingänge
der Flip-Flops geschaltet. Und schließlich wird in einem Laufzeittest eine
Auswahl von den von der PLL erzeugten Pulsen auf die Takteingänge der
Flip-Flops geschaltet. Eine Auswahl bedeutet hierbei, dass einzelne
Pulse des von der PLL erzeugten Taktes ausgeblendet werden.
-
Der
Multiplexer ist derart ausgelegt, dass im Laufzeittest und im Funktionalmodus
das Signal von dem Ausgang der PLL zu den Flip-Flops über dieselben
Pfade läuft.
Dies bedeutet, dass es zwischen dem Ausgang der PLL und den Flip-Flops
keine zusätzlichen
Gatter gibt, die nur in einem der beiden Modi Laufzeittest und Funktionalmodus
geschaltet werden. Dies hat den Vorteil, dass der Pfad in beiden Modi
gleich lang ist. Dadurch wird sichergestellt, dass im Laufzeittest
und im Funktionalmodus der Taktpfad gleich lang ist. Somit sind
auch die Schwankungen des Taktes gleich lang, und im Laufzeittest
wird somit mit gleichen Bedingungen wie im Funktionalmodus getestet.
-
Der
Taktbaum wird anhand der berechneten Verzögerungszeiten von Signalen,
die von dem Taktausgang mit der höchsten Frequenz erzeugt werden, erstellt.
Somit wird der Taktbaum bei der höchsten Frequenz, und somit
bei der Frequenz mit den höchsten
Anforderungen, erstellt. Die niedrigeren Frequenzen haben geringere
Anforderungen und brauchen deshalb für die Erstellung des Taktbaums
nicht gesondert betrachtet zu werden. Zudem ist von Vorteil, dass
im Funktionalmodus und im Laufzeittest die Pfade gleich lang sind.
Beim Erstellen des Taktbaumes bedarf es somit keiner Fallunterscheidung
zwischen dem Funktionalmodus und dem Laufzeittest.
-
Zum
Schluss des Verfahrens wird der so entworfene Halbleiterchip materiell
erzeugt.
-
In
einer bevorzugten Ausführungsform
werden die Pfade so ausgelegt, dass die Verzögerung von den Taktausgängen, die
eine niedrigere Frequenz als die höchste Frequenz haben, nicht
länger als
die Verzögerung
von dem Taktausgang mit der höchsten
Frequenz ist. Somit sind die Schwankungen der Verzögerungen
bei der höchsten
Frequenz am größten oder
gleich groß wie
die Verzögerungen der
anderen Taktausgänge.
Somit brauchen die Verzögerungen
der anderen Taktausgänge
beim Erstellen des Taktbaums nicht gesondert betrachtet zu werden.
-
Die
Erfindung betrifft auch eine integrierte Schaltung mit einem Funktional-Takteingang,
einem Scan-Takteingang, einer Vielzahl von Scanzellen, einem Signalfolgeregister
und einer Vielzahl von Taktdomänen.
Die Scanzellen sind in einem Scan-Ketten-Schiebe-Modus als Schieberegister
geschaltet und empfangen als Takt für das Schieberegister das Signal
am Scan-Takteingang.
Jede Taktdomäne
enthält
einen eigenen, in der integrierten Schaltung befindlichen, Takttreiber.
Die Taktdomäne
enthält
diejenigen Schaltungen, die von diesem Takttreiber betrieben werden.
-
Ein
Takttreiber einer Taktdomäne
enthält
einen Takteingang, einen Freigabeeingang und einen Ausgang. An dem
Ausgang wird der am Takteingang empfangene Takt ausgegeben, falls
am Freigabeeingang ein Freigabesignal anliegt. Der Takttreiber empfängt ein
Signal, das aus dem Takt am Funktional-Takteingang abgeleitet ist,
und empfängt
zudem das Freigabesignal entsprechend der in den Signalfolgeregistern
gespeicherten Werte, falls nach dem Ausschalten des Scan-Ketten-Schiebe-Modus
ein Signalwechsel am Scan-Takteingang erfolgt.
-
Dadurch
kann vorteilhafterweise der Scan-Takteingang, der nach dem Ausschalten
des Scan-Ketten-Schiebe-Modus ansonsten keine Funktion hat, benutzt
werden, um die Ansteuerung der Freigabesignale zu initiieren. Dadurch
wird ein Pin gespart und die Ansteuerung vereinfacht sich.
-
In
einer Ausführungsform
empfängt
der Takttreiber an einem Takteingang das Ausgangssignal einer Auswahlschaltung.
Die Auswahlschaltung gibt das Signal am Scan-Takteingang oder das
Ausgangsignal einer PLL, die vom Signal am Funktional-Takteingang
betrieben wird, aus. Der Scan-Takteingang muss nicht direkt mit
der Auswahlschaltung verbunden sein, es können auch bspw. mehrere Treiberstufen
dazwischen liegen. Das gleiche gilt für das Ausgangssignal der PLL.
Zusätzlich
zu den Signalen am Scan-Takteingang und am Ausgang der PLL könnte die
Auswahlschaltung noch weitere Eingänge haben, wodurch sich die
Auswahl vergrößert. Durch
die Auswahlschaltung, die von den verschiedenen Taktsignalen gespeist
wird, wird sichergestellt, dass die Takttreiber für die Taktdomänen von
einem einzigen Signal gespeist werden, sodass die Synchronisierung
vereinfacht wird.
-
In
einer Ausführungsform
weist die Auswahlschaltung ein ODER-Gatter und mehrere davor geschaltete
Takttreiber auf. Die Eingänge
des ODER-Gatters werden von den Ausgängen mehrerer Takttreiber betrieben.
Diese Takttreiber weisen jeweils einen Takteingang und einen Freigabeeingang auf.
Der Takteingang des einen Takttreibers ist an einen Ausgang der
PLL und der Takteingang eines anderen Takttreibers ist an den Scan-Takteingang
gekoppelt. Die Freigabesignale für
die Takttreiber der Auswahlschaltung werden mit den Signalen an
den Takteingängen
synchronisiert. Dadurch wird sichergestellt, dass keine Spi kes,
d. h. kurze Pulse, die kürzer
als die Länge
eines Taktpulses sind, auf den Taktleitungen auftreten.
-
Falls
mehrere Auswahlschaltungen vorgesehen sind, können jeweils unterschiedliche
PLL-Ausgangssingale empfangen werden. Damit ist es möglich, auch
asynchrone Taktdomänen
zu betreiben.
-
Vorzugsweise
wird für
jede Taktdomäne
ein eigenes Signalfolgeregister vorgesehen, damit sämtliche
Taktdomänen
unabhängig
voneinander programmiert werden können, wodurch beliebige Kombinationen
von Taktpulsen in den Taktdomänen
erzeugt werden können.
-
Die
Ansteuerschaltung für
die Freigabesignale der Takttreiber befindet sich in einer bevorzugten
Ausführungsform
außerhalb
der von den Scanzellen gebildeten Schieberegister. Die Ansteuerschaltungen
weisen dabei taktbetriebene Schaltungsteile auf. Diese müssen sowohl
während
des Scan-Ketten-Schiebe-Modus als auch im normalen Betrieb funktionieren.
Deshalb dürfen
sie nicht durch den Scan-Ketten-Schiebe-Modus überschrieben werden.
-
Erfindungsgemäß wird auch
eine integrierte Schaltung bereitgestellt, die einen Scan-Takteingang aufweist
sowie eine PLL mit mindestens einem Taktausgang. Eine Vielzahl von
Flip-Flops empfängt
jeweils ein Taktsignal und kann in einem Scan-Ketten-Schiebe-Modus als
Schieberegister geschaltet werden. Ein Multiplexer treibt die Takteingänge der Flip-Flops,
wobei zumindest drei Modi unterschieden werden: In einem Funktionalmodus
wird der Ausgang der PLL auf die Takteingänge der Flip-Flops geschaltet.
In einem Scan-Ketten-Schiebe-Modus wird dagegen das Signal am Scan-Takteingang
auf die Takteingänge
der Flip-Flops geschaltet.
Und in einem Laufzeittest wird eine Auswahl von den von der PLL
erzeugten Pulsen auf die Takteingänge der Flip-Flops geleitet.
Dabei wird der Multiplexer so ausgebildet, dass der Pfad von dem
Ausgangssignal zu den Flip-Flops sowohl im Laufzeittest als auch
im Funktionalmodus gleich lang ist. Dadurch wird sichergestellt,
dass im Laufzeittest und im Funktionalmodus keine unterschiedlichen
Bedingungen für
die Takterzeugung herrschen. Somit wird im Laufzeittest unter Bedingungen
getestet, die ähnlich
dem Funktionalmodus sind.
-
Zudem
vereinfacht sich das Erstellen des Taktbaums, da dieser anhand des
Pfades im Funktionalmode erstellt werden kann, ohne dass auf den Laufzeittest
Rücksicht
genommen werden muss.
-
Vorzugsweise
werden, falls die PLL mehrere Taktausgänge hat, im Laufzeittest Pulse
desjenigen Taktausgangs, das den Takt mit der höchsten Frequenz betreibt, auf
die Takteingänge
der Flip-Flops geschaltet. Folglich wird im Laufzeittest mit der höchsten Frequenz
und somit unter den härtesten Bedingungen
getestet.
-
Die
Erfindung betrifft auch ein Computerprogramm, das auf einem Computer
abläuft
und einen Computer zum Ausführen
eines erfindungsgemäßen Verfahrens
zum Erkennen von Laufzeitfehlern veranlasst. Das Computerprogramm
steuert dabei die einzelnen Verfahrensschritte.
-
Das
Computerprogramm kann in einem Speichermedium, bspw. auf einer CD-ROM
oder in einem Computerspeicher, enthalten sein.
-
Die
Erfindung betrifft auch ein erfindungsgemäßes Computerprogramm, das auf
einem elektrischen Trägersignal übertragen
wird, und einen Datenträger,
der ein solches Computerprogramm enthält.
-
Das
Computerprogramm kann auch aus einem elektronischen Datennetz, wie
bspw. dem Internet, auf einen an das Datennetz angeschlossenen Computer
heruntergeladen werden.
-
Die
Erfindung ist in den Zeichnungen anhand eines Ausführungsbeispiels
näher veranschaulicht.
-
1 zeigt
ein Schaltbild mit den Eingangssignalen für eine erfindungsgemäße integrierte Schaltung.
-
2 zeigt
Details einer erfindungsgemäßen integrierten
Schaltung.
-
3 zeigt
den Signalverlauf von in der integrierten Schaltung befindlichen
Knoten während
eines Verfahrens zum Erkennen von Laufzeitfehlern.
-
4 zeigt
Signalverläufe
von in 2 dargestellten Knoten.
-
5 zeigt
Details einer Synchronisierungsschaltung für Takttreiber aus 2.
-
1 zeigt
Eingangssignale einer erfindungsgemäßen integrierten Schaltung.
Die integrierte Schaltung 1 empfängt Eingangssignale IN, ein
erstes Taktsignal ECLK für
den funktionalen Betrieb, einen Scan-Takteingang SCAN_CLK sowie
die Signale der JTAG-Schnittstelle TDI, TCK und TMS für den Boundary-Scan-Test. Ausgangssignale
sind die Signale OUT sowie das Signal TDO, das ebenfalls nur im
von der JTAG-Schnittstelle verwendet wird.
-
2 zeigt
Einzelheiten der in 1 vorgestellten integrierten
Schaltung. Der Multi-Takt-Puls-Generator 2 enthält einen
Taktfreigabegenerator 3, Takttreiber 4 und 5,
eine Auswahlschaltung 6 und eine PLL 7.
-
Die
PLL 7 empfängt
vom Funktional-Takteingang das Signal ECLK und gibt mehrere taktförmige Signale, "Functional clock1" und "Functional clock2–4" aus. "Function clock2–4" enthält drei
Taktsignale "Functional
clock2", "Functional clock3" und "Functional clock4". Die Ausgangssignale
der PLL unterscheiden sich durch verschiedene Frequenzen oder Phasen.
-
Im
gewählten
Beispiel bezeichnet "Functional
clock1" den schnellsten
Takt, der im funktonalen Betrieb bei Volllast gewählt wird.
Der "Functional clock2" ist langsamer als
der "Functional
clock1", der in
einem Stromsparmodus verwendet wird. Der "Functional clock3" ist ein Takt, der unter Umgehung der
PLL an den Eingangstakt angeschlossen ist, und der "Functional clock4" ist ein Takt, der
aus einem auf dem Chip befindlichen Oszillator gespeist wird. Der Takt "Functional clock
1" hat eine Frequenz
von 400 MHz, während
der Eingangstakt ECKL mit 100 MHz läuft. Das Taktsignal "Functional clock
2" läuft mit
10 MHz. Das Konzept arbeitet mit beliebig vielen funktionalen Clocks.
Im Beispiel wird hier ein Design mit 4 funktionalen Clocks beschrieben.
-
Die
Auswahlschaltung 6 enthält
ein ODER-Gatter 8 und Takttreiber 9, 10 und 11.
Der Takttreiber 10 enthält
drei Takttreiber, jeweils mit einem Takteingang und einem Freigabeeingang,
wobei der Takteingang links und der Freigabeeingang oben eingezeichnet
ist. Der Takttreiber 9 empfängt den Takt "Functional clock
1", während der
Takttreiber 10 als Eingangstakt das Signal "Functional clock2" und der Takttreiber 11 das
Signal "Scan_clk", das vom Scan-Takteingang
geliefert wird, empfängt.
-
Die
Freigabesignale der Takttreiber 9, 10 und 11 werden
vom Taktfreigabegenerator 3 getrieben.
-
Die
Ausgangssignale der Takttreiber 9, 10 und 11 werden
auf die Eingänge
des ODER-Gatters 8 geführt,
das ein Taktsignal "Clock
Out" ausgibt.
-
Der
Freigabegenerator 3 enthält ein Scanregister 31,
ein Testregister 32, einen Freigabeautomaten 33 mit
einem darin integrierten Zähler 34,
einen Steuerungsautomaten 35 sowie zwei Freigabe-Flip-Flops 36 und 37.
Die Freigabe-Flip-Flops 36 und 37 sind optional.
Sie ermöglichen
eine zwischengespeicherte Ausgabe der Signale und somit ein einfacheres
Layout von dem Freigabeautomaten zu den lokalen Takttreibern 4 und 5.
Dadurch werden die Timing Constraints für die globalen Signale entspannt. Zeitlich
erfolgt der Ablauf der Pulsfolge einen Takt später, der Testablauf bleibt
aber gleich.
-
Das
Testregister 32 empfängt
Signale von dem JTAG, um die Testeinstellungen abzuspeichern. Zudem
empfängt
das Scanregister Signale SI, die von einem Scaneingang empfangen
werden. Dieser Scaneingang ist unabhängig von der JTAG-Schnittstelle
angeordnet. Es ist optional auch möglich, dass das Scanre gister 31 und
das Testregister von der gleichen JTAG-Schnittstelle geladen werden.
-
Das
Scanregister 31 und das Testregister 32 sind mit
ihren Ausgängen
mit dem Freigabeautomat 33 verbunden, der zudem die Signale "scan_enable", "scan_mode" und "delaytest_mode" und "func_clk_sel" empfängt. Der
Freigabeautomat enthält
einen Zähler 34 sowie
ein in der 4 nicht gezeigtes Signalfolgeregister.
-
Der
Freigabeautomat 33 steuert an seinem Ausgang die Dateneingänge der
Flip-Flops 36 und 37 an. Die Takteingänge der
Flip-Flops 36 und 37 werden
von dem Signal "Clock
out", das von dem ODER-Gatter 8 der
Auswahlschaltung 6 angesteuert wird, getrieben. Der Steuerungsautomat 35 empfängt ebenfalls
als Eingangssignale "scan_enable", "scan_mode" und "delaytest_mode" und "func_clk_sel". Der Steuerungsautomat 35 steuert die
Freigabeeingänge
der Takttreiber 9, 10 und 11 der Auswahlschaltung 6 an.
-
Das
Ausgangssignal des Freigabe-Flip-Flops 36 heißt "gatectrl2" und das des Freigabe-Flip-Flops 37 "gatectrl1".
-
Es
werden Flip-Flops verwendet anstelle eines auf Latches basierten
Designs. Unter Flip-Flops werden hier taktflankengesteuerte bistabile
Kippstufen verstanden. Latches sind dagegen transparent geschaltet,
solange an einem Freigabeeingang ein bestimmter Pegel anliegt.
-
Die
Takttreiber 4 und 5 weisen jeweils einen Takteingang
und einen Freigabeeingang auf. Die Takteingänge werden jeweils von dem
Ausgangssignal des ODER-Gatters 8 "Clock out" angesteuert.
-
Als
Freigabesignal empfängt
der Takttreiber 4 das Signal "gatectrl1". Das Signal "gatectrl2" bildet das Freigabesignal für den Takttreiber 5.
Die Takttreiber 4, 5, 9, 10 und 11 werden
auch als "Clock
Gating Cells (CGC)" bezeichnet.
-
Eine
erste Taktdomäne 21,
die eine Vielzahl von hier nicht gezeigten Flip-Flops und sonstigen Gattern
aufweist, enthält
auch den Takttreiber 4, der den Takt "gated clock1" für
die Taktdomäne 21 erzeugt.
Desgleichen wird das Taktsignal "gated clock2" für die Taktdomäne 22 von
dem Takttreiber 5 getrieben.
-
Der
Steuerungsautomat 35 sorgt dafür, dass höchstens ein Clockpfad, d. h.
einer der Takttreiber 9, 10 oder 11,
freigeschaltet ist. Im Funktionalmodus, d. h. der normalen Anwendung,
wird der "Functional clock
1" in den Taktdomänen 21 und 22 verwendet. Durch
das Signal "scan_enable" wird der Chip in
den Scan-Ketten-Schiebe-Modus versetzt, bei dem die Scan-Flip-Flops als Schieberegister
geschaltet sind. Das Signal "scan_mode" schaltet von dem
Takt ECLK auf das Signal SCAN_CLK um. Mittels "delaytest_mode" wird zwischen Laufzeittest und stuck-at
fault Test geschaltet und "func_clk_sel" wählt einen
der vier "Functional
Clock" Takte aus.
-
Der
Unterschied von Funktionalbetrieb und den Tests wird lediglich durch
eine Codierung der Freigabesignale der Takttreiber bewirkt. Das
Taktmultiplexer steuert alle Taktschalter mit einer einzigen synchronen
Multiplexerimplementierung.
-
Bei
dem "Stuck-at fault" Test wird die integrierte
Schaltung mit Testmustern beaufschlagt, die mittels der in der Technik
bekannten "Stuck-at
fault" Methode ermittelt
wurden. Bei diesem Test wird ein Testmuster im Scanmuster in die
Scanzellen eingeschrieben. Anschließend wird der Scan-Ketten-Schiebe-Modus ausgeschaltet
und die Schaltung ein paar Takte lang betrieben. Anschließend wird
der Scan-Ketten-Schiebe-Modus wieder eingeschaltet und die Werte
aus den Scanzellen werden ausgelesen. Während dieses gesamten Tests
wird der Scantakt verwendet. Dazu wird der externe Testclock Scan_clk
in die Taktdomänen 21 und 22 weitergeleitet.
-
Für den Test
zum Erkennen von Laufzeitfehlern dagegen muss die Auswahlschaltung 6 zwischen
dem langsamen "Scan_clk", der zum Schieben
der Daten in die Scanregister benötigt wird, und dem internen
Hochgeschwindigkeits-PLL-Takt hin- und herschalten.
-
Es
wird ein Konzept und eine Implementierung eines Multi-Taktpuls-Generators
für Laufzeittests
in Echtzeit beschrieben. In modernen Designs ist die Signallaufzeit
in internen Pfaden weit geringer als über die Pads, die Außenanschlüsse. Während die
externe Kommunikation des Chips langsam ist, läuft der interne Chip wesentlich
schneller, wobei er von einer auf dem Chip befindlichen PLL betrieben wird.
In diesem Fall ist es nicht möglich,
einen Hochfrequenztakt von den automatischen Testvorrichtungen (ATE) über ein
Pad auf den Chip zu übertragen. Darum
wird die auf dem Chip befindliche PLL in Kombination mit einer spezifischen
Taktsteuerung hier verwendet.
-
Es
gibt eine einheitliche Taktumschaltung. Die Anzahl von Taktpulsen
für die
Launch/Capture Signalformen ist frei programmierbar und wird parallel für mehrere
Signalformen vorgenommen. Es wird dabei der Test von zwischen Taktdomänen verlaufenden
Signalen für
sowohl synchrone als auch asynchrone Taktdomänen unterstützt.
-
Die
Taktdomänen 21 und 22 sind
synchron, da sie von dem gleichen PLL-Taktausgang getrieben werden.
Sollen zusätzliche
asynchrone Taktdomänen
betrieben werden, wird ein weiterer Taktfreigabegenerator 3 oder
es werden mehrere weitere Taktfreigabegeneratoren 3 vorgesehen.
-
Die
Taktdomänen 21 und 22 unterscheiden sich
hinsichtlich der Taktpulse im Funktionalmode. Während für die Taktdomäne 21 sämtliche
Pulse des "Functional
Clock 1" durchgelassen
werden, werden für
die Taktdomäne 22 jeweils
einer von zwei Taktpulsen durchgelassen und der andere ausgeblendet. Dies
wird gemacht, weil die Signalpfade zwischen den Taktdomänen 21 und 22 relativ
lang sind und ein Signal mehr als die Länge eines Taktpulses für den Weg
von einem Flip-Flop in der Taktdomäne 21 zu einem Flip-Flop
in der Taktdomäne 22 benötigt. Aus diesem
Grund wird in der Taktdomäne 22 nur
jeder zweite Puls getrieben. Wegen der unterschiedlichen Taktungen
der Taktdomänen 21 und 22 werden
unterschiedliche Signalverläufe
benötigt,
damit alle Möglichkeiten
der Signalverläufe
für die
Takte programmiert werden können.
Dies erfolgt im vorliegenden Beispiel für jede Taktdomäne einzeln,
damit eine möglichst
hohe Flexibilität
gewährleistet
ist.
-
In 3 werden
die Signalverläufe
von in der Schaltung gemäß 2 befindlichen
Knoten veranschaulicht. Im oberen Teil der 3 sind zunächst die
in den Signalfolgeregistern gespeicherten Daten gezeigt. Pro Taktdomäne werden
in dem vorliegenden Beispiel 21 Bit in dem Signalfolgeregister 40 gespeichert.
Die ersten 5 Bit geben die Länge
der Signalfolge an, die darauffolgenden 16 Bit geben die Daten der
Signalfolge bzw. die Signalfolgenmarkierung an. Eine "1" bedeutet dabei, dass ein Taktpuls durchgelassen,
und eine "0", dass ein Taktpuls
ignoriert wird.
-
In
dem vorliegenden Beispiel in 3 wird für die Taktdomäne 21 die
links gezeigte Signalfolge 41 und für die Taktdomäne 22 die
rechts gezeigte Signalfolge 42 im Signalfolgeregister gespeichert.
-
Falls
eine von mehreren Taktdomänen
eine individuelle Einstellung für
die Multizykluspfade benötigt,
ist ein eigener Taktfreigabegenerator vorgesehen. Falls zwei Taktdomänen einen
zu testenden Signalpfad teilen, muss der Launchpuls in einem ersten Register
und der Capturepuls in einem zweiten Register programmiert werden.
-
Falls
die Länge
der Signalfolge auf Null gesetzt wird, werden alle führenden
Bits, die den Wert Null haben, ignoriert. Für jeden Wert 1 bis 16 des Wavelängenregisters
wird die korrekte Anzahl von Bits für die Signalform an die Taktdomäne ausgegeben.
-
Zunächst wird
in der ersten "Shift" Phase die integrierte
Schaltung initialisiert. Dafür
wurde die integrierte Schaltung 1 über das Signal "Scan_enable" in einen Scan-Ketten-Schiebe-Modus gebracht. Die Scanzellen,
d. h. die Mehrzahl der in der integrierten Schaltung befindlichen
Zustandsspeicherglieder, bspw. Flip-Flops, sind als ein Schieberegister
geschaltet. Der Anfang des Schieberegisters befindet sich beim Pin "Testdaten ein" und der Ausgang
des Schieberegisters beim Pin "Testdaten
aus". Die Flip-Flops
des Schieberegisters werden über
den Takt "Scan_clk", der am Scan-Eingangssignal
anliegt, angesteuert. In der Auswahlschaltung 6 wird der
Takttreiber 11 freigegeben, sodass am Ausgang der Auswahlschaltung 6 "Clock out" ein Takt ausgegeben
wird, dessen Signalform der des "Scan_clk" entspricht.
-
Ebenso
sind die Freigabesignale der Takttreiber 4 und 5 aktiv
geschaltet, sodass das Taktsignal für die erste Taktdomäne 21 und
das Taktsignal für
die zweite Taktdomäne 22, "Gated Clock1" und "Gated Clock2", die gleiche Signalform
wie das am Scan-Takteingang anliegende Signal haben.
-
Somit
können
Flip-Flops, die sich innerhalb der Taktdomänen 21 und 22 befinden,
als Scanzellen geschaltet werden.
-
Das
Testprogramm enthält
eine Initialisierungsphase, die die PLL und die Takttreiber z. B.
bezüglich
der Taktgeschwindigkeit und der Signalformen konfiguriert.
-
Der
grundlegende Laufzeitfehlertest benutzt genau zwei Taktpulse. Zuerst
wird der Pfad für
den erwarteten Laufzeitfehler vorbereitet. Dann erfolgt ein Signalwechsel
in dem Launchzyklus. Schließlich wird
der fehlerfreie oder fehlerhafte Wert im Capturezyklus beobachtet.
Dieser Ansatz funktioniert für
ein vollständig
komplettes Scandesign, bei dem jedes sequentielle Element als Scan-Flip-Flop
implementiert wird. In der Praxis erfüllen einige Teile der Schaltung
diese Anforderung nicht vollständig.
Typische Kandidaten dafür
sind Speicherblöcke
und Pipelinestrukturen. Manchmal funktioniert auch das Einfügen von
Scanzellen in Subblöcke
des Designs nicht. Auch in diesem Fall reicht ein Laufzeittest mit
nur zwei Pulsen nicht aus. Stattdessen müssen zusätzliche Pulse für den sequentiellen
Test vorgesehen werden.
-
Die
Auswahlschaltung 6 bildet einen spikefreien Taktmultiplexer.
Die Steuerschaltung 35 sorgt stets dafür, dass nur ein Taktpfad aktiviert
wird. Im "stuck-at
fault" Test werden
sowohl das Einschreiben in die Scanzellen als auch die Launch- und Capture- Phase
durch den Scan_clk erzeugt, der von der ATPG generiert wird.
-
Nachdem
die Scanzellen über
den Scan-Ketten-Schiebe-Modus programmiert worden sind, wird der
Scan-Ketten-Schiebe-Modus über
eine fallende Flanke des Signals "Scan_enable" wieder ausgeschaltet. Eine darauf folgende
steigende Flanke des Signals "Scan_clk" initiiert die Launch-
und Capture-Zyklen. In der Launch/Capture-Phase werden Taktpulse
für die
Taktdomänen 21 und 22 erzeugt,
damit sich die Schaltungen in diesen Domänen wie während des funktionalen Betriebs
verhalten. Nur so kann das Verhalten wie während der Anwendung getestet
werden, um eventuelle Laufzeitfehler zu detektieren.
-
Der
Start der Launch/Capture-Phase wird mittels der steigenden Flanke
am Scan-Takteingang gestartet, um einen zusätzlichen Pin einzusparen. Der "Scan_clk" hat beim Laufzeitfehlertest
außerhalb des
Scan-Ketten-Schiebe-Modus nicht mehr die Funktion, als Taktsignal
für die
Scansignale zu wirken. Er steuert statt dessen die Signale "enable ctrl1" und "enable ctrl2", die interne Signale
des Steuerungsautomaten 35 sind. Der Steuerungsautomat 35 gibt über das
Freigabesignal des Takttreibers 9 diesen für neun Taktzyklen
frei. Das Ausgangssignal der Auswahlschaltung 6 "Clock out" gibt somit neun
Taktpulse aus. Diese Taktpulse haben eine hohe Frequenz, wie sie
von PLL erzeugt wird. Die PLL läuft vorteilhafterweise
während
des Scan-Ketten-Schiebe-Modus
mit. Dazu muss ein Takt am Funktional-Takteingang anliegen. Die PLL läuft bereits
vor der eigentli chen Launch/Capture-Phase, weil sie Zeit zum Einschwingen
braucht.
-
Die
Länge der
Signalfolge 41 für
die Taktdomäne 21 ist
8 Bit, was in dem Beispiel als "111" codiert ist. Dabei
wird der letzte und der drittletzte Taktpuls ausgegeben, wie dies
aus der Signalfolgenmaskierung ersichtlich ist. Die Länge der
Signalfolge 42 in der Taktdomäne 22 ist 9 Bit. Dabei
wird im dritten, achten und neunten Taktzyklus jeweils ein Taktpuls ausgegeben.
-
Die
Signalfolgeregister erlauben frei programmierbare Signalfolgen von
16 Pulsen. Somit können
alle möglichen
Kombinationen von Pulsen, die Signale innerhalb von Taktdomänen und
zwischen Taktdomänen
betreffen, generiert werden. Der Launch/Capture-Phase schließt sich
wieder eine Shift-Phase an. Diese wird durch eine steigende Flanke
des Signals "Scan
enable" gestartet.
Wieder wird das Taktsignal am Scaneingang aktiviert, um die in den
Scanzellen gespeicherten Daten am Ausgang "Testdaten aus" auszugeben.
-
Eine
alternative Kodierung bietet sich durch eine sequentielle Kodierung
an. Dabei wird die Signalfolge mittels dreier Teile kodiert. Im
ersten Teil wird eine zu wiederholende Signalfolge angegeben, der zweite
Teil kodiert einen Wiederholungsfaktor und der dritte Teil gibt
das Ende der Signalfolge, das nur einmal ausgegeben wird, an.
-
4 zeigt
die Signalverläufe
der Taktsignale an Knoten der integrierten Schaltung gemäß 2.
Dazu ist ein Ausschnitt aus 2 gezeigt.
Am Signal "Scan_clk" ist ein langsamer
Takt angelegt, während
die PLL an einem ihrer Ausgänge
den hochfrequenten "Functional
clock"-Takt ausgibt.
Das Signal "Clock
out" gibt zunächst einen
Puls mit einer großen
Pulsbreite, anschließend
mehrere Pulse mit einer kleinen Pulsweite und am Ende wieder einen Puls
mit einer großen
Pulsweite aus. Am Ausgang der Takttreiber 4 und 5 werden
die Takte "Gated Clock1" und "Gated Clock2" ausgegeben, bei
denen einige der Pulse mit kurzen Pulslängen im Vergleich zu dem Signal "Clock out" ausgeblendet wurden.
-
Die
gezeigte Implementierung der Taktpfade für die Takteingänge ECLK
und Scan_clk hat Vorteile bei der Generierung des Taktbaums. Es
wird ein einziger Taktbaum von der PLL zu den Flip-Flops für den funktionalen
Betrieb und für
den Laufzeittest vorgesehen. Als Taktbaum wird die Verzweigung eines Taktsignals
von einer Quelle, beispielsweise einer PLL, zu den Empfängern des
Takts bezeichnet. Die Empfänger
sind hier die Flip-Flops in den Taktdomänen 21 und 22.
-
Die
Quelle wird im folgenden auch als Wurzel, die Empfänger als
Blätter
und den Weg zwischen Wurzel und Blatt als Pfad bezeichnet. Durch
geschickte Dimensionierung der Pfade wird dafür gesorgt, dass ein von der
Wurzel ausgesandtes Taktsignal alle Blätter möglichst gleichzeitig erreicht.
Der verbleibenden Unterschied zwischen den Empfangszeitpunkten wird
als Skew bezeichnet. Der Skew verringert den Zeitraum, in dem ein
Dateneingangssignal von den Flip-Flops sicher empfangen werden kann.
Deshalb wird versucht, den Skew möglichst gering zu halten.
-
Beim
Entwurf des Taktbaums werden alle Verzögerungen der Pfade von der
Wurzel zu den Blättern
berechnet. Dazu sollte vorzugsweise jeder Pfad eindeutig sein, d.
h. es gibt nur einen Pfad und nicht zwei oder mehrere Pfade von
der Wurzel zu einem bestimmten Blatt.
-
Bei
Implementierungen dagegen, bei denen es zwei unterschiedlich lange
Pfade für
den Weg zwischen einer bestimmten Wurzel und einem bestimmten Blatt
gibt, wird durch einen Multiplexer zwischen diesen zwei unterschiedlich
langen Pfaden hin- und hergeschaltet. Hierbei muss der Taktbaum
für beide Pfade
optimiert werden. Die zwei Pfade entstehen beispielsweise, falls
im Laufzeittest das Taktsignal über
mehr Gatter geleitet wird als im funktionalen Betrieb.
-
Die
Optimierung für
zwei Pfade erhöht
zum einen den Aufwand, zumal die Computerprogramme nicht darauf
ausgelegt sind, einen Taktbaum zu erstellen, wenn mehrere parallele
Pfade pro Blatt vorhanden sind. Zum anderen wird auch der Skew vergrößert, weil
der Taktpfad gleichzeitig für
mehrere Pfade optimiert werden muss.
-
In
der Anordnung gemäß 2 wird
der Taktbaum für
die Taktdomäne 21 nur
für den
Pfad von dem Signal "Functional
Clock 1" zu den
Empfängern in
der Taktdomäne 21 ausgelegt.
Die Anordnung des Takttreibers 9 und des ODER-Gatters 8 erlaubt,
dass dieser Pfad sowohl beim Laufzeittest als auch im Funktionalmodus
gleich lang ist. Der Pfad von der Wurzel "Functional test 1" zu einem Blatt des "Gated clock 1" verläuft sowohl im Functionalmodus
als auch beim Laufzeittest über
den Takttreiber 9, das Oder-Gatter 8 und den Takttreiber 4.
Somit wird der Taktbaum nur für
einen Pfad berechnet und optimiert. Die Taktpfade von den anderen
Taktquellen "Functional
Clock 2", "Functional Clock
3", "Functional Clock 4" und "Scan_clk" zu den Empfängern sind
eventuell etwas länger
als der Pfad von "Functional Clock
1". Dies ist aber
unerheblich, denn der Unterschied zwischen der Verzögerung zu
einem Blatt und der Verzögerung
zu einem anderen Blatt bleibt gleich. Für die Erstellung des Taktbaumes
sind deshalb nur die Berechnungen der Pfade von dem "Functional Clock 1" zu den Blättern relevant.
Dabei wird der schnellste Takt, hier "Functional Clock 1" gewählt,
weil beim Betrieb mit dem schnellsten Takt die größten Anforderungen
an geringen Skew bestehen.
-
Je
länger
ein Pfad von der Wurzel zu den Blättern ist, umso mehr schwankt
die Verzögerung von
der Wurzel zu einem Blatt. Dadurch wird auch der Skew vergrößert. Um
dem entgegenzuwirken, werden möglichst
große
Takttreiber und Zwischentreiber verwendet, um kurze Laufzeiten für den Takt zu
erreichen. Allerdings erhöhen
die großen
Takttreiber auch den Stromverbrauch, so dass ein Kompromiss zwischen
der Größe des Takttreibers
und dem Stromverbrauch gewählt
wird.
-
Die
Takttreiber und Zwischentreiber werden vorzugsweise so dimensioniert,
dass die Verzögerungen
der Pfade für "Functional Clock
1" nicht kürzer als
die Verzögerungen
der Pfade für
die anderen Taktsignale sind. So wird sichergestellt, dass für die anderen
Taktsignale keine größeren Skews
erzeugt werden als bei dem Takt mit "Functional Clock 1". Bevorzugt werden die Pfade so ausgelegt,
dass die Pfade für
die verschiedenen Takte gleich lang sind.
-
5 zeigt
Details einer Synchronisierungsschaltung für Takttreiber. Die bereits
in 2 gezeigten Takttreiber 9, 10 und 11 empfangen
die Freigabesignale f1, f2 und c3, wobei das Freigabesignal f1 von dem
Steuersignal c1 und das Freigabesignal f2 von dem Steuersignal c2
abgeleitet sind. Die Steu ersignale c1, c2 und c3 werden von dem
Steuerungsautomaten 35 geliefert. Diese Freigabesignale
der Takttreiber 9, 10 und 11 müssen zu
den jeweiligen Eingangstaktsignalen "Functional clock 1", "Functional clock
2" und "Scan_clk" synchron sein, damit
Spikes vermieden werden. Spikes sind kurze Pulse auf Taktleitungen,
deren Pulslänge
kleiner ist als der Taktpuls. Spikes können zu Fehlfunktionen der
Schaltungen führen
und sind deshalb zu vermeiden.
-
Für den Takttreiber 9 ist
der Synchronisierungsblock 51 und für den Takttreiber 10 ist
der Synchronisierungsblock 52 vorgesehen. Der Takttreiber 11 benötigt keine
Synchronisierungsschaltung, da der Tester die Signal für Scan-Ketten-Schiebe-Modus und Scantakt
so programmiert, dass während des
Umschaltens des Scan-Ketten-Schiebe-Modus keine Spikes entstehen.
Damit ist hier eine Synchronisierungsschaltung überflüssig.
-
Jeder
Synchronisierungsblock 51 und 52 weist drei in
Reihe geschaltete D-Flip-Flops 53, 54 und 55 auf.
Die Takteingänge
der D-Flip-Flops 53, 54 und 55 des Synchronisierungsblocks 51 sind
mit dem "Functional
clock 1" und die
Takteingänge
der D-Flip-Flops 53, 54 und 55 des
Synchronisierungsblocks 52 sind mit dem "Functional clock
2" verbunden. Die
D-Flip-Flops 53 und 54 sorgen dafür, dass die
Ausgangssignale der Flip-Flops 54, die im Synchronisierungsblock 51 das
Freigabesignal f1 und im Synchronisierungsblock 52 das
Freigabesignal f2 bilden, jeweils synchron zu den jeweiligen Eingangstaktsignalen
sind.
-
Beim "stuck-at fault" Test soll immer
die scan_clk in die Taktdomänen 21 und 22 durchgeschaltet
werden. Dies soll unabhänig
vom Zustand des Steuerautomaten und der Flip-Flops 53–55 erfolgen.
Es besteht die Gefahr, dass es keinen Takt gibt und das Erreichen
des gewünschten
Zustands nicht garantiert ist, falls die PLL bei "stuck-at fault" Test nicht aktiviert
ist. Daher werden für "stuck-at fault Test" die Flip-Flops 53–55 asynchron
in den Reset Zustand gezwungen, wodurch "functional clock 1" etc. unabhängig von ihrer Clock Quelle
gesperrt werden.
-
Zusammenfassend
lässt sich
sagen, dass der Ansatz auf der Wiederverwendung des auf dem Chip
befindlichen PLL und der Taktgenerierungseinheit für Zwecke
des Laufzeittests, auch "delay
fault test" genannt,
beruht.
-
Es
ist wichtig, das korrekte funktionale Timing während des Laufzeittests zu
gewährleisten. Die
frei programmierbare Signalfolge erlaubt, bestimmte Taktpulse zu
unterdrücken,
um das Verhalten des Schemas des Funktionaltests nachzubilden.
-
- 1
- integrierte
Schaltung
- 2
- Multi-Takt-Puls-Generator
- 3
- Taktfreigabegenerator
- 4
- Takttreiber
- 5
- Takttreiber
- 6
- Auswahlschaltung
- 7
- PLL
- 8
- ODER-Gatter
- 9
- Takttreiber
- 10
- Takttreiber
- 11
- Takttreiber
- 21
- Taktdomäne
- 22
- Taktdomäne
- 31
- Scanregister
- 32
- Scanregister
- 33
- Freigabeautomat
- 34
- Zähler
- 35
- Steuerungsautomat
- 36
- Freigabe-Flip-Flop
- 37
- Freigabe-Flip-Flop
- 41
- Signalfolge
- 42
- Signalfolge
- 43
- Signalfolge