Approximate Logic Synthesis: A Survey

Approximate computing is an emerging paradigm that, by relaxing the requirement for full accuracy, offers benefits in terms of design area and power consumption. This paradigm is particularly attractive in applications where the underlying computation has inherent resilience to small errors. Such applications are abundant in many domains, including machine learning, computer vision, and signal processing. In circuit design, a major challenge is the capability to synthesize the approximate circuits automatically without manually relying on the expertise of designers. In this work, we review methods devised to synthesize approximate circuits, given their exact functionality and an approximability threshold. We summarize strategies for evaluating the error that circuit simplification can induce on the output, which guides synthesis techniques in choosing the circuit transformations that lead to the largest benefit for a given amount of induced error. We then review circuit simplification methods that operate at the gate or Boolean level, including those that leverage classical Boolean synthesis techniques to realize the approximations. We also summarize strategies that take high-level descriptions, such as C or behavioral Verilog, and synthesize approximate circuits from these descriptions.

[1]  Vikram S. Adve,et al.  LLVM: a compilation framework for lifelong program analysis & transformation , 2004, International Symposium on Code Generation and Optimization, 2004. CGO 2004..

[2]  Sherief Reda,et al.  Approximate computing for biometrie security systems: A case study on iris scanning , 2018, 2018 Design, Automation & Test in Europe Conference & Exhibition (DATE).

[3]  Eric C. Kerrigan,et al.  More Flops or More Precision? Accuracy Parameterizable Linear Equation Solvers for Model Predictive Control , 2009, 2009 17th IEEE Symposium on Field Programmable Custom Computing Machines.

[4]  Krishna V. Palem,et al.  Design and Applications of Approximate Circuits by Gate-Level Pruning , 2017, IEEE Transactions on Very Large Scale Integration (VLSI) Systems.

[5]  Sherief Reda,et al.  Automated High-Level Generation of Low-Power Approximate Computing Circuits , 2019, IEEE Transactions on Emerging Topics in Computing.

[6]  Fabrizio Lombardi,et al.  A Retrospective and Prospective View of Approximate Computing [Point of View} , 2020, Proc. IEEE.

[7]  Zhiru Zhang,et al.  Statistically certified approximate logic synthesis , 2017, 2017 IEEE/ACM International Conference on Computer-Aided Design (ICCAD).

[8]  Henry Hoffmann,et al.  Managing performance vs. accuracy trade-offs with loop perforation , 2011, ESEC/FSE '11.

[9]  Wayne Luk,et al.  Optimum wordlength allocation , 2002, Proceedings. 10th Annual IEEE Symposium on Field-Programmable Custom Computing Machines.

[10]  Bo Zhang,et al.  Optimal Slope Ranking: An Approximate Computing Approach for Circuit Pruning , 2018, 2018 IEEE International Symposium on Circuits and Systems (ISCAS).

[11]  Ilaria Scarabottolo,et al.  Circuit carving: A methodology for the design of approximate hardware , 2018, 2018 Design, Automation & Test in Europe Conference & Exhibition (DATE).

[12]  Yi Wu,et al.  Efficient Batch Statistical Error Estimation for Iterative Multi-level Approximate Logic Synthesis , 2018, 2018 55th ACM/ESDA/IEEE Design Automation Conference (DAC).

[13]  Wei Luo,et al.  Joint precision optimization and high level synthesis for approximate computing , 2015, 2015 52nd ACM/EDAC/IEEE Design Automation Conference (DAC).

[14]  Sherief Reda,et al.  BLASYS: Approximate Logic Synthesis Using Boolean Matrix Factorization , 2018, 2018 55th ACM/ESDA/IEEE Design Automation Conference (DAC).

[15]  Philippe Ryvlin,et al.  Tailoring SVM Inference for Resource-Efficient ECG-Based Epilepsy Monitors , 2019, 2019 Design, Automation & Test in Europe Conference & Exhibition (DATE).

[16]  Eero P. Simoncelli,et al.  Image quality assessment: from error visibility to structural similarity , 2004, IEEE Transactions on Image Processing.

[17]  Semeen Rehman,et al.  Architectural-space exploration of approximate multipliers , 2016, 2016 IEEE/ACM International Conference on Computer-Aided Design (ICCAD).

[18]  Kaushik Roy,et al.  ASLAN: Synthesis of approximate sequential circuits , 2014, 2014 Design, Automation & Test in Europe Conference & Exhibition (DATE).

[19]  Ilaria Scarabottolo,et al.  Partition and Propagate: an Error Derivation Algorithm for the Design of Approximate Circuits , 2019, 2019 56th ACM/IEEE Design Automation Conference (DAC).

