Skip to main content
Erschienen in:
Buchtitelbild

Open Access 2022 | OriginalPaper | Buchkapitel

4. Methode zur abstrakten Modellierung von Automotive Systems-on-Chips

Aktivieren Sie unsere intelligente Suche, um passende Fachinhalte oder Patente zu finden.

search-config
loading …

Zusammenfassung

Im folgenden Kapitel wird das Konzept der in dieser Arbeit entwickelten Entwicklungsmethode zur abstrakten Modellierung von Automotive Systems-on-Chips vorgestellt. Teile der Methode sowie eine Zusammenfassung der Entwicklungsmethode wurden bereits in den Arbeiten [76], [77], [78] und [79] veröffentlicht. Das übergeordnete Ziel der Methode ist hierbei die Steigerung der Effizienz über alle Phasen der SoC-Entwicklung hinweg.
Im folgenden Kapitel wird das Konzept der in dieser Arbeit entwickelten Entwicklungsmethode zur abstrakten Modellierung von Automotive Systems-on-Chips vorgestellt. Teile der Methode sowie eine Zusammenfassung der Entwicklungsmethode wurden bereits in den Arbeiten [76], [77], [78] und [79] veröffentlicht. Das übergeordnete Ziel der Methode ist hierbei, wie in Kapitel 1 beschrieben, die Steigerung der Effizienz über alle Phasen der SoC-Entwicklung hinweg.
Die Phasen der SoC-Entwicklung und die darin verwendeten Spezifikationsdokumente wurden in Abschnitt 2.​3 behandelt und in Abbildung 2.​5 dargestellt. Um all diese Phasen mit der modellbasierten Entwicklungsmethode dieser Arbeit abzudecken, setzt sich diese sowohl aus Anteilen zusammen, welche in erster Linie die Analyse der Kundenanforderungen und auch die Konzeptphase fokussieren, als auch aus Anteilen, welche mehrheitlich die Entwurfsphase fokussieren.
Abbildung 4.1 zeigt, aufbauend auf Abbildung 2.​5, den durch Anwendung der hier vorgestellten Entwicklungsmethode angepassten SoC-Entwicklungs-Flow mit Fokus auf die darin verwendeten Spezifikationsdokumente. Der Entwicklungs-Flow wird dabei um die in der Abbildung 4.1 gelb hinterlegten Anteile erweitert. Die weiß hinterlegten Zahlen verweisen auf die nachfolgenden Abschnitte, in denen das jeweilige Element behandelt wird. Das Kapitel ist wie folgt strukturiert:
  • Um gemäß Anforderung A1 die Notwendigkeit von nachträglichen Änderungen an den zwischen Kunde und Entwickler vereinbarten Anforderungen zu verringern, wird als Teil der Entwicklungsmethode in Abschnitt 4.1 eine modellbasierte Analyse der Kundenanforderungen und des technischen Systemkontextes als Teil des Systemkonzeptes definiert.
  • Die Reduzierung von Implementierungsfehlern aufgrund einer unzureichenden Spezifikationsgenauigkeit (Anforderung A2) sowie die Reduzierung von Inkonsistenzen zwischen Spezifikation und Implementierung (Anforderung A3) durch den Ansatz der modellbasierten Systemkonzeptentwicklung, wird ebenfalls in Abschnitt 4.1 diskutiert.
  • Zum Abschluss behandelt Abschnitt 4.1 Möglichkeiten zur Verbesserung der Anwenderfreundlichkeit (Anforderung A6), der Reduzierung des Modellierungsaufwandes selbst (Anforderung A5) sowie die Integration der hier entwickelten modellbasierten Methode in den bestehenden Entwicklungs-Flow (Anforderung A4).
  • Abschnitt 4.2 beschreibt den Übergang zwischen Konzept- und Entwurfsphase und damit den in Abbildung 4.1 als Verfeinerung dargestellten Schritt der Modellierung des Verhaltens sowie der detaillierten Spezifikation der Architektur im Systemmodell. Dies stellt die Basis für die Automatisierung des Entwurfs und der Verifikation dar und ist damit essenzieller Bestandteil der Entwicklungsmethode.
  • Möglichkeiten der Generierung und damit der Reduzierung des Aufwandes für die Implementierung des Entwurfs (Anforderung A7) sowie der Verifikation (Anforderung A8) werden in Abschnitt 4.3 behandelt.
Abbildung 4.2 abstrahiert den in Abbildung 4.1 dargestellten SoC-Entwicklungs-Flow und setzt das Systemmodell in den Mittelpunkt der Methode. Dabei reduziert es den Flow auf drei Blöcke:
  • Die Kundenanforderungen als Teil des Lastenheftes mittels derer die Systementwicklung beginnt
  • Das Systemmodell, welches stellvertretend für die angestrebte modellbasierte Entwicklungsmethode der hier vorliegenden Arbeit steht
  • Der SoC, hier als grüner Block dargestellt, welcher das Ergebnis der Entwicklung in Gesamtheit repräsentiert
Als Teil der in dieser Arbeit entwickelten modellbasierten Entwicklungsmethode müssen zudem abstrahiert die folgenden zwei Übergänge ermöglicht werden:
  • Schaffung einer Modellierungsmethode für die modellbasierte Spezifikation des SoCs
  • Automatisierung der Implementierung des SoC-Entwurfs
Die Abbildung 4.2 soll in den nachfolgenden Abschnitten als Grundlage dienen, um die erreichten Zwischenergebnisse zu visualisieren. Sie wird daher um den jeweils behandelten Aspekt des Abschnittes bzw. Kapitels ergänzt.

4.1 Modellbasierte Systementwicklung

Wie in Abschnitt 2.​3 erläutert, beginnt die Systementwicklung mit der Analyse der Kundenanforderungen. Hierbei kann es aufgrund der Komplexität der SoCs und der Technologieführerschaft der Zulieferer dazu kommen, dass bereits das Schreiben des Lastenheftes in Zusammenarbeit von Kunde und Zulieferer entsteht. Doch auch wenn der Kunde bereits definierte Kundenanforderungen vorweisen kann, sollten diese analysiert und diskutiert werden, um ein gemeinsames Verständnis der beschriebenen Anforderungen zu schaffen. Dieses Vorgehen entspricht dem in Abschnitt 2.​6.​1 beschriebenen Top-down Ansatz für die Systementwicklung, welcher bereits seit Langem in der Literatur und der Industrie bekannt ist. Dennoch findet der Top-down-Ansatz für die Entwicklung komplexer Systeme nur selten Anwendung. Ein Grund hierfür ist der steigende Zeitdruck, welcher aus der Forderung nach kürzeren Entwicklungszeiten entsteht. Darüber hinaus bieten, wie in Kapitel 3 gezeigt, nur wenige Methoden Lösungen, um den Entwicklern/-innen eine Arbeitsweise nach dem Top-down-Ansatz nicht nur zu ermöglichen, sondern ihn dabei aktiv zu unterstützen und die Umsetzung zu fördern.
Für die Beschreibung der Kundenanforderungen im Lastenheft wie auch aller Anforderungen in den Spezifikationsdokumenten der Konzeptphase werden aktuell mehrheitlich Methoden auf Basis natürlicher Sprache für die Spezifikation verwendet. Diese werden mit Tabellen und gezeichneten Abbildungen ergänzt. Die Beschreibung der Kundenanforderungen in natürlicher Sprache birgt fehlende Eindeutigkeit und damit Interpretationsspielraum. So kann es dazu kommen, dass trotz ausführlicher Abstimmung zwischen Kunde und Entwickler die Anforderungen unterschiedlich interpretiert werden und es im Zuge dessen zu einer Fehlkommunikation kommen kann.
Die nachfolgende Abbildung 4.3 zeigt beispielhaft, welche Auswirkungen Defizite in der Eindeutigkeit der Spezifikation an unterschiedlichen Stellen der Systementwicklung hervorrufen können. Dabei konzentriert sich die Abbildung 4.3 auf die Rollen des Kunden und des Entwicklers als Vertreter des Zulieferers.
Die Abbildung 4.3 stellt die Problematik heutiger, vorwiegend in natürlicher Sprache verfasster Dokumentationen überspitzt dar. Der linke obere Quadrant zeigt, wie der Kunde das System mittels Kundenanforderungen im Lastenheft beschrieben hat. Im rechten oberen Quadranten ist zu sehen, wie der Entwickler anschließend das System entworfen hat. Verdeutlicht wird die Problematik der fehlenden Eindeutigkeit der Spezifikation, welche zu unterschiedlichen Interpretationen führen kann. Zusätzlich fällt die damit verbundene Fehlkommunikation nur selten oder sehr spät auf, da die Partner zwar Informationen austauschen und besprechen, jedoch die ausgetauschten Informationen auf Grundlage ihres Systemverständnisses interpretieren und verstehen. Der linke untere Quadrant weist auf ein weiteres Defizit in der Systementwicklung hin. Bei immer komplexer werdenden Systemen und bei steigendem Zeitdruck leidet die Vollständigkeit der Spezifikation. Dies führt zu Inkonsistenzen zwischen implementiertem Entwurf und Spezifikation. Ein Grund hierfür ist, dass sich Beschreibungen in natürlicher Sprache nur schwer validieren und auf Vollständigkeit prüfen lassen. Der letzte Quadrant unten rechts zeigt das System, welches eigentlich vom Kunden gewünscht und erdacht wurde. Vergleicht man nun den ersten und letzten Quadranten, wird auch hier deutlich: Selbst für den Kunden ist es schwierig, durch Verwendung heutiger Methoden und Sprachen Systeme eindeutig zu beschreiben.
Es besteht daher die Gefahr, dass bereits in dieser frühen Phase der SoC-Entwicklung Fehler in der Spezifikation entstehen, welche erst bei der Realisierung des SoCs entdeckt werden und somit zu aufwendigen und kostenintensiven Nachbesserungen führen. Die Häufigkeit solcher Nachbesserungen zu verringern, ist, wie in Abschnitt 1.​1 durch die Anforderung A1 definiert, ein Ziel der hier entwickelten Modellierungsmethode. Um dies zu erreichen, kombiniert die vorliegende Arbeit drei grundlegende Ansätze der Systementwicklung zu einer Gesamtmethode:
  • Modellbasierte Systementwicklung
  • Entwicklung nach dem Top-down-Ansatz
  • Formalisierung der Spezifikation

4.1.1 Modellierungsmethode

