|Validation Environment for GAP8 Board

Validation Environment for GAP8 Board

Job Number: I1904

The target of this project is to build up a validation environment for the Gap8 board.


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 runtime is currently validated on virtual and RTL platforms with the help of SystemVerilog DPI models in order to validate real use-cases with peripherals (e.g. capturing images from the camera). The goal of this project is to develop an environment for validating the runtime on the real board using the same automatic tests currently used on other platforms. The idea behind is to develop a firmware for the GAP8 board, which would generate stimuli to another gap8 board where the runtime is being validated(e.g. using GPIOs), so that it can generate stimuli similar to the ones generated by the DPI models on other platforms. The protocol between the chip and the models will have to be specified so that the validation board can reproduce the same behavior, and the same tests can be used on all platforms. The following functionalities will be considered a priority:

  • Firmware for GAP8 board which can receive requests from several interfaces (SPI, UART, etc)and drive other interfaces according to what is specified in the requests.
  • The firmware must be finely optimized so that it can drive the interfaces at the desired frequency.
  • Specification of the requests supported by the firmware.
  • Subset of the current tests ported to this specification.

Required skills:

  • Proficient C and assembly programming
  • Low-level programming (device drivers, serial interfaces, etc).
  • Debugging using an oscilloscope.
  • Ability to combine a “hands-on” approach and a sense of rigor
  • [ Android skills welcome ]

Desired skills:

  • Strong motivation and taste for code optimization (size and speed)
  • Motivation to work within an international team
Job Category: Engineering
Job Type: Internship (6 Months)
Job Location: Grenoble. France (Alsace-Lorraine near train/tram)

Apply for this position

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