Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

P. Tafertshofer, A. Ganz, M. Henftling

Ähnliche Präsentationen


Präsentation zum Thema: "P. Tafertshofer, A. Ganz, M. Henftling"—  Präsentation transkript:

1 P. Tafertshofer, A. Ganz, M. Henftling
SAT-basiertes ATPG im Implikationsgraphen Vortragender: Piet Engelke Dieser Vortag wurde im Rahmen des Seminars “SAT - Engines” im Wintersemester 2000/2001 gehalten. Er basiert auf den Veröffentlichungen [1] und [2].

2 Inhaltsübersicht I Einführung Testmustergenerierung Motivation
II Konstruktion des Implikationsgraphen III Operationen im Implikationsgraphen direkte Implikation indirekte Implikation Justifikation Propagation IV Ergebnisse / Zusammenfassung Im ersten Teil des Vortrages werden die wichtigsten Begriffe aus dem Bereich “Automatic Test Pattern Generation” (ATPG) umrissen. Des weiteren werden zwei verbreitete Ansätze für ATPG vorgestellt, anhand derer sich die wichtigsten Anforderungen an eine Datenstruktur für ATPG erkennen lassen. Der zweite Teil entspricht größtenteils dem Inhalt von [1]. Er erläutert die Erzeugung eines Implikationsgraphen (IG) zu gegebenem Schaltkreis und Gatterbibliothek. Der dritte Teil zeigt auf, wie die für ATPG notwendigen Operationen auf den IG übertragbar sind. Er wurde in weiten Zügen aus [2] übernommen. Im vierten und letzten Teil werden experimentelle Ergebnisse präsentiert, die einen Vergleich des IG-Ansatzes mit anderen ATPG Verfahren erlauben. Diese wurden wiederum aus [2] entnommen.

3 I Einführung

4 Testmustergenerierung
. primäre Eingänge Ausgänge Fehlerort Justifikation: finde Belegung an den primären Eingängen die internes Signal auf bestimmten Wert setzt Propagation: Signaländerung an internem Signal zu den primären Ausgängen “transportieren” (Sensibilisierung + Justifikation) Implikation: weise unbestimmten Ein- Ausgängen eines Gatters Werte zu, die sich aus der aktuellen Belegung zwingend ergeben Die Aufgabe der Testmustergenerierung ist es die Aufdeckung von physikalischen Defekten in Schaltkreisen zu ermöglichen (genaueres zur Testmustergenerierung in [3]). Da im Folgenden von einer Betrachtung des Schaltkreises auf Gatterebene (möglich wäre beispielsweise auch eine transistorbezogenen Sichtweise) ausgegangen werden soll, gilt es zuerst ein Fehlermodell zu finden. Dieses bildet den physikalischen Defekt auf die logische Ebene ab (dies ist nicht Gegenstand dieser Ausführungen). Nun beginnt die eigentliche Testmustergenerierung. Es sollen Belegungen für die primären Eingängen (PI) des Schaltkreises gefunden werden, die zu einem Unterschied an den primären Ausgängen (PO) des Schaltkreises führen. Genauer, die Werte an einem oder mehreren POs des Schaltkreises in dem mindestens ein bestimmter Fehler enthalten ist, sollen von den Werten der entsprechenden POs des gleichen aber fehlerfreien Schaltkreises abweichen. Dazu wird zuerst der Fehler in den Schaltkreis “eingebaut”. Sei nun angenommen ein bestimmtes Signal am Ausgang eines Gatters sei von einem physikalischen Defekt betroffen. Diesem Signal weist man ein durch das verwendete Fehlermodell definiertes Verhalten zu. Für die Eingänge des dem Signal vorangehenden Gatters wird nun eine Belegung gewählt, die zu einem Unterschied führt. Mit anderen Worten, die Belegung soll im fehlerfreien Schaltkreis zu einem anderen Wert am Ausgang des Gatters führen, als im fehlerbehafteten Schaltkreis, in dem das durch das Fehlermodell bestimmte Verhalten angenommen wird. Der Fehler ist damit “eingestellt”.

5 Testmustergenerierung
. primäre Eingänge Ausgänge Fehlerort Justifikation: finde Belegung an den primären Eingängen die internes Signal auf bestimmten Wert setzt Propagation: Signaländerung an internem Signal zu den primären Ausgängen “transportieren” (Sensibilisierung + Justifikation) Implikation: weise unbestimmten Ein- Ausgängen eines Gatters Werte zu, die sich aus der aktuellen Belegung zwingend ergeben Nachdem der Fehler eingestellt wurde, gilt es diese Belegung an die PIs zu propagieren . Dieser Vorgang heißt Justifikation. Wurde eine Belegung an den PIs gefunden, die zu den gewünschten Werten an den Eingängen des dem Fehler vorangehenden Gatters gefunden folgt die Propagationsphase. Diese teilt sich in zwei Vorgänge: Sensibilisierung und Justifikation. Sensibiliserung bezeichnet den Suchvorgang nach einem Pfad vom Fehlerort zu den POs. Die an diesen Pfad gestellte Bedingung lautet wie folgt: ein Unterschied darf bei Propagation auf diesem Pfad nicht verloren gehen. Während dieser Suche müssen Wertzuweisungen im Inneren des Schaltkreises vorgenommen werden, die wiederum justifiziert, also durch Belegungen an den PIs gerechtfertigt werden müssen. Waren die Justifikation der Wertebelegung am Fehlerort und die Propagation erfolgreich, so erhält man eine Belegung an den PIs, das sog. Testmuster. Die wichtigste Operation bei Justifikation und Propagation ist die Implikation. Diese ist nur für ein Gatter definiert, die Propgagation der Zuweisungen erfolgt also in einem nachfolgenden Schritt. Nur wenn sich Wertzuweisungen nicht zwingend ergeben, kann ein beliebiger aber eindeutiger Wert angenommen werden.