Zur Definition einer Methode für die modellbasierte Systementwicklung bedarf es nicht in jedem Fall der Festlegung einer zu verwendenden Modellierungssprache, wie am Beispiel der in Kapitel 3 diskutierten MDA-Methode zu sehen ist. Da jedoch in dieser Arbeit eine Formalisierung der modellbasierten Spezifikation erfolgen soll und damit eine Zuweisung von Modellelementen und Diagrammen zu einer SoC-spezifischen formalisierten Bedeutung, ist dies nur durch die vorherige Auswahl einer Modellierungssprache möglich.
Ein Automotive SoC besteht, wie in Abschnitt 2.​6.​1 beschrieben, aus Komponenten verschiedener Domänen. Somit muss sich auch die gewählte Modellierungssprache für die Modellierung aller dieser Domänen eignen. Darüber hinaus sollten die Eindeutigkeit und die Lesbarkeit der Informationen erhöht werden. Dies wird durch die Verwendung einer standardisierten und grafischen Modellierungssprache begünstigt. Durch die bereits beschriebene modulare Implementierung der SoCs eignet sich besonders die Verwendung einer objektorientierten Modellierungssprache. Diese Anforderungen an die Modellierungssprache werden durch die in Abschnitt 2.​5.​2 vorgestellte SysML vollständig erfüllt. Daher baut die nachfolgend konzeptuell behandelte Methode dieser Arbeit auf der SysML als Modellierungssprache auf.
Um neben der Auswahl der Modellierungssprache die Kombination der zuvor genannten Ansätze für die Systementwicklung zu ermöglichen, ist die Definition einer an die speziellen Anforderungen der SoC-Entwicklung angepassten Modellierungsmethode notwendig. Dabei dient die in dieser Arbeit beschriebene Methode nicht nur zur Definition einer Arbeitsweise für die modellbasierte Systementwicklung von SoCs. Als Teil der Methode wird zudem eine Modellstruktur definiert, welche die Anwender/-innen an diese Arbeitsweise weitestgehend binden soll. Die Modellierungsmethode implementiert dabei eine Arbeitsweise nach dem Top-down-Ansatz und baut zudem auf der in Kapitel 3 vorgestellten SPES-Methode von [34] auf. Durch die Definition der Modellstruktur als Teil der Methode wird nicht nur ein Wiedererkennungswert zwischen den Modellen und damit eine allgemeine Lesbarkeit aller Modelle erreicht, es wird zudem der Modellierende in gewissem Maße an die Verwendung der Methode gebunden. Nachfolgend soll die SysML-basierte Modellierungsmethode anhand der in Abbildung 4.4 gezeigten Modellstruktur dieser Arbeit beschrieben werden.
Die Struktur ist dabei in drei Submodelle unterteilt, deren Inhalt sich an dem in Abschnitt 2.​6.​1 beschriebenen analytischen Vorgehen des Top-down-Ansatzes orientiert, und weist zudem den Diagrammen der SysML eine formale Bedeutung für die SoC-Entwicklung zu. Damit wird nachfolgend der Grundstein für die Formalisierung der Spezifikation gelegt. Die Aufteilung des Modells in Submodelle erfolgt durch das in Abschnitt 2.​5 vorgestellte Modellelement, genannt Package.
System Context Model
Die Entwicklung des Systemkonzeptes, welchem das Modell in der Konzeptphase entspricht, beginnt, wie in Abschnitt 2.​3 beschrieben, mit der Analyse der Kundenanforderungen. Diese erfolgt traditionell als Anwendungsfallanalyse mittels Use Case Diagram und ist Teil des System Context Model. Dabei muss geklärt werden, welche Anwender/-innen in welchem Anwendungsfall mit dem zu entwickelnden System interagieren. Um diese Analyse bei der Entwicklung komplexer Systeme zuverlässig durchführen zu können, ist oftmals die Zusammenarbeit zwischen Kunde und Zulieferer als Technologieführer nötig. Hierzu bietet der in dieser Methode definierte modellbasierte Ansatz durch die grafische Repräsentation der Informationen eine ideale Grundlage für die erfolgreiche Kommunikation zwischen allen Beteiligten. Darüber hinaus findet, anders als im bisherigen Vorgehen, die Modellierung der Anwendungsfälle durch den modellbasierten Ansatz direkt als Teil des Systemkonzeptes statt und ist somit später Teil der Spezifikation. Dies ermöglicht es allen beteiligten Entwicklern/-innen, zu einem späteren Zeitpunkt den Ursprung der daraus entstehenden Systemanforderung nachzuvollziehen.
In Abschnitt 2.​4 wurde, als Teil der Fallstudie von [19], das fehlende Wissen über den Systemkontext des zu entwickelten Systems als Defizit von den Ingenieuren/-innen aus dem Bereich der Eingebetteten Systeme angegeben. Um dieses Defizit zu minimieren oder im Idealfall zu beheben, soll in der hier vorgestellten Methode, als Teil des System Context Model, eine Analyse und Modellierung des technischen Systemkontextes erfolgen. Diese Informationen sind besonders im Bereich der Eingebetteten Systeme und damit der SoC-Entwicklung wichtig, da diese stets Teil eines übergeordneten Systems sind und somit eine Vielzahl an technischen Schnittstellen und Funktionalitäten als Anforderungen aus den umliegenden Systemen resultiert. Für die Modellierung des Systemkontextes wird das in der SysML enthaltene Internal Block Diagramm (IBD), welches in Abschnitt 2.​5.​2 bereits grundlegend besprochen wurde, verwendet.
Functional Model
Es folgt der Übergang zum Functional Model und damit die Ableitung von geforderten Funktionen aus den Anwendungsfällen, welcher der SoC erfüllen muss. Dieser Arbeitsschritt ist in Abbildung 4.5 als blauer allocate-Pfeil beispielhaft dargestellt.
Dabei entsprechen die extern sichtbaren Funktionen des SoCs den Anwendungsfällen und definieren, welche Funktionalität den Anwendern/-innen durch den SoC als Gesamtsystem zur Verfügung gestellt wird. Die so erhaltenen Funktionen entsprechen der obersten Ebene im Block Definition Diagram (BDD) des Functional Model. Im nächsten Schritt werden die Funktionen entsprechend dem Top-down-Ansatz in Teilfunktionen dekomponiert. Die Dekomposition entspricht dabei der Analyse, welche interne Funktionen der SoC benötigt, um die externen vom Kunden geforderten Funktionalitäten zu gewährleisten. Das Functional Model soll keine Informationen enthalten, wie die Funktionen technisch umgesetzt werden, sondern lediglich eine lösungslosgelöste Analyse der benötigten Funktionen ermöglichen. Durch dieses Vorgehen wird zum einen die Wahrscheinlichkeit reduziert, dass benötigte Funktionen nicht berücksichtig werden. Zum anderen senkt es die Gefahr, dass Funktionen realisiert werden, welche nicht vom Kunden gefordert wurden oder zur Erfüllung dieser dienen. Das BDD des Functional Model wird nachfolgend als Hierarchical Functional Diagram bezeichnet.
Zusätzlich zur reinen Dekomposition der Funktionen werden im Functional Model die Teilfunktionen mittels verhaltensbeschreibender Diagramme logisch verknüpft. Das Activity Diagram steht in Abbildung 4.5 stellvertretend für die verhaltensbeschreibenden Diagramme. Darüber hinaus stehen den Anwendern/-innen das Sequence Diagram und das State Machine Diagram zur Verfügung. Die Beziehung zwischen den Teilfunktionen des BDDs als Verfeinerungsbeziehung zum Activity Diagram wurde in Abbildung 4.5 als grüner refine-Pfeil dargestellt. Die Verfeinerungsbeziehung steht für die Modellierung der nächsttieferen Abstraktionsebene eines Modellelements.
Technical Model
Beim Übergang zum Technical Model erfolgt die Zuordnung der Teilfunktionen aus dem Hierarchical Functional Diagram zu funktionalen Modulen. Zum Zeitpunkt der Konzeptphase finden diese Entscheidungen rein konzeptuell statt. Die Modellierung des Technical Model beginnt wie beim Functional Model mit der Modellierung des BDD als Hierarchical Technical Diagram. Dabei werden die zur Realisierung des SoCs benötigten Module analysiert und modelliert. Gleichzeitig wird die Zuordnung der benötigten Teilfunktionen zu den jeweiligen Modulen als allocate-Beziehung, wie in Abbildung 4.4 und Abbildung 4.6 dargestellt, modelliert. Im IBD des Technical Model wird anschließend die Architektur des SoCs als Ganzes sowie einzelner Teilkomponenten modelliert – im Nachfolgenden als Architecture Diagram bezeichnet. Dabei werden die einzelnen Module spezifiziert und die Anforderungen an diese in der Konzeptspezifikation dokumentiert.
Durch die beschriebene Modellierungsmethode und die damit verbundene Modellstruktur wird eine Nachverfolgbarkeit der Anforderungen von den Modulanforderungen bis hoch zu den ursprünglichen Kundenanforderungen ermöglicht. Somit kann das in Abschnitt 2.​4 (Abbildung 2.​10) identifizierte Defizit der nicht ausreichend vorhandenen „Traceability“ (Nachverfolgbarkeit) durch die hier vorgestellte Modellierungsmethode minimiert und somit die Nachverfolgbarkeit gesteigert werden.
Das Technical Model enthält in der definierten Struktur ein weiteres Submodell, das Behavioral Model. In diesem werden verhaltensbeschreibende Diagramme verwendet, um die Funktionalität einzelner Module und Komponenten auf technischer Ebene zu beschreiben. Diese technische und implementierungsnahe Beschreibung soll nachfolgend als Verhalten bezeichnet werden. Sie wird in der Regel erst in der Entwurfsphase Teil des Modells. Daher folgt eine nähere Beschreibung im nachfolgenden Abschnitt 4.2.1.
Die hier definierte Modellstruktur wird mittels Packages im SysML-Modell realisiert und soll für alle SoC-Projekte gleichermaßen gelten. Um den Aufwand bei der Modellierung zu reduzieren und darüber hinaus die Anwender/-innen an die Verwendung der Modellstruktur zu binden, wird diese den Anwendern/-innen als ein Template zur Verfügung gestellt. Durch dieses Vorgehen wird ein erster Schritt in Richtung formalisierter Spezifikation erreicht und zudem die Entwickler/-innen durch das Arbeiten in der Modellstruktur in einer Arbeitsweise nach dem Top-down-Ansatz unterstützt.
Zur Verfügung gestellt wird die in dieser Arbeit definierte Struktur des Modells, fertig modelliert als Teil des sogenannten Automotive-SoC-Profils, welches ebenfalls im Zuge der hier vorliegenden Arbeit entwickelt wurde. So wie die SysML als Profil der UML darstellbar ist, so lassen sich auch innerhalb der SysML domainspezifische Profile erstellen. Dabei können Profile, vergleichbar mit einem Package, abhängig vom Anwendungsfall verschiedenste Diagramme und Modellelemente enthalten [25]. Somit lässt sich ebenso die Modellstruktur, welche durch Packages modelliert wird, als Teil des Automotive-SoC-Profils zur Verfügung stellen. Der gesamte Inhalt des Automotive-SoC-Profils ist als eine Art Werkzeugkasten zu verstehen. Er wurde im Zuge der hier vorliegenden Arbeit in Zusammenarbeit mit SoC-Entwicklern/-innen definiert. Auf das Automotive-SoC-Profil in seinem gesamten Umfang wird in Abschnitt 4.1.3 näher eingegangen. Da das Automotive-SoC-Profil einen direkten Einfluss auf die Themen Formalisierung, Anwendbarkeit, Fehleranfälligkeit und Aufwand für die Modellierung des Systemkonzeptes hat, wird es als Teil der hier vorgestellten modellbasierten Entwicklungsmethode behandelt.
Durch die SysML-basierte Modellierungsmethode für die SoC-Entwicklung, gepaart mit der definierten und als Template gelieferten Modellstruktur, wurden die Ansätze modellbasierte Systementwicklung und Top-down-orientierte Arbeitsweise in die hier entwickelte Entwicklungsmethode integriert. Ebenso erfüllt die Definition einer festen Modellstruktur einen ersten Schritt in Richtung formalisierte Spezifikation. Um jedoch eine nahezu vollständige Eindeutigkeit der modellierten Spezifikation über alle in Abschnitt 2.​3 beschriebenen Spezifikationsdokumente hinweg zu erreichen, bedarf es der domänenspezifischen Formalisierung der SysML für die Automotive-SoC-Entwicklung. Dies bedeutet eine feste Zuweisung von Modellelementen und Diagrammen zu einer SoC-spezifischen eindeutigen Interpretation.
Die SysML hat das Ziel, den Systementwicklern/-innen übergreifend über eine Vielzahl von Domänen hinweg eine Sprache zur modellbasierten Beschreibung zu bieten. Stellt man hierbei einen Vergleich zwischen grafischen Modellierungssprachen und natürlichen Sprachen her, entsprechen die Modellelemente in gewisser Weise den Vokabeln einer natürlichen Sprache und die Diagramme einer Art Grammatik. Dabei weist die Grammatik der SysML wie die Grammatik natürlicher Sprachen gewisse Freiheitsgrade für die Anwender/-innen auf. So ist es auch in der SysML nicht definiert, wie die Diagramme zu verwenden sind und welche Bedeutung bestimmte Elemente bezogen auf ein System besitzen. Durch diese Freiheitsgrade erhält man die hier ursprünglich gewünschte Generalisierung der Sprache. Im Kontext einer Systembeschreibung in Form beispielsweise eines Systemkonzeptes ist es jedoch essenziell, das System eindeutig beschreiben zu können und den Interpretationsspielraum so gering wie möglich zu halten. Denn ist die Spezifikation des Systems nicht eindeutig beschrieben, kann es zu einem unterschiedlichen Verständnis des Systems zwischen Kunde und Entwickler oder zwischen den Entwicklern/-innen kommen. Dies führt immer wieder zu Fehlern in der Implementierung, die zudem oftmals erst in einer sehr späten Phase der Implementierung entdeckt werden [22].

4.1.2 Formalisierung der modellierten Spezifikation

Nachfolgend soll als Teil der hier entwickelten Methode die Formalisierung für die modellbasierte Spezifikation von SoCs aufgezeigt werden. Auf die Bedeutung der Diagramme wurde bereits als Teil der Beschreibung der Modellstruktur in Abschnitt 4.1.1 eingegangen. Nachfolgend soll die Verwendung der Diagramme näher behandelt sowie die Bedeutung der jeweiligen Modellelemente bezogen auf die Automotive-SoC-Entwicklung formalisiert werden. Darüber hinaus findet als Teil der Formalisierung eine Einschränkung der für die Methode anzuwendenden SysML-Modellelemente im jeweiligen Diagramm statt. Zur Veranschaulichung soll für die wichtigsten Diagramme exemplarisch die Zuweisung von Modellelement zur formalen Bedeutung in den nachfolgenden Tabellen – Tabelle 4.1, 4.2, 4.3, 4.4, 4.5 und Tabelle 4.6 – vorgestellt werden.
System Context Model
Das Package, genannt System Context Model, stellt den Startpunkt der modellbasierten Systemkonzeptentwicklung dar. Es dient der Analyse der Kundenanforderungen und auch des technischen Systemkontextes.
  • Das Use Case Diagram dient dabei zur Analyse, welche Funktionalität des SoCs als Teil eines übergeordneten Systems vom Kunden gefordert wird. Hierbei sind die Aktoren und Nutzer in der Regel andere Systeme des übergeordneten Systems, wie zum Beispiel eine ECU, welche mit dem SoC interagiert.
