A real-time operating system (RTOS) is an operating system (OS) intended to serve real-time application process data as it comes in, typically without buffering delays. Latency and determinism are two of the most important aspects in designing a RTOS.
Today’s technology and tools enables the creation of HW accelerator IP using HLS – High level Synthesis. C/C++ software language can be synthesized into Programmable devices without the need to manually create RTL.
Using this technology enables us to create a hybrid hardware/software RTOS that takes advantage of hardware accelerators to improve the critical metrics and, consequently, improve overall system performance.
In this project, the student will work with a development board Xilinx ZC702 which includes a XILINX ZYNQ7020 SOC (System On Chip). This SOC includes 2 ARM Cortex-A9 and an FPGA.
The project will comprise:
- Learning basic operations and flow of the XILINX tools: VIVADO, VIVADO HLS, and VIVADO SDK.
- Use the tools to create and run (On the ARM core) the built-in hello world examples supplied by Xilinx.
- Offer and implement (in SW) a very primitive scheduler which includes cyclic/upon-event tasks without (Preemption raises the complexity by far).
- Implement this scheduler or selected parts of it as an HW accelerator using HLS tools.
- Create a report summarizing the comparison between the HW and SW scheduler the consideration for the HW/SW logic split and a How-To guide of the OS creation design.
- Optional as a dual-semester project: perform the same operations with FreeRTOS (open source RTOS).
- Required course pre-requisites from the list at:
- 234114/7 Introduction to Computer Science
- 234122 Introduction to Systems Programming
- 234123/046209 Operating Systems
- 234267/046267 Digital Computers Structure (MAMAS)
- Programming languages and development platforms
C , HLS , VHDL (advantage).