Approximate Hardware Generation Using Formal Techniques

  • Saman FroehlichEmail author
  • Daniel Große
  • Rolf Drechsler


When it comes to the design of hardware for approximate computing, the exactness requirement between a specification of a circuit and its implementation is relaxed. In this chapter we present two different methods to generate approximate hardware for a given specification and its non-approximated implementation. We use formal techniques to guarantee that bounds for application specific error-metrics hold.

The first method for approximate hardware generation is an exact BDD-based technique, which focuses on single-output functions. Due to the complexity of the problem, scalability is an issue. For this reason, we further present a heuristic approach, which uses Symbolic Computer Algebra to determine the error-metric. This approach is tailored for arithmetic circuits. We apply this method to Ripple-Carry-Adders and compare the results to state-of-the-art handcrafted approximate hardware.


  1. 1.
    Ahmed AS, Große D, Kühne U, Soeken M, Drechsler R (2016) Formal verification of integer multipliers by combining Gröbner basis with logic reduction. In: Design, automation and test in Europe, pp 1048–1053Google Scholar
  2. 2.
    Akers SB (1978) Binary decision diagrams. IEEE Trans Comput 27(6):509–516CrossRefGoogle Scholar
  3. 3.
    Berthold T, Heinz S, Pfetsch ME (2009) Nonlinear pseudo-boolean optimization: Relaxation or propagation? In: Theory and applications of satisfiability testing, pp 441–446Google Scholar
  4. 4.
    Brayton RK, Sangiovanni-Vincentelli AL, McMullen CT, Hachtel GD (1984) Logic minimization algorithms for VLSI synthesis. Kluwer Academic Publishers, NorwellCrossRefGoogle Scholar
  5. 5.
    Bryant RE (1986) Graph-based algorithms for boolean function manipulation. IEEE Trans Comput C-35(8):677–691CrossRefGoogle Scholar
  6. 6.
    Chair for Embedded Systems - Karlsruhe Institute of Technology. Gear - approxadderlib [Online]. Available:
  7. 7.
    Chandrasekharan A, Soeken M, Große D, Drechsler R (2016) Approximation-aware rewriting of AIGs for error tolerant applications. In: International conference on computer-aided design, pp 83:1–83:8Google Scholar
  8. 8.
    Chippa VK, Chakradhar ST, Roy K, Raghunathan A (2013) Analysis and characterization of inherent application resilience for approximate computing. In: Design Automation Conference, pp 113:1–113:9Google Scholar
  9. 9.
    Crama Y, Hansen P, Jaumard B (1990) The basic algorithm for pseudo-boolean programming revisited. Discrete Appl Math 29(2):171–185MathSciNetCrossRefGoogle Scholar
  10. 10.
    De Moura L, Bjørner N (2008) Z3: an efficient SMT solver. In: Tools and algorithms for the construction and analysis of systemsGoogle Scholar
  11. 11.
    Drechsler R, Kerttu M, Lindgren P, Thornton M (2002) Low power optimization techniques for BDD mapped circuits using temporal correlation. Can J Electr Comput Eng 27(4):1–6Google Scholar
  12. 12.
    Ernst D, Kim NS, Das S, Pant S, Rao R, Pham T, Ziesler C, Blaauw D, Austin T, Flautner K, Mudge T (2003) Razor: a low-power pipeline based on circuit-level timing speculation. In: Proceedings of the 36th annual IEEE/ACM international symposium on microarchitecture, MICRO 36, pp 7–18. IEEE Computer Society, Washington, DCGoogle Scholar
  13. 13.
    Farahmandi F, Alizadeh B (2015) Groebner basis based formal verification of large arithmetic circuits using Gaussian elimination and cone-based polynomial extraction. Microprocess Microsyst 39(2):83–96CrossRefGoogle Scholar
  14. 14.
    Froehlich S, Große D, Drechsler R (2017) Error bounded exact BDD minimization in approximate computing. In: International symposium on multi-valued logic, pp 254–259Google Scholar
  15. 15.
    Froehlich S, Große D, Drechsler R (2018) Approximate hardware generation using symbolic computer algebra employing Gröbner basis. In: Design, automation and test in EuropeGoogle Scholar
  16. 16.
    Ghandali S, Yu C, Liu D, Brown W, Ciesielski MJ (2015) Logic debugging of arithmetic circuits. In: IEEE annual symposium on VLSI, pp 113–118Google Scholar
  17. 17.
    Gupta V, Mohapatra D, Raghunathan A, Roy K (2013) Low-power digital signal processing using approximate adders. IEEE Trans Comput Aided Des Circuits Syst 32:124–137CrossRefGoogle Scholar
  18. 18.
    Kahng AB, Kang S, Kumar R, Sartori J (2010) Designing a processor from the ground up to allow voltage/reliability tradeoffs. In: International conference on high-performance computer architecture HPCA, pp 1–11Google Scholar
  19. 19.
    Lin C-H, Lin I-C (2013) High accuracy approximate multiplier with error correction. In: International conference on computer design, pp 33–38Google Scholar
  20. 20.
    Macchiarulo L, Benini L, Macii E (2001) On-the-fly layout generation for PTL macrocells. In: Design, automation and test in Europe, pp 546–551Google Scholar
  21. 21.
    Mischenko A, Case M, Brayton R, Jang S (2008) Scalable and scalably-verifiable sequential synthesis. In: International conference on computer-aided design, pp 234–241Google Scholar
  22. 22.
    Mrazek V, Hrbacek R, Vasicek Z, Sekanina L (2017) Evoapprox8b: library of approximate adders and multipliers for circuit design and benchmarking of approximation methods. In: Design, automation and test in Europe, pp 258–261Google Scholar
  23. 23.
    Mukherjee A, Marek-Sadowska M (2003) Wave steering to integrate logic and physical syntheses. IEEE Trans VLSI Syst 11(1):105–120CrossRefGoogle Scholar
  24. 24.
    Oliveira AL, Carloni LP, Villa T, Sangiovanni-Vincentelli AL (1997) An implicit formulation for exact BDD minimization of incompletely specified functions. In: Claesen L, Reis R (ed) VLSI: integrated systems on silicon, pp 315–326. Springer, BerlinCrossRefGoogle Scholar
  25. 25.
    Peymandoust A, De Micheli G (2003) Application of symbolic computer algebra in high-level data-flow synthesis. IEEE Trans Comput Aided Des Circuits Syst 22(9):1154–1165CrossRefGoogle Scholar
  26. 26.
    Ranjan A, Raha A, Venkataramani S, Roy K, Raghunathan A (2014) Aslan: synthesis of approximate sequential circuits. In: Design, automation and test in Europe, pp 364:1–364:6Google Scholar
  27. 27.
    Ravi K, McMillan KL, Shipple TR, Somenzi F (1998) Approximation and decomposition of binary decision diagrams. In: Design automation conferenceGoogle Scholar
  28. 28.
    Ritirc D, Biere A, Kauers M (2017) Column-wise verification of multipliers using computer algebra. In: International conference on formal methods in CAD, pp 23–30Google Scholar
  29. 29.
    Sauerhoff M, Wegener I (1996) On the complexity of minimizing the OBDD size for incompletely specified functions. IEEE Trans Comput Aided Des Circuits Syst 15:1435–1437CrossRefGoogle Scholar
  30. 30.
    Scholl C, Becker B (2000) On the generation of multiplexer circuits for pass transistor logic. In: Design, automation and test in Europe, pp 372–379Google Scholar
  31. 31.
    Shin D, Gupta SK (2010) Approximate logic synthesis for error tolerant applications. In: Design automation conference, pp 957–960Google Scholar
  32. 32.
    Shin D, Gupta SK (2011) A new circuit simplification method for error tolerant applications. In: Design, automation and test in Europe, pp 1566–1571Google Scholar
  33. 33.
    Shiple TR, Hojati R, Sangiovanni-Vincentelli AL, Brayton RK (1994) Heuristic minimization of BDDs using don’t cares. In: Proceedings of the design automation conference, pp 225–231Google Scholar
  34. 34.
    Soeken M, Große D, Chandrasekharan A, Drechsler R (2016) BDD minimization for approximate computing. In: ASP design automation conference, pp 474–479Google Scholar
  35. 35.
    Somenzi F (2015) CUDD: CU Decision Diagram package-release 3.0.0, University of Colorado at BoulderGoogle Scholar
  36. 36.
    The Regents of the University of California. Espresso [Online]. Available:
  37. 37.
    Venkataramani S, Sabne A, Kozhikkottu VJ, Roy K, Raghunathan A (2012) SALSA: systematic logic synthesis of approximate circuits. In: Design automation conference, pp 796–801Google Scholar
  38. 38.
    Venkataramani S, Chakradhar ST, Roy K, Raghunathan A (2015) Approximate computing and the quest for computing efficiency. In: Design automation conference, pp 120:1–120:6Google Scholar
  39. 39.
    Venkatesan R, Agarwal A, Roy K, Raghunathan A (2011) MACACO: modeling and analysis of circuits for approximate computing. In: International conference on computer-aided design, pp 667–673, November 2011Google Scholar
  40. 40.
    Wille R, Drechsler R (2009) BDD-based synthesis of reversible logic for large functions. In: Design automation conference, pp 270–275Google Scholar
  41. 41.
    Wolf C Yosys - yosys open synthesis suite [Online]. Available:
  42. 42.
    Yu C, Ciesielski M (2016) Analyzing imprecise adders using BDDs - a case study. In: IEEE annual symposium on VLSI, pp 152–157Google Scholar
  43. 43.
    Zhu N, Goh WL, Ye KS (2009) An enhanced low-power high-speed adder for error-tolerant application. In: International symposium on integrated circuits, pp 69–72Google Scholar

Copyright information

© Springer Nature Switzerland AG 2019

Authors and Affiliations

  • Saman Froehlich
    • 1
    Email author
  • Daniel Große
    • 1
    • 2
  • Rolf Drechsler
    • 1
    • 2
  1. 1.Cyber-Physical Systems, DFKI GmbHBremenGermany
  2. 2.Group of Computer ArchitectureUniversity of BremenBremenGermany

Personalised recommendations