Skip to main content
Log in

Symbolic trajectory evaluation for word-level verification: theory and implementation

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

Abstract

Symbolic trajectory evaluation (STE) is a model checking technique that has been successfully used to verify many industrial designs. Existing implementations of STE reason at the level of bits, allowing signals in a circuit to take values from a lattice comprised of three elements: 0, 1, and X. This limits the amount of abstraction that can be achieved, and presents limitations to scaling STE to even larger designs. The main contribution of this paper is to show how much more abstract lattices can be derived automatically from register-transfer level descriptions, and how a model checker for the general theory of STE instantiated with such abstract lattices can be implemented in practice. We discuss several implementation issues, including how word-level circuits can be symbolically simulated using a new encoding for words that allows representing X values of sub-words succinctly. This gives us the first practical word-level STE engine, called \(\mathsf {STEWord}\). Experiments on a set of designs similar to those used in industry show that \(\mathsf {STEWord}\) scales better than bit-level STE, as well as word-level bounded model checking.

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.

Institutional subscriptions

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5

Similar content being viewed by others

References

  1. Barrett C, Conway CL, Deters M, Hadarean L, Jovanovic D, King T, Reynolds A, Tinelli C (2011) CVC4. In: Proceedings of the 23rd international conference on computer aided verification, CAV 2011, Snowbird, UT, USA, 14–20 July 2011, pp 171–177

  2. Brayton R, Mishchenko A (2010) ABC: an academic industrial-strength verification tool. In: Proceedings of the 22nd international conference on computer aided verification, CAV’10. Springer, Berlin, pp 24–40

  3. Brummayer R, Biere A (2009) Boolector: an efficient SMT solver for bit-vectors and arrays. In: TACAS, pp 174–177

  4. Bryant RE, Seger C-JH (1990) Formal verification of digital circuits using symbolic ternary system models. In: CAV, pp 33–43

  5. Bryant Randal E (1986) Graph-based algorithms for Boolean function manipulation. IEEE Trans Comput 35(8):677–691

    Article  MATH  Google Scholar 

  6. Chakraborty S, Gupta A, Jain R (2017) Matching multiplications in bit-vector formulas. In: Verification, model checking and abstract interpretation (VMCAI). Springer, Berlin, pp 131–150

  7. Chakraborty S, Khasidashvili Z, Seger C-JH, Gajavelly R, Haldankar T, Chhatani D, Mistry R (2015) Word-level symbolic trajectory evaluation. In: Computer-aided verification (CAV). Springer, Berlin, pp 128–143

  8. Cimatti A, Griggio A, Schaafsma B, Sebastiani R (2013) The MathSAT5 SMT solver. In: Piterman N, Smolka S (eds) Proceedings of TACAS, volume 7795 of LNCS. Springer, Berlin

  9. Cimatti A, Griggio A, Schaafsma B, Sebastiani R (2013) The MathSAT5 SMT solver. In: Piterman N, Smolka S (eds) Proceedings of TACAS, volume 7795 of LNCS. Springer, Berlin

  10. Dutertre B (2014) Yices 2.2. In: Biere A, Bloem R (eds) Computer-aided verification (CAV’2014), volume 8559 of Lecture notes in computer science, pp 737–744. Springer, Berlin

  11. Dutertre B, De Moura L (2006) The yices SMT solver. Tool paper at http://yices.csl.sri.com/tool-paper.pdf, 2(2)

  12. Eén N, Sörensson N (2012) The minisat page

  13. Emerson EA (1995) Temporal and modal logic. In: Hanbook of theoretical computer science, pp 995–1072. Elsevier, Amsterdam

  14. IEEE standard for SystemVerilog—unified hardware design, specification, and verification language. IEEE Std 1800-2012 (Revision of IEEE Std 1800-2009), pp 1–1315 (2013)

  15. Jha S, Limaye R, Seshia SA (2009) Beaver: engineering an efficient SMT solver for bit-vector arithmetic. In: Proceedings of the 21st international conference on computer aided verification, CAV 2009, Grenoble, France, June 26–July 2, 2009, pp 668–674

  16. Johannsen P (2001) Reducing bitvector satisfiability problems to scale down design sizes for RTL property checking. In: HLDVT, pp 123–128

  17. Jones RB, O’Leary JW, Seger C-JH, Aagaard M, Melham TF (2001) Practical formal verification in microprocessor design. IEEE Des Test Comput 18(4):16–25

    Article  Google Scholar 

  18. Kaivola R, Ghughal R, Narasimhan N, Telfer A, Whittemore J, Pandav S, Slobodová A, Taylor C, Frolov V, Reeber E, Naik A (2009) Replacing testing with formal verification in intel \(\text{Core}^\text{ TM }\) i7 processor execution engine validation. In: CAV, pp 414–429

  19. KiranKumar VMA, Gupta A, Ghughal R (2012) Symbolic trajectory evaluation: the primary validation vehicle for next generation intel\(^{\textregistered }\) processor graphics fpu. In: FMCAD, pp 149–156

  20. Kroening D, Strichman O (2008) Decision procedures: an algorithmic point of view. Texts in theoretical computer science. An EATCS series. Springer, Berlin

  21. Malvar HS, Li-Wei H, Cutler R (2004) High-quality linearinterpolation for demosaicing of Bayer-patterned color images. In: ICASSP, vol 3, pp 485–488

  22. Roorda J-W, Claessen K (2005) A new SAT-based algorithm for symbolic trajectory evaluation. In: CHARME, pp 238–253

  23. Seger C-JH, Bryant RE (1995) Formal verification by symbolic evaluation of partially-ordered trajectories. Form Methods Syst Des 6(2):147–189

    Article  Google Scholar 

  24. Seger C-JH, Jones RB, O’Leary JW, Melham TF, Aagaard M, Barrett C, Syme D (2005) An industrially effective environment for formal hardware verification. IEEE Trans CAD Integr Circuits Syst 24(9):1381–1405

    Article  Google Scholar 

  25. Somenzi F (2012) CUDD: CU decision diagram package-release 2.5.0. University of Colorado at Boulder

  26. Stump A, Barrett CW, Dill DL (2001) A decision procedure for an extensional theory of arrays. In: Logic in computer science (LICS). IEEE Computer Society, pp 29–37

Download references

Acknowledgements

We thank Taly Hocherman and Dan Jacobi for their help and advice in designing a SystemVerilog symbolic simulator. We thank Ashutosh Kulkarni and Soumyajit Dey for their help in implementing and debugging \(\mathsf {STEWord}\). Rajkumar Gajavelly, Tanmay Haldankar, Dinesh Chhatani and Rakesh Mistry were supported by a research grant from Intel Corporation, which is gratefully acknowledged. Funding was provided by Intel Corporation as a research grant to IIT Bombay.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Supratik Chakraborty.

Additional information

Carl-Johan H. Seger: was at Intel, Portland, Oregon, USA when working on this project.

Rajkumar Gajavelly, Tanmay Haldankar, Dinesh Chhatani, Rakesh Mistry: were at Department of Computer Science and Engineering, IIT Bombay, India when working on this project.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Chakraborty, S., Khasidashvili, Z., Seger, CJ.H. et al. Symbolic trajectory evaluation for word-level verification: theory and implementation. Form Methods Syst Des 50, 317–352 (2017). https://doi.org/10.1007/s10703-017-0268-9

Download citation

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10703-017-0268-9

Keywords

Navigation