Questions about binding

From: John Shields <John_Shields_at_.....>
Date: Wed Mar 07 2007 - 07:34:27 PST
Hi,

With respect to instantiation and binding among SV, VHDL, and SC, some assumptions will help to frame the questions and separate issues that are otherwise closely related.  First, I assume that a design unit from one language that satisfies an instantiation in another is compatible.  For that to be true, the ports and parameterization of that design unit must be compatible in kind and type.  By kind, I mean whether it is a signal, variable, constant, type, etc. and by type I am refering to the data type,e.g., integer, real, string, wire, std_logic, etc.  A further characterization of type compatible is 2 types may be compatible if they are structurally equivalent, or by virtue of strong typing rules (refering to same single type in each language, for example), or perhaps by implicit conversion rules.  If an explicit type conversion is required, then without such conversion, the types are not compatible.

The above assumptions are not meant to define what is compatible with respect to types, kinds, and design units.  It is just a definitions of terms and a separate of the issue of compatibility details from instantiation and binding.

Some initial questions to define the binding and instantiation problem:

1) What is the basic boundary between languages, i.e., are design units expected to be written entirely in the same language or can foreign language constructs be used directly within a design unit?

2) Are there any restrictions  on the final structure of a mixed language elaborated design? May any instance be a design unit from any other language?

3) In all languages, design units are compiled into libraries and subsequently, a design may be elaborated from these design units.  Are there any restrictions on the composition of a library with respect to the kinds/language of design units it may contain?

4) What order of compilation rules apply in a mixed language context?

5) With respect to each language, what are the design units of that language and which may be instantiated in which other language?
For example, A VHDL primary design unit may be a package header, an entity, or a configuration.  Package bodies and architectures are secondary design units in VHDL.  A VHDL instance is either a package instance( header plus body, if any) or a component instantiation ( entity/architecture pair).

6) With respect to each language, what are the forms of instantiation of a design unit in that language and which forms are suitable for instantiation of foreign design unit?
For example, in VHDL, a package use clause implies package instantiation and components may be instantiated by direct e/a instantiation, a component instantiation, or a configuration instantiation.  A component instantiation may be configured by a component specification, a default binding rule, or an external configuration.

7)
Each language supports parameterization of design units and mechanisms to bind those parameters to static values at elaboration.  What are the forms of declaring the parameterization of a design unit in each language?  What are the mechanisms by which such parameters may be bound in each language?  What binding mechanisms with what restrictions can be applied to an instance bound to a foreign design unit?
Note, there is an assumption of compatible parameters in kind and type already that will defined separately.

8) ...questions about finer grained cross-language access within design units, hier refs, function,procedure, class methods calls need to be considered...

Regards, John
 



--
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean. Received on Wed Mar 7 07:34:50 2007

This archive was generated by hypermail 2.1.8 : Wed Mar 07 2007 - 07:34:51 PST