FpgaTage Universelle Anbindung von FPGAs an … · FPGA Manager Universelle Anbindung von FPGAs an...

33
FPGA Manager Universelle Anbindung von FPGAs an Hochsprachen Streaming, made simple.

Transcript of FpgaTage Universelle Anbindung von FPGAs an … · FPGA Manager Universelle Anbindung von FPGAs an...

Page 1: FpgaTage Universelle Anbindung von FPGAs an … · FPGA Manager Universelle Anbindung von FPGAs an Hochsprachen Streaming, made simple.

FPGA Manager

Universelle Anbindung von FPGAs an Hochsprachen

Streaming,

made simple.

Page 2: FpgaTage Universelle Anbindung von FPGAs an … · FPGA Manager Universelle Anbindung von FPGAs an Hochsprachen Streaming, made simple.

Enclustra GmbH

Agenda

� Enclustra Firmenprofil

� Gründe für eine Anbindung des FPGAs an eine Hochsprache

� Anwendungsfälle

� Arten der Anbindungen

� Anforderungen an eine Anbindung des FPGAs

� Herausforderungen bei den Anbindung des FPGAs

� Warum eine Standard Lösung für die Anbindung von FPGAs

� FPGA Manager Überblick

� FPGA Manager Lösungen

� FPGA Manager Software API

12.08.2015- 2 -

Page 3: FpgaTage Universelle Anbindung von FPGAs an … · FPGA Manager Universelle Anbindung von FPGAs an Hochsprachen Streaming, made simple.

Enclustra GmbH

Enclustra FirmenprofilFPGA Design Center

� FPGA System Design

� Hardware (High-Speed, Analog, RF)

� HDL Firmware (VHDL, Verilog)

� Embedded Software (FPGA bezogen)

� Schwerpunkte

� Embedded Processing

� Test & Measurement

� Software-defined Radio

� Smart Vision systems

� Motion & Drive control

- 3 -July 23, 2014

Page 4: FpgaTage Universelle Anbindung von FPGAs an … · FPGA Manager Universelle Anbindung von FPGAs an Hochsprachen Streaming, made simple.

Enclustra GmbH

Enclustra FirmenprofilFPGA Solution Center

� FPGA und SoC Module

� Mars Familie (MX1, AX3, ZX3, …)

� SO-DIMM 67.6 x 30 mm,

� Mercury Familie (KX1, CA1, ZX1, SA1, …)

� 56 x 54 bis 72 x 54 mm,

� IP Cores und Lösungen

� Display Controller IP Core

� Profinet IP Core

� Universal Drive Controller IP Core

� UDP/IP Ethernet IP Core

� FPGA Manager Lösung

- 4 -July 23, 2014

Page 5: FpgaTage Universelle Anbindung von FPGAs an … · FPGA Manager Universelle Anbindung von FPGAs an Hochsprachen Streaming, made simple.

Enclustra GmbH 12.08.2015- 5 -

Gründe für eine Anbindung des FPGAs an eine Hochsprache

� Datenvorverarbeitung ist im FPGA, Daten Aufbereitung wird in Software gemacht

� Konfiguration des FPGA durch den Benutzer

� Benutzerinterface ist normalerweise in Software

� GUIs in Hochsprachen wie C#/.NET, C++, Java etc

� Embedded Anwendungen oft in C

� Benutzerinterface läuft normalerweise auf einem PC

� Hardwarebeschleunigte Software

� Räumlich abgesetzte Systeme

Page 6: FpgaTage Universelle Anbindung von FPGAs an … · FPGA Manager Universelle Anbindung von FPGAs an Hochsprachen Streaming, made simple.

Enclustra GmbH 12.08.2015- 6 -

Warum eine Anbindung des FPGAs an eine Hochsprache?

� Anwendungsfall 1: Kamera mit Kanten-Detektion

� Datenvorverarbeitung im FPGA wegen hoher Auflösung und Bildwiederholfrequenz

� Darstellung des Bilds auf einem PC

� Datenstrom vom FPGA zum PC

� GUI in C#

� PC ist abgesetzt vom FPGA

Page 7: FpgaTage Universelle Anbindung von FPGAs an … · FPGA Manager Universelle Anbindung von FPGAs an Hochsprachen Streaming, made simple.

Enclustra GmbH 12.08.2015- 7 -

Warum eine Anbindung des FPGAs an eine Hochsprache?

� Anwendungsfall 2: Konfiguration und Statusüberwachung für eine Motorensteuerung

� Motorensteuerung im FPGA für hohe Regelrate

� Konfiguration der Bewegungsvektoren vom PC

� Registerzugriffe vom PC zum FPGA

