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

Digitale Hardware/ Software-Systeme- P5 ppsx

30 238 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

Định dạng
Số trang 30
Dung lượng 331,6 KB

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

Nội dung

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 1

Beschr¨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 2

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

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

Aquivalenzpr ¨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 5

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

und 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) := N1

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 7

y(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 8

Durch 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

Ngày đăng: 02/07/2014, 14:20