Skip to main content

GenMul: Generating Architecturally Complex Multipliers to Challenge Formal Verification Tools

  • Chapter
  • First Online:
Recent Findings in Boolean Techniques

Abstract

Despite the success of formal verification methods in the last 20 years, the proof of correctness of arithmetic hardware blocks involving multiplication still drives the verification tools into their limits. At the moment, the most promising methods for verification are based on Symbolic Computer Algebra (SCA), and they have shown very good results even for large and architecturally complex multipliers. To allow the community a broad comparison when verifying different multiplier architectures, open, configurable, and scalable multiplier benchmarks are needed.

In this chapter, we present the multiplier generator GenMul, which outputs multiplier circuits in Verilog. The input size of a multiplier and each multiplier stage can be configured with GenMul. In addition, GenMul is open source under MIT-license to ease for adding new architectures. Overall, this allows to challenge formal methods as shown by experiments which compare recent verification approaches.

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 84.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 109.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info
Hardcover Book
USD 109.99
Price excludes VAT (USA)
  • Durable hardcover 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

Similar content being viewed by others

Notes

  1. 1.

    Bryant already proved in his seminal paper introducing BDDs [1] that the Boolean function for the middle output bit of the binary multiplication function has only exponential BDD representations.

  2. 2.

    Word-level Decision Diagrams represent integer-valued functions \(f : \{0, 1\}^n \rightarrow \mathbb {Z}\). Many different types of Word-level Decision Diagrams have been introduced, e.g., MTBDDs, EVBDDs, BMDs, *BMDs, K*BMDs, and *PHDDs [2]. BMDs, *BMDs, K*BMDs, and *PHDDs have the advantage that they provide efficient representations for the multiplier function \(mult : \{0, 1\}^{2n} \rightarrow \mathbb {Z}\) mapping two n-bit operand vectors to the number representing the product of the two operands. Although there are papers proposing an efficient construction of Word-level Decision Diagrams from multiplier circuits by a so-called backward construction that starts from a Word-level decision diagram representing the “output word” \(\sum _{i=0}^{2n -1} z_i 2^i\) and performs substitutions of gate functions in reverse topological order [3, 4], even intensive efforts could not confirm any practical success of this approach for non-trivial multipliers.

  3. 3.

    GenMul is available on http://www.sca-verification.org/genmul.

  4. 4.

    In literature sometimes also termed significance.

  5. 5.

    For this chapter we only used 40 bits per multiplier input, since this already shows the challenges. In [20] we report results for benchmarks generated with GenMul for up to 512 × 512 multipliers.

