VHDL Modeling
Terminology and Taxonomy

Version 3.0
April 1, 1999

http://www.atl.lmco.com/rassp/taxon
http://rassp.scra.org

RASSP Taxonomy Working Group (RTWG)


Contents

1. Modeling Taxonomy
2. Internal/External Concept
3. General Modeling Concepts
       3.1 Primary Model Classes
            3.1.1 Behavior
            3.1.2 Function
            3.1.3 Structure
       3.2 Specialized Model Classes
            3.2.1 Performance Model
            3.2.2 Interface Model
            3.2.3 Mixed-Level Model
            3.2.4 Virtual Prototype
       3.3 Distinguishing Structure/Behavior/Interface Models
4. System Models
       4.1 Executable Specification
       4.2 Mathematical-Equation Model
       4.3 Algorithm Model
5. Architecture Models
       5.1 Data Flow Graph (DFG)
       5.2  Token-Based Performance Model
6. Hardware Models
       6.1 Abstract Behavioral Model
       6.2 Detailed-Behavioral Model
       6.3 Instruction Set Architecture (ISA) Model
       6.4 Register Transfer Level (RTL) Model
       6.5 Logic-Level Model
       6.6 Gate-Level Model
       6.7 Switch Level Model
       6.8 Circuit Level Model
       6.9 Pure Structural Model
7. Software Hierarchy
       7.1 Data Flow Graph (DFG) Task Primitive
       7.2 Pseudo-code
       7.3 High Level Language (HLL)
       7.4 Assembly Code
       7.5 Micro code
       7.6 Object-Code
8. Supporting Terms
       8.1 Abstraction Level and Hierarchy
       8.2 Design Object Classes
            8.2.1 System
            8.2.2 Component, Module
            8.2.3 Architecture
            8.2.4 Hardware
            8.2.5 Software
            8.2.6 Firmware
       8.3 Information Classes
            8.3.1 Data
            8.3.2 Control
       8.4 Design Process Terms
       8.5 Design Tools
       8.6 Test Related Terms
       8.7 Requirements and Specifications
       8.8 Reusability and Interoperability
Appendix A: Background
Appendix B: Prior Taxonomies
Appendix C: Additional Attributes

Copyright (C) 1998 RASSP Taxonomy Working Group

Copying and distributing verbatim copies of this document is permitted provided that the working group author's credits and this notice appear intact on each copy. Modifying copies of this document is not allowed without consent of the RTWG. Portions of this document may be included in other documents provided proper accreditation to the original document and the RTWG is cited. RASSP VHDL Modeling Terminology and Taxonomy


The current taxonomy working group is comprised of the following members:
         Carl Hein                            Todd Carpenter
      Lockheed Martin                    Honeywell Technology Center
Advanced Technology Laboratories          MPLS, MN 55418-1006
      Camden, NJ 08102
      chein@atl.lmco.com                                                      

       Vijay Madisetti                        Allan Anderson
School of Electrical & Computer Eng.      MIT Lincoln Laboratory
 Georgia Institute of Technology         Lexington, MA  01273-9108
    Atlanta, GA  30332-0250

        Arnold Bard                         J.P. Letellier
       US Army CECOM                     Navel Research Laboratory
   Fort Monmouth, NJ  07703             Washington, DC  20375-5336

       Robert Klenke                      Capt. Greg Peterson
    Dept. of Elect. Eng.                      Wright Labs
Charlottesville, VA  22903-2442          WPAFB, OH  45433-7319

      Mark Pettigrew                        Perry Alexander
Sanders - A Lockheed Martin Company    U.Cincinnati, Elect. & Comp Dept.
    Hudson, N.H. 03051                    Cincinnati, OH  45221-0030

      Geoffrey Frank
   RTI Center for Systems Eng. 
Research Triangle Pk, NC 27709-2194 

The following have been past contributors to the working group: Anthony Gadient Randy Harr SCRA Advanced Research Projects Agency North Charleston, SC 29418 Electronic Systems Technology Office Arlington, VA 22203-1714 Paul Kalutkiewicz Lockheed Sanders Advanced Engineering & Technology Nashua, NH 03061-0868


Summary

The increasing complexity, time to market pressures, and life-cycle-costs of digital systems motivate development of new design and prototyping methods. In particular, hierarchical VHDL model-based design techniques were developed and demonstrated as part of the ARPA/Tri-Services sponsored Rapid-prototyping of Application Specific Signal Processors (RASSP) program. Meeting the rapid prototyping challenges requires unambiguous transfer of design information and communication about modeling modes between developers. To address the need for conventions in modeling and terminology, the participating organizations of the RASSP program formed the RASSP Terminology Working Group (RTWG). Based upon examination and comparison of previously published modeling taxonomies, the working group designed a multi-axis taxonomy to describe the information content of computer model types and abstraction levels and to facilitate selection and construction of interoperable models. The taxonomy is then used to concisely refine the definitions of modeling terms that are especially important in RASSP.

