23.06.2015 Aufrufe

Visualisierung von Parametern komplexer Schnittstellen ... - ihmor.de

Visualisierung von Parametern komplexer Schnittstellen ... - ihmor.de

Visualisierung von Parametern komplexer Schnittstellen ... - ihmor.de

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!