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

Digitale Hardware/ Software-Systeme- P12 pot

30 291 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 đề Funktionale Eigenschaftsprüfung
Trường học Standard University
Chuyên ngành Digital Hardware/Software Systems
Thể loại Luận văn
Thành phố City Name
Định dạng
Số trang 30
Dung lượng 297,3 KB

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

Nội dung

Die Ausgabe der Monitorkomponenten besteht aus drei Signalen checking, valid und pending, f¨ur die folgende Eigenschaften gelten: • checking = T zeigt an, dass das Signal valid im n¨achs

Trang 1

6.4 Funktionale Eigenschaftspr ¨ufung

F¨ur die funktionale Eigenschaftspr¨ufung von Hardware-Komponenten werden zutage im Wesentlichen zusicherungsbasierte oder SAT-basierte Verfahren einge-setzt Beide Ans¨atze werden im Folgenden n¨aher betrachtet

heut-6.4.1 Zusicherungsbasierte Eigenschaftspr ¨ufung

F¨ur die zusicherungsbasierte, simulative Eigenschaftspr¨ufung werden gen (engl assertions) zun¨achst in Monitore ¨ubersetzt (siehe Abschnitt 5.2.3) F¨ur

Zusicherun-die funktionale Eigenschaftspr¨ufung von Hardware-Komponenten werden Zusicherun-diese

Mo-nitore in Schaltungen synthetisiert Die resultierenden Monitorschaltungen k¨onnen

anschließend zusammen mit dem Modell der Schaltung simuliert werden oder zur

¨

Uberpr¨ufung der Schaltung im sp¨ateren Betrieb auch mit gefertigt werden Im genden wird gezeigt, wie Monitore f¨ur PSL-Zusicherungen generiert werden k¨onnen

Fol-Synthese von Monitoren

Um Monitore zur simulativen Pr¨ufung von Zusicherungen im Hardware-Entwurfeinsetzen zu k¨onnen, m¨ussen Monitore synthetisiert werden Somit werden Monitoreals Komponenten implementiert, die als Eingang das Taktsignal, das R¨ucksetzsignal,

weitere Synchronisationssignale und Signale des SUV (engl System Under cation), welche f¨ur die ¨Uberpr¨ufung der Zusicherung beobachtet werden m¨ussen,erhalten Die Ausgabe der Monitorkomponente zeigt dann an, inwieweit die zu ¨uber-pr¨ufende Zusicherung momentan erf¨ullt ist Eine Zusicherung kann in einer Simula-tion entweder:

Verifi-1 stark erf¨ullt sein, wenn die Zusicherung bereits erf¨ullt ist und unter jedem

erdenklichen Ausf¨uhrungspfad (auch bei Beendigung der Simulation) weitererf¨ullt sein wird,

2 erf¨ullt sein, wenn die Zusicherung bereits erf¨ullt wurde, aber Ausf¨uhrungspfade

denkbar sind, welche die Zusicherung widerlegen,

3 ausstehend sein, wenn die Zusicherung bisher weder erf¨ullt wurde noch

wi-derlegt wurde, aber Ausf¨uhrungspfade m¨oglich sind, welche die Zusicherungerf¨ullen oder widerlegen, oder

4 nicht erf¨ullt sein, wenn die Zusicherung bereits widerlegt wurde und weiter keine

Vervollst¨andigung des Ausf¨uhrungspfad m¨oglich ist, auf dem die Zusicherungerf¨ullt ist

Die Ausgabe der Monitorkomponenten besteht aus drei Signalen checking, valid und pending, f¨ur die folgende Eigenschaften gelten:

• checking = T zeigt an, dass das Signal valid im n¨achsten Takt g¨ultig wird.

• valid zeigt das Ergebnis der ¨Uberpr¨ufung der Zusicherung an, wobei T die

G¨ultigkeit der Zusicherung undF die Verletzung der Zusicherung signalisiert

Trang 2

• pending = T zeigt an, dass der Monitor gestartet wurde, ein endg¨ultiges Ergebnis

allerdings noch aussteht Dieses Signal wird f¨ur die starken Operatoren in PSLben¨otigt

Die Schnittstelle eines PSL-Monitors ist in Abb 6.64 zu sehen

Monitor checking clk

reset start operands

valid pending

Abb 6.64 Schnittstelle eines PSL-Monitors [335]