6 => => => Implikation am AND Gatter 1) 2) 3) X 1 X X
=> 1) 1 X => 2) Es gibt zwei mögliche Implikationsarten [3] (in den Beispielen entspricht ‘X’ einem undefinierten Wert): Vorwärtsimplikation: ausgehend von den Eingängen eines Gatters soll eine Ausgangsbelegung geschlossen werden (Beispiel 1). Rückwärtsimplikation: die Belegung des Gatterausgangs wird auf die Eingänge desselben Gatters fortgesetzt (Beispiel 2). Im dritten Beispiel (Rückwärtsimplikation) ermöglicht die bereits vorgegebene Wertebelegung keine Implikation. Es ergeben sich keine logisch zwingenden Belegungen an den Eingängen des Gatters. X => 3)

7 Motivation strukturbasiert: Netzliste getrennt von Modulbibliothek
komplizierte Algorithmen nicht erweiterbar SAT basiert: Schaltkreis dargestellt als Klauselmenge sehr flexibel und effizient keine topologischen Informationen => Topologie, Effizienz und Flexibilität Zwei Verfahren werden häufig für ATPG eingesetzt, diese unterscheiden sich grundlegend in der Art der verwendeten Datenstruktur. Bei strukturbasierten Verfahren (z.B. PODEM und D-Algorithmus [3]) werden Netzliste und Gatterbibliothek in getrennten Datenstrukturen abgelegt. Dies führt zu komplizierten Algorithmen. Sollen die für ATPG typischen mehrwertigen Logiken eingesetzt werden, sind aufwendige Tabellenzugriffe notwendig. Die topologischer Informationen ermöglichen allerdings sehr effiziente Suchverfahren. Somit können die erstgenannten Nachteile abgemildert werden (siehe PODEM, FAN [3]). Neue Erkenntnisse, beispielsweise über die logischen Zusammenhänge im Schaltkreis (indirekte Implikation s.u.) lassen sich nicht in die Datenstrukturen integrieren. SAT basierte Verfahren stellen die Funktion des Schaltkreises als Formel in konjunktiver Normalform (KNF) dar. Diese Formeln lassen sich sehr effizient lösen und beliebig erweitern. Allerdings können sie die Topologie des Schaltkreises nicht modellieren. Dazu ist wiederum zusätzlicher Aufwand nötig (vgl. CGRASP [4]). Die effizienten Suchverfahren der strukturbasierten Ansätze sind also auf SAT-Verfahren nicht übertragbar, deren Effizienz wird dadurch gemindert. Insgesamt läßt sich sagen: Eine optimale Datenstruktur für ATPG sollte die Topologie des Schaltkreises modellieren, beliebig erweiterbar sein und effizient Lösungsfindung ermöglichen.

8 II Konstruktion des Implikations- graphen(IG)

9 Erzeugung des IG benötigt werden: Art und Kodierung der Logik
Wahrheitstabellen der verwendeten Gatter Netzliste des Schaltkreises Ablauf: 1a) Kodierung und Optimierung der Wahrheitstabellen 1b) Extraktion der Klauselmenge 1c) Konvertierung in Subgraphen 2a) personalisieren der Subgraphen 2b) Subgraphen zu einem IG verbinden Die obengenannten Daten werden für die Erzeugung des IG benötigt. Die unter 1) genannten Schritte des Umwandlungsprozesses werden einmal pro Schaltkreisbibliothek durchgeführt, die unter 2) aufgelisteten hingegen einmal pro zu konvertierendem Schaltkreis.

10 Kodierung der Logik verwendete Logik : L3 = {0, 1, X}
Î L 3 Kodierung Interpretation c * 1 Signal x = 0 X Konflikt bei Signal x Signal x = 1 Signal x = unbekannt Definition - Konflikt: Eine Wertzuweisung heißt konfliktfrei gdw.: für alle Signalvariablen cx Ù cx Û 0 gilt. Soweit nicht anders angegeben soll für den Rest dieser Ausarbeitung eine dreiwertige Logik angenommen werden. Der Wert ‘X’ steht dabei für einen unbekannten Wert, beispielsweise aufgrund einer unvollständigen Zuweisung. Zur Kodierung von drei Zuständen im dualen System sind zwei binäre Variablen (cx und cx *) notwendig. Sie wurde so gewählt, daß ein Konflikt genau dann vorliegt, wenn beide Kodierungsvariablen gesetzt sind. Anschaulich gesprochen entspricht das einem Fall, bei dem man einem Signal sowohl Eins (cx = 1), also auch Null (cx *= 1) zuzuweisen versucht. *

