-
Die zugrunde liegende Erfindung basiert
auf einem Verfahren und einer Steuereinheit zur Programmierung eines
Speicherbausteins durch Stimulierung einzelner seiner Steuersignal-,
Daten- und/oder Adresseingänge über interne
Speicherzellen eines sogenannten Boundary Scan (BSCAN)-Registers,
welches als integrierte Schaltung (IC bzw. ASIC) realisiert ist.
Zur Aktivierung bzw. Deaktivierung einer Schreiboperation wird dabei
ausschließlich
der für
die Generierung eines WRITE_EN-ABLE-Signals
zuständige
Steuersignaleingang des Speicherbaussteins angesteuert.
-
Boundary Scan (BSCAN) ist ein von
der Joint Test Access Group (JTAG), einem 1988 ins Leben gerufenen
Konsortium von mehr als 200 Unternehmen aus den Bereichen Halbleitertechnik,
Prüftechnik
und Systemintegration, standardisiertes Verfahren für Boardtests,
das 1990 formell als Industriestandard IEEE 1149.1 für Test Access
Port (TAP)- und Boundary Scan (BSCAN)-Architekturen verabschiedet wurde. Auf
dieser Spezifikation basieren alle Verbindungstests auf Boardebene
in der Produktion von komplexen Printed Circuit Boards (PCBs). Besitzt
der Prüfling
einen eigenen Mikroprozessor nebst Flash-basiertem Programmspeicher, kann
ein Built-In Self Test beispielsweise durch Laden des Flash-Speichers
via Boundary Scan mit Hilfe eines Selbsttestprogramms implementiert
werden. Im Speicher abgelegte Testresultate sind nach Beendigung
des Testvorganges wiederum per Boundary Scan auslesbar.
-
IEEE 1149.1 verdrängt heute zunehmend herkömmliche
In-Circuit Test (ICT)-Verfahren, da die Komplexität der zu
testenden integrierten Halbleiterbauelemente (ASICs und FPGAs) steigt
und demzufolge die Zugriffsmöglichkeit
auf diese Komponenten zu Prüfzwecken
durch Anbringung zusätzlicher
Anschlussflächen (engl.: „Test Pads") am Prüfling sich
immer schwieriger gestaltet. So konnte bei Mikrochips in den letzten
Jahrzehnten ein exponentieller Anstieg der Zahl der Anschlusspins
bei immer kleiner werdendem Durchmesser beobachtet werden. Dieser
Trend wurde durch die Einführung
der Ball Grid Array (BGA)-Technologie,
welche die Verlagerung der Anschlusspins auf die Chipunterseite
mit sich brachte, noch weiter beschleunigt. Die Lösung bestand
darin, herkömmliche
Tests an Mikrochips, wie z.B. Unterbrechungs- oder Kurzschlusstests,
in die Chips selbst zu integrieren und einen als „Boundary" bezeichneten Pfad
zum Abtasten („Scannen") der digitalen Information
einzuplanen. Flexible Plattformen nach dem Peripheral Component
Interconnect (PCI)- oder PCI Extensions for Instrumentation (PXI)-Standard
gestatten heute die Erkennung von BSCAN-Controllern und BSCAN-Software sowie
deren Integration in die jeweilige PCI- bzw. PXI-Plattform. Dadurch
wird die Entwicklung komplexer Lösungen
ermöglicht,
die herkömmliche
Funktionstests und BSCAN-basierte Tests in einer universellen Prüfplattform
vereinen.
-
Zur Durchführung von Boundary Scan-Tests
müssen
zwei Bedingungen erfüllt
sein: Zumindest einige der integrierten Schaltungen (ICs) auf der
Platine müssen
der Boundary Scan-Spezifikation
entsprechen. Bei der Prüfung
wird dann mit Hilfe von Testvektoren ein BSCAN-Register dazu veranlasst,
den gewünschten
Test auszuführen.
Darüber
hinaus müssen
die Produktentwickler einen Scanpfad zwischen den einzelnen ICs
zur Verfügung
stellen, der von einem Test Access Port (TAP) durch die ICs hindurch
wieder zurück
zum TAP führt, wo
die Daten schließlich
abgetastet werden. Beim Prüfen
von elektrischen Anschlüssen
stellen Boundary Scan-Tests eine ausgezeichnete Alternative zu In-Circuit-Tests
(ICTs) dar. Die Kosten für
die Durchführung
der Funktionsprüfung
sind niedrig, und aufgrund der zunehmenden Integration und Miniaturisierung
von Geräten ist
anzunehmen, dass sich der Trend hin zu Boundary Scan weiter fortsetzen
wird.
-
Wurde das Boundary Scan-Verfahren
gemäß IEEE 1149.1
bisher vor allem als innovative Technologie zur Funktionsprüfung integrierter
Schaltungen bzw. zur Verifikation und Simulation von Hardwarefehlfunktionen
verwendet, zeigen die jüngsten
Entwicklungen weitere Einsatzmöglichkeiten
dieses Prinzips auf. Neben der Nutzung zu Testzwecken wird Boundary
Scan auch sehr effektiv für
die In-System-Programmierung von Flash-Speichern sowie Programmable Logic Device
(PLD)-Bausteinen, wie z.B. Field Programmable Gate Arrays (FPGAs)
mit bis zu 10.000 Logik-Gattern pro Array oder Programmable Logic
Arrays (PLAs), eingesetzt. Dabei werden die einzelnen Steuer- und
Adress-Eingänge
eines Flash-Speichers über
die diesen Eingängen zugeordneten,
miteinander verketteten BSCAN-Zellen eines BSCAN-Registers derart
stimuliert, dass wahlweise eine Lese- oder Schreiboperation ausgelöst wird.
Wie aus der in 1 abgebildeten
Prinzipskizze zu entnehmen ist, können die Daten dabei von den
entsprechenden BSCAN-Zellen ausgegeben oder erfasst werden.
-
3 gibt
Aufschluss über
die erforderlichen Schritte, die über den TAP-Controller bei
einer Schreib- oder Programmier-Operation
ausgelöst
werden müssen.
In einem ersten Schritt werden die Adressen, Daten und ein Chip
Select (CS)-Signal ausgegeben. Danach wird das WRITE-Signal in einem
zweiten Schritt aktiviert, wobei sich an den anderen Signalen nichts ändert. Schließlich wird
in einem dritten Schritt das WRITE-Signal ohne Änderung der restlichen Signale
deaktiviert.
-
Das Problem ist, dass durch dieses
Verfahren die Programmierung sehr zeitaufwendig wird, da für eine Schreiboperation
drei Zyklen des gesamten BSCAN-Registers erforderlich sind.
-
Herkömmliche Verfahren nach dem
Stand der Technik lösen
dieses Problem entweder durch eine Verkürzung der BSCAN-Kette oder
durch direktes Ansteuern des WRITE-Eingangs:
- a)
Da die Programmierzeit von der Länge
der BSCAN-Kette abhängt,
kann im ersteren Fall die Programmierung beschleunigt werden, indem
man die Kette auf die für
die Flash-Programmierung
erforderlichen BSCAN-Zellen reduziert und mit einer eigenen Instruktion
(SHORTEX) anstelle der üblichen
Instruktion (EXTEST) aktiviert. Ein derartiges Verfahren ist im
Wesentlichen aus der DE
198 33 970 A1 bekannt.
- b) Im letzteren Fall kann mit Hilfe eines zusätzlichen
Signals, das über
den im IEEE 1149.1 Standard definierten TAP-Controller hinausgeht,
der Flash-Speicher direkt stimuliert werden. Voraussetzung ist,
dass das Test- oder Programmier-Equipment die Ansteuerung eines
zusätzlichen
Signals unterstützt
und ein zusätzlicher
Pin auf der Baugruppe für
diese als Steckverbindung ausgebildete Schnittstelle vorgeleistet
wird.
-
Ausgehend von dem oben genannten
Stand der Technik, widmet sich die vorliegende Erfindung der Aufgabe,
ein Verfahren zur Programmierung eines Speicherbausteins durch Stimulierung einzelner
seiner Steuersignal- und/oder Adresseingänge über Speicherzellen eines BSCAN-Registers
zwecks Generierung eines WRITE_ENABLE-Signals zur Aktivierung bzw.
Deaktivierung einer Schreiboperation bereitzustellen, mit dessen
Hilfe die für
die Programmierung des Speicherbausteins benötigte Zeitdauer entscheidend
verkürzt werden
kann.
-
Diese Aufgabe wird erfindungsgemäß durch
die Merkmale der unabhängigen
Patentansprüche
gelöst. Vorteilhafte
Ausführungsbeispiele,
die den Gedanken der Erfindung weiterbilden, sind in den abhängigen Patentansprüchen definiert.
-
ZUSAMMENFASSENDE
DARSTELLUNG DER VORLIEGENDEN ERFINDUNG
-
Im Rahmen der erfindungsgemäßen Lösung ist – entsprechend
der im vorangehenden Abschnitt definierten Aufgabe – ein Verfahren
sowie eine Steuereinheit zur Programmierung eines Speicherbausteins durch
Stimulierung einzelner seiner Steuersignal-, Daten- und/oder Adresseingänge über interne
Speicherzellen eines Boundary Scan (BSCAN)-Registers vorgesehen,
welches als anwendungsspezifische integrierte Schaltung (RSIC) realisiert
ist. Zur Aktivierung bzw. Deaktivierung einer Schreiboperation wird
dabei ausschließlich
der für
die Generierung eines WRITE_ENABLE-Signals zuständige Steuersignaleingang des Speicherbaussteins
angesteuert.
-
Durch eine Modifikation des TAP-Controllers
sowie der BSCAN-Zelle,
die das WRITE_ENABLE-Signal am WR-Eingang des Flash-Speichers stimuliert,
kann die Flash-Programmierung wesentlich beschleunigt werden, ohne
dabei die TAP-Schnittstelle auf Board- und Equipment-Ebene erweitern
zu müssen.
-
Weitere Eigenschaften, Merkmale,
Vorteile und Anwendungen der zugrunde liegenden Erfindung resultieren
aus den untergeordneten abhängigen
Patentansprüchen
sowie aus der folgenden Beschreibung zweier Ausführungsbeispiele der Erfindung,
welche in 2, 4 und 5 abgebildet sind. Dabei zeigen
-
1 die
Prinzipskizze einer Schaltungsanordnung zur Durchführung eines
Boundary Scan (BSCAN)-Verfahrens zwecks Programmierung eines programmierbaren
Flash-EPROMs nach
dem Stand der Technik,
-
2 eine
erweiterte Prinzipskizze der Schaltungsanordnung zur Durchführung eines
BSCAN-Verfahrens zwecks Programmierung eines programmierbaren Flash-EPROMs
nach dem Stand der Technik mit Hilfe eines Test Access Port (TAP)-Controllers,
-
3 die
Instruktionssequenz einer FLASH WRITE-Operation zur Programmierung
eines programmierbaren Flash-EPROMs
mit Hilfe eines BSCAN-Registers ohne Zeiteinsparung nach dem Stand
der Technik,
-
4 eine
erste Variante der Instruktionssequenz einer FLASH WRITE-Operation
zur Programmierung eines programmierbaren Flash-EPROMs mit Hilfe
eines BSCAN-Registers
mit Zeiteinsparung durch Zugriff über zwei spezielle Instruktionen
gemäß der zugrunde
liegenden Erfindung und
-
5 eine
zweite Variante der Instruktionssequenz einer FLASH WRITE-Operation
zur Programmierung eines pro grammierbaren Flash-EPROMs mit Hilfe
eines BSCAN-Registers
mit Zeiteinsparung durch Zugriff über ein festes (ggf. programmierbares)
Timing des TAP-Controllers
gemäß der zugrunde
liegenden Erfindung.
-
DETAILLIERTE
BESCHREIBUNG DER ERFINDUNG
-
Im Folgenden soll die Idee der erfindungsgemäßen Lösung anhand
der in 2, 4 und 5 abgebildeten Ausführungsbeispiele näher erläutert werden.
Die Bedeutung der mit Bezugszeichen versehenen Symbole in 1 bis 4 kann der beigefügten Bezugszeichenliste entnommen
werden.
-
Im Rahmen der vorliegenden Erfindung
ist eine Modifikation des TAP-Controllers 106 und der BSCAN-Zelle 103,
welche das WRITE_ENABLE-Signal 301d des Flash-Speichers 104 stimuliert,
vorgesehen, wodurch die Flash-Programmierung wesentlich beschleunigt
werden kann, ohne dass dazu eine Erweiterung der Schnittstelle zwischen
TAP-Controller 106 und BSCAN-Register 102 auf
Board- und Equipment-Ebene nötig
wird. Die Implementierung geschieht stattdessen im BSCAN-Register 102.
Dazu gibt es zwei Möglichkeiten, die
im Folgendem näher
beschrieben werden sollen.
-
(a) Generierung des WRITE-Impulses über zwei
Instruktionen
-
Damit nicht bei jeder Schreiboperation
das komplette BSCAN-Register 102 erneut
geladen werden muss, um die BSCAN-Zelle 103, die das WRITE_ENABLE-Signal 301d des
Flash-Speichers 104 stimuliert, auf das gewünschte Potenzial
zu bringen, wird die betreffende BSCAN-Zelle 103 über zwei
spezielle JTAG-Instruktionen 306 und 308 gesteuert.
Die Instruktion „WR_L" sorgt für ein „LOW"-Potenzial, die Instruktion „WR_H" für ein „HIGH"-Potenzial an der
betreffenden BSCAN-Zelle 103. Eine erweiterte Prinzipskizze
der Schaltungsanordnung zur Durchführung eines BSCAN-Verfahrens
nach diesem Ausführungsbeispiel
der vorliegenden Erfindung ist in 2 dargestellt.
-
Im TAP-Contoller 106 wird
aus diesen beiden Instruktionen 306 bzw. 308 jeweils
ein SET_WR- bzw. CLEAR_WR-Impuls generiert, der das Update-Flipflop 108 der
für die
Erzeugung des WRITE_ ENABLE-Signals 301d zuständigen BSCAN-Zelle 103 entweder
setzt oder rücksetzt.
Beide Instruktionen sind jeweils mit bspw. 4 oder 8 Bit kodiert,
so dass gegenüber
herkömmlichen
Lösungen
nach dem Stand der Technik, bei denen zur Auslösung einer Schreiboperation
jeweils das komplette BSCAN-Register 102 neu geladen werden muss,
ein deutlicher Geschwindigkeitsvorteil besteht. Das BSCAN-Register 102 umfasst
auch bei verkürzter Länge noch
etwa 60 Bit.
-
In
4 ist
eine erste Variante für
die Instruktionssequenz
400 einer FLASH WRITE-Operation
zur Programmierung eines programmierbaren Flash-EPROMs über ein
BSCAN-Register mit Zeiteinsparung durch Zugriff über zwei spezielle Instruktionen
dargestellt. Nachdem die Adressen, Daten und das Chip-Select (CS) ausgegeben
wurden (ca. 60 Bit) sind nur drei weitere Instruktionen – „WR_L", „WR_H" und „SHORTEX" – mit jeweils 4 Bit erforderlich.
Wenn man die für
die Zustandsübergänge des
WRITE-ENABLE-Signals
301d verantwortlichen Takte außer Acht
lässt,
ergibt sich ein Verhältnis
von
wobei
[Bit]
die Gesamtlänge
der Instruktionssequenz bei Anwendung herkömmlicher BSCAN-Verfahren nach dem
Stand der Technik bezeichnet,
[Bit]
die Gesamtlänge
der Instruktionssequenz bei Anwendung des in Abschnitt (a) beschrieben
ersten Ausführungsbeispiels
der Erfindung,
[ns]
die Gesamtdauer eines FLASH WRITE-Zyklus bei Anwendung herkömmlicher
BSCAN-Verfahren nach dem Stand der Technik und
[ns]
die Gesamtdauer eines FLASH WRITE-Zyklus bei Anwendung des in Abschnitt
(a) beschrieben ersten Ausführungsbeispiels
der Erfindung.
-
Das bedeutet, dass bei diesem ersten
Ausführungsbeispiel
des erfindungsgemäßen Verfahrens
gegenüber
dem in 3 dargestellten
Programmierverfahren nach dem Stand der Technik eine Verkürzung der Programmierzeit
um 60 % erzielbar ist.
-
Ein weiterer Vorteil, der sich aus
dieser Lösung
ergibt, besteht darin, dass die „HIGH"- bzw. „LOW"-Pegelwerte des WRITE_ENABLE-Signals 301d in
einer beliebigen zeitlichen Abfolge generiert werden können, wobei
diese Reihenfolge durch die Instruktionen 306 und 308 steuerbar
ist.
-
(b) Automatische Generierung
des WRITE-Impulses
-
Damit nicht immer das komplette BSCAN-Register 102 erneut
geladen werden muss, um die BSCAN-Zelle 103, welche das
WRITE-ENABLE-Signal 301d des
Flash-Speichers 104 stimuliert, auf das gewünschte Potenzial
zu bringen, wird die betreffende BSCAN-Zelle 103 während dem
Anlegen der Adressen, Daten und des Chip Select (CS)-Signals am
BSCAN-Register 102 durch den TAP-Controller 106 automatisch so
angesteuert, dass ein WRITE-Impuls zu einem geeigneten Zeitpunkt
generiert wird.
-
In 5 ist
eine zweite Variante für
die Instruktionssequenz 500 einer FLASH WRITE-Operation
zur Programmierung eines programmierbaren Flash-EPROMs 104 über ein
BSCAN-Register 102 mit Zeiteinsparung durch Zugriff über ein
festes Timing des TAP-Controllers 106 dargestellt.
-
Dieses Timing des TAP-Controllers
kann ggf. über
weitere Register programmierbar sein, die über weitere Instruktionen geladen
werden können.
-
Der TAP-Controller 106 generiert
automatisch jeweils einen SET_WR- bzw. CLEAR_WR-Impuls, der das
Update-Flipflop 108 der BSCAN-Zelle 103 entweder
setzt oder rücksetzt.
Da das automatische Generieren nicht bei jeder BSCRN-Instruktion
EXTEST oder SHORTEX erfolgen darf, ist entweder ein eigener Befehl (EXFLASH)
einzuführen,
oder man gibt vor der EXTEST-Instruktion mit einer zusätzlichen
Instruktion („WR_ON") dem TAP-Controller 106 bekannt,
dass ein WRITE-Impuls automatisch zu generieren ist. Diese Funktion
kann erfindungsgemäß mit Hilfe
einer weiteren Instruktion („WR_OFF") rückgesetzt
werden.
-
Die Dauer des WRITE-Impulses kann
auch mittels eines zusätzlich über die
TAP-Schnittstelle programmierbaren Datenregisters eingestellt werden.
5 zeigt den zeitlichen Ablauf.
Dabei wird deutlich, dass nur eine JTAG-Instruktion (EXFLASH) erforderlich
ist. Wenn man die für
die Zustandsübergänge des
WRITE-ENABLE-Signals
301d verantwortlichen Takte außer Acht
lässt,
ergibt sich ein Verhältnis
von
wobei
[Bit]
die Gesamtlänge
der Instruktionssequenz bei Anwendung herkömmlicher BSCAN-Verfahren nach dem
Stand der Technik bezeichnet
[Bit]
die Gesamtlänge
der Instruktionssequenz bei Anwendung des in Abschnitt (b) beschriebenen
zweiten Ausführungsbeispiels
der Erfindung,
[ns]
die Gesamtdauer eines FLASH WRITE-Zyklus bei Anwendung herkömmlicher
BSCAN-Verfahren nach dem Stand der Technik und
[ns]
die Gesamtdauer eines FLASH WRITE-Zyklus bei Anwendung des in Abschnitt
(b) beschrieben zweiten Ausführungsbeispiels
der Erfindung.
-
Das bedeutet, dass bei diesem zweiten
Ausführungsbeispiel
des erfindungsgemäßen Verfahrens
gegenüber
dem in 3 dargestellten
Programmierverfahren nach dem Stand der Technik eine Verkürzung der Programmierzeit
um etwa 66,7 % erzielbar ist, da nur das Laden (SHIFT-DR) eines
kombinierten Adress- und Datenblocks der Größe von 60 Bit zum erforderlich
ist.