Da komplexe Zusicherungen als Kombinationen von elementaren gen aufgebaut werden k¨onnen, k¨onnen Monitore f¨ur komplexe Zusicherungen auchdurch Verschalten von Monitoren f¨ur elementare Zusicherungen gewonnen werden.Die Struktur der Verschaltung dieser Monitore entspricht der Struktur der PSL-Formel, die es zu pr¨ufen gilt Das folgende Beispiel stammt aus [335]

Zusicherun-Beispiel 6.4.1 Es soll f¨ur die folgende Zusicherung ein Monitor synthetisiert

wer-den

assert always a - > next![2](b before! c)@(posedge clk);

Diese Zusicherung beschreibt eine Invariante, die garantiert, dass jedes Mal, wenn

das Signal a den WertT annimmt, nach zwei Takten gelten muss, dass das Signal

b vor dem Signal c den WertT annimmt Ein zugeh¨origer Monitor hat also eine

Schnittstelle, die zu den immer notwendigen Signalen (clk, reset, start checking, valid und pending) die Signale a, b und c enth¨alt.

Abbildung 6.65 zeigt zwei m¨ogliche Signalverl¨aufe f¨ur den Monitor, wobei die

PSL-Zusicherung in Abb 6.65a) nicht erf¨ullt ist In Takt 1 wechselt das Signal a

vonF nach T Somit muss, um die Zusicherung zu erf¨ullen, das Signal b ab Takt 3 vor dem Signal c den Wert T annehmen In Takt 5 wechselt jedoch Signal c von F

nachT, ohne dass zuvor Signal b auf T gewechselt hat Im selben Takt wechselt das Signal checking auf T, womit signalisiert wird, dass das Signal valid im n¨achsten Takt das Ergebnis liefert Im Takt 6 zeigt das Signal valid schließlich die Verletzung

der Zusicherung an

In Abb 6.65b) ist die Zusicherung auf dem dargestellten endlichen Signalverlauf

erf¨ullt In Takt 2 nimmt das Signal a f¨ur einen Takt den Wert T an Somit muss,

um die Zusicherung zu erf¨ullen, Signal b ab Takt 4 vor Signal c den WertT

anneh-men In Takt 6 wechselt Signal b von F nach T Da Signal c vorher keinen Wechsel

durchgef¨uhrt hat, ist die Zusicherung erf¨ullt, was in Takt 7 mittels des jetzt g¨ultigen

Signals valid angezeigt wird Das dieser Wert g¨ultig ist, wird durch den Wechsel

Trang 3

Abb 6.65 Signalverl¨aufe: a) verletzt die Zusicherung b) erf¨ullt die Zusicherung [335]

von Signal checking im Takt 6 vonF nach T signalisiert Man muss beachten, dasswenn die Beobachtung durch den Monitor in Takt 5 beendet worden w¨are, der starke

before!-Operator fehlgeschlagen w¨are, was durch das Signal pending mit dem Wert

T angezeigt ist

Generierung komplexer Monitore durch Komposition

Um komplexe Zusicherungen zu ¨uberpr¨ufen, werden Monitore, die elementare sicherungen implementieren, zusammen geschaltet Die Verschaltung erfolgt da-bei entsprechend dem Syntaxbaum der PSL-Formel Der Syntaxbaum zu der PSL-

Trang 4

Zu-Zusicherung aus Beispiel 6.4.1 ist in Abb 6.66 dargestellt Dabei ist ein Knoten imSyntaxbaum ein PSL-Operator und die Bl¨atter sind Operanden (Signale).

c b

a

2 before!

next!

->

always

Abb 6.66 Syntaxbaum f¨ur die Zusicherung always a -> next![2](b before! c)

Die Verschaltung erfolgt, indem Operanden mit den einzelnen Operatoren folgender Regeln verbunden werden:

nach-• F¨ur jeden Knoten im Syntaxbaum wird ein entsprechender Monitor instantiiert.

• Die Ergebnisse Boolescher Ausdr¨ucke aus der Schaltung werden direkt mit den

Eing¨angen der Monitore verbunden Falls ein Operand eine Formel mit ralen Operatoren ist, so wird der entsprechende Eingang mit einer konstantenTverbunden Sonst wird der Boolesche Ausdruck direkt mit den Eing¨angen derMonitore verbunden