11 Kodierung und Optimierung
Wahrheitstab. a b c 1 X kodierte Tabelle * - optimierte Tabelle nur konfliktfreie Belegungen gehen bei der Optimierung ein Konflikte müssen von den Algorithmen abgefangen werden => charakteristische Funktion eines AND Gatters als KNF Im Folgenden soll die Erzeugung eines IG für ein AND Gatter erläutert werden. Die obere linke Tabelle entspricht der Wertetabelle dieses Gatters ergänzt um die ‘X’ Werte. Die mittlere Tabelle zeigt die Kodierung der linken Tabelle unter Verwendung des auf der vorangehenden Folie eingeführten Codes. Die im unteren Teil abgesetzten Einträge beschreiben die Kodierung der Konfliktfälle (‘-’ bez. einen Wert aus {0,1}). Die rechte Tabelle schließlich, enthält die optimierten Daten aus der mittleren Auflistung. Dabei sind die Kodierung der Konflikte nicht mit eingeflossen. Aus der rechten Tabelle läßt sich nun die charakteristische Funktion des AND-Gatters ablesen. Diese spezifiziert alle gültigen Ein-Ausgangsbelegungen für dieses Logikgatter. (Øca Ú cc) Ù (Øcb Ú cc) Ù (Øca Ú Øcb Ú cc) Û 1 *

12 Konvertierung in Subgraphen (1)
es gelten folgende Umformungen: x Ø x y Ø y x Ú y Û (Øx ® y) Ù (Øy ® x) Þ Øz z y x Øy Øx Ù x Ú y Ú z Û (Øx Ù Øy ® z) Ù (Øx Ù Øz ® y) Ù (Øy Ù Øz ® x) Þ Die Struktur des IG basiert auf binären und ternären Klauseln. Oben sind die dafür vorgesehenen Umformungen dargestellt. Man kann erkennen, daß der IG nicht auf den Klauseln selbst sondern auf den aus ihnen zu folgernden Implikationen aufbaut. Im rechten Teil ist die graphische Darstellung der Implikationen, so wie sie im IG vorliegt, dargestellt. Möchte man nun die weiter oben eingeführte Kodierung der dreiwertigen Logik im IG verwenden, so ist folgendes zu tun: Man identifiziert x mit cx und Øx mit cx * . Wendet man die oben eingeführte Kodierung an, so entspricht x=1 cx = 1 und cx * =0, bzw. Øx =1 cx = 0 und cx* =1. Ferner nimmt man an, daß eine Belegung einer der Variablen cx bzw. cx* der Markierung des entspreched bezeichneten Knotens im IG entspricht. Nun kann man alle Belgungen der Klauseln auf den ihnen zugehörigen IG übertragen.

13 Aufteilung von Klauseln
Klauseln mit mehr als drei Variablen werden in Systeme aus binären und ternären Klauseln gewandelt führe zusätzliche Variable v ein: (w Ú x Ú y Ú z) Û $ (w Ú x Ú v) Ù (y Ú z Ú Øv) v Î {0,1} es gilt (sei x eine Variablenbelegung): $ [f(x) Ù $ g(x, z)] Û $ f(x) Ù g(x, z) x z x, z Für den Fall, daß bei der Umwandlung der Gatter in den IG nicht nur binäre und ternäre Klauseln entstehen, findet das oben angedeutete Verfahren Anwendung. Wichtig dabei ist, daß die Einführung des Existenzquantors keinerlei Auswirkungen auf den IG hat. Der Grund dafür ist leicht ersichtlich: Die Aufgabe, die es mit dem IG zu lösen gilt, ist der Nachweis der Existenz einer erfüllenden Belegung für eine Formel in KNF, diese Belegung soll als Ergebnis geliefern werden. Erweitert man die gesuchte Belegung nun um eine weitere Variable so kompliziert sich zwar das Problem, qualitativ gesehen aber, bleibt die Aufgabenstellung unverändert. => der Existenzquantor kann ignoriert werden

14 Konvertierung in Subgraphen (2)
(Øca Ú cc) Ù (Øcb Ú cc) Ù (Øca Ú Øcb Ú cc) Û 1 * * mit Øcx Þ cx und Øcx Þ cx cc cb ca * b f o Ù a c b Die oben dargestellte charakteristische Funktion des AND Gatters kann (unter Zuhilfenahme der Regeln zur Konvertierung von Klauseln) in den abgebildeten Subgraphen überführt werden. Negative Literale werden entsprechend der beiden hier angegebenen Umformungen in positive Literale gewandelt. Diese Umformungen sind erlaubt, da Konflikte von den auf dem Graphen operierenden Algorithmen abgefangen werden. Anhand der Kantenbezeichner (‘f’, ‘b’, ‘o’) kann der jeweilige gerichtete azyklische Graph identifiziert werden. Dabei muß dieser nicht aus dem Graphen extrahiert werden, führt damit also nicht zur Erzeugung einer weiteren Instanz des Implikationsgraphen. strukturelle Informationen f = Vorwärtskante: Kante vom Ein- zum Ausgang des Gatters b = Rückwärtskante: Kante vom Aus- zum Eingang des Gatters o = sonstige Kante

