Skip to main content
Erschienen in:
Buchtitelbild

Open Access 2022 | OriginalPaper | Buchkapitel

5. Implementierung

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

search-config
loading …

Zusammenfassung

Als Teil des folgenden Kapitels wird die Implementierung der in Kapitel 4 konzeptuell beschriebenen modellbasierten Entwicklungsmethode anhand von zwei SoC-Beispielen behandelt und veranschaulicht.
Als Teil des folgenden Kapitels wird die Implementierung der in Kapitel 4 konzeptuell beschriebenen modellbasierten Entwicklungsmethode anhand von zwei SoC-Beispielen behandelt und veranschaulicht.
  • Dabei wird die Methode für die modellbasierte Systemkonzeptentwicklung auf ein Beispiel eines Auswerte-SoCs in der Konzeptphase angewendet und so die Modellierung und Formalisierung der Spezifikation veranschaulicht.
  • Für die Behandlung der Implementierung der modellbasierten Entwicklungsmethode in der Entwurfsphase und der damit verbundenen modellgetriebenen Automatisierung des Entwurfs dient ein zweites SoC-Beispiel.
Zu Beginn von Abschnitt 5.1 wird die für die Implementierung der modellbasierten Entwicklungsmethode genutzte Tool-Umgebung vorgestellt und auf deren Nutzen für die hier vorliegende Arbeit eingegangen. Darüber hinaus werden in Abschnitt 5.1 die Implementierung der Modellierungsmethode und die Formalisierung im Kontext der modellbasierten Systementwicklung behandelt. In Abschnitt 5.2 folgt die Beschreibung des Prozesses der Modellverfeinerung als Teil des Übergangs zwischen Konzept- und Entwurfsphase. Die modellgetriebene Automatisierung des Entwurfs und der Verifikationserstellung werden in Abschnitt 5.3 vorgestellt.

5.1 Modellbasierte Systementwicklung

In den nachfolgenden Abschnitten wird die Anwendung der SysML-basierten Modellierungsmethode anhand eines Beispiel-Auswerte-SOCs behandelt. Dabei wird die Modellierung eines SoCs in der Konzeptphase durch Diagrammbeispiele veranschaulicht. Darüber hinaus wird die Verlinkung zwischen den Tools IBM® Rational® Doors® Next Generation und IBM® Rational® Rhapsody® als Teil des Beispiels behandelt, ebenso die Möglichkeit der Automatisierung bei der Modellierung.

5.1.1 Definition Tool-Umgebung

Die in Kapitel 4 vorgestellte modellbasierte Entwicklungsmethode baut in ihrer Implementierung auf verschiedenen Tools aus den Bereichen der Eingebetteten Systeme und der Systementwicklung auf. Daher werden nachfolgend die für die Umsetzung der Methode essenziellen Tools vorgestellt und der Nutzen für die hier vorliegende Methode beschrieben.
IBM® Rational® Rhapsody®
IBM® Rational® Rhapsody® (Rhapsody) ist eine Entwicklungsumgebung für die modellbasierte Entwicklung von Eingebetteten Systemen sowie von Software. Dabei unterstützt Rhapsody neben vielen anderen standardisierten Modellierungssprachen die in dieser Arbeit genutzte SysML und ermöglicht darüber hinaus die Simulation dieser Modelle. Zusätzlich zur Simulation bietet Rhapsody verschiedene Standard-Codegeneratoren, welche auf Basis der SysML-Diagramme die Generierung von Code, wie zum Beispiel C und C++, unterstützen. Diese Generatoren lassen sich durch die Anwender/-innen entsprechend ihren Anforderungen und Anwendungsfällen konfigurieren. Weiter bietet Rhapsody eine Vielzahl an vordefinierten Profilen an. So gibt es für jede Modellierungssprache eigene Profile, um die Modellierungsoberfläche an die entsprechende Sprache bzw. die Anwender/-innen anzupassen [59].
Nachfolgend sollen wichtige genutzte Funktionalitäten des Tools behandelt werden, welche einen direkten Einfluss auf die Implementierung der in dieser Arbeit entwickelten Methode haben.
Properties
Rhapsody bietet die Möglichkeit, eine Vielzahl der Eigenschaften der Nutzeroberfläche, der Modellierung und der Codegenerierung über sogenannte „Properties“ (Eigenschaften) anzupassen. Als Properties werden durch den Nutzer änderbare Variablen bezeichnet, über die nahezu jedes Element in Rhapsody verfügt. Die Definitionen der Properties können auf unterschiedlichen Ebenen vorgenommen werden. So lassen sich Properties für das gesamte Modell wie auch für einzelne Modellelemente eines Diagramms konfigurieren. Dabei stehen sie in einer Vererbungsbeziehung, d. h., Änderungen auf niedriger Ebene (Modellelement) überschreiben Properties auf Modellebene [59].
Ein Beispiel für den Einsatz der „Properties“ ist die Definition von grafischen Eigenschaften von Modellelementen und Diagrammen als Teil eines Profils. Wird das Profil in das Modell geladen, werden gleichzeitig die hier definierten Werte für die „Properties“ übernommen und angewendet. So wurden auch als Teil des in dieser Arbeit entwickelten Automotive-SoC-Profils „Properties“ definiert, welche für alle Modelle der SoC-Entwicklung gleichermaßen benötigt werden. Durch die Definition von „Properties“ für die Darstellung der Modellelemente und Diagramme als Teil des Automotive-SoC-Profils kann eine einheitliche Darstellung in allen Modellen verschiedener SoC-Projekte geschaffen werden.
Tags
Tags stellen eine weitverbreitete Ergänzung zu den in SysML enthaltenen Variablen dar. Während Variablen in erster Linie zur Spezifikation von funktionalen Eigenschaften im Modell vorgesehen sind, lassen sich mittels Tags beliebige Eigenschaften beschreiben. Dabei lassen sich Tags wie Variablen verwenden und beliebigen Modellelementen zuweisen. Sie unterliegen dabei jedoch nicht den Beschränkungen der Variablen [59]. In der hier vorliegenden Arbeit werden Tags in erster Linie zur Spezifikation von nichtfunktionalen Eigenschaften des Systems im Modell verwendet, welche nicht für eine spätere Simulation benötigt werden. Dazu wurden auf Grundlage eines „Stakeholder“-Interviews ermittelte Eigenschaften mittels Tags vordefiniert, in Stereotypen gruppiert und den Anwender/-innen als Teil des Automotive-SoC-Profils zur Verfügung gestellt.
Rhapsody Java API
Neben den Standardfunktionalitäten von Rhapsody bietet das Tool die Möglichkeit, über eine Java API mittels Plug-In (Software-Erweiterung) zusätzliche Funktionen zu realisieren. So besteht die Möglichkeit, Applikationen in Rhapsody zu integrieren und mittels dieser beispielsweise „Properties“ zu manipulieren, die Modellierung selbst zu automatisieren oder Informationen aus bestehenden Diagrammen auszulesen [59]. Die Java API wurde für die hier vorliegende Arbeit sowohl zur Automatisierung der Modellierung verwendet, um so die Anwenderfreundlichkeit zu erhöhen und den Modellierungsaufwand zu senken, als auch um darüber hinaus mittels Plug-Ins die Informationen der Architektur für die Generierung der „Connectivity Checks“ auszulesen. Eine nähere Beschreibung dieses Plug-Ins folgt in Abschnitt 5.3.4.
IBM® Rational® Doors® Next Generation
IBM® Rational® Doors® Next Generation (DNG) ist ein webbrowserbasiertes Anforderungsmanagement-Tool zur Dokumentation und Verwaltung von Anforderungen während des gesamten Entwicklungs-Flows. Dabei ermöglicht DNG die Strukturierung der Anforderungen in Form von Artefakten, welche jeweils über eine eindeutige Identifikationsnummer verfügen. Neben der Beschreibung der reinen Anforderungen lassen sich durch die Anwender/-innen Attribute und so beispielsweise Sollwerte oder Toleranzgrenzen den Artefakten zuweisen. Die eindeutige Identifikationsnummer der Anforderungen ermöglicht zudem das Setzen von Verlinkungen zwischen den Anforderungen und realisiert damit eine Nachverfolgbarkeit über den Entwicklungs-Flow hinweg [88].
DNG ist wie Rhapsody Teil der IBM-Rational-Tool-Umgebung und wird in der hier vorliegenden Arbeit für die Verwaltung der Systemanforderungen genutzt, da es neben der Verlinkung der Anforderungen selbst die Verlinkung der Anforderungen mit Artefakten anderer Tools der IBM-Rational-Tool-Umgebung ermöglicht. Somit wird eine direkte Verlinkung zwischen den Anforderungen in DNG und den Modellelementen in Rhapsody ermöglicht [88].
IBM® Rational® Rhapsody® Model Manager
Der IBM® Rational® Rhapsody® Model Manager (RMM) dient zur serverbasierten Speicherung und Verwaltung von Modellen, welche in Rhapsody erstellt wurden. Darüber hinaus ermöglicht die Nutzung des RMM die Verlinkung von Modellelementen in Rhapsody und den Systemanforderungen in DNG. Bei den Verlinkungen handelt es sich um Open Services for Lifecycle Collaboration (OSLC)-Verknüpfungen. OSLC ist eine offene Initiative, welche sich mit der Verlinkung und Integration von Spezifikation und unterschiedlichen Werkzeugen beschäftigt, um durch ein Standardformat den Austausch zu erleichtern [89].
Neben der Verlinkung mit anderen Tools der Rational-Tool-Umgebung bietet die Speicherung der Modelle auf dem RMM-Server den Vorteil, dass beliebig viele Entwickler/-innen parallel am selben Modell arbeiten können. Dazu erzeugen sich die Entwickler/-innen ein lokales Abbild des Modells und bearbeiten dieses. Anschließend werden die Änderungen auf den Server hochgeladen. Dabei werden die Änderungen an den entsprechenden Diagrammen und Modellelementen selektiv auf den Server übertragen, ohne dabei die unveränderten Anteile zu überschreiben. Lediglich bei einer gleichzeitigen Änderung desselben Modellelements müssen die Anwender/-innen selbst aktiv werden [59].