Tabelle 4.1
Auszug Formalisierung Use Case Diagram
SysML-
Modellelement
Formalisierte Automotive-SoC-Interpretation
Use Case
Anwendungsfälle bzw. Funktionen, welche durch andere Subsysteme des übergeordneten Systems vom SoC benötigt werden
Actor
Anderes System, welches mit dem SoC interagiert oder mit dem der SoC interagiert
Boundary Box
Repräsentation des SoCs im Diagramm
Association
Zuweisung, welches externe System für welchen Anwendungsfall mit dem SoC interagiert
Dependency
Dient der Darstellung von Beziehungen zwischen den Anwendungsfällen untereinander, z. B. Ableitungsbeziehung zwischen Anwendungsfällen
  • Das Internal Block Diagram, als System Context Diagram benannt, dient der Modellierung des technischen Systemkontextes. Dies ist bei der Entwicklung von Eingebetteten Systemen und damit bei der Entwicklung von SoCs besonders wichtig, da in diesem Fall der SoC ein Teil eines übergeordneten Systems ist, welcher mit anderen Systemen erfolgreich interagieren soll. Wann der technische Systemkontext modelliert werden kann, hängt stark von dem Entwicklungsstand der umliegenden Systeme ab und wird daher in manchen Fällen erst in einer späteren Phase der Entwicklung final modelliert.
Tabelle 4.2
Auszug Formalisierung IBD System Context Model
SysML-
Modellelement
Formalisierte Automotive-SoC-Interpretation
Part
Dient der Modellierung des SoCs sowie externer Komponenten z. B. Submodule des übergeordneten Systems
ProxyPort
Schnittstellen der Parts und damit z. B. des SoCs
Connector
Verbindung zwischen den Ports oder den Komponenten selbst; kann zudem einem Daten-Bus entsprechen
Als Ergänzung im System Context Model kann das Requirement Diagram hinzugefügt werden. Zum einen kann es verwendet werden, um abzubilden, welche Anforderungen durch welches Modul bzw. Submodul erfüllt wird, zum anderen dient das Requirement Diagram dazu, Anforderungen untereinander in Beziehung zu setzen. So werden beispielsweise während der Konzeptphase Systemanforderungen aus den Kundenanforderungen abgeleitet. Diese Ableitung im Modell darzustellen ist wichtig, um später den Kontext und Ursprung der jeweiligen Systemanforderung nachvollziehen zu können. Da das Requirement Diagram jedoch nicht den SoC selbst modelliert, ist es nicht Teil der Formalisierung der Spezifikation.
Functional Model
Das Functional Model soll der Analyse und Modellierung der Funktionalität des SoCs dienen. Dabei liegt der Fokus auf der Analyse, welche internen Funktionen das SoC zur Erfüllung der vom Kunden geforderten Funktionalität benötigt. Dieser Zwischenschritt zwischen Analyse der Kundenanforderungen und Entwicklung einer Lösung soll eine weniger lösungsorientierte Arbeitsweise implementieren. Bei der Entwicklung komplexer Systeme, wie im Falle der Automotive SoCs, neigen Entwickler/-innen dazu, bereits bekannte Lösungsansätze wiederzuverwenden, ohne dabei eine genaue Analyse der Anforderungen an die Funktionalität durchzuführen. Aufgrund einer unzureichenden Analyse kann es jedoch zu einer fehlerhaften Dimensionierung des Systems kommen, sodass Funktionen realisiert werden können, welche ursprünglich nicht vom Kunden gefordert wurden. Zur Analyse und Modellierung der Funktionen des SoCs sollen als Teil der hier beschriebenen Methode folgende Diagramme für die formalisierte Spezifikation dienen:
  • Das Block Definition Diagram (BDD) genannt Hierarchical Functional Diagram, welches zur Dekomposition und damit zur Analyse der Funktionen des SoCs dient. Dabei werden auf Grundlage einzelner Anwendungsfälle die Funktionen abgleitet, welcher der SoC nach außen für die Interaktion mit seinem Umfeld benötigt. Die Dekomposition dient der Analyse, welche Teilfunktionen der SoC daraufhin benötigt, um diese externen Funktionalitäten intern ermöglichen zu können. Das BDD wird für die hier entwickelte Methode im Umfang der zu verwendenden Modellelemente stark eingeschränkt.
Tabelle 4.3
Auszug Formalisierung BDD Functional Model
SysML-
Modellelement
Formalisierte Automotive-SoC-Interpretation
Block
Bildet die externen Funktionalitäten und auch die internen Teilfunktionen des SoCs als Block ab
Directed Composition
Stellt die Teile-Beziehung zwischen den Hierarchien dar, z. B. Teilfunktion ist Bestandteil einer definierten externen Funktion
  • Das Activity Diagram dient als nächste Abstraktionsebene einer Funktion und beschreibt die Funktion als Summe aus Teilfunktionen, welche in einem Ablauf modelliert werden. Eine Besonderheit ist hierbei das Modellelement Swimlane, welches dazu verwendet wird, die Activities einzelnen Modulen zuzuordnen. Das Modellieren der Swimlanes erfolgt daher in der Regel erst zu einem späteren Zeitpunkt der Entwicklung.
Tabelle 4.4
Auszug Formalisierung Activity Diagram Functional Model
SysML-
Modellelement
Formalisierte Automotive-SoC-Interpretation
Activity
Entspricht einer Funktion aus dem Functional Hierarchical View. Hinter jeder Action kann ein weiteres Activity Diagram als nächsttiefere Abstraktionsebene modelliert werden
Action Pin
Schnittstelle der Activities für Datenfluss zwischen den Funktionen
Object Flow
Modelliert den Datenfluss zwischen den Funktionen/Activities
Control Flow
Modelliert den Kontrollfluss. Damit lassen sich Wechsel ohne Datenfluss zwischen Activities modellieren
Decision Node
Stellt die Abfrage einer Bedingung bzw. Schleifen dar, z. B. If-Abfrage (entspricht Logikelement „Oder“)
Merge Node
Verbindet die durch die Decision Node geteilten Flows
Swimlane
Dient der Zuweisung einzelner Funktionen/Activities zu definierten Komponenten und Modulen, welche diese später bearbeiten
  • Das Sequence Diagram dient zur Modellierung einer festgelegten Sequenz und legt dabei der Fokus auf die Modellierung der Kommunikation zwischen einzelnen Funktionen. Es kann dabei beispielsweise dazu dienen, einen möglichen Durchlauf eines Activity Diagram zu modellieren.
Technical Model
Haben Analyse und Modellierung der Funktionalität im Functional Model einen gewissen Reifegrad erreicht, kann damit begonnen werden, die einzelnen Funktionen und Teilfunktionen den Modulen zuzuordnen. Dies geschieht im Technical Model.
Das Technical Model ist ein entscheidender Schritt in Richtung Systementwurf, da bei der Modellierung der im Technical Model enthaltenen Diagramme erste Entwurfsentscheidungen getroffen werden. Diese Entscheidungen sind rein konzeptuell und erfolgen lediglich auf System-Ebene. Spätestens bei der Modellierung des Technical Model erfolgt die Einteilung der Funktionen in die Domänen Analog- und Digitaltechnik und es folgen erste Entscheidungen, welche Funktionen durch die Software bzw. Hardware realisiert werden. Das Technical Model beinhaltet dabei zwei Arten von SysML-Diagrammen. Die Modellierung ist hierbei vergleichbar mit dem Functional Model.
  • Mittels BDD, genannt Hierarchical Technical View, wird eine Dekomposition des SoCs vorgenommen. Dabei wird der SoC auf System-Ebene in Module zerlegt. Parallel erfolgt die bereits erwähnte Allokation, welche der Module für die Bearbeitung welcher Funktion aus dem Functional Model zuständig sind.
Tabelle 4.5
Auszug Formalisierung BDD Technical Model
SysML-
Modellelement
Formalisierte Automotive-SoC-Interpretation
Block
Bildet den SoC sowie auch die Teilkomponenten und Submodule im BDD ab
Directed Composition
Stellt die Teile-Beziehung zwischen den Hierarchien dar, z. B. Modul ist Teil des SoCs. Bei der Modellierung der Directed Composition wird ein Part mit demselben Namen erzeugt
  • Das IBD im Technical Model, genannt Architecture Diagram, dient zur Modellierung der Hardware- und Software-Architektur. Dazu werden die Parts, welche durch die Modellierung der Directed Composition im Hierarchical Technical View entstanden sind, zu einer Architektur zusammengesetzt.
Tabelle 4.6
Auszug Formalisierung IBD Technical Model
SysML-
Modellelement
Formalisierte Automotive-SoC-Interpretation
Part
Entspricht einem Software- bzw. Hardwaremodul in der Architektur
ProxyPort
Schnittstellen der Parts und damit eines Moduls
Connector
Verbindung zwischen den Ports oder den Modulen selbst, kann zudem einem Bus entsprechen
Die Formalisierung der Spezifikation birgt neben der gewonnenen Eindeutigkeit Vorteile durch die einfachere Wiederverwendbarkeit, den Wiedererkennungswert zwischen einzelnen SoC-Modellen und für die Automatisierung. Auf diese Vorteile wird in Abschnitt 4.3 näher eingegangen. Jedoch führt die Modellierung der Spezifikation zu Beginn der Konzeptentwicklung im Vergleich zur Spezifikation in natürlicher Sprache zu einem Mehraufwand. Zudem werden die Anwender/-innen zu Beginn der Einführung der neuen Methode vor neue Herausforderungen gestellt, weshalb es für eine erfolgreiche Einführung sehr wichtig ist, den Aufwand zu reduzieren und den Entwicklern/-innen bei der Anwendung zu unterstützen. Hierzu wird im nachfolgenden Abschnitt näher auf die Bestandteile des Automotive-SoC-Profils eingegangen.

4.1.3 Automotive-SoC-Profil

Als Teil von Abschnitt 4.1.1 wurde das entwickelte Automotive-SoC-Profil, welches die definierte Modellstruktur den Anwendern/-innen in Form von Packages zur Verfügung stellt, bereits vorgestellt. Nachfolgend werden weitere Inhalte des in dieser Arbeit entwickelten Automotive-SoC-Profils beschrieben. Tabelle 4.7 zeigt dazu einen Auszug der wichtigsten Elemente des Automotive-SoC-Profils.
Tabelle 4.7
Auszug Elemente Automotive-SoC-Profil
Gruppe Profil-Elemente
Beschreibung
Template Modellstruktur
Gesamte Modellstruktur aus Abschnitt 4.1.1 inklusive Packages und erste Diagramme
Templates Module Technical Model
Template eines SoCs als Block und Part, bereits versehen mit typischen Stereotypen, Datentypen, Ports usw
Template eines SoC-Subblocks als Block und Part, bereits versehen mit typischen Stereotypen, Datentypen, Ports usw
Templates Ports Technical Model
Definition von häufig benötigten Ports inklusive deren Eigenschaften
Templates externer Standardkomponenten
System Context Model
Vorgefertigte Induktivitäten, Kapazitäten, Widerstände, Transistoren usw. als Blöcke wie auch als Parts für die Nutzung im System Context Diagram
Stereotypen
Definition von SoC-spezifischen Stereotypen auf Grundlage von „Stakeholder“-Befragungen
Datentypen
Definition von SoC-spezifischen Datentypen auf Grundlage von „Stakeholder“-Befragungen
Variablen
Definition von SoC-spezifischen Variablen auf Grundlage von „Stakeholder“-Befragungen
Da, wie in Abschnitt 4.1.1 beschrieben, jedes Submodell als Teil dieser Methode definierte Diagramme enthalten kann, können sowohl die Modellstruktur als auch die typischen Diagramme bereits als Teil des Profils vorgefertigt zur Verfügung gestellt werden. Darüber hinaus wurden in Zusammenarbeit mit SoC-Entwicklern/-innen eine Reihe von Modellelementen definiert, welche im Regelfall für die Modellierung eines jeden SoC-Systemkonzeptes benötigt werden. So wurde beispielsweise ein generischer SoC-Block mit zugehörigem Part sowie ein generalisierter Block einer SoC-Komponente, ebenfalls mit zugehörigem Part, modelliert. Diese Templates werden zudem bereits mit vordefinierten Ports ausgestattet, welche mit hoher Wahrscheinlichkeit später für das jeweilige Element benötigt werden. Auf Grundlage einer „Stakeholder“-Befragung, welche Aspekte der SoC-Entwicklung aus ihrer Sicht im Modell abgebildet werden müssen, wurden zudem als Teil des Profils funktionale sowie nichtfunktionale Eigenschaften in Form von Datentypen und Variablen definiert [82]. Ein Beispiel hierfür ist die Definition einer Variable samt möglichen Werten für das ASIL. Bei ASIL handelt es sich, wie in Abschnitt 2.​2 beschrieben, um ein Risikoklassifizierungssystem [13]. Die Definition des ASIL ist fester Bestandteil der SoC-Entwicklung und wird somit in allen zukünftigen Entwicklungsprojekten benötigt. Darüber hinaus hat es eine durch die Norm definierte Anzahl an Werten und bietet sich somit optimal als Bestandteil des Automotive-SoC-Profils an. Die Definition solcher Datentypen und Variablen als Teil des Profils sorgt nicht nur für eine einheitliche Namenskonvention über alle Modelle hinweg, sondern führt dazu, dass die Entwickler/-innen sich bereits bei der Modellierung mit diesen Aspekten der SoC-Entwicklung auseinandersetzen muss. Besonders bei dem hier gezeigten Beispiel, der Bestimmung des ASIL für Module des SoCs, ist es wichtig, dass dies bei der Modellierung nicht vergessen wird.
Im Zuge der Arbeit wurden zusätzlich generische Komponenten wie Induktivitäten, Kapazitäten, Transistoren, Widerstände usw. als Parts modelliert und mit Variablen versehen. Diese werden in vielen Fällen als externe Komponenten für die Beschaltung des SoCs benötigt und dienen somit zur Modellierung des technischen Systemkontextes im System Context Model. Zur besseren Visualisierung werden den Parts zudem die entsprechenden elektrischen Schaltsymbole zugewiesen und diese im Modell als Teil des Parts angezeigt. Alle hier beschriebenen Templates lassen sich bei Bedarf für die Modellierung aus dem Profil in das eigentliche Modell kopieren und wiederverwenden. Anschließend können die kopierten Modellelemente im Modell weiter verfeinert und an den entsprechenden Anwendungsfall angepasst werden.
Das Automotive-SoC-Profil mit den enthaltenen Templates und vordefinierten Variablen reduziert den Aufwand für die Anwender/-innen bei der Modellierung der Spezifikation, ermöglicht durch die einheitliche Namenskonvention eine zusätzliche Vereinheitlichung der Spezifikationen und senkt zudem die Fehleranfälligkeit. Da es speziell für die Anforderungen der Automotive-SoC-Entwicklung entwickelt wurde, ist es essenzieller Bestandteil der hier vorgestellten Methode zur modellbasierten Systementwicklung. Als Teil der Modellierungsmethode wird das Automotive-SoC-Profil einem Modell eines SoC-Entwicklungsprojekts lediglich als referenziertes Objekt hinzugefügt, wie in Abbildung 4.7 dargestellt.
Der Nutzer kann den Inhalt des Profils für seine Modellierung nutzen, jedoch keine direkten Änderungen an den Inhalten im Profil vornehmen. Da das Profil jedoch im Laufe der Zeit an die Bedürfnisse der Anwender/-innen angepasst werden soll, empfiehlt sich eine zentrale Verwaltung des SoC-Profils.

