23
Beispielhafte Entwicklung einer Hardwareproduktlinie – 26.10.11 1 Beispielhafte Entwicklung einer Hardware-Produktlinie anhand einer UART-Familie Jan Dworschak Abschlussvortrag Bachelorarbeit TU Dortmund [email protected]

Beispielhafte Entwicklung einer Hardware-Produktlinie ... · Beispielhafte Entwicklung einer Hardwareproduktlinie – 26.10.11 3 Einführung Kontext Hardwareebene des LavA-Projekts

Embed Size (px)

Citation preview

Page 1: Beispielhafte Entwicklung einer Hardware-Produktlinie ... · Beispielhafte Entwicklung einer Hardwareproduktlinie – 26.10.11 3 Einführung Kontext Hardwareebene des LavA-Projekts

Beispielhafte Entwicklung einer Hardwareproduktlinie – 26.10.11 11

Beispielhafte Entwicklung einer Hardware-Produktlinie anhand einer

UART-Familie

Jan DworschakAbschlussvortrag Bachelorarbeit

TU Dortmund [email protected]

Page 2: Beispielhafte Entwicklung einer Hardware-Produktlinie ... · Beispielhafte Entwicklung einer Hardwareproduktlinie – 26.10.11 3 Einführung Kontext Hardwareebene des LavA-Projekts

Beispielhafte Entwicklung einer Hardwareproduktlinie – 26.10.11 22

Übersicht● Einführung

● Kontext der Arbeit● Grundlagen● Ziele

● Entwurf des UART● Implementation

● VHDL-Komponenten● Codegenerierung

● Evaluation● UART● Codegenerierung

● Fazit

Page 3: Beispielhafte Entwicklung einer Hardware-Produktlinie ... · Beispielhafte Entwicklung einer Hardwareproduktlinie – 26.10.11 3 Einführung Kontext Hardwareebene des LavA-Projekts

Beispielhafte Entwicklung einer Hardwareproduktlinie – 26.10.11 33

Einführung● Kontext

● Hardwareebene des LavA-Projekts● Maßschneiderung von MPSoCs● Konzept der Hardwareproduktlinien

● Grundlagen● (LavA-)UART

- Seriell/Parallel-Übersetzer

- hier: RS-232/Wishbone

- RX/TX mit einfachen Interrupts

● LavA-Workflow- Modellierung und Konfiguration über Metamodell (Eclipse)

- Erzeugung eines SPC für XVCL mittels oAW-Xpand

- Codegenerierung über XVCL

Metamodell

SPC

Hardware

VHDL

Page 4: Beispielhafte Entwicklung einer Hardware-Produktlinie ... · Beispielhafte Entwicklung einer Hardwareproduktlinie – 26.10.11 3 Einführung Kontext Hardwareebene des LavA-Projekts

Beispielhafte Entwicklung einer Hardwareproduktlinie – 26.10.11 44

Einführung● Ziele der Arbeit

● Erweiterung des statischen LavA-UART- konfigurierbare VHDL-Komponenten

- C-Funktionen zur Ansteuerung und Laufzeitkonfiguration

● Exemplarische Abwandlung des Workflows- Elimination von XVCL

- Codegenerierung ausschließlich über Xpand-Framework

Metamodell

Hardware

VHDL

Page 5: Beispielhafte Entwicklung einer Hardware-Produktlinie ... · Beispielhafte Entwicklung einer Hardwareproduktlinie – 26.10.11 3 Einführung Kontext Hardwareebene des LavA-Projekts

Beispielhafte Entwicklung einer Hardwareproduktlinie – 26.10.11 55

Übersicht● Einführung

● Kontext der Arbeit● Grundlagen● Ziele

● Entwurf des UART● Implementation

● VHDL-Komponenten● Codegenerierung

● Evaluation● UART● Codegenerierung

● Fazit

Page 6: Beispielhafte Entwicklung einer Hardware-Produktlinie ... · Beispielhafte Entwicklung einer Hardwareproduktlinie – 26.10.11 3 Einführung Kontext Hardwareebene des LavA-Projekts

Beispielhafte Entwicklung einer Hardwareproduktlinie – 26.10.11 66

Entwurf des UART● Domänenanalyse

● Ziel: Abstecken eines sinnvollen Funktionsumfangs● Betrachtung verschiedener UART-Lösungen

- Open Source VHDL-UARTs

- UARTs gängiger Mikrocontroller

Page 7: Beispielhafte Entwicklung einer Hardware-Produktlinie ... · Beispielhafte Entwicklung einer Hardwareproduktlinie – 26.10.11 3 Einführung Kontext Hardwareebene des LavA-Projekts

Beispielhafte Entwicklung einer Hardwareproduktlinie – 26.10.11 77

Entwurf des UART● Kommunikationsbezogene Merkmale

● Kommunikationsparameter:● Paritätsbit: keines/gerade/ungerade● Stoppbits: 1/1,5/2● Framegröße: 5 bis 9● Handshaking

Page 8: Beispielhafte Entwicklung einer Hardware-Produktlinie ... · Beispielhafte Entwicklung einer Hardwareproduktlinie – 26.10.11 3 Einführung Kontext Hardwareebene des LavA-Projekts