5.1.2 Modellierungsmethode

Im folgenden Abschnitt wird die Anwendung der in dieser Arbeit entwickelten modellbasierten Entwicklungsmethode auf die Systemkonzeptentwicklung anhand eines Beispiel-Auswerte-SoCs beschrieben. Dazu wurde im Zuge der hier vorliegenden Arbeit die Modellierung des Auswerte-SoCs durchgeführt. Die so erhaltenen Diagramme sollen nachfolgend zur Veranschaulichung der modellbasierten Entwicklungsmethode dienen.
Eine Sonderrolle erhält hierbei das Package Diagram, da es Teil der in dieser Arbeit entwickelten Modellierungsmethode, jedoch nicht Teil der Formalisierung ist. Grund hierfür ist die Verwendung des Package Diagram rein zur Modellierung der Modellstruktur selbst. Es wird somit nicht zur Modellierung des SoCs beziehungsweise dessen Umfelds verwendet. Die Modellierung der Modellstruktur als Package Diagram dient in erster Linie zur schnelleren Navigation im Modell, da die Anwender/-innen hierdurch zum einen Informationen über die Struktur des Modells enthalten und zum anderen über Verlinkungen schnell in die entsprechenden Diagramme des Modells navigieren können. Abbildung 5.1 zeigt die in der hier vorliegenden Arbeit entwickelte und in Abbildung 4.​4 dargestellte Modellstruktur, angewendet auf den in diesem Abschnitt zugrunde liegenden Auswerte-SoC als Beispiel.
Das Package Diagram genannt „StartPage“ zeigt die in dieser Arbeit definierte Modellstruktur anhand der Packages System Context Model, Functional Model, Technical Model und Behavioral Model und stellt zudem die wichtigsten Diagramme des jeweiligen Submodells als Block, inklusive Abbildung des Diagramms, dar. Die Abbildungen der Diagramme dienen dabei lediglich als Orientierungshilfe und werden im Verlauf der Arbeit näher betrachtet. Über die in der oberen rechten Ecke der Blöcke enthaltenen Buttons wird es den Anwendern/-innen ermöglicht, direkt zu dem jeweiligen Diagramm zu navigieren. Die finale Modellierung einer solchen StartPage ist in der Regel erst zu einem späteren Zeitpunkt der Konzeptphase möglich. Eine generalisierte Version wird den Anwendern/-innen jedoch als Teil des Automotive-SoC-Profils zur Verfügung stehen. Die Zurverfügungstellung der Modellstruktur als Teil des in dieser Arbeit entwickelten Automotive-SoC-Profils bietet dabei folgende Vorteile:
  • Formalisierung der Modelle über alle SoC-Entwicklungsprojekte
  • Reduzierung des Aufwandes und der Fehleranfälligkeit bei der Modellierung
  • Unterstützung des Anwenders in der Entwicklung nach dem Top-down-Ansatz
