VHDL Issue Number: IR1.99.08 Classification: Typographical errors, minor definitional issues Language Version: VHDL-1076.1'99 Summary: Typographical errors, minor definitional issues Related Issues: Errata sheet, IR1.99.09 Relevant LRM Sections: Many Key Words and Phrases: Typographical errors Current Status: Analyzed 1076.1-99 Disposition: Unknown Closed (All Issues Completely Addressed) Bugs Fixed, Enhancements Outstanding (No ISAC Issues) Superseded (ISAC Issues Outstanding) Disposition Rationale: Superseded By: N/A ----------------------- Date Submitted: 21 March 2006 Author of Submission: Ernst Christen Author's Affiliation: Synopsys, Inc. Author's Post Address: 2025 NW Cornelius Pass Rd Hillsboro, OR 97124 Author's Phone Number: 503-547-6096 Author's Fax Number: Author's Net Address: christen@synopsys.com ----------------------- Date Analyzed: 26 March 2006 Author of Analysis: Ernst Christen Revision Number: 2 Date Last Revised: 1 April 2006 EC: Revised analysis and recommendations Description of Problems ----------------------- 3.5.2.1 The 4th line of the two parapraphs following the productions refer to "constrained type definition", but the correct reference should be "constrained array definition" 3.5.2.2 Semicolon is missing at end of nature_element_declaration 4. quantity_declaration and terminal_declaration should be removed from declaration as they are included in object_declaration 4.2 4th paragraph after productions The references to subnatures should be removed from this paragraph. 4.3.1 "An object declaration declares an object of a specified type." should include objects of a nature. 4.8 4th paragraph after productions "does not include a constraint" should be reworded as "does not include an index constraint" as an index constraint is the only constraint possible. Also, the sentence is repeated two paragraphs below. 7.6 10th item in list "If a type conversion is a primary expression" should be "If a type conversion is a primary in the expression" 12.3.1.4 a) Subnature is missing in item a) Terminal objects have no initial value. Hence, the last sentence in item b) is wrong 12.3.1.5 Subnature is missing 12.6.4 2nd item in list S'RAMP(tr, tf) should be S'RAMP(TRISE, TFALL) S'SLEW(max_rising_slope, max_falling_slope) should be S'SLEW(RISING_SLOPE, FALLING_SLOPE) 12.6.6 Note 5 ... then a characteristic value must be provided ... should be ... then a characteristic expression must be provided ... 12.7 I believe the text referring to type Universal_Time should be changed to refer to type *universal_time* (Ed: italic) for consistency with the other universal types. 12.8 a) Should state that the simulation cycle ends after this step. 13.2 == is missing from the list of compound delimiters 13.9 Note 1 In addition to range, across, through, reference, tolerance are also used as attribute names. 14.1 A'LENGTH[(N)] Result: The Nth index of A cannot have a subnature 14.1 N'ACROSS, N'THROUGH N can also be a subnature 14.1 T'REFERENCE, T'CONTRIBUTION T must be a static name 14.1 All attribute definitions defining quantities The description of the return type appears inconsistent. Sometimes it is "The same type as Q", sometimes "The base type of Q". 14.1 Q'LTF(NUM,DEN) Typo: NEN should be DEN Result definition mentions scalar subelements of Q, but Q is required to be scalar Semicolon is missing in variable assignment statement in function "*" 14.1 Q'ZTF(NUM, DEN, T [, INITIAL_DELAY]) Result definition mentions scalar subelements of Q, but Q is required to be scalar Semicolon is missing in variable assignment statement in function "*" 14.1 Q'SLEW[(MAX_RISING_SLOPE [, MAX_FALLING_SLOPE])] Typo: "... scalar subelement of S, ..." should be "... scalar subelement of Q, ..." 15.1 1st paragraph after production "must be the same natural type." should be "must be the same nature type." 15.1 2nd paragraph after production Replace ""==" sign" by "compound delimiter ==" for consistency 15.4 4th item in first list "of the keyword variable." should be "of the reserved word variable." Replace "assignment character (":=")" by "assignment symbol ":="" for consistency Appendix A: Nature_element_declaration Semicolon is missing after element_subnature_definition B.178 The entry for nature type is not clear B.180 "in a frequency domain model." should be "in a noise model." B.251 Typo: "using valued determined" should be "using values determined" "It us used for frequency domain and noise domain analysis." should be "It is used for frequency domain and noise calculation." B.254 "in a noise domain model." should be "in a frequency domain model." B.270 The entry for tag is not clear There is no entry for "current discrete time". Proposed Resolution ------------------- As suggested in description of problem 1076.1-ISAC Analysis & Rationale -------------------------------- 3.5.2.1 The 4th line of the two parapraphs following the productions refer to "constrained type definition", but the correct reference should be "constrained array definition" This is correct. constrained_array_definition is defined in 3.2.1. 3.5.2.2 Semicolon is missing at end of nature_element_declaration The semicolon is missing and should be added. 4. quantity_declaration and terminal_declaration should be removed from declaration as they are included in object_declaration This is correct. quantity_declaration and terminal_declaration should be deleted. 4.2 4th paragraph after productions The references to subnatures should be removed from this paragraph. This error, apparently a result of eagerly replacing "subtype" by "subtype or subnature", should be corrected. Further, a subnature cannot impose a condition on a value. The corresponding definitions for subnatures can be found in 4.8. 4.3.1 "An object declaration declares an object of a specified type." should include objects of a nature. This appears to be an oversight that should be corrected. 4.8 4th paragraph after productions "does not include a constraint" should be reworded as "does not include an index constraint" as an index constraint is the only constraint possible. Also, the sentence is repeated two paragraphs below. This is correct. The last sentence of the 4th paragraph after the productions should be removed. 7.6 10th item in list "If a type conversion is a primary expression" should be "If a type conversion is a primary in the expression" This is an apparent typo that should be corrected. 12.3.1.4 a) Subnature is missing in item a) Terminal objects have no initial value. Hence, the last sentence in item b) is wrong This is correct. The two list items should be corrected. 12.3.1.5 Subnature is missing The omission makes aliases of natures and terminals illegal. It should be corrected. 12.6.4 2nd item in list S'RAMP(tr, tf) should be S'RAMP(TRISE, TFALL) S'SLEW(max_rising_slope, max_falling_slope) should be S'SLEW(RISING_SLOPE, FALLING_SLOPE) These are apparane typos that should be corrected. 12.6.6 Note 5 ... then a characteristic value must be provided ... should be ... then a characteristic expression must be provided ... Characteristic value is a term that was used early in the language definition phase for a characterisic expression. The error should be corrected. 12.7 I believe the text referring to type Universal_Time should be changed to refer to type *universal_time* (Ed: italic) for consistency with the other universal types. There is a difference between universal_time and universal_integer or universal_real: there are no literals of type universal_time. This seems superficial, though, and using an italic font for universal_time will emphasize that this is a type whose exact properties are defined by the implementation, just as the types universal_integer and universal_real. The recommendation should be adopted. Additionally, a glossary entry should be created. 12.8 a) Should state that the simulation cycle ends after this step. This is a clarification that should be applied to this section. 13.2 == is missing from the list of compound delimiters == should be added to the list of compound delimiters. 13.9 Note 1 In addition to range, across, through, reference, tolerance are also used as attribute names. This omission should be corrected. 14.1 A'LENGTH[(N)] Result: The Nth index of A cannot have a subnature This error, apparently a result of eagerly replacing "subtype" by "subtype or subnature", should be corrected. 14.1 N'ACROSS, N'THROUGH N can also be a subnature This apparent error should be corrected. 14.1 T'REFERENCE, T'CONTRIBUTION T must be a static name This apparent error should be corrected. 14.1 All attribute definitions defining quantities The description of the return type appears inconsistent. Sometimes it is "The same type as Q", sometimes "The base type of Q". The correct definition is important because the type also defines the tolerance code of the quantity defined by the attribute name. The quantity defined by the attribute name should have be in the same tolerance group as the prefix (if the prefix is a quantity). If the prefix is a signal, the user should be able to define the tolerance group of S'RAMP or S'SLEW by declaring S to be of a suitable subtype. We conclude that the definition of the Result type should be corrected such that the quantity defined by the attribute name has the same subtype as the prefix of the attribute. 14.1 Q'LTF(NUM,DEN) Typo: NEN should be DEN Result definition mentions scalar subelements of Q, but Q is required to be scalar Semicolon is missing in variable assignment statement in function "*" The typo should be fixed. The definition of the result should be reworded to reflect that Q is scalar. The missing semicolon in the variable assignment statement should be added. 14.1 Q'ZTF(NUM, DEN, T [, INITIAL_DELAY]) Result definition mentions scalar subelements of Q, but Q is required to be scalar Semicolon is missing in variable assignment statement in function "*" The definition of the result should be reworded to reflect that Q is scalar. The missing semicolon in the variable assignment statement should be added. 14.1 Q'SLEW[(MAX_RISING_SLOPE [, MAX_FALLING_SLOPE])] Typo: "... scalar subelement of S, ..." should be "... scalar subelement of Q, ..." The typo should be fixed. 15.1 1st paragraph after production "must be the same natural type." should be "must be the same nature type." The correct term is "nature type", defined in 4.3.1.6. The error should be corrected. 15.1 2nd paragraph after production Replace ""==" sign" by "compound delimiter ==" for consistency The term "compound delimiter =>" is used in 10.3. The term "sign" is defined in 7.3. The inappropriate language should be corrected. 15.4 4th item in first list "of the keyword variable." should be "of the reserved word variable." Replace "assignment character (":=")" by "assignment symbol ":="" for consistency The inappropriate term "keyword" should be corrected. "Assignment character" is clearly wrong as := is not a single character. The term "assignment symbol" is used in 4.3.1.1, 4.3.1.2, 4.3.1.3, 4.3.1.6 and maybe other places. The sentence should be corrected to be consistent with other similar references. Appendix A: Nature_element_declaration Semicolon is missing after element_subnature_definition The semicolon is missing and should be added. B.178 The entry for nature type is not clear The entry should be reworded to clarify the concept. B.180 "in a frequency domain model." should be "in a noise model." It appears that the glossary entries for noise source quantity and spectral source quantity were mixed up. The glossary entry should be corrected. B.251 Typo: "using valued determined" should be "using values determined" "and noise domain analysis." should be "and noise calculation." The typo should be fixed. The correct terminology, from 12.8, is frequency domain calculation and noise calculation. B.254 "in a noise domain model." should be "in a frequency domain model." It appears that the glossary entries for noise source quantity and spectral source quantity were mixed up. The glossary entry should be corrected. B.270 The entry for tag is not clear The entry should be reworded to clarify the meaning. There is no entry for "current discrete time: An entry defining the current discrete time should be added. 1076.1-ISAC Recommendation for IEEE Std 1076.1-1999 --------------------------------------------------- Interpret LRM as if the recommendations were in place. 1076.1-ISAC Recommendation for Future Revisions ----------------------------------------------- Update the LRM in the following places: 3.5.2.1 Replace "constrained type definition" by "constrained array definition" in the two parapraphs following the productions 3.5.2.2 Add missing semicolon at end of nature_element_declaration 4. Remove quantity_declaration and terminal_declaration from the production for declaration 4.2 4th paragraph after productions Reword paragraph to read "... is compatible with a subtype, then the condition imposed by the constraint cannot contradict any condition already imposed by the subtype on its values." 4.3.1 Reword first sentence to read "An object declaration declares an object of a specified type or nature." 4.8 4th paragraph after productions Delete the last sentence of this paragraph starting with "If a subnature indication does not include an index constraint, ..." 7.6 10th item in list Reword to read "If a type conversion is a primary in the expression, ..." 12.3.1.4 Reword item a) to read "The subtype indication or subnature indication is first elaborated; this establishes the subtype or subnature of the object." Reword item b) to read "... Otherwise, any implicit initial value for the object is determined, if applicable." 12.3.1.5 Reword first sentence to read "Elaboration of an alias declaration consists of the elaboration of the alias indication to establish the subtype or subnature associated with the alias, ..." 12.6.4 2nd item in list Replace "S'RAMP(tr, tf)" by "S'RAMP(TRISE, TFALL)" Replace "S'SLEW(max_rising_slope, max_falling_slope)" by "S'SLEW(RISING_SLOPE, FALLING_SLOPE)" 12.6.6 Note 5 Reword note to read "... then a characteristic expression must be provided ..." 12.7 Convert all occurrences of universal_time to use italic font. This affects section 12.7 and also 12.6.4 step g) 12.8 Add the sentence "The simulation cycle ends." at the end of item a) 13.2 Add "==" to the list of compound delimiters Add "== Double equal" to the list in note 2 13.9 Note 1 Reword second sentence to read "The reserved words *across*, *range*, *reference*, *through*, and *tolerance* are also used as the names of predefined attributes." where words between asterisks should be in bold 14.1 A'LENGTH[(N)] Reword last sentence of Result to read "... where T is the subtype of the Nth index of A." 14.1 N'ACROSS Reword the description of the prefix to read: "Prefix: Any nature or subnature N." 14.1 N'THROUGH Reword the description of the prefix to read: "Prefix: Any nature or subnature N." 14.1 T'REFERENCE Reword the description of the prefix to read: "Prefix: Any terminal denoted by the static terminal name T." 14.1 T'CONTRIBUTION Reword the description of the prefix to read: "Prefix: Any terminal denoted by the static terminal name T." 14.1 Q'DOT Reword the description of the result type to read "Result type: The subtype of Q." 14.1 Q'INTEG Reword the description of the result type to read "Result type: The subtype of Q." 14.1 Q'DELAYED[(T)] Reword the description of the result type to read "Result type: The subtype of Q." 14.1 Q'ZOH(T[,INITIAL_DELAY]) Reword the description of the result type to read "Result type: The subtype of Q." 14.1 Q'LTF(NUM,DEN) Reword the description of the result type to read "Result type: The subtype of Q." Reword text under Result: to read The Laplace transfer function of Q with NUM as the numerator and DEN as the denominator polynomials. Suppose that QLTF is an alias for the attribute name, that QTYPE designates its type, that QELEM is an alias for Q, and that NUM and DEN designate the actual values of the parameters with the same names. Then the behavior of Q'LTF is formally described by the value of QLTF produced by the following equivalent block: Replace apparent variable assignment statement in function "*" by result := result + v1(i) * v2(i); 14.1 Q'ZTF(NUM, DEN, T [, INITIAL_DELAY]) Reword the description of the result type to read "Result type: The subtype of Q." Reword text under Result: to read The Z-domain transfer function of Q with NUM as the numerator and DEN as the denominator polynomials, T as the sampling frequency, and INITIAL_DELAY as the time of the first sampling. Suppose that QZTF is an alias for the attribute name, that QTYPE designates its type, that QELEM is an alias for Q, and that NUM, DEN, T and INITIAL_DELAY designate the actual or defaulted values of the parameters with the same names. Then the behavior of Q'ZTF is formally described by the value of QZTF produced by the following equivalent block: Replace apparent variable assignment statement in function "*" by result := result + v1(i) * v2(i); 14.1 S'RAMP[(TRISE[,TFALL])] Reword the description of the result type to read "Result type: The subtype of S." 14.1 S'SLEW[(RISING_SLOPE[,FALLING_SLOPE])] Reword the description of the result type to read "Result type: The subtype of S." 14.1 Q'SLEW[(MAX_RISING_SLOPE [, MAX_FALLING_SLOPE])] Reword the description of the result type to read "Result type: The subtype of Q." Reword second paragraph of Result: to read "... the corresponding scalar subelement of Q, ..." 15.1 Reword first sentence after production to read "... must be the same nature type." Replace ""==" sign" by "compound delimiter ==" in two places in the second paragraph after the production 15.4 4th item of first list Reword first sentence to read "... of the reserved word variable, followed by the replacement declaration, followed by the compound delimiter :=, followed by the interface name ..." where "variable" is in bold. Appendix A nature_element_declaration Add missing semicolon at end of nature_element_declaration B.178 nature type Reword entry to read "nature type: A type that is either a floating point type ..." Add reference ($4.3.1.6) B.180 noise source quantity Reword entry to read "...as a source in a noise model." B.251 small signal model Reword entry to read "... in an explicit set using values determined at a quiescent point. It is used for frequency domain and noise calculation." B.254 spectral source quantity Reword entry to read "... as a source in a frequency domain model." B.270 Reword entry to read: tag: The scalar subelement of a source quantity or of an implicit quantity of the form Q'DOT, Q'INTEG, or Q'DELAYED(T) corresponding to a characteristic expression in an augmentation set. ($12.6.5) New glossary entries Add new entry: current discrete time: The value of STD.STANDARD.NOW [return DELAY_LENGTH] ($12.7) Add new entry: universal_time: An anonymous predefined floating point type that represents the simulation time ($12.7)