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

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

Sep 18, 2018

Download

Documents

donguyet
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
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 -