Die modellbasierte Entwicklung des SoCs beginnt, wie in Kapitel 4 beschrieben, in der Regel mit der Analyse der Anwendungsfälle und damit der Kundenforderungen. Hierzu dient das in Abbildung 5.2 dargestellte Use Case Diagram, genannt Use Case Analysis als Beispiel.
Auf der linken Seite des hier dargestellten Use Case Diagram sind die Systeme des übergeordneten Systems zu sehen, welche mit dem Auswerte-SoC interagieren bzw. mit denen der Auswerte-SoC interagiert. So wurde beispielsweise als Teil des hier gezeigten Use Case Diagram der Anwendungsfall „readout pressure signal“ modelliert. Hierbei wird das Drucksignal von einer der in der Abbildung 5.2 dargestellten „Engine Control Units“ (ECUs, Motorsteuergeräte) vom SoC angefordert. Um dieses Drucksignal an die ECU liefern zu können, benötigt der SoC wiederum eine Interaktion mit dem Sensormodul, welches den aktuellen Druck misst.
Neben den Systemen des übergeordneten Systems wurden in diesem Beispiel auf der rechten Seite des Diagramms bereits Schnittstellen zur Fehleranalyse und zum Wafer-Level-Test dargestellt und die dafür benötigten Anwendungsfälle analysiert. Die Abbildung 5.2 veranschaulicht zudem die Möglichkeit, die Standardsymbole des Use Case Diagram durch eigene Symbole zu ersetzen. Diese Funktion lässt sich auf beliebige Modellelemente in allen Diagrammen anwenden. Die Nutzung sollte sich jedoch auf das Use Case Diagram beschränken, um in Diagrammen wie BDDs und IBDs weiterhin eine grafische Wiedererkennbarkeit der Modellelemente zu erhalten.
Zusätzlich zur Analyse des Anwendungsfalls wurden eine Analyse und eine Modellierung des technischen Systemkontexts durchgeführt, deren Ergebnis in Abbildung 5.3 dargestellt ist.
Das System Context Diagram zeigt den Auswerte-SoC als Part in der Mitte des Diagramms sowie die externen Systeme, welche mit dem Auswerte-SoC interagieren. Wenn möglich, sollte hier die physikalische Anordnung der Systeme im übergeordneten System eingehalten werden. Neben den Systemen beinhaltet das System Context Diagram die Darstellung der Ports und spezifiziert bereits einige Eigenschaften des Auswerte-SoCs mittels Tags. Darüber hinaus wurden in diesem Diagramm Standardelemente, in diesem Fall Kondensatoren modelliert, um die Beschaltung des Auswerte-SoCs zu veranschaulichen. Diese Elemente wurden, wie in Abschnitt 4.​1.​3, als vorgefertigte Templates aus dem in dieser Arbeit entwickelten Automotive-SoC-Profil in das hier gezeigte Diagramm kopiert. Zudem wurden den in Abbildung 5.3 enthaltenen Parts vordefinierte Ports aus dem SoC-Profil zugeordnet sowie dem Part itsAuswerteSoC die Tags ASIL_level und Vendor hinzugefügt.
Aufbauend auf der Analyse der Anforderungsfälle folgt als Teil der hier entwickelten Modellierungsmethode die Dekomposition der Funktionen. Hierzu werden zu Beginn aus den Anwendungsfällen Funktionen abgeleitet. In diesem Fall zeigt Abbildung 5.4 die abgeleiteten Funktionen „readout-pressure-Sensor“ als Allokation des Anwendungsfalls „readout-pressure-Signal“ und die Funktion „readout_Temperature“ als Allokation des Anwendungsfalls „readout Temperature“.
Anschließend wurden die Funktionen in die hier gezeigten Teilfunktionen dekomponiert. Die Modellierung kann dabei in einzelnen BDDs für einzelne Funktionen bzw. wie im vorliegenden Fall in Funktionsblöcken erfolgen oder es wird ein Hierarchical Functional Diagram für die gesamte Funktionalität des SoCs erstellt. Das hier gezeigte Diagramm bildet daher nur einen Teil der gesamten Funktionalität des Auswerte-SoCs ab.
Neben der Dekomposition der Funktionen sollte bei der Modellierung eine Beschreibung der Abläufe in Form von Activity Diagrams erfolgen. Dabei wird nach der in dieser Arbeit entwickelten Methode für jeden Block, welcher eine Funktion repräsentiert, ein Activity, welches dem Activity Diagram entspricht, modelliert. Abbildung 5.5 zeigt als Beispiel ein Activity Diagram als funktionalen Ablauf der „readout-pressure-Sensor“-Funktion des Auswerte-SoCs. Wie in der Abbildung 5.5 erkennbar ist, geht es dabei um eine sehr abstrakte Beschreibung der Abläufe. Diese dient in erster Linie dazu, die Funktionen des Auswerte-SoCs funktional in Beziehung zu setzen. Das Activity Diagram enthält somit alle in Abbildung 5.4 durch die Dekomposition erhaltenen Teilfunktionen der Funktion „readout-pressure-Sensor“.
Die Abbildung 5.5 zeigt zudem die bereits in Abschnitt 4.​1.​2 behandelten Swimlanes, welche nach der hier angewendeten Modellierungsmethode für die Allokation der Funktionen zu den Modulen des Technical Model dienen. Hat die Dekomposition der Funktionalität einen gewissen Reifegrad erreicht, kann die Allokation der Funktionen aus dem Functional Model zu den Modulen des Technical Model erfolgen. Dabei findet zu Beginn meist noch keine Einteilung und Zuordnung der Funktionen in die jeweiligen Domänen statt. Die Modellierung der Dekomposition der Module sowie die Allokation erfolgt im Hierarchical Technical Diagram, wie in Abbildung 5.6 dargestellt.
Dabei bleiben die Entwicklung und Modellierung in der Regel auf der System-Ebene als Maß der Abstraktion. Anders als im Hierarchical Functional Diagram sollte im Hierarchical Technical Diagram zumindest jede Hierarchieebene der Dekomposition vollständig in einem Diagramm dargestellt werden. Lediglich um eine weitere Ebene der Dekomposition für eine der hier gezeigten Submodule vorzunehmen und zu modellieren, kann es sich bei sehr komplexen Systemen anbieten, diese nächsttiefere Ebene als weiteres BDD hinter dem jeweiligen Block zu hinterlegen. Für die Modellierung der in Abbildung 5.6 dargestellten Module wurden die vorgefertigten Blöcke aus dem in dieser Arbeit entwickelten Automotive-SoC-Profil in das Model kopiert und für das entsprechende Modul angepasst.
Parallel zum Hierarchical Technical Diagram wurde das Architecture Diagram, wie in Abbildung 5.7 dargestellt, modelliert. Hierbei werden, nach der hier entwickelten Modellierungsmethode, die zu den Blöcken aus dem Hierarchical Technical Diagram zugehörigen Parts als eine Art Instanz des Blocks zur Darstellung des Moduls in der Architektur modelliert. Wird ein Teil der Funktionalität mittels Software auf einem Mikrochip realisiert, erfolgt die Modellierung der Software-Architektur in einem gesonderten IBD.
Vergleichbar zum System Context Diagram wurden als Teil des Architecture Diagram die Ports und Verbindungen der Architektur modelliert sowie die nichtfunktionalen Eigenschaften mittels Tags spezifiziert. Durch die Verwendung der vorgefertigten Blöcke aus dem Automotive-SoC-Profil für die Modellierung des Hierarchical Functional Diagram wurden ebenso vorgefertigte Parts für die Modellierung der Architektur erzeugt. Diese enthielten bereits eine große Menge der in der Abbildung 5.7 gezeigten Ports und Tags. In Abbildung 5.7 außerdem zu sehen ist die Modellierung der externen Ports des Auswerte-SoCs auf dem Diagramm-Rahmen des Architecture Diagram.
Nach der konzeptuellen Modellierung der Architektur von Hardware und gegebenenfalls Software endet in der Regel die Konzeptphase. Die Verfeinerung der Modellierung als Teil der Entwurfsphase wird in Abschnitt 5.1 behandelt.