� Statusüberwachung des Fortschritts am PC

� Registerzugriffe vom PC zum FPGA

� Alarmmeldung der Steuerung an den Benutzer

� Events senden vom FPGA zum PC

� Applikation in C++

� PC ist abgesetzt vom FPGA

Page 8: FpgaTage Universelle Anbindung von FPGAs an … · FPGA Manager Universelle Anbindung von FPGAs an Hochsprachen Streaming, made simple.

Enclustra GmbH 12.08.2015- 8 -

Warum eine Anbindung des FPGAs an eine Hochsprache?

� Anwendungsfall 3: Hardwarebeschleunigte Software

� Verschlüsselung von Netzwerkverkehr in Echtzeit

� Verschlüsselung des Datenverkehrs durch das FPGA

� Datenstrom vom PC zum FPGA

� Versenden des verschlüsselten Datenverkehrsdurch den PC

� Datenstrom vom FPGA zum PC

� Schlanke Applikation in C, Asynchrone Transfer

� PC und FPGA sind ein System

FPGA

Host

InterfaceEncryptionStream Stream

Host

Interface

Encryption

Application

Stream

PC

Stream

Ethernet

Page 9: FpgaTage Universelle Anbindung von FPGAs an … · FPGA Manager Universelle Anbindung von FPGAs an Hochsprachen Streaming, made simple.

Enclustra GmbH 12.08.2015- 9 -

Warum eine Anbindung des FPGAs an eine Hochsprache?

� Drei Anbindungsarten

� Datenstrom zwischen FPGA und PC

� Typischerweise Daten zur Aufbereitung (FPGA zum PC) bzw. zur Verarbeitung (PC zum FPGA)

� Data Stream

� Registerzugriffe auf das FPGA durch den PC

� Typischerweise Konfiguration oder Status pollen

� Memory Mapped

� Events signalisieren durch das FPGA an den PC

� Typischerweise Interrupts (Completion, Errors, etc.)

� Signaling

Page 10: FpgaTage Universelle Anbindung von FPGAs an … · FPGA Manager Universelle Anbindung von FPGAs an Hochsprachen Streaming, made simple.

Enclustra GmbH 12.08.2015- 10 -

Anforderungen an eine Anbindung des FPGAs (1)

� Alle drei Arten von Verbindungen zwischen FPGA und PC unterstützen

� Data Streams

� Frame Streams, Byte Streams

� Metadaten an Datenströme anhängen (z.B. Zeitstempel)

� Memory Mapped

� Read, Write, Read-Modify-Write

� Single Access, Burst

� Signaling

� Interrupts

� Edge, Level

� Prioritäten

Page 11: FpgaTage Universelle Anbindung von FPGAs an … · FPGA Manager Universelle Anbindung von FPGAs an Hochsprachen Streaming, made simple.

Enclustra GmbH 12.08.2015- 11 -

Anforderungen an eine Anbindung des FPGAs (2)

� Vielfältigkeit

� Mehrere Links und Bandbreiten

� PCIe Gen1/2/…, USB 2.0/3.0/…, ETH100/1000Mbps/…

� Mehrere FPGA Hersteller, Prozessorarchitekturen und FPGA Boards

� Altera, Xilinx, ... & X86, ARM, ...

� Mehrere Programmiersprachen

� C#/.NET, C/C++, Matlab, Java etc.

� Einheitlichkeit

� Gleiches API für alle Links, FPGAs und Boards

� Gleiches API für verschiedene Betriebssysteme

� «Gleiches» API für verschiedene Programmiersprachen (Funktional gleich und soweit wie möglich syntaktisch)

� Gleiche Anbindung im FPGA für alle Links, FPGAs und Boards

� Standards verwenden für die FPGA Anbindung

Page 12: FpgaTage Universelle Anbindung von FPGAs an … · FPGA Manager Universelle Anbindung von FPGAs an Hochsprachen Streaming, made simple.

Enclustra GmbH 12.08.2015- 12 -

Anforderungen an eine Anbindung des FPGAs (3)

� Multiplexing

� Mehrere Verbindungskanäle über einen physikalischen Link

� z.B. 3 Data Stream-Kanäle, 2 Memory Mapped-Kanäle, 2 Signalisierungs-Kanäle über USB 3.0

� Gleichzeitiger Zugriff mehrerer Applikationen auf verschiedene Verbindungskanäle

� Performance

� Bandbreite (MB/s)

� Latenz (s)

� CPU Last (%)

� Flusskontrolle

� Error Handling

� Recovery von Non-Fatal-Errors

� Fatal-Error Handling