tempo-• F¨ur zwei Operatoren op1 und op2, wobei op2 Operand von op1 ist, werden die

Monitore wie folgt verschaltet:

Der Ausgang checking vom Monitor f¨ur op1 wird mit dem Eingang start des Monitors f¨ur op2 verbunden.

Der Ausgang valid vom Monitor f¨ur op1 wird nicht verwendet.

Die Signale clk und reset werden von beiden Monitoren gemeinsam

verwen-det

• Ein Komponente init wird erzeugt, welche das Startsignal f¨ur den ersten Monitor liefert Das Startsignal wird einen Takt nachdem das reset-Signal vonT nach Fgewechselt ist generiert

Trang 5

• Die prim¨aren Ausg¨ange des zusammengesetzten Monitors zeigen an, inwieweit die gesamte PSL-Zusicherung erf¨ullt ist, wobei das pending-Signal als Disjunk- tion aller pending-Signale der starken PSL-Operatoren gebildet wird.

Der komplexe Monitor f¨ur die PSL-Zusicherung aus Beispiel 6.4.1 ist in Abb 6.67dargestellt

->

clk reset start checking

pending

clk reset start checking

valid

pending

pending

valid checking

before!

operand operand

operand

operand T

next! [2]

Abb 6.67 Monitor f¨ur die Zusicherung always a -> next![2](b before! c) [335]

Generierung der elementarer Monitore

Die einzelnen primitiven Monitore k¨onnen entsprechend dem Vorgehen aus schnitt 5.2.3 generiert werden Ein alternativer Ansatz ist in [334] f¨ur sequentiellerweitere regul¨are Ausdr¨ucke (SEREs) beschrieben F¨ur die Generierung der Signa-

Ab-le checking, valid und pending wird in [333, 335] ein Struktur aus einem Block zur Zeitfenstergenerierung und einem Block zur Evaluierung vorgeschlagen.

Der Block zur Zeitfenstergenerierung setzt entsprechend der temporalen

Opera-toren und in Abh¨angigkeit des Signals start das Signal pending und checking sowie ein internes Signal check Ein Schieberegister kann verwendet werden, wenn die

Operatoren eine ¨Uberlappung von Zeitfenstern erlauben Der Block zur Evaluierung

beginnt mit der Verarbeitung der Operanden, sobald das interne Signal check setzt ist und setzt das Ausgangssignal valid = F Ist das Signal check = F, so wird das Signal valid auf den WertT gesetzt Die Verschaltung der beiden Bl¨ocke ist inAbb 6.68 zu sehen

ge-Aufstellen von Zusicherungen f ¨ur die PCI-Spezifikation

Im Folgenden wird anhand der PCI-Spezifikation [356] gezeigt, wie Zusicherungenaus einer umgangssprachlichen Spezifikation abgeleitet werden k¨onnen Das Bei-spiel stammt aus [111]

Peripheral Component Interconnect (PCI) Local Bus ist ein Industriestandard f¨ur

32- oder 64-Bit Bus Architekturen mit gemultiplexten Adress- und Datenleitungen.Der Bus wurde im Wesentlichen als kosteng¨unstige aber schnelle Verbindungstech-nik f¨ur integrierte Peripherie-Controller mit Speicher- und Prozessorsubsystemenentwickelt Die Schnittstelle eines PCI-Busses ist in Abb 6.69 zu sehen

Trang 6

pending valid checking

operands

Monitor

start

clk reset

check

generierung

Zeitfenster-Evaluierung

Abb 6.68 Struktur eines primitiven PSL-Monitors [333]

PCI-kompatibles Ger¨at

steuerung

anzeige Arbitrierung

Fehler-ad cbe n par

f rame n trdy n irdy n stop n idsel devsel n

perr n serr n req n gnt n clk rst n

32 4

Schnittstellen-und Daten Adressierung

Abb 6.69 PCI-Bus-Schnittstelle [111]

Eine Transaktion auf dem PCI-Bus besteht aus aus einer Adressierungs- und ner oder mehreren folgenden Datenphasen Die Art der Transaktion wird w¨ahrend der Adressierungsphase mittels der Signale cbe n[3 : 0] angezeigt W¨ahrend der Da- tenphase dienen diese Signale als Auswahlsignale (engl byte enable) Man beachte, dass das Suffix n ein invers aktives Signal kennzeichnet Die weiteren Signale wer-

