301
Christoph Brandau Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

Christoph Brandau

Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

Page 2: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

Page 3: 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

Page 4: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 5: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

fur Jenny

Page 6: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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.

Page 7: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 8: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 9: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 10: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 11: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 12: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 13: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 14: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 15: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 16: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 17: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 18: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 19: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 20: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 21: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 22: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 23: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 24: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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.

Page 25: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 26: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 27: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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-

Page 28: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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-

Page 29: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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.

Page 30: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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.

Page 31: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 32: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 33: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 34: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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)

Page 35: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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.

Page 36: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 37: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 38: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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)

Page 39: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 40: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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)

Page 41: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 42: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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.

Page 43: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 44: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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.

Page 45: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 46: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 47: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 48: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 49: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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.

Page 50: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 51: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 52: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 53: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 54: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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.

Page 55: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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.

Page 56: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 57: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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.

Page 58: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 59: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 60: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 61: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 62: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 63: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 64: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

40 2 Grundlagen und Stand der Technik

werden, um den Netztyp moglichst wenig komplex und universell einsetzbarzu halten.

Page 65: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 66: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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.

Page 67: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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,

Page 68: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 69: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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-

Page 70: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 71: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 72: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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)

Page 73: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 74: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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.

Page 75: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 76: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 77: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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.

Page 78: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 79: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 80: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 81: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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.

Page 82: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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-

Page 83: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 84: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 85: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 86: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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.

Page 87: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 88: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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.

Page 89: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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′

Page 90: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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.

Page 91: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 92: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 93: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 94: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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.

Page 95: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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.

Page 96: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 97: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 98: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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.

Page 99: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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.

Page 100: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 101: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 102: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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.

Page 103: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 104: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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.

Page 105: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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.

Page 106: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 107: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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.

Page 108: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 109: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 110: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 111: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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 �= ∅

Page 112: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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.

Page 113: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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.

Page 114: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 115: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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-

Page 116: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 117: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 118: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 119: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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.

Page 120: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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.

Page 121: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 122: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 123: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 124: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 125: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 126: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 127: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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.

Page 128: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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-

Page 129: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 130: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 131: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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.

Page 132: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 133: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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)

Page 134: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 135: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 136: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 137: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 138: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 139: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 140: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 141: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 142: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 143: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 144: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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.

Page 145: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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.

Page 146: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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.

Page 147: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 148: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 149: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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.

Page 150: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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.

Page 151: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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.

Page 152: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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.

Page 153: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 154: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 155: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 156: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 157: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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 ;

Page 158: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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.

Page 159: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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.

Page 160: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 161: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 162: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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;

Page 163: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 164: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 165: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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-

Page 166: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 167: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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.

Page 168: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 169: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 170: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 171: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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.

Page 172: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 173: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 174: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 175: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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.

Page 176: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 177: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 178: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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.

Page 179: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 180: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 181: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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.

Page 182: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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.

Page 183: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 184: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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 -

Page 185: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 186: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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.

Page 187: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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.

Page 188: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 189: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 190: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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,

Page 191: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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-

Page 192: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 193: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 194: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 195: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 196: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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-

Page 197: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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.

Page 198: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 199: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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.

Page 200: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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.

Page 201: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 202: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 203: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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-

Page 204: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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)

Page 205: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 206: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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)

Page 207: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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)

Page 208: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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.

Page 209: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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 ;

Page 210: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 211: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 212: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 213: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 214: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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.

Page 215: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 216: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 217: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 218: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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 ’ ;

Page 219: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 220: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 221: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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 ;

Page 222: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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.

Page 223: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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.

Page 224: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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;

Page 225: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 226: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 227: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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.

Page 228: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 229: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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.

Page 230: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 231: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 232: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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.

Page 233: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 234: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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.

Page 235: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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.

Page 236: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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.

Page 237: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 238: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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.

Page 239: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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.

Page 240: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 241: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 242: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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.

Page 243: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 244: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 245: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 246: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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.

Page 247: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 248: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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.

Page 249: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 250: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 251: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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.

Page 252: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 253: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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.

Page 254: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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.

Page 255: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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.

Page 256: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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.

Page 257: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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.

Page 258: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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.

Page 259: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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).

Page 260: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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.

Page 261: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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.

Page 262: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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.

Page 263: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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.

Page 264: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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.

Page 265: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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.

Page 266: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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.

Page 267: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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.

Page 268: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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.

Page 269: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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.

Page 270: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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-

Page 271: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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.

Page 272: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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.

Page 273: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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.

Page 274: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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.

Page 275: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 276: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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 ;

Page 277: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 278: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 279: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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 ) ;

Page 280: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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 ) ;

Page 281: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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.

Page 282: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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 ;

Page 283: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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 ’ ;

Page 284: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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 ;

Page 285: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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.

Page 286: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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 ) ;

Page 287: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 288: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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 ) ;

Page 289: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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 ;

Page 290: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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 ;

Page 291: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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 ) ;

Page 292: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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 ;

Page 293: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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

Page 294: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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 ) ;

Page 295: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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 ’;

Page 296: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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 ’;

Page 297: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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 ;

Page 298: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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>

Page 299: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

Anhang 279

Abbildung A.14: Haupttyp, der das Hauptnetz und mogliche Subnetze enthalt.Die Zuweisung zum eigentlichen Element (Substelle, Subtransition) erfolgt uberdie ID.

Page 300: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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>

Page 301: Modellierung und Transformation digitaler Schaltungen mittels Digital Circuit Petri Nets

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>