1. Trang chủ
  2. » Công Nghệ Thông Tin

Digitale Hardware/ Software-Systeme- P14 docx

20 151 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Äquivalenzprüfung Kombinatorischer Und Sequentieller Schaltungen
Trường học Standard University
Chuyên ngành Digital Hardware/Software Systems
Thể loại Luận văn
Năm xuất bản 2023
Thành phố City Name
Định dạng
Số trang 20
Dung lượng 234,12 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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 1

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 = (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 2

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 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 3

1

&

≥ 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 4

256 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 5

D 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 6

258 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 7

Zu-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 8

Aus-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 10

262 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

Ngày đăng: 03/07/2014, 08:20