A Survey of Formal Techniques for Hardware/Software Co-verification

A growing trend for today's intelligent automotive industry is co-design of hardware alongside embedded, low-level software that closely interacts with it. Formal techniques have emerged as alternative ways to ensure the quality and correctness of embedded systems, overcoming some of the deficiencies of traditional validation techniques such as simulation and testing. Tighter integration of hardware and software components makes a strong case for the need of formal co-verification tools. In order to provide insight into the scope of currently available formal techniques, we survey a variety of frameworks and techniques proposed in the literature and applied to actual designs. There are two main aspects about the application of formal co-verification techniques: unified property specification and co-verification framework used to specify desired properties.

[1]  Daniel Kroening,et al.  Formal co-validation of low-level hardware/software interfaces , 2013, 2013 Formal Methods in Computer-Aided Design.

[2]  Frank Ghenassia,et al.  Transaction Level Modeling with SystemC , 2005 .

[3]  Daniel Kroening,et al.  Formal techniques for effective co-verification of hardware/software co-designs , 2017, 2017 54th ACM/EDAC/IEEE Design Automation Conference (DAC).

[4]  Sunha Ahn,et al.  AUTOMATED FIRMWARE VERIFICATION USING FIRMWARE-HARDWARE INTERACTION PATTERNS , 2016 .

[5]  Fei Xie,et al.  An Automata-Theoretic Approach to Hardware/Software Co-verification , 2010, FASE.

[6]  Sriram K. Rajamani,et al.  Thorough static analysis of device drivers , 2006, EuroSys.

[7]  Nikolaj Bjørner,et al.  Z3: An Efficient SMT Solver , 2008, TACAS.

[8]  Kwang-Ting Cheng,et al.  Automatic Functional Test Generation Using The Extended Finite State Machine Model , 1993, 30th ACM/IEEE Design Automation Conference.

[9]  Frank Vahid Digital Design with RTL Design, Verilog and VHDL , 2010 .

[10]  Jürgen Teich,et al.  Hardware/Software Codesign: The Past, the Present, and Predicting the Future , 2012, Proceedings of the IEEE.

[11]  Javier Esparza,et al.  Efficient Algorithms for Model Checking Pushdown Systems , 2000, CAV.

[12]  Armin Biere,et al.  Effective Preprocessing in SAT Through Variable and Clause Elimination , 2005, SAT.

[13]  Robert P. Kurshan,et al.  Computer-Aided Verification of Coordinating Processes: The Automata-Theoretic Approach , 2014 .

[14]  Harry Foster,et al.  Applied Assertion-Based Verification: An Industry Perspective , 2009, Found. Trends Electron. Des. Autom..

[15]  Fei Xie,et al.  Unified Property Specification for Hardware/Software Co-Verification , 2007, 31st Annual International Computer Software and Applications Conference (COMPSAC 2007).