Skip to main content

Effective Verification of Low−Level Software with Nested Interrupts

Daniel Kroening‚ Lihao Liang‚ Tom Melham‚ Peter Schrammel and Michael Tautschnig

Abstract

Today's microelectronics industry is increasingly confronted with the challenge of developing and validating software that closely interacts with hardware. These interactions make it difficult to design and validate the hardware and software separately; instead, a verifiable co-design is required that takes them into account. This paper demonstrates a new approach to co-validation of hardware/software interfaces by formal, symbolic co-execution of an executable hardware model combined with the software that interacts with it. We illustrate and evaluate our technique on three realistic benchmarks in which software I/O is subject to hardware-specific protocol rules: a real-time clock, a temperature sensor on an I2C bus, and an Ethernet MAC. We provide experimental results that show our approach is both feasible as a bug-finding technique and scales to handle a significant degree of concurrency in the combined hardware/software model.

Book Title
Design‚ Automation and Test in Europe (DATE)
ISBN
978−3−9815370−4−8
Pages
229–234
Publisher
EDA Consortium
Year
2015