FPGA: Datenschnittstelle
Der Austausch von Datenströmen zwischen den Hardwarebausteinen erfolgt im Nutzer- bzw. FMC-Konnektor-FPGA auf Basis von standardisierten 16 Bit Xilinx AXI4 Stream Interfaces. Für jede Datenrichtung ist jeweils eine Schnittstelle implementiert, sodass ein paralleler Sende- und Empfangsvorgang möglich ist.

AXI4 Stream Interface
Ein AXI4 Stream Interface besteht dabei aus 4 Ports, d.h. Takt-, Verfügbarkeits-, Daten- und Bestätigungsleitung. Jede Datenquelle muss die Verfügbarkeit eines neuen Datenwortes durch das Setzen des Verfügbarbeits-(Valid-)Signals anzeigen. Detektiert die Datensenke dieses gesetzte Signal, übernimmt sie den Wert des Datenvektors (Data) mit der (in der Regel) positiven Flanke des ebenfalls von der Quelle bereitsgestellten Taktsignals. Die Senke bestätigt die beabsichtigte Übernahme des Datenwertes durch einmaliges Setzen des Ready-Signals.
Der Wert des Übergabetaktes hängt dabei von der Funktion des FMC Moduls und der im Nutzer-FPGA umgesetzten Verarbeitungsalgorithmen ab. Ein definierter Wert ist dabei nicht vorgegeben. Für die Übergabe eingehender Daten von den PC-Interfaces zum Nutzer-FPGA ist im Deltaboard ein Takt von 200 MHz implementiert, um die maximal mögliche Datenrate von USB 3.0 abbilden zu können. Aufgrund der ggf. unterschiedlichen Takte für Datenkommunikation und interner Signalverarbeitung bietet sich die Verwendung von FIFOs zur Pufferung der Daten und Trennung der Taktsysteme an.
Im Downloadbereich haben wir sowohl für das Nutzer-FPGA als auch für FMC-Konnektor-FPGA einige Templates und Beispiele für die Nutzung der Datenschnittstelle bereitgestellt.