[0001] Die Erfindung betrifft ein Verfahren zum Vergleich elektrischer Signalgruppen, wobei
jede Signalgruppe zumindest ein elektrisches Signal umfaßt
[0002] Die Entwicklung komplexer elektronischer Schaltungen erfordert systematisches und
strukturiertes Vorgehen, um die üblichen hohen Zeit und Qualitätsanforderungen erfüllen
zu können. Dabei ist das sogenannte Top-Down-Design üblich, bei dem in einer ersten
Stufe lediglich das Ein/Ausgangsverhalten, d.h. die Abhängigkeit der Ausgangssignale
von den Eingangssignalen der elektronischen Schaltung beschrieben wird. Die Schaltung
selbst wird in dieser Entwicklungsphase als sogenannte Black-Box betrachtet, deren
Inneres man nicht kennt, von der man aber weis, daß sie in bestimmter Weise auf gewisse
Eingangsbedingungen reagiert.
[0003] In weiteren Entwicklungsschritten, deren Anzahl von der Komplexität der elektronischen
Schaltung abhängt, wird dann stufenweise die innere Struktur der Schaltung in immer
größerer "Auflösung" festgelegt, bis eine Strukturbeschreibung mit unmittelbar realisierbaren
Komponenten vorliegt, die direkt in ein elektronisches Bauteil wie z.B. ein ASIC (Anwenderspezifischer
IC) umgesetzt werden oder mittels elektronischer Bauteile in eine entsprechende elektronische
Schaltungsanordnung übergeführt werden kann.
[0004] Obwohl diese Vorgehensweise die Qualität der Entwicklung stark verbessert, treten
doch Fehler auf, welche Verzögerungen im Entwicklungsprozeß und erhöhte Kosten mit
sich bringen.
[0005] Nach der WO 96/19773 wird daher vorgeschlagen, die unterschiedlichen Entwicklungsstufen
durch Schaltungsmodelle zu repräsentieren, wobei für jeweils zwei Modelle unterschiedlicher
Abstraktion zu bestimmten Eingangssignalen die zugehörigen Ausgangssignale ermittelt
werden, die Ausgangssignale der beiden Modelle miteinander verglichen werden und bei
Nichtübereinstimmung eine Fehlermeldung generiert wird, und wobei aus der Art der
Nichtübereinstimmung und der Information über die Eingangssignale wahrscheinliche
Fehler ermittelt und daraus der wahrscheinlichste Fehler abgeleitet werden.
[0006] Das genannte Verfahren beruht auf Methoden der

Künstlichen Intelligenz

zur Fehlersuche in Schaltungen, wie sie beispielsweise in

H. E. Shrobe, editor, Exploring Artificial Intelligence: Survey Talks from the National
Conferences on Artificial Intelligence, pages 297-346. Morgan Kaufmann, San Mateo,
Calif., 1988