ei-den w¨ahrend der Aufstellung von Zusicherungen nach Bedarf eingef¨uhrt

Beispiel 6.4.2 Die Anforderung an das Zur¨ucksetzen des Busses aus der

PCI-Spezi-fikation soll in einer Zusicherung formuliert werden Die PCI-SpeziPCI-Spezi-fikation gibt vor:

Um zu verhindern, dass die Signale ad[31 : 0], Signal cbe n[3 : 0] und Signal par

beim Zur¨ucksetzen unbestimmte Pegel annehmen, d¨urfen diese, w¨ahrend das

R¨uck-setzsignal rst n den WertF besitzt, nicht den Wert T annehmen In PSL heißt dies:assert always(rst n == F)->!({ad} | {cbe e} | {par})@(posedge clk);

Trang 7

Die Adresse, auf die ¨uber den PCI-Bus zugegriffen werden soll, ist durch die

Adresssignale ad[31 : 2] w¨ahlbar Die beiden niederwertigsten Bits ad[1 : 0] werden

vom Bus-Master verwendet, um f¨ur einen Burst-Zugriff anzuzeigen, in welcher

Rei-henfolge Daten ¨ubertragen werden Dabei zeigt die Belegung ad[1 : 0] = (F,F) eine lineare Inkrementierung der Adresse an Die Belegung ad[1 : 0] = (T,F) steht f¨ur den sog cache wrap mode Die Belegungen ad[1 : 0] = (F,T) und ad[1 : 0] = (T,T)

sind ungenutzt (reserviert)

Beispiel 6.4.3 Aus der obigen Darstellung folgt, dass Signal ad[0] niemals den Wert

T w¨ahrend der Adressierungsphase annehmen darf Um dies in einer Zusicherung

zu formulieren, muss zun¨achst die Adressierungsphase identifiziert werden Dies folgt ¨uber einen sequentiell erweiterten regul¨aren Ausdruck (SERE), der beschreibt,

er-dass das Signal f rame n zu Beginn der Adressierungsphase vonT nach F

wech-selt Die Signale cbe n[3 : 0] zeigen zu diesem Zeitpunkt die Transaktionsart an Die

Definition dieser Transaktionsarten kann in PSL mit demdefine-Befehl erfolgen

 define mem cmd ((cbe n ==  MEM READ ) || \

(cbe n ==  MEM W RIT E ) || \ (cbe n ==  MEM RD MU LT IP ) || \ (cbe n ==  MEM RD LINE ) || \ (cbe n ==  MEM W R AND INV))

Man beachte, dass anstelle der logischen Werte der Signale cbe n[3 : 0] Makros

ver-wendet wurden

Mit der Variablen mem cmd kann nun der Beginn einer Adressierungsphase als

SERE formuliert werden Dies erfolgt in PSL mittels der sequence-Anweisung

sequence SERE MEM ADDR PHASE = { f rame n;! f rame n && mem cmd}; Nun kann die Eigenschaft, dass Signal ad[0] in einer Adressierungsphase niemals

den WertF annimmt, formuliert werden:

property PCI VALID MEM BU RST ENC=

always SERE MEM ADDR PHASE |-> {!ad[0]}

abort!rst n@(posedge clk);

Schließlich wird diese Eigenschaft als Zusicherung formuliert:

assert PCI VALID MEM BU RST ENC;

Beispiel 6.4.4 Eine einfache Lesetransaktion auf dem PCI-Bus besteht aus zwei

Phasen: Der Adressierungsphase, bei der eine Adresse innerhalb eines Taktes tragen wird, und einer Datenphase, die aus einem Datentransfer und keinem, einemoder mehreren Wartezyklen besteht Die Adressierungsphase beginnt mit dem Wech-

¨uber-sel des Signals f rame n vonT nach F, d h

Trang 8

sequence SERE RD ADDR PHASE = { f rame n;! f rame n&&mem cmd}; wobei mem cmd wie folgt spezifiziert ist:

 define mem cmd ((cbe n ==  IO READ ) || \

(cbe n ==  MEM READ ) || \ (cbe n ==  CONFIG RD ) || \ (cbe n ==  MEM RD MU LT IP ) || \ (cbe n ==  MEM RD LINE))Zwischen Adressierungs- und Datenphase muss ein Taktzyklus liegen Dieserkann durch die folgende SERE erkannt werden:

 define ad turn around (trdy n & !irdy n)