[20]  Yi Wu,et al.  An efficient method for multi-level approximate logic synthesis under error rate constraint , 2016, 2016 53nd ACM/EDAC/IEEE Design Automation Conference (DAC).

[21]  Robert K. Brayton,et al.  DAG-aware AIG rewriting: a fresh look at combinational logic synthesis , 2006, 2006 43rd ACM/IEEE Design Automation Conference.

[22]  Fabrizio Lombardi,et al.  Design and Analysis of Inexact Floating-Point Adders , 2016, IEEE Transactions on Computers.

[23]  Jie Han,et al.  Approximate computing: An emerging paradigm for energy-efficient design , 2013, 2013 18th IEEE European Test Symposium (ETS).

[24]  Lukás Sekanina,et al.  Evolutionary Approach to Approximate Digital Circuits Design , 2015, IEEE Transactions on Evolutionary Computation.

[25]  Muhammad Shafique,et al.  autoAx: An Automatic Design Space Exploration and Circuit Building Methodology utilizing Libraries of Approximate Components , 2019, 2019 56th ACM/IEEE Design Automation Conference (DAC).

[26]  George A. Constantinides,et al.  On the Systematic Creation of Faithfully Rounded Truncated Multipliers and Arrays , 2014, IEEE Transactions on Computers.

[27]  Lukas Sekanina,et al.  TFApprox: Towards a Fast Emulation of DNN Approximate Hardware Accelerators on GPU , 2020, 2020 Design, Automation & Test in Europe Conference & Exhibition (DATE).

[28]  Puneet Gupta,et al.  Trading Accuracy for Power with an Underdesigned Multiplier Architecture , 2011, 2011 24th Internatioal Conference on VLSI Design.

[29]  Kaushik Roy,et al.  SALSA: Systematic logic synthesis of approximate circuits , 2012, DAC Design Automation Conference 2012.

[30]  Sherief Reda,et al.  ABACUS: A technique for automated behavioral synthesis of approximate computing circuits , 2014, 2014 Design, Automation & Test in Europe Conference & Exhibition (DATE).

[31]  Rolf Drechsler,et al.  BDD minimization for approximate computing , 2016, 2016 21st Asia and South Pacific Design Automation Conference (ASP-DAC).

[32]  Sandeep K. Gupta,et al.  A new circuit simplification method for error tolerant applications , 2011, 2011 Design, Automation & Test in Europe.

[33]  Kaushik Roy,et al.  MACACO: Modeling and analysis of circuits for approximate computing , 2011, 2011 IEEE/ACM International Conference on Computer-Aided Design (ICCAD).

[34]  Dimitrios Soudris,et al.  Multi-Level Approximate Accelerator Synthesis Under Voltage Island Constraints , 2019, IEEE Transactions on Circuits and Systems II: Express Briefs.

[35]  Mehdi Kamal,et al.  Dual-Quality 4:2 Compressors for Utilizing in Dynamic Accuracy Configurable Multipliers , 2017, IEEE Transactions on Very Large Scale Integration (VLSI) Systems.

[36]  S. Yang,et al.  Logic Synthesis and Optimization Benchmarks User Guide Version 3.0 , 1991 .

[37]  Pauli Miettinen,et al.  Model order selection for boolean matrix factorization , 2011, KDD.

[38]  George A. Constantinides,et al.  Numerical Data Representations for FPGA-Based Scientific Computing , 2011, IEEE Design & Test of Computers.

[39]  Rolf Drechsler,et al.  Error Bounded Exact BDD Minimization in Approximate Computing , 2017, 2017 IEEE 47th International Symposium on Multiple-Valued Logic (ISMVL).

[40]  Ilaria Scarabottolo,et al.  Judiciously Spreading Approximation Among Arithmetic Components with Top-Down Inexact Hardware Design , 2020, ARC.

[41]  Rakesh Kumar,et al.  On reconfiguration-oriented approximate adder design and its application , 2013, 2013 IEEE/ACM International Conference on Computer-Aided Design (ICCAD).

[42]  Kaushik Roy,et al.  Substitute-and-simplify: A unified design paradigm for approximate and quality configurable circuits , 2013, 2013 Design, Automation & Test in Europe Conference & Exhibition (DATE).

[43]  Kalyanmoy Deb,et al.  A Fast Elitist Non-dominated Sorting Genetic Algorithm for Multi-objective Optimisation: NSGA-II , 2000, PPSN.

