Um eine kombinatorische Schaltung auf genau diesen aufgetretenen Herstellungsfehler testen zu k¨onnen, wird eine Testfalleingabe auch Testvektor x = x1,...,xn ben¨otigt, f¨ur den gilt: φ
Trang 1muliert wird Die folgende Einf¨uhrung zur ¨Aquivalenzpr¨ufung basierend auf einer automatischen Testfallgenerierung basiert auf der Darstellung in [329]
Gegeben sei ein Boolesches Netzwerk N , welches eine Boolesche Funktion
φ(N ) repr¨asentiert Ein Herstellungsfehler f¨uhrt dazu, dass N in ein anderes kom-binatorisches Schaltwerk N mutiert Dieses implementiert die Boolesche
Funk-tion φ(N) Um eine kombinatorische Schaltung auf genau diesen aufgetretenen
Herstellungsfehler testen zu k¨onnen, wird eine Testfalleingabe (auch Testvektor)
x = (x1, ,xn) ben¨otigt, f¨ur den gilt:
φ(N )(x1, ,xn ) =φ(N )(x1, ,xn) BesitztN lediglich einen Ausgang, so kann die Testfalleingabe x gefunden werden,
indem eine erf¨ullende Belegung f¨ur
φ(N )(x1, ,xn ) ⊕φ (N )(x1, ,xn) gefunden wird
An dieser Beschreibung erkennt man auch, dass man Testfalleingaben nur f¨ur bestimmte Fehler generiert Der zu ¨uberpr¨ufende Fehler wird dabei als VariationN
des Booleschen NetzwerkesN codiert Die Annahme hierbei ist, dass physikalische
Fehler, die z B durch Defekte in der Herstellung entstehen, als logische Fehler dar-gestellt werden k¨onnen Dabei k¨onnen unterschiedliche physikalische Fehler zu dem selben logischen Fehler f¨uhren
Ein h¨aufig verwendetes Fehlermodell ist das sog Haftfehlermodell (engl
stuck-at fault model) Die zugrundeliegende Annahme lautet, dass in vielen Technologien
ein Kurzschluss zwischen Versorgungsspannung oder Masse und einem Signal, oder ein Leerlauf auf einer Signalleitung zu einem konstanten Potential der Signalleitung f¨uhrt Man spricht von einem Haftfehler 0 bzw Haftfehler 1, wenn ein Signal stets den logischen WertF bzw T tr¨agt Bei der automatischen Testfallgenerierung ist das Ziel, eine Belegung der prim¨aren Eing¨ange der Schaltung zu finden, so dass einem
(internen) Signal s der WertT bzw F zugewiesen wird, falls bei diesem Signal ein
Haftfehler 0 bzw Haftfehler 1 vermutet wird Dies wird als Aktivierung des Fehlers
bezeichnet Weiterhin muss die Belegung der prim¨aren Eing¨ange so gew¨ahlt werden,
dass der Fehler an einem prim¨aren Ausgang beobachtbar wird Dies wird als ¨ Uber-tragung des Fehlers bezeichnet L¨asst sich ein Fehler nicht aktivieren oder
¨ubertra-gen, so ist dieser Fehler nicht steuerbar bzw nicht beobachtbar, und somit auch nicht
¨uberpr¨ufbar
Neben dem Haftfehlermodell gibt es weitere Fehlermodelle Das Haftfehlermo-dell ist ein statisches FehlermoHaftfehlermo-dell, da dauerhaft eine falsche (interne) Funktion be-rechnet wird Daneben existieren dynamische Fehlermodelle, bei denen das Zeitver-halten von Signalen fehlerhaft ist So ist die Berechnung einer internen Funktion zwar korrekt, allerdings gibt es beim Schalten vonF nach T oder umgekehrt un-gew¨ohnlich lange Umschaltzeiten in einzelnen Gattern Dies kann dazu f¨uhren, dass nachfolgende Schaltungsteile mit alten Ergebnissen rechnen Im Folgenden wird le-diglich vom Haftfehlermodell ausgegangen
Trang 2254 6 Hardware-Verifikation
Der am h¨aufigsten verwendete Algorithmus zur automatischen
Testfallgenerie-rung ist der sog D-Algorithmus [381] Der D-Algorithmus basiert auf einer
f¨unf-wertigen Logik mit der Wertemenge{0,1,X,D,D} Der Wert 0 (1) zeigt an, dass
jedes Mal, wenn ein Signal den logischen WertF (T) tragen soll, dieses auch den WertF (T) tr¨agt Aktivierte Haftfehler 0 (Haftfehler 1) werden durch den Wert D (D) modelliert Ist der Wert eines Signals unbekannt, so wird dies durch den Wert
X dargestellt Die Funktionstabellen f¨ur drei wichtige Logikgatter in f¨unfwertiger
Logik sind in Tabelle 6.2 zu sehen
Tabelle 6.2 OR-, AND- und NOT-Gatter in f¨unfwertiger Logik [1]
OR 0 1 D D X
0 0 1 D D X
1 1 1 1 1 1
D D 1 D 1 X
D D 1 1 D X
X X 1 X X X
AND 0 1 D D X
0 0 0 0 0 0
1 0 1 D D X
D 0 D D 0 X
D 0 D 0 D X
X 0 X X X X
NOT
0 1
1 0
Nachdem ein Haftfehler 0 (Haftfehler 1) f¨ur ein Signal in der Schaltung gesetzt ist, muss dieser Fehler aktiviert werden, indem eine Belegung der prim¨aren Eing¨ange gesucht wird, die dem Signal den logischen WertT (F) zuweist Daneben muss der Fehler an die prim¨aren Ausg¨ange ¨ubertragen werden
Die explizite ¨Aquivalenzpr¨ufung mit Hilfe einer Miter-Schaltung basiert auf der Idee, durch geeignete Belegung der prim¨aren Eing¨ange der Schaltung dem Aus-gang der Schaltung den Wert T zuzuweisen Somit kann diese explizite ¨Aquiva-lenzpr¨ufung auch als automatische Testfallgenerierung betrachtet werden Lediglich die Aktivierungsphase wird dabei durchlaufen Eine ¨Ubertragung an einen prim¨aren Ausgang ist nicht mehr notwendig Aus diesem Grund wird im Folgenden lediglich die Aktivierungsphase betrachtet Dies wird zun¨achst an einem Beispiel verdeutlicht
Beispiel 6.1.9 In Abb 6.12 ist eine Miter-Schaltung dargestellt Um die Nicht¨aqui-valenz der beiden Funktionen f1und f2zu zeigen, muss der Ausgang z der
Miter-Schaltung den WertT erhalten Dies ist durch die Funktion activate(T) dargestellt Durch R¨uckw¨arts-Implikation erh¨alt man, dass eine M¨oglichkeit, dies zu erf¨ullen,
darin besteht, dem Signal z3den WertT und dem Signal z4den WertF zuzuweisen Dies ist wiederum durch die entsprechende activate-Funktion symbolisiert
Um eine Belegung der prim¨aren Eing¨ange zu erhalten, m¨ussen weitere
R¨uck-w¨arts-Implikationen durchgef¨uhrt werden Die Aktivierung des Wertes z3= T
ver-langt, dass sowohl z1als auch x2den WertT tragen Dies wiederum bedeutet, dass
x1 = F sein muss Hiermit ist eine Belegung der prim¨aren Eing¨ange gefunden: x1:= F
und x2:= T Allerdings muss diese Belegung auch konsistent f¨ur die Aktivierung des
Signals z4sein Aus diesem Grund werden die R¨uckw¨arts-Implikationen f¨ur das
OR-und NOT-Gatter der Funktion f auch noch ausgewertet
Trang 31
&
≥ 1
= 1
x1
x2
z2
z1
z4
z3
f2
f1
activate (F)
activate (T)
activate (T)
activate (T) activate(T)
z
activate (T)
activate (F) activate(F)
activate (F)
Abb 6.12 Aktivierung eines Haftfehlers 1 in einer Miter-Schaltung
Die Aktivierung activate(F) f¨ur das Signal z4impliziert, dass sowohl das Signal
x1 als auch das Signal z2den WertF zugewiesen bekommen, was wiederum bedeutet,
dass x2den WertT erh¨alt Dies ist konsistent mit der bereits gefundenen Belegung
β Somit sind die Funktionen f1und f2nicht ¨aquivalent, was z B durch die
Testfal-leingabe x1:= F und x2:= T per Simulation gezeigt werden kann
Die Aktivierungsfunktion
Vor der Aktivierungsphase wird zun¨achst allen Signalen, außer dem Ausgang der
Miter-Schaltung, der Wert X zugewiesen Der Ausgang der Miter-Schaltung erh¨alt
den WertT W¨ahrend der Aktivierungsphase m¨ussen nun diejenigen Gatter-Aus-g¨ange, die durch die activate-Funktion einen Wert zugewiesen bekommen haben, dieser aber noch nicht durch deren Gatter-Eing¨ange impliziert wird, verfolgt werden
Diese Menge an Gatterausg¨angen wird als Aktivierungsfront bezeichnet Die
Akti-vierungsfront enth¨alt zu Beginn lediglich das XOR-Gatter am Ausgang der Miter-Schaltung
Nach der Initialisierung wird durch wiederholte Anwendung der R¨uckw¨artsim-plikation versucht, die Aktivierungsfront zu den prim¨aren Eing¨angen der Schaltung
zu verschieben Der Algorithmus ist durch den folgenden Pseudo-Code dargestellt, wobeiΦdie Aktivierungsfront darstellt:
ACTIVATE(Φ){
IF (IMPLICATION(Φ) =F)
RETURNF;
IF (Φ =∅)
RETURNT;
WHILE (ungetestete Variablenbelegungen existieren)
Φ:=Φ;
W¨ahle ein Signal z ausΦ;
W¨ahle eine noch nicht versuchte Belegung der Eing¨ange des
zugeh¨origen Gatters, so dass die Aktivierung von z erf¨ullt ist;
AktualisiereΦ;
Trang 4256 6 Hardware-Verifikation
IF (ACTIVATE(Φ) =T)
RETURNT;
Φ:=Φ;
RETURNF;
}
Die Funktion IMPLICATION ber¨ucksichtigt lokale und globale Implikationen Lokale Implikationen ergeben sich, wenn ein Gatter-Ausgang mit der activate-Funktion einen Wert zugewiesen bekommen hat und dieser eindeutig auf die Be-legung der Eingangsvariablen des zugeh¨origen Gatters f¨uhrt F¨ur das XOR-Gatter
am Ausgang der Miter-Schaltung in Abb 6.12 existieren die in Tabelle 6.3 gezeigten lokalen Implikationen
Tabelle 6.3 Lokale Implikationen f¨ur ein XOR-Gatter [329]
momentane Lokal implizierte Belegung Belegung
Wie man in Tabelle 6.3 sieht, gibt es f¨ur den Fall z : = T und z3= z4:= X keine
lokale Implikation Dies liegt darin begr¨undet, dass es f¨ur diesen Fall zwei m¨ogliche
Variablenbelegungen an den Eing¨angen des XOR-Gatters gibt: z3:= T und z4:= F
oder z4:= T und z3:= F Welche dieser Belegungen gew¨ahlt werden soll wird ent-weder durch eine globale Implikation aufgel¨ost oder muss durch eine Verzweigung
in der ACTIVATE()-Funktion ausprobiert werden D h aber auch, dass es im All-gemeinen mehr als eine Testfalleingabe gibt, welche die Nicht¨aquivalenz von zwei Funktionen in einer Miter-Schaltung zeigen kann
Beispiel 6.1.10 F¨ur das Beispiel 6.1.9 ist die Konstruktion aller m¨oglichen
Test-falleingaben in Abb 6.13 zu sehen F¨ur das AND- und das OR-Gatter gibt es f¨ur den zweiten Fall weitere Alternativen, die an die Eing¨ange ¨ubertragen werden Die beiden m¨oglichen Belegungen der Eingangsvariablen des XOR-Gatters sind als al-ternative Aktivierungen (durch |) dargestellt Diejenigen Kombinationen, die eine
konsistente Belegung der prim¨aren Eing¨ange ergeben, sind in Abb 6.13 zu sehen
Trang 5D h in diesem Fall k¨onnen die vier m¨oglichen Belegungen (x1:= F,x2 := T),
(x1:= T,x2:= T), (x1:= T,x2:= F) und (x1:= F,x2:= F) der prim¨aren Eing¨ange,
verwendet werden, um die Nicht¨aquivalenz von f1und f2simulativ zu zeigen Die Belegung ist also beliebig Im Allgemeinen ist dies nicht der Fall
1
1
&
≥ 1
x1
x2
z2
z1
z4
z3
f2
f1
z
= 1
(F|(T,T,F))
(T|(T,F,F))
(T|(F,F,T))
(F|(T,T,F)) (F|(F,T,T))
(F|T)
(T|F)
(T)
(T|(T,F,F))
Abb 6.13 M¨ogliche Testfalleingaben f¨ur die Miter-Schaltung aus Abb 6.12
Globale Implikationen ergeben sich daraus, dass nicht nur einzelne Gatter ge-trennt voneinander betrachtet werden, sondern ganze Teilnetze Dies wird an dem folgenden Beispiel aus [276] illustriert
Beispiel 6.1.11 Gegeben ist das Boolesche Netzwerk aus Abb 6.14 Um den
Aus-gang des OR-Gatters zu erf¨ullen, gibt es mehrere m¨ogliche Belegungen der Signale
z1 und z2 Somit kann die Aktivierung nicht allein mit Hilfe einer lokalen Implikation erfolgen
&
&
z
≥ 1
x1
x2
x3
z1
z2
Abb 6.14 Globale Implikation [276]
Betrachtet man das Boolesche Netzwerk genauer, so erkennt man, dass der
prim¨are Eingang x2in allen F¨allen, den WertT zugewiesen bekommen muss Dies
kann erkannt werden, indem allen Signalen außer x2der Wert X zugewiesen wird Belegt man schließlich x2mitF, erh¨alt man durch Implikation, dass z = F und somit nicht erf¨ullbar ist, d h x = F ⇒ z = F Im Umkehrschluss bedeutet dies:
Trang 6258 6 Hardware-Verifikation
z = T ⇒ x2= T Ber¨ucksichtigt man diese globale Implikation, kann der Suchraum f¨ur Testfalleinga-ben deutlich reduziert werden
Hardware-Implementierungen speicherbehafteter Systeme werden als Schaltwerke
bezeichnet Ein Schaltwerk l¨asst sich als deterministischer endlicher Automat (engl Deterministic Finite Automaton, DFA) modellieren (siehe Abschnitt 2.2.2) DFAs verarbeiten Sequenzen von Eingabesymbolen i ∈ I zu Sequenzen von Ausgabesym-bolen o ∈ O Das aktuelle Ausgabesymbol h¨angt im Allgemeinen vom aktuellen Ein-gabesymbol und dem aktuellen Zustand s ∈ S des DFA ab Der Folgezustand wird aus
dem momentanen Zustand und dem aktuellen Eingabesymbol berechnet Zu Beginn
befindet sich der DFA im Anfangszustand s0∈ S.
Jedes Schaltwerk l¨asst sich also als DFA repr¨asentieren Ein DFA wiederum kann als Schaltwerk modelliert werden Dazu werden Symbole und Zust¨ande eines DFA als Bitvektoren codiert, da diese eine Eins-zu-Eins-Repr¨asentation in Hardware be-sitzen Solche Schaltwerke lassen sich graphisch ¨ahnlich dem in Abb 6.15 gezeig-tem darstellen In dem Beispiel wird die Eingabe mit f¨unf und die Ausgabe mit drei Bits codiert Die ¨Ubergangsfunktion f und die Ausgabefunktion g sind dabei auf der
Logikebene als kombinatorische Schaltungen implementiert
f
clk
s = (z3,z2,z1,z0 )
g
Abb 6.15 Schaltwerk
Um die ¨Aquivalenz zweier Schaltwerke zu zeigen, kann prinzipiell die sequenti-elle ¨Aquivalenzpr¨ufung, wie sie in Kapitel 4.3 beschrieben ist, zum Einsatz kommen Die beiden Schaltwerke werden als DFA modelliert, der Produktautomat gebildet und durch eine Vorw¨arts- oder R¨uckw¨artstraversierung die Menge der erreichba-ren Zust¨ande bestimmt Enth¨alt diese Menge einen Zustand mit ausgehendem
Trang 7Zu-stands¨ubergang, der die AusgabeF erzeugt bzw enth¨alt diese Menge den Anfangs-zustand, so sind die beiden Schaltwerke nicht ¨aquivalent
Da die ¨Ubergangsfunktion f und die Ausgabefunktion g als kombinatorische
Schaltungen implementiert sind, lassen sich diese durch Boolesche Funktionen und somit durch Boolesche Netzwerke oder ROBDDs repr¨asentieren Dies bedeutet, dass die Traversierung auch symbolisch geschehen kann Ein Nachteil ist allerdings, dass
zur Speicherung der Zust¨ande von DFAs Register verwendet werden Bei n
Regis-tern gibt es 2nm¨ogliche Belegungen, die bei der Konstruktion des Produktautomaten ber¨ucksichtigt werden m¨ussen Dies ist selbst dann der Fall, wenn die Codierung der Zust¨ande nicht alle Belegungen verwendet Aus diesem Grund wird im Folgenden
ein Verfahren basierend auf symbolischer Simulation zur formalen expliziten ¨ Aqui-valenzpr¨ufung von Schaltwerken vorgestellt
Die sog Zeitschrittsimulation (engl frame by frame simulation) ist das
Standard-vorgehen bei der symbolischen Simulation von Schaltwerken In der Zeitschrittsi-mulation wird der Zustandsraum iterativ exploriert In jedem SiZeitschrittsi-mulationsschritt wird dabei den prim¨aren Eing¨angen und den Zustandsregistern der Schaltung je ein Boole-scher Ausdruck zugewiesen Dies k¨onnen komplexe Ausdr¨ucke oder konstante
Wer-te sein Entsprechend der topologischen Ordnung der GatWer-ter der kombinatorischen Schaltungen, welche die ¨Ubergangsfunktion und die Ausgabefunktion implementie-ren, wird den internen Signalen entsprechend der Gattereing¨ange und der Gatterfunk-tionalit¨at ein Boolescher Ausdruck zugewiesen, bis die Ausdr¨ucke f¨ur die prim¨aren Ausg¨ange und die Registereing¨ange des Schaltwerks bestimmt sind Die berechne-ten Ausdr¨ucke an den Registereing¨angen stellen die in einem Zeitschritt erreichbaren Zust¨ande dar, ausgehend von den, den Registern zugewiesenen Zust¨anden Die Boo-leschen Ausdr¨ucke f¨ur die erreichbaren Zust¨ande werden als
”Anfangszustand“ f¨ur
den folgenden Zeitschritt (engl time frame) verwendet Den prim¨aren Eing¨angen
werden in dem neuen Zeitschritt wieder geeignete Boolesche Ausdr¨ucke zugewie-sen Durch symbolische Simulation der ¨Ubergangs- und Ausgabefunktion k¨onnen die Ausg¨ange und die m¨oglichen Folgezust¨ande des Schaltwerks im n¨achsten
Zeit-schritt ermittelt werden Dies kann graphisch mit Hilfe des sog iterativen Schal-tungsmodells visualisiert werden (siehe Abb 6.16) Dabei ist in eckigen Klammern
der jeweilige Zeitschritt angegeben
F¨ur eine formale explizite ¨Aquivalenzpr¨ufung auf Basis symbolischer
Simulati-on m¨ussen in jedem Zeitschritt die beiden zu vergleichenden Schaltwerke betrachtet werden und f¨ur jeden Zeitschritt eine geeignete Miter-Schaltung aus beiden Ausga-befunktionen gebildet werden Durch symbolische Simulation, wobei den prim¨aren Eing¨angen die entsprechenden Variablen und den Registern die Anfangszust¨ande zu-gewiesen werden, k¨onnen dann die in jedem Zeitschritt erreichten Zust¨ande und die Ausgaben der Miter-Schaltungen bestimmt werden Liefert die Miter-Schaltung den WertT zur¨uck, so sind die beiden Schaltwerke nicht ¨aquivalent Zu pr¨ufen ist außer-dem nach jeaußer-dem Zeitschritt, ob bereits ein Fixpunkt erreicht wurde
Beispiel 6.1.12 Gegeben sind die beiden Schaltwerke in Abb 6.17a) und b) (aus [411]) Der momentane Zustand des Schaltwerks M ist in zwei Registern z1und z2
gespeichert, w¨ahrend M lediglich ¨uber ein Zustandsregister z verf¨ugt Die
Trang 8Aus-260 6 Hardware-Verifikation
g
f
g
f g
f
o[1]
i[1]
s[1]
s[2]
s[0]
Abb 6.16 Iteratives Schaltungsmodell des Schaltwerks aus Abb 6.15
gabefunktionen der beiden Schaltwerke lauten: f (z1,z2) = z1∨ z2und f (z
1) = z
1 Die ¨Ubergangsfunktionen sind wie folgt definiert: g (x1,x2,z1,z2) = (x1∧ (z1∨ z2))∧ (¬x1∧ (z1∨ z2)) und g (x
1,x
2,z
1) = (x
1∨ z
1) ∧ (¬x
1∨ x
2)
≥ 1
&
&
≥ 1
≥ 1
&
x1
x2
a)
y1
z1
z2
≥ 1
y 1
x 1
x 2
b)
z 1
s1
s3
s2
Abb 6.17 Zwei Schaltwerke a) M und b) M [411]
Zur Durchf¨uhrung einer formalen expliziten ¨Aquivalenzpr¨ufung mit
symboli-scher Simulation muss aus der Miter-Schaltung von M und M das iterative Schal-tungsmodell entwickelt werden Dies ist in Abb 6.18 f¨ur die ersten drei Zeitschritte
zu sehen
Der Anfangszustand des Schaltwerks M ist durch z1[0] = z2[0] := F gegeben Der
Anfangszustand des Schaltwerks M ist durch z 1[0] := F gegeben F¨ur die Bestim-mung des Fixpunktes durch Vorw¨artstraversierung (siehe Kapitel 4.3) ergibt sich die
Menge der erreichbaren Zust¨ande somit zu SR [0] = {(F,F,F)}, wobei der
Zustands-vektor(z1,z2,z
1) zugrunde gelegt wurde Die symbolische Simulation erfolgt als Zeitschrittsimulation:
Trang 9≥ 1
&
&
≥ 1
≥ 1
&
≥ 1
&
&
≥ 1
≥ 1
&
≥ 1
&
&
≥ 1
≥ 1
&
≥ 1
z1 [0]
z2 [0]
z 1 [0]
y[0]
≥ 1
z1 [1]
z2 [1]
z 1 [1]
y[1]
≥ 1
z1 [2]
z2 [2]
z1 [3]
z2 [3]
y[2]
x1[0] x2 [0] x1[1] x2 [1] x1[2] x2 [2]
Abb 6.18 Iteratives Schaltungsmodell f¨ur drei Zeitschritte der Miter-Schaltung von M und
M aus Abb 6.17
1 Durch Zuweisung dieser Initialwerte an die Zust¨ande und Zuweisung der
sym-bolischen Werte x1[0] und x2[0] an die prim¨aren Eing¨ange der Schaltwerke erh¨alt man nach der symbolischen Simulation des ersten Zeitschritts die Variablenbe-legungen:
y1[0] = F
y 1[0] = F
z1 [1] = x1[0] ∧ x2[0]
z2[1] = F
z 1[1] = x1[0] ∧ x2[0]
Hieraus ergibt sich als Ausgabe der Miter-Schaltung nach symbolischer
Simula-tion des ersten Zeitschritts y [0] = F Die Menge der erreichbaren Zust¨ande S R[1]
nach einem Zeitschritt ergibt sich zu SR [1] = {(F,F,F),(T,F,T)}.
2 Mit den symbolischen Werten z1[1], F und z
1[1] sowie den symbolischen
Einga-bewerten x1[1] und x2[1] kann der zweite Zeitschritt symbolisch simuliert wer-den Die Variablenbelegungen ergeben sich zu:
y1 [1] = z1[1]
y 1[1] = z
1[1]
z1 [2] = (x1[1] ∨ z1[1]) ∧ x2[1]
z2 [2] = ¬x1[1] ∧ z1[1]
z 1[2] = (x1[1] ∨ z
1[1]) ∧ (¬x1[1] ∨ x2[1])
Nach Substitution der im ersten Zeitschritt ermittelten Ausdr¨ucke f¨ur z1[1] und
z 1[1] ergibt sich somit y[1] = F Die Menge der erreichbaren Zust¨ande nach zwei Zeitschritten ergibt sich zu SR [2] = {(F,F,F),(F,T,T),(T,F,T),(T,T,T)} Da-bei muss beachtet werden, dass die Belegung der symbolischen Variablen z [1]
Trang 10262 6 Hardware-Verifikation
und z [1] nur entsprechend der im ersten Zeitschritt ermittelten Ausdr¨ucke
erfol-gen darf, d h nur die in SR[1] enthaltenen Zust¨anden werden als Variablenbele-gung ber¨ucksichtigt
3 Mit den symbolischen Werten z1[2],z2[2],z
1[2] sowie den symbolischen
Einga-bewerten x1[2] und x2[2] kann der dritte Zeitschritt simuliert werden Die Varia-blenbelegungen ergeben sich zu:
y1 [2] = z1[2] ∨ z2[2]
= (x1[1] ∧ x2[1]) ∨ (x2[1] ∧ z1[1]) ∨ (¬x1[1] ∧ z1[1])
y 1[2] = z
1[2]
= (x1[1] ∧ x2[1]) ∨ (x2[1] ∧ z
1[1]) ∨ (¬x1[1] ∧ z
1[1])
z1 [3] = (x1[2] ∨ z1[2] ∨ z2[2]) ∧ x2[2]
z2 [3] = ¬x1[2] ∧ (z1[2] ∨ z2[2])
z 1[3] = (x1[2] ∨ z
1[2]) ∧ (¬x1[2] ∨ x2[2]) F¨ur die Ausgabe der Miter-Schaltung nach symbolischer Simulation des dritten
Zeitschritts ergibt sich y [2] = F Die Menge der erreichbaren Zust¨ande S R[3] nach
drei Zeitschritten ergibt sich zu SR [3] = {(F,F,F),(F,T,T),(T,F,T),(T,T,T)} Bei der Bestimmung von SR [3] muss wiederum die Erreichbarkeitsmenge S R[2]
ber¨ucksichtigt werden An dieser Stelle sieht man, dass SR [3] = S R[2] gilt Somit ist ein Fixpunkt erreicht und die Menge der erreichbaren Zust¨ande bestimmt Da
wei-terhin gilt, dass in in jedem Zeitschritt i der Ausgang der Miter-Schaltung y [i] = F ist, sind die beiden Schaltwerke M und M aus Abb 6.17 ¨aquivalent
In dem Beispiel wurde in jedem Zeitschritt i mit den neuen symbolischen Werten z1 [i], z2[i] und z
1[i] weitergerechnet, um sehr große Boolesche Formeln zu vermeiden.
F¨ur die Auswertung der Erreichbarkeitsmenge m¨ussen allerdings diese symbolischen Werte durch die berechneten Booleschen Formeln substituiert werden, um die bisher erreichten Zust¨ande zu ber¨ucksichtigen Dies wurde im Beispiel umgangen, indem
die Mengen SR [i] immer explizit aus den bereits erreichten Zust¨anden bestimmt
wur-den Diese explizite Darstellung der Erreichbarkeitsmenge ist f¨ur große Systeme mit vielen Zust¨anden ungeeignet, weshalb in der Regel eine implizite Darstellung z B durch ROBDDs vorgenommen wird
Das hier vorgestellte Verfahren passt die Verfahren zur Pr¨ufung von Automa-ten¨aquivalenz aus Abschnitt 4.3 auf das iterative Schaltungsmodell an Allerdings stimmt die Fixpunktberechnung nicht mehr exakt mit der aus Abschnitt 4.3 ¨ube-rein: Zur Pr¨ufung zweier Automaten auf ¨Aquivalenz wird dort der Zustandsraum des Produktautomaten traversiert, bis entweder ein Zustand erreicht wird, in dem die beiden Automaten unterschiedliches Verhalten zeigen, oder bis ein Fixpunkt er-reicht ist, d h keine zus¨atzlichen Zust¨ande besucht werden k¨onnen Im letzteren Fall
gilt SR [t − 1] = S R [t] Wird dieser Fixpunkt erreicht, ohne dass ein unterschiedliches
Verhalten der beiden Automaten aufgetreten ist, so sind diese ¨aquivalent
Erfolgt der Vergleich auf Basis des iterativen Schaltungsmodells der Miter-Schaltung zweier Schaltwerke durch eine symbolische Zeitschrittsimulation, wird