Sie sind auf Seite 1von 42

Gliederung

...
 Einführung
 Schaltungsdarstellung
 Äquivalenzvergleich
• Kombinatorisch
• Sequentiell
• Analog

He · SV · K8
Nr.:1
Sequentielle Schaltungen

z1  a,
z2  b  z1  z 2 ,
y  z1  z 2

z1  az1  ab
y  z1

He · SV · K8
Nr.:2
Übersicht BDD-basierte
Kombinatorische Algorithmen
Schaltungen
Equivalence-
Strukturbasierte
Checking
Algorithmen
Sequentielle
Schaltungen

SAT-basierte Algorithmen
Analoge
Schaltungen
Zustandsraum-
Transformation

Symbolische
Erreichbarkeitsanalyse des
Produktautomaten

He · SV · K8
Nr.:3
Sequentieller Äquivalenzvergleich

 Implementierung:
Schaltung in Form eines booleschen Gatternetzes z.B. als
• Gatternetzlisten
• Verhaltensbeschreibungen System-
Funktionelle Algorithmische- Strukturelle
• Layout einer Schaltung Sicht
Register-Transfer
Sicht

 Spezifikation: Gatter-
Schalter-
Schaltung in selbiger Form mit Elektrische-
Ebene
unterschiedlicher Zustandskodierung

 Gesucht:
Sind die Schaltungen äquivalent?

Physikalische
Sicht

He · SV · K8
Nr.:4
Äquivalenzvergleich sequentieller Schaltungen
 Produktautomat  A (z A )
yA

 A (x,z A ) z A

Q D

Q
=

x y   1?
Q D

B (xB ,zB )
zB
yB
B (z)

He · SV · K8
Nr.:5
Äuivalenzvergleich

 Nachweis, das für alle erreichbaren Zustände der Ausgang y = 1 ist!


 Wie?
 Traversierung des Zustandsraums der Produktmaschine!
 Zustandsübergangsdiagramm aufstellen

He · SV · K8
Nr.:6
Sequentielle Schaltungen

z1  a,
z2  b  z1  z 2 ,
y  z1  z 2

z1  az1  ab
y  z1

He · SV · K8
Nr.:7
Zustandsübergangsfunktion der unteren Hälfte
z1  az1  ab
y  z1

Übergangstabelle
a b z1 z1‘
ab
0 0 0 1
0 0 1 1
0
0 1 0 1
0 1 1 1
a ab
1 0 0 0
1 0 1 0
1
1 1 0 1
a 1 1 1 0

He · SV · K8
Nr.:8
Zustandsübergangsfunktion II
z1  a,
z2  b  z1  z 2 ,
y  z1  z 2
Übergangstabelle
a b z1 z2 z1‘ z2 ‘
0 0 0 0 1 0
a a
0 0 0 1 1 0
z1z2 10 11 0 0 1 0 1 0
0 0 1 1 1 0
a 0 1 0 0 1 1
ab
a b 0 1 0 1 1 0
a
a 0 1 1 0 1 0
00 01
ab 0 1 1 1 1 0
ab
...
a
He · SV · K8
Nr.:9
Konstruktion der Produktautomaten

 Endlicher Automat (hier Moore) in Vektorschreibweise und mit Ausgangsfunktion 

FSMA  (QA ,  A , A ,  A ,Q0,A )  (z A ,x A , A ,  A ,z0,A )


FSMB  (zB ,xB , B , B ,z0,B )

mit  A  Q A   A  Q A = {(z A ,x A )  z A }= A (z A ,x A )


mit  A  Q A  PA = {z A  y A }= A (z A ,x A )
 z   z A ,zB , 
 
 x  x A  xB , 
FSMAB   ([z A ,zB ],x)  [ A (z A ,x), B (zB ,x)], 
 ([z A ,zB ])  [  A (z A ), B (zB )] 
 
 q0  qA,0 ,qB,0  
   

He · SV · K8
Nr.:10
Produktautomat