15 IG formal Implikationsgraph: GI = (VI, EI)
Menge der Knoten VI = VIS È VIÙ VIS die Signalknoten VIÙ die Ù - Knoten Menge der Kanten EI = Ef È EbÈ Eo Ef Vorwärtskanten Eb Rückwärtskanten Eo sonstige Kanten GB = (VI, Ef) Graph der Rückwärtskanten GF = (VI, Eb) Graph der Vorwärtskanten

16 Beispiel für einen IG =>
cf * cd ce ca cb cc b f a b d f e c => Dieses Beispiel zeigt den Ablauf der Erzeugung eines IG. Ein Schaltkreis wird in eine Menge von Klauseln umgewandelt. Das Ergebnis der sich daran anschließenden Konvertierung in einen IG ist im rechten Teil der Folie zu erkennen. (Øcd Ú cf) Ù (Øce Ú cf) Ù (Øcd Ú Øce Ú cf) Ù | f = AND(d, e) * (Øca Ú cd) Ù (Øcb Ú cd) Ù (Øca Ú Øcb Ú cd) Ù | d = OR(a, b) * (Øcb Ú ce) Ù (Øcc Ú ce) Ù (Øcb Ú Øcc Ú ce) Û 1 | e = OR(b, c) *

17 III Operationen im Implikations- graphen

18 direkte Implikation - Regel
Ausgehend von einer Menge VI Í VS von markierten Knoten werden alle Nachfolger vj markiert wenn: 1) Knoten vj ein Ù - Knoten ist und all seine Vorgänger markiert sind 2) Knoten vj ein Signalknoten ist und mindestens einer seiner Vorgänger markiert ist So lange fortfahren bis keine Markierungen mehr möglich sind. Alle durch diese Regel markierten Knoten zusammen, repräsentieren die Belegung die aus VI impliziert werden kann. Eine Implikation ist nur dann möglich, wenn sie keine Konflikte hervorruft. Die direkte Implikation ist eine Erweiterung der Implikation derart, daß die aufgrund der Implikation an einem Gatter durchgeführten Wertzuweisungen im Schaltkreis propagiert werden. Sind nun an anderen Gattern wiederum Implikationen möglich, so werden auch diese ausgeführt. Die direkte Implikation stoppt, wenn keine Implikationen und keine Propagationen mehr möglich sind. Treten bei Anwendung der oben angegebenen Regel Konflikte auf (cx und cx* zugleich markiert (x ist bel. Signal)), so ist die Ausgangsbelegung des Schaltkreises VI ungültig.

19 Die direkte Implikation
cf * cd ce ca cb cc b f a = X b = 1 d = X f = X e = X c = X Die Ausgangsbelegung des Schalkreises ist b=1 => cb ist markiert Der Knoten hat nur zwei ausgehende Kanten, die beide die Anwendung der Regel 1 erlauben. es gelte b = 1 propagiere alle Implikationen der aktuellen Belegung durch den Schaltkreis

20 Beispiel zur direkten Implikation
cf * cd ce ca cb cc b f a = X b = 1 d = 1 f = X e = 1 c = X Nach Anwendung der Regel 1 wurden cd und ce markiert => d=e=1 konnte impliziert werden. Nun kann die Regel 2 angewendet werden, da alle Nachfolger von cd und ce Ù-Knoten sind. Nachfolger eines Ù - Knotens markieren, wenn beide Vorgänger passiert wurden

21 Beispiel zur direkten Implikation
cf * cd ce ca cb cc b f a = X b = 1 d = 1 f =1 e = 1 c = X Nur cf konnte noch markiert werden => f =1. Alle anderen Ù-Knoten haben nur einen ihrer beiden Vorgänger markiert, d.h. die Implikation stoppt an dieser Stelle. direkte Implikation: cb ® cf die Implikation stoppt, wenn keine Markierungen mehr möglich sind

22 Die indirekte Implikation im IG
Identifikation durch direkte Implikation und anschließender Kontraposition: ca ® cb Û (cb* ® ca*) * ca cb cx Ù ca cb Ù Indirekte Implikation sind feste logische Zusammenhänge zwischen zwei Signalen, die anders als bei (direkten) Implikation nicht unmittelbar aus dem Schaltkreisaufbau ersichtlich sind. Das liegt daran, daß die beiden Signale der indirekten Implikation über eine Folge von Signalen miteinander verbunden sind, die nicht durch eine durchgängige Kette von Implikationen zusammenhängen. An diesen Signale sind Entscheidungen bei der Wertzuweisung möglich. Diese beeinflussen aber nicht die Gültigkeit der indirekten Implikation. Die Möglichkeit indirekte Implikationen als zusätzliche Kante dem Graphen hinzuzufügen ist ein eindeutiger Vorteil des IG gegenüber den strukturbasierten Ansätzen. Die einfachste Möglichkeit indirekte Implikationen im IG zu identifizieren ist oben angegeben. Sie erfolgt durch Kontraposition einer direkten Implikation, ist aber nur möglich, wenn die oben links dargestellte Form einer direkten Implikation vorliegt (siehe auch nächste Folie). Aus der Konstruktionsvorschrift für den IG folgt, daß dann die rechts dargestellte Struktur im Graphen existieren muß. Genaueres dazu auf der nächsten Folie. werden in der Preprocessing - Phase entdeckt und dem Graphen als Kante hinzugefügt

