Embien has been working on various types of embedded systems including those powered by Intel Cyclone/Arria/Stratix FPGA platforms for a variety of applications. Of late, there are a lot of requirements for GUI Application development on FPGAs for user interaction. In this blog, we introduce our Sparklet embedded GUI library along with our Flint FPGA UI Interface Editor for enabling Intel Cyclone, Arria, and Stratix FPGA families with rich graphics capabilities. Sparklet running on a Linux-powered Intel Cyclone V SX SoC FPGA is demonstrated with a Terasic DE1-SoC-MTL2 kit. These capabilities are part of Embien's product engineering services for embedded and FPGA-based products.
FPGA Design and Development: GUI Application Requirements
Modern FPGAs have a multitude of IPs to handle different peripheral interfaces. Most of these FPGAs, called SoC FPGAs, have an internal microcontroller core as a hard IP around which LEs are placed for configuration and customization. Intel Cyclone/Arria/Stratix FPGA devices are a prime example of this SoC architecture, combining a powerful hard processor system (HPS) with a highly configurable programmable logic fabric.
Such a design warrants a powerful user interface for communication with the user for a seamless experience. Full-fledged intuitive GUI application development ecosystem is the need of the hour to enable a faster time to market. FPGA Design and development teams need to dedicate their effort on FPGA logic rather than working on the nitty-gritty of GUI application development. Whether targeting Intel Cyclone, Arria, or Stratix FPGA families, the challenge of building an effective UI remains consistent.
Sparklet — embedded GUI library — is the right fit for such FPGA-based GUI development. Written purely in ANSI C, Sparklet can be ported across platforms with minimal effort. FPGA Design and development workflows benefit greatly from Sparklet's modular architecture, which lets developers focus on core logic while the library handles rendering.
Sparklet being a very modular and extensible design, it is also possible to take advantage of graphical acceleration engines within Sparklet to improve rendering speed and quality across Intel Cyclone/Arria/Stratix FPGA platforms.
Sparklet GUI on Intel Cyclone V FPGA
This demo of the Sparklet GUI library runs on an Intel Cyclone V SX SoC FPGA. Some of the salient features of the FPGA include:
- Dual-core ARM Cortex-A9 (HPS)
- 85K programmable logic elements
- 4,450 Kbits embedded memory
- Fractional PLLs
- Hard memory controllers
- Multiple display interfaces
- Multiple USB Host interfaces
- Ethernet, UARTs, ADCs, etc.
The development kit from Terasic, DE1-SoC-MTL2, includes a DE1-SoC development board targeting the Altera Cyclone® V SX SoC FPGA, along with a capacitive LCD multimedia color touch panel that natively supports five-point multi-touch. The display is a 7-inch TFT LCD with a pixel resolution of 800×480 and a color depth of 16 million colors (8-bit RGB) along with LED backlight. This hardware setup makes it an ideal platform for fpga design for embedded systems use cases that demand both rich visuals and real-time processing.
FPGA Design for Embedded Systems: Architecture Options
When approaching fpga design for embedded systems, the choice of software architecture is critical. For the Intel Cyclone/Arria/Stratix FPGA ecosystem, the underlying software can be designed with any of the following architectures:
- Without an OS — bare-metal, maximum determinism and minimal footprint
- With a minimal RTOS — suitable for real-time control and sensor fusion tasks
- With a full-fledged OS like Linux — enables rich networking, file systems, and application frameworks
Sparklet, providing design flexibility, is suitable for use with each of these approaches. This makes it an ideal companion for fpga design for embedded systems projects that span a wide range of application profiles — from safety-critical industrial controllers to consumer electronics with touchscreen UIs. The below demo showcases Sparklet running on top of Linux OS on the Intel Cyclone V SX SoC FPGA.
Though none of the underlying graphical engine features are used in this case, it is possible to leverage hardware acceleration engine changes for higher frame rates and richer visual effects across Intel Cyclone, Arria, and Stratix FPGA targets.
Graphical User Interface GUI for Embedded: Sparklet Features
Building a graphical user interface GUI for embedded targets like Intel Cyclone/Arria/Stratix FPGA devices involves unique constraints: limited RAM, no GPU, and tight timing budgets. Sparklet addresses these challenges with a lightweight widget-based rendering engine that operates efficiently on ARM HPS cores inside SoC FPGAs. Its composable widget model allows developers to assemble screens from reusable UI elements — buttons, labels, progress bars, charts — without writing low-level graphics code. The result is a production-ready graphical user interface GUI for embedded products that dramatically shortens development time.
Graphical Development Environment for Embedded Systems: Flint IDE
The Flint FPGA UI Interface Editor is Embien's Eclipse-based graphical development environment for embedded systems targeting Intel Cyclone/Arria/Stratix FPGA and other platforms. This graphical development environment for embedded systems supports Windows-based emulation, so UI designers can build and preview screens on a desktop before deploying to hardware. Flint generates C source files and headers automatically, which can be compiled directly into the project to produce a fully working application within a very short time. By combining Sparklet with the Flint graphical development environment for embedded systems, FPGA Design and development teams gain an end-to-end pipeline — from UI design to hardware-ready code — without custom graphics middleware.
Thus Sparklet along with Flint makes FPGA GUI application development a lot easier and enables developers to work on core functionality, thereby reducing overall product development time for Intel Cyclone, Arria, and Stratix FPGA designs.
About Embien: Embien Technologies is a leading service provider in the Embedded software domain. Our team has rich experience in working with various OS like Linux, Android, Windows CE, FreeRTOS, uC-OS, QNX, and more. Learning from our experiences in various application domains, we have conceptualized and created the Sparklet Embedded GUI tool that can be used to develop UIs faster and with a smaller footprint — particularly well-suited to Intel Cyclone/Arria/Stratix FPGA platforms.