a
a
ab a
ab
z1z2|z1
100 110 a 101 a 111
ab
ab a
ab
ab
a b a a b a b
000 010 ab 001 011

ab ab
ab
ab ab
a

• Weglassen der Eingänge -> Kripke Struktur

He · SV · K8
Nr.:11
Produktautomat

 Oder viel einfacher:

z1  a, z1  az1  ab



z2  b  z1  z 2 , y  z1
y  z1  z 2
z1  a,
z2  b  z1  z 2
z3  az3  ab
y1  z1  z 2
y 2  z3

He · SV · K8
Nr.:12
Bestimmung der Äquivalenz

 Verschalten der Ausgänge miteinander:


 q  q ,q  , 
  A B

 x  x A  xB , 
 
PROD AB,EC   ([z A ,zB ],x)  [ A (z A ,x), B (zB ,x)], 
 ([z ,z ])  (  (z )   (z )) 
 A B
i
i,A A i,B B

 q  q ,q  
 0  A,0 B,0  

 AB  1 ?

He · SV · K8
Nr.:13
Produktautomat mit Äquivalenz am Ausgang

100 110 101 111


f1f2|f1 1 1 0 0
y

000 010 001 011


0 1 1 0

He · SV · K8
Nr.:14
Traversierung von Automaten

 Grundidee: Kann ein Zustand erreicht werden, an dem der Ausgang


des Produktautomaten mit EC 1 wird
Erreichbarkeitsanalyse
• Tiefensuche möglich oder
• Mengenorientierte Abarbeitung der erreichbaren Zustände als Breitensuche

 Wenn Initialzustand nicht gegeben


• Initialisierungsequenz abwarten
• Im schlechtesten Fall sequentielle Tiefe der einzelnen Automaten

He · SV · K8
Nr.:15
Erreichbarkeitsanalyse: Algorithmus
Erreichbarkeit( (z,x),z 0 )

Erreichbar  z0

Akt  z0

Nach  Nachfolger( Akt )


 
 z z  Akt x : z  (z,x)

Akt  Nach \ Erreichbar

Erreichbar  Erreichbar  Nach

Solange Nach  

He · SV · K8
Nr.:16
Produktautomat mit Äquivalenz am Ausgang

100 110 101 111


Erreichbar

000 010 001 011

Akt Nach

He · SV · K8
Nr.:17
Produktautomat mit Äquivalenz am Ausgang

100 110 101 111


Erreichbar

Nach

000 010 001 011

Akt

He · SV · K8
Nr.:18
Produktautomat mit Äquivalenz am Ausgang

100 110 101 111


Erreichbar

Nach

000 010 001 011

He · SV · K8
Nr.:19
Symbolische Traversierung

 Problem: zu viele erreichbare Zustände schon für kleine


Schaltungen z.B. Zähler (state explosion)

Implizite Zustandsmengenspeicherung nötig

He · SV · K8
Nr.:20
Boolesche Quantifizierung
 Definition
• Existentielle Quantifizierung

x : f(x)  f x  f x
• Universelle Quantifizierung

x : f(x)  f x  f x

• Quantifizierung mehrerer Variablen


x,y : f(x,y)  x : f(x,y  1)  x : f(x,y  0)
• Regeln
x :  f(x)  g(x)   x : f(x)  x : g(x)
x :  f(x)  g(x)   x : f(x)  x : g(x)
• Vektorschreibweise
x : f(x)  i : x i  x : f(x)  x1x 2 ...x n : f(x1,x 2 ...,x n )

He · SV · K8
Nr.:21
Charakteristische Funktion

 Darstellung von Mengen von Zuständen durch charakteristische


Funktion
 Definition: Die charakteristische Funktion  die wahr ist für
Zustände 𝒛𝒊 und falsch für Zustände 𝒛𝒌 legt eine Menge  fest, deren
Elemente alle Zustände 𝒛𝒊 ∈ 𝚽 sind.
 Hier wird die Menge B durch

festgelegt. B
 Z ist hier die Menge aller
Zustände

