Peripheral models for the virtual and RTL Platforms

Job Number: I1905

This project aims at providing peripheral models for the virtual and RTL platforms.


The Gap8 board is a riscv-based microcontroller containing a main core and a cluster of parallel cores for heavy computation. It can be connected to various kind of peripherals using standard interfaces such as SPI, UART and so on. Several platforms are available for running software on Gap8:

  • The physical board.
  • The virtual platform which is a set of C++ models simulating hardware behavior.
  • The RTL platform which is using real hardware simulation.


The virtual platform is used to functionally simulate programs using C++ models; the RTL platform is used to do the same using design simulation. Both are connected to C++ models which are modeling peripherals connected to the gap8 chip like cameras, microphones, etc. The goal of this project is first to extend existing models to cover more device features and to develop new models such as ADC, flash, aiming at simulating full applications; the other goal is to extend existing drivers or create new drivers to expose the new peripheral features to the user.

Tasks will include:

  • Extending existing models to support more advanced features and extend the driver to expose them to the application developer.
  • Creating new models to cover more complex use cases and also add new drivers for them. This can for example be an SPI ADC in order to be able to sample analog signals through the SPI interface.
  • Writing tests for the new features and new models to include these new models into the set of automatic tests.

Required skills:

  • Proficient C/C++ programming
  • notions on system verilog testbench
  • HW modeling from device specifications

Desired skills:

  • Embedded driver development.
  • Strong motivation and taste for code optimization (size and speed)
Job Category: Engineering
Job Type: Internship (6 Months)
Job Location: Villard-Bonnot

Apply for this position

Allowed Type(s): .pdf, .doc, .docx