4.1.4 Integration Modellierungsmethode in Entwicklungs-Flow

Durch die Anwendung der Modellierungsmethode auf das Systemkonzept lassen sich alle Informationen des Systemkonzeptes in nur einem zentralen Dokument spezifizieren. Verglichen mit der formlosen Sammlung aus verschiedenen Beschreibungsformen im aktuellen Flow kann so die Konsistenz gewährleistet werden. Dennoch beinhaltet das Systemkonzept Informationen, deren Spezifikation sich in anderen Formaten als der SysML besser eignen oder sich hierfür andere Formate als „Goldstandard“ für bestimmte Anwendungen in der Praxis erwiesen haben. Um diese Formate mit der SysML kombinieren zu können und so die Vorteile der jeweiligen Beschreibungsform für die Spezifikation zu addieren, werden als Teil der hier vorliegenden Arbeit Schnittstellen und Interaktionsmöglichkeiten diskutiert. Nachfolgend sollen drei der wichtigsten Formate sowie die Möglichkeiten der Kombination betrachtet werden.
Anforderungen
Das Anforderungsmanagement nimmt in dieser Arbeit eine Sonderrolle ein, da die SysML zwar die Modellierung von Anforderungen mittels Requirement Diagram bietet, diese Darstellungsform sich jedoch nur bedingt für das Anforderungsmanagement als alleinige Lösung eignet. Die Anforderungen werden in der SysML als eine Sonderform des Blocks mit ID und textueller Beschreibung dargestellt. Die Verwaltung aller Anforderungen eines SoCs als Requirements-Block im Diagramm ist jedoch nicht praktikabel, da hierdurch die Übersichtlichkeit des Diagramms stark leiden würde. Zudem werden, wie in Abschnitt 2.​3 beschrieben, die Kundenanforderung in der Regel vom Kunden selbst verfasst, welcher diese meist in natürlicher Sprache spezifiziert. Diese Kundenanforderungen in Form des Lastenhefts direkt mit der darauf aufbauenden Analyse als Modell zu verlinken, ist entscheidend, um die Nachverfolgbarkeit zwischen den Anforderungen aufrechtzuerhalten.
Während der Konzeptphase entsteht zudem, wie in Abschnitt 2.​3.​2 behandelt, parallel zum Systemkonzept die Entwurfsspezifikation, welche nach wie vor die Systemanforderungen enthalten soll. Diese resultieren maßgeblich aus der Entwicklung des Systemkonzeptes und haben damit einen direkten Bezug zum Modell. Hierbei soll jedoch die neue Methode eine dynamische und direkte Verlinkung zwischen den Anforderungen und den Modellelementen ermöglichen. Dabei soll das Modell zum einen die Aufgaben der bisher benutzten und gezeichneten Abbildungen übernehmen, welche statisch als Bild-Format in die Spezifikationsdokumente eingefügt wurden. Zum anderen dient das SysML-Modell als Masterdokument des Systemkonzeptes und bietet somit die Möglichkeit einer formalisierten Spezifikation des Konzeptes.
Entscheidend ist hierbei, dass ein kombinierter Ansatz aus modelliertem Systemkonzept und Systemanforderungen in natürlicher Sprache geschaffen werden soll, welche gemeinsam als eine Spezifikation funktionieren. Dazu beinhaltet die hier beschriebene Methode einen toolbasierten und servergetriebenen Ansatz, welcher eine bidirektionale Verlinkung der Kunden- beziehungsweise Systemanforderungen mit den Modellelementen ermöglicht. Darüber hinaus ermöglicht diese Lösung eine Repräsentation der Elemente des jeweiligen Gegenstückes in beiden Spezifikationsdokumenten. So lassen sich zum Beispiel die in dem Anforderungsmanagement-Tool spezifizierten Systemanforderungen in das SysML-Modell übertragen und dort in den Diagrammen oder Tabellen darstellen.
Abbildung 4.8 stellt zur Veranschaulichung der Verlinkung zwischen Anforderungen und Modell einen Auszug des in Abbildung 4.1 modifizierten Entwicklungs-Flows dar.
Registerbeschreibung
Während der Konzeptphase und Konzeptentwicklung werden neben den Systemanforderungen in der Regel bereits erste Register des SoCs als Teil des Systemkonzeptes definiert. Die Registerbeschreibung beinhaltet die Definition bestimmter Speicherbereiche. Dabei werden oftmals bereits bestimmte Typen von Registern definiert und diese mit Namen versehen. Auch hier bietet die SysML kein Diagramm oder Format, in dem es möglich wäre, eine solche Beschreibung sinnvoll vorzunehmen. Des Weiteren hat sich im Bereich der Halbleiterentwickler ein XML-basiertes Austauschformat als Standard etabliert, genannt IP-XACT. IP-XACT bietet die Möglichkeit, Metadaten von Komponenten und Designs für IPs herstellerneutral zu beschreiben. Diese Beschreibungen können dann unverändert als Input für andere Werkzeuge des Entwicklungs-Flows dienen. In der hier beschriebenen Methode für die Konzeptentwicklung wird IP-XACT in erster Linie zur Beschreibung von Registern verwendet [48] [83].
Entscheidend ist hierbei die Namenskonvention, welche aus der Registerbeschreibung entsteht. So erfolgt die Ansteuerung der Register seitens Software beispielsweise unter Verwendung der in der Registerbeschreibung definierten Namen. Da sich IP-XACT als Standard in dem Bereich der Registerbeschreibung etabliert hat und diese ein essenzieller Bestandteil der Konzeptentwicklung ist, wird für die hier vorgestellte Methode ein kombinierter Ansatz gewählt. Im aktuell bestehenden Entwicklungs-Flow werden die Registerbeschreibungen manuell in Form von Tabellen in die Konzept- und später auch in die Entwurfsspezifikation übernommen oder die Namen der Register manuell in die Systemanforderungen übertragen. Da in der Konzeptphase jedoch, wie in Abschnitt 2.​3 dargelegt, lediglich konzeptuell beschrieben wird und zum Teil auf Annahmen beruht, kann es zu Änderungen in der IP-XACT-Registerbeschreibung im Laufe der Entwicklung kommen. Daraufhin müssen die Systemanforderungen überprüft und gegebenenfalls überarbeitet werden, was jedoch aus Gründen des Zeitdrucks oftmals vernachlässigt wird. Werden die Informationen aus der Registerbeschreibung nicht regelmäßig mit der Spezifikation abgeglichen, kommt es zu Inkonsistenzen und damit zur Gefahr von Implementierungsfehlern in der Entwurfsphase.
Im SysML-Modell werden die Informationen aus der Registerbeschreibung ebenfalls für die Modellierung des SoCs benötigt. So müssen beispielsweise für die Modellierung des Modulverhaltens und damit der implementierungsnahen Verhaltensmodellierung die Namen der Register zur Verfügung stehen. Die Kopplung zwischen SysML-Modell und IP-XACT führt neben der höheren Konsistenz zu einer besseren Integrierbarkeit der neuen modellbasierten Entwicklungsmethode in den aktuellen Entwicklungs-Flow. Daher wurde für die hier vorliegende Arbeit eine skriptbasierte Lösung für den Übertrag von Register- beziehungsweise Bitfeld-Namen zwischen der IP-XACT-Registerbeschreibung und dem SysML gewählt. Dazu wird eine Tabelle der Register- und Bitfeld-Namen aus IP-XACT extrahiert und diese anschließend per CSV-Import in das Modell als sogenannte ValueProperties importiert. ValueProperties sind Modellelemente der SysML, welche die Funktion einer üblichen Variablen aus dem Bereich der Programmiersprachen repräsentiert. Somit kann die Konsistenz zwischen IP-XACT-Registerbeschreibung und SysML erhöht werden, jedoch müssen mögliche nachträgliche Änderungen an der IP-XACT-Registerbeschreibung durch einen erneuten Übertrag auch im Modell aktualisiert werden. Zusätzlich zu dem reinen Übertrag der Registernamen ist es möglich, die Konfiguration des CSV-Imports anzupassen um Initialwerte, Beschreibungen der Register oder Vergleichbares ebenfalls zu übertragen.
Signalverarbeitung
Als dritte Schnittstelle zu anderen Beschreibungsformen des aktuellen Entwicklungs-Flows soll die Signalverarbeitung betrachtet werden. Zwar lassen sich mittels Verhaltens- und Strukturdiagrammen Teile der Signalverarbeitung im SysML-Modell abbilden, jedoch eignet sich die SysML in erster Linie zur Beschreibung von diskreten und ereignisgesteuerten Modellen. Für die Modellierung von Algorithmen kontinuierlicher Systeme hingegen ist diese Modellierungssprache wenig geeignet [53]. Darüber hinaus haben sich ebenfalls in der Signalverarbeitung Tools und Formate für die Beschreibung etabliert, die diese Anforderungen weitaus besser erfüllen und sich zudem als „Goldstandard“ sowohl im akademischen als auch industriellen Bereich etabliert haben.
Die Signalverarbeitung ist, wie in Abschnitt 2.​2 gezeigt, wichtiger Bestandteil vieler Automotive SoCs und wird in der Regel bereits abstrahiert als Teil des Systemkonzeptes spezifiziert. Dabei werden die signalverarbeitenden Komponenten des SoCs modelliert und das Verhalten der Signalverarbeitung durch Algorithmen beschrieben. Auf diese Weise erhält man eine ausführbare Spezifikation. Für die Integration der hier entwickelten Methode in den bestehenden Entwicklungs-Flow und um die jeweiligen Vorteile der beiden Beschreibungsformen für ihren Anwendungsbereich zu kombinieren, wird auch hier ein kombinierter Ansatz aus signalverarbeitenden Modellen und SysML-Modellen gewählt.
Um dies zu realisieren, wurde als Teil dieser Arbeit ein toolbasierter Lösungsansatz in die modellbasierte Methode eingebunden, welcher es ermöglicht, die signalverarbeitenden Modelle in Form von SysML-Blöcken und Parts in das SysML-Modell einzubinden. Die Blöcke und Parts der SysML werden dazu mit speziellen Stereotypen versehen und erhalten somit die Möglichkeit, ganze signalverarbeitende und zudem ausführbare Modelle hinter den SysML-Elementen zu hinterlegen. Dabei lassen sich zudem Schnittstellen für Signale zwischen den unterschiedlichen Modellen realisieren, welche die gemeinsame Simulation der Modelle ermöglichen.
Somit wird als Teil der Methode eine Möglichkeit der Modellierung geschaffen, die die Vorteile der beiden Formate kombiniert und zudem den Entwicklern/-innen die Möglichkeit bietet, weiterhin mit den etablierten Werkzeugen und Beschreibungsformen im Bereich der Signalverarbeitung zu arbeiten.

4.1.5 Zwischenergebnis

