-
Die
Erfindung betrifft ein Halbleiter Bauelement mit einer Test-Schnittstellen-Einrichtung
und ein Verfahren zum Testen eines solchen Halbleiter Bauelements.
-
Halbleiter-Bauelemente,
beispielsweise integrierte digitale oder analoge Rechenschaltkreise,
wie zum Beispiel Mikroprozessoren, und/oder Halbleiter-Speicherbauelemente,
wie zum Beispiel Funktionsspeicher-Bauelemente (PLAs, PALs etc.),
und Tabellenspeicher-Bauelemente (z.B. ROMs oder RAMs, insbesondere
SRAMs und DRAMs), werden während
und nach der Herstellung umfangreichen Tests unterzogen.
-
Solche
Halbleiter-Bauelemente können mehrere
zehn Millionen Transistoren und ein Softwareprogramm von mehreren
MB Größe enthalten. Insbesondere
können
die Bauelemente (z.B. Mikrocontroller oder Mikroprozessorsysteme)
mindestens eine zentrale Steuer- bzw. Recheneinheit, sogenannte
Central Processing Units bzw. CPU „Cores", aufweisen. Diese können mit mindestens einer Speicher-Einrichtung
zur Speicherung eines Softwareprogramms oder zu verarbeitender Daten,
beispielsweise einem Programm- oder Datenspeicher verbunden sein.
Weiterhin kann das Bauelement weitere Subsysteme enthalten, beispielsweise
um analoge Signale, die an einem Pin eines Bauelements anliegen, zu
erfassen und zu digitalisieren und anschließend als weiter zu verarbeitenden
Wert in den Eingangsdatenspeicher, beispielsweise ein Register,
zu speichern.
-
Tests
mit Bauelementen werden zum einen von den Herstellern durchgeführt, um
defekte Bauelemente erkennen zu können und um gegebenenfalls bei
der Herstellung Prozessparameter zu modifizieren oder zu optimieren,
oder um das auf dem Halbleiter-Bauelement gespeicherte Software
Programm zu prüfen
und zu testen.
-
Zum
anderen testen die Anwender von derartigen Bauelementen diese auf
ihre genaue Funktionalität,
um diese optimal nutzen zu können.
-
Aus
dem Stand der Technik sind mehrere Hard- und Softwaresysteme zur
Simulation und Emulation solcher Halbleiter-Bauelemente bekannt. So existiert beispielsweise
für die
Simulation digitaler Bauelemente die Verilog Hardware-Beschreibungssprache
nach einem IEEE Standard.
-
Die
Verwendung einer Hardware Beschreibungssprache setzt jedoch die
Modellierung des Bauelementes in dem jeweiligen System voraus, welches
für jeden
digitalen Schaltkreis ein entsprechendes Softwaremodul bereitstellt.
Die Modellierung eines Bauelementes, welches eine Fülle von
Funktionen aufweist, ist damit sehr aufwändig.
-
Hersteller
von derartigen Bauelementen simulieren üblicherweise die zu produzierenden
Bauelemente mit Hilfe eines exakten Simulationsmodells, so dass
für jedes
Bauelement ein solches Simulationsmodell – üblicherweise als Computermodell – existiert.
Derartige Simulationsmodelle eines Herstellers werden den Kunden
jedoch nicht zugänglich
gemacht, da die Simulationsmodelle Einzelheiten über den internen Aufbau der
Bauelemente enthalten, die eventuellen Wettbewerbern nicht zugänglich sein
sollen. Außerdem
ist die Simulationsgeschwin digkeit sehr langsam, in etwa ein Millionstel
des Bauelements.
-
Vereinfachte
Simulationsmodelle, die teilweise von den Produzenten oder anderen
Herstellern für Bauelemente
verfügbar
sind, bilden die Bauelemente jedoch häufig nicht mit ausreichender
Genauigkeit nach, so dass diese in vielen Fällen unzureichend sind.
-
Eine
aus dem Stand der Technik bekannte Möglichkeit zum exakten Testen
eines Halbleiter-Bauelementes ist die Einbindung eines tatsächlichen
Bauelements in eine Simulationsumgebung mit Hilfe eines Hardwareadapters,
beispielsweise eines sogenannten Evaluationsboards der Firma Simpod. Der
Hardwareadapter bietet dabei alle Schnittstellen zu dem zu testenden
Bauelement, so dass das Bauelement sowohl mit Versorgungsspannung(en)
und einem Taktsignal beschaltet ist, als auch mit den zu verarbeitenden
Signalen. Die von dem Bauelement zu verarbeitenden Signale werden
dabei an die entsprechenden Pins des Bauelements angelegt. Die von
dem Bauelement generierten Ausgangssignale werden von einem solchen
Hardwareadapter von den entsprechenden Pins des Bauelements abgegriffen
und bereitgestellt, so dass diese in der Simulationsumgebung weiterverarbeitet
und ausgewertet werden können.
-
Eine
derartige Einbindung eines zu testenden Bauelementes in eine Simulationsumgebung weist
jedoch mehrere Nachteile auf. So kann mit einer solchen Simulationsumgebung
zwar das externe simulierte System mit beliebigem Detaillierungsgrad beobachtet
werden. Das Innere des zu testenden Bauelementes kann jedoch nicht
beobachtet werden, da nur die an den Pins des Bauelements anliegenden Signale
erfasst werden können.
Nach außen
stellt sich das Bauelement hingegen als Black Box dar.
-
Weiterhin
muss das Simulationssystem üblicherweise
mit einer Taktrate betrieben werden, die weit unterhalb der möglichen
Taktrate des Bauelements liegt, da anderenfalls die Simulationsumgebung überfordert
wäre.
-
Dies
führt dazu,
dass aufgrund der zunehmenden Komplexität der Bauelemente und deren Geschwindigkeit
ein Testlauf, bei dem alle Eingangs- und Ausgangsdaten über die
dafür vorgesehenen Pins
des Bauelements in dieses eingespielt werden, sehr lange dauert.
-
Schließlich ist
es in vielen Fällen
wünschenswert,
nicht nur die Ergebnisse des Bauelementes zu erhalten, sondern auch
interne Zustände
des Bauelementes zu kennen.
-
Dazu
weisen solche komplexen Bauelemente häufig ein – im IEEE Standard 1149 definiertes – JTAG (Joint
Test Action Group) Modul zur Durchführung eines – standardisierten – Testverfahrens
auf. Bei diesem JTAG Modul werden jeder Eingangs- und jeder Ausgangspin
innerhalb des Bauelements mit einer einfachen Zusatzschaltung, einer
sogenannten Boundary Scan Cell versehen (BSC), versehen, mit denen
ein Zustand an einem Pin gelesen oder gesetzt werden kann. Alle
BSCs sind seriell zu einer Kette verbunden, welche alle Ein- und
Ausgangspins des Bauelements erfasst. Über den Test Access Port (TAP)
können
drei Modi gesteuert werden. Die BSCs können zum einen so geschaltet
werden, dass diese ohne Funktion sind, so als wären sie nicht vorhanden. Zum
anderen kann in einem externen Testmode die hinter den Ein- und
Ausgangspins befindliche interne Logik des Bauelements von den Pins
isoliert werden, so dass über
die BSCs die Zustände
der Eingabe-Pins gelesen und die Zustände für die Ausgabe-Pins geschrieben
werden können.
Die interne Logik des Bauelements wird damit „überbrückt".
-
Schließlich kann
in einem internen Testmode die interne Logik des Bauelements von
den Pins isoliert werden, und es können die Zustände der
Eingabe-Pins geschrieben und die der Ausgabe-Pins gelesen werden.
Damit kann für
die interne Logik des Bauelements eine bestimmte Situation bewirkt
werden, so dass geprüft
werden kann, wie die interne Logik diesen Zustand verarbeitet. Mit
Hilfe dieses JTAG Moduls können
damit Signale an Ein- und Ausgabepins eines Halbleiter-Bauelements
gesetzt und gelesen werden, ohne dass die Signal tatsächlich an
den Pins des Bauelements anliegen.
-
Nachteilig
an dieser Vorgehensweise ist die serielle Verkettung der BSCs. Diese
bedingt, dass beim Lesen oder Schreiben einzelner BSCs alle BSCs
des Bauelements verarbeitet werden müssen, da diese wie ein großes Schieberegister
seriell geschaltet sind, so dass die Geschwindigkeit bei der derartigen
Tests gering ist.
-
Die
Aufgabe der Erfindung besteht darin, ein Bauelement und ein Verfahren
vorzuschlagen, welches eine höhere
Geschwindigkeit bei der Durchführung
von Tests ermöglicht.
-
Die
Erfindung erreicht dieses und andere Ziele durch den Gegenstand
der Ansprüche
1 und 10.
-
Vorteilhafte
Weiterbildungen der Erfindung sind in den Unteransprüchen angegeben.
-
Gemäß einem
Grundgedanken der Erfindung wird ein Verfahren zur Emulation eines
Halbleiter-Bauelements, das mindestens eine zentrale Recheneinheit
zur Verarbeitung von Informationen, einen Eingabe- und einen Ausgabespeicher
zur Speicherung und eine Testschnittstellen-Einrichtung zur Ein-
und Ausgabe von Informationen aufweist, wobei der Eingabe- und der
Ausgabespeicher über
die Testschnittstellen-Einrichtung geschrieben und gelesen werden
können,
vorgeschlagen, mit folgenden Verfahrensschritten:
- a. Überführen des
Halbleiter-Bauelementes in einen ersten Zustand, in dem die Inhalte
des Eingabe- und des Ausgabespeichers durch die zentrale Recheneinheit
nicht verändert
werden;
- b. Lesen der in dem Ausgabespeicher vorliegenden Informationen;
- c. Schreiben von Informationen in den Eingabespeicher;
- d. Überführen des
Bauelementes in einen zweiten Zustand, in dem die zentrale Recheneinheit
auf den Ein- und Ausgabespeicher lesend und schreibend zugreift.
-
In
vorteilhafter Weise kann mit einem solchen Verfahren eine höhere Geschwindigkeit
bei der Durchführung
von Tests erreicht werden, da in dem ersten Zustand die von der
zentralen Recheneinheit zu verarbeitenden Informationen direkt in
den Eingabespeicher geschrieben werden, anschließend verarbeitet und schließlich direkt
aus dem Ausgabespeicher gelesen werden können. Mit dem Verfahren wird vermieden,
dass die Informationen, deren Verarbeitung getestet werden soll,
in einer vergleichsweise langsamen Testumgebung über die Pins in das Halbleiter-Bauelement
gebracht werden. Eine Testumgebung, die ein Anlegen von Signalen
an jeden Eingabepin und ein Auslesen von Signalen von jedem Ausgabepin
des Halbleiter-Bauelements ermöglicht,
ist zur Durchführung
des Verfahrens nicht notwendig.
-
Im
Folgenden wird die Erfindung anhand des in der Zeichnung dargestellten
Ausführungsbeispiels näher erläutert.
-
1 zeigt
ein vereinfachtes Blockschaltbild eines Halbleiter-Bauelements in
einer Testumgebung.
-
1 zeigt
eine schematische Anordnung zum Testen eines TC1796 Mikroprozessors 1,
der auf einem Evaluationsboard 2 angeordnet ist. Das Evaluationsboard 2 (Board)
kann dabei ein aus dem Stand der Technik bekanntes und für Tests
von derartigen Mikroprozessoren übliches
Evaluationsboard sein.
-
Der
Mikroprozessor 1 ist mit seinen Pins in den dafür vorgesehenen
Sockel des Boards 2 eingesteckt. Die Pins des Mikroprozessors 1 lassen
sich in acht Kategorien einteilen.
-
Über die
Pins der Kategorie PCPS 3 wird der Mikroprozessor 1 mit
Spannung versorgt (power supply) und es werden Referenzspannungen
für die
analog/digital Wandler (ADCs) bereitgestellt. Die Pins 3 dieser
Kategorie werden in dem Testaufbau genutzt, um den Mikroprozessor 1 mit
der notwendigen Versorgungsspannung zu versorgen.
-
Die
Pins der Kategorie PCCS (Clock Supply) 4 dienen zur Versorgung
des Mikroprozessors 1 mit einem Taktsignal, so dass der
Mikroprozessor mit der vorgegebenen Taktrate/Geschwindigkeit betrieben wird.
Beispielsweise ist einer der PCCS Pins 4 dazu mit einem
Taktgenerator 5 verbunden, der den Arbeitstakt des Mikroprozessors 1 vorgibt.
-
Die
Gruppe der Pins PCTD 6 sind für Test und Debug Zwecke vorgesehen.
Diese umfassen im vorliegenden Fall die Pins für die JTAG Schnittstelle TAP – Test Access
Port – so
wie diese in der Spezifikation des JTAG Moduls angegeben sind und
sind damit ein Beispiel für
eine Testschnittstelle. Im vorliegenden beispielhaften Testaufbau
ist der Mikroprozessor 1 über diese JTAG Testschnittstelle
mit einem Simulatorrechner 7 verbunden.
-
Die
Pins der Kategorie PCCCH (Closely Coupled Hardware) 8 umfassen
die Pins für
Hardware, mit denen der Mikrokontroller 1 eng verbunden ist.
Ein typisches Beispiel hierfür
ist ein externes Businterface, über
das der Mikroprozessor beispielsweise mit einem externen Speicher,
beispielsweise einem RAM Speicher 9, verbunden ist.
-
Pins
der Kategorie PCCI (Communication Interfaces) 10 sind Kontakte
von Kommunikationsschnittstellen, über die der Mikroprozessor
im Normalbetrieb mit anderen Systemen kommunizieren kann. Ein typisches
Beispiel hierfür
ist ein aus dem Stand der Technik bekanntes CAN Bussystem.
-
Pins
der Kategorien PCAI (Analog Input for ADC) 11 und PCAO
(Analog Output for ADC) 12 dienen zur Verarbeitung analoger
Eingangs- bzw. analoger Ausgangssignale. Im Normalbetrieb liegen
an den PCAI Pins 11 üblicherweise
analoge Signale an, die der Mikroprozessor mit seinen integrierten
analog/digital Wandlern abtastet. Entsprechend werden über die
PCAO Pins 12 analoge Signale beispielsweise für eine Steuerung
bereitgestellt.
-
Schließlich weist
der Mikrocontroller 1 sogenannte PCDFI (Digital Functional
Input) Pins 13, über die
dem Mikrocontroller 1 digitale funktionale Signale zugeleitet
werden, und sogenannte PCDFO (Digital Functional Output) Pins 14 auf, über die
der Mikroprozessor digitale Ausgangssignale für andere, verbundene und hier
nicht dargestellte Systeme bereitstellt.
-
Zur
Durchführung
des erfindungsgemäßen Verfahrens
wird der Mikroprozessor 1 mit Versorgungsspannung und dem
Taktsignal verbunden. Anschließend
ist für
den Test einer bestimmten Funktionalität des Mikroprozessors 1 derjenige
Zustand herbeizuführen,
der der Ausgangszustand sein soll.
-
Der
Mikroprozessor wird dazu in einen Zustand überführt, in welchem dieser die
Inhalte des gesamten Speichers nicht verändert, so dass über mehrere
Speicherstellen, beispielsweise verschiedene Register und/oder Nachrichtenspeicher,
ein konsistenter Zustand herbeigeführt werden kann.
-
In
diesem Zustand werden die für
den beabsichtigen Test notwendigen Information/Daten über die
Testschnittstellen-Einrichtung
an die dafür
vorgesehenen Stellen des Speichers geschrieben. Das Übermitteln
der Informationen/Daten von dem Simulator 7 auf den Mikroprozessor 1 erfolgt
dabei über die
Testschnittstellen-Einrichtung 6. Da diese im normalen
Betrieb, wenn der Mikroprozessor 1 also nicht getestet,
sondern produktiv betrieben wird, nicht verwendet wird, können hierüber alle
Informationen/Daten in die entsprechenden Speicherstellen des Mikroprozessors übertragen
werden.
-
Der
Mikroprozessor 1 ist für
das Herbeiführen
eines bestimmten Zustandes so ausgebildet, dass alle Speicherstellen,
auf die der Mikroprozessor 1 lesend zugreift, über die
Testschnittstellen-Einrichtung 6 geschrieben werden können. Im
Unterschied zu dem durch das JTAG Modul beschriebenen Standard sind
nicht nur alle Ein- und Ausgabepins des Mikroprozessors 1 mit
einer BSC beschaltet, sondern es sind über die Testschnittstellen-Einrichtung 6 Speicherstellen,
insbesondere einzelne Register und Nachrichtenspeicher, direkt schreib- und lesbar. Dies können beispielsweise
auch Register von Analog-Digital-Wandlern sein, in denen der numerische,
digitale Wert für
ein analoges Signal gespeichert wird. Weiterhin können dies
Nachrichtenspeicher sein, in den die Kommunikationsschnittstellen
die von zugeleiteten Nachrichten speichern. Informationen bzw. Daten,
die der Mikroprozessor 1 in einem Test verarbeiten soll,
können
damit direkt an diejenigen Speicherstellen geschrieben werden, von
denen die Informationen gelesen werden.
-
Falls
der Mikroprozessor 1 über
Pins der Kategorie PCCCH beispielsweise über ein Bussystem mit RAM Speicher
verbunden ist, so wird diese Verbindung – im Unterschied zu Verbindungen über andere
funktionale Pins – zugelassen
und bleibt unberührt,
so dass der Mikroprozessor 1 auf diesen Speicher uneingeschränkt zugreifen
kann. Er wird damit so behandelt, als gehöre er zu dem Mikroprozessor 1.
-
Informationen/Daten,
die der Mikroprozessor 1 von Kommunikationsschnittstellen
lesen soll und die folglich über
Pins der Kategorie PCCI dem Mikroprozessor 1 zugeleitet
werden, werden nun als bereits vorliegendes Paket bzw. vollständige Nachricht an
den Mikroprozessor 1 in den entsprechenden Registern bzw.
Nachrichtenspeichern der Kommunikationsschnittstellen bereitgestellt.
Die Erfahrung hat gezeigt, dass an den Kommunikationsschnittstellen
die Frequenz der Ereignisse eine Größenordnung von maximal 100
kHz erreicht und damit um drei Größenordnungen kleiner als die
Taktfrequenz des Mikroprozessors 1 ist, so dass im Umkehrschluss
der Mikroprozessor 1 ca. 1000 Rechentakte arbeiten kann, ohne
dass ein neues Ereignis an einer Kommunikationsschnittstelle zu
erwarten ist.
-
Die
Bereitstellung von Informationen, die der Mikroprozessor im normalen
Betriebsmodus aus analogen Signalen und über die Pins der Kategorie PCAI 11 mit
Hilfe der Analog-Digital-Wandler
ermittelt, erfolgt durch direktes Schreiben der den analogen Signalen
entsprechenden digitalen, numerischen Werte in die entsprechenden
Register der Analog-Digital-Wandler. Die Analog-Digital-Wandler befinden
sich damit in einem passiven Zustand und die Funktionalität der Analog-Digital-Wandler, also die
Wandlung der an den entsprechenden Pins anliegenden analogen Signale
in digitale Daten, wird somit nicht genutzt.
-
Die
Abtastung analoger Signale an den Pins der Kategorie PCAI 11 durch
den Mikroprozessor kann zwar mit einer Abtastfrequenz von mehr als
100 kHz stattfinden, jedoch wird diese hohe Frequenz häufig nur
benötigt,
um das Signal anschließend
digital mittels eines Tiefpasses filtern zu können. Der Effekt, z.B. Rauschen,
der durch das Filtern entfernt werden soll, tritt jedoch nicht auf,
wenn die den analogen Signalen entsprechenden numerischen Werte direkt
in die Register der Analog-Digital-Wandler geschrieben werden. Somit
lässt sich
auch hier in sehr vielen Fällen
eine Ereignisfrequenz erreichen, die in der Größenordnung von 100 kHz liegt.
-
Ebenso
werden analoge Ausgangssignale, die von dem Mikroprozessor 1 in
digitaler Form an die Analog-Digital-Wandler geleitet werden direkt
aus den Registern gelesen, in die die digitalen Werte hineingeschrieben
werden und aus denen die Analog-Digital-Wandler diese lesen. Auch
hier wird folglich die Funktionalität der Analog-Digital-Wandler nicht
genutzt.
-
Ebenso
können
Nachrichten, die von dem Mikroprozessor 1 in einen der
Nachrichtenspeicher einer Kommunikationsschnittstelle geschrieben
wurden, direkt von der Testschnittstelle gelesen werden, sodass
diese nicht über
die Kommunikationsschnittstellen mitgeteilt werden.
-
Digitale
funktionale Ein- und Ausgangssignale, die an den Pins der Kategorie
PCDFI 13 bzw. PCDFO 14 anliegen, können in
Abhängigkeit
des Systems unterabgetastet werden. Erfahrungsgemäß reicht
bei mechanischen Systemen eine Abtastfrequenz von 100 kHz aus, dies
entspricht einer Winkelauflösung
von 0,3° bei
6000 Umdrehungen pro Minute eines Verbrennungsmotors. Wird der Mikrocontroller 1 beispielsweise
mit einer Taktfrequenz von 150 MHz betrieben, so ergibt sich eine
im Vergleich zur Taktfrequenz des Mikroprozessors 1 um
den Faktor 1500 geringere Ereignisfrequenz bei den digitalen funktionalen
Ein- und Ausgangssignalen. Dementsprechend kann für den Test
des Mikrocontrollers 1 angenommen werden, dass dieser ca.
1500 Arbeitstakte rechnen kann, bevor erfahrungsgemäß ein neues
Ereignis an den Pins der Kategorien PCDFI 13 bzw. PCDFI 14 anliegt.
-
Der
Mikroprozessor 1 kann anschließend für eine bestimmte Anzahl von
Takten betrieben werden, sodass dieser den Zustand verarbeitet,
der durch das Beschreiben des Eingangsspeichers, der Register und
Nachrichtenspeicher herbeigeführt
wurde. Anschließend,
wenn der Mikroprozessor die vorbestimmte Anzahl von Takten gearbeitet
hat und dann anschließend „angehalten" wurde, werden die
bis dahin von dem Mikroprozessor 1 in den Ausgabespeicher,
die Register und Nachrichtenspeicher geschriebenen Informationen
wieder gelesen. Der Mikroprozessor 1 kann so in einer Schleife
betrieben werden, in der die Schritte zyklisch wiederholt werden,
um so verschiedene Szenarien testen zu können.
-
Ebenso
wie der Betrieb des Mikroprozessors 1 für eine bestimmte Anzahl von
Taktzyklen, in denen Informationen verarbeitet werden, kann der
Mikroprozessor auch für
eine bestimmte Zeitspanne betrieben werden. Dies kann beispielsweise über einen in
dem Mikroprozessor 1 enthaltenen Timer konfiguriert werden.
Allerdings gilt hierbei, dass der Betrieb des Mikroprozessors bei
gegebener Taktfrequenz äquivalent
zum Betrieb des Mikroprozessors 1 für eine vorgegebene Anzahl von
Taktzyklen ist.
-
Das
Verfahren ermöglicht
damit eine Kopplung des Simulators bzw. des Simulatorrechners 7 mit
dem zu testenden Mikroprozessor 1 mit einer Ereignisfrequenz,
die um zwei bis drei Größenordnungen
geringer ist als die Taktfrequenz der Mikroprozessors 1.
Die damit erreichbare Simulationsgeschwindigkeit liegt jedoch deutlich über derjenigen, die
bei einer herkömmlichen
Kopplung möglich
ist, bei der die Signale über
die Pins des Mikroprozessors 1 an diesen geleitet und von
diesem gelesen und vorverarbeitet werden, bevor die zentrale Recheneinheit
diesen verarbeitet. Weiterhin gehen die Anforderungen hinsichtlich
der Datenaustauschgeschwindigkeit zwischen Simulator/Simulatorrechner 7 und
dem Mikroprozessor zurück.
-
- 1
- Mikroprozessor
TC1796
- 2
- Evaluationsboard
- 3
- PCPS
Pins
- 4
- PCCS
Pins
- 5
- Taktgenerator
- 6
- PCTD
Pins
- 7
- Simulatorrechner
- 8
- PCCH
Pins
- 9
- RAM
Speicher
- 10
- PCCI
Pins
- 11
- PCAI
Pins
- 12
- PCAO
Pins
- 13
- PCDFI
Pins
- 14
- PCDFO
Pins