Presentation is loading. Please wait.

Presentation is loading. Please wait.

Types As Globally Static, First Class Objects in VHDL-X TM Nothing in this presentation implies an offer for sale. FTL Systems is willing to provide IEEE.

Similar presentations


Presentation on theme: "Types As Globally Static, First Class Objects in VHDL-X TM Nothing in this presentation implies an offer for sale. FTL Systems is willing to provide IEEE."— Presentation transcript:

1 Types As Globally Static, First Class Objects in VHDL-X TM Nothing in this presentation implies an offer for sale. FTL Systems is willing to provide IEEE Inc. a non-exclusive, cost-free license to use specific aspects of VHDL-X related to types as first class objects. The license does not include patent or copyright for other aspects of VHDL-X. The full VHDL-X LRM is FTL Systems Proprietary. Funded in part by DARPA’s ACS, NeoCAD & CLASS programs

2 Implementation Criteria VHDL-X is implemented in Release 9 of a commercial tool, in Beta release now

3 Strategy Types can be incrementally specified (subtypes) Types and subtypes can be passed as actuals during static elaboration, then used in a subtype indication Subtypes must be sufficiently specified locally to complete syntactic checks Subtypes must be sufficiently specified globally to complete semantic checks globally statically

4 Subset of VHDL-X Type-Related Features (1/2) Base type characteristics Scalar type derivation Array type derivation Record type derivation Protected type derivation Access type derivation File type derivation

5 Subset of VHDL-X Type-Related Features (2/2) Type interface declarations Packages, type generics & instantiation Entities, type generics & instantiation Subprograms, type generics & calling

6 Base type characterization Must determine: –Declarator –Kind of type (enumeration, array…) –Specified properties (as in IEEE VHDL) –Delayed properties (using <> symbol as a replacement for expression in IEEE VHDL)

7 Scalar Subtype Characterization Scalar subtypes add detail by specifying: –bounds, –implementation of predefined attributes such as ‘left, ‘right, … –visible operator implementation (overloading is still determined based on base type)

8 Array Subtype Characterization Array subtypes add detail by specifying: –index domains (number of dimensions cannot change) –element subtype –implementation of predefined attributes –visible operator implementation (overloading is still determined based on base type)

9 Record Subtype Characterization Record subtypes add detail by specifying: –additional elements –implementation of predefined attributes –visible operator implementation (overloading is still determined using base type)

10 Protected Subtype Characterization Protected subtypes add detail by specifying: –additional elements –additional subprograms –implementation of predefined attributes –visible operator implementation (overloading is still determined using base type) Incidentally, protected types can appear in any scope where a signal is allowed and can be dynamically allocated (via new)

11 Access Subtype Characterization Access subtypes add detail by specifying: –subtype of access target –visible operator implementation (overloading is still determined using base type)

12 File Subtype Characterization File subtypes add detail by specifying: –subtype of file element –visible operator implementation (overloading is still determined using base type)

13 Type Interface Declarations Include a declarator (later used to reference the post-elaboration type), base type or subtype and optional type default: type st: element := integer_base

14 Package Declarations Package declarations gain an additional, optional formal generic clause which may include constant interface declarations and type interface declarations: package p is generic (st: element := integer_base) package_declarative_part end package

15 Package Use Clauses Gain an optional generic map clause to associate generics and types or globally static expressions Packages are elaborated for each unique set of bindings on the first use

16 Entity Declarations & Instantiations Type interface declarations may be added to the generic formal clause Generic map clauses during instantiation may include a subtype binding to the type interface declaration

17 Subprograms, type generics & calling Type interface declarations may be added to subprogram signatures Actual subtype must be known during static elaboration Used to help differentiate among overloadings


Download ppt "Types As Globally Static, First Class Objects in VHDL-X TM Nothing in this presentation implies an offer for sale. FTL Systems is willing to provide IEEE."

Similar presentations


Ads by Google