Stimuli Generation for Functional Hardware Verification with Constraint Programming

  • Allon Adir
  • Yehuda Naveh
Part of the Springer Optimization and Its Applications book series (SOIA, volume 45)


We survey the application of constraint programming techniques for stimuli generation in functional hardware verification, which can be considered the largest and most important industrial application of constraint programming. We provide a thorough introduction to the application domain, aimed at people unfamiliar with this area. We show the sources of constraints and the unique aspects of the constraint satisfaction problems (CSPs) arising in this field. We then present CSP models of a wide variety of stimuli generation problems, as well as the state of the art techniques used to solve them. We also discuss the current challenges in this area, and the prospects of solving them by advancing constraint programming technology beyond the state of the art.


Constraint Programming Soft Constraint Satisfiability Modulo Theory Stimulus Generation Very Long Instruction Word 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.



We are grateful to Amir Nahir, Gil Shurek, and Avi Ziv with whom we held extensive discussions. The material and book [12] for the Verification Course given by them at the Technion, Israel Institute of Technology, formed the basis for many of the ideas presented in Sect. 2. We also thank Eitan Marcus for his contribution to the sections related to checking and to Merav Aharoni, Sigal Asaf, and Yoav Katz for some of the figures in this chapter. The advancements in CP for verification presented here could not have been accomplished without the innovation, talent, and dedication of dozens of researchers and engineers at IBM Research – Haifa, and without the continuous feedback of verification engineers across IBM. The work of all those people is described and cited in many places in this chapter.


  1. 1.
    Naveh Y, Rimon M, Jaeger I, Katz Y, Vinov M, Marcus E, Shurek G (2007) Constraint-based random stimuli generation for hardware verification. AI Mag 28:13–30Google Scholar
  2. 2.
    Moss A (2007) Constraint patterns and search procedures for CP-based random test generation. In: Haifa verification conference, pp 86–103Google Scholar
  3. 3.
    Cadence web page (2007) Incisive Enterprise Specman Products. Resources/datasheets/specman_elite_ds.pdf; We are not aware of an academic publication of Cadence’s constraint solver
  4. 4.
    Iyer MA (2003) Race a word-level ATPG-based constraints solver system for smart random simulation. In: Proceedings of the international test conference, 2003, (ITC’03), pp 299–308Google Scholar
  5. 5.
    Chandra AK, Iyengar VS (1992) Constraint solving for test case generation: a technique for high-level design verification. In: Proceedings of IEEE international conference on computer design: VLSI in computers and processors, ICCD’92, pp 245–248Google Scholar
  6. 6.
    Lichtenstein Y, Malka Y, Aharon A (1994) Model based test generation for processor verification. In: Sixth annual conference on innovative applications of artificial intelligence, Menlo Park, USA, 1994. American association for artificial intelligence, pp 83–94Google Scholar
  7. 7.
    Lewin D, Foumier L, Levinger M, Roytman E, Shurek G (1995) Constraint satisfaction for test program generation. In: Proceedings of the IEEE fourteenth annual international phoenix conference on computers and communication, pp 45–48Google Scholar
  8. 8.
    Bin E, Emek R, Shurek G, Ziv A (2002) Using a constraint satisfaction formulation and solution techniques for random test program generation. IBM Syst J 41:386–402CrossRefGoogle Scholar
  9. 9.
    Naveh Y, Rimon M, Jaeger I, Katz Y, Vinov M, Marcus E, Shurek G (2006) Constraint-based random stimuli generation for hardware verification. In: Innovative applications of artifical intellegence (IAAI’06).Google Scholar
  10. 10.
    Zhang J, Wang X (2001) A constraint solver and its application to path feasibility analysis. In: Proceedings of international journal of software engineering and knowledge engineering.Google Scholar
  11. 11.
    Godefroid P, Klarlund N, Sen K (2005) Dart: directed automated random testing. In: Proceedings of the ACM SIGPLAN conference on programming language design and implementation, PLDI’05, pp 213–223Google Scholar
  12. 12.
    Wile B, Goss JC, Roesner W (2005) Comprehensive functional verification - the complete industry cycle. Elsevier, UKGoogle Scholar
  13. 13.
    Kropf T (1999) Introduction to formal hardware verification. Springer, BerlinMATHGoogle Scholar
  14. 14.
    Clarke EM, Grumberg O, Peled DA (1999) Model Checking. MIT Press, CambridgeGoogle Scholar
  15. 15.
    Ganai MK, Gupta A (2006) Accelerating high-level bounded model checking. In: Proceedings of the IEEE/ACM international conference on computer-aided design, ICCAD’06, pp 794–801Google Scholar
  16. 16.
    Armando A, Mantovani J, Platania L (2008) Bounded model checking of software using SMT solvers instead of SAT solvers. Int J Software Tool Tech Tran 11(1):69–83CrossRefGoogle Scholar
  17. 17.
    Lavagno L, Martin G, Scheffer L (2006) Electronic design automation for integrated circuits handbook. CRC Press, Boca RatonGoogle Scholar
  18. 18.
    Adir A, Bin E, Peled O, Ziv A (2003) Piparazzi: a test program generator for micro-architecture flow verification. In: High-level design validation and test workshop, 2003. 8th IEEE International, pp 23–28Google Scholar
  19. 19.
    Aharoni M, Asaf S, Fournier L, Koifman A, Nagel R (2003) FPGen - a test generation framework for datapath floating-point verification. In: High-level design validation and test workshop. Eighth IEEE international, 2003, pp 17–22CrossRefGoogle Scholar
  20. 20.
    Adir A, Almog E, Fournier L, Marcus E, Rimon M, Vinov M, Ziv A (2004) Genesys-Pro: innovations in test program generation for functional processor verification. IEEE Design and Test of Computers 21:84–93CrossRefGoogle Scholar
  21. 21.
    Behm M, Ludden J, Lichtenstein Y, Rimon M, Vinov M (2004) Industrial experience with test generation languages for processor verification. In: Design automation conference, 2004. 41st Proceedings, pp 36–40Google Scholar
  22. 22.
    SystemVerilog web page (2009).
  23. 23.
    IEEE Standard(2008) Functional verification language e 3 Aug 2008Google Scholar
  24. 24.
    Hollander Y, Morley M, Noy A (2001) The e language: a fresh separation of concerns. In: Proceedings of technology of object-oriented languages and systems, TOOLS’01Google Scholar
  25. 25.
    van Hoeve WJ (2009) Over-constrained problems. In: Hybrid Optimization: The Ten years of CPAIOR – edited collection. In: The Ten Years of CPAIOR: A Success Story, Springer, pp 1–9Google Scholar
  26. 26.
    Freuder E (1996) In pursuit of the holy grail. ACM Comput Surv 63Google Scholar
  27. 27.
    Dechter R, Kask K, Bin E, Emek R (2002) Generating random solutions for constraint satisfaction problems. In: 18th national conference on artificial intelligence, Menlo Park, USA. American association for artificial intelligence, pp 15–21Google Scholar
  28. 28.
    Borning A, Freeman-Benson B, Willson M (1992) Constraint hierarchies. Lisp Symbol Comput 5:223–270CrossRefGoogle Scholar
  29. 29.
    Mittal S, Falkenhainer B (1989) Dynamic constraint satisfaction problems. In: 8th national conference on artificial intelligence, Menlo Park, USA. American association for artificial intelligence, pp 25–32Google Scholar
  30. 30.
    Nahir A, Shiloach Y, Ziv A (2007) Using linear programming techniques for scheduling-based random test-case generation. In: Proceedings of the Haifa verification conference (HVC’06), pp 16–33Google Scholar
  31. 31.
    Adir A, Asaf S, Fournier L, Jaeger I, Peled O (2007) A framework for the validation of processor architecture compliance. In: Design automation conference, 2007, DAC ’07. 44th ACM/IEEE, pp 902–905Google Scholar
  32. 32.
    Naveh Y (2008) Guiding stochastic search by dynamic learning of the problem topography. In: Perron L, Trick MA (eds) CPAIOR. Lecture notes in computer science, vol 5015. Springer, pp 349–354Google Scholar
  33. 33.
    Sabato S, Naveh Y (2007) Preprocessing expression-based constraint satisfaction problems for stochastic local search. In: Hentenryck PV, Wolsey LA (eds) CPAIOR. Lecture notes in computer science, vol 4510. Springer, pp 244–259Google Scholar
  34. 34.
    Cadence web page (2009) The new generation testcase utility. community/blogs/fv/archive/2009/01/08/the-new-generation-testcase-utility.aspx
  35. 35.
    CoWare web page (2009) Coware processor designer.
  36. 36.
    Target web page (2009)
  37. 37.
    Pees S, Hoffmann A, Zivojnovic V, Meyr H (1999) Lisa-machine description language for cycle-accurate models of programmable dsp architectures. In: Design automation conference, 1999. 36th Proceedings, pp 933–938Google Scholar
  38. 38.
    Zivojnovic V, Pees S, Meyr H (1996) Lisa-machine description language and generic machine model for hw/sw co-design. In: IEEE workshop on VLSI signal processing IX, pp 127–136Google Scholar
  39. 39.
    Tensilica web page (2009).
  40. 40.
    ARC web page (2009) ARC configurable CPU/DSP cores. configurablecores
  41. 41.
    Tensilica web page (2009) Create TIE processor extensions.
  42. 42.
    Rimon M, Lichtenstein Y, Adir A, Jaeger I, Vinov M, Johnson S, Jani D (2006) Addressing test generation challenges for configurable processor verification. In: High-level design validation and test workshop, 2006. Eleventh annual IEEE international, pp 95–101Google Scholar
  43. 43.
    Gutkovich B, Moss A (2006) CP with architectural state lookup for functional test generation. In: High-level design validation and test workshop, 2006. Eleventh annual IEEE international, pp 111–118Google Scholar
  44. 44.
    Adir A, Founder L, Katz Y, Koyfman A (2006) DeepTrans - extending the model-based approach to functional verification of address translation mechanisms. In: High-level design validation and test workshop, 2006. Eleventh annual IEEE international, pp 102–110Google Scholar
  45. 45.
    Geller F, Veksler M (2005) Assumption-based pruning in conditional CSP. In: van Beek P (ed) CP 2005. Lecture notes in computer science, vol 3709. Springer, pp 241–255Google Scholar
  46. 46.
    Chencinski EW, Check MA, DeCusatis C, Deng H, Grassi M, Gregg TA, Helms MM, Koenig AD, Mohr L, Pandey K, Schlipf T, Schober T, Ulrich H, Walters CR (2009) IBM system z10 I/O subsystem. IBM J Res Dev 53:1–13CrossRefGoogle Scholar
  47. 47.
    Emek R, Jaeger I, Naveh Y, Bergman G, Aloni G, Katz Y, Farkash M, Dozoretz I, Goldin A (2002) X-Gen: A random test-case generator for systems and socs. In: 7th IEEE international high-level design validation and test workshop, HLDVT-02, pp 145–150Google Scholar
  48. 48.
    Abramovici M, Breuer M, Friedman A (1995) Digital systems testing and testable design. Wiley IEEE Press, New YorkGoogle Scholar
  49. 49.
    Hentenryck PV, Simonis H, Dincbas M (1992) Constraint satisfaction using constraint logic programming. In: Artificial intelligence, 58(1-3):113–159MATHCrossRefMathSciNetGoogle Scholar
  50. 50.
    Simonis H (1989) Test generation using the constraint logic programming language chip. In: Proceedings of the 6th international conference on logic programming (ICLP ’89), pp 101–112Google Scholar
  51. 51.
    Brand S (2001) Sequential automatic test pattern generation by constraint programming. In: CP2001 post conference workshop modelling and problem formulationGoogle Scholar
  52. 52.
    Hartman A, Ur S, Ziv A (1999) Short vs long: Size does make a difference. In: Proceedings of the high-level design validation and test workshop, pp 23–28Google Scholar
  53. 53.
    Ellman T (1993) Abstraction by approximate symmetry. In: IJCAI’93: Proceedings of the 13th international joint conference on artificial intelligence, Morgan Kaufmann Publishers, San Francisco, 1993, pp 916–921Google Scholar
  54. 54.
    Adir A, Arbetman Y, Dubrov B, Liechtenstein Y, Rimon M, Vinov M, Calligaro M, Cofler A, Duffy G (2005) VLIW - a case study of parallelism verification. In: Design automation conference, 2005. 42nd Proceedings, pp 779–782Google Scholar
  55. 55.
    STMicroelectronics web page (2009) STMicroelectronics demonstrates complex multimedia application on VLIW micro core. t1124p.htm
  56. 56.
    Adve SV, Gharachorloo K (1996) Shared memory consistency models: A tutorial. In: Computer,pp 66–76Google Scholar
  57. 57.
    Lamport L (1979) How to make a multiprocessor computer that correctly executes multiprocess programs. IEEE Trans Comput C-28:690–691Google Scholar
  58. 58.
    Gibbons P, Korach E (1992) The complexity of sequential consistency. In: Parallel and distributed processing, 1992. Proceedings of the Fourth IEEE Symposium on 1–4 December 1992, pp 317–325Google Scholar
  59. 59.
    Cantin J, Lipasti M, Smith J (2005) The complexity of verifying memory coherence and consistency. In: IEEE transactions on parallel and distributed systems, pp 663–671Google Scholar
  60. 60.
    Gopalakrishnan G, Yang Y, Sivaraj H (2004) QB or not QB: an efficient execution verification tool for memory orderings. In: Lecture notes in computer science: computer aided verification, pp 401–413Google Scholar
  61. 61.
    Yang Y, Gopalakrishnan G, Lindstrom G, Slind K (2004) Nemos: a framework for axiomatic and executable specifications of memory consistency models. In: Parallel and distributed processing symposium, 2004. Eighteenth international proceedings, pp 26–30Google Scholar
  62. 62.
    Adir A, Attiya H, Shurek G (2003) Information-flow models for shared memory with an application to the powerpc architecture. In: IEEE transactions on parallel and distributed systems, vol 14(5), pp 502–515CrossRefGoogle Scholar
  63. 63.
    Naveh Y (2004) Stochastic solver for constraint satisfaction problems with learning of high-level characteristics of the problem topography. In: First international workshop on local search techniques in constraint satisfaction, LSCS’04.Google Scholar

Copyright information

© Springer Science+Business Media LLC 2011

Authors and Affiliations

  1. 1.IBM Research – HaifaHaifaIsrael

Personalised recommendations