He · SV · K8
Nr.:22
Charakteristische Funktion II

Wahrheitsstabelle
z1 z2 A B
B A 0 0 1 0
0 1 0 1
1 0 1 1
1 1 1 1

𝑧=[0,1]
Ԧ Charakteristische Funktionen:
 A  z1  z2

B  z1  z2

He · SV · K8
Nr.:23
Rechnen mit Charakteristische Funktion

 Regeln zur Verknüpfung: Wahrheitsstabelle


z1 z2 A B AB

0 0 1 0 0
0 1 0 1 0
1 0 1 1 1
1 1 1 1 1
B A

He · SV · K8
Nr.:24
Charakteristische Funktion als BDD

 Die Berechnung von Mengen muss nicht mehr explizit geschehen


sondern implizit durch charakteristische Funktionen.
 Charakteristische Funktionen lassen sich gut als OBDDs darstellen.

B

z1

z2

0 1

He · SV · K8
Nr.:25
Größenbestimmung der Mengen durch OBDDs

 Wieviel Mengenelemente sind in einer Menge enthalten, die durch


eine charakteristische Funktion  dargestellt ist?
 Die charakteristische Funktion sei durch einen OBDD dargestellt
B
Anzahl von Elementen 1
(2  4)
Weise Blattknoten 1 2n zu z1 2

1
(0  4)
Für alle Knoten vom Boden bis zur Wurzel des Baumes 2 z2

Weise Knoten Anzahl zu:


0 1
k   low(v)  high(v) 
1 22
2

He · SV · K8
Nr.:26
Bildberechnung auf Mengen

 Gegeben
• alle Zustände in der Menge A
• Startzustandsmenge: B
 Gesucht
• Folgezustandsmenge: C=img(B) unter
der Übergangsfunktion 

C  img(B)  xz : B (z)   (z,z,x) z


C

B

He · SV · K8
Nr.:27
Darstellung der Übergangsfunktion 

 Die Übergangsfunktion wird bei Binärkodierung in eine


beschreibende Menge von Relationen umgewandelt
z=(z,x)  Q    Q = {((z,x),z)}

  ist die charakteristische Funktion aller Übergangsrelationen:

    zi  i (z,x)
i

 Beispiel:
 z1  a,



   z2  b  z1  z 2      
1 
  z a  z a   z (b  z  z )  z (b  z  z )  
 1 2 1 2 2 1 2
 


 3
z   az 3  ab




 z3  (az3  ab)  z3  (az 3  ab)
  

He · SV · K8
Nr.:28
Berechnung der Bildmenge: Beispiel

C  img(B)  xz : B (z)   (z,x,z)  (z)


 Das Bild des Startzustands z0  [0,0,0] : B (z)  z1  z2  z3


C  xz3 z1z 2 : z1z2 z3   z1 a  z1 a   z2  (b  z1  z 2 )  z2  (b  z1  z 2 )  
 z  (az
3 3  ab)  z3  (az 3  ab) 
 xz3 z1 : 
z1z3   z1 a  z1 a   z2 bz1  z2 bz1 )  
 z  (az
3 3  ab)  z3  (az 3  ab) 
 xz3 : z   za  za    z b  z b    z  (az  ab)  z   ( az  ab) 
3 1 1 2 2 3 3 3 3

 ba:  za  za    z b  z b    z ab  z ab 


1 1 2 2 3 3

 b:   z    z b  z b    z b  z b      z    z b  z b    z  
1 2 2 3 3 1 2 2 3

 z1z2 z3  z1 z2 z3  z1 z2 z3  z1 z2 z3

He · SV · K8
Nr.:29
Berechnung der Bildmenge: Beispiel

C  img(B)  xz : B (z)   (z,x,z)  (z)


 Das Bild des Startzustands z0  [0,0,0] : B (z)  z1  z2  z3


C  xz3 z1z 2 : z1z2 z3   z1 a  z1 a   z2  (b  z1  z 2 )  z2  (b  z1  z 2 )  
 z  (az
3 3  ab)  z3  (az 3  ab) 
 xz3 z1 : 
