Obermüller, J. (2018). SoC FPGA Oszilloskop : Implementierung eines Oszilloskops auf einem FPGA mit eingebettetem Prozessor [Diploma Thesis, Technische Universität Wien]. reposiTUm. http://hdl.handle.net/20.500.12708/80024
In this thesis I describe the design and implementation of a digital storage oscilloscope on a SoC FPGA (a field-programmable gate array (FPGA) with hard processor core). The oscilloscope shows the possibilities and limits of the used SoC FPGA and provides trulycontinuous signal acquisition. A performance analysis of the SoC FPGA is conducted separately, with a focus on communication latency and memory bandwidth of the interface between processor core and FPGA fabric. The oscilloscope is implemented on a Cyclone V SoC FPGA using two external high-speed analog-to-digital converters (ADCs) with a resolution of 14-bit at a sampling rate of 150 megasamples per second (MS/s). The implementation consists of an IP core for the FPGA fabric and a Qt-based Linux user space application that runs on the processor core. The IP core implements most of the data path from signal acquisition to storage, whereas the software application controls the IP core’s operation and implements a graphical user interface (GUI) similar to the user interface of a bench-top oscilloscope. Furthermore a function generator that can output configurable square, triangle and sine waves is implemented for testing and demonstration purposes. The performance analysis uses the same Cyclone V SoC as the oscilloscope implementation to measure bandwidth and latency of the FPGA-processor interfaces. Read and write bandwidth of all available FPGA-to-SDRAM interfaces are measured in order to identify the most suitable interface for high bandwidth transfers. Latency and jitter of roundtrip-transfers of FPGA stimuli to processor and back to FPGA are measured for different sizes of the exchanged data. A bare-metal setup is compared to a Linux-based solution, and responsiveness of polling versus usage of interrupts is examined for both setups. The SoC FPGA oscilloscope is shown to fulfill most of the given requirements, but some problems that make its operation quite unstable remain and are described in this thesis.
en
In dieser Arbeit wird die Entwicklung eines digitalen Speicheroszilloskops auf einem SoC FPGA (ein Field-Programmable Gate Array (FPGA) mit eingebettetem Prozessor) beschrieben. Dieses Oszilloskop soll die Grenzen und Möglichkeiten des verwendeten SoC FPGA zeigen und echt kontinuierliche Signalerfassung ermöglichen. Eine Performanceuntersuchung des SoC FPGA, mit Fokus auf Latenz und Speicherbandbreite der Schnittstelle zwischen Prozessorkern und FPGA, wird in einem separaten Teil der Arbeit durchgeführt. Das Oszilloskop ist auf einem Cyclone V SoC FPGA implementiert und nutzt 2 schnelle Analog-Digital-Wandler (ADCs) mit einer Auflösung von 14-Bit bei einer Abtastrate von 150 Megasamples pro Sekunde (MS/s). Die Implementierung besteht aus einem IP core der im FPGA-Teil des Chips läuft und einer Qt-basierten Linux User Space Anwendung die vom Prozessorkern ausgeführt wird. Der IP core implementiert den Datenpfad von der Signalerfassung bis zur Speicherung, wohingegen die Softwareapplikation den IP core steuert und eine grafische Oberfläche (GUI) ähnlich der Benutzerschnittstelle eines Bench-Top-Oszilloskops zur Verfügung stellt. Außerdem wird die Implementierung eines Funktionsgenerator gezeigt der konfigurierbare Rechteck-, Dreiecksund Sinussignale erzeugen kann. Die Performanceuntersuchungen werden ebenso wie die Implementierung des Oszilloskops auf einem Cyclone V SoC durchgeführt. Leseund Schreibdurchsatz aller FPGA-Prozessor Schnittstellen werden gemessen, um das Interface mit dem höchsten Durchsatz identifizieren zu können. Latenzmessungen für den Transfer von FPGA Stimuli zum Prozessorkern und zurück zum FPGA werden für unterschiedliche Größen der transferierten Datenpakete durchgeführt. Eine Bare-Metal Implementierung wird einer Linux-basierten Lösung gegenübergestellt und in beiden Fällen die Reaktionsfähigkeit von Polling mit der Verwendung von Interrupts verglichen. Es wird gezeigt dass das SoC FPGA Oszilloskop den Großteil der Anforderungen erfüllt, wobei die verbliebenen Probleme genauer beschrieben werden.