Visualisierung von Parametern komplexer Schnittstellen ... - ihmor.de
Visualisierung von Parametern komplexer Schnittstellen ... - ihmor.de
Visualisierung von Parametern komplexer Schnittstellen ... - ihmor.de
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
<strong>Visualisierung</strong> <strong>von</strong> <strong>Parametern</strong><br />
<strong>komplexer</strong> <strong>Schnittstellen</strong> für<br />
eingebettete Systeme auf Basis <strong>von</strong> XML<br />
Studienarbeit<br />
Studiengang Informatik<br />
Vertiefungsgebiet Softwaretechnik<br />
Nebenfach Mathematik<br />
<strong>von</strong><br />
Oliver Fick<br />
An <strong>de</strong>n Steinkisten 26<br />
33178 Borchen<br />
vorgelegt bei<br />
Prof. Dr. rer. nat. Franz Josef Rammig
Dank und Erklärung<br />
Dieses Dokument entstand im Rahmen einer Studienarbeit in Kooperation <strong>de</strong>s IPL<br />
(Informatik- und Prozesslabor) und <strong>de</strong>r Arbeitsgruppe Rammig (HNI) <strong>de</strong>r Universität<br />
Pa<strong>de</strong>rborn. Während <strong>de</strong>m Anfertigen <strong>de</strong>r Studienarbeit lernte ich Problemstellungen<br />
<strong>de</strong>r Informatik zielstrebig zu studieren.<br />
Für das interessante Studienarbeitsthema möchte ich mich im Beson<strong>de</strong>ren bei Wolfram<br />
Hardt und Franz J. Rammig bedanken. Beson<strong>de</strong>rer Dank gilt Stefan Ihmor, <strong>de</strong>r mich<br />
über <strong>de</strong>n Zeitraum <strong>de</strong>r Erstellung <strong>de</strong>r Studienarbeit fachlich engagiert betreut hat.<br />
Auch Markus Visarius, Michel Camel Kouamo Sime, Gilles Betrand Gnokan Defo,<br />
Andreas Scholand und Johannes Lessmann bin ich für ihre fachliche Unterstützung zu<br />
dank verpflichtet. Nicht zuletzt möchte ich Kathrin Tofall und Olaf Müller für das<br />
intensive Korrekturlesen dieser Arbeit danken.<br />
Hiermit erkläre ich, dass ich die vorliegen<strong>de</strong> Arbeit selbstständig verfasst und keine<br />
an<strong>de</strong>ren als die angegebenen Quellen und Hilfsmittel benutzt sowie Zitate kenntlich<br />
gemacht habe.<br />
Pa<strong>de</strong>rborn, Juni 2003<br />
2
1. Verzeichnisse<br />
1.1. Inhaltsverzeichnis<br />
1. Verzeichnisse ..................................................................................................................... 3<br />
1.1. Inhaltsverzeichnis ................................................................................................................ 3<br />
1.2. Abbildungsverzeichnis......................................................................................................... 5<br />
2. Einleitung .......................................................................................................................... 6<br />
2.1. Motivation............................................................................................................................. 6<br />
2.2. Problemstellung.................................................................................................................... 7<br />
2.3. Aufgabenstellung.................................................................................................................. 7<br />
2.4. Glie<strong>de</strong>rung <strong>de</strong>r Arbeit ......................................................................................................... 7<br />
3. State of the Art / Stand <strong>de</strong>r Dinge..................................................................................... 8<br />
3.1. Anknüpfung an das IPQ Transfer Format........................................................................ 8<br />
3.2. An<strong>de</strong>re <strong>Schnittstellen</strong>beschreibungen ................................................................................ 9<br />
3.3. XML als Werkzeug .............................................................................................................. 9<br />
3.3.1. Einleitung ......................................................................................................................... 9<br />
3.3.2. Document Type Definitions .......................................................................................... 10<br />
3.3.3. XML Schemata .............................................................................................................. 11<br />
4. Das IFS Format............................................................................................................... 14<br />
4.1. Grundgedanken.................................................................................................................. 14<br />
4.1.1. Aufbau <strong>de</strong>s Schemas...................................................................................................... 14<br />
4.1.2. Aufteilung in Sub-Schemata ......................................................................................... 16<br />
4.1.3. Verwen<strong>de</strong>te Datentypen ................................................................................................ 16<br />
4.2. Systemarchitektur.............................................................................................................. 17<br />
4.2.1. Versionsangaben............................................................................................................ 17<br />
4.2.2. System............................................................................................................................. 18<br />
4.2.3. Board .............................................................................................................................. 19<br />
4.2.4. Chip................................................................................................................................. 20<br />
4.2.5. Task................................................................................................................................. 21<br />
4.2.6. Medium........................................................................................................................... 22<br />
4.2.7. IFB (Interface Block)..................................................................................................... 23<br />
4.3. Interface Description ......................................................................................................... 24<br />
4.3.1. <strong>Schnittstellen</strong> .................................................................................................................. 24<br />
4.3.2. Protokolle ....................................................................................................................... 28<br />
4.3.3. Target Platform Description......................................................................................... 34<br />
4.4. Maps.................................................................................................................................... 35<br />
4.4.1. Verdrahtung................................................................................................................... 35<br />
3
4.4.2. <strong>Schnittstellen</strong> und Protokolle........................................................................................ 37<br />
5. Der IFS Editor................................................................................................................. 38<br />
5.1. Der Aufbau <strong>de</strong>r Software .................................................................................................. 38<br />
5.2. Die graphische Oberfläche ................................................................................................ 40<br />
5.2.1. Verwen<strong>de</strong>te Techniken.................................................................................................. 40<br />
5.2.1.1. Einheitlicher Aufbau ..................................................................................................... 40<br />
5.2.1.2. Überprüfung <strong>de</strong>r Eingaben........................................................................................... 41<br />
5.2.2. Systemarchitektur und Zielplattformbeschreibung................................................... 41<br />
5.2.3. <strong>Schnittstellen</strong>beschreibung ........................................................................................... 45<br />
5.2.4. Protokollbeschreibung .................................................................................................. 47<br />
5.2.5. Verdrahtung................................................................................................................... 52<br />
6. Zusammenfassung und Ausblick.................................................................................... 53<br />
6.1. Das IFS Format .................................................................................................................. 53<br />
6.2. Der IFS Editor.................................................................................................................... 53<br />
7. Literaturangaben............................................................................................................. 54<br />
8. Anhang............................................................................................................................. 55<br />
8.1. Das IFS Format .................................................................................................................. 55<br />
8.1.1. Datentypen in XML Notation....................................................................................... 55<br />
8.1.2. Systemarchitektur ......................................................................................................... 57<br />
8.1.2.1. Version.xsd ..................................................................................................................... 57<br />
8.1.2.2. System.xsd ...................................................................................................................... 58<br />
8.1.2.3. Board.xsd........................................................................................................................ 59<br />
8.1.3. Interface Description..................................................................................................... 61<br />
8.1.3.1. Interface.xsd................................................................................................................... 61<br />
8.1.3.2. Properties.xsd................................................................................................................. 64<br />
8.1.3.3. Port.xsd........................................................................................................................... 66<br />
8.1.3.4. Pin.xsd............................................................................................................................. 68<br />
8.1.4. Protokolle ....................................................................................................................... 70<br />
8.1.4.1. Protocol.xsd.................................................................................................................... 70<br />
8.1.4.2. TransitionCondition.xsd ............................................................................................... 74<br />
8.1.4.3. ReferenceSignal.xsd....................................................................................................... 77<br />
8.1.5. Verdrahtung / Maps ...................................................................................................... 82<br />
8.1.5.1. InterfaceMap.xsd........................................................................................................... 82<br />
8.1.5.2. InterfacePinMap.xsd ..................................................................................................... 84<br />
4
1.2. Abbildungsverzeichnis<br />
Abbildung 4-1: Komplexe Systemarchitektur.......................................................................... 15<br />
Abbildung 4-2: Aufbau <strong>de</strong>s XML Schemas System.xsd .......................................................... 18<br />
Abbildung 4-3: Aufbau <strong>de</strong>s XML Schemas Board.xsd............................................................ 19<br />
Abbildung 4-4: Aufbau <strong>de</strong>s XML Schemas Chip.xsd.............................................................. 20<br />
Abbildung 4-5: Aufbau <strong>de</strong>s XML Schemas Task.xsd.............................................................. 21<br />
Abbildung 4-6: Aufbau <strong>de</strong>s XML Schemas Medium.xsd ........................................................ 23<br />
Abbildung 4-7: Struktur <strong>de</strong>s XML Schemas IFB.xsd .............................................................. 23<br />
Abbildung 4-8: Struktur <strong>de</strong>s XML Schemas Interface.xsd...................................................... 24<br />
Abbildung 4-9: Struktur <strong>de</strong>s XML Schemas Port.xsd ............................................................. 26<br />
Abbildung 4-10: Struktur <strong>de</strong>s XML Schemas Pin.xsd............................................................. 26<br />
Abbildung 4-11: Struktur <strong>de</strong>s XML Schemas Register.xsd ..................................................... 27<br />
Abbildung 4-12: Struktur <strong>de</strong>s XML Schemas Bit.xsd.............................................................. 28<br />
Abbildung 4-13: Struktur <strong>de</strong>s XML Schemas Protocol.xsd .................................................... 28<br />
Abbildung 4-14: Struktur <strong>de</strong>s XML Schemas ProtocolPin.xsd............................................... 29<br />
Abbildung 4-15: Struktur <strong>de</strong>s XML Schemas State.xsd .......................................................... 30<br />
Abbildung 4-16: Struktur <strong>de</strong>s XML Schemas Transition.xsd.................................................. 31<br />
Abbildung 4-17: Struktur <strong>de</strong>s XML Schemas TransitionCondition.xsd.................................. 31<br />
Abbildung 4-18: Struktur <strong>de</strong>s XMl Schemas ReferenceSignal.xsd.......................................... 33<br />
Abbildung 4-19: Struktur <strong>de</strong>s XML Schemas TargetPlatformDescripion.xsd........................ 34<br />
Abbildung 4-20: Struktur <strong>de</strong>s XML Schemas TargetPlatformDescriptionClock.xsd ............. 35<br />
Abbildung 4-21: Struktur <strong>de</strong>s XML Schemas InterfaceMap.xsd............................................. 36<br />
Abbildung 4-22: Struktur <strong>de</strong>s XML Schemas ProtocolMap.xsd ............................................. 37<br />
Abbildung 5-1:Struktur <strong>de</strong>r Software....................................................................................... 38<br />
Abbildung 5-2: Der IFS Editor................................................................................................. 40<br />
Abbildung 5-3: Fehlerfenster ................................................................................................... 41<br />
Abbildung 5-4: Der System-View............................................................................................. 42<br />
Abbildung 5-5: Der Board-View.............................................................................................. 42<br />
Abbildung 5-6: Der Chip-View ................................................................................................ 43<br />
Abbildung 5-7: Der TPD-Clock-View...................................................................................... 43<br />
Abbildung 5-8: Der Task-View ................................................................................................ 44<br />
Abbildung 5-9: Der Medium-View........................................................................................... 44<br />
Abbildung 5-10: Der Interface-View........................................................................................ 45<br />
Abbildung 5-11: Der Port-View............................................................................................... 46<br />
Abbildung 5-12: Der Register-View......................................................................................... 46<br />
Abbildung 5-13: Der Protocol-View........................................................................................ 47<br />
Abbildung 5-14: Der State-View.............................................................................................. 48<br />
Abbildung 5-15: Der Transition-View ..................................................................................... 48<br />
Abbildung 5-16: Der TransitionCondition-View ..................................................................... 49<br />
Abbildung 5-17: Der AutomataOutput-View ........................................................................... 49<br />
Abbildung 5-18: Der ReferenceSignal-View (Clock)............................................................... 50<br />
Abbildung 5-19: Der ReferenceSignal-View (GlobalDate)...................................................... 50<br />
Abbildung 5-20: Der TimeEvent-View..................................................................................... 51<br />
Abbildung 5-21: Der ReferenceSignal-View (TimerOrDeadline)............................................ 51<br />
Abbildung 5-22: Der InterfaceMap-View ................................................................................ 52<br />
5
2. Einleitung<br />
Diese Arbeit betrachtet Aspekte <strong>de</strong>r Kommunikation, die beim Entwurf eingebetteter Systeme<br />
eine entschei<strong>de</strong>n<strong>de</strong> Rolle spielen. Zentraler Blickpunkt dieser Studienarbeit ist die Definition<br />
und Darstellung <strong>von</strong> <strong>Parametern</strong>, die zur Beschreibung <strong>komplexer</strong> Kommunikations-<br />
<strong>Schnittstellen</strong> innerhalb <strong>von</strong> eingebetteten Systemen wichtig sind. Diese Parameter wur<strong>de</strong>n<br />
festgelegt und mithilfe eines Editors visuell dargestellt.<br />
2.1. Motivation<br />
Der Entwurf eingebetteter Systeme hat sich in <strong>de</strong>n vergangenen Jahren stark verän<strong>de</strong>rt. Die<br />
Systeme wur<strong>de</strong>n immer <strong>komplexer</strong> und die dadurch erhöhten Entwicklungszeiten ließen die<br />
Kosten für die Entwickler in die Höhe schnellen. Um <strong>de</strong>m entgegen zu wirken, kam bald <strong>de</strong>r<br />
Begriff <strong>de</strong>s „Intellectual Property“ (IP) auf, <strong>de</strong>r geistiges Eigentum betrifft, welches <strong>von</strong><br />
einzelnen Entwicklern o<strong>de</strong>r Firmen geschaffen und vermarktet wird. Hierbei han<strong>de</strong>lt es sich<br />
hauptsächlich nicht mehr um Produkte, die Komplettlösungen für gestellte Aufgaben<br />
darstellen, son<strong>de</strong>rn um Teilprodukte. Diese wer<strong>de</strong>n einzeln entworfen und können in<br />
Kombination mit an<strong>de</strong>ren IPs zu komplexen Systemen, wie z.B. einem Handy o<strong>de</strong>r einem<br />
PDA zusammengebaut wer<strong>de</strong>n. Der zentrale Aspekt hierbei ist, dass einmal entworfene IPs<br />
wie<strong>de</strong>r verwen<strong>de</strong>t wer<strong>de</strong>n können. Das spart Zeit bei <strong>de</strong>r Entwicklung und dadurch auch Geld<br />
in <strong>de</strong>n Firmen.<br />
Das an dieser Stelle auftreten<strong>de</strong> Problem ist, dass die gekauften Teilprodukte, wie z.B. ein<br />
Baustein für die Infrarot-Kommunikation, wie er in aktuellen Handys oft existiert, in das<br />
eigene Produkt integriert wer<strong>de</strong>n müssen, ohne die genau Funktionsweise zu kennen. Zur<br />
Anbindung müssen die <strong>Schnittstellen</strong>, die ein logischer Baustein besitzt, genau beschrieben<br />
wer<strong>de</strong>n. Die Anzahl <strong>de</strong>r vorhan<strong>de</strong>nen Anschlüsse, die genaue Beschreibung <strong>de</strong>r eingesetzten<br />
Protokolle, Informationen über Stromverbrauch und weitere Aspekte müssen vom Entwickler<br />
vorher genau studiert wer<strong>de</strong>n, bevor er sich aus <strong>de</strong>m breiten Angebot <strong>von</strong> IPs diejenige<br />
aussucht, die am besten zu <strong>de</strong>m Rest seines Produktes passt. Im Fall eines Handys,<br />
beispielsweise, kann <strong>de</strong>r Entwickler unter verschie<strong>de</strong>nen Infrarot-<strong>Schnittstellen</strong><br />
unterschiedlicher Anbieter wählen.<br />
Eine IP-Beschreibung kann dabei mehr o<strong>de</strong>r weniger umfangreich sein, was wie<strong>de</strong>rum<br />
Einfluss auf die Entwicklungszeit und die Kosten <strong>de</strong>s Endproduktes hat. Es sollte aus ihr<br />
schnell herauszulesen sein, ob die Einbettung <strong>de</strong>r gekauften Elemente in das eigene System<br />
überhaupt möglich ist.<br />
Nach<strong>de</strong>m frem<strong>de</strong> IPs eingekauft wur<strong>de</strong>n, muss <strong>de</strong>r Entwickler diese noch in sein Produkt<br />
integrieren. Die Kommunikation zu an<strong>de</strong>ren Bausteinen innerhalb <strong>de</strong>s eingebetteten Systems<br />
muss aufgebaut wer<strong>de</strong>n. In einigen Fällen kann dies eine einfache Verdrahtung <strong>de</strong>r<br />
<strong>Schnittstellen</strong> zwischen gekaufter IP und <strong>de</strong>m eigenen System sein. Meist wird dafür aber ein<br />
zusätzlicher logischer Baustein benötigt, <strong>de</strong>r die Kommunikation zwischen <strong>de</strong>n bei<strong>de</strong>n<br />
Blöcken übernehmen wird, ein <strong>Schnittstellen</strong>modul. Dieses wird Interface Block (IFB)<br />
genannt. Je nach Komplexität <strong>de</strong>r <strong>Schnittstellen</strong> be<strong>de</strong>utet dies wie<strong>de</strong>rum großen Aufwand in<br />
<strong>de</strong>r Entwicklungsphase.<br />
Die Doktorarbeit <strong>von</strong> Stefan Ihmor, Diplom-Informatiker an <strong>de</strong>r Universität Pa<strong>de</strong>rborn,<br />
beschäftigt sich unter an<strong>de</strong>rem mit <strong>de</strong>m Entwurf <strong>de</strong>r Kommunikation zwischen IPs. Ziel <strong>de</strong>r<br />
Forschung in diesem Bereich ist es, die Interface Blöcke, die die Kommunikation zwischen<br />
einzelnen Blöcken <strong>de</strong>s Systems übernehmen, möglichst automatisiert zu generieren [8, 9, 10,<br />
11]. So wird schon in frühen Entwicklungsphasen <strong>de</strong>r Datenaustausch zwischen gekauften<br />
und selbst entworfenen Bausteinen ermöglicht, ohne viel Arbeit <strong>von</strong> Seiten <strong>de</strong>r Entwickler zu<br />
6
for<strong>de</strong>rn. Diese Studienarbeit unterstützt diese Forschung und zeigt die Ergebnisse auf, die eine<br />
Vorarbeit auf <strong>de</strong>m Weg zur Generierung <strong>de</strong>r IFBs darstellen.<br />
2.2. Problemstellung<br />
Die Vorarbeit auf <strong>de</strong>m Weg zur automatischen Erzeugung eines Interface Blocks teilt sich in<br />
folgen<strong>de</strong> Teilprobleme auf:<br />
1. Die Definition <strong>de</strong>r Parameter, mit <strong>de</strong>ren Hilfe alle benötigten Daten zur Generierung<br />
<strong>de</strong>r Kommunikation zwischen <strong>de</strong>n <strong>Schnittstellen</strong> zweier IPs bereitgestellt wer<strong>de</strong>n.<br />
Hierbei wer<strong>de</strong>n die folgen<strong>de</strong>n Aspekte differenziert betrachtet:<br />
• <strong>de</strong>r physikalische Aufbau – die Struktur – <strong>de</strong>s zu entwickeln<strong>de</strong>n Systems;<br />
• die Eigenschaften <strong>de</strong>r hier auftreten<strong>de</strong>n Komponenten;<br />
• die verwen<strong>de</strong>ten Protokolle <strong>de</strong>r einzelnen IPs.<br />
2. Die Entwicklung eines Editors, <strong>de</strong>r die <strong>de</strong>finierten Parameter<br />
• schnell und übersichtlich visualisiert,<br />
• auf Einhaltung <strong>de</strong>r Datentypen prüft,<br />
• die Konsistenz zwischen <strong>de</strong>n <strong>Schnittstellen</strong>beschreibungen wahrt.<br />
3. Um die Anzeige und Editierbarkeit <strong>de</strong>r Parameter gewährleisten zu könne, muss zuvor<br />
ein Datenformat gewählt wer<strong>de</strong>n, in <strong>de</strong>m die Parameter beschrieben wer<strong>de</strong>n.<br />
2.3. Aufgabenstellung<br />
Die Aufgabe dieser Studienarbeit ist es, die für die Generierung benötigten Parameter zu<br />
<strong>de</strong>finieren. Hierbei stellte sich die Strukturierung in folgen<strong>de</strong> Teilbeschreibungen als sinnvoll<br />
heraus:<br />
• die Architekturbeschreibung <strong>de</strong>s Gesamtsystems,<br />
• die Beschreibung <strong>de</strong>r <strong>Schnittstellen</strong> (Interface Description, IFD) mitsamt eingesetzter<br />
Protokolle,<br />
• die Beschreibung <strong>de</strong>r Zielplattform (Target Platform Description, TPD), auf <strong>de</strong>r ein<br />
generiertes <strong>Schnittstellen</strong>modul (Interface Block, IFB) in <strong>de</strong>r Entwicklungsphase<br />
realisiert wer<strong>de</strong>n soll.<br />
Der entwickelte Editor erfüllt die Aufgabe, die Parameter in <strong>de</strong>r Struktur <strong>de</strong>s XML Schemas<br />
zu visualisieren und bei <strong>de</strong>r Einhaltung <strong>von</strong> Einschränkungen, wie z.B. Datentypen <strong>de</strong>r<br />
einzelnen Parameter, <strong>de</strong>n Entwickler zu unterstützen.<br />
Das Datenformat soll in Form einer auf XML basierten Gesamtbeschreibung festgelegt und<br />
mit Kommentaren versehen wer<strong>de</strong>n.<br />
2.4. Glie<strong>de</strong>rung <strong>de</strong>r Arbeit<br />
Zu Anfang wur<strong>de</strong> bereits eine kleine Einleitung darüber gegeben, welche Intention hinter<br />
dieser Arbeit stand. Der Hintergrund <strong>de</strong>r Aufgabe und die Aufgabenstellung selbst sollten<br />
<strong>de</strong>m Leser damit vermittelt wer<strong>de</strong>n. Im folgen<strong>de</strong>n Kapitel wer<strong>de</strong>n die Grundlagen auf <strong>de</strong>nen<br />
die Arbeit aufbaut und die benutzten Hilfsmittel näher erläutert. Kapitel 4 beinhaltet eine<br />
<strong>de</strong>taillierte Beschreibung <strong>de</strong>s entwickelten Interface Synthesis Formats (IFS Format). Dabei<br />
wird auf die Struktur und <strong>de</strong>n Inhalt <strong>de</strong>s zugehörigen XML Schemas eingegangen. Kapitel 5<br />
zeigt <strong>de</strong>n parallel entwickelten Editor, <strong>de</strong>r auf Basis <strong>de</strong>s IFS Formates die Eingabe und<br />
Anzeige <strong>de</strong>r Parameter ermöglicht, die für die Interface Synthese relevant sind. In Kapitel 6<br />
wird eine abschließen<strong>de</strong> Zusammenfassung über die geleistete Arbeit und die noch offen<br />
stehen<strong>de</strong>n Aufgaben gegeben. Im Anhang befin<strong>de</strong>n sich zusätzlich Ausschnitte <strong>de</strong>s IFS<br />
Formates und Editors in XML und Java.<br />
7
3. State of the Art / Stand <strong>de</strong>r Dinge<br />
3.1. Anknüpfung an das IPQ Transfer Format<br />
Bei <strong>de</strong>r I<strong>de</strong>ntifizierung <strong>de</strong>r benötigten Parameter war ein an<strong>de</strong>res Projekt innerhalb <strong>de</strong>s<br />
Informatik- und Prozesslabors <strong>de</strong>r Universität Pa<strong>de</strong>rborn sehr hilfreich. Im Rahmen dieses<br />
noch laufen<strong>de</strong>n Projektes wur<strong>de</strong> eine formale Beschreibung <strong>komplexer</strong> Komponenten<br />
(Intellectual Property) entworfen, das IPQ Transfer Format.<br />
Eine IP Beschreibung mithilfe <strong>de</strong>s IPQ Transfer Formates hat <strong>de</strong>n Zweck, an<strong>de</strong>ren Designern<br />
die Funktionalität einer entwickelten IP zu vermitteln und somit eine Basis zu schaffen, an<br />
Hand <strong>de</strong>rer ein Entwickler Entscheidungen über die Verwendung <strong>de</strong>r angebotenen IP<br />
innerhalb <strong>de</strong>s eigenen Projektes treffen kann. Bei <strong>de</strong>r Entwicklung <strong>de</strong>s IPQ Transfer Formates<br />
stan<strong>de</strong>n die Vereinheitlichung und Standardisierung <strong>von</strong> IP-Beschreibungen und die<br />
Übertragung dieser, beispielsweise über das Internet, im Vor<strong>de</strong>rgrund.<br />
Das IPQ Transfer Format ist unterteilt in folgen<strong>de</strong> Blöcke:<br />
• IP Charakterization: Die Charakterisierung ist die Sammlung <strong>von</strong> Eigenschaften einer<br />
IP. Dabei han<strong>de</strong>lt es sich um unterschiedlichste Parameter, wie z.B. Energieverbrauch,<br />
Datendurchsatz, Zugehörigkeit zu einem bestimmten Marktsegment o<strong>de</strong>r angewandte<br />
Testmetho<strong>de</strong>n. Während <strong>de</strong>r Suche nach passen<strong>de</strong>n IPs, sollen Designer anhand <strong>de</strong>r<br />
Charakterisierung über eine Suchmaschine die für ihre Zwecke am meisten geeignete<br />
aussuchen.<br />
• IP Content: Der Content (engl. für: Inhalt) stellt die Informationen über <strong>de</strong>n Aufbau<br />
und die Funktionsweise einer gekauften IP dar. Er beinhaltet die exakte<br />
Hardwarebeschreibung, so dass <strong>de</strong>r Entwickler die frem<strong>de</strong> IP aus diesen<br />
Informationen auf seinem eigenen Mikrochip realisieren kann.<br />
Hinzu kommt <strong>de</strong>r folgen<strong>de</strong> Block, <strong>de</strong>r nicht direkt Bestandteil <strong>de</strong>s IPQ Transfer Formats ist.<br />
Er ist als Zusatz gedacht.<br />
• IP Taxonomies: Die Taxonomies beinhalten zusätzliches Wissen über die IP. Dieses<br />
Wissen kann in unterschiedlichster Form <strong>de</strong>m Designer vermittelt wer<strong>de</strong>n. Hierbei<br />
wird die IP nicht einzeln betrachtet, son<strong>de</strong>rn meist in einem Umfeld und größeren<br />
Rahmen. Zusätzlich wird Wissen über bereits angewandte Integrationen in komplexe<br />
Systeme übermittelt.<br />
Das IPQ Transfer Format wur<strong>de</strong> mithilfe eines XML Schemas <strong>de</strong>finiert. Damit wur<strong>de</strong> eine<br />
Baumstruktur geschaffen, die eine strukturierte Beschreibung <strong>de</strong>r wichtigen Parameter<br />
ermöglichte. Die Informationen sind in <strong>de</strong>n Blättern <strong>de</strong>s Baumes, während die Knoten <strong>von</strong> <strong>de</strong>r<br />
Wurzel bis zu <strong>de</strong>n Blättern nur für die logische Einteilung wichtig sind. Beispielsweise hat <strong>de</strong>r<br />
Knoten Frequency (engl. für Frequenz) die Kin<strong>de</strong>r (Unterknoten) Minimum, Typical,<br />
Maximum, wodurch die Frequenz, mit <strong>de</strong>r ein Chip Daten sen<strong>de</strong>t o<strong>de</strong>r empfängt, in einem<br />
Intervall zwischen Minimum und Maximum und einem typischen Wert angegeben wer<strong>de</strong>n<br />
kann.<br />
Das IPQ Transfer Format spielt im Rahmen dieser Studienarbeit eine zentrale Rolle. Es diente<br />
einerseits als Hilfe für die grundlegen<strong>de</strong>n Gedanken, an<strong>de</strong>rerseits war schon früh die enge<br />
Verknüpfung zwischen IPQ und IFS vorgesehen.<br />
Der strukturelle Aufbau, also die Baumstruktur, und die damit verbun<strong>de</strong>ne auf XML<br />
basieren<strong>de</strong> Beschreibung waren <strong>de</strong>r Auslöser, dieses Konzept auch bei <strong>de</strong>r Entwicklung <strong>de</strong>s<br />
IFS Formats anzuwen<strong>de</strong>n.<br />
Wichtiger an dieser Stelle ist, dass im IPQ Transfer Format bereits viele Informationen über<br />
<strong>Schnittstellen</strong> integriert sind. Diese sind allerdings verstreut und damit nicht hierarchisch<br />
geordnet, somit für die <strong>Schnittstellen</strong>synthese ungünstig angeordnet. So sind beispielsweise<br />
8
Informationen über die Anzahl <strong>von</strong> Pins nicht mit Informationen über Spannung, Frequenz<br />
und Latenz in Relation gebracht. Dieser Zusammenhalt zwischen allen wichtigen <strong>Parametern</strong><br />
ist <strong>de</strong>r zentrale Punkt dieser Arbeit. Das IPQ Transfer Format bot dabei einen guten Einstieg,<br />
da im Rahmen <strong>de</strong>s IPQ Projektes schon viel Wissen über Beschreibungen <strong>von</strong> IPs und <strong>de</strong>n<br />
dabei auftreten<strong>de</strong>n <strong>Schnittstellen</strong> gesammelt wur<strong>de</strong>.<br />
Die bereits im IPQ Transfer Format beinhalteten und für die Interface Synthese relevanten<br />
Parameter wur<strong>de</strong>n neu strukturiert und um weitere ergänzt. Dadurch wur<strong>de</strong>n das IPQ Projekt<br />
und das IFS Projekt, <strong>de</strong>m diese Studienarbeit angehört, eng miteinan<strong>de</strong>r verknüpft. Ein<br />
wichtiger Bestandteil <strong>de</strong>s IFS Formates – die zentrale <strong>Schnittstellen</strong>beschreibung – wur<strong>de</strong><br />
komplett in das IPQ Transfer Format integriert. Sie wur<strong>de</strong> – wie auch schon das IPQ Transfer<br />
Format selbst – VSIA konform gehalten. VSIA ist die Virtual Socket Interface Alliance, eine<br />
Organisation, bestehend aus Einzelpersonen, Gesellschaften und an<strong>de</strong>ren Organisationen, die<br />
Standards im Bereich <strong>de</strong>r System-on-Chip Entwicklung festlegt. Der in diesem<br />
Zusammenhang wichtige Standard ist <strong>de</strong>r „Virtual Component Attributes With Formats for<br />
Profiling, Selection and Transfer Standard Version 2 (VCT 2 2.x)“. Er <strong>de</strong>finiert Parameter zur<br />
Beschreibung <strong>von</strong> IPs, Datentypen dieser Parameter und ihre Struktur.<br />
3.2. An<strong>de</strong>re <strong>Schnittstellen</strong>beschreibungen<br />
Neben <strong>de</strong>m hier entwickelten IFS-Format existieren weitere Formate zur Beschreibungen <strong>von</strong><br />
<strong>Schnittstellen</strong>. Einige da<strong>von</strong> sind standardisiert an<strong>de</strong>re proprietär, manche formal und eignen<br />
sich zur automatisierten Synthese an<strong>de</strong>re erfüllen diesen Anspruch nicht.<br />
Eine <strong>Schnittstellen</strong>beschreibung ist an dieser Stelle erwähnenswert, da sie ebenfalls eine<br />
Beschreibung in XML-Codierung nutzt. Diese heisst ComiX [12] und ist am OFFIS in<br />
Ol<strong>de</strong>nburg entwickelt wor<strong>de</strong>n. Die Beschreibung unterschei<strong>de</strong>t sich im Vergleich zum hier<br />
vorgestellten IFS Format darin, dass nur <strong>Schnittstellen</strong> in Registerform beschrieben wer<strong>de</strong>n<br />
können. Die für <strong>de</strong>n Zugriff dieser Register-<strong>Schnittstellen</strong> notwendigen Protokolle weichen in<br />
ihrer Ausdrucksmächtigkeit stark <strong>von</strong> <strong>de</strong>m FSM-basierten Ansatz dieser Arbeit ab, da eine<br />
Beschreibung allgemeiner Protokolle bei ComiX nicht Ziel war.<br />
3.3. XML als Werkzeug<br />
3.3.1. Einleitung<br />
XML ist eine Metasprache, die entwickelt wur<strong>de</strong>, um Daten- und Dokumenttypen zu<br />
<strong>de</strong>finieren. Sie ermöglicht die Formatierung <strong>von</strong> Daten auf bestimmte Weise. Im Vor<strong>de</strong>rgrund<br />
stand bei <strong>de</strong>r Entwicklung <strong>von</strong> XML <strong>de</strong>r Austausch <strong>von</strong> Daten über das Internet. In diesem<br />
Zusammenhang ist es stets notwendig, dass sich Entwickler <strong>von</strong> Programmen, die Daten<br />
austauschen sollen, über ein Format einig wer<strong>de</strong>n, mithilfe <strong>de</strong>ssen die Daten übermittelt<br />
wer<strong>de</strong>n sollen.<br />
Herkömmliche Verfahren waren dabei sehr einseitig und nicht immer erweiterbar. Das<br />
Hauptproblem war, dass in <strong>de</strong>n übermittelten Dateien die Zugehörigkeit <strong>von</strong> einem Datum zu<br />
einem Verwendungszweck nicht sichtbar war. Viele Datenformate beruhten darauf, dass<br />
beispielsweise nur die Reihenfolge <strong>de</strong>r Daten eine Zuordnung eines Datums in einer Datei zu<br />
seiner semantischen Be<strong>de</strong>utung zuließ. Der Gebrauch <strong>von</strong> XML als Beschreibungssprache<br />
<strong>von</strong> Daten liefert diesen Zusammenhang.<br />
An dieser Stelle ist eine Veranschaulichung anhand eines Beispiels sehr hilfreich. Die Daten<br />
<strong>de</strong>r Stu<strong>de</strong>nten, die an einem Seminar teilnehmen, sollen über ein Webformular <strong>von</strong> <strong>de</strong>n<br />
Stu<strong>de</strong>nten eingegeben und an einen Datenbankserver übermittelt wer<strong>de</strong>n. Das Format <strong>de</strong>r<br />
übertragenen Daten könnte wie folgt aussehen:<br />
9
Meier, Hans; hans@upb.<strong>de</strong>; Informatik; 1234567; Bauer, Ralf;<br />
ralf@upb.<strong>de</strong>; Informatik; 2345678;<br />
Im gewählten Format wur<strong>de</strong> das Semikolon (;) zum Trennen <strong>de</strong>r einzelnen Daten <strong>von</strong>einan<strong>de</strong>r<br />
benutzt. Dies ist kein sinnvolles Format, um die Daten zu übertragen. Es geht aus <strong>de</strong>n Daten<br />
nicht hervor, was eine Name, eine Emailadresse o<strong>de</strong>r ein Studiengang ist.<br />
3.3.2. Document Type Definitions<br />
Das folgen<strong>de</strong> Format beinhaltet alle Informationen über die Zusammensetzung <strong>de</strong>r Daten.<br />
<br />
<br />
<br />
Meier, Hans<br />
hansi@upb.<strong>de</strong><br />
Informatik<br />
<br />
<br />
Bauer, Ralf<br />
ralf@upb.<strong>de</strong><br />
Informatik<br />
<br />
Die eigentlichen Daten sind hier durch Tags (so wer<strong>de</strong>n die Schlüsselworte zwischen „“ genannt) umschlossen. Es gibt – bis auf spezielle Ausnahmen – immer ein starten<strong>de</strong>s und<br />
ein abschließen<strong>de</strong>s Tag. Dabei sind starten<strong>de</strong>s und abschließen<strong>de</strong>s i<strong>de</strong>ntisch bis auf <strong>de</strong>n<br />
Schrägstrich „/“. Anhand dieser Tags wird <strong>de</strong>n Daten eine Be<strong>de</strong>utung gegeben. „Bauer, Ralf“<br />
ist somit in einem Datensatz ein<strong>de</strong>utig als Name zu erkennen und durch ein verarbeiten<strong>de</strong>s<br />
Programm <strong>von</strong> <strong>de</strong>m Studienfach unterscheidbar.<br />
Ein Programm, welches die Daten verarbeitet, kann aufgrund dieser Technik relevante Daten<br />
erkennen und ein<strong>de</strong>utig i<strong>de</strong>ntifizieren. Wenn z.B. ein Teil <strong>de</strong>r Daten fehlte, könnte das<br />
Programm <strong>de</strong>n aktuellen Datensatz verwerfen, aber alle an<strong>de</strong>ren Datensätze <strong>de</strong>r Datei<br />
trotz<strong>de</strong>m verarbeiten. Diese Möglichkeit ist bei an<strong>de</strong>ren Formaten nicht gegeben o<strong>de</strong>r nur mit<br />
relativ hohem Aufwand zu realisieren. Um in Programmen ein solches Datenformat<br />
verwen<strong>de</strong>n zu können, wer<strong>de</strong>n mithilfe <strong>von</strong> XML Document Type Definitions (DTD)<br />
Übertragungsformate <strong>de</strong>finiert. Eine passen<strong>de</strong> DTD zu <strong>de</strong>n obigen Datensätzen sieht wie folgt<br />
aus:<br />
<br />
<br />
<br />
<br />
<br />
<br />
Auf die genaue Syntax soll an dieser Stelle nicht eingegangen wer<strong>de</strong>n. Der Gebrauch <strong>von</strong><br />
DTDs stellte sich zu Anfang <strong>de</strong>r Studienarbeit als nicht sinnvoll heraus. Besser als DTDs sind<br />
XML Schemata.<br />
10
3.3.3. XML Schemata<br />
XML Schemata sind flexibler und erlauben wesentlich umfangreichere Definitionen <strong>von</strong><br />
Dokumenttypen. Sie haben gegenüber Document Type Definitions einige Vorteile:<br />
• DTDs sind eine eigene Sprache, XML Schemata sind selbst XML Dokumente.<br />
Dadurch sind Lernaufwand und Schulungskosten bei weitem nicht so hoch.<br />
• Eine Modularisierung ist bei DTDs nur schwierig möglich, bei XML Schemata,<br />
einfach zu realisieren.<br />
• Es gibt nur wenige Datentypen in DTDs.<br />
• Das Definieren <strong>von</strong> eigenen Datentypen in DTDs ist gänzlich unmöglich.<br />
Da, die Definition <strong>de</strong>s IFS Formates mithilfe <strong>von</strong> XML Schemata realisiert wur<strong>de</strong>, wird zum<br />
besseren Verständnis an dieser Stelle <strong>de</strong>m Leser eine kleine Einführung in die Syntax <strong>von</strong><br />
XML Schemata gegeben. Folgen<strong>de</strong>s Dokument ist solch ein Schema.<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
Ein XML Schema ist ein XML Dokument, welches durch das Schlüsselelement<br />
(das Präfix „xsd:“ wird nur per Konvention benutzt - es könnte auch je<strong>de</strong>s<br />
an<strong>de</strong>re sein und sogar, bei entsprechend gewähltem Namensraum, entfallen) eingeleitet und<br />
abgeschlossen wird. Darauf folgen ein o<strong>de</strong>r mehrere -Elemente und<br />
gegebenenfalls Typ<strong>de</strong>finitionen (). Eine korrekte Instanz <strong>de</strong>s obigen<br />
Schemas wäre:<br />
<br />
Müller, Hil<strong>de</strong>gard<br />
hil<strong>de</strong>@upb.<strong>de</strong><br />
Wirschaftsinformatik<br />
<br />
An dieser Stelle sei angemerkt, dass Groß- und Kleinschreibung beachtet wer<strong>de</strong>n müssen. In<br />
<strong>de</strong>m Schema wur<strong>de</strong>n die Tags mit großem Anfangsbuchstaben <strong>de</strong>finiert. Folgen<strong>de</strong> Instanz<br />
wäre somit nicht korrekt:<br />
<br />
Müller, Hil<strong>de</strong>gard<br />
hil<strong>de</strong>@upb.<strong>de</strong><br />
Wirschaftsinformatik<br />
<br />
Datentypen:<br />
Der Standarddatentyp in XML Schemata ist anyType. Von diesem sind alle an<strong>de</strong>ren<br />
Datentypen abgeleitet. Dies ermöglicht <strong>de</strong>n Aufbau einer Datenstruktur, in <strong>de</strong>r an manchen<br />
Stellen beliebige Inhalte vorkommen dürfen. Der Default-Typ anyType muss nicht explizit<br />
11
angegeben wer<strong>de</strong>n. Bei fehlen<strong>de</strong>r Typangabe wird <strong>de</strong>r Datentyp implizit auf anyType gesetzt.<br />
Es wird zwischen einfachen und komplexen Datentypen unterschie<strong>de</strong>n.<br />
Zu <strong>de</strong>n einfachen Datentypen zählen unter an<strong>de</strong>rem die ‚atomaren Typen’. Dies sind die aus<br />
an<strong>de</strong>ren Programmiersprachen weit verbreiteten Typen wie z.B. string, float, <strong>de</strong>cimal,<br />
boolean, date, time.<br />
Beson<strong>de</strong>re Beachtung muss an dieser Stelle <strong>de</strong>r Ableitung <strong>von</strong> Datentypen aus bereits<br />
<strong>de</strong>finierten gegeben wer<strong>de</strong>n. So ist integer z.B. kein atomarer Datentyp. Integer ist durch<br />
Ableitung <strong>von</strong> <strong>de</strong>cimal durch Einschränkung auf null Nachkommastellen entstan<strong>de</strong>n.<br />
Komplexe Datentypen wer<strong>de</strong>n durch das -Element <strong>de</strong>finiert. Sie dürfen<br />
weitere Elemente enthalten sowie Attribute tragen. Sowohl Elemente als auch Attribute<br />
können dabei Defaultwerte erhalten.<br />
Im Beispiel wur<strong>de</strong> <strong>de</strong>r komplexe Datentyp Stu<strong>de</strong>nt <strong>de</strong>finiert. Er besteht aus <strong>de</strong>n drei<br />
aufeinan<strong>de</strong>r folgen<strong>de</strong>n Elemenen Name, Mailadresse, Studienfach, die alle vom Typ string<br />
sind.<br />
Das Tag gibt das Inhaltsmo<strong>de</strong>ll an. Bei komplexen Datentypen können<br />
verschie<strong>de</strong>ne Inhaltsmo<strong>de</strong>lle verwen<strong>de</strong>t wer<strong>de</strong>n:<br />
• wird benutzt, falls alle Kin<strong>de</strong>lemente genau ein Mal o<strong>de</strong>r gar nicht auftreten<br />
sollen und die Reihenfolge dieser beliebig ist<br />
• fin<strong>de</strong>t Anwendung, falls sowohl die Anzahl <strong>de</strong>r Kin<strong>de</strong>lemente als auch<br />
die Reihenfolge genau festgelegt ist<br />
• wird benutzt, falls genau eines <strong>de</strong>r Kin<strong>de</strong>lemente in <strong>de</strong>r Instanz<br />
angegeben wer<strong>de</strong>n soll<br />
• bietet die Möglichkeit, Elemente zu Gruppen zusammenzufassen und ist<br />
somit für die Übersichtlichkeit und Pflege eines Schemas nützlich. Außer<strong>de</strong>m kann<br />
eine mit <strong>de</strong>finierte Gruppe an verschie<strong>de</strong>nen Stellen im Schema referenziert<br />
wer<strong>de</strong>n.<br />
Modularisierung:<br />
Wie bereits erwähnt, bieten XML Schemata eine einfache Möglichkeit, größere Schemata zu<br />
modularisieren. Dies kann sehr einfach geschehen. Der oben bereits <strong>de</strong>finierte Typ Stu<strong>de</strong>nt<br />
kann einfach innerhalb an<strong>de</strong>rer Schemata eingebun<strong>de</strong>n wer<strong>de</strong>n. Nehmen wir an, dass die im<br />
Beispiel verwen<strong>de</strong>te Definition <strong>von</strong> Stu<strong>de</strong>nt in <strong>de</strong>r Datei Stu<strong>de</strong>nt.xsd erfolgt ist. Sie wird nun<br />
in einem neuen Schema, z.B. Fachschaftsrat.xsd wie folgt eingebun<strong>de</strong>n:<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
12
Vorsitzen<strong>de</strong>r und ZweiterVorsitzen<strong>de</strong>r sind bei<strong>de</strong> vom Typ Stu<strong>de</strong>nt. Eine gültige Instanz<br />
hierzu wäre folgen<strong>de</strong> XML Datei:<br />
<br />
<br />
<br />
Meier, Hans<br />
hansi@upb.<strong>de</strong><br />
Informatik<br />
<br />
<br />
Bauer, Ralf<br />
ralf@upb.<strong>de</strong><br />
Informatik<br />
<br />
<br />
Die Technik <strong>de</strong>r Modularisierung wur<strong>de</strong> bei <strong>de</strong>r Entwicklung <strong>de</strong>s IFS Formates verstärkt<br />
eingesetzt. Große XML Schemata lassen sich auf diese Weise in viele kleine aufteilen, was<br />
die Übersichtlichkeit för<strong>de</strong>rt. Vorteil dieser Technik ist außer<strong>de</strong>m, dass – wie schon im<br />
Beispiel angewen<strong>de</strong>t – bereits <strong>de</strong>finierte Typen öfter wie<strong>de</strong>r verwen<strong>de</strong>t wer<strong>de</strong>n können.<br />
Defaultwerte:<br />
Innerhalb eines Elementes kann bereits im XML Schema ein Standardwert gesetzt wer<strong>de</strong>n.<br />
Dies ist hilfreich, wenn in einer Instanz bestimmte Werte nicht angegeben wer<strong>de</strong>n, aber später<br />
ein Wert benötigt wird. Wenn im Fall <strong>de</strong>r obigen Instanz beispielsweise die Daten über einen<br />
Webserver in eine Datenbank eingefügt wer<strong>de</strong>n, wür<strong>de</strong> ein Schema-Prozessor, <strong>de</strong>r die Daten<br />
und das Schema vergleicht, <strong>de</strong>n Standardwert <strong>von</strong> Fachschaftsname übernehmen. Auch diese<br />
Technik fand bei <strong>de</strong>r Erstellung <strong>de</strong>s IFS Schemas Verwendung. Sämtliche Elemente innerhalb<br />
<strong>de</strong>s IFS Schemas haben Standardwerte, die im Schema verankert sind.<br />
Enumerations:<br />
Durch die Anwendung <strong>de</strong>r Technik <strong>de</strong>r „Enumeration“ kann in einem XML Schema eine<br />
Liste an Auswahlmöglichkeiten zu einem Element gespeichert wer<strong>de</strong>n.<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
Das im Beispiel verwen<strong>de</strong>te Element „Geschlecht“ ist vom Datentyp String, <strong>de</strong>ssen<br />
Wertebereich auf die in <strong>de</strong>r Enumeration angegebenen Werte „männlich“ und „weiblich“<br />
beschränkt wur<strong>de</strong>. Diese Technik wird im IFS Format an vielen Stellen benutzt, an <strong>de</strong>nen eine<br />
Auswahl vorgegebener Werte sinnvoll ist.<br />
13
4. Das IFS Format<br />
Das IFS Format (Interface Synthesis Format) ist als XML Schema realisiert und in<br />
hierarchische Module aufgeteilt. Das IFS Format beinhaltet alle für die automatisierte<br />
<strong>Schnittstellen</strong>synthese notwendigen Informationen. Dazu gehören Architektur-,<br />
<strong>Schnittstellen</strong>- und Zielplattformbeschreibungen. Die Aufteilung <strong>de</strong>r einzelnen<br />
Beschreibungen in verschie<strong>de</strong>ne Sub-Schemata ermöglicht die Wie<strong>de</strong>rverwendung an<br />
verschie<strong>de</strong>nen Stellen. Im Folgen<strong>de</strong>n wird <strong>de</strong>r strukturelle und inhaltliche Aufbau <strong>de</strong>s IFS<br />
Gesamtschemas erläutert. Darauf folgt eine <strong>de</strong>taillierte Erklärung <strong>de</strong>r einzelnen Schemata.<br />
4.1. Grundgedanken<br />
4.1.1. Aufbau <strong>de</strong>s Schemas<br />
Die Struktur <strong>de</strong>s IFS Formates beruht auf <strong>de</strong>r Architektur eines komplexen<br />
Kommunikationssystems. Neben <strong>de</strong>r logischen Protokollsicht wer<strong>de</strong>n im IFS Format auch<br />
physikalische und elektrotechnische Eigenschaften berücksichtigt. Im IFS Format wer<strong>de</strong>n<br />
damit Aspekte <strong>de</strong>r Strukturbeschreibung und Verhaltensbeschreibung vereint. Diese<br />
Informationen sind grundlegen<strong>de</strong>r Bestandteil für eine darauf aufbauen<strong>de</strong> Synthese, die<br />
ausgehend vom IFS Format automatisiert <strong>Schnittstellen</strong>module (IFB, Interface Block)<br />
generiert.<br />
Ein durch das IFS Format beschriebenes Gesamtsystem besteht aus verschie<strong>de</strong>nen<br />
Hauptplatinen (Boards), auf <strong>de</strong>nen verschie<strong>de</strong>ne Recheneinheiten, wie z.B. Prozessoren,<br />
FPGAs (Field programmable gate array) und ASICs (Application-specific integarted circuits),<br />
angebracht sind. Diese wer<strong>de</strong>n im Folgen<strong>de</strong>n zusammenfassend mit <strong>de</strong>m Begriff Chip<br />
bezeichnet. Innerhalb dieser Chips sind die Tasks verwirklicht. Die Tasks sind die<br />
Funktionsblöcke, welche innerhalb <strong>de</strong>s Gesamtsystems Algorithmen (Funktionalität)<br />
realisieren. Auf allen Ebenen <strong>de</strong>r Systemarchitektur sind Medien, z.B. Busse, vorhan<strong>de</strong>n. Alle<br />
Systemkomponenten (Board, Chip, Task, Medium) außer <strong>de</strong>m System selbst weisen<br />
<strong>Schnittstellen</strong> auf, die die Kommunikation innerhalb einer Hierarchieebene bzw. zur<br />
angrenzen<strong>de</strong>n Ebene ermöglichen.<br />
Folgen<strong>de</strong> Abbildung zeigt eine beispielhafte Systemarchitektur, mit <strong>de</strong>n einzelnen<br />
Systemkomponenten, <strong>Schnittstellen</strong> und Kommunikationswegen.<br />
14
System<br />
Task<br />
Chip<br />
IFB<br />
Task<br />
Task<br />
Chip<br />
Task<br />
Board<br />
Chip<br />
Board<br />
Schnittstelle<br />
mit Connector<br />
<strong>Schnittstellen</strong><br />
Verdrahtung<br />
Medium<br />
Abbildung 4-1: Komplexe Systemarchitektur<br />
In Abbildung 4-1 sind unterschiedliche Arten <strong>von</strong> Kommunikation in einem Szenario<br />
dargestellt. Es wird ein System mit zwei Boards dargestellt. Im rechten Board ist die<br />
Kommunikation zwischen zwei Tasks innerhalb eines Chips über einen Medium (On-Chip-<br />
Bus) realisiert. Zusätzlich kommunizieren bei<strong>de</strong> Tasks dieses Chips über Chip- und<br />
Boardgrenzen hinaus mit <strong>de</strong>r oberen Task <strong>de</strong>s linken Boards. Im linken Board ist zwischen<br />
<strong>de</strong>m oberen und unteren Chip ein On-Board-Bus dargestellt. Über dieses Medium<br />
kommunizieren die bei<strong>de</strong>n Chips miteinan<strong>de</strong>r sowie mit an<strong>de</strong>ren, hier nicht dargestellten<br />
Komponenten. Im oberen Bereich <strong>von</strong> Abbildung 4-1 sind zwei Medien dargestellt, über die<br />
die bei<strong>de</strong>n Boards miteinan<strong>de</strong>r kommunizieren. Das obere Medium könnte dabei eine<br />
Kabelverbindung, das Untere ein Bussystem wie<strong>de</strong>rgeben.<br />
Wenn innerhalb dieser geschlossenen Systemarchitektur nun zwei aktive Systemkomponenten<br />
(Task o<strong>de</strong>r Medium) miteinan<strong>de</strong>r kommunizieren wollen, diese aber inkompatibel zueinan<strong>de</strong>r<br />
sind, wird ein IFB (Interface Block) benötigt. Ein IFB kann nur innerhalb eines Chips<br />
implementiert wer<strong>de</strong>n und ist aufgrund <strong>de</strong>r Zielplattformbeschreibung <strong>de</strong>s Chips auch an<br />
diesen gebun<strong>de</strong>n.<br />
In diesem Beispiel benötigt die linke Task <strong>de</strong>s rechten Boards ein solches <strong>Schnittstellen</strong>modul<br />
(IFB), für die Verständigung mit <strong>de</strong>r oberen Task <strong>de</strong>s linken Boards. Der IFB ist hier<br />
notwendig, weil die <strong>Schnittstellen</strong> <strong>de</strong>r bei<strong>de</strong>n Tasks nicht kompatibel sind und eine direkte<br />
Verdrahtung damit unmöglich ist. Die automatische Erzeugung dieser <strong>Schnittstellen</strong>module<br />
ist eine weiterführen<strong>de</strong> Arbeit im Umfeld <strong>de</strong>r <strong>Schnittstellen</strong>synthese. Die Voraussetzungen für<br />
eine automatisierte Generierung soll mithilfe <strong>de</strong>s IFS Formates geschaffen wer<strong>de</strong>n.<br />
15
4.1.2. Aufteilung in Sub-Schemata<br />
Die Fülle an Informationen, die zur Beschreibung <strong>von</strong> Kommunikationsschnittstellen in<br />
komplexen Systemen benötigt wer<strong>de</strong>n, machte es sinnvoll, das IFS Format in logisch<br />
getrennte Formate aufzuteilen. Eine solche Aufteilung ermöglicht separate<br />
Teilbeschreibungen einzelner Systemkomponenten. Beispielsweise kommt in vielen<br />
Systemen keine Aufteilung in mehrere Boards vor. Hierbei wür<strong>de</strong> eine Mo<strong>de</strong>llierung ab<br />
Boar<strong>de</strong>bene reichen. Die gewählte Aufteilung vereinfacht weiterhin die Wie<strong>de</strong>rverwendung<br />
<strong>von</strong> vollständigen Systemkomponenten. Der später vorgestellte IFS Editor benutzt allerdings<br />
immer die Systemkomponente „System“ als Wurzelknoten <strong>de</strong>r Systemarchitektur.<br />
Das IFS Format teilt sich in folgen<strong>de</strong> logische Formate (Schemata) auf:<br />
• Systemarchitektur<br />
o Systemkomponenten: System, Board, Chip, Task, Medium und IFB<br />
o Verdrahtung<br />
• <strong>Schnittstellen</strong>beschreibung (IFD, Interface Description)<br />
o Physikalische Schnittstelle (Struktur, Geometrie)<br />
o Physikalische Eigenschaften<br />
o Protokolle<br />
• Zielplattformbeschreibung (TPD, Target Platform Description)<br />
Die Formate sind aus implementierungstechnischen Grün<strong>de</strong>n wie<strong>de</strong>rum in Einzelschemata<br />
aufgeteilt. Die Aufteilung in die soeben genannten logischen Formate spiegelt sich bei<br />
genauer Betrachtung auch im Aufbau <strong>de</strong>s Schemas wi<strong>de</strong>r. Die Systemarchitekturbeschreibung<br />
liefert das Grundgerüst, in das die IFD und die TPD eingeglie<strong>de</strong>rt sind. Die Protokolle, die<br />
Teil <strong>de</strong>r IFD sind und damit logisch zur <strong>Schnittstellen</strong>beschreibung gehören, sind im XML<br />
Schema aus dieser herausgenommen und auf <strong>de</strong>r Systemebene eingehängt wor<strong>de</strong>n. Der Grund<br />
hierfür lag darin, dass Protokolle in einem System mehrfach vorkommen können, und die<br />
Beschreibung so nur einmal erstellt wer<strong>de</strong>n muss. Die Verbindung zwischen IFD Schema und<br />
<strong>de</strong>n Protokollen erfolgt daher über einen Referenzmechanismus.<br />
4.1.3. Verwen<strong>de</strong>te Datentypen<br />
Bevor hier <strong>de</strong>r gesamte Aufbau <strong>de</strong>s IFS Formates <strong>de</strong>tailliert erklärt wird, sollten noch ein paar<br />
Worte zu <strong>de</strong>n verwen<strong>de</strong>ten Datentypen gesagt wer<strong>de</strong>n. Die meisten dieser Datentypen wur<strong>de</strong>n<br />
aus <strong>de</strong>n bereits für das IPQ Transfer Format entworfenen Datentypen übernommen. Das<br />
Präfix „ipq:“ kennzeichnet diese. Sie sind alle aus <strong>de</strong>n XML Grunddatentypen abgeleitet. Die<br />
vollständige Definition in XML Notation erfolgt im Anhang unter 8.1.1. Folgen<strong>de</strong> Datentypen<br />
treten im IFS Format auf:<br />
ipq:M..16<br />
- ist abgeleitet <strong>von</strong> xs:string,<br />
- kann beliebige Zeichenketten aufnehmen,<br />
- ist beschränkt auf eine Länge <strong>von</strong> 16 Zeichen.<br />
ipq:M..32<br />
- entspricht ipq:M..16, kann aber bis zu 32 Zeichen fassen.<br />
ipq:M..256<br />
- entspricht ipq:M..16, kann aber bis zu 256 Zeichen aufnehmen.<br />
16
ipq:NR1..8<br />
- ist abgeleitet <strong>von</strong> xs:unsignedInt,<br />
- ist nur in <strong>de</strong>r Lage positive ganze Zahlen o<strong>de</strong>r 0 aufnehmen,<br />
- ist eingegrenzt auf eine Länge 8 Stellen.<br />
ipq:NR1..16<br />
- ist gleichzusetzen mit ipq:NR1..8, kann aber bis zu 16 Stellen beinhalten.<br />
ipq:NR2S..3.3<br />
- ist eine Ableitung <strong>von</strong> xs:<strong>de</strong>cimal,<br />
- kann positive und negative Dezimalzahlen aufnehmen,<br />
- ist eingegrenzt auf eine Länge <strong>von</strong> 6 Stellen, wobei maximal 3 vor und 3 nach <strong>de</strong>m<br />
Komma möglich sind.<br />
ipq:MinTypMaxNR2S..3.3<br />
- ist ein <strong>komplexer</strong> (zusammengesetzter) Datentyp,<br />
- strukturiert ein Attribut in 3 Sub-Attribute vom Typ ipq:NR2s..3.3, wodurch die Angabe<br />
<strong>von</strong> minimalem, typischem und maximalem Wert möglich ist.<br />
4.2. Systemarchitektur<br />
Die Systemarchitektur ist ein Plattform-basiertes Mo<strong>de</strong>ll, das alle Systemkomponenten, die<br />
zur Interface-Synthese benötigt wer<strong>de</strong>n, verwaltet. Da in <strong>de</strong>r Systemarchitektur mehrere<br />
Systemkomponenten instanziiert wer<strong>de</strong>n können wird die Beschreibung <strong>komplexer</strong> Szenarien<br />
ermöglicht. Auf oberster Ebene <strong>de</strong>r Systemarchitektur steht das System selbst. Als weitere<br />
Systemkomponenten folgen Board, Chip, Task und Medium. Hinzu kommen noch die<br />
Interface Blöcke (IFB), die das Produkt <strong>de</strong>r <strong>Schnittstellen</strong>synthese sind.<br />
4.2.1. Versionsangaben<br />
Die Vereinheitlichung gleicher und ähnlicher Parameter stand bei <strong>de</strong>r Entwicklung <strong>de</strong>s<br />
Schemas im Vor<strong>de</strong>rgrund. Um <strong>de</strong>m Entwickler die Unterscheidung gleicher Komponenten<br />
innerhalb seines Projektes zu ermöglichen, wie zum Beispiel mehrerer Chips o<strong>de</strong>r Tasks,<br />
wur<strong>de</strong> ein XML Schema erstellt, welches Versionsangaben und Informationen über <strong>de</strong>n<br />
Entwickler enthält. Es han<strong>de</strong>lt sich dabei um Version.xsd. Dieses Teil-Schema wird an<br />
verschie<strong>de</strong>nen Stellen innerhalb <strong>de</strong>s Gesamtschemas eingebun<strong>de</strong>n, wodurch unterschiedliche<br />
Komponenten – unter an<strong>de</strong>rem das System selbst – i<strong>de</strong>ntifiziert wer<strong>de</strong>n können. Es beinhaltet<br />
folgen<strong>de</strong> Parameter mit <strong>de</strong>n angegebenen Datentypen, die schon in 4.1.3 erläutert wur<strong>de</strong>n:<br />
Design (ipq:M..256):<br />
Hiermit soll <strong>de</strong>r Designer <strong>de</strong>r zugehörigen Komponente einen aussagekräftigen Namen geben.<br />
Description (ipq:M..256):<br />
Dies ermöglicht <strong>de</strong>m Entwickler eine kurze Beschreibung <strong>de</strong>r Funktionalität dieser<br />
Komponente.<br />
Designer (ipq:M..256):<br />
Jener Parameter i<strong>de</strong>ntifiziert <strong>de</strong>n zuständigen Entwickler, wie z.B. durch seinen Namen o<strong>de</strong>r<br />
eine Abteilungsbezeichnung bei mehreren Entwicklern.<br />
17
Company (ipq:M..256):<br />
Dies ist die Angabe <strong>de</strong>r Firma, die die betreffen<strong>de</strong> Komponente entwickelt hat. Falls einzelne<br />
Komponenten nicht innerhalb <strong>de</strong>rselben Firma erstellt wur<strong>de</strong>n, son<strong>de</strong>rn <strong>von</strong> an<strong>de</strong>ren Firmen<br />
gekauft wur<strong>de</strong>n, ist diese Angabe sinnvoll.<br />
Release (ipq:NR1..8):<br />
Dies ist die Nummer <strong>de</strong>s Releases.<br />
Version (ipq:NR1..8):<br />
Das ist die Versionsnummer <strong>de</strong>r Komponente.<br />
Die exakte XML Notation <strong>de</strong>s Version-Schemas befin<strong>de</strong>t sich im Anhang unter 8.1.2.1.<br />
4.2.2. System<br />
Die oberste Ebene <strong>de</strong>s IFS Formates bil<strong>de</strong>t die Systemschicht. Sie wird mithilfe <strong>de</strong>s Moduls<br />
System.xsd beschrieben. Es bil<strong>de</strong>t die Wurzel <strong>de</strong>s IFS Formates und repräsentiert das<br />
Gesamtprojekt aus Sicht <strong>de</strong>s Entwicklers. Eine Übersicht über <strong>de</strong>n Aufbau dieses Teilschemas<br />
liefert folgen<strong>de</strong> Abbildung.<br />
Abbildung 4-2: Aufbau <strong>de</strong>s XML Schemas System.xsd<br />
Wie alle Komponenten <strong>de</strong>r Systemarchitektur hat das System Parameter, die ein ein<strong>de</strong>utiges<br />
I<strong>de</strong>ntifizieren und Referenzieren ermöglichen. Es han<strong>de</strong>lt sich dabei um folgen<strong>de</strong> Parameter,<br />
die in I<strong>de</strong>ntification zusammengefasst sind.<br />
Name (ipq:M..256):<br />
An dieser Stelle kann <strong>de</strong>r Entwickler <strong>de</strong>m System bzw. <strong>de</strong>m Projekt einen Namen geben.<br />
ID (ipq:NR1..16):<br />
Zur internen I<strong>de</strong>ntifizierung und zum Bil<strong>de</strong>n <strong>von</strong> Referenzen erhalten nahezu sämtliche<br />
Komponenten und Teilkomponenten, die innerhalb <strong>de</strong>s IFS Schemas vorkommen, eine ID.<br />
Ihre Ein<strong>de</strong>utigkeit ist beschränkt auf die Ebene, in <strong>de</strong>r sie verwen<strong>de</strong>t wird. Hierbei han<strong>de</strong>lt es<br />
sich um die ID, mit <strong>de</strong>r das Gesamtprojekt i<strong>de</strong>ntifiziert wer<strong>de</strong>n kann.<br />
18
Description (ipq:M..256):<br />
Mithilfe <strong>de</strong>r Description kann <strong>de</strong>r Designer Anmerkungen und Kommentare zum System in<br />
<strong>de</strong>n Daten <strong>de</strong>r Beschreibung verankern. Die Description kommt genauso wie die ID und <strong>de</strong>r<br />
Name in verschie<strong>de</strong>nen Komponenten <strong>de</strong>s Systemarchitektur und <strong>de</strong>r <strong>Schnittstellen</strong>beschreibung<br />
vor.<br />
Des Weiteren beinhaltet das System-Schema das bereits erwähnte Schema zur Angabe <strong>von</strong><br />
Versionsinformation. Dessen Aufbau wur<strong>de</strong> in 4.2.1 bereits <strong>de</strong>tailliert dargelegt und fin<strong>de</strong>t<br />
sich in Abbildung 4-2: Aufbau <strong>de</strong>s XML Schemas System.xsd in <strong>de</strong>m Knoten Version wie<strong>de</strong>r.<br />
Die Knoten BoardList, MediumList, ProtocolList und InterfaceMapList repräsentieren Listen<br />
weiterer Komponenten, die später in separaten Kapiteln behan<strong>de</strong>lt wer<strong>de</strong>n. Die Liste <strong>de</strong>r<br />
Boards, die in <strong>de</strong>r Systemhierarchie auf das System folgen, wird in <strong>de</strong>r BoardList verwaltet.<br />
Auf gleicher Stufe befin<strong>de</strong>t sich die Liste <strong>de</strong>r Medien (MediumList), die beispielsweise zum<br />
Verbin<strong>de</strong>n mehrerer Boards verwen<strong>de</strong>t wer<strong>de</strong>n. Wie bereits an an<strong>de</strong>rer Stelle erwähnt, sind<br />
die im Gesamtsystem verwen<strong>de</strong>ten Protokolle ebenfalls auf <strong>de</strong>r Systemebene in <strong>de</strong>r<br />
ProtocolList verankert. Die Verbindungen <strong>von</strong> <strong>Schnittstellen</strong> <strong>de</strong>r Systemkomponenten<br />
(Boards und Medien) auf Systemebene wer<strong>de</strong>n im Einzelnen durch die „Interface Maps“<br />
beschrieben und in <strong>de</strong>r InterfaceMapList verwaltet.<br />
Die exakte XML Notation <strong>de</strong>s System-Schemas befin<strong>de</strong>t sich im Anhang unter 8.1.2.2.<br />
4.2.3. Board<br />
Einzelne Plattformen, z.B. Steckkarten wie PCI-Karten, o<strong>de</strong>r auch separate Platinen wie<br />
FPGA-Boards, auf <strong>de</strong>nen sich elektrotechnische Bausteine befin<strong>de</strong>n, wer<strong>de</strong>n durch <strong>de</strong>n<br />
Begriff Board vereinheitlicht. Aus ihnen wird das Gesamtsystem zusammengesetzt. Es ist<br />
allerdings auch möglich, dass nur ein einziges Board vorhan<strong>de</strong>n ist. Folgen<strong>de</strong> Abbildung<br />
liefert einen Überblick über die Struktur eines Boards.<br />
Abbildung 4-3: Aufbau <strong>de</strong>s XML Schemas Board.xsd<br />
Der Part <strong>de</strong>r I<strong>de</strong>ntification weicht nur gering <strong>von</strong> <strong>de</strong>m entsprechen<strong>de</strong>n Block <strong>de</strong>s Systems ab.<br />
Hierbei sind die Parameter Name (ipq:M..256), ID (ipq:NR1..16) und Description<br />
(ipq:M..256) in ihrer Funktion gleich <strong>de</strong>nen in System. Ergänzend kommt noch ein Parameter,<br />
<strong>de</strong>r eine Klassifizierung <strong>von</strong> Boards ermöglicht:<br />
19
Category (ipq:M..256):<br />
Die Board-Kategorie ordnet <strong>de</strong>m Board einen bestimmten Typ zu. Hierbei bietet das IFS<br />
Format mittels <strong>de</strong>r Technik <strong>de</strong>r Enumerations bis jetzt zwei Typen zur Auswahl an. Eine<br />
spätere Erweiterung <strong>de</strong>s Schemas ist möglich. Die Beschränkung auf die Typen Altera UP1<br />
und Spy<strong>de</strong>r Virtex XCV300 begrün<strong>de</strong>t sich darin, dass bisher ausschließlich diese bei<strong>de</strong>n<br />
FPGA-Board Typen verwen<strong>de</strong>t wur<strong>de</strong>n.<br />
Die Versionsangaben aus Version sind selbstverständlich auch in Board vorhan<strong>de</strong>n. Ebenso<br />
wie das System besitzt ein Board die Parametergruppen InterfaceMapList und MediumList.<br />
Die Funktion dieser Parameter wird später an passen<strong>de</strong>r Stelle näher erläutert. Die<br />
nachfolgen<strong>de</strong> Hierarchieebene ist die Menge an Chips, die auf einem Board vorhan<strong>de</strong>n sind<br />
und in <strong>de</strong>r ChipList zusammengefasst wer<strong>de</strong>n. Das Board ist die erste Komponente, die<br />
<strong>Schnittstellen</strong> aufweist. Diese wer<strong>de</strong>n in <strong>de</strong>r InterfaceList verwaltet. Eine genaue<br />
Beschreibung <strong>de</strong>r <strong>Schnittstellen</strong> wird in 4.3 später erbracht.<br />
Die exakte XML Notation <strong>de</strong>s Board-Schemas befin<strong>de</strong>t sich im Anhang unter 8.1.2.3.<br />
4.2.4. Chip<br />
Der nächste Betrachtungspunkt betrifft einzelne Chips. Hierbei han<strong>de</strong>lt es sich um eine<br />
Implementierungsplattform, wie z.B. FPGAs o<strong>de</strong>r ASICs, die unterschiedliche Aufgaben<br />
innerhalb eines Systems übernehmen können In ihnen wer<strong>de</strong>n die eigentlich ausführen<strong>de</strong>n<br />
Komponenten, die Tasks, sowie Medien (OnChipBus) und IFBs implementiert. Ein Chip wird<br />
wie<strong>de</strong>rum durch eine Menge <strong>von</strong> Parametergruppen und Sub-Schemata zusammengesetzt:<br />
Abbildung 4-4: Aufbau <strong>de</strong>s XML Schemas Chip.xsd<br />
20
Die Module Version und I<strong>de</strong>ntification sind auf Chipebene nicht an<strong>de</strong>rs als auf <strong>de</strong>r<br />
Boar<strong>de</strong>bene. Die Category ist wie<strong>de</strong>rum als Enumeration realisiert, durch <strong>de</strong>ren Hilfe ein<br />
Angebot an Auswahlmöglichkeiten im XML Schema bereit steht: Xilinx Virtex<br />
XCV300BG432 -4, Xilinx Virtex XCV 300E6PQ240C, Altera Flex EPF10K20RC240-4 und<br />
Altera Max EPM7128SLC84-7.<br />
Die IFBList ist dafür vorgesehen, später bereits generierte o<strong>de</strong>r selbst erzeugte<br />
<strong>Schnittstellen</strong>module, Interface Blöcke, aufzunehmen. Mithilfe <strong>de</strong>r IPList wer<strong>de</strong>n vollständige<br />
IPs in Form <strong>de</strong>s IPQ Transfer Formates in das IFS Format eingebun<strong>de</strong>n. Das IPQ Transfer<br />
Format ist allerdings nicht Bestandteil dieser Studienarbeit und wird nicht weiter ausgeführt.<br />
Bereits auf Boar<strong>de</strong>bene wur<strong>de</strong>n InterfaceList und InterfaceMapList erwähnt. Ein Chip hat<br />
ebenso <strong>Schnittstellen</strong> und Verdrahtungen (Interface Maps). Hinzu kommen wie<strong>de</strong>rum die<br />
Medien, welche auf Chipebene genutzt wer<strong>de</strong>n können. Diese wer<strong>de</strong>n in <strong>de</strong>r MediumList<br />
verwaltet.<br />
Ein wichtiger Bestandteil <strong>de</strong>r Chip-Beschreibung ist die Target Platform Description. Dabei<br />
han<strong>de</strong>lt es sich um eine <strong>de</strong>taillierte Beschreibung <strong>de</strong>r Ressourcen und Clock-Netzwerke <strong>de</strong>s<br />
Chips. Diese Informationen <strong>de</strong>r Zielplattform wer<strong>de</strong>n zur Synthese, d.h. bei <strong>de</strong>r Generierung<br />
<strong>von</strong> Interface Blöcken (IFB), benötigt. Das be<strong>de</strong>utet, dass ein generierter IFB an eine<br />
bestimmte Chip-Kategorie gebun<strong>de</strong>n ist. Eine <strong>de</strong>taillierte Beschreibung <strong>de</strong>r hierfür<br />
vorgesehenen Parameter erfolgt später in 4.3.3.<br />
Die nächste Hierarchiestufe <strong>de</strong>r Systemarchitektur unterhalb <strong>de</strong>r Chips ist die Taskebene, auf<br />
<strong>de</strong>r auch Medien und IFBs vorkommen. Die auf einem Chip realisierten Tasks wer<strong>de</strong>n in <strong>de</strong>r<br />
TaskList beschrieben, Medien und IFBs entsprechend in <strong>de</strong>r Medium- bzw. IFBList.<br />
Die vollständige XML Notation <strong>de</strong>s Chip-Schemas ist <strong>de</strong>r <strong>de</strong>s Board-Schemas bis auf Namen<br />
und zusätzliche Parametergruppen sehr ähnlich und daher nicht explizit im Anhang<br />
vorhan<strong>de</strong>n.<br />
4.2.5. Task<br />
Die letzte Hierarchiestufe <strong>de</strong>r Systemarchitektur bezieht sich unter an<strong>de</strong>rem auf die Tasks.<br />
Dabei han<strong>de</strong>lt es sich um atomare Komponenten innerhalb <strong>de</strong>r Systemarchitektur, die jeweils<br />
einzelne Funktionalität <strong>de</strong>s Gesamtsystems implementieren.<br />
Abbildung 4-5: Aufbau <strong>de</strong>s XML Schemas Task.xsd<br />
21
Der Aufbau <strong>de</strong>s zugehörigen XML Schemas wird in Abbildung 4-5 ver<strong>de</strong>utlicht. Die<br />
Angaben zur I<strong>de</strong>ntifikation und Versionskontrolle sind wie<strong>de</strong>rum in I<strong>de</strong>ntification und<br />
Version verankert. Die Kategorie (Category) innerhalb <strong>de</strong>r I<strong>de</strong>ntifikation ist <strong>de</strong>r Parameter,<br />
<strong>de</strong>r die Art <strong>de</strong>r Task beschreibt. Mögliche Typen sind IP, VHDL_Entitiy und Netlist. Wenn zu<br />
einer Task ein VHDL File existiert, kann eine Referenz zu diesem in VHFLFile angegeben<br />
wer<strong>de</strong>n.<br />
Die InterfaceList beinhaltet wie<strong>de</strong>rum die Beschreibungen <strong>de</strong>r <strong>Schnittstellen</strong> <strong>de</strong>r Task. Neu ist<br />
die ProtocolMapList. Hierbei han<strong>de</strong>lt es sich um die Abbildung (Mapping) <strong>de</strong>r verwen<strong>de</strong>ten<br />
Protokolle auf die <strong>Schnittstellen</strong> <strong>de</strong>r Task. Dabei wer<strong>de</strong>n einzelnen Pins – dies sind die<br />
physikalischen Pins <strong>de</strong>r <strong>Schnittstellen</strong> – <strong>de</strong>n logischen Protokollpins innerhalb <strong>de</strong>r<br />
Protokollbeschreibung zugeordnet. Einer Schnittstelle kann somit ein vollständiges Protokoll<br />
auf Pin-Ebene zugeordnet wer<strong>de</strong>n. Dies erledigt die ProtocolMap.<br />
Die vollständige XML Notation <strong>de</strong>s Task-Schemas ist ebenso wie bei Chip <strong>de</strong>m Board-<br />
Schema bis auf Namen und zusätzliche Parametergruppen sehr ähnlich und ist aus<br />
Platzgrün<strong>de</strong>n nicht im Anhang vorhan<strong>de</strong>n.<br />
4.2.6. Medium<br />
Medien können prinzipiell auf allen Hierarchieebenen vorkommen. Dabei kann ein Medium<br />
in unterschiedlichen Formen vorliegen. Je nach<strong>de</strong>m auf welcher Hierarchieebene es im IFS<br />
Format vorkommt, wird etwas an<strong>de</strong>res darunter verstan<strong>de</strong>n. Trotz<strong>de</strong>m teilen sich alle Medien<br />
Gemeinsamkeiten, so dass eine einzige Beschreibung für Medien ausreichend ist. Auf<br />
Chipebene, also innerhalb eines Chips, sind z.B. Busse (On-Chip-Bus) gemeint. Innerhalb<br />
eines Boards han<strong>de</strong>lt es sich meistens ebenfalls um Busse, die z.B. verschie<strong>de</strong>ne Chips<br />
untereinan<strong>de</strong>r o<strong>de</strong>r mit weiteren Komponenten verbin<strong>de</strong>n. Dabei muss man zwischen einem<br />
Medium und einer einfachen Verdrahtung unterschei<strong>de</strong>n. Während eine simple Verdrahtung,<br />
auf <strong>de</strong>r beliebige Daten übertragen wer<strong>de</strong>n können, hinreichend durch die InterfaceMap <strong>de</strong>s<br />
Chips beschrieben wird, muss ein <strong>komplexer</strong> Datentransfer, wie z.B. <strong>de</strong>r eines Busses, als<br />
Medium mo<strong>de</strong>lliert wer<strong>de</strong>n. Auf Systemebene realisiert ein Medium eine komplexe (Kabel-)<br />
Verbindung zu einem weiteren Board, o<strong>de</strong>r repräsentiert eine vorhan<strong>de</strong>ne Busschnittstelle<br />
z.B. die Schnittstelle eines PCI-Busses, an <strong>de</strong>n ein Board angeschlossen wer<strong>de</strong>n soll.<br />
Ein Medium ist somit eine komplexe Systemkomponente wie eine Task mit physikalischen<br />
Eigenschaften, Struktur (Geometrie) <strong>de</strong>r Schnittstelle und einem Protokoll. Im Sinne <strong>de</strong>r<br />
<strong>Schnittstellen</strong>synthese ist ein Medium somit nichts an<strong>de</strong>res als eine Task und besitzt daher die<br />
gleichen Parameter zur Beschreibung. Da ein Medium, ebenso wie eine Task, an Protokolle<br />
gebun<strong>de</strong>n wird, ist die Verbindung <strong>von</strong> zwei Tasks, bzw. zwei Medien, ebenso möglich wie<br />
ein heterogener Anschluss <strong>von</strong> einem Medium mit einer Task. Die folgen<strong>de</strong> Abbildung zeigt<br />
<strong>de</strong>n Aufbau <strong>de</strong>s zugehörigen XML Schemas.<br />
22
Abbildung 4-6: Aufbau <strong>de</strong>s XML Schemas Medium.xsd<br />
Die Parametergruppen I<strong>de</strong>ntification und Version setzen sich aus <strong>de</strong>nselben <strong>Parametern</strong> wie in<br />
<strong>de</strong>n bereits beschriebenen Systemkomponenten zusammen. Aus <strong>de</strong>n verschie<strong>de</strong>nen Typen<br />
<strong>von</strong> Medien kann im Parameter Category ausgewählt wer<strong>de</strong>n. Folgen<strong>de</strong> Möglichkeiten sind<br />
bis jetzt im IFS Format vorgesehen: Flachbandkabel, USB, Twisted Pair, Koax und<br />
Un<strong>de</strong>fined. Es wur<strong>de</strong> schon erwähnt, dass ein Medium wie eine Task behan<strong>de</strong>lt wird. Somit<br />
haben die Parametergruppen ProtocolMapList und InterfaceList dieselben Funktionen wie bei<br />
einer Task.<br />
Bis auf Namen und zusätzliche Parametergruppen ist die vollständige XML Notation <strong>de</strong>s<br />
Medium-Schemas <strong>de</strong>r <strong>de</strong>s Board-Schemas ähnlich und nicht im Anhang vorhan<strong>de</strong>n.<br />
4.2.7. IFB (Interface Block)<br />
Ein Interface Block ist das <strong>Schnittstellen</strong>modul, durch das zwei <strong>Schnittstellen</strong> verbun<strong>de</strong>n<br />
wer<strong>de</strong>n können. Die Angabe eines IFBs ist theoretisch möglich, aber noch nicht sinnvoll.<br />
Wenn die Algorithmen zur Generierung dieser Blöcke implementiert sind, wer<strong>de</strong>n die IFB-<br />
Angaben innerhalb <strong>de</strong>s IFS Formates automatisch generiert. Dies ist allerdings Zukunftsarbeit<br />
und wird im Anschluss an diese Studienarbeit <strong>de</strong>r nächste Schritt sein. Folgen<strong>de</strong> Abbildung<br />
zeigt <strong>de</strong>n geplanten Aufbau <strong>de</strong>s XML Schemas IFB.xsd.<br />
Abbildung 4-7: Struktur <strong>de</strong>s XML Schemas IFB.xsd<br />
Die Angaben zu I<strong>de</strong>ntification, Version und InterfaceList sind wie in <strong>de</strong>n bereits<br />
beschriebenen Komponenten strukturiert. Die zusätzliche Angabe eines zugehörigen IFBFiles<br />
23
ist im Schema vorgesehen. Dabei han<strong>de</strong>lt es sich um das Ergebnis <strong>de</strong>s geplanten<br />
Generierungsprozesses.<br />
Die vollständige XML Notation <strong>de</strong>s IFB-Schemas ist <strong>de</strong>r <strong>de</strong>s Board-Schemas bis auf Namen<br />
und zusätzliche Parametergruppen sehr ähnlich und ist aus Platzgrün<strong>de</strong>n nicht im Anhang<br />
vorhan<strong>de</strong>n.<br />
4.3. Interface Description<br />
Ein be<strong>de</strong>uten<strong>de</strong>r Bestandteil <strong>de</strong>s IFS Formates ist die eigentliche <strong>Schnittstellen</strong>beschreibung.<br />
Die Interface Description (IFD) ist an verschie<strong>de</strong>nen Stellen im IFS Format aufgehängt. Das<br />
Teilschema je<strong>de</strong>r Komponente <strong>de</strong>r Systemarchitektur unterhalb <strong>de</strong>r Systemebene beinhaltet<br />
eine vollständige Beschreibung <strong>de</strong>r zugehörigen <strong>Schnittstellen</strong>.. Hinzu kommt eine<br />
vollständige Liste <strong>de</strong>r im gesamten System verwen<strong>de</strong>ten Protokolle, die auf Systemebene<br />
verankert ist. Eine Möglichkeit zur Referenzzierung <strong>von</strong> Protokollen innerhalb <strong>de</strong>r IFD<br />
befin<strong>de</strong>t sich allerdings nur in Medium und Task Der dritte Bestandteil <strong>de</strong>r<br />
<strong>Schnittstellen</strong>beschreibung ist die Target Platform Description. Dabei han<strong>de</strong>lt es sich um die<br />
Beschreibung <strong>de</strong>s Chips, auf <strong>de</strong>r die generierten Interface Blöcke realisiert wer<strong>de</strong>n sollen. Im<br />
Folgen<strong>de</strong>n wer<strong>de</strong>n die genannten Teile <strong>de</strong>r Interface Description <strong>de</strong>tailliert erläutert.<br />
4.3.1. <strong>Schnittstellen</strong><br />
Die <strong>Schnittstellen</strong>beschreibung, die im XML Schema <strong>de</strong>r Komponenten Board, Chip und<br />
Task vorkommt hat die folgen<strong>de</strong> Struktur:<br />
Abbildung 4-8: Struktur <strong>de</strong>s XML Schemas Interface.xsd<br />
Die Beschreibung einer Schnittstelle (Interface) weicht <strong>von</strong> <strong>de</strong>n bisher vorgestellten XML<br />
Schemata (vgl. VSIA) ab. Sie besteht aus weit mehr <strong>Parametern</strong> und hat wie<strong>de</strong>rum Sub-<br />
Schemata, die eine <strong>de</strong>taillierte Beschreibung <strong>de</strong>r Schnittstelle ermöglichen. Bevor aber Port<br />
und Register, die direkte Bestandteile eines Interfaces sind, näher erläutert wer<strong>de</strong>n, folgt<br />
zuerst die Beschreibung <strong>de</strong>r Parameter einer Schnittstelle:<br />
Die I<strong>de</strong>ntification besteht aus <strong>de</strong>n bereits bekannten <strong>Parametern</strong> Name (ipq:M..256), ID<br />
(ipq:NR1..16) und Description (ipq:M..256). Zusätzlich ist die Parametergruppe Connector<br />
optional ein Bestandteil <strong>de</strong>r I<strong>de</strong>ntification. Diese Untergruppe ist vorgesehen für <strong>de</strong>n Fall,<br />
dass ein Stecker Bestandteil <strong>de</strong>r Schnittstelle ist. Folgen<strong>de</strong> Parameter gehören <strong>de</strong>r Connector-<br />
Gruppe an:<br />
24
Category (ipq:M..32):<br />
Die Category beschreibt <strong>de</strong>n Typen <strong>de</strong>r Steckverbindung. In einer Enumeration stehen<br />
folgen<strong>de</strong> Möglichkeiten zur Auswahl: PIO (Extensionhea<strong>de</strong>r), USB_A, USB_B, IEEE 1394<br />
(Firewire), Wannenstecker, Sub-D, Un<strong>de</strong>fined, Centronics, BNC, RJ45 (LAN), RJ11 (Phone),<br />
N-Connector, DIN, SCA, PS2, DIN 41612 (IEC603-2), DIN 41617, DIN 41622, SCART,<br />
VG64 und KEL100.<br />
Gen<strong>de</strong>r (ipq:M..16):<br />
Dieser Parameter beschreibt das Geschlecht <strong>de</strong>s Steckeranschlusses. Die möglichen Optionen<br />
sind MALE (männlich) und FEMALE (weiblich).<br />
Die Parametergruppe Properties beinhaltet Parameter, die sich auf die gesamte Schnittstelle<br />
beziehen. Es han<strong>de</strong>lt sich dabei um die physikalischen Eigenschaften. Folgen<strong>de</strong> Parameter<br />
bil<strong>de</strong>n die Parametergruppe:<br />
MaxFrequency (ipq:NR1..16):<br />
Dieser Parameter bestimmt die maximale Frequenz, mit <strong>de</strong>r Daten über dieser Schnittstelle<br />
übertragen wer<strong>de</strong>n können.<br />
MaxVoltage (ipq:NR2S..3.3):<br />
Es gibt die maximale Spannung an, die an dieser Schnittstelle angelegt wer<strong>de</strong>n darf.<br />
MaxCurrent (ipq:NR2S..3.3):<br />
Es han<strong>de</strong>lt sich hierbei um <strong>de</strong>n maximalen Stromfluss, <strong>de</strong>r an <strong>de</strong>r Schnittstelle möglich ist.<br />
IOTechnologyType (ipq:M..32):<br />
Dieser Parameter bezeichnet die elektronische Technologie, mit <strong>de</strong>r die Datenübertragung<br />
realisiert ist. Zur Auswahl stehen hier: DTL, TTL, PCI, LVDS, Differential, singleEn<strong>de</strong>d, ECL,<br />
PECL, openCollector und other.<br />
MaxWireLength (ipq:NR2S..3.3):<br />
Dieser Parameter beschreibt die maximal mögliche Länge <strong>de</strong>r angeschlossenen Datenbahnen<br />
und Kabel. Die Angabe erfolgt in Metern (m).<br />
Die folgen<strong>de</strong>n drei Parameter sind vom Datentyp ipq:MinTypMaxNR2S..3.3Type, was<br />
be<strong>de</strong>utet, dass es sich jeweils um drei Parameter zur Angabe eines minimalen, eines typischen<br />
und eines maximalen Wertes han<strong>de</strong>lt.<br />
Latency (ipq:MinTypMaxNR2S..3.3Type):<br />
Diese Parametergruppe beschreibt die Latenz <strong>de</strong>r Signale und wird in Sekun<strong>de</strong>n (s)<br />
angegeben.<br />
Jitter (ipq:MinTypMaxNR2S..3.3Type):<br />
Hierbei han<strong>de</strong>lt es sich um <strong>de</strong>n Jitter <strong>de</strong>r Signale in Sekun<strong>de</strong>n (s).<br />
Sensitivity (ipq:MinTypMaxNR2S..3.3Type):<br />
Diese Angabe bezieht sich auf die Sensitivität <strong>de</strong>r Signale und wird in Dezibell (dB)<br />
angegeben.<br />
Die exakte XML Notation <strong>de</strong>s Interface-Schemas befin<strong>de</strong>t sich im Anhang unter 8.1.3.1. Das<br />
Properties-Schema ist unter 8.1.3.2 nachzulesen.<br />
25
Ein weiterer Bestandteil <strong>de</strong>r <strong>Schnittstellen</strong>beschreibung sind die PortList und die RegisterList.<br />
Die PortList beinhaltet eine Menge an Ports, aus <strong>de</strong>nen ein Interface besteht. Ein Port ist<br />
gleichzusetzen mit einem Vector in VHDL bzw. einem Bus aus 1 bis n Leitungen mit <strong>de</strong>r<br />
gleichen Charakterisierung.<br />
Abbildung 4-9: Struktur <strong>de</strong>s XML Schemas Port.xsd<br />
Wie<strong>de</strong>rum besteht die I<strong>de</strong>ntification aus <strong>de</strong>n <strong>Parametern</strong> Name (ipq:M..256), ID (ipq:NR1..16)<br />
und Description (ipq:M..256). Die Parametergruppe Characterization besteht aus <strong>de</strong>n zwei<br />
<strong>Parametern</strong> VLogicOne und VLogicZero.<br />
VLogicOne (ipq: NR2S..3.3):<br />
Dieser Parameter bestimmt <strong>de</strong>n Spannungspegel, <strong>de</strong>r für eine logische Eins steht. Der<br />
vorgegebene Defaultwert ist 3,3V.<br />
VLogicZero (ipq: NR2S..3.3):<br />
Dies ist <strong>de</strong>r Spannungsspiegel, <strong>de</strong>r für eine logische Null steht. Standardwert ist 0,0V.<br />
Die exakte XML Notation <strong>de</strong>s Port-Schemas befin<strong>de</strong>t sich im Anhang unter 8.1.3.3.<br />
Abbildung 4-10: Struktur <strong>de</strong>s XML Schemas Pin.xsd<br />
Da für alle Leitungen eines Ports nicht immer gleiche Bedingungen herrschen, ist dieser noch<br />
in Pins unterteilt. In <strong>de</strong>r PinList befin<strong>de</strong>t sich eine Menge solcher Pins. Dabei han<strong>de</strong>lt es sich<br />
um physikalisch vorkommen<strong>de</strong> Pins an <strong>de</strong>n <strong>Schnittstellen</strong> <strong>von</strong> Boards o<strong>de</strong>r Chips bzw. um<br />
die logischen Pins <strong>von</strong> Tasks innerhalb eines Chips. Diese Pins wer<strong>de</strong>n dann mittels <strong>de</strong>r<br />
ProtocolMap auf die logischen Protocolpins eines Protokolls abgebil<strong>de</strong>t.<br />
26
Zu <strong>de</strong>n <strong>Parametern</strong> Name (ipq:M..256), ID (ipq:NR1..16) und Description (ipq:M..256), die<br />
die üblichen Aufgaben übernehmen, kommt noch folgen<strong>de</strong>r Parameter innerhalb <strong>de</strong>r<br />
I<strong>de</strong>ntification:<br />
UserID (ipq:M..256):<br />
Dieser ist optional und dient <strong>de</strong>m Entwickler eigene Bezeichnungen zusätzlich zum Namen<br />
und <strong>de</strong>r internen ID zu verwen<strong>de</strong>n.<br />
Die Characterization beinhaltet Parameter, die zentrale physikalische Eigenschaften einzelner<br />
Pins beinhalten.<br />
Direction (ipq:M..32):<br />
Die Richtung, in <strong>de</strong>r <strong>de</strong>r Datenfluss an einem Pin möglich ist kann folgen<strong>de</strong> Werte haben:<br />
Input, Output, Bidirectional, Special (GND, VCC), und Un<strong>de</strong>fined.<br />
Type (ipq:M..32):<br />
Dieser Parameter gibt <strong>de</strong>n Typen eines Pins an. Möglich sind VCC, Ground, NC (Not<br />
Connected) und Un<strong>de</strong>fined.<br />
Die exakte XML Notation <strong>de</strong>s Pin-Schemas befin<strong>de</strong>t sich im Anhang unter 8.1.3.4.<br />
Die zweite Hälfte einer Schnittstelle bil<strong>de</strong>n Register und Bit. Diese sind notwendig, wenn eine<br />
Komponente einen Datenaustausch über ein o<strong>de</strong>r mehrere Register vollzieht.<br />
Abbildung 4-11: Struktur <strong>de</strong>s XML Schemas Register.xsd<br />
Die I<strong>de</strong>ntification besteht wie gehabt aus Name (ipq:M..256), ID (ipq:NR1..16) und<br />
Description (ipq:M..256). Die Characterization ist dagegen umfangreicher als die<br />
entsprechen<strong>de</strong> Parametergruppe eines Ports:<br />
BaseAddress (ipq:M..32):<br />
Die Basisadresse wird benötigt, um Zugriffe auf das Register zu ermöglichen.<br />
MinimumAllocactionSize (ipq:NR1..16) und MinimumAllocactionSize (ipq:NR1..16):<br />
Diese Parameter bestimmen die minimal bzw. maximal mögliche Speicherblockgröße in Bit,<br />
die gleichzeitig angesprochen wer<strong>de</strong>n kann.<br />
DataTransferType (ipq:M..32):<br />
Durch diesen ihn wird die Zugriffsart bestimmt. Zur Auswahl stehen Read (Lesezugriff),<br />
Write (Schreibzugriff) und ReadWrite (Lese- und Schreibzugriff).<br />
27
AccessableDataSize (ipq:M32):<br />
Dies bestimmt die erreichbare Datengröße. Möglich sind SingleBit, was nur <strong>de</strong>n Zugriff auf<br />
einzelne Bits ermöglicht und Register, wodurch <strong>de</strong>r gleichzeitige Zugriff auf das gesamte<br />
Register möglich ist.<br />
Die Parameter VLogicOne (ipq: NR2S..3.3) und VLogicOne (ipq: NR2S..3.3) entsprechen in<br />
ihrer Funktion <strong>de</strong>n gleichnamigen <strong>Parametern</strong> <strong>von</strong> Port.<br />
Die XML Notation <strong>de</strong>s Register-Schemas gleicht bis auf die Bezeichnungen <strong>de</strong>r Parameter<br />
<strong>de</strong>m Port-Schema und befin<strong>de</strong>t sich aus Platzgrün<strong>de</strong>n nicht im Anhang.<br />
Abbildung 4-12: Struktur <strong>de</strong>s XML Schemas Bit.xsd<br />
Ein Bit besteht nur aus <strong>de</strong>n <strong>Parametern</strong> <strong>de</strong>r I<strong>de</strong>ntification: Name (ipq:M..256), ID<br />
(ipq:NR1..16), UserID(ipq:M..256) und Description (ipq:M..256).<br />
Die XML Notation <strong>de</strong>s Bit-Schemas ist <strong>de</strong>m Pin-Schema ähnlich und befin<strong>de</strong>t sich aus<br />
Platzgrün<strong>de</strong>n nicht im Anhang.<br />
4.3.2. Protokolle<br />
Der zweite Bestandteil <strong>de</strong>r Interface Description bezieht sich auf die Protokolle, die im<br />
Gesamtsystem vorkommen. Diese wer<strong>de</strong>n im IFS Format auf oberster Ebene, also auf <strong>de</strong>r<br />
Systemebene verankert. Folgen<strong>de</strong> Struktur liegt einem Protocol zugrun<strong>de</strong>:<br />
Abbildung 4-13: Struktur <strong>de</strong>s XML Schemas Protocol.xsd<br />
28
Die Parametergruppen Version und I<strong>de</strong>ntification folgen <strong>de</strong>m bereits bekannten Aufbau. Die<br />
I<strong>de</strong>ntification wird ergänzt durch die Category:<br />
Category (ipq:M..256):<br />
Zur Auswahl <strong>de</strong>r Protokollkategorie stehen bisherfolgen<strong>de</strong> Typen: RS232, RS485, LVDS,<br />
Firewire, UserDefined und Other.<br />
Die Parametergruppe Characterization setzt sich aus folgen<strong>de</strong>n <strong>Parametern</strong> zusammen.<br />
Control (ipq:M..32):<br />
Dieser Parameter bestimmt, welche Komponente <strong>de</strong>n Transaktionsprozess beginnt. Mögliche<br />
Werte sind Respon<strong>de</strong>r, Initiator und Other.<br />
Data (ipq:M..32):<br />
Hiermit wird angegeben ob die zugehörige Komponente Daten produziert o<strong>de</strong>r annimmt. Zur<br />
Auswahl stehen Consumer, Producer und Other.<br />
UseCase (ipq:M..32):<br />
Die Zuordnung zu speziellen „UseCases“ erfolgt über diesen Parameter mit <strong>de</strong>n Werten<br />
Arbitration, Control, Data, Interrupt und Other.<br />
Flow (ipq:M..32):<br />
Hiermit wird das zugehörige Datenflussmo<strong>de</strong>ll angegeben, welches <strong>de</strong>m Protokoll zugrun<strong>de</strong><br />
liegt. Zur Auswahl stehen Persistent, Buffered, FIFO, LIFO, Blocking, AssignedPortPriority,<br />
AssignedDataPriority, MultiRate, Pipelined, ExceptionsHandled und Other.<br />
Hinzu kommt die TransactionTypeList, in <strong>de</strong>r unterstützte Übertragungsmodi bereitgestellt<br />
wer<strong>de</strong>n. Es han<strong>de</strong>lt sich um eine Liste <strong>de</strong>s folgen<strong>de</strong>n Parameters:<br />
Method (ipq:M..32):<br />
Die Übertragungsmetho<strong>de</strong> kann folgen<strong>de</strong> Werte annehmen: transRead, transWrite,<br />
messSense, messEmit, transOpenChannel, transCloseChannel, transSynchronize, transReset,<br />
transControl, messRead, messWrite und Other.<br />
Die exakte XML Notation <strong>de</strong>s Protocol-Schemas befin<strong>de</strong>t sich im Anhang unter 8.1.4.1.<br />
Die Inhalte <strong>de</strong>r Listen ProtocolPinList, StateList und ReferenceSignalList wer<strong>de</strong>n in <strong>de</strong>n<br />
folgen<strong>de</strong>n Abschnitten behan<strong>de</strong>lt.<br />
Abbildung 4-14: Struktur <strong>de</strong>s XML Schemas ProtocolPin.xsd<br />
29
Ein ProtocolPin ist eine virtuelle Komponente, die vergleichbar mit <strong>de</strong>m Pin einer<br />
Schnittstelle ist. Ein ProtocolPin ist dabei ein einadriger Kanal, über <strong>de</strong>n Daten übermittelt<br />
wer<strong>de</strong>n. Die Summe aller ProtocolPins eines Protokolls repräsentiert dann die gesamte<br />
Übertragung für dieses Protokoll. An die ProtocolPins wird mittels eines<br />
Referenzmechanismus die Verhaltensbeschreibung <strong>de</strong>s jeweiligen Protokolls gebun<strong>de</strong>n.<br />
Die Parametergruppe I<strong>de</strong>ntification beinhaltet die üblichen Parameter. Characterization<br />
besteht aus:<br />
Direction (ipq:M..32):<br />
Hiermit wird die Richtung spezifiziert, in <strong>de</strong>r die Daten übertragen wer<strong>de</strong>n. Mögliche Werte<br />
sind Input, Output, Bidirectional, Special (GND, VCC) und Un<strong>de</strong>fin<strong>de</strong>d.<br />
Type (ipq:M..32):<br />
Dieser Parameter bestimmt <strong>de</strong>n Typ eines ProtocolPins. Zur Auswahl stehen Bit, Std_Logic,<br />
VCC, Ground, NC (Not Connected) und Un<strong>de</strong>fined.<br />
Behavior (ipq:M..16):<br />
Das Verhalten eines ProtocolPins kann mit folgen<strong>de</strong>n Werten angegeben wer<strong>de</strong>: Data,<br />
Control, Address, Mixed (Data+Control), Status, GND, VCC, NC, Don’t Cate und Other.<br />
Die XML Notation <strong>de</strong>s ProtocolPin-Schemas ist <strong>de</strong>m Pin-Schema ähnlich und befin<strong>de</strong>t sich<br />
<strong>de</strong>swegen nicht im Anhang.<br />
Ein weiterer Bestandteil eines Protokolls ist <strong>de</strong>r Parameter State. Zur Beschreibung <strong>von</strong><br />
Protokollen wer<strong>de</strong>n in <strong>de</strong>r IFD endliche Automaten (FSM, finite state machine) genutzt. Mit<br />
<strong>de</strong>m Parameter State wer<strong>de</strong>n die einzelnen Zustän<strong>de</strong> <strong>de</strong>r FSM, die beim Ablauf eines<br />
Protokolls angenommen wer<strong>de</strong>n, beschrieben.<br />
Abbildung 4-15: Struktur <strong>de</strong>s XML Schemas State.xsd<br />
Die I<strong>de</strong>ntification ist wie gehabt. In <strong>de</strong>r TransitionList wer<strong>de</strong>n die Transitionen verwaltet, mit<br />
<strong>de</strong>nen Übergänge zwischen <strong>de</strong>n einzelnen Zustän<strong>de</strong>n mo<strong>de</strong>lliert wer<strong>de</strong>n. Die<br />
MooreOutputList beinhaltet Informationen über die Ausgaben, die <strong>de</strong>r mo<strong>de</strong>llierte Automat in<br />
diesem Zustand (State) liefert:<br />
AutomataOutput.xsd ist das zugehörige XML Schema und besteht aus folgen<strong>de</strong>n zwei<br />
<strong>Parametern</strong>.<br />
30
ID (ipq:NR1..16):<br />
Diese ID wird verwen<strong>de</strong>t, um einen Pin o<strong>de</strong>r ein Bit zu referenzieren. Diesem wird mit <strong>de</strong>m<br />
nächsten Parameter ein Ausgabewert zugeordnet.<br />
Value (ipq:M..32):<br />
Dies ist <strong>de</strong>r Wert, <strong>de</strong>r einem Pin o<strong>de</strong>r Bit zugeordnet wird. Zu Auswahl stehen Logic One,<br />
Logic Zero, High Impedance und Not Connected.<br />
Die exakte XML Notation <strong>de</strong>s State-Schemas befin<strong>de</strong>t sich wegen <strong>de</strong>r Ähnlichkeit zu <strong>de</strong>n<br />
bereits vorgestellten Schemata nicht im Anhang.<br />
Abbildung 4-16: Struktur <strong>de</strong>s XML Schemas Transition.xsd<br />
Mithilfe einer Transition wird ein Zustandsübergang innerhalb einer FSM beschrieben. Die<br />
Parametergruppe I<strong>de</strong>ntification enthält die bereits bekannten Parameter Name, ID und<br />
Description. Die Liste MealyOutputList beinhaltet wie<strong>de</strong>r Objekte vom Typ AutomataOutput.<br />
Die restlichen Parameter einer Transition sind:<br />
NextStateID (ipq:NR1..16):<br />
Mit dieser ID wird <strong>de</strong>r nächste Zustand referenziert zu <strong>de</strong>m diese Transition <strong>de</strong>n<br />
Zustandsübergang beschreibt.<br />
TransitionType (ipq:M..16):<br />
Dieser Parameter beschreibt <strong>de</strong>n Typ <strong>de</strong>s Zustandübergangs. Zur Auswahl stehen<br />
Synchronous, Asynchronous und Deadline.<br />
Die XML Notation <strong>de</strong>s Transition-Schemas befin<strong>de</strong>t sich wie<strong>de</strong>rum nicht im Anhang.<br />
Abbildung 4-17: Struktur <strong>de</strong>s XML Schemas TransitionCondition.xsd<br />
31
Der Inhalt <strong>de</strong>r TransisionConditionList wird im Folgen<strong>de</strong>n erläutert. Die gesamte<br />
TransitionConditionList ist als ein logischer Ausruck zu sehen, <strong>de</strong>r als Bedingung für einen<br />
Zustandsübergang wahr wer<strong>de</strong>n muss. Hierzu wer<strong>de</strong>n die TransitionConditions<br />
hintereinan<strong>de</strong>rgeschrieben als logischer Ausdruck angesehen. Eine TransitionCondition<br />
besteht aus folgen<strong>de</strong>n <strong>Parametern</strong>.<br />
BracketOpen (ipq:M..16):<br />
Hiermit kann ein Ausdruck geklammert wer<strong>de</strong>n. „(“ ist <strong>de</strong>r einzig mögliche Wert.<br />
Operator (ipq:M..16):<br />
Dieser Parameter ist optional. Die einzelnen TransitionConditions <strong>de</strong>r<br />
TransitionConditionList wer<strong>de</strong>n mithilfe con Operatoren miteinan<strong>de</strong>r verknüpft. Zur Auswahl<br />
stehen AND, OR, XOR, NAND, NOR und XNOR.<br />
TriggeredSignalID (ipq:NR1..16):<br />
Diese ID wird verwen<strong>de</strong>t um das zugehörige Trigger-Signal referenziert. Dabei kann es sich<br />
um einen ProtocolPin o<strong>de</strong>r ein ReferenceSignal han<strong>de</strong>ln.<br />
Die Parametergruppe Trigger gibt eine Bedingung an, die erfüllt sein muss, um <strong>de</strong>n<br />
Zustandsübergang anzustoßen. Hierbei ist die Auswahl zwischen einem bestimmten Wert<br />
(Value), <strong>de</strong>n ein Signal annehmen muss, und einem Zeitpunkt (Time) zu treffen. Im Fall <strong>von</strong><br />
Value sind folgen<strong>de</strong> Parameter zu setzen.<br />
ValueSignalSource (ipq:M..16):<br />
Es legt fest, ob die Signalquelle eine Clock o<strong>de</strong>r ein Signal ist.<br />
ValueExpectedValue (ipq:M..256):<br />
Dies ist <strong>de</strong>r Wert, <strong>de</strong>r <strong>de</strong>n Zustandsübergang auslöst. Möglich sind Low Value, High Value,<br />
Falling Edge, Rising Edge und Signal Changed.<br />
Im Fall <strong>von</strong> Time bil<strong>de</strong>n folgen<strong>de</strong> Parameter die Gruppe:<br />
TimeSignalSource (ipq:M..16):<br />
Hiermit wird angegeben, ob es sich um Timer, Global_Time o<strong>de</strong>r Deadline han<strong>de</strong>lt.<br />
TimeExpectedValue (ipq:NR2S..3.3):<br />
Dieser Parameter dient <strong>de</strong>r Angabe <strong>de</strong>s Wertes, <strong>de</strong>r zum Zustandsübergang benötigt wird.<br />
Mit folgen<strong>de</strong>m Parameter wird eine TransitionCondition abgeschlossen.<br />
BracketOpen (ipq:M..16):<br />
Hiermit kann ein Ausdruck geklammert wer<strong>de</strong>n. „(“ ist <strong>de</strong>r einzig mögliche Wert.<br />
Die exakte XML Notation <strong>de</strong>s TransitionCondition-Schemas befin<strong>de</strong>t sich im Anhang unter<br />
8.1.4.2.<br />
Den letzten wichtigen Teil <strong>de</strong>r Protokollbeschreibung bil<strong>de</strong>t die ReferenceSignalList. In dieser<br />
Liste befin<strong>de</strong>n sich Objekte <strong>de</strong>r folgen<strong>de</strong>n Art.<br />
32
Abbildung 4-18: Struktur <strong>de</strong>s XMl Schemas ReferenceSignal.xsd<br />
Die I<strong>de</strong>ntification besteht aus <strong>de</strong>n üblichen <strong>Parametern</strong>. Die Parametergruppe TimeReference<br />
ist eine Auswahl (eine Choice in XML) zwischen Clock, TimerOrDeadline und GlobalDate,<br />
wodurch die Art <strong>de</strong>s ReferenceSingnals bestimmt wird. Der einzige direkte Parameter eines<br />
ReferenceSignals ist TargetPlatformRefClockID.<br />
TargetPlatformRefClockID (ipq:NR1..16):<br />
Mithilfe dieses Parameters wird die zugehörige TargetPlatformDescriptionClock referenziert.<br />
Wenn die Auswahl <strong>de</strong>r TimeReference auf Clock fällt, sind folgen<strong>de</strong> Parameter vorgesehen.<br />
Frequency (ipq:NR2S..3.3):<br />
Dieser Parameter bestimmt die Frequenz <strong>de</strong>s Referenzsignals.<br />
StartValue (ipq:M..16):<br />
Durch diesen Parameter erfolgt die Zuweisung eines Anfangswertes. Möglich sind Logic One<br />
und Logic Zero.<br />
Die Gruppe Phaseshift ist Bestandteil <strong>de</strong>r Clock und besteht aus folgen<strong>de</strong>n <strong>Parametern</strong>:<br />
ReferenceClockID (ipq:NR1..16):<br />
Hiermit wird eine Referenz auf die Clock <strong>de</strong>r Target Platform gesetzt.<br />
ReferenceClockType (ipq:M..32):<br />
Trifft die Auswahl zischen einer Clock <strong>de</strong>r Target Plattform o<strong>de</strong>r einer an<strong>de</strong>ren Referez-<br />
Clock. Mögliche Werte sind daher entsprechend Real Clock (TPD) und Reference Clock.<br />
Phase (ipq:M..16):<br />
Diese Angabe gibt die Phasenverschiebung an -0˚, -45˚ (Pi / 4), -90˚ (Pi / 2), -135˚ (3 Pi / 4)<br />
und -180˚ (Pi).<br />
Die Auswahlmöglichkeit TimerOrDeadline besteht nur aus einem Parameter:<br />
MaxTime (ipq:NR2S..3.3)<br />
Diese Angabe liefert eine Zeitschranke.<br />
33
Die Option GlobalDate besteht aus folgen<strong>de</strong>n <strong>Parametern</strong>.<br />
CycleTime (ipq:NR2S..3.3):<br />
Mithilfe dieses Parameters wird die Perio<strong>de</strong>ndauer (Master Cycle Time) einer zyklischen<br />
Zeitbasis beschrieben.<br />
Zusätzlich gehört noch eine Liste <strong>von</strong> TimeEvents zur Gruppe GlobalDate. Diese bestehen<br />
jeweils aus folgen<strong>de</strong>n <strong>Parametern</strong>.<br />
EventTime (ipq:NR2S..3.3):<br />
Gibt innerhalb <strong>de</strong>r CycleTime einzelne Zeitpunkte (Events) an, zu <strong>de</strong>nen etwas passieren<br />
kann.<br />
EventValue (ipq:M..16):<br />
Legt das entsprechen<strong>de</strong> Ereignis (Low- o<strong>de</strong>r High-Pegel) fest, das zum Zeitpunkt EventTime<br />
am Signal <strong>de</strong>s GlobalDates anliegen soll.<br />
Die exakte XML Notation <strong>de</strong>s ReferenceSignal-Schemas befin<strong>de</strong>t sich im Anhang unter<br />
8.1.4.3.<br />
4.3.3. Target Platform Description<br />
Der dritte und letzte Teil <strong>de</strong>r Interface Description ist die Target Platform Description, kurz<br />
TPD genannt. Die TPD ist im IFS Format auf Chipebene angebracht, d.h. sie ist ein Teil <strong>de</strong>r<br />
Chip-Beschreibung.<br />
Mithilfe <strong>de</strong>r TPD wird ein je<strong>de</strong>r Chip soweit beschrieben, wie es für die Implementierung <strong>de</strong>r<br />
späteren Interface Blöcke (IFB) notwendig ist. Dabei han<strong>de</strong>lt es sich bisher um nutzbare<br />
Ressourcen eines Chips sowie die vorhan<strong>de</strong>nen Clock-Netzwerke.<br />
Abbildung 4-19: Struktur <strong>de</strong>s XML Schemas TargetPlatformDescripion.xsd<br />
Die Parametergruppe Resources beinhaltet folgen<strong>de</strong> Parameter:<br />
Category (ipq:M..256):<br />
Dieser Parameter ermöglicht die Einordnung eines Chips in folgen<strong>de</strong> Kategorien: FPGA,<br />
ASIC und Processor.<br />
Quantity (ipq:NR1..16):<br />
Hiermit wird die Anzahl <strong>de</strong>r verfügbaren Resourcen angegeben.<br />
34
Unit (ipq:M..16):<br />
Dies ist die Einheit, in <strong>de</strong>r die Resourcen angegeben wer<strong>de</strong>n. Zur Auswahl stehen CLBCount,<br />
GateCount und Memory.<br />
In <strong>de</strong>r ClockList befin<strong>de</strong>t sich die Liste <strong>de</strong>r auf <strong>de</strong>m Chip vorhan<strong>de</strong>nen Clock.<br />
Abbildung 4-20: Struktur <strong>de</strong>s XML Schemas TargetPlatformDescriptionClock.xsd<br />
Die Parametergruppe I<strong>de</strong>ntification besteht aus Name, ID und Description mit <strong>de</strong>n üblichen<br />
Datentypen. Die restlichen Parameter einer TPDClock sind folgen<strong>de</strong>:<br />
Frequency (ipq:NR1..16):<br />
Dieser Parameter beschreibt die Frequenz <strong>de</strong>r Clock.<br />
Skew (ipq:MinTypMaxNR2S..3.3):<br />
Gibt <strong>de</strong>n Skew <strong>de</strong>r entsprechen<strong>de</strong>n Clock an, was die maximale Verzögerung einer Takleitung<br />
angibt.<br />
Jitter (ipq:MinTypMaxNR2S..3.3):<br />
Gibt <strong>de</strong>n Jitter <strong>de</strong>r entsprechen<strong>de</strong>n Clock an. Hier wird die maximale Abweichung vom<br />
Standardwert <strong>de</strong>s Taktsignals angegeben.<br />
Network (ipq:NR1..16):<br />
Dieser Parameter beschreibt das Clock-Netzwerk zu <strong>de</strong>r entsprechen<strong>de</strong>n Clock.<br />
Wegen <strong>de</strong>r einfachen Struktur <strong>de</strong>r Schemata TargetPlatformDescription und<br />
TargetPlatformDescriptionClock befin<strong>de</strong>n sich diese nicht im Anhang.<br />
4.4. Maps<br />
Die so genannten „Maps“ beinhalten einen weiteren Teil <strong>de</strong>s IFS Formates. In ihnen wer<strong>de</strong>n<br />
die physikalischen Eigenschaften <strong>de</strong>s gesamten Systems zum einen in Relation untereinan<strong>de</strong>r,<br />
zum an<strong>de</strong>ren in Relation zu <strong>de</strong>n verwen<strong>de</strong>ten Protokollen gebracht.<br />
4.4.1. Verdrahtung<br />
Die Verdrahtung <strong>de</strong>r <strong>Schnittstellen</strong> untereinan<strong>de</strong>r erfolgt über die InterfaceMaps. Dabei kann<br />
eine Systemkomponente mit einer an<strong>de</strong>ren Systemkomponente verbun<strong>de</strong>n wer<strong>de</strong>n. Des<br />
35
Weiteren kann hier eine Systemkomponente mit <strong>de</strong>r höher gelegenen Systemkomponente<br />
verdrahtet wer<strong>de</strong>n.<br />
Abbildung 4-21: Struktur <strong>de</strong>s XML Schemas InterfaceMap.xsd<br />
Die Parametergruppe I<strong>de</strong>ntification beinhaltet die Parameter Name, ID und Description mit<br />
<strong>de</strong>n bekannten Datentypen. Die Gruppen InterfaceReferenceA und InterfaceReferenceB sind<br />
die Referenzen auf die bei<strong>de</strong>n zu verbin<strong>de</strong>n<strong>de</strong>n Komponenten. In <strong>de</strong>r InterfacePinMapList<br />
wer<strong>de</strong>n diese Komponenten dann Pin für Pin miteinan<strong>de</strong>r verdrahtet. Die folgen<strong>de</strong>n<br />
Parameter bil<strong>de</strong>n die Gruppen InterfaceReferenceA und InterfaceReferenceB.<br />
DeviceCategoryA / DeviceCategoryB (ipq:M..16):<br />
Mit dieser Kategorie wird die Art <strong>de</strong>r Systemkomponente angegeben, die verdrahtet wer<strong>de</strong>n<br />
soll. Möglich sind je nach aktueller Ebene Board, Chip, Task, Medium und IFB.<br />
DeviceIDA / DeviceIDB (ipq:NR1..16)<br />
Durch diese Parameter wird die Komponente, die verdrahtet wird, i<strong>de</strong>ntifiziert.<br />
InterfaceIDA / InterfaceIDB (ipq:NR1..16)<br />
Mit dieser ID wird die Schnittstelle, die verdrahtet wird i<strong>de</strong>ntifiziert.<br />
Die exakte XML Notation <strong>de</strong>s InterfaceMap-Schemas befin<strong>de</strong>t sich im Anhang unter 8.1.5.1.<br />
Die InterfacePinMapList beinhaltet Objekte vom Typ InterfacePinMap. In einer<br />
InterfacePinMap wer<strong>de</strong>n zwei Pins mit einan<strong>de</strong>r verbun<strong>de</strong>n. Dazu sind folgen<strong>de</strong> Parameter<br />
notwendig: PortIDA, PinIDA, PortIDB und PinIDB. Auf diese Weise wird <strong>de</strong>r Port <strong>de</strong>r einen<br />
Schnittstelle A ein<strong>de</strong>utig i<strong>de</strong>ntifiziert, dann in diesem <strong>de</strong>r Pin. Dieser wird dann mit <strong>de</strong>m Pin<br />
<strong>de</strong>r Schnittstelle B verbun<strong>de</strong>n.<br />
PortIDA und PortID (ipq:NR1..16):<br />
Mit diesen bei<strong>de</strong>n <strong>Parametern</strong> wer<strong>de</strong>n die bei<strong>de</strong>n Ports ein<strong>de</strong>utig i<strong>de</strong>ntifiziert, <strong>de</strong>ssen Pins<br />
miteinan<strong>de</strong>r verdrahtet wer<strong>de</strong>n sollen.<br />
PinIDA und PinID (ipq:NR1..16):<br />
Hiermit wer<strong>de</strong>n die bei<strong>de</strong>n Pins ein<strong>de</strong>utig i<strong>de</strong>ntifiziert, die miteinan<strong>de</strong>r verbun<strong>de</strong>n wer<strong>de</strong>n<br />
sollen.<br />
36
4.4.2. <strong>Schnittstellen</strong> und Protokolle<br />
Die Abbildung <strong>de</strong>r einzelnen Pins <strong>de</strong>r <strong>Schnittstellen</strong> auf die verwen<strong>de</strong>ten Protokolle ist<br />
notwendig, um eine Verbindung mehrerer Komponenten überhaupt zu ermöglichen. Ohne<br />
eine Zuordnung zu Protokollen, wäre keine Kommunikation beschreibbar. Durch eine<br />
Verbindung <strong>von</strong> physikalischem Pin und Protokollverhalten wird das Verhalten <strong>de</strong>s Systems<br />
mit <strong>de</strong>r Struktur in Verbindung gebracht. Dies geschieht mithilfe <strong>de</strong>r ProtocolMap.<br />
Abbildung 4-22: Struktur <strong>de</strong>s XML Schemas ProtocolMap.xsd<br />
Aufgrund <strong>de</strong>r I<strong>de</strong>ntification können einer ProtocolMap wie<strong>de</strong>r Name, ID und Description<br />
gegeben wer<strong>de</strong>n.<br />
InterfaceID (ipq:NR1..16):<br />
Mit diesem Parameter wird die Schnittstelle (Interface) bestimmt, die mit einem Protokoll<br />
verknüpft wer<strong>de</strong>n soll.<br />
ProtocolID (ipq:NR1..16):<br />
Dieser legt das Protokoll fest.<br />
In <strong>de</strong>r ProtocolPinMapList wer<strong>de</strong>n die Pins <strong>von</strong> Interface und Protokoll miteinan<strong>de</strong>r<br />
verbun<strong>de</strong>n. Dabei hat eine ProtocolPinMap folgen<strong>de</strong> Parameter:<br />
InterfacePortID(ipq:NR1..16):<br />
Hiermit wird ein Port <strong>de</strong>r Schnittstelle ausgewählt.<br />
InterfacePinID(ipq:NR1..16):<br />
Dies bestimmt ein<strong>de</strong>utig <strong>de</strong>n Pin innerhalb <strong>de</strong>s ausgewählten Ports.<br />
ProtocolPinID (ipq:NR1..16):<br />
Mit diesem Parameter wird <strong>de</strong>r anzubin<strong>de</strong>n<strong>de</strong> ProtocolPin spezifiziert.<br />
37
5. Der IFS Editor<br />
Die Definition <strong>de</strong>s IFS Formates mittels XML ermöglicht <strong>de</strong>n Einsatz <strong>von</strong> verschie<strong>de</strong>nen<br />
Anwendungen zur Eingabe und Bearbeitung <strong>de</strong>r Daten. Um diese Operationen<br />
benutzerfreundlich zu gestalten, ermöglichen Programme wie z.B. XML Spy – vertrieben <strong>von</strong><br />
<strong>de</strong>r Altova GmbH – die Erzeugung gültiger Instanzen <strong>de</strong>s IFS Schemas. Jedoch können diese<br />
Programme <strong>de</strong>n Umfang <strong>de</strong>s IFS Formates nur schwer bewältigen. Die Struktur und logische<br />
Zusammenhänge <strong>de</strong>s IFS Formates, wie z.B. in <strong>de</strong>n Teil-Schemata Protocol und<br />
InterfaceMap, wer<strong>de</strong>n in einem solchen allgemeinen Editor nicht berücksichtigt.<br />
Um diesen Problemen entgegenzuwirken und ein sinnvolles mo<strong>de</strong>llbasiertes Design zu<br />
ermöglichen, wur<strong>de</strong> <strong>de</strong>r IFS Editor entwickelt. Dieser unterstützt eine strukturierte Eingabe<br />
mit integrierter Konsistenzprüfung sämtlicher Parameter, die zur <strong>Schnittstellen</strong>synthese<br />
erfor<strong>de</strong>rlich sind. Dieser Editor bietet ebenfalls Möglichkeiten zur Wie<strong>de</strong>rverwendung bereits<br />
eingegebenener Teilarchitekturen an und erhöht damit zusätzlich die Performance <strong>de</strong>s<br />
Designers. Eine kommen<strong>de</strong> Ausbaustufe <strong>de</strong>s Editors wird zusätzlich die Nutzung <strong>von</strong> IP-<br />
Beschreibungen im IPQ-Format unterstützen.<br />
In <strong>de</strong>n folgen<strong>de</strong>n Kapiteln wer<strong>de</strong>n <strong>de</strong>r IFS Editor und die zugrun<strong>de</strong> liegen<strong>de</strong>n Datenstrukturen<br />
näher erläutert.<br />
5.1. Der Aufbau <strong>de</strong>r Software<br />
Die Entwicklung <strong>de</strong>s IFS Editors erfor<strong>de</strong>rte die Entwicklung einer Datenstruktur, die einen<br />
Zugriff auf eine XML Instanz <strong>de</strong>s IFS Schemas ermöglicht. Die folgen<strong>de</strong> Abbildung zeigt<br />
eine <strong>de</strong>taillierte Aufteilung <strong>de</strong>r Software in funktionale Schichten.<br />
Abbildung 5-1:Struktur <strong>de</strong>r Software<br />
38
Während am oberen En<strong>de</strong> <strong>de</strong>r IFS Editor steht, befin<strong>de</strong>t sich in <strong>de</strong>r unteren Schicht die XML<br />
Instanz, in <strong>de</strong>r sich sämtliche Daten <strong>de</strong>r Beschreibung als Datei befin<strong>de</strong>n. Dazwischen<br />
befin<strong>de</strong>n sich folgen<strong>de</strong> Schichten:<br />
XML Instanz:<br />
Eine XML Instanz ist die Datei, in <strong>de</strong>r die Daten einer Beschreibung durch das IFS Format<br />
gehalten wer<strong>de</strong>n.<br />
DOM Parser:<br />
Der DOM Parser ermöglicht das Einlesen einer XML Instanz mit <strong>de</strong>m XML Schema. Dabei<br />
wird überprüft, ob die Daten innerhalb <strong>de</strong>r Instanz <strong>de</strong>m Aufbau <strong>de</strong>s XML Schemas folgen<br />
o<strong>de</strong>r <strong>von</strong> diesem abweichen.<br />
DOM Baum:<br />
Der DOM Baum ist die vom DOM Parser aufgebaute Datenstruktur, in <strong>de</strong>r die eingelesenen<br />
Daten einer XML Instanz gehalten wer<strong>de</strong>n. Diese sind in Form <strong>von</strong> DOM Knoten in <strong>de</strong>m<br />
Baum zugreifbar.<br />
DOM API:<br />
Die DOM API ist die Standard API zum Zugriff auf XML Daten innerhalb eines DOM<br />
Baumes. Diese wird hier ausschließlich <strong>von</strong> <strong>de</strong>r XML Element API aufgerufen.<br />
XML Element API:<br />
Hiermit wird <strong>de</strong>r Zugriff auf einen DOM Baum in Form <strong>von</strong> XML-Dokumenten ermöglicht.<br />
Das Setzen und Abfragen <strong>de</strong>r Daten innerhalb <strong>de</strong>s Baumes, wie auch Operationen zum La<strong>de</strong>n<br />
und Speichern einer Instanz, erfolgen über diese XML Element API.<br />
XML Element 4 Java:<br />
Diese Schicht kapselt die interne Datenstruktur <strong>von</strong> <strong>de</strong>n Klassen <strong>de</strong>s IFS Editors. Es wer<strong>de</strong>n<br />
für je<strong>de</strong>n Parameter Metho<strong>de</strong>n für <strong>de</strong>n Zugriff auf folgen<strong>de</strong> Werte angeboten:<br />
- Standardwert (Default-Value)<br />
- Datentyp (Type)<br />
- Bezeichnung <strong>de</strong>s Parameters (Tag)<br />
- Einheit <strong>de</strong>r Daten (Unit)<br />
- Aufzählung angebotener Werte (Enumeration)<br />
- Kommentar / Tool-Tip (Comment)<br />
Diese API ist eingeführt wor<strong>de</strong>n, um einen sicheren Umgang mit <strong>de</strong>n Daten für die Synthese<br />
zu gewährleisten. Auf diese Weise können Paradigmen einer objektorientierten<br />
Programmiersprache wie Typsicherheit, Metho<strong>de</strong>nkapselung, Objekthierarchie und<br />
Vererbung ausgenutzt wer<strong>de</strong>n. Damit erfolgt eine Abstraktion <strong>von</strong> <strong>de</strong>r relativ niedrigen<br />
Knoten-Ebene eines Baumes auf eine höhergelegene Objektsicht.<br />
IFS Java Mo<strong>de</strong>l:<br />
Das IFS Java Mo<strong>de</strong>l (IFDS, Interface Data Structure) ermöglicht einen einfachen Umgang mit<br />
<strong>de</strong>n IFS <strong>Parametern</strong>. Die eigenlichen Daten, die auch in <strong>de</strong>r XML Instanz gespeichert wer<strong>de</strong>n,<br />
sind allerdings im DOM Baum gehalten. Während die Daten im DOM Baum als einheitliche<br />
Knoten ohne semantische Zusammenhänge gehalten wer<strong>de</strong>n, ermöglicht das IFS Java Mo<strong>de</strong>l<br />
eine Zuordnung <strong>de</strong>r Daten zu <strong>de</strong>n einzelnen Komponenten, aus <strong>de</strong>nen das System besteht. Zu<br />
je<strong>de</strong>m Bestandteil <strong>de</strong>s XML Schemas ist eine entsprechen<strong>de</strong> Java-Klasse entwickelt wor<strong>de</strong>n.<br />
39
5.2. Die graphische Oberfläche<br />
Die graphische Oberfläche (GUI, graphical user interface) folgt repräsentiert <strong>de</strong>n Aufbau <strong>de</strong>s<br />
IFS Formates. Für je<strong>de</strong>s Teil-Schema wur<strong>de</strong> eine separate Sicht (Page, View) entworfen, in<br />
<strong>de</strong>m die Parameter <strong>de</strong>s zugehörigen XML Schemas editiert wer<strong>de</strong>n können.<br />
Abbildung 5-2: Der IFS Editor<br />
Abbildung 5-2 zeigt <strong>de</strong>n System-View. In ihm wer<strong>de</strong>n die aktuellen Werte <strong>de</strong>r<br />
Systemkomponente System angezeigt, wie sie schon in 4.2.2 vorgestellt wur<strong>de</strong>. Diese Sicht<br />
(View) bil<strong>de</strong>t <strong>de</strong>n Einstiegspunkt für einen Designer, <strong>de</strong>r mithilfe <strong>de</strong>s IFS Editors eine<br />
Beschreibung <strong>de</strong>r für die <strong>Schnittstellen</strong>synthese notwendigen Parameter erstellen will.<br />
5.2.1. Verwen<strong>de</strong>te Techniken<br />
In <strong>de</strong>n folgen<strong>de</strong>n Abschnitten wird die Funktionsweise <strong>de</strong>r einzelnen Views näher erläutert.<br />
Dabei han<strong>de</strong>lt es sich um mehrfach verwen<strong>de</strong>te Techniken, die in allen Views wie<strong>de</strong>r zu<br />
erkennen sind.<br />
5.2.1.1. Einheitlicher Aufbau<br />
Je<strong>de</strong>s Sub-Schema <strong>de</strong>s IFS Formates wird durch einen View vertreten, <strong>de</strong>r einem einheitlichen<br />
Aufbau folgt. Im oberen Bereich befin<strong>de</strong>n sich immer Textfel<strong>de</strong>r und Auswahlboxen zur<br />
Eingabe <strong>de</strong>r Parameter, wie z.B. die Werte <strong>de</strong>r häufig auftreten<strong>de</strong>n Parametergruppen<br />
I<strong>de</strong>ntification und Version.<br />
40
Der Zugriff auf Listen, die Bestandteil vieler Teilschemata sind, erfolgt über die Buttons und<br />
Listenfel<strong>de</strong>r im mittleren und unteren Bereich. In Abbildung 5-2 befin<strong>de</strong>n sich beispielsweise<br />
in <strong>de</strong>r BoardList zwei Boards mit <strong>de</strong>n Bezeichnungen „Spy<strong>de</strong>r 1“ und „Spy<strong>de</strong>r 2“. Mittels<br />
„Add Board“, „Edit Board“ und „Remove Board“ wer<strong>de</strong>n entwe<strong>de</strong>r bestehen<strong>de</strong> Boards<br />
bearbeitet (Edit), gelöscht (Remove) o<strong>de</strong>r ein neues Board hinzugefügt (Add). In gleicher<br />
Weise befin<strong>de</strong>n sich Buttons und Listenfel<strong>de</strong>r in vielen <strong>de</strong>r an<strong>de</strong>ren Views, in <strong>de</strong>nen Listen<br />
<strong>von</strong> Systemkomponenten verwaltet wer<strong>de</strong>n.<br />
Der untere Abschnitt eines je<strong>de</strong>n Views zeigt einen einzelnen Button, „Save & Exit“. Mit<br />
diesem Button wird <strong>de</strong>r aktuelle View verlassen und die eingegebenen Daten dieses Views<br />
akzeptiert und gespeichert.<br />
5.2.1.2. Überprüfung <strong>de</strong>r Eingaben<br />
Alle vorgenommenen Eingaben wer<strong>de</strong>n nach Verlassen eines Textfel<strong>de</strong>s überprüft. Diese<br />
Überprüfung beschränkt sich <strong>de</strong>rzeit auf die verwen<strong>de</strong>ten Datentypen. Diese sind innerhalb<br />
<strong>de</strong>s IFS Formates <strong>de</strong>finiert und wer<strong>de</strong>n mithilfe einer dafür vorgesehenen Java-Klasse<br />
überprüft. Im Falle einer fehlerhaften Eingabe wer<strong>de</strong>n Fehlerfenster <strong>de</strong>r folgen<strong>de</strong>n Art<br />
angezeigt, und die letzte Eingabe rückgängig gemacht.<br />
Abbildung 5-3: Fehlerfenster<br />
Die eingegebenen Daten wer<strong>de</strong>n auf folgen<strong>de</strong> Eigenschaften getestet. Neben <strong>de</strong>r Art <strong>de</strong>r<br />
Eingabe, in diesen Fällen Buchstaben und/o<strong>de</strong>r Ziffern, wird die Länge <strong>de</strong>r Eingabe mit <strong>de</strong>n<br />
in <strong>de</strong>n Datenformaten <strong>de</strong>finierten Beschränkungen verglichen.<br />
5.2.2. Systemarchitektur und Zielplattformbeschreibung<br />
Die Struktur sämtlicher Views folgt <strong>de</strong>m bereits erläuterten Aufbau. Eine weiterführen<strong>de</strong><br />
Erklärung bleibt daher hier erspart. Die angezeigten Daten wer<strong>de</strong>n in <strong>de</strong>n zugehörigen<br />
Unterkapiteln <strong>von</strong> 4.2 mitsamt ihrer Datentypen erklärt. Zur Systemarchitektur gehören<br />
folgen<strong>de</strong> Views: System, Board, Chip, Task, Medium. Der enge Zusammenhang zwischen<br />
Systemarchitektur und Zielplattformbeschreibung (TPD) erfor<strong>de</strong>rte die Integration <strong>de</strong>r TPD in<br />
<strong>de</strong>n Chip-View. Folgen<strong>de</strong> Views zeigen die Systemkomponenten und die Zielplattform:<br />
41
Abbildung 5-4: Der System-View<br />
Abbildung 5-5: Der Board-View<br />
42
Abbildung 5-6: Der Chip-View<br />
Abbildung 5-7: Der TPD-Clock-View<br />
43
Abbildung 5-8: Der Task-View<br />
Abbildung 5-9: Der Medium-View<br />
44
Wie aus Abbildung 5-6 hervorgeht, wur<strong>de</strong> die Zielplattformbeschreibung (TPD) in die Chip-<br />
Sicht integriert. Die TPD beinhaltet für die <strong>Schnittstellen</strong>synthese und die automatisierte<br />
Erzeugung <strong>von</strong> IFBs wichtige Informationen über <strong>de</strong>n Chip, auf <strong>de</strong>m eventuell benötigte IFBs<br />
realisiert wer<strong>de</strong>n. Der zugehörige TPD-Clock-View gehört ebenso zur Zielplattformbeschreibung.<br />
5.2.3. <strong>Schnittstellen</strong>beschreibung<br />
Die Beschreibung <strong>de</strong>r <strong>Schnittstellen</strong> (Interface) erfolgt im Interface-View. Damit logisch<br />
verbun<strong>de</strong>n sind <strong>de</strong>r Port- und <strong>de</strong>r Register-View. Diese Views folgen <strong>de</strong>m üblichen Aufbau.<br />
Im unteren Teil <strong>de</strong>s Port- bzw. Register-Views wur<strong>de</strong>n die Darstellungen <strong>de</strong>r PinList bzw.<br />
BitList integriert. Die Parameter einzelner Pins bzw. Bits wer<strong>de</strong>n hier angezeigt. Die Anzeige<br />
dieser Parameter innerhalb eines an<strong>de</strong>ren Views beruht darauf, dass die Anzahl <strong>von</strong> Pins und<br />
Bits die Anzahl <strong>von</strong> Boards, Chips o<strong>de</strong>r Tasks um ein Vielfaches übersteigt. Die<br />
Beschreibung einer längeren PinList wäre ansonsten mit häufigen Sichtwechseln verbun<strong>de</strong>n.<br />
Ein Zugriff auf die Daten wur<strong>de</strong> in die Sicht auf einen Port integriert. Er erfolgt mithilfe <strong>de</strong>r<br />
Maus und <strong>de</strong>s Kontext-Menüs, welches durch einen Rechtsclick auf einen Pin geöffnet wird.<br />
Die üblichen Operationen wie „Add Pin“ und „Remove Pin“ sind auf diesem Weg verfügbar.<br />
Die zusätzliche Option zum Kopieren einzelner Pins bzw. Bits ermöglicht ein schnelles<br />
Erstellen umfangreicher PinLists.<br />
Die folgen<strong>de</strong>n Abbildungen zeigen die zur <strong>Schnittstellen</strong>beschreibung gehören<strong>de</strong>n Views.<br />
Abbildung 5-10: Der Interface-View<br />
45
Abbildung 5-11: Der Port-View<br />
Abbildung 5-12: Der Register-View<br />
46
5.2.4. Protokollbeschreibung<br />
Die Beschreibung <strong>de</strong>r Protokolle erfolgt über mehrere Views. Im Protocol-View ist wie<strong>de</strong>rum<br />
die Liste <strong>de</strong>r ProtocolPins integriert. Der Zugriff auf einzelne ProtocolPins erfolgt wie schon<br />
bei <strong>de</strong>r Pin- und BitList mithilfe <strong>de</strong>r Maus.<br />
Abbildung 5-13: Der Protocol-View<br />
Die TransactionTypeList wur<strong>de</strong> nicht auf <strong>de</strong>m üblichen Weg realisiert. Da es sich bei einem<br />
TransactionType um einen einzelnen Parameter han<strong>de</strong>lt und dieser nur eine begrenzte Anzahl<br />
<strong>von</strong> Werten annehmen kann, wur<strong>de</strong> die TransactionTypeList als eine Menge <strong>von</strong> Checkboxen<br />
implementiert.<br />
Der Zugriff auf StateList folgt <strong>de</strong>m üblichen Weg. Die ReferenceSignalList ist jedoch auch<br />
abweichend implementiert. Wie schon in 4.3.2 beschrieben, beinhaltet ein ReferenceSignal<br />
drei Parametergruppen, zwischen <strong>de</strong>nen eine Auswahl getroffen wer<strong>de</strong>n muss. Diese Auswahl<br />
geschieht schon im ProtocolView. Mithilfe <strong>de</strong>r Buttons „Add Clock“, „Add Timer Or<br />
Deadline“ und „Add Global Date“ wird jeweils ein ReferenceSignal erzeugt und <strong>de</strong>r<br />
entsprechen<strong>de</strong> View geöffnet.<br />
Die folgen<strong>de</strong>n Abbildungen zeigen die zugehörigen Views <strong>de</strong>r Sub-Schemata <strong>von</strong> Protocol.<br />
47
Abbildung 5-14: Der State-View<br />
Abbildung 5-15: Der Transition-View<br />
48
Abbildung 5-16: Der TransitionCondition-View<br />
Abbildung 5-17: Der AutomataOutput-View<br />
49
Abbildung 5-18: Der ReferenceSignal-View (Clock)<br />
Abbildung 5-19: Der ReferenceSignal-View (GlobalDate)<br />
50
Abbildung 5-20: Der TimeEvent-View<br />
Abbildung 5-21: Der ReferenceSignal-View (TimerOrDeadline)<br />
51
5.2.5. Verdrahtung<br />
Die Verdrahtung zwischen mehreren <strong>Schnittstellen</strong> wird durch <strong>de</strong>n InterfaceMap-View<br />
erstellt. Im oberen Bereich kann einer Verdrahtung (InterfaceMap) mit Namen, ID und<br />
Beschreibung versehen wer<strong>de</strong>n. Darunter wer<strong>de</strong>n die bei<strong>de</strong>n zu verbin<strong>de</strong>n<strong>de</strong>n <strong>Schnittstellen</strong><br />
ausgewählt. Mithilfe <strong>de</strong>s Buttons „Take settings“ wird diese Auswahl bestätigt und die<br />
graphische Anzeige <strong>de</strong>r Verdrahtung zwischen <strong>de</strong>n bei<strong>de</strong>n <strong>Schnittstellen</strong> im unteren Bereich<br />
aktualisiert.<br />
Abbildung 5-22: Der InterfaceMap-View<br />
Die Verdrahtung kann mithilfe <strong>de</strong>r Maus schnell erstellt wer<strong>de</strong>n. Wenn zwischen zwei Pins<br />
mit gerückter Maustaste eine Linie gezogen wird, wer<strong>de</strong>n automatisch die Eintträge zur<br />
Verdrahtung aktualisiert. Abbildung 5-22 zeigt beispelsweise die Verdrahtung <strong>de</strong>r Pins Out1<br />
und Out3 mit <strong>de</strong>n Pins In1 bzw. In2.<br />
52
6. Zusammenfassung und Ausblick<br />
6.1. Das IFS Format<br />
Das IFS Format bietet eine Möglichkeit, Chip<strong>de</strong>signer bei ihrer Arbeit zu unterstützen. Eine<br />
Beschreibung <strong>de</strong>r <strong>Schnittstellen</strong> integriert in die Mo<strong>de</strong>llierung <strong>de</strong>r Systemarchitektur<br />
ermöglicht die automatisierte Generierung <strong>von</strong> <strong>Schnittstellen</strong>modulen (Interface Blöcken).<br />
Diese Generierung ist allerdings Zukunftsarbeit, die innerhalb <strong>de</strong>s Forschungsprojektes<br />
Interface Synthesis an <strong>de</strong>r Universität Pa<strong>de</strong>rborn vorangetrieben wird. Weiterhin stellt das<br />
Format durch die Nutzung <strong>de</strong>r XML Technologie eine Anbindung zum „IP-based Design“<br />
her.<br />
Die Integration <strong>de</strong>s IFD Formates in eine komplexe Systemarchitektur soll die<br />
Verwendungsmöglichkeiten <strong>de</strong>s IFS Formates ausbauen und gegebenenfalls zu<br />
Verbesserungen <strong>de</strong>r Beschreibung führen. Eine sich anschließen<strong>de</strong> Evaluierung <strong>de</strong>r IFS<br />
Parameter wird zeigen, in wie weit sich diese zur Beschreibung <strong>von</strong> <strong>Schnittstellen</strong> eignen.<br />
6.2. Der IFS Editor<br />
Durch <strong>de</strong>n IFS Editor wur<strong>de</strong> eine Möglichkeit geschaffen, die Menge an <strong>Parametern</strong>, die<br />
durch das IFS Format <strong>de</strong>finiert wur<strong>de</strong>n, zu bewältigen. Der IFS Editor hilft einem Entwickler<br />
komplexe Systeme aufzubauen und zu verwalten.<br />
Die Funktionalität <strong>de</strong>s Editors ist in Zukunft zu erweitern. Die Verknüpfung <strong>de</strong>s IFS Projektes<br />
mit <strong>de</strong>m IPQ Projekt führte zur Nutzung gemeinsamer Datenstrukturen und APIs. Diese<br />
befin<strong>de</strong>n sich teilweise noch im Entwicklungs- bzw. Weiterentwicklungsstadium. Dies bietet<br />
in Zukunft die Möglichkeit weitere Funktionalitäten in <strong>de</strong>n IFS Editor zu integieren.<br />
Folgen<strong>de</strong> zentrale Funktionalitäten wer<strong>de</strong>n als nächstes implementiert:<br />
- das La<strong>de</strong>n und Speichern erstellter Instanzen,<br />
- die Überprüfung <strong>de</strong>r Konsistenz <strong>de</strong>r Daten.<br />
53
7. Literaturangaben<br />
[1] XML Schema Part 0: Primer<br />
http://www.w3.org/TR/2001/REC-xmlschema-0-20010502/<br />
[2] XML Schema Part 1: Structures<br />
http://www.w3.org/TR/2001/REC-xmlschema-1-20010502/<br />
[3] XML Schema Part 2: Datatypes<br />
http://www.w3.org/TR/2001/REC-xmlschema-2-20010502/<br />
[4] Das Web automatisieren mit XML<br />
http://members.aol.com/xmldoku/<br />
[5] Marcel Tiemeyer, Seminarvortrag "Datentypen und Constraints in XML-Schemata" aus<br />
<strong>de</strong>m Seminar "Mobile Computing" <strong>von</strong> Prof. Dr. Stefan Böttcher, Pa<strong>de</strong>rborn,<br />
Deutschland, 2003<br />
[6] JavaTM 2 Platform, Standard Edition, v 1.4.1 API Specification<br />
http://java.sun.com/j2se/1.4.1/docs/api/in<strong>de</strong>x.html<br />
[8] W. Hardt, M. Visarius, S. Ihmor, Rapid Prototyping of Real-Time Interfaces, FPL –<br />
Field Programmable Logic conference in Belfast, 2001<br />
[9] S. Ihmor, Entwurf <strong>von</strong> Echtzeitschnittstellen am Beispiel interagieren<strong>de</strong>r Roboter,<br />
Master Thesis, University of Pa<strong>de</strong>rborn, 2001<br />
[10] S. Ihmor, M. Visarius, W. Hardt, A Design Methodology for Application-specific Real-<br />
Time Interfaces, Proceedings of 2002 IEEE International Conference on Computer<br />
Design: VLSI in Computers & Processors, Colorado, USA, May 2002<br />
[11] S. Ihmor, M. Visarius, W. Hardt, A Consistent Design Methodology for Configurable<br />
HW/SW Interfaces in Embed<strong>de</strong>d Systems, Int. IFIP WG 10.3 / WG 10.5 Workshop on<br />
Distributed and Parallel Embed<strong>de</strong>d Systems (DIPES'02), Montreal, Canada, August<br />
2002<br />
[12] Frank Oppenheimer, Dongming Zhang Wolfgang Nebel, Mo<strong>de</strong>ling Communication<br />
Interfaces with ComiX, Ol<strong>de</strong>nburg, Germany<br />
54
8. Anhang<br />
8.1. Das IFS Format<br />
8.1.1. Datentypen in XML Notation<br />
ipq:M..16<br />
<br />
<br />
Multiple 16<br />
<br />
<br />
<br />
<br />
<br />
ipq:M..32<br />
<br />
<br />
Multiple 32<br />
<br />
<br />
<br />
<br />
<br />
ipq:M..256<br />
<br />
<br />
Multiple 256<br />
<br />
<br />
<br />
<br />
<br />
ipq:NR1..8<br />
<br />
<br />
Numeric 8<br />
<br />
<br />
<br />
<br />
<br />
<br />
ipq:NR1..16<br />
<br />
<br />
Numeric 16<br />
<br />
<br />
<br />
<br />
<br />
<br />
55
ipq:NR2S..3.3<br />
<br />
<br />
Numeric Real<br />
<br />
<br />
<br />
<br />
<br />
<br />
ipq:MinTypMaxNR2S..3.3<br />
<br />
<br />
<br />
<br />
<br />
<br />
The minimum value of the<br />
superior attribute of the VC.<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
The typical value of the<br />
superior attribute of the VC.<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
The maximum value of the<br />
superior attribute of the VC.<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
56
8.1.2. Systemarchitektur<br />
8.1.2.1. Version.xsd<br />
<br />
<br />
<br />
<br />
<br />
<br />
General specification of <strong>de</strong>signer specific data and version<br />
management<br />
<br />
<br />
<br />
<br />
<br />
<br />
Name of this <strong>de</strong>sign part<br />
<br />
<br />
<br />
<br />
<br />
<br />
An informal user <strong>de</strong>scription of this <strong>de</strong>sign part<br />
<br />
<br />
<br />
<br />
<br />
<br />
Name of the Designer<br />
<br />
<br />
<br />
<br />
<br />
<br />
Name of the Company<br />
<br />
<br />
<br />
<br />
<br />
<br />
The Release Number<br />
<br />
<br />
<br />
<br />
<br />
57
The Version Number<br />
<br />
<br />
<br />
<br />
<br />
<br />
8.1.2.2. System.xsd<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
The System contains everything nee<strong>de</strong>d for Interface Synthesis<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
Parameters for i<strong>de</strong>ntification of this System<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
Name of this System<br />
<br />
<br />
<br />
<br />
<br />
<br />
Unique ID of this System<br />
<br />
<br />
<br />
<br />
<br />
<br />
58
An informal user <strong>de</strong>scription of this System<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
Version of this System<br />
<br />
<br />
<br />
<br />
<br />
<br />
Collection of InterfaceMaps<br />
<br />
<br />
<br />
<br />
<br />
<br />
Collection of Boards<br />
<br />
<br />
<br />
<br />
<br />
<br />
Colection of Protocols<br />
<br />
<br />
<br />
<br />
<br />
<br />
Collection of Mediums<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
8.1.2.3. Board.xsd<br />
<br />
<br />
<br />
<br />
<br />
schemaLocation="../Architecture/Chip.xsd"/><br />
<br />
<br />
<br />
<br />
Defines the componentes on Board level, especially Chips<br />
<br />
<br />
<br />
<br />
<br />
<br />
A Board is a part of the System<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
Parameters for i<strong>de</strong>ntification of this Board<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
Name of this Board<br />
<br />
<br />
<br />
<br />
<br />
<br />
Unique ID of this Board<br />
<br />
<br />
<br />
<br />
<br />
<br />
An informal user <strong>de</strong>scription of this Board<br />
<br />
<br />
<br />
<br />
<br />
<br />
Category of this Board<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
60
<br />
<br />
<br />
<br />
<br />
<br />
<br />
Version of this Board<br />
<br />
<br />
<br />
<br />
<br />
<br />
Collection of Interfaces<br />
<br />
<br />
<br />
<br />
<br />
<br />
Collection of InterfaceMaps<br />
<br />
<br />
<br />
<br />
<br />
<br />
Collection of Chips<br />
<br />
<br />
<br />
<br />
<br />
<br />
Collection of Mediums<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
8.1.3. Interface Description<br />
8.1.3.1. Interface.xsd<br />
<br />
<br />
<br />
schemaLocation="./Properties.xsd"/><br />
<br />
<br />
<br />
<br />
<br />
General specification of I/O structure for components<br />
<br />
<br />
<br />
<br />
<br />
<br />
An Interface is a part of Board, Chip, Task, Medium or an<br />
IFB<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
Parameters for i<strong>de</strong>ntification of this Interface<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
The name of this Interface<br />
<br />
<br />
<br />
<br />
<br />
<br />
Unique ID of this Interface<br />
<br />
<br />
<br />
<br />
<br />
<br />
An informal user <strong>de</strong>scription of this<br />
Interface<br />
<br />
<br />
<br />
<br />
<br />
<br />
Connector specification, only used for Medium<br />
connection when there is a physical connector<br />
available<br />
<br />
<br />
<br />
62
<br />
<br />
<br />
Category of the connector<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
Gen<strong>de</strong>r of the connector<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
Properties of this Interface<br />
<br />
63
<br />
<br />
<br />
<br />
Collection of Ports<br />
<br />
<br />
<br />
<br />
<br />
<br />
Collection of Registers<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
8.1.3.2. Properties.xsd<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
General specification of common properties for all components<br />
<br />
<br />
<br />
<br />
<br />
<br />
This attribute specifies the maximum frequency.<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
This attribute specifies the maximum voltage level<br />
<br />
64
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
This attribute specifies the maximum current level<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
This attribute specifies the technology which realizes the<br />
I/O.<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
This attribute specifies the maximum length of connected<br />
cable or wires.<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
65
<br />
<br />
This attribute indicates the <strong>de</strong>gree of latency on the actual<br />
level of abstraction.<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
This attribute indicates the <strong>de</strong>gree of jitter on the actual<br />
level of abstraction.<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
This attribute indicates the <strong>de</strong>gree of tolerance to<br />
interference such as noise.<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
8.1.3.3. Port.xsd<br />
<br />
<br />
<br />
66
<br />
<br />
<br />
General specification of I/O structure at Port level<br />
<br />
<br />
<br />
<br />
<br />
<br />
A Port is a group of <strong>de</strong>pen<strong>de</strong>nd Pins<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
Parameters for i<strong>de</strong>ntification of this Port<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
The name of this Port<br />
<br />
<br />
<br />
<br />
<br />
<br />
Unique ID of this Port<br />
<br />
<br />
<br />
<br />
<br />
<br />
An informal user <strong>de</strong>scription of this Port<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
Characterization of central properties of this Port<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
67
Defines voltage level for a logical one<br />
(high) for this Port<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
Defines voltage level for a logical zero<br />
(low) for this Port<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
Collection of Pins<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
8.1.3.4. Pin.xsd<br />
<br />
<br />
<br />
<br />
<br />
<br />
General specification of I/O at Pin level<br />
<br />
<br />
68
<br />
<br />
<br />
A Pin is a member of a Port and specifies the properties of<br />
a single Pin<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
Parameters for I<strong>de</strong>ntification of this Pin<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
User name of this Pin<br />
<br />
<br />
<br />
<br />
<br />
<br />
Unique ID of this Pin<br />
<br />
<br />
<br />
<br />
<br />
<br />
Alternative user ID for this Pin<br />
<br />
<br />
<br />
<br />
<br />
<br />
An informal user <strong>de</strong>scription of this Pin<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
Characterization of central properties of this Pin<br />
<br />
<br />
<br />
<br />
<br />
<br />
69
Specifies signal direction of this Pin<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
Specifies possible signal states and values<br />
of this Pin<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
8.1.4. Protokolle<br />
8.1.4.1. Protocol.xsd<br />
<br />
<br />
<br />
<br />
<br />
<br />
schemaLocation="../Common/ISO6093Datatypes.xsd"/><br />
<br />
<br />
<br />
<br />
A behavior based, general <strong>de</strong>scription for various Protocols<br />
<br />
<br />
<br />
<br />
<br />
<br />
Specification of one Protocol that can be mapped to an<br />
intercafe of the stuctural <strong>de</strong>scription<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
Parameters for i<strong>de</strong>ntification of this Protocol<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
User Name of this Protocol<br />
<br />
<br />
<br />
<br />
<br />
<br />
Unique ID of this Protocol<br />
<br />
<br />
<br />
<br />
<br />
<br />
An informal user <strong>de</strong>scription of this Protocol<br />
<br />
<br />
<br />
<br />
<br />
<br />
Category of this Protocol<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
71
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
Version of this Protocol<br />
<br />
<br />
<br />
<br />
<br />
<br />
Parameters for i<strong>de</strong>ntification of this Protocol<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
Specifies who starts transaction Process<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
Defines if protocol entity generates or<br />
accepts data<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
Category of this Protocol for special use<br />
cases<br />
<br />
<br />
<br />
<br />
<br />
72
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
Implementation of the data flow mo<strong>de</strong>l for<br />
this protocol<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
Implemented functions which are supported by<br />
the protocol entity<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
Collection of Protocol Pin<br />
<br />
<br />
<br />
<br />
<br />
<br />
Collection of States<br />
<br />
<br />
<br />
<br />
<br />
73
Collection of Reference Signals<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
8.1.4.2. TransitionCondition.xsd<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
General specification of all protocols for components<br />
<br />
<br />
<br />
<br />
<br />
<br />
Defines condition rules for state changes<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
Binary Operator to concatenate two signals<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
Opening Bracket to <strong>de</strong>scribe complex conditions<br />
<br />
<br />
<br />
74
<br />
<br />
<br />
<br />
<br />
<br />
<br />
Id of triggered Signal (ProtocolPin or<br />
ReferenceSignal)<br />
<br />
<br />
<br />
<br />
<br />
<br />
Specification of a condition which has to be met to<br />
fulfill the state change<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
Signal is triggered by a Signal value<br />
constraint<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
Specifies if Signal is a Clock or a<br />
on-Clock Signal<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
Sepcifies Value which has to be Met<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
75
<br />
<br />
<br />
<br />
<br />
<br />
<br />
Signal is triggered by a Timing value<br />
Constraint<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
Specifies if Signal is a Timer, Global<br />
Date or Deadline<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
Specifies Time constraint which has to<br />
be met<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
Closing Bracket to <strong>de</strong>scribe complex conditions<br />
<br />
<br />
<br />
<br />
76
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
8.1.4.3. ReferenceSignal.xsd<br />
<br />
<br />
<br />
<br />
<br />
<br />
General specification of all protocols for components<br />
<br />
<br />
<br />
<br />
<br />
<br />
A ReferenceSignal is a member of a Protocol and specifies<br />
the properties of a additinal Reference Signal<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
Parameters for I<strong>de</strong>ntification of this ReferenceSignal<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
User name of this ReferenceSignal<br />
<br />
<br />
<br />
<br />
<br />
<br />
Unique ID of this ReferenceSignal<br />
<br />
<br />
<br />
77
<br />
<br />
An informal user <strong>de</strong>scription of this<br />
ReferenceSignal<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
Selection of timing behaviour<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
Clock as Reference Signal<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
Frequency of the specified Clock<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
Signal StartValue of the specified<br />
Clock<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
Specification of clock shifts towards<br />
78
other clocks.<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
Specifies to which clock ID<br />
this Clock will be referenced<br />
<br />
<br />
<br />
<br />
<br />
<br />
Specifies if the referenced<br />
Clock is a Real or another<br />
Logical Signal<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
Phaseshift of actual clock<br />
compared to referenced clock<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
79
Timer or Deadline as Reference Signal<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
Specifies the amount of Time when the<br />
Timer or the Deadline will exceed<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
Global Date as Reference Signal<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
Time of one complete Hyper Perio<strong>de</strong><br />
(also cluster cycle)<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
List of TimeEvents within one Hyper<br />
Perio<strong>de</strong> (also called cluster cycle)<br />
<br />
<br />
<br />
<br />
<br />
80
<br />
Single TimeEvent within the<br />
HyperPerio<strong>de</strong> (also called<br />
cluster cycle)<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
Timepoints within the<br />
ClusterCycle<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
ActionValue to happen<br />
at the given TimeEvent<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
81
<br />
<br />
<br />
Target Platform Reference Clock ID for selection of<br />
clock source<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
8.1.5. Verdrahtung / Maps<br />
8.1.5.1. InterfaceMap.xsd<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
An InterfaceMap is the <strong>de</strong>sciption of the connection between<br />
two Port<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
Parameters for i<strong>de</strong>ntification of this InterfaceMap<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
The name of this InterfaceMap<br />
<br />
<br />
<br />
<br />
<br />
82
Unique ID of this InterfaceMap<br />
<br />
<br />
<br />
<br />
<br />
<br />
An informal user <strong>de</strong>scription of this<br />
InterfaceMap<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
Parameters to reference to Interface A<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
Category of <strong>de</strong>vice A<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
ID of <strong>de</strong>vice A<br />
<br />
<br />
<br />
<br />
<br />
<br />
ID of the Interface of <strong>de</strong>vice A<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
83
Parameters to reference to Interface B<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
Category of <strong>de</strong>vice B<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
ID of <strong>de</strong>vice B<br />
<br />
<br />
<br />
<br />
<br />
<br />
ID of the Interface of <strong>de</strong>vice B<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
Collection of PinMaps<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
8.1.5.2. InterfacePinMap.xsd<br />
<br />
attributeFormDefault="unqualified"><br />
<br />
<br />
<br />
<br />
General specification of I/O at Pin level<br />
<br />
<br />
<br />
<br />
<br />
<br />
A Pin Map is the connection betwee two Pins<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
ID of the Port of Interface A<br />
<br />
<br />
<br />
<br />
<br />
<br />
ID of the Pin of Port A<br />
<br />
<br />
<br />
<br />
<br />
<br />
ID of the Port of Interface B<br />
<br />
<br />
<br />
<br />
<br />
<br />
ID of the Pin of Port B<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
85