5.1.3 Modellbasierte Spezifikation

Neben der Modellierung des Systems beinhaltet die in dieser Arbeit entwickelte Methode die bidirektionale Verlinkung der Systemanforderungen in natürlicher Sprache mit den Modellelementen des Systemkonzepts bzw. Systemmodells. Als essenzieller Bestandteil der Methode soll hierdurch eine kombinierte Spezifikation basierend auf zwei Spezifikationsdokumenten, welche in zwei verschiedenen Tools verwaltet werden, geschaffen werden. Aus diesem Grund soll nachfolgend die toolbasierte Lösung für die bidirektionale Verlinkung der Spezifikationsdokumente vorgestellt werden. Die dabei verwendete Tool-Umgebung wurde in Abschnitt 5.1.1 vorgestellt sowie deren Nutzen für die Methode dieser Arbeit behandelt.
Die Realisierung der Verlinkung erfolgt auf Basis der IBM-Rational-Tool-Umgebung, welche bereits die Verlinkung der Systemanforderungen, in DNG als Artefakte gespeichert, mit den Rhapsody Modellelementen ermöglicht. Somit sind durch die Auswahl der Tool-Umgebung für die hier vorliegende Arbeit die technischen Voraussetzungen für die Verlinkung gegeben. Die methodischen Voraussetzungen, um eine Spezifikation aufgeteilt auf zwei Tools mit unterschiedlichen Datenbasen zu schaffen, mussten in dieser Arbeit ermöglicht werden. Abbildung 5.8 veranschaulicht die Verlinkung der Kunden- bzw. Systemanforderungen in DNG mit den Modellelementen des Systemmodells in Rhapsody, ohne dabei auf die technische und Tool-spezifische Realisierung einzugehen.
Die grauen Blöcke der Tools zeigen gleichzeitig den sogenannten Master der jeweiligen Daten. Die Systemanforderungen sollten zur Sicherstellung der Konsistenz immer in DNG spezifiziert werden. Um die Verlinkung in Rhapsody zu ermöglichen, werden die beiden Datenbasen verbunden und so eine Referenz und damit eine Repräsentation der Systemanforderungen aus DNG in Rhapsody erreicht. Die Modelle aus Rhapsody werden dabei auf dem RMM gespeichert und mittels bidirektionaler OSLC-Verlinkung mit DNG verbunden. Die Verlinkung kann dabei sowohl in DNG wie auch in Rhapsody erfolgen.
Darüber hinaus lassen sich die Verlinkungen als Beziehungen in den Diagrammen darstellen. Diese Funktion wurde hier schematisch in der Abbildung 5.8 zur Veranschaulichung als „Optische Verlinkung“ bezeichnet. Abbildung 5.9 zeigt einen Auszug des in Abbildung 5.4 gezeigten Hierarchical Functional Diagram und veranschaulicht dabei die Satisfy-Beziehung der „readout-pressure-Sensor“-Blocks zur hier beispielhaft dargestellten Kundenanforderung Provide pressure measurment.
Dabei wurde in diesem Fall die Repräsentation der Anforderung im Diagramm als Requirements-Block gewählt. Diese Darstellung kann schnell zu unübersichtlichen Diagrammen führen und sollte selektiv für den jeweiligen Fall gewählt werden. Alternativ ist es möglich, die Beziehung als Teil des Modells zu modellieren, ohne eine optische Repräsentation in einem Diagramm zu benötigen.

5.1.4 Automatisierung der Modellierung

Neben der Nutzung der Plug-Ins für die Automatisierung des Entwurfs lassen sich Plug-Ins ebenso zur Automatisierung einzelner Arbeitsschritte bei der Modellierung nutzen. Hierdurch kann der Aufwand der Modellierung einer Spezifikation im Vergleich zur aktuellen Methode weiter gesenkt werden. So lässt sich über die bereits behandelte Java API von Rhapsody auch die Modellierung mittels Plug-Ins automatisieren. In dem in diesem Kapitel zugrunde liegenden industriellen Beispiel eines Auswerte-SoCs wurden beispielsweise spezifische Darstellungseigenschaften für „Stakeholder“-spezifische Sichten definiert.
Die Anwendung auf ein Diagramm würde jedoch in vielen Fällen eine manuelle Bearbeitung jedes einzelnen Modellelements eines Diagrammes benötigen. Die Einstellungsmöglichkeiten der Darstellung eines Modellelements in Rhapsody wird in den „Display Options“ (Anzeigeoptionen) zusammengefasst und kann dort mittels Dialogfenstern angepasst werden. Dies führt jedoch zu einem erheblichen manuellen Aufwand und birgt die Gefahr einer Abweichung von der definierten Standarddarstellung. Neben der Einstellung der „Display Options“ im Dialogfeld lassen sich viele dieser Einstellungen direkt mittels „Properties“ definieren.
In der hier vorliegenden Arbeit wurde daher ein Plug-In entwickelt, welches so weit wie möglich die Anpassung der „Display Options“ durch ein automatisiertes Setzen der „Properties“ ermöglicht. Dabei kann das Plug-In je nach „Stakeholder“-Sicht wiederverwendet und konfiguriert werden. Hierbei bietet Rhapsody die Option, das Starten und Ausführen des Plug-Ins direkt mittels Menüeintrag in Rhapsody zu ermöglichen. Zusätzlich zur Anpassung der „Properties“ bzw. der „Display Options“ schließt das Plug-In das aktuell geöffnete Diagramm auf, welches auf das Plug-In angewendet wurde und lädt es neu, um die neue Darstellung auf das Diagramm anzuwenden.
Um eine einheitliche Darstellung bei der Modellierung zu fördern und dabei den Aufwand so gering wie möglich zu halten, wurde als Erweiterung der Methode eine standardisierte Darstellung bei den IBDs definiert. Diese Darstellungsregeln lassen sich auch nachträglich mittels Plug-Ins auf die IBDs anwenden und werden dem Nutzer als Teil des Profils zur Verfügung gestellt. Es ist hierbei ebenfalls möglich, den Anwender/-innen eine Auswahl verschiedener Plug-Ins zur Verfügung zu stellen, welche ein bestimmtes Set aus Darstellungsregeln automatisiert anwendet. Die einheitliche Darstellung unterstützt den Leser des Modells dabei, den Sinn der Informationen leichter zu verstehen. Eine einheitliche Darstellung ist hierbei jedoch besonders wichtig, da im Laufe eines Entwicklungs-Flows eine Vielzahl verschiedener Personen an der Modellierung des Systems beteiligt sind.

