Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 20 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
20
Dung lượng
234,12 KB
Nội dung
6.1 ¨ Aquivalenzpr ¨ ufung kombinatorischer und sequentieller Schaltungen 253 muliert 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 =(x 1 , ,x n ) ben ¨ otigt, f ¨ ur den gilt: φ (N )(x 1 , ,x n ) = φ (N )(x 1 , ,x n ) Besitzt N lediglich einen Ausgang, so kann die Testfalleingabe x gefunden werden, indem eine erf ¨ ullende Belegung f ¨ ur φ (N )(x 1 , ,x n ) ⊕ φ (N )(x 1 , ,x n ) 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 Variation N des Booleschen Netzwerkes N 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 Wert F 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 Wert T 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 Fehlermodell, 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 von F 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. 254 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 Wert F (T) tragen soll, dieses auch den Wert F (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 01D DX 0 01D DX 1 1111 1 D D 1 D 1 X D D 11DX X X 1 XXX AND 01D DX 0 000 00 1 01D DX D 0 DD0 X D 0 D 0 DX X 0 XXXX NOT 0 1 1 0 D D D D X X 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 Wert T (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 f 1 und f 2 zu zeigen, muss der Ausgang z der Miter- Schaltung den Wert T 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 z 3 den Wert T und dem Signal z 4 den Wert F 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 z 3 = T ver- langt, dass sowohl z 1 als auch x 2 den Wert T tragen. Dies wiederum bedeutet, dass x 1 = F sein muss. Hiermit ist eine Belegung der prim ¨ aren Eing ¨ ange gefunden: x 1 := F und x 2 := T. Allerdings muss diese Belegung auch konsistent f ¨ ur die Aktivierung des Signals z 4 sein. Aus diesem Grund werden die R ¨ uckw ¨ arts-Implikationen f ¨ ur das OR- und NOT-Gatter der Funktion f 2 auch noch ausgewertet. 6.1 ¨ Aquivalenzpr ¨ ufung kombinatorischer und sequentieller Schaltungen 255 1 1 & ≥ 1 = 1 x 1 x 2 z 2 z 1 z 4 z 3 f 2 f 1 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 z 4 impliziert, dass sowohl das Signal x 1 als auch das Signal z 2 den Wert F zugewiesen bekommen, was wiederum bedeutet, dass x 2 den Wert T erh ¨ alt. Dies ist konsistent mit der bereits gefundenen Belegung β . Somit sind die Funktionen f 1 und f 2 nicht ¨ aquivalent, was z. B. durch die Testfal- leingabe x 1 := F und x 2 := 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 Wert T.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) RETURN F; IF ( Φ = ∅) RETURN T; 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 Φ ; 256 6 Hardware-Verifikation IF (ACTIVATE( Φ )=T) RETURN T; Φ := Φ ; RETURN F; } 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 z z 3 z 4 z z 3 z 4 T F X T F T T X T T F T T T X T T F T X F T T F F X T F T T F T X F T T F X F F F F F F X F F F X F F F F F X T T F T T X F T T F T X T F T T F Wie man in Tabelle 6.3 sieht, gibt es f ¨ ur den Fall z := T und z 3 = z 4 := 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: z 3 := T und z 4 := F oder z 4 := T und z 3 := 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. 6.1 ¨ Aquivalenzpr ¨ ufung kombinatorischer und sequentieller Schaltungen 257 D. h. in diesem Fall k ¨ onnen die vier m ¨ oglichen Belegungen (x 1 := F,x 2 := T), (x 1 := T,x 2 := T), (x 1 := T,x 2 := F) und (x 1 := F,x 2 := F) der prim ¨ aren Eing ¨ ange, verwendet werden, um die Nicht ¨ aquivalenz von f 1 und f 2 simulativ zu zeigen. Die Belegung ist also beliebig. Im Allgemeinen ist dies nicht der Fall. 1 1 & ≥ 1 x 1 x 2 z 2 z 1 z 4 z 3 f 2 f 1 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 z 1 und z 2 . Somit kann die Aktivierung nicht allein mit Hilfe einer lokalen Implikation erfolgen. & & z ≥ 1 x 1 x 2 x 3 z 1 z 2 Abb. 6.14. Globale Implikation [276] Betrachtet man das Boolesche Netzwerk genauer, so erkennt man, dass der prim ¨ are Eingang x 2 in allen F ¨ allen, den Wert T zugewiesen bekommen muss. Dies kann erkannt werden, indem allen Signalen außer x 2 der Wert X zugewiesen wird. Belegt man schließlich x 2 mit F,erh ¨ alt man durch Implikation, dass z = F und somit nicht erf ¨ ullbar ist, d. h. x 2 = F ⇒ z = F. Im Umkehrschluss bedeutet dies: 258 6 Hardware-Verifikation z = T ⇒ x 2 = T Ber ¨ ucksichtigt man diese globale Implikation, kann der Suchraum f ¨ ur Testfalleinga- ben deutlich reduziert werden. 6.1.3 Formale explizite ¨ Aquivalenzpr ¨ ufung von Schaltwerken 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 s 0 ∈ 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 i =(x 4 ,x 3 ,x 2 ,x 1 ,x 0 ) o =(y 2 ,y 1 ,y 0 ) s =(z 3 ,z 2 ,z 1 ,z 0 ) 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 Zu- 6.1 ¨ Aquivalenzpr ¨ ufung kombinatorischer und sequentieller Schaltungen 259 stands ¨ ubergang, der die Ausgabe F 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 2 n m ¨ 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 Simulationsschritt 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 Gatter 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 Wert T zur ¨ uck, so sind die beiden Schaltwerke nicht ¨ aquivalent. Zu pr ¨ ufen ist außer- dem nach jedem 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 z 1 und z 2 gespeichert, w ¨ ahrend M lediglich ¨ uber ein Zustandsregister z 1 verf ¨ ugt. Die Aus- 260 6 Hardware-Verifikation g f i[0] o[0] g f g f o[1]i[1] s[1] i[2] o[2] s[2]s[0] Zeitschritt Zeitschritt Zeitschritt Abb. 6.16. Iteratives Schaltungsmodell des Schaltwerks aus Abb. 6.15 gabefunktionen der beiden Schaltwerke lauten: f (z 1 ,z 2 )=z 1 ∨ z 2 und f (z 1 )=z 1 . Die ¨ Ubergangsfunktionen sind wie folgt definiert: g(x 1 ,x 2 ,z 1 ,z 2 )=(x 1 ∧ (z 1 ∨ z 2 ))∧ (¬x 1 ∧ (z 1 ∨ z 2 )) und g (x 1 ,x 2 ,z 1 )=(x 1 ∨ z 1 ) ∧(¬x 1 ∨ x 2 ). ≥ 1 & & ≥ 1 ≥ 1 & x 1 x 2 a) y 1 z 1 z 2 ≥ 1 y 1 x 1 x 2 b) z 1 s 1 s 3 s 2 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 z 1 [0]=z 2 [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 S R [0]={(F,F,F)}, wobei der Zustands- vektor (z 1 ,z 2 ,z 1 ) zugrunde gelegt wurde. Die symbolische Simulation erfolgt als Zeitschrittsimulation: 6.1 ¨ Aquivalenzpr ¨ ufung kombinatorischer und sequentieller Schaltungen 261 ≥ 1 & & ≥ 1 ≥ 1 & ≥ 1 & & ≥ 1 ≥ 1 & ≥ 1 & & ≥ 1 ≥ 1 & ≥ 1 z 1 [0] z 2 [0] z 1 [0] y[0] ≥ 1 z 1 [1] z 2 [1] z 1 [1] y[1] ≥ 1 z 1 [2] z 2 [2] z 1 [2] z 1 [3] z 1 [3] z 2 [3] y[2] x 1 [0] x 2 [0] x 1 [1] x 2 [1] x 1 [2] x 2 [2] y 1 [0] y 1 [2]y 1 [1] y 1 [0] y 1 [1] y 1 [2] = 1 = 1 = 1 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 x 1 [0] und x 2 [0] an die prim ¨ aren Eing ¨ ange der Schaltwerke erh ¨ alt man nach der symbolischen Simulation des ersten Zeitschritts die Variablenbe- legungen: y 1 [0]=F y 1 [0]=F z 1 [1]=x 1 [0] ∧x 2 [0] z 2 [1]=F z 1 [1]=x 1 [0] ∧x 2 [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 S R [1]={(F,F,F),(T,F,T)}. 2. Mit den symbolischen Werten z 1 [1], F und z 1 [1] sowie den symbolischen Einga- bewerten x 1 [1] und x 2 [1] kann der zweite Zeitschritt symbolisch simuliert wer- den. Die Variablenbelegungen ergeben sich zu: y 1 [1]=z 1 [1] y 1 [1]=z 1 [1] z 1 [2]=(x 1 [1] ∨z 1 [1]) ∧x 2 [1] z 2 [2]=¬x 1 [1] ∧z 1 [1] z 1 [2]=(x 1 [1] ∨z 1 [1]) ∧(¬x 1 [1] ∨x 2 [1]) Nach Substitution der im ersten Zeitschritt ermittelten Ausdr ¨ ucke f ¨ ur z 1 [1] und z 1 [1] ergibt sich somit y[1]=F. Die Menge der erreichbaren Zust ¨ ande nach zwei Zeitschritten ergibt sich zu S R [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 [1] 262 6 Hardware-Verifikation und z [1] nur entsprechend der im ersten Zeitschritt ermittelten Ausdr ¨ ucke erfol- gen darf, d. h. nur die in S R [1] enthaltenen Zust ¨ anden werden als Variablenbele- gung ber ¨ ucksichtigt. 3. Mit den symbolischen Werten z 1 [2],z 2 [2],z 1 [2] sowie den symbolischen Einga- bewerten x 1 [2] und x 2 [2] kann der dritte Zeitschritt simuliert werden. Die Varia- blenbelegungen ergeben sich zu: y 1 [2]=z 1 [2] ∨z 2 [2] =(x 1 [1] ∧x 2 [1]) ∨(x 2 [1] ∧z 1 [1]) ∨(¬x 1 [1] ∧z 1 [1]) y 1 [2]=z 1 [2] =(x 1 [1] ∧x 2 [1]) ∨(x 2 [1] ∧z 1 [1]) ∨(¬x 1 [1] ∧z 1 [1]) z 1 [3]=(x 1 [2] ∨z 1 [2] ∨z 2 [2]) ∧x 2 [2] z 2 [3]=¬x 1 [2] ∧(z 1 [2] ∨z 2 [2]) z 1 [3]=(x 1 [2] ∨z 1 [2]) ∧(¬x 1 [2] ∨x 2 [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 S R [3]={(F,F,F),(F,T, T), (T, F,T),(T,T,T)}. Bei der Bestimmung von S R [3] muss wiederum die Erreichbarkeitsmenge S R [2] ber ¨ ucksichtigt werden. An dieser Stelle sieht man, dass S R [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 z 1 [i], z 2 [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 S R [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 S R [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