Abstract
Embedded systems are becoming increasingly common in our everyday lives. As technology progresses, these systems become more and more complex, and designers handle this increasing complexity by reusing existing components (Intellectual Property blocks). At the same time, the systems must fulfill strict requirements on reliability and correctness.
This paper proposes a formal verification methodology which smoothly integrates with component-based system-level design using a divide and conquer approach. The methodology assumes that the system consists of several reusable components, each of them already formally verified by their designers. The components are considered correct given that the environment satisfies certain properties imposed by the component. The methodology verifies the correctness of the glue logic inserted between the components and the interaction of the components through the glue logic. Each such glue logic is verified one at a time using model checking techniques.
Experimental results have shown the efficiency of the proposed methodology and demonstrated that it is feasible to apply such a verification methodology on real-life examples.
Similar content being viewed by others
References
Abadi, M. and L. Lamport. Composing Specifications. Transactions on Programming Languages and Systems, 15(1):73–132, 1993.
Abadi, M. and L. Lamport. Conjoining Specification. Transactions on Programming Languages and Systems, 17(3):507–534, 1995.
Ackland, B., A. Anesko, and D. Brinthaupt, et al. A Single-Chip, 1.6-Billion, 16-b MAC/s Multiprocessor DSP. Journal of Solid-State Circuits, 35(3), 2000.
Alur, R., C. Courcoubetis, and D.L. Dill. Model Checking for Real-Time Systems. In Proceedings of Symposium on Logic in Computer Science, Philadelphia, USA, 1990, pp. 414–425.
Alur, R. and D.L. Dill. A Theory of Timed Automata. Theoretical Computer Science, 126:183–235, 1994.
Asteroth, A. C. Baier, and U. Aß mann. Model Checking with Formula-Dependent Abstract Models. In Lecture Notes in Computer Science, 2102:155–165, 2001.
Ball, T., and S.K. Rajamani. SLIC: A Specification Language for Interface Checking (of C). Technical report, Microsoft Research, 2002.
Barringer, H., D. Giannakopoulou, and C.S. Pasareanu. Proof Rules for Automated Compositional Verification Through Learning. In Proceedings of Specification and Verification of Component-Based Systems, Helsinki, Finland, 2003, pp. 14–21.
Caldwell, A.E., H-J. Choi, and A.B. Kahng. Effective Iterative Techniques for Fingerprinting Design IP. In Proceedings of Design Automation Conference, New Orleans, USA, 1999, pp. 843–848.
Cheung, S.C. and J. Kramer. Context Constraints for Compositional Reachability Analysis. Transactions on Software Engineering and Methodology, 5(4):334–377, 1996.
Clarke, E.M., E.A. Emerson, and A.P. Sistla. Automatic Verification of Finite-State Concurrent Systems Using Temporal logic specifications. Transactions on Programming Languages and Systems, 8(2):244–263, 1986.
Clarke, E.M., O. Grumberg, and D.A. Peled. Model Checking. The MIT Press, Cambridge, USA, 1999.
Clarke, E.M., O. Grumberg, S. Jha, et al. Counterexample-Guided Abstraction Refinement. In Proceedings of International Conference on Computer Aided Verification, Chicago, USA, 2000, pp. 154–169.
Cortés, L.A., P. Eles, and Z. Peng. Verification of Embedded Systems Using a Petri Net Based Representation. In Proceedings of International Symposisum on System Synthesis, Madrid, Spain, 2000, pp. 149–155.
Coudert, O. and J.C. Madre. A Unified Framework for the Formal Verification of Sequential Circuits. In Proceedings of International Conference on Computer Aided Design, Santa Clara, USA, 1990, pp. 126–129.
de Alfaro, L., and T.A. Henzinger. Interface Automata. In Proceedings of the Annual ACM Symposium on Foundations of Software Engineering, Vienna, Austria, 2001, pp. 109–120.
Gajski, D., A C.-H. Wu, V. Chaiyakul, et al. Essential Issues for IP Reuse. In Proceedings of Asia and South Pacific Design Automation Conference, Yokohama, Japan, 2000, pp. 37–42.
Grumberg, O. and D.E. Long. Model Checking and Modular Verification. Transactions on Programming Languages and Systems, 16(3):843–871, 1994.
Haase, J. Design Methodology for IP Providers. In Proceedings of Design and Test in Europe, Munich, Germany, 1999, pp. 728–732.
Hong, I. and M. Potkonjak. Behavioral Synthesis Techniques for Intellectual Property Protection. In Proceedings of Design Automation Conference, New Orleans, USA, 1999, pp. 849–854.
Karlsson, D., P. Eles, and Z. Peng. Formal Verification in a Component Reuse Methodology. In Proceedings of International Symposium on System Synthesis, Kyoto, Japan, 2002, pp. 156–161.
Karlsson, D. Towards Formal Verification in a Component-Based Reuse Methodology. Licentiate Thesis No 1058, Linköping Studies in Science and Technology, http://www.ep.liu.se/lic/science_technology/10/58/, Linköping, Sweden, 2003.
Karlsson, D., P. Eles, and Z. Peng. A Formal Verification Methodology for IP-based Designs. In Proceedings of EUROMICRO Symposium on Digital System Design, Rennes, France, 2004, pp. 372–379.
Keating, M. and P. Bricaud. Reuse Methodology Manual for System-on-a-Chip Designs. Kluwer Academic Publishers, Boston, USA, 1998.
Pnueli, A. In Transition for Global to Modular Temporal Reasoning About Programs. In Logics and Models of Concurrent Systems, vol. 13, Springer-Verlag, 1984.
Roop, P.S. and A. Sowmya. Forced Simulation: A Technique for Automating Component Reuse in Embedded Systems. Transactions on Design Automation of Electronic Systems, 6(4):602–628, 2001.
Roop, P.S., A. Sowmya, and S. Ramesh. k-Time Forced Simulation: A Formal Verification Technique for IP Reuse. In Proceedings of International Conference on Computer Design, San Jose, USA, 2002, pp. 50–55.
Rowson, J.A. and A. Sangiovanni-Vincentelli. Interface-Based Design. In Proceedings of Design Automation Conference, Anaheim, USA, 1997, pp. 178–183.
Roychoudhury, A., T. Mitra, and S.R. Karri. Using Formal Techniques to Debug the AMBA System-on-Chip Bus Protocol. In Proceedings of Design and Test in Europe, Munich, Germany, 2003, pp. 828–833.
Rushby, J. Theorem Proving for Verification. Lecture Notes in Computer Science, 2067:39–57, 2001.
Savage, W., J. Chilton, and R. Camposano. IP Reuse in the System on a Chip Era. In Proceedings of International Symposium on System Synthesis, Madrid, Spain, 2000, pp. 2–7.
Schneider, F.B. Enforceable Security Policies. Transactions on Information and System Security, 3(1):3–50, 2000.
Seepold, R., N.M. Madrid, A. Vörg, et al. A Qualification Platform for Design Reuse. In Proceedings of International Symposium on Quality Electronic Design, San Jose, USA, 2002, pp. 75–80.
Spitznagel, B., and D. Garlan. A Compositional Formalization of Connector Wrappers. In Proceedings of International Conference on Software Engineering, Portland, USA, 2003, pp. 374–384.
Vahid, F. and L. Tauro. An Object-Oriented Communication Library for Hardware-Software CoDesign. In Proceedings of Workshop on HW/SW Codesign, Braunschweig, Germany, 1997, pp. 81–86.
Xie, F. and J.C. Browne. Verified Systems by Composition from Verified Components. In Symposium on Foundations of Software Engineering, Helsinki, Finland, 2003, pp. 277–286.
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Karlsson, D., Eles, P. & Peng, Z. Formal verification of component-based designs. Des Autom Embed Syst 11, 49–90 (2007). https://doi.org/10.1007/s10617-006-9723-3
Received:
Revised:
Accepted:
Issue Date:
DOI: https://doi.org/10.1007/s10617-006-9723-3