Abstract
Existing formal verification methods do not handle systems that combine state machines and data paths very well. Model checking deals with finite-state machines efficiently, but model checking full designs is infeasible because the large amount of state in the data path. Theorem-proving methods may effective for verifying data path operations, but verifying the control requires finding and proving inductive invariants that characterize the reachable states of the system.
We present a new approach to verification of systems that combine control FSMs and data path operations. Invariants are specified only for a small set of control states, called clean states, where the invariants are especially simple.We avoid the need to specify the invariants for the unclean states by symbolically simulating over all paths to find the possible next clean states.
The set of all paths from one clean state to the next is represented by a regular expression, which is extracted from the control FSMs. The number of paths is infinite only if the regular expression contains stars. The method uses a heuristic to, generalize the symbolic state to cover all of the paths of the starred expression. We have implemented a prototype tool for guiding an existing symbolic simulator and verification tool and used it successfully to prove properties of the Instruction Fetch Unit of TORCH, a superscalar microprocessor designed at Stanford. With much less effort, we were able to find all the bugs in the unit that were found earlier by manually strengthening the invariants.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
S. Bensalem, Y. Lakhnech, and S. Owre. Computing abstractions of infinite state systems compositionally and automatically. In Alan J. Hu and Moshe Y. Vardi, editors, Computer Aided Verification (CAV)98, volume 1427 of Lecture Notes in Computer Science, pages 319–331, Vancouver, BC, Canada, June/July 1998. Springer-Verlag.
Saddek Bensalem, Yassine Lakhnech, and Hassen SaÏdi. Powerful techniques for the automatic generation of invariants. In Rajeev Alur and Thomas A. Henzinger, editors, Computer Aided Verification (CAV)96, volume 1102 of Lecture Notes in Computer Science, pages 323–335, New Brunswick, NJ, July/August 1996. Springer-Verlag.
N. S. BjØrner, A. Browne, and Z. Manna. Automatic generation of invariants and intermediate assertions. Theoretical Computer Science, 173(1):49–87, February 1997.
R. E. Bryant, D. L. Beatty, and C.-J. H. Seger. Formal hardware verification by symbolic ternary trajectory evaluation. In 28th ACM/IEEE Design Automation Conference, 1991.
J. R. Burch, E. M. Clarke, and D. E. Long. Representing circuits more efficiently in symbolic model checking. In 28th ACM/IEEE Design Automation Conference, 1991.
J. R. Burch, E. M. Clarke, K. L. McMillan, and D. L. Dill. Sequential circuit verification using symbolic model checking. In 27th ACM/IEEE Design Automation Conference, 1990.
M. Caplain. Finding invariant assertions for proving programs. In International Conference on Reliable Software, pages 165–171, 1975.
W. Carter, W. Joyner, and D. Brand. Symbolic simulation for correct machine design. In 16th Design Automation Conference Proceedings (1979), pages 280–286, June 1979.
R. Floyd. Assigning meaning to programs. In Proc. Symposium in Applied Mathematics, volume 19, pages 19–32, 1967.
R. W. Floyd. The Language of machines: an introduction to computability and formal languages. New York: Computer Science Press, 1994.
S. German and B. Wegbreit. A synthesizer of inductive assertions. IEEE Transactions on Software Enginnering, 1(1):68–75, March 1975.
G. Kane. MIPS RISC Architecture. Prentice Hall, 1988.
S. Katz and Z. Manna. A heuristic approach to program verification. In Proceedings: 3rd International Joint Conference on Artificial Intelligence, pages 500–512, 1976.
J King. A program verifier. In Information Processing 71 Proceedings of the IFIP Congress, volume 1, pages 234–249, 1972.
B. Levy. Microcode verification using sdvs-the method and a case study. In 17th MICRO(1984), pages 234–245, 1984.
R. Mueller and M. Ruda. Formal methods of microcode verification and synthesis. IEEE Software, 3(4):38–48, July 1986.
G. E. Nelson and D. C. Oppen. Simplification by cooperating decision procedures. ACM Transactions on Programming Languages and Systems, 1(2):245–257, October 1979.
Hassen SaÏdi and Susanne Graf. Construction of abstract state graphs with PVS. In Orna Grumberg, editor, Computer Aided Verification (CAV)97, volume 1254 of Lecture Notes in Computer Science, pages 72–83, Haifa, Israel, June 1997. Springer-Verlag.
R. E. Shostak. A practical decision procedure for arithmetic with function symbols. Journal of the ACM, 26(2):351–360, April 1979.
R. E. Shostak. Deciding combinations of theories. Technical Report SRI-CSL-132, Computer Science Laboratory, SRI International, February 1982.
M. Smith, M. Horowitz, and M. Lam. Efficient superscalar performance through boosting. In 5th International Conference on Architectural Support for Programming languages and Operating Systems, pages 248–259, Boston, MA, 1992. IEEE/ACM.
M. Smith, M. Lam, and M. Horowitz. Boosting beyond static scheduling in a superscalar processor. In 17th International Symposium on Computer Architecture, volume 18-2, pages 344–354, Seattle, WA, May 1990. IEEE/ACM.
J. Su, L. Arditi, S. Das, J. U. SkakkebÆk, and D. L. Dill. Formal verification of the TORCH microprocessor RTL design. Unpublished, 1998.
Jeffrey X. Su, David L. Dill, and Clark W. Barrett. Automatic generation of invariants in processor verification. In M. Srivas and A. Camilleri, editors, Formal Methods in Computer Aided Design (FMCAD), volume 1166 of Lecture Notes in Computer Science, pages 197–201. Springer-Verlag, November 1996.
R. Tarjan. A unify approach to path problems. Journal of the ACM, 28(3):577–593, July 1981.
Z. Zhou, X. Song, S. Tahar, E. Cerny, F. Corella, and M. Langevin. Formal verification of the island tunnel controller using multiway decision graphs. In M. Srivas and A. Camilleri, editors, Formal Methods in Computer Aided Design (FMCAD), volume 1166, pages 233–247. Springer-Verlag, November 1996.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 1998 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Su, J., Dill, D.L., SkakkebÆk, J.U. (1998). Formally Verifying Data and Control with Weak Reachability Invariants. In: Gopalakrishnan, G., Windley, P. (eds) Formal Methods in Computer-Aided Design. FMCAD 1998. Lecture Notes in Computer Science, vol 1522. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-49519-3_25
Download citation
DOI: https://doi.org/10.1007/3-540-49519-3_25
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-65191-8
Online ISBN: 978-3-540-49519-2
eBook Packages: Springer Book Archive