Multiprocessor RTOS for Altera FPGAs

Nios V supported in Altera’s Platform Designer, Nios II as a legacy route.

GeMRTOS logo with Nios V processors and Altera Solution Acceleration Partner member badges

What is GeMRTOS

GeMRTOS is a native multiprocessor RTOS for Altera FPGAs, targeting Nios V in Platform Designer, with Nios II supported as a legacy route. Download it and run the examples on your own PC.

Nios V Processors badgeAltera logo
GeMRTOS multiprocessor system architectureN Nios V processors, a shared memory and M input/output devices are connected through a common system bus. The GeMRTOS controller, a hardware block synthesised in the FPGA, receives device interrupt requests (DIRQ) from the devices and can send processor interrupt requests (PIRQ, optional, so processors without interrupt support can be used) to the processors. It handles interrupt routing, event scheduling, hardware mutual exclusion and watchdogs.N × NIOS V PROCESSORSM × INPUT/OUTPUT DEVICES···CPU 1CPU 2CPU NSharedmemoryDevice 1Device Mown CPUIDown CPUIDown CPUIDSYSTEM BUSGeMRTOScontrollerhardwarein the FPGAinterrupt routingevent schedulinghardware mutexwatchdogsPIRQoptionalDIRQ
N processors share one memory and M devices over a common bus. The GeMRTOS controller receives the device interrupt requests (DIRQ) and can send processor interrupt requests (PIRQ) to the processors. PIRQ is optional, so CPUs without interrupt support can also be used. Read the system architecture.

Why GeMRTOS

Multiprocessor from the start

GeMRTOS is designed for multiprocessor operation from the start, not adapted to it. Scheduling, event handling and inter-processor mutual exclusion are part of the kernel and its FPGA controller, so multiprocessor behaviour is something you configure, rather than something you build.

Hybrid scheduling

GeMRTOS supports both preemptive and non-preemptive scheduling, giving precise control over task execution and prioritization, and can dedicate processors to external events to minimize interrupt latency.

Eleven ready-to-run examples

Task models, semaphores, message queues, hardware triggers, multiprocessor scheduling, fault handling and networking, each with an automated check on its own output. They run on development boards and in a Windows simulation layer that needs no FPGA.

See GeMRTOS in action

First GeMRTOS project

YouTube player

Start from a Platform Designer project, add GeMRTOS and run your first multiprocessor application. Follow the tutorial.

Hybrid partition scheduling

YouTube player

Partitioned, global or anything in between: one scheduling mechanism, chosen per group of tasks in the same application. Read the guide.

GeMRTOS generic structure

YouTube player

The data structures and linked lists the kernel is built on. Read the guide.

GeMRTOS system architecture

YouTube player

How N processors, a shared memory and M devices connect, and how the GeMRTOS controller routes interrupts. Read the guide.

Documentation and tutorials

Getting started with GeMRTOS on Altera FPGA

Build your first multiprocessor application, step by step.

Hybrid partition scheduling

How GeMRTOS schedules real-time tasks across several processors.

Platform Designer flow for Nios V

Add GeMRTOS to a Nios V system in Platform Designer.

Browse all documentation · Manuals

Download GeMRTOS

GeMRTOS is free to download. Get the package, and start from the multiprocessor reference design.

Need help designing with GeMRTOS?

We can design your multiprocessor FPGA system with GeMRTOS.