z1z3   z1 a  z1 a   z2 bz1  z2 bz1 )  
 z  (az
3 3  ab)  z3  (az 3  ab) 
 xz3 : z   za  za    z b  z b    z  (az  ab)  z   ( az  ab) 
3 1 1 2 2 3 3 3 3

 ba:  za  za    z b  z b    z ab  z ab 


1 1 2 2 3 3

 b:   z    z b  z b    z b  z b      z    z b  z b    z  
1 2 2 3 3 1 2 2 3

 z1z2 z3  z1 z2 z3  z1 z2 z3  z1 z2 z3

He · SV · K8
Nr.:30
Symbolische Erreichbarkeitsanalyse

 Darstellung von Mengen als OBDD


 Die Berechnung des Nachfolgerzustands kann mit der Booleschen
Quantifizierung geschehen
 Alle Operationen auf OBDDs definiert.
 Fixpunktalgorithmus zur Erreichbarkeitsanalyse kann direkt
angewendet werden
 Aber: Berechnung der Bildmenge führt zu großen BDDs
• hauptsächlich für 

C  img(B)  xz : B (z)  (z,x)


 Beobachtung: Quantifizierung verringert sehr stark die BDD-Größe
(Teilbäume werden eliminiert)

He · SV · K8
Nr.:31
Quantifizierung mit BDDs: Beispiel

a a a a 1

 C  (z)
z1 z1 z1 z1

z‘1 z‘1 z‘1 z‘1 z‘1 z‘1 z‘1


BDD: Fazit:
z2 • 0,1 Einsetzen ist
einfach
•  -Operation ist
0 1 0 1 0 1 0 1 aufwändiger
(z,x,z)  z (z,x,z)  z (z,x,z) (z,x,z)
2 2

He · SV · K8
Nr.:32
Beispiel


C  xz3 z1z 2 : z1z2 z3   z1 a  z1 a   z2  (b  z1  z 2 )  z2  (b  z1  z 2 )  
 z  (az
3 3  ab)  z3  (az 3  ab) 
 xz3 z1 : 
z1z3   z1 a  z1 a   z2 bz1  z2 bz1 )  
 z  (az
3 3  ab)  z3  (az 3  ab) 
 xz3 : z   za  za    z b  z b    z  (az  ab)  z   ( az  ab) 
3 1 1 2 2 3 3 3 3

 ba:  za  za    z b  z b    z ab  z ab 


1 1 2 2 3 3

 b:   z    z b  z b    z b  z b      z    z b  z b    z  
1 2 2 3 3 1 2 2 3

 z1z2 z3  z1 z2 z3  z1 z2 z3  z1 z2 z3

He · SV · K8
Nr.:33
Effiziente Bildberechnung

 Beobachtung: Der Nachfolgezustand x‘i hängt oft nur von einer


kleinen Menge von Vorgängerzuständen x‘k, x‘l ab

 Idee: Existentielle Quantifizierung möglichst frühzeitig machen


 Die Konjunktion kann verschoben werden, wenn g nicht von x
abhängt:
x :  f(x)  g(x)   g g( x) x : f(x)  g

 Vollständige Imagefunktion

C  img(B)  xz : B (z)   (z,x,z)  xz : B (z)    zi  i (z,x) 


i

He · SV · K8
Nr.:34
Vorgehen

 Suche die k , heraus, die möglichst nur von einem zi abhängen und
bei denen dieses zi nicht in anderen is vorkommt.
 Beginne mit B, der charakteristischen Funktion der Bildmenge
 Für alle i in vorgegebener Reihenfolge
• Bestimme imgk 1  zi : imgk   zk  i (zi ,x) 

 Falls eine k von mehreren Variablen abhängen, müssen diese dann


gemeinsam eingesetzt werden

He · SV · K8
Nr.:35
Beispiel
 