5.2 Übergang Konzeptphase – Entwurfsphase

Im vorangegangenen Abschnitt wurde die Modellierung des Systemkonzeptes anhand eines Beispiel-SoCs veranschaulicht. Die Entwicklung findet hier in der Regel rein konzeptuell statt und endet daher in der Abstraktion auf der System-Ebene. Beim Übergang von der Konzept- zur Entwurfsphase wird, wie in Abschnitt 4.​2 beschrieben, das modellierte Systemkonzept zum Systemmodell und damit zu einem Bestandteil der Entwurfsspezifikation. Um die in Abschnitt 4.​3 beschriebene modellgetriebene Automatisierung des Systementwurfs zu erreichen, bedarf es einer Verfeinerung des Systemmodells. Nachfolgend wird diese Verfeinerung als Teil des in dieser Arbeit entwickelten Spezifikations-Flows an einem weiteren SoC-Beispiel behandelt und mittels vereinfachter Beispieldiagramme veranschaulicht. Dabei orientiert sich dieses Beispiel an einem SoC-Projekt in der Entwurfsphase.

5.2.1 Verfeinerung (Bus-)Architektur

Die Architekturbeschreibung ist bereits im Technical Model des Systemkonzepts in Form des Architecture Diagram enthalten und muss in der Entwurfsphase, wie in Abschnitt 4.​3.​2 beschrieben, lediglich verfeinert werden.
Die Modellierung und Generierung der Architektur wird nachfolgend am Beispiel des Processor-Subsystems veranschaulicht. Dieses beinhaltet die kontrollflussorientierten Module des Beispiel-SoCs. Für die Beschreibung der Architektur wird, wie in Abschnitt 4.​1 beschreiben, im ersten Schritt die Dekomposition mittels BDD modelliert. Abbildung 5.10 zeigt das Processor-Subsystem mit den enthaltenen kontrollflussorientierten Modulen als Beispiel eines Hierarchical Technical Diagram.
Das Processor-Subsystem besteht in diesem Beispiel aus dem Processor als Repräsentation eines spezifischen Mikrocontrollers, dem zugehörigem RAM und ROM, zwei Bussen, dem CRC Module sowie dem „One-Time-Programmable“ (OTP)-Modul. Aufgrund der geringen Relevanz der technischen Funktionalität der einzelnen Module für die hier vorliegende Arbeit, werden diese nicht näher behandelt.
Durch die Modellierung der Hardware-Submodule im BDD als Directed Composition des Cortex-Subsystems werden entsprechende Parts der Hardware-Submodule erzeugt. Diese Teile werden zur Modellierung des Architecture Diagram im IBD verwendet. Abbildung 5.11 zeigt das Architecture Diagram des Processor-Subsystem als IBD.
Ein- und Ausgänge der Hardwaremodule werden im Architecture Diagram als sogenannte „ProxyPorts“ modelliert. Darüber hinaus sind in der Abbildung 5.11 für die Module bereits Beispiel „ValueProperties“ definiert, welche die Eigenschaften der Module spezifizieren und zudem der Generierung der Architekturbeschreibung in SystemC für den Virtuellen Prototyp dienen.
Als Teil der Verfeinerung der Architektur wird die Modellierung von On-Chip-Bussen durchgeführt. Wie in Abbildung 5.11 und Abbildung 5.10 zu sehen, werden die Busse im Architecture Diagram, wie alle Module der Architektur, als Blöcke im BDD und als Parts im IBD modelliert. In der Entwurfsphase reicht diese abstrahierte Darstellung der Busse meist jedoch nicht mehr aus und es wird zusätzlich zur Architektur des SoCs auf System-Ebene eine Modellierung der Busarchitektur benötigt. Abbildung 5.12 zeigt die modellierte Busarchitektur des in diesem Kapitel genutzten Beispiel-SoCs.
Dabei wird zur Modellierung der nächsttieferen Abstraktionsebene in diesem Beispiel hinter dem Part itsCore-Bus ein weiteres IBD mit der Busarchitektur hinterlegt. Vergleichbar mit dem Architecture Diagram werden hierzu die Module, welche über den Bus verbunden sind, als Parts modelliert sowie die Verbindungen zwischen den Modulen, welche Bestandteil des Busses sind, als Connectoren abgebildet.
Für die Implementierung der nachfolgend in Abschnitt 5.3.4 beschriebenen modellgetriebenen Verifikation wurde die Architektur des SoCs aus Abbildung 5.11 zusätzlich verfeinert, wie in Abbildung 5.13 gezeigt. Dabei wurde dem Modell das CRC-OTP-Subsystem hinzugefügt und die Architektur der bereits in Abbildung 5.10 enthaltenen Module OTP und CRC Module wie folgt modelliert bzw. verfeinert.
Da in dieser Arbeit der Fokus auf der Vorstellung der Methode zur modellbasierten Systementwicklung und dem modellgetriebenen Entwurf liegt, wird in diesem Abschnitt nicht näher auf die Funktionen der einzelnen Submodule in dem hier gezeigten Beispiel-SoC eingegangen. Abbildung 5.13 zeigt beispielhaft die Möglichkeit einer detaillierten und implementierungsnahen Modellierung, welche für die modellgetriebene Automatisierung in der Regel benötigt wird.