In dem vorangegangenen Abschnitt wurde ein Konzept für die modellbasierte Systemkonzeptentwicklung vorgestellt. Abbildung 4.9 erweitert den in Abbildung 4.2 abstrahierten Entwicklungs-Flow um die in diesem Kapitel vorgestellten Anteile der Methode bis zum Übergang von der Konzeptphase zur Entwurfsphase.
In Abschnitt 4.1.1 wurde die in dieser Arbeit entwickelte Modellierungsmethode, in der Abbildung 4.9 gelb dargestellt, behandelt. Dabei unterstützt die Methode die Entwickler/-innen bei einer weniger lösungsorientierten Arbeitsweise nach dem Top-down-Ansatz und fördert so zu Beginn der Systementwicklung die ausführliche Analyse der Kundenanforderungen. Durch die ausführliche und modellbasierte Analyse der Kundenanforderungen und somit einer Analyse der Anwendungsfälle und des technischen Systemkontextes kann ein einheitliches Systemverständnis zwischen Kunde und Entwickler geschaffen werden. Hierdurch sowie durch die in Abschnitt 4.1.2 beschriebene Formalisierung wird die Wahrscheinlichkeit für unterschiedliche Interpretationen der Spezifikationsdokumente verringert und somit Folgefehler reduziert. Durch die Implementierung des Top-down-Ansatzes als Teil der Modellierungsmethode und die modellbasierte Analyse der Kundenanforderungen kann eine Senkung der Wahrscheinlichkeit für nachträgliche Änderungen an den bereits vertraglich vereinbarten Anforderungen in Lasten- und Pflichtenheft erreicht werden. Somit ermöglicht die hier vorgestellte Modellierungsmethode für die modellbasierte SoC-Systemkonzeptentwicklung die Erfüllung der in der in Abschnitt 1.​1 definierten Anforderung A1 zumindest teilweise.
Das Systemmodell entspricht in der Konzeptphase dem modellierten Systemkonzept. In Abbildung 4.9 wird das SysML-Modell abstrahiert als SysML-Funktions- und Architekturbeschreibung dargestellt und ist zu Beginn der Konzeptphase mit dem Pflichtenheft und später mit der daraus hervorgehenden Konzeptspezifikation, in der Abbildung 4.9 als roter Pfeil dargestellt, bidirektional verlinkt. Die Systemanforderungen werden aus den Kundenanforderungen abgeleitet und ergeben sich zudem aus der Entwicklung des Systemkonzepts. Die Modellierung und Formalisierung des Systemkonzeptes als ein zentrales Spezifikationsdokument in direkter Verlinkung mit den Systemanforderungen aus der Konzeptspezifikation sorgt darüber hinaus für eine Eindeutigkeit und Vollständigkeit der Spezifikationsdokumente in der Konzeptphase. Da in der später folgenden Entwurfsphase zu Beginn die Basis des Systemkonzeptes implementiert wird, ist die Steigerung der Vollständigkeit, Korrektheit und Eindeutigkeit dieses Dokuments entscheidend für eine erfolgreiche Implementierung des SoCs. Durch die Formalisierung der modellbasierten Spezifikation kann somit von einer mindestens teilweise Erfüllung der Anforderung A2 ausgegangen werden.
Die Erweiterung der Methode mittels Automotive-SoC-Profil, in Abbildung 4.9 hellgelb dargestellt, wurde in Abschnitt 4.1.3 behandelt. Dieses sorgt durch die im Profil zur Verfügung gestellten Templates zu einer modellübergreifenden Einheitlichkeit in der Modellstruktur und Namenskonvention. Hierdurch bietet es Mechanismen zur Reduzierung des Modellierungsaufwandes und reduziert somit den Aufwand der Spezifikation, verglichen mit der aktuell angewandten Arbeitsweise. Durch das Profil werden die Anwender/-innen in der Umsetzung der Methode bei der Modellierung unterstützt und damit die Anwenderfreundlichkeit der Methode erhöht. Durch die Erweiterung der Methode um das in dieser Arbeit entwickelte Automotive-SoC-Profil wird daher ebenfalls die Erfüllung der Anforderungen A5 und A6 ermöglicht.
Abschnitt 4.1.4 behandelt die Kombination des mittels SysML modellierten Systemkonzeptes mit anderen etablierten Beschreibungsformen heutiger SoC-Entwicklungen. Dabei stellt die Signalverarbeitung einen essenziellen Bestandteil eines SoCs dar, für dessen Beschreibung sich andere Formate etabliert haben und somit als optimale Ergänzung dient. Ebenso hat die Schnittstelle zur Registerbeschreibung in IP-XACT einen besonderen Stellenwert, da hieraus die Namenskonvention für die Register und Bitfelder des SoCs hervorgehen, welche ebenfalls im modellierten Systemkonzept eingehalten werden müssen. Darüber hinaus bietet die hier vorgestellte Methode eine ebenfalls toolbasierte Lösung für die bidirektionale Verlinkung zwischen den Anforderungen und den Modellelementen im Systemkonzept. Die Betrachtung der Schnittstellen und die Kombination der für den jeweiligen Anwendungsfall optimalen Beschreibungsform, gepaart mit der Möglichkeit der Verlinkung der unterschiedlichen Beschreibungsformen ermöglicht eine Steigerung der Konsistenz. Eine konsistente Spezifikation über alle Dokumente und Formate hinweg führt zu einer Minderung von Inkonsistenzen zwischen Spezifikation und Implementierung in der Entwurfsphase. Somit ermöglicht die hier beschriebene Methode die Erfüllung der in Abschnitt 1.​1 beschriebenen Anforderungen A3. Darüber hinaus wurde durch die Entwicklung und Nutzung von Schnittstellen zwischen dem SysML-basierten Systemkonzept und bereits etablierten ergänzenden Beschreibungsformen die Integration der in dieser Arbeit entwickelten Methode in den bestehenden Entwicklungs-Flow ermöglicht und somit kann die Anforderungen A4 als erfüllt angesehen werden.

4.2 Übergang Konzeptphase – Entwurfsphase

Wie in Abschnitt 2.​3.​3 beschrieben, führt der Übergang von der Konzeptphase zur Entwurfsphase zu einem Wechsel der Arbeitsweise in der SoC-Entwicklung. Dies hat einen direkten Einfluss auf die in dieser Arbeit entwickelte Gesamtmethode. Der vorangegangene Abschnitt behandelt die modellbasierte Konzeptentwicklung, hierbei entspricht das Systemmodell dem Systemkonzept und ist Basis der SoC-Entwicklung. Die Konzeptentwicklung endet in der Regel auf System-Ebene. Der genaue Zeitpunkt des Wechsels von Konzept- zur Entwurfsphase wird im Regelfall individuell durch die SoC-Architekten/-innen bestimmt.
In der Regel jedoch beginnt die Entwurfsphase mit dem Start der Implementierung des SoCs und seiner Module. Dabei werden die maßgeblich in der Konzeptphase entwickelten Modulanforderungen an die Modulentwickler/-innen übergeben. Dabei ist die Entwurfsspezifikation zentrales Spezifikationsdokument der Entwicklung und baut auf der Konzeptspezifikation auf. Die Entwicklung der Module bis runter zur Transistor-Ebene findet hierbei in entsprechenden Entwicklungstools statt.
Für die in dieser Arbeit entwickelte Methode bedeutet der Wechsel der Arbeitsweise auch einen Wechsel in der Rolle des Systemmodells. So wird das Systemmodell in der Entwurfsphase Teil der Entwurfsspezifikation.
Das Systemmodell als Teil der Entwurfsspezifikation entspricht zu Beginn der Entwurfsphase dem Systemkonzept und wird im Laufe des Entwicklungsprozesses weiterentwickelt bzw. verfeinert. Da das Systemmodell als Teil der Entwurfsspezifikation definiert ist, die Systemanforderungen und das SysML-Modell jedoch in zwei verschiedenen Tools verwaltet werden müssen, wird auch hier eine toolbasierte Lösung für die Verlinkung, wie in Abschnitt 4.1.4 beschrieben, benötigt. Dazu werden, wie bereits in der Konzeptphase, die Systemanforderungen aus der Entwurfsspezifikation bidirektional mit den Modellelementen des Systemmodells verlinkt.
Nach dem Übergang von der Konzept- zur Entwurfsphase wird eine implementierungsnähere Modellierung des SoCs benötigt. Daher werden das Systemmodell und die Modellstruktur aus Abschnitt 4.1.1 um das Behavioral Model ergänzt. In Abbildung 4.10 wird das SysML-Modell abstrahiert als Architektur- und Verhaltensbeschreibung als Teil der Entwurfsspezifikation dargestellt. Nachfolgend soll der Prozess der Verfeinerung am Beispiel der Architektur- und der Verhaltensbeschreibung behandelt werden.

4.2.1 Verfeinerung (Bus-)Architektur

Bei dem Übergang von der Konzept- zur Entwurfsphase muss für die bereits modellierte Architektur des SoCs im Technical Model die System-Ebene als Maß der Abstrahierung und damit des Detailgrads der Modellierung stellenweise verlassen werden. Stellenweise deshalb, weil als Teil der Methode wie auch als grundlegende Eigenschaft eines Modells die Verfeinerung des Modells nicht an jeder Stelle gleichermaßen erfolgen muss. So sollen nur die Bereiche des Modells mit einem hohen Detailgrad modelliert werden, für die es sinnvoll ist. Ein Grund könnte hierbei zum Beispiel eine besonders hohe Priorität eines bestimmten Teils des SoCs sein oder aber, wie im nachfolgenden Abschnitt beschrieben, die dadurch ermöglichte Automatisierung. Die Modellierung des SoCs, besonders bei einem hohen Detailgrad, schafft, verglichen mit der Beschreibung mittels natürlicher Sprache bzw. der direkten Implementierung des Entwurfs, gefühlt einen Mehraufwand zu Beginn der Entwurfsphase. Die Automatisierung durch die Modellierung zu ermöglichen und damit die Aufwände bei der Implementierung stark zu verringern, ist daher essenziell für die hier entwickelte Gesamtmethode.
Ein Beispiel für die Verfeinerung der Architektur ist die Modellierung von On-Chip-Bussen als Teil der Hardware-Architektur. Die Busse der Hardware-Architektur werden, wie alle Teile der Architektur, als Blöcke im BDD und als Parts im IBD modelliert. Dies geschieht in der Regel bereits in der Konzeptphase. Spätestens in der Entwurfsphase reicht es jedoch nicht mehr aus, den Bus abstrahiert als nicht näher spezifizierten Part der Architektur zu modellieren. Es wird neben der Architektur der SoC-Architektur auf System-Ebene eine Modellierung der Busarchitektur benötigt. Damit wird, vergleichbar mit einer Verbindungstabelle, definiert wie die Komponenten über den Bus kommunizieren. Um dies im Modell zu realisieren, wird als nächsttiefere Abstraktionsebene hinter dem Part des Busses im Architecture Diagram ein weiteres IBD mit der Busstruktur hinterlegt. Dieses IBD der Busstruktur zeigt die Module, welche über den Bus verbunden sind und löst dabei die Busarchitektur mittels Connectoren auf. Das bedeutet, die Parts als Repräsentation der Hardware-Komponenten werden direkt miteinander verbunden.
Dies ist nur ein Beispiel für den Prozess der Verfeinerung des Architekturmodells als Teil der Spezifikation. Vergleichbar wird bei den einzelnen Komponenten bzw. Modulen vorgegangen. So können Module in Submodule mit eigenen Architekturmodellen zerlegt werden, um die Module weiter zu spezifizieren. Darüber hinaus findet beim Übergang zwischen Konzept- und Entwurfsphase, als Teil der Modellverfeinerung, die Einteilung der in der Konzeptphase rein funktional betrachteten Module in die in Abschnitt 2.​6.​1 beschriebenen Domänen analoge Hardware, digitale Hardware und Software statt.

4.2.2 Verfeinerung der Verhaltensbeschreibung

Das Behavioral Model ist, wie in Abbildung 4.4 gezeigt, Teil des Technical Model. Es wird dabei allerdings einem eigenen Package zugeordnet, da hieraus später die Codegenerierung ermöglicht werden soll. Im Behavioral Model wird das Verhalten sowohl von der Hardware als auch von der Software des SoCs modelliert. Dabei kann zum einen das Modell als reine Spezifikation, welche das implementierte Verhalten grafisch repräsentiert und als Teil der Entwurfsspezifikation spezifiziert, dienen. Zum anderen kann die Entwicklung des Verhaltens in der Entwurfsphase ebenfalls modellbasiert erfolgen. Das bedeutet, die Entwicklung des geforderten Verhaltens der einzelnen Module beginnt im Systemmodell. Dabei wird zu Beginn das Verhalten eines Moduls noch abstrahiert modelliert und kann anschließend in mehreren Schritten und je nach Bedarf verfeinert werden. Die anfängliche Abstrahierung, welche die Modellierung bietet, kann bei der Entwicklung komplexer Funktionen und Operationen helfen und bietet zudem eine übersichtliche Kommunikationsgrundlage. Zusätzlich bietet diese Arbeitsweise einen entscheidenden Vorteil bei der Automatisierung der Entwicklung. So wird durch die formalisierte und maschinenlesbare Beschreibung mittels SysML ein Format in der Spezifikation geschaffen, welches es ermöglicht, Code auf Basis des Modells zu generieren.
Im Behavioral Model können alle verhaltensbeschreibenden Diagramme der SysML in einer formalisierten Form zum Einsatz kommen. Nachfolgend soll am Beispiel des Activity Diagram beziehungsweise des Flowchart Diagram die Formalisierung für das Behavioral Model aufgrund der hohen Relevanz für diese Arbeit beispielhaft beschrieben werden. Dabei muss durch die doppelte Verwendung der verhaltensbeschreibenden Diagramme je nach Submodell denselben Modellelementen eine unterschiedliche formale Bedeutung zugeordnet werden.
  • Das Flowchart Diagram als Untermenge der Modellelemente eines Activity Diagram dient im Behavioral Model dazu, das Verhalten der einzelnen Komponenten als Blöcke und Parts im Technical Model zu spezifizieren. Es wird somit dazu verwendet, die Operationen und Funktionen von Software und Hardware zu modellieren. Flowchart Diagrams bilden lediglich eine Untermenge der Modellelemente eines Activity Diagram ab, da sich hiermit keine parallelen Aktivitäten im Diagramm beschreiben lassen. Hierdurch lässt sich der im Flowchart Diagram beschriebene Ablauf leichter nachvollziehen und vereinfacht zudem die Modellierung und modellbasierte Generierung von Hardware- und Softwarefunktionen. Müssen als Teil des Modells dennoch parallele Aktivitäten modelliert werden, lassen sich diese mithilfe mehrerer Flowchart Diagrams beschreiben. Tabelle 4.8 zeigt einen Auszug der Formalisierung des Flowchart Diagram.