23 indirekte Implikation - Regel
Sei cx der ursprünglich markierte Knoten. Aus einer rekonvergenten Struktur (cx, cy) im IG folgt nur dann eine indirekte Implikation, wenn: cx ein Fanoutknoten im IG ist cy über einen Ù - Knoten markiert wurde dessen Vorgänger beide nach Implikation über disjunkte Pfade markiert worden sind Die obige Regel definiert genau wie eine direkte Implikation auszusehen hat, aus der eine indirekte Implikation geschlossen werden kann. Warum die auf der vorangehenden Folie rechts dargestellte Struktur im IG existieren muß, ist leicht ein zusehen: 1.) Zu jedem ca ® cu (ca ® cv) muß es ein cu* ® ca* (cv* ® ca*) geben. 2) Existiert ein Konstrukt der Form (cu Ù cv ® cb) so gibt es auch die folgenden beiden Konstrukte : (cb* Ù cv ® cu* ) bzw. (cb* Ù cu ® cv* ). Unabhängig von den Zuweisungen an u und v gilt immer: Øb ® Øa. Damit lassen sich indirekte Implikationen durch eine relativ leichte Rekonvergenzanalyse aus den direkten Implikationen ermitteln. Für den IG wurden noch weitere Verfahren zur Identifikation der indirekten Implikationen vorgeschlagen[1], die auf einer verbesserten Rekonvergenzanalyse basieren.

24 Beispiel zur indirekten Implikation
cf * cd ce ca cb cc b f direkte Implikation: cb ® cf indirekte Implikation: cf* ® cb* Ausgehend von der im vorigen Beispiel erläuterten direkten Implikation, kann man hier nun die daraus zu folgernde indirekte Implikation (gepunktete Elemente) erkennen. Die gestrichelte Linie stellt die zusätzliche Kante dar, die dem IG hinzugefügt wird.

25 Justifikation im IG (1) Wert an internen Signalen soll durch Zuweisungen an primären Eingängen eingestellt werden Objective: Werteinstellungsziel für eine internes Signal Ablauf des Verfahrens: 1. Wahl des Objectives 2. Backtracing: versuche Belegung an den primären Eingängen zu finden, die das Objective einstellen 3. Implikation: prüfe ob die gewählte Belegung das Objective wirklich erfüllt Das im IG angewandte Justifikationsverfahren entspricht weitestgehend der aus PODEM [3] bekannten Vorgehensweise. Deren Vorteil ist es, daß Wertzuweisungen nur an den PIs erfolgen (Backtracingphase); damit wird der bei der Suche nach einem Testmuster abgearbeitete Wertebereich deutlich eingeschränkt, ohne dabei mögliche Lösungen von vornherein auszugrenzen. Der Begriff des Obejectives wurde von PODEM übernommen. Er bezeichnet ein Signal, dessen Wert noch nicht durch die Eingangsbelegung des ihm vorangehenden Gatters bestimmt wird. Dies entspricht den unjustifizierten Klauseln im IG.

26 Justifikation im IG (2) Definition - unjustifizierte Klauseln:
Eine Klausel C = c1 Ú c2 Ú ... Ú cn heißt unjustifiziert, gdw. alle Literale c1, c2,..., cn nicht erfüllt sind und mindestens ein Komplement ci* eines Literales ci Eins ist. Definition - Justifikation einer Klausel: Seien c1, c2,..., cm unspezifizierte Literale in einer unjustifizierten Klausel C = c1 Ú c2 Ú ... Ú cm und seien V1, V2,..., Vm Wertzuweisungen. Dann wird die Menge konfliktfreier Zuweisungen J = {c1= V1, c2= V2, ... cm= Vm} eine Justifikation der Klausel C genannt, wenn die Wertzuweisungen in J die Klausel C erfüllen. Die oben angegebene Definition bezieht sich allgemein auf unjustifizierte Klauseln.

27 Justifikation im IG (3) Objective entspricht unjustifizierter Klausel
nur ternäre Klauseln können unjustifiziert sein Ù cz * cy cx x Ú y Ú z Û (Øx Ù Øy ® z) Ù (Øx Ù Øz ® y) Ù (Øy Ù Øz ® x) Binäre Klauseln entsprechen im IG zwei unmittelbaren Zuweisungsvorschriften, die nicht unerfüllt sein können. Klauseln mit mehr als drei Literalen existieren im IG per Definition nicht. Unerfüllte ternäre Klauseln lassen sich im IG leicht finden. Sie bestehen aus zwei Ù -Knoten, die einen Knoten als direkten Vorgänger ´gemeinsam haben. Dieser ist als einziger ihrer dirketen Vorgänger markiert. Die Justifikation (wie auf dieser Folie definiert) solcher ternären Klauseln, enthält die beiden Nachfolger der Ù -Knoten. => Justifikation besteht aus genau zwei Elementen J = {{cx= 1}, {cz= 1}}

