-
Hintergrund der Erfindung
-
Nachdem
eine sehr hoch integrierte Schaltung (VLSIC – Very Large Scale Integrated
Circuit) konstruiert und in einer Simulation gemäß besonderen Spezifikationen
optimiert worden ist, wird eine tatsächliche Schaltung geprüft, um sicherzustellen, dass
in der VLSIC keine Defekte (z. B. physische Defekte, Komponentendefekte,
Schaltungsdefekte, etc.) vorhanden sind.
-
Eine
herkömmliche
Scan-Kette (Scan Chain) stellt ein System und ein Verfahren zur Überprüfung auf
Defekte, beispielsweise in sequentiellen Bauelementen und kombinatorischen
Logikschaltungen der VLSIC, bereit. Bei einer herkömmlichen
Scan-Kette werden
die sequentiellen Bauelemente (z. B. Flipflops oder Flops) der VLSIC
zu einer seriellen Kette verbunden, wie zum Teil in 1 gezeigt.
Die VLSIC umfasst die sequentiellen Bauelemente 10, 20 und kombinatorischen
Logikschaltungen 30. Das herkömmliche Scan-Kettensystem besteht
aus zahlreichen Flops, es sind jedoch zur Veranschaulichung nur
zwei der Flops dargestellt. Ein erstes Flop 10 und ein
zweites Flop 20 weisen Ein- und Ausgänge auf. Bei dem dargestellten
Beispiel hat jedes Flop 10, 20 einen Dateneingang
DI, einen Scan-Eingang SI, einen Takteingang CLK und einen Datenausgang
DO. Der Dateneingang DI ist mit der kombinatorischen Logikschaltung 30 der
VLSIC verbunden. Der Takteingang CLK ist mit einem Takt der VLSIC
(nicht gezeigt) verbunden. Der Datenausgang DO ist mit der kombinatorischen
Logikschaltung 30 verbunden.
-
Darüber hinaus
ist der Datenausgang DO des ersten Flops 10 über eine
erste Leitung 50 auch mit einem Puffer 40 verbunden.
Der Puffer 40 ist über eine
zweite Leitung 60 mit dem Scan-Eingang SI des zweiten Flops 20 verbunden.
Der Scan-Eingang
SI des erstens Flops 10 ist so angeschlossen, dass er das
Scan-Ausgangssignal vom Datenausgang DO des in der seriellen Kette
vorherigen Flops (nicht gezeigt) über einen Puffer (nicht gezeigt)
und zwei Leitungen (nicht gezeigt) empfängt. Der Datenausgang DO des
zweiten Flops 20 ist ebenfalls mit dem in der seriellen
Kette nächsten
Flop (nicht gezeigt) über
einen Puffer (nicht gezeigt) und zwei Leitungen (nicht gezeigt)
verbunden, so dass der nächste
Flop das Scan-Ausgangssignal
von dem zweiten Flop 20 empfängt.
-
Im
Betrieb wird ein Eingangstestvektor durch die serielle Kette von
Flops eingelesen. Der Eingangstestvektor ist ein bekannter Satz
aus Nullen und Einsen. Der Eingangstestvektor wird durch die serielle
Kette Bit für
Bit seriell eingelesen. Der Scan-Pfad verläuft bei dem dargestellten Beispiel durch
den Scan-Eingang SI des ersten Flops 10, den Datenausgang
DO des ersten Flops, die erste Leitung 50, den Puffer 40,
die zweite Leitung 60, den Scan-Eingang SI des zweiten
Flops 20, den Datenausgang DO des zweiten Flops und so
weiter. Der Puffer 40 stellt zwischen dem Datenausgang
DO des ersten Flops 10 und dem Scan-Eingang SI des zweiten
Flops 20 eine notwendige Zeitverzögerung bereit, so dass der
zweite Flop 20 ordnungsgemäß arbeiten kann. Die Zeitverzögerung ist
beispielsweise nötig, um
zu verhindern, dass Haltezeitverletzungen (hold time violations)
oder andere Zeitverletzungen im zweiten Flop 20 auftreten.
Wenn eine Zeitverletzung auftritt, ist der Ausgang des Flops bezogen
auf einen gegebenen Eingang nicht unbedingt bekannt. Solche Zeitverzögerungen
werden bei der Scan-Kettenkonstruktion immer bedeutender, da die
Technologien kleiner und schneller werden.
-
Sobald
der gesamte Eingangstestvektor in die serielle Kette eingelesen
(d. h. eingeschoben) worden ist, so dass jeder Flop der seriellen
Kette seinen zugewiesenen Wert aus dem Eingangstestvektor aufweist,
werden die Dateneingangssignale der Flops über die Dateneingänge DI der
Flops parallel geladen. Die Eingangssignale der Flops können eine Funktion
der kombinatorischen Logikschaltung 30 und/oder der Werte
an den Datenausgängen
DO der Flops sein. Die Dateneingangssignale werden dann an die Datenausgänge DO der
Flops weitergeleitet. Die Datenausgänge DO werden dann ausgelesen oder
herausgeschoben, um einen weiteren Satz aus Nullen und Einsen zu
bilden, der als Ausgangstestvektor bekannt ist. Der Ausgangstestvektor
kann dann mit dem erwarteten Testvektor verglichen werden, um zu
bestimmen, ob in der VLSIC ein Defekt aufgetreten ist. Der erwartete
Testvektor kann anhand eines Simulationsprogramms erzeugt worden sein.
-
Dieses
herkömmliche
Beispiel kann einen oder mehrere der folgenden Nachteile aufweisen. Die
VLSIC wurde beispielsweise bereits vor der Prüfung konstruiert und optimiert,
um die besonderen Spezifikationen zu erfüllen. Zur Herstellung der Scan-Kette müssen jedoch
in der VLSIC Änderungen vorgenommen
werden, die bewirken können,
dass die Leistung der VLSIC nicht mehr mit den Spezifikationen überein stimmt.
Zur Ausführung
der Scan-Kette muss beispielsweise nahe dem ersten Flop 10 und dem
zweiten Flop 20 ein Puffer eingefügt werden. Des Weiteren müssen zwei
Leitungen 50, 60 hinzugefügt werden, um den Puffer 40 mit
den Flops 10, 20 zu verbinden. Kombinatorische
Logikschaltungen können
neu angeordnet werden müssen
und Leitungen müssen
unterbrochen und neu verbunden werden, um die Puffer und die zusätzlichen
zwei Leitungen pro Puffer zu umgehen.
-
Darüber hinaus
kann die Ablaufsteuerung der VLSIC durch die Scan-Kette verändert werden. Die
Puffer können
beispielsweise dort platziert werden, wo in der VLSIC Platz verfügbar ist,
jedoch weit von den Flops entfernt, die sie bedienen. Daher kann der
Ablaufsteuerung der Schaltung ein erheblicher Verzögerungsbetrag
hinzugefügt
werden, der eine Fehlfunktion der Schaltung verursachen kann. Des Weiteren
kann dies, wenn die Puffer unter großem Abstand von den Flops angeordnet
sind, unerwünschte
Verdrahtungsschwierigkeiten bei der Unterbringung der Pufferverdrahtung
in der VLSIC bewirken. Die Ablaufsteuerung der Flops wird ebenfalls durch
die Scan-Kette beeinträchtigt.
Der Datenausgang DO des ersten Flops 10 beispielsweise
wird zumindest durch die zusätzliche
Leitung 50 und den Puffer 40 belastet, wodurch
der erste Flop 10 während
des funktionalen Betriebs beeinträchtigt wird.
-
Die
Auswirkungen der Herstellung der Scan-Kette werden angesichts der
Tatsache, dass eine VLSIC Hunderttausende oder Millionen von Flops
enthalten kann, erheblich verstärkt.
Dies kann für
einen Konstrukteur äußerst frustrierend
sein, da vor dem Herstellen der Scan-Kette bereits großer Wert
auf die Konstruktion und die Optimierung der Konstruktion der VLSIC
gelegt worden war. Dann musste die Konstruktion, lediglich zur Überprüfung der
physischen Schaltung auf Defekte über die Scan-Kette, erheblich überarbeitet
werden, um die zusätzlichen
Puffer und die jedem Puffer zugeordneten zwei Leitungen unterzubringen.
-
Ein
Zyklus ergibt sich aus der Verbindung der Scan-Kette, worauf das
Instandsetzen der Konstruktion folgt, die durch das Hinzufügen der
Scan-Kette unterbrochen wurde, was zu einer erneuten Verbindung
der Scan-Kette führen
kann, die durch die Instandsetzungen unterbrochen wurde, worauf
wieder eine Instandsetzung der Konstruktion folgt und so weiter.
Dieser Zyklus kann den Zeitaufwand erheblich erhöhen und viele Ressourcen erfordern,
um eine VLSIC fertigzustellen, die vor der Prüfung wirkungsvoll funktioniert
hat. Der zusätzliche
Zeitaufwand kann von der Komplexität der Konstruktion abhängig sein
und eine Größenordnung
von Tagen, Wochen oder Monaten haben.
-
EP 0 822 419 A1 offenbart
eine prüfbare
integrierte Schaltung mit verringerter Verlustleistung, wobei eine
integrierte Schaltung eine Mehrzahl interner Bauelemente umfasst,
die durch Einstellen der Zustände
ihrer Datenregister auf jeweilige Niveaus geprüft werden, wobei zunächst ein
bekannter Initialisierungswert und dann ein funktionaler Datenwert gebildet
werden. Alle zur Prüfung
verwendeten Datenregister werden als eines oder mehrere Schieberegister
und durch Takten von Daten durch einen seriellen Scan-Pfad miteinander
gekoppelt, wobei Teststimuli eingeschoben und Ergebnisse herausgeschoben
werden können.
Die Scan-Pfadverbindungen werden zusätzlich zu den üblichen
funktionalen Betriebssignalverbindungen vorgesehen. Während des funktionalen
Betriebs werden die Datenübergänge in den
Scan-Pfadsignalen deaktiviert, um die mit dem Treiben der Scan-Pfadsignale
verbundene Verlustleistung zu reduzieren.
-
EP 0 444 825 A2 zeigt
eine Registerschaltung für
einen Scan-Durchlauf mit: einer Eingangseinrichtung, einer Ausgangseinrichtung,
einer Schiebeeinrichtung, die auf ein Taktsignal zum Verschieben
eines an die Eingangseinrichtung angelegten Datensignals zur Ausgangseinrichtung
anspricht, einer steuerbaren Verbindungseinrichtung, die zwischen
der Eingangseinrichtung und der Ausgangseinrichtung angeschlossen
ist, um die Eingangseinrichtung mit der Ausgangseinrichtung zu verbinden, und
einer Speichereinrichtung zum Speichern eines Aktivierungssignals
zum Aktivieren der Verbindungseinrichtung, wobei die Verbindungseinrichtung
die Eingangseinrichtung und die Ausgangseinrichtung in Reaktion
auf das in der Speichereinrichtung gespeicherte Aktivierungssignal
verbindet.
-
US 5 886 901 beschreibt
ein Verfahren zum Konstruieren integrierter Schaltungen für einen
seriellen Scan-Test unter Verwendung einer verbesserten modularen
Flipflopzelle. Die modulare Flipflopzelle weist ein Verzögerungselement
auf, das strategisch in der seriellen Scan-Kette platziert ist,
um das Auftreten von Haltezeitverletzungen zu reduzieren. Das Verzögerungselement
befindet sich in einem Testpfad entlang der seriellen Scan-Kette.
Das Verzögerungselement
bewirkt, dass die Haltezeit des Test-Eingangsanschlusses nicht positiv
ist, wodurch sichergestellt wird, dass keine Haltezeitverletzungen vorkommen,
wobei die Zeitverzögerung
auf dem normalen Datenpfad nicht beeinträchtigt wird.
-
Weitere
Beschränkungen
und Nachteile herkömmlicher
und traditioneller Ansätze
gehen für Durchschnittsfachleute
auf dem Gebiet aus einem Vergleich derartiger Systeme mit der vorliegenden Erfindung
hervor, die im Rest der vorliegenden Anmeldung unter Bezugnahme
auf die Zeichnungen dargelegt ist.
-
Kurze Zusammenfassung der
Erfindung
-
Aspekte
der vorliegenden Erfindung finden sich beispielsweise in Systemen
und Verfahren zum Prüfen
einer Schaltung. Bei einer Ausführungsform kann
die vorliegende Erfindung ein sequentielles Bauelement zur Verwendung
in einer Scan-Kette bereitstellen. Das sequentielle Bauelement kann
beispielsweise einen Scan-Eingang,
einen Scan-Ausgang und einen funktionalen Datenausgang umfassen,
der mit dem Scan-Eingang und dem Scan-Ausgang verbunden ist. Der
funktionale Datenausgang kann über
einen Verzögerungspuffer
mit dem Scan-Ausgang verbunden sein.
-
Bei
einer anderen Ausführungsform
kann die vorliegende Erfindung ein System zum Prüfen einer Schaltung vorsehen.
Das System kann beispielsweise einen ersten Flop und einen zweiten
Flop umfassen. Der erste Flop und der zweite Flop können jeweils
einen Scan-Eingang, einen Verzögerungspuffer,
einen Scan-Ausgang und einen Datenausgang umfassen. Der Datenausgang
kann mit dem Scan-Eingang und dem Scan-Ausgang gekoppelt sein. Der
Datenausgang kann über
den Verzögerungspuffer
mit dem Scan-Ausgang gekoppelt sein. Der Scan-Ausgang des ersten
Flops ist über
eine Verbindung direkt mit dem Scan-Eingang des zweiten Flops gekoppelt.
-
Bei
einer weiteren Ausführungsform
kann die vorliegende Erfindung ein Verfahren zum Prüfen einer
Schaltung unter Verwendung einer Scan-Kette bereitstellen. Das Verfahren
kann die Schritte des Verbindens sequentieller Bauelemente zu einer
seriellen Kette, wobei die sequentiellen Bauelemente jeweils einen
dedizierten Scan-Ausgang
aufweisen, der von einem funktionalen Datenausgang getrennt ist,
des Einschiebens eines Eingangstestvektors in die serielle Kette über die
dedizierten Scan-Ausgänge
der sequentiellen Bauelemente, des Ladens funktionaler Dateneingänge der
sequentiellen Bauelemente, des Anlegens der geladenen funktionalen
Dateneingänge
an die funktionalen Datenausgänge
und die dedizierten Scan-Ausgänge der
sequentiellen Bauelemente sowie des Herausschiebens eines Ausgangstestvektors
aus der seriellen Kette über
die dedizierten Scan-Ausgänge
der sequentiellen Bauelemente umfassen.
-
Diese
und andere Merkmale und Vorteile der vorliegenden Erfindung gehen
aus einem Studium der folgenden genauen Beschreibung der vorliegenden
Erfindung zusammen mit den begleitenden Figuren hervor, in denen
gleiche oder ähnliche
Bezugszeichen überall
gleiche oder ähnliche
Teile bezeichnen.
-
Kurzbeschreibung der Zeichnungen
-
1 zeigt
ein Beispiel einer herkömmlichen Scan-Kette.
-
2 zeigt
ein Beispiel einer erfindungsgemäßen Scan-Kette.
-
3 zeigt
ein Beispiel eines erfindungsgemäßen sequentiellen
Bauelements.
-
4 zeigt
ein Beispiel eines erfindungsgemäßen Verzögerungspuffers.
-
5 zeigt
ein Beispiel eines erfindungsgemäßen Verzögerungspuffers.
-
6 zeigt
ein Beispiel eines erfindungsgemäßen Verzögerungspuffers.
-
7 zeigt
ein Beispiel eines erfindungsgemäßen Verzögerungspuffers.
-
8 zeigt
ein Beispiel eines erfindungsgemäßen Verzögerungspuffers.
-
Genaue Beschreibung der Erfindung
-
2 zeigt
ein Blockdiagramm, das ein Beispiel einer erfindungsgemäßen Scan-Kette 70 darstellt.
Die Scan-Kette 70 kann ein System und ein Verfahren bereitstellen,
die zum Prüfen
einer Schaltung, etwa z. B. einer sehr hoch integrierten Schaltung
(VLSIC – Very
Large Scal Integrated Circuit) oder anderer Schaltungsarten, verwendet
werden können.
Bei einem Beispiel kann die Scan-Kette 70 eine Prüfung mit
hoher Fehlerabdeckung bereitstellen. Bei einem anderen Beispiel
kann die Scan-Kette 70 eine Überprüfung auf
Defekte in einem oder mehreren der sequentiellen Bauelemente oder
in einer oder mehreren der kombinatorischen Logikschaltungen oder
Teilen derselben in der VLSIC durchführen. Die Scan-Kette 70 kann
ein oder mehrere sequentielle Bauelemente der VLSIC umfassen, die
zu einer seriellen Kette verbunden sind, wie teilweise in 2 gezeigt.
Ein sequentielles Bauelement kann beispielsweise eine beliebige
Art von Flipflop (d. h. Flop) oder Sätze von Flops oder andere Arten
von sequentiellen Bauelementen umfassen. Die VLSIC kann beispielsweise
die sequentiellen Bauelemente 80, 90 und die kombinatorischen
Logikschaltungen 30 umfassen. Bei einem Beispiel umfassen
die sequentiellen Bauelemente 80, 90 die Flops 100 bzw. 110.
Die Scan-Kette 70 kann ein oder mehrere Flops umfassen,
es sind jedoch nur zwei der Flops 100, 110 in 2 dargestellt.
Das erste Flop 100 und das zweite Flop 110 können Ein-
und Ausgänge
umfassen. Manche der Ein- und Ausgänge eines Durchschnittsfachleuten
bekannten Flops können
hier nicht dargestellt sein.
-
Das
erste Flop 100 und das zweite Flop 110 können jeweils
einen Dateneingang DI, einen Scan-Eingang SI, einen Takteingang
CLK, einen Datenausgang DO und einen Scan-Ausgang SO umfassen. Der
Dateneingang DI kann mit der kombinatorischen Logikschaltung 120 der
VLSIC verbunden sein. Der Takteingang CLK kann mit einem Takt der VLSIC
(nicht gezeigt) verbunden sein. Die vorliegende Erfindung sieht
außerdem
vor, dass die Takteingänge
CLK einiger Flops mit unterschiedlichen Takten der VLSIC verbunden
sein können.
Der Datenausgang DO kann mit der kombinatorischen Logikschaltung 120 verbunden
sein. Obgleich 2 die kombinatorische Logikschaltung 120 in
Form von vier separaten Modulen darstellt, können die Module einander überlappen
und einen gemeinsamen Schaltungsaufbau haben.
-
Der
Scan-Ausgang SO des ersten Flops 100 ist über eine
Leitung oder einen Draht 130 mit dem Scan-Eingang SI des
zweiten Flops 110 verbunden. Bei einem Beispiel verbindet
eine einzelne Leitung den Scan-Eingang SI des zweiten Flops 110 mit
dem Scan-Ausgang SO des ersten Flops 100. Bei einem anderen
Beispiel ist der Scan-Ausgang
SO des ersten Flops 100 über die Leitung 130 direkt
mit dem Scan-Eingang
SI des zweiten Flops 110 verbunden. Der Scan-Eingang SI
des ersten Flops 100 ist so verbunden, dass er das Scan-Ausgangssignal
vom Scan-Ausgang SO des in der seriellen Kette vorherigen Flops
(nicht gezeigt) über
eine Leitung empfängt. Der
Scan-Ausgang SO des zweiten Flops 110 ist mit dem Scan-Eingang
SI des in der seriellen Kette nächsten
Flops (nicht gezeigt) so über
eine Leitung verbunden, dass der nächste Flop das Scan-Ausgangssignal
vom zweiten Flop 110 empfängt.
-
Im
Betrieb wird ein Eingangstestvektor durch die serielle Kette von
Flops eingelesen. Der Eingangstestvektor ist ein bekannter Wertesatz
(z. B. binäre
Nullen und Einsen). Bei einem Beispiel steht die Länge des
Eingangstestvektors mit der Länge
der seriellen Flopkette in Beziehung (z. B. entspricht dieser).
Der Eingangstestvektor wird durch die serielle Kette Bit für Bit seriell
eingelesen. Bei einem Beispiel verarbeitet jedes der Flops, während des
Einlesens, das Eingangssignal vom Scan-Eingang SI anstatt vom Dateneingang
DI. Das Eingangssignal vom Scan-Eingang SI oder vom Dateneingang
DI kann anschließend
am Scan-Ausgang SO und am Datenausgang DO anliegen, wobei das Signal
möglicherweise
nach einer Zeitverzögerung
am Scan-Ausgang SO anliegt. Der Scan-Pfad verläuft bei dem in 2 dargestellten
Beispiel durch den Scan-Eingang SI des ersten Flops 100,
den Scan-Ausgang SO des ersten Flops 100, die Leitung 130,
den Scan-Eingang SI des zweiten Flops 110, den Scan-Ausgang
SO des zweiten Flops und so weiter.
-
Sobald
der gesamte Eingangstestvektor in die serielle Kette eingelesen
(d. h. eingeschoben) worden ist, so dass beispielsweise jeder Flop
der seriellen Kette seinen zugewiesenen Wert an seinem Datenausgang
DO und seinem Scan-Ausgang SO anliegen hat, werden die Dateneingangssignale
der Flops über
die Dateneingänge
DI der Flops parallel geladen. Bei einem Beispiel werden, wenn die
Dateneingangssignale der Flops über
die Dateneingänge DI
in die Flops geladen werden, keine Eingangssignale über die
Scan-Eingänge
SI in die Flops geladen. Die Dateneingangssignale der Flops können eine Funktion
der kombinatorischen Logikschaltung 120 und/oder der der
Datenausgänge
DO der Flops sein. Die Dateneingangssignale von den Dateneingängen DI
werden dann an die Datenausgänge
DO der Flops und, möglicherweise
nach einer Zeitverzögerung,
an die Scan-Ausgänge
SO der Flops weitergeleitet. Die Scan-Ausgänge SO werden dann ausgelesen
oder herausgeschoben, um einen weiteren Satz aus beispielsweise
Nullen und Einsen zu bilden, der als Ausgangstestvektor bekannt
ist. Der Ausgangstestvektor kann dann mit dem erwarteten Testvektor
verglichen werden, um zu bestimmen, ob in der VLSIC ein Defekt aufgetreten
ist. Der erwartete Testvektor kann anhand eines Schaltungssimulationsprogramms
erzeugt worden sein.
-
Andere
Eingangstestvektoren können
in die Scan-Kette 70 eingelesen werden, um andere Abschnitte
der kombinatorischen Logikschaltung 120 zu prüfen. Bei
einem Beispiel kann, während
der Ausgangstestvektor aus der Scan-Kette 70 ausgelesen wird,
der nächste
Eingangstestvektor in die Scan-Kette 70 eingelesen werden.
Eine Mehrzahl an Scan-Ketten kann dazu verwendet werden, die VLSIC
in Bereiche aufzuteilen, die parallel getestet werden können. Die
Anzahl an Eingangstestvektoren, die zum Testen einer VLSIC verwendet
wird, kann beispielsweise eine Funktion der Komplexität der VLSIC,
der Größe der VLSIC
oder des Betrages der gewünschten
Fehlerabdeckung sein. Die Werte der Eingangstestvektoren und die
Anzahl der Eingangstestvektoren können durch ein Scan-Kettensimulationsprogramm
bestimmt werden, welches Durchschnittsfachleuten auf dem Gebiet
bekannt ist.
-
Einige
Ausführungsformen
der vorliegenden Erfindung können
einen oder mehrere der folgenden Vorteile aufweisen. Beispielsweise
wird, da die Verbindung zwischen den zwei Flops von einem Puffer und
zwei Leitungen auf eine einzelne Leitung reduziert worden ist, die
Unterbrechung bestehender Verbindungen in der VLSIC minimiert. Die
Unterbrechung bestehender Verbindungen war bei herkömmlichen
Schemata, bei denen ein Puffer nicht in der Nähe der zwei Flops eingefügt werden
konnte und daher zwei lange Leitungen nötig waren, wodurch sich das
Risiko einer Unterbrechung bestehender Verbindungen in der VLSCI
erhöhte,
besonders problematisch. Wenn jedoch kein Puffer und keine zwei zusätzlichen
Leitungen (z. B. möglicherweise
lange Leitungen) eingefügt
werden müssen,
können
zwei nahe beieinander liegende Flops mittels einer kurzen Leitung
miteinander verbunden werden, beispielsweise um das Risiko einer
Unterbrechung bestehender Verbindungen und der Notwendigkeit, Zyklen
zur Wiederherstellung unterbrochener Verbindungen, Umgestaltung
und Prüfung
durchzuführen,
zu minimieren.
-
Darüber hinaus
können
einige Ausführungsformen
der vorliegenden Erfindung zwei unterschiedliche Ausgänge bereitstellen:
einen Scan-Ausgang SO, der sich vom Datenausgang DO unterscheidet und
von diesem getrennt ist. Somit wird der Datenausgang DO nicht durch
die Scan-Kette belastet. Bei dem herkömmlichen Beispiel war der Datenausgang DO
des Flops über
zwei Leitungen und einen Puffer mit dem Scan-Eingang SI eines anderen
Flops verbunden. Daher lag am Datenausgang DO neben seiner Funktionslast
(z. B. der kombinatorische Logikschaltung 30) eine zusätzliche
Last an. Eine solche Belastung kann Ansteuerungs- und Ablaufsteuerungsprobleme
verursachen, die Zyklen zur Wiederherstellung unterbrochener Verbindungen,
Umgestaltung und Prüfung
erforderlich machen können. Einige
Ausführungsformen
der vorliegenden Erfindung stellen jedoch eine direkte Verbindung
von einem Scan-Ausgang SO, der von dem Datenausgang DO getrennt
ist, eines Flops zum Scan-Eingang SI eines anderen Flops her. Daher
sind die Scan-Ausgänge SO und
die Scan-Kettenverbindungen von den Datenausgängen DO getrennt und belasten
somit die Datenausgänge
DO nicht.
-
3 zeigt
ein Beispiel eines erfindungsgemäßen Flops 140.
Obgleich der Flop 140 als Flop von spezifischer Art dargestellt
sein kann, kann die vorliegende Erfindung andere Arten von Flops
oder sequentiellen Bauelementen vorsehen. Der Flop 140 kann
einen herkömmlichen
Flop 150 und einen Verzögerungspuffer 160 umfassen.
Der Flop 140 kann Ein- und Ausgänge umfassen, wie z. B. den
Dateneingang DI, den Scan-Eingang SI, einen Scan-Aktivierungseingang
SE, den Takteingang CLK, den Datenausgang DO und den Scan-Ausgang
SO. Der herkömmliche
Flop 150 kann beispielsweise einen der in 1 gezeigten
Flops oder einen beliebigen anderen herkömmlichen Flop oder herkömmlichen
Teil desselben umfassen, die Durch schnittsfachleuten auf dem Gebiet
bekannt sind. Der herkömmliche
Flop 150 stellt nicht unbedingt einen separaten, im Flop 140 montierten
herkömmlichen
Flop 150 dar, sondern kann einen Schaltungsaufbau repräsentieren, der
Durchschnittsfachleuten auf dem Gebiet als Teil eines herkömmlichen
Flops bekannt ist. Der herkömmliche
Flop 150 ist mit Ein- und Ausgängen dargestellt, wie z. B.
einem Dateneingang DI',
einem Scan-Eingang SI',
einem Scan-Aktivierungseingang SE', einem Takteingang CLK' und einem Datenausgang
DO'. Der Flop 140 und
der herkömmliche
Flop 150 können
andere Ein- und Ausgänge
umfassen, die hier nicht dargestellt, aber Durchschnittsfachleuten
auf dem Gebiet bekannt sind.
-
Der
Verzögerungspuffer 160 ist
dafür strukturiert,
eine Zeitverzögerung
bereitzustellen. Der Verzögerungspuffer 160 kann
auch einen Puffer bereitstellen, so dass der Datenausgang DO vom Scan-Ausgang
SO getrennt ist. Bei einem Beispiel wird der Datenausgang DO aufgrund
der durch den Verzögerungspuffer 160 bereitgestellten
Trennung nicht durch den Scan-Ausgang SO belastet. Wie in 3 gezeigt,
sind die Ein- und Ausgänge
des herkömmlichen
Flops 150 mit entsprechenden Ein- und Ausgängen des
Flops 140 verbunden. Somit ist der Dateneingang DI mit
dem Dateneingang DI',
der Scan-Eingang SI mit dem Scan-Eingang SI', der Scan-Aktivierungseingang SE mit dem Scan-Aktivierungseingang
SE', der Takteingang
CLK mit dem Takteingang CLK' und
der Datenausgang DO mit dem Datenausgang DO' verbunden. Des Weiteren ist der Datenausgang
DO' des herkömmlichen
Flops 150 auch mit einem Eingang des Verzögerungspuffers 160 verbunden.
Ein Ausgang des Verzögerungspuffers 160 ist
mit dem Scan-Ausgang SO des Flops 140 verbunden.
-
Bei
einem Beispiel kann ein Zwei-zu-Eins-Multiplexer oder -Selektor
verwendet werden, wobei der Dateneingang DI und der Scan-Eingang
SI mit den Eingängen
des Multiplexers oder Selektors verbunden sind und der Scan-Aktivierungseingang
SE der Anschluss zum Selektoreingang des Multiplexers oder Selektors
ist. Daher würde
das am Scan-Aktivierungseingang SE anliegende Signal bestimmen,
welcher der Eingänge
(d. h. der Scan-Eingang SI oder der Dateneingang DI) an den Ausgang
des Multiplexers oder Selektors weitergeleitet würde.
-
Im
Betrieb kann, wenn der Eingangstestvektor in die Scan-Kette 70 eingelesen
wird, der Scan-Aktivierungseingang SE durch ein Scan-Aktivierungseingangssignal
aktiviert werden. Wenn der Scan-Aktivierungseingang SE ein Aktivierungssignal empfängt, dann
können
sich der Flop 140 und der herkömmliche Flop 150 in
einem Scan-Modus oder Schiebe-Modus befinden. Somit werden die Scan-Eingänge SI,
SI' aktiviert und
die an den Scan-Eingängen
SI, SI' anliegenden
Signale an die Ausgänge
DO', DO und SO weitergeleitet.
Bei einem Beispiel können,
wenn der Scan-Aktivierungseingang
SE ein Aktivierungssignal empfängt,
die Dateneingänge
DI, DI' deaktiviert
werden, so dass die an den Dateneingängen DI, DI' anliegenden Signale nicht an die Ausgänge DO', DO und SO weitergeleitet werden.
Der Scan-Ausgang SO kann sein Signal nach einer gepufferten Verzögerung über den
Verzögerungspuffer 160 empfangen.
Die Zeitverzögerung kann
beispielsweise eine voreingestellte Verzögerung oder konstruierte Verzögerung sein.
Der Eingangstestvektor kann bei jedem Taktsignal durch die Scan-Kette
verschoben werden. Daher kann der Scan-Ausgang SO das Signal dem Scan-Eingang
SI des nächsten
Flops 140 in der Scan-Kette 70 zuführen.
-
Wenn
der Scan-Aktivierungseingang SE ein Deaktivierungssignal empfängt, dann
befinden sich der Flop 140 und der herkömmliche Flop in einem Funktionsmodus.
Somit sind die Dateneingänge
DI, DI' aktiviert
und die an den Dateneingängen
DI, DI' anliegenden
Signale werden an die Ausgänge
DO', DO und SO weitergeleitet.
Bei einem Beispiel können,
wenn der Scan-Aktivierungseingang SE ein Deaktivierungssignal empfängt, die
Scan-Eingänge SI,
SI' deaktiviert
werden, so dass die an den Dateneingängen SI, SI' anliegenden Signale nicht an die Ausgänge DO', DO und SO weitergeleitet
werden. Der Scan-Ausgang SO kann sein Signal nach einer gepufferten
Verzögerung über den
Verzögerungspuffer 160 empfangen.
Bei einem Beispiel können
alle Flops in der Scan-Kette 70 ihre Eingänge auf
dasselbe Taktsignal hin laden (d. h. parallel oder im Wesentlichen
gleichzeitig). Der Ausgang des Flops 140 erscheint sowohl
am Datenausgang DO als auch am Scan-Ausgang SO. Nach dem Laden der
Dateneingänge
stellen die Ausgangssignale der Flops in der Scan-Kette 70 die
Reaktion der VLSIC auf den Eingangstestvektor dar. Bei einem Beispiel
stellen die Ausgangssignale der Flops in der Scan-Kette 70, nach
dem Laden der Dateneingänge,
die Reaktion der kombinatorischen Logikschaltung 120 auf
den Eingangstestvektor dar.
-
Die
Ausgangssignale an den Scan-Ausgängen
SO können
dann über
ein von den Scan-Aktivierungseingängen SI empfangenes Aktivierungssignal ausgelesen
werden, was bewirken kann, dass die Flops in einen Scan-Modus oder
einen Schiebe-Modus übergehen,
wie vorstehend beschrieben. Die Ausgangssignale an den Scan-Ausgängen SO,
die aus der VLSIC herausgeschoben werden, können einen Wertesatz (z. B.
eine Folge von binären
Nullen und Einsen) bilden, der als Ausgangstestvektor bekannt ist.
Bei einem Beispiel wird der Ausgangstestvektor aus der Scan-Kette 70 ausgelesen,
wobei gleichzeitig ein anderer Eingangstestvektor eingelesen werden
kann. Daher kann für
jeden in die Scan-Kette 70 eingelesenen Eingangstestvektor
ein Ausgangstestvektor generiert werden. Der Ausgangstestvektor
kann dann mit dem erwarteten Testvektor verglichen werden, um festzustellen,
ob in der VLSIC ein Defekt vorhanden ist.
-
4 zeigt
eine Darstellung eines Beispiels des erfindungsgemäßen Verzögerungspuffers 160. Der
Verzögerungspuffer 160 kann
beispielsweise einen ersten Inverter 170, eine Zeitverzögerungseinheit 180 und
wahlweise einen zweiten Inverter 190 umfassen. Der Eingang
des ersten Inverters 170 ist mit mindestens einem der Datenausgänge DO', DO verbunden. Der
erste Inverter 170 ist mit der Zeitverzögerungseinheit 180 verbunden,
die wiederum mit dem zweiten Inverter 190 verbunden ist.
Der Ausgang des zweiten Inverters 190 ist mit dem Scan-Ausgang
SO des Flops 140 verbunden. Der erste Inverter 170 kann
so strukturiert sein, dass er sein Eingangssignal umkehrt und eine
Trennung zwischen den Datenausgängen
DO', DO und dem Scan-Ausgang
SO bereitstellt. Die Zeitverzögerungseinheit 180 kann
beispielsweise ein Übertragungsgatter
(Transmission Gate) oder einen anderen Zeitverzögerungsschaltungsaufbau umfassen.
Die Zeitverzögerungseinheit 180 kann
eine Zeitverzögerung vorsehen,
so dass die sequentiellen Bauelemente Zeitverletzungen, wie etwa
Einrichtzeit-, Taktübertragungszeit-
oder Haltezeitverletzungen, vermeiden. Der zweite Inverter 190 kann
so strukturiert sein, dass er das Signal umkehrt, das vom ersten
Inverter 170 umgekehrt worden sein kann.
-
5 zeigt
eine Darstellung eines anderen Beispiels des erfindungsgemäßen Verzögerungspuffers 160.
Der Verzögerungspuffer 160 kann
beispielsweise den Inverter 170 und eine Komplementär-Metalloxid-Halbleiter-(CMOS-)Transistoranordnung 200 umfassen.
Die CMOS-Transistoranordnung 200 kann wenigstens einen
p-Kanal-MOS-(PMOS-)Transistor 210 und wenigstens einen
n-Kanal-MOS-(NMOS-)Transistor 220 umfassen,
die in einem CMOS-Schema konfiguriert sind. Der Eingang des Inverters 170 ist
mit mindestens einem der Datenausgänge DO', DO verbunden. Ein Ausgang des Inverters 170 ist
mit einem Eingang der CMOS-Transistoranordnung 200 verbunden.
Ein Ausgang der CMOS-Transistoranordnung 200 ist mit dem Scan-Ausgang
SO des Flops 140 verbunden. Der Inverter 170 kann
so strukturiert sein, dass er sein Eingangssignal umkehrt und eine
Trennung zwischen den Datenausgängen
DO', DO und dem
Scan-Ausgang SO bereitstellt. Die CMOS-Transistoren 210, 220 können so
strukturiert sein, dass sie durch Bereitstellen einer schwachen
Treibstärke
(Drive Strength) eine Verzögerung
vorsehen. Eine schwache Treibstärke
kann beispielsweise erreicht werden, indem die Breite der CMOS-Transistoren 210, 220 klein
und die Länge
der CMOS-Transistoren 210, 220 groß ausgeführt wird.
Daher kann eine kapazitive Last, die z. B. ein Verbindungsmetall
und eine beliebige Gatterlast (Gate Load) umfasst und durch die CMOS-Transistoranordnung 200 angesteuert
wird, durch Anschließen
einer Verbindung an den Scan-Ausgang SO eine erhebliche Verzögerung bereitstellen.
-
6 zeigt
eine Darstellung eines weiteren Beispiels des erfindungsgemäßen Verzögerungspuffers 160.
Der Verzögerungspuffer 160 kann
beispielsweise eine erste CMOS-Transistoranordnung 230 und
eine zweite CMOS-Transistoranordnung 200 umfassen. Die
CMOS-Transistoranordnungen 200, 230 können wenigstens
einen PMOS-Transistor 210 und wenigstens einen NMOS-Transistor 220 umfassen,
die in einem CMOS-Schema konfiguriert sind. Bei dem dargestellten
Beispiel umfasst die erste CMOS-Transistoranordnung 230 zwei
PMOS-Transistoren 240 und zwei NMOS-Transistoren 250.
Die erste CMOS-Transistoranordnung 230 ist als herkömmliche
Totempfahlkonfiguration ausgeführt.
Obgleich ein Vier-Transistoren-Totempfahl
dargestellt ist, kann die vorliegende Erfindung auch die Verwendung
von mehr Transistoren im Totempfahl vorsehen. Der Eingang der ersten
CMOS-Transistoranordnung 200 ist
mit mindestens einem der Datenausgänge DO', DO verbunden. Ein Ausgang der ersten CMOS-Transistoranordnung 230 ist
mit einem Eingang der zweiten CMOS-Transistoranordnung 200 verbunden.
Ein Ausgang der zweiten CMOS-Transistoranordnung 200 ist
mit dem Scan-Ausgang SO des Flops 140 verbunden.
-
Die
erste CMOS-Transistoranordnung 230 kann so strukturiert
sein, dass sie ihr Eingangssignal umkehrt und eine Trennung zwischen
den Datenausgängen
DO', DO und dem
Scan-Ausgang SO bereitstellt. Die erste CMOS-Transistoranordnung 230 kann
so strukturiert sein, dass sie eine hohe intrinsische Verzögerung bereitstellt
(auch ohne große
Belastung). Bei einem Beispiel ist die intrinsische Verzögerung groß genug,
um sicherzustellen, dass, auch bei leichter Last, jedwede Zeitverletzung
(z. B. eine Haltezeitverletzung) verhindert wird. Die CMOS-Transistoren 210, 220, 240, 250 können so strukturiert
sein, dass sie durch Bereitstellen einer schwachen Treibstärke eine
Verzögerung
vorsehen. Eine schwache Treibstärke
kann beispielsweise erreicht werden, indem die Breite der CMOS-Transistoren 210, 220, 240, 250 klein
und die Länge
der CMOS-Transistoren 210, 220, 240, 250 groß ausgeführt wird.
Daher kann eine kapazitive Last, die durch die CMOS-Transistoranordnungen 200, 230 angesteuert
wird, durch Anschließen
einer Verbindung an den Scan-Ausgang
SO eine erhebliche Verzögerung bereitstellen.
Darüber
hinaus kann die erste CMOS-Transistoranordnung 230 die
Treibstärke
der zweiten CMOS-Transistoranordnung 200 schwächen, wodurch
eine größere Verzögerung bereitge stellt
wird. Die in der ersten CMOS-Transistoranordnung 230 verwendete
Totempfahlkonfiguration kann bei der Hinzufügung einer Verzögerung zum
Verzögerungspuffer 160 effizienter
sein. Zwei schwache PMOS-Transistoren sind beispielsweise ungefähr zweimal
so schwach wie ein einzelner schwacher PMOS-Transistor. Da die Totempfahlkonfiguration eine
schwächere
CMOS-Transistoranordnung bereitstellt, kann die Verzögerung aufgrund
der längeren Zeitdauer,
die nötig
ist, um beispielsweise eine spezifische kapazitive Last anzusteuern,
erhöht
werden. Bei einem Beispiel kann die Totempfahlkonfiguration (auch
ohne große
Belastung) eine hohe intrinsische Verzögerung bereitstellen.
-
7 und 8 zeigen
Darstellungen weiterer Beispiele des erfindungsgemäßen Verzögerungspuffers 160.
In 7 werden zwei CMOS-Transistoranordnungen 200 verwendet.
In 8 werden zwei CMOS-Transistoranordnungen 230 verwendet, wobei
die zwei CMOS-Transistoranordnungen 230 in einer Totempfahlkonfiguration
ausgeführt
sind. Diese Beispiele arbeiten auf ähnliche oder gleiche Art und Weise
wie vorstehend beschrieben. Die Auswahl eines spezifischen Beispiels
für eine
spezifische Anwendung kann beispielsweise eine Funktion der gewünschten
Größe des Flops 140 und
des gewünschten
Betrages der Zeitverzögerung
sein.
-
Bei
einigen der hierin beschriebenen Beispiele kann die vom Flop 140 einschließlich des
Verzögerungspuffers 160 eingenommene
Gesamtfläche gleich
oder kleiner als die Gesamtfläche
sein, die von dem herkömmlichen
Flop 10, 20 und dem Puffer 40, welche
in 1 dargestellt sind, eingenommen wird.
-
Des
Weiteren kann, obgleich bei den hierin beschriebenen Beispielen
der Verzögerungspuffer 160 an
oder nahe dem Scan-Ausgang SO platziert werden kann, der Verzögerungspuffer 160 auch
an oder nahe dem Scan-Eingang SI im Flop 140 platziert werden,
wodurch ein langsamer Scan-Eingang bereitgestellt wird. Darüber hinaus
kann eine Kombination aus Verzögerungspuffern 160 oder
eine Kombination aus Teilen derselben erfindungsgemäß am Scan-Ausgang
SO und am Scan-Eingang
SI eingesetzt werden, wodurch eine Kombination aus einem langsamen
Scan-Eingang und einem langsamen Scan-Ausgang bereitgestellt wird.
-
Obgleich
die vorliegende Erfindung unter Bezugnahme auf bestimmte Ausführungsformen
beschrieben worden ist, versteht es sich für Fachleute auf dem Gebiet,
dass verschiedene Abwandlungen durchgeführt und Äquivalente gegen einander ausgetauscht
werden können,
ohne vom Schutzumfang der vorliegenden Erfindung, wie in den anhängigen Ansprüchen definiert,
abzuweichen. Darüber
hinaus können
zahl reiche Modifikationen durchgeführt werden, um eine spezifische
Situation oder ein spezifisches Material an die Lehren der vorliegenden
Erfindung anzupassen, ohne von ihrem Schutzumfang, wie in den anhängigen Ansprüchen definiert,
abzuweichen. Die vorliegende Erfindung soll daher nicht auf die
spezifischen offenbarten Ausführungsformen beschränkt sein,
die vorliegende Erfindung soll jedoch alle Ausführungsformen umfassen, die
in den Schutzumfang der anhängigen
Ansprüche
fallen.