Tabelle 4.8
Auszug Formalisierung Flowchart Diagram Behavioral Model
SysML-
Modellelement
Formalisierte Automotive-SoC-Interpretation
Activity
Entspricht einer Funktion bzw. Operation eines Moduls. Hinter jeder Activity kann ein weiteres Flowchart Diagram als nächsttiefere Abstraktionsebene modelliert werden
Action Pin
Schnittstelle der Activity für den Datenfluss zwischen den Funktionen
Object Flow
Modelliert den Datenfluss zwischen den Funktionen/Activities
Control Flow
Modelliert den Kontrollfluss. Damit lassen sich Wechsel ohne Datenfluss zwischen Activities modellieren
Decision Node
Stellt die Abfrage einer Bedingung bzw. Schleifen dar, z. B. If-Abfrage (entspricht Logikelement „Oder“)
Merge Node
Verbindet die durch die Decision Node geteilten Flows
  • Das State Machine Diagram oder Zustandsdiagram ist weit verbreitet und findet in vielen verschiedenen Geschäftsbereichen Anwendung. Es dient dazu, Zustände und Zustandswechsel eines Systems oder einzelner Module zu spezifizieren. Als Teil eines State lassen sich im Modell Actions definieren, welche beim Betreten, während der Zustand aktiv ist, oder beim Verlassen des Zustandes ausgeführt werden. Hierbei ist es möglich, einen Trigger als Auslöser für das Bearbeiten der Action zu setzen und/oder eine Bedingung zu definieren. So lässt sich ein State Machine Diagram mit beispielsweise einem Activity Diagram für die Simulation ganzer Systeme verknüpfen.
  • Das Sequence Diagram wird im Behavioral Model dazu verwendet, die Kommunikation zwischen einzelnen Modulen bzw. Komponenten des SoCs abzubilden. Es kann jedoch ebenfalls verwendet werden, um eine Sequenz aus Actions unterschiedlicher Komponenten darzustellen.

4.2.3 Zwischenergebnis

Im vorangegangenen Abschnitt wurde der Übergang zwischen Konzept- und Entwurfsphase im Kontext der in dieser Arbeit vorgestellten modellbasierten Entwicklungsmethode behandelt. Dabei findet ein Wechsel der Arbeitsweise von einer rein konzeptionellen Entwicklung zu einer implementierungsfokussierten Entwicklung statt. Aufgrund dieses Wechsels in der Arbeitsweise verändert sich auch die Rolle des Systemmodells wie in Abbildung 4.10 dargestellt. So wird das Systemmodell, welches dem Systemkonzept in der Konzeptphase entspricht und als zentrales Spezifikationsdokument der Entwicklung in dieser Phase dient, zu einem Bestandteil der Entwurfsspezifikation.
Als Teil des Übergangs zwischen Konzept- und Entwurfsphase bedarf es einer Verfeinerung der Architektur sowie einer Modellierung des Verhaltens der Software- und Hardwaremodule. Dazu wurde in dem vorangegangenen Abschnitt an Beispielen aus der SoC-Entwicklung die Verfeinerung der Modellierung veranschaulicht und als Teil dessen die Formalisierung der Spezifikation für den Bereich der Verhaltensbeschreibung erweitert.

4.3 Modellgetriebener Systementwurf und Verifikation

Ziel der in dieser Arbeit entwickelten Methode ist es, eine Effizienzsteigerung der SoC-Entwicklung zu ermöglichen. Um dies zu erreichen, muss der Aufwand bei der Entwicklung, Implementierung und Verifikation gesenkt werden. In Abschnitt 4.1 wurde dazu eine modellbasierte Entwicklungsmethode vorgestellt, welche in erster Linie die Lesbarkeit, Eindeutigkeit und Vollständigkeit der Spezifikationsdokumente erhöht und damit die Wahrscheinlichkeit für Fehler und Missverständnisse reduziert. Somit wird indirekt der Aufwand für die Fehlerbehebung und für Nacharbeiten reduziert.
Durch die Modellierung des Systemkonzeptes, die in dieser Methode implementierte Arbeitsweise nach dem Top-down-Ansatz und die bidirektionale Verlinkung mit den Systemanforderungen entsteht jedoch darüber hinaus ein Mehraufwand, verglichen mit der Spezifikation nach der aktuellen Methode. Dieser Mehraufwand resultiert allerdings teilweise daraus, dass aktuelle Spezifikationen oftmals nur lückenhaft dokumentiert sind und ein gefühlter Mehraufwand bei der Anwendung der modellbasierten Methode durch die Behebung dieser Defizite entsteht. Die Modellierung mit SysML und die damit benötigte Nutzung entsprechender Tools stellt jedoch ungeachtet dessen besonders zu Beginn der Einführung einen Mehraufwand und damit eine große Hürde für die Entwickler/-innen dar. Daher wurde die Auswahl einer maschinenlesbaren Sprache und deren Formalisierung für die SoC-Entwicklung nicht nur zur Steigerung der Eindeutigkeit in der Spezifikation getätigt, vielmehr ermöglicht sie darüber hinaus die Automatisierung der Implementierung.
Durch die Modellierung der Spezifikation lässt sich somit als Teil der hier gezeigten Methode eine Generierung von Code verschiedenster Anwendungsbereiche des SoC-Entwurfs sowie der Verifikation ermöglichen. Als Teil des Konzeptes werden in den nachfolgenden Abschnitten die in dieser Arbeit entwickelten Methoden für die modellgetriebene Codegenerierung konzeptuell behandelt. Darauf aufbauend folgt in Kapitel 5 die Beschreibung der Implementierung für die nachfolgend konzeptuell beschriebenen Generatoren.

4.3.1 Automatisierung der Entwicklung Virtueller Prototypen

Als Möglichkeit für die Automatisierung wurde der Bereich der Entwicklung von Virtuellen Prototypen identifiziert. Wie in Abschnitt 2.​6.​4 beschrieben, kann durch die Verwendung von Virtuellen Prototypen die Software zu einem früheren Zeitpunkt entwickelt und getestet werden. Darüber hinaus wird durch die Verwendung von Virtuellen Prototypen ein Hardware/Software-Co-Entwurf ermöglicht. Somit können viele Fehler in einer früheren Phase der Entwicklung entdeckt werden und lassen sich dadurch leichter beheben. Hierdurch ist es möglich, Aufwand und Kosten bei der Entwicklung zu reduzieren. Jedoch entsteht bei der Erstellung eines Virtuellen Prototyps zusätzlicher Aufwand, welcher zudem parallel zu anderen Entwicklungsaufgaben anfällt. Daraus resultiert ein höherer Bedarf an Personenstunden zur selben Zeit. Um diesen Nachteil zu eliminieren, ohne dabei auf die Vorteile bei der Nutzung von Virtuellen Prototypen verzichten zu müssen, wurde ein modellbasierter Ansatz für die Generierung des Virtuellen Prototyps entwickelt.
Die Automatisierung mittels modellgetriebener Generierung bietet sich hierbei besonders an, da der Virtuelle Prototyp in der Regel abstrahiert auf System-Ebene realisiert wird. Zudem werden bei einigen Modulen lediglich die Funktionalitäten realisiert, die für die Simulation des Software/Hardware-Interfaces benötigt werden. Da im Technical Model die Architektur auf System-Ebene bereits modelliert ist, ist ebenso bereits ein Großteil der für die Generierung benötigten Informationen enthalten. Lediglich die implementierungsnahen Informationen der Architektur sowie die Verhaltensbeschreibung im Behavioral Model, welche aufgrund der anfangs noch abstrakten Modellierung des SoCs fehlen, müssen ergänzt werden. Die Verfeinerung der Modellierung ist in Abschnitt 4.2 beschrieben. Anhand der nachfolgenden Abbildung 4.11 sollen die Vorteile eines automatisierten Entwicklungs-Flows mit dem Flow aus Abbildung 2.​22 verglichen werden.
Die Abbildung 4.11 veranschaulicht dabei schematisch die Aufwände der einzelnen Entwicklungsphasen. Durch den modellbasierten Ansatz teilt sich die Spezifikation in zwei Abschnitte. Hinzu kommt der hier dunkelgrün dargestellte Abschnitt für die formale Spezifikation. Bei der formalen Spezifikation handelt es sich um die Modellierung des Systemmodells. Auf Grundlage dieses Modells kann der Virtuelle Prototyp generiert und damit der manuelle Aufwand bei der Entwicklung reduziert werden. Hierdurch wird nicht nur der Aufwand in Gesamtheit reduziert, es wird ebenso eine schnellere Fertigstellung des Virtuellen Prototyps und damit ein früherer Beginn der On-Chip-Softwareentwicklung ermöglicht.
Wie bereits ausgeführt, ist die Anwendung von Virtuellen Prototypen weitestgehend etabliert. Darüber hinaus wurden bereits erste Möglichkeiten der Automatisierung entwickelt, wie in Abschnitt 3.​2 dargelegt. Die Arbeit von [15] beschreibt dazu einen teilautomatisierten Entwurfs-Flow für die Implementierung von Virtuellen Prototypen. Dabei konzentriert sich der in [15] beschriebene Generierungs-Flow auf die Generierung der signalverarbeitenden Anteile des SoCs auf Basis von MATLAB-Simulink-Modellen. Dieser teilautomatisierte Entwurfs-Flow für die Implementierung von Virtuellen Prototypen wurde durch die in dieser Arbeit entwickelten Lösungen zur modellbasierten Generierung der kontrollflussorientierten Anteile sowie der Architektur des SoCs erweitert. Abbildung 4.12 zeigt, als Auszug von Abbildung 3.​1, noch einmal Pfad 2 und Pfad 3 und stellt damit den Stand der Technik zum Startzeitpunkt dieser Arbeit dar.
Es handelt sich, wie in Abschnitt 3.​2 beschrieben, um einen teilautomatisierten Entwurfs-Flow, der besonders in Pfad 3 der kontrollflussorientierten Module Lücken bei der Automatisierung aufweist. Hinzu kommt, dass das in der Konzeptphase entwickelte Systemkonzept im aktuellen Entwicklungs-Flow nicht Teil der offiziellen Spezifikation ist und die hier enthaltenen Informationen manuell in die Konzeptspezifikation bzw. die Entwurfsspezifikation übertragen werden müssen. Neben dem in Abbildung 4.11 schematisch dargestellten Mehraufwand bei der manuellen Implementierung eines Virtuellen Prototyps birgt jede manuelle Übertragung von Informationen das Potenzial für Fehler und Inkonsistenzen.
Darüber hinaus müssen bereits in der Entwurfsspezifikation beschriebene Informationen manuell in Code übersetzt werden, da das ursprüngliche Format nicht maschinenlesbar ist. An eben diesen Stellen setzt die in dieser Arbeit entwickelte modellgetriebene Methode an. Da das Systemkonzept, wie in Abschnitt 4.1 beschrieben, bereits als SysML-Modell entwickelt wurde, steht es nun in einem maschinenlesbaren Format zur Verfügung. Darüber hinaus gilt es durch die Formalisierung als Teil der Spezifikation, wodurch die dort modellierten Informationen nicht manuell in ein anderes beschreibendes Format übertragen werden müssen. Das Systemkonzept zu Beginn der Entwurfsphase entspricht dem Systemmodell und muss lediglich, wie in Abschnitt 4.2 beschrieben, für die Generierung verfeinert werden, wie in Abbildung 4.13 dargestellt.
Das Systemmodell wird in der Abbildung 4.13 abstrahiert als SysML-Verhaltens- und Architekturbeschreibung repräsentiert und ist Teil der Entwurfsspezifikation. Der gestrichelte hellgelbe Pfeil zwischen IP-XACT-Registerbeschreibung und Entwurfsspezifikation veranschaulicht die in Abschnitt 4.1.4 beschriebene Schnittstelle und die damit verbundene Bekanntmachung der Registernamen im Systemmodell.
Wie in Abbildung 4.13 gezeigt, wurde im ersten Schritt die Generierung der Verhaltensbeschreibung für die kontrollflussorientierten Module realisiert. Dazu wurde das Systemmodell um die Verhaltensbeschreibung in Form des in Abschnitt 4.2.2 vorgestellten Behavioral Model erweitert. Zur Generierung der SystemC-Verhaltensbeschreibung wurde ein C++ -Generator für die Modellierung von SystemC-Code auf Basis von SysML-Modellen konfiguriert. Zur Beschreibung des Verhaltens wurde in dieser Arbeit auf die Modellierung mittels Flowchart Diagram zurückgegriffen. Die Modellierbarkeit von Parallelität der Activity Diagrams wird im Regelfall bei der Modellierung von Funktionskörpern nicht benötigt, würde jedoch zu einer deutlich höheren Komplexität bei der Generierung führen. Die Informationen über die Architektur werden zu diesem Zeitpunkt, wie in Abbildung 4.13 gezeigt, weiterhin manuell übertragen.
Um diesen letzten manuellen Schritt ebenfalls zu automatisieren, wurde eine skriptbasierte Generierung und damit eine Übertragung der Architekturinformationen, wie in Abbildung 4.14 gezeigt, gewählt. Eine detaillierte Beschreibung der skriptbasierten Lösung folgt in Abschnitt 5.​3.​2.
Anders als die Verhaltensbeschreibung ist die Architekturbeschreibung bereits im modellierten Systemkonzept auf System-Ebenen enthalten. Es muss lediglich eine Verfeinerung bzw. Präzisierung der modellierten Informationen, wie in Abschnitt 4.2.1 beschrieben, für die Generierung erfolgen. Die Generierung erfolgt in zwei Schritten. Im ersten Schritt werden alle benötigten Informationen der Architekturbeschreibung aus dem Technical Model vollautomatisiert in Tabellen übertragen. Anschließend werden die Informationen aus den erhaltenen Tabellen extrahiert und die Architekturinformationen in den Virtuellen Prototyp übertragen. Durch die hier gezeigte Erweiterung des teilautomatisierten Entwurf-Flows aus [15] um den modellgetriebenen Ansatz für die kontrollflussorientierten Module wird ein vollautomatisierter Generierungs-Flow für die Implementierung von Virtuellen Hardware-Prototypen ermöglicht.