sequence SERE TU RN AROU ND = {ad turn around};

Der Datentransport wird durch die Signale irdy n = F, trdy n = F und f rame n =

F angezeigt Die Wartezyklen werden durch die Signale irdy n = T oder trdy n = T

angezeigt Somit kann der der Datentransport als SERE wie folgt modelliert werden:

 define data trans f er (!trdy n && !irdy n && ! f rame n)

 define wait state (trdy n || irdy n)

sequence SERE DATA T RANSFER = {{wait state[∗];data trans f er}[1 : in f ]}; Die Datenphase endet entweder, wenn Signal trdy n = F oder Signal stop n = F und gleichzeitig Signal irdy n= F ist Die Lesetransaktion endet sobald das Signal

f rame n den WertT annimmt Damit kann das Ende des Datentransfers als SEREdefiniert werden:

 define data complete ((!trdy n || stop n) && !irdy n)

sequence SERE END OF T RANSFER = {data complete && f rame n}; W¨ahrend der gesamten Datenphase bleiben die Signale cbe n[3 : 0] stabil, d h.

 define cbe stable (cbe n == prev(cbe n))

Die Datenphase kann wie folgt als SERE formuliert werden:

sequence SERE DATA PHASE = {

{SERE DATA TRANSFER;SERE END OF TRANSFER}

&&{cbe stable}};

Die funktionale Eigenschaft einer g¨ultigen Lesetransaktion sieht dann wie folgtaus:

Trang 9

property PCI READ T RANSACT ION=

always SERE RD ADDR PHASE |=>

{SERE TURN AROUND;SERE DATA PHASE}

abort!rst n@ (posedge clk);

Dies kann als Zusicherung ebenfalls formuliert werden:

assert PCI READ T RANSACT ION;

6.4.2 SAT-basierte Modellpr ¨ufung

SAT-basierte Modellpr¨ufung hat sich als formales Pr¨ufverfahren f¨ur funktionale genschaften im Hardware-Entwurf etabliert Dies liegt im Wesentlichen an der gutenSkalierbarkeit des Verfahren f¨ur die Falsifikation von Eigenschaften Dabei ist das

Ei-Finden von Gegenbeispielen einer beschr¨ankten L¨ange von k Zeitschritten im

Fo-kus des Verfahrens Die zugrundeliegende Idee ist die effiziente ¨Ubersetzung der

Schaltung und der funktionalen Eigenschaft f¨ur eine gegebene Schranke k in eine

Instanz des Booleschen Erf¨ullbarkeitsproblems Die resultierende Formel ist genau

dann erf¨ullbar, wenn ein Gegenbeispiel der L¨ange k existiert (siehe Abschnitt 5.3.2).

Die ¨Ubersetzung erfordert u a das Abrollen der Schaltung ¨uber k Zeitschritte Das Ergebnis ist ein iteratives Schaltungsmodell, wie es bereits in Abschnitt 6.1.3

f¨ur die ¨Aquivalenzpr¨ufung zweier Schaltwerke definiert wurde Solch ein Modell istnochmals in Abb 6.70 f¨ur das Schaltwerk aus Abb 6.15 auf Seite 258 gezeigt Derjeweilige Zeitschritt ist hinter den Signalnamen in den eckigen Klammern angege-ben

Abb 6.70 Iteratives Schaltungsmodell des Schaltwerks aus Abb 6.15

Das Abrollen der Schaltung beschr¨ankt die m¨oglichen Ausf¨uhrungspfade, sodass bei der sp¨ateren Modellpr¨ufung lediglich g¨ultige Pfade, also solche die im An-fangszustand des Systems beginnen, betrachtet werden Neben dem Abrollen der

Trang 10

Schaltung ¨uber k Zeitschritte wird die temporallogische Formel, die eine geforderte

funktionale Eigenschaft spezifiziert, auf eine Art ¨ubersetzt, so dass f¨ur jeden schritt spezielle Bedingungen entstehen Das iterative Schaltungsmodell wird mit-tels symbolischer Simulation ebenfalls in eine aussagenlogische Formel ¨ubersetzt.Die Konjunktion beider aussagenlogischer Formeln wird mittels eines SAT-Solvers(siehe Anhang C.2) auf Erf¨ullbarkeit ¨uberpr¨uft Kann keine erf¨ullende Variablenbe-

