Abstract
In current practices of SoC design a trend can be observed to integrate more and more low-level software components into the hardware at different levels of granularity. The implementation of important control functions is frequently shifted from the SoC’s hardware into its firmware. This calls for new methods for verification based on a joint analysis of hardware and software. While most techniques of software verification operate at a hardware-independent level, this chapter elaborates on the possible merits of a hardware-dependent software view. The chapter reviews a recently developed model for formal verification of low-level embedded system software called program netlist and details on its applications. In particular, applications for speed-independent and cycle-accurate hardware/software integration are reported. For each studied scenario, this chapter describes how the different challenges of modeling the hardware/software interface can be solved by exploiting the characteristics of the program netlist. For speed-independent hardware/software interaction the equivalence checking problem is studied and results of our proposed solution are presented. For the case of a cycle-accurate hardware/software integration, a model for hardware/software co-verification is developed and experimentally evaluated by applying it to property checking.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
References
T. Aitch, Aquarius: a pipelined RISC CPU (2003)
T. Arons, E. Elster, L. Fix, S. Mador-Haim, M. Mishaeli, J. Shalev, E. Singerman, A. Tiemeyer, M.Y. Vardi, L.D. Zuck, Formal verification of backward compatibility of microcode, in Proceedings of the 17th International Conference on Computer Aided Verification, CAV’05 (Springer, Heidelberg, 2005), pp. 185–198
T. Arons, E. Elster, S. Ozer, J. Shalev, E. Singerman, Efficient symbolic simulation of low level software, in Design, Automation and Test in Europe, DATE ’08 (2008), pp. 825–830
B. Bao, C. Villarraga, B. Schmidt, D. Stoffel, W. Kunz, A new property language for the specification of hardware-dependent embedded system software, in Proceedings of Forum on Specification and Design Languages (FDL), Munich, Germany, Oct 2014. (accepted for publication)
C. Bartsch, C. Villarraga, B. Schmidt, D. Stoffel, W. Kunz, Efficient SAT/simulation-based model generation for low-level embedded software, in 17. GI/ITG/GMM Workshop Methoden und Beschreibungssprachen zur Modellierung und Verifikation von Schaltungen und Systemen (MBMV) (2014), pp. 147–157
A. Biere, A. Cimatti, E. Clarke, Y. Zhu, Symbolic model checking without BDDs, in Proceedings of the 5th International Conference on Tools and Algorithms for Construction and Analysis of Systems, TACAS ’99 (Springer, London, 1999), pp. 193–207
C. Cadar, K. Sen, Symbolic execution for software testing: three decades later. Commun. ACM 56(2), 82–90 (2013)
D. Currie, X. Feng, M. Fujita, A.J. Hu, M. Kwan, S. Rajan, Embedded software verification using symbolic execution and uninterpreted functions. Int. J. Parallel Program. 34(1), 61–91 (2006)
D.W. Ecker, V. Esen, T. Steininger, Memory models for the formal verification of assembler code using bounded model checking, in Proceedings of IEEE International Symposium on Object-Oriented Real-Time Distributed Computing (2004), pp. 129 –135
N.Eén, N.Sörensson. An extensible SAT solver. in SAT (2003), pp. 502–518
A. Hazra, R. Mukherjee, P. Dasgupta, A. Pal, K. Harer, A. Banerjee, S. Mukherjee, Power-tructor: An integrated tool flow for formal verification and coverage of architectural power intent. IEEE Trans. Comput. Aided Des. Integr. Circ. Syst. 32(11), 1801–1813 (2013)
A. Horn, M. Tautschnig, C. Val, L. Liang, T. Melham, J. Grundy, D. Kroening, Formal co-validation of low-level hardware/software interfaces. Formal Methods Comput. Aided Des. (FMCAD) 2013, 121–128 (2013)
J. Koestersm, A. Goryachev, Verification of non-mainline functions in today’s processor chips. in Proceedings International Design Automation Conference (DAC), DAC’14 (ACM, New York, 2014), pp. 1:1–1:3
M.D. Nguyen, M. Thalmaier, M. Wedler, J. Bormann, D. Stoffel, W. Kunz, Unbounded protocol compliance verification using interval property checking with invariants. IEEE Trans. Comput. Aided Des 27(11), 2068–2082 (2008)
Onespin Solutions GmbH. Germany. OneSpin 360MV. http://www.onespin-solutions.com
A. Pnueli, M. Siegel, E. Singerman, Translation validation, in Proceedings of the 4th International Conference on Tools and Algorithms for Construction and Analysis of Systems, TACAS ’98 (Springer, London, 1998), pp. 151–166
C.S. Păsăreanu, W. Visser, A survey of new trends in symbolic execution for software testing and analysis. Int. J. Softw. Tools Technol. Transf. 11(4), 339–353 (2009)
B. Schlich, Model checking of software for microcontrollers. ACM Trans. Embed. Comput. Syst. 9(4), 36:1–36:27 (2010)
B. Schmidt, C. Villarraga, T. Fehmel, J. Bormann, M. Wedler, M. Nguyen, D. Stoffel, W. Kunz, A new formal verification approach for hardware-dependent embedded system software, IPSJ Transactions on System LSI Design Methodology (Special Issue on ASPDAC-2013), vol. 6 (2013), pp. 135–145
C. Villarraga, B. Schmidt, C. Bartsch, J. Bormann, D. Stoffel, W. Kunz, An equivalence checker for hardware-dependent software, in 11 ACM-IEEE International Conference on Formal Methods and Models for Codesign (2013), pp. 119–128
M. Wedler, E. Cabrill, S. Graham, L. Patrick, Using formal verfication for HW/SW co-verification of an FPGA IP core. Xcell Journal (Xilinx, Inc.) 0, 56–61 (2012)
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2018 Springer International Publishing AG
About this chapter
Cite this chapter
Villarraga, C., Stoffel, D., Kunz, W. (2018). Software in a Hardware View. In: Drechsler, R. (eds) Formal System Verification. Springer, Cham. https://doi.org/10.1007/978-3-319-57685-5_4
Download citation
DOI: https://doi.org/10.1007/978-3-319-57685-5_4
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-57683-1
Online ISBN: 978-3-319-57685-5
eBook Packages: EngineeringEngineering (R0)