5.2.2 Verfeinerung der Verhaltensbeschreibung

Neben der Verfeinerung der Architektur erfolgt, wie in Abschnitt 4.​2.​2 beschrieben, in der Entwurfsphase eine Spezifikation und Modellierung des Modulverhaltens als Teil des Behavioral Model. Neben der eindeutigen Spezifikation wird durch die Formalisierung und Modellierung des Verhaltens ein implementierungsnahes und maschinenlesbares Format erreicht und somit der Grundstein für die Realisierung eines modellgetriebenen Systementwurfs gelegt. Die dabei entstehenden Flowchart Diagrams sind im Behavioral Model in ein Hardware- und ein Software-Package unterteilt. Hierdurch wird eine Generierung verschiedener Programmiersprachen für das jeweilige Package des SoC-Modells ermöglicht. Für die Definition der Zielsprache wird für einen definierten Teil des Modells, wird im Modell eine Rhapsody-spezifische Konfigurationsdatei angelegt. Auf diese Weise ist es möglich, C++-Code bzw. SystemC-Code lediglich für den Teil der verhaltensbeschreibenden Diagramme zu generieren, welcher für die Generierung des Virtuellen Prototyps, wie in Abschnitt 4.​3.​1 beschrieben, benötigt wird. Da bei der Modellierung und Generierung der Verhaltensbeschreibung die Verwendung der korrekten Registernamen entscheidend ist, wurden mittels des in Abschnitt 4.​1.​4 beschriebenen automatisierten Transfers die Registernamen aus der IP-XACT-Registerbeschreibung in das SysML-Modell übertragen. Abbildung 5.14 zeigt einen Auszug der so übertragenen Registernamen, welche im Modell als ValueProperties vertreten werden und in der Modellierung der Verhaltensbeschreibung wie Variablen verwendet werden können.
Nachfolgend soll die Modellierung und anschließende Generierung der Hardware-Verhaltensbeschreibung anhand einer Teilfunktion des hier zugrunde liegenden Beispiel-SoCs veranschaulicht werden. Abbildung 5.15 zeigt hierzu das Flowchart Diagram einer zyklischen Redundanzprüfung (CRC-Berechnung) für einen 32 Bit-unsigned-Integer-Wert in Form einer modellierten For-Schleife.
Der Algorithmus der zyklischen Redundanzprüfung wird häufig zur Erkennung von Fehlern bei der Datenübertragung verwendet [90]. Hierzu wird der Wert der einzelnen Bits der Variablen „input“ betrachtet und an die CRC-Berechnungsfunktion übergeben. In der Abbildung 5.15 ist die stark implementierungsnahe Modellierung des Modulverhaltens zu erkennen, welche als Grundlage für die nachfolgend beschriebenen Lösungen der modellgetriebenen Automatisierung des Systementwurfes benötigt wird.

5.3 Modellgetriebener Systementwurf und Verifikation

Nachfolgend wird das in dieser Arbeit durchgeführte „Proof-of-Concept“ der in Kapitel 4 konzeptuell beschriebenen Methoden zur Steigerung der Effizienz bei der Implementierung des Systementwurfs sowie der Effizienz bei der Erstellung der Verifikation vorgestellt. Als Teil dessen wird die dabei verwendete Tool-Umgebung beschrieben sowie die in dieser Arbeit entwickelten konfigurierten Codegeneratoren für die Automatisierung des Entwurfs vorgestellt. Hierbei soll gezeigt werden, wie auf Grundlage der in Abschnitt 5.2 vorgestellten modellierten Teile der Entwurfsspezifikation die Codegenerierung ermöglicht werden kann.

5.3.1 Definition Tool-Umgebung

Synopsys® Virtualizer Studio (Virtualizer Studio) ist ein Eclipse-basiertes Tool, welches die Funktionalitäten mehrerer anderer Synopsys-Werkzeuge vereint und diese um eine eigene Anwenderoberfläche erweitert. Für die hier vorliegende Arbeit wurde Virtualizer Studio für die Instanziierung und Vernetzung von Hardware-IPs verwendet, um daraus Systeme oder Teilsysteme für die Implementierung eines Virtuellen Prototyps zu erstellen. Darüber hinaus lassen sich die Virtuellen Prototypen in Virtualizer Studio zusammen mit der Software simulieren und testen. An vielen Stellen wird den Anwender/-innen zudem die Möglichkeit der Abstrahierung geboten, um so die Entwicklungszeiten und den Aufwand für die Implementierung des Virtuellen Prototyps zu verringern. Ein Vorteil bei der Verwendung von Virtualizer Studio ist das zur Verfügung stehende Python-„Application Programming Interface“ (API, Programmierschnittstelle) des Tools. Nahezu alle manuell ausführbaren Aktionen können hierdurch via Python-Skript automatisiert werden. Somit wird eine Möglichkeit der Automatisierung bei der Erstellung von Virtuellen Prototypen eröffnet und findet in dieser Arbeit wie im nachfolgenden Abschnitt 5.3.2 beschrieben Anwendung [70] [91].

5.3.2 Automatisierung der Entwicklung Virtueller Prototypen

