This work has been accepted for publication in the Proceedings of VIUF Fall ’97 Conference. Copyright may be transferred without notice, after which this version will be superseded and may no longer be accessible. 1 SUAVE: Painless Extension for an Object-Oriented VHDL Peter J. Ashenden Dept. Computer Science The University of Adelaide, SA 5005 Australia petera@cs.adelaide.edu.au Philip A. Wilsey and Dale E. Martin Dept. ECECS, PO Box 210030 University of Cincinnati Cincinnati, OH 45221- 0030,USA phil.wilsey@uc.edu, dmartin@ececs.uc.edu Abstract The SUAVE project aims to introduce object-oriented ex- tensions to data modeling into VHDL in a way that does not disturb the existing language or its use. Designers regular- ly define abstract data types by using aspects of VHDL’s type system, subprograms, and packages. The SUAVE ap- proach builds on these basic mechanisms by strengthening the facilities for encapsulation and adding an inheritance mechanism. In addition to supporting object-orientation, these extended mechanisms improve the expressiveness of VHDL across the modeling spectrum, from high-level to gate-level. By choosing an incremental and evolutionary approach to extensions, SUAVE avoids major additions to the language that would complicate choice of mechanisms for expressing a design. This paper outlines the SUAVE ex- tensions and illustrates their use through some examples. The mechanisms and examples are readily understood as incremental extensions to current modeling practices, hence “painless extension.” 1. Introduction VHDL is widely used by designers of digital systems for specification, simulation and synthesis. Increasingly, de- signers are using VHDL at high levels of abstraction as part of the system-level design process. At this level of abstrac- tion, the aggregate behavior of a system is described in a style that is similar to that of software. Data is modeled in abstract form, rather than using any particular binary repre- sentation, and functionality is expressed in terms of inter- acting processes that perform algorithms of varying complexity. A subsequent partitioning step in the design process may determine which aspects of the modeled be- havior are to be implemented as hardware subsystems, and which are to be implemented as software. Experience in the software engineering community has lead to adoption of object-oriented design and program- ming techniques for managing complexity through ab- stract data types (ADTs) and re-use [8]. Features included in programming languages to support these techniques are abstraction and encapsulation mechanisms, inheritance, and genericity. The term “ object-based” is widely used to refer to a language that included abstraction and encapsula- tion mechanisms [21]. The term “ object-oriented” is used to refer to a language that additionally includes inheri- tance. While VHDL can be used for modeling at the system level, it has some deficiencies that make the task more dif- ficult than it would otherwise be. These difficulties center around language features (or lack of some features) for sup- porting complexity management. VHDL is currently somewhat less than object-based, as its encapsulation mechanism are weak. It is certainly not object-oriented, as it does not include any form of inheritance. While it does include a mechanism for genericity, that mechanism is se- verely limited, allowing only parameterization of units by constant values. We have discussed these issues in a pre- vious paper [2]. SUAVE aims to improve support for high-level model- ing in VHDL by extending the language with features for object-orientation and genericity in a way that does not dis- turb the existing language or its use. As well as adding spe- cific language features, some existing features are generalized, the facilities for encapsulation are strength- ened, and an inheritance mechanism is added. Private types and private parts in packages support improved en- capsulation. Type derivation, record type extension, and class-wide types with dynamic dispatching support inheri- tance. We have previously argued [3] that, in addition to * This work was partially supported by Wright Laboratory under USAF contract F33615- 95- C- 1638.