Object-Oriented Modeling of Hardware for Embedded Systems

  • Sanjaya Kumar
  • James H. Aylor
  • Barry W. Johnson
  • Wm. A. Wulf
Part of the Current Issues in Electronic Modeling book series (CIEM, volume 7)


In this chapter, the application of object-oriented techniques to the modeling and design of hardware for embedded systems is presented. The use of these techniques is an example of cross fertilization from the software domain to the hardware domain. This work brings together several ideas common to both hardware and software, such as state, information hiding, specialization, reuse, families of components, and virtual machines. The potential advantages of object-oriented techniques when applied to hardware design are discussed and illustrated on several examples using C++, which supports user-defined data types and inheritance. It is shown that data decomposition, a decomposition technique based on abstract data types, can be applied recursively to hardware components, supporting complexity management and refinement. A representation that captures this decomposition technique, referred to as the decomposition graph, is also presented.


Virtual Machine Transformation Function Hardware Component Register File Program Counter 
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.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. [1]
    Smith, C. U., R. R. Gross, “Technology Transfer between VLSI Design and Software Engineering: CAD Tools and Design Methodologies,” Proceedings of the IEEE, Vol. 74, No. 6, June 1986, pp. 875–885.CrossRefGoogle Scholar
  2. [2]
    McFarland, M. C, A. C. Parker, R. Camposano, “The High-level Synthesis of Digital Systems,” Proceedings of the IEEE, Vol. 78, No. 2, 1990, pp. 301–318.CrossRefGoogle Scholar
  3. [3]
    Kumar, S., J. H. Aylor, B. W. Johnson, W. A. Wulf, The Codesign of Embedded Systems: A Unified Hardware/Software Representation, Kluwer Academic Publishers, Dordrecht, The Netherlands, 1996.CrossRefGoogle Scholar
  4. [4]
    Tobias, J. R., “LSI/VLSI Building Blocks,” IEEE Computer, August 1981, pp. 83–101.Google Scholar
  5. [5]
    Peels, A. J. H. M., “Designing Digital Systems — SSI and MSI vs. LSI and VLSI,” IEEE Micro, April 1987, pp. 66–80.Google Scholar
  6. [6]
    Stroustrup, B., The C++ Programming Language, 2nd Edition, Addison-Wesley Publishing Company, Reading, Massachusetts, 1991.Google Scholar
  7. [7]
    Wulf, W., M. Shaw, P. N. Hilfinger, L. Flon, Fundamental Structures of Computer Science, Addison-Wesley Publishing Company, Reading, Massachusetts, 1981.zbMATHGoogle Scholar
  8. [8]
    Liskov, B., J. Guttag, Abstraction and Specification in Program Development, MIT Press, Cambridge, Massachusetts, 1986.zbMATHGoogle Scholar
  9. [9]
    Kumar, S., J. H. Aylor, B. W. Johnson, W. A. Wulf, “Object-Oriented Techniques in Hardware Design,” IEEE Computer, Vol. 27, No. 6, June 1994, pp. 64–70.Google Scholar
  10. [10]
    Gnu C++ library.Google Scholar
  11. [11]
    Wynia, T., “RISC and CISC Processors Target Embedded Systems,” Electronic Design, June 27, 1991, pp. 55–70.Google Scholar
  12. [12]
    Wolfe, A., J. P. Shen, “Flexible Processors: A Promising Application-Specific Processor Design Approach,” Proceedings of the 21st Annual Workshop on Microprogramming and Microarchitectures, 1988, pp. 30–39.Google Scholar
  13. [13]
    Mulder, H., P. Stravers, “A Flexible VLSI Core for an Adaptable Architecture,” Proceedings of the 22nd Annual Workshop on Microprogramming and Microarchitectures, 1989, pp. 223–231.Google Scholar
  14. [14]
    Jalote, P., An Integrated Approach to Software Engineering, Springer-Verlag, New York, 1991.zbMATHGoogle Scholar
  15. [15]
    Booch, G., Object-Oriented Analysis and Design with Applications, 2nd Edition, Benjamin/Cummings Publishing Co., Inc., Redwood City, California, 1994.Google Scholar
  16. [16]
    Williams, R. D. “Class Project Fall 1990,” University of Virginia.Google Scholar
  17. [17]
    Hoare, C. A. R., “An Axiomatic Basis for Computer Programming,” Communications of the ACM, Vol. 12, No. 3, March 1969, pp. 335–355.Google Scholar
  18. [18]
    Shaw, A. C, “Reasoning About Time in Higher-Level Language Software,” IEEE Transactions on Software Engineering, Vol. 15, No. 7, July 1989, pp. 875–889.CrossRefGoogle Scholar
  19. [19]
    Davidson, J. W., J. V. Gresh, “Cint: A RISC Interpreter for the C Programming Language,” SIGPLAN ’87 Symposium on Interpreters and Interpretive Techniques, St. Paul, Minnesota, June 24–26, 1987, pp. 189–198.Google Scholar
  20. [20]
    Meyer, B., “Genericity versus Inheritance,” Proceedings of the Object-Oriented Programming Systems, Languages, and Applications Conference (OOPSLA ’86), September 1986, pp. 391–405.Google Scholar
  21. [21]
    Cardelli, L., P. Wegner, “On Understanding Types, Data Abstraction, and Polymorphism,” Computing Surveys, Vol. 17, No. 4, December 1985, pp. 471–522.CrossRefGoogle Scholar
  22. [22]
    Khoshafian, S., R. Abnous, Object Orientation: Concepts, Languages, Databases, and User Interfaces, John Wiley and Sons, Inc., New York, 1990.Google Scholar
  23. [23]
    Wulf, W. A., R. L. London, M. Shaw, “An Introduction to the Construction and Verification of Alphard Programs,” IEEE Transactions on Software Engineering, Vol. SE-2, No. 4, December 1976, pp 253–265.CrossRefGoogle Scholar
  24. [24]
    Parnas, D. L., “On the Design and Development of Program Families,” IEEE Transactions on Software Engineering, Vol. SE-2, No. 1, March 1976, pp. 1–9.CrossRefGoogle Scholar
  25. [25]
    Giloi, W. K., “Towards a Taxonomy of Computer Architectures Based on the Machine Data Type View,” 10th International Symposium on Computer Architecture, 1983, pp. 6–13.Google Scholar
  26. [26]
    Langdon, Jr., G. G., Computer Design, Computeach Press Inc., San Jose, Ca., 1982.Google Scholar
  27. [27]
    Müller, W., F. Rammig, “ODICE: Object-Oriented Hardware Description in CAD Environment,” Proceedings of the Ninth International Symposium on Computer Hardware Description Languages and their Applications, J. A. Darringer and F. J. Rammig, eds., Elsevier Science Publishers B. V. (North-Holland), IFIP, 1990, pp. 19–34.Google Scholar
  28. [28]
    Chung, M. J., S. Kim, “An Object-Oriented VHDL Design Environment,” 27th ACM/IEEE Design Automation Conference, 1990, pp. 431–436.Google Scholar
  29. [29]
    Nelson, M. L., K. A. Fontes, A. Zaky, “An Object-Oriented Approach to Computer Architecture Simulation,” Proceedings of the 25th Annual Hawaii International Conference on System Sciences (HICSS-25), Vol. 1: Architecture and Emerging Technologies, January 7–10, 1992, Kauai, Hawaii, pp. 476–485.Google Scholar
  30. [30]
    Covnot, B. M, D. W. Hurst, S. Swamy, “OO-VHDL: An Object-Oriented VHDL,” Proceedings of the fall 1994 VHDL International User’s Forum. (VIUF’94), Tyson’s Corner, Virginia, 1994.Google Scholar
  31. [31]
    Newton, D. E., P. W. Vaughn, R. P. Johns, “PRISM: An Object-Oriented System Modeling Environment with an Embedded Symbolic Spreadsheet,” Proceedings of the 1991 (23rd) Summer Computer Simulation Conference, July 22–24, 1991, Baltimore, Maryland, pp 81–86.Google Scholar
  32. [32]
    Scientific Engineering Software, Inc., SES/Workbench User’s Guide, Austin, Texas, April 1989.Google Scholar
  33. [33]
    Yokote, Y., M. Tokoro, “Concurrent Programming in Concurrent Smalltalk,” in Object-Oriented Concurrent Programming, A. Yonezawa and M. Tokoro, eds., MIT Press, Cambridge, Massachusetts, 1987.Google Scholar
  34. [34]
    Wolf, W., “Object-Oriented Programming for CAD,” IEEE Design and Test of Computers, March 1991, pp. 35–42.Google Scholar
  35. [35]
    Gupta, R., W. H. Cheng, R. Gupta, I. Hardonag, M. A. Breuer, “An Object-Oriented VLSI CAD Framework,” IEEE Computer, Volume 22, May 1989, pp. 28–37.Google Scholar
  36. [36]
    Ledbetter, L., B. Cox, “Software-ICs,” BYTE, June 1985, pp. 307–316.Google Scholar
  37. [37]
    Setliff, D., E. Kant, T. Cain, “Practical Software Synthesis,” IEEE Software, May 1993, pp. 6–10.Google Scholar
  38. [38]
    Jalote, P., “Synthesizing Implementations of Abstract Data Types from Axiomatic Specifications,” Software-Practice and Experience, Vol. 17, No. 11, November 1987, pp. 847–858.zbMATHCrossRefGoogle Scholar

Copyright information

© Kluwer Academic Publishers 1996

Authors and Affiliations

  • Sanjaya Kumar
    • 1
  • James H. Aylor
    • 2
  • Barry W. Johnson
    • 2
  • Wm. A. Wulf
    • 3
  1. 1.Honeywell Technology CenterUSA
  2. 2.Department of Electrical EngineeringUniversity of VirginiaUSA
  3. 3.Department of Computer ScienceUniversity of VirginiaUSA

Personalised recommendations