28 Backtracing - Regel Das Objective oi sei bereits zum Konten vi Î V vorangetrieben worden. sucs(vi) Í Vs und sucÙ(vi) Í VÙ bezeichnen die nachfolgenden Signal bzw. Ù - Knoten in GB. Dann wird das Objective oi zu den folgenden Knoten getrieben: allen Signalknoten vj Î sucs(vi). einem Ù - Knoten vj Î sucÙ(vi) der entsprechen eines Kontrollierbarkeitsmaßes gewählt wird. Knoten vj, die einen Signalknoten cx als Nachfolger haben, dessen zugehöriger Komplementknoten cx* markiert ist, werden nicht gewählt. Diese Regel wird solange angewandt, bis keine Propagation von Objectives mehr möglich ist, d.h. alle Objectives einen PI erreicht haben. Die Backtracingphase der Justifikation verläuft nach oben angegebener Regel. Es ist entscheidend, daß nur solche Knoten gewählt werden können, die über Kanten in GB (gerichteter azyklischer Graph der Rückwärtskanten) erreichbar sind. Die Backtracingphase wird also von den Rückwärtskanten gesteuert. Sie muß deshalb zwangsläufig an den PIs stoppen, da diese keine weiteren ausgehenden Rückwärtskanten mehr haben können. Das Backtracing verläuft nach der “depth-first” - Strategie [5], es wird also ein möglichst direkter Weg zu den PIs gesucht.

29 Beispiel zur Justifikation
cf * cd ce ca cb cc a1 a2 g2 g3 b3 b2 f = 0 soll justifiziert werden es gelte bereits e = 1 a = X b = X d = X f = 0 e = 1 c = X ! Auf obiger Folie sind die Rückwärtskanten gepunktet dargestellt. nur die Rückwärtskanten werden verwendet Backtracing mit “depth - first” Strategie

30 Beispiel zur Justifikation
cf * cd ce ca cb cc a1 a2 g2 g3 b3 b2 a = X b = X (d = 0) f = 0 e = 1 c = X ! Der Knoten cd* Knoten muß hier zwangsläufig gewählt werden, da der Komplementknoten von ce* bereits markiert ist. Wahl eines Ù - Knotens nach vorberechnetem Testbarkeitsmaß

31 Beispiel zur Justifikation
cf * cd ce ca cb cc a1 a2 g2 g3 b3 b2 (a = 0) (b = 0) (d = 0) f = 0 e = 1 c = X ! Die Knoten ca* und cb* haben keine ausgehenden Kanten die zu GB gehören. Deshalb ist die Backtracingpahse nun beendet. Es wurde eine Belegung der PIs gefunden, welche das Objective möglicherweise einstellt. Ob dies wirklich geschieht, muß nun durch direkte Implikation gezeigt werden. über direkte Übergänge erreichte Nachfolger werden immer gewählt Backtracing stoppt, da die primären Eingänge erreicht wurden

32 Beispiel zur Justifikation
cf * cd ce ca cb cc a1 a2 g2 g3 b3 b2 a = 0 b = 0 d = 0 f = 0 e = 1 c = X Die Implikation hat ergeben, daß das Objective durch die in der Backtracingphase gewählte Belegung eingestellt wird. Das bedeutet die unjustifizierte Klausel wurde erfolgreich justifiziert. Wäre bei der Implikation ein Konflikt eingetreten, so hätte die Eingabebelegung invertiert werden müssen. Daraufhin wäre wieder eine Implikation gestartet worden. Falls alle Belegungen an den PIs (auch nach dem Invertieren) zu einem Konflikt bei der Implikation führen, so ist die Einstellung des Objectives nicht möglich. Führt die Implikation zwar nicht zu einem Konflikt, aber auch nicht zur Einstellung des Objectives, so muß das Backtracing erneut gestartet werden. Dabei dürfen die an den Ù-Knoten getroffene Entscheidungen nicht alle denen beim ersten Backtracelauf gemachten entsprechen. cf* erfolgreich justifiziert Implikation der Eingangsbelegung die Justifikation wird für alle Objectives durchgeführt

33 Propagation Kodierung von Unterschieden macht Übergang von L3 zu L9 notwendig split-circuit Modell => Verdopplung des L3 Graphen (= zwei disjunkte, isomorphe Graphen) im Fehlergraphen werden alle Knoten mit einem ‘^’ kenntlich gemacht Konflikt liegt vor, wenn gilt: Bei der Propagation soll ein Unterschied vom Fehlerort zu den POs des Schaltkreises “transportiert” werden. Bis jetzt ist die Kodierung von Unterschieden im IG nicht möglich, da dies von der verwendeten dreiwertigen Logik nicht unterstützt wird. Deshalb wird der Übergang zu einer höherweritgen Logik notwendig. Hierfür werden in [2] neun Werte vorgeschlagen (siehe Tabelle, D=1/0, /D=0/1, G0=0/X, G1=1/X, F0=X/0, F1=X/1). Zusätzlich soll das sog. “split-ciruit” Modell zum Einsatz kommen. Das bedeutet, daß ein Duplikat der Schaltkreisstruktur erzeugt wird. Im Original werden die Werte der fehlerfreien Schaltung simuliert, in der Kopie hingegen die des fehlerbehafteten Schaltkreises. Die Duplizierung der Schaltkreisstruktur kann für den IG leicht durchgeführt werden; man verdoppelt einfach den Graphen des Schalkreises. So erhält man zwei Graphen, Gg =(Vg , Eg) für den fehlerfreien Fall und Gf =(Vf , Ef) für den fehlerbehafteten Schaltkreis. Diese werden zu einem Graphen G =(Vg È Vg , Eg È Eg) vereinigt. Dadurch ist eine Kodierung der neunwertigen Logik mit vier Knoten pro Signal (cx, cx*, ´c`x, ´c`x*,) möglich. (cx Ù cx) = 1 oder (cx Ù cx) = 1 * ^

