Virtual Platform Design
In the fast-paced development cycles of today, Virtual Platforms (VPs) have become an essential tool in embedded software development. VPs are simulators that can execute unmodified target code. They are typically available long before their hardware counterparts, allowing to start software development earlier.
Ideally, there should be no discernible difference between using a VP or physical hardware from the point of view of the software developer. Notably, it should react to inputs as quickly as real hardware. To achieve this, fast but precise models of the actual hardware components are needed.
From a student perspective, you can learn a lot about the interplay between hardware and software. Especially if you are interested in how computers work on a low level, this job can be interesting for you. Since you model the hardware, you learn a lot about how the hardware works and how it is used by the software that runs on it. You also learn a lot about how software (e.g. an operating system like Linux) works. VPs offer deep introspection into what is happening right at the border of hardware and software.
Modeling hardware can be a complex task, therefore you will also learn how to write efficient, reusable and understandable code for this purpose.
- Modeling of hardware components in C++
- Embedded target software bringup on VPs (usually C, e.g. Linux)
- Design of test cases for VPs
For this position the following requirements are set:
- Interest for the topic and high motivation
- Programming skills (C++, C, ...)
Nice to have:
- Prior knowledge of SystemC, QEMU, Assembly
If you are interested, please send me an email including the following:
- Latest transcript of records
- Informal description of your background and motivation
- CV (if available)
Ideally, I am looking for a candidate who will work on this topic for several years. Do not worry too much about your grades or experience level, I will decide whether you are a suitable candidate.