Looking for Hardware Hackers: RISC-V on FPGAs

  • Type: Master thesis
  • State: open
  • Supervisor: Stefan Huber
  • Student: No Name

Your Tasks:

  • Synthesise an open-source RISC-V core on a high-end FPGA
  • Research possible softcores (RISC-V CPUs) for our FPGAs
  • Research for possible modifications
  • Work with hardware languages: VHDL, Verilog or Chisel
  • Compare FPGA vs. cycle-accurate emulators (like Firesim)
  • Benchmark with our minimalist operating system "Grinch"

Depending on the type (i.e., Bachelor's thesis, Master's thesis or HSP), the scope of tasks is adjusted according to the credit points.

Your Goal:

  • Run "Jailhouse" Hypervisor on synthesised open-source RISC-V cores
  • Modify/extend a RISC-V core for better support for "Jailhouse"

Your Profile:

  • Basic knowledge in programming of FPGAs (VHDL, Verilog or Chisel)
  • Good handling of Linux and its command line
  • Good handling of the C programming language (optional)

We offer:

  • Work on a open source software project used in industry
  • Low-level embedded hardware hacking, Linux kernel hacking
  • Boost your own visibility via public contributions to Open Source projects (e.g., Linux, Jailhouse)
  • Work with the emerging RISC-V processor architecture
  • Be part of the team of the Laboratory for Digitalisation
  • Work from home or at the laboratory at the Informatics Building of OTH Regensburg
  • The possibility of further work in our team (Bachelor/Master Theses, HSPs, Research Master)
  • The opportunity for employment at the Laboratory for Digitalisation
  • Free coffee and tea

If you are interested or have further questions just write an email to stefan.huber@oth-regensburg.de

Info about Jailhouse:

Jailhouse is a partitioning Hypervisor based on Linux. It is able to run bare-metal applications or (adapted) operating systems besides Linux. For this purpose, it configures CPU and device virtualization features of the hardware platform in a way that none of these domains, called "cells" here, can interfere with each other in an unacceptable way.

Jailhouse is optimized for simplicity rather than feature richness. Unlike full-featured Linux-based hypervisors like KVM or Xen, Jailhouse does not support overcommitment of resources like CPUs, RAM or devices. It performs no scheduling and only virtualizes those resources in software, that are essential for a platform and cannot be partitioned in hardware.

Once Jailhouse is activated, it runs bare-metal, i.e. it takes full control over the hardware and needs no external support. However, in contrast to other bare-metal hypervisors, it is loaded and configured by a normal Linux system. Its management interface is based on Linux infrastructure. So you boot Linux first, then you enable Jailhouse and finally you split off parts of the system's resources and assign them to additional cells.

Github: Jailhouse
Youtube: Zero-Overhead Virtualisation: It's a Trap! - Ralf Ramsauer & Stefan Huber, OTH Regensburg
Paper: Look Mum, no VM Exits! (Almost)
Paper: Static Hardware Partitioning on RISC-V -- Shortcomings, Limitations, and Prospects