34 Propagation - Regel (1) Das Ausgangssignal sI sei beobachtbar an Signal si, d.h. (si = D) Ú (si = /D), bzw. (ci Ù ci*) Ú (ci* Ù ´c`i) Û 1. sucs(vi) Í Vs g und sucÙ (vi) Í VÙ g bezeichnen alle nachfolgenden Signal bzw. Ù - Knoten eines Knotens vi in GF g =(V g , EF g). Signal sI wird an einem nachfolgenden Signal sj beobachtbar gemacht, durch: Wahl eines Knotens vj Î sucs(ci) È sucÙ (ci) entsprechend eines vor- berechneten Beobachtbarkeitsmaßes. Knoten vj = cj Î sucs(ci), deren zugehöriger Komplementknoten cj* markiert ist und Knoten vj Î sucÙ(ci) , die einen Signalknoten cx zum Nachfolger haben, dessen zugehöriger Komplementknoten cx* markiert ist, werden nicht gewählt. wenn vj Î sucs(ci), d.h. vj bezeichnet einen Signalknoten cj, so markiere seinen zugehörigen Komplementknoten ´cj`* in G f. wenn vj Î sucÙ (ci), so markiere seinen nachfolgenden Signalknoten ck und dessen zugehörigen Komplementknoten ´ck`* in G f. Die Propagation wird - ähnlich der Justifikation - durch einen gerichteten azyklischen Teilgraphen des IG gesteuert. Anders allerdings als bei der Justifikation ist dies GF g =(V g , EF g), also der gerichtete azyklische Graph der Vorwärtskanten des IG für den fehlerfreien Schaltkreis. Wie die Propagation abläuft, ist in der oben angegebenen Regel definiert. Diese sorgt für eine Traversierung des GF g mit “depth-first” Strategie[5] und versucht damit einen direkten Weg zu den POs zu finden. Diese sind genau dann erreicht, wenn die zuletzt gewählten Knoten keine ausgehenden Kanten in GF g mehr haben.

35 Propagation - Regel (2) (Fortsetzung)
Implikation ausgehend von allen markierten Knoten in G, wodurch die sensibilisierenden Zuweisungen eingefügt werden. Wenn die Implikationen zu einem Konflikt führen, werden alle Zuweisungen rückgängig gemacht und ein anderer Knoten vj Î sucs(ci) È sucÙ (ci) wird gewählt. Führen alle Knoten vj zu einem Konflikt so erfolgt ein Backtracking zur letzten Entscheidung. Diese Regel wird solange angewendet, bis ein PO erreicht wurde oder alle aus vj Î sucs(ci) È sucÙ (ci) gewählten Knoten zu einem Konflikt führen. Der Vorteil dieses Propagationsverfahrens ist, daß es keinen Unterschied zwischen verschiedenen Propagationspfaden im Schaltkreis und unterschiedlichen Propagationsmöglichkeiten eines Gatters macht. Dies ist ein Ergebnis des einfachen Aufbaus des Graphen, der eine solche Unterscheidung bewusst nicht vorsieht.

36 Beispiel zur Propagation
gut a = 1 b = D d = 1 f = X e = X c = X fehlerhaft cf * cd ce ca cb cc ca ^ cf * cd ce cb cc a3 g1 b1 Der linke obere Graph repräsentiert den fehlerfreien Schaltkreis, der rechte den fehlebehafteten. Die gepunkteteten Linien verdeutlichen (nur auf dieser Folie) den Graphen GF g. Vor Beginn der Propagagtion muß er Untererschied im Graphen gesetzt werden, unter Verwendung der L9 Kodierung (s.o.) führt dies zu einer Markierung von cb und ´c`b*. Da zusätzlich a=1 bereits gestzt ist, wurden ca und ´c`a markiert. propagiere Unterschied b = D, es gelte a = 1 die Vorwärtskanten leiten die Propagation (depth first - Strategie)

37 Beispiel zur Propagation
gut a = 1 b = D d = 1 f = X e = X/0 c = X fehlerhaft cf * cd ce ca cb cc ca ^ cf * cd ce cb cc Im vorliegenden Fall konnte es keine andere Wahl als ce geben, da das Beobachtbarkeitsmaß dafür Sorge zu tragen hat, daß ein Pfad von noch undefinierten Signalen (entsprechend nicht markierten Knoten) gewählt wird. wähle Knoten ce nach vorberechnetem Beobachtbarkeitsmaß => Komplementknoten im Fehlergraphen wird markiert

38 Beispiel zur Propagation
gut a = 1 b = D d = 1 f = D e = F0 c = X fehlerhaft cf * cd ce ca cb cc ca ^ cf * cd ce cb cc Der Knoten ce hat keine ausgehenden Vorwärtskanten mehr, der Propagationslauf stoppt also. Der Unterschied D, konnte bis zu den POs getrieben werden, damit ist eine Sensibilisierung erreicht worden. Die dafür notwendigen Wertzuweisungen müssen nun noch justifiziert werden. Dies geschieht in der Implikationsphase. wähle und markiere Knoten cf (nach Beobachtbarkeitsmaß) => Komplementknoten im Fehlergraphen wird markiert ein “primärer” Ausgang wurde erreicht

39 Beispiel zur Propagation
gut a = 1 b = D d = 1 f = D e = D c = 0 fehlerhaft cf * cd ce ca cb cc ca ^ cf * cd ce cb cc Der Einfachheit halber wurden im obigen Beispiel alle Implikationen nach der Propagationsphase durchgeführt. Neben den einfachen direkten Implikationen innerhalb eines Graphen, wie sie bereits beschrieben wurden, gibt es nun auch Implikationen, die zu Wechselwirkungen zwischen den beiden Graphen führen. Belegungen werden zwischen den beiden IGs ausgetauscht, wenn sie im jeweils anderen IG nicht zu einem Konflikt führen. Wenn bei allen Implikationen und beim Austausch aller Markierungen Konflikte auftreten, so muß in einem Backtrackingschritt eine der Entscheidungen aus der Propagationsphase rückgängig gemacht werden. Aus diesem Grunde ist es normalerweise auch nicht sinnvoll, die Implikation von der Propagation zu trennen.Die Implikation erfolgt deshalb laut Propagationsregel nach jedem Propagationsschritt. führe Implikation durch konfliktfreie Belegungen werden zwischen den Graphen ausgetauscht

40 IV Ergebnisse

41 Experimentelle Ergebnisse
Die obige Tabelle ist Ausschnitt aus den in [2] präsentierten experimentellen Ergebnissen. Sie setzt das ATPG - Programm TIP, welches den IG einsetzt, in Vergleich zu TEGUS und CGRASP. Letztere sind SAT - basierte ATPG Programme. TEGUS arbeitet ähnlich wie der PODEM Algorithmus [3], indem er die Klauseln so anordnet, daß optionale Zuweisungen zuerst an den PIs gemacht werden [2]. CGRASP ergänzt das reine SAT Verfahren durch eine Schicht, die die Modellierung der Schaltkreistopologie ermöglicht [2]. Das Verfahren ist auf kombinatorische Schaltungen beschränkt. Die Beduetung der einzelnen Spalten: ‘KNF’ : Zeit für die Extraktion der Klauselmenge ‘SAT’ : bezeichnet die zur Lösung des SAT-Problems benötigte Zeit ‘IG’ : die Zeiten für den Aufbau des Implikationsgraphen. ‘ATPG’ : Zeit für Propagation, Justifikation und Implikation im Implikationsgraphen Es zeigt sich, sich daß der IG basierte Ansatz insgesamt deutlich schneller ist, als die beiden rein SAT - basierten Verfahren. Dabei ist ein wichtiger Faktor, daß die Zeit zum Aufbau des IG deutlich geringer ist, als jene die zur Extraktion der Klauselmenge benötigt wird. Dies liegt sicherlich auch daran, daß die Subgraphen für die in der Schaltkreisen verwendeten Gatter in einer Preprocessingphase erzeugt wurden und somit bei Erzeugung des Implikationsgraphen schon zur Verfügung stehen. stuck-at ATPG ohne Fehlersimulation TEGUS : P.Stephan, R.K. Brayton und A.L. SangiovanniVincentelli ; 1996. CGRASP : L.G. e Silva, L.M. Silveira und J. Marques-Silva; 1999.

42 Zusammenfassung KNF mit der Toplogie in einer Datenstruktur vereint
einfach aufgebauter, flexibler Graph Der Graph besteht aus nur zwei Knotentypen und erlaubt die Aufnahme zusätzlicher Kanten (indirekte Implikationen). kompakte Darstellung des Schaltkreises Die Größe des Graphen ist linear in der Anzahl der Schaltkreismodule. effizient Alle vorgestellten Operationen sind als Graphenalgorithmen implementiert. strukturbasierte Algorithmen und Heuristiken sind übertragbar (vgl. beispielsweise Backtracing)

43 Literaturverzeichnis
[1] P. Tafertshofer, A. Ganz und M. Henftling : “A SAT - Based Implication Engine“, Tech. Rep. TUM-LRE-97-2, Technical University of Munich, April 1997. [2] P. Tafertshofer und A. Ganz : ”SAT Based ATPG Using Fast Justifcation and Propagation in the Implication Graph”, ICCAD 1999. [3] M. Abramovici, M.A. Breuer und A.D. Friedman : “Digital Systems Testing and Testable Design”, Computer Science Press, [4] L.G. e Silva, L.M. Silveira und J. Marques-Silva : “Algorithms for solving boolean satisfiability in combinational circuits”, in Design Automation Conference and Test in Europe (DATE), S , 1999. [5] S. Russell, P. Norvig : “Artificial Intelligence - A Modern Approach”, Prentice Hall Int’l Editions, S. 77f, 1995.


Herunterladen ppt "P. Tafertshofer, A. Ganz, M. Henftling"

Ähnliche Präsentationen


Google-Anzeigen