Facilitating timing debug by logic path correspondence

Synthesis tools for high-performance VLSI designs employ aggressive logic optimization techniques in order to meet physical requirements such as area and cycle time. During these optimizations, the original structure of the design, which is usually written in a hardware description language (HDL), is lost. It is difficult, and often impossible, to relate signals after synthesis to the original signals in the HDL code. Some signals only lose their names while for others there are no equivalent counterparts in the design after synthesis. Debugging timing problems is based on timing reports which are usually represented in terms of the post-synthesis design. Hence, it is difficult to relate critical paths in the timing reports to the relevant paths in the HDL code when a logic fix is needed. In this paper, we propose a different approach for dealing with the correspondence problem: instead of trying to relate signals we relate paths. Given a critical path in a post-synthesis representation, our method is able to find all corresponding paths in the pre-synthesis (HDL) representation. As a result, locating the parts in the HDL which are relevant to the given timing problem becomes trivial. A novel Sat-based algorithm for dealing with the path-correspondence problem is described. Experimental results on various industrial high-end processor designs show the effectiveness of our algorithm in substantially reducing the amount of paths in the HDL which one will have to consider when debugging a given critical path.

[1]  Tobias Schüle,et al.  Three-valued logic in bounded model checking , 2005, Proceedings. Second ACM and IEEE International Conference on Formal Methods and Models for Co-Design, 2005. MEMOCODE '05..

[2]  Robert K. Brayton,et al.  Logic Minimization Algorithms for VLSI Synthesis , 1984, The Kluwer International Series in Engineering and Computer Science.

[3]  Tsutomu Sasao,et al.  Logic Synthesis and Verification , 2013 .

[4]  Yusuke Matsunaga An efficient equivalence checker for combinational circuits , 1996, DAC '96.

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

[6]  Andreas Kuehlmann,et al.  Equivalence checking using cuts and heaps , 1997, DAC.

[7]  Kwang-Ting Cheng,et al.  False-path-aware statistical timing analysis and efficient path selection for delay testing and timing validation , 2002, DAC '02.

[8]  Robert K. Brayton,et al.  Recording Synthesis History for Sequential Verification , 2008, 2008 Formal Methods in Computer-Aided Design.

[9]  Jing-Jia Liou,et al.  False-path-aware statistical timing analysis and efficient path selection for delay testing and timing validation , 2002, Proceedings 2002 Design Automation Conference (IEEE Cat. No.02CH37324).

[10]  Fabio Somenzi,et al.  Logic synthesis and verification algorithms , 1996 .

[11]  Y. Matsunaga An efficient equivalence checker for combinational circuits , 1996, 33rd Design Automation Conference Proceedings, 1996.

[12]  Dave Thomas,et al.  IBM POWER6 microprocessor physical design and design methodology , 2007, IBM J. Res. Dev..

[13]  Shao-Lun Huang,et al.  Match and replace — A functional ECO engine for multi-error circuit rectification , 2011, 2011 IEEE/ACM International Conference on Computer-Aided Design (ICCAD).

[14]  David Hung-Chang Du,et al.  Path sensitization in critical path problem , 1991, 1991 IEEE International Conference on Computer-Aided Design Digest of Technical Papers.

[15]  Shao-Lun Huang,et al.  Match and replace - A functional ECO engine for multi-error circuit rectification , 2011, ICCAD.

[16]  Niklas Sörensson,et al.  An Extensible SAT-solver , 2003, SAT.