Beispielhafte Entwicklung einer Hardwareproduktlinie – 26.10.11 88

Entwurf des UART● Interruptbezogene Merkmale

● 6 Interrupts● Daten empfangen● Senden beendet● Framefehler● Paritätsfehler● Überlauf (RX/TX)

● Zusätzliche Features● Priorisierung von Interrupts● Pufferung● Konfiguration zur Laufzeit

Page 9: Beispielhafte Entwicklung einer Hardware-Produktlinie ... · Beispielhafte Entwicklung einer Hardwareproduktlinie – 26.10.11 3 Einführung Kontext Hardwareebene des LavA-Projekts

Beispielhafte Entwicklung einer Hardwareproduktlinie – 26.10.11 99

Entwurf des UART● Umsetzung der Konfigurationspunkte

● Aufteilung nach Modellierungs- und Laufzeit● Kriterium: Ressourcenverbrauch

Bereich/Zeitpunkt Modellierung Laufzeit

Struktur Vorhandensein von: - RX/TX - FIFO-SpeicherFIFO-Größe

RX-FIFO Trigger-Level

Kommunikation Paritätskomponenten ParitätsmodusParitätsbit aktivierenFramegrößeAnzahl StoppbitsBaudrateFlusskontrolle

Interrupts Vorhandensein vonInterrupt-Komponenten(Register und Logik)

Aktivierung der Interrupts

Page 10: Beispielhafte Entwicklung einer Hardware-Produktlinie ... · Beispielhafte Entwicklung einer Hardwareproduktlinie – 26.10.11 3 Einführung Kontext Hardwareebene des LavA-Projekts

Beispielhafte Entwicklung einer Hardwareproduktlinie – 26.10.11 1010

Übersicht● Einführung

● Kontext der Arbeit● Grundlagen● Ziele

● Entwurf des UART● Implementation

● VHDL-Komponenten● Codegenerierung

● Evaluation● UART● Codegenerierung

● Fazit

Page 11: Beispielhafte Entwicklung einer Hardware-Produktlinie ... · Beispielhafte Entwicklung einer Hardwareproduktlinie – 26.10.11 3 Einführung Kontext Hardwareebene des LavA-Projekts

Beispielhafte Entwicklung einer Hardwareproduktlinie – 26.10.11 1111

Implementation des UART

● Blockdiagramm des UART:● grüne Komponenten

optional● Control, RX und TX

als Hauptmodule

Page 12: Beispielhafte Entwicklung einer Hardware-Produktlinie ... · Beispielhafte Entwicklung einer Hardwareproduktlinie – 26.10.11 3 Einführung Kontext Hardwareebene des LavA-Projekts

Beispielhafte Entwicklung einer Hardwareproduktlinie – 26.10.11 1212

Implementation des UART

● RX- und TX-Einheiten● Zustandsmaschinen mit

Bitpositionen als Zustandsmenge

● relativ analog aufgebaut

● Datenpufferung● Ohne FIFO nur je ein Datenwort im Schieberegister● Mit FIFO zwischen 1 und 64, je nach Konfiguration

● Steuereinheit● Taktteiler für RX und TX● Interrupt- und Formatkonfiguration● erzeugt Interrupts in Abhängigkeit von RX/TX-Status

Page 13: Beispielhafte Entwicklung einer Hardware-Produktlinie ... · Beispielhafte Entwicklung einer Hardwareproduktlinie – 26.10.11 3 Einführung Kontext Hardwareebene des LavA-Projekts

Beispielhafte Entwicklung einer Hardwareproduktlinie – 26.10.11 1313

Übersicht● Einführung

● Kontext der Arbeit● Grundlagen● Ziele

● Entwurf des UART● Implementation

● VHDL-Komponenten● Codegenerierung

● Evaluation● UART● Codegenerierung

● Fazit

Page 14: Beispielhafte Entwicklung einer Hardware-Produktlinie ... · Beispielhafte Entwicklung einer Hardwareproduktlinie – 26.10.11 3 Einführung Kontext Hardwareebene des LavA-Projekts

Beispielhafte Entwicklung einer Hardwareproduktlinie – 26.10.11 1414

Codegenerierung● Arbeitsschritte des Workflows

● Erstellen eines konkreten UART-Modells● Validierung des Modells● Parser mit Xpand-Templates und Modell instanziieren

MetamodellKonkretes Modell

Xpand-Templates (VHDL)

Hardware

EMF/MWE + Xpand

EMF

MWE

Page 15: Beispielhafte Entwicklung einer Hardware-Produktlinie ... · Beispielhafte Entwicklung einer Hardwareproduktlinie – 26.10.11 3 Einführung Kontext Hardwareebene des LavA-Projekts

Beispielhafte Entwicklung einer Hardwareproduktlinie – 26.10.11 1515

Codegenerierung

● UART-Metamodell

● Erlaubt Konfiguration von:- Interrupts

- Paritäten

- RX/TX

- FIFOs

