VHDL Issue Number: 1022 Classification: Language Definition Problem Summary: A subtype Delay would aid VHDL definition and use. Related Issues: 0169 Relevant LRM Sections: 14.2, 5.3, 8.1, 8.3.1, 14.1 Key Words and Phrases: Package Standard, Time, Now, signal assignment, after clause, projected output waveform, wait statement, timeout clause, 'Delayed, 'Stable, disconnection specification Current Status: Submitted 1076-1993 Disposition: N/A Disposition Rationale: N/A Superseded By: N/A ----------------------- Date Submitted: 1991/03/14 Author of Submission: Paul Menchini Author's Affiliation: CAD Language Systems, Inc. Author's Post Address: P.O. Box 13036 Research Triangle Park, NC 27709-3036 Author's Phone Number: (919) 361-1913 Author's Fax Number: Author's Net Address: mench@clsi.com ----------------------- Date Analyzed: TBD Author of Analysis: TBD Revision Number: $Revision: 1.6 $ Date Last Revised: $Date: 1995/05/15 21:26:37 $ Description of Problem ---------------------- It would be convenient to define (in package Standard) the following subtype of Time: subtype Delay is Time range 0 nS to Time'High; This subtype could profitably be used in many models that currently use objects of type Time. For example, variable tPLH: Time; is better expressed as, variable tPLH: Delay; The initial value is then 0 nS, instead of Time'Low (a large, negative number). Of course, this change doesn't add any essential functionality, as the above variable declaration could instead be written as: variable tPLH: Time range 0 nS to Time'High; or as: variable tPLH: Time := 0 nS; However, adding the subtype Delay may simplify the final sentence of paragraph 3 of Section 8.3.1. The sentence now reads: It is an error if the time expression in a waveform element evaluates to a negative value. By using Delay, it could be simplified to: The delay expression must be of subtype Delay (possibly after implicit subtype conversion). (This phrasing assumes that the BNF for the after clause is changed from "AFTER *time*_expression" to "AFTER *delay*_expression".) Similar simplifications can also be made in the following areas: 1. The final sentence of paragraph 5 of Section 8.1, concerning the expressions in the timeout clauses of wait statements. 2. Paragraph 4 of Section 5.3, concerning the time expressions in disconnection specifications. 3. The parameter subtype for the predefined attributes 'Delayed and 'Stable could be specified as Delay. 4. The return type of Std.Standard.Now could be changed to Delay. Proposed Resolution ------------------- Add the subtype Delay to package Standard. Utilize this subtype in constraining the subtype of the time expression in the after clauses of signal assignment statements, in the timeout clauses of wait statements, in disconnection specifications, and in the predefined attributes 'Delayed and 'Stable. Also change the return subtype of Std.Standard.Now to Delay. VASG-ISAC Analysis & Rationale ------------------------------ TBD VASG-ISAC Recommendation for IEEE Std 1076-1987 ----------------------------------------------- TBD VASG-ISAC Recommendation for Future Revisions --------------------------------------------- TBD