Handling design and implementation optimizations in equivalence checking for behavioral synthesis

Behavioral synthesis involves generating hardware design via compilation of its Electronic System Level (ESL) description to an RTL implementation. Equivalence checking is critical to ensure that the synthesized RTL conforms to its ESL specification. Such equivalence checking must effectively handle design and implementation optimizations. We identify two key optimizations that complicate equivalence checking for behavioral synthesis: (1) operation gating, and (2) global variables. We develop a sequential equivalence checking (SEC) framework to compare ESL designs with RTL in the presence of these optimizations. Our approach can handle designs with more than 32K LoC RTL synthesized from practical ESL designs. Furthermore, our evaluation found a bug in a commercial tool, underlining both the importance of SEC and the effectiveness of our approach.

[1]  Fei Xie,et al.  Optimizing equivalence checking for behavioral synthesis , 2010, 2010 Design, Automation & Test in Europe Conference & Exhibition (DATE 2010).

[2]  Alan Hu High-Level vs. RTL Combinational Equivalence: An Introduction , 2006, 2006 International Conference on Computer Design.

[3]  Carl Pixley,et al.  Solver technology for system-level to RTL equivalence checking , 2009, 2009 Design, Automation & Test in Europe Conference & Exhibition.

[4]  Rudolf Eigenmann,et al.  Compiler Infrastructure , 2013, International Journal of Parallel Programming.

[5]  In-Ho Moon,et al.  A Compositional Approach to the Combination of Combinational and Sequential Equivalence Checking of Circuits Without Known Reset States , 2007, 2007 Design, Automation & Test in Europe Conference & Exhibition.

[6]  Jason Cong,et al.  High-Level Synthesis for FPGAs: From Prototyping to Deployment , 2011, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems.

[7]  Yuan Lu,et al.  Embedded tutorial: formal equivalence checking between system-level models and RTL , 2005, ICCAD-2005. IEEE/ACM International Conference on Computer-Aided Design, 2005..

[8]  Joe D. Warren,et al.  The program dependence graph and its use in optimization , 1987, TOPL.

[9]  Jacob A. Abraham,et al.  Automatic decomposition for sequential equivalence checking of system level and RTL descriptions , 2006, Fourth ACM and IEEE International Conference on Formal Methods and Models for Co-Design, 2006. MEMOCODE '06. Proceedings..

[10]  Jason Cong,et al.  Behavior-Level Observability Analysis for Operation Gating in Low-Power Behavioral Synthesis , 2010, TODE.

[11]  Sorin Lerner,et al.  Validating High-Level Synthesis , 2008, CAV.

[12]  Hiroyuki Tomiyama,et al.  Proposal and Quantitative Analysis of the CHStone Benchmark Program Suite for Practical C-based High-level Synthesis , 2009, J. Inf. Process..

[13]  Jason Baumgartner,et al.  Scalable conditional equivalence checking: An automated invariant-generation based approach , 2009, 2009 Formal Methods in Computer-Aided Design.

[14]  Fei Xie,et al.  Equivalence checking for behaviorally synthesized pipelines , 2012, DAC Design Automation Conference 2012.

[15]  Fei Xie,et al.  Formal Verification for High-Assurance Behavioral Synthesis , 2009, ATVA.