skip to main content
10.1145/3240765.3240848guideproceedingsArticle/Chapter ViewAbstractPublication PagesConference Proceedingsacm-pubtype
research-article

SMTSampler: Efficient Stimulus Generation from Complex SMT Constraints

Published: 05 November 2018 Publication History

Abstract

Stimulus generation is an essential part of hardware verification, being at the core of widely applied constrained-random verification techniques. However, as verification problems get more and more complex, so do the constraints which must be satisfied. In this context, it is a challenge to efficiently generate random stimuli which can achieve a good coverage of the design space. We developed a new technique SMTSampler which can sample random solutions from Satisfiability Modulo Theories (SMT) formulas with bit-vectors, arrays, and uninterpreted functions. The technique uses a small number of calls to a constraint solver in order to generate up to millions of stimuli. Our evaluation on a large set of complex industrial SMT benchmarks shows that SMTSampler can handle a larger class of SMT problems, outperforming state-of-the-art constraint sampling techniques in the number of samples produced and the coverage of the constraint space.

References

[1]
Clark Barrett, Pascal Fontaine, and Cesare Tinelli 2016. The Satisfiability Modulo Theories Library (SMT-LIB). www.SMT-LIB.org. (2016).
[2]
Supratik Chakraborty, Daniel J Fremont, Kuldeep S Meel, Sanjit A Seshia, and Moshe Y Vardi 2015. On Parallel Scalable Uniform SAT Witness Generation. In TACAS. 304–319.
[3]
Supratik Chakraborty, Kuldeep S Meel, Rakesh Mistry, and Moshe Y Vardi 2016. Approximate Probabilistic Inference via Word-Level Counting. In AAAI, Vol. 16. 3218–3224.
[4]
Supratik Chakraborty, Kuldeep S Meel, and Moshe Y Vardi 2014. Balancing scalability and uniformity in SAT witness generator. In Design Automation Conference (DAC), 2014 51st ACM/EDAC/IEEE. IEEE, 1–6.
[5]
Leonardo De Moura and Nikolaj Bjørner, 2008. Z3: An efficient SMT solver. Tools and Algorithms for the Construction and Analysis of Systems (2008), 337–340.
[6]
Rafael Dutra Kevin Laeufer, Jonathan Bachrach, and Koushik Sen 2018. Efficient Sampling of SAT Solutions for Testing. In ICSE'18.
[7]
Nathan Kitchen and Andreas Kuehlmapp. 2007. Stimulus generation for constrained random simulation. In Computer-Aided Design, 2007. ICCAD 2007. IEEE/ACM International Conference on. IEEE, 258–265.
[8]
Nathan Boyd Kitchen 2010. Markov Chain Monte Carlo Stimulus Generation for Constrained Random Simulation. Berkeley: University of California.
[9]
Kuldeep S Meel 2014. Sampling techniques for boolean satisfiability. Master's thesis (2014).
[10]
Alexander Nadel 2011. Generating Diverse Solutions in SAT. In SAT. Springer, 287–301.
[11]
Reuven Naveh and Amit Metodi 2013. Beyond feasibility: CP usage in constrained-random functional hardware verification. In International Conference on Principles and Practice of Constraint Programming. Springer, 823–831.
[12]
Yehuda Naveh, Michal Rimon, Itai Jaeger, Yoav Katz, Michael Vinov, Eitans Marcu, and Gil Shurek 2007. Constraint-based random stimuli generation for hardware verification. AI magazine 28, 3 (2007), 13.
[13]
O Padon, KL McMillan, A Panda, M Sagiv, and S Shoham 2016 Ivy: interactive verification of parameterized systems via effectively propositional reasoning. PLDI. ACM (2016).
[14]
Wei Wei, Jordan Erenrich, and Bart Selman 2004. Towards efficient sampling: Exploiting random walk strategies. In AAAI, Vol. 4. 670–676.
[15]
Yanni Zhao, Jinian Bian, Shujun Deng, and Zhiqiu Kong 2009. Random stimulus generation with self-tuning. In Computer Supported Cooperative Work in Design, 2009. CSCWD 2009. 13th International Conference on. IEEE, 62–65.

Cited By

View all
  • (2024)Rapid Taint Assisted Concolic Execution (TACE)Companion Proceedings of the 32nd ACM International Conference on the Foundations of Software Engineering10.1145/3663529.3663812(627-631)Online publication date: 10-Jul-2024
  • (2023)SMT Sampling via Model-Guided ApproximationFormal Methods10.1007/978-3-031-27481-7_6(74-91)Online publication date: 3-Mar-2023
  • (2022)Geração Automática de Benchmarks para Compilação PreditivaProceedings of the XXVI Brazilian Symposium on Programming Languages10.1145/3561320.3561323(59-67)Online publication date: 6-Oct-2022
  • Show More Cited By

Index Terms

  1. SMTSampler: Efficient Stimulus Generation from Complex SMT Constraints
    Index terms have been assigned to the content through auto-classification.

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image Guide Proceedings
    2018 IEEE/ACM International Conference on Computer-Aided Design (ICCAD)
    Nov 2018
    939 pages

    Publisher

    IEEE Press

    Publication History

    Published: 05 November 2018

    Permissions

    Request permissions for this article.

    Qualifiers

    • Research-article

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)0
    • Downloads (Last 6 weeks)0
    Reflects downloads up to 17 Jan 2025

    Other Metrics

    Citations

    Cited By

    View all
    • (2024)Rapid Taint Assisted Concolic Execution (TACE)Companion Proceedings of the 32nd ACM International Conference on the Foundations of Software Engineering10.1145/3663529.3663812(627-631)Online publication date: 10-Jul-2024
    • (2023)SMT Sampling via Model-Guided ApproximationFormal Methods10.1007/978-3-031-27481-7_6(74-91)Online publication date: 3-Mar-2023
    • (2022)Geração Automática de Benchmarks para Compilação PreditivaProceedings of the XXVI Brazilian Symposium on Programming Languages10.1145/3561320.3561323(59-67)Online publication date: 6-Oct-2022
    • (2022)ExeBench: an ML-scale dataset of executable C functionsProceedings of the 6th ACM SIGPLAN International Symposium on Machine Programming10.1145/3520312.3534867(50-59)Online publication date: 13-Jun-2022
    • (2021)HawkEye: User-Guided Enumeration of Scenarios2021 IEEE 32nd International Symposium on Software Reliability Engineering (ISSRE)10.1109/ISSRE52982.2021.00064(569-578)Online publication date: Oct-2021
    • (2021)Accelerating Tests of Arithmetic Circuits Through On-FPGA Stimuli Generation and Their Reduction2021 International Conference on Electrical, Computer, Communications and Mechatronics Engineering (ICECCME)10.1109/ICECCME52200.2021.9590967(1-6)Online publication date: 7-Oct-2021
    • (2020)Pangolin: Incremental Hybrid Fuzzing with Polyhedral Path Abstraction2020 IEEE Symposium on Security and Privacy (SP)10.1109/SP40000.2020.00063(1613-1627)Online publication date: May-2020
    • (2019)GUIDEDSAMPLER: Coverage-guided Sampling of SMT Solutions2019 Formal Methods in Computer Aided Design (FMCAD)10.23919/FMCAD.2019.8894251(203-211)Online publication date: Oct-2019
    • (2019)Solution Enumeration Abstraction: A Modeling Idiom to Enhance a Lightweight Formal MethodFormal Methods and Software Engineering10.1007/978-3-030-32409-4_21(336-352)Online publication date: 28-Oct-2019

    View Options

    View options

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media