Page 13: FpgaTage Universelle Anbindung von FPGAs an … · FPGA Manager Universelle Anbindung von FPGAs an Hochsprachen Streaming, made simple.

Enclustra GmbH 12.08.2015- 13 -

Anforderungen an eine Anbindung des FPGAs (4)

� Blocking und Nonblocking

� Unterstützung von synchronen und asynchronen Transfers

� Enumeration

� Finden der Devices

� Die Anbindung des FPGAs soll für den Benutzer simpel sein!!!

� Benutzer soll sich auf seine eigentliche Aufgabe konzentrieren können, die Anbindung ist meist nur Mittel zum Zweck.

Page 14: FpgaTage Universelle Anbindung von FPGAs an … · FPGA Manager Universelle Anbindung von FPGAs an Hochsprachen Streaming, made simple.

Enclustra GmbH 12.08.2015- 14 -

Herausforderungen bei der Anbindung des FPGAs (1)

� Vielfältigkeit vs. Einheitlichkeit

� Einheitliche Schnittstellen über alle Dimensionen (Links, FPGA Hersteller, Prozessorarchitekturen, Programmiersprachen)

� Performance vs. Ressourcen

� Um maximale Performance zu erreichen, ist der Ressourcenbedarf normalerweise entsprechend höher

� Einfachheit vs. Flexibilität

� Wie einfach sollen das API und die Anbindung gestaltet werden, um trotzdem maximale Flexibilität zu erhalten?

Page 15: FpgaTage Universelle Anbindung von FPGAs an … · FPGA Manager Universelle Anbindung von FPGAs an Hochsprachen Streaming, made simple.

Enclustra GmbH 12.08.2015- 15 -

Herausforderungen bei der Anbindung des FPGAs (2)

� Einfachheit vs. Komplexität

� Wie komplex soll das Error Handling/die Protokolle sein um maximale Stabilität bei minimaler Komplexität zu erreichen?

� Bandbreite vs. Latenz vs. Durchsatz

� Für eine hohe Bandbreite sind grosse Datenpackete optimal, für eine tiefe Latenzmöglichst kleine und für hohen Durchsatz sollten möglichst viele Operationen in einem Packet untergebracht werden.

� Kompatibilität zwischen Software und Firmware

� Gleiche Version, Generation

� Rückwärtskompatibilität

Page 16: FpgaTage Universelle Anbindung von FPGAs an … · FPGA Manager Universelle Anbindung von FPGAs an Hochsprachen Streaming, made simple.

Enclustra GmbH 12.08.2015- 16 -

Herausforderungen bei der Anbindung des FPGAs (3)

� Modularität/Wartbarkeit vs. Optimierung

� Wie fest soll optimiert werden, um dennoch nicht an Wartbarkeit und Modularität einzubüssen?

� Safety und Security

� Authentifizierung, Verschlüsselung der Daten nötig?

� Gegenseitiges beeinflussen der verschiedenen Datenströme

Page 17: FpgaTage Universelle Anbindung von FPGAs an … · FPGA Manager Universelle Anbindung von FPGAs an Hochsprachen Streaming, made simple.

Enclustra GmbH 12.08.2015- 17 -

Herausforderungen bei der Anbindung des FPGAs (4)

� Enumeration

� Wie weiss ich welches mein Gerät ist?

� Alle diese Paradigmen unter einen Hut bringen!

Page 18: FpgaTage Universelle Anbindung von FPGAs an … · FPGA Manager Universelle Anbindung von FPGAs an Hochsprachen Streaming, made simple.

Enclustra GmbH 12.08.2015- 18 -

Warum eine Standardlösung für die Anbindung von FPGAs

� All diese Herausforderungen - und das Einzige was wir wollen ist: Mit einem FPGA zu kommunizieren

� Man startet „normalerweise“ von irgend einem „Referenz Design“ und „verbrät“ am Ende 50% des Projekt Budgets (Geld, Zeit) und erhält dagegen 90% der Projekt Frustration und Stress …

� Wiederholende Arbeit: Für jeden Link wieder von Neuem

� Kommunikation oft nur Mittel zum Zweck

Page 19: FpgaTage Universelle Anbindung von FPGAs an … · FPGA Manager Universelle Anbindung von FPGAs an Hochsprachen Streaming, made simple.

Enclustra GmbH 12.08.2015- 19 -

FPGA Manager ÜberblickWas ist FPGA Manager?

� Eine Firmware-Software Co-Lösung

� FPGA Manager Firmware IP Lösung

� Anbindung an Benutzer Logic

� FPGA Manager Software Bibliothek

� API an Benutzer Application

