=============================================================================== 1076.1 Ballot Resolution Commitee Comment Resolution Report ------------------------------------------------------------------------------- CRR Number: 11 Topic Addressed: Q'Above(E) Related CRs: 47 (Ernst Christen, Analogy, negative changed to affirmative) 79 (Garland J. Bayley, Analogy, negative) Relevant LRM Sections: 14.1 Resolution Status: Partly in review by balloters =============================================================================== Comment Reports Summary ~~~~~~~~~~~~~~~~~~~~~~~ ---------------------------------------------------------------------- CR047 The present definition of Q'Above(E) allows any scalar quantity as the prefix for the Q'Above(E) signal. However, if Q is an indexed name and the index value is itself a function of a quantity, e.g. Q[f(Q2)]'Above(E), this cannot be implemented because the object referred to by the prefix may change. On the other hand, the case i := f(Q2); Q[i]'Above(E) is implementable. A similar problem exists if the expression E contains a quantity of the form Q[f(Q2)]. Proposed Resolution ~~~~~~~~~~~~~~~~~~~ We must either make the prefix and all Q's appearing in E static names, or invent another kind of staticness. ---------------------------------------------------------------------- CR079 Q'ABOVE says the result type is Boolean. However, the result gives three return values, true, false, and undefined. Proposed Resolution ~~~~~~~~~~~~~~~~~~~ Make a new type such as three_value_logic for the result type and put it in standard package. =============================================================================== Analysis and Action Taken ~~~~~~~~~~~~~~~~~~~~~~~~~ We have modified the incorrect definition of Q'Above(E) in section 14.1 to match the correct definition given in section 12.6.5. Additionally, we have placed a constraint on any quantity that appears either in expression E or as the prefix Q of Q'Above(E): any such quantity must now be denoted by a static name. This restriction was introduced to prevent cases where such quantities are denoted by an indexed name whose index expression includes the name of another quantity. =============================================================================== Revised Definitions ~~~~~~~~~~~~~~~~~~~ In the following, the first line number refers to the stand-alone LRM, the number in parentheses to the integrated LRM. Italicized text is enclosed in exclamation marks, and bold text is enclosed in asterisks. section 14.1 at line 2909 (535) Q'ABOVE(E) Kind: Signal Prefix: Any scalar quantity denoted by the static name Q. Parameter: An expression of the same type as Q. Any quantity appearing in the expression must be denoted by a static name. Result Type: Type Boolean. Result: TRUE if Q - E is sufficiently larger than 0.0, FALSE if Q - E is sufficently smaller than 0.0, Q'ABOVE(E)'DELAYED otherwise. NOTE: Although the name of any quantity appearing in the expression E in Q'ABOVE(E) must be a static name, the expression is not required to be static. This is different from any other attribute names whose parameters, if present, must be static expressions. ===============================================================================