VHDL Issue Number: 0224 Classification: Language Clarification Language Version: VHDL-87 Summary: Definition of 'HIGH and 'LOW in a null range Related Issues: 0013 Relevant LRM Sections: 3.1,14.1 Key Words and Phrases: null range, 'high and 'low values Current Status: Submitted 1076-1993 Disposition: Superseded (ISAC Issues Outstanding) Disposition Rationale: Superseded By: 1044 ----------------------- Date Submitted: 1991/03/21 Author of Submission: Laurence Groves Author's Affiliation: Synopsys Inc. Author's Post Address: 1098 Alta Ave. Mountain View, CA 94043 Author's Phone Number: (415) 962-5426 Author's Fax Number: Author's Net Address: larry@Synopsys.COM ----------------------- Date Analyzed: TBD Author of Analysis: TBD Revision Number: $Revision: 1.8 $ Date Last Revised: $Date: 1995/05/13 21:53:48 $ Description of Problem ---------------------- Consider the following: entity E is subtype S is real range 20.0 to 0.0; end; architecture A of E is begin process variable R : real := 5.0; begin R := S'HIGH; -- what is the value of R after assignment? end process; end; Is R assigned 0.0 or 20.0? According to LRM 3.1, paragraph 3: The range L to R is called an ascending range; if L > R, then the range is a null range. [...] The smaller of L and R is called the lower bound, and the larger, the upper bound, of the range. [...] The smaller of L and R is called the lower bound (= 0.0), and the larger is the upper bound (= 20.0). This appears to be true even for null arrays. Therefore, T'HIGH is the larger of L and R, and T'HIGH = 20.0. However, the note at the end of 14.1 states: The relationship between the values of the LEFT, RIGHT, LOW, and HIGH attributes is expressed in the following table: Ascending Descending Range Range T'LEFT = T'LOW T'HIGH T'RIGHT = T'HIGH T'LOW Here T'RIGHT and T'HIGH are equivalent for ascending ranges. Therefore T'HIGH = T'RIGHT = 0.0. Proposed Resolution ------------------- Strike the note at the end of 14.1. VASG-ISAC Analysis & Rationale ------------------------------ TBD VASG-ISAC Recommendation for IEEE Std 1076-1987 ----------------------------------------------- TBD VASG-ISAC Recommendation for Future Revisions --------------------------------------------- TBD