Video controller
For video walls, video streaming is typically handled by a video controller that buffers a video stream from standard interfaces such as HDMI or DisplayPort into a frame buffer and then transmits it via Ethernet to the video wall.
For such a video controller, we took on the system development at the SoC level, including FPGA design, Embedded Linux, Linux drivers, and a userspace application for control and diagnostics.
Additional suppliers provided the hardware and a library and a Qt-based embedded configuration tool. Our software uses the library and integrates with the configuration tool, enabling seamless integration and control of the video output.
Our services
System Architecture
- Conception of the integrated SoC overall solution (hardware, FPGA, Linux, userspace).
FPGA / VHDL Design
- Multi-channel AXI-Master DMA engine with load balancing and channel mapper.
- Optimized DDR memory controller (EMIF) for maximum memory data rates for simultaneous back-to-back writing and reading.
- DisplayPort video inputs/outputs with pixel barrel shifter (color depth compression), video splitter for video preview and video test pattern generator (TPG).
- 16-channel network routing with stream controllers, UDP encoders and Layer 4 packet filters.
Embedded Firmware & Softcore
- Instantiation of the NIOS II softcore processor and hardware interfacing.
- Adaptation of the Bitec DisplayPort firmware examples to customer-specific requirements.
Linux / Driver Development
- Linux BSP for the customer hardware.
- Kernel drivers for DMA management and AXI-Lite system configuration.
- Framebuffer drivers for X11 and the Linux console for GUI video output.
- Integration of 16 FPGA Ethernet channels into the Linux network subsystem.
- Video for Linux (V4L) drivers for direct feeding of the FPGA video preview.
- Porting of the original NIOS II firmware into a native Linux driver.
Software Development & Tools
- Creation of modular C++/Qt userspace applications for static system configuration and real-time runtime diagnostics.
Technologies
Hardware
- DDR4 memory via Intel EMIF
- DisplayPort IP core from Bitec
- SoM: Arria 10 SoM from Dreamchip
Software
- Embedded Linux
- Embedded Linux drivers
- Linux v4l and framebuffer
- Device Tree
- Linux kernel
- Linux drivers
- U-Boot bootloader
- AXI-Lite, AXI-DMA
Programming Languages
- C/C++
- VHDL
- TCL
- Python
Interfaces
- SPI, UART
- 1G Ethernet
- 10G Ethernet
- DisplayPort
- USB
- RGMII
Tools
Software Development
- KDevelop – C/C++ development environment for Linux drivers and Linux userspace programs
- Yocto – Building embedded Linux images
- NIOS II Embedded Design Suite – C/C++ development environment for the NIOS II softcore processor
FPGA Design
- Quartus (Intel/Altera) – FPGA synthesis
- TimeQuest (Intel/Altera) – FPGA timing analysis
- SignalTap Logic Analyzer – Real-time FPGA logic analysis
- GHDL – FPGA simulation
- ModelSim – FPGA simulation
Revision and Project Management
- Git – Source code version control
- GitLab – Project organization, ticketing, and version control
Documentation
- Doxygen – Source code documentation for VHDL and C/C++