modellierung und transformation digitaler schaltungen mittels digital circuit petri nets
TRANSCRIPT
Christoph Brandau
Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets
Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets
Christoph Brandau
Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri NetsMit einem Geleitwort von Prof. Dr.-Ing. Dietmar Tutsch
Christoph BrandauFakultät für ElektrotechnikInformationstechnik und MedientechnikBergische Universität WuppertalWuppertal, Deutschland
ISBN 978-3-658-25243-4 ISBN 978-3-658-25244-1 (eBook)https://doi.org/10.1007/978-3-658-25244-1
Die Deutsche Nationalbibliothek verzeichnet diese Publikation in der Deutschen National-bibliografie; detaillierte bibliografische Daten sind im Internet über http://dnb.d-nb.de abrufbar.
Springer Vieweg © Springer Fachmedien Wiesbaden GmbH, ein Teil von Springer Nature 2019Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Jede Verwertung, die nicht ausdrücklich vom Urheberrechtsgesetz zugelassen ist, bedarf der vorherigen Zustimmung des Verlags. Das gilt insbesondere für Vervielfältigungen, Bearbeitungen, Übersetzungen, Mikroverfilmungen und die Einspeicherung und Verarbeitung in elektronischen Systemen.Die Wiedergabe von Gebrauchsnamen, Handelsnamen, Warenbezeichnungen usw. in diesem Werk berechtigt auch ohne besondere Kennzeichnung nicht zu der Annahme, dass solche Namen im Sinne der Warenzeichen- und Markenschutz-Gesetzgebung als frei zu betrachten wären und daher von jedermann benutzt werden dürften.Der Verlag, die Autoren und die Herausgeber gehen davon aus, dass die Angaben und Informa-tionen in diesem Werk zum Zeitpunkt der Veröffentlichung vollständig und korrekt sind. Weder der Verlag, noch die Autoren oder die Herausgeber übernehmen, ausdrücklich oder implizit, Gewähr für den Inhalt des Werkes, etwaige Fehler oder Äußerungen. Der Verlag bleibt im Hinblick auf geografische Zuordnungen und Gebietsbezeichnungen in veröffentlichten Karten und Institutionsadressen neutral.
Zugl.: Dissertation, Bergische Universität Wuppertal, 2018
Springer Vieweg ist ein Imprint der eingetragenen Gesellschaft Springer Fachmedien Wiesbaden GmbH und ist ein Teil von Springer NatureDie Anschrift der Gesellschaft ist: Abraham-Lincoln-Str. 46, 65189 Wiesbaden, Germany
fur Jenny
Geleitwort
Seit der Vorstellung der sogenannten Petri-Netze durch Carl Adam Petrizur Modellierung von Nebenlaufigkeit im Jahr 1962 wurde diese Art derStellen-Transitions-Netze kontinuierlich zur Steigerung des Modellierkomfortsaber auch der Modelliermachtigkeit erweitert. Neben der Einfuhrung vonzeitbehafteten und stochastischen Petri-Netzen waren dies auch High-Level-Petri-Netze mit ihren teils objektorientierten Strukturen. Waren zu Beginnhauptsachlich die Ablaufe bei technischen Prozessen und Computersystemenim Fokus der Modellierung, so dehnte sich der Anwendungsbereich spaterauch auf davon weiter entfernte Themen wie Prozesse in der Geschaftsweltaus. In Konsequenz wurde ein auf Petri-Netze basierendes Konzept auch furdie Unified Modeling Language (UML) ubernommen und im Rahmen desAktivitatsdiagramms als eines der Verhaltensdiagramme realisiert.
Der Erfolg der Petri-Netze ist insbesondere durch die ubersichtliche gra-phische Beschreibung von Nebenlaufigkeit begrundet. Insofern lag die Ideevon Herrn Brandau nahe, eine solche Modellierungsart auch fur digitaleSchaltungen zu verwenden, in denen der Stromfluss und damit der Logikflussauch nebenlaufig stattfindet. Bisherige Modellierungsarten wie beispielsweisedie Hardware-Beschreibungssprachen VHDL oder Verilog HDL erfordernfundierte Kenntnisse von deren Syntax. Zieht man diese Sprachen zum Ent-wurf von digitalen Schaltungen heran, so ist zusatzlich eine weitreichendeErfahrung im Umgang mit deren Sprachkonstrukten unabdingbar um syn-thesefahigen Code zu erzeugen. Die in diesem Buch vorliegende Arbeit vonHerrn Brandau schaltet mit den Petri-Netzen eine Stufe der Modellierung vordiese Hardware-Beschreibungssprachen, so dass der Entwickler sich nicht umdie Eigenheiten dieser Sprachen kummern muss. Mit den hier vorgestelltenErweiterungen der Petri-Netz-Nomenklatur konnen digitale Schaltungen di-rekt auf der graphischen Petri-Netz-Ebene beschrieben werden. Dies betrifftnicht nur Schaltnetze, auch Schaltwerke mit ihrem speichernden Verhaltensind auf diese Weise komfortabel zu entwerfen. Damit ist der Weg eingeschla-gen, hin zu einer reinen Verhaltensbeschreibung von digitalen Schaltungenmittels Petri-Netzen, aus denen dann die eigentliche Schaltung generiertwerden kann.
VIII Geleitwort
Die große Leistung dieses Buches liegt in der hohen Qualitat der mathe-matischen Definition des neuen Petri-Netz-Typs, den Herr Brandau mitDigital Circuit Petri Nets (DCPN) bezeichnet hat. Durch diese umfassendeformale Definition werden zusatzliche Erweiterungen in Richtung Verhaltens-beschreibung auf einfache Weise ermoglicht, um das beschriebene Ziel zuerreichen. Zusatzlich wird eine Implementierung der Definitionen in einemTool namens Logical PetriNet vorgestellt, mit dem entsprechende Schaltun-gen bereits beschrieben und synthetisiert werden konnen. Beispielschaltungenund Erlauterungen runden die Arbeit ab. Das Buch ist sehr zu empfehlenfur Entwickler digitaler Schaltungen.
Prof. Dr.-Ing. Dietmar TutschLehrstuhl fur Automatisierungstechnik/Informatik
Bergische Universitat Wuppertal
Vorwort
Der Ansatz fur meine Dissertation ist aus der Verbindung mehrerer meinerStudieninteressen entstanden. Auf der einen Seite haben mich Modellierungenvon Systemen immer beschaftigt, wodurch in dieser Arbeit die Petri-Netze ei-ne große Rolle spielen. Zum anderen haben Hardware-Beschreibungssprachenmein Interesse geweckt und ich habe mich intensiv mit diesen beschaftigt.Daraus ist die Frage entstanden, ob beide Themen nicht miteinander ver-knupft werden konnen und wenn ja, in welcher Art und Weise dies geschehenkann. Heraus gekommen ist das vorliegende Buch, indem aus neu definiertenPetri-Netzen, durch einen formalisierten Transformationsprozess, Hardware-Beschreibung generiert werden. Die Umsetzung der Forschungsergebnisse inSoftware zur Verifikation ist ein weiteres Interessengebiet und hat die Arbeitabgerundet und deutlich verbessert.Ich habe die Arbeit an der Bergischen Universitat Wuppertal am Lehr-
stuhl fur Automatisierungstechnik/Informatik geschrieben. Fur seine Un-terstutzung und ein immer offenes Ohr mochte ich meinem DoktorvaterProf. Dr.-Ing. Dietmar Tutsch danken. Ebenfalls hatte mein ZweitgutachterProf. Dr.-Ing. habil. Carsten Gremzow immer gute Ratschlage und Hinweise,die bei der Entstehung viel beigetragen haben. Ebenfalls mochte ich Prof.Dr.-Ing. habil. Armin Zimmermann fur seine Hinweise zur Verbesserungdieser Arbeit danken.Ich Danke meinen Kollegen am Lehrstuhl dafur, dass Sie meine Launen
ausgehalten und mit Ratschlagen zur Verbesserung der Arbeit beigetragenhaben. Ebenso mochte ich mich bei meinen Freunden dafur bedanken, dasssie auch nach einem Jahr wenig Kontakt noch immer uneingeschrankt anmeiner Seite stehen und jederzeit fur mich da sind. Gleiches gilt fur meineEltern und Schwester, die mit mir viel durchmachen mussten, aber trotzdemimmer vorbehaltlos zu mir gestanden haben.Ich widme meiner Freundin, Seelenverwandten und großen Liebe Jenny
diese Dissertation, ohne Sie ware das vorliegende Werk niemals entstanden.Sie hatte immer aufmunternde Worte und eine Schulter zum Anlehnen, egalwie schwierig die Situation auch war.
Wuppertal Christoph Brandau
Inhaltsverzeichnis
Symbolverzeichnis XV
Eigenschaften XVII
Strategien XIX
Abbildungsverzeichnis XXI
Tabellenverzeichnis XXV
Listingsverzeichnis XXVII
Algorithmenverzeichnis XXIX
Kurzfassung XXXI
1 Einleitung 11.1 Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.2 Ziel der Arbeit . . . . . . . . . . . . . . . . . . . . . . . . . . 41.3 Aufbau der Arbeit . . . . . . . . . . . . . . . . . . . . . . . . 6
2 Grundlagen und Stand der Technik 72.1 Petri-Netze . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.1.1 Einsatzgebiete . . . . . . . . . . . . . . . . . . . . . . 82.1.2 Definition . . . . . . . . . . . . . . . . . . . . . . . . . 82.1.3 High-Level Petri-Netze . . . . . . . . . . . . . . . . . . 112.1.4 Analyse . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.2 Digitalschaltungen . . . . . . . . . . . . . . . . . . . . . . . . 172.2.1 Kombinatorische Logik . . . . . . . . . . . . . . . . . . 182.2.2 Asynchron-Schaltwerke . . . . . . . . . . . . . . . . . 192.2.3 Synchron-Schaltwerke . . . . . . . . . . . . . . . . . . 212.2.4 Hazards . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.3 Hardwarebeschreibungssprachen . . . . . . . . . . . . . . . . 262.3.1 VHDL . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
XII Inhaltsverzeichnis
2.3.2 Verilog . . . . . . . . . . . . . . . . . . . . . . . . . . . 302.4 Endliche Automaten . . . . . . . . . . . . . . . . . . . . . . . 322.5 Stand der Forschung . . . . . . . . . . . . . . . . . . . . . . . 34
3 Digital Circuit Petri Nets 413.1 Erweiterungen . . . . . . . . . . . . . . . . . . . . . . . . . . 41
3.1.1 Ein- und Ausgangsstellen . . . . . . . . . . . . . . . . 423.1.2 Subnetze . . . . . . . . . . . . . . . . . . . . . . . . . 43
3.2 Definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 463.3 Eigenschaften . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
3.3.1 Erreichbarkeitsgraph . . . . . . . . . . . . . . . . . . . 553.3.2 Lebendigkeit und Terminierung . . . . . . . . . . . . . 633.3.3 Markierungen . . . . . . . . . . . . . . . . . . . . . . . 663.3.4 Invarianten . . . . . . . . . . . . . . . . . . . . . . . . 68
3.4 Simulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
4 Transformation von DCPN nach VHDL 734.1 Schaltelementerzeugung . . . . . . . . . . . . . . . . . . . . . 73
4.1.1 Kombinatorische Logik . . . . . . . . . . . . . . . . . . 734.1.2 Takterzeugung fur sequentielle Logik . . . . . . . . . . 764.1.3 Sequentielle Logik . . . . . . . . . . . . . . . . . . . . 80
4.2 System zur Transformation . . . . . . . . . . . . . . . . . . . 854.3 Validierung des Netzes . . . . . . . . . . . . . . . . . . . . . . 874.4 Optimierung des Netzes . . . . . . . . . . . . . . . . . . . . . 954.5 Netzanalyse . . . . . . . . . . . . . . . . . . . . . . . . . . . . 994.6 Synthese . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
4.6.1 Kombinatorische Logik . . . . . . . . . . . . . . . . . . 1084.6.2 Sequentielle Schaltungen . . . . . . . . . . . . . . . . . 114
4.7 Erzeugung der VHDL-Beschreibung . . . . . . . . . . . . . . 1254.7.1 Erzeugung der Schnittstelle . . . . . . . . . . . . . . . 1254.7.2 Kombinatorik . . . . . . . . . . . . . . . . . . . . . . . 1304.7.3 Sequentiell . . . . . . . . . . . . . . . . . . . . . . . . 133
4.8 Verifikation der Schaltung . . . . . . . . . . . . . . . . . . . . 1424.9 Analyse bestehender digitaler Schaltungen . . . . . . . . . . . 1454.10 Gesamtuberblick Transformationsprozess . . . . . . . . . . . . 148
5 Implementierung und Validierung 1515.1 Logical PetriNet . . . . . . . . . . . . . . . . . . . . . . . . . 151
5.1.1 Platzierungsoptimierung . . . . . . . . . . . . . . . . . 1535.1.2 Universelle Exportschnittstelle . . . . . . . . . . . . . 156
Inhaltsverzeichnis XIII
5.1.3 Logger . . . . . . . . . . . . . . . . . . . . . . . . . . . 1585.1.4 Markenspiel . . . . . . . . . . . . . . . . . . . . . . . . 1605.1.5 Analyse . . . . . . . . . . . . . . . . . . . . . . . . . . 1615.1.6 Simulation . . . . . . . . . . . . . . . . . . . . . . . . 1615.1.7 Transformation . . . . . . . . . . . . . . . . . . . . . . 1635.1.8 Funktionsbibliothek . . . . . . . . . . . . . . . . . . . 1665.1.9 Interner Aufbau . . . . . . . . . . . . . . . . . . . . . 1685.1.10 Validierung . . . . . . . . . . . . . . . . . . . . . . . . 174
5.2 Regeln zur Modellierung . . . . . . . . . . . . . . . . . . . . . 1765.3 Transformation exemplarischer DCPN . . . . . . . . . . . . . 178
5.3.1 Multiplexer . . . . . . . . . . . . . . . . . . . . . . . . 1785.3.2 Addierer . . . . . . . . . . . . . . . . . . . . . . . . . . 1845.3.3 Lauflicht . . . . . . . . . . . . . . . . . . . . . . . . . . 1925.3.4 Register . . . . . . . . . . . . . . . . . . . . . . . . . . 1965.3.5 Arithmetisch Logische Einheit . . . . . . . . . . . . . 203
6 Fazit und Abgrenzung 217
7 Zusammenfassung und Ausblick 2257.1 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . 2257.2 Ausblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228
Literaturverzeichnis 231
Anhang 255
Symbolverzeichnis
Symbol Beschreibung
A Menge der Kanten der ErreichbarkeitsgraphenB Menge der Bedingungen der ErreichbarkeitsgraphenE Menge der Knoten der ErreichbarkeitsgraphenF Flussrelation der Kanten des DCPNH Matrix der hemmenden KantenI Matrix der Eingangskanten
IRG Eingabeorientierter ErreichbarkeitsgraphK Menge aller KonflikteM Markierung des Petri-NetzesN Menge der NetzverbinderO Matrix der AusgangskantenP Menge der Stellen
Psub Menge der SubstellenPN Petri-NetzP PrioritatenRG ErreichbarkeitsgraphRRG Reduzierter ErreichbarkeitsgraphS SchaltvektorSF SchaltfolgeSW SchaltzeitenT Menge der Transitionen
Tsub Menge der SubtransitionenW WahrheitstabelleZ Menge der Zyklen in einem Petri-Netz
Eigenschaften
1 Vor- und Nachbereich . . . . . . . . . . . . . . . . . . . . . . 492 Transitionsaktivierung . . . . . . . . . . . . . . . . . . . . . . 503 Schaltreihenfolge . . . . . . . . . . . . . . . . . . . . . . . . . 514 Markierungsubergang . . . . . . . . . . . . . . . . . . . . . . 515 Beschranktheit . . . . . . . . . . . . . . . . . . . . . . . . . . 526 Zusammenhang . . . . . . . . . . . . . . . . . . . . . . . . . . 527 Quelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 528 Senke . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 539 Aufspaltung und Synchronisation . . . . . . . . . . . . . . . . 5310 Statische Konfliktfreiheit . . . . . . . . . . . . . . . . . . . . . 5311 Nebenlaufigkeit . . . . . . . . . . . . . . . . . . . . . . . . . . 5412 Konservativitat . . . . . . . . . . . . . . . . . . . . . . . . . . 5413 Free Choice . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5414 Siphon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5515 Trap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5516 Erreichbarkeitsgraph . . . . . . . . . . . . . . . . . . . . . . . 5517 Suberreichbarkeitsgraph Subtransition . . . . . . . . . . . . . 5918 Suberreichbarkeitsgraph Substelle . . . . . . . . . . . . . . . . 6119 Reduzierter Erreichbarkeitsgraph . . . . . . . . . . . . . . . . 6220 Lebendigkeit Transition . . . . . . . . . . . . . . . . . . . . . 6321 Lebendigkeit DCPN . . . . . . . . . . . . . . . . . . . . . . . 6422 Lebendigkeit Markierung . . . . . . . . . . . . . . . . . . . . 6423 Netztyp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6524 Zyklus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6525 Terminierung . . . . . . . . . . . . . . . . . . . . . . . . . . . 6526 Markierungsbereiche . . . . . . . . . . . . . . . . . . . . . . . 6627 Zeitliche Eingangsstellenanderung . . . . . . . . . . . . . . . . 6628 Zustandsfreiheit . . . . . . . . . . . . . . . . . . . . . . . . . . 6829 Stellen-Invariante . . . . . . . . . . . . . . . . . . . . . . . . . 6830 Transitions-Invariante . . . . . . . . . . . . . . . . . . . . . . 69
Strategien
1 Vorhandener Eingang und Ausgang . . . . . . . . . . . . . . . 882 Vorhandene Transition . . . . . . . . . . . . . . . . . . . . . . 883 Kanten bei Eingangs- und Ausgangsstellen . . . . . . . . . . . 894 Transition ohne eingehende/ausgehende Kante . . . . . . . . 895 Stellen ohne eingehende/ausgehende Kante . . . . . . . . . . 906 Eingehende/ausgehende Kanten bei Subnetzen . . . . . . . . 917 Zusammenhang . . . . . . . . . . . . . . . . . . . . . . . . . . 928 Starker Zusammenhang . . . . . . . . . . . . . . . . . . . . . 939 Statische Konflikte . . . . . . . . . . . . . . . . . . . . . . . . 9410 Entfernung von Elementen ohne Kanten . . . . . . . . . . . . 9611 Zusammenfassung von parallelen Transitionen . . . . . . . . . 9712 Zusammenfassung von Transitionen in Reihe . . . . . . . . . 9813 Entfernung von Stellen ohne eingehende Kante . . . . . . . . 9814 Entfernung nicht zusammenhangender Netzbereiche . . . . . 9815 Reduktion von Netzsymmetrien . . . . . . . . . . . . . . . . . 9916 Bestimmung Netztyp . . . . . . . . . . . . . . . . . . . . . . . 10017 Erreichbarkeitsgraphen aufstellen . . . . . . . . . . . . . . . . 10118 Zyklen bestimmen . . . . . . . . . . . . . . . . . . . . . . . . 10219 Terminierung . . . . . . . . . . . . . . . . . . . . . . . . . . . 10320 Zeitlose Terminierung . . . . . . . . . . . . . . . . . . . . . . 10321 Eindeutiger Endzustand . . . . . . . . . . . . . . . . . . . . . 10422 Eindeutig definierter Zustand . . . . . . . . . . . . . . . . . . 10523 Zustandsfreiheit . . . . . . . . . . . . . . . . . . . . . . . . . . 10624 Schaltungstyp bestimmen . . . . . . . . . . . . . . . . . . . . 10725 Wahrheitstabelle erzeugen . . . . . . . . . . . . . . . . . . . . 10926 Erzeugung DNF/KNF . . . . . . . . . . . . . . . . . . . . . . 11027 Optimierungsziele festlegen . . . . . . . . . . . . . . . . . . . 11028 Technologieunabhangige Optimierung . . . . . . . . . . . . . 11329 Bestimmung des sequentiellen Schaltungstyps . . . . . . . . . 11530 Berechnung des Takts . . . . . . . . . . . . . . . . . . . . . . 11631 Bestimmung der abweichenden Schaltzeiten . . . . . . . . . . 11732 Erzeugung des IRG . . . . . . . . . . . . . . . . . . . . . . . . 11933 Bedingungen des IRG optimieren . . . . . . . . . . . . . . . . 122
XX Strategien
34 Anpassung des IRG an den Takt . . . . . . . . . . . . . . . . 12335 Teilnetze zusammenfugen . . . . . . . . . . . . . . . . . . . . 12536 Hinzufugen vorher entfernter Ein- und Ausgangsstellen . . . . 12637 Uberprufung der Namenskonvention . . . . . . . . . . . . . . 12738 Erzeugung Schnittstelle Hauptnetz/hierarchielos . . . . . . . 12739 Erzeugung Schnittstelle Subtransition . . . . . . . . . . . . . 12840 Erzeugung Schnittstelle Substelle . . . . . . . . . . . . . . . . 12941 Strukturbeschreibung aus Wahrheitstabelle generieren . . . . 13142 Strukturbeschreibung aus booleschem Ausdruck erzeugen . . 13243 Zustande erzeugen . . . . . . . . . . . . . . . . . . . . . . . . 13444 Synchronen Zustandsubergang erzeugen . . . . . . . . . . . . 13545 Asynchronen Zustandsubergang erzeugen . . . . . . . . . . . 13646 Folgezustande erzeugen . . . . . . . . . . . . . . . . . . . . . 13947 Ausgange schreiben . . . . . . . . . . . . . . . . . . . . . . . . 13948 Komponenten hinzufugen . . . . . . . . . . . . . . . . . . . . 14049 Test-Bench erstellen . . . . . . . . . . . . . . . . . . . . . . . 14350 Simulationsergebnisse vergleichen . . . . . . . . . . . . . . . . 145
Abbildungsverzeichnis
1.1 Productivity Gap . . . . . . . . . . . . . . . . . . . . . . . . . 2
2.1 Stellen-/Transitions-Netz . . . . . . . . . . . . . . . . . . . . 102.2 High-Level Petri-Netz . . . . . . . . . . . . . . . . . . . . . . 122.3 Petri-Netz zur Erlauterung mathematischer Beschreibungen . 132.4 Markierungen durch unterschiedliche schaltende Transitionen 142.5 Erreichbarkeitsgraph Philosophen-Problem . . . . . . . . . . . 152.6 Gajski Y-Diagramm . . . . . . . . . . . . . . . . . . . . . . . 172.7 Schaltnetz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182.8 Schaltkette . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192.9 Asynchron-Schaltwerk . . . . . . . . . . . . . . . . . . . . . . 202.10 Synchron-Schaltwerk . . . . . . . . . . . . . . . . . . . . . . . 212.11 Statische und dynamische Hazards . . . . . . . . . . . . . . . 222.12 Funktioneller Hazard . . . . . . . . . . . . . . . . . . . . . . . 232.13 Moore-Automat . . . . . . . . . . . . . . . . . . . . . . . . . . 332.14 Mealy-Automat . . . . . . . . . . . . . . . . . . . . . . . . . . 33
3.1 Digital Circuit Petri Net . . . . . . . . . . . . . . . . . . . . . 413.2 Zeitliche Eingangsstellenanderung . . . . . . . . . . . . . . . . 423.3 Substelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 453.4 Subtransition . . . . . . . . . . . . . . . . . . . . . . . . . . . 463.5 Hierarchieauflosung eines DCPN . . . . . . . . . . . . . . . . 563.6 Hierarchieloses DCPN . . . . . . . . . . . . . . . . . . . . . . 573.7 Erreichbarkeitsgraph aus Abbildung 3.6 . . . . . . . . . . . . 583.8 Erreichbarkeitsgraph fur Subtransition . . . . . . . . . . . . . 603.9 Zeitliche Eingangsstellen-Veranderung . . . . . . . . . . . . . 673.10 Vorgabe Eingangsstellen fur Simulation . . . . . . . . . . . . 703.11 Simulation zeitbehaftetes DCPN . . . . . . . . . . . . . . . . 71
4.1 and -Verknupfung als Petri-Netz . . . . . . . . . . . . . . . . . 754.2 Taktrealisierung im Petri-Netz . . . . . . . . . . . . . . . . . 764.3 Taktrealisierung im Petri-Netz II . . . . . . . . . . . . . . . . 774.4 Takteinsatz im DCPN . . . . . . . . . . . . . . . . . . . . . . 78
XXII Abbildungsverzeichnis
4.5 Taktbeschreibung an zeitbehafteten Transitionen . . . . . . . 794.6 Externe Takterzeugung fur DCPN . . . . . . . . . . . . . . . 804.7 RS-Flip-Flop aus NAND-Gattern . . . . . . . . . . . . . . . . 814.8 RS-Flip-Flop . . . . . . . . . . . . . . . . . . . . . . . . . . . 824.9 Taktzustandsgesteuertes D-Flip-Flop . . . . . . . . . . . . . . 824.10 Taktflankengesteuertes JK-Flip-Flop als DCPN . . . . . . . . 834.11 Taktzustandsgesteuertes RS-Flip-Flop als DCPN . . . . . . . 844.12 Taktflankengesteuerte T-Flip-Flop als DCPN . . . . . . . . . 854.13 Transformationsprozess . . . . . . . . . . . . . . . . . . . . . 854.14 Zusammenhang im DCPN . . . . . . . . . . . . . . . . . . . . 924.15 Statische Konfliktmoglichkeiten . . . . . . . . . . . . . . . . . 934.16 Validierungsmethoden . . . . . . . . . . . . . . . . . . . . . . 944.17 Netzoptimierung paralleler Transitionen . . . . . . . . . . . . 964.18 Netzoptimierung sequentieller Transitionen . . . . . . . . . . 974.19 Netzoptimierung . . . . . . . . . . . . . . . . . . . . . . . . . 994.20 Eindeutiger Endustand im DCPN . . . . . . . . . . . . . . . . 1044.21 Eindeutiger Zustand im DCPN . . . . . . . . . . . . . . . . . 1054.22 Mogliche Eingangstellenbelegungen . . . . . . . . . . . . . . . 1064.23 Strategien der Netzanalyse . . . . . . . . . . . . . . . . . . . . 1074.24 Optimierungsmoglichkeiten . . . . . . . . . . . . . . . . . . . 1114.25 Minimierung mittels Espresso-Algorithmus . . . . . . . . . . . 1124.26 Phasen der Logiksynthese . . . . . . . . . . . . . . . . . . . . 1144.27 Taktbestimmung im Petri-Netz . . . . . . . . . . . . . . . . . 1164.28 Ringzahler und eingabeorientierter Erreichbarkeitsgraph . . . 1204.29 Expandierter eingabeorientierter Erreichbarkeitsgraph . . . . 1234.30 Ubersicht sequentielle Synthese . . . . . . . . . . . . . . . . . 1244.31 DCPN eines Halbaddierers mit erzeugter Wahrheitstabelle . . 1294.32 HDL Schnittstellenerzeugung . . . . . . . . . . . . . . . . . . 1304.33 Strukturbeschreibung kombinatorische Logik . . . . . . . . . 1324.34 Asynchrones Netz . . . . . . . . . . . . . . . . . . . . . . . . . 1374.35 Integration Komponente im DCPN . . . . . . . . . . . . . . . 1404.36 Ubersicht sequentielle Hardwarebeschreibung . . . . . . . . . 1414.37 Simulationsergebnisse Xilinx ISE . . . . . . . . . . . . . . . . 1444.38 Simulationsergebnisse Logical PetriNet . . . . . . . . . . . . . 1444.39 Verifikation der erzeugten Schaltung . . . . . . . . . . . . . . 1454.40 Transformation Schaltung in Wahrheitstabelle . . . . . . . . 1474.41 Simulation der Schaltung aus Abbildung 4.40 (a) . . . . . . . 1474.42 Simulation der Schaltung aus Abbildung 4.40 (b) . . . . . . . 1484.43 Uberblick Transformation Teil 1 . . . . . . . . . . . . . . . . 1494.44 Uberblick Transformation Teil 2 . . . . . . . . . . . . . . . . 150
Abbildungsverzeichnis XXIII
5.1 Logical PetriNet GUI . . . . . . . . . . . . . . . . . . . . . . . 1525.2 Interner Aufbau LPN . . . . . . . . . . . . . . . . . . . . . . 1535.3 Platzierungsoptimierung verschiedener Graphen . . . . . . . . 1535.4 Vergleich automatisierte Platzierung . . . . . . . . . . . . . . 1565.5 Simulation Exportmoglichkeiten . . . . . . . . . . . . . . . . . 1585.6 Logger in LPN . . . . . . . . . . . . . . . . . . . . . . . . . . 1595.7 Multithreading Ablauf . . . . . . . . . . . . . . . . . . . . . . 1625.8 Transformationsprozess in Logical PetriNet . . . . . . . . . . 1635.9 Validierung der Simulation im LPN . . . . . . . . . . . . . . . 1665.10 Bibliothekselemente . . . . . . . . . . . . . . . . . . . . . . . 1675.11 Kante zu Bibliothekselement . . . . . . . . . . . . . . . . . . 1685.12 Paket-Diagramm von Logical PetriNet . . . . . . . . . . . . . 1695.13 Paketdiagramm Sortierung und Parser . . . . . . . . . . . . . 1705.14 Paketdiagramm action, print, export, bib . . . . . . . . . . . 1715.15 Paketdiagramm GUI . . . . . . . . . . . . . . . . . . . . . . . 1715.16 Paketdiagramm Simulation . . . . . . . . . . . . . . . . . . . 1725.17 Paketdiagramm Petri-Netz . . . . . . . . . . . . . . . . . . . . 1735.18 Paketdiagramm Transformation . . . . . . . . . . . . . . . . . 1745.19 Multiplexer als DCPN . . . . . . . . . . . . . . . . . . . . . . 1795.20 Hardwarebeschreibung des Multiplexers . . . . . . . . . . . . 1815.21 Hardwarebeschreibung der DNF des Multiplexers . . . . . . . 1825.22 Hardwarebeschreibung mittels Quine McCluskey . . . . . . . 1835.23 Subnetz eines Halbaddierers . . . . . . . . . . . . . . . . . . . 1845.24 Hierarchieloser Volladdierer . . . . . . . . . . . . . . . . . . . 1855.25 Volladdierer als synthetisierte Hardware . . . . . . . . . . . . 1875.26 Hardwarebeschreibung des Volladdierers mittels DNF . . . . 1875.27 Optimierte Hardwarebeschreibung mit Quine McCluskey . . . 1885.28 4 Bit Volladdierer . . . . . . . . . . . . . . . . . . . . . . . . . 1895.29 Synthetisierte Hardware aus dem DCPN in Abbildung 5.28 . 1905.30 4 Bit-Volladdierer Schaltung mit beibehaltener Hierarchie . . 1925.31 Lauflicht DCPN mit zwei Eingangen . . . . . . . . . . . . . . 1935.32 Eingabeorientierter Erreichbarkeitsgraph des Lauflichts . . . . 1935.33 Schaltung des Lauflichts . . . . . . . . . . . . . . . . . . . . . 1945.34 Register als DCPN . . . . . . . . . . . . . . . . . . . . . . . . 1965.35 Schaltung des Registers . . . . . . . . . . . . . . . . . . . . . 1975.36 Simulationsergebnisse des Registers . . . . . . . . . . . . . . . 1995.37 Register mit enable-Eingang . . . . . . . . . . . . . . . . . . . 2005.38 Schaltungsbeschreibung des Registers mittels der Xilinx ISE . 2015.39 Simulation des Registers enable . . . . . . . . . . . . . . . . . 2025.40 Aufbau und Befehlssatz der ALU . . . . . . . . . . . . . . . . 204
XXIV Abbildungsverzeichnis
5.41 Detailansicht der ALU . . . . . . . . . . . . . . . . . . . . . . 2055.42 DCPN fur die Eingange des Addierers . . . . . . . . . . . . . 2085.43 Flags des Addierers als DCPN . . . . . . . . . . . . . . . . . 2095.44 Addierer als DCPN . . . . . . . . . . . . . . . . . . . . . . . . 2095.45 DCPN des Shifters . . . . . . . . . . . . . . . . . . . . . . . . 2105.46 Logikeinheit der ALU als DCPN . . . . . . . . . . . . . . . . 2115.47 Flags der ALU als DCPN . . . . . . . . . . . . . . . . . . . . 2125.48 Komplette ALU als DCPN . . . . . . . . . . . . . . . . . . . 2135.49 Testsignale zur Simulation der ALU . . . . . . . . . . . . . . 2145.50 Simulation der Ausgangssignale der ALU . . . . . . . . . . . 2155.51 Simulationsergebnisse der Flags . . . . . . . . . . . . . . . . . 215
A.1 Register als Schaltung aus Vivado . . . . . . . . . . . . . . . 257A.2 DCPN des Addierereingangs der ALU . . . . . . . . . . . . . 258A.3 DCPN des Zweiten Eingangs des Addierers . . . . . . . . . . 258A.4 Schaltung der Flags des Addierers . . . . . . . . . . . . . . . 260A.5 Schaltung des Addierers . . . . . . . . . . . . . . . . . . . . . 261A.6 Schaltung des Shifters . . . . . . . . . . . . . . . . . . . . . . 264A.7 Schaltung der Logikeinheit der ALU . . . . . . . . . . . . . . 265A.8 Schaltung der Flags der ALU . . . . . . . . . . . . . . . . . . 268A.9 DCPN des Splitters der ALU . . . . . . . . . . . . . . . . . . 269A.10 DCPN Multiplexer der ALU . . . . . . . . . . . . . . . . . . . 270A.11 Schaltung des Multiplexers . . . . . . . . . . . . . . . . . . . 271A.12 Schaltung der kompletten ALU . . . . . . . . . . . . . . . . . 272A.13 PNML-Schema Beschreibung Graphik- und Objekttyp . . . . 278A.14 PNML-Schema des Petri-Netz . . . . . . . . . . . . . . . . . . 279
Tabellenverzeichnis
2.1 Grundlegende Logikverknupfungen (Gatter) . . . . . . . . . . 182.2 Funfwertige Logik zur Erkennung von Hazards . . . . . . . . 242.3 Hazardbeschreibung der funfwertigen Logik . . . . . . . . . . 25
3.1 Markierungstabelle . . . . . . . . . . . . . . . . . . . . . . . . 58
4.1 Gatter mit beliebig vielen Eingangen . . . . . . . . . . . . . . 754.2 Strategien zur Validierung des Netzes . . . . . . . . . . . . . 884.3 Strategien zur Netzoptimierung . . . . . . . . . . . . . . . . . 954.4 Strategien zur Netzanalyse . . . . . . . . . . . . . . . . . . . . 1004.5 Strategien zur Synthese kombinatorischer Netze . . . . . . . . 1094.6 Entwurfsverfahren . . . . . . . . . . . . . . . . . . . . . . . . 1114.7 Strategien zur Logiksynthese sequentieller Netze . . . . . . . 1154.8 Markierungen des eingabeorientierten Erreichbarkeitsgraphen 1214.9 Bedingungen der Kanten des IRG . . . . . . . . . . . . . . . . 1214.10 Strategien zur Schnittstellenbeschreibung . . . . . . . . . . . 1264.11 Strukturbeschreibung kombinatorischer Logik . . . . . . . . . 1314.12 Strukturbeschreibung sequentieller Logik . . . . . . . . . . . . 1334.13 Markierung des IRG . . . . . . . . . . . . . . . . . . . . . . . 1374.14 Bedingungen der Kanten des IRG . . . . . . . . . . . . . . . . 1374.15 Strategien zur Verifikation der Schaltung . . . . . . . . . . . . 142
5.1 Laufzeitanalyse Platzierungsoptimierung . . . . . . . . . . . . 1555.2 Ubersicht Exportfunktionalitat . . . . . . . . . . . . . . . . . 1575.3 IRG Markierungen des Lauflichts . . . . . . . . . . . . . . . . 1935.4 IRG Ubergangsbedingungen des Lauflichts . . . . . . . . . . . 1935.5 IRG Markierung des Registers . . . . . . . . . . . . . . . . . . 2005.6 IRG Ubergangsbedingungen des Registers . . . . . . . . . . . 2005.7 Eingangsbelegungen des Addierers . . . . . . . . . . . . . . . 2065.8 Testinstruktionen fur die ALU . . . . . . . . . . . . . . . . . 214
6.1 Laufzeitvergleich Transformation . . . . . . . . . . . . . . . . 223
Listingsverzeichnis
2.1 Schnittstellenbeschreibung eines 4 zu 1 Multiplexers . . . . . 272.2 Verhaltensbeschreibung eines 4 zu 1 Multiplexers . . . . . . . 272.3 Sequentielle Beschreibung Multiplexer . . . . . . . . . . . . . 292.4 VHDL-Beschreibung eines D-Flipflop . . . . . . . . . . . . . . 292.5 VHDL-entity-Beschreibung eines Registers mittels generic . . 302.6 Verhaltensbeschreibung eines 4 zu 1 Multiplexers in Verilog . 31
4.1 Schnittstelle Hauptnetz in VHDL . . . . . . . . . . . . . . . . 1284.2 Schnittstelle Subtransition in VHDL . . . . . . . . . . . . . . 1284.3 Schnittstelle Substelle in VHDL . . . . . . . . . . . . . . . . . 1294.4 Schnittstellenbeschreibung des generierten Halbaddierers . . . 1304.5 Beschreibung von Kombinatorik aus Wahrheitstabelle . . . . 1324.6 Beschreibung von Kombinatorik aus booleschem Ausdruck . . 1324.7 Zustandsbeschreibung IRG . . . . . . . . . . . . . . . . . . . 1344.8 Zustandsspeicher synchron IRG . . . . . . . . . . . . . . . . . 1354.9 Zustandsspeicher asynchron IRG . . . . . . . . . . . . . . . . 1354.10 Zustandsubergange IRG . . . . . . . . . . . . . . . . . . . . . 1364.11 Berechnung Folgezustand IRG . . . . . . . . . . . . . . . . . . 1384.12 Ausgangsbeschreibung IRG . . . . . . . . . . . . . . . . . . . 1394.13 Beschreibung Hauptnetz aus Abbildung 4.35 . . . . . . . . . . 1414.14 Beschreibung der Test-Bench fur das Netz des Halbaddierers 143
5.1 Erweiterung der Test-Bench um TEXTIO . . . . . . . . . . . 1645.2 Schnittstelle Multiplexer . . . . . . . . . . . . . . . . . . . . . 1805.3 Beschreibung Multiplexer Wahrheitstabelle . . . . . . . . . . 1815.4 Beschreibung Multiplexer DNF . . . . . . . . . . . . . . . . . 1825.5 Beschreibung Multiplexer Quine McCluskey . . . . . . . . . . 1835.6 Schnittstelle Volladdierer . . . . . . . . . . . . . . . . . . . . 1855.7 Beschreibung Volladdierer Wahrheitstabelle . . . . . . . . . . 1865.8 Beschreibung Volladdierer DNF . . . . . . . . . . . . . . . . . 1875.9 Beschreibung Volladdierer Quine McCluskey . . . . . . . . . . 1875.10 Schnittstelle 4-bit Volladdierer . . . . . . . . . . . . . . . . . 189
XXVIII Listingsverzeichnis
5.11 Verhaltensbeschreibung 4-bit Volladdierer . . . . . . . . . . . 1905.12 Beschreibung 4-bit Volladdierer mit Hierarchie . . . . . . . . 1915.13 Schnittstellenbeschreibung Lauflicht . . . . . . . . . . . . . . 1945.14 Verhaltensbeschreibung Lauflicht . . . . . . . . . . . . . . . . 1945.15 Schnittstellenbeschreibung Register . . . . . . . . . . . . . . . 1975.16 Verhaltensbeschreibung Register . . . . . . . . . . . . . . . . 1985.17 Schnittstellenbeschreibung Register mit enable Eingang . . . 2015.18 Verhaltensbeschreibung Register mit enable Eingang . . . . . 2015.19 Beschreibung erster Eingang des Addierers . . . . . . . . . . 207
A.1 AND-Gatter . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255A.2 OR-Gatter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256A.3 NOT-Gatter . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256A.4 Beschreibung Eingang zwei des Addierers . . . . . . . . . . . 259A.5 Beschreibung der Flags des Addierers . . . . . . . . . . . . . 260A.6 Beschreibung Addierer der ALU . . . . . . . . . . . . . . . . 261A.7 Beschreibung Shifter der ALU . . . . . . . . . . . . . . . . . . 263A.8 Beschreibung Logikeinheit der ALU . . . . . . . . . . . . . . 266A.9 Beschreibung Flags der ALU . . . . . . . . . . . . . . . . . . 267A.10 Beschreibung Splitter der ALU . . . . . . . . . . . . . . . . . 269A.11 Beschreibung Multiplexer der ALU . . . . . . . . . . . . . . . 269A.12 Beschreibung der ALU . . . . . . . . . . . . . . . . . . . . . . 272A.13 Testbench zur ALU . . . . . . . . . . . . . . . . . . . . . . . . 274A.14 PNML Elternelement . . . . . . . . . . . . . . . . . . . . . . . 278A.15 PNML UUID . . . . . . . . . . . . . . . . . . . . . . . . . . . 278A.16 PNML Elementtyp . . . . . . . . . . . . . . . . . . . . . . . . 280A.17 PNML Markenanzahl . . . . . . . . . . . . . . . . . . . . . . 280A.18 PNML Stellentyp . . . . . . . . . . . . . . . . . . . . . . . . . 280A.19 PNML Zeiteinheiten Transitionen . . . . . . . . . . . . . . . . 280A.20 PNML Transitionstypen . . . . . . . . . . . . . . . . . . . . . 281A.21 PNML Bibliothekselement . . . . . . . . . . . . . . . . . . . . 281A.22 PNML Netzverbindertyp . . . . . . . . . . . . . . . . . . . . . 281A.23 PNML Netzverbinder-Verbindung . . . . . . . . . . . . . . . . 281A.24 PNML Kantentyp . . . . . . . . . . . . . . . . . . . . . . . . 281
Algorithmenverzeichnis
3.1 Aufstellen des Erreichbarkeitsgraphen . . . . . . . . . . . . . 593.2 Ereichbarkeitsgraph Subtransition . . . . . . . . . . . . . . . 613.3 Erreichbarkeitsgraph Substelle . . . . . . . . . . . . . . . . . 623.4 Aufstellen des reduzierten Erreichbarkeitsgraphen . . . . . . . 63
4.1 Eingabeorientierter Erreichbarkeitsgraph . . . . . . . . . . . . 1184.2 Weitere zeitlose Transitionen feuern . . . . . . . . . . . . . . 1194.3 Fuge Kante zum IRG hinzu . . . . . . . . . . . . . . . . . . . 1204.4 Aufsplittung Knoten des IRG fur Takt . . . . . . . . . . . . . 1224.5 Erweiterung um notwendige Kanten bei der Expandierung . . 124
Kurzfassung
In dieser Arbeit wird der Entwurf und die Verifikation von digitalen Schaltun-gen mittels Petri-Netzen behandelt. Dabei wird die Definition der Bedingungs-Ereignis-Netze erweitert, woraus die Digital Circuit Petri Nets entstandensind. Im ersten Teil der Arbeit sind die Eigenschaften dieses Netztyps aufge-zeigt, welche bei der spateren Transformation in digitale Schaltungen zumEinsatz kommen.
Der Hauptteil der Arbeit beruht auf einer Petri-Netz-basierten Entwurfsme-thodik zum Erzeugen von digitalen Schaltungen. Der hier vorgestellte Trans-formationsprozess besteht aus den Teilschritten Modellierung des Netzes,Validierung des Netzes, Netzoptimierung, Strukturanalyse, Logiksynthese,Uberfuhrung in eine Hardwarebeschreibungssprache und einer abschließen-den Verifikation der erzeugten Schaltung. Schwerpunkte der Transformationsind hierbei die Synthese des Netzes und die vorherige Strukturanalyse, daaus dieser der Schaltungstyp abgeleitet wird. Hierbei werden die Schaltungenin kombinatorische und sequentielle Schaltungen aufgesplittet, um fur denjeweiligen Schaltungstyp optimierte Algorithmen zur Synthese anwenden zukonnen.
Es werden Richtlinien zur Modellierung von Petri-Netzen fur digitale Schal-tungen gegeben, um die Erstellung von kombinatorischer, sowie getakteterLogik zu vereinheitlichen. Bei getakteter Logik wird zwischen synchronenund asynchronen Schaltungen unterschieden. Die Erzeugung erfolgt ubereinen eingabeorientierten Erreichbarkeitsgraphen, der in einen Zustands-automaten uberfuhrt wird. Zur Verifikation des erarbeiteten Prozesses derTransformation ist das Tool Logical PetriNet entwickelt worden, welchesdem praktischen Nachweis der vorgeschlagenen Methodik dient. Die erar-beiteten Ergebnisse der Transformation werden anhand einiger komplexerSchaltungen verifiziert.
1 Einleitung
Zum Verstandnis der Wichtigkeit neue Methoden und Werkzeuge fur den Ent-wurf digitaler Schaltungen zu geben, beginnt diese Arbeit mit dem zeitlichenVerlauf des digitalen Schaltungsentwurfs. Ein besonderes Augenmerk wirdauf den Transistor gelegt, da er das grundlegende Element dieser Schaltungist. Im Jahre 1947 wurde in den Bell Laboratories der erste funktionierendeTransistor entwickelt. Etwa zehn Jahre spater entwickelte Texas Instrumentsdie Technik, um mehrere Transistoren als integrierte Schaltung in einemSilizium-Chip zu realisieren. Kurz darauf hat Jack Kilby das erste integrierteFlip-Flop, bestehend aus zwei Transistoren, erstellt [BL10].
1963 entwickelt Frank Wanlass [WS63] die ersten Logikgatter basierend aufMetall-Oxid-Halbleiter-Feldeffekttransistoren (metal-oxide-semiconductorfield-effect transistor, MOSFET ). Hierbei kommen nMOS - und pMOS -Tran-sistoren zum Einsatz, wobei immer ein n- und ein p-Transistor zu einemElement zusammen geschaltet werden [Bea68]. Die Verwendung von beidenTransistortypen auf einem Chip wird auch als sich erganzender Metall-Oxid-Halbleiter (complementary metal-oxide-semiconductor, CMOS ) bezeichnet.Transistoren sind zunachst in analogen Schaltungen, wie beispielsweise
in Transistor-Radios, verbaut worden, bis sie fur digitale Schaltungen, wieProzessoren, zum Einsatz kommen [WH10], [MC79]. Der Transistor istheutzutage das am haufigsten produzierte elektrische Bauteil der Welt. DieTransistoranzahl pro Chip wurde von Gordon Moore [Moo06] untersuchtund er bestatigt eine Verdopplung alle 18 Monate. Daraus ist das MoorescheGesetz abgeleitet, welches bis heute seine Gultigkeit behalt, wobei eineVerdopplung etwa alle 26 Monate stattfindet. Grunde hierfur sind immerkleiner werdende Transistoren und teilweise großer werdende Chipflachen. DieIntegration von Chips lasst sich in die Klassen Small-Scale Integration (SSI )mit ca. 10 Gattern auf einem Chip, Medium-Scale Integration (MSI ) mit biszu 1.000 Gattern, Large-Scale Integration (LSI ) mit bis zu 10.000 Gatternund Very-Large-Scale Integration (VLSI ) mit mehr als 10.000 Gattern proChip aufteilen.
© Springer Fachmedien Wiesbaden GmbH, ein Teil von Springer Nature 2019C. Brandau, Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets, https://doi.org/10.1007/978-3-658-25244-1_1
2 1 Einleitung
1.1 Motivation
Seit 1981 konnen die Entwurfsverfahren zur Erzeugung digitaler Schaltungenimmer weniger mit den technischen Moglichkeiten der HalbleiterfertigungSchritt halten. Wahrend aus technischer Sicht die mogliche Anzahl derTransistoren pro Chip jahrlich um 58% ansteigt, liegt der Anstieg der ver-wendeten Transistoren auf Entwurfsebene bei 21% pro Jahr. Die aufgrunddessen stetig wachsende Lucke zwischen diesen beiden Aspekten wird als De-sign Productivity Gap bezeichnet (siehe Abbildung 1.1). Um der technischenEntwicklung folgen zu konnen, mussen immer abstraktere Methoden zumEntwurf digitaler Schaltungen entwickelt werden. Je nach Modellierungs-vorhaben kann die Beschreibung eines Systems auf verschiedenen Ebenenvonstatten gehen. So kann beispielsweise auf der Systemschicht oder auf derRegister-Transfer-Ebene modelliert werden.
1981
1985
1989
1993
1997
2001
2005
2009
2013
Jahr
0, 001
0, 01
0, 1
1
10
100
1.000
10.000
Millionen
Tra
nsistore
npro
Chip
(---)
0, 01
0, 1
1
10
100
1.000
10.000
100.000
Entw
ickler-Pro
duktivitat(—
)1000Tra
n./Person/M
onat
58%/Ja
hr
21%/Jahr
Automatische Platzierung und VerdrahtungLogik-Synthese
RTL-SyntheseArchitektur-Synthese
ESL
Abbildung 1.1: Entwicklung der Transistoranzahl pro Chip (gestrichelte Linie)im Verhaltnis zur Entwicklerproduktivitat (durchgezogene Linie) nach [RU01] und[Rei13]
Ziel dieser und folgender Arbeiten ist es, das Verhalten und die Strukturdigitaler Schaltungen mittels einer grafischen Reprasentation zu modellie-ren und die daraus resultierenden Vorteile bezuglich der Verifikation undValidierung zu nutzen. Aus diesem Grund werden in der vorliegenden Ar-beit Moglichkeiten zur Beschreibung von Strukturen digitaler Schaltungenunter Zuhilfenahme von Petri-Netzen vorgestellt. Petri-Netze sind formale
1.1 Motivation 3
Beschreibungen von Systemen, die aus den vier Elementen Stellen, Marken,Transitionen und gerichteten Kanten bestehen. Fur diese Netze existierenviele Methoden zur Validierung und Analyse, wie beispielsweise die Markov-Ketten [Mar13]. Zur Verwendung von Petri-Netzen werden in dieser Arbeitzusatzliche Elemente und Eigenschaften eingefuhrt, die eine Vereinheitlichungder Transformation eines Netzes in eine Schaltung ermoglichen.
Petri-Netze sind dabei fur den Modellierer greifbarer als die Entwicklungvon digitalen Schaltungen in VHDL oder anderen Hardware-Beschreibungs-sprachen, da bei den Petri-Netzen mittels grafischer Methoden modelliertwerden kann. Die Motivation ist ein Verfahren zu entwickeln, bei dem dieAbstraktionsebene frei gewahlt werden kann. Mittels Petri-Netzen soll alsoeine hierarchische Anordnung der Elemente des Netzes erfolgen. Die ersteSicht auf das modellierte System kann eine sehr abstrakte Sicht sein, indemdas Gesamtsystem mit einzelnen Komponenten abgebildet wird. Durch dieseArt der Modellierung wird eine ubersichtliche Form der Beschreibung desSystems ermoglicht. Hierzu soll in einem zu Implementierenden Werkzeugdie Option bestehen, die Elemente von Petri-Netzen mittels Algorithmenoptimiert zu platzieren. Hierzu konnen Ansatze aus der automatischenVerteilung von Graphen eingesetzt werden. Bisher bieten die Petri-Netze vorallem im Bereich der Steuerwerke und besonders bei asynchronen Schaltungenschon jetzt Analyse-Methoden, die im Bereich des reinen Schaltungsentwurfderzeit nicht verfugbar sind. Hier sind die Methoden der Petri-Netze vieltiefgehender und eignen sich zur Validierung der modellierten Schaltungen[Lie05].
Damit die Durchfuhrung der Transformation von Petri-Netzen in digitaleSchaltungen weitestgehend automatisiert ablaufen kann, muss zunachst einFormalismus aufgestellt werden. Zur Losung nicht-trivialer Probleme undzur Unterstutzung des Anwenders sind entsprechende Methoden zur Trans-formation in eine geeignete Software zu integrieren. Durch den aufgestelltenFormalismus soll es moglich sein sequentielle und nebenlaufige Ereignisse zumodellieren. Weiterhin muss die Systemstruktur und das Systemverhaltenmit dem Modell wiedergegeben werden. Durch eine Hierarchiebildung ist esmoglich das System auf verschiedenen Abstraktionsebenen zu betrachten.Daruber hinaus muss die Moglichkeit bestehen das System funktional undzeitbehaftet zu simulieren. Durch die formale Petri-Netz-Spezifikation isteine Analyse auf vielfaltige Arten durchfuhrbar, da die schon bestehendenMethoden mit Anpassungen fur den neuen Petri-Netz-Typ verwendet werdenkonnen.Die meisten der in dieser Arbeit vorgestellten Verfahren lassen sich auch
auf die Rucktransformation von digitalen Schaltungen in Petri-Netze an-
4 1 Einleitung
wenden, was ein nutzliches Nebenprodukt der Arbeit darstellt. Eine solcheRucktransformation bietet die Moglichkeit, die in dieser Arbeit beschriebe-nen Analysemethoden von Petri-Netzen verwenden zu konnen, um digitaleSchaltungen zu untersuchen. Daraus folgt eine formale Validierung des Net-zes und Verifikation der modellierten Schaltungen. Der noch zu erledigendeArbeitsschritt zur Rucktransformation von Schaltungen in Petri-Netze istdas Anlegen von Netzen fur alle benotigten Schaltelemente.
Es stellt sich die Frage warum ausgerechnet Petri-Netze aus den bekanntenund verbreiteten grafischen Sprachen zur Modellierung von Systemen zumEinsatz kommen sollten. Fur die Modellierung konnten auch Zustandsauto-maten eingesetzt werden, bei denen aber vor allem bei komplexeren Systemenbei der Analyse Zustandsraumexplosionen auftreten. Beim Aufteilen desSystems in mehrere kleinere Automaten tritt das Problem der Synchroni-sierung und das Problem einer adaquaten Abbildung der Parallelitat auf[YK98]. Die Vorteile von Petri-Netzen sind die gute Verifizierbarkeit dererzeugten Netze und die einfache Erstellung von Netzen uber Werkzeuge zurModellierung, die vor allem grafischer Natur sind. Mit Petri-Netzen konnenasynchrone Systeme beschrieben werden, wobei die synchronen einen Spezial-fall dieser Systeme darstellen, bei denen der Takt ein zusatzliches Signal zurGenerierung eines Events ist. Nach Moglichkeit sollte jedoch zwischen denbeiden Typen unterschieden werden, da so bessere Optimierungsmethodenfur jeden Systemtyp angewandt werden konnen. Als zusatzlicher Netztypexistiert noch reine Kombinatorik, die ebenfalls abgebildet werden sollte.
Wunschenswert sind die folgenden Charakteristiken bei der Modellierungmittels Petri-Netzen: Zum einen soll eine prazise Syntax und Semantikdes Netzes vorhanden sein. Zum anderen ist eine lesbare Modellierung, ambesten mit gleichzeitiger Verifikation des Modells, und die Abbildung vonParallelitat und Synchronisierung interessant. Ebenfalls wunschenswert wareeine der Modellierungen top-down oder bottom-up. Bei Petri-Netzen bietetsich durch die Bildung von Hierarchien vor allem die top-down-Methode an,da so das Netz in der obersten Ebene betrachtet werden kann und durchweitere hierarchische Elemente des Netzes mehr Details angezeigt werdenkonnen. Dabei wird auch von einer Verfeinerung des Systems gesprochen.
1.2 Ziel der Arbeit
Das Ziel dieser Arbeit ist ein Verfahren zu erarbeiten und zu formalisie-ren, welches die Transformation von Petri-Netzen in digitale Schaltungenermoglicht. Dabei ist ein modularer Aufbau anzustreben, um spatere Er-
1.2 Ziel der Arbeit 5
weiterungen und Optimierungen mit moglichst wenig Aufwand implemen-tieren und hinzufugen zu konnen. Bisherige Ansatze und Definitionen vonPetri-Netzen sind auf ihre sinnvolle Anwendung im genannten Umfeld zuuberprufen, wobei der Aspekt der Modellierung ohne Vorkenntnisse vondigitalen Schaltungen zu berucksichtigen ist.Die Transformation soll, soweit dies moglich ist, auf bestehende Hard-
warebeschreibungssprachen zuruckgreifen, um die vorhandenen Tools imBereich der Hardwarebeschreibung zur Optimierung und Platzierung zuverwendbar zu machen. Eine erneute Implementierung dieser Werkzeugein einem eigenen Programm ubersteigt den Rahmen dieser Arbeit, da dieentwickelten Werkzeuge teilweise schon mehrere Jahrzehnte in Entwicklungvon namhaften Herstellern wie Xilinx, Altera oder Mentor Graphics sind.Diese Werkzeuge haben sich bewahrt und eine Neuimplementierung ist dahernicht notwendig.Die Modellierung von Petri-Netzen soll fur den spateren Entwickler von
digitalen Schaltungen moglich sein, ohne dass dieser Kenntnisse vom Entwurfvon digitalen Schaltungen besitzen muss. Um dies zu bewerkstelligen, ist einTool zu implementieren, welches zum einen eine handliche Modellierung einesPetri-Netzes zur Verfugung stellt und auf der anderen Seite den Transforma-tionsprozess abbilden kann und zur Verifizierung der erarbeiteten Methodenund Strategien dient.Weiterhin soll der hier erarbeitete Transformationsprozess, anders als in
bisherigen Forschungsarbeiten ublich, das gesamte Netz analysieren unddie klassische und bisher ubliche Transformation von Struktur in Struktur(auch Komponentenweise genannt) aufbrechen. Im Abschnitt zum aktuellenStand der Technik werden existierende Ansatze zur Transformation vonPetri-Netzen in digitale Schaltungen vorgestellt und analysiert, welche alleauf dem Ansatz der Strukturuberfuhrung basieren. Vorteile dieser Verfahrensind nach Moglichkeit in die zu entwickelnden Methoden und Strategienaufzunehmen.
Eine hierarchische Darstellung innerhalb der Petri-Netze ware wunschens-wert, um die Ubersichtlichkeit der modellierten Netze zu gewahrleisten.Hierzu sind vorhandene Methoden zur Hierarchiebildung zu untersuchen be-ziehungsweise eigene Subnetze zu erarbeiten und im entstehenden Programmzu integrieren. Weiterhin sollen die Subnetze dazu dienen, um schon model-lierte Petri-Netze in neu zu erstellenden Netzen als Bibliotheks-Elemente zuverwenden.
Eine Verifizierung der beschriebenen Methoden anhand von Test-Netzenund deren Transformation soll die Arbeit abschließen.
6 1 Einleitung
1.3 Aufbau der Arbeit
Die Arbeit beginnt mit dem Ziel und der Motivation in diesem Kapitel, wor-aufhin im zweiten Kapitel eine Einfuhrung in die Theorie der Petri-Netze undeine Beschreibung der Einsatzgebiete dieser Netze folgt. Daran anknupfendfolgt die Vorstellung verschiedener Analysemethoden, die bei der Untersu-chung von Petri-Netzen zur Anwendung kommen konnen. Nachfolgend wirdeine grundlegende Einfuhrung in den Bereich der digitalen Schaltungen unddie unterschiedlichen Strukturen von Schaltungen gegeben. Daran anschlie-ßend erfolgt die Erlauterung der beiden HardwarebeschreibungssprachenVerilog und VHDL. Der aktuelle Stand der Forschung rundet dieses Kapitelab.
Im dritten Kapitel erfolgt die Erweiterung der im vorhergehenden Kapiteleingefuhrten Petri-Netze zur eigenen Klasse der Digital Circuit Petri Nets(DCPN) mit den Erweiterungen um Eingangs- und Ausgangsstellen undSubnetzen in unterschiedlichen Auspragungen. Die Definition der DCPNvollendet die Erweiterungen des neuen Netztyps. Abgeschlossen wird dasKapitel mit den Eigenschaften der DCPN, die fur eine Transformation ineine Hardwarebeschreibungssprache benotigt werden.In Kapitel Vier wird die Transformation von Petri-Netzen in VHDL be-
schrieben. Zunachst werden verschiedene Elemente der Digitaltechnik sowieihre Abbildung als Petri-Netz vorgestellt. Dadurch stehen Netze mit bekann-ten Eingangs- und Ausgangskombinationen zur Verfugung. Anschließendwerden verschiedene Beschreibungsmoglichkeiten eines Taktes innerhalb einesPetri-Netzes diskutiert. Darauf folgt der Entwurfsprozess, der die einzelnenSchritte erlautert um von einem Petri-Netz zu einer Hardwarebeschreibungzu gelangen. Dabei wird in einigen Schritten der Transformation zwischenzwei moglichen Verfahren unterschieden, je nachdem ob es sich um kombina-torische oder sequentielle Logik handelt.
Eine mogliche Implementierung der hier vorgestellten Verfahren erfolgt inder Software Logical PetriNet, die im funften Kapitel vorgestellt wird. Einigenicht triviale Beispiele zeigen die Methoden des Tools und verifizieren dieErgebnisse der vorhergehenden Kapitel. Ebenfalls in diesem Kapitel werdenhilfreiche Empfehlungen zur Modellierung von Petri-Netzen gegeben, umdiese in digitale Schaltungen uberfuhren zu konnen.Im folgenden Kapitel wird ein Fazit dieser Arbeit und eine Abgrenzung
zu den Veroffentlichungen aus dem Stand der Forschung gegeben und zeigtUnterschiede zu diesen auf. Abgeschlossen wird die Arbeit mit einer Zusam-menfassung und dem Ausblick auf mogliche weitere Forschungsarbeiten imBereich der Transformation von Petri-Netzen in digitale Schaltungen.
2 Grundlagen und Stand derTechnik
Zum besseren Verstandnis dieser Arbeit werden im Folgenden die benotigtenGrundlagen zu Petri-Netzen und digitalen Schaltungen erlautert. Weiterhinwird auf Hardwarebeschreibungssprachen und die Funktionsweise endlicherAutomaten eingegangen. Daraufhin erfolgt die Diskussion des Stands derTechnik zur Abgrenzung dieser Arbeit gegenuber bisherigen Forschungsvor-haben.Zur Modellierung von Systemen existieren unterschiedlichste Beschrei-
bungssprachen sowohl in grafischer als auch in mathematischer Form. Diessind beispielsweise Petri-Netze, Unified Modeling Language (UML) [Ste12],Zustandsautomaten oder Business Process Model and Notation (BPMN)[Fre12]. Eine Transformation in digitale Schaltungen ist hierbei nicht immeroder nur rudimentar gegeben. UML dient dabei unter anderem zur Erstellungvon Quellcodes aus den modellierten Systemen und BPMN bildet vor allemGeschaftsprozesse ab. Zustandsautomaten konnen ohne großen Aufwand ineine Hardwarebeschreibungssprache uberfuhrt werden und benotigen daherkeine weitere Betrachtung. Petri-Netze kommen bisher auch zum Einsatz,wenn asynchrone Schaltwerke validiert werden sollen, daher werden Petri-Netze in dieser Arbeit einer naheren Betrachtung unterzogen und derenAnwendbarkeit auf alle Schaltungstypen betrachtet.
2.1 Petri-Netze
Im Jahre 1962 hat Carl Adam Petri in seiner Dissertation uber die Kom-munikation mit Automaten [Pet62] Petri-Netze erstmalig eingefuhrt. Siedienen zur Beschreibung von diskreten und meist verteilten Systemen. DieBeschreibung kann dabei in graphischer oder mathematischer Form erfolgen.
© Springer Fachmedien Wiesbaden GmbH, ein Teil von Springer Nature 2019C. Brandau, Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets, https://doi.org/10.1007/978-3-658-25244-1_2
8 2 Grundlagen und Stand der Technik
2.1.1 Einsatzgebiete
Petri-Netze sind fur die unterschiedlichsten Anwendungsgebiete einsetzbar,wobei sich in den letzten Jahrzehnten unterschiedliche Netzklassen heraus-gebildet haben. Zu diesen zahlen die K/I-, S/T-, B/E-, Pradikats- undFarbige-Netze. Sie unterscheiden sich vor allem in der Anzahl und Art derzulassigen Marken. Zusatzlich konnen noch weitere Netz-Elemente hinzu-gefugt werden, um eine erweiterte Funktionalitat zu bewerkstelligen.
Bei der Steuerungstechnik kommen Petri-Netze in Form der Ablaufsprachezum Einsatz. Diese beruht auf den Prinzipien der Petri-Netze und ist in derIEC 61131-3 [IEC13] genormt.Bei der nebenlaufigen Programmierung werden Petri-Netze dazu ver-
wendet, das Verhalten von Prozessen zu beschreiben und zu analysieren.Nebenlaufigkeit bedeutet, dass Prozesse parallel auf Mehrkernprozessorsyste-men oder quasiparallel auf Einkernsystemen ausgefuhrt werden. Zusatzlichdienen Petri-Netze zur Verifikation von nebenlaufigen Prozessen [Lip98].Weiterhin kommen Petri-Netze in der Geschaftsprozessmodellierung zur
Anwendung. Hier dienen Sie zur graphischen Darstellung von Ablaufen derGeschaftsprozesse und zu deren Simulation. Das Ziel bei der Modellierungbesteht in der Reduzierung komplexer Sachverhalte auf eine einheitlicheSicht [Mul11].
Weitere Einsatzgebiete sind das Abbilden von Workflows, technische Steue-rungen, Robotik, Simulationen und Analysen zum Erbringen von bestimmtenNachweisen, zum Entwurf von Kommunikationsprotokollen und zur Konzep-tion von Schedulern fur Betriebssysteme [Sch97], [Asp03], [SSR+02].
2.1.2 Definition
Ein Petri-Netz [Rei10] besteht aus Stellen (places), Transitionen (transitions)und gerichteten Kanten (arcs). Dabei werden Stellen als Kreise, Transitionenals Rechtecke und Kanten als Pfeile dargestellt. Zusatzlich existieren Marken(token), die innerhalb der Stellen dargestellt werden. Ihre Verteilung symbo-lisiert den aktuellen Systemzustand. Bei Kanten findet eine Unterscheidungzwischen Eingangs- und Ausgangskanten statt. Dabei werden Kanten, dievon einer Stelle kommend in eine Transition eingehen, als Eingangskantenbezeichnet. Kanten, die wiederum von einer Transition ausgehend zu einerStelle verlaufen, werden Ausgangskanten genannt.Die Stellen mitsamt der in ihnen liegenden Marken beschreibt den Zu-
stand des Netzes. Anderungen in einem System werden durch das Schalten,auch Feuern genannt, einer Transition simuliert. Dabei ist eine Transition
2.1 Petri-Netze 9
genau dann schaltbereit, wenn alle Eingange mit einer Marke belegt undalle Ausgange frei (ohne Marke) sind. Bei einem Schaltvorgang wird an allenEingangen jeweils eine Marke entfernt, wahrend an allen Ausgangen jeweilseine Marke hinzugefugt wird. Diese Operation wird als atomar angenom-men. Bei mehreren schaltfahigen Transitionen entscheidet der Zufall welcheTransition als nachstes schaltet. Ein Petri-Netz mit den oben genanntenEigenschaften wird auch Bedingungs-Ereignis-Netz (B/E-Netz) genannt undkann uber das Funf-Tupel
PNBE = (P, T, I, O,M0) (2.1)
mathematisch beschrieben werden [BK12]. Dabei entsprechen die einzelnenTupel den folgenden Elementen:
P = {p0, . . . , p(|P |−1)} : Menge der Stellen
T = {t0, . . . , t(|T |−1)} : Menge der Transitionen
I ∈ {0, 1}|P×T | : Matrix der Eingangskanten
O ∈ {0, 1}|P×T | : Matrix der Ausgangskanten
M0 = {m0, . . . ,m(|P |−1)} : Startmarkierung
Aufgrund der mathematischen Beschreibbarkeit lassen sich Analysen und Si-mulationen der Netze durchfuhren. Beispiele hierfur lassen sich unter anderemin [Hed13] und [Abe12] finden. Um Petri-Netze fur den Entwurf von Schal-tungen verwenden zu konnen, werden neben den B/E-Netz-Komponenteneinige zusatzliche Elemente benotigt. Zu diesen gehoren hemmende Kan-ten (inhibitor arcs), Prioritaten (priorities) und zeitbehaftete Transitionen(timed transitions). Die dort verwendeten Kantengewichtungen kommenhier nicht zum Einsatz, da nur Netze mit maximal einer Marke betrachtetwerden.
Hemmende Kanten dienen der Unterbindung der Schaltfahigkeit von Tran-sitionen. Sie verlaufen stets ausgehend von einer Stelle zu einer Transitionund werden symbolisch als eine Kante mit einem Kreis am Ende dargestellt.Ist die Stelle mit einer Marke belegt, so wird das Schalten der Transitionunterbunden, bis die Stelle durch das Feuern einer anderen Transition wiedervon Marken befreit wurde.
Transitionen konnen Prioritaten zugewiesen werden, um ein zufalligesSchalten zu umgehen. Sind mehrere Transitionen gleichzeitig schaltfahig,so feuert stets die Transition mit der hochsten Prioritat. Die Prioritatsteht immer oberhalb der Transition. Transitionen mit Prioritat werden
10 2 Grundlagen und Stand der Technik
P0
P1
P2
P3 P4
P5 P6
T: 5.0ns
T0
P: 5
T1
T: 10.0ns
T2
T: 5.0ns
T3
P: 2
T4
T: 10.0ns
T5
Abbildung 2.1: Die Abbildung zeigt ein Petri-Netz mit zeitlosen und zeitbehaf-teten Transitionen (Rechtecke). Zahlen oberhalb von Transitionen geben entwederdie Prioritat oder die Schaltzeit an. Neben den Transitionen sind auch Stellen(Kreise) und Kanten zu sehen.
zeitlose Transitionen (immediate transitions) genannt und als schwarze Liniedargestellt.
Als letztes Element werden zeitbehaftete Transitionen (timed transitions)als Erweiterung hinzugefugt, um Laufzeiten von Prozessen und Schaltungenabbilden zu konnen. Dabei kommen deterministische Transitionen zum Ein-satz, die eine feste Schaltzeit aufweisen. Zeitbehaftete Transitionen besitzenstets eine Prioritat von 0, sie schalten somit erst, wenn der Schaltvorgangaller zeitlosen Transitionen abgeschlossen ist. Das Symbol fur zeitbehaf-tete Transitionen entspricht dem fur eine Transition im B/E-Netz: einemunausgefulltes Rechteck.Aufgrund der oben angefuhrten Erganzungen muss die Definition eines
Petri-Netzes aus Gleichung 2.1 auf ein Sieben-Tupel erweitert werden. Diesesergibt sich zu
PNST = (P, T,P, I, O,H,M0) (2.2)
2.1 Petri-Netze 11
Die Elemente haben folgende Bedeutung:
P = {p0, . . . , p(|P |−1)} : Menge der Stellen
T = {t0, . . . , t(|T |−1)} : Menge der Transitionen
P ∈ N|T | : Vektor der Prioritaten
I ∈ {0, 1}|P×T | : Matrix der Eingangskanten
O ∈ {0, 1}|P×T | : Matrix der Ausgangskanten
H ∈ {0, 1}|P×T | : Matrix der hemmenden Kanten
M0 = {m0, . . . ,m(|P |−1)} : Startmarkierung
T beinhaltet dabei sowohl die zeitlosen Transitionen Timm als auch diezeitbehafteten (determinsitischen) Transitionen Ttime. Abbildung 2.1 zeigtein Beispiel nach Definition des Sieben-Tupels.
2.1.3 High-Level Petri-Netze
Eine Erweiterung der Standard Petri-Netze stellen die High-Level-Petri-Netzedar. Diese bestehen im Prinzip ebenfalls aus elementaren Stellen-Transitions-Netzen (S/T-Netz). Da ein einziger Typ von Marken nicht ausreicht, umunterschiedliche komplexe Daten abbilden zu konnen, wurden entsprechendeErweiterungen eingefuhrt, die unter anderem verschiedene Arten von Markenvorsehen.
Eine erste erfolgreiche Umsetzung von High-Level-Petri-Netzen stellen diePradikation-Transition-Netze dar, die unter anderem in [Rei83] und [JK15]vorgestellt werden. Hierbei erhalten die Kanten und Transitionen sogenanntePradikate, die fur die Uberprufung der Schaltfahigkeit der Transitionenausgewertet werden mussen.Ein anderes Beispiel fur High-Level Petri-Netze sind die sogenannten
farbigen Petri-Netze (coloured Petri nets), deren Marken unterschiedlicheFarbungen aufweisen. Eine nahere Betrachtung dieser Netztypen befindetsich unter anderem in [Jen92] und [Jen97]. Dort werden auch die moglichenAnalysemethoden fur diese Netzarten beschrieben.
Abbildung 2.2 zeigt ein High-Level Petri-Netz, in dem ein Protokoll zurUbertragung von Daten zwischen einem Sender und einem Empfanger model-liert ist. Hierbei werden verlorengegangene oder sich uberholende Pakete miteinbezogen, wodurch doppelte oder nicht mehr benotigte Pakete verworfenwerden konnen.
12 2 Grundlagen und Stand der Technik
Sender Network Receiver
Send Received
SendPacket
ATransmitPacket
B
SP
Next Send Next RecReceivePacket
SA
ReceiveAck
DTransmit
AckC
INTxDATA
INTxDATA
INT
1
INT
INT
1
DATA
INT
INTxDATA
(n.p)
(n,p) (n,p)
nn
kn
n if ok(s,r)then 1’nelse empty
if ok(s,r)then 1’(n,p)else empty
n
(n,p)
if n=kthen k+1else k
strif n0kandalsop¡¿stopthen str pelse str
k
if n=kthen k+1else k
s
s
8
8
8
8
8
8
Abbildung 2.2: High-Level Petri-Netz, welches eine Verbindung zwischen einemSender und einem Empfanger modelliert [WV16]. Dabei ist auf der linken Seiteder Sender zu sehen, in der Mitte das Netzwerk, das zum Ubertragen verwendetwird. Rechts ist der Empfanger abgebildet.
2.1.4 Analyse
Zur Analyse von Petri-Netzen stehen einige Hilfsmittel zur Verfugung. Diesewerden hier kurz erlautert und in spateren Kapiteln erweitert, sobald siezum Einsatz kommen. Einen guten Uberblick uber vorhandene Methodenbietet die Veroffentlichung von Murata [Mur89].
Zur Beschreibung der unterschiedlichen Analysemethoden werden als ersteseinige Grundbegriffe und mathematische Beschreibungen eingefuhrt, die dievorher gegebene Definition des Petri-Netzes aus Gleichung 2.2 erweitern.
Zunachst wird der Schaltvektor S eingefuhrt. Dieser beschreibt, wie vieleMarken aus Stellen abgezogen oder hinzugefugt werden. Dabei muss dieDimension von S stets der Anzahl der im gesamten Netz vorhandenen Stellenentsprechen. Abbildung 2.3 zeigt ein Petri-Netz, welches das Philosophen-Problem [LR81], [Sch93] fur drei Personen abbildet. Betrachtet wird nun derzur Transition T1 gehorige Schaltvektor S1. Dieser ergibt sich entsprechendder Anzahl der Marken, die aus einer Stelle abgezogen oder zu einer Stelle
2.1 Petri-Netze 13
P0
P1
P2
P3
P4
P5
T0T1
T2T3
T4T5
Abbildung 2.3: Petri-Netz zur Erlauterung der verschiedenen mathematischenBeschreibungen. Das Netz beschreibt das Philosophen-Problem fur drei Personen.Hierbei sitzen drei Philosophen am Tisch und jeder besitzt einen Teller mit Nahrung.Jeder benotigt zwei Gabeln, um essen zu konnen, wobei insgesamt nur drei Gabeln(P1, P2, P4) auf dem Tisch liegen. Dies wird durch die zwei Eingangskanten in T1,T2 und T4 realisiert. Es mussen also immer zwei Marken in den Stellen der Gabelnvorhanden sein, damit ein Philosoph essen kann (P0, P3, P5). Die TransitionenT0, T3 und T5 dienen dazu, die Gabeln zuruckzulegen, wenn ein Philosoph seinenEssvorgang beendet hat.
hinzugefugt werden, wenn T1 schaltet. Da die Stellen P3 bis P5 nicht uberKanten mit T1 verbunden sind, werden sie bei einem Schaltvorgang von T1
nicht verandert. Somit wird an den Positionen drei bis funf in S1 eine 0eingetragen. P1 und P2 entsprechen den Eingangen von T1. Schaltet nunT1, wird aus beiden Stellen jeweils eine Marke entfernt. Dies wird in S1
entsprechend mit −1 abgebildet. P0 hingegen bildet den Ausgang von T1
und erhalt somit eine Marke. In S1 wird dies mit 1 gekennzeichnet. Imgesamten ergibt sich S1 damit zu
S1 =(1 −1 −1 0 0 0
)T(2.3)
Die Markierungen innerhalb eines Petri-Netzes lassen sich als Spalten-vektor M darstellen. Dabei entspricht die Dimension von M ebenfalls derAnzahl der im Netz vorhandenen Stellen. Uber Indizes wird die Nummerder entsprechenden Belegung angegeben. Hierbei gilt, dass auf die Belegungi nicht zwingend die Belegung i+ 1 folgen muss. Dies ist unter anderem derFall, wenn aufgrund der Belegung Mi mindestens zwei Transitionen schalten
14 2 Grundlagen und Stand der Technik
konnen (siehe Abbildung 2.4). Ein weiterer Grund kann das Betreten einerschon vorhandenen Markierung sein.
P0
P1
P2
P: 4
T0
P: 4
T1
(a)
M0
M1
M2
T0
T1
(b)
P0 P1 P2
M0 1 0 0
M1 0 1 0
M2 0 0 1
(c)
Abbildung 2.4: (a) zeigt ein Petri-Netz, bei dem die beiden Transitionen T0
und T1 schaltfahig sind, da sie die selbe Prioritat besitzen. Je nach Reihenfolgeder feuernden Transitionen ergibt sich eine unterschiedliche Markierung. So zeigt(b) ausgehend von der Markierung M0 die beiden Folgemarkierungen M1, wennTransition T0 feuert und M2, wenn T1 feuert. (c) zeigt die zu Mi passenden Markender jeweiligen Markierung.
Grundlegend wird beim Schalten einer Transition Tk aus der aktuellenMarkierung Mi die neue Markierung Mj erreicht. Dabei ist die aktuelleMarkierung mit dem jeweiligen Schaltvektor Sk zu addieren:
Mj = Mi + Sk (2.4)
Ein solcher Schritt kann mittels Mitk−→ Mj dargestellt werden. Eine Sequenz
oder auch ein sequentieller Ablauf solcher Schritte wird als Schaltfolge SFbezeichnet. Diese lasst sich beispielsweise uber
M0ti−→ Ma
tj−→ . . .tk−→ Mb (2.5)
darstellen. Eine Markierung Mj ist genau dann erreichbar, wenn mindestenseine Schaltfolge existiert, die von der Initialmarkierung M0 zu Mj fuhrt. EinPetri-Netz kann auch uber eine Inzidenzmatrix C beschrieben werden. Cwird dabei uber die Verkettung der Schaltvektoren gebildet und ergibt sichzu:
C =(S1 . . . Sk
)=
⎛⎜⎝s11 . . . s1l...
. . ....
sk1 . . . skl
⎞⎟⎠ (2.6)
Dabei beschreibt k die Anzahl der Transitionen T im Petri-Netz und l dieAnzahl der Stellen P . Die Transponierte dieser Matrix ist gegeben durch
CT (j, i) = C(i, j). (2.7)
2.1 Petri-Netze 15
Hierbei muss die Reihenfolge der Transitionen und Stellen festgelegt sein. Furdas Philosophen-Problem in Abbildung 2.3 ergibt sich C, mit aufsteigenderNummerierung der Elemente
CPhilosophen =
⎛⎜⎜⎜⎜⎜⎜⎝
−1 1 0 0 0 01 −1 −1 1 0 01 −1 0 0 −1 10 0 1 −1 0 00 0 −1 1 −1 10 0 0 0 1 −1
⎞⎟⎟⎟⎟⎟⎟⎠
. (2.8)
Zur Analyse kann ein Erreichbarkeitsgraph verwendet werden. Ausgehendvon der Intialmarkierung M0 werden alle erreichbaren Markierungen in denGraph aufgenommen. Dazu wird ausgehend von M0 eine Breitensuche imPetri-Netz durchgefuhrt. Nach jedem Feuern einer Transition wird uberpruft,ob die resultierende Markierung schon im Graphen vorhanden ist. Ist diesnicht der Fall, so wird sie dem Graph hinzugefugt. Unabhangig davon, ob derGraph um eine neue Markierung erweitert werden musste oder nicht, musseine Kante zwischen der aktuellen und der nachfolgenden Markierung erganztwerden. Diese Kante bildet das Feuern der Transition ab. Abbildung 2.5 zeigtin (a) den Erreichbarkeitsgraphen des Philosophen-Problems aus Abbildung2.3 und in (b) die dazugehorigen Markierungen mit ihrer Markenanzahl. Dieverfugbaren Analysemethoden sind unter anderem in [DA01] zu finden.
M0M1
M2
M3← T1
←T2
→ T4→ T0
→T3
← T5
(a)
P0 P1 P2 P3 P4 P5
M0 0 1 1 0 1 0
M1 1 0 0 0 1 0
M2 0 0 1 1 0 0
M3 0 1 0 0 0 1
(b)
Abbildung 2.5: (a) zeigt den Erreichbarkeitsgraphen fur das Philosophen-Problemaus Abbildung 2.3. Die zugehorenden Markierungen sind in (b) zu sehen.
Hierbei ist zu bedenken, dass fur jede neue Markierung ein neuer Knotenim Graphen hinzugefugt wird. Dies fuhrt schnell zu einer Zustandsexplosion,da auch fur relativ kleine Netze sehr große Erreichbarkeitsgraphen entstehenkonnen. Um dies zu verhindern konnen Teilerreichbarkeitsgraphen erstelltwerden, wobei darauf geachtet werden muss, dass dann auch nur ein Teil
16 2 Grundlagen und Stand der Technik
des Petri-Netzes betrachtet wird. Die dazu verwendeten Algorithmen sindin [Val92] und [Chu87] nachzulesen.
Weiterhin kann die Beschranktheit oder Sicherheit eines Petri-Netzes be-stimmt werden. Ein Netz ist dabei n-sicher, wenn nie mehr als n Markenin einer Stelle liegen konnen. Das Netz ist beschrankt, wenn ein solches nexistiert. Die Uberprufung dieser Eigenschaften erfolgt uber den Erreichbar-keitsgraphen.
Eine weitere Analysemethode ist das Herausfinden der Lebendigkeit einesPetri-Netzes. Hierbei ist zwischen zwei unterschiedlichen Lebendigkeiten zuunterscheiden:Zum einen kann uberpruft werden, ob eine Transition T lebendig ist. T
ist tot, wenn sie unter keiner Markierung aktivierbar ist. Sie ist aktivierbar,falls sie unter mindestens einer Markierung aktiviert ist und sie ist lebendig,wenn sie unter jeder Markierung aktivierbar ist.
Zum anderen kann die Lebendigkeit auch fur ein komplettes Petri-Netzuberpruft werden. Dabei ist das Netz tot, falls alle Transitionen tot sind. Esist schwach lebendig, oder auch verklemmungsfrei (deadlockfrei), falls unterjeder Markierung mindestens eine Transition aktiviert ist. Das Petri-Netzist lebendig, wenn alle Transitionen lebendig sind.Zur Erkennung von unveranderlichen Eigenschaften eines Petri-Netzes
konnen deren Invarianten bestimmt werden. Eine Invarianz bedeutet in demZusammenhang ein gleich bleibender Zustand des Netzes bei gleichzeitigertemporarer Veranderung. Es bezeichnet demzufolge das Wiedererreicheneines Zustandes nachdem das Netz verschiedene andere Zustande durchlaufenhat. Es existieren dabei sowohl Transitions- (T-Invarianten) als auch Stellen-Invarianten (S-Invarianten). Invarianten sind Teil der Struktur eines Netzes.Sie sind damit also unabhangig von der Initialmarkierung des Petri-Netzes[Rei10], [Sta90].
Eine S-Invariante liegt in einem Netz oder Teilnetz vor, wenn die Markenin seinen Stellen konstant sind. Zur Berechnung dieser muss eine ganzzahligeLosung �x mit positiven Werten der folgenden Gleichung gefunden werden:
CT · �x = �0 (2.9)
Unter T-Invarianten ist ein Schaltvektor zu verstehen, dessen Schalt-vorgange wieder auf eine Ausgangsmarkierung zuruckfuhren. Hierzu istdie folgende Gleichung zu losen. Alle Losungen mit ganzzahligen positivenWerten von �x beschreiben dabei T-Invarianten.
C · �x = �0 (2.10)
2.2 Digitalschaltungen 17
2.2 Digitalschaltungen
Die Verbreitung und Bedeutung digitaler Systeme hat in den letzten Jahrenim Vergleich zu analogen Systemen erheblich zugenommen. Dies ist aufeine zunehmende Strukturverkleinerung, preiswertere Halbleiterelemente,Fortschritten bei der Kompression digitaler Daten und einer Weiterent-wicklung und Erhohung der Abtastfrequenz von Analog/Digital-Umsetzernzuruckzufuhren. Viele vormals analoge Systeme werden durch digitale Syste-me ersetzt. Hierzu zahlen der Mobilfunkgerate, Kameras und das Fernsehen.Beim Entwurf digitaler Schaltungen konnen verschiedene Abstraktions-
ebenen zum Einsatz kommen. Zum Beginn einer Systementwicklung wirddas Gesamtsystem auf einer hoheren und abstrakten Ebene modelliert ohnezu weit ins Detail zu gehen. Danach wird das System auf Teilmodelle aufge-spalten. Diese werden in einer niedrigeren Abstraktionsebene mit hoheremDetailgrad modelliert. Das von Gajski eingefuhrte und nach ihm benannteDiagramm (Abbildung 2.6) zeigt die unterschiedlichen Abstraktionsebenenund Sichtweisen auf ein Projekt. Dabei existieren die Verhaltens-, Struktur-und Geometrisch-physikalische-Sicht. Bei dem Entwurfsverfahren von einerhoheren auf eine niedrigere Abstraktionsebene zu gelangen, wird von Kon-kretisierung (top-down) gesprochen. Die entgegengesetzte Richtung heißtAbstraktion (bottom-up).
Verhaltenssicht Strukturelle Sicht
Physikalische Sicht
SystemAlgorithmus
Register-TransferBoolsche GleichungenDifferentialgleichungen
CPU, SpeicherSubsysteme, Busse
ALUs, MUX, RegisterGatter, Flip-Flops
Transistoren
Flache und Anschlusse
Partitionierung
Module
Logikzellen
Polygone
Abbildung 2.6: Entwurfsdiagramm nach Gajski [GDW+92]
Auf der Registertransferebene (Register-Transfer-Level, RTL) wird dasSystem durch den Signalfluss zwischen Registern spezifiziert. Der Signalfluss
18 2 Grundlagen und Stand der Technik
wird durch kombinatorische Logik abgebildet. Aus dieser Beschreibung erfolgtdie Synthese zu niedrigeren Ebenen und schlussendlich die Uberfuhrungin konkrete Hardware. Die Anordnung der Komponenten erfordert einePlatzierung und Verdrahtung (place and route). Bei der RTL-Modellierungexistiert eine Abgrenzung zwischen kombinatorischer und getakteter Logik.Deren Besonderheiten und Unterschiede werden im Folgenden behandeltund sind in Anlehnung an [Lie05] und [Rei13] beschrieben.
2.2.1 Kombinatorische Logik
Kombinatorische Logik, auch Schaltnetze (combinational logic) genannt, be-steht aus der Zusammenschaltung elementarer Schaltglieder (Gatter), derenFunktion mit boolescher Algebra beschrieben werden kann. Tabelle 2.1 zeigtdie allgemein gebrauchlichen Logikfunktionen fur die Standardgatter. EinSchaltnetz ist dabei immer ein ruckwirkungsfreies Zusammenschalten sol-cher Standardgatter. Die technische Realisierung erfolgt mittels Transistoren.
Tabelle 2.1: Die Tabelle zeigt die grundlegenden Logikverknupfungen (Gatter)der kombinatorischen Logik.
x0x0x0 x1x1x1 yandyandyand yoryoryor ynotynotynot yxoryxoryxor ynandynandynand ynorynorynor yxnoryxnoryxnor
0 0 0 0 1 0 1 1 1
0 1 0 1 0 1 1 0 0
1 0 0 1 1 1 0 0
1 1 1 1 0 0 0 1
Ein Schaltnetz (siehe Abbildung 2.7) entspricht einer booleschen Funktion,die mittels einer technischen Schaltung realisiert wird. Die Abbildung f mitdem Eingangsvektor x und dem Ausgangsvektor y beschreibt das Verhaltender grundlegenden Gatter.
fx yy = f(x) (2.11)
Abbildung 2.7: Die Abbildung zeigt links ein Schaltnetz, wobei die Wolke diekombinatorische Logik darstellt, deren Ausgang mit der Gleichung rechts beschrie-ben wird.
2.2 Digitalschaltungen 19
Eine besondere Auspragung von Schaltnetzen stellen die Schaltketten (ite-rative logic) dar. Diese sind kaskadenformige Hintereinaderschaltungen vonSchaltnetzen, die alle die gleiche Funktion und Struktur besitzen. Ein Gliedin einer Schaltkette wird auch Kettenglied (siehe Abbildung 2.8) genanntund besitzt im Normalfall einen Eingangsvektor x, einen Ausgangsvektor yund einen Ubergangsvektor u, der die einzelnen Kettenglieder miteinanderverbindet, somit also Eingang uin und Ausgang uout eines Schaltnetzes ist.Zur Beschreibung des Schaltnetzes werden jetzt zwei Funktionen benotigt:Zum einen die Ubergangsfunktion f und zum anderen die Ausgangsfunktiong.
f, guin
x
uout
y
uout = f(uin, x) (2.12)
y = g(uin, x)
Abbildung 2.8: Ein Kettenglied einer Schaltkette, wobei links der strukturelleAufbau zu sehen ist und rechts die Funktionen zur Bestimmung der Ausgange.
Schaltnetze kommen unter anderem bei der Datenverarbeitung (z.B. Addi-tion), als Multiplexer, Demultiplexer, Shifter oder zur Datenkodierung zumEinsatz. Multiplexer und Demultiplexer dienen dabei zum Durchschaltenvon Leitungen auf eine Ausgangsleitung oder umgekehrt. Hierzu wird derEingang durchgeschaltet, dessen Steuereingang aktiv ist.
2.2.2 Asynchron-Schaltwerke
Treten in Schaltnetzen Ruckkopplungen auf, dann heißen diese NetztypenSchaltwerke, welche ein speicherndes Verhalten aufweisen. Ein Teil derAusgange u wird in die Schaltung zuruckgefuhrt und die restlichen Ausgangey bilden wie bisher den Ausgang der logischen Verknupfung. Zur Berech-nung existieren hier die Ubergangsfunktion f und die Ausgangsfunktion g.Beinhaltet die Schaltung oder mindestens ein ruckgekoppeltes Signal keinenTakt, so heißen diese Asynchron-Schaltwerke, weil fur mindestens ein Signalder Ausgang vom geanderten Eingang direkt abhangt. Der Ausgang derUbertragungsfunktion wird mit ud bezeichnet, da die Verarbeitung des Ein-gangssignals eine gewisse Zeit (delay) benotigt, um am Ausgang ausgegeben
20 2 Grundlagen und Stand der Technik
zu werden. Eine schematische Darstellung eines Asynchron-Schaltwerks zeigtAbbildung 2.9.
Weiterhin sind Schaltwerke asynchron, wenn der Takt als ein weiteresEingangssignal der Schaltung betrachtet wird. Schaltwerke ohne Takt sindimmer Asynchron-Schaltwerke. Dargestellt werden konnen die Schaltwerkeauch als KV-Tafel, Graph oder Signaldiagramm.
f
g
→udu
x y
ud = f(u, x) (2.13)
y = g(u, x)
Abbildung 2.9: Asynchron-Schaltwerk mit dem struktureller Aufbau und dendazugehorigen Funktionen zur Bestimmung des Zustands und des Ausgangs.
Ohne die Verzogerung am Ausgang von f kann eine Veranderung derSignale am Eingang zu unerwunschtem Schaltungsverhalten fuhren, dabestimmte instabile Ruckkopplungen zu Schwingungen im System fuhrenkonnen. Wenn die Ruckkopplungssignale u einen stabilen Wert angenommenhaben und die Eingange sich nicht andern, dann nehmen auch die Ausgangeeinen stabilen Wert an.Die Anderungen der Eingangssignale x konnen zu einer Anderung der
Ausgangssignale y oder der Ruckkopplungssignale u fuhren, dann nimmt dieSchaltung einen neuen Zustand ein. Somit kann ein Schaltwerk (asynchronund synchron) als Zustandsautomat aufgefasst werden.Um metastabiles Verhalten bei Asynchron-Schaltwerken zu verhindern
mussen die folgenden Eigenschaften beachtet werden: Ein Eingangssignalmuss nach einer Pegelanderung eine gewisse Zeit lang konstant sein, sodassdas Schaltwerk in einen stabilen Zustand ubergehen kann. Die Anderungvon zwei oder mehr Eingangssignalen sollte vermieden werden, da sonstdurch unterschiedliche Wirkung von sich uberschneidenden Flanken einunbestimmter Folgezustand auftreten kann. Die beiden Falle heißen Stabilitatund Determiniertheit.
2.2 Digitalschaltungen 21
Bei der Erzeugung von mehreren hintereinander geschalteten Asynchron-Schaltwerken muss auf die gerade erwahnten Eigenschaften geachtet werden,da das Erzeugen von unbestimmten Folgezustanden auf die dahinter ge-schalteten Komponenten Auswirkungen haben kann. Der Ausgang einesAsynchron-Schaltwerks kann beim Einschwingen auf einen neuen Zustandmehrfach schnell hintereinander das Ausgangssignal andern. Der auftretendeEffekt wird als Hazard bezeichnet.
2.2.3 Synchron-Schaltwerke
Synchron-Schaltwerke besitzen ebenso wie Asynchron-Schaltwerke speichern-des Verhalten. Bei ihnen kann die Signalverzogerung durch die Bauelementevernachlassigt werden, da die Erzeugung des nachsten Zustands erst durcheinen Takt in allen Ruckfuhrungen erreicht wird. Die Verzogerung erfolgtdurch den Takt als einziges asynchrones Signal. Synchron-Schaltwerke sindalso getaktete Asynchron-Schaltwerke, wobei die ruckgekoppelten Signale ut
um einen Takt ut+1 verzogert sind. Abbildung 2.10 zeigt den schematischenAufbau.
f
g
→ut+1ut
xt yt
ut+1 = f(ut, xt) (2.14)
yt = g(ut, xt)
Abbildung 2.10: Synchron-Schaltwerk mit strukturellem Aufbau und den Funk-tionen zur Bestimmung des Folgezustands und des Ausgangs.
In der Regel ist der Eingang xt durch das vorgeschaltete synchrone Schalt-werk mit demselben Takt versehen und der Ausgang yt ebenfalls. Zusatzlichmuss der Taktabstand hinreichend groß sein. Mit diesen Bedingungen kanndas Einschwingen des Schaltwerks bei einer Anderung des Eingangssignals xvernachlassigt werden.
Synchron-Schaltwerke werden auch als getaktete Schaltwerke bezeichnet.Die Synchronisation erfolgt in der Ruckfuhrung zentral an einem Ort und
22 2 Grundlagen und Stand der Technik
die Verzogerungen in den Gattern der Schaltung werden uberdeckt. Hier-durch mussen asynchrone Zeiteffekte nicht weiter betrachtet werden undvereinfachen den Schaltungsentwurf erheblich.
2.2.4 Hazards
Da bei Digitalschaltungen unterschiedliche Laufzeiten der Signale existierenund jedes Gatter einen Verzogerer im System darstellt, konnen bei Schaltun-gen Glitches, sogenannte Hazards, entstehen, die vermieden werden sollten.Hazards sind dabei kurzzeitige falsche Pegel am Ausgang einer Schaltung.Hazards lassen sich in Anfalligkeitsklassen einteilen, wie unter anderem in[GC09] und [Whi11] geschehen. Dabei erfolgt die Unterteilung in die Grup-pen Blue, Green, Yellow, Red und Extreme, wobei die Klassifizierung derHazards fur Schaltungen ohne Hazards (Blue) bis zu extrem fehleranfalligenSchaltungen (Extreme) reicht.
Hierbei konnen zum einen statische Hazards auftreten, wenn vor und nachdem Ubergangsintervall die selbe Ausgangsbelegung vorliegt (Abb. 2.11(a)).Zum anderen konnen dynamische Hazards auftreten, wenn vor und nachdem Ubergangsintervall ein unterschiedliches Ausgangssignal anliegt (Abb.2.11(b)). Tiefergreifende Informationen lassen sich in [Woi12] und [Lie05]finden.
y =
y =
(a)
y =
y =
(b)
Abbildung 2.11: In (a) ist der mogliche Pegelverlauf fur statische Hazards gezeigt.Hierbei sollen die Signale durchgehend einen Pegel besitzen, welcher durch denHazard kurzfristig verandert wird. (b) beschreibt Verlaufe fur dynamische Hazards,bei denen vor und nach dem Ubergangsintervall unterschiedliche Pegel anliegensollen (nach [Lie05]).
Die beiden beschriebenen Formen der Hazards zahlen zu den strukturellenHazards, da sie durch die Struktur der Schaltung auftreten. Bei strukturellenHazards wird davon ausgegangen, dass zu einem Zeitpunkt t immer nurein Eingangssignal geandert wird. Sie entstehen, wenn eine Signal x aufeiner Leitung in mehrere Leitungen aufgeteilt wird und eine Negation vonx zu x auf einer der Leitungen mittels eines Inverters stattfindet und im
2.2 Digitalschaltungen 23
letzten Schritt die beiden Leitungen zusammen gefuhrt werden, das heißteine Verknupfung zwischen x und x durchgefuhrt wird.
Die Beseitigung solcher Hazards erfolgt durch die Realisierung der Schal-tung in disjunktiver Normalform (DNF) mit allen Primimplikanten. Dadurchist gewahrleistet, dass durch die konstant gehaltenen Eingangssignale auchder Ausgang konstant gehalten wird. Alle Hazards die durch x∧ x und x∨ xauftreten sind dann durch die Primimplikanten zu (x∧ x)∧ 0 und (x∨ x)∨ 1gelost. Hierbei sei anzumerken, wenn Kombinationen von x ∧ x oder x ∨ xals direkte Realisierung in einer Schaltung auftauchen, konnen diese Hazardsnicht entfernt werden. In kombinatorischen Schaltungen tritt dieser Fallnormalerweise nicht auf, in asynchronen Schaltwerken dagegen schon, dadiese Kombination als kurze Verzogerung zur Anwendung kommt.
Bei der Anderung von zwei oder mehr Eingangssignalen zur gleichen Zeitentstehen sogenannte funktionelle Hazards. Diese sind im Gegensatz zuden strukturellen Hazards nicht mehr durch die zur Verfugung stehendenMethoden der Boolschen Algebra zu beheben. In Abbildung 2.12 sind dieAnderungen von zwei Eingangsvariablen im Karnaugh-Veitch-Diagramm(KV-Diagramm) [Vei52], [Kar53] zu sehen. Die beiden Eingangssignale x1 undx2 wechseln gleichzeitig ihren Zustand (steigende Flanke) von Null auf Eins(x1 =↑, x2 =↑) und das Ausgangssignal soll unverandert bleiben. Dabei gibtder graue Pfeil die endgultige Anderung des Ausgangszustands an, da sichaber beide Eingangssignale nicht genau zeitgleich ansteuern lassen, existierendie mit schwarzen Pfeilen markierten Moglichkeiten uber Nachbarzustandezu gehen um zum endgultigen Ausgangszustand zu gelangen.
0 0
0 0x1
x2
(a)
0 1
0 0x1
x2
(b)
0 0
1 0x1
x2
(c)
0 1
1 0x1
x2
(d)
Abbildung 2.12: Die Abbildungen (a) bis (d) zeigen alle moglichen Kombinatio-nen um von x1 = 0 und x2 = 0 durch quasi gleichzeitigen Pegelwechsel von x1 =↑und x2 =↑ zum Ausgangszustand zu gelangen (entnommen aus [Lie05]).
Die vier auftretenden Falle sind in Abbildung 2.12 zu sehen. Dabei kannnur bei Fall (a) kein Hazard auftreten, da egal welcher Eingang zuerstseinen Pegel wechselt, immer eine Null am Ausgang anliegt. In Fall (b)und (c) dagegen existiert immer nur ein Weg, um ohne Anderung des
24 2 Grundlagen und Stand der Technik
Ausgangssignals vom Startzustand zum Endzustand zu gelangen. Hier istdie Beseitigung des Problems durch einen zusatzlichen Verzogerer im Zweigder auftretenden Eins moglich, um immer dem Weg der dauerhaften Null imKV-Diagramm zu folgen. In Fall (d) tritt in jedem Fall ein Hazard auf, dernur durch das Hinzufugen einer weiteren Variablen in der Schaltung, oderdurch Umgestaltung der Schaltung aufgelost werden kann.
Zur Erkennung von Hazards sind verschiedene Tests moglich. Zum einenein logischer Test, der von unbekannten Laufzeiten der Gatter ausgeht undzum anderen ein technischer Test, bei dem bekannt sein muss, wie dieLaufzeiten der einzelnen Gatter aussehen.
Bei unbekannten Laufzeiten der einzelnen Gatter kommt der logische Testzum Einsatz, bei dem die bisherige zweiwertige Logik (x = 0, x = 1) umzusatzliche Symbole erweitert wird. Hierzu gehoren eine steigende Flanke(x =↑) fur x : 0 → 1, eine fallende Flanke (x =↓) fur x : 1 → 0 undein moglicher Hazard (x =). Hazards entstehen durch die Signalflanken↑ ∧ ↓=↓ ∧ ↑= und ↑ ∨ ↓=↓ ∨ ↑=.
Die daraus resultierende funfwertige Logik ist in Tabelle 2.2 fur die Gatternicht, und und oder abgebildet. Hierbei ist darauf zu achten, dass diebekannten Rechenregeln nicht ohne weiteres angewendet werden konnen.Die Axiome x ∧ x = 0 und x ∨ x = 1 gelten nicht, da gerade durch dieseKombination Hazards hervorgerufen werden. Das Absorptionsgesetz giltzusatzlich nicht mehr, das heißt x ∨ x ∧ y = x und x ∧ (x ∨ y) = x sindungultig in der neu definierten Logik. Somit durfen strukturveranderndeRegeln nicht mehr angewendet werden.Die De Morgansche Regel dagegen ist nicht strukturverandernd und gilt
somit weiterhin. Dies bedeutet, dass x ∨ y = x ∧ y weiterhin gilt. ZurDurchfuhrung des Tests werden die gegebenen Gleichungen des Systems aufmoglicherweise vorkommende Hazards uberpruft, indem alle Gleichungenmit allen Kombinationen an Signalen getestet werden.
Tabelle 2.2: Definition der funfwertigen Logik zur Erkennung von Hazards imlogischen Test nach [Lie05].
nicht
0 1
↓ ↑� �↑ ↓1 0
und 0 ↓ � ↑ 1
0 0 0 0 0 0
↓ 0 ↓ � � ↓� 0 � � � �↑ 0 � � ↑ ↑1 0 ↓ � ↑ 1
oder 0 ↓ � ↑ 1
0 0 ↓ � ↑ 1
↓ ↓ ↓ � � 1
� � � � � 1
↑ ↑ � � ↑ 1
1 1 1 1 1 1
2.2 Digitalschaltungen 25
Tabelle 2.3: Tabelle mit Regeln fur die funfwertige Logik unter Einbeziehung derZeit t und der Angabe, ob Hazards entstehen konnen (nach [Lie05]).
tn Verknupfung Hazard
n > 0 ↓t ∧ ↑t−n= 0 Nein
n > 0 ↑t ∨ ↓t−n= 1 Nein
n ≥ 0 ↓t ∧ ↓t−n=↓t Nein
n ≥ 0 ↑t ∧ ↑t−n=↑t−n Nein
n ≥ 0 ↑t ∨ ↑t−n=↑t Nein
n ≥ 0 ↓t ∨ ↓t−n=↓t−n Nein
n > 0 ↑t ∧ ↓t−n=�t Ja
n > 0 ↓t ∨ ↑t−n=�t Ja
n = 0 ↓t ∧ ↑t=↑t ∧ ↓t=�t Ja
n = 0 ↑t ∨ ↓t=↓t ∨ ↑t=�t Ja
Der technische Test kann dagegen zur Anwendung kommen, wenn dieLaufzeiten der einzelnen Gatter bekannt sind. Diese Zeiten sind durch hochge-stellte Indizes an der jeweiligen Variablen angegeben. Bei einer Anderungendes Eingangs x zum Zeitpunkt t und einer Verzogerung von n Zeiteinhei-ten, bedeutet dies in der Schaltungslogik xt−n. Weiterhin gelten hier die inTabelle 2.2 angegebenen Verknupfungen fur nicht, und und oder. Struktur-verandernde Rechenregeln sind also weiterhin verboten und nur die nichtstrukturverandernden Ausdrucke der Booleschen Algebra sind erlaubt. Tabel-le 2.3 zeigt die gultigen Rechenregeln mit der neu eingefuhrten funfwertigenLogik. Durch die zeitliche Komponente ergeben sich neue Ergebnisse fur dieVerknupfungen.
Bei Schaltwerken ist zusatzlich noch darauf zu achten, dass bei Hazardsnicht nur kurzfristig Ausgangssignale ihren Pegel wechseln, sondern dassdurch die Glitches der Zustand der Schaltung verandert werden kann. Hiererfolgt die Klassifizierung in drei Typen. Als erstes sind die strukturellenHazards zu nennen, bei denen sich eine Komponente in (u, x) verandert. Beiallen Hazards in Schaltwerken gilt, dass sie bei Erreichung eines gewunschtenZustands des Netzes unkritisch sind. Alle anderen Varianten werden alskritisch bezeichnet.
Andern sich dagegen zwei Komponenten in (u, x), dann werden diese Ha-zards funktionelle Hazards genannt. Bei strukturellen und funktionellen Ha-zards soll sich die Ruckkopplungsvariable nicht andern. Als letzte Moglichkeitexistiert noch der konkurrente Hazard, bei dem sich drei Komponenten in(u, x) und zusatzlich mindestens zwei Komponenten im Ruckkopplungsvektorandern.
26 2 Grundlagen und Stand der Technik
2.3 Hardwarebeschreibungssprachen
Zur Beschreibung von digitalen Schaltungen existieren unterschiedliche Hard-warebeschreibungssprachen. Dazu gehoren die beiden Sprachen Verilog (siehe[Hop06]) und VHDL (Very high speed integrated circuit Hardware DescriptionLanguage, siehe [Ash08]), welche beide die Simulation und Synthese digitalerHardware unterstutzen.
Der Vorteil einer Beschreibungssprache ist, dass sie unabhangig von der ver-wendeten Technologie und der verwendeten Entwurfsmethodik ist. Weiterhinkann die Schaltungsbeschreibung in unterschiedlichen Abstraktionsebenenstattfinden.Die Synthese kann in drei Schwerpunkte aufgeteilt werden: Dies ist die
Logik-, Schaltwerk- und Struktur-Synthese. Logik bezeichnet die oben ein-gefuhrte kombinatorische Logik (Schaltnetze). Die Schaltwerke die getakteteLogik aus dem vorherigen Unterkapitel und die Struktur verbindet dieerzeugten Systeme hierarchisch miteinander.Die Beschreibung von digitalen Schaltungen wird dabei in die Struktur-
/Verhaltens- und Schnittstellenbeschreibung unterteilt. Letztere beschreibtmit Strukturmodellen die Kopplung zwischen den Komponenten. Die Struk-tur-/Verhaltensbeschreibung modelliert das Verhalten von Ein- und Ausgan-gen, bzw. die Struktur der Schaltung. Hierbei ist zwischen synthesefahigen(Datenflussdarstellung) und fur die Simulation (algorithmische Darstellung)geeigneten Beschreibungen zu unterscheiden [SR12]. Die beiden erwahntenSprachen sind die am weitest verbreiteten und erhalten deswegen hier einenahere Betrachtung und Einfuhrung, um in spateren Kapiteln zur Anwen-dung zu kommen.
2.3.1 VHDL
Bei VHDL handelt es sich um eine in Europa weit verbreitete Hardwarebe-schreibungssprache. Sie unterteilt die Beschreibung einer Schaltung in dieSchnittstellen- und Struktur-/Verhaltens-Beschreibung [BK09].
Es existieren Signale, die Werte auf Leitungen einer Schaltung entsprechen.Jedes Signal hat einen eindeutigen Datentyp, der unter anderem std logicoder bit sein kann. Der Unterschied besteht darin, dass bit nur zwei Zustande( ’0’ , ’1’ ) annehmen kann und std logic insgesamt neun. Dabei existierendie Zustande fur die logische Null und Eins in stark ( ’0’ , ’1’ ) und schwach(’L’, ’H’) und zusatzlich existiert noch ein Zustand fur stark (’X’) undschwach (’W’) unbestimmt. Die drei letzten Zustande sind Hochohmig (’Z’),nicht initialisiert (’U’) und bedeutungslos (’−’). Letzterer Zustand kann
2.3 Hardwarebeschreibungssprachen 27
zur Minimierung von Schaltungen genutzt werden, kommt aber meist nichtzum Einsatz, da bestehende Synthese-Werkzeuge die Minimierung besserohne diesen Zustand durchfuhren konnen. Beide Signaltypen konnen auchals Vektor angelegt werden (bit vector , std logic vector ). Die Reihenfolgeder Zuweisungsanweisungen spielt keine Rolle, da alle Zuweisungen zu einemSignal nebenlaufig ausgefuhrt werden.
Ports besitzen eine Richtung, die in als Eingang, out als Ausgang, bufferals Ausgangssignal, welches auch als Eingang zur Signalabfrage verwendetkann und inout als Ein- und Ausgangs-Signal sein kann.Die Schnittstelle heißt entity und gibt uber eine Liste Ports an, die die
Beschreibung der Ein- und Ausgange des Entwurfsblocks darstellen. So-mit entspricht die entity dem Gehause einer Schaltung und beschreibt dieAnschlusse eindeutig. Zusatzlich werden in ihr Konstanten und Unterpro-gramme deklariert, die fur alle Verhaltensbeschreibungen gleich sind. Listing2.1 zeigt die Schnittstellendefinition eines Multiplexers. Der Ausgang ’Y’wird anhand der Select-Leitung ’S’ aus den vier Eingangen ’E’ gewahlt.
Listing 2.1: Schnittstellenbeschreibung eines 4 zu 1 Multiplexers
entity Mux4 i sport ( S : in s t d l o g i c v e c t o r (1 downto 0 ) ;
E : in s t d l o g i c v e c t o r (3 downto 0 ) ;Y : out s t d l o g i c ) ;
end Mux4 ;
Nach der Schnittstellenbeschreibung muss jede entity mindestens eineVerhaltens- beziehungsweise Strukturbeschreibung in Form einerarchitecture besitzen. Dabei beschreibt diese die Funktion der Einheit.Das Verhalten der in Listing 2.1 angegebenen entity ist in Listing 2.2 ge-zeigt. Bei Abfragen mussen immer alle moglichen Falle betrachtet werden,da sonst ungewollte Speicher (latch) entstehen konnen. Dazu wird Y derWert aus E(3) in allen Fallen außer den vorher angegebenen zugewiesen.
Listing 2.2: Verhaltensbeschreibung eines 4 zu 1 Multiplexers
architecture behavior of Mux4 i sbegin
with S selectY <= E(0) when ”00” ,
E(1 ) when ”01” ,E(2 ) when ”10” ,E(3 ) when others ;
end behavior ;
Zur Verwendung von schon bekannten und erstellten Komponenten kommtdas Schlusselwort component zum Einsatz. Diese benotigen die zugehorigen
28 2 Grundlagen und Stand der Technik
Signale, die in gleicher Reihenfolge wie bei der entity-Beschreibung uberge-ben werden mussen. Dies entspricht der Verdrahtung der Anschlusse derKomponente mit der außeren Beschaltung. Bei der Instanziierung der Kompo-nente ist dann eine Zuordnung uber eine port map in beliebiger Reihenfolgemoglich.Zur Verknupfung von Signalen stehen die booleschen Operatoren not,
and, nand, or, nor, xor und xnor zur Verfugung. Die Verknupfungenkonnen auch auf Vektoren angewendet werden, wobei diese gleich lang seinmussen Dabei erfolgt die Verknupfung komponentenweise.
Die bisher erlauterten Signalzuweisungen laufen nebenlaufig ab. Um einesequentielle Beschreibung nutzen zu konnen existiert der process, bei demalle Anweisungen der Prozessdefinition sequentiell ausgefuhrt werden. Hier-durch konnen Schleifen und Verzweigungen genutzt werden. Alle Prozesseinnerhalb einer architecture werden nebenlaufig ausgefuhrt. Eine Kommu-nikation zwischen Prozessen findet durch lokale Signale in der architecturestatt.In Prozessen sind Selektive und bedingte Zuweisungen verboten, konnen
stattdessen aber mit case- und if -Anweisungen bewerkstelligt werden. AufWerte einer Signalzuweisung, welche im aktuellen Durchlauf geschriebenwurde, ist kein Zugriff moglich. Signalzuweisungen zu einem gleichen Signalkonnen mehrfach innerhalb eines Prozesses auftauchen, dann wird am Endedes Prozessdurchlaufs der Wert der letzten Zuweisung ubernommen. Inner-halb von Prozessen konnen Variablen unterschiedlicher Typen verwendetwerden, die dann nur in dem jeweiligen Durchlauf ihre Gultigkeit besitzenund nicht von außerhalb des Prozesses gelesen werden konnen.In der Simulation von Schaltungen existieren zwei mogliche Prozessar-
ten, die durch das Vorhandensein einer Sensitivitatsliste zu unterschiedensind. Prozesse ohne Empfindlichkeitsliste werden fortlaufend ausgefuhrt undmussen daher eine wait−until Anweisung beinhalten, welche beispielsweiseauf ein clk-Event wartet. Mit existierender Empfindlichkeitsliste wird derProzess immer ausgefuhrt, wenn sich ein Wert einer Variablen in der Listeandert. Listing 2.3 zeigt die Verhaltensbeschreibung des Multiplexers ausListing 2.1 als Prozess. Die Zuweisung der Signale erfolgt am Ende desProzesses. Eine Mischform der beiden Prozessarten ist nicht erlaubt. Nach-dem fur die Synthese gultigen IEEE-Standard muss die wait-Anweisung dieerste innerhalb eines Prozesses sein und es darf genau eine wait-Anweisungvorkommen.
Neben den beiden schon erwahnten Verzweigungsmoglichkeiten case (Lis-ting 2.3) und if (Listing 2.4) existiert in VHDL zusatzlich die Moglichkeit,Schleifen mittels des for−loop Konstrukts zu beschreiben. Hierbei mussen
2.3 Hardwarebeschreibungssprachen 29
statische Schleifengrenzen vorgegeben werden. Der Index der Schleifen mussnicht deklariert werden und es stehen die Varianten zum Aufwarts- (to)und Abwartszahlen (downto) zur Verfugung. Die bisher gezeigten Elementekonnen fur das Erzeugen von Schaltnetzen verwendet werden. Zur Beschrei-bung von Schaltwerken kommen noch einige zusatzliche Elemente hinzu.
Listing 2.3: Sequentielle Verhaltensbeschreibung eines 4 zu 1 Multiplexers mittelseines process
process ( S , E )begin
case S i swhen ”00” => Y <= E( 0 ) ;when ”01” => Y <= E( 1 ) ;when ”10” => Y <= E( 2 ) ;when others => Y <= E( 3 ) ;
end case ;end process ;
Zur Beschreibung von steigenden und fallenden Flanken eines Taktesexistiert die Anweisung CLK’event. Dabei ist das Signalattribut ’eventein Bestandteil der Sprache und beschreibt einen beliebigen Signalwechsel.Zusatzlich muss noch angegeben werden auf welche Flanke reagiert werdensoll, indem fur eine steigende Flanke zusatzlich CLK = ’1’ und fur einefallende Flanke CLK = ’0’ angegeben werden muss.
Listing 2.4: VHDL-Beschreibung eines D-Flipflop
entity d f l i p f l o p i sport ( c lk , r e s e t , D : in s t d l o g i c ;
Q : out s t d l o g i c ) ;end d f l i p f l o p ;
architecture behavior of d f l i p f l o p i sbeginFF: process ( c lk , r e s e t )begin
i f r e s e t = ’1 ’ then Q <= ’0 ’ ;e l s i f c l k = ’1 ’ and clk ’ event then Q <= D;end i f ;
end process FF;end behavior ;
Das in Listing 2.4 gezeigte Schaltwerk ist ein taktflankengesteuertes D-Flipflop mit asynchronem Rucksetzeingang. Zuerst erfolgt die Abfrage, obder RESET gesetzt ist und das Flipflop zuruckgesetzt werden muss, da-nach geschieht die Uberprufung, ob eine steigende Flanke vorliegt und derEingang D an den Ausgang Q weitergereicht werden soll. Das so erzeugte
30 2 Grundlagen und Stand der Technik
Schaltwerk besitzt einen asynchronen Anteil im if -Teil des Prozesses undeinen synchronen im elsif -Teil.
Die in Listing 2.4 gegebene Schaltung kann den Wert eines Bit speichern.Sind mehrere solcher Speichereinheiten zusammengefasst, dann konnen die-se als Register verwendet werden. Dazu sind in VHDL Signale vom Typstd logic vector oder bit vector zu verwenden. Dazu kann die generic-Deklaration verwendet werden, wenn von einer ubergeordneten Hierarchie-ebene festgelegt werden soll, wie groß das Register ist. generic ist dabeiinnerhalb einer entity wie eine Konstante anzusehen und kann von außer-halb uberschrieben werden. Daraus resultiert die in Listing 2.5 gegebeneentity-Beschreibung.
Listing 2.5: VHDL-entity-Beschreibung eines Registers mittels generic
entity REGISTER isgeneric ( N : i n t e g e r :=16 ) ;port ( CLK, RESET : in s t d l o g i c ;
D : in s t d l o g i c v e c t o r (N−1 downto 0 ) ;Q : out s t d l o g i c v e c t o r (N−1 downto 0 ) ) ;
end REGISTER;
Zur Beschreibung von digitalen Schaltungen sind die hier gegebenenGrundlagen ausreichend. VHDL bietet noch mehr Beschreibungskonstrukte,welche aber nicht alle zur Synthese in Schaltungen Anwendung finden. Fur dieRTL-Synthese existiert ein IEEE-Standard 1076.6 [IEE99], der alle gultigenund synthesefahigen Basiskonstrukte zusammenfasst .
2.3.2 Verilog
Die zweite etablierte Sprache zur Beschreibung von digitalen Schaltungen istVerilog, welches vor allem in Nordamerika und Japan zum Einsatz kommt. Siewurde ursprunglich von Gateway Design Automation und spater von Cadenceentwickelt, in den 1990er Jahren freigegeben und vom IEEE standardisiert[IEE06]. Die Syntax ahnelt stark der von hoheren Programmiersprachenwie beispielsweise C. Ahnlich wie bei VHDL existieren in Verilog auch vieleSprachelemente, die nicht synthetisierbar sind [Hop06].Zur Beschreibung von Schaltungen steht das module als strukturelles
Element zur Verfugung, welches das eigentliche Design beinhaltet. Mehreremodule konnen ineinander verschachtelt werden, um eine Hierarchie zuerzeugen. Die Beschreibung kann dabei durch Gatter oder weitere Moduleerfolgen. Weiterhin ist es moglich das Verhalten algorithmisch zu beschrei-ben. Die in VHDL getrennten Einheiten fur Schnittstellen- und Struktur-/Verhaltensbeschreibung sind hier zu einem Block zusammengefasst.
2.3 Hardwarebeschreibungssprachen 31
Listing 2.6 zeigt ein komplettes module fur einen Multiplexer, wie ervorher auch schon in VHDL beschrieben wurde. Nach dem Namen desModuls erfolgt eine Port-Liste mit den Namen aller Ein- und Ausgange.Weiterhin folgt dann in den Zeilen zwei bis vier die genaue Beschreibung derPorts, wobei Eingange (input), Ausgange (output) und eine Kombinationaus beidem (inout) existieren konnen. In Klammern wird bei Vektorenangegeben welche Breite sie besitzen. Interne Signale konnen mittels wirebeschrieben werden. Zum Anlegen von Registern ist das Schlusselwort regzu verwenden. Signale konnen die vier Werte null (0), eins (1), unbekannt(X) und hochohmig (Z) annehmen. Konstanten konnen uber parameterfestgelegt werden, um Busbreiten oder Schleifendurchlaufe zu bestimmen.
Listing 2.6: Verhaltensbeschreibung eines 4 zu 1 Multiplexers in Verilog
module Mux4 (Y, E, S ) ;input [ 3 : 0 ] E ;input [ 1 : 0 ] S ;output Y;
always @( S or E )begin
case ( S )0 : Y = E [ 0 ] ;1 : Y = E [ 1 ] ;2 : Y = E [ 2 ] ;3 : Y = E [ 3 ] ;
endcaseend
endmodule
Die permanente Zuweisung von Signalen kann mittels des Schlusselwortsassign geschehen. Ein Gegenstuck zu den Prozessen aus VHDL ist hierdie Kombination aus initial und always, wobei ersteres nur bei Inbetrieb-nahme der Schaltung ausgefuhrt wird, und always jedes mal, wenn sichein angegebenes Signal andert (siehe Listing 2.6). Die initial -Blocke sinddabei nicht synthetisierbar und somit nicht fur die Schaltungsbeschreibungverwendbar. Alle Blocke eines Moduls werden nebenlaufig ausgefuhrt. Dabeidurfen sie nicht verschachtelt sein. Alle Anweisungen innerhalb eines Blockswerden sequentiell abgearbeitet.
In Verilog konnen auch die Verzweigungen if und case verwendet werden.Hierbei ist auch wieder drauf zu achten, dass immer alle auftretenden Fallevon Wertekombinationen bearbeitet werden, da sonst ungewollter Speichererzeugt wird. Weiterhin existiert die Moglichkeit Schleifen (repeat, while,for) zu verwenden.
32 2 Grundlagen und Stand der Technik
Zur Wiederverwendung von Beschreibungselementen kommen Tasks (task)und Funktionen (function) zum Einsatz. Fur Flanken stehen zwei unter-schiedliche Events zur Verfugung, je nachdem ob es eine steigende (posedge)oder eine fallende (negedge) Flanke ist. Events sind dabei immer mit @zu kennzeichnen. Ist das Event von mehreren Signalen abhangig, so mussendiese uber or verbunden werden.
2.4 Endliche Automaten
Eine weitere Grundlage zum Entwerfen und Beschreiben von digitalen Sys-temen stellen die Zustandsautomaten (finite state machines - FSM ) dar. Siedienen zur Steuerung von Logikschaltungen und konnen zur Synchronisationmehrerer Komponenten verwendet werden. Die Steuerung der Automatenkann dabei durch ein periodisches Taktsignal erfolgen. Tiefergehende Infor-mationen uber die Automatentheorie sind in [Her06], [Hro14] und [Fri14] zufinden.
Im folgenden wird die grundsatzliche Arbeitsweise des Moore- und Mealy-Automaten beschrieben, da diese in Hardwarebeschreibungssprachen uberfuhrtwerden konnen [HMU11], [SR12] und im weiteren Verlauf der Arbeit zurAnwendung kommen.
Bei einem bestehenden Taktsignal kann der Moore-Automat als synchronesSchaltwerk aufgefasst werden, bei dem die Ausgangssignale A nur vomaktuellen Zustand Z des Automaten abhangen. Der folgende Zustand Z+
wird aus den anliegenden Eingangssignalen E und dem aktuellen ZustandZ bestimmt, wobei die Berechnung von des neuen Zustands Z+ immer beieiner positiven Taktflanke erfolgt. Daraus ergeben sich die Beziehungen:
Z+ = fMoore(E,Z)
A = gMoore(Z)
Die Abbildung 2.13 zeigt den strukturellen Aufbau eines Moore-Automaten.Dabei sind alle Signale Vektoren, um die Signale passend zusammen zu fassen.Der Automat besteht dabei aus drei Funktionsblocken.Zum einen ist dies der Zustandsspeicher (current state register), der
durch n synchron getaktete Flip-Flops gebildet wird, mit denen 2n Zustandedarstellbar sind. Der Folgezustand Z+ wird immer bei einer steigendenTaktflanke clk in den Zustandsspeicher geschrieben. Zusatzlich kann derSpeicher uber einen weiteren Eingang R in den Initialzustand versetzt werden.
Die Zustandsubergangsfunktion f (next state decoder) berechnet aus demaktuellen Zustand Z und dem anliegenden Eingangssignal E den nachsten
2.4 Endliche Automaten 33
Z
ZZ+
E AfMoore(E,Z) gMoore(Z)
Abbildung 2.13: Struktureller Aufbau eines Moore-Automaten nach [Gre15]
Zustand Z+. Die Ausgangsfunktion g (output decoder) berechnet aus demaktuellen Zustand die Ausgange A. Wenn der aktuelle Zustand direkt alsAusgangssignal genutzt wird, dann heißt diese Form Medwedew-Automat[KB04].
Z
ZZ+
E AfMealy(E,Z) gMealy(E,Z)
Abbildung 2.14: Struktureller Aufbau eines Mealy-Automaten nach [Gre15]
Beim Mealy-Automaten dagegen existiert eine direkte Verbindung derEingange E zur Ausgangsfunktion g. Hieraus ergibt sich eine direkte Abhan-gigkeit der Ausgange A von den Eingangen E und dem aktuellen ZustandZ. Auch hier wird der Folgezustand Z+ durch E und Z berechnet. DieBeziehungen fur den Mealy-Automaten lauten daher:
Z+ = fMealy(E,Z)
A = gMealy(E,Z)
Abbildung 2.14 zeigt das Strukturbild eines Mealy-Automaten. Dabei sinddie einzelnen Strukturelemente von ihrem Aufbau die selben wie die desMoore Automaten.
34 2 Grundlagen und Stand der Technik
2.5 Stand der Forschung
Das Thema der Transformation von Petri-Netzen in digitale Schaltungenwar in den letzten Jahrzehnten mehrfach Forschungsschwerpunkt. In diesemAbschnitt werden die einzelnen Forschungsarbeiten dieses Bereichs aufge-griffen und deren Anwendung erlautert. Ein abschließender Vergleich undeine Abgrenzung mit dieser Arbeit und Bewertung der erzielten Ergebnissefindet im Resumee statt.In [Doh94] findet die Transformation von VHDL in Petri-Netze statt.
Dazu werden farbige Petri-Netze genutzt, die in [DJS93] um einige weitereElemente erganzt wurden. Dabei sind die gegebenen Umformungen nurfur rudimentare VHDL-Befehle moglich. Eine Abbildung aller moglichenElemente, die zur digitalen Schaltungsbeschreibung genutzt werden konnen,existiert nicht. Generell wurde das Modell genutzt, um in VHDL beschriebeneSchaltungen zu verifizieren. Der Ansatz nach [Doh94] bildet also den entgegengerichteten Transformationsprozess zu dieser Arbeit ab und wurde deswegennicht weiter verfolgt.In [Mar98] werden viele der bis dahin getatigten Forschungsarbeiten zu-
sammengefasst und ein guter Uberblick geliefert. Hierbei wird herausgestellt,dass die Verwendung von Petri-Netzen zum Design von digitalen Schaltungenenorm an Beliebtheit zunimmt. Diese Steigerung der Beliebtheit wird durchdie in der Motivation schon erwahnten Vorteile von Petri-Netzen erreicht. Indieser Veroffentlichung wird die Erstellung einer digitalen Schaltung in diedrei Aufgabenbereiche Modellierung, Analyse bzw. Verifikation und Syntheseaufgeteilt. Dies erfolgt auch in vielen anderen Buchern zum Thema und istein Ansatz fur die Struktur dieser Arbeit, wobei die Aufteilung hier nochfeingranularer erfolgt.
Aus [Mar98] sind unter anderem Forschungsarbeiten aus den fruhen 1970erJahren zu entnehmen, die Ansatze fur das Transformieren von Petri-Netz-Elementen in digitale Bausteine einfuhren. In [PD72] und [Pat72] werdeneinzelne Elemente der Schaltungstechnik in Petri-Netze uberfuhrt. Weiterhinwerden Methoden zur Rucktransformation vorgestellt. Einige der folgendenArbeiten beruhen ebenfalls auf diesem Prinzip und nutzen die in diesenVeroffentlichungen vorgestellten Transformationen oder erweitern diese nochzusatzlich.
In [PK94] wird die Verwendung von Boolescher Logik zur Darstellung jederStelle des Netzes prasentiert, wie sie unter anderem in [Bry86] vorgestelltworden sind. In [PK94] werden Petri-Netze als Zwischenreprasentation vonAlgorithmen verwendet, welche in die Register-Transfer-Ebene uberfuhrtwerden sollen. Diese System heißt CAMAD (Computer Aided Modelling
2.5 Stand der Forschung 35
Analysis, and Design of VLSI Systems) [Pen86], [WC12] und dient derUberfuhrung von Algorithmen in digitale Schaltungen. Weiterhin werden dieoben genannten Umwandlungen von Petri-Netz-Elementen in Komponentender digitalen Schaltungen beschrieben.In der Dissertation von Duc Thinh Ninh [Nin94] wird auf der Basis
von Petri-Netzen eine eigene Graphen-Darstellung entwickelt, um digitaleSysteme zu beschreiben. Die Arbeit bezieht sich dabei auf Parallel- undFließbandsysteme. Mit dieser Darstellung kann gut nachverfolgt werden,in welcher Phase sich die einzelnen Zweige eines Fließbandsystems geradebefinden, da die Marken im System immer die aktuelle Phase wiedergeben.Zusatzlich ist erkennbar, wie viele Aktionen gerade parallel ausgefuhrt werdenkonnen. Die hier vorgestellten Methoden sind nur auf die genannten Systemeanwendbar und daher fur diese Arbeit nicht verwendbar.Die Dissertation von T. Schober [Sch03] behandelt die formale Verifi-
kation von digitalen Systemen mit der Unterstutzung durch Petri-Netze.Dazu kommen die in [KQ88] eingefuhrten interpretierten Petri-Netze (IPN)zum Einsatz. Die dort vorgestellten Netze werden vor allem in der Steue-rungstechnik verwendet um Speicherprogrammierbare Steuerungen (SPS)zu programmieren. Hier ist die Entwurfsmethodik PNDes (Petri Net basedDesign) eingefuhrt worden, mit deren Unterstutzung eine formale Verifika-tion auf funktionaler Ebene geleistet werden kann. Ziel ist es dabei, einetransparente Abbildung des Systemverhaltens und der Systemstruktur zuerhalten und dieses dann zu analysieren.In [RFH00] und [HF05] werden Coloured Hardware Petri Nets (CHPN )
verwendet, um Petri-Netze in Digitalschaltungen zu transformieren. Dazuerfolgt eine Umwandlung von CHPN in Hardware Petri nets (HPN ) ausdenen dann VHDL-Beschreibungen extrahiert werden. HPN beruhen aufS/T-Petri-Netzen und konnen mehr als eine Marke pro Stelle enthalten.Die Erzeugung der VHDL-Beschreibung erfolgt uber das Verhalten dereinzelnen Transitionen des Netzes. Hierzu erfolgt die Bestimmung wanneine Transition aktiviert ist und daraus wird die Gleichung fur die jeweiligeTransition gebildet. Konflikte sind uber eine vorgegebene Priorisierung desBenutzers zu beheben. Ebenfalls wurde in diesen Arbeiten die Verwendungvon Hybrid Petri Nets zur Transformation in VHDL vorgestellt, wobei auchdas Verhalten der einzelnen Transitionen modelliert wird.
In [SAN06] und [SAG+10] werden Petri-Netze auch mittels der Transfor-mation einzelner Elemente durchgefuhrt. In diesem Fall wird die Uberfuhrungvon Stellen und Transitionen jeweils einzeln durchgefuhrt, woraus fur jedesElement des Netzes eine eigene Schaltung entsteht, welche durch die Ein-und Ausgange der Komponenten die Verbindung im Netz aufzeigt. Weitere
36 2 Grundlagen und Stand der Technik
Forschungen, die alle die Transformation von einzelnen Elementen des Netzesverwenden sind ebenfalls in [Mar98] aufgefuhrt.
Da die Popularitat von SystemC immer mehr zunimmt, sind auch Trans-formationen in dieser Sprache recherchiert worden: In [KEP06] wird eineVerifikation von SystemC-Modellen mittels Petri-Netzen vorgestellt. Hierauslassen sich Uberfuhrungen von SystemC-Anweisungen in Petri-Netze ablei-ten, die fur spatere Arbeiten zur Mustererkennung in Petri-Netzen genutztwerden konnen, um Schaltelemente aus einem Netz zu extrahieren und durchvorgefertigte Komponenten zu ersetzen. SystemC ist eine Modellierungsspra-che, mit der Systeme aus Software- und Hardwarekomponenten beschriebenwerden konnen [Kes12].
Die Simulation von kombinatorischer Logik wurde unter anderem in [CG90]eingefuhrt. Dort ist eine Transformation von Gattern in Petri-Netze vor-gestellt worden. Zur Vereinfachung der Darstellung von Schaltungen isteine neue Transition eingefuhrt worden, die nicht mit normalen Kanten alsEingang belegt werden kann. Sie verhalt sich also wie eine Transition, diestatt normalen Kanten nur hemmende Eingangskanten besitzt.
In den letzten Jahren existieren drei aktive Forschungsgruppen, die weiter-hin regelmaßige Veroffentlichungen zum Thema Transformation von Petri-Netzen in digitale Schaltungen prasentieren. Eine dieser Forschungsgrup-pen rund um M. Adamski [WA99], [AM00] erarbeitet eigene Ansatze undLosungsmoglichkeiten zur Analyse von digitalen Schaltungen mittels Petri-Netzen. Zusatzlich entstand ein Forschungsfeld zur Erstellung von Schaltun-gen mittels Petri-Netzen. Hierzu kommen zum großten Teil High-Level-Netzezum Einsatz.
In [BTG+13] wird ein Algorithmus beschrieben, mit dessen Hilfe controlinterpreted Macro-Petri nets (CIMPN) [Kar07] in HDL-Beschreibungen um-gewandelt und fur Field Programmable Gate Arrays (FPGA) aufbereitetwerden. CIMPN sind farbige Petri-Netze mit dem Zusatz, dass Subnetzemit genau einer Eingangs- und einer Ausgangskante existieren. Die erzeugteBeschreibung ist dabei in zwei Blocke geteilt. Im ersten Teil wird das feuernvon Transitionen beschrieben und im zweiten die Generierung von Mikro-operationen. Die Transformation beruht auf der Veroffentlichung [BA13].Die Synthese von parallelen Systemen oder Reglern in [KDS+95] ist ein
Ansatz, um Petri-Netze im Bereich der digitalen Schaltungen zu verwen-den. Hierbei stellen Marken die gerade aktiven Elemente in einem Systemdar und das Feuern von Transitionen andert diesen Zustand. Zum Ein-satz kommt hierfur ein von T. Kozlowski [Koz93] entwickeltes CAD Toolzur Synthese der Netze. Das dahinterstehende System analysiert das Petri-Netz und erzeugt daraus eine sogenannte one-to-one Implementierung und
2.5 Stand der Forschung 37
ein Zustandsubergangsdiagramm. Weiterhin sind die Behandlung und dasAufspuren von Fehlern [DA11], die Erstellung von Schaltungen fur sicher-heitskritische Systeme [BTA+14] oder die Prototyperstellung von parallelenKontrollsystemen [WKA+17] Teil der Arbeiten. Bei allen Ansatzen die-ser Forschungen kommt wie schon bei den vorherigen Ansatzen auch dieTransformation der einzelnen Elemente zum Einsatz.
Eine weitere Forschungsgruppe rund um L. Gomes [PG13], [BG14], [FRG17]hat in Portugal eine Petri-Netz-Erweiterung entwickelt, die zur Beschreibungvon Hardware genutzt werden kann. Die sogenannten IOPT Netze (InputOutput Place Transition) sind eine Erweiterung der Stellen/Transitions-Netze. Dieser Netztyp wird von ihnen auch verwendet, um Quellcode in C[CPM+11] zu erstellen, oder um aus Anwendungsfalldiagrammen (use casediagram) Petri-Netze zu erzeugen und diese dann fur den Hardwareentwurfzu verwenden. Bei letzterem sind bisher die Anforderungen spezifiziert wor-den [BBG14]. Die IOPT Netze [GBC+07] enthalten folgende Erweiterungen:Eingangs- und Ausgangssignale an Transitionen, Wachter an Transitionenund Ausgangs-Stellen Auswertungen. Zur Speicherung und Verarbeitungder Petri-Netze kommt hier das XML-basierte Format PNML (Petri NetMarkup Language) zum Einsatz [BCH+03]. Die fur IOPT-Netze entwickeltenEditoren sind vor allem Web-Tools, damit mehrere Personen an einem Netzoder einem Projekt zusammen arbeiten konnen. Moglich macht dies AJAX[Lei06], welches in modernen Browsern integriert ist und die Funktionalitatbietet XML-Dateien zu bearbeiten und SVG-Dateien [Ada02] dynamischzu erstellen. Ebenfalls findet hier eine Umsetzung von Struktur in Strukturstatt.
Alle Eingangskanten einer Transition werden als Eingangsevents aufgefasstund wenn alle Events gleichzeitig eintreten, dann findet ein Ausgangseventstatt, welches ein Ausgangssignal erzeugt. Dies entspricht dem feuern einerTransition [PMR+12]. Dabei sind zwei unterschiedliche Ausgangssignale zuberucksichtigen. Zum einen ist es das Setzen einer Marke in einer Stelleim Petri-Netz. Zum anderen konnen damit Ausgangssignale des Netzesangesprochen werden. Um Konflikte zwischen Transitionen zu vermeidenwerden lesende Kanten (read arcs) ins Netz integriert, die beim Feuern einerTransition keine Marke aus der Stelle entfernen. Alle aktiven Transitionenfeuern bei den IOPT-Netzen zeitgleich, weswegen die vorher erwahntenlesenden Kanten eine wichtige Rolle spielen, da sonst Konflikte nicht gelostwerden konnen.
Einen etwas anderen Ansatz nutzen [YKS+96] und [Yak98], indem siedigitale Schaltungselemente in Petri-Netze umwandeln und diese dann alsModule fur die Rucktransformation von Petri-Netzen in digitale Schaltungen
38 2 Grundlagen und Stand der Technik
verwenden. Zusatzlich kommen die bisher erwahnten Ansatze der Transfor-mation von Struktur in Struktur zum Einsatz. Die Ausrichtung der Arbeitengeht dabei stark auf asynchrone Schaltungen ein, alle anderen Schaltungs-typen werden als Sonderfalle der asynchronen Schaltungen betrachtet. DiePetri-Netze werden von ihnen zur Modellierung, Analyse und Synthese inSchaltungen verwendet. Teile der Analysemethoden sind in diesen Arbeitenvon [Pat72] und den folgenden Arbeiten abgeleitet. Diese Methoden kommenteilweise auch in dieser Arbeit als Grundlage zum Einsatz, indem Sie umhemmende Kanten und zeitbehaftete Transitionen erweitert werden. VieleArbeiten ab dem Jahre 2000 beruhen auf den Methoden, die in [YK98]eingefuhrt wurden und somit bildet dieses Buch den bis heute noch aktuellenStand der Technik, im Bereich der Transformation von Petri-Netz-Elementenin Komponenten von digitalen Schaltungen.
Das Tool VERISYN [BSK+05] dient dazu eine Verilog-Beschreibung einerasynchronen Schaltung in ein Petri-Netz zu transformieren. Die so erzeugtenPetri-Netze werden von PN2DCS [Sha03] in einen Kontroll- und Daten-pfad aufgeteilt und diese werden auf der Basis von David-Cells [Dav69] inSchaltungen uberfuhrt. Zur Verbesserung der Schaltung wird OPTIMIST[SBY03], [SY05] verwendet, welches die Schaltungen unter anderem aufRegister-Transfer-Ebene optimieren kann. Zum Abschluss kommt ConfRes[MBK+03], [Mad03] zur Anwendung, um Konflikte in der erzeugten Schal-tung zu erkennen und zu beheben.Ein weiteres Tool namens Petrify [CKK+97] setzt bei der Synthese auf
Petri-Netze, Zustandsdiagramme und Transitions-Systeme (transition sys-tems) [CKL+95], welche spezielle Zustandsgraphen sind. Dabei bietet dasTool die Option textuell kodierte Petri-Netze uber eine Kette von Werk-zeugen zu analysieren und zu transformieren. Das Tool nutzt ebenfalls dieUberfuhrung von Struktur in Struktur.
Zusatzlich existieren diverse Tools und Forschungsarbeiten, die Petri-Netze,zum Teil mit großen Einschrankungen, nutzen, um asynchrone Schaltungen zuuntersuchen und analysieren. Hier kommen zumeist High-Level Petri-Netzemit Erweiterungen zum Einsatz. Beispielhaft sei hier eine Forschungsgruppeaus Frankreich [AP08] aufgefuhrt, welche VHDL-Beschreibungen in Interpre-ted and Timed Petri Nets (ITPN ) [BE96] transformiert, um die asynchronenSchaltungen zu verifizieren und zu analysieren. Die Arbeiten behandeln dieTransformation von Schaltungen in Petri-Netze, nicht aber die Uberfuhrungder Petri-Netze in digitale Schaltungen.Zur Abbildung von Hierarchien existieren bei Petri-Netzen die verschie-
densten Ansatze, welche im folgenden kurz aufgefuhrt werden. Die Vor- undNachteile sind im Abschnitt zu Subnetzen im Kapitel der Digital Circuit
2.5 Stand der Forschung 39
Petri Nets aufgefuhrt. Grundsatzliche Bedingungen an Subnetze sind imZusammenhang mit der Modellierung von digitalen Schaltungen als Petri-Netze das Verschachteln mehrere Subnetze ineinander, sowie die Moglichkeitmehrere ein- und ausgehende Kanten fur ein Subnetz zu erzeugen.
Die in [Lak95] erwahnten Super-Stellen (superplaces) sind eine Erweiterungder Subnetze der Hierarchical Coloured Petri Nets (HCPN) [Jen92]. Siedienen in den dort eingefuhrten Modular Coloured Petri Nets (MCPN) zurHierarchiebildung der Netze, wobei jede Stelle als Super-Stelle angesehen wirdund die Subnetze der Verfeinerung dieses Elements dienen. Ebenfalls sindTransitionen durch die sogenannten Super-Transitionen (supertransitions)ersetzt worden, die das Verhalten von Transitionen verfeinert darstellenkonnen.In [Feh93] werden Building Blocks verwendet, um Hierarchien in Petri-
Netzen abbilden zu konnen. Diese sind eine Erweiterung der in [HJS91]vorgestellten hierarchischen Petri-Netze. Die Building Blocks dienen dazu,das Modell auf verschiedenen Ebenen der Abstraktion betrachten zu konnen.Weiterhin soll die Moglichkeit gegeben werden, einzelne Elemente des Netzesim Detail anzuschauen. Der letzte Punkt der Verwendung der Blocke ist dieWiederverwendung des Blocks im gleichen Netz.
In [Kar08] werden die Macroplaces genauer untersucht und deren Anwend-barkeit als Subnetze analysiert. Dabei sind vier generelle Anwendungsfalleherausgestellt, welche Stellen in Reihe oder Parallel sind. Außerdem sindsogenannte Two-pole blocks, die eine Generalisierung von State MachineNets [BA12] sind, und die P-blocks [Kar07] mogliche Subnetzkandidaten.Zusatzlich existieren noch weitere Spezialfalle, die ebenfalls als Subnetzmit Macroplaces abgebildet werden konnen. Eine generelle Abbildung vonSubnetzen mit beliebig vielen Ein- und Ausgangen ist nicht moglich.
Als Beispiel fur Subnetze mit einem Ein- und Ausgang sei hier die Arbeit[WA99] und [BA13] erwahnt, in der Subnetze in mehreren Stufen zusammen-gefasst werden konnen. Die erste Stufe entspricht dabei dem Zusammenfassenvon Elementen, so dass nur eine eingehende und eine ausgehende Kantebeim Subnetz existiert. Dabei sind die Subnetze auf Stellen begrenzt. Diezweite Stufe fasst mehrere dieser parallelen Subnetze zusammen, wenn diesedie gleiche Start- und Ziel-Transition besitzen.Der hier vorgestellte Stand der Technik wird in den einzelnen Kapiteln
und im Resumee diskutiert und auf seine Verwendbarkeit hin analysiert.Als Vorgriff sei hier erwahnt, dass ein eigener Petri-Netz-Typ eingefuhrtwird, der im folgenden seine Definition erhalt. Der Unterschied der in denerwahnten Veroffentlichungen verwendeten Petri-Netze zu denen in dieserArbeit besteht vor allem darin, dass hier keine High-Level-Netze eingesetzt
40 2 Grundlagen und Stand der Technik
werden, um den Netztyp moglichst wenig komplex und universell einsetzbarzu halten.
3 Digital Circuit Petri Nets
Fur die spatere Transformation reicht die im letzten Kapitel gegebene De-finition der Petri-Netze nicht aus, um digitale Schaltungen beschreiben zukonnen. Darum wird im weiteren Verlauf dieses Kapitels eine Erweiterungder bisherigen Standard-Petri-Netze durchgefuhrt und abschließend eineDefinition und Eigenschaften des neuen Netz-Typs gegeben.
3.1 Erweiterungen
Die Standard Petri-Netze werden um Ein- und Ausgangsstellen (input/out-put places), Substellen (subplaces), Netzverbindungen (netconnector) undSubtransitionen (subtransitions) erweitert. Abbildung 3.1 zeigt ein Netzmit diesen Erweiterungen, das im Folgenden als Digital Circuit Petri Net(DCPN) definiert wird. Die Netzverbinder sind in Abbildung 3.3 (b) und 3.4(b) zu sehen.
P0
P1
P2
P3
P4
P5
P6
P7
P8
P9
P10
P11
P: 5
T0
P: 1
T1
P: 2
T2
P: 1
T3
P: 3
T4
P: 8
T5
P: 1
T6
Psub0
Psub1Tsub0
Tsub1
Abbildung 3.1: Digital Circuit Petri Net mit allen Erweiterungen zur Beschrei-bung von digitalen Schaltungen. Hierzu zahlen die Eingangs- und Ausgangsstellen,die Substellen und die Subtransitionen.
© Springer Fachmedien Wiesbaden GmbH, ein Teil von Springer Nature 2019C. Brandau, Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets, https://doi.org/10.1007/978-3-658-25244-1_3
42 3 Digital Circuit Petri Nets
3.1.1 Ein- und Ausgangsstellen
Zur Darstellung von digitalen Schaltungen mussen Ein- und Ausgange defi-niert werden, die die externe Anbindung der digitalen Schaltung realisieren.Hierzu sind den bisherigen Stellen zwei neue Typen hinzugefugt worden.Dabei handelt es sich zum einen um Eingangsstellen, die als schwarzer Kreismit gruner (dunkelgrauer) Fullung dargestellt werden und zum anderenum Ausgangsstellen, die ebenfalls als schwarzer Kreis, jedoch mit gelber(hellgrauer9 Fullung darzustellen sind. Weiterhin besteht die Moglichkeiteiner grunen Fullung bei Eingangsstellen und einer gelben Fullung bei Aus-gangsstellen, wie sie bei bisherigen Veroffentlichungen und Programmenebenfalls zum Einsatz kommt.Bei der Betrachtung von Petri-Netzen, bei der eine festgelegte und nicht
veranderbare Startmarkierung existiert, verhalten sich die neuen Stellentypengenau so wie die bisher definierte Stelle aus den Grundlagen. Soll jedocheine zeitliche Veranderung an den Eingangen, also den Eingangsstellen,simuliert werden, so muss zum jeweiligen Zeitpunkt der Anderung eineAnpassung des Petri-Netzes erfolgen. Abbildung 3.2 zeigt in (a) ein Netzbei dem Transition T0 aktiviert ist. Nach 5ns wird die Markierung an denEingangen geandert, indem in P0 die Marke entfernt wird. Dadurch ist T0
nicht weiter aktiv. Die Eingangsstellen besitzen also die Eigenschaft, dass dieMarkenanzahl jederzeit verandert werden kann, ohne dass eine Transitiondazu schalten muss. Dies konnte als Petri-Netz abgebildet werden, wurdeaber die modellierten Netze nur zusatzlich um Elemente anreichern. DieWahl diese Stelle ins Netz zu integrieren, erfolgt aus der Uberlegung, dassbei digitalen Schaltungen ebenfalls die Eingangssignale jederzeit geandertwerden konnen.
P0
P1
P2
T: 10.0ns
T0
(a)
P0
P1
P2
T: 10.0ns
T0
(b)
Abbildung 3.2: (a) zeigt ein DCPN, bei dem die beiden Eingangsstellen P0, P1
jeweils mit einer Marke belegt sind. Nach 5ns wird der Eingang P1 geandert unddie Marke aus der Stelle entfernt. Hierdurch ist T0 nicht mehr schaltfahig.
3.1 Erweiterungen 43
Die Ein- und Ausgangsstellen sind weiterhin notwendig um eine Port-Listeanzulegen und der spater erzeugten Schaltung eine Verbindung zu anderenSystemteilen zu ermoglichen. Die neuen Stellentypen konnen direkt in eineSchnittstellen-Beschreibung uberfuhrt werden.DCPNs besitzen wie die Bedingungs-Ereignis Netze eine maximale Mar-
kenanzahl von Eins pro Stelle. Daraus folgt, dass die Kanten alle ein Gewichtvon Eins besitzen, da Sie sonst die gleiche Funktion wie eine hemmendeKante aufweisen.
3.1.2 Subnetze
Zur Ubersichtlichkeit von Petri-Netzen ist eine Aufteilung in Subnetzewunschenswert. Dabei ist es notwendig, dass Subnetze mehrere Ein- undAusgangskanten besitzen konnen, um innerhalb eines Subnetzes mehrereElemente nach außen zu verbinden und diese von dort beschalten zu konnen.Weiterhin ist es in der Hardwarebeschreibung ublich, Systemkomponenteneinzeln zu modellieren und diese dann in einem Gesamtsystem zu verwenden.Daher bietet es sich an, bei den Petri-Netzen eine ahnliche Struktur zuverwenden, außerdem konnen durch das Bilden von Subnetzen die Zustands-raumexplosionen fur große Netze verhindert werden. Die Vermeidung einersolchen Explosion erfolgt dabei durch das Aufstellen der Zustandsraume proSubnetz, wobei alle Verbindungen nach außen als Ein- oder Ausgange deszu betrachtenden Subnetzes aufzufassen sind.Alternative Subnetzdefinitionen anderer Petri-Netz-Typen haben meist
das Problem, dass dadurch die Ubersichtlichkeit des Netzes leidet. TypischeVertreter dieser Netzarten sind [HB03], [BDK01], [Feh93] und [Rei09], wiesie großtenteils im Stand der Technik eingefuhrt wurden. Hier sind dieSubnetze entweder komplett im Hauptnetz sichtbar, oder es existiert nurdie Moglichkeit jeweils einer Ein- und Ausgangskante, was fur die spatereErzeugung von digitalen Schaltungen nicht ausreichend ist.Einen interessanten Ansatz hingegen bietet C. Lakos [Lak95], [Lak01],
indem er Super-Stellen (superplaces) und Super-Transitionen (supertransi-tions) einfuhrt. Diese reprasentieren jeweils ein eigenes Petri-Netz in einerStelle oder einer Transition mit beliebig vielen Ein- und Ausgangen. DieUnterscheidbarkeit zwischen Stellen und Super-Stellen ist nicht ohne weiteresgegeben und jede Stelle kann als Super-Stelle aufgefasst werden. Die Super-Stellen und -Transitionen sind dabei an Klassen aus der objektorientiertenProgrammierung angelehnt. Hierbei tritt das beschriebene Problem auf,dass Hauptelemente und Subnetze als gleiches Element aufgefasst werden.Eine klare Trennung der Subnetze zu Hauptelementen ist wunschenswert,
44 3 Digital Circuit Petri Nets
da so beim Modellieren des Netzes und bei der spateren Betrachtung undAnalyse direkte Unterschiede aufgezeigt werden. Die Subnetze sollen nichtder Verfeinerung eines existierenden Elements dienen, sondern eine eigeneFunktionalitat abbilden.
Fur diese Arbeit reichen die bisher existierenden Subnetztypen nicht aus,weshalb hier zwei eigene Typen eingefuhrt werden. Dies sind die Substel-len (subplaces) und Subtransitionen (subtransitions), die in den nachstenAbschnitten naher erlautert werden. Die Erweiterung um eigene Elementeist notwendig, da eine klare Abhebung gegenuber Stellen und Transitionenerfolgen muss, wodurch klar ersichtlich ist, welche Elemente Zusatzinforma-tionen uber das Netz enthalten. Weiterhin ist bei den sonstigen bisherigenDefinitionen von Hierarchien in Petri-Netzen immer nur ein Ein- und Aus-gang des Subnetzes moglich, was, wie schon erwahnt, die Modellierung vonSchaltungen stark eingrenzt.Zur Darstellung der Verbindungen eines Subnetzes nach außen werden
als neues Element noch Netzverbindungen eingefuhrt. Diese Verbindungenerfullen je nach Subnetztyp eine unterschiedliche Aufgabe und werden imFolgenden naher betrachtet.
Substellen
Substellen dienen zur Darstellung eines Subnetzes, dessen Kanten nur mitTransitionen und Subtransitionen verbunden sein durfen. Daher ist dasgrundlegende Verhalten dieses Netzelements dem einer Stelle gleichzuset-zen, was bedeutet, dass Kanten keine Substellen oder Stellen miteinanderverbinden durfen. Innerhalb der Substelle kann eine feingranularere Model-lierung des Netzes erfolgen, als wenn eine Stelle an der Position der Substellevorhanden ist.
Das Symbol im Petri-Netz entspricht zwei ineinander liegenden Kreisen.Fur jede ein- und ausgehende Kante der Substelle wird eine Netzverbindungim Subnetz dargestellt. Dieser Netzverbinder erhalt den Namen des Elements,mit dem es außerhalb der Substelle verbunden ist. Abbildung 3.3 zeigtein Petri-Netz mit Substelle Psub0 (a) und das dazu passende Subnetz inder Substelle (b). Das Symbol fur den Netzverbinder in Substellen ist einRechteck, in das je nachdem ob eine eingehende (T0, T1) oder ausgehende(T2, T3) Kante vorliegt ein angedeuteter Pfeil auf einer Seite integriert ist.Die Kante markiert das Element somit als Netzverbinder, kann aber vonjeder Seite aus mit anderen Elementen verbunden werden.
Substellen konnen weitere Subnetze enthalten. Dabei besteht die Moglich-keit beide Subnetztypen im Netz zu integrieren. Ein Beispiel hierzu ist
3.1 Erweiterungen 45
P: 2
T0
P: 6
T1
P: 1
T2
P: 9
T3
Psub0
(a)
P0
P1
P2 P3
P: 1
T4
P: 1
T5
T: 1.0ns
T6 Psub1
T0
T1
T2
T3
(b)
Abbildung 3.3: Abbildung (a) zeigt ein DCPN mit vier Transitionen und Kantenzu einer Substelle Psub0. (b) zeigt das in Psub0 liegende Subnetz. Die Verbindungennach außen sind uber die Netzverbinder T0 bis T3 am rechten und linken Randrealisiert und symbolisieren die verbundenen Transitionen des Hauptnetzes. Hierist zusatzlich zu sehen, dass Subnetze weitere Substellen (Psub1) enthalten konnen.
das Subnetz in Abbildung 3.4 (b), wo im Subnetz jeweils Substellen undSubtransitionen auftreten. Namen fur Elemente sollten innerhalb eines Sub-netzes eindeutig sein. In unterschiedlichen Subnetzen durfen gleiche Namenauftreten, da die Netze bei der Analyse einzeln betrachtet werden.
Subtransitionen
Als weiterer Subnetztyp sind die Petri-Netze fur diese Arbeit um Subtransi-tionen erweitert worden. Ihre Modellierung in einem Netz ist an das einerTransition angelehnt. Kanten zwischen Subtransitionen und Transitionensind daher nicht erlaubt, sondern nur Verbindungen von und zu Substellenoder Stellen.Die Darstellung erfolgt als unausgefulltes Rechteck, das ein zusatzliches
kleineres Rechteck beinhaltet. In Abbildung 3.4 (a) ist ein solches Petri-Netzmit Subtransition Tsub0 zu sehen. Das in Tsub0 liegende Subnetz ist auf derrechten Seite in (b) zu sehen. In Subtransitionen werden außerhalb liegendeund mit dem Subnetz verbundene Elemente als geschlossene Halbkreisedargestellt. Fur diese gilt ebenfalls die Ausrichtung je nachdem ob von außeneine ein- oder ausgehende Kante anliegt, wie es auch bei den Netzverbindernder Substellen ist.Generell reicht ein Subnetztyp zur Erzeugung einer Hierarchie im Petri-
Netz vollkommen aus. Da beide genannten Optionen bestehen, sind hier auchbeide Ansatze vorgestellt worden. Im spateren Verlauf der Arbeit kommenvor allem die Subtransitionen zum Einsatz, da diese von der Modellierung ge-
46 3 Digital Circuit Petri Nets
P0
P1
P2
P3
P4
Tsub0
(a)
P5
P6 P7
P: 1
T0
P: 1
T1
P: 1
T2
P: 1
T3
P: 1
T4
Psub0
Psub1
Tsub1 Tsub2 Tsub3
P0
P1
P2
P3
P4
(b)
Abbildung 3.4: (a) zeigt ein DCPN mit einer Subtransition Tsub0. In (b) ist dasin Tsub0 liegende Subnetz zu sehen. Ebenfalls wird gezeigt, dass Substellen undSubtransitionen in Subnetzen vorhanden sein konnen.
nau so zu verwenden sind wie das Hauptnetz. Der Grund fur das beibehaltenvon beiden Elementen ist eine Uberlegung fur die spatere Implementierung.In dieser existiert die Moglichkeit modellierte DCPN in einer Funktions-bibliothek abzuspeichern, um sie dann in weiteren DCPN verwenden zukonnen. Diese Funktionselemente werden immer als Subtransition darge-stellt. Um dem Designer eines Netzes die Moglichkeit zu geben, seine imNetz selbst bestimmte Hierarchie abhangig von der jeweiligen Situation undFunktionsweise der Schnittstelle zu machen, sind die Substellen ebenfallsimplementiert worden. Der Designer ist nicht darauf festgelegt Substellen zurHierarchiebildung zu verwenden, kann damit aber die Ubersicht erheblichverbessern, da dann Funktionselemente und eigene Hierarchiebildungen klarvoneinander abgegrenzt sind.
3.2 Definition
Die in Kapitel 2.1 erstellte Definition der Petri-Netze kann fur die Definitionder Digital Circuit Petri Nets als Grundlage verwendet werden. Durch dieneu eingefuhrten Elemente existieren nun naturlich mehr Moglichkeitendiese untereinander mittels Kanten zu verbinden. Als erstes werden die neueingefuhrten Elemente in den Mengen der Netzverbinder N , Substellen Psub
und Subtransitionen Tsub der Definition hinzugefugt. Die Kanten werdenzur Flussrelation F zusammengefasst, in der alle Verbindungen in einerAbbildung existieren. Alle Eigenschaften, wie beispielsweise der Prioritat
3.2 Definition 47
von zeitlosen Transitionen, werden im jeweiligen Element hinterlegt. Darausergibt sich die Definition fur das DCPN:
PN = (P, T, Psub, Tsub, N,Ncon,P, SW,F,H,M0) (3.1)
P = {p0, . . . , p(|P |−1)} : Menge der Stellen
T = {t0, . . . , t(|T |−1)} : Menge der Transitionen
Psub = {psub0, . . . , psub(|Psub|−1)} : Menge der Substellen
Tsub = {tsub0, . . . , tsub(|Tsub|−1)} : Menge der Subtransitionen
N = {n0, . . . , n(|N |−1)} : Menge der Netzverbinder
P = {pr0, . . . , pr(|T |−1)} : Prioritaten
SW = {sw0, . . . , sw(|T |−1)} : Schaltzeiten
Ncon : Subnetz-Vebindungen
F : Flussrelation der Kanten
H : Flussrelation hemmende Kanten
M0 = {m0, . . . ,m(|P |−1)} : Startmarkierung
Im folgenden wird auf alle Anpassungen und Anderungen der Definitioneingegangen. Die Menge der Standard-Stellen Pstd aus der Definition 2.2wird um die Elemente der neu hinzugekommenen Eingangsstellen Pin und dieAusgangsstellen Pout erweitert. Pin und Pout durfen dabei nur im Hauptnetzvorkommen und niemals in Subnetzen.
P = Pstd ∪ Pin ∪ Pout (3.2)
Die Menge der Transitionen T waren nach bisheriger Definition in Timm
und Ttime unterteilt. An dieser Menge andert sich nichts gegenuber derbisherigen Definition:
T = Timm ∪ Ttime (3.3)
Die Prioritaten P und die Schaltzeiten SW der Transitionen sind in dieDefinition des Petri-Netzes mit aufgenommen worden.Dabei beschreibt Pdie Prioritat aller Transitionen und pri die Prioritat der Transition ti. Beizeitlosen muss diese positiv sein und bei zeitbehafteten Transitionen ist dieseimmer Null. Die Schaltzeit einer Transition ist bei allen zeitlosen TransitionenNull. Alle anderen Transitionen besitzen eine positive Schaltzeit.
Ebenfalls neu in dieser Definition hinzugekommen sind die beiden Mengender Substellen Psub und der Subtransitionen Tsub. Diese beinhalten jeweils
48 3 Digital Circuit Petri Nets
all jene Elemente, die Subnetze im Petri-Netz darstellen. Ebenfalls neuhinzugekommen ist die Menge der Netzverbinder N , die in Subnetzen jeweilsdie von außen verbundenen Elemente symbolisiert. Da zwei Typen von Netz-verbindern auftreten konnen, ist die Menge aufgeteilt in die Netzverbinderder Substellen NPsub
und der Subtransitionen NTsub:
N = NPsub∪NTsub
(3.4)
Alle Netzverbinder haben eine Verbindung zum hierarchisch hoher liegendenNetz, welche durch die Abbildung in Ncon erfolgt. Dabei existiert fur jedenNetzverbinder eine ein- oder ausgehende Verbindung. Die Unterscheidung,mit welchem Element verbunden werden kann, erfolgt durch den Typ desSubnetzes (Substelle, Subtransition). Daraus ergibt sich die folgende Ab-bildung der Zugehorigkeiten fur Substellen NconPsub
und SubtransitionenNconTsub
:
NconPsub⊆ (TN ×NPsub
) ∪ (NPsub× TN ) , mit TN = T ∪ Tsub
NconTsub⊆ (PN ×NTsub
) ∪ (PN ×NTsub) , mit PN = P ∪ Psub
Ncon = NconPsub∪NconTsub
(3.5)
Dies bedeutet, dass jeder Netzverbinder eine Zugehorigkeit zu einem anderenjeweils passenden Element des Petri-Netzes besitzen muss, um dieses imSubnetz zu reprasentieren. Die Flussrelation zwischen den einzelnen Elemen-ten des Petri-Netzes wird hier als nachstes definiert, indem vier Teilflusseerzeugt und am Ende zusammengefasst werden. Dies beschreibt alle Kanten,die im Netz vorhanden sind:
Tall = T ∪ Tsub ∪NPsub
Pall = P ∪ Psub ∪NTsub
F ⊆ (Tall × Pall) ∪ (Pall × Tall) (3.6)
Bei der Definition beschreibt FP die Kanten von und zu Stellen, FPsubdie
Kanten von und zu Substellen und FNTsubund FNPsub
die Verbindungenvon und zu Netzverbindern. Zusammengefasst werden Sie zur FlussrelationF in Gleichung 3.6.
Die hemmenden Kanten sind in der Abbildung H zusammengefasst. Dabeienden Kanten immer in einer Transition. Starten konnen sie bei Stellen P ,Substellen Psub oder Netzverbindern in Subtransitionen NTsub
.
H ⊆ (P × T ) ∪ (Psub × T ) ∪ (NTsub× T ) (3.7)
3.3 Eigenschaften 49
An der Definition der Startmarkierung andert sich gegenuber der Definitionin Gleichung 2.1 nichts, da diese wie bisher angibt, wie viele Marken inwelcher Stelle beim Erzeugen des Netzes existieren. Das heißt Ein- undAusgange konnen bei der Initialisierung des Netzes mit Marken belegt sein.In dieser Definition kann maximal eine Marke pro Stelle existieren, wodurchdie Elemente der Menge M0 nur den Wert Null und Eins annehmen konnen.
3.3 Eigenschaften
Zur Transformation von modellierten DCPNs in digitale Schaltungen sindmehrere Schritte zu durchlaufen, die auf Eigenschaften eines solchen Netzeszuruckgreifen. Die benotigten Eigenschaften sind in diesem Abschnitt aufge-listet und werden spater im Kapitel 4 zur Transformation wieder aufgegriffenund angewandt.Fur die weiteren Eigenschaften und Strategien werden hier Begrifflich-
keiten und mathematische Definitionen fur Elemente eingefuhrt, um dieSchreibweise zu verkurzen und sie lesbarer zu gestalten. Als erstes erfolgteine Ersatzschreibweise der Kanten, die in ein Element hinein oder aus ihmheraus gehen. Zur einfacheren Beschreibung von Kanten wird hierfur dasZeichen (•) eingefuhrt. Dabei ist das Symbol bei eingehenden Kanten vorden Namen des Elements zu schreiben und bei ausgehenden Kanten dahinter.Dabei konnen die Kanten bei Stellen (•p, p•), Transitionen (•t, t•), Sub-stellen (•psub, psub•) und Subtransitionen (•tsub, tsub•) abgebildet werden.Weiterhin sind auch Netzverbindungen (•n, n•) mit der selben Schreibweisemit ein- oder ausgehenden Kanten zu beschreiben. Der • gilt fur alle Kantenaus F . Der • vor einem Knoten beschreibt somit den Vorbereich diesesElements und alle mit ihm verbundenen Knoten und dementsprechend alleausgehenden Kanten sind der Nachbereich.Hemmende Kanten konnen ebenfalls auf diese Art dargestellt werden,
wobei darauf zu achten ist, dass das Symbol ◦ ein unausgefullter Kreis ist.Dies gilt nur fur Transitionen und eingehende Kanten (◦t) aus der Menge H.
Eigenschaft 1 Vor- und Nachbereich
• Gegeben: Element x: x ∈ P ∪ T ∪ Psub ∪ Tsub ∪N , dann gilt
• Vorbereich von x: •x = {y| (y, x) ∈ F}• Nachbereich von x: x• = {y| (x, y) ∈ F}• Hemmende Kante in t: ◦t = {y| (y, t) ∈ H}, t ∈ T
50 3 Digital Circuit Petri Nets
Fur die Anwendung verschiedener Eigenschaften eines DCPN sind abhangigvon einer MarkierungMj alle aktivierten Transitionen eines Netzes zu bestim-men, wobei auch alle Transitionen innerhalb von Subnetzen zu berucksichtigensind. Aktivierte Transitionen sind alle Transitionen die innerhalb eines ge-samten DCPN feuern konnen. Um die Markenanzahl der Stelle p aus derMarkierung Mi zu erhalten, kann als Kurzschreibweise Mi(p) verwendet wer-den. Die Markierung einer Stelle aus der Startmarkierung M0(p) = mp.ImFolgenden meint der Begriff alle Netze, das Hauptnetz PN und alle Sub-netze Psub und Tsub, die explizit im Hauptnetz integriert sind. AktivierteTransitionen durfen nur dann feuern, wenn sie der Schaltreihenfolge nachdran sind. Aktivierte Transitionen werden durch eine spitze Klammer nachdem Namen der Transition t〉 kenntlich gemacht. Wenn die Transition tunter einer Markierung M aktiviert ist, dann kann dies als M |t〉 angegebenwerden.
Eigenschaft 2 Transitionsaktivierung
• Transition t ∈ T aktiviert, wenn∀p ∈ •t : M(p) = 1 und∀p ∈ t• : M(p) = 0 und∀p ∈ ◦t : M(p) = 0
• Aktivierte Transition t unter der Markierung M : M |t〉• Alle aktivierten Transitionen: T 〉
Die Schaltreihenfolge bei DCPNs entspricht den in den Grundlagen gege-benen Bedingungen. Transitionen schalten immer sequentiell und niemalsparallel. Zuerst schalten alle aktivierten zeitlosen Transitionen aus Timm,wobei immer die Transition mit der hochsten Prioritat feuern kann. Ist keinezeitlose Transition mehr schaltbereit, konnen die aktivierten zeitbehaftetenTransitionen aus Ttime feuern. Hierzu wird bei allen aktivierten t ∈ Ttime diekurzeste aller Schaltzeiten abgezogen und dann die Transition mit ebendieserkurzesten Schaltzeit gefeuert. Bei mehreren gleichzeitig schaltfahigen Transi-tionen ist per Zufall zu entscheiden, welche feuert. Dabei ist auf moglicheFehlerquellen zu achten, da je nach zufalliger Schaltfolge innerhalb des Netzesunterschiedliche Belegungen an den Ausgangen auftreten konnen. Die in dernachstehenden Eigenschaft angegebenen Regeln zur Schaltreihenfolge wer-den der Reihe nach betrachtet und beim ersten Auffinden einer aktiviertenTransition, feuert diese, sofern nur eine Transition in dem Schritt gefundenwurde. Sonst entscheidet der Zufall, welche Transition feuert.
3.3 Eigenschaften 51
Bei der Schaltreihenfolge kommt zum einen die Prioritat einer TransitionPt zum Einsatz, die die Prioritat einer Transition t liefert. Diese lieferteinen positiven Werte fur t ∈ Timm und bei zeitbehafteten Transitionennach Definition den Wert Null zuruck. Zum anderen wird die Schaltzeit SWt
eingesetzt, um die Schaltzeit der Transition t zu erhalten.
Eigenschaft 3 Schaltreihenfolge
• Wenn keine Transition aktiviert ist, dannT 〉 = ∅ ⇒ DCPN ist tot, sonst
• Zeitlose Transition t schaltet, wennt ∈ Timm ∧ t ∈ T 〉 und Pt maximale Prioritat in T 〉, sonst
• Zeitbehaftete Transition t schaltet, wennt ∈ Ttime ∧ t ∈ T 〉 und SWt minimale Schaltzeit in T 〉
Der Markierungsubergang erfolgt wie bei den in den Grundlagen vorge-stellten Netzen. Die Markierung M fuhrt durch das Schalten der Transitiont zur neuen Markierung M ′. Fur diesen UBergang durch das Schalten ei-ner Transition wird die Schreibweise M |t〉M ′ eingefuhrt. Hierzu wird ausallen Eingangsstellen eine Marke herausgenommen und alle Ausgangsstellenwerden mit einer Marke befullt. Der Spezialfall, das eine Transition eineeingehende und ausgehende Kante zu einer Stelle besitzt, hindert dieseTransition nicht am feuern, sondern lasst die Markenanzahl in dieser Stelleunverandert bei Eins.
Eigenschaft 4 Markierungsubergang
• Markierungsubergang: M |t〉M ′, dann gilt
• M ′(p) =
⎧⎪⎨⎪⎩
M(p)− 1 wenn (p ∈ •t) ∧ (p /∈ t•)M(p) + 1 wenn (p ∈ t•) ∧ (p /∈ •t) ∧ (M(p) = 0)
M(p) sonst
• Wenn t ∈ Ttime, dann ziehe SWt bei allen aktivierten Transitionen ab
Eine weitere Eigenschaft des DCPN ist, dass es immer beschrankt ist.Beschranktheit bedeutet, dass die Markenanzahl in einer Stelle kleiner un-endlich ist. Da jede Stelle eine maximale Kapazitat von einer Marke besitzt,ist die Beschranktheit hiermit gesichert. Da jede Stelle den Stromfluss, bzw.einen logischen High Pegel, im System modelliert, ist eine Markenanzahl in
52 3 Digital Circuit Petri Nets
den Stellen großer Eins nicht sinnvoll und in DCPN verboten. In spateren Er-weiterungen kann dies naturlich noch angepasst werden, wenn beispielsweiseBussysteme oder ahnliches modelliert werden sollen.
Eigenschaft 5 Beschranktheit
• Generelle Beschranktheit:Fur alle p ∈ P gilt: Es gibt ein n ∈ N, so dass M(p) ≤ n
• 1-Beschranktheit:Fur alle p ∈ P gilt: M(p) ≤ 1
Weiterhin konnen Eigenschaften uber die Struktur eines DCPN beschrie-ben werden. Hier ist der Zusammenhang herauszuheben, der beschreibt,dass ein ungerichteter Weg von Element x zu y besteht, die Verbindungkann dabei aus normalen Kanten und hemmenden Kanten bestehen. Einefestere Bindung beschreibt der starke Zusammenhang, der vorliegt, wennein gerichteter Pfad von x nach y im DCPN besteht.
Eigenschaft 6 Zusammenhang
• Gegeben: Folge von Knoten:x0, x1, x2, . . . xn, n > 0, dann
• Zusammenhang von x und y:x = x0, y = xn, (xi, xi+1) ∈ F ∪ H oder (xi+1, xi) ∈ F ∪ H, fur
0 ≤ i ≤ n− 1
• Starker Zusammenhang von x und y:x = x0, y = xn, (xi, xi+1) ∈ F ∪H, fur 0 ≤ i ≤ n− 1
Quellen konnen in einem Petri-Netz entstehen, wenn Elemente ohne ein-gehende Kanten vorhanden sind. Dabei sind mogliche Quellen in DCPNTransitionen oder Eingangsstellen, da diese unter bestimmten Bedingungendauerhaft Marken in das Netz fließen lassen konnen. Hierbei ist Transition teine Quelle, wenn t keine eingehenden Kanten besitzt. Eine Eingangsstelle pist eine Quelle, wenn diese dauerhaft mit Marken befullt wird, sobald diesedurch das Schalten einer Transition entfernt wurden.
Eigenschaft 7 Quelle
• Transition als Quelle in t, wenn | • t| = 0 und ∀k ∈ ◦t : M(k) = 0
• Eingangsstelle als Quelle in p, solange p markiert ist
3.3 Eigenschaften 53
Weiterhin konnen auch Senken im DCPN entstehen, wenn Transitionenohne ausgehende Kanten im Netz existieren. Dabei entziehen diese Tran-sitionen dem Netz Marken mit jedem Schalten, wenn der Vorbereich derjeweiligen Transition nicht leer ist. Ausgangsstellen haben nicht die Wirkungeiner Senke im Netz, da die Marken aus diesen Stellen nicht entfernt werden,es sei denn eine schaltende Transition entzieht die Marke aus der Stelle.
Eigenschaft 8 Senke
• Transition als Senke in t, wenn |t • | = 0
Bei Transitionen t ist die Aufspaltung, auch Verzweigung genannt, einewichtige Eigenschaft, da hierdurch mehrere nebenlaufige Pfade eines Systemsaktiviert werden konnen. Hierzu besitzt t mehr als eine Ausgangskante underzeugt so zusatzliche Marken im Netz. Zur Synchronisation, auch Begegnunggenannt, muss eine Transition t mehrere Eingangskanten besitzen. Dies dientzur Zusammenfuhrung mehrerer nebenlaufiger Pfade.
Eigenschaft 9 Aufspaltung und Synchronisation
• Aufspaltung/Verzweigung in t: |t • | > 1
• Zusammenfuhrung/Synchronisation in t: | • t| > 1
Weiterhin kann die statische Konfliktfreiheit eines Petri-Netzes uberpruftwerden. Das Netz ist dabei statisch konfliktfrei, wenn von jeder Stelle pmaximal eine Kante abgeht, da dadurch kein Konflikt auftreten kann unddurch p stets eine Transition schalten kann. Dabei kann eine Stelle oder auchdas gesamte DCPN statisch konfliktfrei sein.
Eigenschaft 10 Statische Konfliktfreiheit
• Statische Konfliktfreiheit in einer Stelle p ∈ P , wenn |p • | ≤ 1
• Statische Konfliktfreiheit im DCPN, wenn ∀p ∈ P gilt |p • | ≤ 1
Wenn zwei Transitionen (ta, tb) bei einer gegebenen Markierung Munabhangig und hintereinander schalten konnen, dann wird dies als Ne-benlaufigkeit bezeichnet. Dies bedeutet die Folgemarkierung nach dem Schal-ten von ta und nachfolgendem Schalten von tb muss dieselbe Markierungwie die beim Schalten von tb und dann ta ergeben.
54 3 Digital Circuit Petri Nets
Eigenschaft 11 Nebenlaufigkeit
• Transition ta, tb sind nebenlaufig, wenn M |tatb〉 = M |tbta〉Die Eigenschaft der Konservativitat beschreibt das Erhalten der Mar-
kenanzahl innerhalb eines DCPN, wobei dies auf den Schaltvorgang einerTransition oder auf das gesamte DCPN angewendet werden kann. Somit mussbeim Schaltvorgang einer Transition die Anzahl der eingehenden Kantengleich der Anzahl der ausgehenden Kanten sein. Bei der Betrachtung desgesamten Netzes kann zwischen der Betrachtung jeder einzelnen Transitionoder der Gesamtheit aller Transitionen unterschieden werden. Bei einemkonservativen Netz der zweiten Methode mussen sich die Markenproduktionund der Markenkonsum durch Aufspaltung und Synchronisation aufheben.
Eigenschaft 12 Konservativitat
• Konservativitat in einer Transition t, wenn | • t| = |t • |• Konservativitat in jeder Transition, wenn ∀t ∈ T gilt: | • t| = |t • |• Gemittelte Konservativitat fur ∀t ∈ T , wenn
∑t∈T | • t| = ∑
t∈T |t • |Zusatzlich konnen DCPN die Eigenschaft einer freien Transitionswahl
(Free-Choice) besitzen. Dies bedeutet, dass von Stelle p ausgehende Kanten zumehreren Transitionen mit gleicher Prioritat oder gleicher Schaltzeit fuhren,wobei die jeweiligen Transitionen keine weiteren Eingangskanten besitzen.Gleiches gilt, wenn die Transitionen weitere Eingangskanten besitzen, welchedann mit einer Marke belegt sein mussen. Die Wahl der zu schaltendenTransition hangt somit nur von der Belegung der Stelle p ab und erfolgtzufallig, solange die Ausgangsstellen der Transition leer sind.
Eigenschaft 13 Free Choice
• Keine weiteren Kanten: p ∈ P ist Free-Choice, wenn•tj + •tk = p• mit tj , tk ∈ T mit j �= k
• Mit weiteren Kanten: p ∈ P ist Free-Choice, wenn•tj + •tk ∈ p• mit tj , tk ∈ T mit j �= k undfur alle pi ∈ (•tj ∪ •tk) ohne pi = •tk ∨ pi = •tj gilt, dass mpi = 1
Eine weitere Eigenschaft eines DCPN ist das Siphon. Dieses tritt im Netzauf, wenn bei einer Teilmenge der Stellen gilt, dass fur jede Stelle, die eineEingangskante besitzt, auch eine Ausgangskante von einer Transition dieserTeilmenge der Stellen existieren muss. Der Vor- und Nachbereich mehrerer
3.3 Eigenschaften 55
Elemente kann ebenfalls uber die in Eigenschaft 1 eingefuhrten • ausgedrucktwerden, was alle Elemente des jeweiligen Bereichs der Menge einschließt.
Eigenschaft 14 Siphon
• Q heißt Siphon, wenn Q ⊆ P , mit •Q ⊆ Q•• Ein Siphon ist echt, wenn Q �= ∅Ein DCPN besitzt eine Trap im Netz, wenn durch das Schalten von
beliebigen Transitionen immer mindestens eine Marke in der Stelle existiert.Durch die Eigenschaft des DCPN, dass jede Stelle nur genau eine Markefassen kann, muss also bei jeder schaltenden Transition eine Eingangs- undAusgangskante zur Stelle bestehen.
Eigenschaft 15 Trap
• R heißt Trap, wenn R ⊆ P , mit R• ⊆ •Q• Eine Trap ist echt, wenn R �= ∅
3.3.1 Erreichbarkeitsgraph
Fur die meisten Analysen ist der Erreichbarkeitsgraph RG (ReachabilityGraph) eines Petri-Netzes notwendig. Er bildet alle erreichbaren Markie-rungen ausgehend von der Initialmarkierung M0 ab. Zusatzlich sind dieMarkierungen uber gerichtete Kanten verbunden, welche die schaltendenTransitionen abbilden. Ein Verfolgen von Kanten von einer Markierung zueiner anderen wird als Schaltfolge SF bezeichnet.
Eigenschaft 16 Erreichbarkeitsgraph
• Markierung Mb ist von M0 erreichbar, wenn
SF = M0ti−→ Ma
tj−→ . . .tk−→ Mb = M0|t∗〉Mb mit t ∈ T
• Die Menge aller von M0 erreichbaren Markierungen bildet RG(M0):RG(M0) = {SF | ∀SF = M0|t∗〉, t ∈ T}
• RG = (M,E) mit Knoten M und Kanten E
Durch die Struktur der DCPN existieren zwei alternative Methoden diesenGraphen aufzustellen. Zum einen kann eine Hierarchieauflosung durchgefuhrtwerden, bei der alle Subnetze ins Hauptnetz zu integrieren sind. Dazu mussenin allen Subnetzen die Verbindungen des nachsthoheren Netzes und die
56 3 Digital Circuit Petri Nets
Netzverbinder aufgelost werden. Hierzu sind alle Elemente des Subnetzesin das nachsthohere Netz zu integrieren und die bisherigen Kanten imHauptnetz mit den bisherigen Elemente des Subnetzes zu verbinden, die imSubnetz vom jeweiligen Netzverbinder aus eine eingehende oder ausgehendeKante besessen haben.
P0
P1
P2
P3 P4
P5
P6
T: 1.0ns
T0
T: 2.0ns
T1
P: 1
T2
T: 1.0ns
T3
T: 0.5ns
T4
Psub0
Tsub0
(a)
P11
P: 1
T5
T: 1.0ns
T6P0
P1
P3
(b) Subtransition Tsub0
P7
P8
P9
P10
P: 6
T7
P: 3
T8T0
T1
T3
T2
(c) Substelle Psub0
Abbildung 3.5: (a) zeigt ein DCPN mit einer Substelle Psub0 und einer Sub-transition Tsub0 als Beispiel fur die Hierarchieauflosung zur Erstellung von Er-reichbarkeitsgraphen. Das Netz fur Psub0 ist in (b) und das fur Tsub0 ist in (c) zusehen.
Abbildung 3.5 zeigt in (a) ein Hauptnetz mit einer Subtransition Tsub0
und einer Substelle Psub0. Die jeweils modellierten Subnetze sind in (b) und(c) zu sehen. Die in Tsub0 existierenden Netzverbinder fur P0, P1 und P3 sindaufzulosen, indem alle Elemente von Tsub0 (T5, P11, T6) in das Hauptnetzubernommen werden. Danach sind die Kanten, die bisher uber Netzverbin-der im Subnetz verbunden waren, direkt mit den jeweiligen Elementen desHauptnetzes zu verbinden. Ebenso ist mit der Subtransition Psub0 zu ver-fahren. Abbildung 3.6 zeigt das komplett hierarchielose DCPN, fur welchesnun der Erreichbarkeitsgraph aufgestellt werden kann. Die Reihenfolge derAuflosung ist auf gleicher und verschiedenen Hierarchieebenen kommutativ.
Bei dieser Methode ist drauf zu achten, dass eine wie in Kapitel 2.1.4beschriebene Zustandsexplosion bei Petri-Netzen mit vielen Elementen auftre-ten kann, da jede einzelne Markierung, ausgehend von einer Initialmarkierung
3.3 Eigenschaften 57
M0, im Graphen abzubilden ist. Diese Methode des Erzeugens eines Erreich-barkeitsgraphen bietet sich also fur kleinere Netze an, da Sie durch die starkansteigende Anzahl an unterschiedlichen Markierungen mit zunehmenderElementanzahl große Mengen an Speicher zum Erzeugen und Verwaltenbenotigt.
Der Erreichbarkeitsgraph dient den meisten Analysen im spateren Verlaufdieser Arbeit und Teile der Transformation sind aus diesem abgeleitet. DasAufstellen des Graphen kann nur auf beschrankten Netzen durchgefuhrtwerden, da, wenn die Anzahl der Marken in einer Stelle gegen Unendlichtendiert, auch die Simulation des Petri-Netzes unendlich lang laufen muss,weil fur jede neue Markierung ein neuer Knoten und mindestens eine neueKante in RG erzeugt wird.
P0
P1
P2
P3 P4
P5
P6
P7 P8
P9 P10
P11
T: 1.0ns
T0
T: 2.0ns
T1
P: 1
T2
T: 1.0ns
T3
T: 0.5ns
T4
P: 2
T5
T: 1.0ns
T6
P: 6
T7
P: 3
T8
Abbildung 3.6: Das in Abbildung 3.5 vorgestellte DCPN nach der Hierarchie-auflosung.
Der Graph RG besteht aus allen erreichbaren MarkierungenM0, . . . ,Mj , der sogenannten Erreichbarkeitsmenge E, und Kanten A zwi-schen den Markierungsknoten. Diese sind entweder in den Knoten eingehendeoder ausgehende Kanten. Zur einfacheren Darstellung kommen hier analogzur Verwendung der Kanten bei DCPN-Elementen, die Kurzschreibweisen•M und M• zum Einsatz.
Abbildung 3.7 zeigt den Erreichbarkeitsgraphen fur das in Abbildung 3.6gezeigte hierarchielose Netz. Dabei ist der Graph mit seinen Markierungskno-ten und Kanten, also den schaltenden Transitionen, zu sehen und in Tabelle3.1 sind die Markenbelegungen der einzelnen erreichbaren Markierungenangezeigt.
58 3 Digital Circuit Petri Nets
M0 M1 M2 M3 M4 M5 M6
T5 T6 T4 T1 T8 T3
Abbildung 3.7: Zeigt den Erreichbarkeitsgraph fur Netz aus Abbildung 3.6 mitjeweils einer Marke in den Eingangen P0 und P2 als Initialmarkierung M0.
Tabelle 3.1: Die Tabelle mit allen Markierungen fur den Erreichbarkeitsgraph ausAbbildung 3.7. Dabei sind die Eingangsstellen P0 bis P2 und die AusgangsstellenP4 bis P6.
P0 P1 P2 P10 P11 P3 P7 P8 P9 P4 P5 P6
M0 1 0 1 0 0 0 0 0 0 0 0 0
M1 0 0 1 0 1 0 0 0 0 0 0 0
M2 0 0 1 0 0 1 0 0 0 0 0 0
M3 0 0 1 0 0 0 0 0 0 1 0 0
M4 0 0 0 0 0 0 0 0 1 1 0 0
M5 0 0 0 1 0 0 0 0 0 1 0 0
M6 0 0 0 0 0 0 0 0 0 1 1 0
Um von einer Markierung M zu einer Markierung M ′ zu gelangen, mussden Kanten des RG gefolgt werden. Markierungen ohne ausgehende Kantensind Endmarkierungen des Graphen. Zur Erstellung des Erreichbarkeitsgra-phen wird ausgehend von der Initialmarkierung M0 fur alle Transitionent ∈ T uberpruft, ob diese schalten konnen. Alle neu gefundenen Markierun-gen M ′ werden in die Erreichbarkeitsmenge E aufgenommen und fur jedeaktive Transition t ist der Schaltvorgang durchzufuhren und eine Kante imPfad A anzulegen, die von der alten Markierung M zur neuen MarkierungM ′ zeigt. Dies wird fur alle Markierungen wiederholt, bis keine neue Mar-kierung mehr gefunden wird (siehe Algorthmus 3.1). Auf Beschranktheitmuss im Fall der DCPN nicht uberpruft werden, da nur maximal eine Markepro Stelle zulassig ist und somit die Menge der erreichbaren Markierungenimmer endlich ist.Zur Erstellung von Erreichbarkeitsgraphen fur DCPN kann auch auf die
Methode des Teilerreichbarkeitsgraphen zuruckgegriffen und fur jedes Sub-netz ein eigener sogenannter Suberreichbarkeitsgraph erstellt werden. Hierbeimussen fur alle Subnetze alle außeren Einflusse durch Netz-Verbindungenberucksichtigt werden, da durch außerhalb des Subnetz liegende hoher priori-sierte Transitionen der interne Zustand des Subnetzes verandert werden kann.Zur Erstellung des Teilerreichbarkeitsgraphen eines DCPN kommen vomAnsatz her die gleichen Methoden zum Einsatz, die auch bei Erreichbarkeits-
3.3 Eigenschaften 59
Algorithmus 3.1 Aufstellen des Erreichbarkeitsgraphen
function erstelleRG(PN , M0)E = ∅, A = ∅M ← {M0}while M = ∅ do
m ∈ MM ← M \ {m}if m /∈ E then
E = E ∪ {m}for all t = {t | t ∈ T ∧ m|t〉} do
m|t〉m′A ← A ∪ {(m, t,m′)}M ← M ∪ {m′}
graphen angewendet werden. Diese sind um die im Folgenden beschriebenenMethoden zu erweitern:Bei Substellen sind alle mit den Netzverbindern verbundenen Elemente
Eingangsstellen des Subnetzes, wenn eine vom Netzverbinder ausgehendeKante n• existiert. Anders herum bilden alle Stellen, die Kanten zu ei-nem Netzverbinder •n besitzen, die Ausgangsstellen des Subnetzes ab. DieBefullung oder Entleerung dieser Eingangs- und Ausgangsstellen geschiehtuber das Feuern der von außen an die Subtransition angeschlossenen Transi-tionen, die im Subnetz als Netzverbindungen dargestellt werden. Mit dieserAnpassung an der Substelle kann auch hier der Erreichbarkeitsgraph mitden weiter vorne angegebenen Mitteln erzeugt werden.
Eigenschaft 17 Suberreichbarkeitsgraph Subtransition
• Netzverbinder n ist Eingangsstelle in tsub, wenn | • n| ≥ 1 und |n • | = 0
• Netzverbinder n ist Ausgangsstelle in tsub, wenn |n • | ≥ 1 und | • n| = 0
• Netzverbinder n ist Ein- und Ausgang in tsub, wenn |n•| ≥ 1 und |•n| ≥ 1
• Erzeugung RG nach Eigenschaft 16
Bei Subtransitionen sind die Netzverbindungen die Ein- und Ausgange desNetzes welche zur Bestimmung des Suberreichbarkeitsgraphen als Stellendes Subnetzes zu sehen sind. So kann jede dieser Stellen mit maximal einerMarke belegt werden, wie es fur alle anderen Stellen im DCPN auch gilt. DieMarkenanzahl der Stellen der eingehenden Kanten •psub entspricht dabeiden im Netz vorhandenen Marken auf diesen Ersatzstellen. Gleiches giltfur die Ausgange und die daran angeschlossenen Elemente psub•. Hierauskann dann wie bisher auch fur ein Netz der Erreichbarkeitsgraph aufgestellt
60 3 Digital Circuit Petri Nets
werden. Dabei ist drauf zu achten, dass wenn sich am Eingang oder Ausgangetwas an der Markenanzahl andern sollte, der Erreichbarkeitsgraph fur diegeanderte Markierung neu berechnet werden muss.In Abbildung 3.8 ist in (a) das Ersatznetz zum Aufstellen des in (b)
ersichtlichen Erreichbarkeitsgraphen gezeigt. Das Ersatznetz bildet das inAbbildung 3.5 (c) vorgestellte Subnetz der Subtransition Tsub0 ab. Hierbeiist die initiale Markierung gegeben mit P0 mit einer Marke, die restlichenStellen sind leer, wie in der Tabelle (c) in M0 zu sehen ist. Fur andere Initial-markierungen sieht der Erreichbarkeitsgraph dementsprechend anders aus.Bei jeder Anderung der Markenanzahl der außenliegenden angeschlossenenStellen (P0, P1, P3 im Hauptnetz) muss der Graph neu erstellt werden, dasich die Markierung und somit der Initialzustand des Subnetzes geanderthat. Außerdem muss auch im Hauptnetz eine Anpassung des Erreichbarkeits-graphen erfolgen, wenn in einem der die Netzverbinder reprasentierendenStellen eine Marke entfernt oder hinzugefugt wird.
P0
P1
P3P11
P: 5
T5
T: 1.0ns
T6
(a)
M0 M1 M2
T5 T6
(b)
P0 P1 P11 P3
M0 1 0 0 0
M1 0 0 1 0
M2 0 0 0 1
(c)
Abbildung 3.8: (a) zeigt das Ersatznetz fur die Subtransition aus Abbildung 3.5(c). In (b) ist der dazugehorige Erreichbarkeitsgraph zu sehen, dessen Markierungs-tabelle in (c) gezeigt wird.
Durch die Erzeugung der Suberreichbarkeitsgraphen ist die Aufstellung desGraphen fur das Hauptnetz moglich. Dieser ist wie bisher auch aufzustellen,wobei immer wenn sich die Markierung innerhalb eines Subnetzes andert,dessen Erreichbarkeitsgraph neu zu bestimmen ist. Im Gegensatz zu denErreichbarkeitsgraphen aus einem hierarchielosen Netz muss hier bei derAktivierung einer Transition immer in allen Subnetzen und dem Hauptnetznach der als nachstes zu feuernden Transition gesucht werden und nicht nur ineinem Netz. Hierbei gelten die selben Regeln wie bisher auch. Als erstes feuernzeitlose Transitionen, wobei immer die mit der hochsten Prioritat als erstesfeuert. Sollte keine zeitlose Transition mehr aktiviert sein, dann lauft bei allenzeitbehafteten Transitionen die Aktivierungszeit herunter, bis mindestenseine Transition bei Null angelangt ist. Dann schaltet diese Transition. Alle
3.3 Eigenschaften 61
Algorithmus 3.2 Ereichbarkeitsgraph Subtransition
function subtransitionRG(tsub, M0)for all n ∈ tsub do
if |n • | ≥ 1 ∧ | • n| ≥ 1 thenErstelle Stelle pP ← P ∪ p
else if |n • | ≥ 1 thenErstelle Eingangsstelle pP ← P ∪ p
else if | • n| ≥ 1 thenErstelle Ausgangsstelle pP ← P ∪ p
erstelleRG(tsub, M0)
dadurch deaktivierten und die abgefeuerte Transition werden wieder auf ihreInitialzeit zuruckgesetzt und wenn keine zeitlose Transition aktiviert wurde,lauft die Zeit weiter bis die nachste Transition ihre Schaltzeit verbrauchthat. Die Algorithmen fur das Aufstellen der Erreichbarkeitsgraphen vonSubnetzen sind fur Subtransitionen in Algorithmus 3.2 und fur Substellen inAlgorithmus 3.3 zu sehen. Bei Substellen psub sind die Netzverbinder fur dasAufstellen des Teilerreichbarkeitsgraphen aus dem Subnetz zu entfernen. Siesind nur zu beachten, wenn das hierarchisch daruber liegende Netz eine anpsub angeschlossene Transition feuert und so den Zustand des innen liegendenNetzes andert.
Eigenschaft 18 Suberreichbarkeitsgraph Substelle
• Stelle p ist Eingangsstelle in psub, wenn mindestens eine Kante aus n• = •pexistiert
• Stelle p ist Ausgangsstelle in psub, wenn mindestens eine Kante aus •n = p•existiert
• Stelle p ist Ein-/Ausgang in psub, wenn mindestens jeweils eine Kante aus•n = p• und n• = •p existiert
• Erzeugung RG nach Eigenschaft 16
Um die Zustandsanzahl des Erreichbarkeitsgraphen zu verringern, kann derreduzierte Erreichbarkeitsgraph RRG aufgestellt werden. Zur Berechnungdes RRG ist zuerst der Erreichbarkeitsgraph aus Eigenschaft 16 aufzustellen.Zur Reduzierung des RG muss bei den einzelnen Knoten bekannt sein,ob diese fluchtig sind. Fluchtig bedeutet in diesem Zusammenhang, ob ineinem Knoten des Graphen Zeit verbracht wird, oder ob von diesem aus
62 3 Digital Circuit Petri Nets
Algorithmus 3.3 Erreichbarkeitsgraph Substelle
function substelleRG(psub, M0)for all n ∈ psub do
if n• ∈ •p ∧ •n ∈ p• thenMarkiere p als Stelle
else if |n• = •p| ≥ 1 thenMarkiere p als Eingangsstelle
else if | • n = p • | ≥ 1 thenMarkiere p als Ausgangsstelle
erstelleRG(psub, M0)
zeitlose Transitionen schalten konnen. Alle fluchtigen Knoten sind bei derErzeugung des RG zu markieren, bzw. konnen durch einfaches Uberprufender abgehenden Kanten M• einer Markierung herausgefunden werden. JedesM , das mindestens eine zeitlose Transition t besitzt, ist als fluchtig zumarkieren.
Zum Aufstellen des RRG muss vorher uberpruft werden, ob zeitlose Zyklen(Eigenschaft 24) im Erreichbarkeitsgraphen vorhanden sind. Zeitlos bedeutet,dass innerhalb des Zyklus nur zeitlose Transitionen schalten konnen. Beieinem solchen Auftreten ist kein eindeutig definierter Zustand zu einemgewissen Zeitpunkt vorhanden und der RRG kann nicht aufgestellt werden.
Eigenschaft 19 Reduzierter Erreichbarkeitsgraph
• Es existiert ein reduzierter Erreichbarkeitsgraph RRG, wenn gilt∀f ∈ F : {t | ∀t ∈ Timm}
Die fluchtigen Knoten sind nach dem erfolgreichen Aufstellen des RGaus dem Graphen zu entfernen, indem alle auf eine fluchtige Markierungzeigenden Kanten auf die nachfolgenden Markierungen umgebogen werden.Dieser Vorgang ist zu wiederholen bis keine fluchtigen Knoten mehr imNetz vorhanden sind. Algorithmus 3.4 zeigt dieses Verhalten anschaulich.Der so erzeugte reduzierte Erreichbarkeitsgraph kann zur spater folgendenEvent basierten Simulation verwendet werden, da nur noch zu bestimmtenZeitpunkten Aktionen durchzufuhren sind. Diese haben dann immer einendirekten Einfluss auf die Ausgange, da auf jeden Fall eine Zeiteinheit imjeweiligen Zustand zu verbringen ist.
3.3 Eigenschaften 63
Algorithmus 3.4 Aufstellen des reduzierten Erreichbarkeitsgraphen
function erstelleRRG(RG)for all e ∈ E do � Finde fluchtige Knoten und markiere Sie
if a ∈ e• ∧ a(t) ∈ Timm, ∀a ∈ A thene ist fluchtig
elsee ist nicht fluchtig
for all e ∈ E ∧ e ist fluchtig dofor all ( do a ∈ e• ) � Alle Kanten einer fluchtigen Markierung durchlaufen
if ( then a(t) ∈ Ttime )A ← A \ a � Zeitbehaftete Kanten von fluchtigem Knoten loschen
elsefor all ( do ai ∈ •e ) � Alle Kanten auf Knoten e umbiegen
Erstelle Kante anew mit Start von ai und Ziel von aA ← A ∪ anew
A ← A \ a
E ← E \ e � Losche fluchtigen Knoten am Ende
3.3.2 Lebendigkeit und Terminierung
Erkenntnisse uber die Lebendigkeit einer Transition oder eines Netzes konnendabei helfen, mogliche Fehler in der Modellierung zu finden. Hierbei ist nichtnur die Lebendigkeit von Interesse, sondern auch, ob Petri-Netze terminieren,da dadurch ein festgelegter Zustand in der Schaltung bestimmbar ist.
Durch das Erkennen ob Transitionen tot sind, konnen Optimierungen imgegebenen Modell durchgefuhrt werden. Dafur sind die folgenden Eigenschaf-ten zu betrachten: Eine Transition t gilt als lebendig, wenn sie unter jederauftretenden Markierung schalten kann. t gilt als schwach lebendig, wennsie unter mindestens einer Markierung schalten kann und t gilt als tot, wennsie unter keiner Markierung schalten kann. M gibt dabei die Menge allermoglichen Markierungen an.
Eigenschaft 20 Lebendigkeit Transition
• Transition t ist lebendig, wenn fur alle m ∈ M gilt: m|t〉m′
• Transition t ist schwach lebendig, wenn ein m ∈ M existiert,bei dem gilt: m|t〉m′
• Transition t ist tot, wenn kein m ∈ M existiert, bei der gilt: m|t〉m′
Weiterhin kann die Lebendigkeit eines gesamten Petri-Netzes untersuchtwerden. Dabei gelten die folgenden Regeln zur Bestimmung des Grades
64 3 Digital Circuit Petri Nets
der Lebendigkeit: Das DCPN ist lebendig, wenn fur jede Markierung alleTransitionen lebendig sind, schwach lebendig, wenn fur jede Markierungmindestens eine Transition schalten kann und es ist tot, wenn unter einerMarkierung keine Transition schalten kann.
Eigenschaft 21 Lebendigkeit DCPN
• DCPN ist lebendig, wenn fur alle t ∈ T gilt, es existiert ein m ∈ Mmit m|t〉m′
• DCPN ist schwach lebendig, wenn ein t ∈ T fur alle m ∈ Mmit m|t〉m′ existiert
• DCPN ist tot, wenn fur alle t ∈ T gilt, das kein m ∈ Mmit m|t〉m′ existiert
Als letzte Moglichkeit der Lebendigkeit existiert diese fur Markierungen.Eine Markierung m ist lebendig, wenn alle Transitionen unter m schaltenkonnen. Schwach lebendig ist die Markierung, wenn eine Transition t unterm schalten kann. Dagegen ist die Markierung tot, wenn keine Transitionaktiv ist mit der Markierung m.
Eigenschaft 22 Lebendigkeit Markierung
• Markierung m ist lebendig, wenn fur alle t ∈ T gilt, das m|t〉m′
• Markierung ist schwach lebendig, wenn ein t ∈ T existiert,fur das gilt m|t〉m′
• Markierung ist tot, wenn kein t ∈ T existiert, fur das gilt m|t〉m′
Der Netztyp ist eine weitere Eigenschaft der Digital Circuit Petri Nets. Beiden Netztypen wird hierbei unterschieden, ob nur zeitlose, nur zeitbehafteteoder eine Mischung aus beiden Transitionsarten vorkommen. Netze, die nuraus zeitlosen Transitionen bestehen, mussen immer terminieren, da sonstkein eindeutiger Zustand der Ausgange berechnet werden kann. Terminie-rung bedeutet in dieser Arbeit, dass ein Petri-Netz nach einer gewissenAnzahl an Schaltvorgangen tot ist. Die Netztypen lassen sich dabei zu denfolgenden Netztypen zusammen fassen, wobei ein DCPN zeitlos ist, wenn alleTransitionen zeitlose Transitionen sind, zeitbehaftet, wenn mindestens eineTransition zeitbehaftet ist und streng zeitbehaftet, wenn alle Transitionenzeitbehaftet sind.
3.3 Eigenschaften 65
Eigenschaft 23 Netztyp
• DCPN ist zeitlos, wenn gilt, dass Timm �= ∅ und Ttime = ∅• DCPN ist zeitbhaftet, wenn gilt, dass Timm �= ∅ und Ttime �= ∅• DCPN ist streng zeitbehaftet, wenn gilt, dass Timm = ∅ und Ttime �= ∅
Ein Petri-Netz besitzt immer eine endliche Anzahl an Elementen. Wennzusatzlich noch schwache Lebendigkeit fur das Netz gilt, dann kann diesesniemals terminieren. Je nach Modellierung sind Zyklen gewunscht, wennbeispielsweise Zahler modelliert werden sollen. Hierbei ist zu beachten, dassin jedem Zyklus mindestens eine zeitbehaftete Transition vorhanden ist, dazeitlose Zyklen einen undefinierbaren Zustand im System erzeugen, weil keinEndzustand erreicht werden kann. Ein Zyklus ist in einem DCPN vorhanden,wenn ein gerichteter Pfad Z im Erreichbarkeitsgraphen RG existiert, beidem gilt, dass ausgehend von einem Element e wieder auf dieses Elementin Z gezeigt wird. Dabei ist die Anzahl der dazwischen liegenden Elementeunbedeutend.
Eigenschaft 24 Zyklus
• DCPN besitzt einen Zyklus, wenn fur Z ⊆ E, E ∈ RG, wobei fur Z gilt:
• Folge von Knoten: e0, e1, e2, . . . en, n ≥ 0 fur die gilt:(ei, ei+1) ∈ A, fur 0 ≤ i ≤ n− 1 und e0 = en
Die Eigenschaft der Terminierung beschreibt, ob ein DCPN nach einer end-lichen Anzahl an Schaltvorgangen von Transitionen in einen toten Zustandubergeht. Hierbei kann zwischen einer Terminierung des gesamten Netzesund der Terminierung aller zeitlosen Transitionen unterschieden werden.Bei Ersterem ist das gesamte Netz tot. Bei der zweiten Moglichkeit kannkeine zeitlose Transition mehr schalten, was fur die zeitbehaftete Simulationdes Netzes benotigt wird. Ein DCPN kann dabei zeitlos und vollstandigterminieren, niemals aber vollstandig und nicht zeitlos. t∗ beschreibt dasbeliebig haufige Schalten einer Transition aus T .
Eigenschaft 25 Terminierung
• DCPN terminiert vollstandig, wenn fur alle t ∈ T gilt: t ist tot,nachdem m|t∗〉m′
• DCPN terminiert zeitlos, wenn fur alle t ∈ Timm gilt: t ist tot,nachdem m|t∗〉m′
66 3 Digital Circuit Petri Nets
3.3.3 Markierungen
Zur einfacheren Beschreibung von Markierungsbereichen im DCPN wer-den neue Begriffe eingefuhrt, um bestimmte Bereiche des DCPN genauerspezifizieren zu konnen. Hierbei handelt es sich zum einen um die Ein-gangsmarkierung. Diese beschreibt die Markierung der Eingangsstellen Pin
des DCPN. Dabei ist von einer Anderung die Rede, wenn sich die Mar-kierung verandert. Dies kann beispielsweise durch die spater im Abschnitteingefuhrte Eigenschaft 27 geschehen. Weiterhin kommt der Begriff der Aus-gangsmarkierung zum Einsatz, um die Markierung der Ausgangsstellen Pout
zu beschreiben.Als letzter Punkt fur diese Eigenschaft ist der interne Zustand des Netzes
zu erwahnen. Bei diesem handelt es sich um die Markierung aller Standard-Stellen Pstd im Hauptnetz und allen Subnetzen. Hierzu zahlen nicht dieEingangs- und Ausgangsstellen, um eine differenziertere Aufteilung derStellen zu ermoglichen.
Eigenschaft 26 Markierungsbereiche
• Markierung aller Eingangsstellen: Min = {m(p) | p ∈ Pin}• Markierung aller Ausgangsstellen: Mout = {m(p) | p ∈ Pout}• Markierung der normalen Stellen: Mstd = {m(p) | p ∈ Pstd}Zur Simulation des DCPN erhalten die Eingangsstellen Pin des Netzes
eine zusatzliche Funktion. Ihre Markierung kann uber die Zeit verandertwerden, ohne dass Transitionen feuern. So konnen Marken hinzugefugt oderentfernt werden, wobei drauf zu achten ist, dass maximal eine Marke proStelle existieren kann. Die so erzeugten Marken sind gleichwertig mit allenanderen Marken des Netzes und konnen durch feuern von Transitionen ausdiesen wieder entfernt werden.Die sogenannte Folgeeingangsmarkierung ist nicht in die Definition des
DCPN aufgenommen, da diese Markierungen nur bei der Simulation derSchaltung zur Anwendung kommen. Diese Eigenschaft dient also zur Erzeu-gung und Validierung der digitalen Schaltung aus einem DCPN. Im nachstenAbschnitt folgt ein Beispiel fur die Anwendung der zeitlich veranderlichenEingangsstellen um das Ergebnis der zeitlichen Simulation zu prasentieren.Zum Einsatz kommt die Simulation zur Verifikation der Schaltung. Als erstesschalten alle aktivierten Transitionen zu einem Zeitpunkt. Danach werdendie Marken aus den Eingangsstellen entfernt oder hinzugefugt.
3.3 Eigenschaften 67
Eigenschaft 27 Zeitliche Eingangsstellenanderung
• Markenanzahl in Pin andern, wennkein t ∈ Timm existiert, fur das m|t〉 undkein t ∈ Ttime fur das die Restschaltzeit Null ist und m|t〉 gilt
• Marke in Eingangsstelle p hinzufugen, wenn M(p) = 0
• Marke aus Eingangsstelle p entfernen, wenn M(p) = 1
• Darstellung der Eingangsanderung von m zu m′: m〉m′
0 2 4 6 8t
P0
P1
(a)
P0 1 1.5 2.5 4 6
P1 0 2 3 3.5 7
(b)
Abbildung 3.9: In (a) sind die zeitlich veranderlichen Eingangsstellen P0 und P1
in Diagrammform zu sehen. (b) dagegen zeigt die Anderungen in Form einer Listean.
Abbildung 3.9 zeigt die beiden Moglichkeiten wie zeitlich veranderlicheEingangsstellen dargestellt werden konnen. Dabei ist in (a) der zeitlicheVerlauf in einem Diagramm zu sehen. Hierbei bedeutet eine steigende Flanke,dass eine Marke in die jeweilige Stelle gelegt wird, wenn noch keine Markevorhanden ist. Eine fallende Flanke bedeutet eine Marke zu entfernen, wenneine Marke vorhanden ist. In (b) ist die tabellarische Ansicht der zeitlichveranderlichen Eingangsstellen zu sehen, wobei die Zeitpunkte in der Tabelleimmer den jeweiligen Wechsel angeben. Gestartet wird dabei immer mitStellen ohne Marke und jede Spalte der Tabelle fuhrt einen Wechsel zumangegebenen Zeitpunkt durch. Wenn von Beginn an bei der Simulation eineMarke in der Stelle liegen soll, dann ist mit einer Null in der ersten Spalteder jeweiligen Stelle zu starten.
Als nachste wichtige Eigenschaft fur die Transformation existiert die Zu-standsfreiheit eines DCPN. Diese Eigenschaft ist vor allem beim Abbilden vonkombinatorischer Logik zu beachten, da jeder Zustand in einem Petri-Netzbei der spater in dieser Arbeit eingefuhrten Transformation zu erzeugtemSpeicher fuhren kann.
Zustandsfreiheit bedeutet dabei nicht, dass keine Marken im Netz vorhan-den sein durfen. Sie beschreibt, dass unabhangig von der Aneinanderreihungvon Eingangsmarkierungen Min immer die gleiche Markierung Mout erzeugt
68 3 Digital Circuit Petri Nets
werden muss. Die Eigenschaft ist nur fur kombinatorische Logik im weiterenVerlauf wichtig, da nur zeitlose Netze uberhaupt Kombinatorik reprasentierenkonnen. Daher sind nur zeitlose und zyklenfreie Netze auf Zustandsfreiheithin zu untersuchen.
Eigenschaft 28 Zustandsfreiheit
• Netz ist Zustandsfrei, wenn die Reihenfolge aller moglichen MarkierungenMin keine Auswirkung auf das Verhalten des Netzes hinsichtlich jedereinzelnen Markierung Min besitzt
3.3.4 Invarianten
Zur Erkennung von unveranderlichen Eigenschaften eines DCPN konnenderen Invarianten bestimmt werden. Eine Invarianz bedeutet in dem Zu-sammenhang ein gleich bleiben des Netzes bei temporarer Veranderung. Esbezeichnet demzufolge das Wiedererreichen eines Zustandes nachdem dasNetz verschiedene andere Zustande durchlaufen hat. Es existieren dabeisowohl Transitions-Invatianten (T-Invarianten) als auch Stellen-Invarianten(S-Invarianten). Invarianten sind Teil der Struktur eines Netzes. Sie sindunabhangig von der Startmarkierung des Petri-NetzesDie Berechnung der Invarianten kann uber die Inzidenzmatrix, wie in
Kapitel 2.1.4 beschrieben, berechnet werden. Ein Netz oder Teilnetz istS-Invariant, wenn die Anzahl der Marken in seinen Stellen konstant ist.Dabei ist die Menge unabhangig von der bisherigen Schaltfolge. Konstantbedeutet, dass das Summe der konsumierten Marken genau der Summe derproduzierten Marken entspricht. Dabei konnen positive Invarianten auftreten,wenn nur positive Komponenten in der Gleichung auftreten, oder das Netzist uberdeckt, dann ist das komplette Netz S-Invariant.
Eigenschaft 29 Stellen-Invariante
• Finde nicht triviale ganzzahlige Losung a =(a1 a2 . . . an
)Tmit CT · a = 0
• Positive Invariante, wenn gilt ai ≥ 0, ∀i• Uberdeckte Invariante, wenn a eine positive Invariante in allen p ∈ P ist
Ein Netz beinhaltet T-Invarianten, wenn ein Schaltvektor existiert, dernach einer beliebigen Anzahl an Schaltvorgangen wieder bei der Ausgangs-markierung landet. Dabei existieren drei Formen von T-Invarianten. Zum
3.4 Simulation 69
einen sind dies echte Invarianten, bei der keine negativen Komponentenauftreten. Weiterhin kann die Invariante realisierbar sein. Die Markierung,die den Schaltvektor generiert, muss erreichbar sein. Als letztes kann eineuberdeckte Invariante auftreten, bei der das gesamte Netz uberdeckt ist.
Eigenschaft 30 Transitions-Invariante
• Finde nicht triviale ganzzahlige Losung b =(b1 b2 . . . bn
)Tmit C · b = 0
• Echte Invariante, wenn gilt bi ≥ 0, ∀i• Realisierbare Invariante, wenn ein M0|t∗〉 existiert mit t ∈ T
• Uberdeckte Invariante, wenn b eine positive Invariante in allen t ∈ T ist
3.4 Simulation
Simulationen kommen in den verschiedensten Gebieten wie etwa Elektrotech-nik, Maschinenbau, Land- und Forstwirtschaft, Okologie, Umweltforschung,Betriebswirtschaft oder Regionalplanung zum Einsatz. Die Gebiete konnenalso fast nicht unterschiedlicher sein, trotzdem lasst sich bei vielen Berei-chen eine sehr ahnliche Systemstruktur herausbilden und somit konnen diegleichen Verfahren zur Modellbildung und Simulation eingesetzt werden.Weiterhin konnen Simulationen zur Losung ganz konkreter Problemstellun-gen eingesetzt werden, oder dienen zum besseren Verstandnis allgemeinerdynamischer Systeme. Nahere Informationen hierzu liefern unter anderem[CG91], [Fuj00] und [Bos04].Die meisten Simulationen werden heutzutage am Rechner durchgefuhrt,
da dort vollig unabhangig vom System einheitliche Methoden und vielsei-tig verwendbare Softwareprogramme zum Einsatz kommen konnen. Fernenkonnen die Kosten bei der computergestutzten Simulation verringert wer-den, da keine umfassende Untersuchung an realen physikalischen Modellengeschehen muss. Der zeitliche Simulationsablauf kann erheblich verkurztoder bei schnell ablaufenden Prozessen verlangsamt werden. Weiterhin sindSysteme, die eine komplette Zerstorung des Modells zur Folge hatten ohneKonsequenzen fur den Rechner, da nach einem Neustart der Simulation dieseangepasst und wieder ausgefuhrt werden kann.
Die Simulation kann auf zwei Weisen durchgefuhrt werden: Auf der einenSeite kann das Verhalten aus bisherigen Beobachtungen des Systems aufge-stellt werden, wobei die Eingange und die Ausgange des Systems bekannt
70 3 Digital Circuit Petri Nets
sind und der interne Bereich des Systems als Blackbox abgebildet wird.Der Zusammenhang zwischen Ein- und Ausgangen kann dann meist alsmathematische Formel beschrieben werden. Auf der anderen Seite kann dieSimulation durch ein Nachbilden der Wirkungsweise des realen Systemserfolgen. Hierzu muss bekannt sein, aus welchen Teilen es besteht und wiediese miteinander verknupft sind.
Fur diese Arbeit ist die Simulation in zwei Bereichen notwendig: Dies istzum Einen die Simulation eines DCPN und zum Anderen die Simulationder erzeugten Schaltung. Die Ergebnisse der beiden Simulationen mussenubereinstimmen, damit die Transformation validiert werden kann.In Abbildung 3.11 ist eine Simulation des Netzes aus Abbildung 3.6 zu
sehen. Die Beschreibung des Ablaufs und die Durchfuhrung der Simulation er-folgt im nachsten Kapitel, das Ergebnis sei hier schon einmal vorweg gegriffen,um die Funktionalitat der zeitlichen Markenanderung in den Eingangsstelleneines DCPN zu zeigen. Hierzu sind die geplanten Markenbelegungen fur diedrei Eingangsstellen (P0, P1, P2) in Abbildung 3.10 zu sehen. Eine Anderungdes Pegels bedeutet dabei eine mogliche Markenanderung der Stelle. Beieinem steigenden Pegel (↑) wird eine Marke in die jeweilige Stelle gelegt,wenn noch keine vorhanden sein sollte. Bei fallendem Pegel (↓) ist einemoglicherweise vorhandene Marke zu entnehmen.
Wie in Abbildung 3.11 zu sehen, mussen die Marken nicht solange in derStelle liegen bleiben, wie fur die Simulation vorgegeben wurde. Die Markenkonnen durch das Schalten von Transitionen innerhalb des Netzes entferntwerden. Stelle P0 gibt die Marke direkt wieder ab, da die zeitlose TransitionT5 sofort feuert. P1 behalt seine Marke dagegen eine Nanosekunde lang, daT0 nach genau dieser Zeit feuert. P2 dagegen ist zwei Nanosekunden miteiner Marke belegt, da T1 nach zwei Nanosekunden feuert.
0 2 4 6 8 10Zeit (in ns)
P0
P1
P2
Abbildung 3.10: Zur zeitlichen Simulation kann die Markenanzahl in den Ein-gangsstellen zu beliebigen Zeitpunkten geandert werden. Dies ist hier fur die dreiEingangsstellen (P0, P1, P2) aus dem DCPN aus Abbildung 3.6 in grafischer Formzu sehen. Ebenfalls kann die tabellarische Form zum Einsatz kommen.
3.4 Simulation 71
Bei der Simulation im Rechner muss zwischen zeitgesteuerter (clock driven)und ereignisgesteuerter (event driven) Simulation unterschieden werden.Dabei ist bei der zeitgesteuerten eine Betrachtung des gesamten Systemsund aller seiner Anderungen zu jedem gegebenen Zeitpunkt notwendig. Diezeitlichen Abstande, nach denen ein neuer Simulationsschritt ausgefuhrtwird, kann frei eingestellt werden. Bei der ereignisgesteuerten ist ein Schrittder Simulation nicht auf eine feste Zeit beschrankt. Ein weiterer Schritt istimmer nur dann notwendig, wenn sich etwas im System geandert hat [Des91],[KP91].
0 2 4 6 8 10Zeit (in ns)
P0
P1
P2
P4
P5
P6
Abbildung 3.11: Hier ist die Simulation des Netzes aus Abbildung 3.6 mit demVerhalten der zeitlich veranderlichen Eingangsstellen zu sehen. Hierzu kommendie Markenanderungen aus Abbildung 3.10 zum Einsatz. Erkennbar ist, dassdie Marken nicht dauerhaft in den Eingangsstellen verbleiben mussen, da dieTransitionen des Netzes weiterhin feuern konnen und somit den Netzzustandjederzeit andern konnen. P0 verliert die platzierte Marke nach zwei Sekundenbeispielsweise sofort, da T5 als einzige Transition aktiv ist und sofort schaltet.Eingange sind P0 bis P3 und Ausgange P4 bsi P6.
Hier kommt die ereignisgesteuerte Simulation zum Einsatz, da nur beimSchalten einer Transition oder der Veranderung der Eingangsstellen Anderun-gen im System auftreten konnen. Fur die DCPN wird noch eine Erweiterungder Simulation hinzugefugt. Hierbei sind beim Auftreten eines Ereignisse allezeitlosen schaltenden Transitionen zu betrachten. Alle aktivierten zeitlosenTransitionen schalten. Erst wenn keine zeitlose Transition mehr schaltenkann, dann ist der jeweilige Simulationsschritt abgeschlossen. Der nachsteSimulationsschritt ist dann auszufuhren, wenn eine zeitbehaftete Transitionschaltet oder mindestens eine Eingangsstelle ihre Markenanzahl verandert.Detaillierte Informationen zur Simulation erfolgen im nachsten Kapitel beider Verifikation der transformierten Schaltung.
4 Transformation von DCPN nachVHDL
Im folgenden Kapitel wird ein Einblick in die Erzeugung von bekanntenSchaltelementen der Digitaltechnik als Petri-Netz gegeben. Weiterhin erfolgtdie Diskussion und Auswahl eines geeigneten Weges einen (oder mehrere)Takte in ein durch ein DCPN beschriebenes System einzubringen.
Darauf aufbauend erfolgt der Entwurfsprozess fur ein Verfahren, umaus gegebenen DCPN eine digitale Schaltung zu erzeugen. Die einzelnenStrategien, die dazu zur Anwendung kommen, beruhen auf den Eigenschaftendie im letzten Kapitel erlautert und eingefuhrt wurden. Nach vollstandigerBeschreibung des kompletten Transformationsprozesses erfolgt abschließendnoch eine mogliche konzeptuelle Vorgehensweise, um digitale Schaltungenin Petri-Netze zu uberfuhren und somit die bestehenden Analysemethodennutzen zu konnen.
4.1 Schaltelementerzeugung
Bestehende Logikfunktionen konnen als Petri-Netz abgebildet werden unddas Modellieren des Verhaltens ist durch das Schalten von Transitionenmoglich. So konnen die vorgestellten Ein- und Ausgangsstellen verwendetwerden, um eine Schaltlogik darzustellen. Hierbei ist wiederum auf dieUnterscheidung zwischen kombinatorischer und getakteter Logik zu achten.Die Beschreibung von Taktzyklen (clock) in einem DCPN ist ein weitererBlock der in diesem Abschnitt der Arbeit erortert wird.
4.1.1 Kombinatorische Logik
Zur Darstellung der Grundschaltungen kombinatorischer Logik konnen dieAnsatze aus [MR02] und [YKS+96] verwendet werden, die in Abbildung 4.1(b) dargestellt sind, solange keine zeitliche Anderung der Eingange des Petri-Netzes auftreten kann. Da dies beim Entwurf von digitalen Schaltungen aber
© Springer Fachmedien Wiesbaden GmbH, ein Teil von Springer Nature 2019C. Brandau, Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets, https://doi.org/10.1007/978-3-658-25244-1_4
74 4 Transformation von DCPN nach VHDL
meistens der Fall ist, muss das bisherige Modell von Grundschaltelementenerweitert werden.
Grundschaltelemente sind in dieser Arbeit and, or, not, xor, nor und nand.Diese konnen mit beliebig vielen Eingangen nach dem selben Schema erstelltwerden, wie das hier vorgestellte and -Gatter. Ebenfalls kann das not-Gatterals Petri-Netz abgebildet werden, wobei dieses genau einen Eingang undeinen Ausgang besitzt. Alle Grundschaltelemente konnen mit beliebig vielenfolgenden Elementen verbunden werden.
Die Unterschiede zwischen der bisherigen Anwendung der Logikfunktionenzu dem hier neu modellierten Petri-Netz wird hier am Beispiel der and -Verknupfung gezeigt. Fur alle weiteren Elemente ist die neue Schaltunganhand ihrer Bildungsregel beschrieben und kann in gleicher Weise wie dasand als Petri-Netz mit beliebig vielen Eingangen dargestellt werden. DieWahrheitstabellen zu diesen Verknupfungen wurden bereits in Kapitel 2.2fur zwei Eingange dargestellt und erfahren hier eine Erweiterung auf beliebigviele Eingange.
Zur Generierung der Logikverknupfungen ist fur jede eingehende Kan-te eine Eingangsstelle zu erzeugen und insgesamt eine Ausgangsstelle alsAusgang. Fur jede mogliche Eingangskombination ist eine Transition zuerstellen, was einer Anzahl von 2N Transitionen bei N Eingangen entspricht.Die logische Null wird als hemmende Kante dargestellt und die logischeEins als normale Kante. Zusatzlich ist zu jeder normalen Eingangskante eineAusgangskante auf dasselbe Element zuruckzufuhren, um beim Feuern einerTransition das Verhalten des Petri-Netzes nicht zu verandern.
Der Ausgang des Gatters kann uber zwei mogliche Arten mit den Tran-sitionen verbunden werden. Dabei ist fur eine an Transition t anliegendeKombination zu entscheiden ob der Ausgang eine Marke enthalten soll.Beim and -Gatter ist das Befullen der Ausgangsstelle y nur im unterstenFall erwunscht, da dort eine Eins am Ausgang anliegen soll. Hierzu wirdeine Kante von der Transition zur Ausgangsstelle angelegt. Fur alle anderenFalle sollte die Marke aus der Ausgangsstelle entfernt werden, was ubereine Kante von der Stelle y zur jeweiligen Transition erfolgt. Abbildung 4.1(c) verdeutlicht die Beschreibung des erzeugten Petri-Netzes am Beispielder and -Verknupfung mit zwei Eingangen. Im Folgenden werden die Bil-dungsvorschriften fur die grundlegenden Logikverknupfungen mit beliebigvielen Eingangen in Tabelle 4.1 vorgestellt. Bei allen Netzen andert sichimmer nur die Verbindung zur Ausgangs-Netzverbindung, da immer alleEingangskombinationen auf die selbe Art dargestellt werden.Aus den gegebenen Beschreibungen von Gattern der Digitaltechnik als
Petri-Netz lassen sich komplexere Schaltungen zusammenfugen, wobei der
4.1 Schaltelementerzeugung 75
a b y
0 0 0
0 1 0
1 0 0
1 1 1
(a)
a
b
y
P: 1
T0
(b)
a
b
y
P: 1
P: 1
P: 1
P: 1
(c)
Abbildung 4.1: In (a) ist die Wahrheitstabelle fur eine and -Verknupfung zu sehen.(b) zeigt ein Petri-Netz in bisheriger Darstellungsform, bei dem eine Veranderungder Eingange keine Auswirkung auf den Ausgang hat. (c) zeigt die neue Beschrei-bungsmethode eines and -Gatters, bei dem auf verandernde Markenanzahl in denEingangen (a, b) reagiert werden kann.
Tabelle 4.1: Grundverknupfungen mit beliebig vielen Eingangen und deren Bil-dungsvorschrift
Ausgang: 000 111
and Mindestens ein Eingang 0 Alle Eingange 1
or Alle Eingange 0 Mindestens ein Eingang 1
not Eingang 1 Eingang 0
xor Nicht genau ein Eingang 1 Ein Eingang 1
nand Alle Eingange 1 Mindestens ein Eingang 0
nor Mindestens ein Eingang 1 Alle Eingange 0
Ausgang eines Gatters der Eingang des nachsten Gatters bildet. Durch diehier gegebene Ruckfuhrung der schaltenden Transitionen kann mehr als einGatter an einen Ausgang angeschlossen werden. Dabei ist auf Ruckkopplungenzu achten, da die Beschreibung der Elemente durchgehend aus zeitlosen Tran-sitionen besteht.In der spater folgenden Implementierung des Verfahrens konnen model-
lierte Petri-Netze als Subnetze abgespeichert werden und somit in weiterenNetzen verwendet werden. Das Subnetz ist dabei immer eine Subtransition,da diese direkt die Eigenschaften des modellierten Netzes ubernehmen kann.Die Ein- und Ausgange werden dazu in Netzverbinder transformiert, diedann von außen uber Stellen angesprochen werden konnen. Naheres zu derMethode findet sich in Kapitel 5.1.8 auf Seite 166.
76 4 Transformation von DCPN nach VHDL
4.1.2 Takterzeugung fur sequentielle Logik
Zur Verwendung sequentieller oder getakteter Schaltungen sind ein odermehrere unterschiedliche Takte notwendig, welche sich durch verschiedeneMethoden als DCPN beschreiben lassen. Diese moglichen Vorgehensweisensollen hier nun diskutiert und auf ihre Tauglichkeit hin uberpruft werden.
Als erstes besteht die Moglichkeit alle getakteten Elemente eines Systemsmittels deterministischer Transitionen abzubilden. Diese erhalten die Schalt-zeit mit der Dauer des gewunschten Takts. Hierbei ist darauf zu achten, dassdiese Methode nur sicher funktioniert, wenn alleinig zeitlose und zeitbehaf-tete Transitionen mit genau dieser einen Taktdauer im DCPN vorkommen.Abbildung 4.2 (a) zeigt ein Netz mit zwei gleich getakteten Elementen. In (b)ist ein Beispiel mit zwei Takten zu sehen, welches kein synchrones Ergebnisder Schaltung liefert, da T0 nach einer Nanosekunde schaltet und damit T1
aktiviert. T1 und T2 sind dann nicht mehr synchron mit dem Takt von zweiNanosekunden.Fur diese Methode ist kein weiterer Aufwand mit der Verbindung von
zusatzlichen Elementen notwendig, da der Takt direkt im Petri-Netz an denbenotigten Stellen modelliert wird.
P0
P1
P2
P3
T: 1.0ns
T0
T: 1.0ns
T1
(a)
P0
P1
P2 P3
P4
T: 1.0ns
T0
T: 2.0ns
T1
T: 2.0ns
T2
(b)
Abbildung 4.2: Mogliche Realisierung des Taktes eines Systems, wenn nur einTakt vorhanden ist (a). (b) zeigt ein auftretendes Problem bei mehr als einemTakt, welches mittels der Vereinbarung einen Takt pro Schaltung zu modellierenumgangen werden kann.
Eine weitere Moglichkeit zeigt Abbildung 4.3 (a), wobei dem DCPNzusatzliche Elemente hinzugefugt werden, um mit diesen den Takt einesSystems abzubilden. Hierfur ist fur jeden benotigten Takt der in (a) gezeigteAufbau des Netzes zu verwenden und die Transitionen sind mit der Schalt-zeit eines halben Taktes zu versehen. Durch diese Methode entsteht dieMoglichkeit ein System mit einem high und einem low Pegel auszustatten.Pegelwechsel als Schaltbedingung sind so noch nicht verwendbar.
4.1 Schaltelementerzeugung 77
Alle Transitionen die im eigentlichen DCPN vom Takt abhangig sein sollen,mussen jetzt mit einer hin- und ruckfuhrenden Kante von den Stellen lowoder high verbunden werden. Dabei ist drauf zu achten, dass die getaktetenTransitionen nur eine maximale Schaltdauer von einer halben Taktperiodehaben durfen, da sie sonst inaktiv werden wenn der Takt weiter schaltet. Ummogliche Fehler bei der Modellierung zu verhindern ist eine Verwendung vonzeitlosen Transitionen fur das eigentliche System zu empfehlen. Hierdurchwird garantiert, dass das Schalten nur moglich ist, wenn der Takt denjeweiligen gewunschten Pegel erreicht.
low high
T: 1.0ns
T: 1.0ns
(a)
↓
low
↑
high
P: 0
P: 0
T: 1.0ns
T: 1.0ns
(b)
Abbildung 4.3: Realisierung des Taktes eines Systems mit high- und low-Pegelin (a) und mit Realisierung der Flanken in (b).
Die dritte Methode der Takterzeugung, wie in Abbildung 4.3 (b) zu sehen,besitzt jeweils eine Stelle fur fallende und steigende Flanken und besitzt, wiedie letzten Variante, jeweils eine Stelle fur den low- und high-Pegel. Hierbeimuss wie in der vorherigen Version auch eine hin- und ruckfuhrende Kantevon der jeweiligen Stelle (falling, rising, low, high) erzeugt werden, umeine Transition mit einem Takt zu versehen.
Die beiden zeitlosen Transitionen besitzen die niedrigste mogliche Prioritatvon 0, damit sie erst schalten wenn alle anderen aktivierten zeitlosen Transi-tionen geschaltet haben. Da zeitlose Transitionen immer vor zeitbehaftetenschalten, ist eine fallende oder steigende Flanke nur fur ein Netz aus zeitlosenTransitionen moglich. Weiterhin gilt fur den high- und low-Pegel die ausder letzten Methode bekannte Regel, dass die maximale Schaltdauer einerTransition maximal dem halben Takt entsprechen darf.
Zur besseren Ubersichtlichkeit von DCPN konnen die zusatzlich benotigtenKanten aus den letzten beiden Methoden der Taktgenerierung durch Be-schriftungen an den jeweiligen Transitionen des Netzes ersetzt werden. Dabeiist jedem moglichen Zustand des Taktes ein Zeichen zugewiesen. Dies sind
78 4 Transformation von DCPN nach VHDL
im einzelnen fallende (↓) und steigende (↑) Flanke, sowie high- (h) undlow-Pegel (l).Abbildung 4.4 zeigt eine Reihe von Transitionen, die jeweils auf unter-
schiedliche Pegelzustande reagieren. Hierbei ist wie schon erwahnt darauf zuachten das die Transition T1 nur eine maximale Schaltdauer eines halbenTaktes besitzen darf.
P0 P1 P2 P3
high
low
↓↑
P: 7
T0
P: 3
T2
T: 0.5ns
T1
P: 0
P: 0
T: 1.0ns
T: 1.0ns
(a)
P0P1
P2 P3
P: 7
T0
↑
T: 0.5ns
T1
hP: 3
T2
↓
(b)
Abbildung 4.4: (a) zeigt die Darstellung des Taktes mit der in Abbildung4.3 (b) vorgestellten Taktbildung. (b) beschreibt das Netz mit den eingefuhrtenErsatzbeschaltungen an den Transitionen, welche das Netz deutlich ubersichtlichergestalten.
Abschließend ist zur internen Taktgenerierung festzuhalten, dass alle dreivorgestellten Varianten je nach Einsatzgebiet verwendet werden konnen. Esist jeweils auf die gewunschte Verwendung eines oder mehrerer Takte imSystem zu achten und die daraus resultierende Methode auszuwahlen. Imallgemeinen Fall sollte immer die letzte Methode gewahlt werden, da siedie meisten Freiheitsgrade besitzt und alle auftretenden Moglichkeiten einesTaktes abdeckt.
Fur Modellierungen von digitalen Systemen, bei denen ein oder mehrereTakte von außen anliegen sollen, kann eine weitere Methode verwendet wer-den. Hierzu ist eine zusatzliche Eingangsstelle fur jeden unterschiedlichenTakt zu verwenden. Die in Eigenschaft 27 eingefuhrten zeitlich veranderlichenEingangsstellen konnen zyklisch mit Marken befullt werden, um den Taktabzubilden. Hierbei ist darauf zu achten, dass je nach Verwendung vonTaktflanken- oder Taktzustandssteuerung jeweils unterschiedliche Transitio-nen zu verwenden sind. Bei Taktflankensteuerung sind zeitlose Transitionenzu verwenden, damit die Schaltvorgange direkt beim Eintreten der Markeerfolgen. Taktzustandssteuerungen konnen mit einer zusatzlichen Kante von
4.1 Schaltelementerzeugung 79
der Taktstelle zur zu steuernden Transition erfolgen. Dafur mussen beideAnbindungen immer eine ruckfuhrende Kante zur Stelle besitzen, damit derTakt fur alle Elemente des Netzes verwendet werden kann.
P0
P1
clk
P5
P6 P7
P8
P9
P10
P: 3
T0
P: 3
T1
T: 1.0ns
T2
T: 1.0ns
T3
P: 2
T4
P: 2
T5
(a)
P0
P1
clk
P3
P4P5
T: 0.1ns
T0
P: 20
T1
T: 10.0ns
T2
(b)
Abbildung 4.5: (a) zeigt oben die Moglichkeit eines DCPN ohne Taktsteuerung.In (b) ist die Moglichkeit einer Taktsteuerung direkt an zeitbehafteten Transitionenzu sehen.
Abbildung 4.5 zeigt in (a) ein DCPN, bei dem im oberen Pfad von EingangP0 zu Ausgang P9 kein externer Takt angelegt ist. Im unteren Pfad sind dieTransitionen T0 und T4 zusatzlich mit dem Takt clk versehen und konnen erstschalten, wenn diese zusatzlich mit einer Marke belegt ist. In (b) ist dagegendie Methode der Aktivierung einer vorhanden zeitbehafteten Transition T0
zu sehen. Dabei ist darauf zu achten, dass die Schaltzeit von T0 maximal diehalbe Taktzeit betragen darf. Sonst wird T0 wieder inaktiv und die Schaltzeitwird zuruckgesetzt, da die Marke aus clk zu entfernen ist. Um langereSchaltzeiten auch uber einen Takt laufen lassen zu konnen, kann die Variantemit T1 und T2 gewahlt werden. Dabei wird T1 von clk aktiviert und danachkann die Schaltzeit von T2 komplett herunter zahlen. Die Verwendung vonTransitionen mit einer langeren Schaltzeit als dem eigentlichen Takt kann zurBeschreibung des Verhaltens von beispielsweise Zahlern verwendet werden,um anzugeben wie lange gezahlt werden soll, bis eine Aktion auszufuhrenist.
Abbildung 4.6 zeigt fur zwei Stellen clk0 und clk1 den Verlauf der Markenuber die Zeit. Hierbei konnen beliebig viele Takte in einem System verwen-det werden, zur ubersichtlicheren Modellierung sollte auf moglichst wenigunterschiedliche Takte zuruckgegriffen werden.
80 4 Transformation von DCPN nach VHDL
0 2 4 6 8 10 12 14 16 18 20Zeit (in ns)
clk0
clk1
Abbildung 4.6: Das Diagramm zeigt die Takterzeugung fur zwei unterschiedlicheTakte. clk0 entspricht einer Periode von 2ns und clk1 von 1ns.
4.1.3 Sequentielle Logik
Neben kombinatorischer Logik kann auch sequentielle Logik als Petri-Netzbeschrieben werden. In diesem Abschnitt erfolgt dies fur einige gangige Flip-Flops. Naturlich kann diese Funktionsweise auch auf weitere Elemente, wieRegister oder andere Schaltungen mit speicherndem Charakter, ausgeweitetwerden. Die hier vorgestellten Flip-Flops dienen nur der Veranschaulichungdes Modellierens von Schaltungen als Petri-Netz.Jedes der hier gezeigten Flip-Flops lasst sich immer auch durch kombi-
natorische Logik erzeugen. Exemplarisch hierfur ist das RS-Flip-Flop inAbbildung 4.7 (a) zu sehen. Dieses besteht aus zwei nand -Gattern, derenAusgange auf das jeweils andere Gatter zuruckgefuhrt wurden. In (b) ist diedazugehorige Wahrheitstabelle zu sehen. In den letzten beiden Zeilen ist zusehen, wenn beide Eingange S und R gesetzt sind, dann wird der aktuelleZustand des Flip-Flops gehalten, da das Netz beschrankt ist und per Defini-tion nur maximal eine Marke pro Stelle enthalten darf. Dieses Verhalten istim realen RS-Flip-Flop definiert als Q = Q = 1 und sollte vermieden werden,da dieser Fall zu einem sogenannten kritischer Wettlauf (race condition)fuhren kann. Dieses Verhalten ist hier nicht modelliert worden. Bei diesemWettlauf sind zwei Signale auf jeweils einem eigenen Pfad und es steht nichtfest welches Signal als erstes am Zielpunkt ankommt.Bei großeren Schaltungen mit mehreren kombinatorischen Gattern fuhrt
diese Methode der Modellierung schnell zu unubersichtlichen Petri-Netzen,weswegen fur diese Arbeit ein anderer Ansatz verfolgt wird. Hierzu wird dasVerhalten eines Flip-Flops nachgebildet und nicht deren digitale Schaltungaus Logik-Gattern.Abbildung 4.8 (a) zeigt das optimierte Petri-Netz fur ein RS-Flip-Flop.
Es werden die drei Zustande Set, Reset und Hold abgebildet. Wenn keineMarke in R und S vorhanden ist, dann wird der aktuelle Zustand des Netzesgehalten. Eine Marke in R lasst Transition T0 schalten, wenn vorher Q miteiner Marke gefullt war, sonst andert sich der Zustand des Netzes nicht, dasich das Flip-Flop schon im zuruckgesetzten Zustand befindet. Bei einer
4.1 Schaltelementerzeugung 81
S
R
Q
Qn
(a)
S R Qt Qtn Qt+1Qt+1
n
0 0 0 1 0 1
0 0 1 0 1 0
0 1 0 1 0 1
0 1 1 0 0 1
1 0 0 1 1 0
1 0 1 0 1 0
1 1 0 1 0 1
1 1 1 0 1 0
(b)
Abbildung 4.7: (a) zeigt ein RS-Flip-Flop als Petri-Netz. Der Aufbau erfolg-te anhand der vorgestellten Logik-Gatter aus Kapitel 4.1.1. In diesem Fall istdas Flip-Flop mit NAND-Gattern realisiert worden. In (b) ist die dazugehorigeWahrheitstabelle zu sehen. Dabei beschreibt Qt+1 jeweils das Netz nachdem eineTransition geschaltet hat, oder die bestehende Markenanzahl, wenn keine Transitionschalten konnte.
Marke in S erfolgt das Setzen des Flip-Flops, wenn in Q noch keine Markevorhanden ist. Sind R und S gesetzt, so wird der aktuelle Zustand des Netzesgehalten.
Das taktzustandsgesteuerte D-Flip-Flop in Abbildung 4.9 (a) ahnelt vomAufbau her dem RS-Flip-Flop. Der große Unterschied hierbei ist, dass keinReset-Eingang besteht, sondern ein Taktsignal angelegt wird. Nur im Falleeiner Eins am Eingang clk wird der Wert des Eingangs D ubernommen.In (c) ist die zu dem modellierten Petri-Netz gehorende Wahrheitstabellezu sehen, die das gewunschte Verhalten des Flip-Flops widerspiegelt. Beidiesem Flip-Flop ist der Eingang clk neu hinzugekommen. Zur Realisierungkonnen die Methoden aus dem letzten Abschnitt verwendet werden. Dabeiist das Flip-Flop nur umschaltbar, wenn clk high ist. Die Betrachtungvon Flanken spielt in diesem Fall keine Rolle. Eine weitere Moglichkeitdas D-Flip-Flop zu modellieren ist in Abbildung 4.9 (b) zu sehen, indemzeitbehaftete Transitionen zur Anwendung kommen.
82 4 Transformation von DCPN nach VHDL
S
R
Q
Qn
P: 1
T0
P: 1
T1
(a)
S R Qt Qtn Qt+1Qt+1
n
0 0 0 1 0 1
0 0 1 0 1 0
0 1 0 1 0 1
0 1 1 0 0 1
1 0 0 1 1 0
1 0 1 0 1 0
1 1 0 1 0 1
1 1 1 0 1 0
(b)
Abbildung 4.8: (a) zeigt ein RS-Flip-Flop als DCPN. (b) zeigt die dazugehorigeWahrheitstabelle. Die Eingangskombination R = S = 1 ist hierbei abweichendvon der Definition eines RS-Flip-Flops modelliert. Da der Fall im Allgemeinennicht auftreten sollte, wird hier dieser Fall nicht naher betrachtet. Gleiches gilt furdas Netz in Abbildung 4.7. Hier gilt ebenfalls, dass t+ 1 den Zustand nach demSchaltvorgang einer Transition beschreibt.
D Q
Qnclk
P: 1
T0
P: 1
T1
(a)
D Q
Qn
T: 1ns
T0
T: 1ns
T1
(b)
clk D Qt Qtn Qt+1 Qt+1
n
0 0 0 1 0 1
0 0 1 0 1 0
0 1 0 1 0 1
0 1 1 0 1 0
1 0 0 1 0 1
1 0 1 0 0 1
1 1 0 1 1 0
1 1 1 0 1 0
(c)
Abbildung 4.9: (a) zeigt ein taktzustandsgesteuertes D-Flip-Flop als DCPN. In(b) ist eine weitere Variante mit zeitbehafteten Transitionen zu sehen, wodurch Dimmer genau nach einem Takt weitergeleitet wird. (c) zeigt die zu beiden Netzengehorende Wahrheitstabelle.
4.1 Schaltelementerzeugung 83
Bei taktflankengesteuerten Flip-Flops, wie dem JK-Flip-Flop in Abbildung4.10 (a), ist der Eingang clk ↑ mit einem zusatzlichen Pfeil versehen, derangibt, dass auf eine Flanke des Taktes reagiert werden soll. Dabei sindsteigende (↑) und fallende (↓) Flanken moglich. Bei einem JK-Flip-Flop istzusatzlich zum Verhalten eines RS-Flip-Flops der Zustand R = 1 und S = 1erlaubt. Daher erweitert sich die Funktionalitat und besteht nun aus Set, wobei einer Marke am Eingang J (Jump) der Ausgang Q gesetzt wird. BeimReset ist eine Marke im Eingang K (Kill) und setzt den Ausgang Qn. Beieiner Null in beiden Eingangen J , K wird der aktuelle Zustand gehalten.Als letzte Option besteht die Moglichkeit in J und K eine Marke platziertzu haben. Dies aktiviert die Moglichkeit den Zustand bei jeder steigendenFlanke zu wechseln. Hierzu sind dem Petri-Netz die Stellen ToggleQ undToggleQn hinzugefugt worden. Alle angegebenen Schaltvorgange konnennur durchgefuhrt werden, wenn eine steigende Flanke anliegt, was in diesemNetz bedeutet, dass in der Stelle clk ↑ eine Marke vorhanden sein muss.
J
K
Q
Qn
clk ↑
P: 1
T0
P: 1
T1
P: 1
ToggleQ
P: 1
ToggleQn
(a)
clk ↑ J K Qt Qtn Qt+1Qt+1
n
0 0 0 0 1 0 1
0 0 0 1 0 1 0
0 0 1 0 1 0 1
0 0 1 1 0 1 0
0 1 0 0 1 0 1
0 1 0 1 0 1 0
0 1 1 0 1 0 1
0 1 1 1 0 1 0
1 0 0 0 1 0 1
1 0 0 1 0 1 0
1 0 1 0 1 0 1
1 0 1 1 0 0 1
1 1 0 0 1 1 0
1 1 0 1 0 1 0
1 1 1 0 1 1 0
1 1 1 1 0 0 1
(b)
Abbildung 4.10: (a) zeigt ein taktflankengesteuertes JK-Flip-Flop als DCPN.(b) zeigt die dazugehorige Wahrheitstabelle.
Um das RS-Flip-Flop aus Abbildung 4.8 zu erweitern, damit es taktzu-standsgesteuert ist, muss nur eine zusatzliche Stelle clk hinzugefugt werden.Diese ubernimmt die Steuerung des Flip-Flops, indem sie mit den beiden
84 4 Transformation von DCPN nach VHDL
clk
S
R
Q
Qn
P: 1
T0
P: 1
T1
(a)
clk S R Qt Qtn Qt+1Qt+1
n
0 0 0 0 1 0 1
0 0 0 1 0 1 0
0 0 1 0 1 0 1
0 0 1 1 0 1 0
0 1 0 0 1 0 1
0 1 0 1 0 1 0
0 1 1 0 1 0 1
0 1 1 1 0 1 0
1 0 0 0 1 0 1
1 0 0 1 0 1 0
1 0 1 0 1 0 1
1 0 1 1 0 0 1
1 1 0 0 1 1 0
1 1 0 1 0 1 0
1 1 1 0 1 0 1
1 1 1 1 0 1 0
(b)
Abbildung 4.11: (a) zeigt ein taktzustandsgesteuertes RS-Flip-Flop als DCPN.(b) zeigt die dazugehorige Wahrheitstabelle.
existierenden Transitionen T0 und T1 mit jeweils einer Eingangs- und Aus-gangskante verbunden wird. Die Ausgangskante ist in diesem Fall wichtig,da auf jede Anderung an S und R reagiert werden muss, wahrend eineMarke in clk liegt und nicht nur auf die erste Anderung reagiert werdendarf. Abwandlungen in ein taktflankengesteuertes RS-Flip-Flop sind moglich,indem die Stelle in clk ↑ umbenannt wird. Dies dient nur zur Verdeutlichung,was fur eine Art Flip-Flop zur Anwendung kommt. Zusatzlich mussen dieAusgangskanten von T0 und T1 zur Stelle clk ↑ entfernt werden, da prosteigender Flanke nur ein Schaltvorgang des Flip-Flops erfolgen kann.Weiterhin kann auch ein taktflankengesteuertes T-Flip-Flop als DCPN
dargestellt werden. Abbildung 4.12 (a) zeigt das DCPN des Flip-Flops. Diedaraus resultierende Wahrheitstabelle ist in (b) zu sehen. Beim T-Flip-Flopexistiert nur ein Eingang T , der jeweils beim Anlegen eines Signals seinenZustand wechselt. Dies bedeutet im hier modellierten Petri-Netz, dass jedesmal wenn eine Marke in T platziert wird, ein Schaltvorgang von T0 oder T1
statt findet und somit Q und Qn ihre Markenanzahl tauschen.
4.2 System zur Transformation 85
T Q
Qn
P: 1
T0
P: 1
T1
(a)
T Qt Qtn Qt+1Qt+1
n
0 0 1 0 1
0 1 0 1 0
1 0 1 1 0
1 1 0 0 1
(b)
Abbildung 4.12: (a) zeigt ein T-Flip-Flop als DCPN. (b) zeigt die dazugehorigeWahrheitstabelle.
4.2 System zur Transformation
Nach der Definition des neuen Petri-Netz-Typs der Digital Circuit Petri Netserfolgt nun die Beschreibung des in dieser Arbeit eingefuhrten Transforma-tionsprozesses. Zur Transformation eines DCPN in eine digitale Schaltungsind sieben Schritte durchzufuhren. Hierzu erfolgt eine Aufteilung der Teil-schritte in Strategien, die auf die eingefuhrten Eigenschaften eines DCPNzuruckgreifen. Die Transformation besteht aus den in Abbildung 4.13 be-schriebenen Teilschritten.
Abbildung 4.13: Der Transformationsprozess von der Modellierung bis zur er-zeugten digitalen Schaltung. Die einzelnen Schritte werden dabei in den nachstenAbschnitten in Strategien aufgeteilt.
Modellierung des DCPN
Validierung des Netzes
Optimierung des Netzes
Netzanalyse
Synthese
Erzeugung der VHDL-Beschreibung
Verifikation der Schaltung
86 4 Transformation von DCPN nach VHDL
Die Erlauterung und Aufteilung erfolgt in den nachsten Abschnitten in derReihenfolge der Durchfuhrung. Hierzu dient Abbildung 4.13 als Ubersicht.Der Prozess zur Transformation kann auf zwei unterschiedliche Weisenerfolgen: Zum einen kann die Transformation des gesamten DCPN durch dieTransformation jedes einzelnen Subnetzes erfolgen. Zum anderen kann diein Abschnitt 3.3.1 eingefuhrte Hierarchieauflosung durchgefuhrt werden, umaus dem Petri-Netz eine Gesamtschaltung zu erzeugen. Im Weiteren erfolgtdie Beschreibung der beiden Methoden der Transformation, es wird abernicht explizit darauf hingewiesen, da die hierarchische Transformation in denmeisten Fallen die gleichen Methoden verwendet und sonst klar als Strategiefur hierarchisches Netz zu erkennen ist. Die zu beachtenden Anpassungenam Transformationsprozess sind an den jeweiligen Stellen angemerkt.
Als erstes muss die Modellierung des geplanten Systems als DCPN durch-gefuhrt werden, wobei die bisher beschriebenen Eigenschaften des letztenKapitels zum Einsatz kommen. Bei der Modellierung des Netzes ist auf dasVermeiden von zu großen Netzen innerhalb eines Haupt- oder Subnetzes zuachten, da hierdurch eine Zustandsraumexplosion bei der Transformationentstehen kann und das Petri-Netz bei Anpassungen fur den Modellierer desNetzes unubersichtlich werden kann. Daraufhin erfolgt die Validierung desModells, um fehlerhafte oder widerspruchliche Eigenschaften des Netzes zuerkennen und diese als Fehler im Netz zu kennzeichnen. Weiterhin erfolgenin diesem Schritt Strategien zur Erkennung moglicher Optimierungen imNetz, die aber erst im nachsten Teilschritt umgesetzt werden, da hierdurcheine klare Trennung von Optimierung und Validierung erreicht wird.
Nach der Validierung des Netzes wird die Durchfuhrung der Optimierungdes Netzes gestartet, bei der unter anderem Elemente ohne Auswirkungauf das Verhalten entfernt werden. In diesem Schritt wird die Erkennungund Zusammenfassung von redundanten Elementen ausgefuhrt. Gefolgt wirddieser Abschnitt von der generellen Netzanalyse, bei der die Aufteilung nachNetztyp und Schaltungsart durchzufuhren ist. Weitere fehlerhafte Model-lierungen konnen in diesen Strategien erkannt werden, da eine umfassendeAnalyse des Petri-Netzes erfolgt. Diese sind dann ebenfalls als Fehler imModell kenntlich zu machen.Die Anpassung auf die Zielarchitektur ist der nachste durchzufuhrende
Schritt, da abhangig von dieser unter anderem Takte implementiert werdenmussen, um zum Beispiel den Takt an die Schaltzeiten der modelliertenTransitionen anzupassen. Auch das gewahlte Entwurfsverfahren wirkt sichin diesem Teilschritt der Transformation aus, da unterschiedliche Ziele beider Optimierung erreicht werden konnen. Die Transformation des DCPN inVHDL ist der darauf aufbauende Abschnitt, bei dem die Schnittstellen des
4.3 Validierung des Netzes 87
gesamten Netzes und/oder der Subnetze erzeugt werden. Weiterhin erfolgtdie Beschreibung des Verhaltens oder der Struktur abhangig vom erkanntenNetz- und Schaltungstyp.
Abgeschlossen wird die Transformation des Netzes durch eine Verifikationder erzeugten digitalen Schaltung, indem ein Vergleich mit dem Ausgangs-modell durchgefuhrt wird. Danach erfolgt eine Uberprufung, ob die erzieltenErgebnisse ubereinstimmen. Hierzu sind beide Systeme zu simulieren unddie Ausgaben zu vergleichen. Dieser Schritt dient der Uberprufung der Er-gebnisse des Transformationsprozesses dieser Arbeit und kann in spaterenAnwendungen weggelassen werden. In der spateren Umsetzung des Transfor-mationsprozesses im Tool Logical PetriNet ist der Schritt der Verifikationgetrennt durchzufuhren, da die generierte VHDL-Beschreibung erst durchein externes Tool synthetisiert und simuliert werden muss.
Die Schritte der Transformation sind immer in Strategien unterteilt, die ineiner bestimmten Reihenfolge oder unter Umstanden auch parallel ausfuhrbarsind. Jeder Abschnitt startet mit einer Tabelle, die alle Strategien desSchritts enthalt und wird mit einem Uberblick der Ausfuhrungsreihenfolgeabgeschlossen.
4.3 Validierung des Netzes
Bei der Validierung des erstellten Modells sind Strategien anzuwenden, umein transformierbares DCPN zu erkennen. Dabei kommen die in Tabelle4.2 angegebenen Strategien zum Einsatz. Diese dienen dem Entwickler zurErkennung und Behebung von fehlerhaften Modellierungen. Zusatzlich istdie Validierung des Netzes notwendig um das DCPN automatisiert transfor-mieren zu konnen.
Die erste Uberprufung, die stattfinden sollte, ist die Existenz mindestenseiner Ausgangsstelle im Hauptnetz des DCPN. Ohne diese Stelle ist dieTransformation eines Netzes nicht sinnvoll, da kein Ausgang erzeugt wirdund alle internen Ablaufe der Schaltung entfernt werden konnen. DigitaleSchaltungen ohne Ausgang sind daher nicht transformierbar und werden indiesem Schritt als solche gekennzeichnet.Eingangsstellen sind dagegen keine Notwendigkeit im DCPN. So existie-
ren digitale Schaltungen, welche nicht von Eingangssignalen abhangig sind.Hierzu gehoren beispielsweise Zahler oder zyklisch wiederkehrende Ausgangs-folgen. Diese hangen nur vom Takt ab und konnen wie in Abschnitt 4.1.2mit einem Takt versehen werden, der nicht explizit als Eingangsstelle zu mo-dellieren ist. Nur bei zeitlosen DCPN ohne Taktung muss eine Eingangsstelle
88 4 Transformation von DCPN nach VHDL
Tabelle 4.2: Strategien zur Validierung des modellierten Digital Circuit PetriNets, um fehlerhafte Modellierungen und das Vorhandensein aller notwendigenElemente zu uberprufen.
# Strategie
1 Vorhandener Eingang und Ausgang
2 Vorhandene Transition
3 Kanten bei Eingangs- und Ausgangsstellen
4 Transition ohne eingehende/ausgehende Kante
5 Stellen ohne eingehende/ausgehende Kante
6 Eingehende/ausgehende Kanten bei Subnetzen
7 Zusammenhang
8 Starker Zusammenhang
9 Statische Konflikte
vorhanden sein, da die Schaltung sonst durch eine einmalig bestimmte festeVerdrahtung von High- und Low-Pegeln mit den Ausgangsstellen erzeugt wer-den kann und keine digitale Schaltung im eigentlichen Sinn zu erzeugen ist.Bei der Modellierung von Petri-Netzen kann es außerdem vorkommen, dassein System sich selbst steuert und durch Zustandsubergange die Ausgangedes Netzes befullt.
Strategie 1 Vorhandener Eingang und Ausgang
• Ausgangsstelle muss vorhanden sein Pout �= ∅• Wenn DCPN zeitlos ist, dann muss Pin �= ∅ sein
• Wenn DCPN (streng) zeitbehaftet ist, dann ist Pin = ∅ erlaubt
Als nachstes ist zu uberprufen, ob mindestens eine Transition vorhandenist. Dabei spielt es keine Rolle ob diese in einem Subnetz oder im Hauptnetzzu finden ist. Ist keine Transition vorhanden, so kann im Netz keine Zu-standsanderung vorgenommen werden und es kann keine digitale Schaltungerzeugt werden bzw. nur eine Schaltung mit den aktuellen Marken in denAusgangen.
Strategie 2 Vorhandene Transition
• Timm ∪ Ttime �= ∅
4.3 Validierung des Netzes 89
Alle vorhandenen Eingangsstellen sollten mindestens eine ausgehendeKante besitzen, da das restliche Netz sonst nicht von dieser Stelle abhangigist und die Markierung dieser keine Anderung des Ausgangs bewirken kann.Diese Stellen konnen bei der weiteren Transformation also unbeachtet bleibenund mussen am Ende nur wieder als nicht angeschlossener Eingang derSchaltung hinzugefugt oder komplett weggelassen werden. In dieser Arbeitwerden diese Stellen am Ende der Schaltung hinzugefugt, um die Schnittstelleaquivalent zum modellierten Netz zu halten.Ahnliches gilt bei Ausgangsstellen. Diese mussen immer eine eingehende
Kante besitzen, da sonst der Ausgang nicht vom restlichen Netz abhangigist. Sollte keine Kante an einer Ausgangsstelle vorhanden sein, dann ist dieErzeugung der Schaltung fur diese Stelle trivial, da an den Ausgangsstellenunabhangig von der Belegung der Eingangsstellen immer eine logische Nullanliegt, bzw. eine Eins, wenn in der Initialmarkierung M0 eine Marke liegt.
Strategie 3 Kanten bei Eingangs- und Ausgangsstellen
• Fur die Eingangsstellen: |p • | ≥ 1, ∀ p ∈ Pin
• Fur die Ausgangsstellen: | • p| ≥ 1, ∀ p ∈ Pout
Bei der Modellierung konnen Transitionen ohne ein- oder ausgehendeKante im Netz platziert worden sein. Diese haben grundsatzlich erst einmalkeinen negativen Einfluss auf die Transformation, sind aber fur einen spaterenArbeitsschritt zu markieren, da durch sie ungewollte Zustande ausgelostwerden konnen.
Transitionen ohne eingehende Kante treten als Markenproduzent auf, dadiese Transitionen immer schalten konnen, wenn die ausgehenden Stellen oh-ne Marken sind. So kann das Netz mit Marken geflutet werden. Transitionenohne ausgehende Kante konnen als Markenkonsument angesehen werden.Hier werden, sobald alle eingehenden Stellen mit Marken besetzt sind, dieseaus dem Netz entfernt (siehe Eigenschaft 7 und 8).
Strategie 4 Transition ohne eingehende/ausgehende Kante
• Markiere Transitionen mit eingehender Kante: | • t| ≥ 1, ∀ t ∈ T
• Markiere Transitionen mit ausgehender Kante: |t • | ≥ 1, ∀ t ∈ T
• Unmarkierte Transitionen in T fur spatere Betrachtung speichern
Normale Stellen im DCPN sollten ahnlich wie Transitionen auch auf dasVorhandensein von eingehenden und ausgehenden Kanten untersucht werden.
90 4 Transformation von DCPN nach VHDL
Dabei ist zu beachten, dass Stellen ohne eingehende Kanten niemals eineMarke beinhalten konnen, abgesehen davon, wenn bei der Initialmarkierungeine Marke platziert wurde. In allen anderen Fallen hindert eine solche Stellenur die dahinter angeschlossenen Transitionen an deren Aktivierung. Einesolche Stelle ist bei der Netzoptimierung zu entfernen und die mit einer nichthemmenden Kante verbundenen Transitionen sind zusatzlich zu entfernen.Bei ausgehenden hemmenden Kanten und keiner Marke in der Stelle ist nurdie Stelle nebst der Kante selber zu entfernen.Stellen ohne ausgehende Kante fugen bei einer einzelnen eingehenden
Kante dem Netz keinerlei zusatzliche Information und Verhalten hinzu undsind somit auch bei der Optimierung zu entfernen. Bei mehreren eingehendenKanten muss uberpruft werden, ob die Kanten zum verhindern des Schalt-vorgangs von unterschiedlichen Transitionen zur Anwendung kommen. Diesesind nicht ohne weitere Uberprufung aus dem Netz zu entfernen.
Strategie 5 Stellen ohne eingehende/ausgehende Kante
• Finde Stellen mit eingehenden Kanten: | • p| ≥ 1, ∀ p ∈ P
• Finde Stellen mit abgehenden Kanten: |p • |+ |p ◦ | ≥ 1, ∀ p ∈ P
• Markiere restliche Stellen in P fur spatere Betrachtung
Ahnlich wie bei Stellen und Transitionen sind die ein- und ausgehendenKanten bei Subnetzen von Interesse fur die Verifikation des Netzes, aber vorallem sind Sie fur eine mogliche Optimierung des Netzes wichtig. Hierbeikonnen Subnetze, egal ob Substelle oder Subtransition, bei der Optimierungentfernt werden, wenn keine ein- und ausgehende Kante vorhanden ist.Subnetze ohne eingehende Kante sind bei der Transformation dagegen
nur einmalig zu betrachten, da unabhangig von eingehenden Signalen immerder gleiche Ausgangszustand des Netzes produziert wird. Hierbei spieltdie Art des Subnetzes keine Rolle, nur ist bei Subtransitionen drauf zuachten, wann der jeweilige Ausgang des Subnetzes aktiviert werden kann,da die Transitionen zeitlos oder -behaftet sein konnen und zusatzlich nochSchaltzeiten und Prioritaten ins Gewicht fallen.Substellen ohne ausgehende Kanten sind bei der Optimierung aus dem
DCPN zu entfernen, da diese nur Marken aufnehmen konnen, diese aberfur die weitere Aktivierung von Transitionen im nachsthoheren Netz derHierarchie keinerlei Anderungen mehr bewirken. Hier muss einzig uberpruftwerden, ob von mehreren eingehenden Netzverbindungen in der Substellemehrere auf eine Stelle zeigen. Diese kann dann ins hohere Netz ubernommenwerden und dort die Substelle ersetzen.
4.3 Validierung des Netzes 91
Subtransitionen ohne ausgehende Kanten konnen nur Marken aus Stellendes hierarchisch nachsthoheren Netzes entfernen und sind daher ebenfallsim Optimierungsschritt zu vereinfachen, indem einmalig fur alle Eingangs-kombinationen das Verhalten bestimmt wird und dieses je nach Zustanddes Netzes Marken aus den angeschlossenen Stellen entnimmt. Da fur beideSubnetztypen die gleichen Regeln gelten, wird in dieser Strategie fur beideKnotentypen s als Zeichen verwendet.
Strategie 6 Eingehende/ausgehende Kanten bei Subnetzen
• ∀s ∈ S mit S = Psub ∪ Tsub
• Keine Kanten: | • s|+ |s • | = 0
• Existierende eingehende Kanten: | • s| ≥ 1
• Existierende ausgehende Kanten: |s • | ≥ 1
Fur die spatere Analyse des DCPN ist der Zusammenhang des Netzes zuuberprufen. Hierbei konnen voneinander unabhangige Petri-Netze innerhalbdes Gesamtnetzes extrahiert werden. Diese Teilnetze konnen dann einzelnanalysiert werden, um die spateren Strategien vor allem im Bereich derStrukturanalyse zu vereinfachen. Im Schritt der Schnittstellenbeschreibungund Strukturbeschreibung mussen die Netze dann wieder zusammengefuhrtwerden.
Zur Uberprufung der Anzahl der unabhangigen Teilnetze wird, wie inder Eigenschaft 6 beschrieben, der Pfad von einem Element aus verfolgt,und alle verbundenen Elemente werden markiert. Pfad bedeutet im Falledes Zusammenhangs, dass jeder Kante von einem Element aus gefolgt wird,unabhangig der Richtung der Kante.Zur Uberprufung von Teilnetzen im DCPN ist von jeder Eingangs- und
Ausgangsstelle aus zu uberprufen welche Elemente mit dieser Stelle einenZusammenhang bilden. Hierbei muss jede Stelle nur in einem Zusammen-hang auftreten und ist dann in dieser Strategie nicht weiter zu betrachten.Zusammenhange, die auf diese Weise gefunden wurden und keine Verbindungzu anderen Teilen des Netzes besitzen, konnen als einzelne Netze aufgefasstwerden und diese werden in den nachsten Schritten einzeln analysiert.
Abbildung 4.14 zeigt ein DCPN, bei dem nach dem Bestimmen des Zu-sammenhangs mehrere Teilnetze zur weiteren Transformation entstehen.Die auftretenden Zusammenhange werden unterschiedlich behandelt. Einzusammenhangendes Netz, welches nur Eingangsstellen, aber keine Ausgangs-stellen besitzt, muss nicht weiter analysiert werden, da kein Auswirkungauf das Verhalten des Netzes nach außen existiert. In der Abbildung ist
92 4 Transformation von DCPN nach VHDL
P0
P1
P2 P5
P3
P4
P6
P7
P8
P9
P10
P11
P12
P13
P14
P: 3
T2
P: 7
T0
T: 8.0ns
T1
T: 12.0ns
T3
P: 4
T7
T: 9.0ns
T10
T: 18.0ns
T6
T: 5.0ns
T4
P: 3
T5
P: 12
T8
T: 12.0ns
T9
Abbildung 4.14: Hier zu sehen ist ein DCPN, an dem die unterschiedlichenMoglichkeiten des Zusammenhangs prasentiert werden. Dabei sind vier zusam-menhangende Netze zu erkennen.
dies das Netz mit den Stellen P2, P5 und den Transitionen T2, T4. Netze,die nur Ausgangsstellen besitzen, konnen an dieser Stelle nicht entferntwerden, da durch Ruckkopplungen innerhalb des Teilnetzes Anderungen amAusgang auftreten konnen (P8, P11, P14, T7, T10). Jedes Teilnetz mit einemAusgang ist somit zu analysieren und muss eine aquivalente Hardwarebe-schreibung erhalten. Als weitere Moglichkeit kann ein Teilnetz Eingangs-(P0, P1) und Ausgangsstellen (P12, P13) besitzen. Diese Teilnetze benotigeneine vollstandige Analyse, wenn durch den starken Zusammenhang nichtnoch weitere Teilnetze entfernt werden konnen. Die letzte Option sind alleElemente, die zu keinem Netz gehoren, sobald der Zusammenhang allerEingangs- und Ausgangsstellen festgestellt wurde. Diese Elemente mussenbei der weiteren Analyse nicht mehr betrachtet werden und sind ebenso wiedie Teilnetze ohne Ausgangsstelle im nachsten Teilschritt zu entfernen.
Strategie 7 Zusammenhang
• Bilde ∀p ∈ Pout den Zusammenhang von p aus als neues PN
• Fuge PN den zu analysierenden Petri-Netzen hinzu
• Alle nicht verwendeten Stellen in Pin fur spatere Schnittstelle speichern
Bei den zu analysierenden DCPN muss jetzt noch der starke Zusam-menhang uberpruft werden. Dabei konnen Netze, die keinen starken Zu-sammenhang von Eingangs- zu Ausgangsstellen besitzen, unter Umstandenvereinfacht werden. Dies erfolgt im Bereich der Optimierung und Analyse.Zur Bestimmung des starken Zusammenhangs wird von jeder Eingangstelleaus berechnet, ob alle Ausgangsstellen des Teilnetzes mit dieser Stelle ver-
4.3 Validierung des Netzes 93
bunden sind. Nicht erreichbare Ausgangsstellen und Eingangsstellen, die zukeinem Ausgang fuhren, werden markiert.
Strategie 8 Starker Zusammenhang
• Fur jedes zu analysierende PN uberprufe:
• Fur alle p ∈ Pin, erstelle starken Zusammenhang A∗
• Markiere alle Ausgangsstellen, die nicht in A∗ vorkommen
• Restliche Ausgangsstellen in Analyse genauer betrachten
• Alle p ∈ Pin ohne stark zusammenhangenden Ausgang markieren
Die Struktur des Netzes ist als letzte Strategie der Validierung des Net-zes auf statische Konflikte zu untersuchen, da diese im spateren Verlauf zuProblemen bei der Transformation fuhren konnen. Dabei konnen unterschied-liche Kombinationen von am Konflikt beteiligten Transitionen auftreten.Abbildung 4.15 zeigt alle Moglichkeiten mit zwei beteiligten Transitionen.Die hier aufgestellten Regeln sind fur beliebig viele Transitionen gultig.
P0
P: 3
T0
P: 3
T1
(a)
P1
P: 7
T2
P: 3
T3
(b)
P2
T: 0.3ns
T4
P: 3
T5
(c)
P3
T: 0.3ns
T6
T: 0.3ns
T7
(d)
P4
T: 0.3ns
T8
T: 0.7ns
T9
(e)
Abbildung 4.15: Alle Moglichkeiten eines Konflikts mit zwei Transitionen imDCPN: (a) zeigt den Konflikt bei zeitlosen Transitionen mit gleicher Prioritat, (b)bei unterschiedlicher Prioritat, (c) die Kombination aus zeitloser und zeitbehafteterTransition, (d) zwei zeitbhaftete Transitionen mit gleicher Schaltzeit und (e) mitunterschiedlichen Schaltzeiten.
Abbildung 4.15 (a) zeigt zeitlose Transitionen mit gleicher Prioritat. (d)zeigt zeitbehaftete Transitionen mit gleicher Schaltzeit. Bei den beidenauftretenden Konflikten sind diese zu markieren und bei spateren Problemenin der Strukturanalyse konnen daruber mogliche Fehler aufgefunden werden.Im Fall (b) sind unterschiedliche Prioritaten und in (e) unterschiedlicheSchaltzeiten gegeben. Wenn dies die einzigen Kanten zu den jeweiligen
94 4 Transformation von DCPN nach VHDL
Transitionen sind, so konnen die Transitionen mit der kleineren Prioritatoder der hoheren Schaltzeit entfernt werden. Die zu ihnen fuhrenden Kantenwerden niemals verwendet um Marken aus der Eingangsstelle zu entfernen. In(c) existieren zeitlose und zeitbehaftete Transitionen, so kann die zeitbehafteteTransition entfernt werden, da diese niemals schalten kann.
Strategie 9 Statische Konflikte
• Konflikt finden nach Eigenschaft 10
• Alle Konflikte in Menge K sammeln, k beinhaltet alle Transitionen desKonflikts:
– Nur zeitlose Transitionen in k∀t ∈ k, wenn mindestens zwei t mit hochster Pt,dann besteht ein KonfliktSonst besteht kein Konflikt
– Nur zeitbehaftete Transitionen in k∀t ∈ k, wenn mindesten zwei t mit kleinster SWt,dann besteht ein KonfliktSonst besteht kein Konflikt
– Zeitlose und zeitbehaftete Transitionen in k∀t ∈ k, wenn mindestens zwei t mit hochster Pt,dann besteht ein KonfliktSonst besteht kein Konflikt
S1 Vorhandener Eingang und AusgangS2 Vorhandene TransitionS3 Kanten bei Eingangs- und AusgangsstellenS4 Transition ohne eingehende/ausgehende KanteS5 Stellen ohne eingehende/ausgehende KanteS6 Eingehende/ausgehende Kanten bei SubnetzenS7 ZusammenhangS8 Starker ZusammenhangS9 Statische Konflikte
Abbildung 4.16: Die einzelnen Phasen der Validierung des modellierten DCPN.Die Strategien S1 Ausgang und S2 konnen zum Abbruch der Transformationfuhren.
Validierung
S5S1 Eingang
S1 Ausgang
S3
S2
S4
S6S7
S8
S9
4.4 Optimierung des Netzes 95
Zum Abschluss der Validierung des Netzes sind alle Teilschritte mit ihremlogischen Zusammenhang und ihrer moglichen Ausfuhrungsreihenfolge inAbbildung 4.16 zu sehen. Die Teilschritte, die dabei ein fehlerbehaftetesDCPN erkennen, sind gesondert in rot gekennzeichnet und bei jeder dieserMethoden kann ein Abbruch der Transformation stattfinden. Bei allen ande-ren Strategien kann ein Abbruch in den weiteren Teilschritten erfolgen, aberdas alleinige Auffinden der genannten Elemente fuhrt nicht zu einem Fehlerin der Transformation.
4.4 Optimierung des Netzes
Bei der Netzoptimierung werden uberflussige und nicht verwendete Elementedes modellierten Netzes entfernt oder mehrere Elemente zusammengefasst.Die Erkennung der zu andernden Elemente ist im Bereich der Verifikationgeschehen, deren Ergebnis hier seine Anwendung. Durch die Optimierung derStruktur des DCPN kann die Transformation in eine digitale Schaltung verein-facht werden. Tabelle 4.3 bietet einen Uberblick uber die durchzufuhrendenOptimierungsstrategien.
Tabelle 4.3: Strategien zur Optimierung des verifizierten DCPN, die vor allemzur Bereinigung des Netzes durchzufuhren sind.
# Strategie
10 Entfernung von Elementen ohne Kanten
11 Zusammenfassung von parallelen Transitionen
12 Zusammenfassung von Transitionen in Reihe
13 Entfernung von Stellen ohne eingehende Kante
14 Entfernung nicht zusammenhangender Netzbereiche
15 Reduktion von Netzsymmetrien
Als erster Schritt konnen alle Elemente, die keinerlei ein- und ausgehendeKante besitzen, entfernt werden. Diese Elemente haben auf die Strukturdes Netzes keine Auswirkung. Dabei sind einzig die Eingangs- und Aus-gangsstellen zu markieren, um diese im spateren Verlauf nach der Analysedes Netzes wieder hinzuzufugen. Wahrend des Transformationsprozessesvereinfacht es die Arbeit, da fur weniger mogliche Kombinationen Erreich-barkeitsgraphen aufzustellen sind. In Strategie 10 muss die Suche nach denElementen ohne ein- und ausgehende Kanten fur die Stellen, Transitionen
96 4 Transformation von DCPN nach VHDL
und beide Subnetztypen durchgefuhrt werden und wird daher mit Elemente beschrieben.
Strategie 10 Entfernung von Elementen ohne Kanten
• ∀e ∈ E mit E = P ∪ T ∪ Psub ∪ Tsub
• Finde alle Elemente | • ei|+ |ei • | = 0
• Wenn ei ∈ Pin ∪ Pout, dann speichere das Element
• Entferne alle Elemente ei aus dem Netz
P0 P1
P2
P3
P: 11
T0
P: 4
T1
P: 7
T2
T: 3.0ns
T3
T: 4.0ns
T4
T: 7.0ns
T5
(a)
P0 P1
P2
P3P: 11
T0
T: 3.0ns
T1
(b)
Abbildung 4.17: Optimierung von parallelen Transitionen. In (a) ist das Aus-gangsnetz zu sehen. (b) zeigt das optimierte Netz nachdem Strategie 11 durch-gefuhrt wurde.
Zur Verringerung der Netzgroße konnen bestimmte Transitionen zu einereinzelnen zusammengefasst werden. Dabei existieren zwei Moglichkeiten.Zum einen sind Transitionen, die alle parallel zueinander existieren, zu einerzusammenfassbar, wenn sonst keine weiteren Verbindungen bestehen. Beizeitlosen Transitionen erhalt die neue Transition die hochste Schaltprioritatder vorher existenten Transitionen, dagegen bekommt bei nur zeitbehaftetenTransitionen die neue Transition die kleinste gemeinsame Schaltzeit.
Dabei ist darauf zu achten, dass alle Transitionen nur Ausgangskanten zuder oder den gleichen Stellen besitzen durfen. Abbildung 4.17 zeigt in (a)einen Teil des Ausgangsnetzes und in (b) die optimierte Version des Netzes.Bei einer Kombination von zeitlosen und zeitbehafteten Transitionen ist eben-falls die zeitlose Transition mit der hochsten Prioritat als Ersatztransitionzu verwenden.
4.4 Optimierung des Netzes 97
Strategie 11 Zusammenfassung von parallelen Transitionen
• Fasse Transitionen zusammen, wenn •t und t• bei allen Transitionen gleich
• Speichere Transitionen in Tr und ersetze Transitionen durch tn:
• Wenn Tr ∩ Timm �= ∅, dann hat tn die Prioritat maxP(Tr ∩ Timm)
• Wenn Tr ∩ Timm = ∅, dann hat tn die Schaltzeit mintsw(Tr ∩ Ttime)
Weiterhin konnen Transitionen zusammengefasst werden, wenn sie inReihe hintereinander geschaltet sind. Dabei ist ebenso wie bei den parallelenTransitionen darauf zu achten, das keine ein- oder ausgehenden Kanten inder Reihenschaltung der Transitionen existieren, die nicht zu Transitionender Kette gehoren.Die Schaltzeiten von zeitbehafteten Transitionen sind dabei zu addieren
und bei zeitlosen Transitionen ist die erste Prioritat anzunehmen. Bei einergemischten Reihenschaltung aus beiden Transitionstypen sind zwei hinter-einander geschaltete Transitionen als neue Elemente ins Netz einzufugen,wobei die Reihenfolge der Transitionen von der bisherigen Reihenfolge imNetz abhangt.Abbildung 4.18 zeigt das noch nicht optimierte Netz in (a) und das op-
timierte Resultat in (b). Dabei sind in (a) zwei voneinander unabhangigeReihenschaltungen von Transitionen zu sehen. Diese sehen nach der Opti-mierung wie die in (b) dargestellten Netze aus. Die Namen der Transitionenentsprechen dabei immer dem ersten Namen der Reihe der nicht optimiertenTransitionen, konnen generell aber zufallig gewahlt werden. Bei den Stel-len werden immer der Name der ersten und der letzten Stelle der Reiheverwendet, da diese im Netz nicht verandert werden.
P0 P1 P2 P3
P4 P5 P6 P7
P: 6
T0
P: 13
T1
P: 1
T2
T: 0.5ns
T3
T: 0.75ns
T4
T: 1.25ns
T5
(a)
P0 P3
P4 P7
P: 13
T0
T: 2.5ns
T1
(b)
Abbildung 4.18: Optimierung von sequentiellen Transitionen. In (a) ist dasAusgangsnetz zu sehen. (b) zeigt das optimierte Netz nachdem Strategie 12 durch-gefuhrt wurde.
98 4 Transformation von DCPN nach VHDL
Strategie 12 Zusammenfassung von Transitionen in Reihe
• Finde Transitionen in Reihe, die nur ti• = •tj und |ti • | = | • tj | besitzen• Speichere diese Transitionen in Tr und ersetze Transitionen durch tn:
• Wenn Tr ∩ Ttime = ∅, dann hat tn die Prioritat maxP(Tr)
• Wenn Tr ∩ Timm = ∅, dann hat tn die Schaltzeit sumtsw(Tr)
• Wenn Tr ∩ Timm �= ∅ und Tr ∩ Timm �= ∅, fuge zwei Transitionen tt mitSchaltzeit sumtsw(Tr) und tp mit Prioritat maxP(Tr) hinzu
Die in Strategie 5 gefundenen Stellen konnen jetzt aus dem Netz entferntwerden, wenn sie die dort angegebenen Bedingungen erfullen. Dabei sind alleStellen die keine eingehende Kante, keine Marke und nur normale ausgehendeKanten besitzen zu entfernen. Die anhangenden Transitionen an dieser Stellesind ebenfalls zu entfernen, da sie niemals schalten konnen. Ebenso gilt diesfur Stellen ohne Eingangskante, mit einer Marke belegt und nur hemmendeausgehende Kanten besitzen. Hier kann die Stelle und die angeschlossenenTransitionen ebenfalls entfernt werden, da die Transition niemals aktiv seinkann.
Strategie 13 Entfernung von Stellen ohne eingehende Kante
• ∀p ∈ P entferne p, wenn | • p| = 0 ∧ (M(p) = 0 ∧ p•) ∨ (M(p) = 1 ∧ p◦)• Entferne die Transition t bei der gilt p• ∈ •t• Entferne alle Kanten •t und t•
Die in Strategie 7 markierten Netzteile ohne Ausgangsstelle konnen indiesem Schritt entfernt werden. Sie sind fur die weitere Analyse nicht mehrnotwendig, da sie keinen Einfluss auf die Ausgange des Netzes besitzen.Die Erkennung erfolgt in Strategie 7. Die einzelnen Netze werden dann alleseparat analysiert und im Transformationsprozess bei der Generierung derHardwarebeschreibung wieder zusammen gefuhrt.
Strategie 14 Entfernung nicht zusammenhangender Netzbereiche
• Losche alle Elemente des PN , die nicht mit einer Ausgangsstelle in Ver-bindung stehen
Zur weiteren Reduktion von Elementen innerhalb eines DCPN konnenSymmetrien des Netzes beachtet werden und diese redundanten Zweigesind zusammenzufassen. Solche Symmetrien innerhalb eines Petri-Netzes
4.5 Netzanalyse 99
werden aquivalente Markierungen genannt und wurden erstmals in [HJJ+85]betrachtet. Eine Symmetrie des Netzes ist dabei eine eindeutige Abbildungzwischen zwei Mengen an Knoten, bei der die Knotenarten und die Kantenerhalten bleiben.
Strategie 15 Reduktion von Netzsymmetrien
• Reduziere Symmetrien auf eine einzelne Reprasentation dieses Netzteils
Abbildung 4.19 zeigt die einzelnen Phasen der Netzoptimierung und gibtan, in welcher Reihenfolge diese auszufuhren sind. Gsleichzeitig ausfuhrbareTeilschritte sind ebenfalls kenntlich gemacht. Die Strategien 11 und 12werden abwechselnd solange ausgefuhrt, bis bei beiden Strategien keineAnderung am Netz mehr vorgenommen wird. Dies ist erforderlich, da nachdem Zusammenfassen von Transitionen jeweils neue Optimierungen entstehenkonnen. Nach der Optimierung beginnt die Strukturanalyse des Netzes.
S10 Entfernung von Elementen ohne KantenS11 Zusammenfassung von parallelen TransitionenS12 Zusammenfassung von Transitionen in ReiheS13 Entfernung von Stellen ohne eingehende KanteS14 Entfernung nicht zusammenhangender NetzbereicheS15 Reduktion von Netzsymmetrien
Abbildung 4.19: Alle Teilschritte der Netzoptimierung zur Vorbereitung auf dieStrukturanalyse, wobei in diesem Teilschritt der Transformation vor allem dieReduktion des Petri-Netzes im Mittelpunkt steht.
4.5 Netzanalyse
Bei der Netzanalyse wird der Aufbau des DCPN untersucht und es werdenStrategien fur die einzelnen Netztypen in Abhangigkeit von den Eigenschaftendes Netzes entwickelt. Fur kombinatorische und sequentielle Logik sind imnachsten Schritt unterschiedliche Methoden zur Synthese durchzufuhren unddarauf aufbauend sind verschiedene Beschreibungen in VHDL zu erzeugen.Tabelle 4.4 zeigt dabei alle fur die Strukturanalyse benotigten Strategien.
Optimierung
S10 S11 S12 S13 S14
S15
100 4 Transformation von DCPN nach VHDL
Tabelle 4.4: Strategien zur Netzanalyse des modellierten DCPN. Dabei werdenalle Strategien auf den im letzten Schritt gefundenen Teilnetze durchgefuhrt.
# Strategie
16 Bestimmung Netztyp
17 Erreichbarkeitsgraphen aufstellen
18 Zyklen bestimmen
19 Terminierung
20 Zeitlose Terminierung
21 Eindeutiger Endzustand
22 Eindeutig definierter Zustand
23 Zustandsfreiheit
24 Schaltungstyp bestimmen
Die in Strategie 7 aufgeteilten DCPN sind in diesem Teilschritt alle einzelnzu behandeln und die Zusammenfuhrung erfolgt im Abschnitt zur Erzeugungder VHDL-Beschreibung. Hierdurch entstehen kleinere Teilschaltungen, dieunter Umstanden besser optimiert werden konnen und deren Uberfuhrungin eine Hardwarebeschreibungssprache weniger aufwendig ist. Wenn keinHierarchieauflosung des Netzes erfolgt ist, dann ist ab hier auch jedes Subnetzals eigenes Petri-Netz zu betrachten und die Strategien sind alle einzelndurchzufuhren.
Als erstes ist der Netztyp des DCPN zu bestimmen. Dabei sind die im Netzvorhandenen Transitionen zu untersuchen. Hierbei erfolgt die Klassifizierungnach der Eigenschaft 23 zur Bestimmung des Netztyps. Unterschieden wirddabei das Vorhandensein von ausschließlich zeitlosen oder zeitbehaftetenTransitionen. Als letzte Moglichkeit besteht noch eine Mischung der beidenTransitionstypen.
Strategie 16 Bestimmung Netztyp
• Bestimmung Netztyp anhand der vorhandenen Transitionen
• Ttime = ∅ und Timm = ∅ nicht moglich (Strategie 2)
• Ttime = ∅ und Timm �= ∅ ⇒ Netz ist zeitlos
• Ttime �= ∅ und Timm �= ∅ ⇒ Netz ist zeitbehaftet
• Timm = ∅ und Ttime �= ∅ ⇒ Netz ist streng zeitbehaftet
4.5 Netzanalyse 101
Fur die weiteren Schritte der Analyse muss der Erreichbarkeitsgraphaufgestellt werden, wobei eine der in Kapitel Drei aufgezeigten Methoden zurAnwendung kommt. Der Graph ist fur jede mogliche EingangskombinationMin aufzustellen. Das heißt, fur n = |Pin| Eingange des DCPN existieren 2n
mogliche Kombinationen, da jeder Eingang keine oder eine Marke beinhaltenkann.
Hier ist darauf zu achten, dass die in den vorherigen Strategien aufgeteiltenNetze einzeln betrachtet werden und sich dadurch weniger Eingangskombi-nationen ergeben konnen, als wenn das gesamte Netz fur das Aufstellen desErreichbarkeitsgraphen verwendet wird. In dieser Strategie kann in spaterenArbeiten zusatzlich noch die Beschranktheit des Netzes uberpruft werden,wird aber nach der bisherigen Definition der Beschranktheit fur DCPN nichtbenotigt, da diese immer 1-beschrankt sind. Bei spateren Erweiterungen miteiner hoheren Markenanzahl ist dieser Punkt aber mit ins Transformations-system aufzunehmen.
Fur weitere Betrachtungen von eindeutig bestimmbaren zeitlichen Zustan-den des Netzes muss der reduzierte Erreichbarkeitsgraph fur alle erzeugtenRG aufgestellt werden. In diesem existieren nur noch Markierungen, in denenZeit verbracht wird. Dies kann die Anzahl der Zustande stark reduzieren undsomit bei einer Implementierung Speicher sparen und wird fur die Analysedes eindeutigen Zustandes benotigt.
Strategie 17 Erreichbarkeitsgraphen aufstellen
• ∀m ∈ Min ⇒ RG aufstellen (Eigenschaft 16)
• RG∗ enthalt alle Erreichbarkeitsgraphen RG
• Aus RG∗ alle RRG bestimmen (Eigenschaft 19)
• RRG∗ enthalt dann alle reduzierten Erreichbarkeitsgraphen RRGs
Zur Unterscheidung von kombinatorischer und sequentieller Logik istdas Vorhandensein oder die Abwesenheit von Zyklen in einem DCPNmit ausschlaggebend. Ruckkopplungen im Netz konnen zuverlassig aufSpeicher innerhalb des Netzes hinweisen. Es konnen auch Zustande oh-ne Ruckkopplungen im Netz gespeichert werden, diese hangen dann aberstark von der Reihenfolge der Eingangsmarkierungen des Netzes ab. Ebenfallskann die Struktur des Netzes Speicher produzieren. Ihre Betrachtung erfolgtin einer nachfolgenden Strategie, nachdem das Netz auf Zyklen uberpruftwurde.
Die Feststellung ob ein Netz frei von Zyklen ist erfolgt uber die Analyse desErreichbarkeitsgraphen. Dabei weist ein Zyklus im Erreichbarkeitsgraphen
102 4 Transformation von DCPN nach VHDL
auch auf einen Zyklus im DCPN hin, da eine wiederkehrende Markierungeingenommen wird. Zum Auffinden eines Zyklus wird der Graph von derInitialmarkierung aus durchlaufen und jeder betretene Knoten ist zu mar-kieren. Dabei sind alle von einer Markierung m ausgehenden Kanten zuverfolgen und deren Ziel zu betreten. Beim Betreten eines bereits markiertenKnoten ist an dieser Stelle ein Zyklus gefunden und dieser kann markiertwerden. Danach ist die Suche nach weiteren Zyklen fortzusetzen, bis allevorhandenen Kanten des Erreichbarkeitsgraphen durchlaufen wurden. Solltebei einer Eingangsmarkierung Min als Startmarkierung ein Zyklus auftreten,so ist das gesamte Netz nicht zyklenfrei und muss im weiteren Verlauf derTransformation als ruckgekoppeltes System betrachtet werden. Die Her-leitung und Anwendung dieser Methode zum Auffinden von Zyklen ist in[PW12], [Sta13] und [SKD16] nachzulesen.Bei der Erkennung eines Zyklus wird der Erreichbarkeitsgraph entgegen
seiner gerichteten Kanten abgelaufen und der Weg in einer Schaltfolge Sabgespeichert. Beim Wiederbetreten des Startknotens ist der Zyklus geschlos-sen und S kann auf die Art der Transitionen Tz und die Menge der Kanten•t und t• hin untersucht werden. Hierbei gilt ein besonderes Augenmerk denZyklen mit nur zeitlosen Transitionen, da diese Hazards in der erzeugtenSchaltung generieren konnen. Dies folgt daraus, dass kein definierter Zustanddes DCPN erfolgt, wenn unendlich haufig zeitlose Transitionen schaltenkonnen.
Strategie 18 Zyklen bestimmen
• ∀m ∈ Min: Starte in RG bei m = M0 und markiere M0
• Fuhre dies fur alle durch m• verbundenen Knoten aus, solange |m • | > 0
• Wenn m markiert ist ⇒ Zyklus z wurde gefunden
• Markiere alle im Zyklus z vorhandenen Transitionen in Tz
• Fuge den Zyklus z der Menge aller Zyklen des Netzes Z hinzu
Die Terminierung ist auf die Erkennung von Zyklen zuruckzufuhren. Diegenerelle Uberprufung der Terminierung wird in der Erzeugung einer sequen-tiellen Schaltung verwendet. Um den Status einer Schaltung als sequentielleSchaltung feststellen zu konnen, werden alle Netze auf Terminierung unter-sucht. Zusatzlich wird die Terminierung fur Strategie 21 benotigt, da dieFeststellung eines eindeutigen Endzustandes nur bei terminierenden Netzenerfolgen kann. Das bedeutet, ein Netz terminiert immer dann, wenn keinZyklus existiert. Dies bedeutet die Menge der Zyklen Z muss leer sein. Eine
4.5 Netzanalyse 103
Markenexplosion kann nicht auftreten, da das Netz 1-beschrankt ist nachEigenschaft 5.
Strategie 19 Terminierung
• Netz terminiert, wenn Z = ∅
Zusatzlich ist bei Zyklen noch festzustellen ob in ihnen zeitbehafteteTransitionen vorkommen, da dann ein Transformation des Netzes moglich ist.Bei Zyklen die ausschließlich aus zeitlosen Transitionen bestehen muss einenahere Betrachtung durchgefuhrt werden. Sollte keine weitere Bedingungfur mindestens eine der Transitionen des Zyklus bestehen. Der Zyklus kannalso nicht durch das Schalten von Transitionen unterbrochen werden. Beimzeitlosen DCPN muss das Netz also frei von Zyklen sein, da sonst keindefinierter Endzustand bestimmt werden kann. Eine zyklenbehaftete, zeitloseSchaltung besitzt keinen eindeutigen Zustand an den Ausgangen. Da keineZeit vergeht wahrend der Zyklus durchlaufen wird, ist die Schaltung inmehreren unterschiedlichen Zustanden gleichzeitig. Solche Netze sind dahernicht zur Transformation in ein digitales System geeignet.
Strategie 20 Zeitlose Terminierung
• Wenn ∀z ∈ Z gilt: Tz ∩ Ttime �= ∅ ⇒ keine zeitlose Terminierung
• Wenn ∀z ∈ Z gilt: Tz ∩ Ttime = ∅ ⇒ zeitlose Terminierung
Nach der Uberprufung der zeitlosen Terminierung existieren nur nochNetze, die zu jedem Zeitpunkt einen oder einen von mehreren moglichenZustande besitzen konnen. Mehrere Zustande bedeutet in dem Zusammen-hang, dass abhangig von der Schaltreihenfolge von Transitionen unterschied-liche Zustande erreicht werden konnen. Abbildung 4.20 zeigt zwei DCPN,wobei in beiden Netzen ein Konflikt zwischen den Transitionen T0 und T1
besteht. Die Schaltzeiten von T0 und T1 sind in beiden Fallen gleich, so dassper Zufall entschieden wird, welche Transition schaltet. (a) zeigt ein Netz,bei dem der Ausgangszustand des Netzes keine Unterscheidung erfahrt, jenachdem welche Transition feuert. In (b) dagegen werden je nach schaltenderTransition unterschiedliche Ausgange aktiviert (T0 → P1, T1 → P4). Hierausfolgen die beiden Strategien zur Erkennung eines eindeutigen Endzustandesund eines definierten Zustandes.Der eindeutige Endzustand hat nur Auswirkungen auf zeitlose DCPN.
Hierbei muss ein Netz unter jeder beliebigen Kombination und Reihenfolge
104 4 Transformation von DCPN nach VHDL
P0 P1
P2
P3
T: 10.0ns
T0
T: 10.0ns
T1
P: 7
T2
P: 3
T3
(a)
P0
P1P2
P3 P4
T: 10.0ns
T0
T: 10.0ns
T1
P: 7
T2
P: 3
T3
(b)
Abbildung 4.20: Hier sind zwei Konflikte zu sehen, bei denen die unterschied-lichen Auswirkungen von Konflikten aufgezeigt werden. In (a) ist beim Konfliktzwischen T0 und T1 unerheblich welche Transition feuert, da am Ende immer derAusgang P1 mit einer Marke belegt wird. In (b) dagegen wird abhangig von derschaltenden Transition (T0, T1) entweder Ausgang P1 oder P4 aktiviert.
an Markierungen der Eingangsstellen Min einen eindeutigen Endzustandbesitzen. Ob dieser uber unterschiedliche Zustande innerhalb des Erreichbar-keitsgraphen erreicht wird, ist unerheblich. Ein Endzustand ist eine Markie-rung im Erreichbarkeitsgraphen von dem keine gerichteten Kanten abgehen.Bei mehr als einem Endzustand kann das zeitlose Netz nicht transformiertwerden und der Prozess wird abgebrochen. Fur (streng) zeitbehaftete DCPNkann der eindeutige Endzustand ebenfalls aufgestellt werden, ist aber keineVoraussetzung, damit das Netz transformiert werden kann.
Strategie 21 Eindeutiger Endzustand
• Eindeutiger Endzustand, wenn gilt |me| = 1,mit me = {m | |m • | = 0}, ∀m ∈ M
Bei (streng) zeitbehafteten DCPN muss zu jedem Zeitpunkt genau eindefinierter Zustand im Netz vorhanden sein. Hierbei wird der reduzierte Er-reichbarkeitsgraph RRG aus Eigenschaft 19 verwendet. In diesem existierennur Zustande (Markierungen) in denen Zeit verbracht wird. Hierdurch ist inAbbildung 4.20 (a) unbedeutend welche Transition (T0, T1) feuert, da beideSchaltvorgange im RRG die gleiche Markierung (0, 1, 0, 0) erzeugen.
Abbildung 4.21 (a) zeigt ein DCPN, bei dem T0 und T1 nach 10ns schaltenkonnen. Durch die Eigenschaft 3 ergibt sich, dass nur eine der beiden Tran-sition zu einem Zeitpunkt feuern kann. Danach wird das Netz uberpruft aufweitere zeitlose schaltfahige Transitionen. Eine zeitbehaftete Transition, beider die Schaltzeit abgelaufen ist, wird wie eine zeitlose Transition betrachtet.
4.5 Netzanalyse 105
P0
P1
P2
P3
P4
T: 10.0ns
T0
T: 10.0ns
T1
T: 4.0ns
T2
(a)
P0
P1
P2
P3
P4
P: 5
T2
T: 14.0ns
T0
T: 8.0ns
T1
(b)
Abbildung 4.21: (a) zeigt ein Netz mit zwei aktivierten Transitionen (T0, T1) mitgleichen Schaltzeiten. Sie erzeugen im RRG den gleichen Folgezustand, unabhangigdavon welche der Transitionen zuerst schaltet. (b) zeigt ein Netz mit zwei definiertenFolgemarkierungen, da die Transitionen T0 und T1 durch ihre unterschiedlichenSchaltzeiten in definierter Reihenfolge schalten.
Die Folgemarkierung im RRG entspricht also (0, 0, 1, 1, 0). In (b) ist einNetz zu sehen, bei dem die Transitionen T0 und T1 unterschiedlich langeSchaltzeiten besitzen, erst das Schalten von T2 erzeugt eine Anderung amAusgang in P4. Dabei generiert der Schaltvorgang von T1 einen neuen defi-nierten Zustand zu einem Zeitpunkt, welcher aber keine Auswirkungen aufdie Belegung der Ausgange zulasst. Die Belegung der Stelle P0 konnte sichjetzt andern und die Marke entfernt, nachdem T1 geschaltet hat. Dann wurdeder Ausgang P2 keine Marke nach den noch verbleibenden 6ns erhalten.
Strategie 22 Eindeutig definierter Zustand
• Uberprufe ∀RRG ∈ RRG∗ jede Markierung m:|m • | = 0 ⇒ eindeutiger Endzustand|m • | = 1 ⇒ eindeutiger Folgezustand vorhanden|m • | > 1 ⇒ mehrere Folgezustande vorhanden
Bei DCPN muss zur Bestimmung des Schaltungstyps weiterhin die Zu-standsfreiheit uberpruft werden. Dabei bedeutet zustandsfrei, dass dieReihenfolge der Eingangsbelegungen Min keine Auswirkung auf die Bele-gung der Ausgange Mout bezuglich der jeweiligen Eingangsbelegung besitzt.Zusatzlich ist gefordert, dass die Auswirkungen unmittelbar nach Anderungder Eingange eintreten, da sonst ein Zwischenzustand fur eine gewisse Zeitinnerhalb des Netzes vorliegt. Durch diese Forderung ergibt sich, dass DCPN,in denen eine zeitbehaftete Transition feuert, immer zustandsbehaftet sind.Hieraus ergibt sich das Abbruchkriterium, wenn in einem der Erreichbar-
106 4 Transformation von DCPN nach VHDL
keitsgraphen RG eine Zustandsubergang durch eine zeitbehaftete Transitionauftritt, dann ist das Netz nicht zustandsfrei.
P0
P1
P2
T0
T1
T2
T3
(a)
P0
P1
P2
T0
T1
T2
T3
(b)
P0
P1
P2
T0
T1
T2
T3
(c)
P0
P1
P2
T0
T1
T2
T3
(d)
Abbildung 4.22: In (a) bis (d) ist ein DCPN mit allen moglichen auftretendenKombinationen an den Eingangsstellen P0 und P1 zu sehen. Die Abbildungenveranschaulichen die Zustandsfreiheit des Netzes. Die Reihenfolge der Belegungan den Eingangen hat keinen Einfluss auf den Ausgang. Ein solches Netz wird alszustandsfrei bezeichnet.
Bei zeitlosen DCPN muss uberpruft werden, ob die Reihenfolge der Be-legungen an den Eingangen des Netzes eine Auswirkung auf die Ausgangebesitzt. Hierzu ist jede Eingangskombination mit jeder anderen zu vergleichenund diese nacheinander zu simulieren. Diese Strategie kann bei komplexenNetzen sehr schnell zu einer großen Anzahl an moglichen Kombinationenfuhren. Dafur ist der Gewinn an der Erkennung der Zustandsfreiheit sehrhoch, da im weiteren Verlauf des Prozesses fur dieses Netz keine Schaltungmit Speicherelementen erzeugt werden muss. Die Anzahl der moglichenKombinationen an Vergleichen liegt fur N Eingange bei 2N · (2N −1) Kombi-nationen. Beim Auffinden der ersten zustandsbehafteten Kombination kanndie Strategie abgebrochen werden und das DCPN ist zustandsbehaftet.Abbildung 4.22 zeigt in (a) bis (d) alle moglichen Markierungen an den
Eingangen P0 und P1. Hierbei ist die Reihenfolge der Belegungen an denEingangen nicht relevant, da kein Zustand im Netz gespeichert wird.
Strategie 23 Zustandsfreiheit
• Netz ist nicht zustandsfrei, wenn Ttime �= ∅• Netz ist zustandsfrei, wenn gilt: m|t∗〉m′ unabhangig
der Reihenfolge, ∀m ∈ Min
4.5 Netzanalyse 107
Bei der Erzeugung von digitalen Schaltungen kann in die beiden, inKapitel 2.2 eingefuhrten, Schaltungsarten kombinatorische und sequentiellenLogik unterteilt werden. Abhangig vom Schaltungstyp wird das DCPNweitergehend analysiert. Dabei handelt es sich um kombinatorische Logik,wenn keine zeitlosen Zyklen, bzw. eine zeitlose Terminierung, existiert undzusatzlich muss das Netz zustandsfrei sein. In allen anderen Fallen bildetdas DCPN eine sequentielle Schaltung ab.
Strategie 24 Schaltungstyp bestimmen
• Kombinatorische Logik, wenn:Strategie 20 Zeitlose Terminierung,Strategie 21 Eindeutiger Endzustand undStrategie 23 Zustandsfreiheit
• Sequentielle Logik sonst
S16 Bestimmung NetztypS17 Erreichbarkeitsgraphen aufstellenS18 Zyklen bestimmenS19 TerminierungS20 Zeitlose TerminierungS21 Eindeutiger EndzustandS22 Eindeutig definierter ZustandS23 ZustandsfreiheitS24 Schaltungstyp bestimmen
Abbildung 4.23: Ablauf und Reihenfolge der Strategien zur Netzanalyse desDCPN. Daraus resultierend erfolgt die Wahl der Erzeugung von kombinatorischeroder sequentieller Logik. Strategien, die zum Abbruch der Transformation fuhrenkonnen, sind S18, S20, S21 und S22.
Analyse
S16 S17
S18
S19 S20
S21 S22
S23
S24
108 4 Transformation von DCPN nach VHDL
Die Erzeugung der eigentlichen Hardwarebeschreibung erfolgt nach derSynthese, die im nachsten Schritt des Transformationsprozesses durchgefuhrtwird. Abbildung 4.23 zeigt die Strategien der Netzanalyse in der zu bear-beitenden Reihenfolge. Strategien, die einen Abbruch der Transformationherbeirufen konnen, sind in rot dargestellt. Einige der vorgestellten Stra-tegien werden fur die weitere Analyse und Erzeugung der Schaltungen zurAnwendung kommen.
4.6 Synthese
Nach der Bestimmung des Netztyps jedes einzelnen Teilnetzes kann imTransformationsschritt der Synthese abhangig davon, ob es sich um Kombi-natorik oder sequentielle Schaltungen handelt, die Synthese durchgefuhrtwerden. Abhangig von der Zielarchitektur konnen dann noch Anpassungenzur Optimierung und der endgultigen Uberfuhrung in eine Hardwarebe-schreibungssprache an der erzeugten Logik erfolgen. Fur Kombinatorikkann beispielsweise eine Optimierung des resultierenden booleschen Aus-drucks erfolgen. Zu verwendende Takte fur Schaltungen sind ebenfalls zuberucksichtigen. Da die anzuwendenden Strategien komplett vom Schaltungs-typ abhangen, findet hier die Unterteilung in Kombinatorisch und Sequenziellstatt.
4.6.1 Kombinatorische Logik
Nach der Feststellung, dass das modellierte Petri-Netz durch kombinatorischeLogik abgebildet werden kann, ist das DCPN in eine auswertbare Funktionoder Tabelle zu uberfuhren. Dazu kommen die in Tabelle 4.5 angegebenenStrategien zum Einsatz. Hierbei ist als erster Schritt immer die Wahrheits-tabelle aus dem DCPN zu generieren. Gefolgt wird dieser Prozess von derMoglichkeit, aus den verschiedenen Optimierungsmethoden fur kombinatori-sche digitale Schaltungen zu wahlen. Die Generierung der Schaltung erfolgtim nachsten Schritt des Transformationsprozesses und ist abhangig von dergewahlten Methode der Optimierung in diesem Abschnitt.Als erste Strategie muss die Wahrheitstabelle W fur das gegebene Petri-
Netz aufgestellt werden. Hierzu ist der Erreichbarkeitsgraph fur jede moglicheEingangskombination Min in Strategie 17 aufgestellt worden. Die Ergebnissevon dort konnen hier zur Anwendung kommen, um W zu generieren. ZurErstellung der Tabelle werden die Eingangskombinationen Min und derenjeweilige Markierung Mout zu einer Zeile wrow zusammengefasst.
4.6 Synthese 109
Tabelle 4.5: Strategien zur Transformation von DCPN in kombinatorische Lo-gik. Strategie 25 muss dabei immer ausgefuhrt werden. Alle anderen Strategiendieses Transformationsschritts sind optional zur Optimierung der resultierendenSchaltung.
# Strategie
25 Wahrheitstabelle erzeugen
26 Erzeugung DNF/KNF
27 Optimierungsziele festlegen
28 Technologieunabhangige Optimierung
Die hier vorgestellte Strategie kam schon bei der Erzeugung der Tabellenfur Flip-Flops in diesem Kapitel zur Anwendung (siehe 4.1.3). Dort istzusatzlich noch der aktuelle Zustand des Netzes als Eingang aufgefasstworden, um das speichernde Verhalten des Netzes darstellen zu konnen. DieseMethode eignet sich aber nicht um komplexere Netze zu transformieren, dajede Stelle innerhalb des Netzes einen weiteren Faktor Zwei in die Anzahlder moglichen Kombinationen bringt. Dies bedeutet fur ein DCPN mit achtEingangs-, vier Ausgangs- und 24 Stellen eine Erzeugung von 28+4+24 = 236
Erreichbarkeitsgraphen.
Strategie 25 Wahrheitstabelle erzeugen
• Erstelle fur alle Min und dazugehorige Mout eine Zeile wrow der Wahr-heitstabelle
• Erzeuge aus allen wrow die Wahrheitstabelle W
Zur Erzeugung der Schaltung existieren die Moglichkeiten, die Wahr-heitstabelle direkt in eine VHDL-Beschreibung zu uberfuhren, oder einenbooleschen Ausdruck zu formen. Die DNF (Disjunktive Normalform) undKNF (Konjunktive Normalform) kommen vor allem zum Einsatz, wenn diedigitale Schaltung auf einem PLD (Programmable Logic Device) implemen-tiert werden soll. Ein PLD ist ein programmierbarer Digitalbaustein, dereine hohe Schaltgeschwindigkeit, durch kurze Verdrahtungen, und eine hoheZuverlassigkeit aufweist, die durch das Entfallen von Leitungsverbindungenund zusatzlichen Lotpunkten erreicht wird. Die DNF bildet die High-Pegel abund die KNF ubernimmt die Low-Pegel der Ausgange und Verknupft dieseentsprechend der Bildungsvorschrift. Im spater vorgestellten Tool Logical
110 4 Transformation von DCPN nach VHDL
PetriNet ist die DNF implementiert, auf gleiche Weise konnte auch noch dieKNF integriert werden.
Strategie 26 Erzeugung DNF/KNF
• Disjunktive Normalform: yk =∨
i
∧j(¬)xij
• Konjunktive Normalform: yk =∧
i
∨j(¬)xij
Die in den letzten beiden Strategien durchgefuhrten Aktionen konnenin dieser Form in eine Hardwarebeschreibungssprache uberfuhrt werden.Optimierungen der bisher erhaltenen Losung konnen je nach Optimierungszielunterschiedlichster Art sein. So kann ein minimaler Realisierungsaufwand,minimaler Leistungsverbrauch, maximale Geschwindigkeit, gute Testbarkeitoder ein geringer Entwurfsaufwand das zugrunde liegende Ziel sein. Die Zielekonnen sich gegenseitig auch widersprechen oder beeinflussen. Beispielsweisebenotigt ein schneller Addierer mehr Bauelemente als ein langsamer.
Alle genannten Ziele der Optimierung und die dazugehorigen Faktoren undKostenfunktionen an dieser Stelle in den Transformationsprozess einfließenzu lassen, ubersteigt bei weitem den Rahmen dieser Arbeit und ist eineigenes Forschungsgebiet. Viele der angegebenen Optimierungen sind schondurch Standardverfahren und Algorithmen abgedeckt [Wak00], [YS08], die indiesem Teilschritt auf die Ergebnisse der Transformation angewendet werdenkonnen. Hier wird exemplarisch die Optimierung des Realisierungsaufwandsvorgenommen, da diese Optimierung fur jede Schaltung zum Einsatz kommensollte, wenn nicht explizit andere Optimierungen gefordert sind. WeitereOptimierungsziele sind in Strategie 27 aufgefuhrt und konnen in folgendenArbeiten zusatzlich integriert werden.
Strategie 27 Optimierungsziele festlegen
• Zielarchitektur
• Realisierungsaufwand
• Leistungsverbrauch
• Geschwindigkeit
• Testbarkeit
• Entwurfsaufwand
Zur Vermeidung der Entwicklung eines neuen Minimierungsverfahrensfur jeden Bausteintyp wird die Optimierung in einen von der Technologieunabhangigen Teil und einen abhangigen aufgeteilt (siehe Abbildung 4.24)
4.6 Synthese 111
[YS08]. Fur die jeweilige Zielarchitektur mussen dann weitere Optimierungs-verfahren zur Anwendung kommen. Hierbei ist das Ziel fur jede Architekturin Tabelle 4.6 gegeben.
Abbildung 4.24: Hier zu sehen ist ausgehend von der gelieferten Beschreibungdie Aufteilung in einen von der Technologie unabhangigen und abhangigen Opti-mierungsteil nach [Esc93]. Die FPGA gehoren zu den PLD, sind hier aber gesondertaufgefuhrt, da fur sie gesonderte Optimierungen durchgefuhrt werden konnen.
Tabelle 4.6: Entwurfsverfahren und deren Ziel der Reduzierung nach [Esc93].
Entwurfsverfahren Reduzierung der ...
Vollkundenentwurf ... Transistoranzahl und Verdrahtungsflache
Standardzellen ... benotigten Anzahl Zellen
Gate-Arrays ... benotigten Anzahl Transistoren
PLD ... Anzahl Produktterme der Schaltfunktion
FPGA ... benotigten Anzahl Logikzellen
Bei der technologieunabhangigen Optimierung haben sich zwei Verfahrenetabliert. Zum einen ist dies die Realisierung in zweistufiger Logik, zum ande-ren ist es die Realisierung von mehrstufigen Funktionen. Da die Beschreibungder kombinatorischen Logik durch die Strukturanalyse in Form der Wahr-heitstabelle reprasentiert wird, ist hier die Realisierung als zweistufige Logikvorzuziehen (siehe Strategie 25, 26). Dabei kann auf die KV-Diagramme[Vei52], [Kar53], das Quine-McCluskey-Verfahren [Qui55], [McC56] oder denEspresso-Algorithmus [Mic94], [BHM+84] zuruckgegriffen werden. Zusatzlichkann die disjunktive (DNF ) oder konjunktive Normalform (KNF ) [Beu03]zur Anwendung kommen, die direkt aus der Wahrheitstabelle abgelesenwerden kann. Jeder Ausgang Pout muss separat gebildet werden und daherkann fur jedes p ∈ Pout ein unterschiedliches Verfahren zum Einsatz kommen.
Ausgangs-beschreibung
technologie-unabhangigeOptimierung
Vollkundenentwurf
Standardzellen
Gate-Arrays
PLD
FPGA
112 4 Transformation von DCPN nach VHDL
Als erstes Verfahren sei hier das Mi-
Abbildung 4.25: Minimierungmittels Espresso-Algorithmus
nimieren des Ausdrucks mittels des gra-fischen Verfahrens der KV-Diagrammegenannt. Uber diese kann die minima-le disjunktive (DMF ) oder konjunktive(KMF ) Normalform gefunden werden.Bei den KV-Diagrammen ist es moglichbis zu vier Eingange problemlos von Handzu verarbeiten, da die Darstellung nochubersichtlich genug ist, um diese realis-tisch abarbeiten zu konnen. Ab sechsEingangen ist ein anderes Verfahren zubevorzugen, da der Aufwand beim KV-Diagramm stark ansteigt.
Das Quine-McCluskey-Verfahren ist ei-ne rein algorithmische Methode zur Be-stimmung des minimierten Ausdrucks,wobei auch hier eine zweistufige Logikals Ergebnis resultiert. Dieses Verfahrengeneriert uber die Identifizierung undOptimierung von Primimplikanten dieminimale Losung des booleschen Aus-drucks und basiert auf Tabellen zumAuffinden der optimalen Losung. BeimQuine-McCluskey-Algorithmus ist ein,von der Anzahl der Eingange abhangiger,im schlechtesten Fall exponentiell stei-gender Rechenaufwand zu kalkulieren. [Wak00] gibt deswegen eine realistischeAnwendung mit maximal 20 Eingangen an.
Das Espresso-Verfahren (siehe Abbildung 4.25) ist eine heuristische Metho-de, bei dem mit vereinfachten Annahmen gearbeitet wird, die in den meistenFallen zur gleichen exakten Losung des booleschen Ausdrucks gelangen,wie es die bisher genannten Verfahren bestimmen. In Ausnahmen kann dasErgebnis neben der optimalen Losung liegen, wobei das Verfahren durch dendeutlich geringeren Rechenaufwand, vor allem bei Systemen mit mehr als 20Eingangen, gegenuber den sonstigen Verfahren vorzuziehen ist. Heuristikensind bei der Minimierung von Logik bestimmte Taktiken, Strategien oder Re-geln, die zu einer direkten Losung fuhren. Das Verfahren ist mittlerweile derQuasi-Standard und wird in einigen Logiksynthese-Werkzeugen eingesetzt.
Start
complement
expand
irredundant
essentials
reduce
expand
irredundant
Verbesserung?
last-gasp
Verbesserung
Ende
Nein
Nein
Ja
Ja
4.6 Synthese 113
Die Heuristik bestimmt bei der Minimierung in welcher Reihenfolge dieImplikanten zusammengefasst werden. Durch die Vermeidung alle Primim-plikanten auszuwerten, wird der benotigte Speicherplatz und die Rechenzeitverringert. Abhangig von Wahrscheinlichkeiten wird die
”beste“ Entschei-
dung zur Bestimmung der Losung gewahlt, was nicht in allen Fallen zutreffenmuss. Die Abweichung vom Optimum im Falle des Espresso-Algorithmus, ge-nauer gesagt des Espresso II, ist dabei aber so klein, dass diese im Verhaltniszur Große der Losung vernachlassigbar klein ist.Fur alle heuristischen Verfahren kommen bestimmte Funktionen zum
Einsatz, die in diesem Kontext als Operatoren bezeichnet werden. Abbildung4.25 zeigt den generellen Ablauf des Espresso-Verfahrens, genauere Informa-tionen zum Ablauf der einzelnen Operatoren sind in [Mic94] zu finden. AlsEingabe folgt ein boolescher Ausdruck, der minimiert werden soll. Fur spaterTeilschritte wird das Komplement benotigt, welches im Operator complementerzeugt wird. Als nachstes folgt expand, der die Implikanten in eine geeigneteReihenfolge bringt und sie dann vergroßert, indem moglichst viele andereImplikanten uberdeckt werden, danach konnen die uberdeckten geloscht wer-den. Somit sind die direkt verdeckten Implikanten entfernt worden. Danachloscht irredundant die Implikanten, die von zwei oder mehr Implikantenuberdeckt sind. essentials markiert nun die Implikanten, welche in jedermoglichen Losung vorhanden sein mussen, um in weiteren Durchlaufen dieMenge der zu berucksichtigen Elemente zu verkleinern. Nach diesem Schrittist eine Losung gefunden und diese konnte verwendet werden, aber durchweitere Iterationen kann unter Umstanden eine bessere Losung gefundenwerden.
Strategie 28 Technologieunabhangige Optimierung
• Minimierung der Eingangsterme fur alle Ausgange separat durch:
– KV-Diagramm
– Quine-McCluskey
– Espresso II
Zum Auffinden besserer Losungen mussen die Implikanten wieder aufge-brochen werden, was durch reduce erfolgt. Danach konnen wieder expand undirredundant zur Anwendung kommen. Solange eine Verbesserung durch dieseSchritte erfolgt, wird weiter uber den Prozess iteriert. Als letzter Operatorkommt last-gasp zum Einsatz, der die bisher beste Losung mit anderenHeuristiken zu minimieren versucht. Sollte dies gelungen sein, wird uber dasbisherige Verfahren nach besseren Losungen gesucht. Dieses Verfahren wurde
114 4 Transformation von DCPN nach VHDL
standig weiterentwickelt und ist als Expresso II [KB12], [AM07] eine derStandardmethoden um zweistufige Optimierungen fur digitale Schaltungendurchzufuhren.
Laufzeitvergleiche sind in [Esc93] zu finden. Generell sind alle vier Metho-den aus den Strategien 25 und 28 geeignet die Funktion der kombinatorischenLogik abzubilden. Weitere Verfahren und Algorithmen zur Anpassung undOptimierung auf die jeweilige Zielarchitektur sind unter anderem in [Kes13],[HM04] und [MZP05] zu finden. Abbildung 4.26 zeigt die durchzufuhrendeStrategien dieses Transformationsschritts. Abhangig von der gewahlten Me-thode wird im Abschnitt zur Erzeugung der VHDL-Beschreibung auf unter-schiedliche Strategien zuruck gegriffen.
S25 Wahrheitstabelle erzeugenS26 Erzeugung DNF/KNFS27 Optimierungsziele festlegenS28 Technologieunabhangige Optimierung
Abbildung 4.26: Die Phasen, der Logiksynthese die durchgefuhrt werden mussen,um das modellierte DCPN in eine digitale Schaltung zu uberfuhren und denRealisierungsaufwand zu minimieren.
4.6.2 Sequentielle Schaltungen
Wenn bei der Bestimmung des Schaltungstyps aus Strategie 24 die Trans-formation einer sequentiellen Schaltung bestimmt wurde, dann werden diefolgenden Strategien durchgefuhrt, um eine digitale Schaltung aus dem ge-gebenen Netz zu erzeugen. Dies wird fur alle Teilnetze durchgefuhrt. DieErgebnisse werden im nachsten Transformationsschritt zu einer Schaltungzusammen gefuhrt. Tabelle 4.7 zeigt die anzuwendenden Strategien.
Als erster Schritt muss der sequentielle Schaltungstyp bestimmt werden.Dabei kann entweder eine synchrone oder asynchrone Schaltung, oder eineMischform daraus erzeugt werden. Der Typ lasst sich direkt aus dem Netztypableiten (siehe Strategie 16). Dabei sind zeitlose Netze immer asynchroneSchaltungen, da jede Eingangsanderung direkte Auswirkungen auf den Aus-gang haben kann. Streng zeitbehaftete Netze sind immer Synchron, da jedeEingangsanderung erst nach einer gewissen Zeit eine Auswirkung auf dieAusgange hat, welche durch die Schaltzeit der aktiven Transitionen bestimmtist.
Kombinatorik
S25
S26 S27 S28
4.6 Synthese 115
Tabelle 4.7: Erzeugung der sequentiellen Logik aus dem ubergebenen Petri-Netz. Alle Strategien sind fur jedes Teilnetz separat auszufuhren, wie alle anderenStrategien ebenfalls seit der Aufteilung in Teilnetze.
# Strategie
29 Bestimmung des sequentiellen Schaltungstyps
30 Berechnung des Takts
31 Bestimmung der abweichenden Schaltzeiten
32 Erzeugung des IRG
33 Bedingungen des IRG optimieren
34 Anpassung des IRG an den Takt
Als dritter Typ ist dann noch die Mischform aus beiden Schaltungstypenmoglich. Diese kann aber erst spater erkannt werden, wenn die Strategien 32bis 34 ausgefuhrt worden ist. Um diese Netze spater genauer untersuchenzu konnen, sind alle zeitbehafteten (nicht streng zeitbehafteten) Netze alsunbestimmt zu markieren.
Strategie 29 Bestimmung des sequentiellen Schaltungstyps
• Netz ist zeitlos ⇒ Schaltung ist asynchron
• Netz ist zeitbehaftet ⇒ Schaltung ist unbestimmt
• Netz ist streng zeitbehaftet ⇒ Schaltung ist synchron
Die Erzeugung des Taktes bei sequentiellen Schaltungen kann uber zweiMethoden erfolgen. Zum einen kann der Takt von außen vorgegeben werden,es wird also kein Takt berechnet. Dann muss in der nachsten Strategie aberauf mogliche Abweichungen der Schaltzeiten von vorhandenen Transitionengeachtet werden. Diese Methode kann zum Einsatz kommen, wenn der Taktdurch einen vorhandenen Aufbau vorgegeben ist. Zum anderen kann die Dau-er eines Taktes aus den Schaltzeiten der vorhandenen Transitionen berechnetwerden. Hierzu werden die Schaltzeiten aus allen synchronen und unbestimm-ten sequentiellen Schaltungen verglichen und die Schaltzeit entspricht demgroßten gemeinsamen Teiler (ggT ) aller vorhandenen Schaltzeiten. Abbil-dung 4.27 zeigt dabei ein DCPN mit vier zeitbhafteten Transitionen. T0 hatdie kurzeste Schaltzeit von 3ns und entspricht auch dem Teiler aller anderenLaufzeiten. Diese wird daher als Takt der Schaltung verwendet. Im ToolLogical PetriNet hat der Modellierer die Wahl welche Taktgenerierung ver-wendet werden soll. Asynchrone und kombinatorische Schaltungen sind hier
116 4 Transformation von DCPN nach VHDL
nicht zu berucksichtigen, da sie keine zeitbehafteten Transitionen enthaltenkonnen.
Strategie 30 Berechnung des Takts
• Option 1: Takt clk fest vorgegeben
• Option 2: Takt clk wird aus Transitionen berechnet:
– Kleinste Schaltzeit entspricht Takt
– Großter gemeinsamer Teiler entspricht Takt
P0
P1
P2
P3P4P5
P6
T: 3ns
T0
T: 12ns
T1
T: 21ns
T2
T: 6ns
T3
P: 4
T4
Abbildung 4.27: Hier zu sehen ist ein Netz mit vier zeitbehafteten Transitionen.Aus diesen wird der Takt berechnet, indem die kurzeste Schaltzeit oder dergroßte gemeinsame Teiler als Takt zum Einsatz kommt. Hier entspricht beides derSchaltzeit von T0 mit 3ns. Zeitlose Transitionen haben keinerlei Auswirkung aufdie Berechnung des Taktes.
Nach der Bestimmung oder Festlegung der Taktdauer mussen alle vor-handenen zeitbehafteten Transitionen auf ihre Schaltzeit uberpruft werden,wenn nicht der großte gemeinsame Teiler als Methode zur Taktbestimmunggewahlt wurde. Dabei ist die Kontrolle, ob die Zeit ein Vielfaches des Tak-tes ist, der Ausschlag gebende Punkt. Der Takt sollte bei teilerfremdenSchaltzeiten nicht aus dem großten gemeinsamen Teiler berechnet werden,da hierdurch sehr kleine Zeitspannen fur den Takt entstehen konnen, dieunter Umstanden nicht von der Zielarchitektur unterstutzt werden. Um dasProblem zu umgehen sind nach Moglichkeit vielfache der kleinsten Schaltzeitdes Petri-Netzes fur alle Transitionen zu verwenden.
Abbildung 4.27 zeigt die zeitbehafteten Transitionen mit den Schaltzeiten3ns, 6ns, 12ns und 21ns. Bei der Berechnung des ggT wird ein Takt von 3nsverwendet, da alle Schaltzeiten durch 3ns teilbar sind. Ware die Schaltzeitvon T2 aber 22ns musste als Takt 1ns verwendet werden, da die Schaltzeitenvon T0 und T3 dann teilerfremd sind. Fur den Fall, dass alle Transitionenin den ermittelten Takt passen, muss die nachste Strategie nicht ausgefuhrt
4.6 Synthese 117
werden. Bei einem fest vorgegebenen Takt oder der Bestimmung durch diefestgelegte Schaltzeit ist fur alle zeitbehafteten Transitionen die Abweichungvon einem Vielfachen des Taktes zu uberprufen. Bei dem angepassten Beispielmit 22ns Schaltzeit fur T2 ist eine Abweichung von 1ns zu erkennen. Alleanderen Transitionen bilden ein Vielfaches der kleinsten Schaltzeit.
Strategie 31 Bestimmung der abweichenden Schaltzeiten
• Wenn nicht ggT fur die Bestimmung des Taktes clk gewahlt wurde:
• Berechne Schaltzeitfehler tf : t(tsw) mod clk = tf , ∀t ∈ T
Eine sequentielle Schaltung kann nicht auf die gleiche Art und Weise wiebei kombinatorischer Logik erzeugt werden. Es mussen zum einen zusatzlichdie Schaltzeiten der zeitbehafteten Transitionen und der interne Zustand desPetri-Netzes betrachtet werden, von denen die Ausgange ebenfalls abhangenkonnen. Hierdurch wurden die Zeilenanzahl der erzeugten Wahrheitstabellenschnell anwachsen, da fur jedes neue zu betrachtende Element die Anzahlder Zeilen verdoppelt wird. In den Netzen in Kapitel 4.1.3 ist zu sehen,dass aus den Eingangszustanden deutlich mehr mogliche Kombinationenentstehen, da wie schon erwahnt, alle Stellen fur einen Ubergang des Zustandsbetrachtet werden mussen, wobei in den dort vorgestellten Netzen schoneine Optimierung der Wahrheitstabelle stattgefunden hat. Aufgrund derschnellen Explosion der Zustande, die unter anderem in [EN98] und [NIJ+97]beschrieben ist, wird in dieser Arbeit auf diese Methode verzichtet.
An dieser Stelle kommt der, fur diese Arbeit entwickelte, eingabeorientierteErreichbarkeitsgraph zum Einsatz (input driven reachability graph, IRG).Dieser besteht aus der Menge der Knoten E, die den internen Zustanddes Netzes abbilden. Ein Knoten e beinhaltet also eine Markierung M desPetri-Netzes ohne die Eingangsstellen zu betrachten M = Mout ∪ Mstd.Weiterhin enthalt ein Knoten eine Menge an gerichteten Kanten A, die aufseine Nachfolger zeigen.
Eine gerichtete Kante a des Graphen besitzt eine Menge an BedingungenB und den Zielknoten e, auf den diese Kante zeigt. Sie startet immer in ihremzugehorigen Startknoten. Eine Bedingung b beinhaltet die Informationen derEingangsmarkierung Min und der Schaltzeit t(tsw) der Transition t. Dabeisind zeitlose Transitionen mit einer Schaltzeit von Null anzunehmen. DieMenge B kann dabei mehrere Bedingungen mit der gleichen Eingangsmar-kierung besitzen, aber die Transitionen mussen dann verschiedene sein. Dieskann auftreten, wenn bei einer Markierung mehrere Transitionen gleichzeitigschalten konnen. Es werden alle Bedingungen, die den Zustand des Netzes
118 4 Transformation von DCPN nach VHDL
von einem Startknoten zu einem Zielnoten e uberfuhren, in einer Kantezusammengefasst. Daraus ergibt sich dann insgesamt die Definition fur einenKnoten e, eine Kante a und eine Bedingung b zu:
IRG = {E} : Eingabeorientierter Erreichbarkeitsgraph (4.1)
E = {e0, e1 . . . e(|E|−1)} : Menge der Knoten
e = {M,A} : Ein Knoten des IRG
A = {a0, a1 . . . an} : Menge der Ausgangskanten eines Knotens
a = {B, e} : Eine Ausgangskante eines Knotens
B = {b0, b1 . . . bj} : Menge der Bedingungen einer Kante
b = {Min, SWt} : Eine Bedingung einer Kante
Algorithmus 4.1 Eingabeorientierter Erreichbarkeitsgraph
function erstelleIRG(M0, PN)Erstelle e0 aus M0
E ← e0, Etemp ← e0while Etemp = ∅ do
e ∈ Etemp
Etemp ← Etemp \ eFulle PN mit Markierung aus efor all m ∈ Min do
for all t = {t | t ∈ T ∧ m|t〉} dom′ = m|t〉m′m′ = feuereZeitloseTransitionen( m′, PN )Erstelle enew aus m′if enew ∈ E then
eexist = {ei|ei ∈ E ∧ ei = enew}fuegeKanteHinzu( m, t, e, eexist )
elsefuegeKanteHinzu( m, t, e, enew )E ← E ∪ enew, Etemp ← Etemp ∪ enew
Zur Erstellung des eingabeorientierten Erreichbarkeitsgraphen wird derin Algorithmus 4.1 vorgestellte Pseudocode verwendet. Als Eingabe dientdiesem die Initialmarkierung M0 und das zu uberprufende Petri-Netz PN .Aus der Initialmarkierung wird der Startknoten e0 des IRG erzeugt, derden Mengen der Knoten E und den zu uberprufenden Knoten Etemp hinzu-gefugt wird. Danach wird, solange ein zu uberprufender Knoten in Etemp
vorhanden ist, einer dieser Knoten ausgewahlt und fur diesen werden alle
4.6 Synthese 119
Eingangskombinationen simuliert, um mogliche neue Knoten zu finden. Derzu testende Knoten e wird aus der Etemp entfernt.
Fur e werden nun alle moglichen Kombinationen Min von Marken in denEingangen platziert. Fur jede dieser Kombinationen wird uberpruft welcheTransitionen t feuern konnen. Jede aktive Transition feuert, woraus jeweilsdie Markierung m′ entsteht. Fur diese Markierung m′ werden alle aktivenzeitlosen und zeitbehafteten Transitionen mit einer verbleibenden Schaltzeitvon Null gefeuert, wie in Algorithmus 4.2 zu sehen ist.
Dann wird der Knoten enew erzeugt, indem aus m′ die Eingange heraus-gefiltert werden. Existiert der Knoten schon in E, dann wird der aquivalenteKnoten eexist aus E genommen und die Methode zum hinzufugen einerKante mit der Markierung m, der Transition t, dem aktuellen Knoten e undeexist aufgerufen. Sollte der Knoten noch nicht existieren, dann wird er denbeiden Mengen E und Etemp hinzugefugt und ebenfalls die Methode zumhinzufugen einer Kante aufgerufen, hier aber mit enew statt eexist.
Algorithmus 4.2 Weitere zeitlose Transitionen feuern
function feuereZeitloseTransitionen(m, PN)for all t = {t | t ∈ T ∧ m|t〉} do
if t ∈ Timm ∨ (t ∈ Ttime ∧Restschaltzeit = 0) thenm = m|t〉m′
return m
Algorithmus 4.3 beschreibt das Vorgehen beim Hinzufugen neuer Kantenzum eingabeorientierten Erreichbarkeitsgraphen. Als erster Schritt wird ausder Markierung m und der Transition t, genauer der Schaltzeit von t, dieBedingung b erzeugt. Daraus wird die Kante a erzeugt, die zusatzlich nochdas Zielelement enew erhalt. Nun wird fur alle Kanten a ∈ A im Knoten euberpruft ob diese dasselbe Zielelement wie enew besitzen. Sollte solch eineKante ai schon vorhanden sein, dann wird die Bedingung b dieser Kantehinzugefugt. Sonst wird die Menge A des Elements e um diese Kante aerweitert.
Strategie 32 Erzeugung des IRG
• Erzeuge IRG mittels der Algorithmen 4.1 bis 4.3
• Wenn t ∈ Timm, ∀t ∈ T ⇒ IRG muss nicht angepasst werden
• Wenn t ∈ Ttime∧SWt = clk, ∀t ∈ T ⇒ IRG muss nicht angepasst werden
• Sonst Strategien 34 ausfuhren
120 4 Transformation von DCPN nach VHDL
Der so erzeugte Graph kann so verwendet werden, wenn alle Transitionendie selbe Schaltzeit, die auch dem Takt der Schaltung entsprechen muss,aufweisen. Ansonsten muss der Graph mit den nachfolgenden Strategiennoch weiter angepasst werden.
Algorithmus 4.3 Fuge Kante zum IRG hinzu
function fuegeKanteHinzu(m, t, e, enew)Erzeuge b = {min, SWt} mit min ∈ mErzeuge a = {{b}, enew}for all ai ∈ A, A ∈ e do
if ei = enew, ei ∈ ai thenB = B ∪ b, B ∈ aireturn
A ← A ∪ a, A ∈ e
P8
P0 P1 P2 P3
P4P5P6P7
P9
T: 3ns
T0
T: 1ns
T1
T: 1ns
T2
T: 1ns
T3
T: 1ns
T4
T: 1ns
T5
T: 1ns
T6
T: 1ns
T7
(a)
e0
e1
e2
e3e4
e5
e6
e7
a0
a1
a2
a3
a4
a5
a6
a7
(b)
Abbildung 4.28: Das in (a) gezeigte DCPN beschreibt einen Ringzahler, derdurch die Eingange P8 und P9 an den Transitionen T3 und T7 gestoppt werdenkann. Der resultierende eingabeorientierte Erreichbarkeitsgraph ist in (b) undTabelle 4.9 zu sehen.
Zur Verdeutlichung des Algorithmus sei das in Abbildung 4.28 (a) gege-bene DCPN, welches einen Ringzahler darstellt gegeben. In Kapitel 5.3.3wird dieses Netz als Lauflicht in allen Details transformiert. Der Zahler kanndabei durch die beiden Eingangsstellen P8 und P9 an den Transitionen T3
und T7 angehalten werden. Durch Algorithmus 4.1 wird der in (b) gezeigte
4.6 Synthese 121
eingabeorientierte Erreichbarkeitsgraph berechnet und deren Knotenmar-kierung E und die Bedingungen B der Kanten A sind in den Tabellen 4.8und 4.9 zu sehen. Die Bedingungen der einzelnen Kanten zeigen, dass beiallen Kanten, außer a3 und a7, die Eingangsbelegung keine Rolle fur dasWechseln in den nachsten Zustand spielt. Nur bei a3 muss P9 und bei a7muss P8 belegt sein. Die jeweils andere Eingangsstelle ist unerheblich.
Tabelle 4.8: Hier sind die Mar-kierungen der Knoten des IRG zusehen.
Name P0 P1 P2 P3 P4 P5 P6 P7
e0 1 0 0 0 0 0 0 0
e1 0 1 0 0 0 0 0 0
e2 0 0 1 0 0 0 0 0
e3 0 0 0 1 0 0 0 0
e4 0 0 0 0 1 0 0 0
e5 0 0 0 0 0 1 0 0
e6 0 0 0 0 0 0 1 0
e7 0 0 0 0 0 0 0 1
Tabelle 4.9: Die Tabelle zeigt die Schalt-bedingungen fur einzelnen Kanten des IRGan.
Kante Bedingungen (P8, P9) SW
a0 (0, 0) (0, 1) (1, 0) (1, 1) 3ns
a1 (0, 0) (0, 1) (1, 0) (1, 1) 1ns
a2 (0, 0) (0, 1) (1, 0) (1, 1) 1ns
a3 (0, 1) (1, 1) 1ns
a4 (0, 0) (0, 1) (1, 0) (1, 1) 1ns
a5 (0, 0) (0, 1) (1, 0) (1, 1) 1ns
a6 (0, 0) (0, 1) (1, 0) (1, 1) 1ns
a7 (1, 0) (1, 1) 1ns
Die Bedingungen der einzelnen Kanten des IRG konnen nun uber einesder bekannten Verfahren aus Strategie 28 optimiert werden. Beim hieraufgefuhrte Beispiel des Lauflichts mit zwei Eingangen zur Steuerung konnendie Bedingungen in den Kanten a0, a1, a2, a4, a5 und a6 zu Eins optimiertwerden. Die Bedingung der Kante a3 wird optimiert zu (−, 1) und a7 erhaltdie neue einzige Bedingung (1,−). Dabei steht − fur bedeutungslos (don’tcare), um in der Bedingung zu verdeutlichen, welche Eingange keinen Einflussauf das Schalten in den nachsten Zustand haben. Hieraus ergibt sich dieStrategie der Optimierung der Bedingungen, da durch jede Vereinfachungder booleschen Ausdrucke weniger Elemente fur die resultierende Schaltungbenotigt werden, solange eine disjunktive oder konjunktive Form beibehaltenwird. Die Optimierung der Ubergangsbedingungen andert nichts an derStruktur des Graphen, es wird lediglich der Inhalt der Kanten verandert.
Als letzte Strategie zur Synthese der sequentiellen Logik mussen die Knotendes IRG expandiert werden, falls im Petri-Netz Schaltzeiten auftreten, diegroßer als der Takt sind. Hierdurch wird die Schaltung vergroßert, weshalbnach Moglichkeit auf unterschiedliche Schaltzeiten innerhalb eines Netzesverzichtet werden sollte. Sind die unterschiedlichen Schaltzeiten dennochnotwendig, so entstehen bei einem gegebenen Takt von clk = 1ns und einerSchaltzeit von 50ns genau 49 weitere Knoten durch die folgende Strategie.
122 4 Transformation von DCPN nach VHDL
Hierzu sind die Kanten mit großeren Schaltzeiten als dem Takt (clk) in neueKnoten und Kanten aufzusplitten, wie es in Algorithmus 4.4 zu sehen ist.
Strategie 33 Bedingungen des IRG optimieren
• Fur die Bedingungen ∀b ∈ B in den Kanten ∀a ∈ A in den Knoten ∀e ∈ E:
• Optimiere b nach
– KV-Diagramm
– Quine-McCluskey
– Expresso II
Algorithmus 4.4 Aufsplittung Knoten des IRG fur Takt
function splitteBedingungen(E, clk)for all e ∈ E do
for all a ∈ A aus e dofor all b ∈ B aus a do
if t(tsw) > clk, t(tsw) ∈ b thenB ← B \ beold = efor i = 0, i < (t(tsw))/clk), i++ do
enew = {M, ∅}, M aus eE ← E ∪ enew
bnew = {Min, clk}, Min aus banew = {bnew, enew}Aold ← Aold ∪ anew, Aold aus eoldueberpruefeWeiterKantenDesKnoten( e, enew )eold = enew
if B = ∅ thenA ← A \ a
Wie in Abbildung 4.28 (a) zu sehen, sind alle Transitionen außer T0 miteiner Schaltzeit von 1ns versehen. Bei T0 dauert der Schaltvorgang 3ns, diedurch das hier beschriebene Verfahren zur Expandierung der Kante erreichtwird. Der expandierte IRG ist in Abbildung 4.29 (a) zu sehen. Die Bedingun-gen der neuen Kanten a8, a9 und a10 sind aus der Kante a0 entnommen, dievorher den Ubergang zwischen e0 und e1 dargestellt hat. Die neuen Knotene8 und e9 enthalten die selbe Markierung wie der Knoten e0, da bis zum Endedes Schaltvorgangs von T0 keine Veranderung des Netzzustandes eintritt.Abbildung 4.29 (b) zeigt die durch die Optimierung der Bedingungen und dieExpandierung der Knoten erstellte Bedingungstabelle der Kanten des IRG,wobei gleiche Kantenbedingungen in einer Zeile zusammen gefasst wurden.
4.6 Synthese 123
e0 e8 e9 e1
e2
e3e4e5e6
e7 a1
a 2
a3a4a5
a6
a 7
a8 a9 a10
(a)
Kante Bed. (P8, P9) SW
a1, a2, a4, a5, a6 (−,−) 1ns
a3 (−, 1) 1ns
a7 (1,−) 1ns
a8, a9, a10 (−,−) 1ns
(b)
Abbildung 4.29: (a) zeigt den expandierten IRG nach Strategie 34. Die neuhinzugekommen Kanten sind a8, a9 und a10, sowie die neuen Knoten e8 und e9.Die ehemalige Kante a0 ist entfernt worden, da ihre einzige Bedingung in derExpandierung des Graphen aufgegangen ist. (b) zeigt die Tabelle der Bedingungender einzelnen Kanten. Jede Kante besitzt nun genau eine Bedingung durch dieOptimierung. Kanten mit gleichen Bedingungen sind hier zusammengefasst worden.Die neuen Kanten a8 bis a10 beinhalten die selbe Bedingung, die a0 vorher besessenhat.
Strategie 34 Anpassung des IRG an den Takt
• Finde alle Kanten a ∈ A, bei denen ein b existiert,deren t(tsw) großer als der Takt clk ist
• Berechne die Anzahl der zu expandierenden Knoten und Kanten
• Expandiere IRG
• Passe sonstige Kanten des Ausgangsknotens an die neuen Knoten an
Algorithmus 4.4 beschreibt die Expandierung des eingabeorientiertenErreichbarkeitsgraphen. Hierbei wird fur jeden Knoten e des Graphen jedeKante a untersucht, ob in ihr eine Bedingung b existiert, die eine Schaltzeitbesitzt, die langer als der Takt clk andauert. Alle gefundenen Bedingungenwerden aus ihren Kanten entfernt und es werden dem Takt entsprechend vieleneue Knoten enew angelegt. Diese erhalten die Markierung M des aktuelluntersuchten Knotens, da keine Anderung am Zustand des DCPN erfolgt,solange die zur Bedingung gehorende Transition noch nicht geschaltet hat.Der neue Knoten enew erhalt eine Kante vom aktuellen Knoten, wenn
es der erste neue Knoten ist, ansonsten erfolgt die Erzeugung einer Kantevom zuletzt erzeugten Knoten eold nach enew. Dann wird mit dem folgen-den Algorithmus uberpruft ob noch weitere Kanten vom Ursprungsknotenausgehen.
124 4 Transformation von DCPN nach VHDL
Der Algorithmus 4.5 zeigt das Vorgehen, wenn bei einer zu expandierendenKante vom Startknoten der Kante noch weitere Kanten abgehen. Dannmussen diese Kanten auch von jedem expandierten Knoten abgehen, umdas Verhalten des Graphen nicht zu andern. Beim weiteren Durchlauf desAlgorithmus 4.4 erfolgt dann ebenfalls eine Uberprufung dieser neu erzeugtenund hinzugefugten Kanten.
Algorithmus 4.5 Erweiterung um notwendige Kanten bei der Expandierung
function ueberpruefeWeiterKantenDesKnoten( e, enew)for all a ∈ A, A aus e do
anew = {Ba, ea}, Ba aus a, ea aus aAnew ← Anew ∪ anew, Anew aus enew
Bei der Expandierung um einen Knoten werden alle weiteren Kanten a ∈ Ades Knoten e kopiert (anew). Dabei bekommt die Kante die Bedingungen baund den Zielknoten ea der alten Kante a. Diese Kante wird dem neu erzeugtenKnoten enew hinzugefugt. Damit ist die Anpassung der Kanten fur denjeweiligen Knoten abgeschlossen und es kann mit mit dem Hauptalgorithmuszur Expandierung fortgefahren werden.
S29 Bestimmung des sequentiellen SchaltungstypsS30 Berechnung des TaktsS31 Bestimmung der abweichenden SchaltzeitenS32 Erzeugung des IRGS33 Bedingungen des IRG optimierenS34 Anpassung des IRG an den Takt
Abbildung 4.30: Die Strategien, die durchzufuhren sind, um aus einem Petri-Netzeine sequentielle Schaltung zu generieren, bzw. das Petri-Netz in eine Hardware-beschreibungssprache zu uberfuhren. Dabei wird zwischen synchronen und asyn-chronen Schaltungen unterschieden. Strategien, bei denen mogliche Abweichungenzum modellierten DCPN auftreten konnen, sind S31 und S32.
Mit Abschluss dieser Strategie ist die Synthese abgeschlossen und dieErzeugung der Hardwarebeschreibungssprache kann beginnen. Die Strategienwerden nach Abbildung 4.30 ausgefuhrt. Dabei ist darauf zu achten, dass bei
Sequentiell
S29
S30
S31
S32
S33
S34
4.7 Erzeugung der VHDL-Beschreibung 125
Strategie 32 Mischformen aus synchronen und asynchronen Teilschaltungenentstehen konnen. Diese sind ebenso, wie die Bestimmung des Taktes undder Berechnung aus den zeitbehafteten Transitionen, mit Hinweisen beimTransformationsprozess zu versehen.
4.7 Erzeugung der VHDL-Beschreibung
Nach der Erkennung und Analyse, sowie der Anpassung auf die jeweili-ge Zielarchitektur muss als nachstes die Beschreibung der Hardware ausder vorherigen Synthese erfolgen. In dieser Arbeit ist die Beschreibungs-sprache VHDL, aber es kann generell jede Hardwarebeschreibungsspracheverwendet werden. Die dazu notwendigen Anpassungen sind von der zuuberfuhrende Beschreibungssprache abhangig. Beispielsweise kann die gene-rierte VHDL-Beschreibung uber vorhandene Ubersetzer in Verilog uberfuhrtwerden [Uti17].
In diesem Teilschritt der Transformation erfolgt als erstes die Beschrei-bung der Schnittstelle, welche unabhangig vom erkannten Schaltungstypgeneriert werden kann. Gefolgt wird dieser Abschnitt von der Erzeugung derBeschreibung der Struktur der kombinatorischen Logik. Die Erzeugung dersequentiellen Logik schließt den Transformationsprozess ab. Eine Anpassungauf die jeweilige Architektur ubernimmt dann das jeweilige Werkzeug zurSynthese. Dies kann unter anderem mit der Xilinx ISE Design Suite [Inc16a]oder Vivado [Inc16b] geschehen, die in dieser Arbeit zum Einsatz kommen.
4.7.1 Erzeugung der Schnittstelle
Zur Erzeugung der VHDL-Beschreibung der Schnittstelle ist auf die un-terschiedlichen Transformationen zu achten, je nachdem ob das DCPN alshierarchieloses Netz oder mit der Unterteilung in Subnetze analysiert undaufgeteilt wurde. Die Schnittstellenbeschreibung ist identisch fur kombinato-rische und sequentielle Schaltungen. In Tabelle 4.10 sind die Strategien zurErzeugung aufgelistet.Als erster Schritt ist hier das Zusammenfugen der durch Strategie 7 und
14 getrennten Netze durchzufuhren, damit eine komplette Beschreibung derSchnittstelle der Schaltung erfolgen kann. Hierbei werden alle Eingangs- undAusgangsstellen wieder in ein Petri-Netz zusammengefugt.
Strategie 35 Teilnetze zusammenfugen
• Fuge alle Teilnetze des Hauptnetzes zusammen in ein DCPN
126 4 Transformation von DCPN nach VHDL
Tabelle 4.10: Strategien zur Erzeugung des VHDL-Codes fur die Schnittstellen-beschreibung, welche unabhangig vom Schaltungstyp ist.
# Strategie
35 Teilnetze zusammenfugen
36 Hinzufugen vorher entfernter Ein- und Ausgangsstellen
37 Uberprufung der Namenskonvention
38 Erzeugung Schnittstelle Hauptnetz/hierarchielos
39 Erzeugung Schnittstelle Subtransition
40 Erzeugung Schnittstelle Substelle
Die in Strategie 10 entfernten Eingangs- und Ausgangsstellen sind inder Schnittstellenbeschreibung wieder hinzuzufugen und deren Zustandin der Struktur- und Verhaltensbeschreibung fur Ausgangsstellen auf denlogischen Null-Zustand zu setzen. Mit dem Hinzufugen der fehlenden Ein-und Ausgangsstellen ist die generelle Information vorhanden, um die entityanlegen zu konnen.
Strategie 36 Hinzufugen vorher entfernter Ein- und Ausgangsstellen
• Fuge entfernte Ein- und Ausgangsstellen wieder dem Hauptnetz hinzu
Zur Verwendung der, vom Entwickler vergebenen, Namen fur Eingange undAusgange mussen diese auf Gultigkeit und Einzigartigkeit im Netz untersuchtwerden. Hierbei gilt der von VHDL vorgegebene Zeichenvorrat fur Bezeichnervon Klein- und Großbuchstaben, Ziffern und dem Unterstrich. Zusatzlichmuss jeder Bezeichner mit einem Buchstaben oder Unterstrich beginnen.Nach der Uberprufung der Gultigkeit mussen doppelt vergebene Namenherausgefunden und angepasst werden, damit eine Transformation moglichist. Dies erfolgt hier durch das Anhangen einer Zahl an den jeweiligen Ein-oder Ausgang. Ebenfalls mussen bei einer hierarchischen Transformation dieNamen aller Subnetze einzigartig sein. Zusatzlich sind die Ein- und Ausgangeder Subnetze noch auf Gultigkeit in VHDL zu uberprufen. Ebenfalls sind alleBezeichner darauf zu uberprufen, ob reservierte Worte aus VHDL verwendetwerden. Je nach spater verwendetem Werkzeug zur Synthese ist ebenfalls aufreservierte Begriffe aus anderen Hardwarebeschreibungssprachen zu achten,da diese Tools keine Unterscheidung bei der Namensgebung machen und mitallen in ihnen synthesefahigen Sprachen abgleichen.
4.7 Erzeugung der VHDL-Beschreibung 127
Strategie 37 Uberprufung der Namenskonvention
• Uberprufung ∀p ∈ Pin ∪ Pout, ob der Name syntaktisch gultig ist
• Uberprufung der Einzigartigkeit der Namen
• Uberprufung der Namen fur alle Subnetze und deren Ein- und Ausgange
• Uberprufung aller Elemente auf das Verwenden reservierter Begriffe
• Anpassen aller gefundenen Konflikte
Bei der Erzeugung der entity existieren zwei Moglichkeiten, je nach-dem welche Ergebnisse die Strukturanalyse geliefert hat. Dabei kann zumeinen das gesamte Netz ohne Hierarchie betrachtet und daraus ein einzigesSchaltungselement erzeugt werden, oder zum anderen werden alle Subnetzeeinzeln als Schaltungen betrachtet und fur jedes Netz eine eigene Schnittstelleerzeugt. Die Auflosung der Hierarchie ist vor dem Start des Transformations-prozesses geschehen. Generell andert sich durch beide Methoden nichts ander Schnittstelle des Hauptnetzes, aber bei hierarchielosen Netzen konnendie Strategien 39 und 40 ausgelassen werden.
Die Erzeugung der entity erfolgt, indem die Eingangsstellen als std logicElemente vom Typ in der Portliste hinzugefugt werden. Durch die zuletztangewandte Strategie konnen nur noch gultige und einmalige Namen vor-kommen. Weiterhin werden die Ausgangsstellen ebenfalls als std logic unddem Typ out hinzugefugt. In Listing 4.1 ist eine so erzeugte entity zusehen, welche das Netz aus Abbildung 3.5 (a) darstellt. Die Benennung derentity kann beliebig gewahlt werden, da diese nicht von anderen Schnitt-stellenbeschreibungen zusammen verwendet wird. Hier sei erwahnt, dass diemaschinell erstellten VHDL-Beschreibungen aus dem Tool Logical PetriNetin diese Arbeit etwas angepasst wurden, um diese besser lesbar zu machenhinsichtlich Benennung und Formatierung.
Strategie 38 Erzeugung Schnittstelle Hauptnetz/hierarchielos
• Erzeugung der Eingange aus Pin mit allen Eingangsstellen als std logic
• Erzeugung der Ausgange aus Pout mit allen Ausgangsstellen als std logic
• Fuge beide Elementlisten der Port-Liste hinzu
Bei Subtransitionen erfolgt die Erzeugung der Schnittstelle analog zumHauptnetz. Hier sind die Ein- und Ausgange der entity die Netzverbinder.Dabei ist darauf zu achten, dass alle Netzverbinder, die sowohl ein- als auchausgehende Kanten besitzen, als inout Port deklariert werden mussen.
128 4 Transformation von DCPN nach VHDL
Listing 4.1: VHDL-Schnittstellen-Beschreibung fur das Netz mit drei Eingangs-und drei Ausgangsstellen aus Abbildung 3.5 (a) auf Seite 56
entity main net i sport ( P0 , P1 , P2 : in s t d l o g i c ;
P4 , P5 , P6 : out s t d l o g i c ;) ;
end main net ;
Die weiteren Deklarationen der Ports erfolgen simultan zur Strategie 38wobei die Ein- und Ausgangsstellen durch die Netzverbinder ersetzt werdenund diese je nach Typ mit in oder out zu erweitern sind. Das Ergebnis furdie Subtransition aus Abbildung 3.5 (c) ist in Listing 4.2 als entity Tsub0zu sehen. Die Benennung der Subnetze erfolgt soweit moglich durch den imDCPN gegebenen Namen. Dieser sollte im gesamten Netz eindeutig sein,falls ein Subnetz mehrfach zur Anwendung kommt. Daher wird bei einemdoppelt vorkommenden Namen ein Postfix hinzugefugt.
Listing 4.2: VHDL-Beschreibung fur die Subtransition Tsub0 aus dem Netz ausAbbildung 3.5 (c) auf Seite 56.
entity Tsub0 i sport ( P0 , P1 : in s t d l o g i c ;
P3 : out s t d l o g i c ;) ;
end Tsub0 ;
Strategie 39 Erzeugung Schnittstelle Subtransition
• Erzeuge Vektor Vin mit allen eingehenden Netzverbindern
• Erzeuge Vektor Vout mit allen ausgehenden Netzverbindern
• Erzeuge Vektor Vinout mit allen Netzverbindern mit ein- und ausgehendenKanten
• Fuge alle vorhandenen Vektoren der Port-Liste hinzu
Bei Substellen entsprechen die Ein- und Ausgange des Netzes der erstenund letzten Stelle, die mit Netzverbindern nach außen verbunden sind.Dies bedeutet, dass bei Substellen noch Stellen im daruber liegenden Netzhinzugefugt werden, um die Verbindung im Netz nicht zu verlieren. Diesebekommen dann die Kanten aus dem Subnetz, die zu den Stellen innerhalbfuhren. Somit ist dann die Beschreibung der Substelle auf eine Subtransitionzuruckgefuhrt und die Uberfuhrung in eine Schnittstellenbeschreibung kannsimultan zu den Subtransitionen erfolgen. Die Substelle Psub0 aus Abbildung3.5 (b) ist in Listing 4.3 zu sehen.
4.7 Erzeugung der VHDL-Beschreibung 129
Strategie 40 Erzeugung Schnittstelle Substelle
• Nehme alle Stellen, die mit Netzverbindern gekoppelt sind
• Eingehende Kanten von der Stelle sind Eingange der Schnittstelle
• Ausgehende Kanten von der Stelle sind Ausgange der Schnittstelle
• Bei Kanten in beide Richtungen als inout kennzeichnen
• Fuge alle Elemente der Port-Liste hinzu
Listing 4.3: VHDL-Beschreibung fur die Substelle Psub0 aus dem Netz aus Ab-bildung 3.5 (b)
entity Psub0 i sport ( P7 , P8 : in s t d l o g i c ;
P9 , P10 : out s t d l o g i c ;) ;
end Psub0 ;
b
a
sc
T0
T1
T2
T3
T4
T5
T6
T7
(a)
a b s c
0 0 0 0
0 1 1 0
1 0 1 0
1 1 0 1
(b)
Abbildung 4.31: (a) zeigt ein DCPN, welches einen Halbaddierer modelliert.Dabei ist s die Summe der beiden Eingange und c der Ubertrag. Im Beispiel zusehen ist die Belegung des Summen-Ausgangs, wenn eine der Eingangsstellen belegtist. (b) zeigt die daraus resultierende Wahrheitstabelle.
Listing 4.4 zeigt die durch Strategie 38 erzeugte Schnittstelle des mo-dellierten DCPN aus Abbildung 4.31. Dabei sind die Eingange a und bals Eingangssignale und die Ausgange s und c als Ausgangssignale zusam-mengefasst worden. Die Reihenfolge aus der Wahrheitstabelle wird dabeibeibehalten, so dass jederzeit ein Ruckschluss auf die Stellen im DCPN ge-zogen werden kann, falls eine Namensanpassung im Transformationsprozessdurchgefuhrt werden musste.
130 4 Transformation von DCPN nach VHDL
S35 Teilnetze zusammenfugenS36 Hinzufugen vorher entfernter Ein- und AusgangsstellenS37 Uberprufung der NamenskonventionS38 Erzeugung Schnittstelle Hauptnetz/hierarchielosS39 Erzeugung Schnittstelle SubtransitionS40 Erzeugung Schnittstelle Substelle
Abbildung 4.32: Hier zu sehen sind alle Teilschritte der Erzeugung der HDLSchnittstellenbeschreibung mit der Erzeugung von Schnittstellen fur Subnetze.
Listing 4.4: VHDL-Schnittstellenbeschreibung des DCPN aus Abbildung 4.31(a), welche durch Strategie 38 erzeugt wurde.
entity ha l f adder i sport ( a , b : in s t d l o g i c ;
s , c : out s t d l o g i c ;) ;
end ha l f adder ;
Aus diesen Strategien ergibt sich die in Abbildung 4.32 zu sehende Reihen-folge der Schritte zur Erzeugung der Schnittstelle der digitalen Schaltung inVHDL. Hierbei ist darauf zu achten, dass die Strategien 39 und 40 entfallenkonnen, wenn keine Subnetze vorhanden sind, oder eine hierarchielose Dar-stellung erzeugt wird. Außerdem mussen diese beiden Strategien fur jedesSubnetz einzeln ausgefuhrt werden.
4.7.2 Kombinatorik
Nach der Schnittstellenbeschreibung kann die Struktur- oder Verhaltensbe-schreibung des DCPN erfolgen. In diesem Abschnitt kommen die Strategienzum Einsatz, die zur Uberfuhrung von kombinatorischer Logik verwendetwerden, welche in Tabelle 4.11 zu sehen sind. Dabei ist einzig zu unter-scheiden, ob die Wahrheitstabelle oder einer der aufgestellten booleschenAusdrucke zur Anwendung kommen soll.
Zum einen kann die Wahrheitstabelle aus Strategie 25 direkt uberfuhrtwerden. Dabei kommt ein process mit einem case zum Einsatz, bei dem
Schnittstelle
S35
S36
S37
S38 S39 S40
4.7 Erzeugung der VHDL-Beschreibung 131
Tabelle 4.11: Strategien zur Erzeugung des VHDL-Codes zur Verhaltens- undStrukturbeschreibung von kombinatorischer Logik
# Strategie
41 Strukturbeschreibung aus Wahrheitstabelle generieren
42 Strukturbeschreibung aus booleschem Ausdruck erzeugen
abhangig von der Eingangskombination die Ausgange beschrieben werden.Die Eingange werden als Vektor zusammengefasst, da so eine ubersichtlichereDarstellung moglich ist. Die Namen der Ein- und Ausgange werden dabeiaus der Schnittstellenbeschreibung ubernommen. Der Prozess erhalt den Ein-gangsvektor in der Sensitivitatsliste des Prozesses, damit auf jede Anderungeines Signals reagiert wird. Fur das Hauptnetz ist der Vektor Ein = Pin
und fur die Subnetze Ein mit allen Eingangen des Subnetzes. Die Ausgangewerden einzeln gesetzt.
Strategie 41 Strukturbeschreibung aus Wahrheitstabelle generieren
• Erzeuge: signal concat aus Ein
• Erzeuge: process( concat ) und case concat
• ∀w ∈ W erzeuge VHDL Zuweisung: when wi, dann Ausgange wo
Bei der Erzeugung der Verhaltensbeschreibung sind immer alle auftreten-den Kombinationen an Signalen abzudecken. In der Wahrheitstabelle wirddies uber others als letzte Zuweisung realisiert. Erfolgt diese Anweisungnicht, so wird ungewollter Speicher (latches) bei der Synthese erzeugt.
Nach Anwendung von Strategie 41 erfolgt die Beschreibung der Strukturder Schaltung des Halbaddierers aus Abbildung 4.31 mit den in Listing 4.4angelegten Ports. Daraus resultiert die architecture in Listing 4.5, in der einSignal-Vektor fur die Eingange angelegt wird, der im case als Entscheidunguber die einzelnen Ausgange dient. Weiterhin wird er der Sensitivitatslistedes Prozesses hinzugefugt, um auf Eingangsanderungen reagieren zu konnen.Fur den Vektor sind die Eingangssignale uber den Verkettungsoperator (&)miteinander verknupft worden.Als weitere Option zur Darstellung in VHDL konnen die boolschen Aus-
drucke aus den Strategien 26 oder 28 zur Anwendung kommen. Hierbeiwird jedem existierenden Ausgang des Netzes die vorher bestimmte Glei-chung zugewiesen. Listing 4.6 zeigt das Ergebnis fur den Halbaddierer aus
132 4 Transformation von DCPN nach VHDL
Abbildung 4.31. Die gleiche Vorgehensweise gilt auch bei Subnetzen, wenndie Hierarchie nicht aufgelost wurde.
Strategie 42 Strukturbeschreibung aus booleschem Ausdruck erzeugen
• ∀p ∈ Pout erzeuge: p <= boolescher Ausdruck
Listing 4.5: VHDL-Strukturbeschreibung des DCPN aus Abbildung 4.31 (a)mittels der Wahrheitstabelle aus (b).
architecture behavior of ha l f adde r i ssignal concat : s t d l o g i c v e c t o r ( 1 downto 0 ) ;begin
concat <= a & b ;process ( concat )begin
case concat i swhen ”00” => s <= ’0 ’ ; c <= ’0 ’ ;when ”01” => s <= ’1 ’ ; c <= ’0 ’ ;when ”10” => s <= ’1 ’ ; c <= ’0 ’ ;when others => s <= ’0 ’ ; c <= ’1 ’ ;
end case ;end process ;
end behavior ;
Listing 4.6: VHDL-Strukturbeschreibung des DCPN aus Abbildung 4.31 (a)mittels der Anwendung der Strategie 28 zur Minimierung der booleschen Ausdrucke.
architecture behavior of ha l f adde r i sbegin
s <= (not ( a ) and b) or ( a and not (b ) ) ;c <= (a and b ) ;
end behavior ;
S41 Strukturbeschreibung aus Wahrheitstabelle generierenS42 Strukturbeschreibung aus booleschem Ausdruck erzeugen
Abbildung 4.33: Die Ubersicht zeigt die Strategien der Erzeugung der Hardwa-rebeschreibung von kombinatorischer Logik von denen eine Strategie ausgewahltwerden muss.
Kombinatorik
S41 S42
4.7 Erzeugung der VHDL-Beschreibung 133
Die gezeigten Strategien zur Erzeugung der kombinatorischen Logik auseinem DCPN oder Subnetz konnen auch miteinander kombiniert werden.Wichtig ist dabei, dass keiner der Ausgange doppelt zugewiesen wird, daimmer nur die letzte Anderung in der VHDL-Beschreibung in die Schaltungubernommen wird. Abbildung 4.33 zeigt dabei den Ablauf der Anwendungder Strategien. Die hier erzeugte Beschreibung der Schaltung kann nun ineinem bestehenden Tool, wie der Xilinx ISE [Inc16a] oder Vivado [Inc16b]in eine digitale Schaltung uberfuhrt werden. Diese Tools sind fur die Synthe-se optimiert, weswegen dieser Teilschritt in genannte externe Programmeausgelagert ist.
4.7.3 Sequentiell
Bei der Erkennung einer sequentiellen Schaltung in Strategie 24 sind dieso erkannten Netze als nachstes in eine VHDL-Beschreibung zu uberfuhren.Die fur die Transformation benotigten Strategien sind in Tabelle 4.12 zusehen. Als Grundlage dient hier der eingabeorientierte Erreichbarkeitsgraph,der im vorangegangenen Teilschritt der Synthese erstellt wurde.
Tabelle 4.12: Strategien zur Erzeugung der VHDL-Beschreibung zur Verhaltens-und Strukturbeschreibung von sequentieller Logik durch den eingabeorientierenErreichbarkeitsgraphen.
# Strategie
43 Zustande erzeugen
44 Synchronen Zustandsubergang erzeugen
45 Asynchronen Zustandsubergang erzeugen
46 Folgezustande erzeugen
47 Ausgange schreiben
48 Komponenten hinzufugen
Zur Abbildung des eingabeorientierten Erreichbarkeitsgraphen konnendie Automaten aus den Grundlagen zur Anwendung kommen. Dabei dientder Moore-Automat dazu, synchrone Netze abzubilden, und der Mealy-Automat, um asynchrone Schaltungen darzustellen. In VHDL bieten sichdrei unterschiedliche Methoden zur Darstellung von Automaten an. Diesewerden mittels ein, zwei oder drei Prozessen beschrieben. In dieser Arbeit istdie Drei-Prozess-Beschreibung gewahlt worden, wobei jeweils ein Prozess denZustandsubergang, die Berechnung der Folgezustande und das Schreiben der
134 4 Transformation von DCPN nach VHDL
Ausgange ubernimmt. Um die anderen Prozessarten verwenden zu konnen,mussen die hier eingefuhrten Strategien angepasst und teilweise ineinanderuberfuhrt werden. Prinzipiell sind die selben Schritte auszufuhren wie in denStrategien der drei-Prozess-Beschreibung des Automaten.Der Grund fur die Verwendung von Automaten zur Beschreibung der
Schaltung ist zum einen darin begrundet, dass der eingabeorientierte Erreich-barkeitsgraph direkt als Automat interpretiert werden kann. Zum anderenexistieren einige Algorithmen [ElM16] [NS98] [BT09], die in den Toolszur Synthese (Xilinx ISE, Vivado) implementiert sind, die Optimierungenbezuglich Platzverbrauch oder verwendeten Schaltgattern aus gegebenenAutomatenbeschreibungen in VHDL durchfuhren.
Als erste Strategie sind die Zustande des Automaten anzulegen, die denKnoten des IRG entsprechen. Ebenfalls ist ein Typ fur diese Knoten anzu-legen. Damit die angelegten Zustande eindeutig sind, sollte ein eindeutigerPrafix zur Anwendung kommen, da mehrere sequentielle Schaltungen ineiner VHDL-Beschreibung auftreten konnen. Dies kann erfolgen, da mehrereTeilnetze einzeln betrachtet und zu einer Gesamtschaltung zusammengefasstwerden. Hierzu ist dem jeweiligen Zustand ein PN und die Nummer des zutransformierenden Teilnetzes voranzustellen. Weiterhin mussen die Signalefur den aktuellen und den Folgezustand angelegt werden.
Strategie 43 Zustande erzeugen
• Lege eindeutigen Typ und Zustande an ∀e ∈ E aus dem IRG
• Lege eindeutigen Zustand und Folgezustand fur Signale an
Das Listing 4.7 zeigt die erzeugten Zustande aus dem Netz aus Abbildung4.28 in der ersten Zeile, welche alle vom Typ PN0 STATES sind. Die in derzweiten Zeile angelegten Signale fur den aktuellen und den folgenden Zustandsind ebenfalls von diesem Typ. Bei der Erstellung der Zustande spielt die Artder sequentiellen Schaltung noch keine Rolle. Diese wird erst in den nachstenStrategien verwendet. Die in Strategie 34 durchgefuhrte Expandierung deseingabeorientierten Erreichbarkeitsgraphen dient hier einzig dazu Zustandemit der Schaltzeit des Taktes im Automaten einzutragen.
Listing 4.7: Beschreibung der Zustande fur den eingabeorientierten Erreichbar-keitsgraphen aus Abbildung 4.28 (b) fur das dort modellierte Lauflicht.
type PN0 STATES i s (PN0 0 , PN0 1 , PN0 2 , PN0 3 , PN0 4 ,PN0 5 , PN0 6 , PN0 7 , PN0 8 , PN0 9 ) ;
signal PN0 STATE, PN0 FOLLOW STATE: PN0 STATES ;
4.7 Erzeugung der VHDL-Beschreibung 135
Als nachste Strategie kommt die Erzeugung der Zustandsubergange zumEinsatz, wobei die Moglichkeiten eines synchronen oder asynchronen Zu-standsubergangs auftreten konnen. Bei synchronen Ubergangen kann derZustand bei jedem Takt gewechselt werden, woraus folgt, dass der Prozessals einziges Element der Sensitivitatsliste den Takt clk benotigt. Innerhalbdes Prozesses wird der Folgezustand in den aktuellen Zustand geschrieben,wenn der Takt sich andert und eine steigende Flanke vorhanden ist. Listing4.8 zeigt eine solche Beschreibung des Prozesses in VHDL ebenfalls fur dasin Abbildung 4.28 vorgestellte DCPN des Lauflichts. Diese sieht fur allesynchronen Schaltungen genau so aus, bis auf die eindeutigen Bezeichneram Prozessnamen und den Zustanden.
Strategie 44 Synchronen Zustandsubergang erzeugen
• Erzeuge process mit Sensitivitatsliste clk
• Erstelle Ubergang fur den Folgezustand
• Nutze eindeutige Namen aus Strategie 43
Listing 4.8: Der Zustandsspeicher fur einen IRG, wenn nur synchrone Zu-standsubergange statt finden.
PN0 STATEMEMORY: process ( c l k )begin
i f c l k = ’1 ’ and clk ’ event thenPN0 STATE <= PN0 FOLLOW STATE;
end i f ;end process PN0 STATEMEMORY;
Listing 4.9: Der grundlegende Aufbau des Zustandsspeichers fur eine asynchroneSchaltung.
PN0 STATEMEMORY: process ( inputs )begin
PN0 STATE <= PN0 FOLLOW STATE;end process PN0 STATEMEMORY;
Fur asynchrone Schaltungen muss der Prozess zur Beschreibung des Zu-standsubergangs in der Sensitivitatsliste alle Eingange enthalten, damitbei einem Signalwechsel an einem dieser Eingange auf den Folgezustandgewechselt werden kann. Zusatzlich entfallt die Abfrage nach der steigendenFlanke des Taktes innerhalb des Prozesses. Daraus ergibt sich der Aufbaueines asynchronen Zustandsubergangs, der in Listing 4.9 gezeigt wird und inder folgenden Strategie zur Anwendung kommt.
136 4 Transformation von DCPN nach VHDL
Strategie 45 Asynchronen Zustandsubergang erzeugen
• Erzeuge process mit Sensitivitatsliste mit den Eingangen des Netzes
• Erstelle Ubergang fur den Folgezustand
• Nutze eindeutige Namen aus Strategie 43
Listing 4.10: Der Prozess des Zustandsubergangs fur den eingabeorientiertenErreichbarkeitsgraphen aus Abbildung 4.28 (b) mit den optimierten Bedingungenfur die Ubergange.
PN0 FOLLOW: process ( P8 , P9 , PN0 STATE )begin
case PN0 STATE i swhen PN0 0 => PN0 FOLLOW STATE <= PN0 8 ;when PN0 1 => PN0 FOLLOW STATE <= PN0 2 ;when PN0 2 => PN0 FOLLOW STATE <= PN0 3 ;when PN0 3 =>
i f (P9= ’1 ’) then PN0 FOLLOW STATE <= PN0 4 ;else PN0 FOLLOW STATE <= PN0 3 ;end i f ;
when PN0 4 => PN0 FOLLOW STATE <= PN0 5 ;when PN0 5 => PN0 FOLLOW STATE <= PN0 6 ;when PN0 6 => PN0 FOLLOW STATE <= PN0 7 ;when PN0 7 =>
i f (P8= ’1 ’) then PN0 FOLLOW STATE <= PN0 0 ;else PN0 FOLLOW STATE <= PN0 7 ;end i f ;
when PN0 8 => PN0 FOLLOW STATE <= PN0 9 ;when PN0 9 => PN0 FOLLOW STATE <= PN0 1 ;
end case ;end process PN0 FOLLOW;
Als nachstes muss der Prozess zur Bestimmung des Folgezustands auf-gestellt werden. Dieser wird aus dem aktuellen Zustand und der geradeanliegenden Kombination an Marken in den Eingangsstellen bestimmt. So-mit benotigt der Prozess in der Sensitivitatsliste den aktuellen Zustand undalle Eingange. Listing 4.10 zeigt die gesamte VHDL-Beschreibung fur das inAbbildung 4.28 modellierte Lauflicht. Dabei sind die einzelnen Zustande desIRG in einem case zusammengefasst und je nach Eingangsbelegung wird derFolgezustand bestimmt. Hier kommt die vorher durchgefuhrte Optimierungder Bedingungen aus Strategie 33 zum Einsatz, wodurch die meisten Folge-zustande ohne weitere Uberprufung direkt bestimmt werden konnen. Nurin den Fallen PN0 3 und PN0 7 existieren Bedingungen, die zu uberprufensind, welche per Fallunterscheidung durchgefuhrt werden. Zum Vergleich seihier Tabelle 4.29 (b) angefuhrt, wo zu sehen ist, dass Bedingungen nur furdie beiden Kanten a3 und a7 existieren.
4.7 Erzeugung der VHDL-Beschreibung 137
Im Listing 4.10 ist der Ubergang fur synchrone Schaltungen zu sehen. Beiasynchronen Schaltungen ist der Takt clk zusatzlich bei der Berechnungdes Folgezustands zu berucksichtigen. Somit kann der Takt als zusatzlichesEvent in der Schaltung angesehen werden. Fur die Bestimmung eines Folge-zustands muss der Takt also zusatzlich mit in Betracht gezogen werden. Dader so erzeugte Automat einer asynchronen Schaltung entspricht, wird dieZustandsbeschreibung wie bisher auch verwendet. Bei der Berechnung desFolgezustands ist der Ubergang in einen synchronen und einen asynchronenTeil aufzusplitten.
P0
P1
P2
P3
P: 1
T0
T: 1ns
T1
(a)
e0
e1
e2
e3
a0
a1
a2
a3
(b)
Abbildung 4.34: In (a) ist ein Petri-Netz mit einer asynchronen Transition T0 undeiner synchronen Transition T1 zu sehen. Die Ubergangsbedingungen hieraus sindin Tabelle 4.14 zu sehen. (b) zeigt den eingabeorientierten Erreichbarkeitsgraphendes Netzes.
Tabelle 4.13: Die Tabelle zeigt dieMarkierung der einzelnen Knoten ausdem IRG in Abbildung 4.34 (b).
P2 P3
e0 0 0
e1 0 1
e2 1 0
e3 1 1
Tabelle 4.14: Hier sind die Uber-gangsbedingungen der Kanten desIRG zu sehen. Dabei sind alle Uber-gange ohne Schaltzeit asynchron.
P0 P1 Schaltzeit
a0 0 1 1ns
a1 1 1 -
a2 1 1 -
a3 - 1 1ns
Abbildung 4.34 zeigt in (a) ein DCPN, bei dem ein synchroner Teil mit T1
und ein asynchroner Teil mit T0 vorhanden ist. (b) zeigt den dazu generierteneingabeorientierten Erreichbarkeitsgraphen mit den Knotenmarkierungenaus Tabelle 4.13 und den Bedingungen in den Kanten aus Tabelle 4.14.Hierbei ist zu sehen, dass Kanten mit und ohne Schaltzeit existieren. Hieraus
138 4 Transformation von DCPN nach VHDL
lasst sich ableiten welcher Teil der Schaltung synchron oder asynchron ist.In der erzeugten VHDL-Beschreibung ist also zwischen den beiden Typenzu unterscheiden. Listing 4.11 zeigt die grundsatzliche Beschreibung dessynchronen und asynchronen Teils der Schaltung, welche in zwei Prozesseaufgeteilt werden. Der Takt fließt nur in den synchronen Prozess ein.
Listing 4.11: Das Listing zeigt die grundlegende Bestimmung des Folgezustandsfur das in Abbildung 4.34 gegebene DCPN wenn synchrone und asynchroneSchaltungsteile zusammen in einem Netz vorhanden sind. Es erfolgt eine Aufteilungin einen synchronen und asynchronen Teil der Schaltung.
PN0 FOLLOW SYN: process ( c l k )begin
i f ( c l k = ’1 ’ and clk ’ event ) thencase PN0 STATE i s
when PN0 0 =>i f (P0= ’0 ’ and P1= ’1 ’) then
PN0 FOLLOW S <= PN0 1 ;else
PN0 FOLLOW S <= PN0 0 ;end i f ;
when PN0 1 =>PN0 FOLLOW S <= PN0 1 ;
−− . . .end case ;
end i f ;end process PN0 FOLLOW SYN;
PN0 FOLLOW ASYN: process ( P0 , P1 , PN0 STATE )begin
case PN0 STATE i swhen PN0 0 =>
i f (P0= ’1 ’ and P1= ’1 ’) thenPN0 FOLLOW A <= PN0 2 ;
elsePN0 FOLLOW A <= PN0 0 ;
end i f ;−− . . .when PN0 3 =>
PN0 FOLLOW A <= PN0 3 ;end case ;
end process PN0 FOLLOW ASYN;
Die Ausgange sind bei dem erzeugten Automaten nur vom jeweiligenZustand des Systems abhangig, wodurch der Prozess der Ausgange in derSensitivitatsliste einzig den aktuellen Zustand des Systems erhalt. Wiebeim Bestimmen des Folgezustands sind hier alle existierenden Zustandeuber eine Fallunterscheidung (case) abzudecken und fur jeden Zustand sind
4.7 Erzeugung der VHDL-Beschreibung 139
alle Ausgange zu schreiben. Wichtig ist, dass immer alle Ausgange neugeschrieben werden, da sonst zusatzlicher ungewollter Speicher durch nichtabgedeckte Falle entsteht. Listing 4.12 zeigt den grundsatzlichen Aufbau desProzesses fur den Ringzahler oder das Lauflicht-Beispiel aus Abbildung 4.28(b), wobei nur die ersten beiden und der letzte Zustand beschrieben sind.Fur die weiteren Zustande ist analog vorzugehen.
Strategie 46 Folgezustande erzeugen
• Erzeuge process mit Eingangen und aktuellem Zustandin der Sensitivitatsliste
• Bilde alle Zustande im case ab
• Bestimme fur jeden Zustand den Folgezustand,abhangig von der Eingangsbelegung
• Bei gemischten Netzen (synchron/asynchron) TeileFolgezustandsberechnung in synchron und Rest auf
Strategie 47 Ausgange schreiben
• Erzeuge process mit aktuellem Zustand in der Sensitivitatsliste
• Bilde alle Zustande im case ab
• Schreibe pro Zustand alle Ausgange
Listing 4.12: Die Beschreibung der Ausgange des Netzes aus Abbildung 4.28(a) mittels eines Prozesses, der abhangig vom momentanen Zustand des IRG dieAusgange schreibt. Es sind die ersten beiden und der letzte Zustand aufgefuhrt.Fur alle weiteren Zustande verhalt sich die Belegung der Ausgange wie in Tabelle4.8 gezeigt.
PN0 OUTPUT: process ( PN0 STATE )begin
case PN0 STATE i swhen PN0 0 => P0<= ’1 ’; P1<= ’0 ’; P2<= ’0 ’; P3<= ’0 ’;
P4<= ’0 ’; P5<= ’0 ’; P6<= ’0 ’; P7<= ’0 ’;when PN0 1 => P0<= ’0 ’; P1<= ’1 ’; P2<= ’0 ’; P3<= ’0 ’;
P4<= ’0 ’; P5<= ’0 ’; P6<= ’0 ’; P7<= ’0 ’;−− . . .when others => P0<= ’1 ’; P1<= ’0 ’; P2<= ’0 ’; P3<= ’0 ’;
P4<= ’0 ’; P5<= ’0 ’; P6<= ’0 ’; P7<= ’0 ’;end case ;
end process PN0 OUTPUT;
140 4 Transformation von DCPN nach VHDL
Als letzte Option bestehen noch vorhandene Subnetze, die in die Schal-tung integriert werden mussen. Dazu dient der component Befehl in VHDL.Hierzu wird das Subnetz als Komponente im daruber liegenden Netz verwen-det. Um dies durchfuhren zu konnen, muss eine Verdrahtung der Ein- undAusgange der Komponente mit dem Hauptnetz erfolgen. Zusatzlich mussvorher noch eine Deklaration der Komponente erfolgen. Beim Vorhandenseinvon mehreren Struktur- oder Verhaltensbeschreibungen fur eine Schnittstel-le muss ebenfalls noch angegeben werden, welche Beschreibung verwendetwerden soll.
P0
P1
P2or2
(a)
T0
T1
T2
T3
a
b
y
(b)
Abbildung 4.35: In (a) ist ein Petri-Netz mit einem Subnetz zu sehen, welches diebeiden Eingange P0 und P1 auf den Ausgang P2 fuhrt. In (b) ist das Subnetz or2zu sehen. Das Subnetz wird als Komponente ins daruber liegende Netz integriert.
Strategie 48 Komponenten hinzufugen
• Lege Komponente in Struktur-/Verhaltensbeschreibung an
• Weise verwendete architecture zu
• Verdrahte Ein- und Ausgange uber die port map
Ein kleines Beispiel zeigt die Verwendung eines Subnetzes in Abbildung4.35 (a) und dem Netz des Subnetzes or2 in (b). Daraus resultiert diein Listing 4.13 zu sehende VHDL-Beschreibung. Dabei ist der erste Teilder architecture die Beschreibung der Komponente mit ihren Ein- undAusgangen. Dann folgt die Angabe der zu verwendenden Beschreibung furdie Schnittstelle der Komponente und als letztes die Zuweisung der Ein-und Ausgange des Hauptnetzes zu dem Subnetz. Weitere Beispiel sind im
4.7 Erzeugung der VHDL-Beschreibung 141
Abschnitt 5.3 zu den exemplarischen DCPN zu finden. Unter anderem istdort ein 4-Bit Addierer in Listing 5.12 zu sehen, der aus vier Subnetzenbesteht.
Listing 4.13: Hier ist die Beschreibung des Hauptnetzes aus Abbildung 4.35 zusehen. Dabei kommt die Komponente or2 im Hauptnetz zum Einsatz.
entity main net i sport ( P0 , P1 : in s t d l o g i c ;
P2 : out s t d l o g i c ) ;end main net ;
architecture behavior of main net i scomponent or2 i sport ( a , b : in s t d l o g i c ;
y : out s t d l o g i c ) ;end component ;
for or20 : or2 use entity work . or2 ( behavior ) ;
beginor20 : or2 port map( a=>P0 , b=>P1 , y=>P2 ) ;
end behavior ;
S43 Zustande erzeugenS44 Synchronen Zustandsubergang erzeugenS45 Asynchronen Zustandsubergang erzeugenS46 Folgezustande erzeugenS47 Ausgange schreibenS48 Komponenten hinzufugen
Abbildung 4.36: Die Ubersicht zeigt die Strategien der Erzeugung der Hardwa-rebeschreibung von sequentieller Logik mittels des eingabeorientierten Erreichbar-keitsgraphen.
Sequentiell
S43
S44 S45
S46
S47
S48
142 4 Transformation von DCPN nach VHDL
Die beschriebenen Strategien zur Erzeugung der Verhaltensbeschreibungvon sequentiellen Schaltungen sind in Abbildung 4.36 zu sehen. Je nacherkanntem Schaltungstyp wird eine der Strategien 44 oder 45 zur Bestimmungdes Zustandsubergangs verwendet. Aus der erzeugten architecture kannjetzt ebenso wie bei kombinatorischer Logik uber externe Programme diedigitale Schaltung synthetisiert werden.
4.8 Verifikation der Schaltung
In diesem Abschnitt erfolgt die Verifikation der aus einem Petri-Netz trans-formierten digitalen Schaltung. Hierzu finden die in Tabelle 4.15 aufgezeigtenStrategien ihre Anwendung. Großtenteils setzen diese Methoden auf einen Ver-gleich der Simulationsergebnisse des modellierten DCPN und der erzeugtenSchaltung. Sollten diese nicht ubereinstimmen, so ist von einer fehlerhaftenTransformation auszugehen. Dieser Teilschritt dient der Uberprufung dererzielten Ergebnisse und kann nach abschließender Verifikation des gesamtenTransformationsprozesses entfernt werden.
Das fur diese Arbeit entstandene Tool Logical PetriNet wird dabei nichtin diesem Kapitel validiert. Dies erfolgt soweit moglich in einem spaterenAbschnitt der Arbeit zum Tool selbst. In diesem Abschnitt werden die Simu-lationsergebnisse des Tools verwendet, um eine Verifikation der generiertenSchaltung bewerkstelligen zu konnen.
Tabelle 4.15: Strategien zur Verifikation der transformierten digitalen Schaltung.
# Strategie
49 Test-Bench erstellen
50 Simulationsergebnisse vergleichen
Als erster Schritt zur Verifikation wird als nachstes eine Test-Bench er-zeugt, mit deren Hilfe die Schaltung simuliert werden kann. Dabei ist dieTest-Bench mitsamt der VHDL-Beschreibung in ein externes Tool, wie bei-spielsweise der Xilinx ISE [Inc16a] oder der Vivado Design Suite [Inc16b] zuladen und dort auszufuhren. Das Listing 4.14 zeigt die erzeugte Testbenchfur das transformierte DCPN aus Abbildung 4.31 (a), welches einen Halb-addierer beschreibt. Aus dem Listing lasst sich auch direkt die Reihenfolgeder Erzeugung von Elementen fur eine Testbench abstrahieren. Bei sequenti-ellen Schaltungen, welche synchrone Schaltwerke abbilden, muss noch einzusatzlicher Takt (clk) hinzugefugt werden. Dieser Takt wird auch bei kombi-
4.8 Verifikation der Schaltung 143
natorischen Schaltungen in der Test-Bench verwendet, da nach festgelegtenZeitpunkten alle Werte der Simulation in eine Datei geschrieben werden, umdiese spater in das Tool Logical PetriNet zu laden. Dieses Vorgehen ist imAbschnitt 5.1.7 des Tools beschrieben.
Listing 4.14: Das Listing zeigt die erzeugte Test-Bench fur das Netz aus Abbildung4.31 (a). Die entity ist bei Test-Benches in dieser Arbeit immer leer und wurde hierdeswegen weggelassen. Zusatzlich muss die zu verwendende Komponente bekanntgemacht werden und das Mapping der Eingange muss vorgenommen werden. Imunteren Teil der Test-Bench ist dann der eigentliche Signalverlauf aufgezeichnet.
architecture te s tbench of te s tbench main net i scomponent main net i s
port (a , b : in s t d l o g i c ;s , c : out s t d l o g i c ) ;
end component ;
signal tb a : s t d l o g i c := ’ 0 ’ ;signal tb b : s t d l o g i c := ’ 0 ’ ;signal tb s : s t d l o g i c ;signal tb c : s t d l o g i c ;
beginDUT: main net port map(
a => tb a ,b => tb b ,s => tb s ,c => tb c
) ;
processbegin
tb a <= ’0 ’ ; tb b <= ’0 ’ ; wait for 10 ns ;tb a <= ’0 ’ ; tb b <= ’1 ’ ; wait for 10 ns ;tb a <= ’1 ’ ; tb b <= ’0 ’ ; wait for 10 ns ;tb a <= ’1 ’ ; tb b <= ’1 ’ ; wait for 10 ns ;
end process ;end te s tbench ;
Strategie 49 Test-Bench erstellen
• Erzeuge Komponente mit Ein- und Ausgangen aus dem DCPN
• Erstelle Signale fur alle Ein- und Ausgange
• Verknupfe Signale mit Elementen der Komponente
• Erzeuge den Stimulus fur die Simulation
• Bei synchronen Schaltwerken fuge noch einen Takt hinzu
144 4 Transformation von DCPN nach VHDL
0ns 10ns 20ns 30ns 40ns 50ns 60ns 70ns 80ns 90ns 100ns 110ns 120ns
a
b
s
c
Abbildung 4.37: Zeigt das Simulationsergebnis aus der Test-Bench in Listing4.14, welches mit dem Simulator der Xilinx ISE erzeugt wurde.
0 10 20 30 40 50 60 70 80 90 100 110 120
ns
a
b
s
c
Abbildung 4.38: Zeigt das Simulationsergebnis fur das DCPN aus Abbildung4.31 im Tool Logical PetriNet.
Die so erzeugten Simulationsergebnisse, wie in Abbildung 4.37 zu sehen,mussen als nachstes mit den Simulationsergebnissen des modellierten DCPNverglichen werden (Abbildung 4.38). Zur Verifikation der transformiertenSchaltung mussen alle unterschiedlichen Eingangsubergange getestet werden.Fur den Halbaddierer sind diese Ubergange in den Abbildungen zu sehen.Fur alle anderen Vergleiche sind in dieser Arbeit jeweils Ausschnitte derkompletten Simulation zu sehen. Die Simulationen konnen manuell oderunter Einsatz von Tools validiert werden, die die Signale der Ausgangemaschinell vergleichen. Hierbei bietet VHDL, mittels des Pakets textio, dieMoglichkeit Werte von Signalen in einer Datei zu speichern und diese somit anderen Werkzeugen auswertbar zu machen. Die interne Simulation vonbeispielsweise der Xilinx ISE bietet keinen Export in ein offenes Format an.Das spater in dieser Arbeit vorgestellte Tool kann die per textio herausge-schriebenen Simulationsergebnisse einlesen und mit dem modellierten Netzvergleichen, wodurch das manuelle Uberprufen der validierten Ergebnissebei der Simulation entfallt.
4.9 Analyse bestehender digitaler Schaltungen 145
Strategie 50 Simulationsergebnisse vergleichen
• Vergleich Simulation und modelliertes Netz
– Manuell
– Rechnergestutzt
Somit ist der letzte Schritt der Transformation abgeschlossen, nachdemdie in Abbildung 4.39 gezeigten Strategien durchgefuhrt wurden. Im Produk-tivbetrieb des Systems kann der letzte Teilschritt der Validierung entfallen.Er dient in dieser Arbeit zum Belegen des funktionierenden Transformati-onsprozesses. In spateren Tools zur Transformation ist Strategie 50 immergetrennt vom eigentlichen Transformationsprozess durchzufuhren, da fur denVergleich erst die VHDL-Beschreibung in eine digitale Schaltung synthetisiertwerden muss.
S49 Test-Bench erstellenS50 Simulationsergebnisse vergleichen
Abbildung 4.39: Hier sind die Teilschritte der Verifikation der transformiertendigitalen Schaltung zu sehen.
4.9 Analyse bestehender digitaler Schaltungen
Die in dieser Arbeit vorgestellten Methoden zur Analyse von Petri-Netzen,hier im speziellen die DCPN, kann auch dazu genutzt werden, um schon fertigerzeugte Schaltungen als Petri-Netz zu analysieren und zu simulieren. Dazuist eine Transformation in die entgegengesetzte Richtung durchzufuhren.Wichtig ist, dass bei einer erneuten Transformation der uberfuhrten Schal-tung in ein Petri-Netz und wieder zuruck in eine Schaltung ein von derAusgangsschaltung unterschiedliches Design erzeugt werden kann. Daher istdie Rucktransformation nur fur Analyse und Simulationszwecke geeignet,wenn am eigentlichen Schaltungsentwurf nichts verandert werden soll. DieRucktransformation dient also einzig zur Validierung und Verifikation derSchaltung.
Verifikation
S49
S50
146 4 Transformation von DCPN nach VHDL
Es spielt keine Rolle, ob die Schaltung als VHDL-Beschreibung oder alsGatter-Beschreibung vorliegt. Einzig die Regeln zur Rucktransformationsind in einem Software-Werkzeug zu implementieren. Fur jedes existierendeKonstrukt muss eine eigene Beschreibung der Transformation angelegt wer-den. Fur grundlegende Gatter wie and, or, not, xor, nand und nor sind dieRegeln in dieser Arbeit gegeben, ebenso wie die Beschreibungsmethoden furdiverse Flip-Flops wie in Kapitel 4.1 beschrieben.Die Rucktransformation ist vor allem fur Steuerwerke interessant, da de-
ren Analyse und Simulation unter Umstanden sehr aufwandig ist, wenn nurdie digitale Schaltung zur Verfugung steht. Daher existieren verschiedeneAnsatze wie zum Beispiel in [OC93] oder [CG90] zur weiteren Analyse vondigitalen Schaltungen. Weitere Probleme bei der Analyse von sequentiellerLogik sind in [AKW05] aufgefuhrt, die mit diesem Ansatz der Transfor-mation von digitalen Schaltungen in Petri-Netze gelost werden konnten.Als Beispiele seien die Analyse der Beschranktheit und Lebendigkeit vonPetri-Netzen gegeben. Mittels der Beschranktheit eines Petri-Netzes kanndie Anzahl der Zustande auf eine endliche Menge hin analysiert werden.Kontrollpfade mit einer unendlichen Anzahl an Zustanden sind somit erkenn-bar. Uber die Lebendigkeit eines transformierten Netzes, oder der einzelnenTransitionen, konnen Aussagen zur funktionalen Verifikation der Schaltunggetroffen werden.In dieser Arbeit ist die Transformation von digitalen Schaltungen in
Petri-Netze kein Hauptbestandteil, sondern ist beim Erstellen des Transfor-mationsprozesses zusatzlich entstanden und benotigt weitere Strategien zurfehlerfreien Transformation. Ebenso fehlen viele Komponenten der Digital-technik, die alle einzeln in Petri-Netze uberfuhrt werden mussen.Abbildung 4.40 zeigt in (a) eine digitale Schaltung auf Gatter-Ebene,
welche kombinatorische Logik der Gleichung
y = (a ∧ b)⊕ (c ∧ d)
abbildet. Durch Transformation mittels der Regeln aus Kapitel 4.1.1 ent-steht das DCPN in Abbildung 4.40 (b) zu sehende Netz. Der Vergleich derWahrheitstabellen zeigt das selbe Verhalten fur die Schaltung und fur dastransformierte Netz bezuglich dem Ausgang y.
Die Simulationsergebnisse der digitalen Schaltung sind in Abbildung 4.41zu sehen. Sie wurde mit der Xilinx ISE (Integrated Synthesis Environment)[Inc16a] und dem dort integrierten Simulator ISim erzeugt. Die fur dieEingange festgelegten Pegel sind ebenfalls bei der zeitlichen Simulation desDCPN zum Einsatz gekommen. Abbildung 4.42 zeigt die Simulationser-gebnisse der zeitbehafteten Simulation des Petri-Netzes im Tool Logical
4.9 Analyse bestehender digitaler Schaltungen 147
&
&
= 1
a
b
c
d
y
(a)
a
b
c
d
y
(b)
Abbildung 4.40: In (a) ist eine digitale Schaltung in Gatter-Ansicht zu sehen.(b) zeigt die transformierte Schaltung mittels der in Kapitel 4.1.1 vorgestelltenDarstellung von grundlegenden Gattern als Petri-Netz.
PetriNet. Die Ergebnisse beider Simulationen stimmen fur den gegebenenEingangssignalverlauf uberein und zeigen die korrekte Umwandlung derkombinatorischen Logik in eine digitale Schaltung. In den hier zu sehendenErgebnissen wird nur ein Teil der kompletten Simulation abgebildet, um dieUbersichtlichkeit in der Arbeit zu erhalten.
0ns 20ns 40ns 60ns 80ns 100ns 120ns 140ns 160ns
a
b
c
d
y
Abbildung 4.41: Die Simulationsergebnisse der digitalen Schaltung aus Abbil-dung 4.40 (a) erzeugt mittels der Xilinx ISE und ISim.
Die hier gezeigten Ansatze konnen verwendet werden, um bestehende undneu modellierte digitale Schaltungen in Petri-Netze zu uberfuhren. Hierzu
148 4 Transformation von DCPN nach VHDL
0 20 40 60 80 100 120 140 160Zeit (in ns)
a
b
c
d
y
Abbildung 4.42: Die Simulationsergebnisse des DCPN aus Abbildung 4.40 (b)erzeugt mittels des Tools Logical PetriNet.
ist die Beschreibung eines jeden Elements der Schaltung als Petri-Netzerforderlich. Dies ist nicht Teil dieser Arbeit, kann aber in weiteren Arbeitenverfolgt und implementiert werden. Die resultierenden Netze konnen dann mitden hier gegebenen Methoden analysiert und auf Fehlverhalten untersuchtwerden. Anpassungen der Schaltung sind am Petri-Netz vorzunehmen undnach Beseitigung der fehlerhaften Schaltungselemente kann das Netz in einedigitale Schaltung zuruck transformiert werden. Dabei ist darauf zu achten,dass ein anderer Aufbau der Schaltung entstehen wird, als der ursprunglicheAufbau, da die Transformation immer den hier gegebenen Regeln folgt. EineUberfuhrung von Struktur in Struktur ist in dieser Arbeit nicht angedacht,sondern es findet immer eine Transformation des gesamten Netzes statt.
4.10 Gesamtuberblick Transformationsprozess
Als Abschluss des Kapitels wird hier ein kompletter Graph des Transfor-mationsprozesses gegeben. Abbildung 4.43 und 4.44 zeigen alle Schritteder Transformation im detaillierten Uberblick. Hierbei sind die Strategienam rechten Rand genannt. Die Abbildung zeigt den Gesamtprozess ohneeine Aufteilung in die Transformationsschritte Modellierung, Validierung,Optimierung, Analyse, Synthese, Hardwarebeschreibung und Verifikation.Gleichzeitig ausfuhrbare Strategien sind in der Abbildung nebeneinanderangeordnet und durch die gerichteten Kanten ist zu sehen, welche Strategienausgefuhrt werden konnen. Es findet in der Ubersicht keine Unterscheidungstatt, ob Strategien parallel oder alternativ ausgefuhrt werden. Strategienkonnen immer erst ausgefuhrt werden, wenn alle benotigten eingehendenStrategien erfolgreich abgeschlossen wurden.
4.10 Gesamtuberblick Transformationsprozess 149
S1 Vorhandener Eingang und AusgangS2 Vorhandene TransitionS3 Kanten bei Eingangs- und AusgangsstellenS4 Transition ohne eingehende/ausgehende KanteS5 Stellen ohne eingehende/ausgehende KanteS6 Eingehende/ausgehende Kanten bei SubnetzenS7 ZusammenhangS8 Starker ZusammenhangS9 Statische KonflikteS10 Entfernung von Elementen ohne KantenS11 Zusammenfassung von parallelen TransitionenS12 Zusammenfassung von Transitionen in ReiheS13 Entfernung von Stellen ohne eingehende KanteS14 Entfernung nicht zusammenhangender NetzbereicheS15 Reduktion von NetzsymmetrienS16 Bestimmung NetztypS17 Erreichbarkeitsgraphen aufstellenS18 Zyklen bestimmenS19 TerminierungS20 Zeitlose Terminierung
S21 Eindeutiger EndzustandS22 Eindeutig definierter ZustandS23 ZustandsfreiheitS24 Schaltungstyp bestimmenS25 Wahrheitstabelle erzeugenS26 Erzeugung DNF/KNFS27 Optimierungsziele festlegen
S28 Technologieunabhangige OptimierungS29 Bestimmung des sequentiellen SchaltungstypsS30 Berechnung des TaktsS31 Bestimmung der abweichenden SchaltzeitenS32 Erzeugung des IRGS33 Bedingungen des IRG optimierenS34 Anpassung des IRG an den Takt
Abbildung 4.43: Die Abbildung zeigt den ersten Teil der Transformation, wel-cher in dieser Arbeit entstanden ist. Der restliche Prozess ist in Abbildung 4.44dargestellt. Die Details sind in den vorherigen Unterkapiteln aufgestellt worden.
Start
S5S1 E
S1 A
S3
S2
S4
S6S7
S8
S9
S10 S11 S12 S13 S14
S15
S16 S17
S18
S19 S20
S21 S22
S23
S24
S25
S26 S27 S28
S29
S30
S31
S32
S33
S34
Abb. 4.44
150 4 Transformation von DCPN nach VHDL
S35 Teilnetze zusammenfugenS36 Hinzufugen vorher entfernter Ein- und AusgangsstellenS37 Uberprufung der NamenskonventionS38 Erzeugung Schnittstelle Hauptnetz/hierarchielosS39 Erzeugung Schnittstelle SubtransitionS40 Erzeugung Schnittstelle SubstelleS41 Strukturbeschreibung aus Wahrheitstabelle generierenS42 Strukturbeschreibung aus booleschem Ausdruck erzeugenS43 Zustande erzeugenS44 Synchronen Zustandsubergang erzeugenS45 Asynchronen Zustandsubergang erzeugenS46 Folgezustande erzeugenS47 Ausgange schreibenS48 Komponenten hinzufugenS49 Test-Bench erstellenS50 Simulationsergebnisse vergleichen
Abbildung 4.44: Hier ist die Fortsetzung des Transformationsprozesses ausAbbildung 4.43 zu sehen.
Abb. 4.43
S35
S36
S37
S38 S39 S40
S41 S42 S43
S44 S45
S46
S47
S48
S49
S50
Ende
5 Implementierung undValidierung
Zur Verifikation und Validierung der in dieser Arbeit vorgestellten Verfahrenzur Transformation von DCPN in digitale Schaltungen ist das ProgrammLogical PetriNet entwickelt und implementiert worden, um die vorgestelltenMethoden auch an nicht trivialen Netzen zu testen und zu verifizieren. Zureinheitlicheren Modellierung von DCPN sind in diesem Kapitel ebenfallseinige Regeln zur Modellierung aufgestellt worden, die zusatzlich bei derFehlersuche und Fehlervermeidung helfen konnen. Es folgt eine Vorstellungder Funktionalitat des Programms und die Validierung und Transformationwird an einigen Petri-Netzen prasentiert.
5.1 Logical PetriNet
Das Tool Logical PetriNet (LPN ) ist im Zuge dieser Arbeit am Lehrstuhl furAutomatisierungstechnik/Informatik entwickelt worden. Mittels des Tools istdie Modellierung mehrerer unabhangiger DCPN moglich. Die Analyse undSimulation kann ebenfalls fur jedes Netz separat durchgefuhrt werden. Abbil-dung 5.1 zeigt die Benutzeroberflache (GUI) des Tools. Das Programm ist inJava programmiert, da dort fur die GUI schon fertige Elemente vorhandensind und dies einen großen Teil der Oberflachenentwicklung erleichtert hat.Dennoch mussten einige Elemente wie das Menu selbstandig implementiertwerden, da keine geeigneten Grafikelemente fur eine passende Anzeige zurVerfugung standen.
Das Programm ist in einzelne Komponenten aufgeteilt, die in Abbildung5.2 zu sehen sind. Dabei unterstutzt der Editor beim Modellieren einesDCPN, indem er bereits durch Auswahlmoglichkeiten die graphisch mo-dellierte Korrektheit des Netzes uberpruft. Dies dient hauptsachlich zurVerhinderung von nicht erlaubten Kanten, da hierfur eindeutige Regeln zurVerfugung stehen, die im Prozess der Modellierung direkt angewandt werdenkonnen. Der ubersichtliche Entwurf eines DCPN bekommt zusatzlich nochUnterstutzung durch die Moglichkeit Elemente des Netzes zu verschieben,
© Springer Fachmedien Wiesbaden GmbH, ein Teil von Springer Nature 2019C. Brandau, Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets, https://doi.org/10.1007/978-3-658-25244-1_5
152 5 Implementierung und Validierung
Abbildung 5.1: Zeigt die GUI des Programms Logical PetriNet mit einem mo-dellierten DCPN. Die einzelnen Bestandteile des Programms werden im Folgendenerlautert.
wobei die Kanten immer korrekt mitgefuhrt werden. Weiterhin existiert dieMoglichkeit ein orthogonales Raster auf die Zeichenflache zu legen und alleElemente daran auszurichten. Das Kopieren und Einfugen von Teilnetzenerleichtert das Erzeugen von großeren Netzen mit wiederkehrenden Struktu-ren. Beschriftungen und Anderungen der einzelnen Elemente konnen uberein elementspezifisches Kontext-Menu durchgefuhrt werden.Die in Abbildung 5.1 auf der rechten Seite zu sehende Miniaturansicht
(mini map) erleichtert das Navigieren durch großere Petri-Netze und zeigtjederzeit eine komplette Ansicht des modellierten Netzes. Darunter befin-det sich eine Liste aller im aktuellen Netz existierenden Elemente. Diesekonnen durch ein Suchfeld anhand ihres Namens gefunden werden. Hierdurchexistiert eine vereinfachte Bearbeitung bestimmter Elemente ohne diese inder graphischen Ansicht suchen zu mussen. Als zusatzliches Hilfsmittel zuroptimierten Darstellung eines modellierten Netzes ist ein Platzierungstool imProgramm implementiert. Dieses sortiert das Netz mit den Eingangsstellenlinks und den Ausgangsstellen rechts und optimiert die Platzierung derElemente dazwischen mit moglichst wenig Uberschneidungen von Kanten.
5.1 Logical PetriNet 153
Logger
Editor Petri-Netz-Kern
GUI
PNML-Parser
Export-Schnittstellen
Platzierungs-optimierung
Markenspiel Funktions-Bibliothek
Simulation Analyse
Transformation VHDL-Parser
PNML
gif, png,jpg, svg,tex, csv
Log-Datei
VHDL
Abbildung 5.2: Interner Aufbau des Tools Logical PetriNet mit seinen einzelnenKomponenten. Der linke Teil zeigt die Schnittstellen nach außen und rechts sindvor allem der interne Aufbau und die zur Verfugung stehenden Funktionsblocke zusehen. Der Logger zeichnet auf Wunsch alle Aktionen im Programm auf.
5.1.1 Platzierungsoptimierung
Zur optimierten Anzeige der unterschiedlichen Graphen und Netze kommt indem Tool die Bibliothek KIELER [Kie15] zum Einsatz. Zur Optimierung sinddie in Abbildung 5.3 zu sehenden Phasen zu durchlaufen. Die Platzierungwird auch bei der Erstellung der Erreichbarkeitsgraphen verwendet, wobeihier die fur diese Arbeit festgelegten Standardeinstellungen ubernommenwerden. Weiterhin konnen die Elemente eines DCPN mit moglichst wenigKantenuberschneidungen platziert werden. Hierbei sind Eingangsstellen ganzlinks und Ausgangsstellen ganz rechts im Netz angeordnet. Diese Restriktionist vorgegeben, um das DCPN moglichst ubersichtlich zu zeichnen.
Abbildung 5.3: Die zur Optimierung der unterschiedlichen Graphen verwendetenPhasen der KIELER Bibliothek.
Zyklenentfernung
Schichtenzuweisung
Kreuzungsreduktion
Knotenplatzierung
Kantenzeichnung
154 5 Implementierung und Validierung
Die funf Phasen sind im einzelnen die Zyklenentfernung, Schichtenzuwei-sung, Kreuzungsreduktion, Knotenplatzierung und Kantenzeichnung, die imFolgenden naher beschrieben sind. Als Eingabe dient ein unsortierter Graphmit Elementen und Kanten und als Ausgabe erfolgt ein sortierter Graph.Die Zyklenentfernung ist der erste Schritt der Optimierung der Platzie-
rung, da fur die weiteren Phasen ein zyklenfreier Graph vorhanden seinmuss. Hierbei stehen zwei Algorithmen zur Verfugung. Zum einen ist diesder Greedy-Algorithmus [PS00], bei dem Knoten anhand eingehender undausgehender Kanten als Quelle oder Ziel zu interpretieren sind. Jede Kante,die dabei von einem Ziel auf eine Quelle zeigt, ist fur diesen Schritt des Al-gorithmus umzudrehen. Als weitere Methode ist der Interactive-Alogrithmus[Ros80] implementiert, bei dem jede nach rechts zeigende Kante umgedrehtwird. Eine anschließende Tiefensuche dreht alle ubrigen zuruck zeigendenKanten.
Als nachste Phase ist die Schichtenzuweisung der Knoten durchzufuhren,wobei jedem Knoten eine Schicht zugewiesen wird. Als Ergebnis liefert dieserSchritt die Reihenfolge (Schicht) der zu platzierenden Knoten. Die Schichtenbeschreiben dabei einzelne Ebenen auf der x-Achse, auf denen die Knotenim spateren Verlauf liegen. Ihr Abstand zum Start hangt unter anderemdavon ab, wie lang der Pfad bis zum jeweiligen Knoten ist. Bei den DCPNexistiert fur Eingangs- und Ausgangsstellen jeweils eine eigene Schicht ganzlinks und rechts. Es sind zwei Algorithmen implementiert. Als erstes ist derLongest Path-Algorithmus [Law01] zu nennen, bei dem alle Knoten rekursivdurchlaufen werden und ein Zahler den langsten Pfad bestimmt. Darausist dann die Anzahl der Schichten aus dem langsten Pfad zu bestimmen.Als weiterer Ansatz ist hier noch der Network Simplex -Algorithmus [Cun76]implementiert, bei dem die Knoten schichtweise nach rechts zu verschiebensind, bis alle Kanten in die gleiche Richtung zeigen.
In der dritten Phase erfolgt die Minimierung der Kreuzungen von Kanten.Jede Schicht wird einzeln betrachtet und die Platzierung der Knoten wirdSchichtenweise von links nach rechts durchgefuhrt. Hierbei ist nur der LayerSweep-Algorithmus [KW01] implementiert. Dieser bestimmt ausgehend vomBaryzentrums-Wert die Reihenfolge der Knoten. Die vorherige Schicht wirdals festgelegt angenommen.
In der nachsten Phase sind die y-Koordinaten der Knoten zu bestimmen.Die Reihenfolge ist dabei aus den vorherigen Phasen zu ubernehmen. DieAuswahl besteht aus drei moglichen Algorithmen: Zum einen ist dies LinearSegments [San96], bei dem Knoten auf lineare Segmente geteilt und, wennzulassig, auf selber Hohe platziert werden. Dabei ist darauf zu achten, dasslange Kanten moglichst gerade zu zeichnen sind. Weiterhin kann Brandes
5.1 Logical PetriNet 155
Kopf [BK02] zum Einsatz kommen, bei dem auch lange Kanten moglichstgerade gezeichnet werden sollen. Die Berechnung erfolgt in Blocken und liefertbis zu vier Ergebnisse, aus denen das kompakteste ausgewahlt wird. Alsletzte Moglichkeit existiert in dieser Phase der Simple-Algorithmus [Kie15],bei dem die Hohe der einzelnen Schichten zu ermitteln ist und alle Elementemoglichst mittig anzuordnen sind.In der letzten Phase erfolgt die Bestimmung der x-Koordinaten und
der genaue Verlauf der Kanten. Als einzig implementierter Algorithmus istPolyline [Kie15] implementiert, der die in den vorherigen Schichten erzeugtenDummy-Knoten fur Kanten ins optimierte Netz eintragt. Als letzter Schritterfolgt das Umdrehen der am Anfang invertierten Kanten zur korrektenDarstellung des Graphen.
Tabelle 5.1: Die Tabelle zeigt die Laufzeiten fur die Optimierung der Platzierungder Petri-Netz-Elemente mit 10 bis 500 Knoten. Hierbei kommen vier unterschied-liche Netztypen (V0 - V3) zum Einsatz. Angegeben sind jeweils die minimale,durchschnittliche und maximale Laufzeit bei je 100 Testnetzen.
Knoten
10 20 50 100 200 500
min 121ms 173ms 211ms 277ms 401ms 839ms
V0 ∅ 147ms 189ms 243ms 311ms 454ms 917ms
max 173ms 224ms 279ms 345ms 499ms 1003ms
min 132ms 189ms 218ms 298ms 478ms 960ms
V1 ∅ 153ms 228ms 267ms 334ms 534ms 1062ms
max 193ms 276ms 317ms 383ms 596ms 1142ms
min 137ms 194ms 234ms 398ms 704ms 1412ms
V2 ∅ 182ms 228ms 282ms 456ms 759ms 1549ms
max 211ms 261ms 327ms 496ms 801ms 1613ms
min 111ms 139ms 229ms 289ms 426ms 967ms
V3 ∅ 140ms 170ms 265ms 330ms 476ms 1028ms
max 173ms 203ms 299ms 397ms 523ms 1101ms
Fur DCPN sind als Standard fur die einzelnen Phasen Greedy, NetworkSimplex, Layer Sweep, Brandes Kopf und Polyline ausgewahlt. Die Algorith-men konnen im LPN fur jedes Netz explizit eingestellt werden. Die selbenEinstellungen gelten auch fur die Erreichbarkeitsgraphen, wobei hier keineAuswahl zur Verfugung steht.
Zur Uberprufung der Effizienz ist eine Laufzeitanalyse der Platzierungsop-timierung durchgefuhrt worden. Es sind Netze mit 10 bis 500 Knoten zumEinsatz gekommen und vier unterschiedliche Situationen aufgestellt worden.
156 5 Implementierung und Validierung
10 20 50 100 200 500
0
500
1000
1500
Anzahl der Knoten
Zeit(inms)
V0 V1 V2 V3
Abbildung 5.4: Hier zu sehen ist der durchschnittliche zeitliche Verlauf dergetesteten Petri-Netze aus Tabelle 5.1
1. V0 Nur vorwarts gerichtete kurze Kanten
2. V1 Die Halfte der Kanten ist ruckwarts gerichtet
3. V2 Nur vorwarts gerichtete Kanten plus lange Kanten
4. V3 Zwei nicht miteinander verbundene Netze
Fur die Validierung der Ergebnisse sind fur jeden Netztyp (V0 - V3) undjede Knotenanzahl jeweils 100 zufallige DCPN generiert worden. Dabei sinddie in Tabelle 5.1 gezeigten Zeiten gemessen worden. Das Testsystem ist einIntel i7-7700 mit 32 GB RAM und Windows 10. Selbst im ungunstigstenFall lag die mittlere Berechnungszeit unter zwei Sekunden und die durch-schnittliche Kantenzahl lag bei 1,27 Kanten pro Knoten. Abbildung 5.4zeigt den Vergleich der durchschnittlichen Zeiten fur die unterschiedlichenPetri-Netze V0 bis V3. Hieran ist zu erkennen, dass die Anzahl der Knoteneinen Anstieg der benotigten Zeit erzeugt.
5.1.2 Universelle Exportschnittstelle
Damit die erzeugten Graphen in weiteren Arbeiten Verwendung findenkonnen, ist im Tool eine universelle Exportschnittstelle hinzugefugt worden.Diese Schnittstelle umfasst zudem noch eine Moglichkeit die Graphen unddie dazugehorigen Tabellen zu drucken. In Abbildung 5.2 sind die moglichenExportfunktionalitaten des Tools zu sehen.Der Export kann als Pixelgrafik im Portable Network Graphics (PNG)
oder im JPEG File Interchange Format (JPG) erfolgen. Weiterhin bestehtdie Option das Netz als Scalable Vector Graphics (SVG) zu exportieren. Als
5.1 Logical PetriNet 157
Tabelle 5.2: Ubersicht uber die zur Verfugung stehenden Exportmoglichkeiten desTools Logical PetriNet. Dabei konnen eingabeorientierte Erreichbarkeitsgraphenebenso exportiert werden wie die RG-Graphen und RG-Markierungen.
Grafikformat LATEX
PNG JPG SVG Tikz Tab. CSV Excel
DCPN � � � � � � �
RG-Graph � � � � � � �
RG-Markierung � � � � � � �
Simulation � � � � � � �
letzte Moglichkeit besteht der Export in LATEX mittels des Tikz -Pakets furGraphen, Tabellen werden in der Standard Tabellenumgebung erzeugt. Diefur LATEX erzeugten Dateien konnen als fertig kompilierbare Dateien erzeugt,oder je nach Wunsch als einbindungsfahige Version zur Verfugung gestelltwerden.
Bei den modellierten DCPN besteht die Moglichkeit das gesamte Netzzu exportieren. Weiterhin ist es moglich nur einen Bereich des Netzes zumarkieren und nur diesen expliziten Ausschnitt des Netzes zu extrahieren.Bei Erreichbarkeitsgraphen ist nur der Export des gesamten Graphen moglich.Hier ist zusatzlich zur Extraktion des Graphen auch noch die Tabelle derMarkierungen zu exportieren. Dies kann als LATEX-, CSV- oder Excel-Dateierfolgen. Die gleichen Regeln des Exports der Erreichbarkeitsgraphen geltenebenfalls fur die eingabeorientierten Erreichbarkeitsgraphen.
Ferner existiert eine Methode um simulierte Ergebnisse als Funktionsgraphoder Tabelle zu exportieren. Hierbei gilt fur die Tabelle gleiches wie fur dieMarkierungstabellen der Erreichbarkeitsgraphen. Abbildung 5.5 zeigt in (a)den Funktionsgraph einer Simulation und in (b) die dazu passende Tabelleder Eingangs- und Ausgangssignale.
Zur Speicherung der DCPN kommt das PNML-Format [PNM15], [HKK+09]zum Einsatz, wobei leichte Anpassungen fur die zusatzlich eingefuhrten Ele-mente (Substelle, Subtransition und Netzverbinder) erfolgen. PNML ist einXML-Format, bei dem die Elementnamen vorgegeben sind. Der in LogicalPetriNet implementierte Parser kann die graphisch modellierten DCPN imPNML-Format speichern oder diese Netze im vorgegebenen Format ladenund deren graphische Reprasentation im Editor wiederherstellen. Beim La-den wird zusatzlich uberpruft ob das Netz syntaktisch Korrekt ist, da essonst nicht fehlerfrei angezeigt werden kann.
Der Parser verwendet eine angepasste Version des PNML-Standards zumLaden und Speichern der internen Petri-Netz-Reprasentation, die nicht ohne
158 5 Implementierung und Validierung
0 20 40 60 80 100 120 140 160Zeit (in ns)
a
b
c
d
y
(a)
Zeit a b c d y0 0 0 0 0 010 0 0 0 1 020 0 0 1 0 030 0 0 1 1 140 0 1 0 0 050 0 1 0 1 060 0 1 1 0 070 0 1 1 1 180 1 0 0 0 190 1 0 0 1 1100 1 0 1 0 1110 1 0 1 1 0120 1 1 0 0 0130 1 1 0 1 0140 1 1 1 0 0150 1 1 1 1 1
(b)
Abbildung 5.5: (a) zeigt den exportierten Funktionsgraphen der Simulationaus Abbildung 4.40 in grafischer Form (hier uber Tikz). In (b) ist der Export inTabellenform zu sehen.
Anpassungen in anderen Programmen verwendet werden kann. Hierzu dientein Transformator innerhalb von Logical PetriNet, der die Beschreibungdes Petri-Netzes in das passende Format fur TimeNet [Zim10] und dasPNML-Framework [HKP+10] umwandeln kann. Hierbei muss die Hierarchieaufgelost werden und einige toolspezifische Eigenheiten mussen angepasstwerden. Ebenso konnen Petri-Netze aus diesen beiden Tools geladen werdenund analysiert, so wie simuliert werden. Beim Laden fehlen aber ebenfallsdie zusatzlich eingefuhrten Elemente der DCPN und gewisse Stellen- undTransitions-Typen konnen nicht ubernommen werden, da diese in DCPNnicht existieren. Im Anhang findet sich ein Schema des hier verwendetenPNML-Formats.
5.1.3 Logger
Im Logical PetriNet ist ein Logger implementiert, der alle relevanten Akti-vitaten und Nachrichten des Programms aufzeichnen kann. Dieser dient zurFehleranalyse und Verbesserung des Programms im produktiven Einsatz. Sokonnen Fehler uber eine REST-Schnittstelle in ein Ticket-System gemeldetwerden, an das ein Logger-Bericht angehangt werden kann.
5.1 Logical PetriNet 159
Abbildung 5.6 zeigt die verschiedenen Log-Level des Tools. Hierbei kannuber die Einstellungen ausgewahlt werden ob gezielt bestimmte Level an-gezeigt werden sollen. Weiterhin kann das Logging komplett abgeschaltetwerden. Die Level sind dabei aufsteigend vom schwachsten Level: Trace,Debug, Info, Warning, Error und Fatal. Dabei wird Trace genutzt umausfuhrliches Debugging durchzufuhren. Dies bedeutet, dass neu erstellteObjekte und Funktionsaufrufe im Log gespeichert werden. Im Debug-Levelfindet allgemeines Debugging statt, wobei hier viel weniger Informationen alsim Trace angezeigt werden. Dieser Level dient zum Auffinden von Fehlernim Programm.
Logger
Trace Debug Info Warning Error Fatal
Abbildung 5.6: Hier sind die einzelnen Stufen des Loggers zu sehen. Die Wich-tigkeit der Eintrage ist von niedrig (links) zu hoch (rechts) sortiert. Dabei wirdzwischen Informationen, Warnungen und Fehlern unterschieden.
Im Info-Level erfolgen Logs fur allgemeine Informationen. Hierzu zahlendas Starten von Programmen, starten oder beenden von Analysen undSimulationen, Verbindungsaufbauten, oder auch das Speichern oder Ladenvon Dateien. Im Warning-Level werden unerwartete Situationen protokolliert,die den weiteren Programmablauf aber nicht beeintrachtigen. Als vorletztesdient die Error-Stufe zum Mitteilen von Fehlern, die abgefangen wurdenund deren Bearbeitung alternativ fortgesetzt werden kann. Als letzte undhochste Stufe dient Fatal zum Loggen von Fehlern, die kritisch sind undeinen Programmabsturz verursachen konnen.Das Loggen kann auf verschiedenste Weise erfolgen. Im einfachsten Fall
werden die Nachrichten auf der Konsole ausgegeben. Weiterhin konnen dieInformationen in eine Datei geschrieben werden, wobei hier zwischen einerDatei mit allen Logs oder fur jedes Level eine separate Datei unterschiedenwird. Dabei kann festgelegt werden, ob alle Logs in eine Datei geschriebenwerden, oder nach einer bestimmten Anzahl eine neue Datei erzeugt wird.Bei Dateien existiert als letzte Moglichkeit noch das Erstellen pro Zeitraum.Dies bedeutet, dass zu jeder Sitzung oder festen Zeitpunkten eine neueLog-Datei erzeugt wird.
160 5 Implementierung und Validierung
Zur persistenten Speicherung ist eine Schnittstelle fur eine Datenbankimplementiert. Hierbei kommt MySQL [SZT12] zum Einsatz, kann aberuber die Implementierung einer weiteren Schnittstelle auch an verschiedensteandere relationale Datenbanken angebunden werden, wobei ein Interfaceim Logical PetriNet zur Verfugung steht und die jeweiligen Befehle zumSchreiben in die Datenbank implementiert werden mussen. Weiterhin kanneine Datenbank, die auf NoSQL [SF12] beruht, angebunden werden. Hierfurist ein Interface, aber noch keine vollstandige Schnittstelle implementiert.Die letzten beiden vorhandenen Log-Moglichkeiten sind zum einen das
Versenden von E-Mails bei ausgewahlten Logs. Dies kann fur das LevelError und Fatal eingestellt werden. Zusatzlich konnen die Logs an einengemeldeten Fehler angehangt werden, um die Fehlersuche zu vereinfachen unddie Schilderung des Fehlers nachzuvollziehen.Der Logger dient auch bei derTransformation zum Auffinden von Fehlern oder ungewollten Nebeneffekten,da jeder einzelne Schritt protokolliert wird.
5.1.4 Markenspiel
Als weitere Komponente aus Abbildung 5.2 dient das sogenannte Markenspielzum Testen modellierter DCPN. Dabei kann vom Benutzer ausgehend vonder gerade aktiven Markierung das Markenspiel gestartet werden. Dieses istmanuell oder automatisiert ausfuhrbar. Bei der manuellen Simulation blinkenalle schaltfahigen Transitionen, die der Benutzer durch Doppelklick feuernkann. Anhand der Folgemarkierung wird dann bestimmt welche Transitionenaktiviert sind und die Auswahl der zu feuernden Transition kann erneuterfolgen.Beim automatisierten Markenspiel kann aus der vollstandigen oder teil-
weisen Automatisierung gewahlt werden. Teilweise bedeutet dabei, dassTransitionen so lange feuern, bis mehr als eine Transition gleichzeitig akti-viert ist. Dann muss der Benutzer wahlen, welche Transition feuert. Bei denbeiden automatisierten Markenspielen ist die Dauer zwischen den Schalt-vorgangen der einzelnen Transitionen einzustellen. Bei der vollstandigenAutomatisierung wird das Feuern der Transitionen autonom durchgefuhrt,wobei bei der Aktivierung mehrerer Transitionen durch den in Java einge-bauten Zufallsgenerator aus dem Mathematik-Paket eine Transition gewahltwird und diese dann feuert.
Die Dauer zwischen zwei feuernden Transitionen kann auf Echtzeit odereinen festen Intervall eingestellt werden. Echtzeit bedeutet hierbei, dass dieSchaltzeiten der Transitionen ihrer voreingestellten Zeit entsprechen. Somitfeuern zeitlose Transitionen unmittelbar. Bei einem voreingestellten Intervall
5.1 Logical PetriNet 161
feuern die Transitionen alle in gleichen Zeitabstanden, unabhangig davon,welcher Transitionstyp vorliegt oder welche Schaltzeit eingestellt ist. Diesdient dazu nachvollziehen zu konnen, wie die Transitionen gerade schalten,auch wenn nur sehr kurze oder keine Schaltzeiten vorliegen.
5.1.5 Analyse
Zur Analyse von DCPN stehen verschiedenste Funktionen zur Verfugung.Zum einen kann die Beschranktheit eines Netzes uberpruft werden. Fur dieaktuelle Definition eines DCPN gilt, dass das Netz immer beschrankt ist.Fur mogliche Erweiterungen der Netz-Definition in folgenden Arbeiten istdie Uberprufung auf Beschranktheit schon implementiert worden.
Der Zusammenhang eines Netzes kann ebenfalls uberpruft werden. Hierbeibesteht der Unterschied zwischen dem generellen Zusammenhang, bei demdie Richtung einer Kante nicht in Betracht gezogen wird, sondern nur dieVerbindung als solches. Beim starken Zusammenhang wird die Richtung derKanten mit einbezogen und alle Pfade von einem Startelement a zu einemZielelement b werden angezeigt. Hierzu kann aus einer Liste ausgewahltwerden, welche Elemente und deren Verbindungen analysiert werden sollen.
Die Konservativitat eines Netzes oder einer schaltenden Transition lasstsich ebenfalls bestimmen. Zur Analyse kann auch die Berechnung von Siphonsund Traps erfolgen. Fur die meisten Analysen ist der Erreichbarkeitsgraphaufzustellen, der auch einzeln im Menu der Analyse erzeugt werden kann.Weiterhin kann die Lebendigkeit und Terminierung von DCPNs bestimmtwerden. Ein fur die Transformation wichtiger Analyse-Schritt ist das Auf-finden von Zyklen, da hiervon abhangt, welche Strategien auf das Netzangewendet werden konnen, um es in eine digitale Schaltung zu uberfuhren.Als letzte Option der Analyse ist die Bestimmung der Stellen- und Transitions-Invarianten zu erwahnen, die ebenfalls bei der Transformation zum Einsatzkommen kann. Als letzte Elemente der Analyse stehen noch der reduzierteErreichbarkeitsgraph und der eingabeorientierte Erreichbarkeitsgraph zurVerfugung. Letzterer dabei in der ursprunglichen Form oder mit optimiertenKantenbedingungen.
5.1.6 Simulation
Da bei der Simulation je nach Große des DCPN eine sehr große Anzahlan Simulationsschritten durchzufuhren sind, ist im Tool eine parallele, er-eignisgesteuerte diskrete Simulation (Parallel Discrete Event Simulation -
162 5 Implementierung und Validierung
PDES ) implementiert, wie sie unter anderem auch in [Koc95], [MMA03] und[VPG06] zur Anwendung kommt.
Die Funktionsweise der PDES ist in [SBU00] und [Kun10] beschrieben undwird hier kurz aufgegriffen. Bei der Simulation wird das nachste zeitlicheEreignis bestimmt und dieser Zeitpunkt ist der nachste zu simulierendeSchritt im DCPN. Dazwischen kann kein Ereignis stattfinden, da Anderungenam System nur durch das Schalten von Transitionen oder die Anderung derMarkenanzahl in den Eingangsstellen erfolgen kann. Beide Situationen sindzeitlich Bestimmbar, somit kann PDES zur Simulation zum Einsatz kommen[SHY+09], [KTG+11].
Die einzelne Simulation lauft derzeit auf einem Rechner ab, konnte aber inspateren Arbeiten parallelisiert werden. Die Erzeugung von Erreichbarkeits-graphen kann auf andere Rechner ausgelagert werden, auf denen dann derLPN-Client ausgefuhrt werden muss. Dann kommt die in Abbildung 5.7 zusehende Abfolge an Schritten zum Einsatz, wobei sich immer die Clients mel-den, die gerade keine Aufgaben ubernehmen. So konnen mehrere Personen ineinem Netzwerk die gleichen Clients verwenden. Soll ein explizites Netz fureinen Benutzer aufgespannt werden, so kann im Client und dem Programmselbst der Port gewechselt werden. Der Client lauft rein im Terminal. DerServer befindet sich im Tool Logical PetriNet.
Abbildung 5.7: Hier ist der Ablauf der verteilten Simulation innerhalb des ToolsLogical PetriNet zu sehen. Per Broadcast wird im aktuellen Netz nach Clientsgesucht und nach erfolgreicher Antwort wird die vorhandene Simulation auf dieKnoten aufgeteilt und am Ende zusammen gefuhrt.
Server Client
Start
Broadcastanfrage senden
Anfrage akzeptieren
Daten aufteilen
Client Threads starten
Bearbeitete Daten empfangen
Daten zusammenfugen
Start
Auf Anfrage warten
Adresse senden
Daten empfangen
Daten verarbeiten
Daten senden
5.1 Logical PetriNet 163
Die Aufteilung im Netz erfolgt, indem eine Broadcastanfrage im aktuellenNetz gestellt wird und die Clients darauf antworten. Je nach Große desProblems werden die Clients mit Daten gefuttert und liefern ihre Ergebnissean den Server zuruck. Jeder Client benutzt hierbei die ihm zur Verfugunggestellten Prozessorkerne, falls die Menge der Simulationen dies notwendigmacht, da die Aufteilung auf mehrere Threads wieder zusatzlichen Overheadproduziert.
Zur parallelen Verarbeitung der Daten der Simulation besteht ansonstendie Option die Rechenlast auf die Prozessorkerne des Systems zu verteilen.Es entsteht ein Overhead fur das Anlegen des Threads und die Erstellung derKopie des zu simulierenden Netzes. Daher ist abzuwagen, ob eine Aufteilungsinnvoll moglich ist.
5.1.7 Transformation
Die Komponente zur Transformation fuhrt die in Kapitel 4.2 beschriebenenPhasen durch, um das modellierte Petri-Netz in eine digitale Schaltungzu uberfuhren. Hierzu sind der Reihe nach die Teilschritte Modellierungeines DCPN, Verifikation, Netzoptimierung, Strukturanalyse, Logiksynthese,Erzeugung der VHDL-Beschreibung und die Validierung der Schaltungdurchzufuhren. Die Strategien zu den einzelnen Teilschritten sind ebenfallsin dem vorhergehenden Kapitel erlautert worden.
Abbildung 5.8: Die Abbildung zeigt die GUI des Transformationsprozesses imLogical PetriNet. Dabei sind links die Schritte der Transformation aufgefuhrt.Daneben ist immer ein Symbol zur Anzeige des Status zu sehen. Rechts erfolgt dieAnzeige der ausgefuhrten Strategien.
164 5 Implementierung und Validierung
Abbildung 5.8 zeigt die Ubersicht im Programm Logical PetriNet. Aufder linken Seite ist eine Ubersicht uber alle Teilschritte zu sehen und obdie Durchfuhrung erfolgreich war. Hierbei sind die Symbole an die Xilinx-ISE angepasst, damit keine Umgewohnung des Benutzers erfolgen muss. Imunteren Bereich wird eine Progress-Bar angezeigt, welche den Fortschrittdes gesamten Transformationsprozesses anzeigt.
Im rechten Bereich wird per Textausgabe angezeigt, welcher Schritt geradebearbeitet wird und auf Fehler und Warnungen hingewiesen. Bei einem Fehlerwird die Transformation abgebrochen und die Fehlermeldung wird auch imHauptteil des Programms angezeigt. Warnungen werden nur angezeigt, aberfuhren zu keinem Abbruch. Ebenfalls wird im linken Bereich des Fensters einSymbol dargestellt, wenn eine Warnung in einem Schritt der Transformationaufgetreten ist.Zur Transformation ist ein VHDL-Parser implementiert, um die resultie-
rende Schaltung als VHDL-Beschreibung zu generieren. Hierzu wird je nacherkannter Schaltung (kombinatorisch, sequentiell) eine angepasste Schaltungaus der Wahrheitstabelle, einem booleschen Ausdruck oder dem eingabeorien-tierten Erreichbarkeitsgraphen realisiert. Die Beschreibung der Schnittstellewird in beiden Fallen gleich realisiert. Da mehrere unabhangige Schaltungenin einer Schnittstelle zusammen gefasst werden konnen, kann der VHDL-Parser mehrere Teilschaltungen zu einer Gesamtschaltung zusammenfassen.
Die Synthese der erzeugten VHDL-Beschreibung erfolgt in einem externenProgramm, wie beispielsweise der Xilinx ISE und der dort integriertenSimulation mittels ISim. Damit diese Ergebnisse mit denen aus dem ToolLogical PetriNet maschinell verglichen werden konnen, muss eine Moglichkeitdes Exports aus dem Programm ISim bestehen. Dies ist jedoch nicht ineinem auswertbaren Format moglich und musste daher selbst in Strategie 49zur Erstellung der Test-Bench hinzugefugt werden.
VHDL bietet uber das Package TEXTIO die Moglichkeit Signale und derenWerte in Dateien zu schreiben, wodurch eine Auswertung der Signalwerte inLPN moglich wird. Dazu ist die Test-Bench zu erweitern und bei Kombinato-rik nach jeder Signalanderung beziehungsweise bei sequentiellen Schaltungennach jedem Takt sind alle Signale in eine Datei zu schreiben. Diese kann inLPN eingelesen werden und ist dann mit den internen Simulationsergebnissenzu vergleichen.
5.1 Logical PetriNet 165
Listing 5.1: Das Listing zeigt die Erweiterung der Test-Bench aus Listing 4.14fur den Halbaddierer. Es ist nur der angepasste Bereich der Test-Bench zu sehen,welcher den process zum Schreiben der Datei fur die spatere Simulation im ToolLogical PetriNet zeigt. Hierzu werden als erstes der Takt und die Einheit des Taktesfestgehalten, sowie die internen IDs der Elemente, um eine spatere Zuordnungmoglich zu machen. Die IDs sind hier einfach durchnummeriert, im eigentlichenProgramm werden UUIDs verwendet. Dann folgt das Schreiben der Werte zu jedemTakt-Event.
wr i t i ng : processf i l e o u t f i l e : t ex t i s out ” trans form . lpn ” ;variable ou t l i n e : l i n e ;variable f i l eHead : s t d l o g i c := ’ 0 ’ ;
begini f f i l eHead = ’0 ’ then
wr i t e ( ou t l i n e , s t r i ng ’ ( ” 5 . 0 ; ns ; ” ) ) ;wr i t e ( ou t l i n e , s t r i ng ’ ( ”ID−0;” ) ) ;wr i t e ( ou t l i n e , s t r i ng ’ ( ”ID−1;” ) ) ;wr i t e ( ou t l i n e , s t r i ng ’ ( ”ID−2;” ) ) ;wr i t e ( ou t l i n e , s t r i ng ’ ( ”ID−3;” ) ) ;wr i t eL ine ( o u t f i l e , o u t l i n e ) ;f i l eHead := ’ 1 ’ ;
end i f ;
wait until tb c lk ’ event ;wr i t e ( out l i ne , tb a ) ; wr i t e ( ou t l i n e , s t r i ng ’ ( ” ; ” ) ) ;wr i t e ( out l i ne , tb b ) ; wr i t e ( ou t l i n e , s t r i ng ’ ( ” ; ” ) ) ;wr i t e ( out l i ne , t b s ) ; wr i t e ( out l i ne , s t r i ng ’ ( ” ; ” ) ) ;wr i t e ( out l i ne , tb c ) ; wr i t e ( ou t l i n e , s t r i ng ’ ( ” ; ” ) ) ;wr i t eL ine ( o u t f i l e , o u t l i n e ) ;
end process wr i t i ng ;
Listing 5.1 zeigt fur den Halbaddierer aus Abbildung 4.31 (a) die in Listing4.14 angelegte Test-Bench in erweiterter Form, mit deren Hilfe die Werte derSignale in eine Datei geschrieben werden konnen. Die verwendeten Ausgabe-funktionen und das Schreiben in Dateien ist nicht synthesefahig und kanndaher nur in der Simulation verwendet werden. Zusatzlich ist zu erwahnen,dass die Operationen zum Schreiben nur auf Dateien funktionieren undkeine Ports von FPGAs geschrieben werden konnen. Abbildung 5.9 zeigtdie Oberflache im Tool, bei dem die Daten aus der Simulation des Halbad-dierers geladen und mit den Ergebnissen der Simulation des modelliertenPetri-Netzes verglichen werden.
Dieses Fenster kann auch nur zur Simulation des DCPN verwendet werden,dann sind die zusatzlichen Zeilen fur den Vergleich mit der generiertenSchaltung nicht in der Ansicht vorhanden. Es existiert die Moglichkeit einSignal auszuwahlen und zur nachsten oder letzten Anderung des Signals
166 5 Implementierung und Validierung
Abbildung 5.9: Hier ist die Validierung der durchgefuhrten Simulation im ToolLogical PetriNet zu sehen. Dabei werden fur die interne Simulation die Eingangs-werte aus der eingelesenen Datei der Simulation eines externen Tools verwendet.Hier sind die Simulationsergebnisse aus der Xilinx ISE verwendet worden, welchedurch die Simulation der Test-Bench erzeugt wurden. Weiß sind die Signale ausder Test-Bench und farblich passend zu den Eingangs- und Ausgangsstellen sinddie Verlaufe der Stellen des DCPN zu sehen.
zu springen. Ebenso konnen Marker positioniert werden, zwischen denengesprungen werden kann. Zusatzlich ist eine Funktion zum Zoomen innerhalbder Simulation gegeben, um sich kleinere Zeitbereiche detaillierter anschauenzu konnen.Durch die Einfuhrung des Lesens und Schreibens in Dateien kann fur
die Erzeugung der Test-Bench ebenfalls eine Datei ausgewahlt werden, ausder die Werte fur die Simulation gelesen werden. Dabei gibt die erste Zeileder Datei an, nach welchen Zeiteinheiten die jeweils nachste Zeile simuliertwerden soll. Danach folgen Zeilenweise die Werte fur alle Eingange. So kannvom Modellierer vorgegeben werden, welche Eingangsbelegungen simuliertwerden sollen.
5.1.8 Funktionsbibliothek
Als weiteres Merkmal des Tools existiert eine Funktionsbibliothek, in dereigene Petri-Netze als Komponente abgelegt werden konnen, um zu einem
5.1 Logical PetriNet 167
spateren Zeitpunkt wiederverwendet zu werden. Es kann eine eigenstandigeUnterteilung der Elemente in Kategorien vorgenommen werden. Die Petri-Netze werden im Verzeichnis des Programms im PNML-Format gespeichert,sofern das Programm Schreibrechte besitzt.
Alle Bibliothekselemente werden im Verwendungsfall als Subtransition insaktuelle Netz eingefugt. Die Funktionsweise des Netzes ist als Subnetz darinenthalten. So konnen Elemente der Bibliothek wieder selbst Elemente derBibliothek enthalten. Ein Beispiel hierfur ist spater in diesem Kapitel derAddierer (Kap. 5.3.2) welcher aus zwei Halb-Addierern besteht, die zu einemVoll-Addierer zusammengefasst werden.
P0
P1
P2
T0
T1
T2
T3
(a)
T0
T1
T2
T3
P0
P1
P2
(b)
Abbildung 5.10: (a) zeigt ein modelliertes DCPN, welches nach der Speicherungals Bibliothekselement durch eine Subtransition reprasentiert wird. Das innenliegende Subnetz des Bibliothekselements ist in (b) zu sehen.
In Abbildung 5.10 ist in (a) ein erstelltes Petri-Netz zu sehen, welches ineine Bibliothekselement uberfuhrt werden soll. Das erzeugte Subnetz ist in(b) zu sehen. Im eigentlichen Netz, in dem das Bibliothekselement hinzu-gefugt wird, ist nur eine Subtransition mit dem Namen zu sehen. Die Ein-und Ausgange des modellierten Netzes werden dann zu den Netzverbinderndes Subnetzes. Bei Bibliothekselementen werden also bei einer Kantenver-bindung mit ihnen keine neuen Netzverbinder angelegt, sondern die schonexistierenden verwendet.
Neue Kanten von oder zu einem Bibliothekselement rufen im Editor immereinen Dialog auf, in dem bestimmt werden kann zu welchem Netzverbinderinnerhalb der Subtransition verbunden werden soll (siehe Abbildung 5.11(a)). Beim Anlegen von neuen Elementen wird das in Abbildung 5.11 (b)zu sehende Fenster angezeigt, mit dessen Hilfe ein Name des Elements,
168 5 Implementierung und Validierung
(a) (b)
Abbildung 5.11: In (a) ist das Auswahlfenster zu sehen, wenn eine Kante miteinem Bibliothekselement verbunden wird. Hierbei wird kein neuer Netzverbindererzeugt, wie sonst ublich bei Subtransitionen. In (b) ist die Ubersicht zu sehen,wenn ein neues Bibliothekselement angelegt werden soll. Dieses hier besteht ausdrei Eingangs- (a, b, c) und drei Ausgangsstellen (x, y, z).
sowie die passende Kategorie angelegt werden konnen. Zusatzlich bestehtdie Moglichkeit die Namen von Ein- oder Ausgangen zu andern. Ansonstenwerden die Namen der Eingangs- und Ausgangsstellen verwendet.
5.1.9 Interner Aufbau
Zur Beschreibung des internen Aufbaus des Programms werden Paket-Diagramme [KS15] verwendet. Das Aufzeigen aller einzelnen Klassen wurdeden Rahmen dieser Arbeit ubersteigen, da das Programm zum Zeitpunkt derVerfassung dieses Textes aus knapp 100 Paketen mit im Schnitt 30 Klassenpro Paket besteht. Hier ist also nur der grundlegende Aufbau und Zusam-menhang der einzelnen Pakete aufgezeigt. Neben den gezeigten Paketenexistieren noch weitere, die mit Hilfsklassen fur die Hauptpakete bestucktsind und deswegen nicht explizit aufgefuhrt sind.Abbildung 5.12 zeigt eine Ubersicht uber die Hauptpakete und deren
Verbindungen untereinander. Zusatzlich existieren noch die Pakete help,logger, properties und shortcuts, die alle anderen Pakete verwenden.Diese werden hier als erstes beschrieben und danach folgt die Beschreibungder restlichen Pakete.
Das Paket help dient zur Anzeige der Hilfe des Programms. Dabei habenalle Bedienelemente und die Bibliothekselemente einzelne Eintrage. Ebenfallswerden alle Petri-Netz Elemente beschrieben. Die Daten stammen jeweilsaus den Objekten, fur die die Hilfe angezeigt werden soll, um eine dezentraleSpeicherung innerhalb des Objekts zu ermoglichen. Die properties beinhal-
5.1 Logical PetriNet 169
Abbildung 5.12: Die Abbildung zeigt die Hauptpakete des Tools Logical PetriNet.Dabei ist angegeben, welche Pakete sich untereinander benotigen, damit dasProgramm ausgefuhrt werden kann.
ten die Einstellungen des Tools und mussen daher auf alle anderen Paketezugreifen, da die Einstellungen auch in den Objekten selbst gespeichert wer-den und von dort bei Anderungen in die Einstellungen geladen werden. Dieshortcuts verwenden alle Pakete, da je nach gedruckter Tastenkombinationdirekt die jeweiligen Funktionen der Pakete ausgefuhrt werden. Beim logger
verhalt es sich genau umgekehrt, da alle Pakete auf ihn zugreifen und je nacheingestelltem Log-Level fur den Aufruf jeder Funktion Zugriffe stattfinden.Abbildung 5.13 zeigt in (a) das Paket sort, welches als Hauptpaket aus
den elements besteht, von denen alle anderen Klassen der weiteren Pa-kete erben, oder diese verwenden. Grundsatzlich dienen alle Klassen zumSortieren und automatisieren Anordnen von Graphen. petrinet dient istnotwendig, um Petri-Netze anzuordnen und reachabilitygraph sortiertdie Erreichbarkeitsgraphen. In (b) sind die implementierten Parser zu sehen.Dies ist zum einen der PNML-Parser, der die Petri-Netze speichert undladt. Weiterhin werden uber ihn die Bibliothekselemente gespeichert. DerVHDL-Parser realisiert bei der Transformation die Uberfuhrung der erkann-ten Schaltungen in die Beschreibung der Hardware. Der Parser ist in dieHauptklassen zum Schreiben der Schnittstellen, Verhaltensbeschreibungenund der Test-Benches aufgeteilt.Die Pakete in Abbildung 5.14 sind nur mit kleineren Hilfspaketen verse-
hen. action besteht aus einem Unterpaket, in dem die einzelnen Aktionen
170 5 Implementierung und Validierung
(a) (b)
Abbildung 5.13: (a) zeigt die Pakete der Sortierung und die dazugehorendenVerbindungen nach außen. In (b) sind die Pakete fur den Parser zu sehen. (a) und(b) sind modular aufgebaut, so dass sie um neue Pakete erweitert werden konnen.
abgelegt werden. Eine Aktion beschreibt eine Anderung am Petri-Netz, wiebeispielsweise das Hinzufugen oder das Loschen eines Elements. Aktionenwerden verwendet, da diese einfach in einer Liste gespeichert werden konnenund falls vom Benutzer gewunscht, diese wieder ruckgangig gemacht werdenkonnen. Das Paket print dient zur Ausgabe von modellierten Petri-Netzenund den resultierenden Graphen auf Druckern. Dies war auch der erste An-satz um Elemente als PDF zu exportieren. Die Exportfunktionalitat ist dannaus Grunden der vielfachen Moglichkeiten in das Paket export ausgelagertworden und kann die weiter vorne im Kapitel beschriebenen Elemente expor-tieren. Als letztes in der Abbildung ist das Paket bib zu nennen, welche alleAktionen fur Bibliothekselemente der Funktionsbibliothek ubernimmt. Hierstehen die nicht gezeigten Hilfspakete connection und add zur Verfugung,die die Funktionalitat der beschriebenen Verbindungen eines Bibliotheks-elements nach außen darstellen (siehe Abbildung 5.11). Die Pakete print,export und bib besitzen zusatzlich noch ein Paket gui, in dem die jeweiligenKlassen zur Beschreibung des Aussehens der jeweils notwendigen Dialogeund Panel des Pakets vorzufinden sind.
Die gui besteht aus zwei Teilbereichen und dem eigentlichen Paket, welchesdie generelle Ansicht des Programms ubernimmt, wie in Abbildung 5.15 zusehen ist. Alle anderen Pakete besitzen ihr eigenes Unterpaket, indem diejeweiligen Klassen zur Beschreibung des Aussehens enthalten sind. Das erste
5.1 Logical PetriNet 171
Abbildung 5.14: Hier zu sehen sind die Pakete action, print, export und bib. Siebeinhalten jeweils nur Hilfspakete und alle außer action ein eigenes Paket fur diegrafische Benutzeroberflache.
Teilpaket der gui besteht aus der toolbar und dem menu, welche beide aufdas Paket tooltip zugreifen. Dabei ist die toolbar zur Modellierung desPetri-Netzes gedacht, um direkten Zugriff auf haufig verwendete Objektezu haben. Das Menu steuert das gesamte Programm und ist dabei alssogenanntes Ribbon-Menu implementiert, welches beispielsweise auch beiden Microsoft Office Produkten zum Einsatz kommt. Das Paket tooltip istimplementiert worden, um alle Hinweise und Beschreibungen von Elementendes Programms einheitlich darstellen zu konnen. Hierbei reichte die interneVerwendung des in Java und Swing implementierten Moduls nicht aus, dadort nur einfacher Text angezeigt werden kann. Uber das eigene Pakettooltip sind zusatzliche Beschreibungsmittel wie ein Tastaturkurzel undeine langere Beschreibung, neben dem Standard-Tooltip moglich.
Abbildung 5.15: Die Abbildung zeigt das Paket-Diagramm fur die grafischeBenutzeroberflache.
Als zweiter großer Teilbereich der gui existieren die Pakete zur Anzeigealler fur das Petri-Netz benotigten Klassen. Wie in Abbildung 5.1 zu sehenist, teilt sich die Oberflache zur Modellierung in drei Teilbereiche auf, was
172 5 Implementierung und Validierung
sich auch in den Paketen petrinet, itemtree und minimap widerspiegelt.Dabei stellt petrinet alle Klassen zur Bearbeitung in der Hauptansichtdes Netzes zur Verfugung. Ausgefuhrte Aktionen haben direkten Einflussauf dieses Paket, welches die ausgefuhrten Aktionen an die beiden anderenPakete weiter gibt. Der itemtree dient zur Darstellung einer Liste allervorhandenen Petri-Netz-Elemente im aktiven Netz. Zusatzlich wird eineSuche zur Verfugung gestellt, damit bei großeren Netzen einfach auf beste-hende Elemente zugegriffen werden kann. Als letzter Teil der Oberflacheder Petri-Netz-Bearbeitung ist die minimap implementiert worden, die eineUbersicht uber das gesamte Netz liefert. Mit ihrer Hilfe kann durch das Netznavigiert werden, was wiederum bei großen Netzen sehr hilfreich sein kann.
Abbildung 5.16: In der Abbildung ist das Paket simulation zu sehen. Diebenotigten und verwendeten Pakete sind auf der rechten Seite aufgefuhrt.
Abbildung 5.16 zeigt alle implementierten Haupt-Pakete dersimulation. Dabei existiert eine eigene gui, die fur das Bereitstellen allerbenotigten graphischen Elemente der Simulation zustandig ist. Zur Auflosungvon Hierarchien im modellierten DCPN dient hierarchy dazu, alle Subnetzeeines Netzes zu entfernen und im Hauptnetz die enthaltenen Elemente zuplatzieren. Damit bei diesem Verfahren ein ubersichtlicheres Netz entsteht,wird auf das Paket sort zugegriffen, da sonst keine sinnvolle Platzierungder Elemente der Subnetze moglich ist. Die Berechnung der Invarianten istebenfalls in ein eigenes Paket ausgelagert worden, um die Ubersichtlichkeitder einzelnen Bereiche zu wahren. Weiterhin hat das Markenspiel im Bereichder simulation sein Paket. Die Funktionen dieses Paketes werden Internfur die Erzeugung der Erreichbarkeitsgraphen in reachability und derBerechnung der Simulation simulation verwendet. Außerdem greift dieTransformation auf die Funktionen zu, um unter anderem den eingabeorien-tierten Erreichbarkeitsgraphen aufstellen zu konnen. Die simulation dient
5.1 Logical PetriNet 173
zur Validierung von transformierten Netzen und zur zeitbehafteten Simu-lation von Petri-Netzen. Die Pakete export und print haben Zugriff aufalle Pakete der simulation, um diese Elemente drucken und exportieren zukonnen. Alle Elemente der simulation benotigen Zugriff auf das Petri-Netz,da aus diesem alle Daten berechnet werden.
Der Kern der Anwendung beruht auf dem Paket petrinet, das in Abbil-dung 5.17 gezeigt wird. petrinet besteht aus den drei Unterpaketen net,element und gui. Das Paket gui stellt die graphische Beschreibung dereinzelnen Elemente des Netzes bereit. Diese Informationen werden im Paketelement verwendet, in dem die eigentlichen Elemente des Netzes imple-mentiert sind. net halt Container fur alle Elemente bereit und beschreibtden Zusammenhang des Netzes und deren Eigenschaften. Ebenfalls sind indiesem Paket Klassen zur Auswahl von Elementen und zum Kopieren vonNetzelementen. So gut wie alle anderen Pakete benotigen Zugriff auf diesesPaket, da dort die benotigten Informationen uber das Petri-Netz gespeichertsind.
Abbildung 5.17: Hier ist das Paket petrinet zu sehen. Es enthalt alle elementarenKlassen zur Beschreibung des Netzes. Fast alle anderen Pakete benotigen Zugriffauf petrinet.
Als letztes großes Paket ist hier transform zu erwahnen, welches die Pa-kete des Transformationsprozesses in Abbildung 5.18 zeigt. Jeder Schritt derTransformation ist dabei in einem eigenen Unterpaket organisiert, welchesjeweils Zugriff auf das vorher verwendete Paket benotigt. Die Pakete heißenjeweils wie der Schritt im Prozess und alle benotigen Zugriff auf Elemen-te aus petrinet. Alle fur die Transformation notwendigen Einstellungen,wie beispielsweise den Speicherort der erzeugten VHDL-Dateien, sind inproperties zusammengefasst. Fur die Einstellungen und die Anzeige vonFehlern wahrend der Transformation ist ein eigenes Paket gui implementiert.Die beiden Pakete combinational und sequential dienen zur Speiche-
rung aller notwendigen Informationen und in ihnen findet auch die Berech-
174 5 Implementierung und Validierung
Abbildung 5.18: Dieses Paket enthalt alle notwendigen Klassen der Transfor-mation. Wichtig fur dieses Paket ist der Zugriff auf petrinet, simulation und denVHDL-Parser.
nung fur die jeweiligen Strategien statt. Das heißt, die booleschen Ausdruckefur Kombinatorik und der eingabeorientierte Erreichbarkeitsgraph werdenin Klassen dieser Pakete berechnet. Sie werden ab dem Schritt der Synthesebenotigt, da ab dort fest steht, welche Strategien fur die jeweils erkanntenNetze zum Einsatz kommen. Der parser wird im Paket hdl benotigt, umdie Schnittstelle und Struktur in VHDL zu beschreiben. Dabei werden demParser alle benotigten Informationen aus combinational und sequential
zur Verfugung gestellt.Abschließend ist zu erwahnen, dass Software immer weiterentwickelt wird
und die hier getatigten Beschreibungen auf Paketebene sich jederzeit andernkonnen, wenn dies fur die Weiterentwicklung des Programms notwendigwerden sollte.
5.1.10 Validierung
Bei der Validierung von Software kann auf die unterschiedlichsten Methodenund Verfahren zuruckgegriffen werden, wie sie beispielsweise in [Gro08],[DHJ+10] oder [Tha02] zu finden sind. Bei Softwareprojekten dieser Großekann keine absolute Sicherheit der korrekten Arbeitsweise garantiert werden.Die Korrektheit kleinerer Algorithmen kann nachgewiesen werden, aber furdas Gesamtsystem ist dies nur schwer bis nicht moglich, da vollstandige Testsaller Zustande des Programms zu aufwendig sind. Im Falle des LPN ergibtsich durch jedes unterschiedlich modellierte Netz ein neuer Programmzustand,wodurch die Anzahl der verschiedenen Zustande unendlich ist.
5.1 Logical PetriNet 175
Weiterhin ist die Software auf Robustheit zu untersuchen, was bedeutet,dass eine sinnvolle Reaktion auf externe Einflusse, wie Eingaben, erfolgensoll. Das Auftreten von undefinierten Systemzustanden (Systemabsturzen)ist zu verhindern. Die Verfugbarkeit ist im Zusammenhang mit dem ToolLPN zu vernachlassigen, da die Software nur auf einem Rechner von einemBenutzer ausgefuhrt wird. Alle durchgefuhrten Test zur Validierung derSoftware zeigen dabei nicht die Korrektheit, sondern beim Auftreten vonunerwarteten Ergebnissen zeigen sie die Inkorrektheit.Um das Tool Logical PetriNet moglichst fehlerfrei zu implementieren,
wurde zum einen auf Black Box Tests und Gray Box Tests zuruck gegriffen.Black Box bedeutet, dass der Tester den eigentlichen Quellcode nicht kenntund nicht selbst programmiert hat. Dieses Testverfahren ist bei den Funktio-nalitaten aus betreuten Abschlussarbeiten durchgefuhrt worden. Die schonvorhandenen Methoden und Module sind verwendet worden und bei diesenist durch unterschiedlichste Falle getestet worden, ob das Programm sichkorrekt verhalt, bzw. wo durch welche Eingabekombination Fehler auftreten.
Hinzu kommen die White Box Tests, bei denen der selbst implementierteQuellcode bekannt ist. Zusatzlich werden die schon existierenden verwendetenMethoden per Black Box Test uberpruft. Daraus ergibt sich der sogenannteGray Box Test, bei dem eine Kombination aus bekanntem und unbekanntemQuellcode uberpruft wird. Die Ergebnisse zu diesen Tests sind unter anderemin [Ste15], [Rog15] und [Rau16] nachzulesen.
Zum anderen sind Funktions- und Modul-Tests eingesetzt worden, wobeieinzelne Funktionen oder Module auf Fehler uberpruft werden. Dabei werdendie einzelnen Elemente isoliert voneinander getestet. Dafur werden alle furdieses Element benotigten Daten durch Hilfsobjekte simuliert. Durch dieseTests sind wahrend der Implementierung einige Fehler aufgefallen, die sonstin dieser Phase des Programms nicht gefunden worden waren und erst inspateren Versionen zu Problemen gefuhrt hatten.
Es sei als Beispiel der Vergleich von intern verwendeten UUIDs (UniversallyUnique Identifier) zu nennen. Beim Vergleich dieser ist in Java darauf zuachten, dass immer die Funktion equals() verwendet wird, da sonst bei derUberprufung auch die Erstellungsart der UUID berucksichtigt wird. Hierbeikonnen im Tool die Falle des Erzeugens einer neuen UUID auftreten odersie wird aus einer Datei geladen, was innerhalb des Tools bedeutet, dass sieaus einem String generiert wird, was in Java bedeutet, das der Vergleichmittels == selbst bei gleichen UUIDs false liefert.
Abschließend sei zu bemerken, dass die Software mit Sicherheit noch Fehleraufweist, aber die gegebenen Testmethoden und -verfahren schon viele Fehlerbeseitigt haben. Zur Erkennung von Fehlern wird das Programm von weiteren
176 5 Implementierung und Validierung
Personen getestet, welche Bugs uber ein Ticketsystem melden konnen. Dabeiwerden die Daten des implementierten Loggers mit ubertragen, um einemoglichst genaue Einschatzung des auftretenden Fehlers zu erhalten. DieFunktions- und Modultests werden ebenfalls fortlaufend erweitert und nachjeder Programmrevision sind alle Tests erneut zu durchlaufen.
5.2 Regeln zur Modellierung
Zur Modellierung von DCPN sollten einige Regeln beachtet werden, damitdie Schaltungen mit dem gewunschten Verhalten aus dem Modell resultieren.Grundsatzlich bleiben diese Regeln aber nur Richtlinien und sind nichtnotwendig zur erfolgreichen Erstellung eines Petri-Netzes, welches in einedigitale Schaltung transformiert werden soll.
Kombinatorische LogikBei der Modellierung kombinatorischer Logik sollten nach Moglichkeit nurzeitlose Transitionen zum Einsatz kommen. Die Laufzeiten der eigentlichenGatter konnen im Normalfall vernachlassigt werden und sollten nicht mo-delliert werden, vor allem dann nicht, wenn nach dem Schaltungsteil derkombinatorischen Logik ein sequentieller Teil folgt, der zur Synchronisationmit dem nachsten Teil der Schaltung dient. Zur Modellierung von Hazards(Kap. 2.2.4) konnen Laufzeiten explizit modelliert werden.
Sequentielle LogikBei der Modellierung sequentieller Logik sollte der kombinatorische Teil, wieoben beschrieben, aus zeitlosen Transitionen bestehen. Der sequentielle Teilder Schaltung kann uber den in dieser Arbeit vorgestellten Takt erfolgen,oder es wird eine zeitbehaftete Transition mit der Schaltzeit eines Taktesverwendet, um den Schaltungsteil zu synchronisieren.
Zeitbehaftete TransitionenZeitbehaftete Transitionen sollten zum Einsatz kommen, wenn ein Taktmodelliert werden soll. Dazu sollten die Schaltzeiten der Transition genauder Zeit eines halben oder ganzen Taktes entsprechen, da hierdurch dieSynchronisierung zwischen Teilschaltungen realisiert werden kann. AlleTransitionen, die nicht mit der Taktdauer feuern, mussen aufwandig uberZahler oder eine Expandierung der Zustande in der resultierenden Schaltungrealisiert werden.
5.2 Regeln zur Modellierung 177
Zyklen aus zeitlosen TransitionenZyklen sind generell erlaubt und dienen der Ruckkopplung von Signalenund Speichern von Signalen in Flip-Flops oder ahnlichen Schaltelementen.Einzig Zyklen aus zeitlosen Transitionen sollten vermieden werden, da dieseTransitionen immer direkt schalten und kein eindeutiger Zustand des Netzeseingenommen wird.
HierarchiebildungZur Bildung von Hierarchien sollten immer Substellen verwendet werden,da Funktionselemente immer als Subtransition dargestellt sind. So kanneine klare Unterscheidung zwischen eigener Hierarchie und ubernommenenElementen aus der Bibliothek der Funktionselemente stattfinden. Dies isteine Regel zur Beibehaltung der Ubersicht, Subtransitionen konnen abergenerell auch fur das Erstellen von Hierarchien verwendet werden.
Schaltzeiten als TaktWenn die Schaltzeiten von Transitionen als Takt verwendet werden sollen,dann ist darauf zu achten, dass diese bei allen Transitionen gleich lang ist.Diese Zeit entspricht dann einem Takt der transformierten Schaltung. Beigleich langen Schaltzeiten wird der eingabeorientierte Erreichbarkeitsgraphnicht unnotig mit zusatzlichen Zustanden vergroßert, wodurch Schaltungenmit weniger Bauelementen entstehen.
Unterschiedliche SchaltzeitenBei unterschiedlichen Schaltzeiten von Transitionen sollten immer Vielfacheder kleinsten Schaltzeit verwendet werden. Dies ist darauf zuruckzufuhren,dass die kleinste Schaltzeit als Takt zur Anwendung kommt. So kannbei Nicht-Vielfachen eine Differenz in der tatsachlichen Schaltzeit in derSchaltung auftreten.
Netzgroße begrenzenPro Haupt- oder Subnetz sollte nur eine begrenzte Anzahl an Elemen-ten vorhanden sein. Begrenzt bedeutet hierbei, dass 500 Elemente nichtuberschritten werden sollten, da sonst eine Zustandsraumexplosion bei derTransformation droht. Zusatzlich wird ein Netz mit einer solchen Anzahlan Elementen sehr unubersichtlich und Anpassungen sind nur noch schwie-rig durchzufuhren. Petri-Netze mit mehr Elementen sollten in mehrereSubnetze aufgeteilt werden, da diese einzeln transformiert werden konnen.
178 5 Implementierung und Validierung
Eingange mit Testkanten versehenAlle Eingangsstellen sollten mit Testkanten versehen werden, da hierdurchdie Markenbelegung der Eingange nicht verandert wird, wenn daran an-gehangte Transitionen schalten. Testkante bedeutet fur DCPN, dass einehin- und ruckfuhrende Kante zur Transition bestehen muss.
Hauptnetz nur zur Verknupfung verwendenBei großeren Netzen sollte das Hauptnetz der Verknupfung von Subnetzendienen. Das bedeutet, dass nur (oder uberwiegend) Elemente zum Einsatzkommen, die Subtransitionen untereinander oder die Substellen mit Sub-transitionen verbinden. Die Ein- und Ausgange sollten so weit moglich auchdirekt an Subnetze weitergereicht werden. Dies macht das Netz zum einenubersichtlicher und hilft bei der Laufzeit der Transformation, da so kleinerePetri-Netze in digitale Schaltungen uberfuhrt werden.
Daten- und Steuerpfad trennenWenn großere Netze modelliert werden, die in Daten- und Steuerpfad auf-geteilt werden konnen, so sollte dies immer berucksichtigt werden. Da dieseAufteilung zum Quasi-Standard beim Entwurf von digitalen Schaltungengeworden ist, konnen so andere Entwickler einfacher das Verhalten desmodellierten Netzes erfassen.
5.3 Transformation exemplarischer DCPN
Zur Validierung des in dieser Arbeit gezeigten Transformationsprozesses wer-den einige Beispielnetze vorgestellt und als Petri-Netz modelliert. Anregungenfur die zu modellierenden Netze stammen vom International Symposiumon Circuits and Systems (ISCAS ) [IEE16]. ISCAS ist eine Konferenz imBereich des Schaltungsentwurfs und wurde 1968 gegrundet und findet jedesJahr statt [BPV15], [HYH99]. Die dort prasentierten Schaltungsentwurfewie sie unter anderem in [Bry85] und [BBK89] zu finden sind, bilden dieGrundlage fur die hier gezeigten Beispielnetze des Multiplexers und Addie-rers. In den Beispielen werden bekannte digitale Schaltungen genommen, umdie Ergebnisse der modellierten Netze einordnen zu konnen.
5.3.1 Multiplexer
Als erstes Beispiel wird hier ein 4:1 Multiplexer modelliert, um den Transfor-mationsprozess einmalig vollstandig zu besprechen. Multiplexer sind eines
5.3 Transformation exemplarischer DCPN 179
der grundlegenden Bauelemente im Schaltungsentwurf und daher gut ge-eignet sie naher zu betrachten. Abbildung 5.19 (a) zeigt das modellierteDCPN mit den vier Eingangen x0 bis x3, den Steuerleitungen s0, s1 unddem Ausgang y. Abhangig vom Steuersignal wird die Markenanzahl derzugehorigen Eingangsstelle in den Ausgang ubertragen. Hierzu zeigt (b) dieWahrheitstabelle fur den beschriebenen Multiplexer.
x0
x1
x2
x3
s1
s0
y
T0
T1 T2
T3
T4
T5
T6
T7
(a)
s1 s0 y
0 0 x0
0 1 x1
1 0 x2
1 1 x3
(b)
Abbildung 5.19: In (a) ist das modellierte Petri-Netz fur einen 4:1 Multiplexerzu sehen. (b) beschreibt die Wahrheitstabelle, die mit diesem Netz abgebildet wird.Dabei ist der Ausgang jeweils eine der Eingangsleitungen x0 bis x3.
Zur Transformation werden die einzelnen Teilschritte durchlaufen. DieModellierung des Multiplexers ist im Tool Logical PetriNet erfolgt und derTransformationsprozess kann gestartet werden. Hierzu wird das ubergebenePetri-Netz als erstes kopiert, um keine Anderungen am Ursprungsnetz vor-zunehmen, da beim Transformationsprozess Teile des Netzes geloscht oderverandert werden konnen. Danach wird die Verifikation gestartet, bei derals erstes auf das Vorhandensein von Eingangen, die fur eine Schaltungnicht zwingend notwendig sind, und Ausgangen, von denen mindestens ei-ner vorhanden sein muss, gepruft. Ebenfalls findet eine Uberprufung aufvorhandene Transitionen statt, da nur so eine Zustandsanderung im Netzerfolgen kann. Jeder Eingang wird auf abgehende Kanten uberpruft, da ersonst keinen Einfluss auf die resultierende Schaltung besitzt und erst wiederbei der Erzeugung der entity benotigt wird. Selbiges gilt fur Ausgange mitdem Unterschied, dass hier eingehende Kanten vorhanden sein mussen. Furdie Optimierung im nachsten Schritt werden dann noch alle Elemente des
180 5 Implementierung und Validierung
Netzes auf Verbindungen uberpruft. Im letzten Schritt der Verifikation findeteine Uberprufung auf statische Konflikte statt.Bei der Optimierung werden die im letzten Schritt markierten Elemente
entfernt und Subnetze auf ebenfalls entfernbare Elemente uberpruft. Paral-lele Transitionen und in Reihe liegende Transitionen wurden hier ebenfallszusammengefasst, sofern dies moglich ist. Als letzten Schritt der Optimie-rung werden Teilnetze identifiziert, indem von jedem Ausgang die zusam-menhangenden Netze als ein Teilnetz betrachtet werden. Im hier vorliegendenNetz existiert genau ein Teilnetz, welches der Analyse ubergeben wird.
In der Analyse ist als erstes der Netztyp fur jedes Teilnetz zu uberprufen.Hier ist das Netz zeitlos, da nur zeitlose Transitionen vorhanden sind. Eineder rechenintensiveren Strategien ist das Aufstellen der Erreichbarkeitsgra-phen fur jede mogliche Eingangskombination. Im hier vorliegenden Beispieldes Multiplexers bestehen die Graphen jedoch aus maximal zwei Markie-rungen, wodurch die Erzeugung nicht zeitkritisch ist. Die kleinen Graphenentstehen, weil jeweils nur die Moglichkeit besteht den Ausgang y zu andernoder den Wert (Marke) beizubehalten. Die weiteren Uberprufungen jedes Er-reichbarkeitsgraphen auf Zyklen und Terminierung ergibt, dass keine Zyklenvorhanden sind und jeder Graph terminiert. Aus der Terminierung ergibt sich,dass jeder Graph einen Endzustand besitzt. Diese werden zusatzlich daraufuberpruft, ob sie eindeutig sind, was in diesem Netz zutrifft. Die Uberprufungauf Zustandsfreiheit ist die letzte Strategie, bevor der Schaltungstyp be-stimmt werden kann. Dabei werden alle moglichen Eingangskombinationennacheinander auf das modellierte Netz angewandt und die resultierendenErgebnisse mit den erzeugten Erreichbarkeitsgraphen verglichen. Sollte beikeiner Kombination ein Unterschied aufgetreten sein, so bildet das Petri-Netzkombinatorische Logik ab. In allen anderen Fallen wird eine sequentielleSchaltung abgebildet. Das hier untersuchte Netz bildet Kombinatorik ab.
Listing 5.2: Der aus Abbildung 5.19 (a) generierte Code zur Beschreibung derSchnittstelle in VHDL
entity main net i sport (
x3 , s1 , s0 , x2 , x1 , x0 : in s t d l o g i c ;y : out s t d l o g i c ) ;
end main net ;
In der Logiksynthese muss bei Kombinatorik als erstes die Wahrheitsta-belle aufgestellt werden. Hier existieren dann drei Moglichkeiten die VHDL-Beschreibung zu erzeugen. In allen drei Fallen sieht die Schnittstelle (entity)gleich aus und ist in Listing 5.2 zu sehen. Außer den drei folgenden Strategi-
5.3 Transformation exemplarischer DCPN 181
en sind alle anderen Strategien der Synthese nicht auf das gegebene Netzanzuwenden, da diese nur bei sequentiellen Schaltungen benotigt werden.
Abbildung 5.20: Die Abbildung zeigt die in Listing 5.3 generierte VHDL-Beschreibung auf Register-Transfer-Ebene. (a) ist das Resultat aus der Synthesein der Xilinx ISE und (b) mittels Vivado. In beiden Fallen wird eine ROM-Zellezum Speichern des Ubergangs verwendet.
Listing 5.3: Die aus der Wahrheitstabelle erzeugte VHDL-Beschreibung derarchitecture fur den modellierten Multiplexer. In diesem Ausschnitt sind die erstenund die letzten drei cases angegeben.
architecture behavior of main net i ssignal PN0 concat : s t d l o g i c v e c t o r ( 5 downto 0 ) ;
beginPN0 concat <= x3 & s1 & s0 & x2 & x1 & x0 ;
PN0 : process ( PN0 concat )begin
case PN0 concat i swhen ”000000” => y <= ’0 ’ ;when ”000001” => y <= ’1 ’ ;when ”000010” => y <= ’0 ’ ;−− . . .when ”111101” => y <= ’1 ’ ;when ”111110” => y <= ’1 ’ ;when others => y <= ’1 ’ ;
end case ;end process PN0;end behavior ;
Als erste Moglichkeit kann die erzeugte Wahrheitstabelle direkt in eineVHDL-Beschreibung uberfuhrt werden. Das resultierende Ergebnis ist ineinem Auszug in Listing 5.3 zu sehen. Hieraus resultiert die endgultigeSchaltung fur FPGAs, die in Abbildung 5.20 zu sehen ist. Dabei zeigt (a) die
Mrom_y1
Mrom_y1
Aod)0:5(Ardda
main_net:1
s0s1x0x1x2x3
y
(a)
s0
s1
x0
x1
x2
x3
y_i
RTL_ROM
OA[5:0] y
3
4
0
1
2
5
(b)
182 5 Implementierung und Validierung
Synthese mittels der Xilinx ISE und in (b) ist die resultierende Schaltungdurch Vivado zu sehen. In beiden Werkzeugen ist eine Optimierungssoftwarefur ubergebene Wahrheitstabellen implementiert, wobei hier an diesemBeispiel-Netz zu sehen ist, dass ab einer gewissen Komplexitat auf ROM-Zellen zuruck gegriffen wird.
Im Gegensatz zum in den Grundlagen vorgestellten Multiplexer in Listing2.3, welches die Steuerleitung und die Signalleitungen unterscheidet, kannbei der automatisierten Generierung nicht davon ausgegangen werden, dassdie beiden Leitungstypen anhand ihres Namens erkannt werden konnen. Hierbietet sich noch Potential fur Optimierungen fur gewisse erkannte Muster inden modellierten Petri-Netzen.
Als weitere Methode zur Erzeugung der VHDL-Beschreibung besteht dieOption in Logical PetriNet, dass aus der Wahrheitstabelle eine disjunktiveNormalform generiert werden kann. Die Uberfuhrung in VHDL erzeugt danndie Beschreibung aus Listing 5.4. In der Abbildung 5.21 ist die Schaltungfur die disjunktive Normalform aus Vivado zu sehen. Hier kommen 106Zellen zum Einsatz. Die Xilinx ISE benotigt 97 Logikzellen, wobei hierGrundschaltelemente mit bis zu 16 Eingangen vorkommen.
Listing 5.4: Die aus der Wahrheitstabelle generierte disjunktive Normalformals VHDL-Beschreibung. Hier sind die letzten drei Terme der Gleichung aus derTabelle angegeben.
architecture behavior of main net i sbeginy <= (
−− . . .( x3 AND s1 AND s0 AND x2 ANDNOT x1 AND x0 ) OR( x3 AND s1 AND s0 AND x2 AND x1 ANDNOT x0 ) OR( x3 AND s1 AND s0 AND x2 AND x1 AND x0 )
) ;end behavior ;
Abbildung 5.21: Die Abbildung zeigt die aus Listing 5.4 generierte Schaltung mit-tels Vivado. Dabei ist zu sehen, dass ausschließlich Logikgatter mit zwei Eingangenzur Anwendung kommen. Selbst bei einem DCPN mit sechs Eingangen, acht Tran-sitionen und einem Ausgang ist zu sehen, dass uber die disjunktive Normalformsehr große Netze erzeugt werden.
x1x0
x2
s0
x3s1
y34_i
RTL_AND
I0
I1O
y33_i
RTL_AND
I0
I1O
y32_i
RTL_AND
I0
I1O
y31_i__0
RTL_AND
I0
I1O
y31_i
RTL_AND
I0
I1O
y31_i__1
RTL_AND
I0
I1O
y30_i__0
RTL_AND
I0
I1O
y30_i
RTL_AND
I0
I1O
y30_i__1
RTL_AND
I0
I1O
y30_i__2
RTL_AND
I0
I1O
y29_i
RTL_OR
I0
I1O
y29_i__0
RTL_AND
I0
I1O
y29_i__1
RTL_AND
I0
I1O
y29_i__2
RTL_AND
I0
I1O
y28_i
RTL_OR
I0
I1O
y28_i__0
RTL_AND
I0
I1O
y28_i__1
RTL_AND
I0
I1O
y27_i
RTL_OR
I0
I1O
y27_i__0
RTL_AND
I0
I1O
y27_i__1
RTL_AND
I0
I1O
y27_i__2
RTL_AND
I0
I1O
y26_i
RTL_OR
I0
I1O
y26_i__0
RTL_AND
I0
I1O
y26_i__1
RTL_AND
I0
I1O
y26_i__2
RTL_AND
I0
I1O
y25_i
RTL_OR
I0
I1O
y25_i__0
RTL_AND
I0
I1O
y25_i__1
RTL_AND
I0
I1O
y24_i
RTL_OR
I0
I1O
y24_i__0
RTL_AND
I0
I1O
y24_i__1
RTL_AND
I0
I1O
y23_i
RTL_OR
I0
I1O
y23_i__0
RTL_AND
I0
I1O
y23_i__1
RTL_AND
I0
I1O
y22_i
RTL_OR
I0
I1O
y22_i__0
RTL_AND
I0
I1O
y22_i__1
RTL_AND
I0
I1O
y22_i__2
RTL_AND
I0
I1O
y21_i
RTL_OR
I0
I1O
y21_i__0
RTL_AND
I0
I1O
y21_i__1
RTL_AND
I0
I1O
y20_i
RTL_OR
I0
I1O
y20_i__0
RTL_AND
I0
I1O
y20_i__1
RTL_AND
I0
I1O
y19_i
RTL_OR
I0
I1O
y19_i__0
RTL_AND
I0
I1O
y19_i__1
RTL_AND
I0
I1O
y19_i__2
RTL_AND
I0
I1O
y18_i
RTL_OR
I0
I1O
y18_i__0
RTL_AND
I0
I1O
y18_i__1
RTL_AND
I0
I1O
y18_i__2
RTL_AND
I0
I1O
y17_i
RTL_OR
I0
I1O
y17_i__0
RTL_AND
I0
I1O
y17_i__1
RTL_AND
I0
I1O
y17_i__2
RTL_AND
I0
I1O
y16_i
RTL_OR
I0
I1O
y16_i__0
RTL_AND
I0
I1O
y16_i__1
RTL_AND
I0
I1O
y15_i
RTL_OR
I0
I1O
y15_i__0
RTL_AND
I0
I1O
y15_i__1
RTL_AND
I0
I1O
y15_i__2
RTL_AND
I0
I1O
y14_i
RTL_OR
I0
I1O
y14_i__0
RTL_AND
I0
I1O
y14_i__1
RTL_AND
I0
I1O
y14_i__2
RTL_AND
I0
I1O
y13_i
RTL_OR
I0
I1O
y13_i__0
RTL_AND
I0
I1O
y13_i__1
RTL_AND
I0
I1O
y12_i
RTL_OR
I0
I1O
y12_i__0
RTL_AND
I0
I1O
y12_i__1
RTL_AND
I0
I1O
y11_i
RTL_OR
I0
I1O
y11_i__0
RTL_AND
I0
I1O
y10_i
RTL_OR
I0
I1O
y10_i__0
RTL_AND
I0
I1O
y10_i__1
RTL_AND
I0
I1O
y10_i__2
RTL_AND
I0
I1O
y9_i
RTL_OR
I0
I1O
y9_i__0
RTL_AND
I0
I1O
y9_i__1
RTL_AND
I0
I1O
y8_i
RTL_OR
I0
I1O
y8_i__0
RTL_AND
I0
I1O
y8_i__1
RTL_AND
I0
I1O
y7_i
RTL_OR
I0
I1O
y7_i__0
RTL_AND
I0
I1O
y6_i
RTL_OR
I0
I1O
y6_i__0
RTL_AND
I0
I1O
y6_i__1
RTL_AND
I0
I1O
y5_i
RTL_OR
I0
I1O
y5_i__0
RTL_AND
I0
I1O
y5_i__1
RTL_AND
I0
I1O
y4_i
RTL_OR
I0
I1O
y4_i__0
RTL_AND
I0
I1O
y4_i__1
RTL_AND
I0
I1O
y3_i
RTL_OR
I0
I1O
y3_i__0
RTL_AND
I0
I1O
y2_i
RTL_OR
I0
I1O
y2_i__0
RTL_AND
I0
I1O
y2_i__1
RTL_AND
I0
I1O
y1_i
RTL_OR
I0
I1O
y1_i__0
RTL_AND
I0
I1O
y0_i
RTL_OR
I0
I1O
y0_i__0
RTL_AND
I0
I1O
y_i
RTL_OR
I0
I1O y
5.3 Transformation exemplarischer DCPN 183
Die letzte Moglichkeit eine kombinatorische VHDL-Beschreibung zu gene-rieren ist die Option eine optimierte zweistufige Logik mittels KV-Diagramm,Quine-McCluskey oder Espresso-Verfahren durchzufuhren. Im Beispiel istdas Quine-McCluskey Verfahren verwendet worden, wodurch die in Listing5.5 erzeugte VHDL-Beschreibung generiert wurde. Abbildung 5.22 (b) zeigtdie resultierende Schaltung mittels Vivado. Dabei werden insgesamt zwolfZellen benotigt. (a) zeigt die generierte Schaltung durch die Xilinx ISE.Hier werden funf Zellen verwendet, die dementsprechend mehr Eingangebesitzen. Die Anzahl der verwendeten Zellen hangt stark vom FPGA-Boardab, fur das die Schaltung synthetisiert wird, da die unterschiedlichen FPGAsverschiedene Zellen zur Verfugung stellen.
Abbildung 5.22: In (a) ist die resultierende Schaltung der VHDL-Beschreibungaus Listing 5.5 in der Xilinx ISE zu sehen. (b) zeigt die Schaltung aus dem ToolVivado.
Listing 5.5: Die durch eine zweistufig optimierte Gleichung erzeugte VHDL-Beschreibung mittels Quine-McCluskey.
architecture behavior of main net i sbeginy <= ((NOT s1 ANDNOT s0 AND x0 ) OR (NOT s0 AND x2 AND x0 ) OR
(NOT s1 AND s0 AND x1 ) OR ( x3 AND s0 AND x1 ) ) ;end behavior ;
Die Anzahl der benotigten Zellen hangt also stark davon ab welchesWerkzeug zum uberfuhren der Hardwarebeschreibungssprache verwendetwird. Ebenfalls ist die Große der resultierenden Schaltung abhangig vonder Auswahl der Optimierung innerhalb der Logiksynthese im Tool LogicalPetriNet. Die besten Ergebnisse liefert in den meisten Fallen die in diesem
and3
y_and0003_imp_y_and00031I0
I1
I2
O
and3b1
y_and0002_imp_y_and00021
I0
I1
I2
O
and3b1
y_and0001_imp_y_and00011
I0
I1
I2
O
and3b2
y_and0000_imp_y_and00001
I0
I1
I2
O
or4
y_imp_y1I0
I1
I2
I3
O
main_net:1
s0
s1
x0
x1
x2
x3 y
(a)
s1s0x0
x2
x1x3
y4_i
RTL_INV
I0 O y3_i
RTL_AND
I0
I1O
y3_i__0
RTL_AND
I0
I1O
y2_i
RTL_AND
I0
I1O
y2_i__0
RTL_AND
I0
I1O
y2_i__1
RTL_AND
I0
I1O
y1_i
RTL_OR
I0
I1O
y1_i__0
RTL_AND
I0
I1O
y1_i__1
RTL_AND
I0
I1O
y0_i
RTL_OR
I0
I1O
y0_i__0
RTL_AND
I0
I1O
y_i
RTL_OR
I0
I1O y
(b)
184 5 Implementierung und Validierung
Beispiel verwendete Optimierung mittels Quine-McCluskey, dabei ist dieOptimierungsmethode nicht der ausschlaggebende Punkt, sondern das ei-ne Optimierung durchgefuhrt wird. Das hier gezeigte Beispiel braucht zurTransformation ca. vier bis sechs Sekunden, im Durchschnitt 5,137 Sekundenbei 100 Durchlaufen auf einem Intel Core i7-7700 mit 3,6GHz und 32GBArbeitsspeicher. Die Transformation wurde in einem eigenen Thread aus-gefuhrt. Zur Vergleichbarkeit sind alle weiteren Transformationen ebenfallsso durchgefuhrt worden.
5.3.2 Addierer
Nach dem Multiplexer folgt als nachstes die Modellierung eines Petri-Netzes,das die kombinatorische Schaltung des Addierers abbildet. Dazu wird ein4-Bit-Addierer, der aus Halbaddierern besteht, modelliert. Hierbei kommendie Subnetze zum Einsatz, um aus zwei Halbaddierern einen Volladdierer zuerzeugen und diesen dann zu einem 4-Bit-Addierer zu vervollstandigen.
T0
T1
T2
T3
T4
T5
T6
T7
b
a
sc
(a)
a
b
cin
cout
y
P0
P1 P2
HA
HA
or2
(b)
Abbildung 5.23: In (a) ist das uberfuhrte Subnetz eines modellierten Halb-addierers aus Abbildung 4.31 zu sehen. Dabei sind die Ein- und Ausgange inNetzverbinder umgewandelt worden, um einen Zugriff von außen auf die Subtransi-tion zuzulassen. Hieraus ergibt sich, dass alle Subnetze, die in Bibliothekselementeuberfuhrt werden, immer als Subtransition abgebildet werden mussen, da dieSchnittstelle aus Stellen besteht. Abbildung (b) zeigt die Verwendung des Halbad-dierers zur Modellierung eines Volladdierers.
Das modellierte Netz fur einen Halbaddierer ist im Kapitel zur Transfor-mation in Abbildung 4.31 (a) zu sehen. Daraus wird ein Bibliothekselementerzeugt, welches in Abbildung 5.23 (a) zu sehen ist. Dazu sind Eingangs- (a, b)
5.3 Transformation exemplarischer DCPN 185
und Ausgangsstellen (s, c) in Netzverbinder zu uberfuhren. Das Bibliotheks-element kann dann in weiteren Schaltungen verwendet werden. Abbildung5.23 (b) zeigt die Verwendung, um aus dem Halbaddierer einen vollwertigenAddierer zu generieren. Hierbei kommen zwei Halbaddierer zum Einsatz, diemit einem zusatzlichen Oder-Gatter die Ausgange des Ubertrags cout undder Summe y bestimmen, je nachdem, welche Kombination an Marken inden Eingangsstellen a, b oder dem Eingang des Ubertrags cin anliegt.
a
b
cin
cout
y
P0
P1
P2 T0
T1
T2
T3
T4
T5
T6
T7
T0
T1
T2
T3
T4
T5
T6
T7
T0
T1
T2
T3
Abbildung 5.24: Hier zu sehen ist der Volladdierer aus Abbildung 5.23 (b) nachder Hierarchieauflosung.
Das modellierte DCPN kann nun auf zwei Arten transformiert werden.Zum einen besteht die Option die Hierarchie aufzulosen, oder jedes Subnetzund das Hauptnetz einzeln zu transformieren. Hier im Beispiel werden beideOptionen gezeigt und mit der Hierarchieauflosung begonnen. Dazu ist inAbbildung 5.24 das neu generierte Hauptnetz zu sehen, in dem die dreivorhandenen Subtransitionen aufgelost und ins Netz integriert wurden. DieElemente der drei Subtransitionen sind in das Hauptnetz integriert worden.
186 5 Implementierung und Validierung
Listing 5.6: Die erzeugte entity des Volladdierers aus Abbildung 5.24.
entity FA i sport (
a , b , c i n : in s t d l o g i c ;c out , y : out s t d l o g i c ) ;
end FA;
Bei der Transformation wird nun das gesamte Netz ohne Hierarchie ausAbbildung 5.24 verwendet. Ebenso wie bei der vorherigen Transformationdes Mutliplexers wird hier Kombinatorik als Schaltungstyp erkannt. ZurAuswahl der Transformation stehen also ebenfalls wieder die Moglichkeitender Uberfuhrung der Wahrheitstabelle, der disjunktiven Normalform oderder optimierten zweistufigen Gleichung zur Verfugung.Zum Vergleich der drei Methoden sind hier die Ergebnisse aufgefuhrt.
Dabei ist in Listing 5.6 die generelle Beschreibung der Schnittstelle zu sehen.Das Listing 5.7 zeigt die aus der Wahrheitstabelle generierte architectureund Abbildung 5.25 zeigt die hieraus erzeugte Schaltung. Hierbei kommenzwei ROM-Zellen zum Einsatz, wobei jede einen Ausgang des Volladdierersabbildet.
Listing 5.7: Das Listing zeigt die architecture Beschreibung fur den Volladdiererals Wahrheitstabelle. Ein- und Ausgange sind in Listing 5.6 angegeben.
architecture behavior of FA i ssignal PN0 concat : s t d l o g i c v e c t o r ( 2 downto 0 ) ;
beginPN0 concat <= a & b & c i n ;
PN0 : process ( PN0 concat )begin
case PN0 concat i swhen ”000” => c out <= ’0 ’ ; y <= ’0 ’ ;when ”001” => c out <= ’0 ’ ; y <= ’1 ’ ;when ”010” => c out <= ’0 ’ ; y <= ’1 ’ ;when ”011” => c out <= ’1 ’ ; y <= ’0 ’ ;when ”100” => c out <= ’0 ’ ; y <= ’1 ’ ;when ”101” => c out <= ’1 ’ ; y <= ’0 ’ ;when ”110” => c out <= ’1 ’ ; y <= ’0 ’ ;when others => c out <= ’1 ’ ; y <= ’1 ’ ;
end case ;end process PN0;end behavior ;
5.3 Transformation exemplarischer DCPN 187
Abbildung 5.25: Hier ist die Umsetzung des Volladdierers mittels der Wahrheits-tabelle zu sehen. Nach der Synthese durch Vivado wird jeder Ausgang durch eineROM-Zelle abgebildet.
Listing 5.8: Beschreibung der architecture des Volladdierers mittels DNF.
architecture behavior of FA i sbeginc out <= ((NOT a AND b AND c i n ) OR ( a ANDNOT b AND c i n ) OR
( a AND b ANDNOT c i n ) OR ( a AND b AND c i n ) ) ;y <= ((NOT a ANDNOT b AND c i n ) OR
(NOT a AND b ANDNOT c i n ) OR( a ANDNOT b ANDNOT c i n ) OR( a AND b AND c i n ) ) ;
end behavior ;
Durch die Verwendung der disjunktiven Normalform ergibt sich die inListing 5.8 zu sehende VHDL-Beschreibung des Volladdierers. Daraus folgtdie Schaltung in Abbildung 5.26, bei der 19 Zellen zum Einsatz kommen.Durch die Optimierung die generierten Wahrheitstabelle wird die in Listing5.9 zu sehende VHDL-Beschreibung erzeugt. Aus dieser folgt die mittelsVivado generierte Schaltung in Abbildung 5.27, bei der 15 Zellen zum Einsatzkommen. Die komplette Transformation hat im Mittel ca. drei Sekundengedauert, wobei Zeiten zwischen zwei und vier Sekunden gemessen wurden.
Abbildung 5.26: Die resultierende Schaltung aus der VHDL-Beschreibung inListing 5.8, bei der die DNF zur Transformation verwendet wurde.
ab
c_in
c_out_i
RTL_ROM
OA[2:0]
y_i
RTL_ROM
OA[2:0]
c_out
y
2
1
0
c_in
ab
c_out4_i
RTL_INV
I0 O
c_out4_i__0
RTL_INV
I0 O
c_out3_i
RTL_AND
I0
I1O
y3_i
RTL_AND
I0
I1O
c_out3_i__0
RTL_AND
I0
I1O
c_out2_i
RTL_AND
I0
I1O
c_out2_i__0
RTL_AND
I0
I1O
y2_i__0
RTL_AND
I0
I1O
y2_i
RTL_AND
I0
I1O
c_out2_i__1
RTL_AND
I0
I1O
c_out1_i
RTL_OR
I0
I1O
y1_i
RTL_OR
I0
I1O
c_out1_i__0
RTL_AND
I0
I1O
y1_i__0
RTL_AND
I0
I1O
c_out0_i
RTL_OR
I0
I1O
c_out0_i__0
RTL_AND
I0
I1O
y0_i
RTL_OR
I0
I1O
c_out_i
RTL_OR
I0
I1O
y_i
RTL_OR
I0
I1O
c_out
y
188 5 Implementierung und Validierung
Listing 5.9: Architecture des Volladdierers, die mittels Quine-McCluskey erstelltwurde.
architecture behavior of FA i sbeginc out <= (( b AND c i n ) OR ( a AND c i n ) OR ( a AND b ) ) ;y <= ((NOT a ANDNOT b AND c i n ) OR
(NOT a AND b ANDNOT c i n ) OR( a ANDNOT b ANDNOT c i n ) OR( a AND b AND c i n ) ) ;
end behavior ;
Abbildung 5.27: In der Abbildung ist die erzeugte Schaltung aus der VHDL-Beschreibung in Listing 5.9 zu sehen, bei dem der optimierte boolesche Ausdruckzum Einsatz kommt.
Aus dem erstellten Volladdierer kann ein beliebig großer Addierer model-liert und somit mehrere Bit breite Addierer abgebildet werden. Hierzu istder Volladdierer mit Eingangen und Ausgangen zu verbinden und zusatzlichist der Ubertrag an den jeweils nachsten Volladdierer weiter zu reichen.Abbildung 5.28 zeigt einen 4-Bit-Addierer, der im Folgenden transformiertwird. Der Addierer wird ebenfalls als Schaltnetz erkannt, wenn die Hier-archie aufgelost wird. Die resultierende VHDL-Schnittstelle ist in Listing5.10 zu sehen. Fur die Verhaltensbeschreibung kommt die Optimierung nachQuine-McCluskey zum Einsatz und das Ergebnis ist in Listing 5.11 zu sehen.Daraus resultiert die Schaltung in Abbildung 5.29.Bei der Transformation des Volladdierers aus Abbildung 5.28 ohne Hier-
archieauflosung wird fur das Bibliothekselement FA genau eine Instanzbestehend aus Schnittstelle und Verhaltensbeschreibung angelegt. Diese wirdim Hauptnetz als Komponente deklariert, konfiguriert und dann vier malinstantiiert. Als Verhaltens- oder Strukturbeschreibung kann hier jede derhier vorgestellten architecture des Volladdierers (FA) fur ein Bit verwendet
c_inab
y3_i
RTL_AND
I0
I1O
y3_i__0
RTL_AND
I0
I1O
y2_i
RTL_AND
I0
I1O
y2_i__0
RTL_AND
I0
I1O
y2_i__1
RTL_AND
I0
I1O
y1_i
RTL_OR
I0
I1O
y1_i__0
RTL_AND
I0
I1O
c_out1_i
RTL_AND
I0
I1O
c_out1_i__0
RTL_AND
I0
I1O
c_out0_i__0
RTL_AND
I0
I1O
y0_i
RTL_OR
I0
I1O
c_out0_i
RTL_OR
I0
I1O
y0_i__0
RTL_AND
I0
I1O
c_out_i
RTL_OR
I0
I1O
y_i
RTL_OR
I0
I1O
c_out
y
5.3 Transformation exemplarischer DCPN 189
cin
a0 b0 a1 b1 a2 b2 a3 b3
s0 s1 s2 s3
P0 P1 P2 coutFA FA FA FA
Abbildung 5.28: Aus dem Volladdierer aus Abbildung 5.23 (b) kann nun ohneweiteres ein Volladdierer mit beliebig vielen Bits zusammengesetzt werden. Hierist beispielhaft ein 4 Bit breiter Addierer abgebildet, der in den nachsten Schrittentransformiert wird.
werden, je nachdem welche Strategien im Transformationsprozess ausgewahltwurden. Die Schnittstellenbeschreibung bleibt unverandert und hat somitdie Form wie in Listing 5.10. Wenn keine Hierarchieauflosung wahrend derTransformation ausgewahlt wurde, dann wird das Petri-Netz aus Abbildung5.23 (b) verwendet, welche selbst wieder Komponenten enthalt.
Listing 5.10: Die erzeugte VHDL-Schnittstelle des 4-Bit Addierers, unabhangigdavon ob die Hierarchie beibehalten wird.
entity FA4BIT i sport (
c i n : in s t d l o g i c ;a 0 , a 1 , a 2 , a 3 : in s t d l o g i c ;b 0 , b 1 , b 2 , b 3 : in s t d l o g i c ;s 0 , s 1 , s 2 , s 3 : out s t d l o g i c ;c out : out s t d l o g i c ) ;
end FA4BIT ;
Die Strukturbeschreibung (siehe Listing 5.12) erhalt dagegen einige An-passungen, die hier naher erlautert werden. Als erstes muss jede verwendeteKomponente zu Beginn der Beschreibung deklariert werden. Dies erfolgtuber den Block component und gibt die Ports des Elements an, damitdiese im spateren Verlauf verdrahtet werden konnen. Im Folgenden ist dieKomponente zu konfigurieren, was bedeutet, dass fur jede verwendete Instanzdes Elements angegeben werden muss, wo die Schnittstelle beschrieben istund welche Struktur- oder Verhaltensbeschreibung zur Anwendung kommt.Dies ist notwendig, da in VHDL mehrere Verhaltensbeschreibungen zu einer
190 5 Implementierung und Validierung
Schnittstelle vorliegen konnen. Im letzten Schritt mussen Signale fur alleVerbindungen zwischen den neu hinzugefugten Elementen angelegt werden.Im Listing sind dies die Signale P0 bis P2, die verwendet werden um denUbertrag an den jeweils nachsten Volladdierer FA weiter zu reichen. Dannerfolgt die Verdrahtung der einzelnen Elemente uber eine port map, wiehier im unteren Bereich der architecture zu sehen ist.
Abbildung 5.29: Hier zu sehen ist die resultierende Schaltung aus dem modellier-ten DCPN aus Abbildung 5.28 und der daraus bestimmten VHDL-Beschreibungaus Listing 5.11.
Listing 5.11: Das Listing zeigt die Verhaltensbeschreibung des 4-Bit Addierers,der die Zahlen a und b miteinander addiert.
architecture behavior of FA4BIT i ssignal PN0 concat : s t d l o g i c v e c t o r ( 8 downto 0 ) ;
beginPN0 concat <=
c i n & a 0 & b 0 & a 1 & b 1 & a 2 & b 2 & a 3 & b 3 ;PN0 : process ( PN0 concat )begincase PN0 concat i s
when ”000000000” =>s 0 <= ’0 ’; s 1 <= ’0 ’; s 2<= 0 ’ ; s 3 <= ’0 ’; c out <= ’0 ’;
when ”000000001” =>s 0 <= ’0 ’; s 1 <= ’0 ’; s 2 <= ’0 ’; s 3 <= ’1 ’; c out <= ’0 ’;
when ”000000010” =>s 0 <= ’0 ’; s 1 <= ’0 ’; s 2 <= ’0 ’; s 3 <= ’1 ’; c out <= ’0 ’;
−− . . .
a_0
a_1
a_2
a_3
b_0
b_1
b_2
b_3
c_in
c_out_i
RTL_ROM
OA[8:0]
s_0_i
RTL_ROM
OA[8:0]
s_1_i
RTL_ROM
OA[8:0]
s_2_i
RTL_ROM
OA[8:0]
s_3_i
RTL_ROM
OA[8:0]
c_out
s_0
s_1
s_2
s_3
7
5
3
1
6
4
2
0
8
5.3 Transformation exemplarischer DCPN 191
when ”111111110” =>s 0 <= ’1 ’; s 1 <= ’1 ’; s 2 <= ’1 ’; s 3 <= ’0 ’; c out <= ’1 ’;
when others =>s 0 <= ’1 ’; s 1 <= ’1 ’; s 2 <= ’1 ’; s 3 <= ’1 ’; c out <= ’1 ’;
end case ;end process PN0;end behavior ;
Listing 5.12: Hier ist die Strukturbeschreibung des 4-Bit-Volladdierers mit bei-behaltener Hierarchie zu sehen. Als Ein-Bit-Volladdierer werden dabei die vorherin diesem Abschnitt vorgestellten Schaltungen verwendet.
architecture behavior of FA4BIT i scomponent FA i sport (
a , b , c i n : in s t d l o g i c ;c out , y : out s t d l o g i c ) ;
end component ;
for FA0, FA1, FA2, FA3 : FA use entity work .FA( behavior ) ;
signal P0 , P1 , P2 : s t d l o g i c ;
beginFA0 : FA port map( a=>a 0 , b=>b 0 , c i n=>c in ,
c out=>P0 , y=>s 0 ) ;FA1 : FA port map( a=>a 1 , b=>b 1 , c i n=>P0 ,
c out=>P1 , y=>s 1 ) ;FA2 : FA port map( a=>a 2 , b=>b 2 , c i n=>P1 ,
c out=>P2 , y=>s 2 ) ;FA3 : FA port map( a=>a 3 , b=>b 3 , c i n=>P2 ,
c out=>c out , y=>s 3 ) ;end behavior ;
Die mittels Vivado generierte Schaltung ist in Abbildung 5.30 zu sehen.Dabei sind die vier verwendeten Komponenten zu erkennen, die untereinanderund mit den Ein- und Ausgangen verdrahtet sind. Exemplarisch ist einVolladdierer (FA3) aufgeklappt, um die Elemente des Bauteils zu zeigen. ImBeispiel wurden die Addierer mittels Wahrheitstabelle generiert, wodurch proAusgang ein ROM-Element angelegt wurde. Hier ware auch die Verwendungder anderen vorgestellten Methoden moglich gewesen. Ebenfalls hatte hierwieder eine Hierarchiebildung statt finden konnen und das in Abbildung5.23 (b) modellierte Netz hatte zur Anwendung kommen konnen.
192 5 Implementierung und Validierung
Abbildung 5.30: Die Abbildung zeigt die generierte Schaltung mittels Vivado ausdem Listing 5.12 mit Ein-Bit-Volladdierern, die aus der Wahrheitstabelle generiertwurden. Dabei ist exemplarisch eine Komponente aufgeklappt, um die Elementein den Subschaltungen erkennen zu konnen.
5.3.3 Lauflicht
Nach der Transformation von Schaltnetzen, folgt in diesem Beispiel die ersteUmsetzung einer sequentiellen Schaltung. Hierzu dient ein Lauflicht, welchesacht Ausgange der Reihe nach bedienen soll und durch Betatigen von zweiSchaltern an bestimmten Positionen des Lauflichts gestartet oder gestopptwerden kann. Das Lauflicht halt dann immer an der letzten Position vor demnicht betatigten Schalter der modellierten Kette an. Abbildung 5.31 zeigtdas fertig modellierte Petri-Netz, welches in ahnlicher Form schon in denKapiteln zur Transformation zur Veranschaulichung diente.
Hier wird beim Transformationsprozess eine sequentielle Schaltung erkannt,da zeitbehaftete Transitionen im Netz vorkommen, die Anderungen im Netzalso nicht unmittelbar stattfinden. Aus dem gegebenen Netz ist der inAbbildung 5.32 zu sehende eingabeorientierte Erreichbarkeitsgraph erzeugtworden. Im Gegensatz zu dem im Kapitel 4.6.2 transformierten Lauflichtsind hier alle Schaltzeiten der Transitionen gleich. Die Markierung in denKnoten und die Bedingungen der Kanten sind in den Tabellen 5.3 und 5.4zu sehen.
FA3
FA
a
b
c_in
c_out
y
FA1
FA
a
b
c_in
c_out
yFA0
FA
a
b
c_in
c_out
y
FA2
FA
a
b
c_in
c_out
y
s_3
c_out_i
RTL_ROM
OA[2:0]
y_i
RTL_ROM
OA[2:0]
a_0
a_1
a_2
a_3
b_0
b_1
b_2
b_3
c_in
c_out
s_0
s_1
s_2
2
1
0
5.3 Transformation exemplarischer DCPN 193
SW1 SW2
L0 L1 L2 L3
L4L5L6L7
T: 1ns
T0
T: 1ns
T1
T: 1ns
T2
T: 1ns
T3
T: 1ns
T4
T: 1ns
T5
T: 1ns
T6
T: 1ns
T7
Abbildung 5.31: Das hier zu sehende DCPN ist ein modelliertes Lauflicht mit denacht Ausgangen L0 bis L7. Der Eingang SW1 kann das Lauflicht an der PositionL7 stoppen, SW2 stoppt an L3. Der Takt fur den Wechsel des Lichtes betragt eineNanosekunde.
e0 e1 e2 e3
e4e5e6e7
a0 a1 a2
a3
a4a5a6
a7
Abbildung 5.32: Hier ist der eingabeorientierte Erreichbarkeitsgraph aus demPetri-Netz von Abbildung 5.31 zu sehen. Die Markierungen der Knoten undKantenbedingungen sind in den Tabellen 5.3 und 5.4 aufgezeigt.
Tabelle 5.3: Die Tabelle zeigt die Markie-rung der einzelnen Knoten aus dem IRG inAbbildung 5.32.
L0 L1 L2 L3 L4 L5 L6 L7
e0 0 0 0 0 0 0 1 0
e1 0 0 0 0 0 0 0 1
e2 1 0 0 0 0 0 0 0
e3 0 1 0 0 0 0 0 0
e4 0 0 1 0 0 0 0 0
e5 0 0 0 1 0 0 0 0
e6 0 0 0 0 1 0 0 0
e7 0 0 0 0 0 1 0 0
Tabelle 5.4: Hier sind dieUbergangsbedingungen der Kan-ten des IRG fur das Lauflicht zusehen.
SW1 SW2 Schaltzeit
a0 - - 1ns
a1 1 - 1ns
a2 - - 1ns
a3 - - 1ns
a4 - - 1ns
a5 - 1 1ns
a6 - - 1ns
a7 - - 1ns
194 5 Implementierung und Validierung
Aus dem modellierten DCPN kann direkt die VHDL-Schnittstellenbeschrei-bung generiert werden, welche in Listing 5.13 zu sehen ist. Die Verhaltensbe-schreibung wird aus dem eingabeorientierten Erreichbarkeitsgraphen erzeugtund ist in Listing 5.14 zu sehen. Beide Beschreibungen zusammen ergebendann die Schaltung wie sie in Abbildung 5.33 gezeigt ist.
Listing 5.13: Die generierte entity des Lauflichts aus Abbildung 5.31 fur dasLauflicht.
entity Lau f l i c h t i sport (
c lk , SW 1 , SW 2 : in s t d l o g i c ;L 0 , L 7 , L 1 , L 6 , L 2 , L 5 , L 3 , L 4 : out s t d l o g i c ) ;
end Lau f l i c h t ;
Abbildung 5.33: Resultierende Schaltung aus dem eingabeorientierten Erreich-barkeitsgraphen fur das Lauflicht aus Abbildung 5.31.
Listing 5.14: Die erzeugte Verhaltensbeschreibung in VHDL des Lauflichts ausAbbildung 5.31.
architecture behavior of Lau f l i c h t i stype PN0 STATES i s ( PN0 0 , PN0 1 , PN0 2 , PN0 3 ,
PN0 4 , PN0 5 , PN0 6 , PN0 7 ) ;signal PN0 STATE, PN0 FOLLOW STATE: PN0 STATES ;
begin
PN0 STATEMEMORY: process ( c l k )
SW_1
SW_2clk
PN0_FOLLOW_STATE_i
RTL_MUXS
I0[1:0]V=B"10", S=1'b1
I1[1:0]V=B"01", S=defaultO[1:0]
PN0_FOLLOW_STATE_i__0
RTL_MUXS
I0[2:0]V=B"110", S=1'b1
I1[2:0]V=B"101", S=defaultO[2:0]
PN0_FOLLOW_STATE_i__1
RTL_MUX
I0[2:0]V=B"001", S=3'b000
I1[1:0]S=3'b001
I2[2:0]V=B"011", S=3'b010
I3[2:0]V=B"100", S=3'b011
I4[2:0]V=B"101", S=3'b100
I5[2:0]S=3'b101
I6[2:0]S=3'b110
I7[2:0]S=3'b111
O[2:0]
S[2:0]
PN0_STATE_reg[2:0]
RTL_REG
C
DQ
L_0_i
RTL_ROM
OA[2:0]
L_1_i
RTL_ROM
OA[2:0]
L_2_i
RTL_ROM
OA[2:0]
L_3_i
RTL_ROM
OA[2:0]
L_4_i
RTL_ROM
OA[2:0]
L_5_i
RTL_ROM
OA[2:0]
L_6_i
RTL_ROM
OA[2:0]
L_7_i
RTL_ROM
OA[2:0]
L_0
L_1
L_2
L_3
L_4
L_5
L_6
L_7
5.3 Transformation exemplarischer DCPN 195
begini f c l k = ’1 ’ and clk ’ event then
PN0 STATE <= PN0 FOLLOW STATE;end i f ;
end process PN0 STATEMEMORY;
PN0 FOLLOW: process ( SW 1 , SW 2 , PN0 STATE )begin
case PN0 STATE i swhen PN0 0 => PN0 FOLLOW STATE <= PN0 1 ;when PN0 1 =>
i f (SW 1= ’1 ’) then PN0 FOLLOW STATE <= PN0 2 ;else PN0 FOLLOW STATE <= PN0 1 ;end i f ;
when PN0 2 => PN0 FOLLOW STATE <= PN0 3 ;when PN0 3 => PN0 FOLLOW STATE <= PN0 4 ;when PN0 4 => PN0 FOLLOW STATE <= PN0 5 ;when PN0 5 =>
i f (SW 2= ’1 ’) then PN0 FOLLOW STATE <= PN0 6 ;else PN0 FOLLOW STATE <= PN0 5 ;end i f ;
when PN0 6 => PN0 FOLLOW STATE <= PN0 7 ;when PN0 7 => PN0 FOLLOW STATE <= PN0 0 ;
end case ;end process PN0 FOLLOW;
PN0 OUTPUT: process ( PN0 STATE )begin
case PN0 STATE i swhen PN0 0 =>
L 0 <= ’0 ’ ; L 7 <= ’0 ’ ; L 1 <= ’0 ’ ; L 6 <= ’1 ’ ;L 2 <= ’0 ’ ; L 5 <= ’0 ’ ; L 3 <= ’0 ’ ; L 4 <= ’0 ’ ;
when PN0 1 =>L 0 <= ’0 ’ ; L 7 <= ’1 ’ ; L 1 <= ’0 ’ ; L 6 <= ’0 ’ ;L 2 <= ’0 ’ ; L 5 <= ’0 ’ ; L 3 <= ’0 ’ ; L 4 <= ’0 ’ ;
when PN0 2 =>L 0 <= ’1 ’ ; L 7 <= ’0 ’ ; L 1 <= ’0 ’ ; L 6 <= ’0 ’ ;L 2 <= ’0 ’ ; L 5 <= ’0 ’ ; L 3 <= ’0 ’ ; L 4 <= ’0 ’ ;
when PN0 3 =>L 0 <= ’0 ’ ; L 7 <= ’0 ’ ; L 1 <= ’1 ’ ; L 6 <= ’0 ’ ;L 2 <= ’0 ’ ; L 5 <= ’0 ’ ; L 3 <= ’0 ’ ; L 4 <= ’0 ’ ;
when PN0 4 =>L 0 <= ’0 ’ ; L 7 <= ’0 ’ ; L 1 <= ’0 ’ ; L 6 <= ’0 ’ ;L 2 <= ’1 ’ ; L 5 <= ’0 ’ ; L 3 <= ’0 ’ ; L 4 <= ’0 ’ ;
when PN0 5 =>L 0 <= ’0 ’ ; L 7 <= ’0 ’ ; L 1 <= ’0 ’ ; L 6 <= ’0 ’ ;L 2 <= ’0 ’ ; L 5 <= ’0 ’ ; L 3 <= ’1 ’ ; L 4 <= ’0 ’ ;
when PN0 6 =>L 0 <= ’0 ’ ; L 7 <= ’0 ’ ; L 1 <= ’0 ’ ; L 6 <= ’0 ’ ;L 2 <= ’0 ’ ; L 5 <= ’0 ’ ; L 3 <= ’0 ’ ; L 4 <= ’1 ’ ;
196 5 Implementierung und Validierung
when others =>L 0 <= ’0 ’ ; L 7 <= ’0 ’ ; L 1 <= ’0 ’ ; L 6 <= ’0 ’ ;L 2 <= ’0 ’ ; L 5 <= ’1 ’ ; L 3 <= ’0 ’ ; L 4 <= ’0 ’ ;
end case ;end process PN0 OUTPUT;end behavior ;
Im Gegensatz zu kombinatorischer Logik existiert beim Erzeugen vonsequentiellen Schaltungen nur der Weg uber den eingabeorientierten Er-reichbarkeitsgraphen. Die Berechnungen fur die Transformation dauertenzwischen ein und drei Sekunden, wobei im Mittel ca zwei Sekunden benotigtwurden.
5.3.4 Register
Zu den sequentiellen Schaltungen gehoren ebenfalls die Register. Das hierzu modellierende Register soll ein Mal mit jedem Takt das anliegende Signalubernehmen und speichern, bis ein neues Signal beim nachsten Takt anliegt.Sie werden sehr haufig als Verzogerer verwendet, wenn ein ermitteltes Signalbeispielsweise erst vier Takte spater am Ausgang anliegen soll. In diesem Ab-schnitt werden zwei mogliche Petri-Netz-Modellierungen vorgestellt, die einRegister darstellen. Der Unterschied zwischen beiden Netzen ist, dass beimeinen in jedem Takt immer das anliegende Signal ubernommen wird. Beimzweiten Ansatz existiert ein zusatzlicher enable-Eingang, der die Ubernahmedes Signals nur zulasst, wenn ein Signal (Marke) an dieser Stelle anliegt.
i0 i1 i2 i3
o0 o1 o2 o3
T: 1ns
T0
T: 1ns
T1
T: 1ns
T2
T: 1ns
T3
T: 1ns
T4
T: 1ns
T5
T: 1ns
T6
T: 1ns
T7
Abbildung 5.34: Das hier zu sehende DCPN ist ein modelliertes Register mitvier Bit Wortbreite. Die Erweiterung ist einfach moglich, indem jeweils beliebigviele Teilnetze hinzugefugt werden.
Als erste Transformation wird das Register ohne enable transformiert.Das modellierte DCPN ist dabei in Abbildung 5.34 zu sehen. Dabei ist klarzu erkennen, dass die Erweiterung einfach moglich ist, da jeder Eintrag desRegisters als eigenes Netz implementiert wurde. Die Eingange mussen so
5.3 Transformation exemplarischer DCPN 197
beschaltet werden, dass immer zum Start einer Taktperiode das Signal anliegt,um genau einen Takt spater, das Signal am Ausgang des Registers zu erhalten.Sollte ein allgemeiner Takt fur die gesamte Schaltung benotigt werden, somuss auf eine der Taktgenerierungen aus Kapitel 4.1.2 zuruckgegriffen werden.Wahrend der Transformation findet eine Uberprufung auf unabhangigeTeilnetze statt, welche in diesem Beispiel vier Teilnetze erkennt und dieseeinzeln transformiert. Die VHDL-Schnittstelle ist von der Aufteilung nichtbetroffen, da die transformierte Schaltung das gesamte Netz abbilden soll.
Abbildung 5.35: Vier Bit breites Register durch die Transformation des DCPNaus Abbildung 5.34 generiert.
Listing 5.15: Schnittstellenbeschreibung des Registers aus Abbildung 5.34 ohneenable-Eingang.
entity main net i sport (
c l k : in s t d l o g i c ;i0 , i1 , i2 , i 3 : in s t d l o g i c ;o0 , o1 , o2 , o3 : out s t d l o g i c ) ;
end main net ;
Das Listing 5.15 zeigt die VHDL-Schnittstelle des Transformierten Netzesund in Listing 5.16 ist die Verhaltensbeschreibung zu sehen, wobei nur ein
i0
i1
clk
i2
i3
PN0_FOLLOW_STATE_i
RTL_MUX
I0S=1'b0
I1S=defaultO
S
PN0_FOLLOW_STATE_i__0
RTL_MUX
I0S=1'b1
I1S=defaultO
S
PN1_FOLLOW_STATE_i
RTL_MUX
I0S=1'b0
I1S=defaultO
S
PN1_FOLLOW_STATE_i__0
RTL_MUX
I0S=1'b1
I1S=defaultO
S
PN2_FOLLOW_STATE_i
RTL_MUX
I0S=1'b0
I1S=defaultO
S
PN2_FOLLOW_STATE_i__0
RTL_MUX
I0S=1'b1
I1S=defaultO
S
PN3_FOLLOW_STATE_i
RTL_MUX
I0S=1'b0
I1S=defaultO
S
PN3_FOLLOW_STATE_i__0
RTL_MUX
I0S=1'b1
I1S=defaultO
S
PN0_FOLLOW_STATE_i__1
RTL_MUX
I0S=1'b0
I1S=1'b1O
S
PN1_FOLLOW_STATE_i__1
RTL_MUX
I0S=1'b0
I1S=1'b1O
S
PN2_FOLLOW_STATE_i__1
RTL_MUX
I0S=1'b0
I1S=1'b1O
S
PN3_FOLLOW_STATE_i__1
RTL_MUX
I0S=1'b0
I1S=1'b1O
S
PN0_STATE_reg
RTL_REG
C
DQ
PN1_STATE_reg
RTL_REG
C
DQ
PN2_STATE_reg
RTL_REG
C
DQ
PN3_STATE_reg
RTL_REG
C
DQ
o0_i
RTL_MUX
I0S=1'b0
I1S=defaultO
S
o1_i
RTL_MUX
I0S=1'b0
I1S=defaultO
S
o2_i
RTL_MUX
I0S=1'b0
I1S=defaultO
S
o3_i
RTL_MUX
I0S=1'b0
I1S=defaultO
S
o0
o1
o2
o3
198 5 Implementierung und Validierung
vollstandiger Automat fur i0 und o0 abgebildet ist. Die weiteren Automatensind nach dem selben Schema aufgebaut. Abbildung 5.35 zeigt die generierteSchaltung mittels Vivado. Die Simulationsergebnisse sind in Abbildung 5.36zu sehen, wobei der mit (pn) bezeichnete Signalverlauf die Simulationsergeb-nisse aus dem Tool Logical PetriNet zeigt. Der mit (hdl) gekennzeichneteSignalverlauf beschreibt die Ergebnisse der Simulation aus Vivado.
Listing 5.16: Die aus Abbildung 5.34 generierte Verhaltensbeschreibung furdas Register. Dabei ist nur ein Automat vollstandig dargestellt. Die weiterenAutomaten besitzen dasselbe Schema.
architecture behavior of main net i stype PN0 STATES i s (PN0 0 , PN0 1 ) ;signal PN0 STATE, PN0 FOLLOW STATE: PN0 STATES ;
begin
PN0 STATEMEMORY: process ( c l k )begin
i f c l k = ’1 ’ and clk ’ event thenPN0 STATE <= PN0 FOLLOW STATE;
end i f ;end process PN0 STATEMEMORY;
PN0 FOLLOW: process ( i0 , PN0 STATE )begin
case PN0 STATE i swhen PN0 0 =>
i f ( i 0 = ’0 ’) then PN0 FOLLOW STATE <= PN0 1 ;else PN0 FOLLOW STATE <= PN0 0 ;end i f ;
when PN0 1 =>i f ( i 0 = ’1 ’) then PN0 FOLLOW STATE <= PN0 0 ;else PN0 FOLLOW STATE <= PN0 1 ;end i f ;
end case ;end process PN0 FOLLOW;
PN0 OUTPUT: process ( PN0 STATE )begin
case PN0 STATE i swhen PN0 0 => o0 <= ’1 ’ ;when others => o0 <= ’0 ’ ;
end case ;end process PN0 OUTPUT;
−− . . .−− Weitere Automaten nach dem g l e i c h en Schema
end behavior ;
5.3 Transformation exemplarischer DCPN 199
Nach der Generierung eines Registers, welches pro Takt das anliegendeSignal ubernimmt, wird hier als abschließendes Beispiel zu den Registernnoch ein Speicher mit Aktivierungseingang vorgestellt. Zur Ubersichtlichkeitdes erzeugten eingabeorientierten Erreichbarkeitsgraphen ist in Abbildung5.37 (a) ein DCPN mit zwei Bit Wortbreite zu sehen. Hieran ist das Prinzipder Transformation fur großere Register abzulesen. Abbildung 5.37 (b) zeigtden generierten IRG mit den Markierungen der Knoten aus Tabelle 5.5 undden Bedingungen der Kanten aus Tabelle 5.6.
0.0 5.0 10.0 15.0 20.0 25.0 30.0 35.0 40.0 45.0Zeit (in ns)
i0
i1
i2
i3
(pn) o0
(hdl) o0
(pn) o1
(hdl) o1
(pn) o2
(hdl) o2
(pn) o3
(hdl) o3
Abbildung 5.36: Der Graph zeigt die Simulationsergebnisse des modelliertenDCPN aus Abbildung 5.34 im Tool Logical PetriNet (pn). (hdl) beschreibt dieSimulationsergebnisse aus Vivado der synthetisierten VHDL-Beschreibung desRegisters.
Aus dem eingabeorientierten Erreichbarkeitsgraphen ist nun die VHDL-Beschreibung der Schnittstelle (Listing 5.17) und die Verhaltensbeschreibunggeneriert worden. Wie in Listing 5.18 und Abbildung 5.37 (b) zu sehen ist,existiert die Option von jedem Knoten im nachsten Schritt zu jedem anderenKnoten zu gelangen. Dies liegt daran, dass im Register zu jedem neuenSpeichervorgang jeder mogliche Zustand gespeichert werden kann. ZusatzlicheOptimierungen konnten noch kompaktere Schaltungen generieren.
200 5 Implementierung und Validierung
i0 i1
en
o0 o1
T: 1ns
T0
T: 1ns
T1
T: 1ns
T2
T: 1ns
T3
(a)
e0
e1
e2
e3
a0
a 1
a2
a3
a4
a5
a 6
a7
a8
a9
a10
a11
(b)
Abbildung 5.37: (a) zeigt das modellierte Register mit Aktivierungseingangenable (en) als Petri-Netz. (b) beschreibt den generierten eingabeorientiertenErreichbarkeitsgraphen mit den Markierungen der Knoten und Bedingungen derKanten aus den Tabellen 5.5 und 5.6.
Tabelle 5.5: Die Tabel-le zeigt die Markierungder einzelnen Knoten ausdem IRG in Abbildung5.37 (b).
o0 o1e0 0 0
e1 0 1
e2 1 0
e3 1 1
Tabelle 5.6: Hier sind die Ubergangsbedingungender Kanten des IRG fur das Register mit Aktivie-rungseingang zu sehen.
i0 i1 en Schaltzeit i0 i1 en Schaltzeit
a0 0 1 1 1ns a6 0 0 1 1ns
a1 1 0 1 1ns a7 0 1 1 1ns
a2 1 1 1 1ns a8 1 1 1 1ns
a3 0 0 1 1ns a9 0 0 1 1ns
a4 1 0 1 1ns a10 0 1 1 1ns
a5 1 1 1 1ns a11 1 0 1 1ns
Die fertige Schaltung entspricht dem Schaltplan aus Abbildung A.1 imAnhang, der mittels Vivado synthetisiert wurde. Die aus der Xilinx ISEerzeugte Schaltung ist in Abbildung 5.38 zu sehen. Bei Vivado kommeninsgesamt 23 Zellen zum Einsatz, wobei die ISE nur acht Zellen benotigt.Hieran ist zu sehen, dass die Optimierung der Schaltungsgroße neben derOptimierungen im Transformationsprozess zusatzlich stark vom verwende-ten Synthesewerkzeug abhangt. Zur Verifizierung ist eine Simulation desmodellierten Petri-Netzes und der transformierten Schaltung erfolgt, derenErgebnisse in Abbildung 5.39 zu sehen sind. Die Eingange und mit (pn)markierten Signalverlaufe sind dabei aus dem Tool Logical PetriNet generiert.Die mit (hdl) gekennzeichneten Verlaufe sind die Simulationsergebnisse ausder Xilinx ISE, die mittels Simulation generiert wurden.
5.3 Transformation exemplarischer DCPN 201
Listing 5.17: Schnittstellenbeschreibung des Registers aus Abbildung 5.37.
entity main net i sport (
c lk , en : in s t d l o g i c ;i0 , i 1 : in s t d l o g i c ;o0 , o1 : out s t d l o g i c ) ;
end main net ;
and2b1
FFd1-In3
I0
I1O
and2
FFd1-In11
I0
I1O
or2
FFd1-In21
I0
I1O
FFd1-In_imp:1
FFd1-In_imp
In0
In1
Out1
FFd1:In
and2
FFd2-In11
I0
I1O
and2b1
FFd2-In3
I0
I1O
or2
FFd2-In21
I0
I1O
FFd2-In_imp:1
FFd2-In_imp
In1
In2
Out0
FFd2:In
fd
FFd1
C
QD
fd
FFd2
C
QD
PN0_STATE:1
Clk_FSM
In0
In1
In2
Out0
Out1
FSM_0-parent:1
Clk
In0
In1
In2
Out0
Out1
main_net:1
clk
eni0
i1
o0
o1
Abbildung 5.38: Die mittels der Xilinx ISE generierte Schaltung aus dem mo-dellierten DCPN aus Abbildung 5.37. Dabei kommen zwei Flip-Flops und sechsweitere Zellen zum Einsatz.
Listing 5.18: Die VHDL-Verhaltensbeschreibung des Registers mit Aktivierungs-eingang. Da zeitbehaftete Transitionen im DCPN vorhanden sind, muss es einesequentielle Schaltung sein.
architecture behavior of main net i stype PN0 STATES i s (PN0 0 , PN0 1 , PN0 2 , PN0 3 ) ;signal PN0 STATE, PN0 FOLLOW STATE: PN0 STATES ;beginPN0 STATEMEMORY: process ( c l k )begin
i f c l k = ’1 ’ and clk ’ event thenPN0 STATE <= PN0 FOLLOW STATE;
end i f ;end process PN0 STATEMEMORY;
202 5 Implementierung und Validierung
0.0 5.0 10.0 15.0 20.0 25.0 30.0 35.0 40.0 45.0 50.0Zeit (in ns)
en
i0
i1
(pn) o0
(hdl) o0
(pn) o1
(hdl) o1
Abbildung 5.39: Der Graph zeigt die Simulationsergebnisse des modelliertenDCPN aus Abbildung 5.37 im Tool Logical PetriNet und die Simulationsergebnisseaus der Xilinx ISE. Dabei sind die Eingangssignale fur beide Simulation dieGleichen, die Ausgange des Tools LPN werden mit (pn) und die aus der XilinxISE mit (hdl) markiert.
PN0 FOLLOW: process ( i0 , en , i1 , PN0 STATE )begin
case PN0 STATE i swhen PN0 0 =>
i f ( i 0 = ’0 ’ and en= ’1 ’ and i 1 = ’1 ’) thenPN0 FOLLOW STATE <= PN0 1 ;
e l s i f ( i 0 = ’1 ’ and en= ’1 ’ and i 1 = ’0 ’) thenPN0 FOLLOW STATE <= PN0 2 ;
e l s i f ( i 0 = ’1 ’ and en= ’1 ’ and i 1 = ’1 ’) thenPN0 FOLLOW STATE <= PN0 3 ;
else PN0 FOLLOW STATE <= PN0 0 ;end i f ;
when PN0 1 =>i f ( i 0 = ’0 ’ and en= ’1 ’ and i 1 = ’0 ’) then
PN0 FOLLOW STATE <= PN0 0 ;e l s i f ( i 0 = ’1 ’ and en= ’1 ’ and i 1 = ’0 ’) then
PN0 FOLLOW STATE <= PN0 2 ;e l s i f ( i 0 = ’1 ’ and en= ’1 ’ and i 1 = ’1 ’) then
PN0 FOLLOW STATE <= PN0 3 ;else PN0 FOLLOW STATE <= PN0 1 ;end i f ;
when PN0 2 =>i f ( i 0 = ’0 ’ and en= ’1 ’ and i 1 = ’0 ’) then
PN0 FOLLOW STATE <= PN0 0 ;e l s i f ( i 0 = ’0 ’ and en= ’1 ’ and i 1 = ’1 ’) then
PN0 FOLLOW STATE <= PN0 1 ;e l s i f ( i 0 = ’1 ’ and en= ’1 ’ and i 1 = ’1 ’) then
5.3 Transformation exemplarischer DCPN 203
PN0 FOLLOW STATE <= PN0 3 ;else PN0 FOLLOW STATE <= PN0 2 ;end i f ;
when PN0 3 =>i f ( i 0 = ’0 ’ and en= ’1 ’ and i 1 = ’0 ’) then
PN0 FOLLOW STATE <= PN0 0 ;e l s i f ( i 0 = ’0 ’ and en= ’1 ’ and i 1 = ’1 ’) then
PN0 FOLLOW STATE <= PN0 1 ;e l s i f ( i 0 = ’1 ’ and en= ’1 ’ and i 1 = ’0 ’) then
PN0 FOLLOW STATE <= PN0 2 ;else PN0 FOLLOW STATE <= PN0 3 ;end i f ;
end case ;end process PN0 FOLLOW;PN0 OUTPUT: process ( PN0 STATE )begin
case PN0 STATE i swhen PN0 0 => o0 <= ’0 ’ ; o1 <= ’0 ’ ;when PN0 1 => o0 <= ’0 ’ ; o1 <= ’1 ’ ;when PN0 2 => o0 <= ’1 ’ ; o1 <= ’0 ’ ;when others => o0 <= ’1 ’ ; o1 <= ’1 ’ ;
end case ;end process PN0 OUTPUT;end behavior ;
5.3.5 Arithmetisch Logische Einheit
Als letztes Beispiel fur ein komplexeres Netz, welches mit mehreren Subnet-zen modelliert wird, erfolgt hier die Erstellung einer Arithmetisch LogischenEinheit (ALU, arithmetic logic unit), welche den Kern eines jeden Prozes-sors darstellt. Dabei ist die ALU das Rechenwerk des Prozessors, indemeingehende Operatoren in ein Ergebnis umgewandelt werden. Die Auswahlder gewunschten Operation erfolgt uber Steuerleitungen. Hier soll eine vierBit ALU modelliert werden, um die Transformation ubersichtlich darstellenzu konnen. Breitere Worte sind nach dem selben Schema moglich, aber dieAufteilung sollte dann angepasst werden, da zum Teil große Netze und lange,unubersichtliche maschinell erstellte VHDL-Beschreibungen erzeugt werdenkonnten.Der schematische Aufbau mit den Bezeichnungen wie sie auch im mo-
dellierten Netz verwendet werden ist in Abbildung 5.40 (a) zu sehen. DieEingange der ALU sind die Operanden A und B, die Steuerleitung C undder Ubertrageingang calu. Als Ausgange existieren zum einen das ErgebnisY und zum anderen eine Anzahl Signalleitungen (flags), die Uberlaufe undahnliches anzeigen konnen. Welche Flags genau vorkommen wird im weiteren
204 5 Implementierung und Validierung
Verlauf der Modellierung erklart. Der Aufbau der ALU entspricht im Grobendem aus der Literatur bekannten, wie er unter anderem in [Her06] und[BDM05] zu finden ist.
ALU
Y
Ccalu
BA
flags
(a)
Befehl Ergebnis C
SET A 0000
DEC A− 1 0001
ADD A+B 0010
ADC A+B + (calu) 0011
SET A 0100
INC A+ 1 0101
SUB A−B 0110
SBC A−B − (calu) 0111
SETF 0 1000
SLL 2 ∗A 1001
SRL 1010
SETT −1 1011
NAND A ∧B 1100
AND A ∧B 1101
NOT A 1110
OR A ∨B 1111
(b)
Abbildung 5.40: (a) zeigt den groben Aufbau der Arithmetisch Logischen Einheitmit allen vorhandenen Ein- und Ausgangen. (b) beschreibt den Befehlssatz, dermit der hier modellierten ALU ausgefuhrt werden kann. Dabei sind die Befehle inKurzschreibweise, deren Bedeutung innerhalb der ALU und die Kodierung fur dieSteuereingange C gegeben.
Die erwahnten Steuerleitungen C (c3c2c1c0) teilen die verwendbaren Ope-rationen der ALU in die logischen und arithmetischen Operationen auf,wobei c3 die Umschaltung zwischen den beiden Moglichkeiten steuert. Ei-ne komplette Ubersicht der mit dieser ALU durchfuhrbaren Befehle ist inAbbildung 5.40 (b) zu sehen. Die ALU kann arithmetisch addieren, subtra-hieren, inkrementieren, dekrementieren und den Wert von A setzen. DieOption des Wert von A setzen besteht zweimal, da entweder Null addiertoder minus Null subtrahiert werden kann. Bei den logischen Operationenbesteht die Moglichkeit, das Ergebnis auf true (Eins) oder false (Null) zusetzen. Weiterhin existiert die Verschiebung nach links oder rechts und dievier logischen Operationen nand, and, not und or. In Abbildung 5.41 ist einblockweiser Aufbau der ALU zu sehen. Die in diesem Abschnitt vorgestelltenPetri-Netze bilden jeweils einen Block oder Ubergang des Schaltbildes ab.
5.3 Transformation exemplarischer DCPN 205
In der Arbeit sind alle DCPN als Hauptnetz abgebildet, zur Anwendung inder ALU kommt das jeweils daraus generierte Subnetz als Subtransition.
A B
Yflags
calu c3 c2 c1 c0
Addierer
Logik-Einheit
Shifter
cinB′
Splitterovf, unf, cry
Multiplexer
Abbildung 5.41: Zeigt einen detailierteren Aufbau der ALU aus Abbildung 5.40.Die Ein- und Ausgange der jeweiligen Blocke der ALU sind zu sehen und derenBeschriftung fur die jeweiligen Elemente des Petri-Netzes ist daraus ersichtlich.
Eine ALU berechnet immer alle zur Verfugung stehenden Operationenund am Ausgang wird uber die Steuerleitung und einen Multiplexer ent-schieden welches Ergebnis Y weitergegeben wird. Zur Berechnung sind alsoein Addierer, ein Shifter und eine Logikeinheit zu modellieren, welche inden nachsten Schritten als DCPN modelliert werden. Die Verschaltung derTeilnetze erfolgt am Ende des Abschnitts.
Als erster Schritt erfolgt die Modellierung des Addierers. Hierzu wirdder Volladdierer aus Abbildung 5.24 verwendet. Da ebenfalls die Subtrakti-on durchzufuhren ist, bekommt der Addierer am Eingang fur den zweitenOperanden eine paar zusatzliche Elemente. Diese werden benotigt, um beieiner Subtraktion aus dem zweiten Operanden die Darstellung im Zwei-erkomplement abzuleiten. Dazu muss B invertiert und mit Eins addiert
206 5 Implementierung und Validierung
werden. Die zusatzliche Eins kann dabei auf den cin-Eingang des Addierersgelegt werden. Alle Belegungen der Eingange sind in Tabelle 5.7 zu sehen,hierbei ist der erste Eingang immer Operand A. Beim zweiten kann je nachangelegtem Steuerbefehl B, 0, 1, −1 oder −B anliegen, um die gefordertenarithmetischen Befehle der ALU ausfuhren zu konnen.
Tabelle 5.7: Die Tabelle zeigt die Belegungen der Eingange cin und B′ desAddierers, je nachdem welcher Steuerbefehl und welches Signal calu an der ALUanliegen. Der linke Block der Tabelle zeigt die Belegung fur calu = 0 und der rechtefur calu = 1.
calu c2c1c0 cin b′i calu c2c1c0 cin b′iset 0 000 0 0 1 000 0 0
dec 0 001 0 1 1 001 0 1
add 0 010 0 bi 1 010 0 biadc 0 011 0 bi 1 011 1 biset 0 100 1 1 1 100 1 1
inc 0 101 1 0 1 101 1 0
sub 0 110 1 !bi 1 110 1 !bisbc 0 111 0 !bi 1 111 1 !bi
An der Tabelle ist zu erkennen, dass der Eingang B′, besser gesagt jedes Bitb′i, nur von den Steuerleitungen abhangt und kann uber eine der bekanntenOptimierungsmethoden zu einem booleschen Ausdruck zusammen gefasstwerden. Ebenfalls kann cin als Ausdruck aufgeschrieben werden:
cin = (calu ∧ c1 ∧ c0) ∨ (c2 ∧ (c1 ∨ c0))
b′i = (c2 ∧ ((c1 ∧ c0) ∨ (c1 ∧ bi))) ∨(c2 ∧
((c1 ∧ bi
) ∨ (c1 ∧ c0)))
Diese beiden Gleichungen sind nun als Petri-Netz zu modellieren. DasAufstellen der Gleichungen ist hier erfolgt, damit die Modellierung derkompletten ALU als DCPN durchgefuhrt werden kann. Im Normalfall wirddie vorhandene Gleichung in das modellierte System eingesetzt. Das Ergebnisfur b′i ist in Abbildung 5.42 (a) zu sehen und (b) zeigt das Netz fur cin. Dieverwendeten Subnetze sind Bibliothekselemente fur grundlegende Gatter, diewie in Kapitel 4.1 beschrieben aufgebaut sind. Die VHDL-Beschreibung furden Eingang cin des Addierers ist in Listing 5.19 zu sehen. Neben den Flagsdes Addierers und der fertig modellierten ALU sind die restlichen Listingsund Schaltungen im Anhang zu finden. Mit den modellierten Eingangen lasstsich der vollstandige Addierer der ALU generieren, wobei das resultierendeNetz in Abbildung 5.44 zu sehen ist.
5.3 Transformation exemplarischer DCPN 207
Listing 5.19: Das Listing zeigt die VHDL-Beschreibung fur den modifiziertenEingang cin des Addierers aus Abbildung 5.42 (b). Die weiteren Listings zu diesemBeispiel sind im Anhang zu finden.
entity c in i sport ( c a l u : in s t d l o g i c ;
c 2 , c 1 , c 0 : in s t d l o g i c ;c i n : out s t d l o g i c ) ;
end c in ;
architecture behavior of c in i scomponent or2 i sport ( a , b : in s t d l o g i c ;
y : out s t d l o g i c ) ;end component ;
component and3 i sport ( a , b , c : in s t d l o g i c ;
y : out s t d l o g i c ) ;end component ;
component and2 i sport ( b , a : in s t d l o g i c ;
y : out s t d l o g i c ) ;end component ;
component not1 i sport ( a : in s t d l o g i c ;
y : out s t d l o g i c ) ;end component ;
for or20 : or2 use entity work . or2 ( behavior ) ;for and30 : and3 use entity work . and3 ( behavior ) ;for and20 : and2 use entity work . and2 ( behavior ) ;for not10 : not1 use entity work . not1 ( behavior ) ;for not11 : not1 use entity work . not1 ( behavior ) ;for or21 : or2 use entity work . or2 ( behavior ) ;signal P1 , P2 , P0 , c 1 not , c 0 no t : s t d l o g i c ;
beginor20 : or2 port map( a=>P1 , b=>P2 , y=>c i n ) ;and30 : and3 port map( a=>c a lu , b=>c 1 , c=>c 0 , y=>P1 ) ;and20 : and2 port map( b=>P0 , a=>c 2 , y=>P2 ) ;not10 : not1 port map( a=>c 1 , y=>c 1 no t ) ;not11 : not1 port map( a=>c 0 , y=>c 0 no t ) ;or21 : or2 port map( a=>c 1 not , b=>c 0 not , y=>P0 ) ;
end behavior ;
Die drei zusatzlichen Ausgange des fertig modellierten Petri-Netzes sinddie Flags fur einen Uberlauf (ovf ), Unterlauf (unf ) und das Signal desUbertrags cry des Volladdierers. Die endgultige Ausgabe und Beschreibung
208 5 Implementierung und Validierung
bin
c2
c1
c0
b′i
P0
P1
P2
P3
P4 P5
P6
P7 P8 P9
P10P11
not1
and2
and2
or2
and2
not1
and2
not1 and2 or2
and2
or2
not1
(a)
calu
c2
c1
c0
c1not
c0not
P0
P1
P2
cin
and3
not1
not1
or2
and2
or2
(b)
Abbildung 5.42: (a) zeigt das DCPN fur einen Eingang b′i des Addierers, derabhangig vom eigentlichen Eingang bin und den Steuerleitungen c2, c1 und c0 ist.(b) beschreibt das Netz, welches den Eingang cin des Addierers beschreibt.
der Flags erfolgt weiter hinten in diesem Abschnitt. Die Modellierung derAusgange der Flags des Addierers sind in Abbildung 5.43 zu sehen. Dort istebenfalls die Gleichung zur Bestimmung der Flags angegeben. Die generierteVHDL-Beschreibung ist in Listing A.5 im Anhang zu sehen. Die resultierendeSchaltung ist ebenfalls im Anhang in Abbildung A.2 zu finden.Nachdem der arithmetische Teil der ALU mit dem modifizierten Addie-
rer vollstandig ist und alle gewunschten Operationen durchgefuhrt werdenkonnen, bleibt als nachstes der Shifter, der eine Modellierung als Petri-Netzerhalt. Dabei ubernimmt der Shifter die ersten vier Anweisungen der lo-gischen Einheit. Dies bedeutet, dass ein Wert auf falsch (SETF) oder aufwahr (SETT) gesetzt werden kann. Weiterhin ist der logische Shift nachrechts und links moglich, was einer Multiplikation oder Division mit Zweientspricht. Beim logischen Schieben wird hier immer eine Null eingeschoben.Eine mogliche Modellierung kann uber Multiplexer geschehen, wie Sie
in Abschnitt 5.3.1 vorgestellt wurden. Der Shifter besitzt als Eingang denOperanden A, da logische Operationen im Shifter nur auf einem Operandenarbeiten. Weiterhin werden die Steuerleitungen c1 und c0 benotigt, da diesewie in Abbildung 5.40 (b) zu sehen ist, nur von diesen beiden Leitungen
5.3 Transformation exemplarischer DCPN 209
cn
cn−1 P0
unf
P1 ovf
xor2
and2
not1
and2
cry = cn
ovf = (cn ⊕ cn−1) ∧ cn
unf = (cn ⊕ cn−1) ∧ cn
Abbildung 5.43: Hier ist links modellierte Netz fur die Flags im Addierer zusehen. Der Ubertrag wird direkt aus dem Addierer abgeleitet und dient als Ein-gangssignal. Ein moglicher Unter- oder Uberlauf werden durch dieses Petri-Netz andie Ausgange unf und ovf weitergeleitet. Rechts stehen die booleschen Ausdrucke,die das Verhalten der Flags beschreiben.
P0 P1 P2 P3
P4
caluc0c1c2
a3 a2 a1 a0
P5P6P7ovf
unf
cry
s3 s2 s1 s0
b3 b2 b1 b0
fa fa fa fa
b′i b′i b′i b′icin
adder flags
Abbildung 5.44: Nach der Modellierung der Eingange zeigt die Abbildungden fertig beschriebenen Addierer, die in dieser Ausfuhrung die acht gegebenenSteuerbefehle umsetzen kann.
210 5 Implementierung und Validierung
abhangt. Die generelle Auswahl des Signals erfolgt am Ende des Abschnittsin der Komplettansicht der ALU. Als Ausgang besitzt das Petri-Netz denmodifizierten Operanden Y . Abbildung 5.45 zeigt das fertig modellierteDCPN mit allen Ein- und Ausgangen. Fur die benotigten Wahr- und Falsch-Werte sind Stellen mit oder ohne Marke an die Multiplexer angebunden.
c0
c1y3 y2 y1 y0
a3 a2 a1 a0
P0 P1 P2 P3
P4
P5
P6
P7
P8
P9
mux4zu1 mux4zu1 mux4zu1 mux4zu1
Abbildung 5.45: Der Shifter verwendet als Eingange den Operanden A unddie Steuerleitungen c1 und c0, um die Instruktionen SETF, SETT, SRL, SLL zurealisieren. Als Ausgang existiert der berechnete Operand Y .
Als nachster und letzter großer Block der ALU wird hier die Logik-Einheit vorgestellt. Diese ist dafur zustandig, die gewunschten logischenVerknupfungen der Operanden darzustellen. Hier seien Beispielsweise dievier Optionen nand, and, not, or aufgezeigt, wobei auch andere Operationenmoglich sind. Als Eingange dienen hierbei beide Operatoren A und B unddie Steuerleitungen c1 und c0. Das modellierte Netz ist in Abbildung 5.46 zusehen, wobei der obere Teil des Netzes die logischen Operationen darstellt.Diese werden alle gleichzeitig ausgefuhrt und nur das gewunschte Ergebniswird durch die Multiplexer und Steuerleitungen c1 und c0 im unteren Bereichdes Netzes an den Ausgang weiter geleitet.Nachdem die Berechnungseinheiten alle fertig sind, fehlt noch das Netz,
welches die Flags verarbeitet und zur Verfugung stellt. Dabei sind zum einendie drei Signale des Addierers zu verarbeiten und nur mit ihrem Wert nachaußen zu leiten, wenn eine arithmetische Operation durchgefuhrt wurde, wasuber die Verknupfung mit der Steuerleitung c3 erreicht wird. Als weitere
5.3 Transformation exemplarischer DCPN 211
a3
a2
a1
a0
b 3b 2
b 1b 0
P0
P1
P2
P3
P4
P5
P6
P7
P8
P9
P10
P11
P12
P13
P14
P15
l 3l 2
l 1l 0
c 1c 0
nand2
nand2
nand2
nand2
and2
and2
and2
and2
not
not
not
not
or2
or2
or2
or2
mux4zu1
mux4zu1
mux4zu1
mux4zu1
Abbildung 5.46: Hier ist die Logik-Einheit der ALU zu sehen. Im vorgestelltenInstruktionssatz existieren die Operationen nand, and, not und or. Diese sind imoberen Bereich des Netzes abgebildet. Die Auswahl des Signals erfolgt im unterenBereich uber die dortigen Multiplexer.
212 5 Implementierung und Validierung
Flags sind in dieser ALU noch die Anzeige einer negativen Zahl und dasAusgeben, ob das Ergebnis insgesamt Null ist, implementiert. Abbildung5.47 zeigt das modellierte DCPN fur diese Teilschaltung.
cn ovfin c3y3y2y1
zero neg cry ovf unf
y0
P0
unfin
P: 1
T0
P: 1
T1
and2 and2 and2
notnor4
Abbildung 5.47: Hier ist die Verknupfung und Ausgabe der Flags zu sehen, dabeikommen die drei Flags cry, ovf und unf vom arithmetischen Teil der ALU und diebeiden Flags zro und neg werden direkt vom Ergebnis der ALU abgeleitet. DieSteuerleitung c3 wird einzig dazu verwendet, die arithmetischen Flags nur beimBerechnen einer arithmetischen Operation nach außen weiter zu geben.
Als Hilfselemente ist als letztes noch ein Splitter zu modellieren, der dasErgebnis der Berechnung auf den Ausgang der ALU und die Bestimmungder Flags aufteilt. Dieser ist ebenso wie der Multiplexer zur Auswahl, welcheBerechnung (Logik, Shifter, Addierer) an den Ausgang weitergeleitet werdensoll, im Anhang in den Abbildungen A.9 und A.10 zu finden. Der Multiplexerwahlt dabei abhangig von den Steuerleitungen c3 und c2 die durchzureichendeBerechnung aus.
Zum Schluss mussen die einzeln modellierten Komponenten noch zu einerGesamteinheit zusammen gefasst werden. Hierzu ist das in Abbildung 5.48zu sehende Petri-Netz modelliert worden. Als Eingange existieren die beidenOperanden A und B, die zur Bestimmung des Ergebnisses Y verarbeitetwerden. Die Steuerleitungen C und der Carry-Eingang calu bestimmen diegewunschte Operation Anhand des Instruktionssatzes aus Abbildung 5.40(b). Zusatzlich werden die als letztes erstellten Flags nach außen gefuhrt, umin weiteren Schaltungen gegebenenfalls auf sie reagieren zu konnen. Somitist die ALU fur vier Bit breite Operanden mit insgesamt 16 Instruktionenfertig modelliert und kann so verwendet werden.
In Abbildung 5.49 sind einige Eingangssignale zum Testen der Funktiona-litat der ALU angelegt worden. Die gelieferten Ergebnisse werden zwischendem modellierten Petri-Netz und der resultierenden Schaltung verglichen.
5.3 Transformation exemplarischer DCPN 213
a3 a2 a1 a0 b3 b2 b1 b0
c3
c2
c1
c0
calu
y3 y2 y1 y0
cry
ovf
unf
zro neg
P0
P1
P2
P3
P4 P5 P6
A2
A1
S3
A0
S2A3 S1 S0
L0
L1
L2
L3
M3 M2 M1 M0
adder
flags
logik
shifter
splitter
muxer
Abbildung 5.48: Die Abbildung zeigt die fertig modellierte ALU mit den Operan-den A und B als Eingang und dem Ergebnis Y als Ausgang. Zusatzlich liegen dieSteuerleitungen C an und die Ausgange der Flags werden modelliert. Die restlichenKomponenten sind in den Subnetzen modelliert, die im Verlauf dieses Abschnittserlautert wurden.
214 5 Implementierung und Validierung
0 20 40 60 80 100 120 140 160Zeit (in ns)
c3
c2
c1
c0
calu
a3
a2
a1
a0
b3
b2
b1
b0
Abbildung 5.49: Die Abbildung zeigt einige Testsignale, mit denen die Arithme-tisch Logische Einheit getestet wird. Die Ergebnisse der Ausgange und der Flagssind in den Abbildungen 5.50 und 5.51 zu sehen. Zum Einsatz kommen die inTabelle 5.8 gezeigten Instruktionen.
Dabei kommt die im Anhang befindliche Testbench aus Listing A.13 zumEinsatz. Die nacheinander generierten Befehle sind in Tabelle 5.8 zu sehen.Dabei wird alle 10ns eine neue Instruktion an die ALU angelegt. Die Aus-gangssignale sind in Abbildung 5.50 zu sehen. Das Verhalten der Flags zeigtAbbildung 5.51.
Tabelle 5.8: Hier sind einige der Instruktionen zu sehen, die zum Testen dermodellierten ALU verwendet wurden. Die resultierenden Eingangsbelegungen sindin Abbildung 5.49 dargestellt.
# Instr. A B t in (ns) # Instr. A B t in (ns)
0 ADD 0100 0010 0-10 8 SETF xxxx xxxx 80-90
1 SUB 0110 0100 10-20 9 DEC 1010 xxxx 90-100
2 AND 1100 1010 20-30 10 INC 1110 xxxx 100-110
3 OR 1100 1010 30-40 11 SETT xxxx xxxx 110-120
4 SET 1010 xxxx 40-50 12 NAND 1010 1110 120-130
5 NOT 1010 xxxx 50-60 13 ADD 0100 0100 130-140
6 SRL 0110 xxxx 60-70 14 SUB 1010 0011 140-150
7 SLL 0110 xxxx 70-80 15 SET 1101 xxxx 150-160
5.3 Transformation exemplarischer DCPN 215
Bei der Auswertung der Signale aus dem Tool Logical PetriNet und densimulierten Ergebnissen aus der Xilinx ISE ist in Abbildung 5.50 und 5.51 zusehen, dass in beiden Fallen alle Signale ubereinstimmen. Dabei wurden hiereinige Falle der Tests herausgegriffen, um eine moglichst breite Funktionalitatzu uberprufen.
0 20 40 60 80 100 120 140 160Zeit (in ns)
(pn) y3
(hdl) y3
(pn) y2
(hdl) y2
(pn) y1
(hdl) y1
(pn) y0
(hdl) y0
Abbildung 5.50: Die Abbildung zeigt die Ausgangssignale der ALU. Dabei sindwie in den vorherigen Beispielen auch die Ausgangssignale (pn) des modelliertenPetri-Netzes und die mittels der Xilinx ISE simulierten Signale (hdl) zu sehen.
0 20 40 60 80 100 120 140 160Zeit (in ns)
(pn) cry
(hdl) cry
(pn) ovf
(hdl) ovf
(pn) unf
(hdl) unf
(pn) zro
(hdl) zro
(pn) neg
(hdl) neg
Abbildung 5.51: Hier sind die Ausgange der Flags zu sehen. Dabei sind die Flagsdes DCPN (pn) und die mittels der Xilinx ISE simulierten Signale (hdl) zu sehen.
216 5 Implementierung und Validierung
Exemplarisch ist hier die Addition (0−10ns) der Zahlen Vier und Zwei mitdem Ergebnis Sechs zu sehen. Hierbei ist kein Uberlauf aufgetreten, da beivorzeichenbehafteten Zahlen im Zweierkomplement mit vier Bit Breite derZahlenraum −8 ≤ x ≤ 7 dargestellt werden kann. Bei der zweiten dargestell-ten Addition (130−140ns) wird 4+4 = 8 gerechnet, was nicht mehr fehlerfreidargestellt werden kann. Daher ist das Uberlauf-Flag ovf gesetzt und dasErgebnis Y = 1000. In der Tabelle 5.8 sind die benotigten Eingangssignalefur die jeweiligen Instruktionen zu sehen, wobei nicht benotigte Werte mit xgekennzeichnet sind, da nicht alle Instruktionen ein oder zwei Operatorenbenotigen.
Zur Transformation der ALU sind wie bei den anderen hier vorgestelltenPetri-Netzen 100 Testlaufe durchgefuhrt worden. Die durchschnittliche Zeitbetrug dabei 54 Sekunden.
6 Fazit und Abgrenzung
Im Resumee werden die erzielten Ergebnisse dieser Arbeit mit bisher beste-henden Forschungsarbeiten verglichen, soweit dies moglich ist, und Ansatzefur die Weiterentwicklung der Transformation der DCPN und des ToolsLogical PetriNet werden angefuhrt. Hierzu wird nochmals auf die im Standder Technik gezeigten Verfahren und Forschungsarbeiten verwiesen undexplizit auf Unterschiede und Gemeinsamkeiten eingegangen. Abschließenderfolgt eine Einschatzung der erzielten Ergebnisse.Als erste Arbeit im Bereich der Transformation ist [Doh94] genannt, bei
der es um die inverse Transformation von digitalen Schaltungen in Petri-Netze geht. Dieser Ansatz ist in dieser Arbeit nur angeschnitten worden undkein Kern-Bestandteil. Im Tool Logical PetriNet konnten in der Zukunft Me-thoden implementiert werden, die unter anderem in diesem Paper vorgestelltwurden. Zum anderen kommen farbige Petri-Netze zum Einsatz, die wie inden Grundlagen erwahnt wurde, zu den High-Level Petri-Netzen gehoren.In dieser Arbeit ist der Ansatz moglichst auf Bedingungs-Ereignis-Netzezuruckzugreifen, um diese in spateren Arbeiten zu erweitern. Zusatzlichist in [DHP95] noch die Transformation von Zustandsautomaten in VHDLvorgestellt worden. Dies wurde aus den im Abschnitt 1.1 (Motivation) ge-nannten Grunden hier nicht umgesetzt. Zum einen ist die Einarbeitung inBedingungs-ereignis-Netze weniger aufwendig, als in High-Level Petri-Netze.Zum anderen existieren bereits fertige Losungen, um Zustandsautomaten inVHDL zu beschreiben.
In [PD72] werden die ersten Elemente aus digitalen Schaltungen in Petri-Netz-Form abgebildet und dadurch sind Petri-Netze mit Hilfe dieser ein-gefuhrten Elemente zu uberfuhren. Einige weitere Forschungsgruppen, wiebeispielsweise [YK98] bauen auf diesen Elemente auf und transformierendie Struktur eines Petri-Netzes in die Struktur einer Schaltung, indem Ele-ment fur Element uberfuhrt wird. Unbekannte Strukturen konnen nichttransformiert werden und der Designer des Petri-Netzes muss genau wissen,welche Umwandlungen von Elementen moglich sind. Dagegen steht in dieserArbeit der Ansatz, das Netz als gesamtes zu transformieren und das Verhal-ten des Netzes abzubilden. Der Modellierer benotigt also keine Kenntnissevon erlaubten Elementen und Kombinationen von Elementen. Nachteil des
© Springer Fachmedien Wiesbaden GmbH, ein Teil von Springer Nature 2019C. Brandau, Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets, https://doi.org/10.1007/978-3-658-25244-1_6
218 6 Fazit und Abgrenzung
Transformierens des gesamten Netzes ist eine mogliche Zustandsexplosion,die auftreten kann, wenn Netze immer großer werden. Um dieser Explosionentgegen zu wirken, sind unter anderem die Subnetze eingefuhrt worden,mit deren Hilfe Netzteile separiert modelliert werden konnen und großeNetze aufgeteilt werden konnen. Hierdurch werden zusatzlich auch nochubersichtlichere Netze geschaffen, die durch den Modellierer auf eine gewisseElement-Anzahl begrenzt werden konnen.Das in [PK94] und [WC12] gezeigte Tool CAMAD und System zur
Uberfuhrung von Algorithmen in digitale Hardware konnte fur diese Arbeitnicht zur Anwendung kommen, da nur spezielle Element-Kombinationenvon Petri-Netzen verwendet werden. Dem Designer eines Netzes sollte abermoglichst viel Freiheit bei der Entwicklung eines Netzes gelassen werden.Die Transformation erfolgt bei diesem System ebenfalls uber vorgefertigteElemente, es wird also Struktur in Struktur uberfuhrt.
In der Dissertation [Nin94] wird das Modellieren von Fließbandsystemenmittels Petri-Netzen abgebildet, was so in dieser Arbeit nicht verwendet wer-den kann, da moglichst wenig Einschrankungen bei der Modellierung erfolgensollen und diese Netze nur fur Speziealfalle geeignet sind (Fließbandsysteme).Das Tool Logical PetriNet kann die in der Arbeit von [Nin94] modelliertenPetri-Netze ebenfalls transformieren, wenn diese im PNML-Format ins Pro-gramm geladen werden konnen. Hierzu musste ein Parser geschrieben werden,der die Netze im gewunschten Format bereit stellt. Ein Vergleich ist leidernicht moglich, da in der [Nin94] ein Modell aufgestellt wurde, aber keineImplementierung zuganglich ist. Weiterhin ist in der Dissertation [Sch03]eine formale Verifikation mit Petri-Netzen eingefuhrt worden. Hier wird,wie bei den bisher vorgestellten Verfahren, auf eine Erhaltung der Strukturdes Netzes aufgebaut. Das beschriebene Tool zur Analyse der modelliertenPetri-Netze konnte nicht ausfindig gemacht werden, um die modelliertenNetze mit den Ergebnissen von Logical PetriNet zu vergleichen.
In den Arbeiten [RFH00] und [HF05] erfolgt, wie bei den bisher betrach-teten Veroffentlichungen, die Transformation von einzelnen Elementen ineine Hardwarebeschreibungssprache. In diesem Fall werden die Transitio-nen modelliert und der Zustand des Netzes wird fur jede Stelle einzelnin Variablen gespeichert. Die verwendeten Hardware Petri Nets besitzeneine Kapazitat, durch die Bus-Signale realisiert werden konnen. Zusatzlichbesitzen die Kanten Argumente, uber die bestimmt werden kann, wann dieKante aktiv ist. Diese beiden Eigenschaften sind fur spatere Erweiterungender DCPN wunschenswert.Auch in [SAN06] und [SAG+10] wird die Transformation uber das Um-
wandeln der einzelnen Elemente durchgefuhrt. Hierzu gab es vor allem in
6 Fazit und Abgrenzung 219
den 1990er Jahren einige Arbeiten, die in [Mar98] aufgefuhrt und zusam-mengetragen worden sind. Alle beruhen auf einem ahnlichen Prinzip, indemPetri-Netz-Elemente einzeln transformiert werden und in manchen Arbeitender Zustand des Netzes noch zusatzlich gespeichert werden muss. Dabeiexistieren die Methoden die Stellen oder die Transitionen zu transformieren.In einzelnen Fallen werden auch beide Elementtypen transformiert, umden Zustand des Netzes nicht global speichern zu mussen. Dieser Ansatzder Transformation ist in dieser Arbeit nicht verfolgt worden, da bereitsviele Forschungsarbeiten in diesem Bereich durchgefuhrt worden sind undErgebnisse geliefert haben. Die so erzielten Ergebnisse bieten keinen großenSpielraum fur Optimierungen, weshalb in der hier vorliegenden Arbeit dasgesamte Petri-Netz analysiert und transformiert wird. Das Potential furOptimierungen ist bisher noch nicht voll ausgeschopft und kann in weiterenArbeiten vermehrt betrachtet werden.
In [KEP06] wird der Ansatz SystemC-Modelle in Petri-Netze zu uberfuhrenverwendet, um diese besser analysieren zu konnen. Ansatze hieraus warenein erster Gedanke fur die Transformation von Petri-Netzen. Dies bedeu-tet, fur jedes Schaltelement der Digitaltechnik sollten ein oder mehrereaquivalente Petri-Netze erstellt werden und diese dann in neu modelliertenNetzen gefunden und ersetzt werden. Durch die unzahligen Komponentendigitaler Schaltungen und die Machtigkeit der Modellierungsoptionen derPetri-Netze ist dieser Ansatz verworfen worden, da nur explizit vorgegebeneTeilnetze transformiert werden konnen. Aus diesem Ansatz ist aber die Funk-tionsbibliothek in Logical PetriNet entstanden, die modellierte Netze alsSchaltelement auffasst und diese nach einmaliger Transformation in anderenNetzen verwendet werden konnen.Kombinatorische Logik ist unter anderem in [CG90] simuliert worden,
indem Petri-Netze verwendet wurden. Neben der Einfuhrung einer neuenTransition sind die Grundgatter von Digitalschaltungen abgebildet worden.Der dort verfolgte Ansatz fur Kombinatorik kann nicht ubernommen werden,da in der vorliegenden Arbeit zeitbehaftete Petri-Netze zur Anwendungkommen und sich zusatzlich zu jedem Zeitpunkt die Markierung der Ein-gangsstellen andern kann. Hierzu wurden die Erweiterungen der Abbildungvon Kombinatorik in Petri-Netzen, wie sie in Kapitel 4.1.1 beschrieben sind,eingefuhrt.Das Programm Petrify uberfuhrt Struktur in Struktur und optimiert
diese in einem weiteren Schritt. Dieser Ansatz funktioniert soweit rechtgut und die hier in der Arbeit vorgestellten Algorithmen konnen nicht inallen Fallen ahnlich optimale Schaltungen generieren. Die Bedienung desWerkzeugs dagegen ist vor allem fur Nicht-Entwickler des Tools eher muhsam.
220 6 Fazit und Abgrenzung
Eine graphische Benutzeroberflache zum Modellieren von Petri-Netzen fehltkomplett. In der vorliegenden Arbeit ist die Uberfuhrung von Petri-Netzenals gesamtes und nicht Elementweise, wie im Tool Petrify, durchgefuhrtworden, was in der Zukunft und bei weiteren Optimierungen noch enormesPotential bietet. Hierarchien fehlen in Petrify ebenfalls, wodurch vor allemgroßere Netze in textueller Beschreibung schnell unubersichtlich werden undnicht gut editierbar sind.Ein weiteres Augenmerk liegt im Fazit und der Abgrenzung auf den
drei Forschungsgruppen [WKA+17] [FRG17] [YK98], die im Folgendenaufgegriffen werden, da sie bis heute weitere Veroffentlichungen prasentierenund die Arbeit [YK98] zum Quasi-Standard im Bereich der Transformationvon Petri-Netzen in digitale Schaltungen geworden ist. Bei den drei Gruppenwird jeweils Struktur in Struktur uberfuhrt, wodurch Rucktransformationenleichter moglich sind, aber auch Potential zur Optimierung verloren geht.Die in diesen Arbeiten vorgestellten Methoden und Algorithmen dientenfur diese Arbeit als Grundlage und haben die Entscheidung beeinflusst,nicht den selben Weg der Strukturuberfuhrung zu verwenden. Der Ansatzist, das gesamte Petri-Netz mit erhohtem Aufwand zu analysieren und ausdem gesamten Netz die digitale Schaltung zu generieren, da so zusatzlicheOptimierungsschritte integriert werden konnen.
Allgemein lasst sich festhalten, dass so gut wie alle existierenden Verfahrenund Programme auf die Ansatze von Patil aus den fruhen 1970er Jahrenzuruckzufuhren sind. Dabei wird jeweils Struktur in Struktur uberfuhrt,was den Analyseaufwand gering halt, aber dadurch auch das Potential furOptimierungen verloren geht.Die im Stand der Technik vorgestellten Arten von Subnetzen in Petri-
Netzen hatten ihren Einfluss auf die fur diese Arbeit verwendeten Subnetze.Fur die Verwendung kommen nur Subnetze in Frage, welche die Option bietenmehrere Ein- und Ausgange zu modellieren, wodurch viele hierarchische Petri-Netz-Typen weggefallen sind. Die verbleibenden Netztypen sind im Abschnitt3.1.2 (Subnetze) auf ihre Tauglichkeit hin diskutiert worden. Da aber keineder bisherigen Hierarchiebildungen den notwendigen und wunschenswertenBedingungen fur diese Arbeit entsprechen, sind hier die Substellen undSubtransitionen eingefuhrt worden. Die sich hieraus ergebenen Moglichkeitenzur Modellierung von Schaltungen und deren Wiederverwendung im selbenoder in anderen DCPN wurde im Kapitel zu den Beispielnetzen gezeigt undist ein Bestandteil des Tools Logical PetriNet.Die Erweiterung eines bisherigen Petri-Netz-Typs um die Eingangs- und
Ausgangsstellen hat sich fur die Modellierung von digitalen Schaltungenmittels Petri-Netzen ausgezahlt. Hierdurch ist es fur den Modellierer der
6 Fazit und Abgrenzung 221
Systeme einfach, auf einen Blick alle Schnittstellen zu anderen Komponentenzu erkennen und zu modifizieren. Die in den meisten anderen bisherigenTransformationen vorgestellten Methoden, die Ein- und Ausgange an Tran-sitionen zu platzieren, hat sich vor allem in betreuten Abschlussarbeitenals wenig intuitiv herausgestellt. Weiterhin ist das Aufteilen in Subnetzeein Schritt zur modularen Entwicklung, wobei jeder Entwickler seine Teil-schaltung integrieren kann und diese im letzten Schritt zusammenzufuhrensind. Dabei sind Substellen und Subtransitionen in den neuen Netz-Typder Digital Circuit Petri Nets eingeflossen. Sie sind zur Modellierung qua-si gleichwertig zu verwenden, nur die Verbindungen nach außen erfolgenuber unterschiedliche Netzelemente. Im Zuge der Modellierung diverser Net-ze haben die Subtransitionen den Vorzug bekommen, da hier die gleicheStruktur wie im Hauptnetz vorliegt und somit die Netzverbinder Stellen desaußenliegenden Netzes reprasentieren.
Die Formalisierung des Transformationsprozesses und damit einhergehendeModularisierung hat vor allem bei der Entwicklung des Tools Logical PetriNetgeholfen, da so einzelne Teilschritte einfach getestet werden konnten. Eswurden Testdaten fur jede Strategie angelegt und die erwarteten mit dentatsachlichen Ergebnissen verglichen. Ebenfalls konnten durch den modularenAufbau nicht bedachte Falle erkannt und zusatzliche Strategien relativeinfach in das System integriert werden. Weitere Strategien sind fur folgendeArbeiten auf die gleiche Weise zu integrieren.
Das Vorstellen von einigen kombinatorischen und sequentiellen Schaltungenals Petri-Netz soll es dem zukunftigen Modellierer vereinfachen, selbstandigSchaltungen als Petri-Netz zu designen und diese zu transformieren. Ebenfallssind Vorschlage fur Taktgenerierungen gegeben, falls ein solcher benotigtwird. Hier hat sich herausgestellt, dass bei einem einzigen bekannten Taktam sinnvollsten Transitionen mit eben diesem Takt als Schaltzeit verwendetwerden, da so kein zusatzlicher Aufwand im Netz betrieben werden muss.Einzig bei unterschiedlich vorkommenden Takten ist auf eines der anderenVerfahren zuruckzugreifen.
Ansatz in dieser Arbeit ist die Transformation des gesamten Netzes, mitden Problemen, die hierdurch auftreten konnen. So ist die Zustandsrau-mexplosion bei großen Netzen durch das Aufteilen in mehrere Subnetzeund deren einzelner Transformation vermieden worden. Somit konnen auchkomplexere Systeme als Petri-Netz abgebildet werden und in eine digitaleSchaltung uberfuhrt werden.
Die Erzeugung der Erreichbarkeitsgraphen, die fur die Analyse der Netzenotwendig sind, verdoppelt sich mit jedem weiteren Eingang, der im Netzhinzukommt. Hierdurch wachst der Aufwand fur Netze mit vielen Eingangen
222 6 Fazit und Abgrenzung
drastisch an. Hier hilft das Aufteilen in mehrere Subnetze, da Eingange dienur eine Verbindung zu Subnetzen aufweisen, im Hauptnetz nicht die Anzahlder Erreichbarkeitsgraphen erhohen. Die Marken des Eingangs werden nur andas jeweilige Subnetz weiter gereicht. Methoden, um die Erreichbarkeitsgra-phen nicht mehr aufstellen zu mussen konnten den Transformationsprozesszusatzlich schneller und weniger rechenintensiv gestalten. Ein erster Ansatzist es, bei sequentiellen Netzen nur den eingabeorientierten Erreichbarkeits-graphen zu verwenden, da dieser einmalig fur das gesamte Netz mit allenEingangskombinationen aufgestellt wird. Fur das Erkennen und die Trans-formation von kombinatorischer Logik ist der Erreichbarkeitsgraph nicht zuersetzen, da aus ihm direkt die Wahrheitstabelle erstellt wird.Die in dieser Arbeit modellierten Petri-Netze haben gezeigt, das auch
großere Systeme mittels Subnetzen ubersichtlich dargestellt werden konnen.Die Moglichkeit, diese Netze einmalig zu erstellen und dann immer wieder inweiteren Systemen zu verwenden, erspart bei haufig vorkommenden Netzendie jeweilige Neuimplementierung.Im Tool Logical PetriNet sind kombinatorische und sequentielle Schal-
tungen mit bis zu 24 Eingangen getestet worden und durch verschiedeneOptimierungen im Transformationsprozess sind Zeiten bis maximal vierMinuten zur Transformation aufgetreten. Dabei konnen mehrere Subnetzevorhanden sein. Je kleiner die Netze sind, um so schneller ist die Transfor-mation durchzufuhren. Die getesteten Netze hatten bis zu 200 Knoten proNetz. Bei großeren Netzen ging die Ubersichtlichkeit nach und nach verloren,weswegen dann auf Subnetze zuruckgegriffen worden ist. Die in Abschnitt5.3 gezeigten Petri-Netze haben zur Transformation jeweils die in Tabelle6.1 angegebenen Zeiten benotigt. Das verwendete System ist ebenfalls imvorherigen Abschnitt angegeben.
Als zusatzlicher Gewinn dieser Arbeit ist die Untersuchung von bestehen-den digitalen Schaltungen mittels Petri-Netzen ermoglicht worden. DieserAnsatz ist bisher noch nicht weiter verfolgt worden, kann aber in folgendenArbeiten angegangen werden. Fur jedes Element der digitalen Schaltung wirdein dementsprechendes Petri-Netz benotigt. Diese konnen dann gemaß derSchaltung miteinander verbunden werden. Das so erzeugte Petri-Netz kanndann untersucht werden und, nachdem gewunschte Anderungen durchgefuhrtwurden, wieder in eine digitale Schaltung transformiert werden. Hierbei istdarauf zu achten, dass die neu erzeugte Schaltung andere Bauelemente ver-wenden kann als die bisherige, da keinerlei Informationen uber bestehendeSchaltelemente im Petri-Netz gespeichert werden.
Das Tool Logical PetriNet dient zur Verifizierung des aufgestellten Trans-formationsprozesses und zur Modellierung der Netze in grafischer Form. Dies
6 Fazit und Abgrenzung 223
Tabelle 6.1: Die Tabelle zeigt die Laufzeiten der Transformationen der exempla-rischen Petri-Netze an aus Kapitel 5.3 an. Das verwendete System ist ebenfallsin diesem Kapitel angegeben. Die Versuche wurden bei moglichst gleich starkerAuslastung des Systems getestet. Durch diverse Hintergrundprozesse, die nicht mitin die Betrachtung eingezogen werden konnten, ergaben sich die hier zu sehendenSchwankungen innerhalb der einzelnen Transformationen. Angegeben sind jeweilsdie minimale, durchschnittliche und maximale Laufzeit bei je 100 Testdurchlaufen.
Petri-Netz min ∅ max
Multiplexer 4013ms 5137ms 6261ms
Addierer 5634ms 6001ms 6892ms
Lauflicht 1252ms 1928ms 3145ms
Register 1984ms 3261ms 3872ms
ALU 38s 54s 78s
ist ebenfalls ein Vorteil gegenuber bestehenden Ansatzen, da dort meist Net-ze in textueller Form und einem eigenen Format benotigt werden. Durch denmodularen Aufbau der Transformationschritte und der einzelnen Strategienist eine Erweiterung um neue Strategien oder der Austausch einzelner Strate-gien relativ einfach machbar. Auch das Entfernen von Strategien ist machbar,aber bei so gut wie allen Strategien nicht sinnvoll, da sonst keine korrekteTransformation durchgefuhrt werden kann. Das Tool ist mittels Unit-Testsgetestet worden. Diese Tests sind ebenfalls fur alle weiteren Hauptfunktionendes Programms implementiert worden. Zusatzlich kamen Black-Box-Testszum Einsatz um das Verhalten des gesamten Programms zu untersuchen.Zum Abschluss lasst sich sagen, dass die Transformation mit den bisher
integrierten Petri-Netzen gut funktioniert. Die Erweiterung der Netze zuden DCPN macht die Modellierung zuganglicher und intuitiver, wodurchPersonen ohne Hintergrundwissen des Entwurfs von digitalen Schaltungeneinen moglichst einfachen Einstieg in dieses Gebiet erhalten. Das Tool LogicalPetriNet zeigt die Anwendung der erarbeiteten Strategien und verifiziert denbeschriebenen Transformationsprozess.
7 Zusammenfassung und Ausblick
Als Abschluss sei eine Zusammenfassung der Ergebnisse dieser Arbeit gege-ben, auf die ein Fazit folgt. Beendet wird dieses Kapitel mit einem Ausblickauf mogliche weiterfuhrende Forschungsbereiche im Zusammenhang mitPetri-Netzen und digitalen Schaltungen.
7.1 Zusammenfassung
Die Arbeit liefert als erstes einen Uberblick der Grundlagen zum Thema derPetri-Netze und digitaler Schaltungen, da diese beiden Systeme ineinanderuberfuhrt werden sollen. Weiterhin ist eine Einfuhrung in die hier verwendeteHardwarebeschreibungssprache VHDL gegeben. Anschließend wird der Standder Technik erarbeitet, um die Arbeit einordnen zu konnen. Hier ist aucherwahnt welche Ansatze in diese Arbeit eingeflossen sind.
Zur Transformation von Petri-Netzen in digitale Schaltungen ist in dieserArbeit eine Erweiterung der Bedingungs-Ereignis-Netze definiert worden,die sogenannten Digital Circuit Petri Nets (DCPN ). Dies ist notwendig, dabei der bisherigen Definition keine expliziten Eingange und Ausgange vor-handen sind. Die Eingange besitzen die Eigenschaft, dass ihre Markenanzahlzu vorgegebenen Zeitpunkten geandert werden kann und somit ein neuerZustand des Netzes entsteht.Die Definition ist zusatzlich um Subnetze erweitert worden, um eine
Hierarchie in die Petri-Netzen darzustellen. Alle Subnetze konnen wiederin das Hauptnetz integriert werden, um die Netze auch fur andere Toolsverwendbar zu machen. Bei den Subnetzen ist zwischen der Ersetzung vonStellen und Transitionen zu unterscheiden. Hier sind fur beide Element-TypenErsatzelemente eingefuhrt worden. Dies sind zum einen die Substellen, die alsStelle angesehen werden konnen, zum anderen sind dies die Subtransitionen,die Transitionen ersetzen. Dabei ist keine wirkliche Ersetzung, sondernnur das Verhalten der Kanten zum jeweiligen Subnetztypen gemeint. DieSubtransitionen dienen auch zur Speicherung von einmalig erstellten Petri-Netzen, die dann in weiteren modellierten Netzen zur Anwendung kommenkonnen. Hierdurch konnen eigene Bibliotheken von Schaltelementen als Petri-
© Springer Fachmedien Wiesbaden GmbH, ein Teil von Springer Nature 2019C. Brandau, Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets, https://doi.org/10.1007/978-3-658-25244-1_7
226 7 Zusammenfassung und Ausblick
Netz generiert werden, oder es kann auf Netze anderer Modellierer zuruckgegriffen werden.Zur Verwendung in der Analyse und Simulation sind Eigenschaften zu
erfullen, die in Kapitel 3 erlautert wurden. Dort wird auf deren Anpassungenbezuglich der bisherigen Eigenschaften von Bedingungs-Ereignis-Netzeneingegangen. Die in diesem Kapitel eingefuhrten Definitionen werden in denweiteren Kapiteln verwendet. Die Anpassungen jeder einzelnen Eigenschaftist erlautert worden und kann somit in folgenden Arbeiten verwendet werden.Die Transformation eines DCPN in eine digitale Schaltung erfolgt uber
die Teilschritte:
1. Modellierung des Petri-Netzes
2. Validierung des Netzes
3. Optimierung des Netzes
4. Netzanalyse
5. Synthese
6. Erzeugung der VHDL-Beschreibung
7. Verifikation der erstellten Schaltung
Um die Ubersicht zu wahren sind Entscheidungen, bei denen nur ein Pfaddes Graphen durchlaufen wird, nicht extra kenntlich gemacht. Dies sind dieAufsplittungen des Pfads nach Strategie S24, S25 und S39. Bei S24 undS39 entscheidet der erkannte Schaltungstyp uber die weitere Ausfuhrung.Bei S25 entscheidet die Wahl des Benutzers welche weitergehende Strategieausgefuhrt wird.Im ersten Schritt muss ein DCPN vom Modellierer erstellt werden. Hier-
zu dient das Tool Logical PetriNet, welches beim ModellierungsprozessUnterstutzung bietet. So werden generelle Falschmodellierungen, wie uner-laubte Verbindungen, unterbunden. Auch das mehrfache Verwenden vonschon erzeugten Elementen wird uber das Tool realisiert, indem die erzeugtenNetze als Funktionselemente in der Bibliothek abgespeichert werden konnen.Zusatzlich konnen Netze fur spatere Verwendungen oder die Weitergabegespeichert und geladen werden, wobei das PNML-Format zum Einsatzkommt.Die eigentliche Transformation beginnt nach der Beendigung des Mo-
dellierungsprozesses. Hierzu wird im ersten Schritt eine Validierung desNetzes durchgefuhrt. Diese beinhaltet das Uberprufen auf vorhandene Ein-und Ausgange, wobei Eingange nicht zwingend notwendig sind, Ausgangedagegen schon, da sonst keine sinnvolle Schaltung erzeugt werden kann.
7.1 Zusammenfassung 227
Weiterhin ist das Vorhandensein mindestens einer Transition essentiell, dasonst keinerlei Schaltvorgange im DCPN stattfinden konnen. Ebenso werdenin diesem Schritt mogliche zu loschende Elemente markiert. Einen Abschlussfindet die Validierung darin, dass der sogenannte Zusammenhang uberpruftwird und daraus Teilnetze generiert werden, die ab dem nachsten Schritteinzeln betrachtet werden. Bei der Netzoptimierung sind die im vorherigenSchritt gefundenen zu loschenden Elemente endgultig zu entfernen, wenndafur alle notwendigen Bedingungen zutreffen. Weiterhin konnen paralleleoder in Reihe befindliche Transitionen zusammengefasst werden.Bei der Netzanalyse findet als erstes eine Bestimmung des Netztypen
statt. Dabei ist die Unterscheidung zwischen zeitlos, zeitbehaftet und strengzeitbehaftet vorzunehmen. Zur weiteren Berechnung mussen fur alle Ein-gangskombinationen die Erreichbarkeitsgraphen aufgestellt werden. DieseGraphen sind dann auf das Vorhandensein von Zyklen, die zeitlose Terminie-rung und Zustandsfreiheit zu uberprufen. Weiterhin ist je nach Netztyp eineindeutiger Endzustand oder ein eindeutig definierter Zustand zu bestimmen.Abgeschlossen wird dieser Teilschritt mit dem Bestimmen des Schaltungs-typs aus den vorher durchgefuhrten Strategien, wobei kombinatorische odersequentielle Logik zur Auswahl steht.Die Synthese der Petri-Netze ist in zwei separate Strange aufgeteilt, die
vom erkannten Schaltungstyp abhangen. Bei kombinatorischer Logik istals erstes die Wahrheitstabelle aufzustellen, die aus den bisher erzeugtenErreichbarkeitsgraphen generiert wird. Diese kann so direkt im nachstenSchritt in eine Hardwarebeschreibungssprache ubersetzt werden oder es kanneine Gleichung fur jeden Ausgang aufgestellt werden. Hierzu stehen dieErzeugung der DNF oder eines der Optimierungsverfahren KV-Diagramm,Quine-McCluskey oder Espresso zur Verfugung. Bei den sequentiellen Schal-tungen ist als erstes der Typ zu bestimmen, welcher synchron, asynchronoder eine Mischung daraus beinhalten kann. Zusatzlich muss eine Berechnungdes Taktes erfolgen oder ein vorgegebener Takt kommt zur Anwendung. Ausdiesem ist dann noch der mogliche Fehler fur jede zeitbehaftete Transitionzu bestimmen. Abgeschlossen wird die Logiksynthese mit der Erzeugungdes eingabeorientierten Erreichbarkeitsgraphen und der Durchfuhrung eini-ger Optimierungen, um daraus im nachsten Abschnitt die Beschreibung inVHDL zu realisieren.
Zur Erzeugung der Hardwarebschreibung aus den erzeugten Elementendes letzten Schrittes ist als erstes die Schnittstelle zu erzeugen. Hierzu wirdaus allen ursprunglich vorhandenen Ein- und Ausgangen eine Port-Listegebildet. Fur Kombinatorik ist jeweils entweder die Wahrheitstabelle odereine berechnete Gleichung in Hardware abzubilden. Bei sequentieller Logik
228 7 Zusammenfassung und Ausblick
sind drei Prozesse aufzustellen, wovon einer den Zustand speichert, einer dieZustandsubergange beschreibt und der letzte die Ausgange schreibt.
Den Abschluss findet die Transformation in der Verifikation der Schaltung,indem automatisiert eine Test-Bench erzeugt wird. Diese kann zur Simulationverwendet werden, um dann die Ergebnisse mit denen der Simulation ausdem Tool Logical PetriNet zu vergleichen. Hierzu ist im Tool ein Paket imple-mentiert, welches die Daten der Test-Bench mit den Simulationsergebnissendes DCPN vergleicht. Damit ist die Transformation abgeschlossen und dieerzeugte Schaltung kann zur Anwendung kommen.
Zusatzlich wurde in dieser Arbeit ein Ansatz aufgezeigt, durch den beste-hende Schaltungen in DCPN uberfuhrt werden konnen. Diese Petri-Netzekonnen dann durch die bekannten Analysemethoden untersucht werden. Beider Erkennung von moglichen fehlerhaften Schaltungsbeschreibungen isteine Anpassung des Netzes moglich. Aus diesem veranderten Netz kanndann wieder eine digitale Schaltung generiert werden, die jedoch von derUrsprungsschaltung abweichen kann.
Das in dieser Arbeit entstandene Tool Logical PetriNet dient der Validie-rung des Transformationsprozesses. Es beinhaltet alle Teilschritte von dergraphischen Modellierung eines DCPN, bis zur automatisierten Verifikati-on der digitalen Schaltung. Das Tool ist durch Unit- und Black-Box-Testsauf mogliche Fehler uberpruft worden. Die Zusammenfuhrung aller vorge-stellten Eigenschaften und Strategien in einem Programm erleichtert dieAnwendung.
7.2 Ausblick
Die Ergebnisse dieser Arbeit konnen verwendet werden, um die Forschung inunterschiedliche Richtungen fortzusetzen. Zum einen ist die Moglichkeit derTransformation in Verilog moglich, wobei die Spracheigenheiten beachtetwerden mussen. Fur das eigentliche Erstellen einer digitalen Schaltung istdies nicht notwendig, kann aber hilfreich sein wenn die resultierende Schal-tungen in weiteren Programmen optimiert oder weiterverarbeitet werden soll.Grundlegende Funktionalitaten wie die Beschreibung der Schnittstelle inVerilog sind bereits im Tool Logical PetriNet implementiert. Das Verhaltenmuss noch aus den gegebenen Transformationsschritten extrahiert werdenund ist dem Parser hinzuzufugen.
Die hier gegebene Definition der Digital Circuit Petri Nets lasst maximaleine Marke pro Stelle zu. Dies diente dazu, Netze nah am bisherigen Ent-wurf digitaler Schaltungen zu orientieren. Eine Erweiterung der Definition
7.2 Ausblick 229
auf mehrere Marken pro Stelle ist moglich, aber mit erheblichem Mehrauf-wand bei der Realisierung der Transformation verbunden. Folgende Arbeitenkonnen die hier gegebene Definition erweitern, um beispielsweise Eingangeund Ausgange zu Gruppen zusammen zu fassen. Die so entstehenden Bussekonnen auch innerhalb des Netzes verwendet werden. Die hieraus entste-henden Transformationsschritte sind in einigen Strategien im Tool LogicalPetriNet bereits vorgesehen.
Weiterhin konnen die einzelnen Schritte der Transformation um geeigneteMethoden erweitert werden, um vor allem die Validierung zu verbessernund weitere Moglichkeiten der Optimierung des Netzes zu realisieren. Diebisherige Implementierung lasst es zu, die einzelnen Teilschritte jedes Trans-formationsschritts neu anzuordnen und weitere Elemente hinzuzufugen.
Eine weitere Methode um Teil-Netze in digitale Schaltungen zu uberfuhren,konnte uber Mustererkennung erfolgen. Hierzu sind Referenznetze vorzu-geben, bei deren Auftreten das Teilnetz durch die vorgegebene digitaleSchaltung ersetzt wird. Diese Teilnetze konnten in Subtransitionen zusam-mengefasst werden und fur weitere Schaltungen ihre Anwendung finden.Die Einfuhrung von Eigenschaften der High-Level-Petri-Netze (HLPN)
konnte weitere Vorteile bringen. Hierbei ist auf eine saubere Hierarchiebildungzu achten und darauf, die Teilnetze nicht zu groß werden zu lassen, wie esbei bisherigen Netzen auch schon gilt. Eine Uberfuhrung der HLPN in diebisherige Netzstruktur dieser Arbeit ware wunschenswert, da dann vieleTeilschritte der bisherigen Transformation ubernommen werden konnen.
Ebenfalls ist eine Sammlung an Bibliothekselementen denkbar, die dannvon jedem Modellierer dem Programm hinzugefugt werden konnen. DasHinzufugen von eigenen Elementen zu dieser Sammlung konnte zu einerschnell wachsenden Bibliothek fuhren. Dabei ist darauf zu achten, dass dieeingereichten Netze auf ihre Sinnhaftigkeit gepruft werden. Die verifiziertenBibliothekselemente konnen auf einem zentralen Server zur Verfugung ge-stellt werden, wodurch bei Bedarf die benotigten Schaltungen als Petri-Netzheruntergeladen werden konnen.Ein weiterer Ansatz ware es exponentielle Transitionen mit verteilten
Schaltzeiten in digitalen Schaltungen abzubilden. Hierzu existieren ersteAnsatze fur Zufallszahlengeneratoren in VHDL, die zum Einsatz kommenkonnten. Hierzu sind tiefer gehende Analysen der vorhandenen Hardwarebe-schreibungen durchzufuhren.
Literaturverzeichnis
[Abe12] Dirk Abel. Petri-Netze fur Ingenieure: Modellbildung und Ana-lyse diskret gesteuerter Systeme. Springer, 2012. isbn: 3-642-956-033.
[Ada02] Alexander Adam. SVG. Scalable Vector Graphics. FranzisVerlag, 2002. isbn: 3-772-361-900.
[AKW05] Marian Andrzej Adamski, Andrei Karatkevich und MarekWegrzyn. Design of Embedded Control Systems. Springer, 2005.isbn: 978-0-387-23630-8.
[AM00] M. Adamski und J.L. Monteiro.”From interpreted Petri net
specification to reprogrammable logic controller design“. In:Industrial Electronics, 2000. ISIE 2000. Proceedings of the2000 IEEE International Symposium on. Bd. 1. 2000, 13–19vol.1.
[AM07] S. Ahmad und R. N. Mahapatra.”An Efficient Approach to
On-Chip Logic Minimization“. In: IEEE Transactions on VeryLarge Scale Integration (VLSI) Systems 15.9 (2007), S. 1040–1050.
[AP08] Ivan Auge und Frederic Petrot.”User Guided High Level Syn-
thesis“. In: High-Level Synthesis. Hrsg. von Philippe Coussyund Adam Morawiec. Springer Netherlands, 2008, S. 171–196.isbn: 978-1-4020-8587-1.
[Ash08] Peter J. Ashenden. The Designer’s Guide to VHDL, ThirdEdition (Systems on Silicon). Morgan Kaufmann, 2008. isbn:978-1-558-60674-6.
[Asp03] Jens von Aspern. SPS-Softwareentwicklung mit Petrinetzen.VDE Verlag GmbH, 2003. isbn: 3-800-727-285.
[BA12] A. Bukowiec und M. Adamski.”Synthesis of Petri nets into
FPGA with operation flexible memories“. In: 2012 IEEE15th International Symposium on Design and Diagnostics ofElectronic Circuits Systems (DDECS). 2012, S. 16–21.
© Springer Fachmedien Wiesbaden GmbH, ein Teil von Springer Nature 2019C. Brandau, Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets, https://doi.org/10.1007/978-3-658-25244-1
232 Literaturverzeichnis
[BA13] Arkadiusz Bukowiec und Marian Adamski.”Synthesis of Ma-
cro Petri Nets into FPGA with Distributed Memories“. In:International Journal of Electronics and Telecommunications.De Gruyter, 2013, S. 403–410.
[BBG14] J.P. Barros, I.S. Brito und L. Gomes.”Requirements speci-
fication for controller design - From use cases to IOPT netmodels“. In: Industrial Informatics (INDIN), 2014 12th IEEEInternational Conference on. 2014, S. 207–212.
[BBK89] F. Brglez, D. Bryan und K. Kozminski.”Combinational profiles
of sequential benchmark circuits“. In: Circuits and Systems,1989., IEEE International Symposium on. 1989, 1929–1934vol.3.
[BCH+03] Jonathan Billington u. a.”The Petri Net Markup Language:
Concepts, Technology, and Tools“. English. In: Applicationsand Theory of Petri Nets 2003. Hrsg. von WilM.P. van derAalst und Eike Best. Bd. 2679. Lecture Notes in ComputerScience. Springer Berlin Heidelberg, 2003, S. 483–505. isbn:978-3-540-40334-0.
[BDK01] Eike Best, Raymond Devillers und Maciej Koutny. Petri NetAlgebra (Monographs in Theoretical Computer Science. AnEATCS Series). Springer, 2001. isbn: 978-3-662-04457-5.
[BDM05] Bernd Becker, Rolf Drechsler und Paul Molitor. TechnischeInformatik. Pearson Studium, 2005. isbn: 3-827-370-922.
[BE96] Rajesh K. Bawa und Emmanuelle Encrenaz.”A Tool for Trans-
lation of VHDL Descriptions into a Formal Model and Its App-lication to Formal Verification and Synthesis“. In: Proceedingsof the 4th International Symposium on Formal Techniques inReal-Time and Fault-Tolerant Systems. FTRTFT ’96. London,UK, UK: Springer-Verlag, 1996, S. 471–474. isbn: 3-540-61648-9.
[Bea68] Wilfried de Beauclair. Rechnen mit Maschinen. Vieweg -Braunschweig, 1968.
[Beu03] Klaus Beuth. Digitaltechnik (Elektronik). Vogel, 2003. isbn:3-802-319-583.
Literaturverzeichnis 233
[BG14] J.P. Barros und L. Gomes.”Towards the use of Place/Tran-
sition net tools for analysis of IOPT models“. In: IndustrialElectronics (ISIE), 2014 IEEE 23rd International Symposiumon. 2014, S. 1141–1146.
[BHM+84] Robert K. Brayton, Gary D. Hachtel, C. McMullen und Alber-to L. Sangiovanni-Vincentelli. Logic Minimization Algorithmsfor VLSI Synthesis (The Springer International Series inEngineering and Computer Science). Springer, 1984. isbn:0-898-381-649.
[BK02] Ulrik Brandes und Boris Kopf.”Fast and Simple Horizontal
Coordinate Assignment“. In: Graph Drawing: 9th Internatio-nal Symposium, GD 2001 Vienna, Austria, September 23–26,2001 Revised Papers. Hrsg. von Petra Mutzel, Michael Jungerund Sebastian Leipert. Berlin, Heidelberg: Springer BerlinHeidelberg, 2002, S. 31–44. isbn: 978-3-540-45848-7.
[BK09] Ruben Bartholoma und Frank Kesel. Entwurf von digitalenSchaltungen und Systemen mit HDLs und FPGAs. OldenbourgWissensch.Vlg, 2009. isbn: 3-486-589-768.
[BK12] Falko Bause und Pieter S. Kritzinger. Stochastic Petri Nets:An Introduction to the Theory. Vieweg+Teubner Verlag, 2012.isbn: 3-528-155-353.
[BL10] Jurgen Becker und Hans Martin Lipp. Grundlagen der Di-gitaltechnik. De Gruyter Oldenbourg, 2010. isbn: 978-3-486-59747-9.
[Bos04] Hartmut Bossel. Systeme, Dynamik, Simulation. Books OnDemand, 2004. isbn: 3-833-409-843.
[BPV15] S. Baskar, S. Pavithra und T. Vanitha.”Optimized placement
and routing algorithm for ISCAS-85 circuit“. In: Electronicsand Communication Systems (ICECS), 2015 2nd InternationalConference on. 2015, S. 958–964.
[Bry85] David Bryan.”The ISCAS’85 benchmark circuits and netlist
format“. In: North Carolina State University (1985), S. 25.
[Bry86] R.E. Bryant.”Graph-Based Algorithms for Boolean Function
Manipulation“. In: Computers, IEEE Transactions on C-35.8(1986), S. 677–691. issn: 0018-9340.
234 Literaturverzeichnis
[BSK+05] F. Burns, D. Shang, A. Koelmans und A. Yakovlev.”VERI-
SYN: Tool support for Verilog Asynchronous Synthesis - ATutorial Guide“. In: Technical Report - University of Newcastle.2005.
[BT09] Alexander Barkalov und Larysa Titarenko. Logic Synthesisfor FSM-Based Control Units: 53 (Lecture Notes in ElectricalEngineering). Springer, 2009. isbn: 978-3-642-04308-6.
[BTA+14] A. Bukowiec, J. Tkacz, M. Adamski und R. Wisniewski.”Dual
synthesis of Petri net based dependable logic controllers forsafety critical systems“. In: Human System Interactions (HSI),2014 7th International Conference on. 2014, S. 243–248.
[BTG+13] Arkadiusz Bokowiec, Jacek Tkacz, Tomasz Gratkowski undTomasz Gidlewicz.
”Implementation of Algorithm of Petri
Nets Distributed Synthesis into FPGA“. In: InternationalJournal of Electronics and Telecommunications. De Gruyter,2013, S. 317–324.
[CG90] Dipanwita Roy Chowdhury und Indranil Sen Gupta.”Mo-
delling and simulation of combinational digital circuits usingPetri nets“. In: International Journal of Systems Science 21.8(1990), S. 1503–1513.
[CG91] Francois E. Cellier und Jurgen Greifeneder. Continuous SystemModeling. Springer, 1991. isbn: 0-387-975-020.
[Chu87] T. Chu. Synthesis of Self-Tiled VLSI Circuits from Graph-Theoretic Specifications. Techn. Ber. Cambridge, MA, USA,1987.
[CKK+97] J. Cartadella u. a.”Petrify: A Tool for Manipulating Concur-
rent Specifications and Synthesis of Asynchronous Controllers“.In: Proceeding of the 11th Conference on Design of IntegratedCircuits and Systems. IEICE TRANSACTIONS on Informati-on and Systems. 1997, S. 315–325.
[CKL+95] J. Cortadella, M. Kishinevsky, L. Lavagno und A. Yakov-lev.
”Synthesizing Petri nets from state-based models“. In:
Computer-Aided Design, 1995. ICCAD-95. Digest of Techni-cal Papers., 1995 IEEE/ACM International Conference on.1995, S. 164–171.
Literaturverzeichnis 235
[CPM+11] R. Campos-Rebelo, F. Pereira, F. Moutinho und L. Gomes.
”From IOPT Petri nets to C: An automatic code generatortool“. In: Industrial Informatics (INDIN), 2011 9th IEEEInternational Conference on. 2011, S. 390–395.
[Cun76] W. H. Cunningham.”A network simplex method“. In: Mathe-
matical Programming 11.1 (1976), S. 105–116. issn: 1436-4646.
[DA01] Rene David und Hassane Alla. Discrete, Continous and HybridPetri Nets. Springer Verlag Berlin Heidelberg, 2001. isbn: 978-3-642-10668-2.
[DA11] M. Doligalski und M. Adamski.”Exceptions Handling in Hier-
archical Petri Net Based Specification for Logic Controllers“.In: Systems Engineering (ICSEng), 2011 21st InternationalConference on. 2011, S. 459–460.
[Dav69] Rene David.”Realisation de systemes sequentiels asynchrones
par interconnexion simple de cellules sequentielles identiques“.Diss. Universite Joseph-Fourier - Grenoble, 1969.
[Des91] Hitendra H. Desai.”An Event Scheduling Technique for Digital
Logic Simulation“. In: International Journal in ComputerSimulation 1.1 (1991).
[DHJ+10] Mourad Debbabi u. a. Verification and Validation in SystemsEngineering - Assessing UML/SysML Design Models. 2010.Aufl. Berlin Heidelberg: Springer Science und Business Media,2010. isbn: 978-3-642-15228-3.
[DHP95] Gert Dohmen, Ronald Herrmann und Hergen Pargmann.
”Translating VHDL into functional symbolic finite-statemodels“. In: Formal Methods in System Design 7.1 (1995),S. 125–148.
[DJS93] W. Damm, B. Josko und R. Schlor.”A net-based semantics
for VHDL“. In: Design Automation Conference, 1993, withEURO-VHDL ’93. Proceedings EURO-DAC ’93., European.1993, S. 514–519.
[Doh94] Gert Dohmen.”Petri Nets As Intermediate Representation
Between VHDL and Symbolic Transition Systems“. In: Pro-ceedings of the Conference on European Design Automation.EURO-DAC ’94. Grenoble, France: IEEE Computer SocietyPress, 1994, S. 572–577. isbn: 0-89791-685-9.
236 Literaturverzeichnis
[ElM16] A. H. El-Maleh.”Majority-based evolution state assignment
algorithm for area and power optimisation of sequential cir-cuits“. In: IET Computers Digital Techniques 10.1 (2016),S. 30–36.
[EN98] E. A. Emerson und K. S. Namjoshi.”On model checking
for non-deterministic infinite-state systems“. In: Proceedings.Thirteenth Annual IEEE Symposium on Logic in ComputerScience (Cat. No.98CB36226). 1998, S. 70–80.
[Esc93] Bernhard Eschermann. Funktionaler Entwurf digitaler Schal-tungen: Methoden und CAD-Techniken (Springer-Lehrbuch).Springer, 1993. isbn: 3-540-567-887.
[Feh93] Rainer Fehling.”A concept of hierarchical Petri nets with buil-
ding blocks“. In: Advances in Petri Nets 1993. Bd. 674. LectureNotes in Computer Science. Springer Berlin Heidelberg, 1993,S. 148–168. isbn: 978-3-540-56689-2.
[Fre12] Bernd Rucker Jakob Freund. Praxishandbuch BPMN 2.0. Han-ser, Carl GmbH + Co., 2012. isbn: 3-446-429-867.
[FRG17] R. Feio, J. Rosas und L. Gomes.”Translating IOPT Petri
net models into PLC ladder diagrams“. In: 2017 IEEE Inter-national Conference on Industrial Technology (ICIT). 2017,S. 1211–1216.
[Fri14] Klaus Fricke. Digitaltechnik: Lehr- und Ubungsbuch fur Elek-trotechniker und Informatiker. Springer Vieweg, 2014. isbn:3-834-817-83X.
[Fuj00] Richard M. Fujimoto. Parallel and Distributed SimulationSystems. Wiley-Interscience, 2000. isbn: 0-471-183-830.
[GBC+07] L. Gomes, J.P. Barros, A. Costa und R. Nunes.”The
Input-Output Place-Transition Petri Net Class and Asso-ciated Tools“. In: Industrial Informatics, 2007 5th IEEEInternational Conference on. Bd. 1. 2007, S. 509–514.
[GC09] L. B. Gordon und L. Cartelli.”A complete electrical hazard
classification system and its application“. In: 2009 IEEE IASElectrical Safety Workshop. 2009, S. 1–12.
[GDW+92] D.D. Gajski, N.D. Dutt, A.C.-H. Wu und S.Y.-L. Lin. High- Level Synthesis: Introduction to Chip and System Design.Springer, 1992. isbn: 978-1-461-53636-9.
Literaturverzeichnis 237
[Gre15] Carsten Gremzow. Entwurf digitaler Schaltungen in VHDL.Vorlesungsskript. 2015.
[Gro08] Derk-Jan Grood. TestGoal - Result-Driven Testing. 1. Aufl.Berlin Heidelberg: Springer Science und Business Media, 2008.isbn: 978-3-540-78829-4.
[HB03] Rachid Hamadi und Boualem Benatallah.”A Petri Net-based
Model for Web Service Composition“. In: Proceedings of the14th Australasian Database Conference - Volume 17. ADC ’03.Adelaide, Australia: Australian Computer Society, Inc., 2003,S. 191–200. isbn: 0-909-92595-X.
[Hed13] Ulrich Hedtstuck. Simulation diskreter Prozesse: Methodenund Anwendungen. Springer Vieweg, 2013. isbn: 3-642-348-70X.
[Her06] Helmut Herold. Grundlagen der Informatik. Praktisch - Tech-nisch - Theoretisch. Pearson Studium, 2006. isbn: 3-827-372-16X.
[HF05] Thorsten Hummel und Wolfgang Fengler.”Design of Embed-
ded Control Systems Using Hybrid Petri Nets“. In: Designof Embedded Control Systems. Springer US, 2005, S. 139–149.isbn: 978-0-387-23630-8.
[HJJ+85] Peter Huber, Arne M. Jensen, Leif O. Jepsen und Kurt Jen-sen.
”Towards reachability trees for high-level petri nets“. In:
Advances in Petri Nets 1984. Hrsg. von G. Rozenberg. Berlin,Heidelberg: Springer Berlin Heidelberg, 1985, S. 215–233. isbn:978-3-540-39320-7.
[HJS91] Peter Huber, Kurt Jensen und Robert M. Shapiro.”Hierarchies
in coloured petri nets“. In: Advances in Petri Nets. Hrsg.von Grzegorz Rozenberg. Berlin, Heidelberg: Springer BerlinHeidelberg, 1991, S. 313–341. isbn: 978-3-540-46369-6.
[HKK+09] L.M. Hillah u. a.”The Petri Net Markup Language and
ISO/IEC 15909-2“. In: The 10th International workshopon Practical Use of Colored Petri Nets and the CPN Tools.CPN’09. Paris, 2009, S. 101–120.
238 Literaturverzeichnis
[HKP+10] L. M. Hillah, F. Kordon, L. Petrucci und N. Treves.”PNML
Framework: An Extendable Reference Implementation of thePetri Net Markup Language“. In: Applications and Theoryof Petri Nets: 31st International Conference, PETRI NETS2010, Braga, Portugal, June 21-25, 2010. Proceedings. Hrsg.von Johan Lilius und Wojciech Penczek. Berlin, Heidelberg:Springer Berlin Heidelberg, 2010, S. 318–327. isbn: 978-3-642-13675-7.
[HM04] Goran Herrmann und Dietmar Muller. ASIC - Entwurf undTest. Carl Hanser Verlag, 2004. isbn: 344-6-21709-6.
[HMU11] John E. Hopcroft, Rajeev Motwani und Jeffrey D. Ullman.Einfuhrung in Automatentheorie, Formale Sprachen und Be-rechenbarkeit. Pearson Studium, 2011. isbn: 3-868-940-820.
[Hop06] Bernhard Hoppe. Verilog : Modellbildung fur Synthese undVerifikation. Munchen: Oldenbourg, 2006. isbn: 3-486-580-043.
[Hro14] Juraj Hromkovic. Theoretische Informatik: Formale Sprachen,Berechenbarkeit, Komplexitatstheorie, Algorithmik, Kommuni-kation und Kryptographie. Springer Vieweg, 2014. isbn: 3-658-064-323.
[HYH99] M. C. Hansen, H. Yalcin und J. P. Hayes.”Unveiling the
ISCAS-85 benchmarks: a case study in reverse engineering“.In: IEEE Design Test of Computers 16.3 (1999), S. 72–80.
[IEC13] IEC. Programmable Controller - Programming Languages (IEC61131). 2013.
[IEE06] IEEE. Standard for Verilog Hardware Description Language(IEEE 1364). Standards Department New York. 2006.
[IEE16] IEEE. International Symposium on Circuits and Systems. 2016.url: http://ieee-cas.org/ (aufgerufen am 09. 06. 2016).
[IEE99] IEEE. Standard for VHDL Register Transfer Level Synthesis(IEEE 1076.6). Standards Department New York. 1999.
[Inc16a] Xilinx Inc. Xilinx - ISE Design Suite. 2016. url: www.xilinx.com/products/design- tools/ise- design- suite.html
(aufgerufen am 10. 02. 2016).
[Inc16b] Xilinx Inc. Xilinx - Vivado Design Suite. 2016. url: www.xilinx.com/products/design-tools/vivado.html (aufge-rufen am 10. 02. 2016).
Literaturverzeichnis 239
[Jen92] Kurt Jensen. Coloured petri nets: A high level language forsystem design and analysis. Springer-Verlag Berlin und Hei-delberg GmbH & Co. K, 1992. isbn: 3-540-555-978.
[Jen97] Kurt Jensen. Coloured Petri Nets: Basic Concepts, AnalysisMethods and Practical Use. Volume 2 (Monographs in Theore-tical Computer Science. An EATCS Series). Springer, 1997.isbn: 3-540-582-762.
[JK15] Kurt Jensen und Lars M. Kristensen.”Colored Petri Nets: A
Graphical Language for Formal Modeling and Validation ofConcurrent Systems“. In: Commun. ACM 58.6 (2015), S. 61–70. issn: 0001-0782.
[Kar07] Andrei Karatkevich. Dynamic Analysis of Petri Net-BasedDiscrete Systems (Lecture Notes in Control and InformationSciences). Springer, 2007. isbn: 3-540-714-642.
[Kar08] A. Karatkevich.”On macroplaces in Petri nets“. In: Design
Test Symposium (EWDTS), 2008 East-West. 2008, S. 418–422.
[Kar53] M. Karnaugh.”The map method for synthesis of combinational
logic circuits“. In: Transactions of the American Institute ofElectrical Engineers, Part I: Communication and Electronics72.5 (1953), S. 593–599.
[KB04] Randy H. Katz und Gaetano Borriello. Contemporary LogicDesign (2nd Edition). Pearson, 2004. isbn: 0-201-308-576.
[KB12] A. Kagliwal und S. Balachandran.”Set-Cover Heuristics for
Two-Level Logic Minimization“. In: 2012 25th InternationalConference on VLSI Design. 2012, S. 197–202.
[KDS+95] T. Kozlowski u. a.”Parallel controller synthesis using Petri
nets“. In: Computers and Digital Techniques, IEE Proceedings- 142.4 (1995), S. 263–271.
[KEP06] D. Karlsson, P. Eles und Zebo Peng.”Formal Verification of
SystemC Designs Using a Petri-Net Based Representation“.In: Design, Automation and Test in Europe, 2006. DATE ’06.Proceedings. Bd. 1. 2006, S. 1–6.
[Kes12] Frank Kesel. Modellierung von digitalen Systemen mit Sys-temC: Von der RTL- zur Transaction-Level-Modellierung. Ol-denbourg Wissenschaftsverlag, 2012. isbn: 3-486-705-814.
240 Literaturverzeichnis
[Kes13] Frank Kesel. Entwurf von digitalen Schaltungen und Systemenmit HDLs und FPGAs: Einfuhrung mit VHDL und SystemC.Oldenbourg Wissenschaftsverlag, 2013. isbn: 3-486-731-815.
[Kie15] Christian-Albrechts-Universitat zu Kiel. KIELER Project.2015. url: rtsys.informatik.uni-kiel.de/confluence/display/KIELER (aufgerufen am 11. 10. 2015).
[Koc95] Michael Koch.”Verfahren zur Akzeleration der Simulation
von VHDL-Modellen“. Diss. FernUniversitat Hagen, 1995.
[Koz93] T. Kozlowski.”Petri Net Based CAD Tools for Parallel Con-
troller Synthesis“. Diss. University of Bristol, 1993.
[KP91] Barry T.W. Kwok und Bruno R. Preiss.”Simulating Con-
tinuous Systems with Piecewise-Linear Signals Using TimeWarp“. In: International Journal in Computer Simulation 1.1(1991).
[KQ88] Rainer Konig und Lothar Quack. Petri-Netze in der Steue-rungstechnik. Verlag Technik Berlin, 1988. isbn: 3-341-005-250.
[KS15] Christoph Kecher und Alexander Salvanos. UML 2.5 - Dasumfassende Handbuch. 5. Aufl. Bonn: Rheinwerk Verlag GmbH,2015. isbn: 978-3-836-22977-7.
[KTG+11] G. Kunz, S. Tenbusch, J. Gross und K. Wehrle.”Predicting
Runtime Performance Bounds of Expanded Parallel DiscreteEvent Simulations“. In: 2011 IEEE 19th Annual Internatio-nal Symposium on Modelling, Analysis, and Simulation ofComputer and Telecommunication Systems. 2011, S. 359–368.
[Kun10] Georg Kunz. Modeling and Tools for Network Simulation. Hrsg.von Klaus Wehrle, Mesut Gunes und James Gross. Berlin,Heidelberg: Springer Berlin Heidelberg, 2010. isbn: 3-642-123-309.
[KW01] Michael Kaufmann und Dorothea Wagner. Drawing Graphs:Methds and Models. Springer, 2001. isbn: 978-3-540-42062-0.
[Lak01] Charles Lakos.”Object Oriented Modelling with Object Petri
Nets“. In: Concurrent Object-Oriented-Programming and PetriNets. Bd. 2001. Lecture Notes in Computer Science. 2001, S. 1–37.
[Lak95] Charles Lakos.”From Coloured Petri Nets to Object Petri
Nets“. In: Application and Theory of Petri Nets. Bd. 935.Lecture Notes in Computer Science. 1995, S. 278–297.
Literaturverzeichnis 241
[Law01] Eugene Lawler. Combinatorial Optimization: Networks andMatroids. Dover Books on Mathematics, 2001. isbn: 978-0-486-41453-9.
[Lei06] Christoph Leisegang. Ajax. dPunkt, 2006. isbn: 3-898-644-049.
[Lie05] Hans Liebig. Logischer Entwurf digitaler Systeme. Springer,2005. isbn: 3-540-260-269.
[Lip98] Udo Lipeck. Petrinetze, lineare Algebra und lineare Pro-grammierung: Analyse, Verifikation und Korrektheitsbeweisevon Systemmodellen (Teubner Texte zur Informatik).Vieweg+Teubner Verlag, 1998. isbn: 3-815-423-120.
[LR81] Daniel Lehmann und Michael O. Rabin.”On the Advantages
of Free Choice: A Symmetric and Fully Distributed Solutionto the Dining Philosophers Problem“. In: Proceedings of the8th ACM SIGPLAN-SIGACT Symposium on Principles ofProgramming Languages. POPL ’81. Williamsburg, Virginia:ACM, 1981, S. 133–138. isbn: 0-89791-029-X.
[Mad03] A. Madalinski.”ConfRes: interactive coding conflict resolver
based on core visualisation“. In: Third International Confe-rence on Application of Concurrency to System Design, 2003.Proceedings. 2003, S. 243–244.
[Mar13] A. A. Markov.”An Example of Statistical Investigation of the
Text Eugene Onegin Concerning the Connection of Samplesin Chains“. In: Science in Context (1913), S. 591–600.
[Mar98] Norian Marranghello.”Digital systems synthesis from Petri
net descriptions“. In: DAIMI Report Series 27.530 (1998).issn: 2245-9316.
[MBK+03] A. Madalinski, A. Bystrov, V. Khomenko und A. Yakovlev.
”Visualisation and resolution of encoding conflicts in asynchro-nous circuit design“. In: IEE Proceedings - Computers andDigital Techniques 150.5 (2003), S. 285–293.
[MC79] Carver Mead und Lynn Conway. Introduction to VLSI Systems.Addison-Wesley Pub (Sd), 1979. isbn: 0-201-043-580.
[McC56] E. J. McCluskey.”Minimization of Boolean functions“. In:
The Bell System Technical Journal 35.6 (1956), S. 1417–1444.issn: 0005-8580.
242 Literaturverzeichnis
[Mic94] Giovanni De Micheli. Synthesis and Optimization of DigitalCircuits. McGraw-Hill Higher Education, 1994. isbn: 0-070-163-332.
[MMA03] M. Mann, R. Miranda und A. Alavarado.”Parallel discrete-
event simulation framework“. In: Chilean Computer ScienceSociety, 2003. SCCC 2003. Proceedings. 23rd InternationalConference of the. 2003, S. 41–48.
[Moo06] G. E. Moore.”Cramming more components onto integrated
circuits, Reprinted from Electronics, volume 38, number 8,April 19, 1965, pp.114 ff.“ In: IEEE Solid-State Circuits SocietyNewsletter 11.5 (2006), S. 33–35.
[MR02] Ashok K. Murugavel und N. Ranganathan.”Petri Net Mode-
ling of Gate and Interconnect Delays for Power Estimation“.In: Proceedings of the 39th Annual Design Automation Confe-rence. DAC ’02. New Orleans, Louisiana, USA, 2002, S. 455–460. isbn: 1-58113-461-4.
[Mul11] Jens Muller. Strukturbasierte Verifikation von BPMN-Modellen. Vieweg+Teubner Verlag, 2011. isbn: 3-834-815-713.
[Mur89] T. Murata.”Petri nets: Properties, analysis and applications“.
In: Proceedings of the IEEE 77.4 (1989), S. 541–580. issn:0018-9219.
[MZP05] G. R. Morris, L. Zhuo und V. K. Prasanna.”High-performance
FPGA-based general reduction methods“. In: 13th AnnualIEEE Symposium on Field-Programmable Custom ComputingMachines (FCCM’05). 2005, S. 323–324.
[NIJ+97] A. Narayan u. a.”Reachability analysis using partitioned-
ROBDDs“. In: 1997 Proceedings of IEEE International Con-ference on Computer Aided Design (ICCAD). 1997, S. 388–393.
[Nin94] Duc Thinh Ninh.”Graphendarstellung zum Entwurf digita-
ler Systeme mit Parallel- und Fließbandorganisation“. Diss.Technische Universitat Berlin, 1994.
[NS98] V. A. Nebhrajani und N. Suthar.”Finite state machines: a
deeper look into synthesis optimization for VHDL“. In: Pro-ceedings Eleventh International Conference on VLSI Design.1998, S. 516–521.
Literaturverzeichnis 243
[OC93] S. Olcoz und J.M. Colom.”A Petri Net approach for the
analysis of VHDL descriptions“. In: Correct Hardware Designand Verification Methods. Bd. 683. Lecture Notes in ComputerScience. Springer Berlin Heidelberg, 1993, S. 15–26. isbn:978-3-540-56778-3.
[Pat72] S. S. Patil.”Circuit Implementation of Petri Nets“. In: Struc-
tures Group Memo 73, Project MAC, Massachusetts Instituteof Technology. 1972, S. 1–15.
[PD72] S. S. Patil und J. B. Dennis.”The Description and Realization
of Digital Systems“. In: Digest of Papers of the 6th Annu-al IEEE Computer Scociety International Conference. 1972,S. 223–226.
[Pen86] Zebo Peng.”Synthesis of VLSI Systems with the CAMAD
Design Aid“. In: 23rd ACM/IEEE Design Automation Confe-rence. 1986, S. 278–284.
[Pet62] Carl Adam Petri.”Kommunikation mit Automaten“. Diss.
Universitat Hamburg, 1962.
[PG13] F. Pereira und L. Gomes.”Automatic synthesis of VHDL hard-
ware components from IOPT Petri net models“. In: IndustrialElectronics Society, IECON 2013 - 39th Annual Conferenceof the IEEE. 2013, S. 2214–2219.
[PK94] Zebo Peng und K. Kuchcinski.”Automated transformation
of algorithms into register-transfer level implementations“. In:Computer-Aided Design of Integrated Circuits and Systems,IEEE Transactions on 13.2 (1994), S. 150–166. issn: 0278-0070.
[PMR+12] F. Pereira, F. Moutinho, J. Ribeiro und L. Gomes.”Web based
IOPT Petri net Editor with an extensible plugin architectureto support generic net operations“. In: IECON 2012 - 38thAnnual Conference on IEEE Industrial Electronics Society.2012, S. 6151–6156.
[PNM15] PNML. PNML - Petri Net Markup Language. 2015. url:pnml.org (aufgerufen am 11. 10. 2015).
[PS00] Christos H. Papadimitriou und Kenneth Steiglitz. Combinato-rial Optimization: Algorithms and Complexity. Dover Bookson Computer Science, 2000. isbn: 978-0-486-40258-1.
244 Literaturverzeichnis
[PW12] Lutz Priese und Harro Wimmel. Petri-Netze. Springer, 2012.isbn: 3-540-769-706.
[Qui55] W. V. Quine.”A Way to Simplify Truth Functions“. In: The
American Mathematical Monthly 62.9 (1955), S. 627–631.
[Rei09] Wolfgang Reisig.”Simple Composition of Nets“. In: Applica-
tions and Theory of Petri Nets. Bd. 5606. Lecture Notes inComputer Science. 2009, S. 23–42. isbn: 978-3-642-02423-8.
[Rei10] Wolfgang Reisig. Petrinetze: Modellierungstechnik, Analy-semethoden, Fallstudien (Leitfaden der Informatik). View-eg+Teubner Verlag, 2010. isbn: 3-834-812-900.
[Rei13] Jurgen Reichardt. Lehrbuch Digitaltechnik. OldenbourgWissenschafts Verlag, 2013. isbn: 3-486-727-656.
[Rei83] W. Reisig.”Petri Nets With Individual Tokens“. In: Applica-
tions and Theory of Petri Nets. Hrsg. von Anastasia Pagnoniund Grzegorz Rozenberg. Bd. 66. Informatik-Fachberichte.Springer Berlin Heidelberg, 1983, S. 229–249. isbn: 978-3-540-12309-5.
[RFH00] Patrik Rokyta, Wolfgang Fengler und Thorsten Hummel.
”Electronic System Design Automation Using High Level PetriNets“. In: Hardware Design and Petri Nets. Springer US, 2000,S. 193–204. isbn: 978-1-4419-4969-1.
[Ros80] Elemer E. Rosinger.”Interactive Algorithm for Multiobjective
Optimization“. In: Multiple Criteria Decision Making Theoryand Application: Proceedings of the Third Conference Ha-gen/Konigswinter, West Germany. Hrsg. von Gunter Fandelund Tomas Gal. Berlin, Heidelberg: Springer Berlin Heidelberg,1980, S. 400–404. isbn: 978-3-642-48782-8.
[RU01] Jaan Raik und Raimund Ubar.”Seminconductor Technology,
Design and test Roadmap“. In: Establishment of the VirtualCentre of Excellence for IST RTD in Estonia. Department ofComputer Engineering, Tallinn Technical University, Estonia,2001.
[SAG+10] Viorica Sudacevschi, Victor Ababii, Emilian Gutuleac undValentin Negura.
”HDL Implementation from Petri Nets Des-
cription“. In: 10th International Conference on Developmentand Application Systems. Suceava, Romania, 2010, S. 236–240.
Literaturverzeichnis 245
[SAN06] Viorica Sudacevschi, Victor Ababii und Valentin Negura.”A
Hardware Implementation of Safe Petri Net Models“. In: 8thInternational Conference on Development and ApplicationSystems. Suceava, Romania, 2006, S. 9–14.
[San96] G. Sander.”A fast heuristic for hierarchical Manhattan layout“.
In: Graph Drawing: Symposium on Graph Drawing, GD ’95Passau, Germany. Hrsg. von Franz J. Brandenburg. Berlin,Heidelberg: Springer Berlin Heidelberg, 1996, S. 447–458. isbn:978-3-540-49351-8.
[SBU00] R. Simmonds, R. Bradford und B. Unger.”Applying parallel
discrete event simulation to network emulation“. In: Paralleland Distributed Simulation, 2000. PADS 2000. Proceedings.Fourteenth Workshop on. 2000, S. 15–22.
[SBY03] D. Sokolov, A. Bystrov und A. Yakovlev.”STG optimisation in
the direct mapping of asynchronous circuits“. In: 2003 Design,Automation and Test in Europe Conference and Exhibition.2003, S. 932–937.
[Sch03] Torsten Schober.”Formale Verifikation digitaler Systeme mit
Petrinetzen“. Diss. Friedrich-Schiller-Universitat Jena, 2003.
[Sch93] A. Schwill.”Das Philosophenproblem.“ In: Log in 13.5 (1993),
S. 38–40. issn: 0720-8642.
[Sch97] August-Wilhelm Scheer. Business Process Engineering: Refe-rence Models for Industrial Enterprises. Springer, 1997. isbn:3-540-582-347.
[SF12] Pramod J. Sadalage und Martin Fowler. NoSQL Distilled: ABrief Guide to the Emerging World of Polyglot Persistence.Addison-Wesley Professional, 2012. isbn: 978-0-321-82662-6.
[Sha03] Delong Shang.”Asynchronous Communication Circuits: De-
sign, Test nad Synthesis“. Diss. University of Newcastle uponTyne, 2003.
[SHY+09] N. Su u. a.”Optimistic Parallel Discrete Event Simulation
Based on Multi-core Platform and its Performance Analysis“.In: Complex, Intelligent and Software Intensive Systems, 2009.CISIS ’09. International Conference on. 2009, S. 675–680.
246 Literaturverzeichnis
[SKD16] Bozena Skolud, Damian Krenczyk und Reggie Davidrajuh.
”Solving Repetitive Production Planning Problems. An Ap-proach Based on Activity-oriented Petri Nets“. In: Interna-tional Joint Conference SOCO’16-CISIS’16-ICEUTE’16: SanSebastian, Spain, October 19th-21st, 2016 Proceedings. Hrsg.von Manuel Grana u. a. Cham: Springer International Publis-hing, 2016, S. 397–407. isbn: 978-3-319-47364-2.
[SR12] Bernd Schwarz und Jurgen Reichardt. VHDL-Synthese. Ol-denbourg Wissenschafts Verlag, 2012. isbn: 3-486-716-778.
[SSR+02] Douglas Schmidt, Michael Stal, Hans Rohnert und FrankBuschmann. Pattern-orientierte Software Architektur. dpunktVerlag, 2002. isbn: 3-898-641-422.
[Sta13] Peter H. Starke. Analyse von Petri-Netz-Modellen (Leitfadenund Monographien der Informatik). Vieweg+Teubner Verlag,2013. isbn: 3-519-022-443.
[Sta90] Peter H. Starke. Analyse von Petri-Netz-Modellen. Vie-weg+Teubner Verlag, 1990. isbn: 3-519-022-443.
[Ste12] Chris Rupp Stefan Queins. UML 2 glasklar. Hanser, CarlGmbH + Co., 2012. isbn: 3-446-430-571.
[SY05] D. Sokolov und A. Yakovlev.”Clockless circuits and system
synthesis“. In: IEE Proceedings - Computers and Digital Tech-niques 152.3 (2005), S. 298–316.
[SZT12] Baron Schwartz, Peter Zaitsev und Vadim Tkachenko. HighPerformance MySQL: Optimization, Backups, and Replication.O’Reilly Media, 2012. isbn: 978-1-449-31428-6.
[Tha02] Georg Erwin Thaller. Software-Test: Verifikation und Valida-tion. Heise Heinz, 2002. isbn: 3-882-291-982.
[Uti17] EDA Utils. vhdl2verilog. 2017. url: www.edautils.com/RTLUtils.html (aufgerufen am 09. 01. 2017).
[Val92] Antti Valmari.”A Stubborn Attack on State Explosion“. In:
Form. Methods Syst. Des. 1.4 (1992), S. 297–322. issn: 0925-9856.
[Vei52] E. W. Veitch.”A Chart Method for Simplifying Truth Func-
tions“. In: Proceedings of the 1952 ACM National Meeting(Pittsburgh). ACM ’52. Pittsburgh, Pennsylvania: ACM, 1952,S. 127–133.
Literaturverzeichnis 247
[VPG06] E. Viaud, F. Pecheux und A. Greiner.”An Efficient TLM/T
Modeling and Simulation Environment Based on ConservativeParallel Discrete Event Principles“. In: Proceedings of theDesign Automation Test in Europe Conference. Bd. 1. 2006,S. 1–6.
[WA99] M. Wegrzyn und M. Adamski.”Hierarchical approach for
design of application specific logic controller“. In: IndustrialElectronics, 1999. ISIE ’99. Proceedings of the IEEE Inter-national Symposium on Industrial Electronics. Bd. 3. 1999,1389–1394 vol.3.
[Wak00] John F. Wakerly. Digital Design: Principles and Practices(3rd Edition). Prentice Hall, 2000. isbn: 0-130-898-961.
[WC12] Robert A. Walker und Raul Camposano. A Survey of High-Level Synthesis Systems. Berlin Heidelberg: Springer Scienceund Business Media, 2012. isbn: 978-1-461-53968-1.
[WH10] Neil Weste und David Harris. CMOS VLSI Design: A Circuitsand Systems Perspective (4th Edition). Pearson, 2010.
[Whi11] T. A. White.”Selecting hazards: Good and bad hazard choices
and how to inform them“. In: System Safety, 2011 6th IETInternational Conference on. 2011, S. 1–7.
[WKA+17] R. Wisniewski u. a.”Prototyping of Concurrent Control Sys-
tems With Application of Petri Nets and Comparability Gra-phs“. In: IEEE Transactions on Control Systems Technology99 (2017), S. 1–12.
[Woi12] Roland Woitowitz. Digitaltechnik. Springer-Lehrbuch. Berlin,Heidelberg: Springer-Verlag Berlin Heidelberg, 2012. isbn:978-3-642-20872-0.
[WS63] F. Wanlass und C. Sah.”Nanowatt logic using field-effect
metal-oxide semiconductor triodes“. In: Solid-State CircuitsConference. Digest of Technical Papers. 1963 IEEE Interna-tional. Bd. VI. 1963, S. 32–33.
[WV16] Michael Westergaard und H.M.W. Verbeek. CPN Tools - Co-lored Petri nets Tool. 2016. url: cpntools.org (aufgerufenam 27. 01. 2016).
[Yak98] Alexandre Yakovlev.”Designing Control Logic for Counterflow
Pipeline Processor Using Petri Nets“. In: Form. Methods Syst.Des. 12 (1998), S. 39–71. issn: 0925-9856.
248 Literaturverzeichnis
[YK98] Alexandre Yakovlev und Albert Koelmans.”Petri Nets and
Digital Hardware Design“. In: Hardware Design and PetriNets. 1998, S. 154–236.
[YKS+96] A. V. Yakovlev, A. M. Koelmans, A. Semenov und D. J. Kin-niment.
”Modelling, Analysis and Synthesis of Asynchronous
Control Circuits Using Petri Nets“. In: INTEGRATION: theVLSI Journal 21 (1996), S. 143–170.
[YS08] Svetlana N. Yanushkevich und Vlad P. Shmerko. Introductionto Logic Design. CRC Press, 2008. isbn: 1-420-060-945.
[Zim10] Armin Zimmermann.”Dependability Evaluation of Complex
Systems with TimeNET“. In: Proceedings of the First Work-shop on Dynamic Aspects in Dependability Models for Fault-Tolerant Systems. DYADEM-FTS ’10. Valencia, Spain: ACM,2010, S. 33–34. isbn: 978-1-60558-916-9.
Eigene Veroffentlichungen
[BPT+16] Christoph Brandau, Nils Potthoff, Dietmar Tutsch und Tho-mas Lepich.
”Digital Circuit Petri Nets: A new Petri Net Type
to Describe and Transform Digital Circuits for Product SafetyEngineering“. In: The 6th IEEE International Conference onConsumer Electronics - Berlin. IEEE. Berlin, Deutschland:IEEE, 2016, S. 271–275.
[BPT16] Christoph Brandau, Nils Potthoff und Dietmar Tutsch.”Lo-
gical PetriNet - A Modeling Tool to Describe and TransformPetri Nets into Digital Circuits“. In: ESM 2016 - 30th Euro-pean Simulation and Modeling Conference. Eurosis-ETI, 2016,S. 104–108.
[BT17] Christoph Brandau und Dietmar Tutsch.”A new Method to
Transform Petri Nets to Digital Circuits using Input-DrivenReachability Graphs“. In: ESM’2017 - 31th European Simu-lation and Modeling Conference. Eurosis-ETI, 2017, S. 301–307.
Literaturverzeichnis 249
[BT18] Christoph Brandau und Dietmar Tutsch.”Logical PetriNet
- A Tool to Model Digital Circuit Petri Nets and Transformthem into Digital Circuits“. In: Measurement, Modeling andEvaluation of Computer Systems - 19th International GI/ITGConference, MMB 2018. Springer - Lecture Notes in ComputerScience, 2018, S. 317–321.
[LRM+16] Thomas Lepich, Robert Roth, Reinhard Moller und Chri-stoph Brandau.
”Semi-automated Sanitizing of Component
Dependencies after Subsystem Reconfiguration in MultimodalVR and AR Frameworks“. In: The 6th IEEE InternationalConference on Consumer Electronics - Berlin. IEEE. Berlin,Deutschland: IEEE, 2016.
[PBG+15] Nils Potthoff, Christoph Brandau, Carsten Gremzow und Diet-mar Tutsch.
”Data and Control Flow Visualization by Transfor-
ming Software into Schematic Diagrams“. In: The 15th MiddleEastern Simulation and Modelling Multiconference (MESM) -The 5th GAMEON-ARABIA Conference. Eurosis-ETI, 2015,S. 20–27. isbn: 978-90-77381-87-8.
[PGB+15a] Nils Potthoff, Carsten Gremzow, Christoph Brandau und Diet-mar Tutsch.
”Function Slices: A Model to Extract Parallelism
from Sequential Applications“. In: ESM 2015 - The 2015 Euro-pean Simulation and Modeling Conference. Eurosis-ETI, 2015,S. 122–129.
[PGB+15b] Nils Potthoff, Carsten Gremzow, Christoph Brandau und Diet-mar Tutsch.
”Performance Increase by Software Decomposition
with Characteristics of Combinational Logic“. In: Proceedingsof the 10th International Conference on P2P, Parallel, Grid,Cloud and Internet Computing (3GPCIC) 2015. 2015.
[PGB+16] Nils Potthoff, Carsten Gremzow, Christoph Brandau und Diet-mar Tutsch.
”A New Approach to Mapping Software to Co-
processor Circuits“. In: 2016 IEEE International Conferenceon Consumer Electronics. IEEE. Las Vegas, USA: IEEE, 2016.
Betreute Abschlussarbeiten
[Aga17] Gulnara Agalyyeva.”Entwicklung und Realisierung einer Da-
tenbank samt grafischer Benutzerschnittstelle zur automati-
250 Literaturverzeichnis
sierten Praktikums- und Prufungserfassung“. Bachelor-Thesis.Bergische Universitat Wuppertal, 2017.
[AlO18] Firas Al-Omari.”Datenerfassung und -verarbeitung zur Or-
ganisation und Durchfuhrung von Prufungen mittels Objek-terkennung durch eine Smartphonekamera“. Bachelor-Thesis.Bergische Universitat Wuppertal, 2018.
[Bay18] Gurbet Baytemur-Hayran.”Entwicklung und Implementierung
von deterministischen und stochastischen Petri-Netzen imTool Logical PetriNet“. Master-Thesis. Bergische UniversitatWuppertal, 2018.
[Bod16] Nico Bodde.”Entwurf und Implementierung einer GUI zur
Steuerung eines Heimautomatisierungs-Systems auf einemRaspberry PI“. Bachelor-Thesis. Bergische Universitat Wup-pertal, 2016.
[Cak15] Resul Cakan.”Erweiterung bestehender Petri-Netze um zeit-
lich veranderliche Eingangsstellen“. Bachelor-Thesis. BergischeUniversitat Wuppertal, 2015.
[Cie14] Philipp Ciernio.”SPS-gesteuerte Simulation eines Aluminium-
ofens mit Kuhlsystem“. Bachelor-Thesis. Bergische UniversitatWuppertal, 2014.
[Dei16] Vanessa Deichmann.”Transformation von Petri-Netzen in
Hardwarebschreibungssprachen zur Erzeugung digitaler Schal-tungen fur kombinatorische und sequentielle Logik“. Bachelor-Thesis. Bergische Universitat Wuppertal, 2016.
[Dre17] Sascha Dreier.”Entwurf und Prototyp-Entwicklung eines Da-
tenhandschuhs“. Master-Thesis. Bergische Universitat Wup-pertal, 2017.
[Ged18] Kamber Gedic.”Partiell rekonfigurierbare FPGA-Bewegungs-
steuerung eines sechsbeinigen Lauf-Roboters“. Master-Thesis.Bergische Universitat Wuppertal, 2018.
[Hos16] Mario Hosnjak.”Erweiterung der GUI zur effizienten An-
zeige und Bearbeitung mehrerer komplexer Petri-Netze imProgramm Logical PetriNet“. Bachelor-Thesis. Bergische Uni-versitat Wuppertal, 2016.
[Jae15] Jan-Gerrit Jaeger.”Entwicklung einer universellen Export-
schnittstelle digitaler Petri-Netze“. Bachelor-Thesis. BergischeUniversitat Wuppertal, 2015.
Literaturverzeichnis 251
[Jae17] Jan-Gerrit Jaeger.”Entwurf und Realisierung einer Hard-
und Software-Losung zum Kartografieren von unbekanntemGelande auf Basis eines PhantomX MKIII“. Master-Thesis.Bergische Universitat Wuppertal, 2017.
[Kam18] Michel Roslin Kamga Djeumo.”Realisierung einer Roboter-
steuerung fur einen PhantomX MKIII mittels geeigneter Algo-rithmen“. Bachelor-Thesis. Bergische Universitat Wuppertal,2018.
[Kas17] Dorothee Kasmaier.”Realisierung einer Software und Daten-
bank zur automatisierten regelbasierten Prufungsplanung“.Master-Thesis. Bergische Universitat Wuppertal, 2017.
[Kat17] Nadezda Katraeva.”Biometrik fur Augmented- und Virtual
Reality-Anwendungen“. Master-Thesis. Bergische UniversitatWuppertal, 2017.
[Kli17] Schandor Klimek.”Realisierung eines Frameworks samt
Plugins und einer Datenbank zur automatisierten Pru-fungserfassung und -Auswertung“. Master-Thesis. BergischeUniversitat Wuppertal, 2017.
[Koh15] Jan Timo Robbi Kohler.”Transformation von Zwischencode
in eine Hochsprache zur Analyse von Datenflussen“. Master-Thesis. Bergische Universitat Wuppertal, 2015.
[Loh16] Simon Lohmann.”Realisierung eines kombinierten
FPGA/CPU-Systems zur Echtzeit-Erkennung polyphongespielter Instrumentaltone aus einkanaligem Audiomaterialam Beispiel E-Gitarre“. Master-Thesis. Bergische UniversitatWuppertal, 2016.
[Low14] Lilianne Lowe.”Entwicklung eines Petri-Netz-Simulati-
onskerns zur Modellierung digitaler Logik“. Bachelor-Thesis.Bergische Universitat Wuppertal, 2014.
[Mah16] Nisanth Mahendrarajah.”Implementierung und Vergleich
von Algorithmen zur Minimierung von Wahrheitstabellen“.Bachelor-Thesis. Bergische Universitat Wuppertal, 2016.
[Mus17] Bartosz Musiol.”Objekterkennung und Klassifizierung mittels
einer 3D-Kamera“. Bachelor-Thesis. Bergische UniversitatWuppertal, 2017.
252 Literaturverzeichnis
[Nan18] Dimitri Tegomo Nanfack.”Entwurf und Implementierung eines
C-Debuggers auf Ausdrucksebene“. Bachelor-Thesis. BergischeUniversitat Wuppertal, 2018.
[Nie14] Florian Niermann.”Entwurf einer Petri-Netz-GUI zur Darstel-
lung digitaler logischer Funktionen“. Master-Thesis. BergischeUniversitat Wuppertal, 2014.
[Pur14] Thomas Pursche.”Messdatenerfassung und Korrelationsaus-
wertung von Temperaturen und Wandstarken in Alumini-umofen“. Master-Thesis. Bergische Universitat Wuppertal,2014.
[Rau16] Christoph Raudies.”Entwicklung und Implementierung eines
parallelisierten Simulationskerns im Tool Logical PetriNet“.Bachelor-Thesis. Bergische Universitat Wuppertal, 2016.
[Ric17] Pascal Richter.”Entwurf und Entwicklung einer Virtual-
Reality-Anwendung zur Darstellung von kartografiertemGelande mittels WebVR“. Master-Thesis. Bergische Univer-sitat Wuppertal, 2017.
[Rog15] Dawid Rogocz.”Optimierte Platzierung und Anzeige von kom-
plexen Petri-Netzen“. Master-Thesis. Bergische UniversitatWuppertal, 2015.
[Ruß16] Bjorn Rußmann.”Entwurf und Implementierung einer Perso-
nendetektion anhand eines Infrarot Warmesensors“. Bachelor-Thesis. Bergische Universitat Wuppertal, 2016.
[Sch14] Martin Schroder.”Visualisierung von Kontroll- und Daten-
flussabhangigkeiten in komplexen Softwaresystemen“. Master-Thesis. Bergische Universitat Wuppertal, 2014.
[Sch18] Oliver Schonfeld.”Realisierung und Erweiterung eines Frame-
works einschließlich Plugins und einer Datenbank zur automa-tisierten Prufungserfassung und -auswertung“. Master-Thesis.Bergische Universitat Wuppertal, 2018.
[Shi18] Guannan Shi.”Validierung des Tools Logical PetriNet mittels
geeigneter Fallbeispiele“. Bachelor-Thesis. Bergische Univer-sitat Wuppertal, 2018.
[Ste15] Marco Steinbrink.”Entwicklung eines Simulationskerns zur
Auswertung digitaler Petri-Netze“. Bachelor-Thesis. BergischeUniversitat Wuppertal, 2015.
Literaturverzeichnis 253
[Ste17] Marco Steinbrink.”Entwurf und Realisierung eines Systems
zur autonomen Bewegung eines PhantomX MKIII und zurKartografierung eines Gebiets“. Master-Thesis. Bergische Uni-versitat Wuppertal, 2017.
[Sto18] David Stoter.”Erkennung von Hindernissen und Abgrunden
auf Basis eines PhantomX MKIII zur Kartografierung unbe-kannten Gelandes“. Bachelor-Thesis. Bergische UniversitatWuppertal, 2018.
[Tum15] Jonas Tummoszeit.”Zeitbehaftete Erweiterung bestehender
Petri-Netze zur Simulation digitaler Schaltungen“. Bachelor-Thesis. Bergische Universitat Wuppertal, 2015.
[Uec17a] Lars Uecker.”Entwurf sowie Machbarkeitsstudie einer hard-
warebasierten automatisierten Positionslokalisierung auf Basisvon akustischen Schalllaufzeitdifferenzen“. Master-Thesis. Ber-gische Universitat Wuppertal, 2017.
[Uec17b] Sven Uecker.”Entwurf einer i.Mx6-basierten Hardwareentwick-
lung und Softwareimplementierung eines Flight Controlboardzur Steuerung einer Quadrokopter-Drohne“. Master-Thesis.Bergische Universitat Wuppertal, 2017.
Anhang
Im Anhang sind die in der Arbeit zusatzlich verwendent VHDL-Beschreibungen und generierten Schaltungen aus den transformiertenPetri-Netzen zu finden. Begonnen wird mit einer Auflistung einigergrundlegender Gatter, gefolgt von einer synthetisierten Schaltung desRegisters. Die transformierten VHDL-Beschreibungen der ArithmetischLogischen Einheit schließen die digitalen Schaltungen ab. Als letztes ist dasPNML-Schema abgebildet, in dem die DCPN gespeichert werden.
Grundlegende Gatter
Zum Aufzeigen der generierten VHDL-Beschreibungen finden sich hier diedrei grundlegenden Gatter and (Listing A.1), or (Listing A.2) und not(Listing A.3) mit entity und architecture. Fur alle drei Elemente wurde dieWahrheitstabelle als Ergebnis der Transformation ausgewahlt. Auf gleicheWeise werden die restlichen grundlegenden Gatter generiert.
Listing A.1: Durch LPN generierte Darstellung eines and-Gatters mit zweiEingangen mittels der Berechnung der Wahrheitstabelle.
entity and2 i sport ( b , a : in s t d l o g i c ;
y : out s t d l o g i c ) ;end and2 ;
architecture behavior of and2 i ssignal and2 concat : s t d l o g i c v e c t o r ( 1 downto 0 ) ;
beginand2 concat <= b & a ;
and2 : process ( and2 concat )begin
case and2 concat i swhen ”00” => y <= ’0 ’ ;when ”01” => y <= ’0 ’ ;when ”10” => y <= ’0 ’ ;when others => y <= ’1 ’ ;
end case ;end process and2 ;end behavior ;
© Springer Fachmedien Wiesbaden GmbH, ein Teil von Springer Nature 2019C. Brandau, Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets, https://doi.org/10.1007/978-3-658-25244-1
256 Anhang
Listing A.2: Durch LPN generierte Darstellung eines or-Gatters mit zweiEingangen mittels der Berechnung der Wahrheitstabelle.
entity or2 i sport ( b , a : in s t d l o g i c ;
y : out s t d l o g i c ) ;end or2 ;
architecture behavior of ord2 i ssignal or2 concat : s t d l o g i c v e c t o r ( 1 downto 0 ) ;
beginor2 concat <= b & a ;
or2 : process ( o r2 concat )begin
case or2 concat i swhen ”00” => y <= ’0 ’ ;when ”01” => y <= ’1 ’ ;when ”10” => y <= ’1 ’ ;when others => y <= ’1 ’ ;
end case ;end process or2 ;end behavior ;
Listing A.3: Durch LPN generierte Darstellung eines NOT-Gatters mit einemEingang mittels der Berechnung der Wharheitstabelle.
entity not1 i sport ( a : in s t d l o g i c ;
y : out s t d l o g i c ) ;end not1 ;
architecture behavior of not1 i sbeginnot1 : process ( a )begin
case a i swhen ’ 0 ’ => y <= ’1 ’ ;when others => y <= ’0 ’ ;
end case ;end process not1 ;end behavior ;
Anhang 257
Register
Abbildung A.1: Die generierte Schaltung aus dem modellierten Petri-Netz ausAbbildung 5.37 in Vivado. Die Schaltung besteht aus insgesamt 23 Zellen.
i1 en i0 clk
i1_i R
TL_
MU
X
O
S
I0S
=1'
b0
PN
0_F
OLL
OW
_ST
AT
E2_
i
RT
L_A
ND
I0 I1O
PN
0_F
OLL
OW
_ST
AT
E0_
i
RT
L_A
ND
I0 I1O
PN
0_F
OLL
OW
_ST
AT
E1_
i
RT
L_A
ND
I0 I1O
i0_i R
TL_
MU
X
OI0
S=
2'b1
0
S[1
:0]
PN
0_F
OLL
OW
_ST
AT
E_i
__1
RT
L_M
UX
S
I0[1
:0]
S=
1'b1
I1[1
:0]
V=
B"0
1", S
=de
faul
tO
[1:0
]
PN
0_F
OLL
OW
_ST
AT
E_i
__4
RT
L_M
UX
S
I0[1
:0]
S=
1'b1
I1[1
:0]
V=
B"1
0", S
=de
faul
tO
[1:0
]
PN
0_F
OLL
OW
_ST
AT
E_i
__7
RT
L_M
UX
S
I0[1
:0]
V=
B"1
0", S
=1'
b1
I1[1
:0]
S=
defa
ult
O[1
:0]
PN
0_F
OLL
OW
_ST
AT
E1_
i__0
RT
L_A
ND
I0 I1O
PN
0_F
OLL
OW
_ST
AT
E_i
RT
L_M
UX
S
I0[1
:0]
V=
B"1
0", S
=1'
b1
I1[1
:0]
S=
defa
ult
O[1
:0]
PN
0_F
OLL
OW
_ST
AT
E_i
__2
RT
L_M
UX
S
I0[1
:0]
V=
B"1
0", S
=1'
b1
I1[1
:0]
S=
defa
ult
O[1
:0]
PN
0_F
OLL
OW
_ST
AT
E_i
__5
RT
L_M
UX
S
I0[1
:0]
V=
B"0
1", S
=1'
b1
I1[1
:0]
S=
defa
ult
O[1
:0]
PN
0_F
OLL
OW
_ST
AT
E_i
__8
RT
L_M
UX
S
I0[1
:0]
V=
B"0
1", S
=1'
b1
I1[1
:0]
S=
defa
ult
O[1
:0]
PN
0_F
OLL
OW
_ST
AT
E1_
i__1
RT
L_A
ND
I0 I1O
PN
0_F
OLL
OW
_ST
AT
E_i
__0
RT
L_M
UX
S
I0[1
:0]
V=
B"0
1", S
=1'
b1
I1[1
:0]
S=
defa
ult
O[1
:0]
PN
0_F
OLL
OW
_ST
AT
E_i
__3
RT
L_M
UX
S
I0[1
:0]
S=
1'b1
I1[1
:0]
S=
defa
ult
O[1
:0]
PN
0_F
OLL
OW
_ST
AT
E_i
__6
RT
L_M
UX
S
I0[1
:0]
S=
1'b1
I1[1
:0]
S=
defa
ult
O[1
:0]
PN
0_F
OLL
OW
_ST
AT
E_i
__9
RT
L_M
UX
S
I0[1
:0]
S=
1'b1
I1[1
:0]
S=
defa
ult
O[1
:0]
PN
0_F
OLL
OW
_ST
AT
E_i
__10
RT
L_M
UX
I0[1
:0]
S=
2'b0
0
I1[1
:0]
S=
2'b0
1
I2[1
:0]
S=
2'b1
0
I3[1
:0]
S=
2'b1
1
O[1
:0]
S[1
:0]
PN
0_S
TA
TE
_reg
[1:0
]
RT
L_R
EG
C
DQ
o0_i R
TL_
MU
X
I0S
=2'
b00
I1S
=2'
b01
I2S
=2'
b10
I3S
=de
faul
t
O
S[1
:0] o1
_i RT
L_M
UX
I0S
=2'
b00
I1S
=2'
b01
I2S
=2'
b10
I3S
=de
faul
t
O
S[1
:0]
o0 o1
10
01
258 Anhang
Arithmetisch Logische Einheit
Die fehlenden VHDL-Beschreibungen der Arithmetisch Logischen Einheitaus Kapitel 5.3.5 finden hier ihre Auflistung. Dabei sind zusatzliche einigeder resultierenden Schaltungen angegeben.
Abbildung A.2: Die Abbildung zeigt den Eingang cin des Addierers aus Listing5.19 mittels der Synthese in der Xilinx ISE.
Abbildung A.3: Die Abbildung zeigt die VHDL-Beschreibung fur den Eingangdes zweiten Operanden in den Addierer. Somit kann der Addierer zusatzlich zumSubtrahieren verwendet werden.
not1
not10
ya
not1
not11
ya
or21
or21
a
b
y
and31
and30
a
b
c
y
and21
and20
a
b
y
or21
or20
a
b
y
cin:1
cin
c_alu
c_0
c_1
c_2
c_in
not1
not12
ya
not1
not11
ya
and21
and24
a
b
y
and21
and25
a
b
y
and21
and22
a
b
y
and21
and23
a
b
y
or21
or22
a
b
y
or21
or21
a
b
y
not1
not10
ya
and21
and21
a
b
y
and21
and20
a
b
y
or21
or20
a
b
y
bi:1
b_in
c_0
c_1
c_2
b_i
Anhang 259
Listing A.4: Die VHDL-Beschreibung eines Eingangs von Operand B, um mittelsdes Addierers Subtrahieren zu konnen, oder Operand A mit 0, 1 oder -1 zu addieren.
entity bi i sport ( c 2 , b in , c 1 , c 0 : in s t d l o g i c ;
b i : out s t d l o g i c ) ;end bi ;
architecture behavior of bi i scomponent or2 i sport ( b , a : in s t d l o g i c ;
y : out s t d l o g i c ) ;end component ;
component and2 i sport ( b , a : in s t d l o g i c ;
y : out s t d l o g i c ) ;end component ;
component not1 i sport ( a : in s t d l o g i c ;
y : out s t d l o g i c ) ;end component ;
for or20 : or2 use entity work . or2 ( behavior ) ;for and20 : and2 use entity work . and2 ( behavior ) ;for and21 : and2 use entity work . and2 ( behavior ) ;for not10 : not1 use entity work . not1 ( behavior ) ;for or21 : or2 use entity work . or2 ( behavior ) ;for or22 : or2 use entity work . or2 ( behavior ) ;for and22 : and2 use entity work . and2 ( behavior ) ;for and23 : and2 use entity work . and2 ( behavior ) ;for and24 : and2 use entity work . and2 ( behavior ) ;for and25 : and2 use entity work . and2 ( behavior ) ;for not11 : not1 use entity work . not1 ( behavior ) ;for not12 : not1 use entity work . not1 ( behavior ) ;for not13 : not1 use entity work . not1 ( behavior ) ;
signal P5 , P10 , P4 , P3 , P9 , P1 : s t d l o g i c ;signal P2 , P6 , P8 , P0 , P11 , P7 : s t d l o g i c ;
beginor20 : or2 port map( b=>P5 , a=>P10 , y=>b i ) ;and20 : and2 port map( b=>P4 , a=>P3 , y=>P5 ) ;and21 : and2 port map( a=>P9 , b=>c 2 , y=>P10 ) ;not10 : not1 port map( a=>c 2 , y=>P4 ) ;or21 : or2 port map( a=>P1 , b=>P2 , y=>P3 ) ;or22 : or2 port map( a=>P6 , b=>P8 , y=>P9 ) ;and22 : and2 port map( b=>c 1 , a=>b in , y=>P1 ) ;and23 : and2 port map( a=>c 0 , b=>P0 , y=>P2 ) ;
260 Anhang
and24 : and2 port map( b=>c 1 , y=>P6 , a=>P11 ) ;and25 : and2 port map( a=>P7 , b=>P0 , y=>P8 ) ;not11 : not1 port map( a=>c 1 , y=>P0 ) ;not12 : not1 port map( a=>b in , y=>P11 ) ;not13 : not1 port map( a=>c 0 , y=>P7 ) ;
end behavior ;
xor21
xor20
a
b
y
not1
not10
ya
and21
and20
a
b
y
and21
and21
a
b
y
adder_flags:1
c_nc_n1
ovf
unf
Abbildung A.4: Hier ist die transformierte Schaltung der VHDL-Beschreibungaus Listing A.5 zu sehen. Sie bildet die Flags unf und ovf des Addierers ab.
Listing A.5: Hier zu sehen ist die aus Abbildung 5.43 generierte VHDL-Beschreibugn der Flags des Addierers. Dabei wird der Ubertrag nicht berucksichtigt,da dieser direkt aus dem Addierer heraus gefuhrt werden kann.
entity add e r f l a g s i sport ( c n1 , c n : in s t d l o g i c ;
ovf , unf : out s t d l o g i c ) ;end add e r f l a g s ;
architecture behavior of add e r f l a g s i scomponent and2 i sport ( b , a : in s t d l o g i c ;
y : out s t d l o g i c ) ;end component ;
component xor2 i sport ( b , a : in s t d l o g i c ;
y : out s t d l o g i c ) ;end component ;
component not1 i sport ( a : in s t d l o g i c ;
y : out s t d l o g i c ) ;end component ;
for and20 : and2 use entity work . and2 ( behavior ) ;
Anhang 261
for xor20 : xor2 use entity work . xor2 ( behavior ) ;for and21 : and2 use entity work . and2 ( behavior ) ;for not10 : not1 use entity work . not1 ( behavior ) ;
signal P0 , P1 : s t d l o g i c ;
beginand20 : and2 port map( b=>P0 , a=>c n , y=>unf ) ;xor20 : xor2 port map( b=>c n1 , a=>c n , y=>P0 ) ;and21 : and2 port map( a=>P0 , b=>P1 , y=>ovf ) ;not10 : not1 port map( a=>c n , y=>P1 ) ;
end behavior ;
bi
bi0
b_in
c_0
c_1
c_2
b_i
bi
bi1
b_in
c_0
c_1
c_2
b_i
bi
bi3
b_in
c_0
c_1
c_2
b_i
bi
bi2
b_in
c_0
c_1
c_2
b_i
cin
cin0
c_alu
c_0
c_1
c_2
c_in
adder_flags
adder_flags0
c_n
c_n1
ovl
unf
fa
fa0
a
b
c_in
c_out
s
fa
fa1
a
b
c_in
c_out
s
fa
fa2
a
b
c_in
c_out
s
fa
fa3
a
b
c_in
c_out
s
adder:1
a_0
a_1
a_2
a_3
b_0
b_1
b_2
b_3
c_alu
c_0c_1c_2
ovf
s_0
s_1
s_2
s_3
unf
cry
Abbildung A.5: Zeigt die komplette Schaltung des Addierers mit allen verwen-deten Komponenten und den modifizierten Eingangen des Operators B. In diesemSchaltungsteil wird die Anpassung des Signals cin vorgenommen. Die Flags ovl,unf und cry werden nach außen gefuhrt.
262 Anhang
Listing A.6: Nach den Vorbereitungen fur die arithmetische Einheit der ALUerfolgte die Modellierung des kompletten Blocks in Abbildung 5.44 und hier folgtdie VHDL-Beschreibung.
entity adder i sport (
a 3 , a 2 , a 1 , a 0 : in s t d l o g i c ;b 3 , b 2 , b 1 , b 0 : in s t d l o g i c ;c a lu , c 2 , c 1 , c 0 : in s t d l o g i c ;cry : inout s t d l o g i c ;ovf , unf : out s t d l o g i c ;s 3 , s 2 , s 1 , s 0 : out s t d l o g i c ) ;
end adder ;
architecture behavior of adder i scomponent add e r f l a g s i sport ( c n , c n1 : in s t d l o g i c ;
ovl , unf : out s t d l o g i c ) ;end component ;
component f a i sport ( b , a , c i n : in s t d l o g i c ;
c out , s : out s t d l o g i c ) ;end component ;
component bi i sport ( b in , c 2 , c 1 , c 0 : in s t d l o g i c ;
b i : out s t d l o g i c ) ;end component ;
component c in i sport ( c 2 , c 1 , c 0 , c a l u : in s t d l o g i c ;
c i n : out s t d l o g i c ) ;end component ;
for adde r f l a g s 0 : a dd e r f l a g s useentity work . a dd e r f l a g s ( behavior ) ;
for f a0 : f a use entity work . f a ( behavior ) ;for f a1 : f a use entity work . f a ( behavior ) ;for bi0 : b i use entity work . b i ( behavior ) ;for bi1 : b i use entity work . b i ( behavior ) ;for f a2 : f a use entity work . f a ( behavior ) ;for c in0 : c in use entity work . c in ( behavior ) ;for bi2 : b i use entity work . b i ( behavior ) ;for bi3 : b i use entity work . b i ( behavior ) ;for f a3 : f a use entity work . f a ( behavior ) ;
signal P7 , P0 , P1 , P6 , P2 , P5 , P4 , P3 : s t d l o g i c ;
Anhang 263
beginadde r f l a g s 0 : a dd e r f l a g s port map
( ov l=>ovf , unf=>unf , c n=>cry , c n1=>P7 ) ;fa0 : f a port map
(b=>P0 , a=>a 3 , c i n=>P7 , c out=>cry , s=>s 3 ) ;f a1 : f a port map
(b=>P1 , a=>a 2 , c out=>P7 , c i n=>P6 , s=>s 2 ) ;b i0 : b i port map
( b i=>P0 , b in=>b 3 , c 2=>c 2 , c 1=>c 1 , c 0=>c 0 ) ;b i1 : b i port map
( b i=>P1 , b in=>b 2 , c 2=>c 2 , c 1=>c 1 , c 0=>c 0 ) ;fa2 : f a port map
(b=>P2 , a=>a 1 , c out=>P6 , c i n=>P5 , s=>s 1 ) ;c in0 : c in port map
( c i n=>P4 , c 2=>c 2 , c 1=>c 1 , c 0=>c 0 , c a l u=>c a l u ) ;b i2 : b i port map
( b i=>P3 , b in=>b 0 , c 2=>c 2 , c 1=>c 1 , c 0=>c 0 ) ;b i3 : b i port map
( b i=>P2 , b in=>b 1 , c 2=>c 2 , c 1=>c 1 , c 0=>c 0 ) ;fa3 : f a port map
(b=>P3 , c i n=>P4 , a=>a 0 , c out=>P5 , s=>s 0 ) ;end behavior ;
Listing A.7: Im nachsten Schritt wurde der Shifter fur den logischen Blockder ALU modelliert, wie in Abbildung 5.45 zu sehen, daraus ist die folgendeVHDL-Beschreibung generiert worden.
entity s h i f t e r i sport ( a 3 , a 2 , a 1 , a 0 : in s t d l o g i c ;
c 0 , c 1 : in s t d l o g i c ;y 3 , y 2 , y 1 , y 0 : out s t d l o g i c ) ;
end s h i f t e r ;
architecture behavior of s h i f t e r i scomponent mux4zu1 i sport ( s1 , s0 : in s t d l o g i c ;
x3 , x2 , x1 , x0 : in s t d l o g i c ;y : out s t d l o g i c ) ;
end component ;
for mux4zu10 : mux4zu1 use entity work . mux4zu1 ( behavior ) ;for mux4zu11 : mux4zu1 use entity work . mux4zu1 ( behavior ) ;for mux4zu12 : mux4zu1 use entity work . mux4zu1 ( behavior ) ;for mux4zu13 : mux4zu1 use entity work . mux4zu1 ( behavior ) ;
signal P6 , P5 , P4 , P2 , P3 : s t d v e c t o r ;signal P9 , P8 , P7 , P0 , P1 : s t d l o g i c ;
beginP0 <= ’1 ’ ; P2 <= ’1 ’ ; P6 <= ’1 ’ ; P9 <= ’1 ’ ;
264 Anhang
gnd
XST_GND
G
vcc
XST_VCCP
mux4zu1
mux4zu10
s0
s1
x0
x1
x2
x3
y
mux4zu1
mux4zu11
s0
s1
x0
x1
x2
x3
y
mux4zu1
mux4zu12
s0
s1
x0
x1
x2
x3
y
mux4zu1
mux4zu13
s0
s1
x0
x1
x2
x3
y
shifter:1
a_0
a_1
a_2
a_3
c_0c_1
y_0
y_1
y_2
y_3
Abbildung A.6: Hier ist die transformierte Schaltung aus dem DCPN in Ab-bildung 5.45 zu sehen, welche den Shifter der ALU beschreibt. Dabei liegen anden Eingangen der Multiplexer jeweils High- oder Low-Pegel, bzw. der jeweilsbenotigte geshiftete Eingang an.
mux4zu10 : mux4zu1 port map( y=>y 3 , s0=>c 0 , s1=>c 1 ,x1=>a 2 , x3=>P6 , x2=>P5 , x0=>P4 ) ;
mux4zu11 : mux4zu1 port map( y=>y 1 , s0=>c 0 , s1=>c 1 ,x1=>a 0 , x2=>a 2 , x3=>P2 , x0=>P3 ) ;
mux4zu12 : mux4zu1 port map( y=>y 0 , s0=>c 0 , s1=>c 1 ,x2=>a 1 , x3=>P9 , x1=>P8 , x0=>P7 ) ;
mux4zu13 : mux4zu1 port map( y=>y 2 , s0=>c 0 , s1=>c 1 ,x1=>a 1 , x2=>a 3 , x3=>P0 , x0=>P1 ) ;
end behavior ;
Anhang 265
nand21
nand20
a
b
y
and21
and20
a
b
y
not1
not10
ya
or21
or20
a
b
y
nand21
nand21
a
b
y
and21
and21
a
b
y
not1
not11
ya
or21
or21
a
b
y
nand21
nand22
a
b
y
and21
and22
a
b
y
not1
not12
ya
or21
or22
a
b
y
nand21
nand23
a
b
y
and21
and23
a
b
y
not1
not13
ya
or21
or23
a
b
y
mux4zu1
mux4zu10
s0
s1
x0
x1
x2
x3
y
mux4zu1
mux4zu11
s0
s1
x0
x1
x2
x3
y
mux4zu1
mux4zu12
s0
s1
x0
x1
x2
x3
y
mux4zu1
mux4zu13
s0
s1
x0
x1
x2
x3
y
logik:1
a_0
a_1
a_2
a_3
b_0
b_1
b_2
b_3
c_0c_1
l_0
l_1
l_2
l_3
Abbildung A.7: Die Abbildung zeigt die transformierte Schaltung aus dem Petri-Netz in Abbildung 5.46, bei der die logischen Verknupfungen nand, and, not undor realisiert werden.
266 Anhang
Listing A.8: Das Listing zeigt die transformierte Schaltung fur die Logikeinheitals VHDL-Beschreibung. Abgebildet wird die logische Verknupfung nand, and, notund or.
entity l o g i k i sport ( c 1 , c 0 : in s t d l o g i c ;
a 3 , a 2 , a 1 , a 0 : in s t d l o g i c ;b 3 , b 2 , b 1 , b 0 : in s t d l o g i c ;l 3 , l 2 , l 1 , l 0 : out s t d l o g i c ) ;
end l o g i k ;
architecture behavior of l o g i k i scomponent mux4zu1 i sport ( s1 , s0 : in s t d l o g i c ;
x3 , x2 , x1 , x0 : in s t d l o g i c ;y : out s t d l o g i c ) ;
end component ;
component nand2 i sport ( a , b : in s t d l o g i c ;
y : out s t d l o g i c ) ;end component ;
component and2 i sport ( a , b : in s t d l o g i c ;
y : out s t d l o g i c ) ;end component ;
component not1 i sport ( a : in s t d l o g i c ;
y : out s t d l o g i c ) ;end component ;
component or2 i sport ( a , b : in s t d l o g i c ;
y : out s t d l o g i c ) ;end component ;
for mux4zu10 : mux4zu1 use entity work . mux4zu1 ( behavior ) ;for mux4zu11 : mux4zu1 use entity work . mux4zu1 ( behavior ) ;for mux4zu12 : mux4zu1 use entity work . mux4zu1 ( behavior ) ;for mux4zu13 : mux4zu1 use entity work . mux4zu1 ( behavior ) ;for nand20 : nand2 use entity work . nand2 ( behavior ) ;for and20 : and2 use entity work . and2 ( behavior ) ;for not10 : not1 use entity work . not1 ( behavior ) ;for or20 : or2 use entity work . or2 ( behavior ) ;for nand21 : nand2 use entity work . nand2 ( behavior ) ;for and21 : and2 use entity work . and2 ( behavior ) ;for not11 : not1 use entity work . not1 ( behavior ) ;for or21 : or2 use entity work . or2 ( behavior ) ;
Anhang 267
for nand22 : nand2 use entity work . nand2 ( behavior ) ;for and22 : and2 use entity work . and2 ( behavior ) ;for not12 : not1 use entity work . not1 ( behavior ) ;for or22 : or2 use entity work . or2 ( behavior ) ;for nand23 : nand2 use entity work . nand2 ( behavior ) ;for and23 : and2 use entity work . and2 ( behavior ) ;for not13 : not1 use entity work . not1 ( behavior ) ;for or23 : or2 use entity work . or2 ( behavior ) ;
signal P0 , P4 , P8 , P12 , P1 , P5 , P9 , P13 , P2 : s t d l o g i c ;signal P6 , P10 , P14 , P3 , P7 , P11 , P15 : s t d l o g i c ;
beginmux4zu10 : mux4zu1 port map( y=>l 3 , s0=>c 0 , s1=>c 1 ,
x0=>P0 , x1=>P4 , x2=>P8 , x3=>P12 ) ;mux4zu11 : mux4zu1 port map( y=>l 2 , s0=>c 0 , s1=>c 1 ,
x0=>P1 , x1=>P5 , x2=>P9 , x3=>P13 ) ;mux4zu12 : mux4zu1 port map( y=>l 1 , s0=>c 0 , s1=>c 1 ,
x0=>P2 , x1=>P6 , x2=>P10 , x3=>P14 ) ;mux4zu13 : mux4zu1 port map( y=>l 0 , s0=>c 0 , s1=>c 1 ,
x0=>P3 , x1=>P7 , x2=>P11 , x3=>P15 ) ;nand20 : nand2 port map( y=>P0 , a=>a 3 , b=>b 3 ) ;and20 : and2 port map( y=>P4 , a=>a 3 , b=>b 3 ) ;not10 : not1 port map( y=>P8 , a=>a 3 ) ;or20 : or2 port map( y=>P12 , a=>a 3 , b=>b 3 ) ;nand21 : nand2 port map( y=>P1 , a=>a 2 , b=>b 2 ) ;and21 : and2 port map( y=>P5 , a=>a 2 , b=>b 2 ) ;not11 : not1 port map( y=>P9 , a=>a 2 ) ;or21 : or2 port map( y=>P13 , a=>a 2 , b=>b 2 ) ;nand22 : nand2 port map( y=>P2 , a=>a 1 , b=>b 1 ) ;and22 : and2 port map( y=>P6 , a=>a 1 , b=>b 1 ) ;not12 : not1 port map( y=>P10 , a=>a 1 ) ;or22 : or2 port map( y=>P14 , a=>a 1 , b=>b 1 ) ;nand23 : nand2 port map( y=>P3 , a=>a 0 , b=>b 0 ) ;and23 : and2 port map( y=>P7 , a=>a 0 , b=>b 0 ) ;not13 : not1 port map( y=>P11 , a=>a 0 ) ;or23 : or2 port map( y=>P15 , a=>a 0 , b=>b 0 ) ;
end behavior ;
Listing A.9: Das Listing zeigt die VHDL-Beschreibung der Flags fur die ALU.
entity f l a g s i sport ( y 3 , y 2 , y 1 , y 0 : in s t d l o g i c ;
c n , c 3 , un f in , o v f i n : in s t d l o g i c ;neg , ze ro : out s t d l o g i c ;cry , unf , ov f : out s t d l o g i c ) ;
end f l a g s ;
architecture behavior of f l a g s i scomponent nor4 i s
268 Anhang
not1
not10
ya
and21
and20
a
b
y
and21
and21
a
b
y
and21
and22
a
b
y
nor41
nor40
a
b
c
d
y
flags:1
c_n
c_3
ovf_in
unf_in
y_0y_1y_2y_3
cry
neg
ovf
unf
zero
Abbildung A.8: Die Schaltung reprasentiert die VHDL-Beschreibung aus ListingA.9, die die Abhangigkeiten der Flags der ALU beschreibt.
port ( a , b , c , d : in s t d l o g i c ;y : out s t d l o g i c ) ;
end component ;
component and2 i sport ( b , a : in s t d l o g i c ;
y : out s t d l o g i c ) ;end component ;
component not1 i sport ( a : in s t d l o g i c ;
y : out s t d l o g i c ) ;end component ;
for nor40 : nor4 use entity work . nor4 ( behavior ) ;for and20 : and2 use entity work . and2 ( behavior ) ;for not10 : not1 use entity work . not1 ( behavior ) ;for and21 : and2 use entity work . and2 ( behavior ) ;for and22 : and2 use entity work . and2 ( behavior ) ;
signal P0 : s t d l o g i c ;
beginnor40 : nor4 port map
( a=>y 0 , b=>y 1 , c=>y 2 , d=>y 3 , y=>zero ) ;and20 : and2 port map( b=>P0 , a=>c n , y=>cry ) ;not10 : not1 port map( a=>c 3 , y=>P0 ) ;and21 : and2 port map( b=>P0 , y=>unf , a=>un f i n ) ;
Anhang 269
and22 : and2 port map( b=>P0 , a=>ov f in , y=>ovf ) ;PN0 : process ( y 3 )begin
case y 3 i swhen ’ 1 ’ => neg <= ’1 ’ ;when others => neg <= ’0 ’ ;
end case ;end process PN0;end behavior ;
i3
y3x3
i2
y2x2
i1
y1x1
i0
y0x0
P: 1
T0
P: 1
T1
P: 1
T2
P: 1
T3
P: 1
T4
P: 1
T5
P: 1
T6
P: 1
T7
Abbildung A.9: Hier zu sehen ist der Splitter, der einzig dazu dient das Ergebnisauf die Flags und den Ausgang der ALU aufzuteilen. Hier hatte auch ein weiteresSubnetz zum Einsatz kommen konnen, das jeweils die Funktionalitat eines Eingangsabbildet.
Listing A.10: Das Listing zeigt die VHDL-Beschreibung fur den Splitter. Dieserteilt einzig und allein das Eingangssignal in zwei Ausgangssignale auf und ist somitdie Beschreibung fur das in Abbildung A.9 zu sehende Petri-Netz.
entity s p l i t t e r i sport ( i 3 , i 2 , i 1 , i 0 : in s t d l o g i c ;
y 3 , y 2 , y 1 , y 0 : out s t d l o g i c ;x 3 , x 2 , x 1 , x 0 : out s t d l o g i c ) ;
end s p l i t t e r ;
architecture behavior of s p l i t t e r i sbegin
y 3 <= (( i 3 ) ) ; x 3 <= (( i 3 ) ) ;y 2 <= (( i 2 ) ) ; x 2 <= (( i 2 ) ) ;y 1 <= (( i 1 ) ) ; x 1 <= (( i 1 ) ) ;y 0 <= (( i 0 ) ) ; x 0 <= (( i 0 ) ) ;
end behavior ;
270 Anhang
a3 a2
l3 l2 l1 l0s3 s2 s1 s0
a0c3
c2
a1
P0 P1 P2 P3
o3 o2 o1 o0
mux2zu1mux2zu1mux2zu1mux2zu1
mux2zu1mux2zu1mux2zu1mux2zu1
Abbildung A.10: Die Abbildung zeigt das modellierte Petri-Netz, welches furdie Auswahl des Ergebnisses der ALU zustandig ist. Dabei wird erst aus demShifter und der Logik-Einheit gewahlt und danach, ob eine arithmetische Operationausgefuhrt werden soll.
Listing A.11: Hier ist die VHDL-Beschreibung des Multiplexers zur Auswahl desErgebnisses der ALU zu sehen. Sie ist aus Abbildung A.10 generiert.
entity mul t ip l exe r i sport ( a 3 , a 2 , a 1 , a 0 : in s t d l o g i c ;
s 3 , s 2 , s 1 , s 0 : in s t d l o g i c ;l 3 , l 2 , l 1 , l 0 : in s t d l o g i c ;c 3 , c 2 : in s t d l o g i c ;o 3 , o 2 , o 1 , o 0 : out s t d l o g i c ) ;
end mul t ip l exe r ;
architecture behavior of mul t ip l exe r i scomponent mux2zu1 i sport ( s0 : in s t d l o g i c ;
x0 , x1 : in s t d l o g i c ;y : out s t d l o g i c ) ;
end component ;
Anhang 271
mux2zu1
mux2zu14
s0
x0
x1
y
mux2zu1
mux2zu15
s0
x0
x1
y
mux2zu1
mux2zu16
s0
x0
x1
y
mux2zu1
mux2zu17
s0
x0
x1
y
mux2zu1
mux2zu10
s0
x0
x1
y
mux2zu1
mux2zu11
s0
x0
x1
y
mux2zu1
mux2zu12
s0
x0
x1
y
mux2zu1
mux2zu13
s0
x0
x1
y
multiplexer:1
a_0
a_1
a_2
a_3
c_2
c_3
l_0
l_1
l_2
l_3
s_0
s_1
s_2
s_3
o_0
o_1
o_2
o_3
Abbildung A.11: Das modellierte Netz aus Abbildung A.10 generiert mittels desTools Logical PetriNet die zu sehende Schaltung fur einen Multiplexer.
for mux2zu10 : mux2zu1 use entity work . mux2zu1 ( behavior ) ;for mux2zu11 : mux2zu1 use entity work . mux2zu1 ( behavior ) ;for mux2zu12 : mux2zu1 use entity work . mux2zu1 ( behavior ) ;for mux2zu13 : mux2zu1 use entity work . mux2zu1 ( behavior ) ;for mux2zu14 : mux2zu1 use entity work . mux2zu1 ( behavior ) ;for mux2zu15 : mux2zu1 use entity work . mux2zu1 ( behavior ) ;for mux2zu16 : mux2zu1 use entity work . mux2zu1 ( behavior ) ;for mux2zu17 : mux2zu1 use entity work . mux2zu1 ( behavior ) ;
signal P0 , P1 , P2 , P3 : s t d l o g i c ;
beginmux2zu10 : mux2zu1 port map
( s0=>c 3 , x0=>a 3 , x1=>P0 , y=>o 3 ) ;mux2zu11 : mux2zu1 port map
( s0=>c 3 , x0=>a 2 , x1=>P1 , y=>o 2 ) ;mux2zu12 : mux2zu1 port map
( s0=>c 3 , x0=>a 1 , x1=>P2 , y=>o 1 ) ;mux2zu13 : mux2zu1 port map
( s0=>c 3 , x0=>a 0 , x1=>P3 , y=>o 0 ) ;mux2zu14 : mux2zu1 port map
( s0=>c 2 , x0=>s 3 , x1=>l 3 , y=>P0 ) ;
272 Anhang
mux2zu15 : mux2zu1 port map( s0=>c 2 , x0=>s 2 , x1=>l 2 , y=>P1 ) ;
mux2zu16 : mux2zu1 port map( s0=>c 2 , x0=>s 1 , x1=>l 1 , y=>P2 ) ;
mux2zu17 : mux2zu1 port map( s0=>c 2 , x0=>s 0 , x1=>l 0 , y=>P3 ) ;
end behavior ;
adder
adder0
a_0
a_1
a_2
a_3
b_0
b_1
b_2
b_3
c_alu
c_0
c_1
c_2
ovf
s_0
s_1
s_2
s_3
unf
cry
logik
logik0
a_0
a_1
a_2
a_3
b_0
b_1
b_2
b_3
c_0
c_1
l_0
l_1
l_2
l_3
shifter
shifter0
a_0
a_1
a_2
a_3
c_0
c_1
y_0
y_1
y_2
y_3
muxer
muxer0
a_0
a_1
a_2
a_3
c_2
c_3
l_0
l_1
l_2
l_3
s_0
s_1
s_2
s_3
o_0
o_1
o_2
o_3
flags
flags0
c_n
c_3
ovf_in
unf_in
y_0
y_1
y_2
y_3
cry
neg
ovf
unf
zero
splitter
splitter0
i_0
i_1
i_2
i_3
x_0
x_1
x_2
x_3
y_0
y_1
y_2
y_3
alu:1
alu
a_0a_1a_2a_3b_0b_1b_2b_3
c_aluc_0c_1c_2
c_3
crynegovfunf
y_0y_1y_2y_3
zro
Abbildung A.12: Als letzte Schaltung bleibt die Beschreibung der gesamtenALU, wie sie hier zu sehen ist. Dabei werden alle bisher modellierten Petri-Netze indieser Schaltung zusammen gefasst. Die Schaltung wird in Abbildung 5.49 simuliertum die Ergebnisse des Modells zu verifizieren.
Listing A.12: Hier ist die generierte VHDL-Beschreibung fur die komplette ALUzu sehen. Dabei werden die einzelnen vorher modellierten Komponenten verwendet.Das modellierte Petri-Netz, aus dem diese Beschreibung abgeleitet wurde, ist inAbbildung 5.48 zu sehen.
entity a lu i sport ( c 3 , c 2 , c 1 , c 0 , c a l u : in s t d l o g i c ;
Anhang 273
a 3 , a 2 , a 1 , a 0 : in s t d l o g i c ;b 3 , b 2 , b 1 , b 0 : in s t d l o g i c ;y 3 , y 2 , y 1 , y 0 : out s t d l o g i c ;cry , ovf , unf , zro , neg : out s t d l o g i c ) ;
end a lu ;
architecture behavior of a lu i scomponent s p l i t t e r i sport ( i 3 , i 2 , i 1 , i 0 : in s t d l o g i c ;
y 3 , y 2 , y 1 , y 0 : out s t d l o g i c ;x 3 , x 2 , x 1 , x 0 : out s t d l o g i c ) ;
end component ;
component f l a g s i sport ( y 3 , y 2 , y 1 , y 0 : in s t d l o g i c ;
c 3 , c n , ov f i n , un f i n : in s t d l o g i c ;cry , ovf , unf , zero , neg : out s t d l o g i c ) ;
end component ;
component muxer i sport ( c 3 , c 2 : in s t d l o g i c ;
a 3 , a 2 , a 1 , a 0 : in s t d l o g i c ;s 3 , s 2 , s 1 , s 0 : in s t d l o g i c ;l 3 , l 2 , l 1 , l 0 : in s t d l o g i c ;o 3 , o 2 , o 1 , o 0 : out s t d l o g i c ) ;
end component ;
component adder i sport ( c a l u : in s t d l o g i c ;
c 2 , c 1 , c 0 : in s t d l o g i c ;a 3 , a 2 , a 1 , a 0 : in s t d l o g i c ;b 3 , b 2 , b 1 , b 0 : in s t d l o g i c ;s 3 , s 2 , s 1 , s 0 : out s t d l o g i c ;cry , ovf , unf : out s t d l o g i c ) ;
end component ;
component s h i f t e r i sport ( a 3 , a 2 , a 1 , a 0 : in s t d l o g i c ;
c 1 , c 0 : in s t d l o g i c ;y 3 , y 2 , y 1 , y 0 : out s t d l o g i c ) ;
end component ;
component l o g i k i sport ( c 1 , c 0 : in s t d l o g i c ;
b 3 , b 2 , b 1 , b 0 : in s t d l o g i c ;a 3 , a 2 , a 1 , a 0 : in s t d l o g i c ;l 3 , l 2 , l 1 , l 0 : out s t d l o g i c ) ;
end component ;
for s p l i t t e r 0 : s p l i t t e r
274 Anhang
use entity work . s p l i t t e r ( behavior ) ;for f l a g s 0 : f l a g s use entity work . f l a g s ( behavior ) ;for muxer0 : muxer use entity work . muxer ( behavior ) ;for adder0 : adder use entity work . adder ( behavior ) ;for s h i f t e r 0 : s h i f t e r use entity work . s h i f t e r ( behavior ) ;for l o g i k 0 : l o g i k use entity work . l o g i k ( behavior ) ;
signal P0 , P1 , P2 , P3 , M3, M2, M1, M0 : s t d l o g i c ;signal A3 , A2 , A1 , A0 , S3 , S2 , S1 , S0 : s t d l o g i c ;signal P4 , P5 , P6 , L3 , L2 , L1 , L0 : s t d l o g i c ;
begins p l i t t e r 0 : s p l i t t e r port map( y 3=>y 3 , y 2=>y 2 ,
y 1=>y 1 , y 0=>y 0 , x 0=>P0 , x 1=>P1 , x 2=>P2 ,x 3=>P3 , i 3=>M3, i 2=>M2, i 1=>M1, i 0=>M0) ;
f l a g s 0 : f l a g s port map( y 0=>P0 , y 1=>P1 , y 2=>P2 ,y 3=>P3 , cry=>cry , ovf=>ovf , unf=>unf , ze ro=>zro ,neg=>neg , c 3=>c 3 , c n=>P4 , o v f i n=>P5 , un f i n=>P6 ) ;
muxer0 : muxer port map( c 2=>c 2 , c 3=>c 3 , a 3=>A3 ,a 2=>A2 , a 1=>A1 , a 0=>A0 , s 3=>S3 , s 2=>S2 , s 1=>S1 ,s 0=>S0 , l 3=>L3 , l 2=>L2 , l 1=>L1 , l 0=>L0 , o 3=>M3,o 2=>M2, o 1=>M1, o 0=>M0) ;
adder0 : adder port map( cry=>P4 , ovf=>P5 , unf=>P6 ,c a l u=>c a lu , c 0=>c 0 , c 1=>c 1 , c 2=>c 2 , a 3=>a 3 ,a 2=>a 2 , a 1=>a 1 , a 0=>a 0 , b 3=>b 3 , b 2=>b 2 ,b 1=>b 1 , b 0=>b 0 , s 3=>A3 , s 2=>A2 , s 1=>A1 ,s 0=>A0 ) ;
s h i f t e r 0 : s h i f t e r port map( a 0=>a 0 , a 1=>a 1 ,a 2=>a 2 , a 3=>a 3 , c 0=>c 0 , c 1=>c 1 , y 3=>S3 ,y 2=>S2 , y 1=>S1 , y 0=>S0 ) ;
l o g i k 0 : l o g i k port map( c 0=>c 0 , c 1=>c 1 , b 0=>b 0 ,b 1=>b 1 , b 2=>b 2 , b 3=>b 3 , l 3=>L3 , l 2=>L2 ,l 1=>L1 , l 0=>L0 , a 0=>a 0 , a 1=>a 1 , a 2=>a 2 ,a 3=>a 3 ) ;
end behavior ;
Listing A.13: Die Testbench gibt nacheinander verschiedene Steuerbefehle aufdie transformierte ALU, um deren Ergebnisse in Abbildung 5.49 zu verifizieren. Diedortigen Simulationsergebnisse sind alle aus der hier gezeigten Testbench extrahiertworden. Dabei wurden die moglichen Instruktionen der ALU getestet.
architecture te s tbench of t e s tb ench a lu i scomponent a lu i sport ( c a l u : in s t d l o g i c ;
c 3 , c 2 , c 1 , c 0 : in s t d l o g i c ;a 3 , a 2 , a 1 , a 0 : in s t d l o g i c ;b 3 , b 2 , b 1 , b 0 : in s t d l o g i c ;y 3 , y 2 , y 1 , y 0 : out s t d l o g i c ;cry , ovf , unf : out s t d l o g i c ;
zro , neg : out s t d l o g i c ) ;
Anhang 275
end component ;
−− Stimulussignal t b c l k : s t d l o g i c := ’ 1 ’ ;signal t b c a l u : s t d l o g i c := ’ 0 ’ ;signal tb c 3 : s t d l o g i c := ’ 0 ’ ;signal tb c 2 : s t d l o g i c := ’ 0 ’ ;signal tb c 1 : s t d l o g i c := ’ 0 ’ ;signal tb c 0 : s t d l o g i c := ’ 0 ’ ;signal tb a 3 : s t d l o g i c := ’ 0 ’ ;signal tb a 2 : s t d l o g i c := ’ 0 ’ ;signal tb a 1 : s t d l o g i c := ’ 0 ’ ;signal tb a 0 : s t d l o g i c := ’ 0 ’ ;signal tb b 3 : s t d l o g i c := ’ 0 ’ ;signal tb b 2 : s t d l o g i c := ’ 0 ’ ;signal tb b 1 : s t d l o g i c := ’ 0 ’ ;signal tb b 0 : s t d l o g i c := ’ 0 ’ ;−− Responsesignal tb y 3 : s t d l o g i c ;signal tb y 2 : s t d l o g i c ;signal tb y 1 : s t d l o g i c ;signal tb y 0 : s t d l o g i c ;signal tb c ry : s t d l o g i c ;signal tb ov f : s t d l o g i c ;signal tb un f : s t d l o g i c ;signal tb z ro : s t d l o g i c ;signal tb neg : s t d l o g i c ;
begin−− Device under Test (DUT)DUT: alu port map( c a l u => tb c a lu ,
c 3=> tb c 3 , c 2=> tb c 2 , c 1=> tb c 1 , c 0=> tb c 0 ,a 3=> tb a 3 , a 2=> tb a 2 , a 1=> tb a 1 , a 0=> tb a 0 ,b 3=> tb b 3 , b 2=> tb b 2 , b 1=> tb b 1 , b 0=> tb b 0 ,y 3=> tb y 3 , y 2=> tb y 2 , y 1=> tb y 1 , y 0=> tb y 0 ,cry=> tb cry , ovf=> tb ovf , unf=> tb unf ,zro=> tb zro , neg=> tb neg ) ;
−− Stimulusprocessbegin−−ADD 4+2
tb c a lu <= ’0 ’;tb c 3 <= ’0 ’; tb c 2 <= ’0 ’; tb c 1 <= ’1 ’; tb c 0 <= ’0 ’;tb a 3 <= ’0 ’; tb a 2 <= ’1 ’; tb a 1 <= ’0 ’; tb a 0 <= ’0 ’;tb b 3 <= ’0 ’; tb b 2 <= ’0 ’; tb b 1 <= ’1 ’; tb b 0 <= ’0 ’;wait for 10 ns ;
−−SUB 6−4tb c a lu <= ’0 ’;tb c 3 <= ’0 ’; tb c 2 <= ’1 ’; tb c 1 <= ’1 ’; tb c 0 <= ’0 ’;
276 Anhang
tb a 3 <= ’0 ’; tb a 2 <= ’1 ’; tb a 1 <= ’1 ’; tb a 0 <= ’0 ’;tb b 3 <= ’0 ’; tb b 2 <= ’1 ’; tb b 1 <= ’0 ’; tb b 0 <= ’0 ’;wait for 10 ns ;
−−ANDtb c a lu <= ’0 ’;tb c 3 <= ’1 ’; tb c 2 <= ’1 ’; tb c 1 <= ’0 ’; tb c 0 <= ’1 ’;tb a 3 <= ’1 ’; tb a 2 <= ’1 ’; tb a 1 <= ’0 ’; tb a 0 <= ’0 ’;tb b 3 <= ’1 ’; tb b 2 <= ’0 ’; tb b 1 <= ’1 ’; tb b 0 <= ’0 ’;wait for 10 ns ;
−−ORtb c a lu <= ’0 ’;tb c 3 <= ’1 ’; tb c 2 <= ’1 ’; tb c 1 <= ’1 ’; tb c 0 <= ’1 ’;tb a 3 <= ’1 ’; tb a 2 <= ’1 ’; tb a 1 <= ’0 ’; tb a 0 <= ’0 ’;tb b 3 <= ’1 ’; tb b 2 <= ’0 ’; tb b 1 <= ’1 ’; tb b 0 <= ’0 ’;wait for 10 ns ;
−− SETtb c a lu <= ’0 ’;tb c 3 <= ’0 ’; tb c 2 <= ’0 ’; tb c 1 <= ’0 ’; tb c 0 <= ’0 ’;tb a 3 <= ’1 ’; tb a 2 <= ’0 ’; tb a 1 <= ’1 ’; tb a 0 <= ’0 ’;tb b 3 <= ’1 ’; tb b 2 <= ’1 ’; tb b 1 <= ’1 ’; tb b 0 <= ’0 ’;wait for 10 ns ;
−− NOTtb c a lu <= ’0 ’;tb c 3 <= ’1 ’; tb c 2 <= ’1 ’; tb c 1 <= ’1 ’; tb c 0 <= ’0 ’;tb a 3 <= ’1 ’; tb a 2 <= ’0 ’; tb a 1 <= ’1 ’; tb a 0 <= ’0 ’;tb b 3 <= ’0 ’; tb b 2 <= ’1 ’; tb b 1 <= ’0 ’; tb b 0 <= ’0 ’;wait for 10 ns ;
−− SRLtb c a lu <= ’0 ’;tb c 3 <= ’1 ’; tb c 2 <= ’0 ’; tb c 1 <= ’1 ’; tb c 0 <= ’0 ’;tb a 3 <= ’0 ’; tb a 2 <= ’1 ’; tb a 1 <= ’1 ’; tb a 0 <= ’0 ’;tb b 3 <= ’0 ’; tb b 2 <= ’1 ’; tb b 1 <= ’0 ’; tb b 0 <= ’0 ’;wait for 10 ns ;
−− SLLtb c a lu <= ’0 ’;tb c 3 <= ’1 ’; tb c 2 <= ’0 ’; tb c 1 <= ’0 ’; tb c 0 <= ’1 ’;tb a 3 <= ’0 ’; tb a 2 <= ’1 ’; tb a 1 <= ’1 ’; tb a 0 <= ’0 ’;tb b 3 <= ’0 ’; tb b 2 <= ’1 ’; tb b 1 <= ’0 ’; tb b 0 <= ’0 ’;wait for 10 ns ;
−− SETFtb c a lu <= ’0 ’;tb c 3 <= ’1 ’; tb c 2 <= ’0 ’; tb c 1 <= ’0 ’; tb c 0 <= ’0 ’;tb a 3 <= ’0 ’; tb a 2 <= ’1 ’; tb a 1 <= ’1 ’; tb a 0 <= ’0 ’;tb b 3 <= ’0 ’; tb b 2 <= ’1 ’; tb b 1 <= ’0 ’; tb b 0 <= ’0 ’;wait for 10 ns ;
−−DECtb c a lu <= ’0 ’;tb c 3 <= ’0 ’; tb c 2 <= ’0 ’; tb c 1 <= ’0 ’; tb c 0 <= ’1 ’;tb a 3 <= ’1 ’; tb a 2 <= ’0 ’; tb a 1 <= ’1 ’; tb a 0 <= ’0 ’;tb b 3 <= ’0 ’; tb b 2 <= ’1 ’; tb b 1 <= ’0 ’; tb b 0 <= ’0 ’;
Anhang 277
wait for 10 ns ;−−INC
tb c a lu <= ’0 ’;tb c 3 <= ’0 ’; tb c 2 <= ’1 ’; tb c 1 <= ’0 ’; tb c 0 <= ’1 ’;tb a 3 <= ’1 ’; tb a 2 <= ’1 ’; tb a 1 <= ’1 ’; tb a 0 <= ’0 ’;tb b 3 <= ’1 ’; tb b 2 <= ’0 ’; tb b 1 <= ’0 ’; tb b 0 <= ’0 ’;wait for 10 ns ;
−−SETTtb c a lu <= ’0 ’;tb c 3 <= ’1 ’; tb c 2 <= ’0 ’; tb c 1 <= ’1 ’; tb c 0 <= ’1 ’;tb a 3 <= ’0 ’; tb a 2 <= ’1 ’; tb a 1 <= ’0 ’; tb a 0 <= ’1 ’;tb b 3 <= ’0 ’; tb b 2 <= ’1 ’; tb b 1 <= ’1 ’; tb b 0 <= ’0 ’;wait for 10 ns ;
−−NANDtb c a lu <= ’0 ’;tb c 3 <= ’1 ’; tb c 2 <= ’1 ’; tb c 1 <= ’0 ’; tb c 0 <= ’0 ’;tb a 3 <= ’1 ’; tb a 2 <= ’0 ’; tb a 1 <= ’1 ’; tb a 0 <= ’0 ’;tb b 3 <= ’1 ’; tb b 2 <= ’1 ’; tb b 1 <= ’0 ’; tb b 0 <= ’0 ’;wait for 10 ns ;
−−ADD 4+4tb c a lu <= ’0 ’;tb c 3 <= ’0 ’; tb c 2 <= ’0 ’; tb c 1 <= ’1 ’; tb c 0 <= ’0 ’;tb a 3 <= ’0 ’; tb a 2 <= ’1 ’; tb a 1 <= ’0 ’; tb a 0 <= ’0 ’;tb b 3 <= ’0 ’; tb b 2 <= ’1 ’; tb b 1 <= ’0 ’; tb b 0 <= ’0 ’;wait for 10 ns ;
−−SUB −6−3tb c a lu <= ’0 ’;tb c 3 <= ’0 ’; tb c 2 <= ’1 ’; tb c 1 <= ’1 ’; tb c 0 <= ’0 ’;tb a 3 <= ’1 ’; tb a 2 <= ’0 ’; tb a 1 <= ’1 ’; tb a 0 <= ’0 ’;tb b 3 <= ’0 ’; tb b 2 <= ’0 ’; tb b 1 <= ’1 ’; tb b 0 <= ’1 ’;wait for 10 ns ;
−−SETtb c a lu <= ’0 ’;tb c 3 <= ’0 ’; tb c 2 <= ’1 ’; tb c 1 <= ’0 ’; tb c 0 <= ’0 ’;tb a 3 <= ’1 ’; tb a 2 <= ’1 ’; tb a 1 <= ’0 ’; tb a 0 <= ’1 ’;tb b 3 <= ’1 ’; tb b 2 <= ’0 ’; tb b 1 <= ’0 ’; tb b 0 <= ’0 ’;wait for 10 ns ;
assert f a l s e report ” s imu la t i on ended” severity f a i l u r e ;end process ;t b c l k <= NOT t b c l k after 1 .0 ns ;end te s tbench ;
278 Anhang
PNML-Schema
In diesem Abschnitt des Anhangs wird das XML-Schema, auch XML-SchemaDescription (XSD) genannt, vorgestellt. Hierzu sind in den verschiedenen Lis-tings A.15 bis A.24 die einfachen Datentypen und Aufzahlungen aufgelistet,aus denen die komplexeren Datentypen zusammengesetzt werden. Als einzi-ges definiertes Element besteht das Schema aus pnml, welches mindestensdas Hauptnetz beinhalten muss (Listing A.14).
Listing A.14: Zeigt das pnml-Element, welches alle restlichen, in diesem Abschnittbeschriebenen, Elemente beinhaltet.
<?xml ve r s i on =”1.0” encoding=”UTF−8”?><xsd : schema xmlns : xsd=”http ://www.w3 . org /2001/XMLSchema”>
<xsd : element name=”pnml” type =”pnmlType”/></xsd : schema>
Die Beschreibung eines Netzes net mit den Petri-Netz-Elementen ist inAbbildung A.14 zu sehen. Die beiden zusatzlichen Schema-Beschreibungenfur die Position (graphics) und den Element-Typ (object) sind in AbbildungA.13 gezeigt. Neu hinzugekommen sind in dieser Arbeit neben einigen Hilfs-elementen und der expliziten Definition dieser vor allem die Elemente, dieSubstellen, Subtransitionen und Netzverbinder beschreiben.
(a) (b)
Abbildung A.13: (a) zeigt die Beschreibung fur eine Position von Elementenim PNML-Schema. Diese speichern immer einen Punkt (x, y). (b) beschreibt denObjekttyp in einer Kante, um festzulegen von welchem Startelementtyp (source)zu welchem Zielelementtyp (target) die Kante fuhrt.
Listing A.15: Beschreibung einer UUID, mit der Uberprufung auf gultigkeitdurch einen Regularen Ausdruck.
<xsd : simpleType name=”uuidType”><xsd : r e s t r i c t i o n base=”xsd : s t r i n g ”>
<xsd : patternvalue=” [ a−f0 −9]{8}−[a−f0 −9]{4}−[a−f0 −9]{4}−
[ a−f0 −9]{4}−[a−f0 −9]{12}”/></xsd : r e s t r i c t i o n>
</xsd : simpleType>
Anhang 279
Abbildung A.14: Haupttyp, der das Hauptnetz und mogliche Subnetze enthalt.Die Zuweisung zum eigentlichen Element (Substelle, Subtransition) erfolgt uberdie ID.
280 Anhang
Listing A.16: Aufzahlung der Elementtypen, die im PNML zur Verbindung vonKanten verwendet werden konnen.
<xsd : simpleType name=”elementType”><xsd : r e s t r i c t i o n base=”xsd : s t r i n g ”>
<xsd : enumeration value=” p lace ”/><xsd : enumeration value=” t r a n s i t i o n ”/><xsd : enumeration value=” subplace ”/><xsd : enumeration value=” sub t r an s i t i o n ”/><xsd : enumeration value=” netconnector ”/>
</xsd : r e s t r i c t i o n></xsd : simpleType>
Listing A.17: Schema der moglichen Anzahl an Marken in einer Stelle.
<xsd : simpleType name=”tokenType”><xsd : r e s t r i c t i o n base=”xsd : i n t ”>
<xsd : pattern value=” [ 0 , 1 ]{1} ”></xsd : pattern></xsd : r e s t r i c t i o n>
</xsd : simpleType>
Listing A.18: Angabe der Typen, die eine Stelle besitzen kann.
<xsd : simpleType name=”placeTypeType”><xsd : r e s t r i c t i o n base=”xsd : s t r i n g ”>
<xsd : enumeration value=” in ”/><xsd : enumeration value=”normal”/><xsd : enumeration value=”out”/>
</xsd : r e s t r i c t i o n></xsd : simpleType>
Listing A.19: Zeiteinheiten, die als Schaltzeiten in Transitionen, oder den Ein-gangsstellen bei zeitlich veranderlichen Marken zur Anwendung kommen.
<xsd : simpleType name=” timeUnit ”><xsd : r e s t r i c t i o n base=”xsd : s t r i n g ”>
<xsd : enumeration value=” sec ”/><xsd : enumeration value=”ms”/><xsd : enumeration value=”us”/><xsd : enumeration value=”ns”/><xsd : enumeration value=”ps”/><xsd : enumeration value=” f s ”/>
</xsd : r e s t r i c t i o n></xsd : simpleType>
Anhang 281
Listing A.20: Typen, die Transitionen im PNML besitzen konnen.
<xsd : simpleType name=” transit ionTypeType ”><xsd : r e s t r i c t i o n base=”xsd : s t r i n g ”>
<xsd : enumeration value=”timed”/><xsd : enumeration value=”normal”/>
</xsd : r e s t r i c t i o n></xsd : simpleType>
Listing A.21: Speichermoglichkeit einer Subtransition, ob diese ein Bibliotheks-element ist.
<xsd : simpleType name=” subtransit ionTypeType ”><xsd : r e s t r i c t i o n base=”xsd : s t r i n g ”>
<xsd : enumeration value=” other ”/><xsd : enumeration value=”bib ”/>
</xsd : r e s t r i c t i o n></xsd : simpleType>
Listing A.22: Typ des Netzverbinders (Ein- oder Ausgang).
<xsd : simpleType name=”netconType”><xsd : r e s t r i c t i o n base=”xsd : s t r i n g ”>
<xsd : enumeration value=” in ”/><xsd : enumeration value=”out”/>
</xsd : r e s t r i c t i o n></xsd : simpleType>
Listing A.23: Speicherung, ob ein Netzverbinder in einer Substelle oder einerSubtransition liegt. Wird fur interne Zuordnungen im Tool Logical PetriNet ver-wendet.
<xsd : simpleType name=”netcon2DType”><xsd : r e s t r i c t i o n base=”xsd : s t r i n g ”>
<xsd : enumeration value=” subplace ”/><xsd : enumeration value=” sub t r an s i t i o n ”/>
</xsd : r e s t r i c t i o n></xsd : simpleType>
Listing A.24: Typ einer Kante (normal, hemmend).
<xsd : simpleType name=”arcTypeType”><xsd : r e s t r i c t i o n base=”xsd : s t r i n g ”>
<xsd : enumeration value=” arc ”/><xsd : enumeration value=” i n h i b i t o r ”/>
</xsd : r e s t r i c t i o n></xsd : simpleType>