Abstract
Debugging is a time-consuming task. This holds especially for large programs that are usually written by different groups of programmers. An example for this observation is the hardware design domain. Nowadays hardware designs are written in special hardware description language, e.g., VHDL, by groups which work in different companies and places. Moreover, there is a high pressure for completing the system in time with a very high quality because of the huge costs for correcting a bug after manufacturing the circuit. In order to decrease time for debugging we introduce an approach for diagnosis of VHDL hardware designs and present first empirical results. In contrast to other debugging approaches we make use of model-based diagnosis which is a general diagnosis approach. The models we use are logical descriptions of the syntax and semantics of a VHDL program that can be automatically derived from the program at compile time. The main part of this paper describes a general model and the derivation of specialized models that capture only some aspects of the program. The specialized models should be used in a specific debugging situation where they deliver the most appropriate solution in reasonable time. In order to select such a model we propose the use of a probability-based selection strategy. For example, larger programs should be debugged using a model only distinguishing concurrent VHDL statements and not sequential statements. As a result of multi-model reasoning in this domain we expect performance gains allowing to debug larger designs in a reasonable time, and more expressive diagnosis results.
Similar content being viewed by others
References
E. Shapiro, Algorithmic Program Debugging, MIT Press: Cambridge, Massachusetts, 1983.
M. Weiser, “Programmers use slices when debugging,” Communications of the ACM, vol. 25, no. 7, pp. 446–452, 1982.
M. Weiser, “Program slicing,” IEEE Transactions on Software Engineering, vol. 10, no. 4, pp. 352–357, 1984.
B. Korel, “PELAS-program error-locating assistant system,” IEEE Transactions on Software Engineering, vol. 14, no. 9, pp. 1253–1260, 1988.
L. Burnell and E. Horvitz, “A synthesis of logical and probabilistic reasoning for program understanding and debugging,” in Proceedings of the International Conference on Uncertainty in Artificial Intelligence, 1993, pp. 285–291.
L. Burnell and E. Horvitz, “Structure and chance: Melding logic and probability for software debugging,” Communications of the ACM, vol. 38, no. 3, pp. 31–41, 1995.
D. Jackson, “Aspect: Detecting bugs with abstract dependences,” ACM Transactions on Software Engineering and Methodology, vol. 4, no. 2, pp. 109–145, 1995.
L. Console, G. Friedrich, and D.T. Dupré, “Model-based diagnosis meets error diagnosis in logic programs,” in Proceedings 13th International Joint Conf. on Artificial Intelligence, Chambery, Aug. 1993, pp. 1494–1499.
G.W. Bond and B. Pagurek, “A critical analysis of model-based diagnosis meets error diagnosis in logic programs,” Technical Report SCE-94-15, Carleton University, Department of Systems and Computer Engineering, Ottawa, Canada, 1994.
G.W. Bond, “Logic programs for consistency-based diagnosis,” PhD thesis, Carleton University, Faculty of Engineering, Ottawa, Canada, 1994.
G. Friedrich, M. Stumptner, and F. Wotawa, “Model-based diagnosis of hardware designs,” Artificial Intelligence, vol. 111, no. 2, pp. 3–39, 1999.
M. Stumptner and F. Wotawa, “Debugging functional programs,” in Proceedings 16th International Joint Conf. on Artificial Intelligence, Stockholm, Sweden, Aug. 1999, pp. 1074–1079.
F.Wotawa, “Debugging VHDL designs using model-based reasoning,” Artificial Intelligence in Engineering, vol. 14, no. 4, pp. 331–351, 2000.
F. Wotawa, “New directions in debugging hardware designs,” in Proceedings of the International Conference on Industrial and Engineering Applications of Artificial Intelligence and Expert Systems, 1999. Springer, Lecture Notes in Artificial Intelligence vol. 462 LNAI 462.
F. Wotawa, “Debugging synthesizeable VHDL programs,” in Proceedings of the Tenth International Workshop on Principles of Diagnosis, 1999.
F. Wotawa, “Debugging hardware designs using a value-based model,” Applied Intelligence, vol. 16, no. 1, pp. 71–92, 2002.
IEEE, IEEE Standard VHDL Language Reference Manual LRM Std 1076-1987, 1988. Institute of Electrical and Electronics Engineers, Inc. IEEE.
Z. Navabi, VHDL Analysis and Modeling of Digital Systems, McGraw-Hill, 1993.
IEEE, IEEE P1076.6/D1.12 Draft Standard For VHDL Register Transfer Level Synthesis, 1998. Institute of Electrical and Electronics Engineers, Inc. IEEE.
R. Reiter, “A theory of diagnosis from first principles,” Artificial Intelligence, vol. 32, no. 1, pp. 57–95, 1987.
J. de Kleer and B.C. Williams, “Diagnosing multiple faults,” Artificial Intelligence, vol. 32, no. 1, pp. 97–130, 1987.
R. Greiner, B.A. Smith, and R.W. Wilkerson, “A correction to the algorithm in Reiter's theory of diagnosis,” Artificial Intelligence, vol. 41, no. 1, pp. 79–88, 1989.
J. de Kleer, A.K. Mackworth, and R. Reiter, “Characterizing diagnosis and systems,” Artificial Intelligence, vol.56, 1992.
L. Console and P. Torasso, “Integrating models of correct behavior into abductive diagnosis,” in Proceedings of the European Conference on Artificial Intelligence (ECAI), Stockholm, Pitman Publishing, Aug. 1990, pp. 160–166.
J. de Kleer, A.K. Mackworth, and R. Reiter, “Characterizing diagnoses,” in Proceedings of the National Conference on Arti-ficial Intelligence (AAAI), Boston, August 1990, pp. 324–330.
B.C. Williams and P.P. Nayak, “A model-based approach to reactive self-configuring systems,” in Proceedings of the Seventh International Workshop on Principles of Diagnosis, 1996, pp. 267–274.
P. Fröhlich and W. Nejdl, “A static model-based engine for model-based reasoning,” in Proceedings 15th International Joint Conf. on Artificial Intelligence, Nagoya, Japan, Aug. 1997.
Y. El Fattah and R. Dechter, “Diagnosing tree-decomposable circuits,” in Proceedings 14th International Joint Conf. on Artificial Intelligence, 1995, pp. 1742–1748.
M. Stumptner and F. Wotawa, “Diagnosing tree-structured systems,” in Proceedings 15th International Joint Conf. on Artificial Intelligence, Nagoya, Japan, 1997.
K.-T. Cheng and A. Krstic, “Current directions in automatic test-pattern generation,” IEEE-Computer, vol. 32, no. 11, Nov. 1999.
P.-Y. Chung, Y.-M. Wang, and I.N. Hajj, “Logic design error diagnosis and correction,” IEEE Transactions on Very Large Scale Integration (VLSI) Systems, vol. 2, pp. 320–332, 1994.
C. Mateis, M. Stumptner, and F. Wotawa, “Modeling Java programs for diagnosis,” in Proceedings of the European Conference on Artificial Intelligence (ECAI), Berlin, Germany, Aug. 2000.
W. Mayer, M. Stumptner, D. Wieland, and F. Wotawa, “Can ai help to improve debugging substantially? Debugging experiences with value-based models,” in Proceedings of the European Conference on Artificial Intelligence (ECAI), Lyon, France, IOS Press, 2002, pp. 417–421.
F. Wotawa, “On the relationship between model-based debugging and program slicing,” Artificial Intelligence, vol. 135, nos. 1/2, pp. 124–143, 2002.
Rights and permissions
About this article
Cite this article
Wotawa, F. Debugging VHDL Designs: Introducing Multiple Models and First Empirical Results. Applied Intelligence 21, 159–172 (2004). https://doi.org/10.1023/B:APIN.0000033635.98612.1e
Issue Date:
DOI: https://doi.org/10.1023/B:APIN.0000033635.98612.1e