1 Modeling Taxonomy

The modeling taxonomy provides a means to categorize models according to a set of attributes. The attributes are useful in distinguishing models intended for distinctly different purposes. The taxonomy is used to establish formal definitions which are concise and unambiguous for the various model types. The taxonomy was developed by the RASSP Terminology Working Group (RTWG) to address increasing terminology and model interoperability challenges facing designers. Appendix A provides background information about the RTWG and the needs addressed by the taxonomy. The resulting taxonomy and glossary was partially based on prior efforts as described in Appendix B: Prior Taxonomies. Descriptions and definitions are provided in Section 8 for many of the terms used in this document.

1.1 Taxonomy Axes

The taxonomy represents model attributes that are relevant to designers and model users. It is based on common terminology that is readily understood and used by designers. The taxonomy consists of a set of attributes or axes that characterize a model's relative resolution of details for important model aspects. The taxonomy axes, shown in figure 1, identify five distinct model characteristics:
  1. Temporal detail
  2. Data Value detail
  3. Functional detail
  4. Structural detail
  5. Programming level
The first four attributes do not address the hardware/software codesign aspect of a model, because they do not describe how a hardware model appears to software. The fifth axis represents the level of software programmability of a hardware model or, conversely, the abstraction level of a software component in terms of the complementary hardware model that will interpret it.

Figure 1 - Taxonomy Axes

Sections 3-7 define vocabulary terms graphically relative to the taxonomy axes to show each term's applicable coverage. The key in figure 2 should be used to interpret the graphic. Although some terms may span a range of abstraction levels, a given model instance describes information at one specific level within the span.

Figure 2 - Symbol Key:

Another convenient method for specifying a particular model's information content is to use the textutal notation of (temporal, value, function, structure, program).

1.2 Temporal Resolution Axis

The Temporal Resolution axis represents the resolution with which events are represented on a time scale. A particular event could be described at these levels of time resolution, from high to low:

1.3 Data Resolution Axis

The Data Resolution axis represents the resolution with which the format of values are specified in a model. The contents of a register could be described at these levels of resolution, from high to low: Note that resolution is analogous to precision as distinguished from accuracy. Each representation is equally accurate; however, the first case resolves the value closer to the form actually contained in the target device. The more abstract the representation of a value is, the less implementation details are resolved.

1.4 Functional Resolution Axis

The Functional Resolution axis represents the level of detail with which a model describes the functionality of a component or system. A digital filter component could be represented by these levels of resolution, from high to low:

1.5 Structural Resolution Axis

The Structural Resolution axis represents the level of detail with which a model describes how a component is constructed from its constituent parts. An integrated circuit could be represented at these levels of resolution, from high to low:

1.6 Software Programming Resolution Axis

The Software Programming Resolution axis represents the granularity of software instructions that the model of a hardware component interprets in executing target software. A programmable device could be represented at these levels of resolution, from high to low:

For example, a token-based performance model interprets instructions which represent major tasks or subroutines such as matrix invert, vector multiply, or Fourier transform. Though the primitives may represent hundreds of lines of source code, they are interpreted as a single instruction in terms of a time-delay by a network performance model. An Instruction-Set-Architecture (ISA) model interprets individual assembly instructions. In this sense, the ISA model is programmable at a much finer granularity, or higher resolution, than the network performance model.

At the lower extreme, a model of a microcode programmable processor is programmable at an even lower level of granularity than the ISA model because it allows control of individual-register and multiplexor structures within the device during execution of an assembly-level instruction. Software design components or non-programmable models are at the opposite extreme because neither interprets programmable instructions.


2 Internal / External Concepts

Previous terminologies often mixed attributes as viewed from inside a model, with similar attributes, as viewed from the model's interface boundary. These two views are referred to as the internal and external views, respectively. Distinguishing between the internal and external views is important in selecting, using, and building models because it enables clarity and precision [5].

The RASSP Taxonomy specifies each of the first four axes from both an internal and external viewpoint. Consequently, the taxonomy effectively contains eight attributes:

and The programming level represents the interaction of hardware to software and presents no distinction between internal and external views.

Internal resolution references how a model describes the timing of events, functions, values, and structures of the elements that are contained within the boundaries of the modeled device.