4.3.2 Automatisierung Softwareentwurf

Wie in Abschnitt 2.​5.​1 beschrieben, wurde die UML als Softwarebeschreibungssprache entwickelt. Diese Fähigkeit blieb auch in der SysML im Kern erhalten und so lassen sich Software-Operationen und -Funktionen mittels Activity Diagrams bzw. Flowchart Diagrams darstellen und beschreiben. Aufgrund der steigenden Anforderungen und der daraus resultierenden Komplexität der SoCs gewinnt die On-Chip-Software, wie bereits in Abschnitt 2.​6.​5 beschrieben, immer stärker an Bedeutung. So werden immer mehr Funktionalitäten als Softwarecode auf Mikroprozessoren realisiert.
Wurde im vorangegangenen Abschnitt die Entwicklung der Virtuellen Prototypen automatisiert, um Softwarekonzepte bereits in einer früheren Phase der Entwicklungsphase testen zu können, soll nun die Softwareimplementierung selbst automatisiert werden. Durch die Automatisierung der Softwareentwicklung ist es möglich, den manuellen Aufwand in einer frühen Phase der Entwicklung zusätzlich zu senken, wie in Abbildung 4.15 veranschaulicht.
Neben der in der Abbildung 4.15 veranschaulichten erheblichen Reduzierung des Aufwandes durch die Generierung der On-Chip-Software beinhaltet dieser Schritt weitere entscheidende Vorteile. So wird durch die modellgetriebene Generierung der Software die Wahrscheinlichkeit von Fehlern reduziert. Dies gilt besonders in Hinblick auf Inkonsistenzen zwischen modellierter Spezifikation und implementierter Software. Wird der hier entwickelte Softwaregenerierungs-Flow als Teil der Gesamtmethode in vollem Umfang eingesetzt, werden Änderungen am generierten Code lediglich durch Änderungen an dem Modell vorgenommen und der Code anschließend neu generiert. Dies ermöglicht die Sicherstellung einer zu jeder Zeit vollständigen und bezogen auf den generierten Code konsistenten Entwurfsspezifikation.
Diese Konsistenz der Spezifikation im aktuellen Entwicklungs-Flow zu gewährleisten, ist aufgrund der großen Entwicklungsteams, der langen Entwicklungszeiten und dem hohen Zeitdruck sehr schwierig. In der Entwurfsphase werden viele Entwurfsentscheidungen und Anpassungen im Zuge der Implementierung vorgenommen und direkt in Software bzw. Hardware umgesetzt. Die Dokumentation der Entwurfsentscheidungen und die Anpassungen in der Entwurfsspezifikation kommen dabei häufig zu kurz und es entstehen Inkonsistenzen.
Ein weiteres Problem bei der Spezifikation mittels natürlicher Sprache von Softwareverhalten besteht in der Schwierigkeit, diese adäquat und eindeutig in Fließtext als Systemanforderungen zu beschreiben. Darüber hinaus ist es sehr zeitaufwendig, bereits programmierten Softwarecode allein auf Basis des Codes nachzuvollziehen. Die Modellierung des Softwareverhaltens und die damit ermöglichte modellbasierte Entwicklung des Softwareentwurfs führt zu einer grafischen und in der Regel leichter verständlichen Beschreibung des Softwarecodes. Darüber hinaus ermöglicht die modellbasierte Entwicklung der Software eine Abstrahierung der Software-Funktionalität in verschiedene Ebenen und ermöglicht damit eine Arbeitsweise nach dem Top-down-Ansatz. So lässt sich, vergleichbar mit der System-Ebene bei der Hardware-Architektur-Entwicklung, die Software-Architektur im Modell als Teil des Technical Model abbilden und so das Zusammenspiel und die Kommunikation einzelner Funktionen darstellen. Dies ermöglicht nicht nur eine methodisch optimierte Softwareentwicklung, sondern erhöht das Gesamtverständnis aller beteiligten Entwickler/-innen und erleichtert damit die Kommunikation zwischen den Entwicklern/-innen und mit dem Kunden.
Die modellbasierte Generierung der Software erfolgt in C-Code mittels eines in dieser Arbeit konfigurierten Generators. Das Ergebnis der Generierung wird dabei maßgeblich durch zwei Faktoren beeinflusst. Zum einen hängt der resultierende Code von der Konfiguration des Generators und dem damit verbundenen Mapping zwischen SysML-Modellelement und C-Code ab. Zum anderen wird sie entscheidend durch die Modellierungstechnik beeinflusst. Auf die Konfiguration des Generators wird in Kapitel 5 näher eingegangen. Der Einfluss der Modellierung soll am Beispiel der Modellierung von Schleifen- und If-Abfragen veranschaulicht werden. Dabei kommt das bereits vorgestellte Modellelement Decision Node zum Einsatz. Lediglich die Art der Verbindungen mittels Activity Flow entscheidet darüber, ob der Generator den modellierten Ablauf als Schleife oder If-Abfrage interpretiert und dementsprechend C-Code generiert. In Abbildung 4.16 werden die beiden Modellierungen gegenübergestellt.
Links in Abbildung 4.16 ist eine While-Schleife als Beispiel dargestellt. Hierbei dient die Decision Node als Entscheidungsknoten. Der Actionblock LoopBody dient als Schleifenkörper und enthält die Anweisungen, wie zum Beispiel das Hochzählen einer Zählervariablen, welche in der Schleife ausgeführt werden sollen. Der Guard am Activity Flow, welcher den Entscheidungsknoten mit dem LoopBody verbindet, dient als Schleifenbedingung für den Entscheidungsknoten. Ist die Schleifenbedingung nicht erfüllt, gilt der zweite Weg vom Entscheidungsknoten zum Terminationspunkt; dies ist gleichzeitig das Funktionsende.
Rechts in der Abbildung 4.16 ist die Modellierung einer If-Abfrage bzw. in diesem Fall einer If-Else-Abfrage abgebildet. Zentrales Modellelement ist wieder die Decision Node als Entscheidungsknoten. Ist die If-Bedingung des linken Entscheidungspfades erfüllt, wird die Anweisung des Actionblocks exampleAction2 ausgeführt. Ist die If-Bedingung nicht erfüllt, greift der Else-Entscheidungspfad und der Actionblock wird übergangen. Die beiden Entscheidungspfade laufen wieder zusammen in einem Modellelement, welches in der Darstellung der Decision Node deckungsgleich ist. Jedoch handelt es sich hierbei um einen Merge Node, der die Aufgabe erfüllt, Entscheidungsknoten zusammenzuführen. Beide Entscheidungspfade enden im selben Terminationspunkt, was auch hier dem Funktionsende entspricht.

4.3.3 Modellgetriebene Verifikation

Durch die Zunahme in Umfang und Komplexität der Implementierung und die damit einhergehende Heterogenität von Automotive SoCs wächst die Verifikation dieser Systeme zu einer herausfordernden Aufgabe für die SoC-Entwicklung. Die Aufwände für die Verifikation komplexer Systeme übersteigen dabei, wie in der Fallstudie in [84] gezeigt, stellenweise die Aufwände für den Entwurf selbst.
So ist eine hohe Qualität in Form von Fehlerfreiheit, Robustheit und Zuverlässigkeit entscheidend bei der Entwicklung von Automotive SoCs, welche beispielsweise im Bereich der Fahrassistenzsysteme und der Fahrsicherheitssysteme zum Einsatz kommen. Um dies sicherzustellen, bedarf es einer umfangreichen Verifikation [2]. Diese zu planen, zu entwickeln und durchzuführen führt zu erheblichen Kosten- und Zeitaufwänden und schränkt nach heutigen Methoden die Effizienz der SoC-Entwicklung ein. Daher sollen als Teil der in dieser Arbeit entwickelten modellbasierten Entwicklungsmethode Möglichkeiten der Aufwandsreduzierung in der Verifikation betrachtet werden. Dabei werden zwei Aspekte der Verifikation maßgeblich durch die hier entwickelte Gesamtmethode aufgegriffen:
  • Reduzierung der Spezifikationsfehler durch Modellierung und Formalisierung der Spezifikation
  • Automatisierung der Verifikationserstellung auf Grundlage der modellierten Spezifikation
