Skip to main content

Integrating Software and Hardware Verification

  • Conference paper
Book cover Integrated Formal Methods (IFM 2014)

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 8739))

Included in the following conference series:

Abstract

Verification of hardware and software usually proceeds separately, software analysis relying on the correctness of processors executing instructions. This assumption is valid as long as the software runs on standard CPUs that have been extensively validated and are in wide use. However, for processors exploiting custom instruction set extensions to meet performance and energy constraints the validation might be less extensive, challenging the correctness assumption.

In this paper we present an approach for integrating software analyses with hardware verification, specifically targeting custom instruction set extensions. We propose three different techniques for deriving the properties to be proven for the hardware implementation of a custom instruction in order to support software analyses. The techniques are designed to explore the trade-off between generality and efficiency and span from proving functional equivalence over checking the rules of a particular analysis domain to verifying actual pre and post conditions resulting from program analysis. We demonstrate and compare the three techniques on example programs with custom instructions, using state-of-the-art software and hardware verification techniques.

This work was partially supported by the German Research Foundation (DFG) within the Collaborative Research Centre “On-The-Fly Computing” (SFB 901).

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Beyer, D.: Status report on software verification. In: Ábrahám, E., Havelund, K. (eds.) TACAS 2014 (ETAPS). LNCS, vol. 8413, pp. 373–388. Springer, Heidelberg (2014)

    Chapter  Google Scholar 

  2. Beyer, D., Henzinger, T., Théoduloz, G.: Configurable software verification: Concretizing the convergence of model checking and program analysis. In: Damm, W., Hermanns, H. (eds.) CAV 2007. LNCS, vol. 4590, pp. 504–518. Springer, Heidelberg (2007)

    Chapter  Google Scholar 

  3. Beyer, D., Keremoglu, M.E.: CPAchecker: A Tool for Configurable Software Verification. In: Gopalakrishnan, G., Qadeer, S. (eds.) CAV 2011. LNCS, vol. 6806, pp. 184–190. Springer, Heidelberg (2011)

    Chapter  Google Scholar 

  4. Biere, A.: PicoSAT essentials. JSAT 4(2-4), 75–97 (2008)

    MATH  Google Scholar 

  5. Clark, N., Blome, J., Chu, M., Mahlke, S., Biles, S., Flautner, K.: An architecture framework for transparent instruction set customization in embedded processors. In: ISCA, pp. 272–283. IEEE Computer Society (2005)

    Google Scholar 

  6. Clarke, E., Kroening, D.: Hardware verification using ANSI-C programs as a reference. In: ASP-DAC, pp. 308–311. ACM (2003)

    Google Scholar 

  7. Drzevitzky, S., Kastens, U., Platzner, M.: Proof-carrying hardware: Towards runtime verification of reconfigurable modules. In: ReConFig, pp. 189–194. IEEE (2009)

    Google Scholar 

  8. Erkok, L., Carlsson, M., Wick, A.: Hardware/software co-verification of cryptographic algorithms using Cryptol. In: FMCAD, pp. 188–191. IEEE (2009)

    Google Scholar 

  9. Galuzzi, C., Bertels, K.: The instruction-set extension problem: A survey. ACM Trans. Reconfigurable Technol. Syst. 4(2), 18:1–18:28 (2011)

    Google Scholar 

  10. Henzinger, T.A., Jhala, R., Majumdar, R., Sutre, G.: Lazy abstraction. In: POPL, pp. 58–70. ACM (2002)

    Google Scholar 

  11. Horn, A., Tautschnig, M., Val, C., Liang, L., Melham, T., Grundy, J., Kroening, D.: Formal co-validation of low-level hardware/software interfaces. In: FMCAD, pp. 121–128. IEEE (2013)

    Google Scholar 

  12. Kurshan, R., Levin, V., Minea, M., Peled, D., Yenigun, H.: Verifying hardware in its software context. In: CAD, pp. 742–749. IEEE (1997)

    Google Scholar 

  13. Li, J., Xie, F., Ball, T., Levin, V., McGarvey, C.: An Automata-Theoretic Approach to Hardware/Software Co-verification. In: Rosenblum, D.S., Taentzer, G. (eds.) FASE 2010. LNCS, vol. 6013, pp. 248–262. Springer, Heidelberg (2010)

    Chapter  Google Scholar 

  14. Loitz, S., Wedler, M., Brehm, C., Vogt, T., Wehn, N., Kunz, W.: Proving functional correctness of weakly programmable IPs - a case study with formal property checking. In: SASP, pp. 48–54. IEEE (2008)

    Google Scholar 

  15. Mishchenko, A., Chatterjee, S., Brayton, R.K., Eén, N.: Improvements to combinational equivalence checking. In: ICCAD, pp. 836–843. ACM (2006)

    Google Scholar 

  16. de Moura, L.M., Bjørner, N.: Satisfiability modulo theories: introduction and applications. Commun. ACM 54(9), 69–77 (2011)

    Article  Google Scholar 

  17. Necula, G.C.: Proof-carrying code. In: POPL, pp. 106–119. ACM (1997)

    Google Scholar 

  18. Necula, G., McPeak, S., Rahul, S., Weimer, W.: CIL: Intermediate Language and Tools for Analysis and Transformation of C Programs. In: Nigel Horspool, R. (ed.) CC 2002. LNCS, vol. 2304, pp. 213–228. Springer, Heidelberg (2002)

    Chapter  Google Scholar 

  19. Nguyen, M., Wedler, M., Stoffel, D., Kunz, W.: Formal hardware/software co-verification by interval property checking with abstraction. In: DAC, pp. 510–515. ACM (2011)

    Google Scholar 

  20. Rose, J., Luu, J., Yu, C.W., Densmore, O., Goeders, J., Somerville, A., Kent, K.B., Jamieson, P., Anderson, J.: The VTR project: Architecture and CAD for FPGAs from Verilog to Routing. In: FPGA, pp. 77–86. ACM (2012)

    Google Scholar 

  21. Sankaranarayanan, S., Ivancic, F.: Necla static analysis benchmarks (necla-static-small) v1.1, http://www.nec-labs.com/research/system/systems_SAV-website/small_static_bench-v1.1.tar.gz

  22. Wagner, I., Bertacco, V.: Post-Silicon and Runtime Verification for Modern Processors. Springer (2011)

    Google Scholar 

  23. Xie, F., Yang, G., Song, X.: Component-based hardware/software co-verification for building trustworthy embedded systems. Journal of Systems and Software 80(5), 643–654 (2007)

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Marie-Christine Jakobs .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2014 Springer International Publishing Switzerland

About this paper

Cite this paper

Jakobs, MC., Platzner, M., Wehrheim, H., Wiersema, T. (2014). Integrating Software and Hardware Verification. In: Albert, E., Sekerinski, E. (eds) Integrated Formal Methods. IFM 2014. Lecture Notes in Computer Science(), vol 8739. Springer, Cham. https://doi.org/10.1007/978-3-319-10181-1_19

Download citation

  • DOI: https://doi.org/10.1007/978-3-319-10181-1_19

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-319-10180-4

  • Online ISBN: 978-3-319-10181-1

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics