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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Similar content being viewed by others
Notes
- 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.
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.
GenMul is available on http://www.sca-verification.org/genmul.
- 4.
In literature sometimes also termed significance.
- 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
Bryant, R.E.: Graph-based algorithms for Boolean function manipulation. IEEE Trans. Comput. 35(8), 677–691 (1986)
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)
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)
Keim, M., Drechsler, R., Becker, B., Martin, M., Molitor, P.: Polynomial formal verification of multipliers. Formal Methods Syst. Des. 22(1), 39–58 (2003)
Drechsler, R.: Formal Verification of Circuits. Kluwer Academic Publishers, New York (2000)
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)
Kapur, D., Subramaniam, M.: Mechanically verifying a family of multiplier circuits. In: Computer Aided Verification, pp. 135–146 (1996)
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)
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
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
Arithmetic module generator based on ACG. Available at https://www.ecsis.riec.tohoku.ac.jp/topics/amg/i-amg (2019)
Zimmermann, R.: Binary adder architectures for cell-based vlsi and their synthesis. Ph.D. dissertation, Swiss Federal Institute of Technology (1997)
Koren, I.: Computer Arithmetic Algorithms, 2nd ed. A. K. Peters, Natick (2001)
Cox, D.A., Little, J., O’Shea, D.: Ideals Varieties and Algorithms. Springer, New York (1997)
“Emscripten,” Available at https://emscripten.org (2019)
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
Corresponding author
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
Copyright information
© 2021 The Author(s), under exclusive license to Springer Nature Switzerland AG
About this chapter
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)