Der folgende Abschnitt zur Automatisierung im Bereich der Virtuellen Prototypen baut auf der Arbeit aus [15] auf. Dieser Ansatz soll im ersten Schritt um die Generierung einer Verhaltensbeschreibung der kontrollflussorientierten Module erweitert werden, wie in Abschnitt 4.​3 beschrieben und in Abbildung 4.​12 dargestellt. Die Generierung wird dabei anhand des in Abschnitt 5.2 vorgestellten Modells eines Beispiel-SoCs behandelt.
Generierung der SystemC-Verhaltensbeschreibung
Um eine modellbasierte Generierung zu ermöglichen, muss zu Beginn der Entwurfsphase das Systemmodell, wie in Abschnitt 5.2.2 veranschaulicht, um das Behavioral Model und damit um die Verhaltensbeschreibung der einzelnen Hardwaremodule erweitert werden. Um die Generierung der SystemC-Verhaltensbeschreibung, wie in Abschnitt 4.​3.​1 vorgestellt, auf Basis des so erhaltenen Behavioral Model zu implementieren, wurde der in Rhapsody enthaltene C++-Generator für den hier vorliegenden Anwendungsfall konfiguriert. Die Generierung der SystemC-Verhaltensbeschreibung erfolgt dabei in zwei Schritten, wie in Abbildung 5.16 dargestellt.
Im ersten Schritt erfolgt eine Transformation des SysML-Diagram bzw. des Flowchart Diagram in ein Simplified Model. Dabei werden alle grafischen Modellelemente vereinfacht und auf die relevanten Metadaten für die Codegenerierung reduziert. Dieses Simplified Model ist eine reine Metadatenbeschreibung der Modellteile für die Codegenerierung und beinhaltet daher keine grafische Repräsentation. Im zweiten Schritt wird auf Basis des Simplified Model der SystemC-Code für die Hardware-Verhaltensbeschreibung generiert. Dabei lässt sich das Ergebnis der Generierung maßgeblich an drei Stellen des Flows beeinflussen: bei der Art der Modellierung, bereits in Abschnitt 4.​3 behandelt, bei der Transformation zwischen SysML-Modell und Simplified Model sowie bei der Generierung des Codes auf Basis des Simplified Model.
Das Ergebnis der auf Basis des in Abbildung 5.15 gezeigten Flowchart Diagram erfolgten Generierung wird in Abbildung 5.17 präsentiert. Zu beachten ist hierbei die Fensterung einzelner Code-Blöcke durch Kommentare, wodurch diese den ihnen zugehörigen Action-Blöcken im Modell zugeordnet werden können. Die Kommentare werden hierbei automatisch generiert und können durch die Anwender/-innen konfiguriert werden. Die Zählervariablen der For-Schleife im Code werden in der Decision Node des Flowchart Diagram definiert.
Wurde der SystemC-Code erfolgreich generiert, muss auch hier die generierte Verhaltensbeschreibung mit dem SystemC-Wrapper aus IP-XACT kombiniert werden. Als Ergebnis der Generierung aus Rhapsody entsteht für jedes Hardwaremodul eine Quelldatei und eine zugehörige Header-Datei. Diese Dateien entsprechen der Verhaltensbeschreibung einer Komponente für den Virtuellen Prototyp. Der generierte Wrapper wird in einer weiteren Header-Datei beschrieben. Das Zusammenführen des Wrappers und der zugehörigen Verhaltensbeschreibung funktioniert durch Vererbung der Header-Datei des Wrappers in die Header-Datei der Verhaltensbeschreibung. Dadurch werden die definierten Schnittstellen bekannt gemacht und eine vollständige Darstellung des Hardwaremoduls im Virtuellen Prototyp ermöglicht. Für die Integration und Konstruktion der generierten Module in den VP ist ein Import der Dateien in den Virtualizer erforderlich.
Generierung der SystemC-Architektur
Um den letzten Schritt der Implementierung der Virtuellen Prototypen ebenfalls zu automatisieren, wurde für die Generierung der SystemC-Architekturbeschreibung ein zweistufiger Transformations-Flow entwickelt. Die Generierung der Architektur erfolgt dabei auf Grundlage des in Abschnitt 5.2.1 vorgestellten Architecture Diagram (Abbildung 5.11) sowie dem Diagramm der Busarchitektur (Abbildung 5.12) des SoC-Beispiels. Dabei erfolgt die Generierung der SystemC-Architekturbeschreibung in zwei Schritten.
Im ersten Schritt werden alle benötigten Informationen der Architekturbeschreibung aus dem Technical Model mittels Plug-Ins in drei Tabellen übertragen. Diese Tabellen werden als CSV-Tabellen ausgegeben. Dabei werden in der ersten Tabelle die Instanzen der Komponenten eingetragen, in der zweiten Tabelle die Verbindungen zwischen den Komponenten untereinander und in der dritten Tabelle die Spezifikation in Form von Parametern der Komponenten. Tabelle 5.1 zeigt ein leicht abstrahiertes Beispiel einer CSV-Tabelle für die Instanzen. Sie enthält die beispielhaften Daten zweier Komponenten. Dabei handelt es sich um eine externe Komponente für die der Hersteller eine entsprechende IP-Bibliothek mitliefert und eine selbst entwickelte Komponente für welche die IP generiert wurde.
Tabelle 5.1
Beispiel CSV-Tabelle für die Architekturbeschreibungs-Generierung
InstanceName
Vendor
IPLib
IPName
IPLibPath
Processor
External Vendor
ARM_CORTEX_Example_Lib
ARM_CORTEX_Example
<PathToExternalXMLFile>
CRC_module
Internal Vendor
CRC_module_Lib
CRC_module
<PathToCustomXMLFile>
In der ersten Spalte (Instance Name) der Tabelle 5.1 befindet sich der Name der Instanz. Dieser entspricht dem Namen der Komponente im Modell. In der zweiten Spalte (Vendor) wird der Hersteller der IP genannt, da im Virtuellen Prototyp auch fertige IPs anderer Hersteller verbaut werden können. Spalte drei (IPLIb) beinhaltet den Namen der IP-Bibliothek, Spalte vier (IPName) den Namen der zu erzeugenden IP und Spalte fünf (IPLibPath) den Pfad, an dem die IP-Bibliothek gespeichert ist. Die Bibliotheken der IPs entsprechen den generierten SystemC-Wrappern, kombiniert mit der SystemC-Verhaltensbeschreibung des jeweiligen Hardwaremoduls.
Im zweiten Schritt werden die exportierten CSV-Tabellen, wie in Abbildung 5.18 veranschaulicht, mittels Python-Skript ausgelesen.
Anschließend werden die extrahierten Informationen über eine Python-API in den VP übertragen. Im Virtuellen Prototyp werden die Informationen entsprechend aufgelöst, es wird auf die IP-Bibliotheken zugegriffen und die IPs sowie die Architektur als Ganzes werden erstellt. Durch die hier gezeigte Erweiterung der teilautomatisierten Methode um den modellgetriebenen Ansatz für die kontrollflussorientierten Module lässt sich ein vollautomatisierter Generierungs-Flow für die Entwicklung von Hardware-VPs ermöglichen.

5.3.3 Automatisierung des Softwareentwurfs

Um zusätzlich zur Automatisierung der Entwicklung von Virtuellen Prototypen Teile des SoC-Entwurfs selbst zu automatisieren, wird nachfolgend die in Abschnitt 4.​3 konzeptuell behandelte Generierung von Softwarecode auf Basis des SysML-Modells beschrieben. Dabei wurde ein vergleichbarer Ansatz zur Generierung der SystemC-Verhaltensbeschreibung gewählt.
Die Verhaltensbeschreibung der Software findet mittels Flowchart Diagram als Teil des Behavioral Model statt. Dabei werden im Behavioral Model die Software-beschreibenden Flowchart Diagrams in ein separates Package eingeordnet, um für dieses Package eine C-Codegenerierung zu ermöglichen. Aufgrund der Ähnlichkeit der Modellierung zwischen Verhalten des Virtuellen Prototyps und der Software wurde auch für die Codegenerierung ein vergleichbarer Ansatz verfolgt. So wurde für die Generierung von Softwarecode auf Basis des SysML-Modells der in Rhapsody enthaltene C-Codegenerator für die hier vorliegende Arbeit entsprechend dem Anwendungsfall konfiguriert. Die Generierung erfolgt dabei ebenfalls, wie in Abbildung 5.16 für die Generierung der SystemC-Verhaltensbeschreibung dargestellt, in zwei Schritten.
  • Im ersten Schritt erfolgt eine Transformation des SysML-Diagramms bzw. des Flowchart Diagram in ein Simplified Model.
  • Im zweiten Schritt wird auf Basis des Simplified Model der SystemC-Code für die Hardware-Verhaltensbeschreibung generiert.