● Grundlage für konkrete Modelle● Deckt einige Fehlerfälle ab (Kompositionsstruktur)● restliche Validierung über Modellconstraints (oAW Check)

Page 16: Beispielhafte Entwicklung einer Hardware-Produktlinie ... · Beispielhafte Entwicklung einer Hardwareproduktlinie – 26.10.11 3 Einführung Kontext Hardwareebene des LavA-Projekts

Beispielhafte Entwicklung einer Hardwareproduktlinie – 26.10.11 1616

Codegenerierung● Xpand-Templates

● in Steueranweisungen gekapselte VHDL-Codesegmente● für jedes variable, komplexe Modul des UART ein Template● statische Komponenten in einem Template zusammengefasst

Page 17: Beispielhafte Entwicklung einer Hardware-Produktlinie ... · Beispielhafte Entwicklung einer Hardwareproduktlinie – 26.10.11 3 Einführung Kontext Hardwareebene des LavA-Projekts

Beispielhafte Entwicklung einer Hardwareproduktlinie – 26.10.11 1717

Übersicht● Einführung

● Kontext der Arbeit● Grundlagen● Ziele

● Entwurf des UART● Implementation

● VHDL-Komponenten● Codegenerierung

● Evaluation● UART● Codegenerierung

● Fazit

Page 18: Beispielhafte Entwicklung einer Hardware-Produktlinie ... · Beispielhafte Entwicklung einer Hardwareproduktlinie – 26.10.11 3 Einführung Kontext Hardwareebene des LavA-Projekts

Beispielhafte Entwicklung einer Hardwareproduktlinie – 26.10.11 1818

Evaluation des UART● Ressourcenausnutzung

● Testvarianten- nur TX, kein FIFO (Minimalkonfiguration)

- RX/TX mit 16 Slot FIFOs + Interrupts

- RX/TX mit 64 Slot FIFOs + Interrupts + Paritäten

Page 19: Beispielhafte Entwicklung einer Hardware-Produktlinie ... · Beispielhafte Entwicklung einer Hardwareproduktlinie – 26.10.11 3 Einführung Kontext Hardwareebene des LavA-Projekts

Beispielhafte Entwicklung einer Hardwareproduktlinie – 26.10.11 1919

Evaluation des UART

● Detailbetrachtung LUTs

● FIFOs nehmen einen Großteil der Ressourcen ein● Paritäten sind fast „umsonst“● restliche Module skalieren mit Funktionsumfang

ControlRX TopRX FIFOTX TopTX FIFOParity

Variante 1 Variante 3Variante 2

99

34

83

24

82

91

24102

39

29036

290

5

Page 20: Beispielhafte Entwicklung einer Hardware-Produktlinie ... · Beispielhafte Entwicklung einer Hardwareproduktlinie – 26.10.11 3 Einführung Kontext Hardwareebene des LavA-Projekts

Beispielhafte Entwicklung einer Hardwareproduktlinie – 26.10.11 2020

Evaluation der Codegenerierung● Kritikpunkte von XVCL

● Lesbarkeit der x-frames● große Zahl lokaler Variablen● schwache Typisierung von Variablen (XML)● mangelnde Ausdrucksstärke

● Charakteristika von Xpand● grundsätzliche Lesbarkeit nicht wesentlich besser● aber: näher am Modell, dadurch weniger Variablen● Variablen sind streng typisiert (Java)● hohe Ausdrucksstärke durch Extensions und Expressions

Page 21: Beispielhafte Entwicklung einer Hardware-Produktlinie ... · Beispielhafte Entwicklung einer Hardwareproduktlinie – 26.10.11 3 Einführung Kontext Hardwareebene des LavA-Projekts

Beispielhafte Entwicklung einer Hardwareproduktlinie – 26.10.11 2121

Übersicht● Einführung

● Kontext der Arbeit● Grundlagen

● Entwurf des UART● Implementation

● VHDL-Komponenten● Codegenerierung

● Evaluation● UART● Codegenerierung

● Fazit

Page 22: Beispielhafte Entwicklung einer Hardware-Produktlinie ... · Beispielhafte Entwicklung einer Hardwareproduktlinie – 26.10.11 3 Einführung Kontext Hardwareebene des LavA-Projekts

Beispielhafte Entwicklung einer Hardwareproduktlinie – 26.10.11 2222

Fazit● Entwicklung einer konfigurierbaren UART-Familie

● Modulare VHDL-Komponenten● Konfiguration zur Laufzeit

● Ressourcenverbrauch ● skaliert gut mit Funktionsumfang● allerdings großteils über FIFO-Speicher

● Codegenerierung ohne XVCL● einheitlicherer, kompakterer Workflow ● Xpand insgesamt komfortabler als XVCL● Werkzeuge greifen nahtlos eineinander

Page 23: Beispielhafte Entwicklung einer Hardware-Produktlinie ... · Beispielhafte Entwicklung einer Hardwareproduktlinie – 26.10.11 3 Einführung Kontext Hardwareebene des LavA-Projekts

Beispielhafte Entwicklung einer Hardwareproduktlinie – 26.10.11 2323

Vielen Dank für die Aufmerksamkeit!

Gibt es noch Fragen?