Zeit-legung f¨ur die aussagenlogische Formel f¨ur k Zeitschritte gefunden werden, muss die Schranke k gegebenenfalls inkrementiert werden, um nach Gegenbeispielen gr¨oßerer L¨ange zu suchen Dabei wird mit wachsendem k die Pr¨ufung auf Erf¨ullbarkeit immer

schwieriger Das folgende Beispiel stammt aus [316]

Beispiel 6.4.5 Ein synchroner, skalierbarer Bus-Arbitrierer hat n Eing¨ange (req0, , req n −1) und n Ausg¨ange (ack0, ,ack n −1) wie in Abb 6.71b) dargestellt In je-

dem Takt k¨onnen mehrere Bus-Anforderungen req i= T gestellt werden Die

Aufga-be des Arbitrierers ist es, genau einem anfragenden Teilnehmer den Bus zuzuteilen

ack i= T Der Aufbau einer einzelnen Arbitriererzelle ist in Abb 6.71a) dargestellt

Hier wird derjenige Teilnehmer mit h¨oherer Priorit¨at (kleinerer Index i) den Bus zugeteilt bekommen Hierzu erh¨alt jede Arbitriererzelle i − 1 von der h¨oherprioren Arbitriererzelle i das Signal grant in Sind sowohl Signal grant in ials auch Signal

req iauf den WertT gesetzt, so wird Signal ack i auf T gesetzt Gleichzeitig wird gnal grant out iaufF gesetzt Trotz dieser priorit¨atsbasierten Arbitrierung garantiertder Arbitrierer, dass jede Bus-Anforderung irgendwann bedient wird und niederprio-

Si-re Anfragen nicht aushungern Dies wird mittels einer Marke bewerkstelligt Diese

Marke wird von der Zelle i zur Zelle i+ 1 zyklisch weitergereicht Hierzu besitzt

jede Arbitriererzelle ein Flip-Flop T Das Flip-Flop T0wird zu Beginn auf den Wert

T initialisiert, alle anderen Flip-Flops T1, ,T n −1erhalten den WertF Wenn eine

Arbitriererzelle i die Marke erh¨alt, d h T i = T und eine Busanforderung (req i= T)

vorliegt, wird ein spezielles Bit im Flip-Flop W gesetzt Dies versetzt die

Arbitrierer-zelle in den Zustand

”wartend“ Die Zelle verbleibt in diesem Zustand, so lange die

Bus-Anforderung nicht zur¨uckgenommen wird Alle Flip-Flops W i werden zu ginn mitF initialisiert

Be-Wenn die Marke zu dieser Arbitriererzelle zur¨uckkehrt, und diese sich weiter

im Zustand

”wartend“ befindet, erh¨alt diese Zelle unverz¨uglich die h¨ochste Priorit¨at.

Dies geschieht, indem die Zelle den Ausgang override out= T setzt Dies sorgt

daf¨ur, dass in der h¨ochstprioren Arbitriererzelle das grant in-Signal negiert wird.

Eigenschaften, die f¨ur den skalierbaren Arbitrierer gezeigt werden sollen, sind

u a [206]:

1 Wechselseitiger Ausschluss: Keine zwei Ausg¨ange ack i und ack j mit i = j d¨urfen

gleichzeitig den WertT annehmen:

Trang 11

token out

token in

grant out override in

token out

token in

grant out override in

an den Operator F annotiert Diese Erweiterung beschr¨ankt die G¨ultigkeit des tors auf das gegebene Zeitintervall Weiterhin l¨asst sich die Lebendigkeitseigenschaft

Opera-in der Form G(req i ⇒ F [0,2n −1 ]ack i) nicht beweisen Hierzu ist es notwendig, eine

Annahme ¨uber die Umgebung zu treffen [206]: Ein Signal req i muss solange aufT

gehalten werden, bis die zugeh¨orige Best¨atigung durch Signal ack erfolgte Somit

Trang 12

ergibt sich als Lebendigkeitseigenschaft:

G

G[0,2n −1](req i ⇒ (¬ack i ⇒ X req i )) ⇒ (req i ⇒ F [0,2n −1 ]ack i)

Der Operator G gilt entsprechend dem erweiterten Operator F hier nur f¨ur das bene Zeitintervall

gege-Große und Drechsler berichten in [206] die Anzahl erreichbarer Zust¨ande desskalierbaren Arbitrierers Diese sind in Tabelle 6.6 dargestellt

Tabelle 6.6 Anzahl erreichbarer Zust¨ande des skalierbarer Arbitrierers [206]

Zellen Zust¨ande Zellen Zust¨ande Zellen Zust¨ande Zellen Zust¨ande

SAT-basierte Modellpr ¨ufung bei mehreren Taktdom¨anen

Typische eingebettete Computersysteme, sogar wenn auf einem einzelnen Chip

integriert, verf¨ugen ¨uber mehrere sog Taktdom¨anen Der Grund liegt hierf¨ur in

der gleichzeitigen Optimierung des Durchsatzes und der Leistungsaufnahme einesChips Durch die Verwendung vieler unterschiedlicher Taktsignale k¨onnen einzelneBereiche auf dem Chip besonders schnell arbeiten oder besonders verlustleistungs-effizient Dies kann auch bedeuten, dass das Taktsignal f¨ur manche Bereiche tem-

por¨ar sogar ganz abgeschaltet wird (engl clock gating), um die Schaltaktivit¨at zu

minimieren Die Verwendung mehrerer Taktdom¨anen resultiert allerdings in einengesteigerten Aufwand in der Verifikation

Formale Modellpr¨ufungsverfahren sind f¨ur synchrone Systeme mit einem zigen Taktsignal entwickelt worden Um die Modellpr¨ufungsverfahren dennoch f¨urSysteme mit mehren Taktdom¨anen verwenden zu k¨onnen, m¨ussen die Systembe-schreibungen in ein ¨aquivalentes System mit einer einzelnen Taktdom¨ane transfor-miert werden Handelt es sich bei dem System um ein synchrones System mit meh-reren Taktdom¨anen mit verschiedenen, aber bekannten Frequenzen und bekanntenPhasen, kann ein globales Taktsignal mit der Frequenz des kleinsten gemeinsamenVielfachen aller Frequenzen verwendet werden

Trang 13

ein-Beispiel 6.4.6 In einer Schaltung werden zwei Taktsignale clk1 und clk2 mit

Fre-quenzen 2MHz bzw 3MHz ohne Phasenverschiebung eingesetzt Dann wird ein globales Taktsignal clk global mit Frequenz 6MHz verwendet und mit dieser Taktrate

das iterative Schaltungsmodell konstruiert Allerdings ist das zweite, sechste, achte,zw¨olfte etc Abrollen (negative Taktflanken mit betrachtet) unn¨otig, da weder Takt-

signal clk1noch Taktsignal clk2zu diesen Zeitschritten schalten

Ein analoges Problem entsteht bei der ¨Ubersetzung der funktionalen ten Das folgende Beispiel stammt aus [174]:

Eigenschaf-Beispiel 6.4.7 Die Property Specification Language (PSL) erlaubt die Verwendung

mehrerer Taktsignale in der Spezifikation von Zusicherungen Eine getaktete

LTL-Formel in PSL, die von zwei Taktsignalen clk1und clk2abh¨angt, ist wie folgt ben:

gege-eventually! p && (next q@(posedge clk1))@(posedge clk2);

wobei p und q atomare Aussagen darstellen Bei der Umwandlung in eine

ungetak-tete LTL-Formel k¨onnen LTL-Formeln, die von mehreren Taktsignalen abh¨angen,stark anwachsen Beispielsweise sieht obige Formel als ungetaktete LTL-Formel wiefolgt aus:

eventually! p && (!clk2until!(clk2&& next

(!clk2until!(clk2&&(!clk1until!(clk1&& q))))));

Im Folgenden werden synchrone Systeme mit mehreren Taktdom¨anen betrachtet.Ein Ansatz f¨ur Systeme mit asynchronen Taktdom¨anen ist in [105] beschrieben

Beispiel 6.4.8 Betrachtet wird das synchrone System mit mehreren Taktdom¨anen aus Abb 6.72a) FF1ist die Menge der Flip-Flops, die positiv taktflankengesteuert

sind FF2ist die Menge der Flip-Flops, die negativ taktflankengesteuert sind Man

beachte, dass die Flip-Flops in FF1 an das Taktsignal clk1 und die Flip-Flops in

FF2am Taktsignal clk2angeschlossen sind FF3ist ein pegelgesteuertes Flip-Flop