beschrieben sind.
[0007] Die der vorliegenden Erfindung zugrundeliegende Aufgabe betrifft den Vergleich der
Ausgangssignale der beiden Modelle unterschiedlicher Abstraktion, welcher möglichst
umfassende Aussagen liefern und so die nachfolgende Fehlerermittlung unterstützen
soll. Diese Aufgabe stellt sich über den beschriebenen Anwendungsfall hinaus in allen
Fällen, in denen Signale verglichen werden und Aussagen über die Übereinstimmung getroffen
werden müssen.
[0008] Erfindungsgemäß wird diese Aufgabe gelöst mit einem Verfahren zum Vergleich elektrischer
Signalgruppen, wobei jede Signalgruppe zumindest ein elektrisches Signal umfaßt, bei
dem die beiden Signalgruppen in einer vorgegebenen Auswahl überprüft werden, ob sie
innerhalb gewisser zeitlicher Toleranzen identisch sind, und/oder ob sie zu ausgewählten
Abtastzeitpunkten übereinstimmen, und /oder ob sie funktionell funktionell innerhalb
gewisser zeitlicher Toleranzen übereinstimmen.
[0009] Das erfindungsgemäße Verfahren liefert umfangreiche Aussagen über das Verhältnis
zweier Signalgruppen zueinander und bildet somit eine hervorragende Basis für eine
erfolgreiche Fehlerermittlung. Das bevorzugte, aber nicht ausschließliche Einsatzgebiet
ist das eingangs beschriebene Verfahren zum Testen der Architektur von elektronischen
Schaltungen.
[0010] Vorteilhaft ist es auch, wenn das Verfahren programmgesteuert abläuft und die Signalgruppen
in sogenannten Waveformtracefiles in einem Computer abgebildet sind.
[0011] Die Erfindung wird anhand einer Figur näher erläutert, welche beispielhaft Definitionen
der einzelnen Vergleichsvorgänge zeigt.
[0012] Dazu die folgenden Definitionen: Eine Signalgruppe ω ist als geordnete Liste einer
Abfolge von Wertänderungen S
1,...,S
n einer korrespondierenden Anzahl von Signalen über der Zeit definiert.
[0013] Jede Wertänderungsmenge beschreibt eine Veränderung in einer Signalgruppe, d.h. die
Zustandsänderung eines oder mehrerer Signale, sie umfaßt Signal-Wert-Paare (S,V) zu
jedem Signal einer Signalgruppe. Der Zeitpunkt zu dem diese Änderung auftritt, wird
mit einer Zeitfolge τ erfaßt, die jeder Wertänderungsmenge einen Zeitpunkt zuordnet.
[0014] Als Randbedingung gilt dabei, daß die einzelnen Wertänderungsmengen Zustandsänderungen
zu unterschiedlichen, jeweils aufeinanderfolgenden Zeitpunkten beschreiben τ(S
i) < τ(S
i+1).
[0015] Vorbedingung für einen Vergleich zweier Signalgruppen ist die Übereinstimmung der
Bezeichnung der einzelnen Signale der beiden Gruppen. Diese Bezeichnungs-übereinstimmung
wird mit einer Abbildungsfunktion µ hergestellt.
[0016] Für den Vergleich sind nun verschiedene Modi vorgesehen. Damit wird die Tatsache
berücksichtigt, daß zwei Signalgruppen auch dann als übereinstimmend betrachtet werden
können, wenn sie gewisse Unterschiede aufweisen. So können beispielsweise in gewissen
Fällen Zeitunterschiede in den Zustandsänderungen, welche die Funktionalität der Schaltung
nicht beeinflussen durchaus toleriert werden. In anderen Fällen kann wiederum die
Exaktheit des zeitlichen Ablaufes im Vordergrund stehen. All diese Fälle können mit
dem erfindungsgemäßen Verfahren zum automatischen Vergleich elektrischer Signalgruppen
berücksichtigt werden.
[0017] Die Vergleichsmodi werden nun anhand der in der Figur dargestellten formalen Beschreibung
näher erläutert. Die Figur umfaßt neben einer allgemeinen Definition 1 die formale
Darstellung des identischen Vergleichs 2, des identischen Vergleichs mit Toleranz
3, den Samplevergleich 4, den funktionalen Vergleich 5 und den funktionalen Vergleich
mit Toleranz 6.
[0018] Beim identischen Vergleich mit zwei Signalgruppen und einer Abbildungsfunktion ,
werden zwei Signalgruppen dann als übereinstimmend bewertet, wenn jede Wertänderung
eines oder mehrerer Signale in einer Signalgruppe zum selben Zeitpunkt auch in der
jeweils anderen Signalgruppe auftritt.
[0019] Formal wird dies so dargestellt 2, daß Identität
id(ω1, ω2, µ) dann und nur dann vorliegt, wenn die Anzahl der Wertänderungen in den Signalgruppen
übereinstimmt
events(ω1) = events(ω2) und für jedes Signal
S der Signalgruppe
signals(ω1) der Wert des Signals
value(S,T) zu jedem Zeitpunkt
T übereinstimmt mit dem Wert des korrespondierenden Signals, d.h. des mittels Abbildungsfunktion
µ angeglichenen Signals der verglichenen Signalgruppe
value(S,T) = value(µ(S),T).
[0020] Beim Identischen Vergleich mit Toleranz werden zwei Signalgruppen nur dann als übereinstimmend
bewertet, wenn zu jeder Wertänderung eines oder mehrerer Signale einer Signalgruppe
auch in der jeweils anderen Signalgruppe eine Wertänderung auftritt, und der Zeitunterschied
zwischen den beiden Ereignissen einen vorgegebenen Wert nicht überschreitet. Dazu
wird zu jeder Wertänderung in der Bezugs-Signalgruppe ein Zeittoleranzfenster definiert,
innerhalb dessen die Wertänderung in der anderen Signalgruppe auftreten muß, damit
eine Übereinstimmung vorliegt.
[0021] Die formale Darstellung 3 der Identität mit Toleranz
idtol(ω1, ω2, µ) lautet, daß diese dann und nur dann vorliegt, wenn die Anzahl der Wertänderungen
in den Signalgruppen übereinstimmt
events(ω1) = events(ω2) und für jedes Signal
S der Signalgruppe
signals(ω1) der Wert des Signals
value(S,T) zu jedem Zeitpunkt
T übereinstimmt mit dem Wert des korrespondierenden Signals
value(µ(S),T') innerhalb eines vorgegebenen Zeitfensters
T'- tol-(µ(S)) <= T <= T'-tol+(µ(S)).
[0022] Beim Samplevergleich werden die Signalgruppen zu bestimmten Zeitpunkten hinsichtlich
ihrer Übereinstimmung überprüft. Zweckmäßig ist dabei die Definition eines Anfangszeitpunktes
zur Festlegung einer Phasenlage und einer Zeitdifferenz zwischen den einzelnen Abtastzeitpunkten
bzw. einer Abtastfrequenz.
[0023] Formal liegt beim Samplevergleich 4
sample(ω1, ω2, µ) dann Übereinstimmung vor, wenn der Wert des Signals
value(S,T) zu ausgewählten Zeitpunkten
T übereinstimmt mit dem Wert des korrespondierenden Signals
value(µ(S),T) wobei die Zeitpunkte durch einen Anfangszeitpunkt plus ein Vielfaches einer Zeitdifferenz
definiert sind

[0024] Beim funktionalen Vergleich wird überprüft, ob die Abfolge der Wertänderungen in
den beiden Signalgruppen übereinstimmt. Dabei wird nur festgestellt, ob auch die zeitliche
Reihenfolge der einzelnen Wertänderungen übereinstimmt, die absoluten Zeitpunkte bleiben
unberücksichtigt.
[0025] Die formale Darstellung 5 des funktionalen Vergleichs
func(ω1, ω2, µ) ergibt dann eine Übereinstimmung, wenn die Zahl der Wertänderungen übereinstimmt
|Si(ω1)|=|Si(ω2)|und für jede Wertänderung
Si in
ω1 die in der zeitlichen Reihenfolge entsprechende Wertänderung in
ω2 den selben Betrag aufweist.
[0026] Beim funktionalen Vergleich mit Toleranz
functol(ω1, ω2, µ) wird überprüft, ob die Abfolge der Wertänderungen in den beiden Signalgruppen unter
Berücksichtigung eines funktionalen Toleranzfensters übereinstimmt. Dazu werden Signalgruppen-Varianten
festgelegt, die als funktional innerhalb dieses Toleranzfensters liegend gelten.
[0027] Für die formale Darstellung 6 des funktionalen Vergleiches mit Toleranz
functol(ω1, ω2, µ) wird eine erste Hilfsfunktion 6(a)
signaltrace (S,ω) definiert, welche für eine bestimmte Signalgruppe ω und ein gegebenes Signal
S nur die Wertänderungen der Signalgruppe ω darstellt.
[0028] Weiterhin wird eine zweite Hilfsfunktion
variants(ω) definiert 6(b); welche alle Signalgruppen ω umfaßt, die bezüglich der ersten Hilfsfunktion
signaltrace (S,ω) übereinstimmen.
[0029] Der eigentliche Vergleich wird dann mittels Formel 6(c) definiert. Zwei Signalgruppen
ω1, ω2 sind nur dann im Sinne des funktionalen Vergleiches mit Toleranz
functol(ω1, ω2, µ) als übereinstimmend anzusehen, wenn es eine Variante einer Signalgruppe
variants(ω') gibt, welche funktional mit der zweiten Signalgruppe übereinstimmt

[0030] Wie bereits angeführt, werden die genannten Vergleichsmodi im Rahmen eines Verfahrens
zum Vergleich elektrischer Signalgruppen eingesetzt wobei als Hauptanwendungsgebiet
die Überprüfung von Schaltungsentwürfen - Modellen - mit unterschiedlichem Abstraktionsgrad
gesehen wird. Damit können frühzeitig im Designprozeß Fehler erkannt werden und Verzögerungen
und Kosten vermieden werden.
[0031] Die Modelle werden üblicherweise in einer Hardwarebeschreibungssprache wie VHDL abgefaßt.
Das Verhalten dieser Modelle wird über Simulationen ermittelt. Dabei wird zu ausgewählten
Eingangszuständen -Testvektoren - das Ausgangsverhalten des Modells ermittelt. Dieses
Ausgangsverhalten wird mit dem erwarteten Verhalten verglichen und aus etwaigen Differenzen
können dann der oder die verursachenden Fehler ermittelt werden.
[0032] Nach dem in der WO 96/19773 beschriebenen Verfahren wird als erwartetes Verhalten
das Ausgangsverhalten des jeweils übergeordneten - abstrakteren - Modells im Entwicklungsprozeß
herangezogen.
[0033] Die Ausgangssignale der beiden Modelle können aber aufgrund des unterschiedlichen
Abstraktionsgrades Unterschiede aufweisen. Diese können beispielsweise die Anzahl
der Signale oder Signalbezeichnungen der Ausgangs-Signalgruppen ω1, ω2 der beiden
Modelle betreffen.
[0034] Diese Unterschiede können zum Teil mittels Abbildungsfunktion µ ausgeglichen werden,
in vielen Fällen wird man aber zur Erkenntnis gelangen, daß diese Unterschiede mittels
funktionalem Vergleich mit Toleranz
functol(ω1, ω2, µ) am besten berücksichtigt werden können.
[0035] Üblicherweise werden die genannten Modelle mit Hilfe von Computern erstellt. Auch
die Simualtionsvorgänge erfolgen mittels Computer. Die Ausgangs-Signalgruppen ω1,
ω2 sind dann in sogenannten Waveformtracefiles abgespeichert.
[0036] Zum Vergleich der beiden Waveformtracefiles nach den oben angeführten Modi werden
zuerst mit entsprechenden Programmmodulen die notwendigen Daten extrahiert und den
Definitionen entsprechend geordnet. So werden aus den Waveformtracefiles insbesondere
die Wertänderungsmengen S
1, ...S
n und die Zeitfolge τ als Grundlage für die Vergleichsvorgänge ermittelt. Aus diesen
Daten werden dann die weiteren Informationen wie beispielsweise die Anzahl der Wertänderungen
in den Signalgruppen
events(ω1),
events(ω2) und daraus die Vergleichsergebnisse berechnet.
[0037] Das Ergebnis der für einen bestimmten Fall vorgesehenen Vergleichsergebnisse wird
dann im Rahmen des in der WO 96/19773 beschriebenen Verfahren zur Ermittlung des oder
der wahrscheinlichen Fehler herangezogen.