Dabei lässt sich das Ergebnis der Generierung, wie im vorangegangenen Abschnitt beschrieben, an drei Stellen des Flows beeinflussen. Diese sollen nachfolgend näher behandelt werden und gelten gleichermaßen für die Generierung der SystemC-Verhaltensbeschreibung aus dem vorangegangenen Abschnitt. Abbildung 5.19 veranschaulicht, aufbauend auf Abbildung 5.16, die drei Möglichkeiten der Einflussnahme auf die Codegenerierung.
  • Properties: Wie in Abschnitt 5.1.1 beschrieben, verfügt Rhapsody über „Properties“ zur Anpassung der Modellierung, der Nutzeroberfläche sowie zur Anpassung der Codegenerierung. Der Einfluss der „Properties“ auf die Generierung greift im ersten Schritt der Generierung bei der Transformation des SysML-Modells in ein Simplified Model. So lassen sich beispielsweise mithilfe der „Properties“ die Generierung von Setter- und Getter-Funktionen für die Variablen aktivieren oder deaktivieren.
  • Simplifier Rules: Mithilfe von sogenannten Simplifier Rules lassen sich SysML-Modelle zu Simplified Models transformieren. Dabei dienen die Simplifier Rules als Regeln für die Transformation und können von den Anwendern/-innen konfiguriert werden. Diese Simplifier Rules können in Form von Plug-Ins zur Verfügung gestellt werden oder es können bestehende Regeln manuell erweitert werden. Über „Properties“ lässt sich in Rhapsody definieren, ob die Standardregeln bei der Transformation angewendet werden oder nutzerspezifische Regeln zum Einsatz kommen sollen.
  • Writer Rules: Das Regelwerk für die Generierung des Codes auf Basis des Simplified Model wird über sogenannte Writer Rules definiert. Dieses Regelwerk kann ebenfalls erweitert oder bestehende Regeln durch eigene ersetzt werden.

5.3.4 Modellgetriebene Verifikation

In diesem Abschnitt wird die in dieser Arbeit entwickelte Generierung im Bereich der Verifikationserstellung vorgestellt. Dazu soll anhand der in Abbildung 5.13 gezeigten Architektur des CRC_OTP_Subsystems die Generierung von „Connectivity Checks“, wie in Abschnitt 4.​3.​3 konzeptuell beschrieben, veranschaulicht werden.
In dem in Abbildung 5.13 gezeigten Architecture Diagram sind die Ports aller Hierarchieebenen abgebildet und mittels Connectoren verbunden. Dabei sind einzelne Ports direkt innerhalb eines Moduls miteinander verbunden und andere Verbindungen gehen über mehrere Hierarchieebenen hinweg. Für die Generierung des „Connectivity Checks“ wird im ersten Schritt zu jedem Anfangs-Port der End-Port im Architecture Diagram mittels Java-Skript gesucht und anschließend in eine Tabelle übertragen. Liegen, wie in Abbildung 5.13 gezeigt, bei der Verbindung zwischen Port Prog_Enable des Moduls itsReg und Port Prog_Enable des Moduls itsProgram_FSM weitere Ports, sollen diese nicht in die Tabelle eingetragen werden.
Um diese Information in die Tabelle übertragen zu können, wird ein weiteres Skript benötigt. Im Modell verfügt jedes Modellelement über eine eigne ID. Diese ID des End-Ports wird in einem Tag automatisiert zwischengespeichert, um im nächsten Schritt den Namen des zugehörigen Parts sowie dessen hierarchische Ordnung im Modell mittels der ID des End-Ports zu extrahieren und in die Tabelle einzutragen.
Die Informationen der so erhaltenen Tabelle werden im nächsten Schritt mittels Python-Skript [92] ausgelesen und auf Grundlage der so erhaltenen Port-Variablen SystemVerilog-Assertions generiert. Die Assertions prüft hierbei lediglich, ob der Anfangs-Port portX mit dem End-Port portY im Entwurf verbunden ist. Abbildung 5.20 zeigt einen Auszug der auf Basis des in Abbildung 5.13 gezeigten Architecture Diagram generierten SystemVerilog-Assertions.
In der Abbildung 5.20 ist unter anderem das Ergebnis der Generierung für das besprochene Beispiel der Verbindung zwischen Port Prog_Enable des Moduls itsReg und Port Prog_Enable des Moduls itsProgram_FSM zu sehen. Die Automatisierung der Entwicklung von „Connectivity Checks“ auf Basis des SysML-Modells zeigt die Möglichkeiten der Effizienzsteigerung im Bereich der Verifikation auf. Durch den modellgetriebenen Ansatz lässt sich in diesem Gebiet nicht nur der Aufwand durch die Qualitätssteigerung der Spezifikation erhöhen, es lässt sich zudem der Aufwand bei der Entwicklung der Verifikation reduzieren.

5.4 Zwischenergebnis

In Kapitel 5 wurde die Implementierung der zuvor in Kapitel 4 beschriebenen modellbasierten Entwicklungsmethode beschrieben. Dabei wurde anhand eines SoC-Beispiels der in dieser Arbeit entwickelte Spezifikations-Flow durchlaufen und mittels Beispiel-Diagrammen veranschaulicht. Darüber hinaus wurde auf Basis eines zweiten Beispiel-SoCs, welcher den Entwicklungsstand des SoCs in der Entwurfsphase beispielhaft repräsentiert, die Automatisierung des Systementwurfs und der Verifikationserstellung erläutert. Als Teil dessen wurde die Implementierung der in dieser Arbeit genutzten und entwickelten Generatoren für die modellgetriebene Generierung vorgestellt. Die Evaluierung der modellbasierten Entwicklungsmethode und die damit verbundenen Lösungen für die Automatisierung 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
Implementierung
verfasst von
Aljoscha Kirchner
Copyright-Jahr
2022
DOI
https://doi.org/10.1007/978-3-658-38437-1_5

    Premium Partner