[44]  Maciej J. Ciesielski,et al.  BDS: a BDD-based logic optimization system , 2000, DAC.

[45]  Petr Fišer,et al.  A Comprehensive Set of Logic Synthesis and Optimization Examples , 2016 .

[46]  Paul D. Franzon,et al.  FreePDK: An Open-Source Variation-Aware Design Kit , 2007, 2007 IEEE International Conference on Microelectronic Systems Education (MSE'07).

[47]  Randal E. Bryant,et al.  Graph-Based Algorithms for Boolean Function Manipulation , 1986, IEEE Transactions on Computers.

[48]  Rolf Drechsler,et al.  Approximation-aware rewriting of AIGs for error tolerant applications , 2016, 2016 IEEE/ACM International Conference on Computer-Aided Design (ICCAD).

[49]  Zhi-Hui Kong,et al.  Design of Low-Power High-Speed Truncation-Error-Tolerant Adder and Its Application in Digital Signal Processing , 2010, IEEE Transactions on Very Large Scale Integration (VLSI) Systems.

[50]  Sandeep K. Gupta,et al.  Approximate logic synthesis for error tolerant applications , 2010, 2010 Design, Automation & Test in Europe Conference & Exhibition (DATE 2010).

[51]  Andreas Gerstlauer,et al.  High-level synthesis of approximate hardware under joint precision and voltage scaling , 2017, Design, Automation & Test in Europe Conference & Exhibition (DATE), 2017.

[52]  Muhammad Shafique,et al.  A low latency generic accuracy configurable adder , 2015, 2015 52nd ACM/EDAC/IEEE Design Automation Conference (DAC).

[53]  George A. Constantinides,et al.  Datapath synthesis for overclocking: Online arithmetic for latency-accuracy trade-offs , 2014, 2014 51st ACM/EDAC/IEEE Design Automation Conference (DAC).

[54]  Fabrizio Lombardi,et al.  Design and Performance Evaluation of Approximate Floating-Point Multipliers , 2016, 2016 IEEE Computer Society Annual Symposium on VLSI (ISVLSI).

[55]  Qiang Xu,et al.  Approximate Computing: A Survey , 2016, IEEE Design & Test.

[56]  John Lach,et al.  A methodology for energy-quality tradeoff using imprecise hardware , 2012, DAC Design Automation Conference 2012.

[57]  Sherief Reda,et al.  DRUM: A Dynamic Range Unbiased Multiplier for approximate applications , 2015, 2015 IEEE/ACM International Conference on Computer-Aided Design (ICCAD).

[58]  Daniel Ménard,et al.  The hidden cost of functional approximation against careful data sizing — A case study , 2017, Design, Automation & Test in Europe Conference & Exhibition (DATE), 2017.

[59]  P. R. Stephan,et al.  SIS : A System for Sequential Circuit Synthesis , 1992 .

[60]  Andreas Gerstlauer,et al.  Approximate logic synthesis under general error magnitude and frequency constraints , 2013, 2013 IEEE/ACM International Conference on Computer-Aided Design (ICCAD).

[61]  Sri Parameswaran,et al.  Approximate Integer and Floating-Point Dividers with Near-Zero Error Bias , 2019, 2019 56th ACM/IEEE Design Automation Conference (DAC).

[62]  Chen Wang,et al.  Approximate Disjoint Bi-Decomposition and Its Application to Approximate Logic Synthesis , 2017, 2017 IEEE International Conference on Computer Design (ICCD).

[63]  Lingamneni Avinash,et al.  Synthesizing Parsimonious Inexact Circuits through Probabilistic Design Techniques , 2013, TECS.

[64]  Sherief Reda,et al.  A low-power dynamic divider for approximate applications , 2016, 2016 53nd ACM/EDAC/IEEE Design Automation Conference (DAC).

[65]  Vaughn Betz,et al.  Calculated Risks: Quantifying Timing Error Probability With Extended Static Timing Analysis , 2019, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems.

[66]  Andrew B. Kahng,et al.  Accuracy-configurable adder for approximate arithmetic designs , 2012, DAC Design Automation Conference 2012.

[67]  Wayne Luk,et al.  The Multiple Wordlength Paradigm , 2001, The 9th Annual IEEE Symposium on Field-Programmable Custom Computing Machines (FCCM'01).

[68]  Sherief Reda,et al.  Generalized Matrix Factorization Techniques for Approximate Logic Synthesis , 2019, 2019 Design, Automation & Test in Europe Conference & Exhibition (DATE).

[69]  Jingxiao Ma,et al.  Approximate Logic Synthesis Using BLASYS , 2019 .