References

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

    Article  Google Scholar 

  2. Scholl, C., Becker, B., Weis, T.: On WLCDs and the complexity of word-level decision diagrams – a lower bound for division. Formal Methods Syst. Des. Int. J. 20(3), 311 (2002)

    Article  Google Scholar 

  3. Hamaguchi, K., Morita, A., Yajima, S.: Efficient construction of binary moment diagrams for verifying arithmetic circuits. In: International Conference on Computer-Aided Design, pp. 78–82 (1995)

    Google Scholar 

  4. Keim, M., Drechsler, R., Becker, B., Martin, M., Molitor, P.: Polynomial formal verification of multipliers. Formal Methods Syst. Des. 22(1), 39–58 (2003)

    Article  Google Scholar 

  5. Drechsler, R.: Formal Verification of Circuits. Kluwer Academic Publishers, New York (2000)

    Book  Google Scholar 

  6. Diao, Y., Wei, X., Lam, T., Wu, Y.: Coupling reverse engineering and SAT to tackle np-complete arithmetic circuitry verification in ∼o(# of gates). In: ASP Design Automation Conference, pp. 139–146 (2016)

    Google Scholar 

  7. Kapur, D., Subramaniam, M.: Mechanically verifying a family of multiplier circuits. In: Computer Aided Verification, pp. 135–146 (1996)

    Google Scholar 

  8. Stoffel, D., Kunz, W.: Equivalence checking of arithmetic circuits on the arithmetic bit level. IEEE Trans. Comput. Aided Des. Circ. Syst. 23(5), 586–597 (2004)

    Article  Google Scholar 

  9. Pavlenko, E., Wedler, M., Stoffel, D., Kunz, W., Wienand, O., Karibaev, E.: Modeling of custom-designed arithmetic components in ABL normalization. In: Forum on Specification and Design Languages (2008), pp. 124–129

    Google Scholar 

  10. Vasudevan, S., Viswanath, V., Sumners, R.W., Abraham, J.A.: Automatic verification of arithmetic circuits in RTL using stepwise refinement of term rewriting systems. IEEE Trans. Comput. 56(10), 1401–1414 (2007)

    Article  MathSciNet  Google Scholar 

  11. Farahmandi, F., Alizadeh, B.: Gröbner basis based formal verification of large arithmetic circuits using gaussian elimination and cone-based polynomial extraction. Microprocessors Microsyst. 39(2), 83–96 (2015)

    Article  Google Scholar 

  12. Yu, C., Brown, Liu, W.D., Rossi, A., Ciesielski, M.: Formal verification of arithmetic circuits by function extraction. IEEE Trans. Comput. Aided Des. Circ. Syst. 35(12), 2131–2142 (2016)

    Google Scholar 

  13. Sayed-Ahmed, A., Große, D., Kühne, U., Soeken, M., Drechsler, R.: Formal verification of integer multipliers by combining Gröbner basis with logic reduction. In: Design, Automation and Test in Europe, pp. 1048–1053 (2016)

    Google Scholar 

  14. Yu, C., Ciesielski, M., Mishchenko, A.: Fast algebraic rewriting based on and-inverter graphs. IEEE Trans. Comput. Aided Des. Circ. Syst. 37(9), 1907–1911 (2017)

    Article  Google Scholar 

  15. Ritirc, D., Biere, A., Kauers, M.: Column-wise verification of multipliers using computer algebra. In: International Conference on Formal Methods in CAD, pp. 23–30 (2017)

    Google Scholar 

  16. Ritirc, D., Biere, A., Kauers, M.: Improving and extending the algebraic approach for verifying gate-level multipliers. In: Design, Automation and Test in Europe, pp. 1556–1561 (2018)

    Google Scholar 

  17. Mahzoon, A., Große, D., Drechsler, R.: Combining symbolic computer algebra and boolean satisfiability for automatic debugging and fixing of complex multipliers. In: IEEE Annual Symposium on VLSI, pp. 351–356 (2018)

    Google Scholar 

  18. Kaufmann, D., Biere, A., Kauers, M.: Verifying large multipliers by combining SAT and computer algebra. In: International Conference on Formal Methods in CAD, pp. 28–36 (2019)

    Google Scholar 

  19. Mahzoon, A., Große, D., Drechsler, R.: PolyCleaner: clean your polynomials before backward rewriting to verify million-gate multipliers. In: International Conference on Computer-Aided Design, pp. 129:1–129:8 (2018)

    Google Scholar 

  20. Mahzoon, A., Große, D., Drechsler, R.: RevSCA: Using reverse engineering to bring light into backward rewriting for big and dirty multipliers. In: Design Automation Conference, pp. 185:1–185:6 (2019)

    Google Scholar 

  21. Mahzoon, A., Große, D., Scholl, C., Drechsler, R.: Towards formal verification of optimized and industrial multipliers. In: Design, Automation and Test in Europe, pp. 544–549 (2020)

    Google Scholar 

  22. Arithmetic module generator based on ACG. Available at https://www.ecsis.riec.tohoku.ac.jp/topics/amg/i-amg (2019)

  23. Zimmermann, R.: Binary adder architectures for cell-based vlsi and their synthesis. Ph.D. dissertation, Swiss Federal Institute of Technology (1997)

    Google Scholar 

  24. Koren, I.: Computer Arithmetic Algorithms, 2nd ed. A. K. Peters, Natick (2001)

    Google Scholar 

  25. Cox, D.A., Little, J., O’Shea, D.: Ideals Varieties and Algorithms. Springer, New York (1997)

    Book  Google Scholar 

  26. “Emscripten,” Available at https://emscripten.org (2019)

Download references

Acknowledgements

This work was supported by the German Research Foundation (DFG) within the project VerA (GR 3104/6-1 and DR 297/37-1).

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Alireza Mahzoon .

Editor information

Editors and Affiliations

Appendix

Appendix

GenMulWebsite

GenMul is now available on http://www.sca-verification.org/genmul. In Fig. 3, a screenshot of the GenMul website is shown.

Rights and permissions

Reprints and permissions

Copyright information

© 2021 The Author(s), under exclusive license to Springer Nature Switzerland AG

About this chapter

Check for updates. Verify currency and authenticity via CrossMark

Cite this chapter

Mahzoon, A., Große, D., Drechsler, R. (2021). GenMul: Generating Architecturally Complex Multipliers to Challenge Formal Verification Tools. In: Drechsler, R., Große, D. (eds) Recent Findings in Boolean Techniques. Springer, Cham. https://doi.org/10.1007/978-3-030-68071-8_9

Download citation

  • DOI: https://doi.org/10.1007/978-3-030-68071-8_9

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-030-68070-1

  • Online ISBN: 978-3-030-68071-8

  • eBook Packages: EngineeringEngineering (R0)

Publish with us

Policies and ethics