Reduzierung der Spezifikationsfehler
Wie in Abschnitt 2.​6.​8 beschrieben, wird von Spezifikationsfehlern im Falle einer falschen, nicht eindeutigen oder nicht vollständigen Spezifikation gesprochen. Nicht vollständig meint hierbei, dass ein mögliches Szenario, welches im späteren Betrieb auftreten kann, in der Spezifikation nicht erfasst wurde. Dabei führt besonders die fehlende Eindeutigkeit der Spezifikation zu weitreichenden Problemen. So sind aus diesem Grund die Entwickler/-innen beim Implementieren des Entwurfes wie auch die Verifikationsingenieure/-innen bei der Verifikationserstellung gezwungen, die meist in natürlicher Sprache verfassten Anforderungen zu interpretieren. Durch die Interpretation der Anforderungen in der Spezifikation entsteht ein eigenes Bild des Systems in der Vorstellung der Entwickler/-innen, welches nur die Entwickler/-innen selbst kennen. Neben der Gefahr von Fehlern erschwert somit die Interpretierbarkeit der natürlichen Sprache die Kommunikation sowohl zwischen den Entwicklern/-innen als auch zwischen Kunde und Entwickler.
Zusätzlich zur fehlenden Eindeutigkeit der Spezifikation führt besonders die fehlende Vollständigkeit zu einer Minderung der Effizienz in der Verifikation. Wird das Fehlen von Informationen beispielsweise während der Erstellung der Verifikation entdeckt, müssen die fehlenden Informationen mit hohem Aufwand nachträglich eingeholt werden. Hierbei lässt sich, ähnlich wie bei der Interpretierbarkeit, der Vergleich zu den Entwicklern/-innen ziehen, welche ein System in ihrem Kopf weiterentwickeln, ohne dieses jedoch für alle ersichtlich zu spezifizieren. So neigen in der SoC-Entwicklung besonders die SoC-Architekt/innen als fachliche Leiter des Entwicklungsprojektes aufgrund ihrer Erfahrungen und Vorkenntnisse dazu, trivial erscheinende Informationen nicht zu spezifizieren. Hinzu kommt die Gefahr, dass die Verifikationsingenieure/-innen aufgrund der fehlenden Informationen in der Spezifikation sich diese durch einen Blick in den implementierten Entwurf einholen und somit die Verifikation, wie in Abschnitt 2.​6.​8 beschrieben, an Wirkung verliert. Wird das Fehlen von Informationen in der Spezifikation bei der Erstellung der Verifikation jedoch nicht entdeckt, werden Teile des Systems nicht vollständig verifiziert und mögliche Fehler nicht entdeckt. Dennoch werden 79 % der Anforderungen heutiger Spezifikationen, wie in [85] gezeigt, mittels interpretierbarer, schwer validierbarer und fehleranfälliger natürlicher Sprache spezifiziert.
Die hier entwickelte Gesamtmethode und die darin enthaltene Modellierungsmethode ermöglicht durch die grafische und formalisierte Modellierung des SoCs eine Steigerung der Eindeutigkeit der Spezifikation. Somit werden Interpretationen bei der Erstellung des Entwurfs und damit Inkonsistenzen zwischen Entwurf und Spezifikation minimiert. Bezogen auf die Verifikation sinkt hierdurch zwar nicht der Aufwand, jedoch steigt die Qualität der Verifikation und damit das Ergebnis bei gleichbleibendem Aufwand, wodurch die Effizienz der Verifikation gesamt gesteigert werden kann. Für die Erstellung der Verifikation bedeutet die durch die hier entwickelte Methode hinzugewonnene Eindeutigkeit zudem eine Minimierung des Bedarfs der Interpretation, welcher bei der Übertragung der Informationen aus der Spezifikation entsteht. So können Fehler bzw. Inkonsistenzen, welche bei der Erstellung der Verifikation selbst entstehen, reduziert werden.
Lässt sich dies auch schwer belegen oder beweisen, so kann dennoch davon ausgegangen werden, dass durch die Nähe der grafischen Modellierung zur bildbasierten Denkweise der Entwickler/-innen die Validierung der grafisch modellierten Spezifikation auf Vollständigkeit und Fehlerfreiheit deutlich leichter fällt als die Validierung von natürlicher Sprache. Dies führt somit zu einer Steigerung der Vollständigkeit der Spezifikation und damit zu einer Reduzierung des Aufwandes, welcher benötigt wird, um fehlende bzw. falsche Informationen nachträglich einzuholen. Wie gezeigt, minimiert bereits die Formalisierung und Modellierung der Spezifikation maßgeblich aktuelle Defizite der Verifikation von Automotive SoCs und ermöglicht dadurch eine Steigerung der Effizienz im Bereich der Verifikation.
Automatisierung der Verifikationserstellung
Da wie bereits erwähnt der Aufwand für die Verifikation komplexer Systeme in manchen Fällen die Aufwände des Entwurfs übersteigt, aber in jeder Hinsicht einen erheblichen Anteil der Entwicklung ausmacht, soll als Teil der hier entwickelten Methode die Automatisierung der Verifikationserstellung ermöglicht und nachfolgend konzeptuell behandelt werden [86].
Neben einer erheblichen Reduzierung des Aufwandes birgt die Automatisierung der Verifikationserstellung und die damit einhergehende Steigerung der Effizienz weitere entscheidende Vorteile. So wird durch die Automatisierung der Übertragung bzw. die Transformation der Informationen aus der Spezifikation in die Verifikation die Fehlerwahrscheinlichkeit erheblich minimiert. Ein manueller Übertrag beinhaltet neben der Gefahr von falschen Interpretationen stets die Gefahr von einfachen Tippfehlern und Implementierungsfehlern bei der Erstellung der Verifikation.
Wie bei der manuellen Erstellung der Verifikation muss auch für die Automatisierung der Verifikationserstellung das „Vier-Augen-Prinzip“ gelten. Bei der manuellen Entwicklung bedeutet dies, wie in Abschnitt 2.​6.​8 beschrieben, dass die Entwickler/-innen des Entwurfs und die Entwickler/-innen der Verifikation zwei unabhängig voneinander arbeitende Personen sein müssen. Sollen, wie in dieser Arbeit beschrieben, Teile des Entwurfs wie auch Teile der Verifikation auf Basis der modellierten Spezifikation generiert werden, besteht die Möglichkeit, dass der generierte Teil des Entwurfs vom generierten Teil der Verifikation verifiziert wird. Damit steigt das Risiko von nicht entdeckten sogenannten „Common Cause Failures“ (häufige Fehlerursachen).
Das „Vier-Augen-Prinzip“ ist jedoch für die Automatisierung erfüllt, wenn zwei vollkommen unabhängig entwickelte und arbeitende Generatoren bzw. Generierungsmethoden für Entwurf und Verifikation verwendet werden. Durch die Verwendung zweier unabhängiger Generatoren erhält man die höchste Wahrscheinlichkeit, dass nicht derselbe Fehler, welcher bei der Generierung des Entwurfs entstanden ist, auch bei der Generierung für die Verifikation entsteht. Somit wird als Gegenstück des „Vier-Augen-Prinzips“ der Implementierung das „Vier-Augen-Prinzip“ der Generierung erzeugt. Außerdem muss beachtet werden, dass ein Generator in der Regel auf ein vordefiniertes Mapping zwischen Modell und Programmcode zurückgreift. Die Definition dieses Mappings sollte für den jeweiligen Generator in jedem Fall unabhängig erfolgen [13].
Für die vorliegende Arbeit wird in Kapitel 5 exemplarisch ein „Proof-of-Concept“ für die Automatisierung der Verifikationserstellung anhand von „Connectivity Checks“ (Konnektivitätsprüfungen) behandelt. Dazu erfolgt die Generierung der „Connectivity Checks“ als Teil der Verifikation aus dem Architecture Diagram. „Connectivity Checks“ überprüfen auf Grundlage der Spezifikation die korrekte „Verdrahtung“ des SoCs im Entwurf. Für die Generierung der „Connectivity Checks“ werden die Informationen über die Verbindungen zwischen den Modulen aus dem Architecture Diagram skriptbasiert ausgelesen und in SystemVerilog-Assertions übersetzt. Mithilfe der weitverbreiteten Beschreibungssprache SystemVerilog lassen sich Teile der Verifikation beschreiben. Dabei werden Assertions auf Grundlage der Spezifikation definiert, um zu prüfen, ob der implementierte Entwurf die Aussagen aus der Spezifikation erfüllt [87]. Die Automatisierung der Entwicklung von „Connectivity Checks“ auf Basis des SysML-Modells zeigt die Möglichkeiten der Effizienzsteigerung im Bereich der Verifikationserstellung auf.

4.3.4 Zwischenergebnis

In diesem Abschnitt wurden Möglichkeiten der modellgetriebenen Automatisierung für den Systementwurf betrachtet. Dazu wurde die Generierung der Architekturbeschreibung wie auch der Verhaltensbeschreibung des Hardware-VPs konzeptuell behandelt, und die Vorteile der Automatisierung wurden diskutiert. Darüber hinaus wurde die Generierung der On-Chip-Software als Teil der hier beschriebenen Methode vorgestellt sowie die Automatisierung der Verifikationserstellung behandelt. Die Automatisierung als Teil der Implementierung ist in Abbildung 4.17 als Übergang zwischen Systemmodell und den Bereichen Software, Hardware-VP (Virtueller Prototyp) und Verifikation dargestellt.
Die Generierung erfolgt bei den hier behandelten Ansätzen auf Basis der SysML-Architektur- bzw. der Verhaltensbeschreibung des Systemmodells. Durch die modellgetriebene Generierung von Code entsteht die Möglichkeit einer Arbeitsweise, welche Änderungen am implementierten Entwurf nur durch Änderungen am Modell erlaubt. Dies ermöglicht somit eine nahezu vollständige Konsistenz zwischen modellierter Spezifikation und implementiertem Code und unterstützt damit die Erfüllung der Anforderung A3. Durch die Automatisierung selbst kann gemäß Anforderung A7 der Aufwand bei der Implementierung für die jeweiligen Bereiche der Entwicklung reduziert werden. Darüber hinaus wird durch die Modellierung und Formalisierung der Spezifikation verbunden mit der Automatisierung eine Reduzierung des Aufwandes in der Verifikationserstellung (Anforderung A8) ermöglicht.

4.4 Zwischenergebnis

In diesem Kapitel wurde die modellbasierte Entwicklungsmethode vorgestellt. Abbildung 4.18 veranschaulicht den angepassten Entwicklungs-Flow in Gesamtheit unter Anwendung der in dieser Arbeit entwickelten Methode. Das Systemkonzept und das daraus resultierende Systemmodell wurden in der Abbildung 4.18 abstrahiert. Sie bestehen jeweils aus der Kombination von SysML, IP-XACT und signalverarbeitender Beschreibung.
Durch die Definition der in Abschnitt 4.1 beschriebenen Modellierungsmethode für die Realisierung einer modellbasierten Systemkonzeptentwicklung und die damit verbundene Formalisierung und Modellierung der Spezifikation kann die Wahrscheinlichkeit von nachträglichen Änderungen an den zwischen Kunde und Entwickler vereinbarten Anforderungen reduziert werden. Zudem wurde die Wahrscheinlichkeit von Implementierungsfehlern aufgrund einer unzureichenden Spezifikation gesenkt. Die Fehlerbehebung sowie die Änderungen an den vereinbarten Anforderungen führt oftmals zu hohen Aufwänden und damit zu steigenden Kosten bei der Entwicklung. Werden zudem die Fehler erst in einer sehr späten Phase des Projekts entdeckt oder müssen aufgrund von nicht ausreichend analysierten Kundenanforderungen diese nachträglich angepasst werden, kann es zu Verzögerungen im Projekt oder einer Verschlechterung der Qualität kommen. Die vorgestellte Modellierungsmethode erhöht somit die Effizienz sowohl bei der Konzeptentwicklung als auch bei der Implementierung.
Die Methode wendet den modellbasierten Ansatz über den gesamten Entwicklungs-Flow an, das heißt, von den Kundenanforderungen über das Systemkonzept bis hin zur Entwurfsspezifikation. Durch diesen ganzheitlichen Ansatz wird ein hohes Maß an Konsistenz in der Spezifikation in allen Phasen der Entwicklung ermöglicht und die Nachverfolgbarkeit bei den Anforderungen erreicht. Zudem findet eine Integration der hier entwickelten Methode in den aktuell bestehenden SoC-Entwicklungs-Flow und die Verlinkung unterschiedlicher Beschreibungsformen statt. Durch die Verlinkung der Beschreibungsformen werden zusätzlich Inkonsistenzen zwischen unterschiedlichen Spezifikationsformaten reduziert. Inkonsistenzen in der Spezifikation führen zu Inkonsistenzen zwischen der Spezifikation und dem implementierten Entwurf. Somit kann die Anwendung der Methode die Aufwände für die dadurch benötigten Änderungen sowohl an der Spezifikation wie auch an der Implementierung senken. Die Minimierung von Inkonsistenzen führt somit zu einer höheren Qualität des Systems, reduziert die Kosten und verhindert Verzögerungen, welche durch Änderungen in späten Phasen der Entwicklung entstehen. Es findet daher erneut eine Effizienzsteigerung bei der Entwicklung durch die Integration der Methode in den aktuellen SoC-Entwicklungs-Flow statt.
Zur Bereitstellung von Templates und der damit verbundenen Aufwandsreduzierung bei der Modellierung sowie der Steigerung der Anwenderfreundlichkeit wurde das Automotive-SoC-Profil entwickelt. Dabei wird durch das Profil eine Vereinheitlichung der modellierten Spezifikation über die Projekte hinweg erreicht und die Entwickler/-innen werden an eine Top-down-basierte Arbeitsweise gebunden.
Der Übergang von Konzeptphase zu Entwurfsphase und die damit einhergehende Verfeinerung des Systemmodells über die System-Ebene hinaus wurde in Abschnitt 4.2 behandelt. Die Verfeinerung legt dabei den Grundstein für die in Abschnitt 4.3 beschriebene Automatisierung der Entwicklung von Virtuellen Hardware-Prototypen sowie der Software. Die Automatisierung von Entwicklungsprozessen führt nicht nur zu einer Reduktion des manuellen Aufwandes und damit der Entwicklungskosten. Es wird zudem eine gleichbleibend hohe Qualität des Entwurfs ermöglicht und somit Verzögerungen in der Entwicklung vorgebeugt. Die aufgezeigten Automatisierungen führen somit zu einer erhöhten Effizienz, auch in der Entwurfsphase.
Darüber hinaus wurde die modellgetriebene Automatisierung, wie in Abschnitt 4.3.3 beschrieben, auch auf den Bereich der Verifikationserstellung angewendet. Dabei wurden sowohl die Vorteile der modellbasierten Spezifikation für die Qualität der Verifikation diskutiert als auch die Automatisierung der Verifikationserstellung selbst an einem Beispiel behandelt.
Die in diesem Kapitel behandelten Teile dieser Arbeit setzen sich zu einer modellbasierten Entwicklungsmethode für die SoC-Entwicklung zusammen, welche dadurch die Steigerung der Effizienz über den gesamten SoC-Entwicklungs-Flow ermöglichen kann. Die Implementierung der modellbasierten Entwicklungsmethode sowie die Anwendung dieser auf industrielle SoC-Beispiele wird im nachfolgenden Kapitel 5 beschrieben. Die Evaluierung der hier beschriebenen Entwicklungsmethode und damit die Überprüfung, ob diese die in dieser Arbeit gestellten Anforderungen erfüllt, folgt in Kapitel 6.
Open Access Dieses Kapitel wird unter der Creative Commons Namensnennung 4.0 International Lizenz (http://​creativecommons.​org/​licenses/​by/​4.​0/​deed.​de) veröffentlicht, welche die Nutzung, Vervielfältigung, Bearbeitung, Verbreitung und Wiedergabe in jeglichem Medium und Format erlaubt, sofern Sie den/die ursprünglichen Autor(en) und die Quelle ordnungsgemäß nennen, einen Link zur Creative Commons Lizenz beifügen und angeben, ob Änderungen vorgenommen wurden.
Die in diesem Kapitel enthaltenen Bilder und sonstiges Drittmaterial unterliegen ebenfalls der genannten Creative Commons Lizenz, sofern sich aus der Abbildungslegende nichts anderes ergibt. Sofern das betreffende Material nicht unter der genannten Creative Commons Lizenz steht und die betreffende Handlung nicht nach gesetzlichen Vorschriften erlaubt ist, ist für die oben aufgeführten Weiterverwendungen des Materials die Einwilligung des jeweiligen Rechteinhabers einzuholen.
Metadaten
Titel
Methode zur abstrakten Modellierung von Automotive Systems-on-Chips
verfasst von
Aljoscha Kirchner
Copyright-Jahr
2022
DOI
https://doi.org/10.1007/978-3-658-38437-1_4

    Premium Partner