Abstract
CPA is a formalism for specifying the behavior of digital systems. It describes the input/output behavior, independent of the internal structure and operation of the system. The primary use for CPA is formal verification of digital designs, in which the behavior of a design is checked for consistency against the CPA specification. This paper describes audit, a system we are developing that formally verifies a digital design against a CPA specification. The design is represented as a state machine with multi-bit data registers that can be tested and changed on the state transitions. Whereas many verification programs that work at this level expand the data part of the machine into individual states, audit treats the registers as symbolic entities and uses symbolic simulation and first-order predicate calculus to reason about their effect on the behavior of the machine. Yet unlike other symbolic simulation programs, audit can automatically analyze the behavior of simple loops and can reason about sequences of inputs and outputs.
Chapter PDF
Similar content being viewed by others
Keywords
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.
References
Bochmann, G. V., “Hardware Specification with Temporal Logic: An Example,” IEEE Transactions on Computers C-31(3), pp. 223–231 (March, 1982).
Browne, M. C., Clarke, E. M., Dill, D. L., and Mishra, B., “Automatic Verification of Sequential Circuits Using Temporal Logic,” IEEE Transactions on Computers C-35(12), pp. 1035–1044 (December, 1986).
Darringer, J., “The application of program verification techniques to hardware verification,” Proceedings of the Sixteenth Design Automation Conference, pp. 375–381, ACM SIGDA and IEEE Computer Society DATC (June, 1979).
Crocker, S., “State deltas: A formalism for representing segments of computation,” UCLA-ENG-7784, Computer Science Department, University of California at Los Angeles (February, 1978).
Hunt, W. A., FM8501: A Verified Microprocessor, PhD Thesis, University of Texas at Austin (February, 1986).
Devadas, S., Ma, H. T., and Newton, A. R., “On The Verification of Sequential Machines At Different Levels of Abstraction,” Proceedings of the 24th Design Automation Conference, pp. 271–276, ACM/IEEE (June, 1987).
Kurshan, R. P. and McMillan, K. L., “Analysis of Digital Circuits Through Symbolic Reduction,” IEEE Transactions on Computer-Aided Design 10(11), pp. 1356–1371 (November, 1991).
Berthet, C., Coudert, O., and Madre, J., “New Ideas on Symbolic Manipulations of Finite State Machines,” International Conference on Computer Design, IEEE (September, 1990).
Bryant, R., “Graph-Based Algorithms for Boolean Function Manipulation,” IEEE Transactions on Computers C-35(8), pp. 677–691 (August, 1986).
Burch, J. R., Clarke, E. M., and Long, D. E., “Representing Circuits More Efficiently in Symbolic Model Checking,” Proceedings of the 28th Design Automation Conference, pp. 403–407, ACM/IEEE (June, 1991).
Gordon, M., “Why higher-order logic is a good formalism for specifying and verifying hardware,” in Formal Aspects of VLSI Design, Milne, G. and Subrahmanyam, P. A. (Eds.), North Holland, New York (1986).
Wegbreit, B., “The synthesis of loop predicates,” Communications of the ACM 17(2), pp. 102–112 (February, 1974).
Devadas, S., Keutzer, K., and Krishnakumar, A. S., “Design Verification and Reachability Analysis Using Algebraic Manipulation,” Proceedings of the International Conference on Computer Design, pp. 250–258, IEEE (October, 1991).
Lee, D. and Yannakakis, M., “Online Minimization of Transition Systems,” Proceedings of the 24th Annual ACM Symposium on the Theory of Computing, pp. 264–274, ACM (May, 1992).
Burch, J. R., Clarke, E. M., McMillan, K. L., Dill, D. L., and Hwang, J., “Symbolic Model Checking 10∧20 States and Beyond,” Proceedings of the Fifth Annual Symposium on Logic in Computer Science (June, 1990).
McFarland, M. C. and Kowalski, T. J., “Specifying System Behavior in CPA,” ICCD91, pp. 342–345, IEEE (October, 1991).
Chu, T., Synthesis of Self-timed VLSI Circuits from Graph-Theoretic Specifications, PhD Thesis, Department of Electrical Engineering and Computer Science, MIT (May, 1987).
McFarland, M. C., “CPA: Giving an Account of Timed System Behavior,” ACM International Workshop on Timing Issues in the Specification and Synthesis of Digital Systems (TAU'90), ACM, Vancouver, BC (August, 1990).
McFarland, M. C., Kowalski, T. J., and Peman, M. J., “Language and Formal Semantics of the Specification System CPA,” Proceedings of the International Workshop on Hardware-Software Co-design, IEEE, Estest Park, CO (September 30, 1992).
King, J. C., “Proving programs to be correct,” IEEE Transactions on Computers C-20(11), pp. 1331–1336 (November, 1971).
Sarkar, D. and De Sarkar, S. C., “Some Inference Rules for Integer Arithmetic for Verification of Flowchart Programs on Integers,” IEEE Transactions on Software Engineering 15(1), pp. 1–8 (January, 1989).
Wos, L., Overbeek, R., Lusk, E., and Boyle, J., Automated Reasoning: Introduction and Applications, McGraw-Hill, New York (1991).
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1995 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
McFarland, M.C., Kowalski, T.J. (1995). Symbolic analysis and verification of CPA descriptions. In: Camurati, P.E., Eveking, H. (eds) Correct Hardware Design and Verification Methods. CHARME 1995. Lecture Notes in Computer Science, vol 987. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-60385-9_7
Download citation
DOI: https://doi.org/10.1007/3-540-60385-9_7
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-60385-6
Online ISBN: 978-3-540-45516-5
eBook Packages: Springer Book Archive