External resolution describes how a model describes the interface of the modeled device to other devices. The external aspects refer to the input/output or I/O details at the boundary of the modeled device. The external details relate to how the model describes a device's interaction with devices to which it connects. External details may include timing and functional aspects, commonly refered to as protocol, as well as port structure and signal values. All of which may be abstracted to various levels in a model.

A convenient method for specifying a particular model's information content is to use the Internal / External (temporal, value, function, structure) notation. For example, the content of a particular RTL model could be specified as:


   Internal(time=uS,    value=boolean, function=full, structure=register),  
   External(time=clock, value=boolean, function=full, structure=pin), 
   SW-Program(assembly)

For contrast, an example of a particular algorithm model could be specified as:

   Internal(time=none,  data=composite, function=full, structure=none),  
   External(time=none,  data=composite, function=none, structure=none), 
   SW-Program(none)

The internal/external distinction is also known as the white-box/black-box distinction. To better understand the internal/external concept, consider viewing an integrated circuit chip (IC-chip) from outside its package as shown in figure 3 below.


Figure 3 - External View.

When viewed from outside, or externally, we can observe only the structure and behavior of the ports, (for example: how many pins there are, and what values they have when driven with various stimuli), but we cannot observe any details about how the IC-chip is implemented inside the package, or internally.

In contrast, we can think of seeing an internal view if we were to pop the lid off the IC package as shown in figure 4 below.


Figure 4 - Internal View.

Notice that now we can see some detail about how the IC-chip's insides, or internals, are implemented. This view contains internal implementation detail.

External structure is the structure of the externally viewable features, which is the structure of the externally viewable ports, or interface. Figure 5 below depicts an abstract model of the external ports (interface) of the chip. The external implementation detail is resolved as two signals which are of abstract type, integer. They are abstract because they do not reveal the bit-level implementation detail.


Figure 5 - Abstract model of external features.

A less abstract model of the external interface of the component could show the actual bit-level implementation detail of the signal ports as shown in figure 6 below.


Figure 6 - Less abstract model of external features.

This more detailed view shows the hand-shaking lines and the data port resolved as individual pins at the bit level.

Similarly, the internal details can be depicted at various levels of abstraction.


3 General Modeling Concepts

The following section contains definitions of concepts that are pervasive across many types and levels of models. The modeling concepts are divided into two groups: Primary and Specialized model Classes.

3.1 Primary Model Classes

All models are described in terms of one or more of the following three primary classes.

3.1.1 Behavioral - (Behavior = Function with Timing) (Synonym: Interpreted Model)

A behavioral model describes the function and timing of a component without describing a specific implementation. A behavioral model can exist at any level of abstraction. Abstraction depends on the resolution of implementation details. For example, a behavior model can be a model that describes the bulk time and functionality of a processor that executes an abstract algorithm, or it can be a model of the processor at the less abstract instruction-set level. The resolution of internal and external data values depends on the model's abstraction level.

3.1.2 Functional - (Function = Behavior without Timing)

A functional model describes the function of a system or component without describing a specific implementation. A functional model can exist at any level of abstraction. Abstraction depends on the resolution of implementation details. For example, a functional model can be a model that abstractly describes the function of a signal processing algorithm, or it can be a less abstract model that describes the function of an ALU for accomplishing the algorithm. The resolution of internal and external data values depends on the model's abstraction level.

3.1.3 Structural -

A structural model represents a component or system in terms of the interconnections of its constituent components. A structural model follows the physical hierarchy of the system. The hierarchy reflects the physical organization of a specific implementation. A structural model describes the physical structure of a specific implementation by specifying the components and their topological interconnections. These components can be described structurally, functionally, or behaviorally. Simulation of a structural model requires all the models in the lowest (leaf) branches of the hierarchy to be behavioral or functional models. Therefore, the effective temporal, data value, and functional resolutions depend on the leaf models. A structural model can exist at any level of abstraction. Structural resolution depends on the granularity of the structural blocks.

3.2 Specialized Model Classes

The following model classes describe models intended for specific purposes that are not unique to a particular level of abstraction.

3.2.1 Performance Model - (Synonym: Uninterpreted Model)

Performance is a collection of the measures of quality of a design that relate to the timeliness of the system in reacting to stimuli. Measures associated with performance include response time, throughput, and utilization. A performance model may be written at any level of abstraction. In general, a performance model may describe the time required to perform simple tasks such as memory access of a single CPU. However in the context of RASSP, the typical abstraction level for performance models is most often at the multiprocessor network level. For clarity, such a model is called a Token Based Performance Model (See 5.2).

3.2.2 Interface Model -

