Umsetzung

Vorarbeit

Intel ermöglicht es, fertige Example-Designs herunterzuladen bzw. mittels Platform Designer aus den IP-Cores Beispielsysteme zu erstellen. Dabei mussten allerdings Portierungen auf das Arria10-SoC-Board durchgeführt werden, da die Designs nur für das PCIe-Board Arria10-GX vorliegen. Zu diesem Zeitpunkt waren keine vollständigen Pin-Assignment-Files erhältlich, diese mussten also sorgfältig aus dem Schaltplan erstellt werden.

Die erzeugten Example-Designs mussten zunächst unter Kontrolle gebracht werden, indem Verständnis für das Zusammenspiel verschiedener Platform-Designer-Komponenten, Software und Buildskripte aufgebaut wurde. Danach konnte zunächst ein funktionierendes Design erzeugt und getestet werden, das ein Testbild an einen Monitor sendet. Kurz darauf entstand ein Design, das ein Eingangssignal von einem PC an einen Monitor weitergibt.

Ordnerstruktur Example-Design
Ausschnitt: Platform-Designer

 

Ausschnitt: Top-Level-Entity

Der nächste Schritt war es dann, Designs zu erzeugen, die das Videosignal zu Avalon-ST umwandeln, und Videoverarbeitungs-IP verwenden, um das Signal zu bearbeiten. Für das eigentlich gewünschte Ziel wäre es zusätzlich nötig gewesen, die Sendeauflösung dynamisch zu ändern sowie das Signal auf mehrere DisplayPort-Ausgänge aufzuteilen. Das wurde in der Projektzeit leider nicht mehr erreicht.

Um den Ablauf und die Funktionalität der Videoverarbeitung besser zu verstehen und einfach testen zu können, wurde ein Videoverarbeitungs-Core erstellt, der ein Farbbild in ein Graustufenbild umwandelt. Für viele der Videoverarbeitungs-IP-Cores ist es zusätzlich notwendig, auf ganzen Videoframes zu arbeiten, wofür ein Speicher als Framebuffer benötigt wird. Die Einbindung des Onboard-DDR4-Speichers wurde kurz untersucht, aber aus Zeitmangel nicht mehr verfolgt.

Empfangspfad

VideoSig RX-Pfad

Die Abbildung des VideoSig RX-Pfades zeigt die verschiedenen Videoformate, die im RX-Pfad der Videoverarbeitung benötigt werden. DisplayPort ist eine Paket-basierte, 8b/10b-kodierte differentielle Übertragung, die vier verschiedene Datenraten zwischen den Teilnehmern aushandeln kann. Der DisplayPort-RX-Core instantiiert die Highspeed-Transceiver des FPGAs, um die Daten verarbeiten zu können und wandelt diese in das als “Image Port” bezeichnete Format um, bei dem die Daten mit Informationen zu Frame- bzw. Zeilenbeginn und -ende übertragen werden.

Dieses Format kann dann mit dem Bitec Clock-Recovery-Core verarbeitet werden. Dieser IP-Core erzeugt mit einer PLL aus dem Videosignal und dazugehörigen Metainformationen den exakten Pixeltakt des Videosignals (z.B. 154 MHz bei 1920×1200 und 60 FPS). Das Ausgabeformat des Clock-Recovery-Cores wird als “Clocked Video” bezeichnet und versieht die Daten mit HSync-/VSync-Signalen.

Das Clocked-Video-Format kann nun von einem Intel-IP-Core, dem Clocked Video Input, in ein paketbasiertes Avalon-Streaming-Format übersetzt werden, das sich zur Videoverarbeitung im FPGA eignet. Alle von Intel angebotenen Videoverarbeitungs-IPs arbeiten mit dem Avalon-ST-Video-Format.

Sendepfad

VideoSig TX-Pfad

Der Videosig TX-Pfad beginnt am Clocked Video Output-IP-Core. Dieser wandelt das Avalon-Streaming-Format zurück in das Clocked-Video-Format, das vom DisplayPort-TX-Core angenommen wird. Der Takt, mit dem die Videodaten an den DisplayPort-TX-Core gesendet werden, muss dabei der exakte Pixeltakt des zu sendenden Signales sein. Das Signal wird wieder in DisplayPort-Pakete verpackt und mit den seriellen Transceivern an die Daughtercard gesendet.

< Inbetriebnahme | Probleme >