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++