An interface model is a component model that describes the operation of a component with respect to its surrounding environment. The external port-structure, functional, and timing details of the interface are provided to show how the component exchanges information with its environment. An interface model contains no details about the internal structure, function, data values, or timing other than that necessary to accurately model the external interface behavior. External data values are usually not modeled unless they represent control information. An interface model may describe a component's interface details at any level of abstraction. The terms bus functional, and interface behavioral have also been used to refer to an interface model and are considered synonyms. The more general interface model name is preferred to the anachronistic bus functional term.

3.2.3 Mixed-Level Model - (Synonym: Hybrid Model)

A mixed-level model is a combination of models of differing abstraction levels or descriptive paradigms. Such a model is sometimes called a hybrid model. However, the RTWG prefers the term mixed-level over the term hybrid since the former is more specific.

3.2.4 Virtual Prototype -

A virtual prototype is a computer simulation model of a final product, component, or system. Unlike the other modeling terms that distinguish models based on their characteristics, the term virtual-prototype does not refer to any particular model characteristic but rather it refers to the role of the model within a design process; specifically for the role of: See prototype, physical-prototype.

Virtual prototypes can be constructed at any level of abstraction and may include a mixture of levels. Several virtual prototypes of a system under design may exist as long as each fulfills the role of a prototype. To be useful in a larger system design, a virtual-prototype model should define the interfaces of the component or system under design.

In contrast to a physical prototype, which requires detailed hardware and software design, a virtual prototype can be configured more quickly and cost-effectively, can be more abstract, and can be invoked earlier in the design process. A distinction is that a virtual prototype, being a computer simulation, provides greater non-invasive observability of internal states than is normally practical from physical prototypes.

3.3 Distinguishing Structure, Behavior, and Interface Models

The following example models distinguish: Figures 7 depicts an interface model. Notice that it contains details about the interface, or external ports, but contains no information about the internal implementation. Some level of external structure and data values can be observed, as well as some level of function and timing response to interface activities.

Figure 7 - Interface Model.

In contrast, figure 8 below depicts a behavioral model of the same component as above. Notice that this model contains information about the internal data values, functions, states, and timing aspects of the component, but no information about how the internal structure is implemented. Therefore, the internal view is said to be represented behaviorally.


Figure 8 - Behavioral Model.

In contrast to the above model, the figure 9 below depicts a model that describes the internal structure of the component to some level of detail. Remember that structure is inter-connection information. Notice that this diagram shows a decomposition into internal blocks. Because it shows how the blocks are connected to each other, at some level of abstraction, it is called a structural model, or internal structure.


Figure 9, - Structural Model.

The internal blocks of a structural model can be described either behaviorally, or can themselves be further decomposed structurally, etc.. If behaviorally described blocks exist at the bottom (leaf-level) of a structural hierarchy, then the model can be simulated. Note that the behavior of such a composite model is provided by the underlying behavioral blocks: not by the structure. The structural descriptions merely provide means for combining separate behavioral pieces. A different behavior would be exhibited if the underlying behaviors were changed.

If behavioral blocks do not exist at the bottom (leaf-level) of a structural hierarchy, then the model is a purely structural model. No behavior can be inferred if the behaviors of the underlying blocks of a structural model are unknown.

The level of abstraction of the internal view depends on the level of implementation details. The structure could be described abstractly as the interconnection of high-level blocks, or concretely as the interconnection of logic gates. Independently, the timing and functional abstraction can be described for the high-level blocks abstractly as coarse events or concretely as specific times, or for the gate-level model abstractly as the stable per-clock boolean values, or all switching rise and falls resolved to pS (intra-clock events) and signal levels and strengths.


4. System Models

The following section defines terms used to abstractly describe models of digital electronic systems, such as digital signal processing (DSP) systems or control systems. The abstraction does not include any information about any hardware or software structure for implementing the system.

4.1 Executable Specification -

An executable specification is a behavioral description of a component or system object that reflects the particular function and timing of the intended design as seen from the object's interface when executed in a computer simulation. The executable specification may describe the electrical, behavioral, or physical aspects including the power, cost, size, fit, and weight of the intended design. Denotational items such as power are normally considered factual (derived) items to be checked but not executed. Executable specifications describe the behavior or function of an object at the highest level of abstraction that still provides the proper data transformations (correct data in yields correct data out; DEFINED bad data in has the SPECIFIED output results). Executable specifications may describe an object at an arbitrary abstraction level such as the multi-processor system, architecture, or hardware or software component level. In contrast to a virtual prototype, the executable specification does not describe a system's internal structure.

The primary purposes of an executable specification are: