-
Technisches
Gebiet
-
Die
Erfindung betrifft integrierte Schaltungen, insbesondere das Führen von
Boundary-Scan-Steuerleitern zum Steuern von Boundary-Scan-Zellen,
die zu Eingangs-/Ausgangsstellen (pads) der integrierten Schaltung
gehören.
-
Hintergrund
der Erfindung
-
Die
Verwendung von Boundary-Scan-Ketten zur Dateneingabe in integrierte
Schaltungen, zum Testen von integrierten Schaltungen und von Testsystemen
integrierter Schaltkreise ist allgegenwärtig. Die IEEE-Norm 1149.1
und die dazugehörige
Ergänzungen,
häufig
als JTAG bezeichnet, definieren die Logik zum Implementieren einer
Boundary-Scan-Kette. Das US-Patent 5 355 369 zeigt eine integrierte
Hochgeschwindigkeitsschaltung für
das Boundary-Scan-Testen. Eine Boundary-Scan-Kette umfasst Logikzellen
an jedem Eingangs-/Ausgangspfad. Die Eingangs-/Ausgangspfade befinden
sich typischerweise entlang dem Umfang eines Plättchens mit einer integrierten
Schaltung. Die Logikzellen, auch bekannt unter der Bezeichnung Boundary-Scan-Zellen,
werden gemäß der oben
angegebenen Norm von Steuersignalen gesteuert. Die Steuersignale
werden jeder Boundary-Scan-Zelle typischerweise über einen "Ring"-Bus
in der Nähe
der Boundary-Scan-Zellen zugeführt,
wobei der Ringbus-Leiter endlos ist, d.h. eine Schleife bildet und
an einem einzigen Punkt gespeist wird. Daten werden sequenziell
von einer Boundary-Scan-Zelle zu einer benachbarten Boundary-Scan-Zelle übertragen.
Damit erfolgt eine Datenverschiebung von einer beliebigen Boundary-Scan-Zelle
zu einer benachbarten Boundary-Scan-Zelle in der gleichen Weise,
in der Daten von einem Register innerhalb eines Schieberegisters
zum nächsten
darin befindlichen Register verschoben werden.
-
Weitere
Veröffentlichungen,
die zum Verständnis
des Stands der Technik beitragen, beinhalten Motorola Technical
Developments, Motorola Inc., Schaumburg, Illinois, US (01-03-1993),
18, 44–49; das
US-Patent Nr. 5 488 614 und die JP-A-062 89 099.
-
Ein
Problem, welches bei der Ring-Implementierung der Steuersignalleiter
auftaucht, ist das Potenzial für
einen Race-Zustand. Dieser Race-Zustand tritt dann auf, wenn Daten
zwischen zwei benachbarten Zwischenspeichern transferiert werden. Einer
der benachbarten Zwischenspeichern ist der Ausgangs-Zwischenspeicher
der Boundary-Scan-Zelle, aus der Daten transferiert werden, und der
andere der benachbarten Zwischenspeicher ist der Eingangs-Zwischenspeicher
der benachbarten Boundary-Scan-Zelle, in die Daten zu verschieben sind.
Ein Race-Zustand existiert dann, wenn der in das Taktsteuersignal
zwischen zwei benachbarten Zwischenspeichern eingeführte Laufzeitunterschied größer ist
als die Ausbreitungsverzögerung
beim Transfer von Daten von einer der beiden benachbarten Zwischenspeicher
in den anderen.
-
Eine
Methode, um den möglichen
Race-Zustand zu überwinden,
besteht darin, den Ringbusleiter, an den das Taktsignal gelegt wird,
aufzutrennen. Der Ringbusleiter wird zwischen der ersten Boundary-Scan-Zelle
und der letzten Boundary-Scan-Zelle innerhalb der Boundary-Scan-Kette
unterbrochen. Das Taktsignal treibt ein Ende des aufgetrennten Takt-Ringbusleiters
derart, dass sich das Taktsignal entlang dem aufgetrennten Ring
in die entgegengesetzte Richtung ausbreitet, wie Daten durch benachbarte
Boundary-Scan-Zellen verschoben werden. Auf diese Weise erfolgt
eine Verschiebung von Daten entlang der Folge von Boundary-Scan-Zellen
in einer Richtung, beispielsweise im Gegenuhrzeigersinn, während sich
das Taktsignal entlang dem aufgetrennten Takt-Ringbusleiter in die
entgegengesetzte Richtung ausbreitet, beispielsweise im Uhrzeigersinn,
oder umgekehrt.
-
Während diese
Methode den oben beschriebenen Race-Zustand auflöst, wird ein weiterer möglicher
Race-Zustand durch das Auftrennen des Takt-Ringbusleiters und das
Treiben eines Endes des aufgetrennten Takt-Ringbusleiters gebildet.
Die entstehende mögliche
Race-Bedingung tritt auf an der ersten Boundary-Scan- Zelle für den Empfang
von Daten. Die erste Boundary-Scan-Zelle empfängt das Taktsignal mit dem
größten Laufzeitversatz,
da das Taktsignal die größte Entfernung
zurücklegt,
um an der ersten Boundary-Scan-Zelle anzukommen. Während das
aktiv niedrige Verschiebungssignal auf niedrigen Pegel geht, durchlaufen
die in die erste Boundary-Scan-Zelle verschobenen Daten durch den
ersten, Master-Zwischenspeicher,
und werden in einem zweiten, Slave-Zwischenspeicher, aufgenommen,
wenn das Schiebesignal an der ersten Boundary-Scan-Zelle ankommt,
bevor das Taktsignal an der ersten Boundary-Scan-Zelle ankommt (ein
Zustand des späten
Takts).
-
Was
benötigt
wird, ist eine Methode zur Überwindung
des möglichen
Race-Zustands, der in die Ringbus-Konfiguration eingebracht wird
und bedingt ist durch den Umstand, dass der Takt-Zeitversatz größer ist
als die Ausbreitungsverzögerung
zum Transferieren von Daten von einem von zwei benachbarten Zwischenspeichern
in den anderen, ohne dass dabei weitere mögliche Race-Zustände entstehen.
-
Offenbarung
der Erfindung
-
Erfindungsgemäß wird eine
integrierte Schaltung gemäß Anspruch
1 geschaffen. Somit beinhaltet eine integrierte Schaltung ein Halbleiterplättchen mit
mehreren Eingangs-/Ausgangsstellen. Mehrere Boundary-Scan-Zellen,
von denen eine jeweils einer Eingangs-/Ausgangsstelle entspricht,
implementiert Boundary-Scan-Funktionen
mit den jeweiligen Eingangs-/Ausgangsstellen. Jede der Boundary-Scan-Zellen enthält einen
TDI-Eingang und einen TDO-Ausgang. Boundary-Scan-Zellen sind aufgebaut als ein Schieberegister
zum Verschieben von Daten von einer Boundary-Scan-Zelle in eine
seitliche Richtung zu einer benachbarten Boundary-Scan-Zelle. Eine
erste Boundary-Scan-Zelle ist die erste Boundary-Scan-Zelle der mehreren Boundary-Scan-Zellen
zum Empfangen von Daten. Eine letzte Boundary-Scan-Zelle ist die letzte
Boundary-Scan-Zelle von mehreren Boundary-Scan-Zellen zum Empfangen
von Daten. Ein Endlos-Steuerleiter bildet eine Schleife in der Nähe der mehreren
Boundary-Scan-Zellen. Der Endlos-Steuerleiter
ist mit jeder der mehreren Boundary-Scan-Zellen gekoppelt, um diesen
ein Test-Taktsignal zuzuführen.
Mindestens ein weiterer Steuerleiter erstreckt sich um das Halbleiterplättchen herum
in der Nähe
der mehreren Boundary-Scan-Zellen. Der mindestens eine weitere Steuerleiter
ist mit jeder der mehreren Boundary-Scan-Zellen gekoppelt und ist zwischen
der ersten und der letzten Boundary-Scan-Zelle unterbrochen. Die
Erfindung lässt
sich auch auf Systemniveau implementieren.
-
Erfindungsgemäß wird außerdem ein
Verfahren gemäß Anspruch
8 geschaffen.
-
Kurze Beschreibung
der Zeichnungen
-
1 ist
eine vergrößerte Draufsicht
auf einen Teil einer integrierten Schaltung mit Steuerleitungen
zum Führen
von Steuersignalen zu Boundary-Scan-Zellen gemäß der Erfindung;
-
2 ist
ein schematisches Diagramm eines Teils einer typischen Boundary-Scan-Zelle mit einer Verzögerung gemäß der Erfindung;
und
-
3 ist
eine schematische Darstellung eines Teils einer Systemniveau-Anwendung und veranschaulicht
den Einsatz von Steuerleitungen für eine Abtastkette unter den
mehreren integrierten Schaltungen auf einer Schaltungsplatine gemäß der Erfindung.
-
Detaillierte
Beschreibung
-
1 zeigt
einen vergrößerten Teil
eines mit einer integrierten Schaltung 10 versehenen Halbleiterplättchens 12,
bei dem Boundary-Scan-Steuerleiter gemäß der Erfindung angelegt sind.
Das Halbleiterplättchen 12 ist
nicht maßstabsgetreu
dargestellt. Das Halbleiterplättchen 12 beinhaltet
eine Mehrzahl von Bondstellen (Bond pads), an denen (nicht dargestellte)
Bondplättchen
angebondet sind, um die (nicht gezeigten) Leitungen oder (nicht
gezeigten) Metallisierungen zur weiteren Verbindung mit einem Array aus
Lotansammlungen oder -säulen
zu ver binden, wie es im Stand der Technik bekannt ist. Die Bondstellen 14 befinden
sich typischerweise in der Nähe des
Umfangs des Halbleiterplättchens 12.
Die Bondstellen 14 bilden eine Schnittstelle zu (nicht
gezeigten) Schaltungen auf dem Halbleiterplättchen, die jeweils einen Eingang,
einen Ausgang oder sowohl einen Eingang als auch einen Ausgang bilden,
hier als Eingang/Ausgang oder Eingangs-/Ausgangs-Port bezeichnet.
-
Zu
jeder Bondstelle 14 gehört
mit Ausnahme der Bondstellen für
die JTAG-Schnittstelle 16 und weitere
Stellen eine Abtastzelle oder Boundary-Scan-Zelle 18 zum
Testen oder zum Programmieren der integrierten Schaltung, oder zum
Testen oder Programmieren eines System aus integrierten Schaltungen.
Die Boundary-Scan-Zellen beinhalten Logikschaltungen und Trennschaltkreise.
Jede Boundary-Scan-Zelle 18 kann den logischen Zustand
ihrer zugehörigen
Bondstelle lesen, auf ihre Bondstelle einen logischen Zustand aufprägen, oder
kann von dieser zugehörigen
Bondstelle 14 getrennt werden. Die Boundary-Scan-Zellen 18 befinden
sich typischerweise in der Nähe
der zugehörigen
Bondstelle 14 und sind daher typischerweise entlang dem
Umfang des Halbleiterplättchens 12 angelegt.
-
Die
Boundary-Scan-Zellen 18 sind dazu ausgebildet, Daten in
Form eines Bits von einer Boundary-Scan-Zelle zur benachbarten Boundary-Scan-Zelle über Leitungen 20 in
einseitiger Richtung zu verschieben, im Wesentlichen ähnlich der
Verschiebung von Bits in und durch Register eines seriellen Schieberegisters.
Auf diese Weise bilden die Boundary-Scan-Zellen 18 eine
Boundary-Scan-Kette 22. Wie bei einem beliebigen seriellen
Schieberegister ist der Ausgang der letzten Boundary-Scan-Zelle innerhalb der
Kette 22 ohne Bedeutung, solange nicht sämtliche
Boundary-Scan-Zellen mit bedeutsamen Daten geladen sind.
-
Die
Boundary-Scan-Zellen 18 werden über die Steuerung 24 für den JTAG-Test-Zugangsport (TAP)
gesteuert. Die Steuerung 24 ist mit jeder der Bondstellen
der JTAG-Schnittstelle 16 verbunden. Die TCK-Eingangsstelle 26 bildet
einen Testtakteingang. Die TDI-Eingangsstelle 28 liefert
Testdaten an die erste Boundary-Scan-Zelle
innerhalb der Kette 22 zum Empfangen von Daten. Die TRSTN-Eingangsstelle 32 liefert
eine negative getriggerte Rücksetzfunktion.
Die TMS-Ein gangsstelle 30 dient zur Testmodus-Auswahl,
welches Signal an die Steuerung 24 geliefert wird, um die
Betriebsart der Boundary-Scan-Kette 22 auszuwählen. Wird
die Boundary-Scan-Betriebsart ausgewählt, so empfängt die TDO-Ausgangsstelle 34 die
Testdaten, die von dem JOUT-Block 62 über den Leiter 56 sequenziell
durch die Boundary-Scan-Zellen gerückt werden.
-
Ein
aus Leitern 38 bestehender Steuerbus 36 liefert
Steuersignale von der JTAG-Schnittstelle 16 oder
der Steuerung 24 zu jeder der Boundary-Scan-Zellen 18.
Der Steuerbus 36 befindet sich typischerweise in der Nähe der Boundary-Scan-Zellen 18 und
dementsprechend am Außenumfang
des Halbleiterplättchens 12.
Die Leiter 38 innerhalb des Busses 36 können, brauchen
aber nicht, durchgängig
oder endlos sein, um eine Schleife in der Nähe der Boundary-Scan-Zellen 18 zu
bilden. Wenn eine integrierte Schaltung mit mehreren Metallschichten gefertigt
wird, wird der Bus 36 typischerweise in der oberen Metallschicht
ausgebildet. Allerdings ist die Erfindung nicht hierauf beschränkt. Mit
geeigneten Verbindungen gemäß Stand
der Technik kann der Bus 36 auch in mehr als einer Metallschicht
ausgebildet sein.
-
Vier
Leiter 38 des Busses 36 werden im Folgenden diskutiert,
obwohl der Bus 36 mehr als diese vier Leiter haben kann.
Es handelt sich um einen Taktleiter 40, einen Schiebeleiter 42,
einen Abfangleiter 44 und einen Aktualisierungsleiter 46.
An die JTAG-Schnittstellen-Bondstelle 26 wird ein Testtaktsignal
gelegt. Das Testtaktsignal TCK wird sowohl an den Taktleiter 40 als
auch an den JTAG-Block 60 gelegt. Der JTAG-Block 60 bildet
ein Schiebesignal, welches an den Schiebeleiter 42 gelegt
wird, ein Abfangsignal, welches an den Abfangleiter 44 gelegt wird,
und ein Aktualisierungssignal, welches an den Aktualisierungsleiter 46 gelegt
wird. Im Abtastbetrieb bewirkt das Schiebesignal, dass Daten von
einer Boundary-Scan-Zelle zur nächsten
Boundary-Scan-Zelle innerhalb der Kette 22 verschoben werden.
In die ersten Boundary-Scan-Zelle, das ist die erste Zelle 48 innerhalb
der Kette, wird ein neues Datenbit über die Leitung 50 ausgehend
von der Bondstelle 28 geschoben. Darüber hinaus wird ein Datenbit
aus der letzten Boundary-Scan-Zelle, das ist die letzte die letzte
Zelle 52 innerhalb der Kette, über die Leitung 54 zu
dem JOUT-Block 62 und dann über die Leitung 56 zu
der Bondstelle 34 der JTAG-Schnittstelle 16 herausgeschoben.
-
Erfindungsgemäß ist der
Taktleiter 40 innerhalb des Steuerbusses 36 endlos
oder kontinuierlich und bildet eine Schleife entlang den Boundary-Scan-Zellen 18,
mit denen er verbunden ist. Der Schiebeleiter 42, der Abfangleiter 44 und
der Aktualisierungsleiter 46 sind unterbrochen oder diskontinuierlich
und werden gemeinsame als unterbrochene Leiter 58 bezeichnet.
Unterbrochene Leiter 58 werden von der Steuerung 24 angesteuert,
und die erste Anzapfung von jedem der unterbrochenen Leiter 58 liefert
Schiebe-, Abfang- und Aktualisierungssignale an die letzte Zelle 52 innerhalb
der Kette 22. Die zweite Anzapfung jedes der Leiter 58 liefert
Schiebe-, Abfang- und Aktualisierungssignale an die der letzten Zelle
benachbarte Zelle, also derjenigen Boundary-Scan-Zelle, von der
die letzte Zelle 52 Daten empfängt. Die Schiebe-, Abfang-
und Aktualisierungssignale breiten sich entlang den Leitern 42, 44 und 46 zu jeder
der Boundary-Scan-Zellen innerhalb der Kette 22 aus, wobei
die erste Zelle 48 die letzte Boundary-Scan-Zelle ist,
welche die Signale empfängt.
Auf diese Weise bereiten sich die Schiebe-, Abfang- und Aktualisierungssignale
entlang den Boundary-Scan-Zellen 18 der Kette 22 in
einer Richtung aus, die der unilateralen Richtung entgegengesetzt
ist, in welcher Daten von einer Boundary-Scan-Zelle 18 zu einer
benachbarten Boundary-Scan-Zelle 18 innerhalb der Kette 22 verschoben
werden. Die Schiebe-, Abfang- und Aktualisierungssignale breiten
sich entlang den Boundary-Scan-Zellen 18 der
Kette 22 in einer Richtung entgegen der unilateralen Richtung aus,
in der Daten von einer Boundary-Scan-Zelle zu einer benachbarten
Boundary-Scan-Zelle
verschoben werden, was durch zwei Faktoren bedingt ist. Erstens:
Die einzelnen Leiter 42, 44 und 46 sind
zwischen den Anzapfpunkten, an denen die Leiter 42, 44, 46 mit
der letzten Zelle 52 verbunden sind, und den jeweiligen
Anzapfpunkten, an denen die Leiter 42, 44, 46 mit
der ersten Zelle 48 verbunden sind, unterbrochen. Zweitens:
Die Anzahl der Signale werden den Leitern 42, 44 und 46 an
dem Ende der Leiter in der Nähe
des Anzapfpunkts der letzten Zelle 52 aufgeprägt, demzufolge
sich die Signale entlang den Leitern ausgehend von der letzten Zelle 52 hin
zu der ersten Zelle 48 ausbreiten und auch in der Folge
von der letzten Zelle 52 zur ersten Zelle 48 den
Boundary-Scan-Zellen 18 in der Kette 22 angeboten
werden.
-
2 ist
ein schematisches Diagramm eines Teils eines Abtastregisters 80 einer
typischen Boundary-Scan-Zelle 18 einschließlich einer
zusätzlichen
Verzögerungsleitung 82.
Schiebe-, Abfang- und Aktualisierungssignale bilden Steuereingangsgrößen für Multiplexer 84, 86 bzw. 88.
Mit den Testdaten am TDI-Eingang des Multiplexers 84 werden die
Testdaten dem Ausgang eines Master-Zwischenspeichers 90 zugeleitet,
wenn das Schiebesignal niedrigen Pegel und auch das Testtaktsignal
niedrigen Pegel hat, demzufolge der Ausgang eines Slave-Zwischenspeichers
die Testdaten übernimmt, wenn
das Testtaktsignal einen Übergang
auf hohen Pegel vollzieht. Die Verzögerung 32 führt eine
vorherbestimmte Verzögerung
in die Darstellung der Daten am Ausgang des Slave-Zwischenspeichers
ein und bildet einen Testdatenausgang TDO der typischen Boundary-Scan-Zelle. In einer bevorzugten
Ausführungsform
beträgt
die Dauer der Verzögerung
mindestens etwa 80% der halben Periodendauer des Testtaktsignals
TCK. Die Verzögerung
lässt sich
in beliebiger bekannter Weise implementieren.
-
Die
Ausgangsdaten von der TDO-Bondstelle 34 werden einem (nicht
gezeigten) Abtastmodul zugeführt,
welches mit den empfangenen Daten arbeitet, um zu verifizieren,
dass die Ausgangsdaten den Erwartungsdaten entsprechen und folglich
der Rückschluss
gezogen werden kann, dass die integrierte Schaltung oder das System,
welches die Ausgangsdaten erzeugt hat, korrekt arbeitet.
-
Das
Leiten von Takt-, Schiebe- und Abfang-Steuerleitern und mithin der
diesen Leiten aufgeprägten
Signale in der oben beschriebenen Weise kann in einigen Fällen ausreichen,
um sicherzugehen, dass das Testtaktsignal an der ersten Zelle 48 ankommt,
bevor die Schiebe-, Auffang- und Aktualisierungssignale an der ersten
Zelle 48 innerhalb der Kette 22 ankommen. Die
Schiebe-, Auffang- und Aktualisierungssignale erleiden eine längere Ausbreitungsverzögerung aufgrund
der Zeit, die sie benötigen,
um die erste Zelle 48 zu erreichen, verglichen mit der
Zeit, innerhalb der das Testtaktsignal die erste Zelle 48 erreicht,
bedingt durch die relativen Längen der
Signalwege, welche die Signale auf den Leitern 38 beanspruchen.
Das Einbringen einer vorbestimmten Verzögerung zum Verschieben der
Datenausgabe von jeder Boundary-Scan-Zelle vermeidet den möglichen
Race an der ersten Zelle 48 und garantiert, dass das Testtaktsignal
an der ersten Zelle 48 vor der Ankunft der Schiebe-, Abfang-
und Aktualisierungssignale ankommt.
-
3 zeigt
die Anwendung der Erfindung beim System. Integrierte Schaltungen 120 sind
auf der Schaltungsplatine 122 montiert. Bahnen 124 bilden
einen Bus 126 zum Verbinden der integrierten Schaltung 120 mit
JTAG-Steuersignalen und zum Transferieren von Daten. Eine JTAG-Schnittstelle 316 enthält Eingangsstellen
TCK, TDI, TMS, TRSTN und TDO, bezeichnet mit 326, 328, 330, 332 bzw. 334.
Der Bus 126 verbindet integrierte Schaltungen 120 in
einer Kette. Daten können über eine
Bahn 124 seriell von einer integrierten Schaltung zur nächsten integrierten
Schaltung innerhalb der Kette übertragen werden.
Jede integrierte Schaltung 120 besitzt eine Boundary-Scan-Kette 22 der
oben beschriebenen Art. Die JTAG-Steuerfunktionen für das System
können
durch die JTAG-Steuerung und den JOUT-Block der integrierten Schaltungen
ausgeführt
werden, oder sie können
gemäß 3 als
getrennte JTAG-Steuerung 324, als JTAG-Block 360 und JOUT-Block 362 auf
Systemniveau ausgebildet sein. Aus der obigen Beschreibung ergibt
sich die Arbeitsweise auf Systemniveau für den Fachmann aus sich heraus.