-
Die
Erfindung betrifft ein Verfahren zum simultanen Verarbeiten funktionaler
Daten und Testdaten in einer Baugruppe
-
Viele
elektronische Baugruppen, beispielsweise Speicherzellen oder integrierte
Schaltungen, sind regelmässig
Selbsttests zu unterziehen. Diese werden in der Regel unmittelbar
nach der Inbetriebnahme einer Baugruppe durch Aktivierung eines BIST
(Built in Self Test) der logischen Schaltkreise durchgeführt. Dadurch
wird die Einschaltzeit verlängert,
da während
dieser Zeit kein funktionaler Normalbetrieb der Baugruppen möglich ist,
was oft als störend
empfunden wird. Um nach einer gewissen Betriebszeit einen weiteren
Selbsttest durchzuführen,
müssen
die Baugruppen ausser Betrieb genommen werden.
-
Handelt
es sich dabei um Baugruppen in sicherheitsrelevanten und/oder in
Systemen mit hoher Verfügbarkeitsanforderung,
so muss während
dieser Zeit eine Ersatzbaugruppe die Funktion der gerade im Selbsttest
befindlichen Baugruppe übernehmen. Teilweise
werden zur Lösung
dieses Problems redundante Systeme eingesetzt, die sich gegenseitig überwachen,
was sehr aufwendig ist. Andererseits können zwei identische Systeme
den Betrieb übernehmen,
deren Ausgänge
dauernd verglichen werden. Diese Variante kann die fehlerhafte Komponente
allerdings nicht identifizieren.
-
DE 19948902 C1 beschreibt
eine Schaltungszelle zur Datenspeicherung, Testmuster-Generierung
und Testmuster-Kompression von Schaltungen mit eingebauter Selbsttestfunktion.
Diese Schaltungszelle besitzt eine Testdaten-Koppelschaltung, welche
aufweist.
- – einen
Testdateneingang zum Empfangen eines Testdateneingangsignals von
einer vorgeschalteten Schaltungszelle, das in einem Testdaten-Zwischenspeicher
speicherbar ist,
- – einen
Dateneingang zum Anlegen eines Dateneingangsignals, das in einem
Daten-Zwischenspeicher speicherbar ist,
- – einen
Testdatenausgang zur Abgabe des zwischengespeicherten Testdatensignals
und einen Datenausgang zur Abgabe des zwischengespeicherten Testdatensignals
und einen Datenausgang zur Abgabe des zwischengespeicherten Datensignals
der Schaltungszelle.
-
DE 19950838 C2 schlägt eine
Vorrichtung zur Beschleunigung der Fehleranalyse digitaler Logikschaltungen
mit einer Mehrzahl interner Schaltungsknoten vor. Dabei ist dem
internen Schaltungsknoten ein internes Nutzregister zugeordnet,
wobei die Verschaltung dieser Register mit den Multiplexern und
den Gattern derart ausgeführt
ist, dass eine normale Funktion des Nutzregisters oder ein Aktualisieren
des Inhalts des Nutzregisters über
das Schattenregister möglich
ist.
-
DE 10136714 C1 beschreibt
eine integrierte Digitalschaltung mit einem Schaltblock, der im
Normalbetriebsmodus mit einem hohen Arbeitstakt betrieben wird.
Während
des Normalbetriebs wird das Ausgangssignal des Schaltblocks von
einer Überprüfungseinheit
auf Fehlerfreiheit geprüft.
-
Aus
FÄRBER,
G.: Prozessrechentechnik. Berlin [u.a.]: Springer-Verlag, 1979, Seiten
140-142. ISBN 3-540-09263-3 ist bekannt, dass die Verfügbarkeit
von sicherheitsrelevanten Systemen gesteigert werden kann durch
Verwendung von Doppelrechnersystemen, wobei hierzu verschiedene
Möglichkeiten bestehen.
-
Der
Erfindung liegt daher die Aufgabe zugrunde, ein Verfahren anzugeben,
bei dem die Funktionalität
von integrierten Schaltungen während
des Betriebs überprüft werden
kann ohne dabei den Normalbetrieb unterbrechen zu müssen.
-
Diese
Aufgabe wird erfindungsgemäss
dadurch gelöst,
dass ein Verfahren zum simultanen Verarbeiten funktionaler Daten
und Testdaten in einer Baugruppe mit zwei parallelen, je einen Speicher
umfassenden Pfaden (A, B), wobei alternierend funktionale Daten
und Testdaten in den beiden Speichern gespeichert werden, angewendet
wird, bei dem in einer ersten Takthälfte im ersten Pfad (A) funktionale Daten
verarbeitet werden, während
im zweiten Pfad (B) Testdaten gehalten werden und in der zweiten Takthälfte im
ersten Pfad (A) die funktionalen Daten gehalten werden und im zweiten
Pfad (B) die Testdaten verarbeitet werden.
-
Auf
diese Weise ist es möglich,
dass die kombinatorische Logik zwar in sequentieller Abfolge Testdaten
und funktionale Daten verarbeitet, aber in der Wirkung nach aussen
eine quasi parallele Verarbeitung von Testdaten und funktionalen
Daten resultiert, sodass eine unterbrechungsfreie Verarbeitung der
funktionalen Daten auch bei Funktionstest der entsprechenden Baugruppe
gewährleistet
ist.
-
In
Ausgestaltung der Erfindung können
in einer ersten Phase alle Baugruppen zu einem Schieberegister verkettet
und mit einem Zufallswert vorgeladen werden, in einer zweiten Phase
für einen
Takt vom Schieberegister in den Normalbetrieb umgeschaltet wird
und die Ausgänge
der funktionalen Logik, die mit den Zufallswerten stimuliert wurde,
in die Baugruppen übernommen
werden, und in der dritten Phase die Baugruppen wieder zu einem
Schieberegister verkettet werden, der Ausgang zu einer Signatur
komprimiert wird, während
der Eingang der Kette wieder mit Zufallswerten stimuliert wird.
-
Die
Grundidee des erfindungsgemässen Verfahrens
zum simultanen Verarbeiten funktionaler Daten und Testdaten in einer
Baugruppe verwendet zusätzlich
zum erforderlichen Zustandsspeicher einen zweiten, identischen Zustandsspeicher.
Diese beiden Zu standsspeicher sind derart auf einer Speicherzelle
angeordnet und miteinander verknüpft, dass
Testdaten und funktionale Daten abwechselnd in den beiden Zustandsspeichern
verarbeitet werden.
-
Weitere
vorteilhafte Ausgestaltungen der Erfindung sind in den übrigen Unteransprüchen angegeben.
-
Ausführungsbeispiele
der Erfindung werden anhand einer Zeichnung näher erläutert. Dabei zeigen:
-
1 eine
schematische Darstellung als Beschreibung der rein kombinatorischen
Logikfunktion zwischen zwei Zustandsspeichern nach dem Stand der
Technik (a) und gemäss
der Erfindung (b);
-
2 eine
schematische Darstellung als Beschreibung der erfindungsgemässen Logikfunktion;
-
3 eine
schematische Darstellung von Speicherelementen nach dem Stand der
Technik (a) und gemäss
der vorliegenden Erfindung;
-
4 eine
schematische Darstellung eines erfindungsgemässen Speicherelementes mit
Angaben der softwareseitigen Logikfunktionen;
-
5 eine
Darstellung von Funktionswerten bei verschiedenen Parametern;
-
6 eine
Darstellung von Verknüpfungen verschiedener
Speicherelemente;
-
7 eine
weitere Darstellung von Funktionswerten bei verschiedenen Parametern;
und
-
8 eine
Darstellung einer Speicherzelle mit optimierter Laufzeitersparnis.
-
1 zeigt
eine schematische Darstellung als Beschreibung der rein kombinatorischen
Logikfunktion zwischen zwei Zustandsspeichern (synchrones Design)
durch eine Logikfunktion. Nach dem Stand der Technik werden gemäss 1a (synchrones Design) in jedem Takt funktionale
Daten verarbeitet. Für
die Bearbeitung von Testdaten muss die Verarbeitung der funktionalen
Daten komplett unterbrochen werden. Wie in 1b dargestellt,
können
in dem nach der vorliegenden Erfindung arbeitenden Verfahren abwechselnd
funktionale Daten und Testdaten verarbeitet werden, weil parallel
funktionale Daten und Testdaten in Zustandsspeichern gehalten werden
können.
-
Zu
diesem Zweck werden die Zustandsspeicher (Flipflops) zweifach ausgeführt in zwei
parallelen Pfaden A und B, dargestellt in 2. Während in der
ersten Takthälfte
im Pfad A die funktionalen Daten verarbeitet werden (Data), werden
im Pfad B die Testdaten gehalten (HoldB). In der zweiten Takthälfte verarbeitet
die kombinatorische Logik dann die Testdaten im Pfad B (BIST), während im
Pfad A die funktionalen Daten gehalten werden (HoldD). Im nächsten Zyklus
tauschen A und B ihre Funktionalität.
-
In
einem der beiden Flipflops werden demnach die funktionalen Daten,
im anderen die Testdaten eines Zustandsspeichers (BIST) verarbeitet,
wobei sich die beiden Flipflops in ihrer Funktionalität abwechseln.
Somit verarbeitet die kombinatorische Logik zwischen den Zustandsspeichern
jeweils abwechselnd die funktionalen Daten und die Testdaten in
den beiden Verarbeitungsschritten des Systemtakts.
-
In
der 2 ist der Takteingang mit CP bezeichnet. Ein Zyklus
besteht im erfindungsgemässen Verfahren
aus der doppelten Taktfrequenz im Vergleich zum Stand der Technik,
sodass am Ausgang die gleiche Menge funktionaler Daten, zusätzlich aber
auch die Testdaten verarbeitet anliegen. Der mit EN bezeichne te
Enable-Eingang hat die Aufgabe, die gesamte Funktion freizugeben
bzw. zu sperren. Der Logik-Befehl SWAP wechselt schliesslich die
Funktionalität
von Pfad A zu Pfad B.
-
In
der 3a ist eine schematische Darstellung
eines Speicherelements nach dem Stand der Technik angegeben, ein
sogenanntes D-Flipflop. Ein solches verfügt typischerweise über einen
Dateneingang D, einen Takteingang CP und einen Datenausgang Q und
wird neben kombinatorischer Logik beispielsweise für synchrone
logische Schaltungen eingesetzt. Solche Speicherelemente werden
in erfindungsgemässen
Verfahren durch solche gemäss 3b ersetzt, welche zusätzlich einen Testeingang TI,
ein Test-Enable-Eingang TE, einen Enable-Eingang EN und einen Testausgang TO
aufweisen.
-
Das
hier beschriebene erfindungsgemässe Verfahren
zeigt eine Implementierung der Selbsttest-Architektur in jede synchrone
logische Schaltung auf. Der Aufbau dieser neu entstandenen Speicherzelle
ist in 4 dargestellt. Mit konventionellen Synthese-Tools,
beispielsweise mit einem synopsis DesignCompiler, können alle
EN-Eingänge
mit einem Netz verbunden werden. Ebenso kann gemäss der klassischen Scan-Architektur
mit dem bekannten „Scan-Insertion" Verfahren ein Scan-Pfad
hergestellt werden, also eine Verkettung der TI zu den TO Ports aller
Speicherzellen, sowie eine Verbindung aller TE Eingänge mit
dem Netz.
-
Das
sequentiell-parallele Verarbeiten von funktionalen Daten und Testdaten
wird jedoch durch den erfindungsgemässen Aufbau der Speicherzelle gemäss 4 erreicht.
Diese Speicherzelle weist die in 3b dargestellten
und beschriebenen Ein- und Ausgänge
auf, insbesondere also SWAP, EN, TE, TI und TO. Zudem umfasst sie
für den
Pfad A und den Pfad B je eine Speicherzelle FFA resp. FFB. Diese Speicherzellen
verfügen,
im Gegensatz zu konventionellen Speicherzellen gemäss 3b jeweils über einen Enable-Eingang EN.
Jeder Pfad A und B verfügt
auch über
je eine Funktion D_FFA resp. D_FFB und EN_FFA resp. EN_FFB. Diese
Logik-Funktionen sind ebenfalls in der 4 angegeben.
Je nachdem, ob getestet wurde oder ob funktionale Daten verarbeitet
wurden, werden von den Funktionen Q oder TO die entsprechenden Daten
an die Ausgänge
Q oder TO gegeben.
-
Die
Daten am Eingang D werden je nach Zustand des Eingangs TE entweder
im oberen Flipflop oder im unteren Flipflop eingetaktet oder gehalten, während der
Eingang TI im jeweils anderen Flipflop eingetaktet oder gehalten
wird. Der Eingang EN definiert, ob jeweils eingetaktet oder gehalten
wird. Der Ausgang Q liefert stets die funktionalen Daten, der Ausgang
TO stets die Testdaten.
-
In
der 5 ist gemäss
den in 4 angegebenen Logik-Funktionen zu jedem Zeitpunkt einer Takthälfte die
verschiedenen Zustandswerte der Funktionswerte, der Speicher, der
Eingänge
und der Ausgänge
angegeben. Nach zwei Takthälften
ist ein Takt abgeschlossen. Dies ist durch eine senkrechte Linie
angegeben. Nach zwei abgeschlossenen Takten wiederholt sich der
Verlauf wieder.
-
In
der 6 ist angegeben, wie zwei Zustandsspeicher durch
diese erfindungsgemässe
Zustandsspeicherarchitektur ersetzt werden. Eine Logik-Funktion
verbindet den Datenausgang der funktionalen Daten eines ersten Zustandsspeichers
mit dem Dateneingang der funktionalen Daten eines zweiten Zustandsspeichers,
während
ein SCAN-Pfad den Testdatenausgang des ersten Zustandsspeichers
mit dem Testdateneingang des zweiten Zustandsspeichers verbindet.
-
Da
die funktionalen Daten und die Testdaten gleichwertig behandelt
werden, werden je die Hälfte der
Ressourcen für
die Datenverarbeitung und für den
Selbsttest aufgewendet. Um die vorhandenen Ressourcen zu optimieren,
wird ein BIST Verfahren angewendet, welches auf dieser Architektur
basiert und nach folgenden Prinzip arbeitet: In der ersten Phase
werden alle Flipflops zu einem Schieberegister verkettet und mit
einem Zufallswert vorgeladen. Dieser Zufallswert wird beispielsweise
in einem LFSR (Linear Feedback Shift Register) generiert. Danach
wird für
einen Takt vom Schieberegister in den Normalbetrieb umgeschaltet
und die Ausgänge
der funktionalen Logik, die mit den Zufallswerten stimuliert wurde,
werden in die Flipflops übernommen.
In der dritten Phase werden die Flipflops wieder zu einem Schieberegister
verkettet, der Ausgang wird mit einem LSFR (Linear Feedback Shift
Register) zu einer Signatur komprimiert, während der Eingang der Kette
wieder mit Zufallszahlen stimuliert wird.
-
In
der 7 ist der Vorgang mit optimiertem Nutzen der Ressourcen
dargestellt. Wie aus dieser Darstellung ersichtlich ist, können der
funktionale Betrieb und der BIST Betrieb parallel ablaufen. Dazu muss
für den
BIST-Capture Zustand eine Ausnahme geschaffen werden. Der BIST-Capture
Zustand ist der Zustand, in dem die Reaktion der kombinatorischen
Logik auf die zufällige
Eingangsstimulierung in die Flipflops übernommen wird. Dies bedeutet,
dass alle n Takte ein Takt funktionaler Pause vorhanden ist, in
der BIST-Capture durchgeführt
wird, wobei n die Länge
der längsten
Schieberegisterkette im BIST-Betrieb
ist. Der Wert des Test-Enable-Eingangs TE gibt den Zeitpunkt an,
in dem der Selbsttest durchgeführt
wird.
-
Die 8 gibt
schliesslich den Aufbau einer optimierten Speicherzelle an. Zur
Erläuterung
der Laufzeitersparnis ist hier ein Beispiel aufgeführt:
70
Flipflops werden während
des BIST zu einer Kette geschaltet. Der Eingang der Kette wird mit
einem Polynom 17. Ordnung beschaltet, also mit 2^17=131072 Pattern.
Daraus ergeben sich 1872 Zyklen (=131072/70) Nach jeweils 70 „Shift" wird ein „Capture" ausgeführt. Nach
dem klassischen BIST ist die gesamte Logik für 132912 Takte (=71*1872) im BIST
Betrieb. Während
dieser Zeit ist kein funktionaler Betrieb möglich.
-
Nach
dem optimierten Online-BIST ist nur während den 1872 Capture-Zyklen
kein funktionaler Betrieb möglich.
In den anderen 131040 (=132912-1872) Takten werden der Selbsttest
BIST und der funktionale Betrieb parallel durchgeführt. Die Ressourcen
sind somit nur bei jedem 71sten Zyklus blockiert (Anzahl Flipflops
+1).