Page 20: FpgaTage Universelle Anbindung von FPGAs an … · FPGA Manager Universelle Anbindung von FPGAs an Hochsprachen Streaming, made simple.

Enclustra GmbH 12.08.2015- 20 -

FPGA Manager Überblick (1)

� Deckt alle der wichtigsten Anforderungen an eine FPGA Anbindung an eine Hochsprache ab.

� Unterstützt alle drei Verbindungsarten (Data Stream, Memory Mapped und Signaling)

� Unterstützt verschiedene Links (USB, Ethernet, PCIe, ...)

� Unterstützt verschiedene Betriebssysteme (Windows, Linux)

� Unterstützt verschiedene Hochsprachen (C#/.NET, C/C++, Matlab, ...)

� Unterstützt verschiedene Prozessorarchitekturen (x86, ARM, ...)

� Einheitliches Software API über alle Links, Betriebsysteme und Hochsprachen

� Einheitliche Firmware Anbindung über alle Links (AXI und AXIS)

� Multiplexing mehrerer Verbindungskanäle über einen physikalischen Link

� Maximale Performance bei minimalem Ressourcenverbrauch

� Simpel aber dennoch mächtig!

Page 21: FpgaTage Universelle Anbindung von FPGAs an … · FPGA Manager Universelle Anbindung von FPGAs an Hochsprachen Streaming, made simple.

Enclustra GmbH 12.08.2015- 21 -

FPGA Manager Überblick (2)

� Verschiedene Links erfordern verschiedene zusätzliche Chips/Treiber/Bibliotheken

� FPGA Manager, aktuelle Implementationen:

� USB 2.0/3.0

� Gigabit Ethernet

� PCIe

� Software

Page 22: FpgaTage Universelle Anbindung von FPGAs an … · FPGA Manager Universelle Anbindung von FPGAs an Hochsprachen Streaming, made simple.

Enclustra GmbH 12.08.2015- 22 -

FPGA Manager Überblick (3)

� USB Lösungen

� Benötigen einen zusätzlichen USB Chip (Cypress FX3 oder FTDI 2232H)

� Spezifische Anbindung im FPGA an USB Chip

� Spezifische Anbindung in Software an Bibliotheken und Treiber

� Firmware auf den USB Chips

Page 23: FpgaTage Universelle Anbindung von FPGAs an … · FPGA Manager Universelle Anbindung von FPGAs an Hochsprachen Streaming, made simple.

Enclustra GmbH 12.08.2015- 23 -

FPGA Manager Überblick (4)

� Ethernet Lösung

� Benötigt einen PHY

� Spezifische Anbindung im FPGA an MII/GMII/RGMII

� Setzt auf Socket Schnittstelle auf

� UDP als Trägerprotokoll

Page 24: FpgaTage Universelle Anbindung von FPGAs an … · FPGA Manager Universelle Anbindung von FPGAs an Hochsprachen Streaming, made simple.

Enclustra GmbH 12.08.2015- 24 -

FPGA Manager Überblick (5)

� PCIe Lösung

� Benötigt einen FPGA mit PCIe Endpoint und Multi-Gigabit-Transceiver (MGTs)

� Spezifische Anbindung im FPGA an den PCIe Endpoint

� Spezifischer Treiber für Firmware

� Spezifische Anbindung in Software an Treiber

Page 25: FpgaTage Universelle Anbindung von FPGAs an … · FPGA Manager Universelle Anbindung von FPGAs an Hochsprachen Streaming, made simple.

Enclustra GmbH 12.08.2015- 25 -

FPGA Manager Überblick (6)

� Software Lösung

� Host und Target laufen auf einem PC (oder SoC)

� Target repräsentiert ein Model des FPGA (Registerset, Dummy Data Source und Sink) oder eine echte Benutzer Application

� Für Software Entwicklung bevor die FPGA Firmware bereit ist oder ein „Golden Model“

Page 26: FpgaTage Universelle Anbindung von FPGAs an … · FPGA Manager Universelle Anbindung von FPGAs an Hochsprachen Streaming, made simple.

Enclustra GmbH 12.08.2015- 26 -

FPGA Manager Details

� Jeder Datenverkehr wird als Stream behandelt

� Data Streams, Memory Mapped und Signaling laufen über Streams

� Eigene Protokolle

� Keine Abhängigkeit von den unterliegenden Protokollen

� Frame basiert

� Nur intern verwendet, vor Benutzer verborgen

� UNISCP Protokoll

� Ist für das Data Streaming und Signaling Handling zuständig

� Erlaubt Multiplexing, Fehler Detektierung, Throttling, etc.

� UNIMM Protokoll

� Ist für das Memory Mapped Handling zuständig

� Ist eingekapselt in UNISCP

Page 27: FpgaTage Universelle Anbindung von FPGAs an … · FPGA Manager Universelle Anbindung von FPGAs an Hochsprachen Streaming, made simple.

Enclustra GmbH 12.08.2015- 27 -

FPGA Manager Details

� FPGA Firmware ist in mehrere Sub-Cores aufgeteilt

� Link IP Core (UDP/IP/ETH, USB 2.0/3.0, PCIe)

� UNISCP IP Core => AXI Stream Upstream/Downstream, Signal Inputs

� UNIMM IP Core => AXI Memory Mapped

� IP Cores als VHDL, Xilinx Vivado IP und Altera QSYS IP verfügbar

� VHDL Flow vs. Block Design Flow

Page 28: FpgaTage Universelle Anbindung von FPGAs an … · FPGA Manager Universelle Anbindung von FPGAs an Hochsprachen Streaming, made simple.

Enclustra GmbH 12.08.2015- 28 -

FPGA Manager Details

� Software Bibliothek als DLL/Shared Lib

� MATLAB API

� C API

� C++ API

� C# API

� Core in C++

� OS unabhängig

� Link unabhängig

� Prozessorarchitektur unabhängig

� Speicher Allozierung in der BenutzerApplikation

Page 29: FpgaTage Universelle Anbindung von FPGAs an … · FPGA Manager Universelle Anbindung von FPGAs an Hochsprachen Streaming, made simple.

Enclustra GmbH 12.08.2015- 29 -

FPGA Manager Software APIC# – Streaming

void main()

{

//Create send and receive buffers

byte[] receiveArray = new byte[4];

byte[] sendArray = new byte[4] { 1, 2, 3, 4 };

//Open a device with one stream

CDevice myDevice = new CDevice("udp://192.168.33.12", 1);

//Create Stream 0, Frame based, Upstream Enabled, Downstream Enabled

CStream myStream = myDevice.CreateStream(0, true, true, true);

//Open

myDevice.Open();

myStream.Open();

//Blocking send

myStream.Send(ref sendArray, null);

//Blocking receive

myStream.Receive(ref receiveArray, null);

//Close (non-forcing)

myStream.Close(false);

myDevice.Close(false);

}

Page 30: FpgaTage Universelle Anbindung von FPGAs an … · FPGA Manager Universelle Anbindung von FPGAs an Hochsprachen Streaming, made simple.

Enclustra GmbH 12.08.2015- 30 -

FPGA Manager Software APIC# – Memory Mapped

void main()

{

//Create send and receive buffers

byte[] readArray = new byte[4];

byte[] writeArray = new byte[4] { 1, 2, 3, 4 };

//Open a device with one stream

CDevice myDevice = new CDevice("udp://192.168.33.12", 1);

//Create MmAccess on through Stream 0

CMmAccess myMmAccess = myDevice.CreateMmAccess(0);

//Open

myDevice.Open();

myMmAccess.Open();

//Blocking write, burst on, address increment on

myMmAccess.Write(ref writeArray, 0x12345670, true, false, null);

//Blocking read, burst off, address increment on

myMmAccess.Read(ref readArray, 0x12345670, false, false, null);

//Close (non-forcing)

myMmAccess.Close(false);

myDevice.Close(false);

}

Page 31: FpgaTage Universelle Anbindung von FPGAs an … · FPGA Manager Universelle Anbindung von FPGAs an Hochsprachen Streaming, made simple.

Enclustra GmbH 12.08.2015- 31 -

Zusamenfassung

� Anbindung von FPGAs an Hochsprachen ist ein typischer Anwendungsfall

� Anbindung ist oft nur Mittel zum Zweck

� Anbindung soll simpel sein

� Anbindung soll flexibel sein

� Eine Standard Lösung ist in den allermeisten Fällen günstiger als selber entwickeln

Page 32: FpgaTage Universelle Anbindung von FPGAs an … · FPGA Manager Universelle Anbindung von FPGAs an Hochsprachen Streaming, made simple.

Enclustra GmbH

Fragen?

- 32 -12 June 2013

Sven Meier

Enclustra GmbH

[email protected]

Tel. +41 43 343 39 43

Vierteljährlicher newsletter: [email protected]

Nächste Events:

� PLC2 Days 201516. – 18. Juni 2015Stuttgart

� Embedded World 201623. - 25. Februar 2016Messezentrum Nürnberg

Page 33: FpgaTage Universelle Anbindung von FPGAs an … · FPGA Manager Universelle Anbindung von FPGAs an Hochsprachen Streaming, made simple.

Enclustra GmbH

Referenz Design

12.08.2015- 33 -