2
C  xz 2 z1z3 : z1z2 z3  z 3  (az 3  ab)  z3  (az 3  ab)    z i  i (z,x) 
i 1

   
1
 xz1z 2 : z1z2  z3 ab  z3 ab  z 2 (b  z1  z 2 )  z2 (b  z1  z 2 )    z i  i (z,x) 
i 1

 xz1 :    
z1  z3 ab  z3 ab  z2 bz1  z2 bz1   z1 a  z1 a 

 ba:  z1 a  z1 a    z2 b  z2 b    z ab  z ab 


3 3

 b:  z1    z2 b  z2 b    z b  z b    z    z b  z b    z 


3 3 1 2 2 3

 z1z2 z3  z1 z2 z3  z1 z2 z3  z1 z2 z3

 BDD bleibt klein durch Schrittweisenaufbau


 Nachteil i muss jedes mal neu (abhängig von der Menge B) berechnet werden

He · SV · K8
Nr.:36
Äquivalenz von Automaten ohne Reset

 Automaten ohne Reset-Eingang können in der Regel durch eine


Rücksetzfolge in einen definierten Zustand gebracht werden
 Falls die Automaten äquivalent sind muss es auch eine
gemeinsame Rücksetzfolge geben.

a 6
6 a a
1 a a
2 1 a 2
5
a 5
a a a a a
a a
4
3 4
3
a a
Rücksetzsequenz: a,a,a
He · SV · K8
Nr.:37
Bestimmung der gemeinsamen minimalen
Rücksetzsequenz

 Es gibt Algorithmen zur Bestimmung der minimalen gemeinsamen


Rücksetzsequenz basierend auf Fixpunktiterationen.
 Durch Anlegen der Rücksetzsequenz werden die Systeme in einen
gemeinsamen Rücksetzzustand gebracht.
 Somit ist eine Äquivalenzprüfung möglich
 Anwendungsbeispiele:
• Schieberegister
• ...

He · SV · K8
Nr.:38
Strukturelle Methoden

 Häufig weisen die Schaltungen nur leicht modifizierte


Zustandskodierungen auf und haben große gleich Schaltungsteile.
 Eine Ausnutzung struktureller Äquivalenzen bringt dann Vorteile.
 Methoden
• Aufspaltung des Produktautomaten in Frames
• Berechnung der erreichbaren Zustandsmenge nach jedem Zeitschritt
 Der Fixpunkt muss durch die äquivalente Zustandsmenge A(i) =
Zustandmenge A(i-k) für i erkannt werden
• k ist begrenzt durch sequentielle Tiefe

 Vorteil: strukturelle Äquivalenzen ermöglichen die erreichbaren


Zustände sehr kompakt (strukturell zu speichern)

He · SV · K8
Nr.:39
Strukturelle Äquivalenz für Timeframes
 Beweise Äquivalenz der Ausgänge in jedem Timeframe
 Nutze strukturelle Äquivalenzpunkte in den Schaltungen für den Beweis

=
yA yA yA
 A (z A )  A (z A )  A (z A )

z A z A z A
z A,0  A (x,z A )  A (x,z A )  A (x,z A ) ...

x x x
zB,0 B (xB ,zB ) B (xB ,zB ) B (xB ,zB ) ...
zB zB zB

 B (z)  B (z)  B (z)


yB yB yB

He · SV · K8
Nr.:40
Timeframes für den strukturellen Äquivalenzvergleich

CPr od,1  {[f1,f2 f1 ]}  {101,000} CPr od,2  {101,000,011,111} CPr od,3  {101,000,011,111}
yPr od  {1,1} yPr od  {1,1,1,1} yPr od  {1,1,1,1}
He · SV · K8
Nr.:41
Zusammenfassung Äquivalenzvergleich sequentieller
Schaltungen

 Produktautomaten-basiert
 Erreichbarkeitsanalyse
 BDD-Basierte Methoden symbolische Methoden
 Fixpunktiteration
 Verbesserungen:
• Strukturelle Methoden

He · SV · K8
Nr.:42

Das könnte Ihnen auch gefallen