Hardware Self-Explanations towards Low-Level Software

Supervisor:

Can digital hardware be self-explaining? How would that be achieved?

Explaining all hardware behaviour at any time during runtime is infeasible due to overhead, processing speed, and limited data bandwidth. Instead, we assume a decision and/or analysis at design time
fixing what is to be explained. By this, we can pre-calculate the model for explaining past and future behaviour online. Behaviour to be explained is specified by temporal logic at design time.

We will consider what kind of explanations may be useful for low-level software and how such an explanation interface may look like. The goal is a design tool that can automatically create such explanations and produce the required hardware infrastructure to be used at run time. We will investigate the methodology and algorithms needed for that purpose.

Desirable background and expertise: Knowledge in temporal logic or other computational logics, and interest in methods for formal reasoning (e.g., model checking). Basic knowledge in hardware description languages. Strong programming and software engineering skills.