Abstract
High-performance hardware designs often intersperse combinational logic freely between level-sensitive latch layers (wherein each layer is transparent during only one clock phase), rather than utilizing master-slave latch pairs with no combinational logic between. While such designs may generally achieve much faster clock speeds, this design style poses a challenge to verification. In particular, unless the k-phase netlist N is abstracted to a full-cycle register-based netlist N′, verification of N requires k times (or greater) as many state variables as would be necessary to obtain equivalent verification of N′. We present algorithms to automatically identify and abstract k-phase netlists—i.e., to perform phase abstraction—by selectively eliminating latches. The abstraction is valid for model checking CTL* formulae which reason solely about latches of a single phase. This algorithm has been implemented in the model checker RuleBase, and used to enhance the model checking of IBM's Gigahertz Processor, which would not have been feasible otherwise due to computational constraints. This abstraction has furthermore allowed verification engineers to write properties and environments more efficiently.
Similar content being viewed by others
References
A. Albrecht and A.J. Hu, “Register transformations with multiple clock domains,” in Proceedings of the Conference on Correct Hardware Design and Verification Methods, Sept. 2001, pp. 126–139.
J. Baumgartner, “Automatic structural abstraction techniques for enhanced verification,” PhD Thesis, University of Texas at Austin, December 2002.
J. Baumgartner, A. Tripp, A. Aziz, V. Singhal, and F. Andersen, “An abstraction algorithm for the verification of generalized C-slow designs,” in Proceedings of the Conference on Computer-Aided Verification, July 2000, pp. 5–19.
I. Beer, S. Ben-David, C. Eisner, D. Fisman, A. Gringauze, and Y. Rodeh, “The temporal logic sugar,” in Proceedings of the Conference on Computer-Aided Verification, July 2001, pp. 363–367.
I. Beer, S. Ben-David, C. Eisner, and A. Landver, “RuleBase: An industry-oriented formal verification tool,” in Proceedings of the Design Automation Conference, June 1996, pp. 655–660.
M.C. Browne, E.M. Clarke, and O. Grumberg, “Characterizing finite kripke structures in propositional temporal logic,” Theoretical Computer Science, Vol. 59, pp. 115–131, 1988.
J. Cheriyan and S.N. Maheshwari, “Analysis of preflow push algorithms for maximum network flow,” SIAM Journal on Computing, Vol. 18, pp. 1057–1086, 1989.
E.M. Clarke, E.A. Emerson, and A.P. Sistla, “Automatic verification of finite-state concurrent systems using temporal logic specifications,” ACM Transactions on Programming Languages and Systems, Vol. 8, No. 2, pp. 244–263, 1986.
E.A. Emerson and J.Y. Halpern, “Sometimes and not never revisited: On branching time versus linear time temporal logic,” Journal of the ACM, Vol. 33, No. 1, pp. 151–178, 1986.
O. Grumberg and D.E. Long, “Module checking and modular verification,” ACM Transactions on Programming Languages and Systems, Vol. 16, No. 3, pp. 843–871, 1994.
G. Hasteer, A. Mathur, and P. Banerjee, “Efficient equivalence checking of multi-phase designs using phase abstraction and retiming,” in ACM Transactions on Design Automation of Electronic Systems, October 1998, pp. 600–625.
T.A. Henzinger, S. Qadeer, and S.K. Rajamani, “Assume-guarantee refinement between different time scales,” in Proceedings of the Conference on Computer-Aided Verification, July 1999, pp. 208–221.
A.J. Hu, G. York, and D.L. Dill, “New techniques for efficient verification with implicitly conjoined BDDs,” in Proceedings of the Design Automation Conference, June 1994, pp. 276–282.
H. Jin, A. Kuehlmann, and F. Somenzi, “Fine-grain conjunction scheduling for symbolic reachability analysis,” in Tools and Algorithms for the Construction and Analysis of Systems, April 2002, pp. 312–326.
Z. Kohavi, Switching and Finite Automata Theory, Computer Science Series, McGraw-Hill Book Company, 1970.
A. Kuehlmann and J. Baumgartner, “Transformation-based verification using generalized retiming,” in Proceedings of the Conference on Computer-Aided Verification, July 2001, pp. 104–117.
C.E. Leiserson and J.B. Saxe, “Optimizing synchronous systems,” Journal of VLSI and Computer Systems, Vol. 1, No. 1, pp. 41–67, 1983.
C.E. Leiserson and J.B. Saxe, “Retiming synchronous circuitry,” Algorithmica, Vol. 6, No. 1, pp. 5–35, 1991.
K.L. McMillan, Symbolic Model Checking, Kluwer Academic Publishers, 1993.
R. Milner, Communication and Concurrency, Prentice Hall, New York, 1989.
J.B. Orlin, “A faster strongly polynomial minimum cost flow algorithm,” in Proceedings of the 20th ACM Symposium on the Theory of Computing, May 1988, pp. 377–387.
R. Rudell, “Dynamic variable ordering for ordered binary decision diagrams,” in IEEE/ACM International Conference on Computer-Aided Design, Nov. 1993, pp. 42–47.
H. Touati and R. Brayton, “Computing the initial states of retimed circuits,” IEEE Transactions on Computer-Aided Design, Vol. 12, No. 1, pp. 157–162, 1993.
N.Weste, K. Eshraghian, and M.J.S. Smith, Principles of CMOSVLSI Design: A Systems Perspective, Addison Wesley, 2001.
Author information
Authors and Affiliations
Rights and permissions
About this article
Cite this article
Baumgartner, J., Heyman, T., Singhal, V. et al. An Abstraction Algorithm for the Verification of Level-Sensitive Latch-Based Netlists. Formal Methods in System Design 23, 39–65 (2003). https://doi.org/10.1023/A:1024485130001
Issue Date:
DOI: https://doi.org/10.1023/A:1024485130001