Skip to main content
Log in

Achieving high coverage in hardware equivalence checking via concolic verification

  • Published:
Formal Methods in System Design Aims and scope Submit manuscript

Abstract

A concolic approach, called slec-cf, to find counterexamples (CEXs) to sequential equivalence between a high-level (e.g., SystemC) hardware description and an RTL (e.g., Verilog) is presented. slec-cf works by searching for CEXs over the possible values of a set of “control signals” in a depth-first lexicographic manner, and avoiding values that cannot be realized by any concrete input. In addition, slec-cf respects user-specified design constraints during search, thus only producing stimuli that are of relevance to users. It is a superior alternative to random simulations, which produce an overwhelming number of irrelevant stimuli for user-constrained designs, and are therefore of limited effectiveness. Two strategies for concolic exploration are presented—searching all control signal values exhaustively, and only exploring values which share a common prefix with an initial random sample. In addition, two choices of control signals are proposed—the set of all MUX selectors in the RTL, and the MUX selectors that are derived from branch conditions in the SystemC description. Finally, slec-cf is made incremental by iteratively increasing the search depth, and set of control signals, and using a cache to reuse prior results. The approach is implemented on top an existing industrial sequential equivalence checker (slec) which compares C++/SystemC against RTL, created either manually, or by a high level synthesis tool, such as catapult. Experimental results indicate that slec-cf clearly outperforms random simulation in terms of finding CEXs quickly, and achieving coverage, over an industrial benchmark. On complex designs, incremental slec-cf demonstrates superior ability to achieve good coverage in almost all cases, compared to non-incremental slec-cf.

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

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9
Fig. 10
Fig. 11
Fig. 12
Fig. 13
Fig. 14

Similar content being viewed by others

Data availability statement

Due to their proprietary nature, we are unable to share the benchmarks used for our experiments.

Notes

  1. This paper is an extended version of [17].

References

  1. Ahmed A, Mishra P (2017) QUEBS: qualifying event based search in concolic testing for validation of RTL models. In: Proceedings of the 1996 international conference on computer design (ICCD ’17). IEEE Computer Society, Boston, MA, pp 185–192

  2. Biere A, Cimatti A, Clarke EM et al (2003) Bounded model checking, advances in computers, vol 58. Academic Press, Boca Raton

    Google Scholar 

  3. Cadar C, Dunbar D, Engler DR (2008) KLEE: unassisted and automatic generation of high-coverage tests for complex systems programs. In: Proceedings of the 12th USENIX symposium on operating system design and implementation (OSDI ’08), San Diego, pp 209–224

  4. Catapult C Synthesis. http://calypto.agranderdesign.com/catapult_c_synthesis.php

  5. Chauhan P, Goyal D, Hasteer G et al (2009) Non-cycle-accurate sequential equivalence checking. In: Proceedings of the 46th ACM IEEE design automation conference (DAC ’09). Association for Computing Machinery, San Francisco, CA, USA, pp 460–465

  6. Clarke E, Emerson A (1982) Design and synthesis of synchronization skeletons for branching time temporal logic. In: Kozen D (ed) Proceedings of workshop on logic of programs, lecture notes in computer science, vol 131. Springer, Yorktown Heights, New York, May 4–6, 1981. Berlin, Germany, pp 52–71

  7. Duran JW, Ntafos SC (1984) An evaluation of random testing. IEEE Trans Softw Eng (TSE) SE–10(4):438–444

    Article  Google Scholar 

  8. Godefroid P, Klarlund N, Sen K (2005) DART: directed automated random testing. In: Sarkar V, Hall MW (eds) Proceedings of the ACM SIGPLAN 2005 conference on programming language design and implementation (PLDI ’05). Association for Computing Machinery, Chicago, Illinois, USA, pp 213–223

  9. Godefroid P, Levin MY, Molnar D (2007) Automated whitebox fuzz testing. Technical report TR-2007-58, Microsoft Research, Redmond, WA

  10. Kelly JH, Dan SV, John JC et al (2001) A practical tutorial on modified condition/decision coverage. Technical report NASA/TM-2001-210876, NASA Langley Research Center, Langley, VA, USA. https://ntrs.nasa.gov/archive/nasa/casi.ntrs.nasa.gov/20010057789.pdf

  11. Liu L, Vasudevan S (2009) STAR: generating input vectors for design validation by static analysis of RTL. In: Proceedings of IEEE international high level design validation and test workshop (HLDVT ’09). IEEE Computer Society, San Francisco, CA, pp 32–37

  12. Liu L, Vasudevan S (2011) Efficient validation input generation in RTL by hybridized source code analysis. In: Proceedings of 2011 design, automation and test in Europe conference and exposition (DATE ’11). IEEE Computer Society, Grenoble, France, pp 1596–1601

  13. Martin G, Smith G (2009) High-level synthesis: past, present, and future. IEEE Des Test Comput 26(4):18–25

    Article  Google Scholar 

  14. Matsumoto T, Nishihara T, Kojima Y et al (2009) Equivalence checking of high-level designs based on symbolic simulation. In: Proceedings of the international conference on communications, circuits and systems (ICCAS). IEEE Computer Society, pp 1129–1133

  15. Pinto S, Hsiao MS (2017) RTL functional test generation using factored concolic execution. In: Proceedings of the IEEE international test conference (ITC ’17). IEEE Computer Society, Fort Worth, TX, USA, pp 1–10

  16. Pixley C (1992) A theory and implementation of sequential hardware equivalence. IEEE Trans Comput-Aided Des Integr Circuits Syst (TCAD) 11(12):1469–1478

    Article  Google Scholar 

  17. Roy P, Chaki S, Chauhan P (2019) High coverage concolic equivalence checking. In: Proceedings of 2019 design, automation and test in Europe conference and exposition (DATE ’19). IEEE Computer Society, Florence, Italy, March 25-29, 2019. Los Alamitos, CA, pp 462–467

  18. Sen K, Agha G (2006) CUTE and jcute: concolic unit testing and explicit path model-checking tools. In: Ball T, Jones RB (eds) Proceedings of the 18th international conference on computer aided verification (CAV ’06), lecture notes in computer science, vol 4144. Springer, Seattle, WA, pp 419–423

  19. Zhang Y, Feng W, Huang M (2016) Automatic generation of high-coverage tests for RTL designs using software techniques and tools. In: Proceedings of the IEEE 11th conference on industrial electronics and applications (ICIEA ’16). IEEE Computer Society, Hefei, China, pp 856–861

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Sagar Chaki.

Additional information

Publisher's Note

Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.

Rights and permissions

Springer Nature or its licensor (e.g. a society or other partner) holds exclusive rights to this article under a publishing agreement with the author(s) or other rightsholder(s); author self-archiving of the accepted manuscript version of this article is solely governed by the terms of such publishing agreement and applicable law.

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Roy, P., Chaki, S. Achieving high coverage in hardware equivalence checking via concolic verification. Form Methods Syst Des 60, 329–349 (2022). https://doi.org/10.1007/s10703-023-00414-1

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10703-023-00414-1

Keywords

Navigation