Home

Volltext

image

Contents

1. neues Beispiel mit Namen Framer eingef hrt werden In Abb 4 7 sind dazu der Eigenschaftsgraph sowie die Grenzen der Eigenschaften abgebildet Der weitere Aufbau der Eigenschaften ist an dieser Stelle nicht notwendig Der dazu geh rige abgerollte Eigenschaftsgraph ist in Abb 4 8 zu sehen Jedes nummerierte K stchen entspricht darin einer Eigenschaftsposition Zeitkanten Nachfolgerkanten Abbildung 4 8 Abgerollter Eigenschaftsgraph der Komponente Framer Eine weitere Besonderheit ist der Beginn einer Eigenschaft Die Syntax von ITL erlaubt Annahmen und Zusicherungen vor der linken Grenze Die in dieser Arbeit vorgestellten Algorithmen zur Konstruktion eines Kontrollau tomaten erfordern jedoch dass Annahmen und Zusicherungen erst mit der linken Grenze beginnen d rfen Im Falle von Annahmen kann dies durch eine Verz gerung der Annahme auf den Zeitpunkt der linken Grenze erreicht wer den Bei Zusicherungen ist dieses Verfahren nicht m glich da die Zuweisung an bspw ein Ausgangssignal nicht verz gert werden darf und sofort gesche hen muss Aus diesem Grund sind zu fr he Zusicherungen nicht erlaubt In Abschnitt 5 1 4 wird dies n her erl utert Bei der Betrachtung des abgerollten Eigenschaftsgraphen ist zu beachten dass dieser keinen normalen Automaten darstellt jedoch wie ein Automat abgearbeitet werden kann Der dieser Abarbeitung zugrunde liegende Auto mat stellt das Ergebnis des im folgenden vorgestellten nic
2. besteht aus der Potenzmenge der Eigenschaftspositionen Q Dabei enthalt jeder Zustand in S eine oder mehrere Eigenschaftspositionen aus Der Startzustand So besteht aus der Reseteigenschaftsposition Qo So Qo die wie bereits definiert den Anfang der Reseteigenschaft darstellt Es ist zu beachten dass So nicht exakt Qo entspricht sondern einer Menge mit einen einzigen Element Qo Eingabealphabet Das Eingabealphabet beinhaltet wiederum die Potenzmenge aller in Ab schnitt 4 5 5 definierten Gesamtannahmen A Bi E 100 4 6 Konstruktion des nichtdeterministischen Kontrollautomaten Zustands bergangsrelation Die Zustands bergangsrelation A C Sx Xx S beinhaltet alle Transitionen des Automaten Dabei werden ausgehend von einem bestimmten Zustand s S seine Ubergangsbedingungen o und Zielzust nde succ s definiert und die entstehenden Tupel zu 6 hinzugef gt s 0 8 s S s succ s 0s C o Die dabei notwendige Definition von Os Apt Ape p s sammelt alle Gesamtannahmen des Ausgangszustands Dabei muss jede ein zelne der Annahmen erf llt sein damit der Zustands bergang durchgef hrt werden kann Es ist nat rlich auch erlaubt dass mehr Annahmen erf llt sind als in o enthalten sind Der n chste Konstruktionsschritt ist das Finden der Nachfolger f r jeden Zustand d h die Funktion succ s muss definiert werden Dazu muss zuerst die Nachfolgermenge einer einzel
3. S 295 311 Roderick Bloem Stefan Galler Barbara Jobstmann Nir Piter man Amir Pnueli und Martin Weiglhofer Automatic Hardware Synthesis from Specifications A Case Study In Design Auto mation and Test in Europe DATE 2007 S 1188 1193 Mordechai Ben Ari Zohar Manna und Amir Pnueli The Tem poral Logic of Branching Time In Principles of Programming Languages POPL New York NY USA ACM Jan 1981 S 164 176 ISBN 089791029X J rg Bormann Vollst ndige funktionale Verifikation Disser tation Universit t Kaiserslautern 2009 Randal E Bryant Graph Based Algorithms for Boolean Func tion Manipulation In IEEE Transactions on Computers 35 8 1986 S 677 691 Jerry R Burch Edmund M Clarke Kenneth L McMillan Da vid L Dill und L J Hwang Symbolic model checking 10 20 states and beyond In Logic in Computer Science LICS IE EE 1990 S 428 439 ISBN 0 8186 2073 0 Marc Boul und Zeljko Zilic Generating Hardware Asser tion Checkers for Hardware Verification Emulation Post Fabrication Debugging and On Line Monitoring Springer 2008 S 279 ISBN 1402085850 Eduard Cerny Bachir Berkane Pierre Girodias und Karim Khordoc Hierarchical Annotated Action Diagrams Kluwer 1998 S 232 ISBN 079238301X Edmund M Clarke Orna Grumberg und Doron Peled Model checking MIT Press 1999 S 314 ISBN 0262032708 Kai Hui Chang Wei Ting Tu Yi Jong Yeh und
4. automaten unter Ber cksichtigung der erreichbaren Zust nde 1 V Vo 2 O Vo 3 Ai N 4 while Q 9 do 5 v 4 w hle aus Q 6 O O v 7 foralloeX do 8 v amp succ v o 9 if ul 40 then 0 if v V then 1 QQuv 2 VeVuv 13 end if 14 Ac 0 U v 0 v 5 end if 6 end for 7 end while 4 7 7 Komplexit tsbetrachtung Der zu erwartende Speicherbedarf des DEA w chst mit der Anzahl der nicht aufl sbaren bzw sp t aufl sbaren Entscheidungen In praktischen Anwen dungsbeispielen werden diese F lle nicht zu einer berm ssig erh hten Anzahl Zust nde f hren da es dann ratsam ist auf die deterministische Konstrukti on zu verzichten und statt dessen den nichtdeterministischen Automaten zu erstellen Als bedeutsamster Faktor kann die Kardinalit t der Potenzmenge der An nahmen betrachtet werden Mit jeder zus tzlichen Annahme verdoppelt sich die Anzahl der Zustands berg nge in Anza Die Mehrzahl der berg nge kann jedoch wieder zusammengefasst werden da Start und Zielzustand iden tisch sind Die Gr e der Disjunktion der bergangsbedingungen von denen jede einen Minterm der Annahmen darstellt wird dann ebenso wie zuvor die Anzahl der berg nge drastisch anwachsen und m sste mit booleschen Optimierungsverfahren minimiert werden Da ein modernes Synthesetool die Funktionalit t f r derartige Optimierungen bereits in sehr weit entwickelter Form besitzt werden in vhisyn keine
5. property reset is dependencies no_rst assume reset_ sequence prove during t t 2 outl 0 right_ hook t 2 end property property a is dependencies no_rst assume at t 2 inl prove at LEI outl 0 left_ hook t right_ hook t 1 end property property b is dependencies no_rst assume at t 2 not inl prove at t 1 outl 1 left_ hook ts right_ hook t 1 end property completeness not_implementable is inputs rst inl determination_requirements determined outl reset__ property reset property _graph reset a b a b gt a b xstructure inl in boolean outl out boolean Abbildung 3 11 ITL Quelltext einer nicht implementierbaren Eigenschafts menge die jedoch der Vollst ndigkeitpr fung standh lt 72 4 Synthese von Operationseigenschaften 4 1 berblick ber den Synthesevorgang In diesem Kapitel soll der eigentliche Synthesevorgang einer vollst ndigen Menge von Operationseigenschaften ausf hrlich beschrieben werden Ziel ist dabei die Ausgabe einer Hardware Beschreibung in VHDL auf Register Transfer Ebene Dieses Kapitel ist wie folgt strukturiert Nach einem kurzen berblick sollen die beteiligten Algorithmen und die Erzeugung von passen den Modellen vorgestellt werden Gegen Ende des Kapitels wird der Fokus mehr auf der konkreten Abbildung der Modelle in entsprechende Hardware Strukturen liegen Phase 1 vhisyn Phase 2 vhdlwriter ITL vhi Synthese der IT
6. succ v o U succ s s 117 4 Synthese von Operationseigenschaften Beispiel In Abb 4 15 ist der nach diesem Verfahren gebildete deterministische Auto mat des Framer Beispiels dargestellt Es sind ebenso wie im NEA aus Abb 4 11 nur die positiven Annahmen dargestellt Nicht gezeigte Annahmen sind im Ausgangszustand nicht relevant d h der Zustands bergang ist f r erf llte und nicht erf llte Annahmen gleich reset 4 reset 4 a o idle 1 idle 1 reset 0 LA reset 1 LA reset 2 gt H sync 2 idle 0 R u zus reset 3 g sync 2 reset 4 sync 3 idle 2 idle 2 idle 1 idle 1 sync 2 idle 0 Ta nosync 4 nosync 4 sync 4 bi ee Re idle 1 idle 1 syno J sync 2 idle 0 i 4 3 3 nosync nosync 3 nosync L_syne 5_ syne 3 lt OO sync 2 idle 0 ea en l Y J sync 8 sync 9 A a FE 1 nosync 0 nosync 1 nosync 2 L 2 8 sync 6 sync 7 gt gt N a Lac sync 8 sync 9 inframe 2 e inframe 0 inframe 1 inframe 4 lt 4 inframe 3 inframe 9 inframe 9 inframe 1 nosync 1 A erf llte Annahme i m 7 Ir F r Sea inframe 8 inframe 8 nicht erf llte Annahme inframe 5 j gt inframe 6 j d inframe 7 j gt inframe 0 nosync 0 Abbildung 4 15 DEA der Komponente Framer Es kann beobachtet werden dass der DEA in
7. 4 13 4 14 4 15 4 16 4 17 4 18 4 19 4 20 4 21 4 22 5 1 5 2 6 1 6 2 6 3 6 4 6 5 6 6 6 7 6 8 6 9 6 10 NEA der Komponente Framer 2 22 22 Abgerollter Eigenschaftsgraph gleichartiger Eigenschaften Endlicher Automat zur Erkennung von cat Verlauf von Eigenschaften ber mehrere Zust nde des NEA DEA der Komponente Framer 2 2 2222 Beispiel eines ITL Makros 04 Hardwareabbildung des Makros seq_prev Hardwareabbildung des Aufrufs von Makro seq_prev Multiple Hot Kodierung eines NEA Abbildung der Zust nde eines DEA auf numerische Werte VHDL des Kontrollautomaten im Framer Beispiel Kaskade der Zusicherungen ITL Quelltext von zyklischen Zusicherungen Hardwareimplementierung zu Abb 5 1 2 2 2 2 2 2 Platzhalter f r die konzeptionellen Zust nde Illustration von Rettung Leicht vereinfachte Struktur des Partikelfilters Integration des Partikelfilters in das Gesamtsystem Testlauf des Partikelfilters 22222202 Aufbau und wichtige Bestandteile des Framers Zustandgraph des Framers 2 222222 Laufzeit der Synthese des Framers Visualisierung einer Instanz des Makros seq_prev Visualisierung einer Eigenschaft 00 Tabellenverzeichnis 6 1 berblick ber die Komponenten des Partikelfilters 6 2 Syntheseergebnisse von d
8. A Tutorial on Lava A Hard ware Description and Verification System Techn Ber Chalmers University of Technology 2000 Reinhard Diestel Graph Theory 4th Ed Bd 173 Heidelberg Springer 2010 S 451 ISBN 9783642142789 Martin Davis George Logemann und Donald Loveland A Ma chine Program for Theorem Proving In Communications of the ACM 5 7 Juli 1962 S 394 397 Martin Davis und Hilary Putnam A Computing Procedure for Quantification Theory In Journal of the ACM JACM 7 3 1960 S 201 215 E Allen Emerson und Joseph Y Halpern Decision procedures and expressiveness in the temporal logic of branching time In Symposium on Theory of Computing STOC New York New York USA ACM 1982 S 169 180 ISBN 0897910702 181 Literaturverzeichnis EHS6 Eme08 Eme90 Fic83 FKLO4 Fro 10 Ger99 GHS03 GK83 H A04 182 E Allen Emerson und Joseph Y Halpern Sometimes and not never revisited on branching versus linear time temporal logic In Journal of the ACM JACM 33 1 Jan 1986 S 151 178 ISSN 00045411 E Allen Emerson The Beginning of Model Checking A Per sonal Perspective In 25 Years of Model Checking Hrsg von Orna Grumberg und Helmut Veith Bd 5000 Lecture Notes in Computer Science Berlin Heidelberg Springer Jan 2008 S 27 45 ISBN 978 3 540 69849 4 E Allen Emerson Temporal and Modal Logic
9. Weitere Blocktypen sind Konstanten _const lt Breite gt lt Wert gt Makroaufrufe _call lt Modulname gt und statische Verzweigungen Pr fix _static if In Abb 6 10 ist ein weiteres Beispiel gegeben Die Eigenschaft random __reset enth lt vier Zusicherungen in zwei during Anweisungen Durch Zusammenfassen entsprechend Abschnitt 4 5 6 wurden die quiva lenzen m Zrandom__reset rand O Zrandom__reset rand 1 m Zrandom__reset dout 0 Zrandom__reset dout 1 festgestellt und die jeweiligen Zusicherungen auf einen Ausgang gelegt Dem nach wird bspw die Hardware fiir den Aufruf von seq_prev nur einmal in stanziiert Das rechtsoffene Intervall am Schluss des Ausgangsbezeichners gibt an fiir welche Zeitpunkte des betreffenden Signals die Zusicherung gilt Durch die exakte Bezeichnung von Modulen und Instanzen im Zwischen format ist es m glich f r jeden Block auf RT Ebene das entsprechende ITL Konstrukt zu finden Die mit vhisyn durchgef hrte Synthese ist somit voll standig transparent Dies erlaubt die Realisierung von weiteren Werkzeugen die das Arbeiten mit ITL erleichtern wie zum Beispiel einem speziellen Si mulator der die Ergebnisse der Simulation des generierten Entwurfs anspre chend visualisiert und bessere Debuggingm glichkeiten bietet 173 6 Ergebnisse property random_reset is for timepoints t_end t 1 assume reset _sequence prove during t t_end rand 0 during t t_end dout
10. Zur Vereinfachung der Handhabbarkeit der Zusicherungen wird eine zu s tzliche Notation eingef hrt die es erlaubt zu einem gegebenen Tupel aus Eigenschaft p Signalname n und Zeitpunkt i die passende Zusicherung z zu finden Zp ni Px Name x Z Netz ID p n i gt z E Zp target z n A time z i wobei Z die Menge aller Zusicherungen einer bestimmten Eigenschaft p P ist Es wird davon ausgegangen dass nur exakt eine Zusicherung zu jeder Kombination von Eigenschaftszeitpunkt und Name auftaucht d h die Ein deutigkeit der Abbildung muss gew hrleistet sein Wenn ein solcher Fall auf tritt erkennt vhisyn die mehrfache Zuweisung und meldet dies dem Benutzer Die Gesamtmenge der Zusicherungen kann damit wie folgt dargestellt wer den Z JS P Auffinden quivalenter Zusicherungen An dieser Stelle k nnte eigentlich die Auswertung der Einzeleigenschaften abgeschlossen werden Im Falle von sehr langen Eigenschaften und Zusiche rungen in Form von langen during Anweisungen darf die Hardwareabbil dung nicht auf die gleiche Art und Weise geschehen wie die der Annahmen Der Unterschied zwischen Annahmen und Zusicherungen ist darin begr ndet 93 4 Synthese von Operationseigenschaften dass Annahmen meist nur kurze Aktivierungsbedingungen beinhalten w h rend Zusicherungen teilweise komplexe Berechnungsergebnisse ber l ngere Zeitr ume an Ausgangssignale zuweisen Wenn die ben tigte Hardware ber das gesam
11. berschaubar ist kann die Distanz zwischen zwei Kanten sehr schnell bestimmt werden 4 5 4 Freezevariablen Jede Definition einer Freezevariable f F besteht aus drei Teilen dem Na men der Variable einem beliebigen Ausdruck und dem Speicherzeitpunkt zu dem der Ausdruck in die Freezevariable bertragen wird Im ersten Schritt wird der Ausdruck auf einen Hardwareblock abgebildet der zu jedem belie bigen Zeitpunkt den Wert des Freezevariablenausdrucks bereitstellt Zur formalen Definition werden an dieser Stelle zwei Funktionen eingef hrt die die entsprechende Freezevariable auf den Wert des Freezeausdrucks bzw den Speicherzeitpunkt der Variable abbilden expr F Netz ID time F gt Z Das Intervall in dem der Wert der Freezevariable f bereitgestellt werden muss beginnt mit dem Speicherzeitpunkt time f und endet mit dem letz ten Zeitpunkt last p der Eigenschaft p Damit die Freezevariable im gesam ten Interval den korrekten Wert hat und nicht nur zum Speicherzeitpunkt time f muss der Wert von expr f zwischengespeichert werden Im Folgenden werden zwei Implementierungsvarianten zur Speicherung der Freezevariablen vorgestellt und beziiglich ihres voraussichtlichen Hardware aufwandes untersucht Einige berlegungen dazu finden sich in der Diplom arbeit von Pepelyashev Pep09 die zu der hier vorgestellten zweiten Imple mentierungsvariante f hrten Registerkette Damit der Wert des Freezeausdrucks nach dem Spe
12. der Annahmen zu einem bestimmten Zeitpunkt leer ist wird die Gesamtannahme zur so genannten Trivialannah me die immer zu 1 ausgewertet wird Api gt Gp i 1 Die Menge der Gesamtannahmen A kann mit A A p i p E P i Z Api FO zusammengefasst werden und schliesst alle Trivialannahmen aus Weiterhin muss sichergestellt werden dass keine Einzelannahmen vor der linken Grenze der Eigenschaft liegen Dies kann durch einfaches Verz gern des Annahmenausdrucks um die entsprechende Anzahl Takte gew hrleistet werden In unserer mathematischen Darstellung wird davon ausgegangen dass dieser Schritt bereits durchgef hrt wurde und die Bedingung Va Ap time a gt left p f r jede Eigenschaft p P gilt 92 4 5 Auswertung der Eigenschaften 4 5 6 Auswertung der Zusicherungen Bei den Zusicherungen reicht es im Gegensatz zu den Annahmen nicht den gesamten Ausdruck der Zusicherung direkt in Hardware abzubilden Da sich aus ihr die Zuweisung eines Wertes an die Ausg nge ableiten muss wird gefordert dass jede Zusicherung in Form einer Signalzuweisung auftritt In Abschnitt 3 2 3 ist die daf r erforderliche Syntax in ITL dargestellt Die Teile einer Zusicherung werden hnlich den vorangegangenen Definitionen angesprochen wobei lediglich die Abbildung target neu hinzukommt und das Zuweisungsziel der Zusicherung in Form eines Signalnamens angibt target Z gt Name expr Z Netz ID time Z gt Z
13. hrt der den Datenstrom um die gew nschte Anzahl Bits verschiebt Die korrekt ausgerichteten Da tenworte werden anschliessend in einem Descrambler verarbeitet der die Bits 168 6 4 Framer Search more Abbildung 6 7 Zustandgraph des Framers mit einer vorher festgelegten Pseudozufallsfolge antivalent verkn pft xor In einem letzten Schritt wird byteweise eine Pr fsumme ber einen Daten rahmen berechnet und kontrolliert Wenn die Pr fsumme inkorrekt ist wird dies nach aussen bekanntgegeben 6 4 2 Vergleich mit Originaldesign Original VHDL vhisyn Faktor Anzahl Eigenschaften 29 13 45 Kodezeilen 2009 vhdl 934 vhi 21 2375 vhi Adaptive LUTs 703 1267 180 FlipFlops 335 413 123 Max Frequenz in MHz 223 198 89 Tabelle 6 3 Vergleich der Syntheseergebnisse zwischen originalem Framerde sign in VHDL und Eigenschaftsbeschreibung mit ITL In diesem Abschnitt soll der mit vhisyn durchgef hrte Entwurf mit dem originalen Design in VHDL auf RT Ebene verglichen werden Die Ergebnisse sind in Tab 6 3 abgebildet Bei der Anzahl der Eigenschaften und Kodezei len wird dabei beim Originalentwurf auch die Menge der f r die Verifikation n tigen Eigenschaften in ITL ber cksichtigt Es ist beispielsweise auff llig 169 6 Ergebnisse dass bei der Verifikation mehr als doppelt so viele Eigenschaften n tig sind als bei der direkten Nutzung als Entwurfssprache Das ist
14. um die Zuweisungshardware zu vereinfachen F r jedes Ausgangs oder interne Signal n werden die quiva lenzklassen z aller betroffenen Zusicherungen ermittelt Z n z z Z target z n Weiterhin wird f r jede dieser Aquivalenzklassen ein gemeinsames Schaltsi gnal erstellt welches sich aus den Schaltsignalen der einzelnen Zusicherungen disjunktiv zusammensetzt z Piz SS V pt Zp n t Nun muss entsprechend der Implementierungsm glichkeiten der vorherge henden Abschnitte eine Multiplexerkaskade oder ein gro er Mehrfachmul tiplexer konstruiert werden der bei Auftreten eines dieser Schaltsignale das 138 4 9 Abbildung in Hardware Signal der passenden Zusicherungsklasse auf den Ausgang durchschaltet Ins besondere bei langen Eigenschaften verspricht dieser Ansatz eine betr chtli che Reduzierung der Multiplexerstufen bzw eing nge Optimierung der Schaltsignale des DEA Ein weiterer Ansatz Hardwareressourcen zu schonen und eine bersichtlichere generierte Beschreibung zu erzeugen ist die Optimierung der Disjunktion Yz der einzelnen Schaltsignale Anstatt jedes Schaltsignal einzeln zu verkn pfen kann der numerische Wert des Automatenzustands herangezogen werden um zu pr fen ob er in einem Intervall von Schaltsignalen liegt Das Schaltsignal ut muss immer dann gesetzt werden wenn eine Eigen schaftsposition De im aktuellen Zustand var V auf eine der Zusicherungen Zp n t z zutrifft
15. werten des gegenw rtigen Zeitpunktes eine Situation entstehen die genauer untersucht werden muss In Abb 5 1 sind zwei Eigenschaften p und q dargestellt die zu zwei willk r lichen Zeitpunkten Zusicherungen auf die Ausgangssignale ol und 02 bein halten Eine m gliche Hardwareimplementierung zeigt Abb 5 2 wobei die Realisierung mit Hilfe einer Multiplexerkaskade durchgef hrt wurde Beson ders hervorgehoben ist dabei eine kombinatorische Schleife welche auftreten kann wenn beide aufgef hrten Schaltsignale gleichzeitig aktiviert sind Sol che Schleifen sind in der Regel in synchroner Hardware nicht erw nscht und werden vom Logiksynthesetool aufgesp rt In der Praxis wird es nicht vorkommen dass beide Schaltsignale gleichzei tig aktiv sind da sonst der Wert der Ausgangssignale nicht mehr eindeutig bestimmt ist Es wird bei diesen Eigenschaften entweder der Determinie 149 5 Anforderungen an eine synthesef hige Eigenschaftsbeschreibung N property p is prove at t 4 02 i 5 at t 4 ol 02 end property property q is prove at t 2 02 ol end property Abbildung 5 1 ITL Quelltext von zyklischen Zusicherungen verschiedener Eigenschaften rungstest fehlschlagen oder die formale Pr fung der Eigenschaften auf dem generierten Design ist nicht erfolgreich Das Problem ist in vhisyn nur teilweise gel st Es existiert eine Routine die bei der Implementierung jeder einzelnen Zusicherung
16. wird Abb 3 9 zeigt eine solche Strukturbeschreibung die wiederum aus dem Resampler Beispiel extrahiert wurde Zu dieser Beschreibung geh ren meh rere Arten von Anweisungen die im Folgenden n her aufgef hrt sind 3 5 1 Parameter Parameter in VHDL als generics bekannt sind Konstanten des Systems die schon zur Synthesezeit feststehen Sie dienen unter anderem der Erstellung von wiederverwendbaren Komponenten da eine neue Konfiguration nur das ndern des Parameters auf hoher Ebene und eine erneute Synthese nach sich ziehen In der beschriebenen ITL Erweiterung werden Parameter durch einen Bezeichner das Schl sselwort generic und einen Datentyp definiert 64 3 5 Beschreibung der Komponentenschnittstelle 3 5 2 Signale Eing nge bzw Ausg nge werden hnlich den Parametern durch einen Be zeichner die Schl sselworte in bzw out und wiederum einen Datentyp fest gelegt In der Typdefinition eines Signals k nnen dabei vorher definierte Pa rameter und andere konstante Ausdr cke benutzt werden Man erh lt somit parametrisierbare Signaldatenbreiten Die Beschreibung von internen Signa len unterscheidet sich von den Schnittstellensignalen allein durch die Verwen dung des internal Schl sselworts 3 5 3 Hierarchie Der rekursive Aufbau von Hardwaresystemen aus kleineren Funktionsbl cken ist im Entwurf ein unabdingbares Funktionsmerkmal einer Beschrei bungssprache Oftmals wird dies durch Definition von Komponenten und
17. 2010 OneSpin Solutions User Manual OneSpin 360 MV Techn Ber 2009 OneSpin Solutions 2010 URL http www onespin solutions com besucht am 12 02 2010 Open Vera 2011 URL http www open vera com besucht am 02 05 2011 185 Literaturverzeichnis Par07 PC195 Pep09 Pnu77 PPO6 PR89 Rab72 Rol87 Safss Sah 07 Sch09 Sch10 186 Terrence J Parr The Definitive ANTLR Reference Building Domain Specific Languages The Pragmatic Bookshelf 2007 PCI Special Interest Group PCI Local Bus Specification Techn Ber 1995 Dimo Pepelyashev Konstruktion von deterministischen Auto maten des Kontrollflu graphen bei der High Level Synthese von Operational Properties Diplomarbeit Technische Universit t Chemnitz Aug 2009 Amir Pnueli The temporal logic of programs In Annual Sym posium on Foundations of Computer Science SFCS Provi dence RI USA IEEE Sep 1977 S 46 57 Nir Piterman und Amir Pnueli Synthesis of Reactive 1 Desi gns In Verification Model Checking and Abstract Interpreta tion VMCAI 2006 S 364 380 Amir Pnueli und Roni Rosner On the synthesis of a reac tive module In Principles of Programming Languages PO PL New York NY USA ACM Jan 1989 S 179 190 ISBN 0897912942 Michael Oser Rabin Automata on Infinite Objects and Church s Problem Boston MA USA American Mathematical Soci
18. 6 beschriebenen nichtdeterministischen Automaten in Hardware abbilden zu k nnen muss eine Transformation in einen DEA durchgef hrt werden Dabei bieten sich zwei M glichkeiten Zum einen kann der NEA durch das bereits beschriebene allgemeine Potenzmengenverfahren in einen DEA berf hrt werden Der resultierende Potenzmengenautomat hat 2 S Zust nde was bei einer One Hot Kodierung zu ebensovielen Registern f hren w rde und nicht realistisch durchf hrbar ist Aus diesem Grund sollte eine Bin rkodierung gew hlt werden Diese hat logy 2 5 Zust nde was durch Vereinfachung der Formel in S Registern re sultiert Dies w rde eine effiziente Implementierung erm glichen Nachteilig wirkt sich jedoch aus dass der Potenzmengenautomat vollst ndig konstru iert werden muss Die dabei notwendige Enumerierung aller Elemente der Potenzmenge f hrt zu exponentiellem Ressourcen und Laufzeitverbrauch Ein Verfahren das die Konstruktion des Potenzmengenautomaten vermei det ist erforderlich und wird im Folgenden vorgestellt Dabei sollte die Er gebnisimplementierung mit S Registern auskommen Multiple Hot Kodierung Das erstmals von Sidhu und Prasanna SP01 vorgestellte Verfahren emu liert den NEA in Hardware Es hnelt der One Hot Kodierung eines DEA insofern dass jeder Zustand einem Register zugeordnet ist Im Gegensatz dazu k nnen jedoch zu einem bestimmten Zeitpunkt auch mehrere Register gleichzeitig aktiv sein weswegen wir
19. Argu mente eines Makros werden in ITL explizit angegeben Das Synthesewerk zeug vhisyn ignoriert diese Angaben und ermittelt die Datentypen aus den bergebenen Werten Diese Typinferenz der Makroargumente unterscheidet sich vom originalen ITL Eine synthetisierte Beschreibung wird sich jedoch genauso verhalten wie es der offiziellen ITL Semantik entspricht wenn die Eingangsbeschreibung korrektes ITL darstellt Falls die Beschreibung nicht korrekt ist wird das Synthesewerkzeug diese Art von Fehler nicht erkennen Im Gegensatz dazu k nnte ein Werkzeug das die Typpr fung von ITL strikt einh lt den Nutzer darauf hinweisen In den folgenden Unterkapiteln werden nun der Aufbau und die Struktur der Operationseigenschaften genauer beleuchtet Die Erl uterungen geben nur einen berblick und sind oft nicht vollst ndig und in ihrer grammati kalischen Bedeutung pr zise ausgedr ckt Der Fokus liegt in dieser Arbeit darauf die notwendigen Grundlagen zu schaffen um den Syntheseprozess in Kapitel 4 zu verstehen F r weiterf hrende Information sei auf OSS09 verwiesen Weiterhin wird in diesem Kapitel auf die Vollst ndigkeit eines Satzes von Operationseigenschaften eingegangen und erl utert welche Kriterien dazu erf llt sein m ssen und wie dieser Nachweis erbracht werden kann 3 2 Struktur der Eigenschaften Eine Eigenschaft in ITL betrachtet immer einen Zeitraum der aus einer fes ten Anzahl Grundtakte des zu untersuchenden Systems beste
20. Auswahl h ngt von der Reihenfolge im Ausgangsmultiplexer ab Die fehlende bereinstimmung zwischen nicht implementierbarem Eigenschaftssatz und Implementierung tritt erst dann zutage wenn die Eigenschaften auf dem generierten Design gepr ft werden und mindestens eine der Eigenschaften nicht erf llt ist Der in dieser Arbeit vorgeschlagene Entwurfsfluss entdeckt also den Fehler Es ist jedoch vorteil haft wenn die fehlende Implementierbarkeit m glichst fr hzeitig w hrend des Entwurfs detektiert wird und eine als vollst ndig und implementierbar nachgewiesene Eigenschaftsmenge die Erzeugung eines korrekten Designs ga rantiert Ein zus tzlicher formaler Implementierbarkeitstest kann dieses Problem l sen und ist Gegenstand zuk nftiger Untersuchungen 177 Literaturverzeichnis Aba 00 Acc11 ALO8 Arm 02 Arm 06 Bac78 BH97 Yael Abarbanel Ilan Beer Leonid Gluhovsky Sharon Keidar und Yaron Wolfsthal FoCs Automatic Generation of Simula tion Checkers from Formal Specifications In Computer Aided Verification Springer 2000 S 538 542 Accellera 2011 URL http www accellera org besucht am 02 05 2011 Peter J Ashenden und Jim Lewis The Designer s Guide to VHDL 3rd Ed Morgan Kaufmann 2008 ISBN 978 0 12 088785 9 Roy Armoni Limor Fix Alon Flaisher Rob Gerth Boris Gins burg Tomer Kanza Avner Landver Sela Mador Haim Eli Sin german Andreas Tiemeyer Moshe Y Vardi
21. C von Mentor Graphics oder Synphony C Compiler von Synopsys Nicht nur C C dient als Ausgangspunkt eines HLS Verfahrens Auch aus der Sprache Matlab der Firma Mathworks im Zusammenspiel mit dem Simulations und Modellierungstool Simulink und dem Werkzeug State flow f r die Modellierung von Kontrollautomaten kann Hardware erzeugt werden Zus tzlich bieten diese Werkzeuge die M glichkeit alternativ C Kode f r DSPs zu erzeugen Die Aufgabe der HLS besteht in der Abbildung eines sequentiell abzuar beitenden Softwareprogramms auf parallel arbeitende Hardware Dabei wird das Programm in einen Kontroll und einen Datenfluss unterteilt Der Kon trollfluss wird vor allem durch die Kontrollkonstrukte der Programmierspra che wie Schleifen Verzweigungen und Auswahlanweisungen bestimmt w h rend der Datenfluss aus den Ausdr cken und Zuweisungen hervorgeht Die HLS hat im Wesentlichen zwei Probeme zu l sen Zum einen muss festgelegt werden welche Funktionseinheiten ben tigt werden bzw wie die abstrakten Operatoren der Programmiersprache auf diese Funktionseinheiten abgebildet 37 2 Grundlagen temporaler Eigenschaften und ihrer Synthese werden Dieser Schritt wird als Allokation bezeichnet Die andere Aufgabe ist die Planung in welchem Zeitschritt eine Operation in der zugeh rigen Funktionseinheit ausgef hrt wird Dieser Schritt wird Scheduling genannt Die Zeitschritte korrespondieren dabei mit den Zust nden des Automaten der den Kon
22. Checking BMC Cla 01 wird einfach der Startzustand des System genutzt Damit k nnen Fehler 1 Art false positives ausgeschlossen werden jedoch ist die Aussagekraft auf Zust nde beschr nkt die innerhalb einer festen Anzahl Tak te vom Startzustand aus erreichbar sind Wenn jedoch ein Gegenbeispiel ge funden wird kann man sich sicher sein dass es ein g ltiges Gegenbeispiel darstellt Sofern im anderen Fall allerdings keines gefunden wird kann man noch nicht darauf schliessen dass die Eigenschaft h lt Im IPC wird dies umgangen indem zu Beginn der Eigenschaft alle Zust n de erlaubt sind Da dies auch nicht erreichbare Zust nde einschliesst erh lt man unter Umst nden false positives die durch aufwendige manuelle Er reichbarkeitsanalysen oder automatisierte Verfahren Ngu 08 ausgeschlos sen werden m ssen Auf der anderen Seite kann man sich sicher sein dass 48 3 1 Allgemeines es kein g ltiges Gegenbeispiel gibt wenn der Erf llbarkeitspr fer ein Halten der Eigenschaft anzeigt Die Anzahl Takte die ein Design im IPC abgerollt wird ergibt sich aus der L nge der Eigenschaft Das heisst je l nger die Eigenschaft ist desto aufwendiger wird die formale Verifikationsaufgabe Die genaue L nge einer Eigenschaft die noch bewiesen werden kann h ngt von der Komplexit t des Designs und der Eigenschaft ab Schr nkt eine Eigenschaft die Freiheitsgra de des Designs st rker ein ist es in der Regel m glich auch
23. Dadurch wird Kriterium 5 garantiert und die leere Menge ist kein erreichbarer Zustand von V Die Bestimmung der Nachfolger geschieht in zwei Schritten Im ersten Schritt werden f r einen Zustand v V und eine gegebene bergangsbe dingung o die f r den bergang relevanten Pfade vz C v bestimmt Diese werden im zweiten Schritt benutzt um succ v o zu definieren Zuerst wird f r die Kriterien 1 bis 4 eine Bedingung Ki o angegeben die f r einen bestimmten Pfad s v festlegt ob dieser zu den relevanten Pfaden geh rt Die Funktion K Ge gibt wahr zur ck wenn f r alle nicht erf llten Zwischenannahmen die passende Eigenschaftsposition nicht in s vorkommt Ki ze Vat ArNd p amp s Kriterium 2 wird f r die abschlie enden Annahmen analog definiert mit Ki Vapt E AF NG pP s w hrend Kriterium 3 trivialerweise immer zum Wahrheitswert 1 ausgewertet wird kK Vapt ArNo 1 1 Eine weitere Funktion Kio stellt sicher dass es keinen anderen Pfad s v gibt der eine Eigenschaftsposition mit abschliessender erf llter Annahme besitzt sodass s parallel zu s ist Ki Vapt Ar No e Ev p Es parallel s p s Mit Hilfe dieser vier Funktionen kann die Menge der f r o zu beachtenden Pfade vo definiert werden vo sev Kio A ee A K A Rb Die eingangs benutzte Funktion succ v c wird ihrerseits definiert durch die Vereinigung der Menge der Nachfolger jedes einzelnen Elements aus vo Vo
24. Ende zwei Nachfolger von s entstehen 102 4 6 Konstruktion des nichtdeterministischen Kontrollautomaten Beispiel Um diese recht formale Beschreibung des Konstruktionsverfahrens weiter zu verdeutlichen soll der vollst ndige NEA des bereits vorgestellten Beispiels framer erstellt werden Daf r muss zu den Daten in Abb 4 7 die Menge der Annahmen nachgereicht werden Der konkrete Ausdruck den jede der Annahmen darstellt ist f r den Verlauf der Automatenkonstruktion nicht notwendig Dieses Beispiel enth lt lediglich vier Annahmen die wir hier ein fach durchnummerieren ao Gidle o ay Asyne 2 a2 i Gnosync 2 a3 Gin frame 2 Das Eingabealphabet des Automaten wird damit zu e giao a a2 as 19 ao ar az as Joo a1 Joo a2 Joo a3 a1 42 a1 a3 a2 a3 Joo a1 a2 Joo a1 a3 Joo a2 a3 a1 42 a3 Joo a1 a2 a3 Mit diesen Angaben und dem vorgestellten Konstruktionsverfahren ent steht der in Abb 4 11 dargestellte Automat Der Startzustand So reset ist dabei gesondert gekennzeichnet Die Notation in der Abbildung nutzt den Doppelpunkt zur Repr sentation eines Eigenschaftszeitpunktes de reset sync Die f r einen NEA typischen nichtdeterministischen Zu stands berg nge k nnen bspw im Zustand sync betrachtet werden der zwei ausgehende Kanten ohne zus tzliche Bedingung hat Die Annahmen ao bis a3 sind in der Abbildung durch Kreise mit dem Annahmenindex al
25. Es gibt drei M glichkeiten das Problem zu behandeln und den Alternativwert festzulegen Eine L sung ist das Anlegen eines don t care Wertes der die Unbe stimmtheit ausdr ckt Dieses Vorgehen gibt der Logiksynthese weiteres Op timierungspotenzial In einer Simulation des generierten Designs ist bei dieser L sung auch im Waveform Fenster ersichtlich dass im Moment kein g ltiger Wert an diesem Signal anliegt Diese visuelle Debugm glichkeit ist vorteil haft f r das schnelle Finden eines m glichen Fehlers in den Zusicherungsde finitionen Nachteilig wirkt sich aus dass bspw im Rahmen der Pr fung mit OneSpin 360MV ein Test durchgef hrt wird der die Verwendung von don t care Werten stark einschr nkt Alternativ kann auch die erste Stufe der Kaskade weggelassen werden und deren Zuweisung als Alternativwert genutzt werden Dies spart etwas Hard wareaufwand und resultiert in einem vorhersehbaren Verhalten nach der Lo giksynthese Die letzte M glichkeit ist die Zuweisung einer Konstante als Alternativ wert Daf r bietet sich bspw der Nullvektor an der dann bei der Fehlersuche einfach erkannt wird quivalente Zusicherungen In Abschnitt 4 5 6 wurden Bedingungen definiert die es erlauben zwei Zu sicherungen zu und z2 auf quivalenz zu berpr fen Falls beide gleich sind z z2 werden auch ihre entsprechenden Signale bzw Netz IDs gleich sein expr z expr z2 Diese quivalenz kann genutzt werden
26. In Handbook of Theoretical Computer Science Vol B Hrsg von Jan van Leeu wen MIT Press 1990 Kap 16 S 995 1072 ISBN 0262720140 Faith E Fich New Bounds for Parallel Prefix Circuits In Symposium on Theory of Computing STOC New York NY USA ACM 1983 S 100 109 ISBN 0897910990 Harry D Foster Adam C Krolnik und David J Lacey Assertion Based Design 2nd Ed Kluwer Mai 2004 ISBN 1402080271 Daniel Fro Jan Langer Andr Fro Marko R ler und Ulrich Heinkel Hardware Implementation of a Particle Filter for Loca tion Estimation In Indoor Positioning and Indoor Navigation IPIN Zurich Switzerland IEEE 2010 S 1 6 Sabih H Gerez Algorithms for VLSI design automation Chi chester John Wiley amp Sons 1999 Mike Gordon Joe Hurd und Konrad Slind Executing the for mal semantics of the Accellera Property Specification Language by mechanised theorem proving In Correct Hardware Design and Verification Methods CHARME Springer 2003 S 200 215 Daniel D Gajski und Robert H Kuhn New VLSI Tools In Computer 16 12 Dez 1983 S 11 14 ssn 0018 9162 James C Hoe und Arvind Operation Centric Hardware Des cription and Synthesis In IEEE Transactions on Computer Aided Design of Integrated Circuits and Systems TCAD 23 9 Sep 2004 S 1277 1288 Issn 0278 0070 Literaturverzeichnis Hei 03 Hei99 HMUO6 Hoa03 Hud 92 IEEE
27. NEA linear mit der Anzahl der Zust nde in Q d h mit der Anzahl der Eigenschaftspositionen w chst Das heisst im Umkehrschluss auch dass die Zust nde sowohl linear mit der Anzahl der Eigenschaften als auch deren L nge wachsen Die Ausnahme von dieser Regel bilden Eigenschaften die eine starke ber lappung aufweisen Dies tritt insbesondere bei kurzen Eigenschaften mit ho her Pipelinel nge auf Formal ausgedr ckt kann ein berlappungsfaktor __ last p left p 1 up length p errechnet werden der angibt wie umfangreich die Historie einer Eigenschaft ist d h wieviele ltere Eigenschaften w hrend der Abarbeitung einer aktiven Eigenschaft noch nicht ihren letzten Zeitpunkt erreicht haben Wenn bspw eine Eigenschaft f r die Attribute le ft p right p und last p die Werte 0 4 und 19 besitzt ist ihr berlappungsfaktor u 5 d h wenn die se Eigenschaft auf sich selbst folgen kann p p Ep besitzt ein Zustand in S maximal f nf Eigenschaftspositionen d h es kann eine berlappung von maximal f nf Instanzen der Eigenschaft geben Im Falle von drei Eigenschaften gleicher L nge die jede auf jede ande re folgen k nnen kann diese Historie der L nge f nf an jeder Position eine der drei Eigenschaften aufweisen Weiterhin tritt eine Erh hung der Eigen schaftspositionen ber vier Takte ein length p 4 wobei danach die n chste Verzweigung stattfindet und damit wieder die Ausgangssituation er reic
28. New York NY USA ACM 2007 S 127 135 ISBN 9781595939456 Michael C McFarland Alice C Parker und Raul Camposano Tutorial on high level synthesis In Design Automation Con ference DAC Los Alamitos CA USA IEEE 1988 S 330 336 Grant Martin und Gary Smith High Level Synthesis Past Present and Future In IEEE Design amp Test of Computers 26 4 Juli 2009 S 18 25 issn 0740 7475 R McNaughton und H Yamada Regular Expressions and State Graphs for Automata In IRE Transactions on Electro nic Computers EC 9 1 Marz 1960 S 39 47 Issn 0367 7508 Minh Duc Nguyen Max Thalmaier Markus Wedler J rg Bor mann Dominik Stoffel und Wolfgang Kunz Unbounded Pro tocol Compliance Verification Using Interval Property Checking With Invariants In IEEE Transactions on Computer Aided Design of Integrated Circuits and Systems TCAD 27 11 Nov 2008 S 2068 2082 Etienne K Ogoubi und Eduard Cerny Synthesis of checker EFSMs from timing diagram specifications In International Symposium on Circuits and Systems ISCAS Orlando FL USA IEEE 1999 S 13 18 ISBN 0 7803 5471 0 Yann Oddos Katell Morin Allory und Dominique Borrione SyntHorus Highly Efficient Automatic Synthesis from PSL to HDL In Very Large Scale Integration System on Chip VLSI SoC Florian polis Brazil 2009 Object Management Group OMG Systems Modeling Language OMG SysML Version 1 2 Techn Ber
29. S in den Registern ist ein wichtiges Implemen tierungsmerkmal eines Automaten Um einen berblick zu gewinnen und das folgende Verfahren besser einordnen zu k nnen sollen in der folgenden Aufz hlung die drei gebr uchlichsten Verfahren vorgestellt werden e Die fl cheneffizienteste Kodierung ist die Bin rkodierung bei der exakt log S Register ben tigt werden Jede g ltige Belegung der Regis ter entspricht einem Zustand Der wesentliche Vorteil ist der geringe Verbrauch an Registern w hrend in einigen F llen die Zustands ber gangsfunktion aufwendiger wird Eine spezielle Variante der Bin rkodierung ist die Gray Kodierung die zur Abbildung von Zust nden auf Registerbelegungen den Gray Kode verwendet Damit wird erreicht dass bei berg ngen zwischen benach barten Zust nden nur eines der Register seinen Wert ndern muss 129 4 Synthese von Operationseigenschaften Bei der sogenannten One Hot Kodierung hingegen existieren S Regis ter sodass nur ein Teil der m glichen Belegungen genutzt wird Jede g ltige Belegung enth lt genau ein Register mit dem Wert 1 w hrend alle anderen nicht aktiv sind Weiterhin findet eine eindeutige Zuord nung eines Registers auf einen Zustand statt Im Gegensatz zur Bin r kodierung wird eine h here Anzahl Register ben tigt Vorteilhaft wirkt sich hingegen die oft einfachere Zustands bergangsfunktion aus berf hrung in den Potenzmengenautomat Um die in Abschnitt 4
30. Schaltkreis synthetisiert Es hnelt dem in dieser Arbeit beschriebenen Verfahren indem es jede Eigenschaft einzeln in einen Hardwareblock bersetzt Diese Bl cke legen fest ob die Eigenschaft im aktuellen Zeitpunkt ein Ausgangssignal schreibt und welchen Wert sie schreibt Ein Ausgangsmultiplexer auf oberster Ebene w hlt dann aus welcher Wert dann tats chlich an das Ausgangssignal weitergeleitet wird Der innere Aufbau eines Eigenschaftsblockes orientiert sich wie in Horus am Syntaxbaum der Eigenschaft und verkn pft Basisbl cke aller genutzten PSL Operatoren CanDo Einen v llig anderen Weg w hlt die Arbeit von Sch09 Darin wird die tem porale Sprache die synthetisiert werden kann auf eine globale Implikation der Form G A P beschr nkt wobei A und P Ausdr cke sind die aus logischen Verkn pfungen der Signale des Systems zu unterschiedlichen Zeit punkten bestehen Diese Zeitpunkte sind relativ zu einem Zeitpunkt t de finiert der einen beliebigen Zeitpunkt der Systemausf hrung symbolisiert Diese Einschr nkung kann in der Praxis den Eigenschaften in ITL gleichge setzt werden deren Synthese auch das Ziel dieser Arbeit ist Die Eigenschaften werden einem Normalisierungsverfahren unterworfen das die Eigenschaften aufteilt sodass der Zusicherungsteil P nur einen Aus druck enth lt der einem Signal zum Zeitpunkt t 1 einen Wert zuweist Dabei wird weitestgehend auf Wortebene gearbeitet Die Signale die im An nahment
31. Sidhu und Viktor K Prasanna Fast Regular Expres sion Matching using FPGAs In Field Programmable Custom Computing Machines FCCM Apr 2001 S 227 238 Guy L Steele Jr Common LISP The Language 2nd Ed Digital Press 1990 ISBN 1555580416 Sebastian Thrun Wolfram Burgard und Dieter Fox The Particle Filter In Probabilistic Robotics MIT Press 2005 Kap 4 3 S 96 113 Joakim Urdahl Dominik Stoffel J rg Bormann Markus Wedler und Wolfgang Kunz Path Predicate Abstraction by Complete Interval Property Checking In Formal Methods in Computer Aided Design FMCAD Lugano IEEE 2010 Moshe Y Vardi Branching vs Linear Time Final Showdown In Tools and Algorithms for the Construction and Analysis of Systems TACAS Springer 2001 S 1 22 Robert A Walker und Donald E Thomas A model of design re presentation and synthesis In Design Automation Conference DAC ACM 1985 S 453 459 187 Abbildungsverzeichnis 1 1 2 1 2 2 2 3 2 4 2 5 2 6 2 7 2 8 3 1 3 2 3 3 3 4 3 5 3 6 3 7 3 8 3 9 3 10 3 11 4 1 4 2 4 3 4 4 4 5 4 6 4 7 4 8 4 9 4 10 High Level Synthese von Operationseigenschaften Einordnung des operationsbasierten Entwurfs Graphische Darstellung von fiinf einfachen LTL Formeln Vier Grundoperatoren von CTL Interval Property Checking 2 2 2 2 nn Lava Quelltext einer rekursiven Funktion bitAdder H
32. Sy Yen Kuo A Simulation Based Temporal Assertion Checker for PSL In Midwest Symposium on Circuits and Systems MWSCAS IE EE 2003 S 1528 1531 Literaturverzeichnis Chu32 Chu63 CKvoi Cla 01 Cla01 CLM98 Con11 C800 Die10 DLL62 DP60 EH82 Alonzo Church A Set of Postulates for the Foundation of Lo gic In The Annals of Mathematics 33 2 1932 S 346 366 Alonzo Church Logic Arithmetic and Automata In Inter national Congress of Mathematicians 1963 S 23 35 Hana Chockler Orna Kupferman und Moshe Y Vardi Cover age Metrics for Temporal Logic Model Checking In Tools and Algorithms for the Construction and Analysis of Systems TA CAS Springer Apr 2001 S 528 542 ISBN 3 540 41865 2 Edmund M Clarke Armin Biere Richard Raimi und Yunshan Zhu Bounded Model Checking Using Satisfiability Solving In Formal Methods in System Design 19 1 Juli 2001 S 7 34 Koen Claessen Embedded Languages for Describing and Ve rifying Hardware Dissertation Chalmers University of Tech nology und G teborg University 2001 Byron Cook John Launchbury und John Matthews Specifying Superscalar Microprocessors in Hawk In Formal Techniques for Hardware and Hardware like Systems FTH Marstrand Schweden 1998 Concept Engineering 2011 URL http www concept de be sucht am 07 01 2011 Koen Claessen und Mary Sheeran
33. Zusicherungen definiert werden k nnen Es ist bspw m glich und in vielen F llen auch not wendig Zusicherungen zu einem sp teren Zeitpunkt als dem right_ hook zu definieren Es gibt jedoch einige Einschr nkungen die die Synthese derartiger Eigenschaften betreffen vgl Kapitel 5 3 2 5 Weitere Abschnitte Weitere im Beispiel in Abb 3 2 nicht enthaltene Abschnitte einer Eigenschaft wie bspw dependencies oder local__determination_requirements sind wichtig um in der formalen Verifikation den Vollst ndigkeitsbeweis erbringen zu k nnen So kann in den dependencies mit Hilfe von constraints angeben werden welchen Einschr nkungen die Eing nge der Komponente unterliegen und es k nnen assertions definiert werden die Erreichbarkeitsinformationen des zu pr fenden Systems enthalten F r eine Synthese wie sie in dieser Arbeit durchgef hrt wird sind diese Abschnitte jedoch nicht von Bedeutung und werden deshalb hier nicht weiter beschrieben Die Ausdr cke die in Freezevariablen Annahmen und Zusicherungen ver wendet werden k nnen sowohl eine Vielzahl von arithmetischen logischen 3 3 Makros und weiteren Operatoren enthalten als auch Signalnamen die auf Eing nge Ausg nge oder interne Signale verweisen F r eine eingehende Erl uterung zu Syntax und Semantik von Ausdr cken sei an dieser Stelle erneut auf das Referenzhandbuch von ITL verwiesen OSSO9 In Ausdr cken k nnen so genannte Makros verwendet werden welche in I
34. aller Dateien angestossen werden muss Die Laufzeitkomplexit t des mit ANTLR generierten LL Parsers ist li near bez glich der L nge der einzulesenden Datei Eine Ausnahme bildet das Parsen von Funktionsaufrufen bei welchem die Option backtrack true ge nutzt werden musste da ANTLR ansonsten keinen Parser aufbauen konnte Im speziellen Fall besitzt die Grammatikregel callExpr zwei nicht eindeutige Alternativen die nachfolgend in Backus Naur Form BNF dargestellt sind callExpr ID expression expression x ID Durch die eingefiigte Backtracking Option testet der Parser zuerst die erste Alternative Funktionsaufruf mit Argumenten und erst wenn diese fehl schl gt wird die zweite Alternative alleinstehender Bezeichner oder Funk tionsaufruf ohne Argumente versucht Da bei der ffnenden Klammer der ersten Alternative der Konflikt aufgel st wird ohne dass weitere Unterre geln mit m glicherweise komplexem Verhalten aufgerufen werden f hrt das Backtracking nicht zu einer exponentiell komplexen Rekursion Damit ist der entstandene Parser trotz dieser Ausnahme sehr schnell und kann ITL Dateien in linearer Laufzeit einlesen 1 Ein LL k Parser verarbeitet die Eingabe von Links nach rechts um eine Linksableitung zu berechnen Der Parameter k gibt an wie viele Token der Par ser vorausschauen kann Entsprechend kann ein LL Parser unbegrenzt viele Token voraussehen N here Informationen zu m
35. bei der Auswertung einer Ei genschaft oder eines Makros das globale Verzeichnis weitergenutzt w hrend das lokale Verzeichnis auf jeder Hierarchiestufe neu angelegt wird Globales Verzeichnis Alle Signale die im weiteren Verlauf der Auswertung komponentenweit unter ihrem Namen ansprechbar sein sollen werden im globalen Signalverzeichnis gespeichert Dies betrifft die Parameter sowie die explizit definierten Signale der Komponente Das Verzeichnis bildet den Namen auf ein entsprechendes Netz und eine konkrete Signalbelegung ab globals Name Netz ID Signalbelegung Die Signalbelegung ist dabei ein Bitvektor der Werte 1 0 und unbekannt Der Bitvektor kann den Wert des Netzes im Zweierkomplement speichern Zus tzlich wird noch abgelegt ob die Signalbelegung vorzeichenbehaftet in terpretiert werden soll oder nicht bzw wie die Bits des Vektors indiziert werden m ssen bspw 31 downto 0 oder 8 to 23 77 4 Synthese von Operationseigenschaften Wenn sp ter ein beliebiger Ausdruck innerhalb der Komponente ausgewer tet werden soll wird ein im Ausdruck auftauchender Bezeichner zuerst im entsprechenden lokalen Verzeichnis gesucht Falls dies nicht erfolgreich ist wird die Suche im globalen Signalverzeichnis fortgesetzt Wenn er auch dort nicht gefunden wird muss ein Fehler signalisiert werden Ein besonderes Szenario tritt auf wenn f r einen Namen nur ein kon stanter Wert ben tigt wird Dies kann unter anderem
36. bestimmten Anzahl von hintereinander liegenden Rahmen an der gleichen Bitposition auftritt wechselt der Framer von idle in den sync Modus Nach einer Anzahl Rahmen bei denen das Syn chronisationswort nicht oder nicht an der richtigen Position gefunden wird verl sst der Framer den sync Modus und begibt sich wieder auf die Suche nach einem Synchronisationswort Dieses Verhalten konnte mit Hilfe von 13 Eigenschaften abgebildet werden In Abb 6 7 ist der bersichtlichkeit hal ber der entsprechende Zustandsgraph abgebildet dessen Kantengraph der Eigenschaftsgraph ist Die Zust nde dieses Graphen entsprechen den konzep tionellen Zust nden siehe Abschnitt 3 6 7 und sind nicht mit den normalen Zust nden des bei der Synthese entstehenden Automaten vergleichbar Die berg nge des Graphen entsprechen den Eigenschaften Alle ausser denen die im Zustand lof enden sind ebenso lang wie ein Datenrahmen Damit ergibt sich bei der Synthese mit vhisyn eine Anzahl von 175035 Automa tenzust nden was eine Hardwareabbildung in Multiple Hot Kodierung un praktikabel macht Unter Anwendung der in Abschnitt 4 9 3 beschriebenen Verfahren kann ein deterministischer Automat konstruiert und in Hardware abgebildet werden der nur 146 explizite Zustands berg nge besitzt Eine weitere Aufgabe des Systems ist das Alignment des Datenstromes Dabei wird die bei der Suche nach dem Synchronisationswort gefundene Bit position verwendet und einem Barrel Shifter zugef
37. dann next und prev aufeinander und heben sich im Erfolgsfall auf Bei Verwendung dieses Verfahrens w rden sich jedoch die rein kombina torischen Bl cke und somit unter Umst nden der kritische Pfad des Designs verl ngern sodass zeitliche Constraints nicht eingehalten werden k nnen Aus diesem Grund ist es vorteilhaft f r jeden next Operator in beide Richtungen zu suchen ob entsprechend gegens tzliche prev Operatoren im Ausdruck vorkommen mit denen er sich aufheben w rde Nur die dabei beteiligten Operatoren werden dann tats chlich verschoben w hrend alle anderen ihren Platz nicht verlassen 143 5 Anforderungen an eine synthesef hige Eigenschaftsbeschreibung next in Annahmen Wenn ein next nicht mit passenden prev Operatoren ausgeglichen werden kann bleibt noch eine weitere M glichkeit es aufzuheben So kann eine An nahme jederzeit zeitlich nach hinten verschoben werden Der dabei entste hende prev Operator kann dann zum Aufl sen des next verwendet werden Im folgenden konkreten Beispiel sind alle drei Zeilen quivalent at t 3 Funktion next el next e2 at t 4 prev Funktion next el next e2 at t 4 Funktion el e2 Allerdings kann dieses Verfahren nicht immer angewandt werden da sich durch die Verschiebung der Annahme andere Einschr nkungen ergeben k n nen Wenn bspw durch diese Annahme sich widersprechende Zusicherungen zweier Eigenschaften im n chsten Zeitpunkt aufgel st werden verursacht
38. darin begr ndet dass die zur Eigenschaft passenden Zust nde im Kon trollautomaten erst mit dieser linken Grenze starten und demnach fr here Annahmen keinen konkreten Zust nden zugeordnet werden k nnen Auf Zusicherungen trifft dieser Umstand gleicherma en zu jedoch ist eine Verz gerung von Zusicherungen nicht m glich Das hei t dass vhisyn Zusi cherungen vor der linken Grenze nicht unterst tzt Eine m gliche L sung des Problems ist die Verschiebung der betroffenen Eigenschaftsgrenze auf einen fr heren Zeitpunkt Dabei m ssen auch die rechten Grenzen aller Vorg ngereigenschaften in die gleiche Richtung ver schoben werden Das hat dann wiederum zur Folge dass andere Nachfolger dieser Vorg ngereigenschaften mit verschoben werden m ssen Die Menge der Vorg nger und Nachfolger mit zu verschiebenden Grenzen erweitert sich so lange bis keine weiteren Eigenschaften betroffen sind In vielen F llen er h lt man dabei die Menge aller Eigenschaften Die Realisierbarkeit dieses Gedankengangs wurde in dieser Arbeit nicht n her untersucht Kombinatorische Schleifen Der Wert einer Zusicherung h ngt nur von Signalwerten zu fr heren Zeit punkten sowie dem aktuellen Zeitpunkt ab Da der next Operator nicht er laubt ist k nnen sp tere Zeitpunkte nicht auftreten Die Abh ngigkeit von fr heren Zeitpunkten stellt mit dem in dieser Arbeit vorgestellten Synthese verfahren kein Problem dar Allerdings kann bei Abh ngigkeit von Signal
39. das eine ITL Beschreibung einliest und ein VHDL Modell ausgibt Die Hardwarebeschreibungssprache VHSIC Hardwarebeschreibungssprache VHDL ist neben Verilog eine der beiden mit Abstand h ufigsten Sprachen um einen Schaltkreis auf RT Ebene zu beschreiben EEE09 IEEE01 Der angestrebte Entwurfsfluss ist in Abb 1 1 dargestellt und zeigt die Inter aktion zwischen formalem Verifikationswerkzeug OneSpin 360MV und dem High Level Synthese Werkzeug vhisyn Aus der Spezifikation wird in einem manuellen Prozess eine Eigenschaftsmenge in Form einer ITL Komponente erstellt Diese besteht aus den eigentlichen Eigenschaften und einem Eigen schaftsgraphen der die Interaktion der Eigenschaften erfasst Nachdem die Komponente beschrieben wurde muss sie auf ihre Vollst ndigkeit hin ber pr ft werden Das Ergebnis der Pr fung ist Voraussetzung f r die Synthese Der Synthesevorgang schreibt das RT Modell der Eigenschaftsmenge in eine VHDL Datei In einem letzten Schritt muss die Korrektheit des erzeugten Modells anhand der Eigenschaften formal best tigt werden Die Pr fung auf Vollst ndigkeit kann bereits w hrend der Erstellung der Operationseigenschaften angesto en werden und so dem Entwerfer fr hzeitig Hinweise geben die die Qualit t des Entwurfs verbessern und Fehler aufde cken Weiterhin untersucht diese Arbeit die Grenzen der Synthesealgorithmen und die Effizienz der entstehenden Entw rfe im Vergleich zum Entwurf auf RT Ebene Dabei wird
40. den Eigenschaften beschrieben werden 2 2 1 Temporale Logik Grundlage der ABV ist die temporale Logik Sie verbindet die normale nicht temporale Logik mit zeitbehafteten Konstrukten Damit k nnen Aussagen getroffen werden die festlegen wie sich ein System ber einen zeitlichen Ver lauf hinweg verh lt In Eme90 wird ein berblick ber die umfangreichen Arbeiten zu temporalen Logiken gegeben In diesem Abschnitt soll nur auf drei spezifische Formen eingegangen werden die sehr weit verbreitet sind und daher Eingang in die standardisierten Eigenschaftssprachen gefunden haben Wichtigstes Kriterium bei der Unterteilung der temporalen Logik ist die Repr sentation der Zeit Sie kann entweder linear verlaufen oder sich verzwei gen Bei einem linearen Zeitverlauf betrachtet man genau eine Abfolge der Zust nde eines Systems Diese Abfolge wird auch als Pfad bezeichnet und entspricht einer einzelnen konkreten Ausf hrung des Entwurfs Die zweite M glichkeit ist eine verzweigende Zeit Dabei hat das System in jedem Zu stand mehrere m gliche Folgezust nde sodass ein zeitlicher Zustandsbaum entsteht der eine unendliche Tiefe besitzt In diesem Baum gibt es einen Wur zelknoten der den Startzustand kennzeichnet sowie eine unendliche Anzahl von Pfaden des Baums die einer einzelnen linearen Ausf hrung des Systems entsprechen F r eine ausf hrliche Behandlung der Vor und Nachteile von 27 2 Grundlagen temporaler Eigenschaften und ihrer S
41. die verwendeten Synthesealgorith men als auch die erzeugten Schaltungen effizient sind und somit die Rea lisierung gr erer Beispiele zulassen Anhand zweier Fallstudien kann dies praktisch nachgewiesen werden Inhaltsverzeichnis Abk rzungsverzeichnis Vorwort 1 Einleitung und Motivation 1 1 1 2 1 3 1 4 Operationen als Entwurfsebene Operationen als Verifikationsmethodik Zielstellung und Entwurfsfluss ooa a Aufbau der Arbete 2 Grundlagen temporaler Eigenschaften und ihrer Synthese 2 1 2 2 2 3 2 4 Entwurfsebenen Eigenschaftsbasierte Verifikation 2 2 1 Temporale Logik 2 2 2 Eigenschaftssprachen 2 2 3 Dynamische Verifikation 2 2 2222 2 2 4 Statische Verifikation Formale Eigenschaftspr fung High Level Synthese 2 22 o nn 2 3 1 Klassische High Level Synthese 2 2 2 2 3 2 High Level Synthese aus temporalen Eigenschaften 2 3 3 Funktionale Programmierung und die Synthese von Hardware idaw ra wu wa sah sata he Operationen als Verhaltensbeschreibung 2 4 1 Unified Modeling Language 2 2 2 2 2 4 2 Hierarchical Annotated Action Diagram 2 4 3 Operationen im Entwurf 3 Operationseigenschaften als vollst ndige Verhaltensbeschreibung 3 1 3 2 Allgemeines unse ok Se a eee NEE ed a a Struktur der Eigenschaften 0 00 3 2 1 Zeityariablen ENEE EE Bere Gods gt 3 2 2 Freezev
42. diesem Fall sogar weniger Zust nde besitzt als der entsprechende NEA Davon kann jedoch im allge meinen Fall nicht ausgegangen werden Ausgaberelation Das Ausgabealphabet ist ebenso wie f r den NEA die Potenzmenge der Zu sicherungen Q 27 Nun ergibt sich die Ausgaberelation A C V x Q zu X v wv v V 118 4 7 Konstruktion eines deterministischen Kontrollautomaten wobei w Q alle Zusicherungen enth lt die f r den gegebenen Zustand v zust ndig sind und vom Gesamtsystem eingehalten werden m ssen Wy Zp n t Z Wp s Es d rfen mehrere Zusicherungen die das selbe Ausgangssignal n betreffen in w vorkommen diese m ssen jedoch entweder aufgrund der erfolgreichen Vollst ndigkeitspr fung den selben Wert zuweisen oder anderweitig das selbe Systemverhalten hervorrufen Die in Abschnitt 5 1 4 zu definierenden Anfor derungen an eine synthesegerechte ITL Beschreibung sind dabei zu beachten Welche der parallelen Zusicherungen auf das gleiche Signal von der generier ten Hardware ausgef hrt wird ist implementierungspezifisch Es ist jedoch w nschenswert den Benutzer in dieser Situation auf das gegebenenfalls red undante oder sich widersprechende Verhalten hinzuweisen Wenn dennoch ein Satz von Eigenschaften synthetisiert werden soll der sich widersprechende Zusicherungen im gleichen Zustand enth lt und da durch nicht realisierbar ist dann erzeugt die Synthese ein Design welches sich
43. diesem so lange wie m glich zu halten Zur Bestimmung der Haltedauer muss das berlappen der Eigenschaften z B f r Pipelineverhalten ber cksichtigt werden Dies ist notwendig da eine Eigenschaft die sich selbst berlappt den Freezevariablenspeicherplatz der Vorg ngereigenschaft d h die vorhergehende Instanz der selben Eigen schaft berschreibt Mit Hilfe der Implementierung durch eine Kette von Registern ist das korrekte Verhalten bei berlappung automatisch erreicht allerdings auf Kosten der Hardwareressourcen Die Zahl der Register f r Freezevariablen kann bei langen Eigenschaften um ein vielfaches verringert werden indem die Registerwerte in der Kette 86 4 5 Auswertung der Eigenschaften nur dann weitergeschoben werden wenn eine berlappung droht d h wenn eine zweite Instanz der selben Eigenschaft aktiviert wird w hrend die erste Instanz noch nicht komplett abgearbeitet ist last p erreicht ist Der Zeit raum zwischen der Bereitstellung des Freezeausdrucks und der drohenden berlappung entspricht der Distanz der Eigenschaft zu sich selbst d h der Periode der Eigenschaft Falls die Berechnung der Periode der Eigenschaft zu aufwendig ist kann die L nge length p der Eigenschaft als untere Schranke genutzt werden Eing nge Freezeausdruck So sonst Sn sonst Y S2n sonst I l I FF FF FF fo fin 1 2n
44. e Lokale Bezeichner die in einem der Signalverzeichnisse gefunden wer den k nnen direkt verwendet werden d h der Eintrag wird auf den Ergebnisstapel gelegt e Ist der gefundene Ausdruck ein Bezeichner der ein Argument des ak tuellen Makroaufrufs darstellt wird der Ausdruck im bergeordneten Makroaufruf gesucht der diesem Argument bergeben wurde Der Aus druck wird auf den Ausdruckstapel gelegt Nach Beendigung dieser Aus wertung liegt das Ergebnis auf dem Ergebnisstapel und wird im lokalen Signalverzeichnis zwischengespeichert 127 4 Synthese von Operationseigenschaften Globale Bezeichner werden wie in Abschnitt 4 3 1 beschrieben behan delt und das Ergebnis wird ebenfalls auf den Ergebnisstapel gelegt Makroaufrufe f hren zuerst zu einem Speichern des Makrok rpers auf dem Ausdruckstapel Nach abgeschlossener Auswertung liegt dann das Ergebnis des Makroaufrufs auf dem Ergebnisstapel Bei Anweisungen von if statically werden zuerst die beiden Verzwei gungsausdr cke auf den Ausdruckstapel gelegt gefolgt vom Ausdruck der Bedingung Wenn die Bedingung ausgewertet wurde wird ihr Er gebnis vom Ergebnisstapel genommen und untersucht Wenn der Si gnalwert logisch wahr ergibt wird der else Teil vom Ausdruckstapel entfernt Im anderen Fall wird der then Teil verworfen Dabei muss in einem der beiden F lle nicht der oberste Wert vom Stapelspeicher entfernt werden sondern der darunter liegende Der zeitliche Operator prev
45. einer Komponente 18 1 3 Zielstellung und Entwurfsfluss nicht wie sonst blich in allgemeine temporale Eigenschaften gefasst die oft in keinem zeitlichen Verh ltnis zueinander stehen und auch in ihrer L nge nicht beschr nkt sind Stattdessen haben die Eigenschaften dieser Methodik haben einen sehr einfachen und klaren Aufbau und legen das komplette Sys temverhalten in einem Zeitfenster konstanter L nge fest Dadurch kann mit tels Aneinanderreihung dieser Eigenschaften das Systemverhalten vollst ndig und l ckenlos beschrieben werden Die einzelnen Eigenschaften werden dann durch effektive Beweisverfahren formal gepr ft Das zweite Standbein der Methodik ist die sogenannte Vollst ndigkeitspr fung Sie stellt fest ob die Aneinanderreihung der Eigenschaften ein eindeuti ges und deterministisches Verhalten repr sentiert Bei einem Erfolg stellt die Menge der Eigenschaften ein Referenzmodell dar Die formale Eigenschafts pr fung das erste Standbein ist in der Lage dieses Referenzmodell mit der tats chlichen Implementierung zu vergleichen und abweichendes Verhalten der Implementierung zu detektieren Das Verfahren kann damit als Ansatz verstanden werden bei dem mit Hilfe einer speziellen Entwurfsmethodik ein goldenes Referenzmodell erstellt wird welches hnlich dem quivalenzvergleich mit der Implementierung verglichen wird Es ist also naheliegend zu untersuchen ob dieses Referenzmodell nicht direkt als Implementie
46. einzige VHDL Ausgabedatei die ein Modul entity und architecture f r die Toplevel Komponente beinhaltet Alle tieferen Ebenen sind mit Bl cken realisiert 4 2 Einlesen von ITL ITL kann in zwei verschiedenen Sprachstilen verwendet werden Die auf VHDL basierende Variante wird vhi genannt was gleichzeitig die Endung der betroffenen Dateien darstellt Die Verilog Variante wird als vli bezeich net Der Unterschied ist rein syntaktischer Natur und betrifft die Operatoren die in Ausdr cken verwendet werden k nnen 75 4 Synthese von Operationseigenschaften In dieser Arbeit wird nur die VHDL Sprachvariante genutzt d h die Ein gangsdaten des ersten Schrittes von vhisyn sind ITL Dateien in vhi Syn tax F r jeden Synthesevorgang werden alle ben tigten Dateien zu Beginn eingelesen und in einen abstrakten Syntaxbaum AST berf hrt Die ITL Grammatik wurde mit Hilfe von ANTLR Par07 in einen Parser gewandelt der dann aus vhisyn heraus aufgerufen wird ANTLR hat einen eingebauten Mechanismus um zu einer gegebenen Grammatik einen passenden AST zu erstellen Nachdem der AST aller ITL Dateien vorhanden ist werden die Konstruk te der obersten Ebene herausgesucht und in getrennten ASTs gespeichert So werden alle Makros Eigenschaften sowie Vollstandigkeitsbeschreibungen extrahiert Sie k nnen dann im weiteren Verlauf der Synthese anhand ih res Namens direkt gefunden und evaluiert werden ohne dass jedes Mal eine Suche in den ASTs
47. erf llt sein W hrend bei Annahmen sich dieses bin re Verhalten in der Synthese als Zustands bergangsbedingung am Kontrollautomaten wiederfin det ergibt sich bei Zusicherungen eine andere Fragestellung Es muss aus einer Wahrheitsaussage abgeleitet werden welchen Signalen welcher Wert zugewiesen werden kann Obwohl Zusicherungen in der Form prove at t 2 out lt in 147 5 Anforderungen an eine synthesef hige Eigenschaftsbeschreibung erlaubt sind wird bei der Vollst ndigkeitspr fung der Determinierungstest keine eindeutige Bestimmung des Ausgangssignals out feststellen k nnen Aus diesem Grund sind Zusicherungen meist als direkte Zuweisungen imple mentiert d h das Ausgangssignal wird mit dem Resultat eines Ausdrucks verglichen prove at t 2 out Ausdruck Es kann jedoch auch F lle geben in denen das Ausgangssignal eindeu tig determiniert ist aber trotzdem keine direkte Zuweisung stattfindet Es k nnen bspw mehrere Zusicherungen im Zusammenspiel den richtigen Wert ermitteln prove at t 2 out lt in at t 2 out gt in 2 In Ausnahmef llen kann durch Umformen der Ausdr cke eine direkte Wertzuweisung ausgerechnet werden Im Allgemeinen ist der erforderliche Aufwand aber sehr gro und schlecht einzusch tzen Eine andere Sichtweise l sst nicht eindeutig bestimmte Zuweisungen als Freiheitsgrad in die Synthese einflie en d h die Zusicherung out lt in wird bspw willk rlich durc
48. hren Wenn man die Kette fortsetzt 88 4 5 Auswertung der Eigenschaften sind allerdings keine h heren berlappungen m glich weswegen das Beispiel nur drei Instanzen umfasst Der Speicherzeitpunkt time f 0 liegt zu Beginn der Eigenschaft und bewirkt dass der Freezeausdruck jeweils mit dem Start jeder Instanz am Ausgang fo der Hardware des Freezeausdrucks anliegt Demnach wird f r fo kein Register ben tigt Die drei in diesem Beispiel anliegenden Werte des Freezeausdrucks zu den drei verschiedenen Speicherzeitpunkten werden mit A B und C benannt Weiterhin sind im unteren Teil der Abbildung die ben tigten Register f r beide Implementierungen zu sehen Die oberen Register sind mit f bis fa bezeichnet und stellen die Register der Kettenimplementierung dar Dabei wird mit jedem Zeitschritt der Wert des Freezeausdrucks von einem in das n chste Register bernommen Es werden insgesamt vier Register ben tigt da zwischen Speicherzeitpunkt time f und letztem Zeitpunkt der Eigen schaft last p vier Takte vergehen Wenn ein Register zu einem Zeitpunkt einen g ltigen Freezeausdruck speichert ist das Register in der Abbildung entsprechend beschriftet und hervorgehoben Da nur alle zwei Takte eine neue Instanz anf ngt aber jedoch in jedem Takt der Wert weitergeschoben wird ist die Auslastung der Register mit g ltigen Werten entsprechend gering Bei h heren berlappungen wird dieser Effekt immer st rker Die untere Reihe Reg
49. in komplexen Eigenschaften viel wiederkehrende Schreibarbeit einspart wird im Abschnitt freeze beschrieben Es werden feststehende Ausdr cke zu einem bestimmten Zeitpunkt mit einem symbolischen Namen versehen Diese Freezevariablen genannten Bezeichner k nnen im weiteren Verlauf der Eigenschaft immer dann eingesetzt werden wenn der bezeichnete Ausdruck zu diesem Zeitpunkt noch einmal ben tigt wird So kann beispielsweise ein Datenwort am Eingang der Komponente zu Beginn der Eigenschaft in der Freezevariable gespeichert werden um dann in den Zusicherungen gegen Ende der Eigenschaft wieder verwendet zu werden In der Definition einer Freezevariable k nnen auch alle vorhergehenden Freezevariablen genutzt wer den sodass es m glich ist komplexe mehrstufige Berechnungen komplett im 3 2 Struktur der Eigenschaften freeze Teil der Eigenschaft durchzuf hren und in den Annahmen oder Zusi cherungen nur das Ergebnis zu verwenden 3 2 3 Annahmen und Zusicherungen Der dritte mit assume eingeleitete Abschnitt listet die Annahmen auf die die Eigenschaft aktivieren k nnen Nur wenn jede einzelne dieser Annahmen erf llt ist ist die Eigenschaft aktiv und alle Zusicherungen m ssen erf llt werden Der darauf folgende prove Teil legt die Zusicherungen fest die f r diese Eigenschaft gelten Man kann sich den assume und prove Teil als eine einzige gro e Implikation vorstellen Wenn man die Menge der Annah men als A a1 a2 an d
50. jedoch ebensogut mit during implementiert werden k nnte Zuweisungen auf Teile von Signalen z b durch Iteration ber die Bits eines Ausgangssignals stellen eine weitere synthetisierbare Verwen dungsm glichkeit der foreach Anweisung dar Analog zur during Anweisung existiert das Schl sselwort within wel ches ein Intervall vorgibt innerhalb dessen ein zeitlicher Ausdruck er f llt sein muss Eine Implementierung unterliegt den selben Einschr n kungen wie die Anweisungen either und exists Demnach ist eine Rea lisierung im Annahmenteil m glich w hrend sie im Zusicherungsteil zu Mehrdeutigkeiten f hren w rde Die Verwendung von temporalen Makros ist in vhisyn nicht m glich wird jedoch in zuk nftigen Versionen der Software angestrebt um ein breiteres Einsatzgebiet zu erm glichen Es wurde bisher auf eine Imple mentierung dieses Sprachfeatures verzichtet da sie lediglich dem Kom fort des Nutzers dient In ITL sind die Ausdr cke true und false als zeitliche Anweisungen m glich Da sie nur in verschiedenen Verifikationsszenarien und beim Debugging zum Einsatz kommen wurde auch hier auf eine Implemen tierung verzichtet 5 1 4 Zusicherungen Umwandlung von Zusicherungen in Zuweisungen In der formalen Verifikation beschreibt eine Eigenschaft einen einzelnen Wahrheitswert d h die Eigenschaft ist erf llt oder sie ist nicht erf llt Dabei ist entweder eine der Annahmen nicht erf llt oder alle Zusicherungen m s sen
51. kann vereinfacht werden indem diejenige Eigenschaftsposition an der m glicherweise eine Verzweigung eintritt Zeile 4 bis 6 in der letzten Iteration behandelt wird In diesem Fall hat m f r alle anderen Eigenschaftspositionen jeweils nur ein Element und die beiden Schleifen Zeilen 15 bis 19 werden je nur einmal durchlaufen Lediglich in der letzten Iteration der Hauptschleife kann m dann mehrere Elemente besitzen und Zeile 17 wird exakt m mal ausgef hrt 4 6 5 Komplexit tsbetrachtung Die Vorstellung eines Algorithmus ist nur dann vollst ndig wenn auch eine Absch tzung seiner Komplexit t unternommen wird So muss zum einen der Speicherbedarf als auch die zu erwartende Laufzeit untersucht werden Der 106 4 6 Konstruktion des nichtdeterministischen Kontrollautomaten Speicherbedarf richtet sich haupts chlich nach der Anzahl der zu untersu chenden Zust nde weshalb sich im folgenden Unterabschnitt darauf konzen triert wird Speicher Die Frage nach der Komplexit t bzw der Anzahl erreichbarer Zust nde des NEA l sst sich nicht exakt beantworten da sie in hohem Ma e von der Form der Eigenschaften abh ngt Eine triviale obere Schranke kann angegeben werden indem die Kardinalit t der Potenzmenge bestimmt wird S 29l Diese Anzahl Zust nde w re jedoch in keiner Weise beherrschbar sodass eine realistischere Absch tzung ben tigt wird Die praktische Erfahrung hat gezeigt dass die Anzahl der Zust nde des
52. l ngere Eigen schaften zu beweisen Im Allgemeinen ist die Komplexit t jedoch nur schwer abzusch tzen Die vollst ndige formale Verifikation besteht im Wesentlichen aus zwei Teilen Um eine Komponente vollst ndig zu verifizieren muss zum einen eine Menge von Eigenschaften entworfen werden die jede f r sich mit Hilfe des Designs bewiesen wird Zum anderen muss formal gepr ft werden dass die Eigenschaften selbst jeden Aspekt des Designs abdecken Dieser Beweis wird Vollst ndigkeitspr fung genannt Spezifikation VY Vollstandige Menge von Eigenschaften Elo DUT Eigenschafts pr fungen Abbildung 3 1 Vollst ndiger formaler Verifikationsfluss Man kann sich die vollst ndige formale Verifikation auch als eine Art Aqui valenzvergleich zwischen Design und Eigenschaftsmenge vorstellen Die Ei genschaften m ssen dabei ein Referenzmodell des Systems repr sentieren Die Pr fung dieses Kriteriums bernimmt die Vollst ndigkeitspr fung Den ei gentlichen quivalenzvergleich mit dem Design erledigt das Model Checking mit Hilfe von IPC indem jede einzelne Eigenschaft auf dem Design erf llt sein muss In Abb 3 1 ist dieser Ablauf schematisch dargestellt Da IPC schon kurz erkl rt wurde bleibt die Frage was w hrend einer Vollst ndigkeitspr fung passiert Auf eine mathematische Formulierung soll an dieser Stelle verzichtet werden In Bor09 sind die entsprechenden For meln ausf hrlich dargestellt Ganz all
53. lange kombinatorische Pfad in kleinere Ab schnitte unterteilt sodass die maximale Taktfrequenz der Hardware steigt 159 6 Ergebnisse Da auf der einen Seite bei der Beschreibung von Eigenschaften Freeze variablen h ufig genutzt werden oder auch der prev Operator mit hohen Verz gerungen zum Einsatz kommt und auf der anderen Seite durch Ma kros sehr gro e rein kombinatorische Funktionsbl cke beschrieben werden ist Retiming sehr wichtig um effiziente RT Hardware aus Operationseigen schaften erzeugen zu k nnen Alternativ kann man auch die Zuweisung in der Form at t 5 c prev funcl prev func2 fa fb schreiben um das selbe Ergebnis zu erzielen wie Retiming Dies legt jedoch Implementierungsdetails auf einer niedrigen Ebene fest was in einer High Level Beschreibung nicht erw nscht ist Es ist zu empfehlen derartige Ent scheidungen dem Logiksynthesetool zu tiberlassen da es viel besser beurtei len kann an welchen Stellen sich eine Optimierung lohnt meist vor allem entlang des fiir die maximale Taktfrequenz kritischen Pfades 6 2 2 Resource Sharing Eine weitere extrem wichtige Optimierung stellt das sogenannte Resource Sharing dar Dieses fasst gleichartige Schaltungsteile zusammen wobei die Funktionalit t erhalten bleibt In ITL werden Makros oft mit den selben Argumenten in unterschiedlichen Situationen verwendet Dazu z hlen bspw gleiche oder zumindest hnliche Annahmen oder Zuweisungen in mehreren Eigen
54. legt sein Argument d h den zu verz gern den Ausdruck mit einer entsprechend angepassten Zeitdom ne auf den Stapel Wenn der Operator ein zweites Argument besitzt welches die Anzahl der Verz gerungsschritte angibt muss zun chst dieses Argu ment auf den Stapel gelegt und auf die Auswertung der Verz gerung gewartet werden Im Anschluss wird der Wert der Verz gerung als Kon stante vom Ergebnisstapel entfernt und das erste Argument von prev wird dem Ausdruckstapel hinzugef gt Dabei muss die geforderte Zeit dom ne mit Hilfe der Verz gerungskonstante angepasst werden Alle weiteren Operatoren inklusive des nicht statischen Verzweigungs operators normales if legen ihre gesamten Argumente auf den Aus druckstapel und lesen nach beendeter Auswertung die entsprechenden Werte vom Ergebnisstapel Das Gesamtergebnis der Operation wird er rechnet und wiederum auf den Ergebnisstapel gelegt Weiterhin wird auch der zugeh rige Hardwareoperator angelegt und mit den passenden Signalen verkn pft Wenn die Werte der Argumente es zulassen kann das Ergebnis auch als Konstante weiterverarbeitet werden Der Algorithmus ist beendet wenn der Ausdruckstapel leer ist In die sem Fall befindet sich nur ein einziger Eintrag auf dem Ergebnisstapel Er stellt das Ergebnis des gesamten Ausdrucks dar Wenn das Ergebnis des Ausdrucks nur als Konstante ben tigt wurde kann der Wert des Ergebnisses direkt verwendet werden Dies tritt zum Beispiel bei der Aus
55. seq_prev rand WIDTH right book t_end end property a ITL Eigenschaft random _reset _inst_9_c28_8 out _prove_random_random_reset rand 0 2 _const 1 0 _inst_110_c28_7 rand WC data 1 _out _prove_random_random_reset dout 0 2 width size 1 _cal seq_prev 110_c28 5 b Hardwarerepr sentation Abbildung 6 10 Visualisierung der Hardwarerepr sentation einer Eigen schaft random _ _reset mit Hilfe der Nlview Bibliothek 174 7 Schluss 7 1 Zusammenfassung In dieser Arbeit wurde eine durchgehende Synthesemethodik beschrieben die eine vollst ndige Menge von Operationseigenschaften in ein Modell auf RT Ebene umsetzt Operationseigenschaften wurden bisher in der formalen Verifikation eingesetzt Sie besitzen einen einfachen Aufbau und k nnen ent sprechend eines Eigenschaftsgraphen aneinandergereiht werden um das Ver halten des Systems zu jedem Zeitpunkt eindeutig zu bestimmen In der forma len Verifikation werden zum einen die Eigenschaften auf der Implementierung gepr ft Zum anderen wird mit Hilfe einer Vollst ndigkeitspr fung nachge wiesen dass die Eigenschaften keine L cken im Systemverhalten aufweisen Durch diese Pr fung stellt die Eigenschaftsmenge ein Referenzdesign dar welches in seinem Ein Ausgangsverhalten exakt dem realisierten Entwurf entspricht Es ist demnach m glich aus diesem Referenzdesign eine Implementie rung auf RT Ebene automatisiert herzuleiten und Oper
56. tere Hardware zur Folge haben Zustandsketten Es kann in vielen F llen beobachtet werden dass bei langen Eigenschaften viele Zust nde eine lange Kette bilden Dabei sind insbesondere diejenigen Zust nde interessant die genau eine ausgehende Transition ohne bergangs bedingung besitzen In Abb 4 15 bilden bspw die Zust nde inframe in frame in frame inframe nosync eine solche Kette Mit zunehmender Eigenschaftsl nge w chst die Anzahl der Zust nde in solchen Ketten w hrend die Anzahl der restlichen Zust nde konstant bleibt Lediglich mit steigender berlappung und Parallelit t der Eigenschaften sinkt die Anzahl der Kettenzust nde bis Inkrementelle Zustands berg nge Um den Ressourcenverbrauch des DEA gering zu halten kann darauf ge achtet werden dass der numerische Registerwert von m glichst vielen Ket tenzust nden des Automaten eine konstante numerische Differenz zu ihrem Nachfolger hat Die berg nge zwischen der betroffenene Zust nden werden 132 4 9 Abbildung in Hardware dann in der Beschreibung des Automaten nicht einzeln implementiert son dern k nnen ber einen Default bergang abgedeckt werden Dieser speziel le bergang greift immer dann wenn keiner der anderen berg nge aktiviert wurde Er besteht lediglich aus einem Addierer der einen konstanten numeri schen Wert zum gegenw rtigen Zustand addiert um den neuen Zustandswert zu bestimmen Die genaue Abbi
57. und dr ckt Hardwarekonstrukte direkt mit nativem Haskell aus Kup 10 Der Standard Haskellcompiler erzeugt aus der Beschreibung ei ne Repr sentation in einem Zwischenformat die eine wesentlich geringere Komplexit t hat als die Ausgangssprache CAaSH f hrt anschliessend eine Transformation des Zwischenformats in Hardware durch 41 2 Grundlagen temporaler Eigenschaften und ihrer Synthese bitAdder carryIn carryIn bitAdder carryIn a as sum sums carryOut where sum carry halfAdd carryIn a sums carryOut bitAdder carry as Abbildung 2 5 Lava Quelltext einer rekursiven Funktion bit Adder die zwei Operanden bitweise addiert carryIn as halfAdd carry bitAdder sum carryOut D Abbildung 2 6 Hardwarebeschreibung der bit Adder Funktion Weitere Ans tze der Hardwareverifikation und synthese mit funktionalen Sprachen sind unter anderem in BH97 und CLM98 beschrieben Der Bezug von funktionaler Darstellung von Hardwarebeschreibungen zur Eigenschaftssynthese aus ITL besteht in der von ITL verwendeten Syntax f r Makros Sie nutzen funktionale Sprachkonstrukte bieten jedoch nicht die M glichkeit Funktionen als Funktionsargumente zu verwenden Makros sind einer der Gr nde warum sich ITL nicht nur gut f r Kontrollflussbe schreibungen eignet sondern auch f r komplexe Datenflussoperationen die dadurch meist sehr elegant und gut wartbar si
58. werden Die Knoten dieses Graphen bestehen aus den Zeitpunkten aller beteiligten Eigenschaften P den Eigenschaftspositionen 96 4 6 Konstruktion des nichtdeterministischen Kontrollautomaten Die Kanten Eu des abgerollten Eigenschaftsgraphen sind in zwei Katego rien zu unterscheiden Zum einen gibt es die Kanten die den temporalen Verlauf einer Eigenschaft sicherstellen Diese berg nge werden Zeitkanten Etemp genannt Etemp p p p PAleft p lt t lt last p und repr sentieren das Fortschreiten der Eigenschaften mit jedem Zeitschritt Die zweite Kategorie bilden die Kanten die einen bergang von einer Eigen schaft zu einem ihrer Nachfolger darstellen Sie werden Nachfolgerkanten Esuce genannt Esuce e Se p P N p2 succ p Somit ergibt sich die Menge Eu aller Kanten des neuen Graphen aus der Vereinigung dieser beiden Teilmengen Eu Etemp U Esucc en SC a Eigenschaftsgraph Eigenschaft left p right p last p reset 0 3 4 idle 0 1 2 sync 2 8 9 in frame 0 8 9 nosync 0 3 4 b Grenzen der Eigenschaften Abbildung 4 7 Komponente Framer mit Eigenschaftsgraph und grenzen Der abgerollte Eigenschaftsgraph l sst sich am besten mit Hilfe eines Bei spiels verstehen Da das bisher genutzte Resampler Beispiel nicht komplex genug ist um einige der Attribute des Graphen klar darzustellen soll ein 97 4 Synthese von Operationseigenschaften
59. willk rlich f r eine der sich widersprechenden Zusicherungen entschei det Der Fehler wird entdeckt wenn die urspr nglichen Eigenschaften auf dem erzeugten Entwurf formal gepr ft werden 4 7 6 Erreichbarkeit und Algorithmus Die Erreichbarkeit der Zust nde im DEA kann genau wie die Erreichbar keit des NEA durch einen rekursiven Konstruktionsalgorithmus sichergestellt werden Dazu wird Alg 4 1 mit geringen Abweichungen bedingt durch die ge nderte Definition der Zust nde wiederverwendet In Alg 4 3 ist der ent sprechende Pseudokode dargestellt Ein wichtiger Unterschied ist allerdings die Berechnung der Nachfolger ei nes Zustandes v V Die Funktion bekommt einen zus tzlichen Parameter co weshalb vor dem Aufruf erst ber alle Elemente in X iteriert werden muss Der entsprechende Pseudokode der Nachfolgerberechnung ist in Alg 4 4 dar gestellt Im ersten Abschnitt des Algorithmus Zeilen 1 bis 15 werden die relevanten Pfade von v bez glich des bergangsbedingung o gefiltert wo bei Zeilen 4 bis 5 die Kriterien 1 und 2 bearbeitet w hrend Zeilen 6 bis 12 Kriterium 4 behandeln In Zeile 15 wird letztendlich Sorge getragen dass Kriterium 5 eingehalten wird Im letzten Abschnitt Zeilen 19 bis 22 wird mit Hilfe von succ s aus Alg 4 2 die Nachfolgermenge zusammengef gt und anschliessend zur ckgegeben 119 4 Synthese von Operationseigenschaften Algorithmus 4 3 Funktion zum Erstellen des deterministischen Kontroll
60. Abbildung 2 7 Zeitdiagramm der Leseoperation der PCI Protokollspezifika tion PCI95 In Hei99 werden Zeitdiagramme formal erfasst und validiert Dabei wer den die Bedingungen eines Zeitdiagramms bspw welcher Signalwechsel einen anderen bedingt und wieviel Zeit zwischen beiden vergehen darf definiert Mit Hilfe dieser Angaben ist es m glich die Konsistenz eines Zeitdiagramms zu pr fen Wenn sich die Bedingungen und dazugeh rigen Intervalle gegen seitig widersprechen liegt ein Spezifikationsfehler vor 2 4 1 Unified Modeling Language Es gibt Ans tze die Spezifikation von Zeitdiagrammen zu formalisieren und ihnen eine exakt definierte Semantik zu geben Der wahrscheinlich bekann 43 2 Grundlagen temporaler Eigenschaften und ihrer Synthese teste ist die Unified Modeling Language UML Sie ist eine standardisierte graphische Sprache die verschiedene Diagrammtypen f r die Modellierung von Softwaresystemen bereitstellt Es wird zwischen Strukturdiagrammen und Verhaltensdiagrammen unterschieden Zu den Verhaltensdiagrammen z hlen unter anderem die Sequenz Zeitverlaufs und Interaktions bersicht diagramme Die Zeitverlaufsdiagramme entsprechen dabei im Wesentlichen den erw hnten Zeitdiagrammen w hrend Sequenzdiagramme sich auf den Austausch von Nachrichten zwischen verschiedenen Partnern konzentrieren Die Interaktions bersichtsdiagramme stellen eine M glichkeit dar mehrere Sequenz oder Zeitverlaufsdiagramme zu kombini
61. Abbildung 4 4 Zwischenspeichern einer Freezevariablen anhand der Periode n der Eigenschaft In Abb 4 4 ist die n tige Hardware f r ein solches Verhalten dargestellt Vor jedes Register wird ein Multiplexer eingebaut der entweder den Wert des Registers h lt oder den der vorhergehenden Stufe bernimmt Das Schaltsi gnal f r die bernahme des neuen Wertes wird aus dem Zustandsautomaten der Gesamtkomponente bestimmt Das Signal s wird genau dann zugeschal ten wenn der Zustandsautomat eine Instanz der betreffenden Eigenschaft p aktiviert hat und diese sich im Zeitpunkt time f i befindet In Abschnitt 4 8 wird die Erzeugung des Schaltsignals erl utert und daf r die Notation ot verwendet Der Freezeausdruck muss direkt zum Speicherzeitpunkt time f so und danach alle n Takte ins n chste Register weitergeschoben werden Der Wert von n ist dabei die Periode der Eigenschaft period p Die Ausg nge der abgebildeten Hardware sind mit einem Intervall gekenn zeichnet welches die Zeitpunkte umfasst zu dem der Wert der Freezevariable f von diesem Signal abgegriffen werden kann Direkt zum Zeitpunkt time f muss der Wert wie schon bei der Registerkettenimplementierung am Ausgang der Hardware des Freezeausdrucks genutzt werden 87 4 Synthese von Operationseigenschaften Die Anzahl der Stufen und damit Register in dieser Implementierungsva riante ergibt sich aus Ke time f l period p Insbesondere bei sehr langen Eigenschaf
62. Abbildung auf VHDL entsprechend ber cksichtigt werden muss Signale k nnen vorzeichenbehaftete oder vorzeichenlose Bitvektoren sein Innerhalb der hierarchischen Module werden sie mit Ein oder Ausgangs ports verkn pft was entweder die Ports des aktuellen Elternmoduls oder die Ports der Basisbl cke sind Verkn pfungen zwischen zwei Signalen sind nicht erlaubt Bei den hardwareerzeugenden Schritten des Synthesevorgangs in Phase 1 wird die Datenstruktur des Zwischenformats systematisch aufgebaut Am Ende dieses Vorgangs ist die Struktur komplett und kann mit entsprechen den Visualisierungstools betrachtet werden Im Rahmen dieser Arbeit ist ein solches Werkzeug entstanden welches die gespeicherte Datenstruktur einliest und hnlich der schematics Darstellung in bekannten Simulations bzw Syn thesetools darstellen kann Im Abschnitt 6 6 wird das Werkzeug vorgestellt 4 1 1 Details von Phase 1 In diesem Abschnitt soll ein grober berblick ber den Synthesevorgang in Phase 1 gegeben werden Die im weiteren Verlauf folgenden Unterkapitel werden auf die einzelnen Punkte genauer eingehen 1 Einlesen der ITL Dateien und berf hrung in einen abstrakten Syn taxbaum 2 Aufbau der Modulhierarchie durch Auswertung des structure Ab schnitts und Durchf hrung der Synthese f r eventuelle Untermodule 3 Erstellung des Eigenschaftsgraphen und Speichern der Graphenrepr sentation 4 Auswertung und Hardwaregenerierung f r alle im Eige
63. Algorithmus basiert auf Rol87 und entspricht dem klassischen schriftlichen Wurzelziehen nur zur Basis 2 anstatt 10 In Abb 3 4 ist auch die entsprechende Funktion in C angege ben Da ITL keinen Potenzoperator bereitstellt muss auch daf r ein Makro bereitgestellt werden An diesem Beispiel kann man erkennen dass die ite rative while Schleife in eine Rekursion umgewandelt wurde Das ITL Makro sqrt_impl ruft sich selbst f r jede Iteration einmal auf wobei die Variablen der C Funktion den Argumenten des Makros entsprechen 3 3 1 Operandenwachstum Was in diesem Beispiel nicht beachtet wird ist die Besonderheit von ITL Operatoren keinen Integer berlauf zuzulassen So ergibt die Addition von zwei Bitvektoren im unsigned Format in ITL einen Bitvektor der ein Bit l n ger ist als der l ngere der beiden Operanden Somit ist die Operation mathe matisch immer korrekt was das Schreiben von Eigenschaften f r die formale Verifikation erleichtert Auf der anderen Seite werden aber die Operanden in einem rekursiven Algorithmus mit jeder Addition oder Subtraktion immer l nger ohne dass dies wirklich notwendig ware Im Maro sort _impl w chst so die Bitbreite der Parameter op und res mit jeder Rekursion an und f hrt zu erh htem Berechnungsaufwand sowohl bei der Verifikation als auch bei der in dieser Arbeit durchgef hrten Synthese Da der Algorithmus ein berlaufen der genannten Operationen ausschlie t kann durch explizites Abschneiden der un
64. Beschreibung wesentlich weniger verbreitet unter Hardware Entwerfern ist als die klassische imperative Beschreibung wie man sie aus VHDL oder Verilog Prozessen kennt Insbesondere die Umwandlung von imperativen Pro grammschleifen in rekursive Funktionsaufrufe kann anfangs sehr umst ndlich wirken In ITL werden Makros vor allem zur Beschreibung des Datenflusses einer Komponente verwendet Sie erleichtern die Beschreibung von ITL Eigenschaften indem mehrfach verwendeter Kode ausgelagert wird Weiter hin erh ht sich das Verst ndnis der Eigenschaften wenn komplexe Teilaufga ben in Makros stattfinden anstatt den Quelltext der Eigenschaft unn tig zu vergr ern Da ITL kein Konstrukt f r Schleifen vorsieht muss deren Ver 55 3 Operationseigenschaften als vollst ndige Verhaltensbeschreibung halten durch rekursive Makroaufrufe realisiert werden Dies entspricht dem blichen Vorgehen in funktionalen Sprachen Im Wesentlichen kann jede kombinatorische Schaltung sehr direkt und ef fizient als funktionales Makro beschrieben werden Es existieren in der Lite ratur Beispiele aus verschiedenen Anwendungsbereichen die dies belegen So k nnen parallele Pr fix Schaltkreise mit funktionalen Sprachen sehr elegant beschrieben und synthetisiert werden She05 Die grundlegende Syntax und Funktionsweise eines Makros wird in Abb 3 3 anhand eines kleinen Beispielmakros zur Berechnung der ganzzahligen Quadratwurzel dargestellt Der verwendete
65. Dazu werden in einem ersten Schritt hnlich Abschnitt 4 8 diejenigen Zust nde gesammelt die eine der Eigenschaftspositionen ent halten Vig v V Sep es Nun kann Yiz trivialerweise mit Wiz Vakt Viz 4 1 definiert werden was die Voraussetzung fiir die im Folgenden vorgeschlagene Optimierung bildet Wenn fiir die Zust nde v Ma jeweils nur der numerische Wert num v betrachtet wird entsteht eine Folge von natiirlichen Zahlen Nig num v v kat Die Gleichung 4 1 kann mit Hilfe von nat num var zu Viz Nakt Niz umformuliert werden Diese Pr fung kann durch eine Aufteilung in Intervalle vereinfacht werden An einem Beispiel ist dies schnell illustriert Es sei eine Folge Nu 1 2 3 4 7 gegeben Die Pr fung kann nun entweder durch Nakt 1 V Nakt 2 V Nakt 3 V Nakt 4 V Nakt 7 erfolgen oder durch die viel einfachere Intervallpr fung aan gt 1 A nart lt 4 V nart 7 139 4 Synthese von Operationseigenschaften Da die dabei verwendeten Vergleichsoperatoren zwischen den einzelnen Schaltsignalen f r jede Zusicherungsklasse wiederverwendet werden k nnen entsteht an dieser Stelle ein komplexes Optimierungsproblem welches zu s tzlich durch die in Abschnitt 4 9 3 genutze Heuristik beeinflusst wird In vhisyn wurde ein simpler heuristischer Ansatz gew hlt indem Wieder verwendung zwischen Schaltsignalen ausgeschlossen wird und alle Intervalle mit m
66. Entwurf geben der sie beide erf llt Der Entwurf kann nur eine der beiden Zusicherungen erf llen Die andere Zusicherung schl gt demnach bei der Eigenschaftspr fung fehl Da in der formalen Eigenschaftpr fung aber ein implementiertes Design vorliegt auf dem alle Eigenschaften erf llt sind muss der Determinierungs test die Realisierbarkeit nicht berpr fen Wenn allerdings das Design erst aus den Eigenschaften synthetisiert werden soll hat man die Realisierbarkeit nicht a priori gegeben d h man wei zur Designzeit nicht ob es m glich sein wird eine g ltige Realisierung zu erstellen Auf dieses Problem und die dabei angestrebte praktische L sung wird im weiteren Verlauf der Arbeit genauer eingegangen Um das Beispiel zu illustrieren ist in Abb 3 11 eine vollst ndige ITL Komponente gegeben In den beiden Eigenschaften a und b existiert jeweils die einzelne und entscheidende Annahme zum Zeitpunkt t 2 w hrend die einzige Zusicherung zum Zeitpunkt t 1 stattfindet Da ein System zut 1 nicht wissen kann wie sich das Eingangssignal im n chsten Zeitpunkt verhal ten wird ist dieses System nicht implementierbar Der Vollst ndigkeitstest wird diese Komponente als korrekt ausweisen w hrend es kein Design geben kann das beide Eigenschaften gleicherma en erf llt 71 3 Operationseigenschaften als vollst ndige Verhaltensbeschreibung structurex end completeness constraint no_rst rst 0 end constraint
67. In formation ber fehlgeschlagene Eigenschaften zur Verf gung In Cha 03 und Hei 03 wird die Eigenschaft zur Simulationszeit interpretiert d h ein Softwaremodell der Eigenschaft l uft parallel zur Simulation und pr ft mit Hilfe von Software Events und Threads die G ltigkeit der Eigenschaft Da in Software eine dynamische Allokation von Berechnungs und Speicherres sourcen durchgef hrt werden kann ist dieses Verfahren sehr flexibel Eine andere Herangehensweise ist die Erstellung einer Hardwarerepr senta tion der Eigenschaft die als Checker oder Monitor zusammen mit dem DUV 32 2 2 Eigenschaftsbasierte Verifikation vom Simulator ausgef hrt wird Die in der Eigenschaft verwendeten Signale sind dabei die Eing nge des Monitors w hrend der Ausgang ein meist bin res Signal ist das den Erfolg oder Misserfolg der Pr fung anzeigt Vorteilhaft ist dabei die sofortige R ckmeldung ber fehlschlagende Eigenschaften w hrend der Simulation und in einigen F llen ein Geschwindigkeitsvorteil gegen ber der Interpretation der Eigenschaft im Simulator Arm 06 Auch eine Emulation des Designs zusammen mit den Eigenschaftsmoni toren bietet sich an da die implizite Parallelit t von Hardware ausgenutzt werden kann und durch die Monitore somit keinerlei zus tzliche Laufzeit ver ursacht wird Die knappen Zeitressourcen bei der Produktentwicklung k n nen dadurch weiter entlastet werden Ebenso k nnen die Checker auch direkt in das f
68. Jan Langer High Level Synthese von Operationseigenschaften Jan Langer High Level Synthese von Operationseigenschaften TECHNISCHE UNIVERSIT T CHEMNITZ Universit tsverlag Chemnitz 2011 Impressum Bibliografische Information der Deutschen Nationalbibliothek Die Deutsche Nationalbibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie detaillierte bibliografische Angaben sind im Internet ber http dnb d nb de abrufbar Zugl Chemnitz Techn Univ Diss 2011 Technische Universit t Chemnitz Universit tsbibliothek Universit tsverlag Chemnitz 09107 Chemnitz http www bibliothek tu chemnitz de UniVerlag Herstellung und Auslieferung Verlagshaus Monsenstein und Vannerdat OHG Am Hawerkamp 31 48155 M nster http www mv verlag de ISBN 978 3 941003 48 4 urn nbn de bsz ch1 qucosa 79059 URL http nbn resolving de urn nbn de bsz ch1 qucosa 79059 Bibliographische Angaben High Level Synthese von Operationseigenschaften Jan Langer 196 Seiten 54 Abbildungen 3 Tabellen 4 Algorithmen 92 Literaturstellen Technische Universit t Chemnitz Fakult t f r Elektrotechnik und Informa tionstechnik Professur Schaltkreis und Systementwurf Schlagworte Eigenschaftsbasierter Entwurf Formale Verifikation Hardwarebeschrei bungssprache Hardwaresynthese High Level Synthese Operationsbasierter Entwurf Operationseigenschaften Temporale Eigenschaften Transaktions basierter Entwurf Vo
69. L Eigenschaften Ausgabe von synthese fahigem VHDL Zwischenformat db VHDL vhd Abbildung 4 1 Grundlegender Entwurfsfluss aus Operationseigenschaften Wie in Abb 4 1 dargestellt besteht der Synthesevorgang im Wesentlichen aus zwei Phasen In der ersten Phase werden die ITL Dateien eingelesen und die entsprechende Hardware in einem Zwischenformat erzeugt Das Zwischen format wird dann in der zweiten Phase genutzt um die zugeh rige VHDL Beschreibung zu erzeugen Durch diese Trennung zwischen Syntheseprozess und VHDL Generierung wird erreicht dass zum einen weitere Werkzeuge bspw f r Visualisierung Simulation oder Debugging direkt auf dem Zwi schenformat aufsetzen k nnen und nicht erst den erzeugten Quellkode parsen m ssen Zum anderen kann die Beschreibungssprache ausgetauscht werden kann ohne die anderen Programmteile ver ndern zu m ssen Das Zwischenformat besteht aus einer Datenstruktur die eine allgemeine Form von hierarchisch aufgebauter Hardware widerspiegelt Innerhalb dieser Hierarchie k nnen allgemeine Basisbl cke verwendet werden die den Ope ratoren von ITL entsprechen und auch deren semantisches Verhalten an nehmen In vielen F llen stimmt das nicht mit dem blichen Verhalten von 73 4 Synthese von Operationseigenschaften Hardwareoperatoren berein So hat ein Block im Zwischenformat der den ITL Additionsoperator repr sentiert immer ein berlaufendes Verhalten welches bei der
70. Nachteil von Beschreibungen mittels ITL Eigenschaften dass gleiches oder hnliches Verhalten in allen Operationen die dieses Verhalten ausl sen immer wieder beschrieben werden muss Zur Verminderung dieses Problems werden Makros eingesetzt die durch mehr maligen Aufruf sowohl den Beschreibungs als auch Wartungsaufwand des Kodes verringern Eine weitere M glichkeit sind temporale Makros die es erlauben mehrere Signalzuweisungen zu gruppieren In vhisyn sind tempora le Makros allerdings nicht implementiert sodass dieses Feature im Framer nicht verwendet werden kann Eine dritte M glichkeit eine besser wartbare und kompaktere Beschreibung zu erstellen w ren abstrakte Eigenschaften die mit Hilfe von Ableitung an deren Eigenschaften Funktionalit t bereitstellen k nnen Sowohl Ableitun gen als auch temporale Makros k nnen synthetisiert werden ohne dass die grundlegenden Algorithmen in vhisyn davon beeinflusst werden 171 6 Ergebnisse 6 5 Fazit Insgesamt l sst sich feststellen dass die Ergebnisse die mit vhisyn erzielt werden in Bezug auf Ressourcenverbrauch und maximal erreichbare Takt frequenz in der selben Gr enordnung liegen wie manuell erstellte Entw rfe auf einer niedrigeren Ebene Die verbleibenden Unterschiede k nnen zum Teil durch Optimierungen vermindert werden m ssen jedoch teilweise hingenom men werden da man auf der h heren Ebene nicht die gleichen M glichkeiten speziell angepasster Verfahren h
71. O1 IEEE04 IEEE05a IEEE05b IEEE08 Ulrich Heinkel Claus Mayer J rg Pleickart Joachim Kn blein Hans Sahm Charles Webb Werner Haas und Stefan Gofens opecification Design and Verification of Systems on Chip in a Telecom Application In Entwurf Integrierter Schaltungen und Systeme E I S Erlangen VDE 2003 S 45 50 Ulrich Heinkel Formale Spezifikation und Validierung digitaler Schaltungsbeschreibungen mit Zeitdiagrammen Dissertation Universit t Erlangen N rnberg 1999 John E Hopcroft Rajeev Motwani und Jeffrey D Ullman In troduction to Automata Theory Languages and Computation 3rd Pearson 2006 Charles Antony Richard Hoare Assertions A personal perspec tive In IEEE Annals of the History of Computing 25 2 Apr 2003 S 14 25 ISSN 1058 6180 Paul Hudak Simon Peyton Jones Philip Wadler Brian Boutel Jon Fairbairn Joseph Fasel Maria M Guzm n Kevin Ham mond John Hughes Thomas Johnsson Dick Kieburtz Rishiyur Nikhil Will Partain und John Peterson Report on the Pro gramming Language Haskell A Non strict Purely Functional Language In ACM SIGPLAN Notices Haskell special issue 27 5 1992 S 1 164 Institute of Electrical and Electronics Engineers IEEE Std 1364 2001 IEEE Standard Verilog Hardware Description Language Techn Ber 2001 Institute of Electrical and Electronics Engineers IEEE Std 1076 6 2004 IEEE Standard for VHDL Register Tran
72. PC wird nun der kombinatorische Block eines Designs ohne Speicher herausgetrennt und in der entsprechenden Anzahl vervielf ltigt Der Folgezustand einer Instanz des Designs wird mit dem gegenw rtigen Zustand der darauf folgenden Instanz verkn pft Die Eing nge aller Instanzen und der initiale Systemzustand So sind freie Signale w hrend die anderen Systemzust nde und die Ausg nge von den Kombinatorikbl cken getrieben werden Die Eigenschaft selbst wird auch in Hardware umgesetzt und kann alle Eing nge Ausg nge und internen Signale benutzen um einen Wahrheitswert zu erzeugen der bei erf llter Ei genschaft 1 ergibt und 0 falls die Eigenschaft fehlschl gt Im IPC wird nun dieser Ausgang der Eigenschaft fest auf 0 gesetzt und das Gesamtproblem an einen Erf llbarkeitsl ser bergeben Wenn dieser eine L sung findet stellen die Werte eine g ltige Belegung aller Signale dar die die Eigenschaft verletzt das Gegenbeispiel 2 3 High Level Synthese 2 3 1 Klassische High Level Synthese Im Allgemeinen wird unter High Level Synthese die bertragung von algo rithmischen Beschreibungen in Hardware verstanden Die dabei verwendeten Eingangssprachen sind meist imperative Programmiersprachen die schon im Bereich der Softwareentwicklung etabliert sind Die verbreitetsten Vertreter sind die Sprachen C bzw C F r sie gibt es bereits einige ausgereifte Ans tze f r die Erzeugung von Hardware Dazu z hlen unter anderem die Software Catapult
73. Problem der Zustands raumexplosion das die Anwendbarkeit der statischen Verifikation in vielen F llen einschr nkt Die Vorteile der eigenschaftsbasierten Verifikation sind vielf ltig Die Ei genschaften k nnen bereits w hrend der Spezifikationsphase erstellt werden und bilden eine zus tzliche Dokumentationsm glichkeit die die oft nicht eindeutigen Anforderungen der textuellen Spezifikation in formal eindeutige Konstrukte bersetzt Eine andere Verwendungsm glichkeit besteht w hrend der Entwurfsphase Die Eigenschaften m ssen dabei nicht alle auf einmal hin zugef gt werden sondern k nnen vom Entwerfer inkrementell erstellt werden um die soeben implementierte Funktionalit t auf niedriger Ebene zu pr fen und evtl auch zu dokumentieren Es gibt dabei keinen Vollst ndigkeitsan spruch der Eigenschaften d h sie decken oft nur einen Teil des Verhaltens ab was meist als Vorteil verstanden wird da es dem Entwerfer erlaubt nur Verhalten in Eigenschaften zu fassen dass durch die Semantik der Eigen schaftssprache geeignet beschrieben werden kann Im Laufe eines Projektes kann die Anzahl der Eigenschaften auf viele hundert oder tausend anwachsen Ein weiterer gro er Vorteil ist die Wiederverwendbarkeit von Eigenschaf ten Das Verhalten von komplexen Bussystemen kann ber die gesamte Pro jektlaufzeit und ber mehrere Entwurfsebenen hinweg gepr ft werden indem ein Satz von Eigenschaften oder ein spezieller Monitor eingesetzt werd
74. Synthesis on the Example of a Particle Filter In Southern Conference on Programmable Logic SPL Designer Forum Cordoba Argentina 2011 ISBN 978 84 614 7682 4 Philippe G H Lehot An Optimal Algorithm to Detect a Line Graph and Output Its Root Graph In Journal of the ACM JACM 21 4 Okt 1974 S 569 575 Issn 00045411 Jan Langer und Ulrich Heinkel High Level Synthesis Using Operational Properties In Forum on Specification amp Design Languages FDL IEEE Sep 2009 S 1 6 Jan Langer Dimo Pepelyashev und Ulrich Heinkel Determi nierung von Automaten bei der High Level Synthese von Ope rationseigenschaften In Methoden und Beschreibungssprachen zur Modellierung und Verifikation von Schaltungen und Syste men MBMV Hrsg von Manfred Dietrich Fraunhofer Verlag 2010 S 31 40 Charles E Leiserson und James B Saxe Retiming synchro nous circuitry In Algorithmica 6 1 6 Juni 1991 S 5 35 ISSN 0178 4617 Katell Morin Allory und Dominique Borrione Proven correct monitors from PSL specifications In Design Automation and Test in Europe DATE 2006 S 1246 1251 Literaturverzeichnis MNBO7 MPC88 MS09 MY60 Ngu 08 OC 99 OMB09 OMG10 08S09 OSS10 OV11 Abhishek Mitra Walid Najjar und Laxmi Bhuyan Compiling PCRE to FPGA for Accelerating SNORT IDS In Architecture for Networking and Communications Systems ANCS
75. TL das aus Programmier und Beschreibungssprachen bekannte Konzept der Funktion repr sentieren Im folgenden Abschnitt werden diese genauer untersucht um die sp tere Synthese besser zu verstehen 3 3 Makros Makros werden in ITL verwendet um wiederverwendbare Funktionen zu beschreiben Dies k nnen zum einen allgemeine Funktionen sein wie bei spielsweise Wurzelberechnungen Pr fsummenbestimmungen von Datenwor ten oder auch das einfache Heraustrennen von Teilvektoren aus gr eren Vektoren Zum anderen k nnen Makros auch sehr spezielle Funktionalit t einer Komponente beschreiben wie die Berechnung spezieller arithmetischer Funktionen oder die Pr fung von Integrit tsbedingungen eines Datenrah mens ITL kennt keine Anweisungen wie man sie aus der imperativen Program mierung kennt Makros werden ausschlie lich funktional beschrieben Dies bedeutet dass der Funktionsk rper eines Makros im Wesentlichen nur aus ei nem einzelnen Ausdruck besteht der den R ckgabewert des Makros darstellt Es gibt keine Seiteneffekte da keine Zuweisungen an Signale oder Parameter stattfinden k nnen Dieser funktionale Beschreibungsstil ist f r die Synthese von Hardware besonders gut geeignet Jedes Syntaxelement kann direkt auf entsprechende Hardware Operatoren abgebildet werden Somit muss keine High Level Synthese stattfinden wie man sie aus der Synthese von Sprachen wie C oder Matlab kennt Nachteilig wirkt sich jedoch aus dass die funktio nale
76. a die entsprechende Ver zweigung zu einem fr heren Zeitpunkt eingetreten war Laut Kriterium 4 be deutet die Erf llung der abschliessenden Annahme ao in allen ausgehenden 113 4 Synthese von Operationseigenschaften nosync 3 nosync 4 idle 0 0 idle 1 idle 2 I sync 2 1 sync 3 nosync 4 idle 1 idle 2 idle 0 idle 1 idle 2 2 sync 2 sync 3 idle 2 idle 1 idle 2 idle 0 idle 1 sync 2 idle 2 le idle 0 Abbildung 4 14 Verlauf von Eigenschaften ber mehrere Zust nde des NEA am Beispiel der Komponente Framer Kanten von nosync idle idle die automatische Beendigung der paral lelen Zust nde bez glich ao d h der Zustand nosync idle sync kann in diesem Fall nicht weiter beachtet werden Die Annahme a muss demnach negativ werden Der beschriebene Sachverhalt l sst sich allerdings auch um kehren Wenn die abschliessende Annahme a erf llt ist wird der Zustand nosync idle idle beendet bzw alle seine ausgehenden Kanten sind un g ltig Es bleibt nun die Frage wie die Annahmen an die entstehenden Kanten des DEA annotiert werden So k nnte man die Annahme a durch ao ersetzen oder durch die auskodierte Form dog Unter Ausnutzung der oben aufge f hrten Kriterien ist idealerweise diejenige M glichkeit zu w hlen die mit der geringsten d h ressourcenschonendsten und schnellsten Hardwareabbil dung einhergeht Es erscheint nun ausreichend alle berg nge zu verbieten in dene
77. abei kann jedoch der Pr faufwand erheblich ansteigen Aufgrund der hnlichkeit der Varianten ist es m glich durch geschickte Optimierung den Pr faufwand zu reduzieren Eine Synthese von Eigenschaften mit Zeitintervallen ist m glich jedoch in vhisyn zur Zeit nicht implementiert Um dieses Feature zu unterst tzen w re es wahrscheinlich ausreichend die betreffenden Eigenschaften analog zur beschriebenen Verifikationsmethodik aufzuspalten und getrennt zu syntheti sieren In einem weiterf hrenden Ansatz k nnten gemeinsam genutzte Teile der Eigenschaften optimiert werden Genauere Untersuchungen zu den dabei auftretenden Problemen und m gliche L sungen wurden im Rahmen dieser Arbeit nicht durchgef hrt Es ist jedoch abzusehen dass dabei die Komple xit t des Verfahrens oder der generierten Hardwarebeschreibung nicht ma geblich ansteigt 5 1 2 next Operator Wie bereits in vorangegangenen Abschnitten angedeutet kann der Opera tor next nicht direkt in Hardware abgebildet werden W hrend der prev Operator den Wert eines Ausdrucks zum vorherigen Zeitpunkt bestimmt und somit nur ein einfaches Verz gerungsgatter Register darstellt existiert kein Gatter um den zuk nftigen Wert eines Ausdrucks vorherzusagen Aus diesem Grund ist der next Operator in vhisyn grunds tzlich nicht im plementiert Jedoch kann es zwei Situationen geben in denen dieser Operator nicht wirklich ben tigt wird bzw nachtr glich korrigiert we
78. aft zur n chsten gew hrleistet 3 6 8 Implementierbarkeit Weiterhin ist zu betrachten ob eine vollst ndige Menge von Eigenschaften berhaupt implementierbar ist Es sei an dieser Stelle auf Bor09 Seite 97 verwiesen Der Vollst ndigkeitsbeweis f r Operationsautomaten wird mit den selben Tests durchgef hrt wie der Vollst ndigkeitsbeweis f r Operationseigenschaften Auf diese Weise ist der Vollst n digkeitspr fer auch einsetzbar als Plausibilit tspr fung f r einen Operationsautomaten f r den es noch keine Implementierung gibt Diese Plausibilit tspr fung l sst die Frage der Implemen tierbarkeit des Operationsautomaten offen Diese Frage kl rt sich erst wenn es zum Operationsautomaten eine Implementierung gibt die gegen alle Transitionen des Operationsautomaten verifi ziert wurde Der Ausdruck Operationsautomat entspricht dabei dem durch Eigenschaften und Eigenschaftsgraph spezifizierten Modell Demnach stellt der Determinierungstest nicht sicher ob das durch die Ei genschaften spezifizierte Verhalten berhaupt realisierbar ist d h ob es einen Schaltkreis geben kann f r den alle Eigenschaften erf llt sind Eine solche Situation kann auftreten wenn zwei Eigenschaften parallel gestartet werden 70 3 6 Vollst ndigkeitspr fung und noch keine von ihnen durch die Annahmen ausgew hlt wurde Wenn in einer solchen Situation beide Eigenschaften widerspr chliche Zusicherungen aufweisen kann es keinen
79. aften erh lt der Verifikationsingenieur eine Fehlermeldung die zusammen mit dem Simulationstrace der Fehlersuche und behebung dient Die Verwendung von Eigenschaften stellt zus tzliche Informationen ber die Ursache eines Fehlers bereit Wenn bspw das Senden eines Pake tes ber einen Bus fehlerhaft ist kann mit Hilfe einer Eigenschaft die die Best tigung jedes Pakets pr ft der Fehler direkt entdeckt werden Ohne Ei genschaft w rde man erst zu einem sp teren Zeitpunkt feststellen dass der 24 2 2 Eigenschaftsbasierte Verifikation Empf nger des Paketes die erwarteten Antwortdaten noch nicht geschickt hat Wenn bei der dynamischen Verifikation eine Eigenschaft keinen Feh ler meldet kann keine Aussage getroffen werden ob die Eigenschaft immer erf llt ist Es ist lediglich bekannt dass sie in dem konkreten Testszenario engl Testcase erf llt ist Die andere M glichkeit Eigenschaften zu pr fen ist die statische Verifika tion bzw formale Eigenschaftspr fung Model Checking Deren Ziel ist der mathematische Beweis dass das Design Under Verification DUV in jedem Fall die Eigenschaften erf llt Der Beweis kann alternativ auch mit Hilfe von Theorembeweisern durchgef hrt werden wobei dann oft eine Interaktion mit dem Benutzer erforderlich ist Letztendlich kann im Gegensatz zur dynami schen Verifikation eine definitive Aussage ber die G ltigkeit der Eigenschaft getroffen werden Nachteilig ist dabei jedoch oft das
80. aktiviert werden die sich nicht widersprechen d h den gleichen Signalwert zuweisen Der Entwerfer kann dies garantieren indem er durch 135 4 Synthese von Operationseigenschaften 1 process Gell rst reset 2 begin 3 if rst 1 then 4 state lt 13 5 elsif clk event and clk 1 then 6 case state is 7 when 0 gt if assume DU then state lt 0 8 else state lt 1 9 end if 10 when 1 state lt 19 11 when 9 gt if assume_2 then state lt 10 12 else state lt 2 13 end if 14 when 10 gt if assume_0O then state lt 11 15 else state lt 12 16 end if 17 when 11 if assume_0O then state lt 0 18 else state lt 1 19 end if 20 when 12 gt state lt 19 21 when 16 gt if assume_0O then state lt 17 22 else state lt 18 23 end if 24 when 17 gt if assume DU then state lt 0 25 else state lt 1 26 end if 27 when 24 gt state lt 9 28 when others state lt state 1 29 end case 30 end if 31 end process Abbildung 4 21 VHDL Implementierung des Kontrollautomaten im Framer Beispiel 136 4 9 Abbildung in Hardware inframe reset 2 inframe inframe idle 2 inframe sync 9 I inframe ane gt 1 Widle 2 reset 2 Wsynce 5 Psync 9 Abbildung 4 22 Teil der Kaskade der Zusicherungen fiir
81. al wp steht zum Freezevariablenschaltsignal in folgender Relation Si Yp time f i Um das allgemeine Signal Yp definieren zu k nnen muss zwischen beiden Automatentypen unterschieden werden Wenn zu einem gegebenen Zeitpunkt der NEA eine bestimmte Anzahl aktivierter Zust nde Saxe besitzt durch den Nichtdeterminismus k nnen mehrere Zust nde zugleich aktiv sein kann das Schaltsignal mit Ant Saxe N Spt 0 f r Anza ermittelt werden d h wenn einer der aktiven Zust nde zu den gesuchten Zust nden z hlt wird das Schaltsignal Wp aktiviert Im DEA gibt es genau einen aktiven Zustand vax der allerdings wiederum aus einer Teilmenge der Zust nde des NEA besteht Damit ist das Schaltsi gnal do Vakt N Sp 0 f r Apea hnlich aufgebaut wie im nichtdeterministischen Fall Damit sind alle Vorraussetzungen f r eine erfolgreiche und schnelle Abbil dung des durch ITL beschriebenen Systems in Hardwarekonstrukte geschaf fen Diese Abbildung soll Thema des n chsten Abschnitts sein 122 4 9 Abbildung in Hardware 4 9 Abbildung in Hardware Um das in den vorhergehenden Abschnitten erzeugte Modell in eine Netz liste f r eine bestimmte Zielplattform z B einen ASIC bzw einen FPGA Bitstrom umwandeln zu k nnen muss es in eine Beschreibungsform ber f hrt werden die von gebr uchlichen Synthesewerkzeugen verstanden wird In dieser Arbeit wurde dazu eine VHDL Beschreibung auf Register Transfer Ebene gew hl
82. alent gleich sind ZN 2 ch z1 SA fsupp z1 fsupp z2 Basierend auf dieser Gleichheit kann nun eine Menge der Aquivalenzklassen aller Zusicherungen definiert werden Zi alle Z deren Elemente alle gleichen Zusicherungen enthalten Diese Elemente z sind wie folgt bestimmt z z2 E Z zi z F r jedes Element z wird w hrend der Generierung der Hardware nur ei ne Hardwarerepr sentation erzeugt Jede Zusicherung z z nutzt dem nach das selbe Ausgangssignal dieser Hardware Die vorliegenden Definitio nen werden in Abschnitt 4 9 4 genutzt um die Zuweisung der Zusicherungen zu vereinfachen Wenn die Freezevariablen mit Hilfe der Registerkettenvariante implemen tiert werden birgt diese Art der Zusammenfassung von Zusicherungshard ware kaum Vorteile Lediglich bei Ausdr cken die ohne Freezevariablen aus kommen kommt es hier zu Einsparungen Wenn allerdings die Eigenschaften sehr lang werden und umfangreiche during Bl cke die Zusicherungen domi nieren kann es zu massiven Verbesserungen des n tigen Ressourcenaufwan des kommen 95 4 Synthese von Operationseigenschaften Theoretisch k nnte das Auffinden dieser Einsparungen auch dem im Ent wurfsfluss nachgeordneten Logiksynthesewerkzeug berlassen werden Da aber allein schon die Laufzeit von vhisyn bzw der Umfang der generierten Hardware zu gro wird ist das Finden quivalenter Zusicherungen in der Pra xis f r viele Beispiele ei
83. alisierte Plattform zur Sensordatenverarbeitung Hierarchical Annotated Action Diagram 11 Abk rzungsverzeichnis HDL HLS IPC ITL LAD LISP LTL LUT MIPS NEA OBE OVA OVL PCI PLB PMA PSL RAM RE RTL SAT SERE SSE 12 Hardwarebeschreibungssprache Hardware Description Language High Level Synthese engl High Level Synthesis Interval Property Checking InterVal Language Leaf Action Diagrams LiSt Processing Linear Temporal Logic Lookup Table Microprocessor without Interlocked Pipeline Stages Nichtdeterministischer endlicher Automat Optional Branching Extension OpenVera Assertions Open Verification Library Peripheral Component Interconnect Processor Local Bus Potenzmengenautomat Property Specification Language Random Access Memory Regular Expression Register Transfer Ebene engl Register Transfer Level Erf llbarkeitsproblem der Aussagenlogik engl Satisfiability Sequential Extended Regular Expressions Professur f r Schaltkreis und Systementwurf Abk rzungsverzeichnis SVA SysML UML VHDL VHSIC SystemVerilog Assertions Systems Modeling Language Unified Modeling Language VHSIC Hardwarebeschreibungssprache Very High Speed Integrated Circuits 13 Vorwort Ich m chte an dieser Stelle vor allem meinem Betreuer Prof Ulrich Heinkel danken der mir an der Professur f r Schaltkreis und Systementwurf SSE die M glichkeit gab diese Arbeit anzufertigen und sie auf inte
84. annahmen f hren zur Beendigung der Eigen schaft und ihrer Nachfolger 2 Nicht erf llte abschliessende Annahmen f hren ebenfalls zur Beendi gung der Eigenschaft und ihrer Nachfolger 3 Erf llte Zwischenannahmen haben keine Auswirkung 4 Erf llte abschliessende Annahmen f hren zur Beendigung aller paral lelen Eigenschaften und ihrer Nachfolger 5 Es muss immer mindestens eine Eigenschaft aktiviert sein W hrend die Kriterien 1 bis 3 selbsterkl rend sein sollten ist eine ge nauere Definition der parallelen Eigenschaften in Kriterium 4 schwieriger Eine Erkl rung gelingt am besten mit Hilfe eines Zustandes aus dem Fra mer Beispiel siehe Abb 4 11 Die Annahmen ao und a sind ebenfalls dem Beispiel entnommen Der Zustand nosync idle hat einen nicht deterministischen bergang in die Zust nde nosync idle sync und nosync idle idle Bei diesem bergang entspricht die Eigenschaftspo sition nosync dem Nachfolger von nosync Zeitkante entsprechend Ab schnitt 4 6 1 In Abb 4 14 kann ausgehend von nosync idle der Ablauf der Eigenschaften f r drei Zeitschritte betrachtet werden Zur selben Instanz einer Eigenschaft geh rende Eigenschaftspositionen sind entsprechend mar kiert und verbunden Die Zust nde nosync idle sync und nosync idle idle werden als parallel bez glich sync oder idle bezeichnet Bez glich idle und nosync sind die beiden Zust nde nicht parallel d
85. aph einer Resampler Komponente In Abb 3 6 ist ein solcher Eigenschaftsgraph f r eine Resampler Kom ponente dargestellt LPH10 Die Reseteigenschaft reset kann von einer idle Eigenschaft oder einer start Eigenschaft gefolgt werden Der Leerlauf des Systems wird dabei durch idle charakterisiert w hrend unter Annahme ei ner Startbedingung die Eigenschaft start aktiviert wird die die Komponente in den eigentlichen Arbeitsmodus berf hrt In diesem kann der Resampler nun in beliebiger Reihenfolge entweder Datens tze lesen read oder schrei ben write Nachdem die zu bearbeitenden Datens tze ersch pft sind kehrt das System wieder zur ck in den Leerlaufmodus idle oder startet sofort die n chste Bearbeitungsrunde start Es ist dabei zu bemerken dass der Eigenschaftsgraph einem Zustandsautomaten hnelt sich aber von ihm in sofern unterscheidet dass die Eigenschaften oft nicht nur einem Takt lang sind wie die Zustands berg nge eines klassischen Automaten So ist in unse rem konkreten Resampler Beispiel die read Eigenschaft zwei Takte lang da das Protokoll des gelesenen FIFO Puffers eine zwei Takte lange Lesesequenz erfordert 3 4 1 Der Eigenschaftsgraph als Kantengraph des Automaten der konzeptionellen Zust nde Es ist dabei anzumerken dass der Eigenschaftsgraph an einen traditionel len Zustandsautomaten erinnert der die Kontrollzust nde des Systems be schreibt HMU06 Die Eigenschaften sind jedoch als berg nge zwisc
86. ardwarebeschreibung der bitAdder Funktion Zeitdiagramm der PCI Leseoperation VHDL Prozess mit mehreren wait Anweisungen Vollst ndiger formaler Verifikationsfluss Syntax einer ITL Eigenschaften ITL Makros zur Quadratwurzelberechnung M gliche C Implementierung zur Quadratwurzelberechnung Makro zum Umkehren der Reihenfolge eines Bitvektors Eigenschaftsgraph einer Resampler Komponente M glicher Zustandsgraph einer Resampler Komponente Eigenschaftsgraph des Resampler Beispiels Strukturbeschreibung in einer Vollst ndigkeitsbeschreibung Struktur des Resamplers mit und ohne Hierarchie Nicht implementierbare Eigenschaftsmenge Grundlegender Entwurfsfluss aus Operationseigenschaften Hardwaremodells einer vollst ndigen Eigenschaftsmenge Freezevariable mit Registerkettenimplementierung Freezevariable mit Implementierung anhand der Periode Speichern einer Freezevariable 2 22222022 Hardware einer Annahme die zu drei Zeitpunkten aktiv ist Komponente Framer mit Eigenschaftsgraph und grenzen Abgerollter Eigenschaftsgraph der Komponente Framer Endlicher Automat zur Erkennung von cat und cow Menge der Nachfolger eines Zustands 49 52 57 58 59 60 61 63 64 66 72 73 75 86 87 88 91 97 98 99 102 189 Abbildungsverzeichnis 190 4 11 4 12
87. are Entw rfe in mehreren Ebenen zu erlauben Ohne Hierarchie w rde man nichts an Ausdrucksst rke verlieren aber viel an bersichtlich keit In Abb 3 10 ist die Struktur des Resamplers schematisch abgebildet Dabei entspricht Abb 3 10 b der textuellen Beschreibung in Abb 3 9 Die so dargestellte Verschachtelung ist auch in mehrstufiger Form m glich 65 3 Operationseigenschaften als vollst ndige Verhaltensbeschreibung resampler resampler z 1 a ohne Hierarchie b mit Hierarchie Abbildung 3 10 Struktur des Resamplers und der Unterkomponente randgen mit und ohne Hierarchie 3 5 4 Externe VHDL Modelle Wenn die instanziierte Komponente allerdings eine existierende VHDL Beschreibung ist muss diese zus tzlich dem Synthesewerkzeug bekannt ge macht werden Dies geschieht durch die Definition einer completeness An weisung die nur einen einzelnen structure Abschnitt enth lt der die nach au en sichtbare Schnittstelle der VHDL Komponente beschreibt Zus tzlich muss jedoch noch eine Zeile reference external in die completeness Definition eingef gt werden Diese Zeile macht den Syn theseprozess darauf aufmerksam dass sich hinter diesem Modul eine VHDL Beschreibung versteckt die damit entsprechend im generierten Kode instan ziert wird 3 5 5 Verkn pfungen von Signalen Um hierarchische Beschreibungen effektiv nutzen zu k nnen m ssen die Sig nale zwischen zwei Unterkomponenten oder zwischen Unterkomp
88. ariablen 3 2 3 Annahmen und Zusicherungen 3 2 4 Grenzen der Eigenschaft 11 15 17 17 18 19 20 23 23 24 27 30 32 34 37 37 38 40 42 43 44 45 Inhaltsverzeichnis 3 2 5 Weitere Abschnitter 54 3 3 Makros nun chat rer arten ae 55 3 3 1 Operandenwachstum 2 a 56 3 3 2 Rekursionstiefe anr u war Soe er ee 57 3 3 3 Sequentielle Makros 0 4 58 3 4 Eigenschaftsgraph 2 22 on 59 3 4 1 Der Eigenschaftsgraph als Kantengraph des Automa ten der konzeptionellen Zust nde 60 3 4 2 Darstellung in InterVal Language ITL 62 3 5 Beschreibung der Komponentenschnittstelle 63 3 9 1 Barameter an u ua Jo pe rate 64 39 2 Signale x a na Sat hes a Een ann 65 Sch Hierarchies u Auge Kor ee Bi ehe en 65 3 5 4 Externe VHDL Modelle 2 2 2222 66 3 5 5 Verkn pfungen von Signalen 2 2 2 2 66 3 6 Vollst ndigkeitspr fung 2 22 une 67 3 6 1 Vollst ndigkeit 67 3 6 2 Fallunterscheidungstest 22 2222 67 3 6 3 Nachfolgertest 68 3 6 4 Determinierungstest 2 2 222mm 68 3 6 9 Resettestsr n 5 ara EE wea se oa ead A 69 3 6 6 Triviald sign 2 na EE Ee ae 69 3 6 7 Konzeptionelle Zust ande 70 3 6 8 Implementierbarkeit 70 4 Synthese von Operationseigenschaften 73 4 1 berblick ber den Synthesevorgang 73 4 1 1 Details von Pha
89. as System selbst beschreibt Die Beziehungen zwischen den Aktionen stel len jeweils einen kausalen Zusammenhang dar d h eine Aktion kann eine andere ausl sen Zus tzlich muss ein Intervall angegeben werden in dem die zweite Aktion auf die erste folgt Jede dieser Beziehungen kann entweder als assume commit oder requirement klassifiziert werden Durch diese forma le Notation kann das Verhalten eines Zeitdiagramms mathematisch erfasst werden Weiterhin k nnen mehrere LAD zu einem Hierarchical Annotated 44 2 4 Operationen als Verhaltensbeschreibung Action Diagram HAAD zusammengefasst werden Dieses verkn pft einzel ne LAD durch vier m gliche Operatoren 1 Der Verkettungsoperator Ae B dr ckt aus dass LAD B unmittelbar nach dem Ende von LAD A gestartet wird 2 Schleifen k nnen mit Hilfe des Operator A definiert werden der A solange hintereinander ausf hrt bis eine exit Bedingung erf llt ist 3 Der Operator f r Nebenl ufigkeit wird durch A B beschrieben und sagt aus dass A und B beide parallel ausgef hrt werden 4 Letztendlich bietet der Auswahloperator A B eine Verzweigung bei der zwar beide LAD parallel gestartet werden jedoch nur eines erfolg reich beendet werden darf Im Wesentlichen entspricht diese Beschreibung den M glichkeiten die der Eigenschaftsgraph bietet In den verf gbaren Ver ffentlichungen wird nicht auf eine formale Vollst ndigkeitspr fung eingegangen Ansonsten hat dieser Ansatz v
90. at wie auf niedrigeren Ebenen Die Vorteile des operationsbasierten Entwurfs liegen klar auf der Hand Die Entwurfsebene befindet sich zwischen Register Transfer und algorithmischer Ebene und ist deshalb zum einen f r Anwendungsgebiete die taktgenaue Schnittstellen erfordern sehr gut geeignet Zum anderen kommt die Beschrei bung der Funktionalit t mit Hilfe von Operationen den in der Spezifikation verwendeten Zeitdiagrammen sehr nahe und senkt damit den Entwurfsauf wand der durch Verfeinerungsschritte entsteht Den gr ten Vorteil bietet jedoch die Vollst ndigkeitspr fung der Eigen schaftsbeschreibung Sie kann bereits in einem fr hen Entwurfsstadium in den Designprozess einbezogen werden und hilft dabei Fehler fr hzeitig zu vermeiden 6 6 Visualisierung des Zwischenformats Die Beschreibung eines Entwurfs mit Hilfe von Operationseigenschaften er folgt auf einer Ebene die sich zwischen Register Transfer und algorithmi scher Ebene befindet Da der Entwerfer die interne Funktionsweise von vhisyn nicht im Detail kennt kann es sich als n tzlich erweisen wenn er Zugriff auf die generierten Strukturen auf RT Ebene hat Der erzeugte VHDL Kode ist jedoch sehr umfangreich und un bersichtlich Aus diesem Grund wurde im Rahmen dieser Arbeit eine Visualisierungsplattform f r das Zwischenformat entsprechend Abschnitt 4 1 geschaffen Sie liest eine db Datei mit einem erzeugten Modell ein und stellt die Strukturen graphisch mit der Visualis
91. ationseigenschaften als Entwurfsmethodik zu etablieren In dieser Arbeit wurden Algorithmen vorgestellt und untersucht um aus dem Eigenschaftsgraph einer vollst ndi gen Beschreibung einen nichtdeterministischen oder deterministischen Kon trollautomaten zu konstruieren Weitere Untersuchungen zeigen die effiziente Abbildung der wesentlichen Konstrukte von ITL Die High Level Synthese aus einer Eigenschaftsmenge bietet zwei wesent liche Vorteile Zum einen hilft der Beweis der Vollst ndigkeit dabei Fehler in der Entwurfsphase zu vermeiden zum anderen ist der Entwurf eines Sys tems mit Hilfe von Operationen in verschiedenen Anwendungsbereichen sehr vorteilhaft Insbesondere Komponenten die Protokolle mit langen Sequen zen implementieren k nnen durch Operationseigenschaften sehr komforta bel dargestellt werden Neben dem Operationsgedanken stellt der Entwurf der Datenflussfunktionalitat mit ITL Makros und ihrem funktionalen Be schreibungsstil im Gegensatz sowohl zu algorithmischen Beschreibungen aus imperativen Programmiersprachen wie C oder Matlab als auch zu den ein geschr nkten M glichkeiten auf RT Ebene eine komfortable Alternative dar Das im Rahmen dieser Arbeit entstandene prototypische Entwurfswerk zeug vhisyn wurde anhand zweier komplexer Fallstudien untersucht und die 175 7 Schluss Ergebnisse hinsichtlich ihrer Ressourcenauslastung und maximalen Taktfre quenz verglichen Auch die Laufzeit der Synthese f r unterschiedl
92. auf einen Startzeitpunkt der meist auf den Resetzustand des Systems gesetzt wird e Die nichttemporalen Operatoren V A und verkn pfen beliebige LTL Formeln und beziehen sich immer auf den aktuellen Zeitpunkt e Mit Hilfe des globally Operators Gp kann gepr ft werden ob p begin nend mit dem aktuellen Zeitpunkt immer wahr ist e Der eventually Operator F p beschreibt dass p entweder zum aktuellen oder irgendeinem zuk nftigen Zeitpunkt wahr ist e Der next Operator Xp dr ckt aus dass der Ausdruck p zum darauf folgenden Zeitpunkt wahr ist e Letztendlich kann durch den until Operator pUg ausgedr ckt werden dass p solange wahr bleiben soll bis zu einem Zeitpunkt in der Zukunft q erf llt ist Computation Tree Logic LTL kann nur eine fortlaufende nicht verzweigende Zeit darstellen Im Ge gensatz dazu gibt es verzweigende temporale Logiken BMP81 Mit der Computation Tree Logic CTL wurde in EH82 eine verzweigende Logik vorgestellt die jedem der bereits eingef hrten LIL Operatoren einen von zwei Pfadquantoren E oder A voransetzt Dabei steht E exists f r es gibt einen Pfad und A always f r entlang aller Pfade Die Verbindung die ser Quantoren mit den Operatoren globally und eventually ist in Abb 2 3 veranschaulicht 29 2 Grundlagen temporaler Eigenschaften und ihrer Synthese a Ga Fa Xa ab OOOO Abbildung 2 2 Graphische Darstellung von fiinf einfachen LTL Formeln de ren boolesche Teilaus
93. automat PMA repr sentieren jeweils eine Menge von Zust nden des NEA Wenn sich der PMA im Zustand 12 befindet und da es ein DEA ist kann kein anderer Zustand gleichzeitig aktiviert sein bedeutet dies dass sich der entsprechende DEA sowohl in Zustand 1 als auch in Zustand 2 befindet Im schlimmsten Fall alle Zust nde sind erreichbar hat der PMA demnach 27 EI Zust nde Die bergangsbedingungen m ssen bei der Aufl sung des Determinismus komplett auskodiert werden d h f r jede Kombination von bergangsbe dingungen die auf ausgehenden Kanten eines der entsprechenden Zust nde des NEA auftreten muss eine neue Kante im PMA hinzugef gt werden So muss im Beispiel der Zustand 12 alle ausgehenden Kanten von 1 und von 2 ber cksichtigen Diese sind 1 1 1 1 c 2 2 a 3 NEA wobei die Tupel wie gewohnt Startzustand bergangsbedingung Endzu stand repr sentieren Der bedingungslose bergang ist durch eine 1 logisch wahr an zweiter Stelle des Tupels gekennzeichnet Die beiden bergangsbe dingungen c und a erlauben nun wieder 4 ausgehende Kanten im DEA 12 a 1 12 ca 12 12 ca 13 12 ca 123 pma 111 4 Synthese von Operationseigenschaften 4 7 2 Erreichbarkeit im Potenzmengenautomaten Die Konstruktion des vorgestellten Beispiel PMA illustriert einen wichtigen Punkt Viele der Kanten im PMA sind nicht erreichbar denn bei exakter Betrachtung f llt auf dass diese Kanten mehrere gleichzei
94. beschreibung Der Ausdruck darf dabei nur von Signalwerten abh ngen die zu einem Zeitpunkt gelesen wurden der vor dem Zeitpunkt der Zusicherung liegt Dies stellt die gr te Einschr nkung von synthesef higen Eigenschaften gegen ber der allgemeinen Form in der Verifikation dar In Abschnitt 5 1 4 wird dieses Problem noch einmal ausf hrlicher untersucht 3 2 4 Grenzen der Eigenschaft Der letzte f r die Synthese relevante Abschnitt einer Eigenschaft ist die De finition der Grenzen der Eigenschaft Die Vollst ndigkeit eines Eigenschafts satzes h ngt davon ab dass die Eigenschaften sequentiell verkettet werden k nnen und dabei keine zeitlichen L cken in der Beschreibung auftreten Da zu ist es notwendig f r jede Eigenschaft einen Beginn left__ hook zu definie ren der angibt welches der erste Takt nach dem Ende der vorangegangenen Eigenschaft ist Dieses Ende einer Eigenschaft wird durch den right_ hook angegeben Dabei ist zu beachten dass der right__hook der einen Eigen schaft dem left__hook der darauf folgenden entspricht sich diese also streng genommen um einen Takt berlappen Jede Eigenschaft muss ihren jeweili gen right__hook festlegen und mit Ausnahme der R cksetzeigenschaft muss auch der left__hook definiert sein Der Beginn der R cksetzeigenschaft ist impliziert auf den Zeitpunkt t gelegt Die Festlegung eines left_ hook bzw right_ hook in einer Eigenschaft schr nkt nicht ein zu welchen Zeitpunkten Annahmen und
95. besonderes Augenmerk auf die Synthese von sehr langen Eigenschaften gelegt da diese den Entwurf einiger Anwendungsfalle wie bspw rahmenorientierter Kommunikationsprotokolle stark vereinfachen 1 4 Aufbau der Arbeit In Kapitel 2 werden zum einen die wichtigsten Einflussfaktoren und theoreti schen Grundlagen dieser Arbeit behandelt Zum anderen werden verwandte Arbeiten vorgestellt und mit den in dieser Arbeit vorgestellten Ans tzen ver glichen Im darauf folgenden Kapitel 3 werden die Struktur und der Aufbau von ITL Eigenschaften erl utert Neben den syntaktischen Ausf hrungen werden auch die formalen Vollst ndigkeitspr fungen kurz eingef hrt Dies bildet die Grundlage um die in Kapitel 4 pr sentierten Synthesealgorithmen verstehen zu k nnen Die Definition eines nichtdeterministischen und eines determinis 20 1 4 Aufbau der Arbeit tischen Kontrollautomaten werden ebenso beschrieben wie die anschliessende Abbildung in Hardwarekonstrukte Es gelten verschiedene Anforderungen an eine synthesef hige ITL Beschreibung Diese Anforderungen werden in Kapitel 5 untersucht Dazu z hlen zum einen technische Einschr nkungen da nicht alle ITL Konstrukte unterst tzt werden und zum anderen Anforderungen an den Beschreibungs stil damit die Synthese von Operationseigenschaften nicht nur technisch moglich sondern auch aus Sicht des Entwerfers sinnvoll ist Die Anwendung der vorgestellten High Level Synthese Methodik auf zwei Anw
96. bh ngigkeit des logischen Wertes nur die richtige Verzweigung zu w hlen Algorithmus Die Auswertung eines Ausdrucks ist eine der elementaren Routinen in vhisyn Sie basiert auf zwei zentralen Stapelspeichern dem Ausdruckstapel und dem Ergebnisstapel Die Eintr ge des Ausdruckstapels bestehen aus einem Tupel von Ausdruck in Form des zugeh rigen abstrakten Syntaxbaumes AST und der Zeitdom ne des Ausdrucks Im Gegensatz dazu besteht der Ergeb nisstapel aus Tupeln die sich aus Signalen Netz ID und konkreten Signal werten zusammensetzen Der Wert ist im Falle eines konstanten Ausdrucks eben diese Konstante Falls keine konstante Auswertung m glich ist wird der Wert onbekannt verwendet Anfangs wird der gesamte auszuwertende Ausdruck zusammen mit der geforderten initialen Zeitdom ne auf dem Ausdruckstapel abgelegt Im wei teren Verlauf wird immer der oberste Ausdruck von diesem heruntergenom men und ausgewertet Dabei werden neu entstehende Teilausdr cke auf den Ausdruckstapel gelegt oder Ergebnisse in Form von Signal Wert Paaren vom Ergebnisstapel heruntergenommen bzw daraufgelegt Je nach Art des obersten Ausdrucks finden verschiedene Operationen statt Im folgenden sollen diese Operationen aufgef hrt werden wobei jeweils nur die wichtigsten Aufgaben beschrieben sind e F r Konstanten wird die entsprechende Hardwarekonstante angelegt und das entstehende Signal sowie der Wert der Konstante auf den Er gebnisstapel gelegt
97. cation Language PSL IEEE05b und die als Teil von SystemVerilog entstandenen SystemVerilog Assertions SVA IEEE05a PSL entstand urpr nglich bei IBM als Eigenschaftssprache Sugar Es wur de der Standardisierungsorganisation Accellera Acc11 f r eine m gliche Standardisierung bergeben Dabei wurden die LIL Operatoren durch be nutzerfreundlichere Schl sselworte wie always und eventually ersetzt PSL kann jedoch nicht nur LTL Formeln darstellen sondern zus tzlich auch re 30 2 2 Eigenschaftsbasierte Verifikation a AGa a gilt immer b AFa in jedem Pfad gilt a irgendwann einmal c EGa es gibt einen Pfad d EFa es gibt einen Pfad in dem a immer gilt in dem a irgendwann ein mal gilt Abbildung 2 3 Vier Grundoperatoren von CTL in deren Berechnungsbaum die Zust nde in denen a gilt markiert sind BZ08 gul re Ausdr cke als Sequential Extended Regular Expressions SERE und CTL Formeln in Form der Optional Branching Extension OBE In welchem Umfang und f r welche Verwendungsm glichkeiten einzelne Konstrukte der Sprache unterst tzt werden unterscheidet sich h ufig zwischen einzelnen An wendungen und Implementierungen Die zweite verbreitete temporale Sprache ist SVA Sie kann vor al lem Sequenzen beschreiben die hnlich regul ren Ausdr cken sind LTL Operatoren sind f r eine Aufnahme in den Standard geplant SVA eignet sich dadurch im Moment vor allem f r die dynamische Verifikation W
98. ch der beschriebenen Verfahren sowie Ressourcenverbrauch und Zeitverhalten der erzeugten Schaltungen be wegen sich f r die meisten praktischen Anwendungsf lle im akzeptablen Rahmen d h es tritt keine exponentielle Zunahme dieser Kenngr en auf Konzeptionelle Zust nde Die bei der formalen Verifikation von Operationseigenschaften notwen digen konzeptionellen Zust nde die den bergang zwischen zwei Ei genschaften darstellen k nnen bei der Synthese entfallen Eigenschaftspr fung Der erzeugte Schaltkreis kann mit Hilfe der f r die Synthese verwen deten Eigenschaften formal verifiziert werden Dadurch werden die An nahmen aus These 4 formal berpr ft und eventuelle Fehler im Syn theseprozess ausgeschlossen Logiksynthese Die auf der erzeugten Schaltkreisbeschreibung durchgef hrte Logiksyn these muss insbesondere die Verfahren des Retiming und des Resource Sharing beherrschen um einen effizienten und ressourcenschonenden Schaltkreis zu erm glichen
99. chaft und end__eigenschaft per Hand eingef gt werden Der Syntheseprozess ignoriert diese Platzhalter und erzeugt als Nebenprodukt der Hardware deren Definition in Form von ITL Makros Damit ist eine Verifikation des erzeugten Designs m glich Es sollte allerdings beachtet werden dass diese Verifikation nur Fehler von vhisyn finden wird da sowohl Eigenschaften als auch generiertes Design aus der gleichen Quelle stammen Das bei der typischen formalen Verifikation von Eigenschaften so wichtige Vier Augen Prinzip Eigenschaften und De sign werden getrennt erstellt kann nicht angewendet werden In Abschnitt 153 5 Anforderungen an eine synthesef hige Eigenschaftsbeschreibung 6 1 1 wird das Verfahren und der Prozess der Makrogenerierung genauer un tersucht 154 6 Ergebnisse Dieses Kapitel beschreibt den Einsatz von vhisyn als Entwurfswerkzeug und die dabei erarbeiteten Ergebnisse Zuerst wird die Verifikation eines erzeugten Designs anhand der zugrunde liegenden Eigenschaften erl utert Ein weiterer Punkt ist das Zusammenspiel zwischen der High Level Synthese und der an schliessenden Logiksynthese Es wird die bei der Logiksynthese erforderliche Funktionalit t beschrieben die n tig ist um ITL Beschreibungen effizient in Hardware umzusetzen Schlie lich werden zwei Fallstudien vorgestellt die unterschiedliche Aspek te eines Entwurfs beleuchten Zum einen konnte eine ITL Beschreibung eines Partikelfilters erstellt werd
100. chen wie Haskell LISP und Erlang entstanden sind Das besondere an funktionalen Sprachen ist ihre v llige Freiheit von Seiten effekten innerhalb von Funktionen Wenn eine Variable einmal einen Wert zugewiesen bekommen hat ndert sich dieser w hrend der Programmlauf zeit nicht mehr Diese Seiteneffektfreiheit hat verschiedene Vorteile So sind funktionale Programme besser verifizierbar da ihre Definition einer Funkti on mehr der mathematischen Sichtweise entspricht als die der imperativen 40 2 3 High Level Synthese Programmierung Der Aufruf einer Funktion ergibt bei gleichen Argumenten immer das selbe Ergebnis Damit lassen sich bspw mathematische Beweise der Korrektheit eines Algorithmus f hren Weiterhin ist die sogenannte lazy evaluation m glich die die Auswertung eines Funktionsargumentes erst dann veranlasst wenn es in einem anderen Ausdruck ben tigt wird Bei der Synthese eines funktionalen Programms in synchrone Hardware k nnen die benutzten Variablen direkt in Signale und die eingesetzten Ope ratoren in Hardware Funktionseinheiten bersetzt werden In She05 wird ein berblick ber den Stand der Technik bei der Beschreibung und Veri fikation von Hardwareschaltkreisen mit Hilfe funktionaler Programmierung gegeben Erw hnenswert ist die Sprache uFP die in She84 f r die Synthe se von Hardware eingesetzt wurde Sie basiert auf Arbeiten von Bac78 in denen funktionale Sprachen als eine L sung f r viele Proble
101. chnen und diesen zu quadrieren Mit Hilfe des let Operators ist dies m glich wie das folgende Makro zeigt macro square_diff a b numeric numeric let t a b in t zt end let end macro In der gegenw rtigen Version von vhisyn ist dieser Operator nicht imple mentiert da das gleiche Ergebnis auch erzielt werden kann indem ein zweites Makro definiert wird welches lediglich dem Zweck dient in seinen Argumen ten das Zwischenergebnis abzuspeichern macro square t numeric numeric 145 5 Anforderungen an eine synthesef hige Eigenschaftsbeschreibung t zt end macro macro square_diff a b numeric numeric square a b end macro Zeitliche Ausdr cke Zeitliche Ausdr cke bzw Anweisungen k nnen jeweils im Annahmen oder Zusicherungsteil einer Eigenschaft auftauchen Dazu geh ren bspw die bei den Schl sselw rter at und during welche von vhisyn unterst tzt werden und bereits in vorangegangenen Kapiteln vorgestellt wurden Im Gegensatz dazu existieren einige Anweisungen die nicht unterst tzt werden und vor al lem dazu dienen verschiedene Verhaltensweisen innerhalb einer Eigenschaft anzubieten F r detailliertere Beschreibungen dieser Operatoren sei auf das Benutzerhandbuch von OneSpin 360MV verwiesen OSS09 e Die Anweisung either stellt zwei oder mehr alternative zeitliche Aus dr cke bereit von denen nur einer erf llt sein muss Dies kann genutzt werden um verschiedene Szena
102. dabei nicht notwendig Falls die Pr fung des Erf llbarkeitsproblems erfolgreich durchgef hrt wur de ist die Eigenschaft im Gegensatz zu BMC unter allen Umst nden erf llt Bei einer gescheiterten Pr fung kann entweder ein Fehler im Design vorliegen oder das erzeugte Gegenbeispiel geht nicht von einem erreichbaren System zustand aus Abhilfe schafft hier die zus tzliche Definition von Invarianten in ITL assertions genannt die der Pr fung Erreichbarkeitsinformationen zur Verf gung stellen Die Automatisierung dieses Prozesses ist Gegenstand aktueller Forschung Ngu 08 Speicher a Schematische Darstellung eines synchronen Ent wurfs Eo gl Ex Es So puvo Ss Du S25 puv S24 DU S Aol A Aol ad D Y Y Y Eigenschaft lo b ber vier Zeitschritte abgerolltes Design mit verkn pfter Eigen schaft Abbildung 2 4 Interval Property Checking In Abb 2 4 ist dieses Verfahren graphisch dargestellt Ein synchrones De sign enth lt einen kombinatorischen Block und Speicherelemente Die Ein g nge E und der gegenw rtige Systemzustand S werden vom kombinato rischen Block verarbeitet An den Ausg ngen A und dem Folgezustand Si stehen noch im selben Zeitschritt neue Werte bereit Die Speicherelemen te verz gern und speichern den Folgezustand sodass er im n chsten Zeit 36 2 3 High Level Synthese punkt den gegenw rtigen Zustand S darstellt F r das I
103. darstellen Insbesondere bei der Behe bung von Fehlern stellen formal exakt definierte Eigenschaften eine weitaus 26 2 2 Eigenschaftsbasierte Verifikation bessere Spezifikation dar als Textpassagen die oft nicht eindeutig formuliert sind Es stellt sich bei der eigenschaftsbasierten Verifikation die Frage wann das Verifikationsteam gen gend Eigenschaften formuliert und gepr ft hat sodass alle Aspekte des Verhaltens abgedeckt engl coverage sind In CKV01 wird eine Abdeckungsmetrik definiert die diejenigen Zust nde als nicht abgedeckt betrachtet die gel scht werden k nnen ohne dass die Spezifikation in Form der Eigenschaftsmenge verletzt wird Ein sehr weit entwickelter Ansatz der auch die Basis dieser Arbeit bildet ist die GapFree Verification von OneSpin Solutions OSS10 Dabei werden Eigenschaften als sequentiell ablaufende Operationen betrachtet die jeweils das Ausgangsverhalten eines Moduls w h rend der gesamten Dauer der Operation l ckenlos beschreiben Gleichzeitig existiert ein Verfahren um zu pr fen ob zwischen den Operationen L cken auftreten Diese Tests zusammengenommen erbringen den Nachweis dass die Eigenschaftsmenge f r jede m gliche Eingangsfolge exakt eine Abfolge von Operationen bestimmt die wiederum das Ausgangsverhalten l ckenlos definieren Damit kann es nicht mehr passieren dass Eigenschaften verges sen und mehrdeutig spezifiziert werden Es kann jedoch weiterhin falsches Verhalten in
104. das Ausgangssignal inframe im Framer Beispiel die Vollst ndigkeitstests die Konsistenz der Eigenschaften pr ft und durch einen formalen Nachweis der Eigenschaften auf dem erzeugten Entwurf die Realisierbarkeit ermittelt Mehrfach Multiplexer Die Performance der Hardware kann jedoch durch die Reihenfolge beein flusst werden da das nachgelagerte Logiksynthesetool die gesamte Kaskade je nach Reihenfolge unterschiedlich optimiert Wenn die Reihenfolge ung nstig gew hlt wurde k nnen unter Umst nden Optimierungsm glichkeiten nicht erkannt werden Einen Beitrag zur Umgehung des Problems bietet die Erset zung der Multiplexer Kaskade durch einen einzelnen Mehrfachmultiplexer der mit Hilfe von n Auswahlsignalen einen der n Dateneing nge durchschal tet Welcher Eingang gew hlt wird wenn mehrere Auswahlsignale aktiviert sind ist dann ein Freiheitsgrad des Multiplexers Belegung des Alternativwertes Bei beiden Implementierungen sowohl der Multiplexer Kaskade als auch des Mehrfachmultiplexers muss der Fall beachtet werden dass keines der Aus wahlsignale aktiv ist Bei erfolgreichem Determinierungstest kann diese Si tuation bei internen Signalen auftreten da diese nur zu denjenigen Zeitpunk ten bestimmt sein m ssen zu denen sie auch genutzt werden Weiterhin kann auch eine bedingte Determiniertheit von Ausgangssignalen vorliegen sodass 137 4 Synthese von Operationseigenschaften nicht immer eine der Zuweisungen aktiv ist
105. das Verfahren Multiple Hot Kodierung nennen Die Einsatzgebiete umfassen unter anderem die Synthese von Auto maten zur Erkennung von regul ren Ausdr cken SP01 sowie die Abbildung von nichtdeterministischen Automaten in der High Level Synthese von Pro tokollspezifikationen Sie05 In Abb 4 19 wird die Multiple Hot Kodierung f r den bereits in Abb 4 9a dargestellten NEA gezeigt Man kann erkennen dass das Verfahren f r jeden Zustand s exakt ein Register R s erzeugt Die Zustands bergangsfunktion 130 4 9 Abbildung in Hardware d H success Abbildung 4 19 Multiple Hot Kodierung des NEA zur Erkennung der Zei chenketten cat oder cow im Eingabestrom muss f r jedes Register einzeln errechnet werden Der n chste Wert R s ergibt sich zu u o u o s E R s V R u Ao uo Dabei wird f r jede Transition die den Zustand s zum Ziel hat das Re gister des Vorg ngerzustands u mit der bergangsbedingung o konjunktiv verkn pft Diese Verkn pfungen werden dann wiederum disjunktiv mitein ander verschalten Durch dieses Verfahren kann ein beliebiger NEA direkt in eine entspre chende Hardwarerepr sentation berf hrt werden die den NEA emuliert Es werden dabei genauso viele Register ben tigt wie der NEA Zust nde hat Die Implementierung kann als geschicktes Verfahren zur direkten Abbildung der Bin rkodierung des Potenzmengenautomaten verstanden werden bei
106. der der Potenzmengenautomat nicht konstruiert werden muss Das lineare Wachstum der Anzahl Register mit der Anzahl Zust nde ist jedoch in vielen F llen ung nstig So k nnen Eigenschaftss tze mit sehr lan gen Eigenschaften bspw 1000 Takte oder mehr in einer sehr gro en Anzahl Register resultieren Die entstehende Hardware kann von einem modernen Synthesetool nur noch schwer erfasst und vor allem optimiert werden Das war am Anfang der Entwicklung von vhisyn der Hauptgrund f r die Suche nach dem Verfahren zur Generierung des deterministischen Automaten vgl Abschnitt 4 7 131 4 Synthese von Operationseigenschaften 4 9 3 Abbildung des deterministischen Automaten Im Gegensatz zum nichtdeterministischen Automaten ist die Abbildung des DEA sehr einfach m glich Es wird nat rlicherweise eine Bin rkodierung ver wendet da im Falle einer One Hot Kodierung aufgrund des h heren Register verbrauchs die Vorteile der Konstruktion des DEA entsprechend Abschnitt 4 7 nicht zum Tragen kommen Eine weitere Frage bleibt jedoch offen Es muss die exakte Zuordnung von Registerbelegungen zu Zust nden gefunden werden Dabei ist es hilfreich die Registerbelegung als numerischen Wert zu betrachten Dieser numerische Wert der Registerbelegung eines Zustands v V wird im Folgenden als num v bezeichnet Die numerische Betrachtung erm glicht wiederum einige Opti mierungen die insbesondere bei langen Eigenschaften eine deutlich effizien
107. deren Instanziierung in bergeordneten Modulen erreicht ITL sieht eine sol che rekursive Schachtelung von Modellen nicht vor und ben tigt diese im Grunde auch nicht um eine formale Verifikation durchzuf hren Die Festle gung der Vollst ndigkeits Cluster kann v llig losgel st von der Hierarchie der Hardwarebeschreibung sein Wenn eine Eigenschaftsbeschreibung jedoch zum Entwurf von Komponenten und nicht zur formalen Verifikation verwendet werden soll muss die M glichkeit einer hierarchischen Struktur vorgesehen werden In der beschriebenen erweiterten ITL Syntax wird dies in den struc ture Abschnitt eingebettet Man kann darin mit dem Schl sselwort compo nent eine andere Komponente im aktuellen Modul instanziieren Dies kann entweder eine weitere vollst ndige ITL Beschreibung sein oder auch ein be reits existierendes VHDL Modul So k nnen beispielsweise Speichermodelle oder Cores zur effizienten Berechnung von arithmetischen oder trigonome trischen Funktionen in ein Eigenschaftsmodell eingebunden werden Der Na me der Instanz steht vor dem Doppelpunkt w hrend der Modulname der Unterkomponente dem Schl sselwort component folgt Die Unterscheidung zwischen Modul und Instanzname erfolgt dabei analog zu VHDL Die Einf hrung von Komponenteninstanziierungen innerhalb einer ITL Beschreibung ndert strukturell nichts an dem zu synthetisierenden Modell Es wird lediglich eine Verschachtelung der Modelle vorgenommen um wie derverwendb
108. die Verschiebung der Annahme einen Konflikt der Zuweisungen Diese weiteren Einschr nkungen werden in den folgenden Abschnitten n her untersucht next in Zusicherungen Im Gegensatz zu Annahmen k nnen Zusicherungen auf keinen Fall zeitlich verschoben werden Aus diesem Grund sind next Operatoren in Zusicherun gen nicht durch Verschieben der gesamten Zusicherung aufl sbar In der Praxis treten F lle auf in denen eine Verschiebung aller Ausg n ge der Komponente m glich ist was die Latenz des Systems erh hen w rde Diese gleichzeitige Verz gerung aller Ausg nge l sst prev Operatoren entste hen die wiederum zur Aufhebung von next verwendet werden k nnen Ohne zus tzliche Informationen ber das gew nschte Ein und Ausgangsverhalten ist ein solcher Schritt jedoch nicht automatisch durchzuf hren Fazit Zusammenfassend kann gesagt werden dass next Operatoren immer dann nicht zu implementieren sind wenn sie vorhersagendes Verhalten erfor dern d h das System ben tigt Informationen ber Eingangssignale zu einem Zeitpunkt in der Zukunft Alle anderen F lle in denen der Operator zwar benutzt wird aber kein zuk nftiges Verhalten vorhergesagt werden muss k nnen nach den oben beschriebenen Verfahren aufgel st werden Da die Notwendigkeit solcher Anwendungen von next jedoch sehr beschr nkt ist wird der Operator in vhisyn komplett zur ckgewiesen 144 5 1 Technische Einschr nkungen 5 1 3 Weitere nicht unter
109. die bereits gefunden aber noch nicht bearbeitet wurden Die Schleife in den Zeilen 11 bis 13 kann optimiert werden da bei ei ner Hardwareabbildung die bergangsbedingungen nicht auskodiert werden m ssen sondern eine Konjunktion der Annahmen in gs ausreicht In Alg 4 2 ist der Pseudokode f r die Berechnung der Funktion succ s abgebildet Die Zeilen 3 bis 12 berechnen die Funktion succ p f r jede Eigen schaftsposition p in s Das Resultat wird in der Variable m gespeichert und in den Zeilen 14 bis 20 mit dem Zwischenergebnis s multipliziert entspre 2 Je nach Implementierung kann in Zeile 4 entweder das zuletzt oder das zuerst zu Q hinzugef gte Element gew hlt werden Ersteres f hrt zu einer Tiefensuche w hrend letzteres zu einer Breitensuche f hrt 105 4 Synthese von Operationseigenschaften Algorithmus 4 2 Eine m gliche Implementierung der Nachfolgerfunktion succ s 1 sic 0 2 for all p s do 3 if t 1 right p then A m N 5 for allge P p q Ep do 6 me mU p tt defy 7 end for 8 else if 1 lt last p then met 10 else 11 m 0 12 end if 13 14 s 4 0 15 for all si s do 16 for all m m do 17 s 4 s U 5 U mi 18 end for 19 end for 20 s s 21 end for 22 return s chend der Operation s xm Nach Abarbeitung aller Eigenschaftspositionen wird s als Endergebnis zur ckgegeben Der Algorithmus von succ s
110. die mathematische Pr fung der Unabh ngigkeit mehre rer Annahmen einige wichtige Aussagen getroffen werden die sich direkt aus der Struktur der Eigenschaften und des Eigenschaftsgraphen herleiten Dazu m ssen die Gesamtannahmen in zwei Gruppen unterteilt werden Im weite ren Verlauf wird vereinfachend von Annahmen anstelle von Gesamtannahmen gesprochen Zum einen wird die letzte Annahme einer jeden Eigenschaft als abschliessende Annahme bezeichnet und in die Menge Ar api e Hap A j All eingetragen Zum anderen werden alle nicht zu Ar z hlenden Annahmen als Zwischenannahmen Ar Ar bezeichnet 112 4 7 Konstruktion eines deterministischen Kontrollautomaten 4 7 4 Kriterien zur Aufl sung des Nichtdeterminismus Diese Unterscheidung hat den Hintergrund dass bei der Auswertung von bei den Annahmetypen unterschiedlich vorgegangen werden muss W hrend die Ablehnung jeder Annahme auch die Nichtaktivierung der gesamten Eigen schaft nach sich zieht reicht eine positive Zwischenannahme nicht f r eine endg ltige Aktivierung der Eigenschaft Eine positive abschliessende Annah me ist jedoch eine hinreichende Bedingung f r die Aktivierung Weiterhin zieht die endg ltige Aktivierung einer Eigenschaft die automati sche Deaktivierung aller parallel verlaufenden Eigenschaften und deren Nach folger nach sich Die gewonnenen Informationen k nnen in f nf Kriterien zusammengefasst werden 1 Nicht erf llte Zwischen
111. diesbez glichen Anstrengungen unter nommen und alle berg nge werden entsprechend Alg 4 3 direkt in Hard ware abgebildet 120 4 7 Konstruktion eines deterministischen Kontrollautomaten Algorithmus 4 4 Eine m gliche Implementierung der Nachfolgerfunktion succ v o 1 Ug UV 2 for all s v do 3 for all p s do 4 if p E o then 5 Us Vo S 6 else if p Ar N o then 7 for all s v do 8 if parallel s gf s then 9 Us Ue 8 10 end if 11 end for 12 end if 13 end for 14 end for 15 if vo D then 16 return 0 17 end if 18 uv 19 for all s vg do 20 v ml U succ s 21 end for 22 return ul In der Praxis ist zu beobachten dass die Anzahl der Annahmen unabh ngig von der L nge der Eigenschaften meist sehr gering ist Dadurch tritt oben genannter Effekt nur bei einer wachsenden Anzahl von Eigenschaften auf und sollte nur f r Operationseigenschaftss tze problematisch werden bei denen Eigenschaften automatisch generiert werden Die Laufzeit des Gesamtalgorithmus verh lt sich analog zur Anzahl der Zust nde des Automaten Die Laufzeit der Nachfolgerfunktion ist hingegen nicht wie die Laufzeit von succ s linear bez glich der Anzahl Verzweigungen und ausgehenden Kanten des Zustands sondern sie hat einen zus tzlichen quadratischen Faktor durch die Filterung der Pfade f r vo Dieser Faktor kommt zustande da im Kode der f r die Filterung ve
112. dieser Beschreibung entsteht ein endlicher Automat der ab h ngig vom konkreten Synthesewerkzeug mindestens ebensoviele Zust nde haben wird wie die innere Schleife Durchl ufe besitzt 46 2 4 Operationen als Verhaltensbeschreibung BlueSpec Die Hardwarebeschreibungssprache Bluespec ist ebenso eine Alternative zum herk mmlichen Entwurf auf RT Ebene HA04 Sie besteht aus einzelnen Re geln die wiederum eine Bedingung und verschiedene Aktionen besitzen Eine Regel kann immer dann aktiviert werden wenn ihre Bedingung wahr wird Bei mehreren Regeln die gleichzeitig aktiviert werden d rfen muss nichtde terministisch eine von ihnen ausgew hlt werden Die Aktionen einer Regel k nnen den Zustand von speichernden Elementen ver ndern indem sie ein Register beschreiben einen Wert in eine Arrayzelle schreiben oder einem FIFO bergeben Die zu schreibenden Werte und die Bedingungen der Re geln k nnen wiederum den Inhalt der Speicherelemente lesen und in beliebi gen Operationen verarbeiten Bei der Synthese eines solchen Systems muss bei der Auswahl der zu akti vierenden Regeln eine Arbitrierung stattfinden sodass in jedem Systemtakt nur genau eine Regel ausgef hrt wird Dadurch ist jede Regel elementar und unabh ngig vom restlichen Systemverhalten Diese Unabh ngigkeit ist einer der gro en Vorteile der Methodik da sie den Entwerfer davon entlastet sich um die Koordination der Interaktionen zwischen verschiedenen parallelen Zu s
113. digitalen Designs aus einer formalen Spezifikation wird als Church s problem Chu63 bezeichnet und mit BL69 und Rab72 wur den zwei L sungsans tze vorgeschlagen In PR89 wurde ein Verfahren pr sentiert welches aus LTL Formeln nichtdeterministische B chi Automaten erstellt und diese mit Hilfe des Determinierungsverfahrens von Saf88 in de terministische Rabin Automaten berf hrt Die dabei auftretende doppelt exponentielle Laufzeit schr nkt die Anwendbarkeit jedoch stark ein da kei ne Beispiel Spezifikationen implementiert werden k nnen die ber ein paar wenige Zust nde hinausgehen Durch Beschr nkung der unterst tzten LTL Formeln auf Formeln mit dem Aufbau GFp A GF p2 N AGFpm gt GFq1 A GFR A A GFqn 38 2 3 High Level Synthese und alle Formeln die in diese Form berf hrt werden k nnen kann ein Al gorithmus angegeben werden der in kubischer Zeit ein passendes Design synthetisiert PP06 Obwohl diese Einschr nkung sehr restriktiv erscheint k nnen viele praktische Spezifikationen umgesetzt werden und in Blo 07 ist es gelungen einen Arbiter f r das AMBA AHB Busprotokoll aus einer PSL Spezifikation zu erstellen Trotz dieser Erfolge ist die Laufzeit dieser Algorithmen f r viele praktische Anwendungen noch zu gro Basierend auf den Ideen der modularen Monitorgenerierung des Horus Werkzeugs wurde in OMBO09 ein Verfahren entwickelt das in linearer Zeit aus dem simple subset von PSL einen
114. diglich bei Namen die sich unter anderem aus den Freezevariablen herleiten muss er beachtet werden In Abschnitt 4 5 4 der sich mit Freezevariablen besch ftigt wird dies detailliert erl utert 4 3 2 Parameter Die Definition der Parameter mit dem Schl sselwort generic f hrt zur Er stellung eines Signals mit konstantem Wert Der Wert selbst muss dabei von der bergeordneten Ebene bergeben worden sein Im Falle einer Auswertung 78 4 3 Auswertung der Strukturbeschreibung auf Toplevel werden alle Parameter per Kommandozeilenoption g berge ben Der Nutzer kann die Option erneut f r jeden Parameter setzen Sie verlangt je zwei Argumente zum einen den Namen des Parameters und zum anderen den Wert in Ganzzahlnotation Wenn also die zu synthetisierende Komponente den Parameter WIDTH unterst tzt muss vhisyn auf der Kommandozeile ein Argument der Form g WIDTH 32 bergeben werden Der so bergebene Wert wird entsprechend dem Daten typ des Parameters aus der generic Anweisung interpretiert und einem neu generierten Signal als Konstante zugewiesen Wenn die Komponente allerdings nicht als Toplevel sondern auf einer niedrigeren Hierarchiestufe ausgewertet wird muss der Wert des Parameters von der bergeordneten Hierarchieebene bergeben worden sein Es ist kei ne M glichkeit vorgesehen Defaultparameter zu verwenden Die zugeh rige Definition in der component Anweisung wird in Abschnitt 4 3 4 beschrie ben Die entsteh
115. dr cke in den Zust nden in denen sie g ltig sind entsprechend markiert sind BZ08 CTL gilt im Allgemeinen als nicht so intuitiv wie LTL Als Illustration soll hier ein kleines Beispiel aus Var01 dienen Die LTL Formel X Fp bedeutet p wird irgendwann ab dem n chsten Zeitpunkt wahr Sie ist gleichbedeutend mit der Formel FXp Man kann diesen Ausdruck auch in CTL formulieren als AX AF allerdings kann in CTL die Formel nicht mehr umgekehrt werden ohne dass sich die Bedeutung ndert AFAXp dr ckt aus dass es in der Zukunft in jedem Fall einen Zeitpunkt gibt zu dessen n chstem Zeitpunkt auf jeden Fall p gilt Der Unterschied ist subtil und erfordert ein genaues Verst ndnis der Semantik F r die statische Verifikation eignet sich CTL sehr gut da f r jede Subfor mel die Menge der Zust nde des Systems bestimmt werden kann in denen sie g ltig ist Damit kann die G ltigkeit einer Formel aus der G ltigkeit ihrer Subformeln hergeleitet werden Bei LTL ist dies nicht der Fall Es existieren sowohl LTL Formeln die nicht in CTL dargestellt werden k nnen als auch CTL Formeln f r die es kein LTL quivalent gibt Die Logik CTL ist als eine bermenge von sowohl LTL als auch CTL definiert und kann deshalb alle Formeln beider Sprachen darstellen EH86 2 2 2 Eigenschaftssprachen Die bereits beschriebenen temporalen Logiken wurden in standardisierte Sprachen bernommen Die beiden verbreitetsten Sprachen sind die Property Specifi
116. dware Hierarchie entsprechen Zur Beschreibung eines Clusters ist auch die Modellierung des Datenflusses notwendig Aus diesem Grund gibt es ein Datentypensystem f r alle internen Signale Ein und Ausg nge einer Komponente sowie f r die tempor ren Objekte als Ergebnis der ITL Operatoren Die Datentypen sind an typische Hardwarebeschreibungssprachen angelehnt wurden in ITL jedoch signifikant vereinfacht sodass man im Wesentlichen nur zwischen sieben Datentypen unterscheidet e unsigned vorzeichenlose Bitvektoren e signed vorzeichenbehaftete Bitvektoren e boolean logische Werte bit einzelne Bits e array Vektoren anderer Datentypen als bit record Verbunddatentypen und e enum Aufz hlungstypen Die sehr strenge Typisierung von beispielsweise VHDL wird dadurch stark gelockert und die Beschreibung vereinfacht sich F r den in dieser Arbeit vorgestellten Synthesefluss wurde das ITL Typsys tem bernommen jedoch noch weiter vereinfacht Das Typsystem von vhisyn kennt genau zwei Datentypen den vorzeichenlosen unsigned und den vor zeichenbehafteten signed Bitvektor Der logische Datentyp boolean und 3 2 Struktur der Eigenschaften das einzelne Bit bit werden beide auf einen vorzeichenlosen Bitvektor der L nge 1 abgebildet Die drei Typen array record und enum werden in der aktuellen Version berhaupt nicht unterst tzt Ein weiterer Unterschied ist die weniger strenge Typpr fung als in ITL Die Datentypen der
117. edoch noch nicht dass auch das Gesamtsystem frei von Fehlern ist So k nnen im Zusammenspiel der einzelnen Module Fehler auftreten Ein Fehler soll an dieser Stelle exem plarisch herausgegriffen werden Im konkreten Fall war ein sehr hartn ckiger Fehler im Resampler vorhan den indem dieser am Ende eines kompletten Filterupdates aus den beiden FIFOs einige Partikel nicht ausgelesen hat woraufhin diese im FIFO blie ben In der n chsten Runde wurden diese dann als erste Partikel ausgelesen woraufhin die Gesamtsumme der Gewichte nicht mehr bereinstimmte Um diesen Fehler zu vermeiden muss im System garantiert werden dass beim Abschluss eines Filterupdates immer die korrekte Anzahl Partikel in 164 6 3 Partikelfilter den FIFOs enthalten ist Eine Eigenschaft der Form run gt fifo count N mit N als der Gesamtanzahl Partikel w rde dies sicherstellen l sst sich aber im allgemeinen Fall nur sehr schwer formal verifizieren Verfahren wie in Urd 10 beschrieben stellen eine M glichkeit dar die Vollst ndigkeit der Einzelmodule zu nutzen um ein abstraktes Systemmodell zu erzeugen auf welchem dann eine Eigenschaftspr fung m glich ist Eine alternative Feh lervermeidungsvariante stellt die kompositionale vollst ndige Verifikation im Sinne von Bor09 dar Mit ihr k nnten Fehler dieser Art schon w hrend des Entwurfs abfangen werden Beide Verfahren erfordern jedoch eine Beschreibung aller beteiligten Kom ponenten mit Hi
118. efiniert und die Menge der Zusicherungen als Zp 21 22 2m ergibt sich die charakteristische Funktion der Gesam teigenschaft P zu Ap Zp a Ze Eine Annahme oder Zusicherung kann als temporaler Ausdruck bezeichnet werden und besteht wiederum aus zwei Teilen Zum einen einer zeitlichen An gabe die festlegt zu welchem Zeitpunkt relativ zu t der Ausdruck gilt Wenn der Zeitpunkt mit at startet betrifft dies einen einzelnen Zeitpunkt Im Ge gensatz dazu kann mit during ein Ausdruck fiir mehrere Zeitpunkte gelten Dies ist gleichbedeutend mit einem zeitlichen Abrollen des Ausdrucks fiir alle Zeitpunkte in dem angegebenen Intervall entsprechend folgender Formel t2 during t t2 expr N at i expr i t Die Auswertung einer Annahme muss in einem Datentyp resultieren der zu wahr oder falsch umgewandelt werden kann Wenn die Eigenschaft in der Verifikation verwendet wird gilt dies auch f r Zusicherungen In dem in dieser Arbeit vorgestellten Entwurfsprozess ist es jedoch erforderlich aus einer Zusicherung eine eindeutige Signalzuweisung zu extrahieren Aus diesem Grund sollte eine Zusicherung immer in der Form Signalname Ausdruck beschrieben werden Wenn die betreffende Zusicherung in der formalen Ve rifikation verwendet wird hat das Zeichen die Bedeutung des quivalenz operators w hrend es bei der Synthese f r eine Wertzuweisung an ein Signal steht 53 3 Operationseigenschaften als vollst ndige Verhaltens
119. ehler zu vermeiden und erm glicht ein schnelleres Auffinden von noch nicht beschriebener Funktionalit t w hrend des Entwurfs der Eigenschaften Bei der formalen Verifikation der Eigenschaften vor Erstellung oder automa tisierten Generierung einer Implementierung muss jedoch das Trivialdesign 69 3 Operationseigenschaften als vollst ndige Verhaltensbeschreibung vorhanden sein Es kann auf einfache Art und Weise aus der in Abschnitt 3 5 vorgestellten Schnittstellenbeschreibung der Komponente hergeleitet werden 3 6 7 Konzeptionelle Zust nde Weiterhin ist zu erw hnen dass die konzeptionellen Zust nde des Designs in den Eigenschaften nicht gesondert markiert werden m ssen Bor09 weist darauf hin dass die Zust nde in der Praxis oft keinem konkreten Zustand des Designs entsprechen sondern auch von Eingangs bzw Ausgangssignalen abh ngen k nnen und im Grenzfall komplett ohne Nutzung interner Signale auskommen Der hier beschriebene Entwurfsfluss macht sich dies zunutze in dem Eigenschaften ohne explizit definierte wichtige Zust nde entworfen und formal verifiziert werden Lediglich die in Abschnitt 6 1 vorgestellte forma le Verifikation des generierten Entwurfs ben tigt die Verkn pfung zwischen Eigenschaftsbeginn und ende und den Zust nden des Designs Von den beschriebenen Tests ist vor allem der Nachfolgertest daf r zust n dig dass die Definition der konzeptionellen Zust nde den korrekten bergang von einer Eigensch
120. ehr als einem Element wie beschrieben durch zwei Vergleichsoperatoren gepr ft werden Einelementige Intervalle werden einzeln mit dem aktuellen Zustand verglichen Eine Unterteilung von gr eren in kleinere Unterinterval le findet nicht statt Mit diesem Ansatz erreicht man eine effiziente Zusam menfassung der Vielzahl von Schaltsignalen bei sehr langen Eigenschaften mit vielen quivalenten Zusicherungen Alle weiteren Optimierungsm glichkeiten der Schaltsignale werden dem Logiksynthesetool berlassen 140 5 Anforderungen an eine synthesef hige Eigenschaftsbeschreibung Nicht jede Eigenschaftsbeschreibung die die Vollst ndigkeitspr fung bestan den hat kann mit dem in dieser Arbeit vorgestellten Verfahren uneinge schr nkt in eine Hardwarebeschreibung berf hrt werden In diesem Kapitel sollen die dabei auftretenden Ausnahmen und Bedingungen untersucht wer den Zum einen betrifft dies Einschr nkungen technischer Natur wie bspw nicht unterst tzte ITL Anweisungen und Operatoren oder auch Anforde rungen an den Aufbau einer Eigenschaft Diese Einschr nkungen m ssen eingehalten werden damit der Synthesealgoritmus in der Lage ist korrek te Hardware zu erzeugen Zum anderen gibt es auch Anforderungen an den Beschreibungsstil die zwar einer erfolgreichen Synthese nicht im Weg stehen jedoch notwendig sind um die Vorteile der Eigenschaftsbeschreibung voll zur Geltung zu brin gen Dieses Kapitel stellt die existierenden Pr
121. eibung des Partikelfilters wurde eine Registerschnittstelle hinzugef gt die ber den PLB Bus mit dem FPGA internen PowerPC kom muniziert und u a die empfangenen Messungen in einem FIFO bereitstellt In Abb 6 4 ist das Gesamtsystem bestehend aus Partikelfilter PowerPC und Host PC dargestellt Der Host PC dient der grafischen Pr sentation des Fil terergebnisses und der Bereitstellung der vom Mobilknoten durchgef hrten Entfernungsmessungen Die Komponente particle enth lt den Entwurf ent sprechend Abb 6 3 In der prototypischen Plattform bernehmen PowerPC und Host PC die Aufgabe die Messungen des Netzwerks aufzunehmen an den Partikelfilter weiterzuleiten und anschliessend die gesch tzte Position f r den Nutzer auf zubereiten Im konstruierten Anwendungsszenario sollen diese Aufgaben vom Prozessor des Mobilknotens bernommen werden Die gesamte VHDL Beschreibung der Komponente particle_shell wurde mit Hilfe des Logiksynthesetools Synplify von Synopsys in eine Gatternetz liste bertragen die im Anschluss mit Xilinx Plattform Studio 10 platziert und trassiert wurde In Tab 6 1 sind die enthaltenen Komponenten mit der 162 6 3 Partikelfilter FPGA particle_shell UART gt Host PC particle PLB Bus Ethernet Messungs FIFO Registerschnittstelle PowerPC Funkgateway Abbildung 6 4 Integration des Partikelfilters in das Gesamtsys
122. eil A verwendet werden d rfen nur zu den Zeitpunkten kleiner oder gleich t 1 benutzt werden Die normalisierte Eigenschaftsmenge wird auf eine Hardwarerepr sentation abgebildet die aus Multiplexern besteht deren Schaltsignal dem vorderen Teil der Implikation entspricht w hrend einer der Multiplexereing nge die Zusicherung darstellt Das zugewiesene Signal ist der Ausgang des Multiplexers und wird ber ein Register geleitet Die dabei entstehenden Schaltkreise werden Cando Objekte genannt und beinhalten im Falle eines unvollst ndigen Eigenschaftssatzes Freiheitsgrade 39 2 Grundlagen temporaler Eigenschaften und ihrer Synthese die ber freie Signale realisiert sind deren Wert zuf llig bestimmt wird Da mit implementieren Cando Objekte alle m glichen Realisierungen des Eigen schaftssatzes Falls dieser jedoch vollst ndig ist und f r jedes Ausgangssignal in jeder Situation einen eindeutigen Wert bereitstellt wird auch das gene rierte Modell ein eindeutiges Verhalten aufweisen Die Laufzeit des Verfahrens ist mit Hilfe der vorhandenen Literatur schwer abzusch tzen Der Algorithmus verlangt dass sich die Annahmen von Eigen schaften die das selbe Signal zuweisen gegenseitig ausschliessen Wenn das Verfahren auf Bitebene durchgef hrt wird ist diese Information meist einfach zu berechnen Allerdings ist die Umwandlung von komplexen Datenpfadope rationen in die Bitebene sehr aufwendig Falls auf Wortebene gearbeitet wird we
123. ein next Operator mit Hilfe eines prev Operators aufgel st werden In Abschnitt 4 9 1 werden die Verfahren und auftretenden Probleme bei der Syn these von Makros in Register Transfer Level Hardware genauer untersucht 3 4 Eigenschaftsgraph Wie bereits erw hnt m ssen die Eigenschaften um eine wirklich vollst ndige Beschreibung einer Komponente zu sein zeitlich miteinander verkn pft wer den F r jede Eigenschaft darf es eine festgelegte Anzahl Nachfolger geben Es muss jedoch mindestens einen Nachfolger geben da sonst das weitere Ver halten der Komponente nicht festgelegt ist Vom Entwerfer der Eigenschaften wird zu diesem Zweck ein Eigenschaftsgraph angelegt der diese Vorg nger Nachfolger Beziehung spezifiziert Es handelt sich dabei um einen zyklischen gerichteten Graph mit Schleifen jedoch ohne Mehrfachkanten Es gibt im mer genau eine Wurzel des Graphen die die Reseteigenschaft repr sentiert und die ersten Takte der Komponente nach Eintreten der Resetbedingung aktiviertes Reset Signal beschreibt Der Graph ist von der Reseteigenschaft 2 Als Schleifen bezeichnet man in der Graphentheorie Kanten deren Start und End knoten gleich sind 59 3 Operationseigenschaften als vollst ndige Verhaltensbeschreibung ausgehend stark zusammenh ngend im Sinne der Graphentheorie d h f r jede Eigenschaft gibt es eine Folge von Eigenschaften die von der Resetei genschaft aus zu ihr f hren Abbildung 3 6 Eigenschaftsgr
124. eit f r die Automatenkonstruktion umfasst nur den Algorithmus entsprechend Abschnitt 4 7 und die zugeh rige Abbildung des Automaten in Hardware Zus tzlich zu den tats chlichen Messungen sind in der Abbildung zwei passende Trendlinien dargestellt die mit Hilfe einer linearen Regression er stellt wurden Mit der in der Legende angegebenen linearen Gleichung konnte ein Regressionskoeffizient R von 0 9954 bzw 0 9937 erreicht werden was eine hohe Passgenauigkeit der linearen Gleichung bedeutet Die in Ab schnitt 4 7 7 ermittelte lineare Komplexit t des Konstruktionsalgorithmus in Abh ngigkeit von der L nge der Eigenschaften wird damit praktisch nach gewiesen d h in der Praxis auftretende Eigenschaftsl ngen von mehreren Tausend Takten stellen f r den Algorithmus kein Problem dar Die Laufzeitmessungen wurden auf einem Linux Rechner mit zwei Dual Core AMD Opteron Prozessoren mit je 2 6 GHz und insgesamt 16 GB Haupt speicher durchgef hrt Da vhisyn nicht nebenl ufig arbeitet kann nur einer der Prozessoren zur gleichen Zeit genutzt werden 170 6 4 Framer 200 R 0 9954 Laufzeit in Sekunden R 0 9937 0 6000 12000 18000 24000 30000 Rahmenlange in Takten Automatenkonstruktion y 0 3968x 313 79 Gesamtlaufzeit y 6 1921x 15828 Abbildung 6 8 Laufzeit der Synthese des Framers mit unterschiedlichen Rah menl ngen 6 4 4 Verbesserungen In dieser Fallstudie ist es ein
125. eite re kommerzielle Eigenschaftssprachen sind ForSpec von Intel Arm 02 das LTL und regul re Ausdr cke beinhaltet und als ein weiterer Kandidat bei der Standardisierung von PSL galt und OpenVera von Synopsys OV11 dessen OpenVera Assertions OVA ebenfalls LTL Formeln und regul re Ausdr cke unterst tzen OpenVera bildet die Basis des SystemVerilog Standards Die Hardwareverifikationssprache e EEE08 ist haupts chlich zum Be schreiben von Testbenches gedacht unterst tzt jedoch auch auf Sequenzen basierende Assertions die zur Laufzeit dynamisch gepr ft werden Weiterhin ist die Open Verification Library OVL zu erw hnen die zwar keine tem porale Sprache bereitstellt sondern fertig implementierte Checker die hn 31 2 Grundlagen temporaler Eigenschaften und ihrer Synthese lich temporalen Eigenschaften berpr fen ob das Verhalten eines Entwurfs seiner Spezifikation entspricht So existiert bspw ein Checker der den al ways Operator implementiert und berpr ft ob eine Bedingung immer wahr ist Die von der Firma OneSpin Solutions entworfene Sprache InterVal Lan guage ITL entspricht im Kern einer sehr eingeschr nkten Form von linearer temporaler Logik OSS09 Die Eigenschaften bestehen aus einer gro en Im plikation deren Bedingungs und Aktionsteil jeweils aus einer Konjunktion von elementaren Pr dikaten besteht die lediglich um eine feste Anzahl Zeit schritte verschoben sein k nnen Aus diesem Grund umfas
126. em einfachen Beispiel mag dies keine gro e Rolle spielen falls jedoch sehr lange Bitvektoren in aufwendigeren Operationen verarbei tet werden m ssen ist diese Implementierungsvariante recht ineffektiv und es empfiehlt sich alternativ eine Teilung des Problems in zwei H lften und rekursive Verarbeitung beider Teilprobleme In Abb 3 5 ist ein so entworfe nes Makro zur Bitumkehrung dargestellt In diesem wird statisch die Mitte des Vektors errechnet und dann zuerst die obere H lfte umgekehrt Danach 57 3 Operationseigenschaften als vollst ndige Verhaltensbeschreibung N unsigned int sqrt unsigned int num unsigned int op num unsigned int res 0 unsigned int one 1 lt lt 30 while one 0 if op gt res one op res one res res gt gt 1 one else res gt gt 1 one gt gt 2 return res Abbildung 3 4 M gliche C Implementierung zur Quadratwurzelberechnung wird die untere Halfte umgekehrt und beide Ergebnisse wieder miteinan der verkettet Die Rekursionstiefe des so entstandenen Makros w chst nun nicht mehr linear mit der L nge des Vektors sondern logarithmisch Wenn allgemein wiederverwendbare Makros entworfen werden ist dieses Vorgehen empfehlenswert insbesondere wenn das Makro in einem Kontext aufgerufen wird der sich bereits in einer sehr gro en Rekursionstiefe befindet 3 3 3 Sequentielle Makros Bisher wurden nur kombinatorische Schaltungen b
127. en Diese sind nur vom zu pr fenden Verhalten abh ngig und k nnen somit in verschiedenen Anwendungen eingesetzt werden Die Eigenschaften bzw der sie ersetzende Monitor erfassen dabei kontinuierlich die Werte der Bussignale und melden einen Fehler wenn diese die Busspezifikation verletzen Eigenschaften k nnen nach bestimmten Kriterien kategorisiert werden Ei ne verbreitete Unterscheidung ist die zwischen Sicherheits safety property 25 2 Grundlagen temporaler Eigenschaften und ihrer Synthese und Lebendigkeitseigenschaften liveness property Informell werden diese Bezeichnungen oft mit den folgenden S tzen beschrieben Sicherheitseigenschaft nothing bad ever happens nichts Schlimmes wird jemals passieren Lebendigkeitseigenschaft something good eventually happens etwas Gutes wird irgendwann einmal passieren Anhand einer Ampelsteuerung kann eine Sicherheitseigenschaft Hauptstras se und Nebenstrasse d rfen nie gleichzeitig auf gr n schalten aufgestellt werden w hrend die Eigenschaft Jede Strasse wird immer wieder einmal auf gr n schalten ein Lebendigkeitskriterium ausdr ckt Sicherheitseigenschaften die oft keine zeitlichen Zusammenh nge repr sen tieren sondern nur bestimmte unerw nschte Zust nde des Systems aussch liessen sollen werden auch Invarianten des Designs genannt und sind in vielen Hard und Softwaresprachen bereits enthalten So kann mit dem Schl ssel wort assert in VHDL eine s
128. en die einen anspruchsvollen Datenfluss beinhaltet und aus mehreren Komponenten besteht die ihrerseits jeweils vollst ndige Eigenschaftss tze darstellen Die zweite Fallstudie repr sentiert eine Framerkomponente deren Spezi fikation einem industriellen Umfeld entnommen wurde Sie hat die Aufgabe in einem seriellen Datenstrom nach einem Synchronisationwort zu suchen und anhand dessen die Grenzen eines Datenrahmens zu erkennen Dabei muss der Datenstrom auf die korrekte Bitposition ausgerichtet alignment und mit Hilfe einer Descramblingmethode dekodiert werden Die Framer komponente hat sehr lange Eigenschaften mit vielen Tausend Zust nden und verdeutlicht damit besonders gut die Vorteile der Konstruktion des determi nistischen Kontrollautomaten und die dadurch erm glichten Optimierungen der Zusammenfassung von Zusicherungen Den Schluss des Kapitels bildet eine kurze Beschreibung einer Visualisie rungsplattform f r die generierte Hardware Sie liest Beschreibungen im db Zwischenformat ein und zeigt ein Blockschaltbild der enthaltenen Hardware 6 1 Formale Eigenschaftspr fung des erzeugten Entwurfs Das durch vhisyn generierte VHDL Modell sollte wenn vhisyn fehlerfrei ar beitet exakt dem Verhalten der Eigenschaften entsprechen Die formale Pr fung ob das erzeugte Design die Eigenschaften erf llt w re demnach nicht n tig In der Praxis kann man jedoch einen Fehler in vhisyn nicht restlos ausschliessen Aus diesem Grund kann e
129. en DEA ohne vorher den NEA oder gar das Potenzmengenverfahren anzuwenden Weiterhin bietet vhisyn die M glichkeit je nach Anwendungsfall zwischen der nichtdeterministischen und der deterministischen Konstruktion zu w hlen 4 7 1 Konstruktion des Potenzmengenautomaten Es ist vorteilhaft ein alternatives Konstruktionsverfahren f r den Kontroll automaten zu entwickeln welches einen deterministischen endlichen Auto maten DEA erzeugt da dessen Hardwarerepr sentation mit Hilfe einer bi n ren Automatenkodierung wesentlich weniger Register ben tigt als der ent sprechende NEA Das Standardverfahren der Literatur f r diesen Fall hei t Potenzmengenverfahren HMU06 und ist an einem Beispiel in Abb 4 13 il lustriert Da das Beispiel aus Abb 4 9 durch die Potenzmengenkonstruktion zu gro f r eine bersichtliche Darstellung in dieser Arbeit werden w rde ist ein noch weiter vereinfachter Automat dargestellt Der Automat erkennt 110 4 7 Konstruktion eines deterministischen Kontrollautomaten jeweils in einer fortlaufenden Zeichenkette die Sequenz cat Die unbedingte Transition von Zustand 1 zu sich selbst sorgt daf r dass der Suchvorgang mit jedem Eingangssymbol neu gestartet wird und der Automat nichtdeter ministisch ist GC a NEA b Potenzmengen DEA c Optimierter DEA Abbildung 4 13 Beispiel eines endlichen Automaten zur Erkennung der Zei chenkette eat in einem Text Die Knoten des Potenzmengen
130. en Ei genschaften alle internen und Schnittstellensignale sowie Parameter mit dem korrekten Datentyp der Hardware verf gbar In einem eigenschaftsbasierten Entwurfsfluss existiert jedoch a priori keine Hardwarebeschreibung Deshalb m ssen die entsprechend ben tigten Signal definitionen und Datentypen gesondert angegeben werden Aus der Vollst n digkeitsbeschreibung k nnten die Namen der Ein bzw Ausg nge extrahiert werden jedoch ohne Datentyp was diese Information f r eine Synthese un zureichend macht Um alle notwendigen Signale und Parameter und deren Datentyp nut zen zu k nnen wurde f r diese Arbeit eine transparente Erweiterung von ITL vorgenommen Die Vollst ndigkeitsbeschreibung wurde um einen Ab 63 3 Operationseigenschaften als vollst ndige Verhaltensbeschreibung la N completeness resampler is xstructure M generic unsigned 15 downto 0 in_state in unsigned 41 downto 0 in_ pop out boolean out_state out unsigned 41 downto 0 out_push out boolean rd_count internal unsigned 15 downto 0 rand internal unsigned 23 downto 0 randgen component random WIDTH gt 24 SEED gt 4000 randgen dout gt rand structure end completeness Abbildung 3 9 Strukturbeschreibung in einer Vollstandigkeitsbeschreibung schnitt structure erg nzt der syntaktisch von ITL als Kommentar angese hen wird von dem in dieser Arbeit vorgestellten Entwurfsfluss jedoch erkannt
131. en Gr nden sind beide Methodiken trotz des Bezugs zu Operationen nicht unmittelbar zu vergleichen 47 3 Operationseigenschaften als vollst ndige Verhaltensbeschreibung 3 1 Allgemeines Um die Synthese von Hardware aus Operationseigenschaften verstehen zu k nnen wird in diesem Kapitel ein berblick ber den Aufbau und die Funktionsweise von Operationseigenschaften gegeben In dieser Arbeit be schr nken wir uns auf die Beschreibung von Eigenschaften in InterVal Lan guage ITL Der Ursprung dieser Art temporaler Eigenschaften liegt in der formalen Verifikation der es damit m glich wurde zum einen das Verfah ren des Interval Property Checking IPC zu nutzen und zum anderen eine Vollst ndigkeitspr fung durchzuf hren Bor09 Wie bereits in Abschnitt 2 2 4 genauer dargestellt ist IPC ist ein Model Checking Verfahren bei dem das zu pr fende Design f r eine bestimmte Anzahl Takte abgerollt wird und zusammen mit der Eigenschaft an ein formales Beweiswerkzeug wie beispielsweise einen Erf llbarkeitspr fer ber geben wird Wenn das Beweiswerkzeug nachweisen kann dass die Eigenschaft auf dem abgerollten Design immer erf llt ist ist das Beweisziel erbracht An derenfalls muss ein Gegenbeispiel ermittelt werden welches eine Folge von Eingangsdaten enth lt die die Eigenschaften verletzt Es stellt sich dabei die Frage welche Startzust nde man zu Beginn der Eigenschaft annimmt Im schon l nger bekannten Bounded Model
132. en Werten beschriftet Dabei kommt die lexikographische Sortierung der Zust nde zum Einsatz reset 4 eset 4 idle dle 1 sync idle 0 N CO a ar EE CH EOS f nosync sync 4 Ig OO idle je 1 S H sync idle 0 Default bergang erf llte Annahme nicht erf llte Annahme id 4 Bo id 5 Poa 6 Ho infram ame 8 infram sync 0 Abbildung 4 20 Abbildung der Zust nde des DEA aus Abb 4 15 auf numeri sche Werte entsprechend der lexikographischen Sortierung 134 4 9 Abbildung in Hardware Es k nnen deutlich die Kettenzust nde abgelesen werden Sie sind etwas heller dargestellt und umfassen Zust nde der reset 13 bis 15 sync 1 12 und 18 bis 24 und inframe 2 bis 8 Eigenschaften In diesen 19 Ketten zust nden befinden sich 16 Zust nde deren Nachfolger ein konstantes In krement aufweist Diese berg nge sind wiederum kreisf rmig markiert Der Default bergang findet in 16 F llen statt gegen ber 9 normalen Transitio nen Da die entstehende Automatenimplementierung als Blockschaltbild nur aufwendig darzustellen ist zeigt Abb 4 21 den VHDL Quellkode des Pro zesses der den DEA implementiert Der auf das Wesentliche reduzierte Pro zess enth lt nur 15 explizit beschriebene berg nge w hrend alle weiteren Transitionen durch den Default bergang in Zeile 28 abgedeckt sind 4 9 4 Zuweisung der Zusicherungen In diesem Abschn
133. en Wurzel dar Mit reset P kann diese Eigenschaft sp ter wieder angesprochen werden Die im Abschnitt property__graph enthaltenen Anweisungen stellen die Kanten des Graphen dar Jede Anweisung besteht aus zwei Mengen von Eigenschaften die je Startknoten Pstart bzw Zielknoten Pzie einer Kante sind Wie bereits in Abschnitt 3 4 2 angedeutet ergeben sich die Kanten des Graphen aus dem kartesischen Produkt der Start und Zielknoten Dazu wird f r jede Anweisung die Menge der Kanten nach folgender Vorschrift aktualisiert Ep Ep U Pstart x Piel Zus tzlich kann die Menge der Nachfolger einer Eigenschaft pe P mit succ p ve P p v Ep definiert werden ebenso wie s mtliche Vorg nger mit pred p v P v p Ep Die Reseteigenschaft darf dabei als einzige keinen Vorg nger besitzen pred reset P 0 w hrend alle Eigenschaften inklusive Reseteigenschaft mindestens einen Nachfolger besitzen m ssen um Deadlocks des Gesamtsystems zu vermei den Yp E P succ p 9 4 5 Auswertung der Eigenschaften Nachdem der Eigenschaftsgraph P erstellt worden ist muss jeder Knoten Eigenschaft des Graphen einzeln abgearbeitet und getrennt in Hardware umgewandelt werden Dieser Vorgang soll Inhalt des folgenden Unterkapitels sein Dazu wird die Eigenschaft hnlich der Strukturbeschreibung abschnitts weise ausgewertet 82 4 5 Auswertung der Eigenschaften 4 5 1 Erfassung der Zeitpunkte Als erstes
134. en aller Gesamtannahmen a EN F r ein gegebenes Eingabesymbol o amp das exakt alle erf llten Annahmen enth lt kann die Menge der nicht erf llten Annahmen durch a A o ausgedrtickt werden Parallele Zustande F r die Definition der Zustands bergangsrelation ist zuerst eine formale Be stimmung des parallelen Zustandsbegriffs aus Kriterium 4 notwendig Gege ben sind zwei Pfade Zust nde des NEA s s2 S Nun gilt s2 parallel zu s bez glich einer Eigenschaftsposition nf s wenn alle lteren Ei genschaftspositionen als p in beiden Zust nden gleich sind und aber die Eigenschaftsposition p nicht in s2 vorkommt parallel s p s2 pre Paien p prefix s2 p Ap 82 wobei die Hilfsfunktion prefix mit prefix s p q s p lt q definiert wird und alle lteren Eigenschaftspositionen sammelt Die Bedin gung p sa verhindert dass ltere Verzweigungen nicht verworfen werden sondern nur Verzweigungen bez glich p 116 4 7 Konstruktion eines deterministischen Kontrollautomaten Zustands bergangsrelation Die Zustands bergangsrelation ergibt sich wie folgt delta v o succ v c v V o D succ v o 0 Dabei wird wieder eine Nachfolgerfunktion succ v o ben tigt die in diesem Fall aber ein zweites Argument in Form der bergangsbedingung besitzt Die Bedingung succ v c 4 stellt sicher dass der Folgezustand nicht die leere Menge darstellt
135. en durchgef hrt Die Eing nge sind dabei nicht immer tats chliche Eing nge des zu pr fenden Designs sondern es k nnen auch interne Signale verwendet werden Damit ist man bei der Bestimmung der Verifikationscluster unabh ngig von der tats chlichen Hier archie des Designs und kann die Grenzen des Clusters beliebig definieren 3 6 4 Determinierungstest Der dritte Test nennt sich Determinierungstest und stellt sicher dass in jeder Folge von Eigenschaften jedes Ausgangssignal determiniert ist Das bedeu tet dass sich in jeder Situation ein eindeutiger Signalwert ergibt Das Verhal ten des Modells ist somit deterministisch und l t keine Freiheitsgrade an den Ausg ngen zu Es ist dabei zu beachten dass entsprechend der Spezifikation vom Ersteller des Modells vorgegeben wird welches die zu determinierenden Ausgangssignale sind und in welcher Form die Determinierung sichergestellt werden muss Die entsprechenden Determinierungsbedingungen werden im Abschnitt determination _requirements der Vollst ndigkeitsbeschreibung aufge 68 3 6 Vollst ndigkeitspr fung f hrt Es gibt zwei Formen der Determinierung Zum einen kann ein Signal vollst ndig determiniert sein was bedeutet dass der Wert zu jeden Zeitpunkt bestimmt ist Dies wird durch die Zeile determined Signalname end__offset Verz gerung ausgedr ckt Die Angabe end _offset kennzeichnet eine verschobene Deter minierung gegen ber den Grenzen der Eigenscha
136. en herstellen Diese sind im folgenden aufgelistet Eingang des aktuellen Moduls mit Ausgang des aktuellen Moduls e Eingang des aktuellen Moduls mit Eingang eines Submoduls e Ausgang eines Submoduls mit Ausgang des aktuellen Moduls e Ausgang eines Submoduls mit Eingang eines Submoduls Dabei m ssen jedoch die zwei miteinander verbundenen Signale von ihrem Datentyp zusammenpassen und das Ziel der Verkn pfung darf nicht von mehr als einem Signal getrieben werden d h dass es nicht erlaubt ist ein Signal dessen Ausgangsverhalten bereits durch Eigenschaften modelliert wurde in einer Verkn pfung als Ziel zu verwenden Ebenso d rfen nicht zwei Signale auf das selbe Ziel schreiben Wenn ein Ein oder Ausgang eines Submoduls in der Verkn pfung ver wendet wird ist er durch den Instanznamen zu qualifizieren Dies geschieht durch Voranstellen des Instanznamens getrennt durch einen Schr gstrich 4 4 Erstellung des Eigenschaftsgraphen Der Eigenschaftsgraph P P Ep besteht aus der Menge der Eigenschaften P die die Knoten des Graphen darstellen und einer Menge Ep C P x P die 81 4 Synthese von Operationseigenschaften die Kanten des Eigenschaftsgraphen repr sentiert Der Eigenschaftsgraph ist gerichtet besitzt keine Mehrfachkanten und kann Zyklen aufweisen Im ITL Quellkode wird zuerst die reset _property Anweisung abgearbei tet Die darin definierte Eigenschaft wird zum noch leeren Graph hinzugef gt und stellt fortan dess
137. ende Hardware im Zwischenformat f hrt keine bergabe des Parameters durch sondern der Wert wird in der Unterkomponente als neue Konstante definiert 4 3 3 Signale F r alle Eing nge Ausg nge und internen Signale wird im Zwischenformat ein entsprechendes Netz vom passenden Datentyp angelegt Bei Ein und Ausg ngen muss zus tzlich noch ein Port in der Modulschnittstelle erstellt werden der mit dem vorher angelegten Netz verbunden wird Weiterhin wer den die Netze unter ihrem Namen im globalen Signalverzeichnis abgelegt Die gespeicherte Signalbelegung hat dabei zwar den korrekten Typ ist aber mit unbekannten Bits gef llt 4 3 4 Untermodule Jede component Anweisung f hrt zur Erstellung und Instanziierung eines Moduls auf der nachfolgenden Hierarchieebene Dabei werden die folgenden vier Schritte durchgef hrt 1 Auswertung der Parameterausdr cke im lokalen Scope In diesem Schritt wird die konkret ben tigte Parameterkonfiguration f r das Submodul berechnet Dazu werden alle Ausdr cke ausgewer tet die in der Parameterliste der component Anweisung aufgef hrt werden Jeder Ausdruck muss zu einem konstanten Wert evaluieren 79 4 Synthese von Operationseigenschaften 80 Die so ermittelte Parameterkonfiguration entspricht dem Vorgang aus Abschnitt 4 3 2 bergabe der Toplevel Parameter mit der Option g auf allen weiteren Hierarchiestufen Generierung des Submodulnamens Da Untermodule mit unterschiedl
138. endungsbeispiele ist Gegenstand von Kapitel 6 Weiterhin werden allge meine Erfahrungen mit der Methodik vorgestellt Im letzten Kapitel 7 wird die Arbeit zusammengefasst und ein Ausblick auf weitere Entwicklungsm g lichkeiten gegeben 21 1 Einleitung und Motivation Spezifikation Manueller Prozess Vollst ndige ITL Komponente rd_ent gt in_weight limit weight wren out_state rd_en t Wal t 2 Vollst ndigkeits Synthese pr fung OneSpin 360MV Verifikation des generierten Modells VHDL Ausgabe RTL Hardwaremodell Es Toplevel En Eigenschaften Annahmen J zustand Kontrollautomat Zustand Zusicher ungen Ausgangslogik F Abbildung 1 1 Entwurfsfluss bei der High Level Synthese von Operationsei genschaften 22 2 Grundlagen temporaler Eigenschaften und ihrer Synthese 2 1 Entwurfsebenen Spezifikationsebene Algorithmen Zeitdiagramme Algorithmische Ebene Operations eigenschaften Hse rem Register Transfer Ebene Abbildung 2 1 Einordnung des operationsbasierten Entwurfs in den Desi gnflow Um die in dieser Arbeit vorgestellte Methodik zur High Level Synthese von Operationseigenschaften in den aktuellen Stand der Technik einordnen zu k nnen wird zuerst die zugeh rige Entwurfsebene bestimmt Der Ent wurf digitaler Schaltungen wird oft mit Hilfe des Y Diagram
139. er Ebe ne und dessen automatisierte bertragung auf RT Ebene Dieser Prozess wird im allgemeinen High Level Synthese HLS genannt Der Algorithmus 17 1 Einleitung und Motivation liegt dabei in der Regel in einer etablierten Programmiersprache f r Software vor was den Vorteil bietet dass der Entwurf einfach und schnell ausgef hrt werden kann und somit sehr kurze Entwicklungs und Validierungszeiten entstehen Weiterhin war es bereits ohne HLS h ufig blich das zu erstel lende Design als Softwareprototyp zu modellieren und zu evaluieren Daher ist seitens des Entwurfsteams wenig zus tzlicher Einarbeitungs und Migra tionsaufwand notwendig Der gro e Vorteil einer Hardwareimplementierung ist die implizit vorhan dene Parallelit t von Hardware Ein System versucht diese Parallelit t auszu nutzen um hohe Verarbeitungsgeschwindigkeiten zu erreichen Im Gegensatz dazu bietet eine algorithmische Beschreibung keine native Unterst tzung von Parallelit t an Es muss also bei der HLS aus einem sequentiell abzuarbei tenden Algorithmus parallel arbeitende Hardware erzeugt werden Dies wird durch zwei Ans tze bewerkstelligt Zum einen kann das Syntheseverfahren die implizit vorhandene Parallelit t extrahieren und zum anderen k nnen vom Entwerfer bereitgestellte Annotationen im Quelltext als zus tzliche Angaben f r die Parallelisierung verwendet werden W hrend die HLS f r datenflus sorientierte Funktionalit t dadurch bereits seh
140. er Eigenschaftspr fung durch den entsprechenden konzeptionellen Zustand ersetzt werden Wie in Abb 6 1 zu ersehen ist wird je an der linken und rechten Grenze der Eigenschaft ein solcher Platzhalter eingef gt dessen Name sich aus dem Prefix begin bzw end und dem Name der Eigen schaft zusammensetzt Beim Einlesen der ITL Dateien erkennt vhisyn genau diese beiden Bezeichner und ignoriert temporale Anweisungen in denen nur dieser Ausdruck vorkommt Nachteilig wirkt sich hierbei aus dass diese Be zeichner dadurch vergeben sind und zur Beschreibung eines Designs nicht mehr zur Verf gung stehen Es stellt sich die Frage womit diese Platzhalter ersetzt werden m ssen In einem ersten Versuch wurden beide Platzhalter durch das in Abschnitt 4 8 definierte Schaltsignal ersetzt Dabei kommen die folgenden Entsprechungen zum Einsatz begin_prop Vprop left prop end_prop Wprop right prop j d h die Synthese erzeugt im Design zus tzliche Signale die den Namen des Platzhalter haben und denen das entsprechende Schaltsignal zugewiesen 156 6 1 Formale Eigenschaftspr fung des erzeugten Entwurfs e N property prop is for timepoints t_start t 2 L end t_start 2 assume at t_start begin_prop prove at t_end end_prop left_ hook t_start right_ hook t_end end property Abbildung 6 1 ITL Eigenschaft mit Platzhaltern fiir die konzeptionellen Zu stande wird Mit dieser Vorgehensweise k nnen d
141. er Ein und Ausg nge aufweisen Auf algorithmischer Ebene liegt ein Entwurf meist als Programm in ei ner h heren Programmiersprache vor das durch Verfahren der High Level Synthese HLS automatisiert in eine Beschreibung auf Register Transfer Ebene berf hrt werden kann MPC88 MS09 Das entsprechende Verfahren f r Operationseigenschaften soll Gegenstand dieser Arbeit sein Im folgenden werden einige Zusammenh nge und wissenschaftliche Arbei ten vorgestellt die Einfluss auf die Synthese von Operationseigenschaften haben und die Grundlage dieser Arbeit bilden 2 2 Eigenschaftsbasierte Verifikation Die eigenschaftsbasierte Verifikation oder auch Assertion Based Verification ABV beschreibt ein Verfahren bei dem das laut Spezifikation erw nschte Verhalten in Form von Eigenschaften beschrieben wird In diesem Abschnitt werden Eigenschaften engl properties gleichbedeutend mit engl assertions gesehen In einzelnen Anwendungsgebieten bestehen Unterschiede zwischen den beiden Begriffen auf die dann an den betreffenden Stellen eingegangen wird Die G ltigkeit einer Eigenschaft kann anhand der konkreten Implementie rung eines Designs gepr ft werden Dies geschieht auf zwei verschiedene Ar ten So k nnen zum einen klassische simulationsbasierte Verfahren angewen det werden dynamische Verifikation Die Eigenschaften stellen in diesem Fall sicher dass jeder Simulationslauf die Eigenschaften erf llt Bei Verlet zung der Eigensch
142. er Operation geh ren in einer Eigenschaft gekapselt werden ohne dass sie ber verschiedene Zust nde des Automaten hinweg verstreut sind Aus diesem Vorteil ergibt sich jedoch eine weitere Einschr nkung Der Entwurf eines Systems welches aus kleinen Eigenschaften besteht lohnt sich nur sehr selten wenn die L nge der Eigenschaften nur einen Takt betr gt d h mit der klassischen Entwurfsmethodik w ren keine Zwischenzust nde n tig und einer der Vorteile des operationsbasierten Entwurfs geht verloren Ein erfahrener Designer der beide Entwurfsparadigmen kennt wird bei der Untersuchung einer Spezifikation feststellen k nnen ob sich eine Beschrei bung mit Operationseigenschaften lohnt oder doch besser auf die M glich keiten der RT Ebene zur ckgegriffen werden sollte 152 5 2 Anforderungen an den Beschreibungstil 5 2 2 Konzeptionelle Zust nde Bei der formalen Verifikation von Eigenschaften sind die sogenannten kon zeptionellen Zust nde important states von besonderer Bedeutung Sie ver kn pfen eine Eigenschaft die sich ansonsten nur mit Ein und Ausgangs verhalten besch ftigen muss mit dem einer zu verifizierenden Komponente zugrunde liegenden Automaten Die konzeptionellen Zust nde nutzen bli cherweise interne Signale des Moduls wie bspw den Zustand des Automaten Damit wird die formale Verifikation mit Operationseigenschaften zu einem Grey Box Verfahren An einem Beispiel wird dies deutlich Wenn ei
143. eren Signal f r die Freezevariable rechnen muss Man sieht dass die drei Vergleichsoperatoren nicht ohne weiteres zusammengefasst werden k nnen Da nicht jede Annahme unbedingt in einem logischen Wahrheitswert re sultiert und als Ergebnis auch einen Mehrbitvektor liefern kann muss dieser Vektor in einem Zwischenschritt in einen logischen Wahrheitswert Einbit vektor umgewandelt werden Dies geschieht indem das Ergebnis auf Gleich heit mit dem Nullvektor gepr ft wird Der Vergleich kann auch mit Hilfe des logischen disjunktiven Reduktionsoperators in Verilog reduction or durch gef hrt werden An einem Beispiel betrachtet geschieht die Umwandlung der Annahme at t vecl 5 91 4 Synthese von Operationseigenschaften in die funktional quivalente Annahme at t vecl 5 0 mit nur einem Bit Breite Man erh lt nach diesem Schritt eine Menge einzelner Annahmen Dabei kann es auch vorkommen dass mehrere Annahmen zum gleichen Zeitpunkt auftreten Diese werden dann zu einer Gesamtannahme aeApy i mit Api a A time a i zusammengefasst wobei die Menge A alle Annahmen einer Eigenschaft p zum Zeitpunkt i beinhaltet Die Elemente von Aer bzw deren Annah menausdr cke werden danach konjunktiv verkn pft und bilden somit die Gesamtannahme f r diesen Zeitpunkt Das resultierende Signal der Gesamt annahme kann sp ter bei der Synthese des Eigenschaftsgraphen direkt ver wendet werden Falls die Menge Ap
144. eren und hierarchisch zu ordnen So gibt es verschiedene Verkn pfungoperatoren wie bspw Verket tungen Verzweigungen oder parallele Verl ufe Mit Hilfe der Interaktions bersichtsdiagramme kann mit einzelnen Unterdiagrammen Operationen ein Gesamtverhalten modelliert werden Grob betrachtet entsprechen sie den Eigenschaftsgraphen von ITL Operationen Die Diagrammtypen in UML sind nicht in erster Linie dazu gedacht aus ihnen die Implementierung des Systems automatisiert im Sinne eines Synthe sevorgangs zu generieren Weiterhin ist UML vor allem in der Softwareindus trie verbreitet und an deren spezielle Bed rfnisse angepasst Eine ebenfalls standardisierte von UML abgeleitete Modellierungssprache f r den System entwurf ist die Systems Modeling Language SysML OMG10 Diese hat je doch sowohl Zeitverlaufsdiagramme als auch Interaktions bersichtsdiagram me nicht aus UML bernommen weil Bedenken bez glich der Eignung f r den Systementwurf bestanden 2 4 2 Hierarchical Annotated Action Diagram Ein hnlicher Ansatz ist in Cer 98 beschrieben Es wird eine formali sierte Form der Zeitdiagramme definiert die sogenannten Leaf Action Dia grams LAD die jeweils aus einer Menge von Aktionen und zeitlichen Bezie hungen zwischen diesen Aktionen bestehen Eine Aktion weist einem Signal einen Wert zu Wenn das Signal ein Eingangssignal ist entspricht die Zuwei sung dem Verhalten der Umgebung w hrend eine Ausgangssignalzuweisung d
145. erfasst und verwendet Die Bedingung der ITL Anweisung if statically muss statisch zur Synthesezeit ausgewertet werden und je nach Ergebnis wird nur einer der beiden Zweige weiter betrachtet Die beiden Blockschaltbilder in Abb 4 17 zeigen das Syntheseergebnis f r das seq_prev Makro wenn das Argument size den Wert 32 hat und das Argument data einen unbekannten Wert der L nge 16 Bit Aufgrund der bergebenen Werte sind lediglich zwei verschachtelte Aufrufe des Makros notwendig da bereits in der zweiten Stufe der nichtrekursive Zweig des Ma kros gew hlt wird Aus diesem Grund gibt es zwei verschiedene Instanzen des Makros f r jede Rekursionsstufe eine Signale deren konstanter Wert 123 4 Synthese von Operationseigenschaften la N macro seq_prev data bit_vector size numeric bit_vector if statically data length lt size then seq_prev prev data size data length amp data else data size 1 downto 0 end if end macro Abbildung 4 16 ITL Makro zum Zusammenfiigen von Datenworten des sel ben Signals zu unterschiedlichen Zeitpunkten zur Synthesezeit bekannt ist sind diinner gezeichnet und mit dem entspre chenden Wert gekennzeichnet Der Aufruf des gesamten Makros geschieht zum Zeitpunkt t 1 Zeitdomanen Bei der Auswertung und Abbildung von Makros und anderen Ausdriicken ist das Mitf hren der sogenannten Zeitdom ne wichtig Diese dr ckt aus zu welchem Zeitpunkt der Ausdruck ausg
146. ertige Design integriert werden und bieten dort eine Debugging und berwachungsfunktionalit t an Das betrifft die gesamte Lebensdauer des Systems angefangen beim Test nach der Fertigung bis hin zur Anwendung beim Kunden Von einer manuellen Implementierung des Monitors einer Eigenschaft ge hen einige Nachteile aus So kann die resultierende Beschreibung um ein Vielfaches gr er und komplexer werden als die eigentliche Eigenschaft Da durch wird sie fehleranf lliger und sehr schlecht wartbar Auf nderungen in der Spezifikation die eine Anpassung der Eigenschaft und des Checkers erforderlich machen kann somit nur sehr schlecht reagiert werden Weiter hin ist die manuelle bertragung der Operatoren einer Eigenschaft ein sehr aufwendiger Prozess der ein hohes Expertenwissen voraussetzt Monitorgenerierung Die Erzeugung eines Monitorschaltkreises f r einen regul ren Ausdruck ist in HMU06 beschrieben Aus der Regular Expression RE wird ein nicht deterministischer endlicher Automat mit e berg ngen abgeleitet Die e berg nge sind Kanten im Automatengraph die benutzt werden k nnen oh ne ein Eingabesymbol oder einen Zeitschritt zu verbrauchen Sie vereinfachen den hierarchischen Aufbau des Automaten entsprechend des Syntaxbaumes der RE Diese Konstruktion wird auch McNaughton Yamada Konstruktion ge nannt MY60 ber Standardverfahren k nnen die e berg nge entfernt wer den und der Automat in einen deterministischen
147. es muss eine aufwendige Syn chronisation zwischen mehreren Prozessen die jeweils eine Operation bilden durchgef hrt werden MultProc process is begin wait until rising_edge clk if start 1 then done lt 0 P lt others gt 0 for i in A range loop wait until rising edge clk if A i 1 then P lt P 6 downto 0 amp 0 B else P lt P 6 downto 0 amp 0 end if end loop done lt LIT end if end process Abbildung 2 8 VHDL Prozess mit mehreren wait Anweisungen der einen sequentiellen Multiplizierer realisiert ALO8 Ein Beispiel aus AL08 verdeutlicht diese Beschreibungsm glichkeit In Abb 2 8 ist der VHDL Quelltext eines sequentiellen Multiplizierers darge stellt der eine wait Anweisung innerhalb einer for Schleife enth lt Der Mul tiplizierer besitzt zwei 8 Bit Eing nge A und B und das Signal start welches den Beginn der Operation ausl st Das Ergebnis P der Multiplikation enth lt ebenfalls 8 Bit Die Operation findet damit in der Menge der ganzen Zahlen modulo 256 statt Zus tzlich wird ber das Signal done angezeigt dass die Operation fertiggestellt wurde Die Anzahl der Zeitschritte der Operation entspricht damit der Anzahl der Bits in A Wenn die Berechnung beendet ist wird der Gesamtprozess in einer Schleife ausgef hrt sodass die wait Anweisung zu Beginn des Prozesses die Leerlaufoperation repr sentiert Bei der Synthese
148. eschreiben liegt 67 3 Operationseigenschaften als vollst ndige Verhaltensbeschreibung zwar ein bestimmtes Ma an Redundanz vor was aber aus Verifikationssicht kein Problem darstellt Bei der Synthese eines Schaltkreises ist diese Nebenl ufigkeit nicht er w nscht Insbesondere bei der in Abschnitt 4 7 vorzustellenden Erzeugung ei nes deterministischen Automaten muss das Verhalten durch exakt eine Nach folgereigenschaft bestimmt sein Aus diesem Grund wird im weiteren Ver lauf der Arbeit davon ausgegangen dass der Fallunterscheidungstest derart durchgef hrt wird dass jede Eigenschaft unter jeder m glichen Belegung von Eingangssignalen und Zustandsvariablen genau eine Nachfolgereigenschaft besitzt 3 6 3 Nachfolgertest Zus tzlich muss jedoch ein sogenannter Nachfolgertest durchgef hrt werden Dieser pr ft ob eine Nachfolgereigenschaft ihre Aktivierungsbedingungen Annahmen nur aus den Werten der Eing nge herleitet oder aus Signal werten die von der Vorg ngereigenschaft eindeutig festgelegt wurden Der Test pr ft demnach ob zwei aufeinanderfolgende Eigenschaften zusammen passen Zusammen mit dem Fallunterscheidungstest stellt der Nachfolgertest sicher dass jede Eingangsfolge in exakt einer Folge von Eigenschaften m n det Die Unterscheidung welche Signale bei diesen Tests die Eingangssignale darstellen wird im Abschnitt inputs der Vollst ndigkeitsbeschreibung durch Auflistung der entsprechenden Signalnam
149. etrachtet TL Makros k nnen jedoch auch sequentielle Schaltungen beschreiben solange diese kei ne kombinatorischen R ckf hrungen enthalten Die beiden zur Verf gung stehenden zeitlichen Operatoren sind prev und next Sie lesen ein Signal zu einem Zeitpunkt der eine bestimmte Anzahl Takte vor oder nach dem ak tuellen Zeitpunkt liegt Der prev Operator kann direkt auf ein gew hnliches D Flip Flop abgebildet werden Durch rekursive Anwendung des prev Operators ist es weiterhin m glich ein Signal ber eine Dauer von mehreren Takten zusammenzusetzen und dann als kompletten Datenrahmen zu bearbeiten Dies kann n tzlich sein 58 3 4 Eigenschaftsgraph N macro reverse data bit_vector bit_vector if statically data length gt 2 then reverse data data length div 2 1 downto 0 amp reverse data data high downto data length div 2 else data end if end macro Abbildung 3 5 Makro zum Umkehren der Reihenfolge der Bits eines Vektors um beispielsweise eine Pr fsumme ber einen Datenrahmen zu bilden ohne in den Eigenschaften explizite Register zum Speichern der einzelnen Worte vorzusehen Im Falle des next Operators ist jedoch keine direkte Abbildung in Hardwa re m glich da kein Grundelement existiert welches zuk nftige Werte eines Signals voraussagen kann Durch Verschieben der zeitlichen Operatoren im Datenpfad hnlich Retiming in aktuellen Synthesewerkzeugen kann even tuell
150. ety Jan 1972 ISBN 0821816632 Timothy J Rolfe On a fast integer square root algorithm In ACM SIGNUM Newsletter 22 4 1987 S 6 11 ISSN 0163 5778 Shmuel Safra On The Complexity of Omega Automata In Foundations of Computer Science FOCS IEEE 1988 S 319 327 Hans Sahm Joachim Kn blein Andreas Prei Mathias Kop pin Jan Langer Ingmar Seifert und Daniel Fro Die Not wendigkeit formaler Methoden fir Kommunikations SoCs In Kooperations und Fachworkshop Verifikation Hannover Ger many edacentrum 2007 Martin Schickel Applications of Property Based Synthesis in Formal Verification Dissertation Technische Universitat Darmstadt 2009 Christian Schrader FPGA Implementierung eines Partikelfil ters Diplomarbeit Technische Universit t Chemnitz 2010 Literaturverzeichnis She05 She84 Sie05 SP01 Ste90 TBF05 Urd 10 Var01 WT85 Mary Sheeran Hardware Design and Functional Programming A Perfect Match In Journal of Universal Computer Science JUCS 11 7 2005 S 1135 1158 Mary Sheeran muFP a Language for VLSI design In LISP and Functional Programming LFP Austin TX USA ACM 1984 S 104 112 Robert Siegmund Ein Verfahren zur Spezifikation von Pro tokollen f r die Verifikation und Synthese protokollorientierter digitaler Systeme Dissertation Technische Universit t Chem nitz 2005 Reetinder
151. ewertet wird Die Zeitdom nen richten sich nicht nach Makrogrenzen und ver ndern sich bei jedem Auftreten eines zeitlichen Operators Bei prev verringert sich der Zeitwert um die entspre chende Anzahl Zeitschritte w hrend er sich bei einem next erh hen w rde wenn dieser Operator denn implementierbar w re vgl Abschnitt 3 3 3 Wird ein Argument eines Makros in mehreren Zeitdom nen gleichzeitig genutzt siehe Argument data im Beispiel muss es auch mehrfach berge ben werden In Abb 4 17a existieren deswegen zwei Eingangsports f r das Signal data Der Port data 0 stellt das Signal zum Zeitpunkt 0 bereit w hrend data 1 zum darauf folgenden Zeitpunkt das korrekte Ergebnis lie fert Einziger Grund f r die Zeitdom nen und diese mehrfache bergabe sind die Freezevariablen Das Signal einer Freezevariablen ist je nach Zeitdom ne verschieden Die Verwendung einer Freezevariablen f in einer Zeitdom ne vor dem Freezezeitpunkt time f ist generell nicht zul ssig Die Zuordnung geschieht anhand der Signale fi oder fa die in Abschnitt 4 5 4 entspre chend der beiden alternativen Implementierungsvarianten definiert wurden In Abb 4 18 sind zwei verschiedene Aufrufe des Makros seq_prev darge stellt Zum einen kann beim direkten Aufruf mit einem Eingangssignal insig das entsprechende Signal unmittelbar mit allen Zeitdom nen verkn pft wer 124 4 9 Abbildung in Hardware seq_prev 0 data 1 4 length W lt LO si
152. ft Bei der Modellierung von Pipelines vereinfacht diese Angabe die Durchf hrung des Determinierungs tests Die zweite Form der Determinierung kommt zum Einsatz wenn der Wert eines Ausgangssignals nur von Bedeutung ist wenn eine bestimmte Bedin gung eintritt So h ngt beispielsweise die Determiniertheit des Datenausgangs eines Speichers evtl von der Aktivierung eines Lesesignals ab Die Syntax dieser Form wird mit dem Schl sselwort if eingeleitet und sieht wie folgt aus if Bedingung then determined Signalname end if end__offset Verz gerung 3 6 5 Resettests Zus tzlich zu diesen drei Tests m ssen f r den Resetfall abgewandelte Formen der anderen Tests genutzt werden Diese als Resettests bezeichneten Pr fun gen beweisen somit die entsprechenden Fragestellungen vor dem Hintergrund der speziellen Gegebenheiten der Reseteigenschaft 3 6 6 Trivialdesign Die Beweisf hrung der Tests h ngt nicht von einem tats chlichen Hardware entwurf ab Sie werden vielmehr auf einem trivialen Design durchgef hrt welches zwar alle Signale und deren Datentypen kennt jedoch kein weite res Verhalten implementiert Die Ausg nge und internen Signale besitzen im Trivialdesign keinen Treiber d h sie k nnen zu jedem Zeitpunkt einen der Werte ihres Wertebereichs frei ausw hlen Demnach kann eine Menge von Eigenschaften auf Vollst ndigkeit gepr ft werden kann ohne dass bereits eine Implementierung vorliegt Dies hilft da bei F
153. gangssignale zum Zeitpunkt t_end DELAY stattfinden l sst Bei ei nem Wert von drei Takten wird dabei die h chste Taktfrequenz von 8 6 MHz erreicht Ohne Retiming wird eine Frequenz von lediglich 4 4 MHz erreicht Die Anzahl der Register betr gt 4698 w hrend sie mit Retiming um 43 dar ber bei 6764 liegt Der rein kombinatorische Logikaufwand steigt durch das Retiming um nur 5 Dabei tritt die Frage auf warum h here Werte kein noch besseres Retiming erm glichen und damit auch h here Frequenzen Dies ist darin begr ndet dass mit h herer Verz gerung die Eigenschaften mehr berlappen d h der berlappungsfaktor entsprechend Abschnitt 4 6 5 wird sehr gro Dies f hrt wiederum zu einem erheblich aufwendigeren Kontrollautomaten der die Lo giksynthese und damit auch das Retiming behindert 6 3 3 Verifikation Jede einzelne Komponente des Partikelfilters wurde mit dem formalen Verifi kationswerkzeug 360MV gepr ft Es konnte durch die sukzessive Anwendung der Vollst ndigkeitspr fung w hrend der Entwicklung der einzelnen Kompo nenten sichergestellt werden dass die Eigenschaften eine vollst ndige und eindeutige Beschreibung des gew nschten Verhaltens sind Bei der Pr fung des Moduls updater konnten einige Tests aufgrund von Komplexit tsproblemen nicht durchgef hrt werden Dies ist durch die kom plexen Datenpfadoperationen in der Gewichtsberechnung bedingt Fro 10 Eine erfolgreiche Vollst ndigkeitspr fung bedeutet j
154. gemein basiert die Pr fung darauf dass das Verhalten des Systems in Operationen aufgeteilt wird Jede dieser Ope rationen definiert das gesamte Verhalten w hrend eines beschr nkten Zeit abschnitts Durch Aneinanderreihen verschiedener Operationen und durch 49 3 Operationseigenschaften als vollst ndige Verhaltensbeschreibung Pr fen der berg nge zwischen diesen ist automatisch das Gesamtverhalten beschrieben Eine Operation wird durch exakt eine temporale Eigenschaft ab gebildet Diese Eigenschaften werden dann Operationseigenschaften genannt Um den bergang zwischen Eigenschaften zu gew hrleisten werden so genannte conceptual states als wichtige oder konzeptionelle Systemzust nde definiert Jede Eigenschaft muss in einem solchen Zustand starten und en den Gleichzeitig stellen diese Zust nde sicher dass die Eigenschaft auf dem Design nur ausgehend von diesem Startzustand gepr ft wird Aus der Definition der Operationen als Beschreibung des Komponenten verhaltens w hrend eines festen Zeitabschnitts l sst sich ableiten dass die Modellierung mittels Operationseigenschaften nicht f r jede Art Komponen te geeignet ist So ist es sehr umst ndlich parallele Funktionalit t zu mo dellieren Ein System muss deshalb in mehrere Bl cke aufgeteilt werden die einzeln mit Operationseigenschaften beschrieben werden k nnen Die so ent standenen Bl cke werden Cluster genannt und m ssen nicht den tats chlichen Elementen der Har
155. gszeitpunktes in den Argumenten des Makros hervorrufen Ein Beispiel kann dies verdeutlichen Die Zusicherung mit dem ITL Quelltext at t43 sig prev f makrol f w rde im Falle einer Implementierung des Makros makro1 als macro makrol x numeric numeric prev f 2 f end macro zu einer Menge fsupp z f 1 f 2 f 3 f hren da die Freezevariable f jeweils zu den Zeitpunkten t 1 t 2 und t 3 abgegriffen wird 94 4 5 Auswertung der Eigenschaften In einem zweiten Schritt werden die Tupel in der fsupp Menge in qui valenzklassen eingeteilt die den Stufen der Freezevariablenimplementierung entsprechen Wenn in obigem Beispiel die Freezevariable f zum Zeitpunkt t 2 und t 3 aus dem Ausgang der selben Registerstufe bspw Dn a stammt und zum Zeitpunkt t 1 unmittelbar aus dem Netz des Freezeausdrucks fo kommt kann die Menge f 1 f 2 f 3 in fsupp z fo nal berf hrt werden Man beachte an dieser Stelle dass time f 1 angenom men wurde sodass die Indices der zweiten Menge um 1 nach vorn verschoben sind Der dritte und letzte Schritt bestimmt alle Zusicherungen deren Ausdrticke bzw die entsprechenden Hardwarerepr sentationen isomorph sind z1 S z2 und deren fsupp z gleich ist F r diese gleichen Zusicherungen wird dann nur eine Instanz der n tigen Hardware implementiert In der folgenden Bedingung gibt der Ausdruck z z2 an dass zwei Zusicherungen quiv
156. h eine konkrete Zusicherung out in 1 ersetzt In vhisyn wird nur die direkte Zuweisung mit unterst tzt Zwei Gr nde sprechen gegen eine Verfolgung der eben beschriebenen Ans tze zur Ermitt lung des Zuweisungswertes Zum einen kann sich der entstehende Berech nungsaufwand von Fall zu Fall stark unterscheiden und zum anderen sind in Hardwarebeschreibungen Freiheitsgrade bzgl mehrerer Implementierungsva rianten nicht w nschenswert Eine davon unabh ngige Beobachtung betrifft die Datentypen des Signals und des zugewiesenen Ausdrucks Wenn sich beide unterscheiden stellt sich die Frage wie die Zuweisung auszusehen hat wenn der Ausdruck Werte an nimmt die im Wertebereich des Signals nicht verf gbar sind Das Problem ist schnell gel st da der Vollst ndigkeitstest sicherstellt dass der Vergleich zwischen Signal und Ausdruck immer erfolgreich ist Das bedeutet im Um kehrschluss dass der Ausdruck nie einen Wert annehmen kann der au er halb des Wertebereichs des Signals liegt Es gen gt demnach eine korrekte Zuweisung in der Schnittmenge der Wertebereiche sicherzustellen Wenn der Ausdruck bspw einen gr eren Wertebereich hat k nnen h herwertige Bits einfach verworfen werden 148 5 1 Technische Einschr nkungen Zusicherungen vor der linken Grenze der Eigenschaft In Abschnitt 4 5 5 wurde erl utert dass Annahmen wenn sie vor der linken Grenze left_hook der Eigenschaft liegen verz gert werden m ssen Dies war
157. h nicht vorkommt 3 4 2 Darstellung in ITL Der ITL Eigenschaftsgraph stellt diesen Kantengraph dar Die konzeptio nellen Zust nde sind im Eigenschaftsgraph nicht explizit enthalten sondern entsprechen seinen Kanten Um in der formalen Verifikation dem Beweis werkzeug den Nachweis einer Eigenschaft f r das RT Design zu erm glichen ist es deshalb n tig die konzeptionellen Systemzust nde in den Eigenschaften zu verankern Im Gegensatz dazu k nnen ITL Komponenten ohne Beschrei bung der konzeptionellen Zust nde in den Eigenschaften auskommen wenn sie nicht f r formale Verifikation sondern ausschliesslich f r die Synthese ver wendet werden In Abschnitt 5 2 2 wird diese Tatsache aus Sicht der Synthese n her untersucht Neben den eigentlichen ITL Eigenschaften muss in einer vollst ndigen Be schreibung auch ein Abschnitt completeness enthalten sein Dieser besteht wiederum aus mehreren Teilen Sie sind vorrangig f r die formale Verifikation notwendig und werden deshalb an dieser Stelle nur auszugsweise beschrieben So stellt der Teil property__graph die textuelle Beschreibung des Eigen schaftsgraphen dar In Abb 3 8 ist der den Eigenschaftsgraph betreffende Teil einer Vollst ndigkeitsbeschreibung dargestellt Es werden nur die Kan ten des Graphen beschrieben Links des Pfeils befindet sich die jeweilige Vor g ngereigenschaft und rechts des Pfeils der Nachfolger Durch Auflistung von mehreren Eigenschaften auf einer oder beiden Seite
158. hen den charakteristischen Systemzust nden zu betrachten Ihre Abarbeitung ben tigt oftmals mehr als einen Takt In manchen Anwendungsf llen kann die L nge der Eigenschaft bis zu mehreren hundert oder tausend Takten be 60 3 4 Eigenschaftsgraph tragen Ein Beispiel ist die Verarbeitung von langen Datenrahmen im Tele kommunikationsbereich Jeder Rahmen kann durch eine einzige Eigenschaft beschrieben werden wodurch eine intuitive und der originalen Spezifikation entsprechende Systembeschreibung entsteht Die Systemzust nde wie bspw der Start und das Ende eines Rahmens werden in der formalen Verifikation konzeptionelle Zust nde conceptual states genannt und ergeben sich impli zit aus den Start und Endzust nden der Eigenschaften Man kann also den Eigenschaftsgraph als Kantengraph des Zustandsautomaten der wichtigen Systemzust nde ansehen Demnach ist es m glich den Eigenschaftsgraph aus den konzeptionellen Systemzust nden abzuleiten Dazu m ssen zun chst alle Systemzust nde identifiziert werden Diese k nnen bspw Beginn und Ende einer komple xen Busoperation oder mehrstufigen Berechnung sein Aus diesen Zust n den kann nun ein Zustandsautomat f r das System erzeugt werden Jeder m gliche bergang zwischen zwei Systemzust nden entspricht dabei einer Eigenschaft Die bergangsbedingungen repr sentieren die Annahmen der jeweiligen Eigenschaft w hrend die Zusicherungen den Ausgaben des Auto maten entsprechen We
159. hese von Operationseigenschaften e N assume at t 1 seq_prev insig 32 X F6F6A2A2 OxF6F62828 a Aufruf mit Inputsignal freeze f insig t assume at t 1 seq_prev f 32 X F6F6A2A2 Freezevariable size 1 data 0 out b Aufruf mit Freezevariable OxF6F62828 Abbildung 4 18 Hardwareabbildung des Aufrufs von Makro seq_prev von der obersten Ebene in die aktuelle Aufrufebene hinein verbunden und genutzt Dabei kommen auch die lokalen Signalverzeichnisse als Zwischen speicher zum Einsatz und verhindern dass ein Signal mehrfach ber die verschiedenen Ebenen hinweg verbunden wird Verz gerte und bedingte Auswertung Ein weiterer Punkt der mit der Ber cksichtigung der Freezevariablen zu sammenh ngt ist die verz gerte Auswertung von Makroargumenten Da je de Auswertung in einer bestimmten Zeitdom ne stattfinden muss und beim Aufruf eines Makros die Zeitdom nen seiner Argumente noch nicht festste 126 4 9 Abbildung in Hardware hen muss die Auswertung der Argumente verz gert werden bis sie im Ma krok rper ben tigt wird und auch die konkrete Zeitdom ne feststeht Um die Anweisung if statically korrekt auswerten zu k nnen d rfen die beiden Verzweigungsk rper nicht sofort ausgewertet werden Es muss zuerst auf das Ergebnis der Verzweigungsbedingung gewartet werden um dann in A
160. ht Dieser Zeit raum startet immer zu einem beliebigen Zeitpunkt t sodass alle Zeitpunkte die in der Eigenschaft benutzt werden relativ zu t ausgedr ckt werden Der Zeitpunkt zwei Takte nach t wird demnach mit t 2 bezeichnet Die grund legende Struktur einer ITL Eigenschaft ist in Abb 3 2 gegeben Sie besteht aus mehreren Abschnitten von denen die Abbildung allerdings nur diejenigen darstellt die in der vorliegenden Arbeit von Bedeutung sind 3 2 1 Zeitvariablen Der erste Abschnitt wird mit for timepoints eingeleitet und enth lt eine Menge von Konstanten die Kurzbezeichner f r die relevanten Zeitpunkte der Eigenschaft festlegen Dadurch kann die Eigenschaft selbst wesentlich ber sichtlicher und kompakter dargestellt werden Weiterhin k nnen im sp teren 51 3 Operationseigenschaften als vollst ndige Verhaltensbeschreibung N property Eigenschaftsname is for timepoints t_start t 2 L end t_start 2 freeze Freezel Ausdruck t 1 assume at t_start Annahmel at t_start l Annahme2 prove at t_start 1 Zusicherungl during t_start 1l t_end Zusicherung2 left_ hook t_start right_ hook t_end end property Abbildung 3 2 Syntax einer ITL Eigenschaft Entwurfsverlauf diese Zeitvariablen zentral ge ndert werden was die Fehler anfalligkeit des Quelltextes reduziert 3 2 2 Freezevariablen Ein weiteres Element einer Eigenschaft welches der Ubersichtlichkeit dient und
161. ht ist Die Anzahl der Zust nde kann mit 4 3 972 abgesch tzt werden Die tats chliche Anzahl der Zust nde die vhisyn f r dieses Beispiel erzeugt betr gt 1132 was in der gleichen Gr enordnung liegt 107 4 Synthese von Operationseigenschaften last p wee k 2 k we K 2 k 1 wee k 2 k 1 wee k 2 k 1 Abbildung 4 12 Abgerollter Eigenschaftsgraph von n gleichartigen Eigen schaften mit vollstandiger Verkniipfung Der generelle Fall der von diesem Beispiel abgeleitet werden kann ist eine Anzahl von n gleichartigen Eigenschaften die mit left p 0 right p I und last p k 1 ihre Grenzen definieren In dem vollst ndigen Eigen schaftsgraph kann jede Eigenschaft kann auf jede andere folgen In Abb 4 12 ist ein solches Szenario in Form des entsprechenden abgerollten Eigen schaftsgraphen dargestellt Die Zeitkanten sind nicht dargestellt Die exakte Anzahl der Zustande fiir den abgeleiteten NEA kann in diesem Fall durch die Formel lon l u u l u 2 L P S n n Hn N aq tk l u n 1 angegeben werden Auf das vorgenannte Beispiel angewandt berechnet diese Formel den Wert 1132 Der massgebliche Anteil der Formel ist l n f r gro e n und k mod l 0 womit er in die Komplexit tsklasse Lei e OU n f llt Davon l sst sich ein allgemeinerer Fall ableiten Der Eigenschaftsgraph ist nicht vollst ndig besteht jed
162. htdeterministischen Konstruktionsverfahrens dar 4 6 2 Nichtdeterministische endliche Automaten Zuvor muss allerdings gekl rt werden was ein NEA ist Entsprechend HMU06 unterscheidet sich ein nichtdeterministischer von einem determinis tischen endlichen Automaten DEA durch Zustands berg nge deren ber gangsbedingungen sich nicht gegenseitig ausschliessen Damit k nnen zu ei nem bestimmten Zeitpunkt mehrere m gliche Nachfolgezust nde aktiviert 98 4 6 Konstruktion des nichtdeterministischen Kontrollautomaten werden Synthetisierbare Hardwarebeschreibungen k nnen prinzipiell nur de terministisches Verhalten aufweisen Wenn ein NEA in Hardware abgebildet werden soll muss dieser vorher entweder in einen quivalenten DEA umge wandelt oder sein Verhalten durch einen DEA emuliert werden wie dies in SPO1 beschrieben wird Auf die dabei entstehenden Probleme wird im weiteren Verlauf dieses Abschnitts eingegangen Um die Notwendigkeit von nichtdeterministischen Automaten in verschie denen Anwendungsbereichen zu demonstrieren soll ein Beispiel pr sentiert werden Beim automatisierten Verarbeiten von Zeichenketten kommen oft regul re Ausdr cke engl Regular Expressions REs zum Einsatz vgl Ab schnitt 2 2 1 Diese Ausdr cke entsprechen NEAs deren Eingabe die zu ver arbeitende Zeichenkette ist und deren Ausgabe eine Ja Nein Entscheidung darstellt die angibt ob der regul re Ausdruck auf die Zeichenkette pass
163. iche Eigen schaftsl ngen sowie der Ressourcenverbrauch im Vergleich zu alternativen Beschreibungsmethoden wurden untersucht 7 2 Ausblick Weiterf hrende Arbeiten sollten versuchen die Anforderungen an eine syn thesef hige ITL Beschreibung zu lockern Insbesondere Intervalle in Zeitva riablen sind mit der vorliegenden Methodik prinzipiell umzusetzen und bie ten die M glichkeit Eigenschaften variabler L nge zu verwenden Dies ist insbesondere f r die Beschreibung von Wartezyklen in Kommunikationspro tokollen sehr hilfreich Damit vergr ert sich die Menge an Anwendungen in denen Operationseigenschaften eine sehr effiziente L sung darstellen Wei terhin kann die Nutzerakzeptanz unter den Entwerfern erh ht werden wenn einige der nicht unterst tzten Operatoren wie temporale Makros foreach oder let zur Verf gung stehen Intensive Untersuchungen sind notwendig um nicht vorhersagende Ver wendungen des next Operators aufzul sen oder Zusicherungen zu unterst t zen die nicht in der Form out Ausdruck vorliegen In den entsprechenden Abschnitten wurden dazu bereits m gliche L sungsans tze skizziert Weiteres Verbesserungspotential bietet die Optimierung bzw Wiederver wendung funktional gleicher Ausdr cke oder Teilausdr cke Durch eine Opti mierung auf ITL Ebene k nnte das Logiksynthesewerkzeug entlastet werden und das generierte VHDL Design bersichtlicher und kleiner werden Zum Teil wurde dies f r Zusicherungen
164. ichen Parametern verwendet werden k nnen und diese F lle nicht nur zu unterschiedlichen Instanzen son dern zu komplett unterschiedlichen Moduldefinitionen f hren m ssen ist es erforderlich das Modul bez glich der verwendeten Parameter konfiguration eindeutig zu machen Dazu wird an den Modulnamen die Liste der Parameterwerte angeh ngt Aus der folgenden Kompo nenteninstanziierung in der die drei Parameter M SWIDTH und MWIDTH auf die Werte 8192 14 und 32 gesetzt werden rs component resampler M gt 8192 SWIDTH gt 14 WWIDIH gt 32 ensteht damit ein Modul mit dem Namen resampler M 8192 SWIDTH 14 WWIDTH 32 Jede Instanziierung einer Komponente die eine unterschiedliche Para meterkonstellation verwendet erzeugt damit ein eigenes Modul Rekursive Ausf hrung des gesamten Entwurfsflusses f r das Submodul Sofern das Submodul in exakt der gleichen Parameterkonfiguration noch nicht erstellt wurde wird es nun beginnend mit der Auswertung seiner Strukturbeschreibung generiert Falls das Submodul mit diesen Parametern in der momentanen Synthese bereits vorher benutzt wur de kann man es wiederverwenden und es wird direkt mit dem n chsten Schritt fortgefahren Instanziierung des Submoduls im aktuellen Modul Von dem neu erstellten oder wiederverwendeten Submodul wird eine Instanz im aktuellen Modul angelegt Der Name der Instanz ist Teil der component Anweisung Bezeichner rs im obigen Beispiel und wird direkt
165. icherzeitpunkt noch ver wendet werden kann muss er mit Hilfe von Registern zwischengespeichert werden Eine erste und einfache Umsetzung sah vor dass f r jeden betroffe nen Zeitpunkt ein eigenes Register zur Verf gung stand Damit wird bei sehr 85 4 Synthese von Operationseigenschaften Eing nge Freezeausdruck FF FF FF fo fi f2 fs Abbildung 4 3 Zwischenspeichern einer Freezevariable mit Hilfe einer Kette von Registern langen Eigenschaften eine gro e Menge an Registern ben tigt In Abb 4 3 ist die dabei entstehende Hardware abgebildet Der Freezeausdruck legt dabei den zu speichernden Wert in jedem Zeitschritt an fo an wobei er nat rlich nur zum Zeitpunkt time f auch g ltig ist An den Ausg ngen f liegt somit immer zum Zeitpunkt time f Hi der korrekte Wert an Die Kette muss dabei so lang sein dass f r das gesamte Freezeinterval ein Ausgang zur Verf gung steht Der maximale Wert von i ist last p time f Analyse der Eigenschafts berlappung Durch den beschriebenen Ansatz Freezevariablen abzubilden lassen sich sehr lange gering berlappende Eigenschaften nur sehr ineffizient synthetisieren Das ist vor allem damit begr ndet dass zum einen viele Register notwen dig sind zum anderen aber auch die Optimierung der Zusicherungen nicht m glich ist siehe Abschnitt 4 5 6 Aus diesem Grund ist es notwendig eine Freezevariable in einem Register zu speichern und dann in
166. ichtig waren Weiterhin bedanke ich mich bei Prof Dietmar M ller der mir vor elf Jahren eine Stelle als studentische Hilfskraft am SSE anbot und mich seitdem in vielerlei Hinsicht unterst tzt hat Ein besonderer Dank gilt auch den Entwicklern der wundersch nen Pro grammiersprache Python die es erm glicht hat dass die Implementierungs arbeiten an vhisyn wahrscheinlich nur ein anstatt drei Jahre ben tigt haben und es ein berschaubareres St ck Software geblieben ist Mein gr ter Dank geb hrt meinen Eltern und meiner Schwester die mich zu einem ehrgeizigen Menschen erzogen haben sowie Jessica weil sie alle immer hinter mir standen und mich unterst tzt haben 15 1 Einleitung und Motivation 1 1 Operationen als Entwurfsebene Der Entwurf integrierter Schaltkreise wird in der Regel auf der Register Transfer Ebene RTL durchgef hrt Dabei kommen synchrone Taktsignale zum Einsatz deren Flanke einen bergang des Systems von einem Zustand zum n chsten verursacht Die Designbeschreibung besteht dabei zum einen aus Elementen die den Zustand speichern und Elementen die die ber gangsfunktion realisieren W hrend die speichernden Elemente Register bei einem Entwurf auf RTL explizit angegeben werden m ssen kann die bergangsfunktion mit Hilfe einer Vielzahl von Konstrukten implementiert werden Dazu z hlen neben einfachen Gattern f r boolesche Funktionen auch aufwendige arithmetische Operatoren wie bspw die Integerdivis
167. ie rungbibliothek Nlview von Concept Engineering dar Con11 Das bereits bekannte Beispiel des Makros seq_prev wird in Abb 6 9 durch Nlview dargestellt ber jedem Block steht dabei der Name der Instanz im Format _inst_1 lt Zeile gt _c lt Spalte gt _ lt Id gt wobei Zeile und Spalte die Stelle des Tokens im Quelltext kennzeichnen das diesem Block entspricht 172 6 6 Visualisierung des Zwischenformats inst_1844_c13_4 data 0 in inst 1344_c4 2 inst 10_c 1_3 ini out E ut inst_1343_c2_9 SES _inst_1344_c52_8 Du _cal seq_prev 1344_c4 2 eege CH d _static_if 1 1 42 1 _0p 8 10 432 42 inst 1343_c28_1 out d _eonst 1 1 _op prev 32 1 T 32 0 32 size 1 gt _inst_1344_c37_6 inst_1344_c24_7 data 1 inst 1344_c43_5 _ rout _op unsigned s 9 10 49 10 _op length 82 8 32 _op minus 8 42 6 32 s 910 _op length 32 8 32 in _Op lt 6 92 6 42 1 1 Abbildung 6 9 Visualisierung einer Instanz des Makros seq__prev aus Abb 4 16 und Abb 4 17a mit Hilfe der Nlview Bibliothek Unterhalb des Blocks wird der Name des Moduls dargestellt Das Pr fix __op kennzeichnet grundlegende Hardwareoperatoren Der Be zeichner beinhaltet in diesem Fall nicht nur den Namen des Opera tors sondern auch die Breite und Signedness der Argumente und des Riickgabetyps Falls einer dieser Werte zur Synthesezeit als Konstan te feststeht ist auch diese Information im Bezeichner kodiert
168. ie Eigenschaften mit dem erzeug ten Entwurf erfolgreich gepr ft werden Allerdings taucht ein neues Problem auf Der Nachfolgertest der Vollst n digkeitspr fung wird fehlschlagen da er die erzeugte Beschreibung nicht ver wenden darf und demnach nicht feststellen kann dass das Ende der Vor g ngereigenschaft den Beginn der Nachfolgereigenschaft impliziert Formal ausgedr ckt fehlt ihm das Wissen ber P succ p KEN Up right p gt Vq left a 6 1 um den konzeptionellen Endzustand mit dem gleichzeitigen konzeptionellen Startzustand der n chsten Eigenschaft in Beziehung zu setzen Diese Er kenntnis f hrt direkt zur L sung des Problems indem end_ prop umdefi niert wird sodass es als Konjunktion der Startzust nde aller Nachfolgerei genschaften definiert wird succ prop end_prop N Wq left q q 157 6 Ergebnisse Damit ist sowohl die Eigenschaftspr fung erf llt als auch der Nachfolgertest der das Wissen aus Gleichung 6 1 nicht mehr ben tigt Die im weiteren Verlauf dieses Kapitels vorgestellten beiden Fallstudien konnten mit Hilfe dieses Verfahrens die Eigenschaften erfolgreich am gene rierten Modell beweisen und somit die korrekte Funktionsweise von vhisyn exemplarisch nachweisen 6 1 2 Fehlende Constraints Ein weiteres Problem ist die Tatsache dass beim Entwurf mit Operationsei genschaften keine Contraints notwendig sind siehe Abschnitt 5 1 5 Um eine formale Eigenschaftspr fung durchzuf h
169. iele Gemeinsamkeiten mit den in dieser Arbeit beschriebenen Ope rationseigenschaften Obwohl keine Synthese von HAAD bekannt ist wird in OC99 ein Mo nitor generiert der berpr ft ob das Verhalten eines Systems dem HAAD entspricht Im Falle einer Nicht bereinstimmung wird dies als Fehler signa lisiert 2 4 3 Operationen im Entwurf VHDL Prozesse mit mehreren wait Anweisungen Ein sch nes Beispiel daf r dass das Denken in Operationen bereits im Ent wurf von Schaltkreisen Anwendung findet ist der aktuelle Standard f r syn thesef higes VHDL IEEE04 Er erlaubt in einem synchronen sequentiellen Prozess die Verwendung von mehreren wait Anweisungen die auf dieselbe Taktflanke reagieren Mit Hilfe dieses Konstruktes kann in einem Prozess ein Verhalten beschrieben werden das sich ber mehrere Taktzyklen erstreckt und damit sozusagen eine Operation im Sinne dieser Arbeit darstellt Das Synthesewerkzeug ist bei einer solchen Beschreibung gezwungen einen impli ziten Automaten zu erstelllen der den Kontrollfluss steuert Aus Sicht eines Hardwareentwerfers ist dies unter Umst nden nicht immer erw nscht da die Transparenz zwischen VHDL und entstehender Netzliste leidet Um ein Systemverhalten realisieren zu k nnen das aus mehreren Operationen be steht m ssen diese entweder alle in einem Prozess zusammengefasst werden 45 2 Grundlagen temporaler Eigenschaften und ihrer Synthese z B durch Verzweigungen oder Schleifen oder
170. in Abb 6 2 illustriert Die Eigenschaft in 6 2a wird direkt in die Hardware aus 6 2b abgebildet Dabei kommt im gegebenen Beispiel die 158 6 2 Zusammenspiel mit der Logiksynthese property prop is freeze fa opl t 1 fb op2 t 2 prove at t 5 c funcl func2 fa fb end property a Fragment einer ITL Eigenschaft fa faz fa3 fa Spi FF FF FF FF _ fas A A A A y 5 E en fb fba pf fb ke 5 2 3 4 op2 FF DIFF 194 FF A A A b Hardwarerealisierung vor dem Retiming FF FF op1 mg i 4 DNS z o FF D FF Kanes c Re gt gt c prop 5 2 A 2 A er FL A c Hardwarerealisierung nach dem Retiming Abbildung 6 2 Illustration von Retiming anhand einer Eigenschaft mit Free zevariablen Registerkettenimplementierung von Freezevariablen zum Einsatz Ohne Reti ming entsteht dabei eine Kette von Registern die die Eing nge der Schaltung um die gew nschte Anzahl von Takten verz gert Danach schlie en sich die beiden Datenflussoperationen func1 und func2 an die rein kombinatorische Bl cke mit hoher Verz gerung darstellen Es k nnen nun unter Beibehaltung der urspr nglichen Funktionalit t die Register der Kette durch die kombina torischen Bl cke hindurch verschoben werden wie bspw in 6 2c zu erkennen ist Dadurch wird der bisher sehr
171. in Hardware abbildbaren Automaten berf hrt werden Alternativ kann der Nichtdeterminismus auch direkt in einen Schaltkreis bertragen werden SP01 Die Komplexit t der erzeugten Schaltung entspricht der Komplexit t der RE Diese Art der Hard warerepr sentation eines regul ren Ausdrucks findet unter anderem in der 33 2 Grundlagen temporaler Eigenschaften und ihrer Synthese Erkennung von sch dlichen Aktivit ten in Netzwerkpaketen MNBO7 oder in der Bioinformatik beim DNA Sequenzmatching SP01 Anwendung Bei der Generierung von Monitorschaltkreisen f r LTL Formeln kann ent sprechend BZ08 entweder eine automatenbasierte oder ein modulare Me thodik verwendet werden Pionierarbeit auf diesem Gebiet wurde durch das Werkzeug FoCs von IBM geleistet das Eigenschaften in PSL bzw dessen Vorg nger Sugar verarbeiten kann Aba 00 Es gilt als Benchmark f r viele weitere Monitorgeneratoren Aufgrund seiner kommerziellen Natur ist wenig ber seine innere Funktionsweise bekannt Urspr nglich wurden Monitore als Software erzeugt die im Simulator die Eigenschaft berpr fen In sp teren Versionen ist allerdings auch eine Ausgabe der Automaten als VHDL oder Verilog Beschreibungen vorgesehen Damit sind auch Anwendungen in der Emulation bzw im Feldeinsatz m glich FoCs unterst tzt nicht den kom pletten Funktionsumfang von PSL So existiert keine Konvertierung f r OBE der bereits genannten Erweiterung von PSL f r CTL Formeln E
172. indeutige Folge von Ausgangsvektoren Wenn diese Abbildung nachgewiesen werden kann ist das Verhalten einer Komponente vollst ndig beschrieben Die Er f llung dieses Kriteriums ist allerdings nur durch einen Umweg zu erreichen So wird in einem ersten Schritt sichergestellt dass jede g ltige Eingangsfolge eindeutig auf eine Folge von Eigenschaften abgebildet werden kann In ei nem weiteren Schritt muss infolgedessen gepr ft werden ob jede Folge von Eigenschaften auch die Signalwerte an den Ausg ngen des Designs eindeutig bestimmt 3 6 2 Fallunterscheidungstest Der erste Schritt wird durch zwei Tests nachgewiesen Zum einen existiert ein Fallunterscheidungstest case split test der feststellt ob f r jede Vorg nge reigenschaft und Eingangsbelegung eine Nachfolgereigenschaft bestimmt ist Wenn dieser Test f r jede Eigenschaft erf llt ist kann man sicher sein dass f r jede Folge von Eing ngen eine Folge von Eigenschaften existiert Der von den Onespin Werkzeugen verwendete Fallunterscheidungstest pr ft ob mindestens eine Nachfolgereigenschaft existiert Dadurch gelten auch Eigenschaftss tze als vollst ndig in denen nebenl ufig mehrere Eigen schaften aktiv sein k nnen Wenn diese parallelen Eigenschaften sich wider sprechendes Ausgabeverhalten aufweisen kann kein zugeh riger Schaltkreis existieren sodass dieser Fall nicht betrachtet werden muss Wenn jedoch alle parallelen Ausf hrungsstr nge exakt das selbe Verhalten b
173. ine formale Eigenschaftspr fung er 155 6 Ergebnisse forderlich sein Diese entspricht einem quivalenzvergleich zwischen Eigen schaftsmenge und erzeugtem RT Design Weiterhin wurde in Abschnitt 3 6 4 bereits der fehlende Beweis der Im plementierbarkeit einer Eigenschaftsmenge beschrieben Eine formale Eigen schaftspr fung des erzeugten Entwurfs mit den Eigenschaften kann diese Art von Fehlern erkennen Abgesehen von der Implementierbarkeit k nnen wirklich nur Fehler von vhisyn bzw der zugrunde liegenden Methodik gefunden werden und keine Entwurfsfehler da Eigenschaften und erzeugtes Design voneinander abgelei tet werden single source 6 1 1 Fehlende konzeptionelle Zust nde Das gro e Problem bei dieser Pr fung liegt in den fehlenden konzeptionel len Zust nden von Eigenschaften die in erster Linie f r den Entwurf und nicht f r die Verifikation geschrieben wurden In Abschnitt 5 2 2 wurde be reits erw hnt dass die Vollst ndigkeit eines Eigenschaftssatzes auch ohne konzeptionelle Zust nde bewiesen werden kann Bor09 Seite 97 Aus diesem Grund werden Eigenschaften die f r den Entwurf geschrieben werden keine konzeptionellen Zust nde beinhalten Bei der formalen Eigenschaftspr fung sind sie jedoch n tig um die Eigenschaft mit dem Design zu verkn pfen Die L sung des Problems ist die Einf hrung von Platzhaltern in den Ei genschaften die bei der High Level Synthese von vhisyn ignoriert werden und bei d
174. ine weitere Arbeit zur automatenbasierten Monitorgenerierung ist das Werkzeug MBAC von Boul und Zilic BZ08 Dieser Ansatz verwendet Er setzungsregeln um die umfangreiche Syntax von PSL auf wenige grundlegen de Algorithmen abzubilden Das gesamte sogenannte simple subset von PSL wird unterst tzt Unter den modularen Verfahren ist vor allem der Monitorgenerator Ho rus der Gruppe um Morin Allory und Borrione zu nennen MB06 Deren Algorithmus generiert f r jeden Operator einer Untermenge von PSL einen in einer Bibliothek gespeicherten Basisblock Jeder Block hat Aktivierungs eing nge die den Start der Pr fung f r diesen Operator anzeigen An den Ausg ngen des Blocks ist das Ergebnis der Pr fung abzulesen Durch eine geschickte Verschaltung der Basisbl cke entsprechend der Syntax einer Ei genschaft kann das gew nschte Gesamtverhalten erreicht werden 2 2 4 Statische Verifikation Formale Eigenschaftspr fung Die statische Verifikation von Eigenschaften das Model Checking CGP99 verlangt keine Ausf hrung des Modells mit Hilfe eines Simulators Statt dessen wird eine formale Analyse durchgef hrt die im Ergebnis anzeigt ob die Eigenschaft f r jede m gliche Ausf hrung des Modells gilt Aus diesem Grund ist es nicht notwendig spezielle Testszenarien zu erstellen die jeweils nur einen kleinen Teil der Funktionalit t berpr fen Durch den mathema tischen Beweis der Eigenschaft werden alle Grenzf lle engl Corner Cases aut
175. innerhalb von during Anweisungen im Zusicherungsteil bereits realisiert um sehr lange Eigenschaften berhaupt unterst tzen zu k nnen Eine anweisungs bzw eigenschafts bergreifende Optimierung ist jedoch in der vorliegenden Version von vhisyn nicht im plementiert Bei der Vorstellung der beiden Fallstudien wurden bereits einige weite re Verbesserungen vorgeschlagen die den Entwurfsaufwand reduzieren und damit besser wartbare und weniger fehleranf llige Beschreibungen erm gli chen So k nnte Vererbung dabei helfen gleiche Funktionalit t in eine Basis eigenschaft auszulagern Entwurfsaufwand und Wartbarkeit des Quelltextes k nnten auf diese Weise erheblich verbessert werden Der Vollst ndigkeitsbeweis kann die Implementierbarkeit des Eigenschafts satzes nicht nachweisen Dies f hrt zu Problemen wenn zwei Eigenschaften in ihrer nichtdeterministischen Phase d h bevor die Annahmen eine der beiden Eigenschaften beenden widerspr chliche Zusicherungen aufweisen Das wird 176 7 2 Ausblick weder vom Determinierungstest noch von einem der anderen Vollst ndigkeits tests entdeckt Man spricht in diesem Fall davon dass die Eigenschaftsmenge nicht implementierbar ist Die Synthese geht jedoch von einer Implementierbarkeit aus und warnt den Nutzer lediglich dass zwei m glicherweise parallel ausgef hrte Zusiche rungen auftreten In der Realisierung wird sich dann willk rlich f r eine der beiden Zusicherungen entscheiden Die
176. ion oder so gar Kontrollstrukturen wie sie aus Programmiersprachen bekannt sind Diese Operatoren und Kontrollstrukturen haben meist eine fest definierte Hardwa rerepr sentation durch die sie im weiteren Verlauf des Entwurfsflusses ersetzt werden So wird aus einer Verzweigung if auf Gatterebene ein Multiplexer und auf Schaltkreisebene eine Anzahl von Transistoren die miteinander ver schaltet sind Die komplexeren der Kontrollstrukturen auf RT Ebene k nnen sogar Funktionsaufrufe und Schleifen mit einer konstanten Anzahl Durchl u fe enthalten Der Entwurf auf RTL erfordert im Regelfall nur ein begrenz tes Wissen ber die Technologieaspekte oder die exakte Realisierung dieser Konstrukte Diese Trennung von Technologiewissen und Entwurf auf h heren Ebenen war ein wichtiger Schritt auf dem Weg zu der hohen Produktivit t die mit heutigen Entwurfswerkzeugen erreicht werden kann Ausgehend von dieser Abstraktion ist es das Ziel vergangener und ak tueller Forschung den Entwurf nicht nur vom Technologiewissen oder den Details der verwendeten Logikelemente zu entkoppeln sondern Beschrei bungselemente zu verwenden die der urspr nglichen Intention des Entwer fers m glichst nahe kommen Die Spezifikation ist der Ausgangspunkt des Entwurfsprozesses Sie liegt oft in textueller Form vor Der bislang erfolg versprechendste Ansatz die Abstraktion des Entwurfs auf eine neue Ebene zu heben ist die Spezifikation einer Beschreibung auf algorithmisch
177. ister stellt die Implementierung dar die die L nge der Eigenschaft in Betracht zieht Dabei wird der Wert nur alle zwei Takte ins n chste Register geschoben Dadurch sind die beiden ben tigten Register viel besser ausgelastet als in der ersten Variante Der Ausgang Dn a stellt somit den Wert der Freezevariable jeweils zu den Zeitpunkten 1 und 2 bereit w h rend der Ausgang D A den Wert zu den verbleibenden beiden Zeitpunkten bereitstellt Gegen berstellung der Implementierungsvarianten Beide Implementierungen haben Vor und Nachteile Die Kette von Registern kommt mit nur einem Register pro Stufe aus w hrend die Periodenimple mentierung einen zus tzlichen Multiplexer verwenden muss Auf der anderen Seite kann bei gro en Perioden und langen Eigenschaften die Anzahl der Stufen mit der zweiten Variante deutlich reduziert werden In allen anderen F llen sollte auf die Registerkettenimplementierung zur ckgegriffen werden Bei beiden Varianten muss nat rlich beachtet werden dass die Register und eventuellen Multiplexer in ihrer Breite nicht nur auf ein Bit ausgelegt sein d rfen sondern die volle Bitbreite des Freezeausdrucks unterst tzen m ssen 89 4 Synthese von Operationseigenschaften Speichern der Freezevariablen im lokalen Signalverzeichnis Beginnend mit dem Speicherzeitpunkt time f kann der Bezeichner der Free zevariable f in den Ausdr cken innerhalb der Eigenschaft verwendet werden Seine Sichtbarkeit beschr nkt
178. it ANTLR erzeugten LL Parsern sind in Par07 nachzulesen 76 4 3 Auswertung der Strukturbeschreibung 4 3 Auswertung der Strukturbeschreibung Aus der Menge der ASTs wird nun diejenige Vollst ndigkeitsbeschreibung herausgesucht die das Toplevel der zu synthetisierenden Komponente dar stellt Die Festlegung welche Komponente als Toplevel betrachtet wird ge schieht dabei mit Hilfe der vhisyn Kommandozeilenoption t Zu Beginn wird ein leeres Modul in der Datenstruktur des Zwischenformats angelegt Dieses wird dann in den nachfolgenden Schritten kontinuierlich gef llt Danach werden alle im Abschnitt structure der Vollst ndigkeitsbeschrei bung vorkommenden Anweisungen der Reihe nach abgearbeitet Die folgen den Unterabschnitte betrachten jeweils eine dieser Anweisungen 4 3 1 Signalverzeichnisse Um Signale die bereits einmal angelegt wurden im sp teren Verlauf wieder finden zu k nnen gibt es ein lokales und ein globales Signalverzeichnis Diese entsprechen im Wesentlichen den Symboltabellen aus traditionellen Program miersprachen Alle Parameter und global sichtbaren Symbole werden dabei im globalen Verzeichnis abgelegt w hrend die Argumente eines Funktions aufrufs im lokalen Verzeichnis gespeichert werden Das globale Verzeichnis ist f r die gesamte Komponente inklusive Eigenschaften und Makroaufrufe gleich Nur wenn eine Komponente Submodule instanziiert besitzen diese ein neues globales Signalverzeichnis So wird
179. itt soll die Abbildung der Ausgaberelation ein wenig genau er beleuchtet werden Die Definition in Abschnitt 4 6 3 ordnet jedem Zustand eine Teilmenge aller Zusicherungen zu Bei der Abbildung in Hardware er weist sich jedoch der umgekehrte Fall als g nstig indem den Zusicherungen eine Menge von Zust nden zugeordnet wird in denen die jeweilige Zusiche rung ausgef hrt werden soll Im Weiteren wird ein Schaltsignal ben tigt welches f r eine bestimmte Zusicherung bspw zp n t die Aktivierungsbe dingung darstellt Das in Abschnitt 4 8 definierte Signal bar erf llt genau diese Funktion Multiplexer Kaskade Damit kann f r jedes Ausgangssignal oder interne Signal die entsprechende Hardware generiert werden In Abb 4 22 ist ein Teil einer solchen Struk tur dargestellt Es kommt eine Kaskade von Multiplexern zum Einsatz von denen jeder eine der Zusicherungen f r das Signal bearbeitet Als jeweiliges Schaltsignal wird eben erw hntes Wp genutzt w hrend die Dateneing nge den eigentlichen Zuweisungen entsprechen Die in der Abbildung genutzte Bezeichnung n p t steht dabei f r das Signal der Zuweisung 2Zp n t Im ge zeigten Beispiel bestehen die Zuweisungen lediglich aus Konstanten In kom plexeren Zuweisungen k nnen an dieser Stelle aufwendige kombinatorische Bl cke stehen Die Reihenfolge der Multiplexer ist funktional unwichtig da vom Entwer fer sichergestellt werden muss dass zu jedem Zeitpunkt nur Zusicherungen gleichzeitig
180. ldung von Zustand auf numerischen Registerwert stellt vor diesem Hintergrund ein Optimierungsproblem dar Es muss eine Abbildung gefunden werden die die Anzahl der Zust nde auf die ein Default bergang zutrifft maximiert Auf eine exakte Definition des Optimierungsproblems soll verzichtet werden da im Folgenden eine heuristische L sung vorgestellt wird die hinreichend gut funktioniert Das bedeutet dass mit steigender Eigen schaftsl nge und gleichbleibender berlappung und Parallelit t die Anzahl der nicht vom Default bergang betroffenen Zust nde konstant bleibt Der bliche Wert der Differenzkonstante ist 1 d h der numerische Wert des Nachfolgers eines Kettenzustands ist gleichzeitig der Nachfolger des nume rischen Vorg ngerwertes in den nat rlichen Zahlen Der Wert der Differenz konstante ist allerdigns unerheblich f r das Finden der optimalen L sung weil die Folge von numerischen Werten beliebig umsortiert werden k nnte sodass um die Differenzkonstante verschiedene Werte direkt nebeneinander liegen Heuristik Als einfachste und zugleich sehr effiziente Heuristik f r die Optimierung der Default berg nge bietet sich eine lexikographische Sortierung der Zust n de des DEA an Eine lexikographische Ordnung entspricht der Sortierung der W rter in einem Lexikon bei der zuerst der erste Buchstabe verglichen wird und nur bei Gleichheit der n chste Buchstabe herangezogen wird Die lexikographische Ordnungsrelation wi
181. lfe vollst ndiger Eigenschaften Dazu m ssen auch f r Mo dule die sehr verl sslich sind wie bspw die mit Coregen erzeugten FIFOs vollst ndige Eigenschaftss tze vorliegen was die Anwendung dieser Verfah ren einschr nkt Der Partikelfilter wurde nach erfolgtem Vollst ndigkeitsbeweis der Einzel komponenten mit Hilfe klassischer simulationsbasierter Verfahren verifiziert Dabei kam eine VHDL Testbench zum Einsatz mit deren Hilfe alle bisher aufgetretenen Systemfehler gefunden werden konnten Fehler die nicht das Zusammenspiel mehrerer Module betrafen sind in dieser Phase nicht aufge treten was die N tzlichkeit der Vollst ndigkeitspr fung betont 6 3 4 Vergleich mit alternativen Entwurfsmethoden Um das Design dieser Komponente mit anderen Entwurfsmethoden zu ver gleichen wurde in Sch10 die Spezifikation direkt als VHDL Modell auf RT Ebene implementiert und in einem weiteren Ansatz aus einer C Beschreibung mit dem High Level Synthesewerkzeug CoDeveloper vgl Imp10 generiert In diesem Abschnitt sollen die dabei gewonnenen Erkenntnisse kurz darge stellt werden In Lan 11 k nnen weitere Details zum Vergleich nachgelesen werden In Tab 6 2 sind die Ergebnisse kurz zusammengefasst Die VHDL Implementierung ist die dabei kleinste und auch fl chenspa rendste Variante Der Hauptgrund f r die geringe Gr e und vor allem hohe maximale Frequenz der synthetisierten VHDL Beschreibung liegt in der Aus nutzung der mit den Xili
182. llst ndigkeitspr fung Zeitdiagramme Kurzreferat In der formalen Verifikation digitaler Schaltkreise hat sich die Methodik der vollst ndigen Verifikation anhand spezieller Operationseigenschaften be w hrt Operationseigenschaften beschreiben das Verhalten einer Schaltung in einem festen Zeitintervall und k nnen sequentiell miteinander verkn pft werden um so das Gesamtverhalten zu spezifizieren Zus tzlich beweist eine formale Vollst ndigkeitspr fung dass die Menge der Eigenschaften f r jede Folge von Eingangssignalwerten die Ausg nge der zu verifizierenden Schal tung eindeutig und l ckenlos determiniert In dieser Arbeit wird untersucht wie aus Operationseigenschaften deren Vollst ndigkeit erfolgreich bewiesen wurde automatisiert eine Schaltungsbe schreibung abgeleitet werden kann Gegen ber der traditionellen Entwurfs methodik auf Register Transfer Ebene RTL bietet dieses Verfahren zwei Vorteile Zum einen vermeidet der Vollst ndigkeitsbeweis viele Arten von Entwurfsfehlern zum anderen hnelt eine Beschreibung mit Hilfe von Opera tionseigenschaften den in Spezifikationen h ufig genutzten Zeitdiagrammen sodass die Entwurfsebene der Spezifikationsebene angen hert wird und Feh ler durch manuelle Verfeinerungsschritte vermieden werden Das Entwurfswerkzeug vhisyn f hrt die High Level Synthese einer vollst n digen Menge von Operationseigenschaften zu einer Beschreibung auf RTL durch Die Ergebnisse zeigen dass sowohl
183. me der impera tiven Programmierung vorgeschlagen wurden Das Werkzeug Lava ist eine Implementierung von uFP in Haskell Cla01 In der gleichnamigen Hardwa rebeschreibungssprache Lava wird das Verhalten eines Schaltkreises in einer Funktion beschrieben Die Funktion selbst generiert jedoch keine Hardware Erst ihre Benutzung durch die Funktion writeVhdl erzeugt die eigentliche Hardware Ebenso existiert eine Funktion simulate die eine Ausf hrung des Designs mit zus tzlich bergebenen Testmustern erlaubt Durch diesen Schritt ist die Verhaltensbeschreibung mehr ein Generator der Hardware als die Hardware selbst An einem Beispiel aus CS00 wird dies deutlich Die Lava Funktion in Abb 2 5 implementiert einen Ripple Carry Addierer mit Hilfe eines Aufrufes von halfAdd f r das erste Bit a und dem rekursiven Aufruf von bit Ad der f r die restlichen Bits in as Diese Beschreibung ist zum einen v llig generisch bez glich der verwendeten Datentypen solange sie vom Halbad dierer weiterverarbeitet werden k nnen und sie enth lt keine Schleifen oder sonstige Kontrollanweisungen mit tempor ren Z hlervariablen und hnlichen Konstrukten In Abb 2 6 ist die entsprechende Hardwarerepr sentation dar gestellt Lava ist eine eingebettete dom nenspezifische Sprache engl domain speci fic embedded language und kann deshalb nicht den vollen Umfang der Wirtss prache benutzen Ein neuerer Ansatz der ebenfalls auf Haskell basiert nennt sich CAaSH
184. ms nach GK83 und WT85 dargestellt An dieser Stelle sollen nur die obersten drei Ebenen des Diagramms betrachtet werden Diese umfassen die Spezifikations die algorithmische sowie die Register Transfer Ebene In Abb 2 1 sind die drei Ebenen dargestellt Zus tzlich ist der operationsbasierte Entwurf eingef gt mit dem sich diese Arbeit besch ftigt Die Spezifikation als oberste Ebene liegt meist nicht in einer formal pr f und ausf hrbaren Form vor H ufig ist sie eine vom Spezifikationsingenieur erstellte textuelle Beschreibung und kann wiederum andere Darstellungs formen enthalten wie z B Tabellen Pseudokode oder Zeitdiagramme auch Impulsdiagramme oder timing diagrams Hei99 23 2 Grundlagen temporaler Eigenschaften und ihrer Synthese Ausgehend von der Spezifikation muss meist manuell eine Beschreibung auf der n chsten Ebene erstellt werden So muss Pseudokode in eine konkrete Programmiersprache oder ein graphisch dargestelltes Zeitdiagramm in Ope rationseigenschaften berf hrt werden Obwohl sich Operationseigenschaften erheblich von algorithmischen Beschreibungen unterscheiden kann man sie in der algorithmischen Ebene ansiedeln da sie konkreter als die Spezifika tion und zugleich abstrakter als Register Transfer Beschreibungen sind In der Abbildung sind Operationseigenschaften etwas niedriger dargestellt als Algorithmen um zu verdeutlichen dass sie einige Merkmale der RT Ebene wie bspw taktgenaues Verhalten d
185. n ber der Anzahl Zust nde nicht ins Gewicht f llt Insgesamt l sst sich n herungsweise sagen dass die Kom plexit t der Laufzeit sich in einem hnlichen Rahmen wie die Komplexit t der Anzahl Zust nde bewegt 4 7 Konstruktion eines deterministischen Kontrollautomaten Die in diesem Abschnitt beschriebenen Verfahren wurden urspr nglich im Rahmen der Arbeit von Pepelyashev Pep09 entwickelt und wurden erst mals in LPH10 ver ffentlicht Obwohl die Funktionsweise des Algorithmus weitestgehend erhalten geblieben ist unterscheidet sich die Form der Dar stellung von den angegebenen Ver ffentlichungen Bei der Konstruktion des NEA wurden alle Annahmen lediglich durch nummeriert und als bergangsbedingungen an den Automaten annotiert Dies ist im nichtdeterministischen Fall v llig ausreichend da vor der Syn these der Vollst ndigkeitsbeweis des Eigenschaftssatzes stattgefunden hat Unter Annahme der in Abschnitt 3 6 2 eingef hrten Abwandlung des Fallun terscheidungstests ist damit sichergestellt dass Eigenschaften zwar eine Zeit 109 4 Synthese von Operationseigenschaften lang konkurrieren d rfen aber letztendlich immer eine eindeutige Entschei dung zugunsten einer einzigen Eigenschaft fallen muss und dass das Verhal ten vor dem Eintritt der eindeutigen Entscheidung in allen konkurrierenden Eigenschaften gleich sein soll Durch diese Einschr nkungen ist sichergestellt dass der NEA eine nicht deterministische En
186. n tigen f hrenden Bits das Makro effizienter implementiert werden Ein gutes Verifikations oder Synthesetool sollte allerdings entweder in ei nem Vorverarbeitungsschritt oder w hrend der Optimierung die unn tigen Bits welche stets den Wert null annehmen auch entfernen k nnen Ein paralleler Pr fixschaltkreis ist ein kombinatorischer Schaltkreis der n Eing nge 21 2 2n besitzt und daraus n Ausg nge 21 21 0 22 21 O O Ln berech net wobei o eine beliebige assoziative bin re Operation darstellt Sie werden unter anderem f r schnelle Addierer oder FFT Schaltkreise verwendet Fic83 3 3 Makros macro sqrt a unsigned unsigned sqrt_impl a 0 power2 a length a length mod 2 end macro macro sqrt_impl op numeric res one unsigned unsigned if statically one gt 0 then if op gt res one then sqrt_impl op res one res div 2 one one div 4 else sqrt_impl op res div 2 one div 4 end if else res end if end macro macro power2 i numeric unsigned if statically i gt 0 then power2 i 1 amp 0 else 1 end if end macro Abbildung 3 3 ITL Makros zur Quadratwurzelberechnung 3 3 2 Rekursionstiefe Ein weiterer wichtiger Punkt beim Design von Makros ist die Rekursionstiefe Ein Makro zum Umkehren der Reihenfolge von Bits in einem Vektor wird in einer simplen Implementierung ebenso viele Schritte ben tigen wie die L nge des Vektors In dies
187. n des Pfeils k nnen ent sprechend mehrere Kanten in einer Anweisung definiert werden Dabei wird f r jede Eigenschaftspaarung aus dem kartesischen Produkt der Mengen links und rechts des Pfeils eine Kante erstellt So entspricht die Anweisung reset idle gt idle start den vier Eigenschafts berg ngen reset gt idle reset gt start idle idle idle gt start 62 3 5 Beschreibung der Komponentenschnittstelle la N completeness resampler is reset__ property resampler_ reset property__graph reset idle gt idle start start gt read write read gt read write idle start end completeness Abbildung 3 8 Eigenschaftsgraph des Resampler Beispiels in einer Vollstan digkeitsbeschreibung Weitere nicht in der Abbildung dargestellte Abschnitte in der Vollstandig keitsbeschreibung sind die Aufz hlung der Eing nge der zu verifizierenden Komponente und Angaben zur Determiniertheit der Ausg nge 3 5 Beschreibung der Komponentenschnittstelle Eine vollst ndige ITL Eigenschaftsbeschreibung umfasst keine Definition der Ein und Ausgangssignale einer Komponente mit Angabe des Datentyps Weiterhin sind weder Parameter noch interne Signale bzw deren Datenty pen vorgegeben Bei einer formalen Verifikation der Eigenschaften in Bezug auf eine reale VHDL oder Verilog Implementierung extrahiert das formale Werkzeug diese Daten aus dem entsprechenden Entwurf So sind in d
188. n entsprechender Schaltkreis synthetisiert werden 5 Makros Die in den Operationseigenschaften f r die Beschreibung des Daten flusses verwendeten Makros nutzen einen funktionalen Beschreibung stil Deshalb existiert ein effizientes und transparentes Verfahren um sie in eine entsprechende Hardwaredarstellung umzuwandeln 6 Nichtdeterministischer Automat Das Ergebnis der Synthese ist ein nichtdeterministischer endlicher Au tomat NEA dessen Hardwarerepr sentation ebenso viele Speicher elemente ben tigt wie der Automat Zust nde besitzt 195 Thesen 7 10 11 12 13 196 Determinierung Es existiert ein effizientes Verfahren das den NEA in einen determinis tischen endlichen Automaten DEA tiberfiihrt wobei dabei nur auf die Annahme aus These 4 zur ckgegriffen wird Der Verbrauch an Speicher elementen f r die Darstellung des Automaten verh lt sich logarithmisch zur Anzahl der Zust nde im NEA Inkrementelle Konstruktion Die Erzeugung beider Automaten kann inkrementell geschehen sodass nicht erreichbare Zust nde keine Auswirkung auf die Kenngr en des Verfahrens haben Lange Eigenschaften Mit Hilfe von geeigneten heuristischen Verfahren ist eine Optimierung der erzeugten Schaltung m glich die es erm glicht auch sehr lange Ei genschaften mit bis zu mehreren tausend Zeitschritten in eine effiziente Hardwaredarstellung zu berf hren Komplexit t Laufzeit und Speicherverbrau
189. n erforderlicher Schritt um handhabbare Hardware zu erzeugen 4 6 Konstruktion des nichtdeterministischen Kontrollautomaten Der n chste Schritt im Syntheseprozess von Operationseigenschaften ist die Konstruktion des Kontrollautomaten der Komponente der sp ter in einem weiteren Schritt in Hardware abgebildet werden muss In dieser Arbeit wird der Automat direkt aus dem Eigenschaftsgraphen hergeleitet LH09 Die Vorteile liegen in der meist recht geringen Komplexi t t des Eigenschaftsgraphen weshalb der entstehende Automat sehr schnell erstellt werden kann und eine berschaubare Komplexit t besitzt Um den Konstruktionsvorgang besser verstehen zu k nnen soll zuerst der Eigen schaftsgraph genauer untersucht werden Zu Beginn muss der Begriff der Eigenschaftsposition definiert werden Eine Eigenschaftsposition besteht aus einer Eigenschaft p sowie einem Zeitpunkt t innerhalb dieser Eigenschaft und wird durch p dargestellt Die Menge der Eigenschaftspositionen aller Eigenschaften wird mit Q p p P t Z left p lt t lt last p bezeichnet Analog zur Reseteigenschaft des Eigenschaftsgraphen kann eine Resetei genschaftsposition definiert werden die sich aus der linken Grenze der Rese teigenschaft ergibt reser py efttreset P reset P Qo 4 6 1 Abgerollter Eigenschaftsgraph Mit Hilfe der im Abschnitt 4 5 2 definierten Eigenschaftsgrenzen kann ein abgerollter Eigenschaftsgraph U Q Eu erstellt
190. n mehre re abschliessende Annahmen gleichzeitig auftreten Das ist jedoch nicht der Fall Wenn bspw Annahme a nicht der Eigenschaftsposition sync sondern sync zugeordnet ist wird Zustand idle sync falschlicherweise aktiviert obwohl die eindeutige Entscheidung bereits zu Gunsten des anderen Pfades gefallen ist Die um einen Takt sp ter angesetzte Annahme muss bei erfolg reich durchgef hrtem Vollst ndigkeitstest auf jeden Fall negativ ausgewertet werden Jedoch k nnen unterschiedliche Zusicherungen in idle sync ge gen ber idle idle sync und idle idle idle bereits unerw nschtes Systemverhalten hervorrufen 114 4 7 Konstruktion eines deterministischen Kontrollautomaten An dieser Stelle muss darauf hingewiesen werden dass die Parallelit t von fidle idle sync und idle idle idle nicht aufgel st werden kann da die entsprechende Annahme erst in diesem Schritt ausgewertet wird Es ist also notwendig dass sync und idle keine sich widersprechenden Zusiche rungen enthalten 4 7 5 Formales Konstruktionsverfahren Partielle Ordnung der Eigenschaftpositionen Ausgehend von dieser Definition der Kriterien kann nun der eigentliche Kon struktionsalgorithmus vorgestellt werden Dazu ist es n tig eine partielle Ord nung in der Menge der Eigenschaftspositionen zu definieren Die geordnete Menge Q lt mit der Ordnungsrelation p lt q t right p lt u right g sorgt daf
191. nd Die Synthese dieser Makros orientiert sich an der angef hrten Literatur 2 4 Operationen als Verhaltensbeschreibung Ein weiterer wichtiger Hintergrundgedanke bei der Synthese von Operati onseigenschaften ist die Unterteilung von Verhalten in sequentiell ablaufende 42 2 4 Operationen als Verhaltensbeschreibung Operationen die in einem festgelegten Zeitfenster das Systemverhalten be stimmen F r verschiedene Anwendungsszenarien wie bspw die Beschreibung von Kommunikationsprotokollen ist diese Sicht auf Verhalten sehr vorteilhaft So werden in textuellen Spezifikationen h ufig Zeitdiagramme eingebunden In Abb 2 7 ist das Zeitdiagramm der einfachen Leseoperation aus der PCI Spezifikation dargestellt Die Aufteilung zwischen Annahmen ber das Um gebungsverhalten und Signalzuweisungen den Zusicherungen ist nur implizit gegeben da der Nutzer weiss welche Signale gelesen und welche geschrieben werden Wenn Zeitdiagramme in Spezifikationen verwendet werden sind sie meist zus tzlich im Text n her erl utert CLK 1 2 3 4 5 6 7 8 FRAME Ee ent d Ap lt lt ADDRESS a DATAT X DATAa2 X Dans ze ir em DN OBER A C BE 7 x R St R R i i EN a i cc f D wt m i 2 Beer e E i z z z S EN E E E faer NE ET ce T T x 1 a pevski eNO he EE a Zones DATA om lt gt 7 7 PHASE PHASE PHASE PHASE BUS TRANSACTION gt
192. nd t oder die Folge c o und w erkannt Ax Der Kleene Stern erkennt die RE A beliebig oft Dabei ist auch die leere Eingangsfolge g ltig der Ausdruck ca xt passt auf alle Sequenzen die mit c starten dann keine oder beliebig viele a enthalten und mit t enden Zus tzlich gibt es oft eine gro e Menge von weiteren Operatoren die den Komfort des Nutzers erh hen oder dem Abspeichern von gefundenen Tei lausdr cken dienen Die durch regul re Ausdr cke beschriebenen Automaten k nnen in der Verifikation als Monitore eingesetzt werden die den zeitlichen Verlauf einer Simulation pr fen und einen Fehler melden wenn die Sequenz der Signale 28 2 2 Eigenschaftsbasierte Verifikation nicht dem beschriebenen Muster entsprechen Die regul ren Ausdr cke z h len zu den linearen temporalen Sprachen d h sie nutzen keine verzweigende Zeit Lineare Temporale Logik Die Definition der Linear Temporal Logic LTL durch Pnu77 hat die tem porale Logik erstmals f r die Verifikation von Hard und Software interessant gemacht Sie ist durch eine fortlaufende lineare Abfolge der Zust nde gekenn zeichnet und ist damit besonders gut f r die dynamische Verifikation geeig net da sich in einem Simulationslauf genau ein Ausf hrungspfad ergibt Ausdr cke in dieser temporalen Logik k nnen vier Basisoperatoren bein halten die im Folgenden erl utert und in Abb 2 2 graphisch illustriert wer den Eine LTL Formel bezieht sich immer
193. ne Kommunikationskompo nente beginnend mit einer Startsequenz Rahmen fester L nge verarbeitet so wird man eine Eigenschaft schreiben die die Startsequenz im Annahmen teil beinhaltet und im Zusicherungsteil die fertig verarbeiteten Daten an den Ausgang legt Wird nun der formale Beweis dieser Eigenschaft angetreten erzeugt die Beweisengine ein Gegenbeispiel bei dem sich die Komponente mitten in der Verarbeitung eines anderen Rahmens befindet w hrend die Startsequenz beginnt Die Komponente reagiert dementsprechend falsch und der Beweis der Eigenschaft schl gt fehl Aus diesem Grund wird in den Annahmenteil der Eigenschaft der kon zeptionelle Zustand bereit f r Startsequenz aufgenommen der sicherstellt dass die Eigenschaft nur in diesem Zustand beginnen darf Um mehrere Ei genschaften miteinander zu verkn pfen muss im Zusicherungsteil ebenso ein konzeptioneller Zustand eingef gt werden der dann bspw sicherstellt dass die Komponente wieder bereit f r Startsequenz ist Bei der Synthese sind diese konzeptionellen Zust nde nicht notwendig denn die Vollst ndigkeit des Satzes von Eigenschaften kann auch bewiesen werden wenn sie nicht auftauchen Wenn die Eigenschaften nach der Synthese auf dem erzeugten Entwurf ge pr ft werden sollen m ssen die konzeptionellen Zust nde jedoch vorhanden sein Aus diesem Grund wurde ein Verfahren eingesetzt bei dem jeweils an den Grenzen einer Eigenschaft Platzhalter der Form begin eigens
194. nen Eigenschaftsposition berechnet werden Im Normalfall wird einfach der Eigenschaftszeitpunkt um eins erh ht Das entspricht den Zeitkanten im abgerollten Eigenschaftsgraph Spezielle Beachtung findet der Fall dass sich die Eigenschaftsposition un mittelbar vor ihrer rechten Grenze befindet t 1 right p weil dann die linken Grenzen aller Nachfolgereigenschaften mit in den Zustand aufgenom men werden m ssen Wenn der Zeitpunkt nicht um eins erh ht werden kann t last p hat die Eigenschaftsposition keinen Nachfolger Die Nachfol gerabbildung ist demnach wie folgt definiert 0 t last p suce p 4 Hr p q Ep t 1 right p p t sonst Das Ergebnis dieser Operation ist eine Menge von Mengen Dieses verschach telte Konstrukt ist notwendig weil im Falle einer Verzweigung mittlerer Zweig in der Formel der um eins erh hte Nachfolger p in jeder Verzwei gung auftauchen muss Die Eigenschaftsposition der Nachfolgereigenschaft tr gt somit immer ihre Historie mit sich Dies sind Positionen fr herer Ei genschaften die bereits ihre rechte Grenze right p erreicht haben aber noch nicht ihr Ende last p Auf Basis dieser Definition k nnen die Nachfolger eines Zustands im nicht deterministischen Kontrollautomaten hergeleitet werden Dies geschieht mit Hilfe eines abgewandelten Produkts zweier Mengen von Mengen MXN muUn meM neN 101 4 Synthese von Operationseigenschaften wobei aufgrund der K
195. nicht for mal gepr ft werden muss Aus diesem Grund werden Constraints erstellt die nur bei g ltigen Busoperationen wahr und bei ung ltigen Operationen falsch sind Die formale Verifikation nutzt dann die Constraints um Fehler 1 Art false positives ausschlie en zu k nnen Bei der Synthese einer Eigenschaftbeschreibung werden Constraints nicht ben tigt da das Verhalten der Komponente bei ung ltigem Umgebungsver halten unwichtig ist Es kann also auch fehlerhaft oder generell willk rlich er zeugt werden Demnach ignoriert vhisyn in den Eigenschaften den Abschnitt dependencies in dem die Constraints definiert werden komplett 5 2 Anforderungen an den Beschreibungstil 5 2 1 Kurze Operationseigenschaften Der Beschreibungsstil mit Hilfe von Operationseigenschaften unterscheidet sich erheblich vom klassischen Entwurf auf RT Ebene Trotz dessen sind Analogien festzustellen Anstelle eines zentralen Automaten tritt der Eigen schaftsgraph w hrend die Annahmen den bergangsbedingungen entspre chen Die Zusicherungen repr sentieren das Ausgangsverhalten welches vom Automaten gesteuert wird Der gro e Vorteil einer Beschreibung mit Eigenschaften besteht darin dass einzelne Eigenschaften das Verhalten des Systems ber mehrere Takte hin weg modellieren k nnen Dabei entf llt die Aufgabe des expliziten Entwurfs des Automaten f r die entstehenden Zwischenzust nde Es k nnen alle ber gangsbedingungen und Zuweisungen die zu ein
196. nn ein solcher Zustandsautomat bereits vorliegt kann durch Finden des entsprechenden Kantengraphen der Eigenschaftsgraph er mittelt werden Ebenso kann aus dem Eigenschaftsgraph der entsprechende Zustandsgraph berechnet werden Mit Leh74 existieren Algorithmen f r die se Aufgabe reset EN Abbildung 3 7 M glicher Zustandsgraph einer Resampler Komponente Der Graph in Abb 3 7 zeigt einen m glichen Graph der wichtigen Zu st nde des Resamplers Die drei Zust nde reset idle und run repr sentieren dabei den Resetzustand den Leerlaufzustand und den Betriebszustand Die Kanten des Graphen entsprechen den Eigenschaften Der Kantengraph dieses 3 Der Kantengraph eines Graphen entsteht durch Vertauschung von Kanten und Knoten wobei die Knoten im Kantengraph verbunden sind wenn die entsprechenden Kanten im Originalgraph einen gemeinsamen Knoten besitzen Die10 61 3 Operationseigenschaften als vollst ndige Verhaltensbeschreibung Graphen entspricht im Wesentlichen dem Eigenschaftsgraph in Abb 3 6 Es ist zu sehen dass die Eigenschaften read und write an jeweils zwei Kanten an notiert sind Dies ergibt sich aus der Tatsache dass die Eigenschaft nach dem Verarbeiten des letzten Partikels wieder in den Leerlaufzustand bergeht bei allen anderen Partikeln jedoch im Betriebszustand verbleibt Weiterhin exis tiert im Zustandsgraph ein bergang zwischen der start Eigenschaft und der write Eigenschaft der im Eigenschaftsgrap
197. nschaftsgraph enthaltenen Eigenschaften 5 Konstruktion des Kontrollautomaten der Komponente basierend auf dem Eigenschaftsgraph 6 Erzeugung der Ausgangslogik die die Zusicherungen je nach Zustand des Kontrollautomaten an die Ausg nge weiterleitet 7 Speichern der entstandenen Datenstruktur der Gesamthardware 74 4 2 Einlesen von ITL Toplevel Ee Eigenschaften Aa Annahmen J f Zustand Kontrollautomat Zusicher ungen Zustand Ausgangslogik Ausg nge Abbildung 4 2 Aufbau eines Hardwaremodells das aus einer vollst ndigen Eigenschaftsmenge erzeugt wurde Abb 4 2 zeigt die Struktur eines Modells das entsprechend dieser Punkte erzeugt wurde Interne Signale werden im Gegensatz zu den Ausgangssignalen nicht mit den Ausg ngen des Toplevels verbunden 4 1 2 Details zu Phase 2 In der zweiten Phase wird die Repr sentation der entstandenen Hardware im Zwischenformat in synthesef higes VHDL auf RT Ebene transformiert Das entsprechende Werkzeug vhdlwriter l dt das Zwischenformat und bersetzt rekursiv jedes Modul und eventuell enthaltene Untermodule Da durch die Synthese von Makroaufrufen eine sehr gro e Anzahl von ver schiedenen Modulen entstehen kann wurde bei der Generierung die VHDL Anweisung block verwendet Es erlaubt die Definition einer hierarchischen Struktur ohne dass eigenst ndige Entwurfseinheiten erstellt werden m ssen Es entsteht nur eine
198. nx Werkzeugen gelieferten Coregen Komponenten So wurde ein f r die Gewichtsberechnung notwendiger Dividierer mit einer sehr hohen Bitbreite von 48 Bit mit Coregen als effiziente Pipeline generiert w hrend die ITL Variante lediglich den parallelen VHDL Divisionsoperator verwendet CoDeveloper kann im Gegensatz dazu Dividierer mit mehr als 32 165 6 Ergebnisse VHDL vhisyn CoDeveloper Kodezeilen 2138 vhdl 1296 vhi 447 C Gesch tzter Zeitaufwand 1 2 Wochen 3 Tage 2 Tage Slices 3855 28 6011 43 4603 33 FlipFlops 5924 21 5120 18 5286 19 4 Eingangs LUT nn 12 SC 32 Ga 23 BRAM 70 51 9 50 2 60 MULT18x18 8 13 3 16 9 21 Max Frequenz in MHz 182 25 113 Takte pro Partikel 2 3 66 Updatezeit in ms 0 09 0 98 4 8 Tabelle 6 2 Vergleich der Syntheseergebnisse zwischen drei verschiedenen Entwurfsmethoden Bit nicht effizient schedulen sodass der Durchsatz auf gg Partikel pro Takt abnimmt Ressourcen wie Multiplizierer RAM Speicher und FlipFlops lassen keine signifikanten Unterschiede zwischen den drei Implementierungen erkennen Die Performance bertrifft in jedem Fall deutlich die eingangs angegebe ne Zeit von 50 ms pro Partikelupdate Um einen schnellen Prototypen der Hardware zu erhalten dessen Hardwareressourcen sich in der gleichen Gr enordnung befinden wie die einer manuellen Implementierung ist der ei genschaftsbasier
199. obleme vor und versucht m g liche L sungswege zu skizzieren Detaillierte Untersuchungen und konkrete Implementierungsarbeiten sind Gegenstand zuk nftiger Entwicklungen 5 1 Technische Einschr nkungen 5 1 1 Intervalle in Zeitvariablen ITL bietet die M glichkeit Zeitvariablen nicht nur einen festen Wert zuzu weisen sondern sie ber ein Intervall iterieren zu lassen So kann bspw mit der Anweisung for timepoints t_start t 1 t__end t_start 3 5 eine Zeitvariable t_end definiert werden die einen Wert zwischen 4 und 6 annehmen kann In der Praxis kann man sich eine Eigenschaft die ein solches Konstrukt enth lt als zusammengefasste Version von eigentlich drei 141 5 Anforderungen an eine synthesef hige Eigenschaftsbeschreibung Eigenschaften vorstellen Jede dieser drei Eigenschaften ist dann f r einen der m glichen Zeitpunkte verantwortlich und hat die Zeitvariable t_end auf einen festen Wert 4 5 oder 6 gesetzt Die Eigenschaft muss sicherstellen dass nicht mehrere der so entstehenden Varianten gleichzeitig aktiviert werden k nnen Oft wird dies durch eine An nahme erreicht die zum betreffenden Zeitpunkt t_end erf llt sein muss Nur in einer der Varianten ist die Annahme dann tats chlich erf llt sodass ein eindeutiges Verhalten erreicht wird Eine konkrete Implementierung des Verifikationswerkzeugs kann bei der Pr fung der Eigenschaft die Varianten als getrennte Eigenschaften betrach ten D
200. och weiterhin aus gleichartigen Eigenschaf ten Dann ist nicht mehr die Anzahl der Eigenschaften f r die Komplexi t tsbetrachtung interessant sondern die Anzahl der Verzweigungen d h die ausgehenden Kanten degt P im Eigenschaftgraph Die Komplexit tsklasse definiert sich damit zu S EO 1 nN deg P d 108 4 7 Konstruktion eines deterministischen Kontrollautomaten was bei einer gro en Anzahl gering verkn pfter Eigenschaften eine deutlich verbesserte Absch tzung der Anzahl Zust nde bietet Diese Formel gilt nur bei gleichartigen Eigenschaften in einem symmetrisch verkn pften Eigen schaftsgraph F r unregul re Strukturen sind diese Absch tzungen mathe matisch nicht mehr g ltig jedoch hat die Praxis gezeigt dass die Anzahl der Zust nde im Wesentlichen dieser Formel folgt Zusammenfassend k nnen folgende Behauptungen ber die Anzahl der Zu st nde des NEA aufgestellt werden Die Anzahl der Nachfolger einer Eigenschaft hat polynomiellen Einfluss auf die Anzahl der Zust nde e Der berlappungsfaktor hat exponentiellen Einfluss e w hrend sich die L nge und Anzahl der Eigenschaften linear auf die Anzahl Zust nde auswirkt Laufzeit Die Laufzeit des Verfahrens orientiert sich im Wesentlichen an der Anzahl der Zust nde Die Laufzeit der Nachfolgerberechnung succ s w chst linear mit dem berlappungsfaktor u entspricht s und der Anzahl der Verzwei gungen dea P sodass dieser Faktor gege
201. olche Invariante in Form eines booleschen Aus drucks definert werden Der Simulator pr ft w hrend des Simulationslaufes die Erf llung des Ausdrucks und meldet dem Benutzer m gliche Fehler In der Softwarebranche sind diese Art von Eigenschaften seit vielen Jahren Stand der Technik Die Bibliotheksfunktion assert im C Standard von 1989 oder das entsprechende Schl sselwort in Python dienen einem hnlichen Zweck und haben die Verifikation und das Debugging von Software deutlich ver einfacht Hoa03 Invarianten erfassen kein zeitliches Verhalten sondern be trachten nur einen einzelnen Zeitschritt So bezieht sich die Aussage beide Ampeln sind nicht gleichzeitig gr n nur auf einen einzelnen Zeitpunkt und hat keine Auswirkungen auf die Zeitpunkte davor und danach Eine weitere Unterscheidung kann zwischen Eigenschaften getroffen wer den die unterspezifiziertes Verhalten aufdecken z B spezielle Umgebungs bedingungen unter denen das Design falsch reagiert und denen die ber spezifiziertes Verhalten pr fen z B Eigenschaften zu einer Funktionalit t die nie aktiviert wird Weiterhin k nnen Eigenschaften Verletzungen von Umgebungsbedingungen Deadlock oder Livelock Situationen erkennen Mit dem Stichwort Assertion Based Design ABD wird entsprechend FKL04 betont dass sich die Eigenschaften ohne Kenntnis der Implemen tierung direkt aus der Spezifikation herleiten und damit einen ersten und wichtigen Schritt im Design Zyklus
202. omatisch ber cksichtigt Allerdings ist die formale Verifikation meist sehr aufwendig und es gelten enge Beschr nkungen bez glich der Komplexit t des zu verifizierenden Systems Die ersten Versuche des Model Checking bestan 34 2 2 Eigenschaftsbasierte Verifikation den aus manuell durchgef hrten Beweisen von Softwareprogrammen siehe Eme08 Das Problem der Zustandsraumexplosion ist der ma gebliche Faktor der eine schnelle Verbreitung der formalen Eigenschaftspr fung bisher behindert hat So verdoppelt jedes zus tzliche Register in einer zu pr fenden Schaltung die Anzahl der Zust nde und somit den Verifikationsaufwand Symbolic Model Checking Der gro e Durchbruch bestand im symbolischen Model Checking von CTL Formeln bei dem der Zustandsraum symbolisch repr sentiert wird bspw in Form von bin ren Entscheidungsb umen Bur 90 Bry86 Damit war es erstmals m glich Schaltungen zu verifizieren die ber kleine Anschauungs beispiele hinausgingen Trotz vieler Bem hungen auf diesem Gebiet kann diese Art der formalen Verifikation weiterhin nur mit begrenzten Schaltungs gr en umgehen Bounded Model Checking Bounded Model Checking BMC kann gr ere Schaltungskomplexit ten ver arbeiten Bie 99 Dazu wird das Design ber k Schritte beginnend mit dem Resetzustand sequentiell abgerollt Im Anschluss wird die Eigenschaft ber diesem eingeschr nkten Zeitfenster verifiziert Wenn die Pr fung fehlschl gt erh l
203. ommutativit t des Operators mit Zi T1XT2X XTn 1 lt i lt n auch ein entsprechender mehrstelliger Operator verwendet werden kann Die Nachfolgermenge der einzelnen Eigenschaftspositionen wird nun dazu be nutzt die Nachfolgermenge eines Zustands s S zu definieren A succ s succi ptEs Dabei besteht h chstens eine der Mengen succ p aus mehr als einem Ele ment da niemals gleichzeitig mehrere Eigenschaften ihre rechte Grenze er reichen und sich verzweigen k nnen reset 4 idle 1 ide ide Kees den idle Abbildung 4 10 Entwicklung der Menge der Nachfolger eines Zustands s S sync 2 e In Abb 4 10 ist die Berechnung der Nachfolgermenge an einem Zustand aus dem Framerbeispiel illustriert Ausgehend von einem Zustand s der aus drei Eigenschaftspositionen besteht wird zuerst f r jede Eigenschaftspositi on die Menge der Nachfolger bestimmt Da reset am Ende der Eigenschaft angelangt ist entsteht die leere Menge Die Position idle wird lediglich um eins erh ht w hrend sich idle einen Zeitschritt vor der rechten Grenze von idle befindet 0 1 right idle und deshalb nach idle und sync ver zweigen muss Die urspr ngliche Eigenschaftsposition wird um eins erh ht und findet sich in beiden Mengen wieder In weiteren Schritten werden die entstehenden Mengen mit dem Operator X verkn pft sodass am
204. onente und Elternmodul miteinander verkn pft werden Dies k nnte in den Eigenschaf ten des Moduls durch entsprechende Zusicherungen geschehen die zu jedem Zeitpunkt sicherstellen dass das korrekte Signal zugewiesen wird Der da durch entstehende Aufwand w re allerdings immens Daher bietet es sich an im bergeordneten Modul direkte Verbindungen zwischen Signalen zu erm glichen Dies kann wie in Abb 3 9 dargestellt geschehen Es muss nur das treibende Signal ein gt und das getriebene Signal als einzelne Anwei sung in den structure Abschnitt aufgenommen werden Die Identifizierung von Signalen der Unterkomponente geschieht dabei durch eine Qualifizierung 66 3 6 Vollst ndigkeitspr fung mittels des Instanznamens der mit einem Schr gstrich getrennt vor dem Si gnalnamen steht 3 6 Vollst ndigkeitspr fung Wie bereits zu Beginn dieses Kapitels erw hnt kann eine Menge von Ei genschaften zur vollst ndigen formalen Verifikation eines Hardwareentwurfs eingesetzt werden Ziel dieses Abschnitts ist es genauer zu beleuchten wann eine solche Menge von Eigenschaften als vollst ndig bezeichnet werden kann In Bor09 werden die entsprechenden Kriterien mathematisch exakt darge stellt Deshalb soll in dieser Arbeit nur ein informeller berblick gegeben werden 3 6 1 Vollst ndigkeit Der Grundgedanke hinter der Vollst ndigkeit von Eigenschaften ist die exakte Abbildung jeder Folge von Eingangsvektoren des Designs auf eine e
205. pr ft ob eine solche Schleife entstanden ist Wenn ja wird der Nutzer entsprechend gewarnt Der Nutzer kann das Problem komplett umgehen indem im Ausdruck einer Zusicherung keine Signale zum aktuellen Zeitpunkt verwendet werden die an anderer Stelle im Eigenschaftssatz Ziel einer Zuweisung sind Konfliktzusicherungen und Eindeutigkeit der Annahmen Zusicherungen auf das gleiche Signal k nnen miteinander konkurrieren wenn die entsprechenden Eigenschaftspositionen gleichzeitig vom Kontrollautoma ten betreten werden Es sind dabei zwei F lle zu unterscheiden Zum einen k nnen die betroffenen Zusicherungen in jeder Situation dem Ausgangssignal die gleichen Werte zuweisen Dann gen gt es eine der Zusicherungen willk r lich auszuw hlen Wenn der f r die Zuweisungen zust ndige Mehrfachmulti plexer alternativ auch eine Multiplexerkaskade zwei oder mehr aktivierte Schaltsignale erh lt wird je nach Implementierung eines der Zuweisungssi gnale auf den Ausgang durchgeschalten In dieser Situation gibt vhisyn eine entsprechende Warnung aus 150 5 1 Technische Einschr nkungen aH Abbildung 5 2 M gliche Hardwareimplementierung der zu Abb 5 1 geh ren den Zusicherungen Auf der anderen Seite k nnen die parallelen Zusicherungen verschiedene Werte auf das selbe Signal zuweisen Dies entspricht einem Konflikt der entweder vom Determinierungstest oder einer Eigenschaftspr fung des syn thetisierten Ent
206. r Ausdruck kann mit expr A Netz ID nachgeschlagen werden wobei Netz ID das Ausgangsnetz der entsprechenden Hardwarerepr sentation ist Weiterhin wird mit time A gt Z der Zeitpunkt der Annahme angesprochen Die beiden Funktionen stimmen mit den korrespondierenden Funktionen der Freezevariablen tiberein Anhand 90 4 5 Auswertung der Eigenschaften des bergebenen Funktionsargumentes ist die Zuordnung allerdings ersicht lich freeze f x t assume during t t 2 y f Abbildung 4 6 Beispiel fiir unterschiedliche Hardware einer Annahme die mit during zu drei Zeitpunkten aktiv ist An dieser Stelle soll angenommen werden dass Annahmen in einer during Anweisung bereits aufgeteilt wurden sodass fiir jeden Zeitpunkt im during Intervall eine einzelne Annahme vorliegt Obwohl der Freezeausdruck gleich ist kann die entstehende Hardware zu jeder dieser einzelnen Annahmen nicht zusammengefasst werden Zur Illustration dieses Umstandes soll das Beispiels in Abb 4 6 dienen Eine Freezedefinition f speichert den Eingang x zum Zeit punkt 0 t wird zu 0 angenommen in der Variable fo und schiebt ihn mit einer Registerkette an die Signale f und fa Der jeweilige Wert wird in einer Annahme w hrend der Zeitpunkte 0 bis 2 mit dem Eingang y verglichen Da bei muss der Vergleichsoperator die Hardware des Ausdrucks der Annahme drei mal instanziiert werden da jede Instanz mit einem and
207. r dass die j ngeren Eigenschaftspositionen weiter vorn angeord net werden w hrend die lteren Eigenschaften weiter hinten vorkommen Es ist dabei zu beachten dass es genau eine Eigenschaftsposition p in jedem Zustand s S gibt f r die t right p lt 0 ist d h sie ist die gegenw rtig aktive Eigenschaft DEA als 6 Tupel Der zu konstruierende deterministische endliche Automat wird durch ein 6 Tupel ADEA V Vo x Q EN A charakterisiert bei dem e V die Menge der Zust nde Vo der Startzustand Vo V e X das Eingabealphabet e Q das Ausgabealphabet e die Zustandsiibergangsrelation 6 C V x x V e sowie A die Ausgaberelation AT C V x Q sind Damit ist der Automat ebenso wie der NEA ein Moore Automat bei dem die Ausgaberelation nicht vom Eingabealphabet abh ngt 115 4 Synthese von Operationseigenschaften Zust nde Die Zust nde v V des neuen deterministischen Automaten entstammen der Potenzmenge von S mit V 2 Die Elemente s S eines Zustands v C S die gleichzeitig den Zust nden des NEA entsprechen werden im folgenden auch als Pfade bezeichnet Der Startzustand ist hnlich dem Startzustand des NEA als Menge Vo So definiert dessen einziges Element So ist was wiederum dem Anfang der Reseteigenschaft entspricht Eingabealphabet Das Eingabealphabet ist das selbe wie das Eingabealphabet des NEA Die Elemente von sind dabei beliebige Teilmeng
208. r Annahme darstellt Er darf jedoch nicht mit der rechten Grenze der Eigenschaft verwechselt werden da 83 4 Synthese von Operationseigenschaften nach right p noch Zusicherungen auftreten d rfen Dies ist insbesondere bei einer Komponente mit Pipeline Verhalten der Fall Der Zeitpunkt last p einer Eigenschaft p kann nicht kleiner sein als right p Er wird berechnet indem alle Zeitpunkte der Annahmen und Zu sicherungen vgl Abschnitt 3 2 3 zu konstanten Zahlenwerten ausgewertet werden und nur das Maximum dieser Zahlenwerte und right p bestimmt wird Vp E P last p maz right p U time e e Ap U Zp Da Abschnitt 5 1 2 die Verwendung des next Operators einschr nkt kann vorausgesetzt werden dass Annahmen und Zusicherungen keine Signalwerte aus der Zukunft zu ihrer Auswertung ben tigen Dadurch ist garantiert dass last p der wirklich letzte Zeitpunkt ist an dem noch Auswirkungen der betreffenden Eigenschaft vorhanden sind 4 5 3 Distanz zwischen zwei Eigenschaften Die Distanz distance Px P N zwischen zwei Eigenschaften pi und pa wird als k rzeste Anzahl Takte defi niert die vergehen m ssen bevor nach dem Beginn einer Instanz von p eine Instanz von p2 starten kann Falls im Eigenschaftsgraph P die Eigenschaft p2 direkt auf p folgen kann d h es existiert eine Kante p p2 Ep dann entspricht die L nge length p der Distanz Im allgemeinen Fall ist die Di stanz jedoch die minimale S
209. r gute Ergebnisse erzielt hat man bei kontrollflussorientierter Funktionalit t h ufig zu wenig Kontrolle dar ber in welchem Zeitschritt welche Aktionen ausgef hrt werden An dieser Stelle kommt die in dieser Arbeit genutzte operationsbasierte Be schreibung zum Einsatz Jede der dabei verwendeten Operationen definiert das Verhalten des Schaltkreises w hrend eines festen Zeitintervalls Durch se quentielle Verkettung der Operationen wird das Gesamtverhalten modelliert Ein Entwurf mit Hilfe von Operationen f llt eine Nische zwischen algorithmi schen Beschreibungen und RTL aus was insbesondere dann von Vorteil ist wenn die Spezifikation das Verhalten bereits als Folge von elementaren Ope rationen beschreibt In vielen Spezifikationen sind Zeitdiagramme enthalten die genau diese Operationen darstellen Weitere Details zu den Entwurfsebe nen der High Level Synthese und dem operationsbasierten Entwurf werden im n chsten Kapitel als Grundlage dieser Arbeit eingef hrt 1 2 Operationen als Verifikationsmethodik Neben den Zeitdiagrammen ist ein weiterer wesentlicher Einfluss der zu die ser Arbeit gef hrt hat die formale Verifikation digitaler Schaltkreise mit Hilfe temporaler Eigenschaften Bei der Firma OneSpin Solutions wurde in langer Tradition eine Methodik entwickelt die als GapFree Verification im Veri fikationswerkzeug 360MV vermarktet wird und auf zwei Standbeinen beruht OSS10 Zum einen wird das zu verifizierende Verhalten
210. rantwortlich ist doppelt verschachtelt ber die Pfade iteriert werden muss Im Gegensatz zur oben genannten exponentiellen Zunahme der berg nge und damit verbundenen Aufrufe von succ v o verl uft diese Entwicklung jedoch sehr moderat 121 4 Synthese von Operationseigenschaften 4 8 Erzeugung des Schaltsignals der Freezevariablen In Abschnitt 4 5 4 wurde die Anzahl der Speicherpl tze f r Freezevariablen anhand der Analyse der Eigenschafts berlappung auf ein Minimum redu ziert Dazu war es notwendig die Daten der Speicherpl tze zu bestimmten Eigenschaftszeitpunkten weiterzuschalten Das entsprechende Schaltsignal stand zu diesem Zeitpunkt jedoch noch nicht bereit Erst mit der erfolgrei chen Konstruktion des Kontrollautomaten ist die Erzeugung des Schaltsignals m glich Das Schaltsignal s einer Freezevariable f der Eigenschaft p muss genau dann aktiviert werden wenn die Eigenschaftsposition piime f We auftritt d h wenn einer der gegenw rtig aktiven Zust nde des Automaten diese Eigen schaftsposition enth lt Dazu m ssen die Zust nde bzw Pfade des Automa ten die eine betreffende Eigenschaftsposition enthalten gesammelt werden Die Menge Spt ist durch folgende Formel definiert Spt seS pest Anstelle des speziellen auf die Freezevariable zugeschnittenen Schaltsi gnals s soll ein allgemeines Schaltsignal eingef hrt werden welches auch im weiteren Verlauf der Synthese verwendet wird Dieses Schaltsign
211. rd im Folgenden als lt angegeben Die Ordnung hnelt der partiellen Ordnung von Eigenschaftspositionen in Abschnitt 4 7 5 F r die Sortierung der Zust nde reicht jedoch keine partielle Ordnung sondern es muss eine lineare Ordnung eingef hrt werden Dabei wird zuerst nach dem Eigenschaftsnamen sortiert und bei Gleichheit nach dem Zeitpunkt der Eigenschaft p lt a p lt g V a lt pAlt lt W Die Sortierung der Eigenschaften ist dabei beliebig und wurde in dieser Arbeit entspechend der alphabetischen Sortierung des Namens gew hlt Diese Ordnung kann auf nichtdeterministische Zust nde Pfade s S erweitert werden indem die Eigenschaftspositionen innerhalb eines Pfades 133 4 Synthese von Operationseigenschaften sortiert und nachfolgend zwei Pfade lexikographisch miteinander verglichen werden 81 lt 82 s1 lt lt s2 lt Zwei Zust nde mu ua V des DEA werden analog sortiert mm lt v2 v1 lt lt v2 lt Mit Hilfe dieser Ordnung werden die Zust nde sortiert und anschliessend durchnummeriert So erhalten Zust nde mit gleichen Eigenschaften aber be nachbarten Zeitpunkten aufeinanderfolgende numerische Werte Beispiel Um die Abbildung der Zust nde auf numerische Registerwerte und den Res sourcengewinn mit Hilfe des Default bergangs illustrieren zu k nnen wurden die Zust nde des DEA aus Abb 4 15 auf numerische Werte abgebildet In Abb 4 20 sind die Zust nde entsprechend mit dies
212. rden in Sch09 BDD Repr sentationen und hnliche Verfahren genannt die in vielen F llen lange Laufzeiten vermuten lassen Es werden haupts chlich kleinere Beispiele synthetisiert wie bspw Master und Slave Komponenten eines AMBA AHB Businterfaces und ein Cache Controller f r einen MIPS Core Prozessor Die Synthese des Cache Control lers ben tigt zirka 30 Minuten wobei die Normalisierung den gr ten Teil der Zeit einnimmt In der vorliegenden Arbeit wird argumentiert dass die Verwendung des in ITL bereitgestellten Eigenschaftsgraphen und der damit einhergehende Verzicht auf jegliche boolesche Pr fverfahren in Bezug auf die Teilausdr cke der Eigenschaften zu erheblichen Geschwindigkeitsvorteilen bei Eigenschaftsmengen mit komplexen Datenpfadoperationen f hrt Ein weiterer Nachteil der aus der Vernachl ssigung des Eigenschaftsgra phen bei der Synthese von Cando Objekten resultiert ist die Notwendigkeit konzeptionelle Zust nde in den Eigenschaften zu definieren Diese tauchen meist in den Zeitdiagrammen die die Grundlage f r ITL Eigenschaften bil den nicht auf und k nnen implizit aus dem Eigenschaftsgraph hergeleitet werden 2 3 3 Funktionale Programmierung und die Synthese von Hardware Im Gegensatz zu der bekannten imperativen Programmierung in bspw C oder C unterliegen funktionale Sprachen einem v llig anderen Paradig ma Grundlage ist das A Kalk l von Chu32 aus dem sp ter industriell einge setzte Programmierspra
213. rden kann Im folgenden sollen beide F lle n her erl utert werden next und prev heben sich auf Um die Aufhebung der beiden gegens tzlichen Operatoren zu implementieren sind zwei Beobachtungen notwendig Zum einen kann der Ausdruck a next prev e 142 5 1 Technische Einschr nkungen zu a e umgeformt werden und der next Operator ist eliminiert Ebenso kann im umgekehrten Fall verfahren werden Die zweite Beobachtung betrifft das Verschieben der zeitlichen Operatoren innerhalb eines kombinatorischen Ausdrucks So kann der Ausdruck a next Funktion el e2 als a Funktion next el next e2 geschrieben werden Auch hier kann die Verschiebung in beide Richtungen durchgef hrt werden Lediglich bei der Verwendung von Freezevariablen muss beachtet werden dass das Verschieben der zeitlichen Operatoren in einen Freezeausdruck hinein den Zugriffszeitpunkt auf die Freezevariable ver ndert Der Ausdruck a next Funktion el Ei bei dem die Freezevariable f zum Zeitpunkt 2 benutzt wird kann dement sprechend zu a Funktion next el f umgewandelt werden wobei im ITL Quelltext anstelle P und fo nur f auf tritt Der jeweilige Index wurde nur der Verst ndlichkeit halber hinzugef gt Mit Hilfe dieser beiden Beobachtungen ist es m glich in manchen F l len next Operatoren zu vermeiden So k nnen alle zeitlichen Operatoren in Richtung des Ausgangs des Gesamtausdrucks verschoben werden Am Aus gang treffen
214. rei Entwurfsmethoden 6 3 Syntheseergebnisse von VHDL und ITL 191 Algorithmenverzeichnis 4 1 4 2 4 3 4 4 Funktion zum Erstellen des NEA 2 2 2 2 000 105 Implementierung der Nachfolgerfunktion succ s 106 Funktion zum Erstellen des DEA 2 2 2 2 2 00 120 Implementierung der Nachfolgerfunktion succ v o 121 193 Thesen 1 Zeitdiagramme In Spezifikationen genutzte Zeitdiagramme sind eine geeignete Be schreibungsmethode f r das Verhalten von digitalen Schaltkreisen Dies ist insbesondere dann der Fall wenn das Verhalten in Operationen fes ter Zeitdauer unterteilt werden kann sodass sich das Gesamtverhalten durch eine Aneinanderreihung der Operationen ergibt 2 Entwurfsebene Die Entwurfsebene einer mit Hilfe von Operationen erstellten Schal tungsbeschreibung ist bez glich ihres Abstraktionsgrades zwischen der Register Transfer Ebene und der algorithmischen Ebene anzusiedeln 3 Vollst ndigkeit Die Anwendung des Verfahrens der vollst ndigen formalen Verifikation eines Satzes von Operationseigenschaften sorgt f r eine h here G te einer aus den Eigenschaften synthetisierte Schaltung Dies ist insbe sondere dann der Fall wenn der Erzeugung des Eigenschaftssatzes kein zu verifizierender Entwurf zugrunde liegt 4 Annahme Unter der Annahme dass ein auf Vollst ndigkeit gepr fter Eigen schaftssatz implementierbar und eindeutig ist kann automatisiert ein den Eigenschafte
215. ren sind diese jedoch wieder erfor derlich und m ssen vom Entwerfer bereitgestellt werden 6 2 Zusammenspiel mit der Logiksynthese Um aus Operationseigenschaften erzeugte Entw rfe auf Register Transfer Ebene benutzen zu k nnen m ssen diese in einem Logiksyntheseschritt in eine Netzliste auf Gatterebene berf hrt werden Damit das Ergebnis dieses Schrittes effizient ist sind verschiedene Optimierungen notwendig Sie k nnen entweder direkt von vhisyn durchgef hrt werden oder an die nachgelagerte Logiksynthese bertragen werden In dieser Arbeit wurde sich f r letzteres Vorgehen entschieden um die sehr ausgereiften Optimierungsans tze moder ner Synthesetools nutzen zu k nnen In sp teren Arbeiten kann untersucht werden ob die Anwendung dieser Ans tze auf der h hreren Ebene von vhi syn zus tzliche Vorteile ergibt die zu kleineren und schnelleren Netzlisten f hren 6 2 1 Retiming In diesem Abschnitt sollen insbesondere zwei Optimierungen angesprochen werden die besonders vielversprechend bei Entw rfen sind die aus Opera tionseigenschaften erzeugt wurden Das erste Verfahren nennt sich Retiming und wurde erstmals von LS91 beschrieben Es ist heute Bestandteil der meisten Synthesetools Die Grundidee hinter Retiming ist ein geordnetes Verschieben von Re gistern um die Taktfrequenz zu maximieren Der originale und der durch Retiming ver nderte Schaltkreis sind dabei funktional quivalent Das Ver fahren wird
216. rien von Annahmen zu beschreiben Ei ne m gliche Implementierung durch vhisyn k nnte im einfachsten Fall f r jede Alternative eine eigene Eigenschaft generieren Diese Eigen schaften schliessen sich dann jedoch nicht mehr gegenseitig aus was jedoch nicht zu Problemen f hrt da alle Zusicherungen gleich sind Die Verwendung dieser Anweisung im Zusicherungsteil stellt einen Frei heitsgrad der Implementierung dar da das System nur die Zusicherun gen eines der Auswahlbl cke erf llen muss Eine solche Mehrdeutigkeit ist bei der Synthese in konkrete Hardware nicht erw nscht e Die Anweisung exists repr sentiert ebenso eine Auswahl von mehre ren Bl cken mit zeitlichen Ausdr cken von denen nur einer erf llt sein muss Im Unterschied zu either wird dabei eine Schleifenvariable ge nutzt die ber einen fest definierten Bereich iteriert Die Implemen tierbarkeit der Anweisung verh lt sich analog zu either e Das Gegenteil stellt die Anweisung foreach dar bei der nicht einer der 146 Bl cke erf llt sein muss sondern jeder einzelne Im Annahmenteil ist die Implementierung der Anweisung durch Abrollen der Schleifenvaria ble und Erstellen einzelner Annahmen fiir jeden Durchlauf m glich 5 1 Technische Einschr nkungen Im Zusicherungsteil ist die Anweisung nur umzusetzen wenn dadurch keine sich widersprechenden Zusicherungen entstehen d h die Schlei fenvariable wird nur bei der Berechnung des Zeitpunktes verwendet was
217. rnationalen Konferenzen vorzustellen Weiterhin m chte ich Prof Wolfgang Kunz f r die bernahme des Zweitgutachtens danken Die Idee f r diese Arbeit entstand im Rahmen des Projekts Herkules gef rdert vom Bundesministerium f r Bildung und Forschung BMBF unter dem F rderkennzeichen 01M3082 In diesem Projekt lernte ich die formale Verifikationsmethodik von OneSpin Solutions kennen um in Zusammenar beit mit Alcatel Lucent Hardwarekomponenten vollst ndig zu verifizieren Die ersten Gedanken zur automatisierten Synthese eines Entwurfs auf RT Ebene aus ITL Eigenschaften hatte ich in einem der pers nlichen Gespr che mit Dr J rg Bormann damals OneSpin Solutions in N rnberg Das Team am SSE hatte wesentlichen Einfluss auf das Gelingen der Arbeit So danke ich vor allem Dr Vasco Jerini f r die vielen fruchtbaren Diskus sionen und fachlichen Anregungen in den letzten sieben Jahren Weiterhin danke ich Thomas Horn f r seine profunden grammatikalischen Kenntnisse und sein fachliches Verst ndnis Ebenso danke ich Dimo Pepelyashev f r das Engagement w hrend seiner Diplomarbeit das zur Verbesserung des Kon struktionsalgorithmus f hrte und Daniel Fro dessen Arbeit zu Partikelfil tern ein wichtiger Motor in der Entwicklung von vhisyn war Mein herzlicher Dank geb hrt nat rlich auch allen anderen ehemaligen und gegenw rtigen Kollegen und Studenten deren Hinweise Geduld Ablenkungen und nicht zuletzt Freundschaft mir sehr w
218. rung verwendet werden kann ohne manuelle Verfei nerungsschritte zu erfordern Die Vorteile liegen auf der Hand Die formal beweisbare Vollst ndigkeit der Eigenschaften hilft dabei Designfehler zu ver meiden So stellt der Entwurf der Operationseigenschaften stellt in vielen An wendungsgebieten eine h here Abstraktion gegen ber RTL dar Einige der Nachteile der algorithmischen Beschreibung k nnen dabei vermieden werden Dies betrifft vor allem die Beschreibung taktgenauen Verhaltens 1 3 Zielstellung und Entwurfsfluss Ziel dieser Arbeit ist die automatisierte Synthese einer effizienten Schal tungsbeschreibung auf RT Ebene aus Operationseigenschaften zu untersu chen Wenn das Ergebnis dieser Synthese vorliegt k nnen existierende Lo giksynthesewerkzeuge verwendet werden um eine Netzliste und sp ter einen lauff higen Hardwareprototypen zu erstellen Die konkrete Sprache der Ei genschaften soll dabei die InterVal Language ITL sein die auch bei der GapFree Verifikation von OneSpin Solutions zum Einsatz kommt Dadurch kann die Vollst ndigkeit von durchgef hrten Beispielentw rfen nachgewiesen werden und die Operationseigenschaften k nnen auf dem erzeugten Design formal gepr ft werden Damit werden das Synthesewerkzeug und die in ihm 19 1 Einleitung und Motivation enthaltenen Algorithmen auf ihre Zuverl ssigkeit und Fehlerfreiheit hin ge testet Im Rahmen dieser Arbeit entsteht ein experimentelles Entwurfswerkzeug vhisyn
219. s Be schriftung dargestellt In dieser Abbildung sind an den berg ngen nur die Minimalanforderungen o angetragen d h alle Kombinationen von Annah men in denen mindestens die Annahmen in gs erf llt sind l sen auch den bergang aus Ausgaberelation Das Ausgabealphabet 2 ist die Potenzmenge der Zusicherungen Q 27 103 4 Synthese von Operationseigenschaften reset 3 idle 0 reset 0 gt reset 1 sl reset 2 gt reset 3 sync 2 reset 4 sync 3 VES N sync 4 Pi idle 1 est sync 2 nosync 4 nosync 4 1 ide 1 le syne 3 sync 2 nosync 3 nosync 3 sync 2 idle 0 YY LY Caner sync 8 sync 9 S inframe 9 L_syne 7 nosync 0 nosync 1 gt nosync 2 J lt nosync 1 sync 8 inframe 9 inframe 8 inframe 7 inframe 8 inframe 0 inframe 1 inframe 0 DOS nosync 0 LE inframe 2 3 gt inframe 3 gt inframe 4 sl inframe 5 gt inframe 6 Abbildung 4 11 Nichtdeterministischer endlicher Kontrollautomat der Kom ponente Framer Mit Hilfe dieser Definition kann nun die Ausgaberelation A C S x Q defi niert werden F r einen gegebenen Zustand s S ist das gew hlte Ausgabe symbol ws Q die Menge aller Zusicherungen zp vgl Abschnitt 4 5 6 die in einer der Eigenschaftspositionen des Zustandes gelten ws L t Zone Zp es Damit wird die Ausgaberelation zu A s
220. schaften In diesen F llen schreibt vhisyn die entstehende Hardware direkt in das Zwischenformat Eventuelle Optimierungsm glichkeiten werden nicht beachtet Die Methoden des Resource Sharing sind in weit entwickelter Form in allen modernen Synthesewerkzeugen integriert Es muss lediglich darauf geachtet werden dass sie bei der Synthese einer aus ITL generierten Beschreibung auch aktiviert werden 6 3 Partikelfilter 6 3 1 Allgemeines Partikelfilter sind Sch tzverfahren aus der Klasse der Bayesfilter TBF05 Sie k nnen im Gegensatz zu Kalmanfiltern beliebige Wahrscheinlichkeitsvertei lungen repr sentieren An der Professur Schaltkreis und Systementwurf wur de im Projekt Generalisierte Plattform zur Sensordatenverarbeitung GPSV der BMBF Initiative InnoProfile an der Positionssch tzung mit Hilfe eines Partikelfilters gearbeitet Das dabei verwendete Testszenario umfasst ca 20 160 6 3 Partikelfilter fest installierte Funkknoten Anker die in den Laborr umen der Professur und im Aussengel nde angebracht sind Sie k nnen ungef hr 20 Entfernungs messungen pro Sekunde in Bezug zu einem mobilen Funkknoten durchf hren Damit ergibt sich eine geforderte Updatezeit des Filters von ungef hr 50 ms Diese gemessenen Entfernungsangaben k nnen mit Hilfe bekannter Anker positionen dazu dienen die Position des mobilen Knotens zu sch tzen Das dabei benutzte Verfahren basiert auf einem Partikelfilter Der Filter enth lt eine be
221. se 1 2 222 74 4 1 2 Details zu Phase 2 22 222 75 4 2 Einlesen von TIE ser rer ar int 75 4 3 Auswertung der Strukturbeschreibung 77 4 3 1 Signalverzeichnisse 2 22 rn 77 4 3 2 gt Parameter ar dee erst er ann 78 4 3 3 Signale or ec Baths u Bir Eat u 79 4 3 4 Untermodule si tauri E ie ersten tet 79 4 3 5 Signalverknipfungen 00 81 4 4 Erstellung des Eigenschaftsgraphen 2 2 2 2 2 81 4 5 Auswertung der Eigenschaften 0 82 4 5 1 Erfassung der Zeitpunkte 2 2 22 83 4 5 2 Erfassung der Grenzen der Eigenschaft 83 4 5 3 Distanz zwischen zwei Eigenschaften 84 Inhaltsverzeichnis 4 5 4 Freezevariablen 4 5 5 Auswertung der Annahmen 4 5 6 Auswertung der Zusicherungen 4 6 Konstruktion des nichtdeterministischen Kontrollautomaten 4 6 1 Abgerollter Eigenschaftsgraph 2 2 2 2 4 6 2 Nichtdeterministische endliche Automaten 4 6 3 Formales Konstruktionsverfahren 4 6 4 Ber cksichtigung der Erreichbarkeit und Algorithmus 4 6 5 Komplexit tsbetrachtung 2 2 2 2 4 7 Konstruktion eines deterministischen Kontrollautomaten 4 7 1 Konstruktion des Potenzmengenautomaten 4 7 2 Erreichbarkeit im Potenzmengenautomaten 4 7 3 Klassifikation der Annahmen 4 7 4 Kriterien zur Aufl sung des Nichtdeterminismus 4 7 5 Formales Kons
222. sfer Level RTL Synthesis Techn Ber 2004 Institute of Electrical and Electronics Engineers IEEE Std 1800 2005 IEEE Standard for System Verilog Unified Hardware De sign Specification and Verification Language Techn Ber 2005 Institute of Electrical and Electronics Engineers IEEE Std 1850 2005 IEEE Standard for PSL Property Specification Langua ge Techn Ber 2005 Institute of Electrical and Electronics Engineers IEEE Std 1647 2008 IEEE Standard for the Functional Verification Language e Techn Ber 2008 183 Literaturverzeichnis IEEE09 Imp 10 Kar72 Kup 10 Lan 11 Leh74 LH09 LPH10 LS91 MB06 184 Institute of Electrical and Electronics Engineers IEEE Std 1076 2008 IEEE Standard VHDL Language Reference Manual Techn Ber 2009 Impulse Accelerated Technologies 2010 URL http www impulseaccelerated com besucht am 01 12 2010 Richard M Karp Reducibility Among Combinatorial Pro blems In Complexity of Computer Computations Hrsg von R E Miller und J W Thatcher New York NY Plenum Press 1972 S 85 103 ISBN 978 3 540 68274 5 Jan Kuper Christiaan Baaij Matthijs Kooijman und Marco Gerards Exercises in architecture specification using CAaSH In Forum on Specification amp Design Languages FDL Gi res France 2010 S 178 183 Jan Langer Daniel Fro Enrico Billich Marko R ler und Ul rich Heinkel Multi Level
223. sich dabei auf weitere Freezevariablendefini tionen derselben Eigenschaft sowie deren Annahmen und Zusicherungen Innerhalb von Makros sind Freezevariablen nicht sichtbar Der Zeitpunkt zu dem f benutzt wird h ngt nicht nur von dem jeweiligen Zeitpunkt hinter dem at Schl sselwort ab sondern kann sich durch entspre chende Verwendung von prev und next Operatoren wieder verschieben Durch die Implementierungen die bereits vorgestellt wurden stehen die Netz ID und Signalbelegung falls der Freezeausdruck zu einer Konstante wird sogar der konkrete Wert zu jedem Zeitpunkt i im Freezeintervall bereit und kann entsprechend im lokalen Signalverzeichnis der Eigenschaft abgelegt werden Vi time f last p locals f i fi time f Bei der Auswertung eines Ausdrucks wird der Auswertungszeitpunkt mit gef hrt Wenn dabei der Bezeichner einer Freezevariable auftaucht kann er mit Hilfe dieses Zeitpunktes im lokalen Signalverzeichnis nachgeschlagen wer den In Abschnitt 4 9 1 wird dieser Vorgang aus Sicht der Hardwareabbildung beschrieben 4 5 5 Auswertung der Annahmen Die Menge der Annahmen einer einzelnen Eigenschaft p P wird mit A bezeichnet w hrend die Menge aller Annahmen durch A A p P dargestellt wird Eine Annahme a A besteht aus einem Ausdruck der hnlich den Free zevariablen direkt in eine Hardwarerepr sentation berf hrt werden kann und einem Zeitpunkt zu dem der Ausdruck ausgewertet werden soll De
224. st tzte ITL Konstrukte Neben dem next Operator gibt es eine Anzahl weiterer von vhisyn nicht unterst tzter Konstrukte Dazu geh ren einige der selten benutzten Opera toren die haupts chlich dem Nutzerkomfort dienen und bei der Erstellung einer Eigenschaftsbeschreibung durch andere Konstrukte ersetzt oder mit Hil fe von nutzerdefinierten Makros nachgebildet werden k nnen Da eine genaue Auflistung aller nicht unterst tzten Konstrukte stark von der verwendeten ITL Version abh ngt wird an dieser Stelle darauf verzichtet und es sollen nur der Operator let und die nicht unterst tzten zeitlichen Anweisungen n her beschrieben werden Der let Operator Da Makros in ITL in einem Stil beschrieben werden der der funktionalen Pro grammierung hnelt liegt es nahe den Operator let einzusetzen Er dient der Definition von Zwischenwerten und ist ein wichtiger Bestandteil von funktio nalen Sprachen wie LISP Ste90 und Haskell Hud 92 Als Beispiel soll ein Makro dienen welches das Quadrat einer Differenz zwischen zwei Zahlen a und b ausrechnet macro square_diff a b numeric numeric a b ab end macro Der Subtraktionsoperator taucht hierbei in jedem Faktor einmal auf Dies bedeutet zum einen mehr Schreibaufwand zum anderen auch einen erh hten Bedarf an Hardwareressourcen sofern keine Optimierung im Logiksynthese schritt stattfindet In der Regel ist es demnach w nschenswert einen Zwi schenwert f r die Differenz zu bere
225. st die Eigenschaft nur einen begrenzten zeitlichen Rahmen das InTerval Zus tzlich bietet ITL die M glichkeit mit Hilfe eines Eigenschaftsgraphen die berg nge zwischen einzelnen Eigenschaften zu beschreiben Damit kann auf einfache Art und Weise verzweigendes Verhalten dargestellt werden In dieser Arbeit wird ITL f r die Eigenschaftssynthese benutzt 2 2 3 Dynamische Verifikation Die dynamische Verifikation von Eigenschaften ist seit einiger Zeit Stand der Technik und ist in Simulationswerkzeugen wie Synopsys VCS Cadence Inci sive und Mentor Graphics ModelSim integriert Die dynamische Verifikation ist im Gegensatz zu formalen Methoden nicht vom Problem der Zustands raumexplosion betroffen und kann somit Eigenschaften auf komplexen Sy stemmodellen berpr fen Die Pr fung von nur einem Ausf hrungspfad legt eine Spezifikation in einer linearen Logik nahe Bei der dynamischen Verifikation von Eigenschaften gibt es zwei grundle gende Herangehensweisen Zum einen kann die Eigenschaft direkt mit Hilfe des Simulationstraces gepr ft werden Es kann bspw aus dem kompletten Simulationstrace ein abstraktes Modell erstellt werden das dann einer for malen Eigenschaftspr fung unterzogen wird GHS03 Der Vorteil gegen ber einer statischen Pr fung ist die stark verringerte Komplexit t des Modells Der Test kann jedoch erst nach Beendigung der Simulation durchgef hrt werden und es steht somit w hrend des Simulationslaufes keine sofortige
226. stimmte Anzahl von Partikeln die jeweils eine m gliche Position des Mobilknotens darstellen F r jede durchgef hrte Di stanzmessung werden zwei Schritte durchgef hrt Im ersten Schritt update werden alle Partikel zuf llig verschoben und einer Gewichtsberechnung zu gef hrt Der Gewichtswert charakterisiert die Wahrscheinlichkeit dass sich unter Annahme der aktuellen Messung der Partikel an derjenigen Position be findet die sein Zustand ausdr ckt Die Partikelpositionen werden im zweiten Schritt resampling entsprechend ihrer Gewichtswerte vervielf ltigt hohes Gewicht oder verworfen niedriges Gewicht Nach einer gen gend gro en Anzahl Messungen konzentrieren sich die Partikel in denjenigen Regionen in denen die tats chliche Position des Mobilknotens am wahrscheinlichsten ist Um ein gutes Sch tzergebnis zu erreichen werden ca 8000 Partikel ben tigt Da eine Softwareverarbeitung von 8000 Partikeln auf dem Prozessor des mobilen Knotens ungef hr 660 ms dauert k nnen weniger als zwei komplet te Filterdurchl ufe pro Sekunde stattfinden Die erreichbare Updatezeit ist damit deutlich niedriger als die geforderten 50 ms Weiterhin ist in diesem Fall der Prozessor vollst ndig mit dem Abarbeiten des Sch tzverfahrens be sch ftigt und hat nicht genug Ressourcen f r die Erf llung anderer Aufgaben zur Verf gung Aus diesem Grund wurde eine FPGA Implementierung des Partikelfilters angestrebt die als Koprozessor arbeitet die Mess
227. t match Abbildung 4 9 Beispiel eines endlichen Automaten zur alternativen Erken nung der Zeichenketten cat bzw cow in einem Text Zur Illustration wird auf eine beliebige Zeichenkette des ASCII Zeichensatzes der regul re Ausdruck cat cow angewendet d h wenn in der Zeichenkette eine Teilzeichenkette cat oder cow auftritt soll der Auto mat dies als Erfolg signalisieren In Abb 4 9 ist der dazugeh rige NEA dar gestellt Weiterhin zeigt die Abbildung zum Vergleich einen entsprechenden DEA der die selbe Funktion erf llt jedoch deutlich mehr berg nge be sitzt und damit wesentlich un bersichtlicher ist Die jeweiligen Endzust nde sind durch einen inneren Kreis gekennzeichnet und der Automat signalisiert bei Erreichen eines dieser Zust nde das erfolgreiche Erkennen des regul ren Ausdrucks 99 4 Synthese von Operationseigenschaften 4 6 3 Formales Konstruktionsverfahren NEA als 6 Tupel Der f r einen gegebenen Eigenschaftsgraphen zu konstruierende NEA wird durch ein 6 Tupel Angra S S0 Q 6 A charakterisiert bei dem e S die Menge der Zust nde e So der Startzustand So S e X das Eingabealphabet e Q das Ausgabealphabet e 6 die Zustands bergangsrelation A CS x Ux S e sowie A die Ausgaberelation A C S x Q sind Damit ist der Automat ein Moore Automat bei dem die Ausgaberela tion nicht vom Eingabealphabet abh ngt Zust nde Die Menge der Zust nde S 2
228. t wobei die konkrete Sprache durch die Trennung in zwei Pha sen vgl Abschnitt 4 1 unerheblich ist Das Ergebnis von Phase 1 ist ein sprachunabh ngiges Zwischenformat in dem Hardwarekonstrukte in ITL hnlicher Semantik abgelegt werden k nnen Ziel dieses Unterkapitels ist es die bereits erzeugten formalen Modelle in das Zwischenformat zu berf hren Bei der Abbildung wird rekursiv vorgegangen d h es existiert ein vom Benutzer vorgegebenes Toplevelmodul mit einem Satz von Parametern ge nerics Dieses Toplevelmodul wird durch Einlesen des structure Abschnitts direkt in die entsprechende Komponente im Zwischenformat berf hrt Un termodule werden rekursiv nach dem gleichen Schema abgebildet Viele der Abbildungsmechanismen sind entweder trivial oder wurden bereits bei den modellgenerierenden Schritten der vorherigen Abschnitte dargestellt Einige wenige Punkte bed rfen jedoch einer weiteren Untersuchung Zum einen be trifft dies die Abbildung von Ausdr cken und Makros Zum anderen ist die Hardwaregenerierung der beiden Automatentypen zu betrachten 4 9 1 Abbildung des Datenflusses Ausdr cke und Makros Beispiel Die Abbildung von Ausdr cken und Makros kann am besten mit Hilfe ei nes kleinen Beispiels illustriert werden Dazu ist in Abb 4 16 ein ITL Makro abgebildet das size Bits des Signals data zusammenf gt Wenn die L nge des Signals nicht ausreicht werden rekursiv Datenworte des Signals zu vor angegangenen Zeitpunkten
229. t man ein Gegenbeispiel Im anderen Fall jedoch kann man nur die Aus sage treffen dass innerhalb von k Zeitpunkten nach Reset die Eigenschaft erf llt ist Man erh ht k in einer weiteren Iteration und versucht wieder ein Gegenbeispiel zu erzeugen Eine Erh hung von k wird solange durchgef hrt bis der Pr faufwand die zur Verf gung stehenden Ressourcen bersteigt BMC kann eine erf llte Eigenschaft nicht beweisen sondern nur inkorrek te Eigenschaften widerlegen Die Funktionsweise von BMC beruht auf einer Umsetzung der abgerollten Schaltung und der Eigenschaft in ein Erf llbarkeitsproblem SAT Dieses ist zwar NP vollst ndig aber es existieren effiziente heuristische Algorithmen daf r DP60 DLL62 Interval Property Checking Die Firma OneSpin Solutions vertreibt eine Interval Property Checking IPC genannte Methodik zur Eigenschaftspr fung die hnlich BMC ein Design ber eine endliche Anzahl Zeitschritte abrollt und zusammen mit der Eigen schaft als SAT Problem darstellt OSS10 Es gibt zwei wesentliche Unter schiede gegen ber BMC Zum einen geht IPC nicht vom Resetzustand aus 35 2 Grundlagen temporaler Eigenschaften und ihrer Synthese sondern von einem beliebigen Zustand Zum anderen sind die Eigenschaften in ITL geschrieben sodass sie sich nur auf ein beschr nktes Zeitfenster aus wirken Die Schaltung wird dann exakt auf dieses Zeitfenster abgerollt Die inkrementelle Erh hung der L nge des Zeitfensters ist
230. tandsautomaten zu k mmern Unter bestimmten Bedingungen d h wenn zwei Regeln frei von Daten und Schreibkonflikten sind read after write write after write k nnen sie auch nebenl ufig in einem Takt ausgef hrt wer den Das Synthesewerkzeug der Sprache der Compiler hat die Aufgabe die Anzahl der parallel aktivierten Regeln zu maximieren um ein effizienteres Design zu erm glichen Im Gegensatz zu ITL wird bei Bluespec keine Vollst ndigkeitspr fung durchgef hrt d h es wird nicht berpr ft ob in jeder Situation eine wei tere Regel aktiviert werden kann oder ob ein Deadlock eintritt Wenn ein Speicherelement in einer Regel nicht ver ndert wird geht das System von einem Halten des Wertes aus Obwohl der Ansatz in HA04 als operation centric hardware description bezeichnet wird ist er nicht mit den Operatio nen dieser Arbeit zu vergleichen TL Operationen einer Komponente sind im Gegensatz dazu per Definition nicht nebenl ufig sondern jede Operation ist allein f r das Systemverhalten w hrend ihres Zeitabschnittes verantwortlich Weiterhin beziehen sich Bluespec Regeln immer nur auf einen Takt d h sie werten den Zustand des Systems zu einem bestimmten Zeitpunkt aus und bestimmen daraus den darauffolgenden Zustand blicherweise im n chsten Takt In ITL Operationen hingegen wird der Systemzustand ber mehrere Takte hinweg ausgewertet und die Ausg nge m ssen f r die gesamte Dauer der Operation bestimmt werden Aus dies
231. te Ansatz demnach geeignet 6 3 5 Demonstrator Die mit vhisyn erzeugte Hardwareimplementierung wurde mit Hilfe eines Funknetzwerks mit sechs Ankern erprobt In diesem Versuch lief eine Person entlang einer festgelegten Route und trug dabei den mobilen Knoten mit sich Die Entfernungsmessungen wurden ber das Funknetzwerk an den Host PC und von da weiter an das FPGA Board geleitet das dann die Position des Mobilknotens gesch tzt hat In Abb 6 5 sind alle sechs Ankerpositionen auf einer Karte mit drei Laborr umen markiert Weiterhin ist die gesch tzte Route gegen ber der tats chlichen dargestellt Es kann festgestellt werden dass der Filter korrekt funktioniert und eine mit vhisyn erzeugte Komponente erfolgreich auf einem FPGA ausgef hrt werden kann Der Host PC an den das FPGA Board angeschlossen wurde ist ebenfalls gekennzeichnet 166 6 4 Framer Start End E Host PC Anchor KK Abbildung 6 5 Testlauf des Partikelfilters in einem realen Anwendungssze nario mit sechs Ankern aus Fro 10 6 4 Framer Als zweites umfassendes Beispiel f r den Entwurf mit ITL dient eine Framer Komponente Dieses Beispiel war urspr nglich ein industrieller Entwurf der bei Alcatel Lucent verwendet wurde In Kooperation mit diesem Unterneh men konnte ausgehend
232. te Denn a 164 6 3 4 Vergleich mit alternativen Entwurfsmethoden 165 6 3 5 Demonstrator nennen 166 6 4 Kramer u ne en ae ere a a 167 6 4 1 Funktionsweise 2 22 nn 167 6 4 2 Vergleich mit Originaldesign 2 2 2 2 169 6 4 3 Laufzeit der Synthese 2 22 22 170 6 4 4 Verbesserungen 171 6 5 CC EECHER 172 6 6 Visualisierung des Zwischenformats 172 7 Schluss 175 7 1 Zusammenfassung 175 1 27 Ausblick eer rer ee en einer 176 Literaturverzeichnis 179 Abbildungsverzeichnis 189 Tabellenverzeichnis 191 Algorithmenverzeichnis 193 Thesen 195 10 Abk rzungsverzeichnis ABD ABV AHB AMBA ASCII ASIC AST BDD BMBF BMC BNF CTL DEA DSP DUV FIFO FPGA GPSV HAAD Assertion Based Design Assertion Based Verification Advanced High Performance Bus Teil von AMBA Advanced Microcontroller Bus Architecture American Standard Code for Information Interchange anwendungsspezifische integrierte Schaltung engl Application Specific Integrated Circuit Abstrakter Syntaxbaum engl Abstract Syntax Tree Binary Decision Diagram Bundesministerium ftir Bildung und Forschung Bounded Model Checking Backus Naur Form Computation Tree Logic Deterministischer endlicher Automat Digitaler Signalprozessor engl Digital Signal Processor Design Under Verification First In First Out Speicherverfahren nach dem Prinzip einer Warteschlange Field Programmable Gate Array Gener
233. te during Intervall einzeln erzeugt wird entsteht eine gro e auf gebl hte Repr sentation die dann erst vom Logiksynthesewerkzeug wieder optimiert werden kann Aus diesem Grund muss untersucht werden inwie weit quivalente Zusicherungen schon vor der Erzeugung der Hardware zu sammengefasst werden k nnen Die gew hlte Implementierungsstrategie sieht eine Unterteilung isomor pher Zusicherungsausdr cke in Intervalle vor F r jedes Intervall wird dann der Ausdruck nur einmal ausgewertet bzw es wird nur eine einzige Hardwar einstanz ben tigt In einem ersten Schritt ist es dazu notwendig herauszufin den welche Freezevariablen zu welchen Zeitpunkten von einer Zusicherung z Z verwendet werden Die Menge der Variablen und Zeitpunkte kann durch die Abbildung sup ZJAFxZ bestimmt werden indem der abstrakte Syntaxbaum AST des Ausdrucks von der Wurzel beginnend durchsucht traversiert wird und die Vorkommen von Freezevariablen gespeichert werden Der Zeitpunkt wird dabei initial auf den Wert time z gesetzt und rekursiv w hrend der Traversierung aktuali siert Jedes Vorkommen des prev Operators setzt den Zeitwert um den Wert des zweiten Arguments default 1 zur ck w hrend der next Operator eine Erh hung verursacht Makroaufrufe m ssen dabei auch ber cksichtigt wer den obwohl in ihnen keine Freezevariablen sichtbar sind denn etwaige prev oder next Operatoren auf tieferen Ebenen k nnen eine Verschiebung des Benutzun
234. tem Komponente Eigenschaften Kodezeilen Zust nde resampler 5 248 8 updater 4 538 63 starter 6 220 8 random 2 90 3 timer 3 95 5 particle Toplevel 0 105 0 Tabelle 6 1 berblick ber die mit ITL beschriebenen Komponenten des Partikelfilters Anzahl der Eigenschaften und der durch die Automatenkonstruktion entstan denen Zust nde aufgef hrt Der synthetisierte Partikelfilter arbeitet mit einer maximalen Taktfrequenz von 8 6 MHz und benutzt ca 47 der kombinatorischen Ressourcen des an gegebenen FPGA Er ben tigt drei Takte um einen Partikel zu verarbeiten woraus sich eine Updaterate von 2 9 ms ergibt Dies unterschreitet die gefor derte Updaterate von 50 ms um ein Vielfaches Betrachtungen zum Retiming Die ITL Implementierung insbesondere des updater setzt gro e Operatoren als rein kombinatorische Bl cke um Aus diesem Grund ergibt sich ein sehr langer kritischer Pfad der die maximale Taktfrequenz beschr nkt Um die Frequenz zu steigern wurde das Logiksynthesetool angewiesen Retiming zu 163 6 Ergebnisse benutzen um verf gbare Register in die kombinatorischen Bl cke hineinzu schieben Daf r darf die Anzahl Takte zwischen dem Einlesen eines Partikels und der Ausgabe nicht zu kurz sein damit berhaupt Register vorhanden sind die verschoben werden k nnen Dazu wurde die Verz gerung des Up daters als generischer Parameter DELAY definiert der alle Zuweisungen an Aus
235. ten bleibt dieser Wert klein da Z h ler und Nenner gleicherma en wachsen Bei hoher berlappung dagegen kann dieser Wert schnell wachsen und man hat keine Vorteile gegen ber der Registerkettenimplementierung Illustration des Registerschedulings an einem Beispiel Zur Verdeutlichung des Verhaltens der beiden vorgestellten Ans tze soll Abb 4 5 dienen Sie zeigt eine beliebige Eigenschaft p mit einer Freezevariablen f Die Eigenschaft beginnt mit left p 0 und endet zu right p 2 Die Gren zen sind in der Abbildung durch kleine Dreiecke symbolisiert Aus den Gren zen ergibt sich eine L nge length p 2 Der letzte Zeitpunkt last p 4 der Eigenschaft verursacht ein berlappendes Verhalten Weiterhin muss si chergestellt sein dass der Eigenschaftsgraph P eine Kante p p E enth lt sodass die Eigenschaft auf sich selbst folgen und sich damit selbst berlappen kann A Zeit A 3 4 1 y2 3 J fo fi f2 fs fa B el fo W I D f3 4 Bl Bl Abbildung 4 5 Speichern einer Freezevariable bei berlappenden Eigenschaf ten Im dargestellten Beispiel sind drei Instanzen dieser Eigenschaft hinter einander aktiviert worden Es ist erkennbar dass die Eigenschaften sich mit jeweils drei ihrer f nf Zeitpunkte berlappen Der letzte Zeitpunkt t 4 kann sogar zu einer dreifachen berlappung f
236. tige Aktivierungen der originalen bergangsbedingungen erfordern d h die Kante 12 ca 123 ben tigt in der Eingangszeichenkette sowohl das Zeichen c als auch das Zei chen a Da aber immer nur genau ein Zeichen entweder c oder a auftritt wird dieser bergang niemals aktiviert Beide Teilbedingungen sind nicht unabh ngig voneinander Wenn dieser Fakt bei der Konstruktion in Betracht gezogen wird k nnen alle berg nge die das Auftreten mehrerer Zeichen er fordern entfallen und der Automat vereinfacht sich stark In der Abb 4 13c ist das Resultat als optimierter DEA dargestellt Auf die Konstruktion eines DEA f r den Kontrollautomaten der Eigen schaftsbeschreibung bezogen bedeutet dies dass bei der Konstruktion des DEA beachtet werden muss welche Annahmen sich gegenseitig ausschliessen Das ist prinzipiell durch die Formulierung eines Erf llbarkeitsproblems SAT und die anschlie ende Pr fung mittels eines SAT Solvers m glich DP60 DLL62 Die Pr fung kann jedoch unter Umst nden sehr aufwendig werden da die L sung des aussagenlogischen Erf llbarkeitsproblems im Allgemeinen NP vollst ndig ist Kar72 Eines der haupts chlichen Ziele dieser Arbeit ist jedoch die Vermeidung von Erf llbarkeitsproblemen da die Laufzeit des Syn thesewerkzeugs dadurch weniger vorhersehbar wird und insbesondere kom plexe Zusammenh nge zwischen Annahmen zu hohem Pr faufwand f hren 4 7 3 Klassifikation der Annahmen Es k nnen auch ohne
237. trollfluss abbildet Ziel beider Teilaufgaben der HLS ist die Mi nimierung sowohl der Anzahl der ben tigten Funktionseinheiten Fl che des Schaltkreises als auch der ben tigten Zeitschritte um das Programm abzu arbeiten Durchsatz Es kann dabei entweder die verf gbare Anzahl Funkti onseinheiten oder die maximal nutzbare Anzahl Zeitschritte begrenzt werden je nachdem ob der Fokus der Synthese auf einem hohen Durchsatz oder einem geringen Ressourcenverbrauch liegt 2 3 2 High Level Synthese aus temporalen Eigenschaften In Abschnitt 2 2 wurden Spezifikationen basierend auf temporaler Logik f r die Verifikation eines Schaltkreises verwendet Es ist jedoch in einigen F llen w nschenswert aus einer solchen Spezifikation auch automatisiert ein Design zu erstellen Dieses erf llt per Definition die Eigenschaften und kann even tuelle Freiheitsgrade die von den Eigenschaften nicht abgedeckt werden zur Optimierung heranziehen Die Eigenschaften werden auf einer abstrakteren Ebene und mit gr erem Bezug zur textuellen Spezifikation geschrieben als eine m gliche RTL Implementierung Daher verringert sich die Wahrschein lichkeit von Fehlern und die Wartbarkeit des Designs wird erh ht Die HLS aus temporalen Eigenschaften darf nicht mit der Monitorgenerierung ver wechselt werden bei der keine Werte f r Ausgangssignale generiert werden sondern nur ein einzelnes Signal das anzeigt ob die Eigenschaft fehlgeschla gen ist Die Synthese von
238. truktionsverfahren 4 7 6 Erreichbarkeit und Algorithmus 2 2 2 4 7 7 Komplexit tsbetrachtung 2 2 2 2 2 4 8 Erzeugung des Schaltsignals der Freezevariablen 4 9 Abbildung in Hardware 4 9 1 Abbildung des Datenflusses Ausdr cke und Makros 4 9 2 Direkte Abbildung des nichtdeterministischen Auto maten Fas Son Se a Ay Se OS i TE S 4 9 3 Abbildung des deterministischen Automaten 4 94 Zuweisung der Zusicherungen Anforderungen an eine synthesef hige Eigenschaftsbeschreibung 5 1 Technische Einschr nkungen s aooaa a 5 1 1 Intervalle in Zeitvariablen 5 1 2 next Operator 2 apeu i a ag e a d E a 5 1 3 Weitere nicht unterst tzte ITL Konstrukte 5 1 4 Zusicherungen 551 5 Constraints n cousin ka ek Gk Bee ee A a 5 2 Anforderungen an den Beschreibungstil 5 2 1 Kurze Operationseigenschaften 5 2 2 Konzeptionelle Zustande Ergebnisse 6 1 Formale Eigenschaftspr fung des erzeugten Entwurfs 6 1 1 Fehlende konzeptionelle Zust nde 6 1 2 Fehlende Constraints 2 2 22 222mm Inhaltsverzeichnis 6 2 Zusammenspiel mit der Logiksynthese 158 DT Retiming aie Sc Sead x Sad ne ana 158 6 2 2 Resource Sharing 2 2 2 222 nn n nenn 160 6 3 Partikelfilter u ny aa ae De 160 6 3 1 Allgemeines 160 6 3 2 Implementierung 161 6 3 3 Verifikation ug s
239. tscheidung mehrere parallele Eigenschaften sind gleich zeitig aktiv nach einer gewissen Zeit wieder aufl st Sp testens am Ende einer Eigenschaft muss jedoch feststehen ob sie aktiviert wurde oder nicht Falls ja darf gleichzeitig keine weitere parallele Eigenschaft aktiviert worden sein Diese Aufl sung des Nichtdeterminismus ist durch die Eigenschaften nur implizit gegeben und durch die Vollst ndigkeitstests gepr ft Bei der nichtdeterministischen Konstruktion werden die durchnummerier ten Annahmen als v llig unabh ngig voneinander betrachtet Dadurch hat man den Vorteil eines schnellen und effektiven Konstruktionsalgorithmus den man sich durch den Nichtdeterminismus des entstehenden Automaten erkauft Wie in Abschnitt 4 9 2 beschrieben wird existiert ein Verfahren die sen NEA in eine effektive Hardwarebeschreibung zu berf hren SP01 Sie05 Dabei wird im Wesentlichen das Verhalten des Automaten emuliert und die Aktivierung von jedem Zustand in einem eigenen Register gespeichert Der Nachteil des Verfahrens ist der hohe Bedarf an Registern der der Anzahl an Zust nden des Automaten entspricht Der Aufbau dieses Abschnitts folgt nicht der Reihenfolge des Synthesevor gangs Es wird zuerst die Umwandlung des NEA in einen DEA mit Hilfe des Potenzmengenverfahrens vorgestellt um davon ausgehend ein verbessertes Automatenkonstruktionsverfahren zu entwickeln Das Werkzeug vhisyn nutzt diesen Umweg nicht Es erzeugt direkt ein
240. umme der L ngen der Eigenschaften auf einem Pfad zwischen p und p2 im Eigenschaftsgraph Die L nge der Eigenschaft des Zielknotens p2 wird dabei nicht mit ber cksichtigt Ein Spezialfall ist die Distanz einer Eigenschaft zu sich selbst Hierbei wird gefordert dass der Pfad der zur Berechnung der k rzesten Distanz herangezogen wird nicht nur aus einem einzelnen Knoten bestehen darf d h der Pfad besteht aus mindestens zwei Knoten wobei sein Start und Endknoten immer die betreffende Eigenschaft selbst ist Daraus folgt dass die Distanz zwischen zwei Eigenschaften immer gr er oder gleich der L nge der Starteigenschaft ist distance p p2 gt length p Weiterhin kann die Distanz einer Eigenschaft zu sich selbst auch als Periode dieser Eigenschaft definiert werden period p distance p p 84 4 5 Auswertung der Eigenschaften Um den Distanzwert zu berechnen kann ein modifizierter Algorithmus zur Bestimmung des k rzesten Pfades in einem regul ren gerichteten und gewichteten Graphen verwendet werden Dazu bietet sich der Algorithmus nach Dijkstra an der in vielen Quellen zur Graphentheorie aufgef hrt ist z B Ger99 Die Modifikation besteht darin dass als Kantengewicht die L nge der Eigenschaft des Startknotens der Kante genutzt wird Die Komplexit t eines solchen Algorithmus w chst im Allgemeinen linear mit der Anzahl der Eigenschaften und Kanten im Eigenschaftsgraph Da der Eigenschaftsgraph in der Praxis
241. und Yael Zbar Ihe ForSpec Temporal Logic A New Temporal Property Specification Language In Tools and Algorithms for the Con struction and Analysis of Systems TACAS Springer 2002 S 296 311 Roy Armoni Dmitry Korchemny Andreas Tiemeyer Moshe Y Vardi und Yael Zbar Deterministic Dynamic Monitors for Linear Time Assertions In Formal Approaches to Testing and Runtime Verification FATES RV Springer 2006 S 163 177 John Backus Can Programming be Liberated from the von Neumann Style A Functional Style and its Algebra of Pro grams In Communications of the ACM 21 8 Aug 1978 S 613 641 ssn 00010782 Bishop C Brock und Warren A Hunt Jr The DUAL EVAL Hardware Description Language and Its Use in the Formal Spe cification and Verification of the FM9001 Microprocessor In Formal Methods in System Design 11 1 Juli 1997 S 71 104 ssn 0925 9856 179 Literaturverzeichnis Bie 99 BL69 Blo 07 BMPS1 Bor09 Bry86 Bur 90 BZ08 Cer 98 CGP 99 Cha 03 180 Armin Biere A Cimatti Edmund M Clarke und Yunshan Zhu Symbolic Model Checking without BDDs In Tools and Algo rithms for the Construction and Analysis of Systems TACAS Springer 1999 S 193 207 J Richard B chi und Lawrence H Landweber Solving Sequen tial Conditions by Finite State Strategies In Transactions of the American Mathematical Society 138 1969
242. ungen entge gennimmt und die gesch tzte Position des Mobilknotens zur ckliefert F r Details zur Implementierung des Filters wird an dieser Stelle auf Fro 10 verwiesen 6 3 2 Implementierung Das Design wurde in ITL beschrieben und mit vhisyn in eine VHDL Beschreibung auf RT Ebene bersetzt In Abb 6 3 ist die gesamte Struktur dargestellt Dabei wurden die Komponenten resampler updater starter ran dom und timer in ITL beschrieben w hrend die beiden FIFOs mit Xilinx Coregen erzeugt und per external Anweisung eingebunden wurden Eine Besonderheit stellt die verschachtelte Instanziierung von Komponenten ent sprechend Abschnitt 4 3 4 dar So wird bspw das Modul random sowohl in starter als auch in updater genutzt 161 6 Ergebnisse Messung De Vorhersage Gewichts FIFO Positions FIFO resampler Sch tzwert start Abbildung 6 3 Leicht vereinfachte Struktur des Partikelfilters Die Gr e der entstehenden VHDL Datei betr gt 2 8 Megabyte und ist damit verh ltnism ig gro Dies kommt dadurch zustande dass jeder Ope rator jede Instanz eines Funktionsaufrufs usw als eigenst ndige parallele VHDL Anweisung modelliert ist Insbesondere rekursive Funktionen f hren mit ihrer hohen Anzahl von Funktionsaufrufen zu ebenso vielen Hardwa rebl cken die den VHDL Quellkode aufbl hen Als Zielplattform dient ein Virtex II Pro FPGA xc2vp30 von Xilinx Der generierten Beschr
243. verwendet Zus tzlich f r jeden Ein oder Ausgang der neuen Instanz wird ein neues Netz angelegt und mit dem Port ver kn pft Dadurch kann beim sp teren Anlegen von Verbindungen zu diesen Schnittstellensignalen schon auf ein bestehendes Netz zugegrif fen werden 4 4 Erstellung des Eigenschaftsgraphen Der beschriebene Vorgang wird rekursiv durchgef hrt wobei sich die Tiefe der Hierarchie nach den Ebenen der verschachtelten Untermodule richtet Es ist dabei zu beachten dass sich durch die Neuerstellung eines Moduls f r jede Parameterkonfiguration die generierte Hardware aufbl ht Von vhi syn generierte VHDL Dateien sind dadurch evtl deutlich un bersichtlicher aufgebaut als es n tig w re Nach dem Evaluierungsschritt in Logiksynthe setools kann dieser Fffekt auch mit herk mmlichen Beschreibungsans tzen Verwendung von generic Anweisungen in VHDL beobachtet werden Der Effekt kommt dadurch zustande dass die Parameter in weiten Tei len die Struktur der Eigenschaften und Kontrollautomaten beeinflussen k n nen da sie in s mtlichen Ausdr cken auftreten d rfen Aus diesem Grund wurde auf die Nutzung von VHDL generics bei der bertragung von ITL Parametern verzichtet und das Modul wird f r jede Parameterkonfiguration neu erstellt 4 3 5 Signalverkn pfungen Die im structure Abschnitt der Vollst ndigkeitsbeschreibung auftauchenden Verkn pfungen zwischen zwei Signalen k nnen vier verschiedene Arten von Verbindung
244. von der originalen Spezifikation eine eigenschaftsba sierte formale Verifikation durchgef hrt werden Sah 07 Ausgehend von der dabei entstandenen vollst ndigen Eigenschaftsmenge wurde ein neuer Satz Eigenschaften abgeleitet und mit vhisyn eine VHDL Implementierung erzeugt Dieser neue Eigenschaftssatz ist notwendig da die originalen Eigen schaften speziell auf das zu verifizierende Design angepasst sind So erfordert bspw ein fehlendes Reset an mehreren internen Signalen zus tzliche Eigen schaften die lediglich das Einschwingverhalten der Komponente beschrei ben Im neuen Eigenschaftssatz wurde sich exakt an der in der Spezifikation definierten Funktionalit t orientiert Das in Abschnitt 4 6 1 eingef hrte Beispiel ist eine sehr stark vereinfachte Variante dieser Komponente 6 4 1 Funktionsweise Der Framer hat mehrere Teilaufgaben zu erf llen In Abb 6 6 ist das zu geh rige Strukturbild dargestellt Die enthaltenen Teilaufgaben werden im 167 6 Ergebnisse dout Alignment Descrambling Sync Wort Suche nach Pr fsumme Abbildung 6 6 Aufbau und wichtige Bestandteile des Framers folgenden kurz erl utert Zum einen sucht der Framer im eingehenden Daten strom nach einem Synchronisationswort Wenn dieses gefunden wird merkt sich der Framer die genaue Bitposition Nach Ablauf eines Datenrahmens von 19440 Worten wird an der selben Bitposition das Synchronisationswort erneut erwartet Wenn es in einer
245. vorkommen wenn die Zeitpunkte einer Eigenschaft ausgewertet werden Sie m ssen zu konkreten Ganzzahlen evaluieren und k nnen innerhalb beliebig komplexer Ausdr cke auch Parameter benutzen In diesem Fall wird kein Netz sondern nur die Belegung des Eintrags im Signalverzeichnis ben tigt Damit wird keine tat s chliche Hardware bei der Auswertung generiert Im Fall einer nichtkonstanten Auswertung wird in der generierten Hardwa re die Netz ID verwendet Wenn das Netz in einem anderen Scope innerhalb des selben Moduls verwendet wird muss es gegebenenfalls erst mit Hilfe zus tzlich eingef gter Ports auf die ben tigte Ebene weitergeleitet werden Dies betrifft zum Beispiel globale Eing nge die innerhalb eines Makros direkt benutzt werden ohne dass sie dem Makro als lokales Argument bergeben wurden Lokales Verzeichnis Das lokale Signalverzeichnis bildet nicht nur einen Bezeichner sondern auch einen Zeitpunkt auf ein konkretes Netz ab locals Name x Z gt Netz ID Signalbelegung Die Bedeutung von Netz ID und Signalbelegung ist dabei die selbe wie im glo balen Signalverzeichnis Der Zeitpunkt im Argument dieser Abbildung gibt an wann innerhalb einer Eigenschaft der betreffende Bezeichner genutzt wer den soll Bei Signalen die sich ausschlie lich aus Ein bzw Ausg ngen her leiten oder die mit Namen versehenen Zeitpunkte for timepoints einer Eigenschaft verwenden spielt der Zeitpunkt der Auswertung keine Rolle Le
246. werden die Zeitpunkte T im Abschnitt for timepoints ausgewer tet Dabei entsteht eine Abbildung timepoint P x T gt Z die dem Namen der Eigenschaft und dem Namen des Zeitpunktes einen kon kreten Ganzzahlwert zuordnet Dazu muss der Ausdruck der Zeitpunktdefi nition zu einem konstanten Ausdruck ausgewertet werden Die Zeitpunkte beziehen sich in ITL immer auf einen Referenzzeitpunkt t In dieser Arbeit muss daf r ein konkreter Wert verwendet werden Dement sprechend wird der Bezeichner t in einem solchen Ausdruck mit dem Wert 0 angenommen Es k nnte jede beliebige Ganzzahl genutzt werden jedoch erscheint der Wert 0 am intuitivsten 4 5 2 Erfassung der Grenzen der Eigenschaft Die beiden Abschnitte left_ hook und right_ hook f hren hnlich der Aus wertung der Zeitpunkte zu einer Abbildung auf eine Ganzzahl left P gt Z right P gt Z Es gilt dabei die Bedingung left p lt right p Da die linke Grenze left__hook bei der Reseteigenschaft nicht angegeben werden muss wird sie automatisch zu 0 definiert left reset P 0 Zus tzlich wird f r den weiteren Verlauf die L nge einer Eigenschaft be n tigt Anhand der Grenzen kann diese als Yp E P length p right p left p definiert werden Eine weitere wichtige Information die zu diesem Zeitpunkt des Synthese vorgangs gesammelt werden muss ist der sp teste Zeitpunkt der Eigenschaft last P gt Z der den Zeitpunkt der letzten Zusicherung ode
247. wertung der for timepoints Sektion einer Eigenschaft oder bei der bergabe von Werten f r Parameter von hierarchischen Unterkomponenten auf Falls das Ergebnis in 128 4 9 Abbildung in Hardware einem dynamischen Kontext wie einer Annahme oder dem Zuweisungsteil einer Zusicherung auftritt wird nur die Hardwareentsprechung des Signals in Form der Netz ID verwendet Rekursion Die beschriebene Aufgabenstellung kann anstatt mit einer iterativen L sung unter Nutzung von Stapelspeichern auch mit einem rekursiven Algorithmus bearbeitet werden Die Rekursion des Auswertungsalgorithmus w rde dann den verschachtelten Aufrufen der Ausdr cke folgen In der Praxis bedeutet dies aber sehr hohe Rekursionstiefen die wiederum an die Grenze der maxi malen Rekursionstiefe der Implementierung stossen Im Allgemeinen hat sich die iterative Implementierung als robustes und flexibles Verfahren erwiesen welches auch bei einer sehr hohen Tiefe des Aufrufbaumes von mehreren tausend Ebenen uneingeschr nkt nutzbar ist 4 9 2 Direkte Abbildung des nichtdeterministischen Automaten Synthesef hige Hardware verh lt sich prinzipiell deterministisch Der aktuel le Zustand wird dabei in Speicherelementen Registern gehalten Mit Hilfe einer rein kombinatorischen Zustands bergangsfunktion kann der Folgezu stand bestimmt werden der dann den vorherigen Wert in den Zustandsre gistern abl st Verschiedene Automatenkodierungen Die Kodierung der Zust nde
248. ws s E S 4 6 4 Beriicksichtigung der Erreichbarkeit und Algorithmus Ein weiterer wichtiger Punkt ist die Erreichbarkeit der Zust nde Die for male Konstruktion des NEA definiert die Menge der Zust nde des Systems mit S 2 Nach Beendigung des Konstruktionsverfahrens sind jedoch eine 104 4 6 Konstruktion des nichtdeterministischen Kontrollautomaten erhebliche Anzahl dieser Zust nde nicht vom Startzustand aus erreichbar In Abb 4 11 sind diese Zust nde nicht dargestellt und es ist w nschenswert dass sie w hrend der Konstruktion nicht betrachtet werden damit die Kom plexit t des Verfahrens m glichst gering bleibt Algorithmus 4 1 Funktion zum Erstellen des nichtdeterministischen Kon trollautomaten unter Ber cksichtigung der erreichbaren Zust nde 1 Se So 2 Q So 3 while Q 4 0 do 4 s w hle aus Q 5 09 0 s 6 for all s succ s do 7 if s S then 8 90 QUs 9 Se Sus 10 end if 11 for all o os Ca do 12 5 U s 0s 8 13 end for 14 end for 15 end while Aus diesem Grund wurde zu der bestehenden Konstruktionsvorschrift ein Algorithmus entwickelt der unter Ber cksichtigung der Erreichbarkeit der einzelnen Zust nde den Automaten erstellt Der passende Pseudokode ist in Alg 4 1 dargestellt und basiert auf einer Tiefen bzw Breitensuche des Au tomaten beginnend mit dem Startzustand Die Menge Q kennzeichnet dabei alle erreichbaren Zust nde
249. wurfs erkannt wird Wenn einer der beiden Tests nicht durch gef hrt wird k nnen parallele sich widersprechende Zuweisungen nur durch bereits genannte Warnung erkannt werden und die generierte Hardware ist m glicherweise fehlerhaft Dabei ist es wichtig zu verstehen in welchen Situationen Zusicherungen aus verschiedenen Eigenschaften parallel aktiviert werden k nnen Diese Fra gestellung entspricht der in Abschnitt 4 7 4 beantworteten Frage nach der Aufl sung des Nichtdeterminismus von parallel verlaufenden Eigenschaften Es l sst sich demnach feststellen dass in parallel aktivierten Eigenschaf ten keine sich widersprechenden Zusicherungen vorkommen d rfen bis der Zeitpunkt erreicht ist an dem die Parallelit t durch geeignete Annahmen aufgel st wird 5 1 5 Constraints Ein wichtiger Bestandteil der formalen Verifikation ist die Bestimmung von Constraints d h Beschr nkungen des Umgebungsverhaltens der zu verifi zierenden Komponente Es werden dabei Ausdr cke formuliert die nur die Eing nge der Schaltung benutzen d rfen und in jeder g ltigen Situation zu 151 5 Anforderungen an eine synthesef hige Eigenschaftsbeschreibung logisch wahr bzw in jeder ung ltigen Situation zu logisch falsch ausgewertet werden Wenn bspw eine Komponente der Kommunikation mit einem Bus dient ist ihr Verhalten bei ung ltigen Busoperationen unter Umst nden nicht spe zifiziert Das heisst dass das resultierende willk rliche Verhalten
250. ynthese linearer und verzweigender Zeit auf die hier nicht weiter eingegangen werden soll kann auf Var01 verwiesen werden Bei der Definition temporaler Sprachen wird nicht nach deren Verwendung zur Verifikation von Soft oder Hardware unterschieden Obwohl sowohl die statischen als auch die dynamischen Pr fverfahren unterschiedlich sind wer den die gleichen Sprachkonstrukte verwendet Regul re Ausdr cke Eine Form temporaler Logik leitet sich aus den regul ren Ausdr cken regu lar expressions RE ab Diese wurden urspr nglich f r die Mustererkennung entwickelt und sind Teil vieler Programmiersprachen Kommandozeilentools und Texteditoren RE sind eine Beschreibung der regul ren Sprachen die wiederum diejenigen Sprachen sind die von den endlichen Automaten ak zeptiert werden HMUO6 Es gibt eine direkte Entsprechung und Konver tierungsm glichkeit zwischen einem regul ren Ausdruck und dem endlichen Automaten der diese Sprache akzeptiert Regul re Ausdr cke bestehen aus drei Basisoperatoren AB Die Verkettung der beiden RE A und B wird durch Aneinanderh ngen der beiden Teile ohne ein Operatorsymbol gekennzeichnet An dieser Stelle wird ein zeitlicher Bezug eingef hrt denn nachdem A vollst ndig erkannt wurde wird nach B gesucht die RE cat passt auf die Sequenz c a und t A B Dieser Operator stellt die Vereinigung der beiden RE A und B dar mit cat cow wird entweder die zusammenh ngende Eingangsfolge c a u
251. ze 1 32 if statically s Zeitdom ne 1 _ Zeitdom ne 0 seq_prev 1 data 1 4 length OO a Instanz 0 seq_prev 1 data 1 length I lt 16 size 1 16 if statically downto Hen b Instanz 1 Abbildung 4 17 Hardwareabbildung des Makros seq_prev zur Ausf hrungs zeit 1 mit data als 16 Bit Vektor und size 32 den Zum anderen muss bei der Verwendung einer Freezevariable beachtet werden dass die Zeitdom nen mit den passenden Speichersignalen der Free zevariable verkn pft werden Der Ausgang der beiden Bl cke ist jeweils ein Annahmensignal assume 1 Suche im Signalverzeichnis In der Implementierung von vhisyn werden alle Freezevariablen und Makro argumente zusammen mit ihrer Zeitdom ne im lokalen Signalverzeichnis ab gelegt vgl Abschnitt 4 3 1 Bei der rekursiven Auswertung von Ausdr cken werden auftretende Bezeichner anhand der aktuellen Zeitdom ne im jewei ligen lokalen Verzeichnis gesucht und im Erfolgsfall mit dem entsprechen den Signal verkn pft Fall kein Eintrag im lokalen Verzeichnis vorliegt wird im globalen Verzeichnis nach dem Bezeichner gesucht nur Eingangssignale und Parameter Falls der Bezeichner dort gefunden wurde wird das Signal 125 4 Synt
252. zum einen dar in begr ndet dass die Verifikationseigenschaften aus Komplexit tsgr nden nur eine geringe L nge aufweisen d rfen und lange Eigenschaften mit meh reren kleinen nachgebildet werden m ssen Weiterhin bestehen im original VHDL Design Initialisierungsprobleme um die mit zus tzlichen Eigenschaf ten herumgearbeitet wurde Die Anzahl der Kodezeilen ist nicht exakt zu bestimmen da in beiden F l len zus tzliche Bibliotheken verwendet werden So ist die Implementierung des Barrel Shifter bspw nicht in der Anzahl Kodezeilen enthalten Die Logiksynthese wurde mit Quartus II Version 9 1 f r einen FPGA des Typs Stratix IV EP4S100G5F45C2ES1 durchgef hrt Dabei verbraucht das erzeugte Design knapp die doppelte Anzahl Logikressourcen w hrend sich die Anzahl der FlipFlops jeweils in einem hnlichen Rahmen bewegt Die resultierende maximale Taktfrequenz von ca 200 MHz ist in beiden F llen h her als die geforderte Frequenz von 155MHz 6 4 3 Laufzeit der Synthese Um die Laufzeit von vhisyn insbesondere in Hinblick auf sehr lange Eigen schaften absch tzen zu k nnen wurde diese f r verschiedene Rahmenl ngen gemessen In Abb 6 8 ist sowohl die Gesamtlaufzeit der Synthese als auch die Zeit die f r die Konstruktion des Automaten aufgewendet werden muss dargestellt Die Messung der Gesamtzeit startet mit dem Aufruf von vhisyn mit allen ben tigten ITL Dateien und endet nachdem das VHDL Modell ge schrieben wurde Die Z

Download Pdf Manuals

image

Related Search

Volltext volltext volltextsuche volltext hoai volltextsuche in dateien volltextsuche windows 11 volltextdatenbank volltext estg volltextsuche windows 10

Related Contents

Betriebsanleitung LION 3002 LION 4002  Wärmeschublade WS 55/162 WS 55/220 WS 60/144 WS 60 - V-Zug  Rexel Automatic Numbering Machines  Cisco Multimode LC Cable  Original Power 90342 mobile device charger  TK-8102H - Foro SYSCOM  Samsung DVD-P360 User Manual  addicted to life  1 [Converted]  AiM User Guide Kit for EVO4, Solo and SoloDL on  

Copyright © All rights reserved.
Failed to retrieve file