Die Bl¨ocke f1, , f4bezeichnen kombinatorische Logik Signale i und o sind die

prim¨aren Ein- bzw Ausg¨ange

Das ¨aquivalente synchrone System mit einem globalen Taktsignal clk globalist inAbb 6.72b) dargestellt Dieses System ist derart entworfen, dass alle ¨Anderungeneines Eingangssignals, von internen Signalen oder Speicherelementen nur zusam-men mit ¨Anderungen des Taktsignals clk globalerfolgen Um dies zu erreichen, wird

vor jedes Flip-Flop ein Multiplexer geschaltet, der von einer Generatorschaltung g i

f¨ur i = 1,2,3 angesteuert wird Der Ausgang der Generatorschaltung g1nimmt denWertT an, wenn eine positive Taktflanke von clk1detektiert wird Der Ausgang der

Generatorschaltung g2nimmt entsprechend den WertT an, wenn eine negative

Takt-flanke von clk2detektiert wird Schließlich nimmt der Ausgang von g3den WertT

an, wenn die Funktion f4den WertT besitzt Die Flip-Flops werden ¨uber das globale

Taktsignal clk globalgesteuert und sind sowohl positiv als auch negativ steuert

Trang 14

T T

Die Schaltung aus Abb 6.72b) kann nun ¨uber die Zeitschritte abgerollt werden

Hierzu muss allerdings zun¨achst das Signal clk globalbestimmt werden Im ten Fall berechnet man das kleinste gemeinsame Vielfache der Frequenzen der Takt-

einfachs-signale clk1und clk2 Dies f¨uhrt allerdings, wie oben erl¨autert, zu unn¨otigen ¨pr¨ufungen von Formeln, da keine Schaltaktivit¨at vorliegt

Uber-In einem alternativen Ansatz wird zun¨achst der sog globale Taktzustand

be-stimmt Bei dem globalen Taktzustand handelt es sich hierbei um ein 3-Tupel

S [i] = (τ[i],c1[i],c2[i]) Dabei bezeichnet i die Position des Ereignisses in der

Rei-henfolge aller Taktzust¨ande.τ[i] ist der Zeitpunkt, zu dem das Ereignis eingetreten

ist Die verbleibenden Eintr¨age sind die Werte der urspr¨unglichen Taktsignale zu demZeitpunktτ[i] Die globalen Taktzust¨ande werden entsprechend ihrer Reihenfolge in

einer Ereignisqueue gespeichert Mit dieser Ereignisqueue kann abgeleitet werden,

zu welchen Zeitschritten ein Abrollen der Schaltung sinnvoll ist

Beispiel 6.4.9 Betrachtet wird wiederum das synchrone System mit mehreren

Takt-dom¨anen aus Beispiel 6.4.8 Die globalen Taktzust¨ande sind durch die folgendenEintr¨age in der Ereignisqueue gegeben [174]:

Trang 15

Nur zu den Zeitpunktenτ[i] ∈ {0ns,4ns,5ns,10ns,12ns,15ns,20ns,25ns,28ns,30ns}

ist ein Aufstellen des iterativen Schaltungsmodells und eine ¨Ubersetzung in die respondierende aussagenlogische Formel sinnvoll Die Zeitpunkte sind in Abb 6.73

kor-dargestellt Dabei werden die urspr¨unglichen Taktsignale clk1und clk2 derart schr¨ankt, dass deren Werte mit dem globalen Taktzustand ¨ubereinstimmen Dabei ist

be-in Abb 6.73 auch zu erkennen, dass die pegelgesteuerten Latches kebe-iner gesonderten

Behandlung bed¨urfen, da sich deren Steuersignal f4synchron zu dem ten Flip-Flop ¨andert

vorgeschalte-f4

clk2

clk1

Abb 6.73 ¨Anderungen im globalen Taktzustand [174]

Obwohl die Anzahl der betrachteten Ereignisse gegen¨uber dem Ansatz der stimmung des kleinsten gemeinsamen Vielfachen der Taktfrequenzen reduziert wur-

Be-de, k¨onnen einige der Ereignisse in der Ereignisqueue irrelevant sein Ber¨ucksichtigtman, dass manche Register nur ¨uber positive oder negative Taktflanken gesteuertwerden, k¨onnen weitere Zeitschritte bei der Modellpr¨ufung ausgeschlossen werden

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