Peter Ashenden
Department of Computer Science, University of Adelaide, Australia
January 1999
These projects involve development of libraries of reusable parameterized hardware and software components to support design of VHDL hardware models and testbenches. The libraries will be written using the SUAVE extensions to VHDL. The projects will also involve design projects to demonstrate use of the libraries.
Vendors of IC cells often make available libraries of VHDL models, allowing their customers to simulate designs using the components before commiting to manufacture. In standard VHDL, a component model must include a specification of the data types used at the inputs and outputs of the component. Where the same functionality is provided in different components for different data types, separate models must be provided in each case. This is despite the fact that the behaviour of the function often does not vary for different data types. An example is a multiplexer, in which the description of selecting between alternate data inputs and transmission to the output is independent of the data types of inputs and outputs.
The SUAVE extensions for type generics allow models to be parameterized with respect to the data types they manipulate. This provides much greater scope for reuse of component models than is currently afforded by standard VHDL.
The SUAVE Hardware Component Library project involves development of a set of type-parameterized hardware component models at various levels of design abstraction. It will include low-level models, including gates, counters and registers, possibly based on the Library of Parameterized Modules (see http://www.edif.org/lpmweb/). It will also include register-transfer-level models (adders, ALUs, memories, etc). If time permits, higher-level application-specific models (e.g., filters and transform units for DSP applications) will also be developed. Use of the library components will be demonstrated through various design projects, including a simple RISC CPU.
SUAVE's extensions for high-level modeling improve VHDL's support for:
Both applications require development and management of large amounts of complex model code. Hence traditional software-engineering practices are applicable. Reuse of software components is an important principle that can be applied to improve designer productivity. Languages such as C++ and Ada provide support for software component reuse through libraries of type-parameterized abstract data types (ADTs). Examples are the C++ Standard Template Library (STL), and the Ada-95 Booch Components (see http://www.pogner.demon.co.uk/components/bc/). These libraries provide such components as stacks, trees, sets, queues, graphs and maps.
The SUAVE Software Component Library project involves development of a set of type-parameterized software components, possibly based on the Ada-95 Booch Components. Since VHDL and SUAVE are based on Ada, using an Ada component library as the basis for a SUAVE component library would appear to be the most appropriate choice. Use of the library components will be demonstrated through various design and testbench projects.
Peter Ashenden
Dept. Computer Science, University of Adelaide, SA 5005, Australia
Phone: +61 8 8303 4477
Fax: +61 8 8303 4366
Email: petera@cs.adelaide.edu.au