Attached is a proposal for enhancing the VHDL language to enable
modeling of bi-directional devices.
regards,
Rick Munden
IEEE 200X Modeling and Productivity Change Proposal
ID: MP-1
Proposer: Richard Munden and Kevin Cameron
email: munden@eda.org
Status: Open
Proposed: 2004 July 26
Analyzed: Date
Resolved: Date
Enhancement Summary:
Enhance VHDL signals to enable modeling bi-directional nets and
devices such as switches, resistors, jumpers, relays, etc. Many digital circuits now
incorporate such devices but it is impossible to model them robustly with VHDL's
present facilities.
Related issues:
Relevant LRM section: Predefined Attributes
Enhancement Detail:
A proposed method to impliment the needed enhancement is through
additional/modified predefined attributes for signals -
S'DRIVERS
Kind: Function
Prefix: Any signal denoted by the static signal name S.
Result Type: universal_integer
Result: The number of driving processes the signal S has.
S'DRIVER_INDEX
Kind: Function
Prefix: Any signal denoted by the static signal name S.
Result Type: universal_integer
Result: The process index for the calling context for use with S'DRIVING_VALUE and
S'DRIVING. S'DRIVING is equivalent to S'DRIVING(S'DRIVER_INDEX)
and S'DRIVING_VALUE is equivalent to S'DRIVING_VALUE(S'DRIVER_INDEX).
S'DRIVING[(N)]
Kind: Function
Prefix: Any signal denoted by the static signal name S.
Paramater: universal_integer, a value between 1 and S'DRIVERS.
If omitted it defaults to S'DRIVER_INDEX.
Result Type: Boolean
Result: If the prefix denotes a scalar signal, the result is False if the current
value of the driver for S in the process whose index is N is determined
by the null transaction; True otherwise. If the prefix denotes a
composite signal the result is True if and only if R'DRIVING is True
for every Scalar subelement R of S; False otherwise.
If the the prefix denotes a null slice of a signal the result is True.
Restrictions: ... as is ...
S'DRIVING_VALUE[(N)]
Kind: Function
Prefix: Any signal denoted by the static signal name S.
Paramater: universal_integer, a value between 1 and S'DRIVERS.
If omitted it defaults to S'DRIVER_INDEX.
Result Type: The base type of S
Result: If S is a scalar signal S, the result is the current value of the
driver for S in the process whose index is N. If S is a composite
signal, the result is the aggregate of the values of R'DRIVING_VALUE
for each element R of S for drivers belonging to the process whose
index is N. If S is a null slice, the result is a null slice.
Restrictions: ... as is ...
Analysis:
----------------------------
[To be performed by the 200X Modeling & Productivity Working Group]
Resolution:
----------------------------
[To be performed by the 200X Modeling & Productivity Working Group]
Received on Mon Jul 26 17:40:39 2004
This archive was generated by hypermail 2.1.8 : Mon Jul 26 2004 - 17:40:43 PDT