Einhalten der Beschr¨ankungen Liegen alle Beschr¨ankungen, inklusive Umgebungsbeschr¨ankungen und schriften, f¨ur einen neuen Simulationsschritt vor, so muss eine neue Belegung f¨urdie E
Trang 1Beschr¨ankung der Testf¨alle
Beschr¨ankungen und Zusicherungen sind zwei Seiten der selben Medaille Beide
sind formale Spezifikationen von Eigenschaften Zusicherungen sind diejenigen genschaften, die es w¨ahrend der Verifikation zu ¨uberpr¨ufen gilt Beschr¨ankungen hingegen sind Bedingungen, die w¨ahrend der Verifikation erf¨ullt sein m¨ussen Bei
Ei-der gesteuerten, zuf¨alligen Simulation geben Beschr¨ankungen also an, welche binationen von Eingaben wann erzeugt werden d¨urfen
Kom-Prinzipiell k¨onnen zwei Arten von Beschr¨ankungen unterschieden werden:
1 Umgebungsbeschr¨ankungen spezifizieren die Protokolle der Schnittstellen des
Systems mit seiner Umgebung
2 Testvorschriften sind diejenigen Beschr¨ankungen, die verwendet werden, um die
Simulation zu interessanten Testf¨allen zu f¨uhren
Mit anderen Worten: Man kann sagen, dass gesteuerte zuf¨allige Simulation nur dannsinnvoll ist, wenn diese sowohl die Randbedingungen der Umgebung ber¨ucksich-tigt als auch in der Lage ist, interessantere Testf¨alle unter Ber¨ucksichtigung vonTestvorschriften zu generieren Dies ist in Abb 3.7 dargestellt Der Eingaberaumwird durch die Umgebungsbeschr¨ankungen auf einen akzeptierten Eingaberaum re-duziert Testfalleingaben aus dem akzeptierten Eingaberaum k¨onnen zur Stimulationdes SUV verwendet werden Man erkennt allerdings, dass es kleine Bereiche amRand gibt, die eventuell interessanter f¨ur die Verifikation sein k¨onnten In diesen Be-reichen einen Testfall zuf¨allig zu generieren ist relativ unwahrscheinlich, da eine vielgr¨oßere Anzahl g¨ultiger Testf¨alle außerhalb des interessierenden Bereichs existiert.Durch die Verwendung zus¨atzlicher Testvorschriften kann man allerdings erreichen,dass Testf¨alle genau aus diesen Randbereichen erzeugt werden
Einhalten der Beschr¨ankungen
Liegen alle Beschr¨ankungen, inklusive Umgebungsbeschr¨ankungen und schriften, f¨ur einen neuen Simulationsschritt vor, so muss eine neue Belegung f¨urdie Eing¨ange des SUV gefunden werden, die alle Beschr¨ankungen erf¨ullt Dies wird
Testvor-auch als L¨osen eines sog Beschr¨ankungs-Erf¨ullbarkeitsproblem (engl Constraint Satisfaction Problem, CSP) bezeichnet Ein CSP besteht dabei aus:
• einer Menge an Variablen,
• einer nichtleeren Wertemenge f¨ur jede Variable,
• einer Menge an Beschr¨ankungen, welche die Wertebelegungen f¨ur die Variablen
beschr¨anken, und
• optional einer Kostenfunktion, welche die Qualit¨at einer erf¨ullenden
Wertebele-gung bestimmt
Das L¨osen eines CSP besteht in der Suche einer Wertebelegung aller Variablen,
so dass alle Beschr¨ankungen gleichzeitig erf¨ullt sind, oder es wird gezeigt, dass keinesolche Belegung existiert Abh¨angig von der Art der Definitionsbereiche und der Artder Beschr¨ankungen kann das allgemeine CSP in Klassen unterteilt werden, f¨ur diespezielle L¨osungsans¨atze existieren:
Trang 2Eingaberaum mit Umgebungsbeschr¨ankungen
Eingaberaum mit und Testvorschriften
Eingaberaum
Abb 3.7 Einfluss von Umgebungsbeschr¨ankungen und Testvorschriften [472]
• Bin¨are Entscheidungsdiagramme (engl Binary Decision Diagrams, BDDs) sind
graphenbasierte Datenstrukturen zur Repr¨asentation Boolescher Funktionen sen sich also die Beschr¨ankungen als Boolesche Funktionen darstellen, kann dasCSP durch Konstruktion eines BDDs gel¨ost werden, das alle erf¨ullenden Varia-blenbelegungen beschreibt
Las-• SAT-Solver und automatische Testfallgenerierung (siehe auch Abschnitt 6.1.2)
sind Suchverfahren f¨ur Belegungen aussagenlogischer Formeln Der Unterschiedzwischen beiden Verfahren besteht darin, dass SAT-Solver auf einer Menge vonKlauseln operieren, w¨ahrend die automatische Testfallgenerierung auf Schal-tungsbeschreibungen arbeitet Allerdings lassen sich die Schaltungsbeschrei-bungen in eine Klauselmenge und umgekehrt transformieren Im Gegensatz zuBDDs wird aber bei diesen Suchverfahren immer nur eine erf¨ullende Variablen-belegung generiert
• Lineare Programmierung l¨ost ein lineares Ungleichungssystem f¨ur reellwertige Variablen mit linearer Zielfunktion Eine Spezialform ist die sog ganzzahlige lineare Programmierung (engl Integer Linear Programming, ILP), bei der die
Variablen ganzzahlig sein m¨ussen Dies kann weiter auf die Definitionsmenge
{0,1} eingeschr¨ankt werden, hierdurch entstehen sog 0-1-ILPs.
• Die engl Constraint Logic Programming (CLP) verbindet CSP und
Logikpro-grammierung Somit kann CLP sowohl lineare als auch nichtlinear gen sowie aussagenlogische als auch temporallogische Formeln l¨osen Das ei-gentliche L¨osen erfolgt dabei mittels SAT-Solvern, (I)LP-Solvern oder Intervall-arithmetik
Beschr¨ankun-Der erste Ansatz mittels bin¨arer Entscheidungsdiagramme wird als
Offline-An-satz zum L¨osen von CSPs bezeichnet, da bereits nach Konstruktion des
Trang 3Entschei-dungsdiagramms alle L¨osungen bekannt sind, und somit die Testf¨alle generiert
wer-den k¨onnen Die restlichen drei Verfahren werwer-den im Gegensatz dazu als
Online-Ans¨atze bezeichnet, da diese w¨ahrend der Simulation f¨ur jede neue Testfalleingabeimmer wieder nach neuen L¨osungen gefragt werden
In beiden F¨allen stellt die Unerf¨ullbarkeit der Beschr¨ankungen ein schwierigesProblem dar Tritt dieses Problem auf, kann die Verifikation nicht fortgesetzt wer-den Es muss zun¨achst eine Diagnose der Beschr¨ankungen durchgef¨uhrt werden, umfestzustellen, ob ein Fehler bei der Erstellung der Umgebungsbeschr¨ankungen oderbei der Erstellung der Testvorschriften vorliegt
Die Randomisierung
Durch das L¨osen des CSP ist sichergestellt, dass lediglich g¨ultige Testfalleingaben
generiert werden Daneben stellt sich allerdings die Frage, wie auch gute
Testfallein-gaben erzeugt werden k¨onnen?
Eine Minimalanforderung an gute Testf¨alle sollte bei einer zuf¨alligen tion sein, dass jeder g¨ultige Testfall mit der selben Wahrscheinlichkeit ausgew¨ahltwerden kann Diese Annahme gilt allerdings nur solange, wie jeder Testfall auchden gleichen Beitrag zu dem gew¨ahlten Vollst¨andigkeitskriterium beitr¨agt Dies istoffensichtlich nicht allgemeing¨ultig Zum einen hat das zu pr¨ufende System ein spe-zielles Ein-/Ausgabeverhalten, zum anderen betonen verschiedene ¨Uberdeckungs-maße auch unterschiedliche Testf¨alle Vor diesem Hintergrund ist es besser, von ei-ner gewichteten Verteilung f¨ur die H¨aufigkeit von Testf¨allen auszugehen und spe-ziell f¨ur diese Verteilung Fairness bei der Auswahl der Testf¨alle zu schaffen AlsBeispiel sei hier lediglich die Verifikation von Einheiten f¨ur arithmetische Berech-nungen genannt Bei diesen ist es oft vorteilhaft, minimale und maximale Werte beider Variablenbelegung st¨arker zu gewichten, da diese erfahrungsgem¨aß eher Fehlerprovozieren
Simula-Neben der Fairness bei der Erzeugung von Testf¨allen muss allerdings sichtigt werden, dass die Simulationsl¨aufe nachvollziehbar und reproduzierbar seinm¨ussen Ohne Kenntnis der fehlererzeugenden Testfalleingabe k¨onnte sonst dieFehlerlokalisierung unangemessen aufwendig werden Durch die Verwendung vonPseudo-Randomisierungsalgorithmen wird nahezu eine Gleichverteilung bei derTestfallauswahl erreicht und die Reproduzierbarkeit durch Speicherung des Anfangs-zustands des Zufallszahlengenerators garantiert
ber¨uck-Das L¨osen der Beschr¨ankungen und die zuf¨allige Generierung von Testf¨allensind eng miteinander gekoppelt Um hier den Aufwand bei der Erstellung von Test-benches zu minimieren, bietet es sich an, auf existierende L¨osungen zur¨uckzugreifen.Die wichtigsten Vertreter in diesem Bereich sind SystemVerilogs Random Constraintlanguage (SVRC), SystemC Verification Library (SCV) und die Testbenchsprache e
Trang 4Aquivalenzpr ¨ufung
Aufgabe der ¨Aquivalenzpr¨ufung ist es, zu zeigen, dass das Verhaltensmodell einerSpezifikation und das Strukturmodell einer Implementierung die gleiche Funktionrepr¨asentieren (siehe Abb 4.1) Hierbei kann eine Pr¨ufung zwischen zwei Beschrei-bungen auf der selben oder unterschiedlichen Abstraktionsebenen erfolgen Obwohlauf vielen Abstraktionsebenen die Synthese mittlerweile automatisiert abl¨auft [426],ist eine ¨Aquivalenzpr¨ufung h¨aufig notwendig, da die verwendeten Synthesewerk-zeuge nicht zwangsl¨aufig fehlerfrei funktionieren Zum anderen wird ¨Aquivalenz-pr¨ufung eingesetzt, um zu zeigen, dass das Verhalten zweier Implementierungenidentisch ist In diesem Fall dient eine der Implementierungen als Spezifikation (Re-ferenz)
Verhalten
¨ Aquivalenz- pr¨ufung Abstraktion &
Struktur
Abb 4.1 ¨Aquivalenzpr¨ufung
Da bei der ¨Aquivalenzpr¨ufung jedes m¨ogliche Verhalten sowohl der
Spezifikati-on als auch der Implementierung zu ¨uberpr¨ufen ist, sind Verfahren zur ¨pr¨ufung sehr rechenintensiv Deshalb wird die ¨Aquivalenzpr¨ufung typischerweise
Aquivalenz-C Haubelt, J Teich, Digitale Hardware/Software-Systeme, eXamen.press,
DOI 10.1007/978-3-642-05356-6 4, c Springer-Verlag Berlin Heidelberg 2010
Trang 5lediglich auf kleine und mittelgroße Systeme angewendet Sie ist daher vorwiegendauf tieferen Abstraktionsebenen zu finden.
Abbildung 4.2 visualisiert die ¨Aquivalenzpr¨ufung von zwei Implementierungen
In diesem Fall wurde jede Implementierung von unterschiedlichen Entwicklern sierend auf der selben Spezifikation entworfen Ein solches Vorgehen findet manbeispielsweise in der Luft- und Raumfahrttechnik, um eine redundante Auslegungvon Systemen zu erreichen Ein Problem, welches hierbei adressiert wird, ist, dassunterschiedliche Entwickler die selbe Spezifikation verschieden umsetzen So l¨asstsich in einem Vergleich der Implementierungen ein Fehler detektieren Ist also eineSpezifikation unvollst¨andig oder mehrdeutig, ist die Chance gr¨oßer, dass mindestensein Entwickler Teile des System richtig implementiert
ba-Bild der Spezifikation
Bild der Spezifikation
Trang 6und Systemen mit Speicher Verfahren zur ¨Aquivalenzpr¨ufung, die auf Systeme
oh-ne Speicher angewendet werden, oh-nennt man kombinatorisch ¨
Aquivalenzpr¨ufungs-verfahren f¨ur Systeme mit Speicher werden als sequentiell bezeichnet Auf wichtige
Methoden zur ¨Aquivalenzpr¨ufung, klassifiziert nach impliziten, expliziten, ellen und strukturellen Methoden, wird im Folgenden n¨aher eingegangen
sequenti-4.1 Implizite ¨ Aquivalenzpr ¨ufung
Implizite Verfahren zur ¨Aquivalenzpr¨ufung basieren auf der Idee, dass
(eingeschr¨ank-te) Funktionen eindeutig repr¨asentiert werden k¨onnen Besitzen zwei Funktionen in
einer solchen Repr¨asentation den selben Repr¨asentanten, so sind sie ¨aquivalent
Die-ses Vorgehen wird implizite ¨ Aquivalenzpr¨ufung genannt, da die eigentliche
Verifika-tionsaufgabe, die ¨Aquivalenz zu zeigen, nicht explizit ausgedr¨uckt wird Im den wird die implizite, kombinatorische ¨Aquivalenzpr¨ufung anhand von Polynom-funktionen eingef¨uhrt In den Abschnitten 6.1.1 und 6.2 werden spezielle Methodenzur impliziten, kombinatorischen ¨Aquivalenzpr¨ufung von Hardware diskutiert
Folgen-4.1.1 Kanonische Funktionsrepr¨asentationen
Die implizite, kombinatorische ¨Aquivalenzpr¨ufung auf Basis eindeutiger repr¨asentationen ist eine formale Verifikationsmethode Sie ist vollst¨andig und somitf¨ur das Verifikationsziel eines Beweises geeignet Um implizite Verfahren zur ¨Aqui-valenzpr¨ufung entwickeln zu k¨onnen, muss zun¨achst der Begriff der Repr¨asentati-
Funktions-on vFunktions-on FunktiFunktions-onen genauer definiert werden Formal kann dies wie folgt formuliertwerden (siehe auch Anhang A.2): Sei(R,φ) eine Repr¨asentation der betrachteten
Funktionen f ∈ F mitφ :R → F Dann heißt (R,φ) vollst¨andig, fallsφ
surjek-tiv ist, d h f¨ur jedes Element f ∈ F existiert ein r ∈ R, so dassφ(r) = f (R,φ)
heißt eindeutig, fallsφ injektiv ist, d h jede Funktion f ∈ F ist h¨ochstens einmal
Funktionswert Fallsφbijektiv ist, also surjektiv und injektiv ist, dann ist(R,φ) eine
kanonische Repr¨asentation der Funktionen f ∈ F Seiφ(r) = f , dann sagt man, dass
r ein Repr¨asentant von f ist undφist die Interpretation Man beachte, dass f¨ur
ka-nonische Repr¨asentationen von Funktionen, die Repr¨asentanten einer Funktion stetseindeutig sind
Beispiel 4.1.1 Viele Berechnungen, die in Systemen durchgef¨uhrt werden, lassen sich als Polynome beschreiben Als Beispiel sei hier die diskrete Faltung conv (x1,x2,N) von zwei Signalen x1und x2in einem endlichen Zeitfenster von N Schritten genannt,
die sich wie folgt berechnen l¨asst:
conv(x1,x2,N) (i) := N∑−1
k:=0
x1(k) · x2(i − k)
F¨ur N= 4 ist das Blockschaltbild in Abb 4.3 dargestellt Die aktuellen Signale
x1(3) und x2(3) liegen zusammen mit den drei vorherigen Signalen x i (2),x i(1) und
x i (0) als Eing¨ange des Systems an Die vier neusten Ergebnisse y(4), ,y(0) sind
Ausg¨ange des Systems
Trang 7y(1)
y(2)
y(3) x2(0)
x2(1)
x2(2)
x2(3)
x1(0) x1(1) x1(2) x1(3)
conv(x1,x2,4)
Abb 4.3 Diskrete Faltung [92]
Allgemein ist ein Polynom ein Ausdruck, der anhand einer oder mehrerer riablen und Konstanten nur unter Verwendung von Addition (+), Subtraktion (−),
Va-Multiplikation (·) und konstanten positiven ganzzahligen Exponenten gebildet wird
Im Fall von n Variablen kann das n-variate Polynom p (x1, ,x n ) mit x1, ,x n ∈ R
wie folgt dargestellt werden:
p (x1, ,x n) =∑m
i:=0
p i (x1, ,x n −1) · x i
Die individuellen Polynome p i (x1, ,x n −1) k¨onnen dabei als Koeffizienten der
Va-riable x n angesehen werden Diese Repr¨asentation wird als engl sparse recursive representation bezeichnet und stellt nur Polynome ungleich null dar Sie ist f¨ur eine
gegebene Variablenordnung kanonisch
Um eine Funktion f (x1, ,x n) in die Form von Gleichung (4.1) zu bringen,
kann die Taylor-Reihen-Entwicklung verwendet werden F¨ur eine Funktion f (x) mit
einer Variablen x ist die Taylor-Reihen-Entwicklung um den Punkt x = a wie folgt
Hierzu muss die Funktion f stetig sein und alle Ableitungen nach den Variablen
x1, ,x n in x i = a existieren Hierbei beschreibt f (k) (a) die k-te Ableitung der
Funk-tion f ausgewertet an der PosiFunk-tion x = a Im Fall von n Variablen sieht die
Taylor-Reihen-Entwicklung wie folgt aus:
f (x1, ,x n ) := f (x1, ,x n −1,a n) +∂f (x1, ,x n)
∂x n
x n:=an · (x n − a n)+1
2
∂2f (x1, ,x n)
∂x2
x n:=an · (x n − a n)2
+
Trang 8Durch sukzessive Taylor-Reihen-Entwicklung nach allen Variablen in einer
gegebe-nen Reihenfolge, der sog Variablenordnung, erh¨alt man somit eine Polynomfunktion
in der Form von Gleichung (4.1)
Beispiel 4.1.2 Das folgende Beispiel stammt aus [92] Gegeben ist die folgende
x1: =0+
= 2 · x2· x3+ x1· (x2+ 2 · x3) + x2
1
Der konstante Term ergibt sich durch Einsetzen von null f¨ur x1 und resultiert in
2· x2· x3 F¨ur die erste Ableitung nach x1ergibt sich 2· x1+ x2+ 2 · x3 Durch die
Substitution x1:= 0 resultiert der Koeffizient x2+ 2 · x3 F¨ur die zweite Ableitung
nach x1ergibt sich 12· 2 und somit der Koeffizient 1.
Im n¨achsten Schritt erfolgt die Taylor-Reihen-Entwicklung dieser Koeffizienten
nach x2 f¨ur a2:= 0 Da der Koeffizient f¨ur die zweite Ableitung nach x1 bereitseine Konstante ist, muss dieser nicht weiter ber¨ucksichtigt werden Zun¨achst wird
x2: =0+
= 0 + x2· 2 · x3
Der konstante Koeffizient ergibt sich durch x2:= 0, wobei dieser zu null evaluiert
Der Koeffizient f¨ur die erste Ableitung liefert 2· x3 Alle weiteren Ableitungen sind
null Als n¨achstes wird der Koeffizient f¨ur die erste Ableitung nach x1 betrachtet,
also x2+ 2 · x3:
∂f (x1,x2,x3)
∂x1
x1:=0 x2:=0 x3:=0
= 64 · x2 4
12
∂3f
∂2x2∂x3
x1:=0 x2:=0 x3:=0
= −96 · x4
14
∂4f
∂2x2∂x2 3
x1:=0 x2:=0 x3:=0
= 36
∂2f
∂x1∂x2
x1:=0 x2:=0 x3:=0
= 64 · x2 4
∂3f
∂x1∂x2∂x3