RE: Interpretations

From: Brophy, Dennis (dennisb@model.com)
Date: Wed Mar 31 2004 - 06:29:57 PST

  • Next message: Shalom Bresticker: "vacation"

    >Even if everyone agrees on the intent, that still does not make it an
    >official interpretation. There is a process for that. Fortunately for us
    >(or unfortunately, depending on how you look at it), IEEE does not
    >deal with compliance certification.
     
    There are some options here via the ITSO, an independent company with a contractual relationship with the IEEE that is organized under an IRS 506(?) rules that the United States Congress enacted to permit such activities. Si2 is another example of this and they did to conformance testing for Verilog gate-level libraries.
     
    If there is interest in conformance testing, it is possible to do. It would need to be funded, but it is possible - not in the IEEE - but in an associated group that has different "collusion" provisions that get around anti-trust issues.
     
    -Dennis

    -----Original Message-----
    From: owner-etf@boyd.com [mailto:owner-etf@boyd.com]On Behalf Of Shalom Bresticker
    Sent: Tuesday, March 30, 2004 12:44 AM
    To: etf@boyd.com
    Subject: Interpretations

    This is somewhat long.
    Let's see what IEEE actually says on the subject.

    1) IEEE Standards Companion (2003) (http://standards.ieee.org/guides/companion/part2.html#interpret):

    Interpretations

      Once a standard is approved, its major technical
      development is complete. However, questions may arise
      concerning the language used in the standard, the intention
      or result meant by a particular action, etc. When a question of
      meaning like this arises, an individual can write to the
      Secretary of the IEEE-SA Standards Board asking for
      interpretation of the passage in question. This request is then
      forwarded to the sponsor for action. It is expected that a
      group will develop a response to the interpretation request
      and send it to the requestor (with a copy sent to the IEEE).

      Often, however, someone may just be seeking an explanation
      of the reasons behind what the standard said, rather than an
      interpretation of the language itself. The Sponsor has the
      right to label an interpretation request as an explanation if it
      feels this is correct. The Sponsor can use whatever method it
      wants to issue an explanation and return that response to the
      requestor. The explanation should also be considered if the
      standard is revised or amended, as this may be an area of the
      standard that requires further clarification.

      Completed interpretations are first made available at the IEEE
      Standards website. Interpretations must be completed nine
      months after any request was classified as an interpretation.
      They may be published with the standard they interpret,
      either bound in on the next printing or rolled into a collection
      of standards. In some cases, the volume of interpretations
      being generated by a committee may be great enough to
      merit publication of a separate interpretations volume.

      Interpretations are a unique form of commentary on the
      standard. They are not statements of what the standard
      should have done or meant to say. Interpretations cannot
      change the meaning of a standard as it currently stands. Even
      if the request points out an error in the standard, the
      interpretation cannot fix that error. The interpretation can
      suggest that this will be brought up for consideration in a
      revision or amendment (or, depending on the nature of the
      error, an errata sheet might be issued).

      However, an interpretation has no authority to do any of this.
      It can only discuss, address, and clarify what the standard
      currently says. The challenge for the interpreters is to
      distinguish between their expertise on what ?should be,?
      their interests in what they ?would like the standard to be,?
      and what the standard says. Interpretations are often
      valuable, though, because the request will point out problems
      that might otherwise have gone unaddressed.

      One of the reasons interpretations cannot change the
      standard is that they are not developed through an officially
      balanced consensus process, that is, a ballot. The
      interpretation request is handled by the sponsor through an
      interpretations group. This group can be the standing
      working group that developed the standard or it can be any
      of the members of the working group or balloting group who
      have expressed an interest in participating in the
      interpretations process, depending on the rules of the
      sponsor.

      There is a requirement for balance in membership; it's
      probably best to follow the principles of balance that were
      used in balloting to establish balance in interpretations
      groups. Interpretations also have to be balloted in the
      Sponsor. But because this process doesn?t meet the rules
      for approval of changes that are applied to an IEEE ballot, an
      interpretation cannot change the meaning of a document.

      All working groups should be aware that they may be called
      upon to handle interpretations and come up with a process
      for doing so while they are still developing their standard.
      Level of participation in a working group is usually highest at
      this point, and it is important for working group members to
      be aware of this responsibility and prepare for their potential
      involvement. Remember, some groups receive no
      interpretations requests at all, while others receive many, so
      the group may have nothing to do or a great deal to do. The
      interpretations process you develop should be well known
      within your technical community so that anyone who wants to
      can participate. The procedure for submitting interpretations
      requests is published in the front of every IEEE standard.

      Some possible answers to requests are shown in Annex C to
      give guidance on how to handle requests without altering the
      meaning of the standard. Interpretations are useful in
      indicating when a revision or an errata sheet might be
      necessary as well. And if the Sponsor feels it cannot issue an
      interpretation for a request, this is an area that clearly should
      be reconsidered when the standard is revised.
      

                                         Some Guidelines for Interpretations

                                         1) The standard is what it says. If the
                                         words are substantively wrong, then a
                                         corrective corrigenda via the balloting
                                         process is the correct response.

                                         2) If the standard is ambiguous, then
                                         the interpretation must favor a looser
                                         requirement rather than a more
                                         restrictive one. Again, a corrective
                                         corrigenda can be initiated if needed.

                                         3) If two parts of the standard
                                         contradict one another, then a
                                         rationale should be created and the
                                         IEEE errata process should be applied
                                         to correct the contradiction.

                                         More information on interpretations
                                         can be found here. (This points to "IEEE Standards Interpretations", below)

                                         Many interpretations groups meet via
                                         phone or electronic mail, which avoids
                                         any travel requirements or significant
                                         time away from work.

    2) IEEE Standards Companion, Annex C ( http://standards.ieee.org/guides/companion/annexb-c.html#partc <http://standards.ieee.org/guides/companion/annexb-c.html#partc> )

    Interpretation Responses

      Some proforma examples of responses for
      interpretation requests follow.

       1.The unambiguous situation
        "The standard clearly states . . . , and users
        have to conform to this."

       2.The "defect" situation (that is, if the standard
        appears to be wrong)
        "The standard states . . . , and users have to
        conform to this. However, concerns have
        been raised about this that are being referred
        to the sponsor for possible action at the next
        revision."

       3.The ambiguous situation
        "The standard is unclear on this issue, and no
        distinction can be made between alternative
        implementations based on this. This is being
        referred to the sponsor for possible action at
        the next revision."

       4.The unaddressed issue
        "The standard does not speak to this issue,
        and as such no distinction can be made
        between alternative implementations based on
        this. This is being referred to the sponsor for
        possible action at the next revision."

       5.Conditional interpretation based on other
        standard(s)
        "The required behavior of this standard is
        dependent on the requirements of another
        standard. If the other standard requires aaa,
        then this standard requires bbb. But if the
        other standard requires ccc, then this standard
        requires ddd. A request for interpretation of
        the other standard is being forwarded to its
        developing committee."

       6.Substantially identical to a previous
        interpretation
        "This request is substantially identical to
        interpretation #nnn, and the resolution of that
        interpretation applies in this case."

       7.Substantially identical to prior request, but with
        critical new perspective
        "This request is substantially identical to
        interpretation #nnn; however, in considering
        <rationale> it appears that the previous
        interpretation should be superseded. The
        current interpretation for this situation (which
        does affect the previous conclusion) is . . . "
        In this case, an attempt should be made to
        notify the previous requestor with the
        updated information.

       8.Request for interpretation of a different
        document or of a draft
        "This request is for interpretation of nnn; the
        approved standard is IEEE Std nnn. The
        requestor is asked to resubmit this request if
        the question(s) are still pertinent to the
        approved IEEE standard."

       9.Request is unclear (after attempt to contact
        requester for clarification)
        "This request is not sufficiently clear to permit
        an appropriate interpretation. The requestor is
        asked to submit a rephrased or more specific
        request."

        Some rationale, specific issue, or point of
        ambiguity should be addressed in the
        feedback to the requestor.

      10.Request is inappropriate
        "This request is being returned to you
        because the questions asked do not
        constitute a request for interpretation but
        rather a request for consulting advice.
        Generally, an interpretation request is
        submitted when the wording of a specific
        clause or portion of a standard is ambiguous
        or incomplete. The request should state the
        two or more possible interpretations or the
        lack of completeness of the text. While you
        referred to clause nnn, you have not indicated
        any problem with the text. Please understand
        that it is beyond the scope of this
        committee/working group to provide
        consulting advice."

    3) IEEE Standards Interpretations ( http://standards.ieee.org/reading/ieee/interp/index.html <http://standards.ieee.org/reading/ieee/interp/index.html> )

                  Occasionally, questions may arise regarding the meaning of
                  portions of standards as they relate to specific applications.
                  Such requests for interpretations should ask for
                  clarifications of the exact nature of the contents of the
                  standard.

                  Questions relating to such interpretations are reviewed and
                  evaluated by a balance of members representing the
                  specific committee interests. This officially formed
                  interpretations subgroup creates and circulates a draft
                  interpretation among its members. It transmits a final
                  interpretation to the party initiating the request only after
                  consensus has been achieved. The interpretation is also
                  given to the standards-developing committee to consider
                  addressing it in a supplement or the next revision to the
                  standard.

                  Interpretations are issued to explain and clarify the intent of
                  the standard and are not intended to constitute an alteration
                  to the original standard or to supply consulting information.
                  The interpretations subgroup cannot make new rules to fit
                  situations not yet covered in the standard, even if the
                  investigations of the subgroup lead it to conclude that the
                  requirement is incomplete or in error. Changes to the
                  standard are made only through revisions or supplements to
                  the standard.

                  It is recognized that requests are frequently received that
                  are partially or totally requests for information rather than
                  requests for an interpretation. It is inappropriate to issue an
                  official interpretation to answer such requests. The
                  interpretations subgroup may, however, find from its
                  research that the literal printing of the standards text is not
                  identical to that approved by the standards developers and
                  may issue an editorial correction as a part of its
                  interpretation.

                  The original interpretations requests in this document have
                  been lightly edited to remove extraneous matter and to
                  focus on the problem presented. Some illustrations have
                  been redrawn for publication. With these exceptions,
                  requests are in the form received.
      
      

                  Procedure for Requesting an
                  Interpretation

                  Requests for interpretations should be addressed to

                     Secretary, IEEE Standards Board
                     IEEE Standards Department
                     445 Hoes Lane
                     P.O. Box 1331
                     Piscataway, NJ 08855-1331

                  Requests for interpretations may be sent via email to Linda
                  Gargiulo.

                  Requests for interpretations should include

                   1.The specific designation of the standard, including the
                     year of publication.
                   2.The specific subsection being questioned.
                   3.The applicable conditions for the case in question.

                  Line drawings should be black ink originals. Whenever
                  possible, an electronic file of graphics should be submitted
                  on disk in PICT, EPS, or TIFF format. Photos should be
                  black-and-white glossy prints. These illustrations must be
                  reproduced for committee circulation and eventually will be
                  used to supplement the text of the next edition. Clear
                  diagrams and pictures will make the work of interpretation
                  easier and more valuable to users.

                  Requests, including all supplementary material, must be in a
                  form that is easily reproducible. If suitable for consideration,
                  requests will be sent to the interpretations subgroup. After
                  consideration by the subcommittee, which may involve
                  many exchanges of correspondence, the inquirer will be
                  notified of the decision of the subgroup. Decisions will be
                  published from time to time in cumulative form and may be
                  ordered from the IEEE.
      
      

    4) IEEE-SA Standards Board Bylaws (JAN 2004)
    ( http://standards.ieee.org/guides/bylaws/sect5.html#5.5 <http://standards.ieee.org/guides/bylaws/sect5.html#5.5> )

    5.5 Interpretations

    While it is always the intent of standards-developing committees to use language that is so clear that it is unnecessary to explain or amplify the original intent of the committee, occasionally questions arise regarding the meaning of portions of standards as they relate to specific applications.

    Questions relating to such interpretations require review and evaluation by a balance of committee interests. No single officer or member of an IEEE
    Sponsor or subgroup thereof shall provide a written or verbal opinion concerning any portion of the text of an IEEE standards document or an American National Standard developed under IEEE secretariat, unless that opinion has first been subjected to consideration by an interpretations subgroup that represents all interested parties on the committee. The actions to be taken shall be as specified in subclause 5.9 of the IEEE-SA Standards Board Operations Manual.

    5) IEEE-SA Standards Board Operations Manual (2004)
    ( http://standards.ieee.org/guides/opman/sect5.html#5.9 <http://standards.ieee.org/guides/opman/sect5.html#5.9> )
    Some of this was changed recently, the following is the new wording:

    5.9 Interpretations and explanations

    Requests for interpretations shall be submitted or confirmed in writing to the Secretary of the IEEE-SA Standards Board, who shall forward the request
    to the appropriate Sponsor.

    Upon receipt, the Sponsor shall screen all such requests to separate those that require formal interpretation from those requesting an explanation. An
    interpretation provides meaning to a clause, phrase, or sentence when it is open to more than one reading or is ambiguous. An explanation does not
    attempt to resolve ambiguities, but tries to elucidate the reasons for a particular concept or approach. The Sponsor shall notify the Secretary of the
    IEEE-SA Standards Board in writing, including electronic mail, preferably within 10 working days but no more than 30 days from the date of receipt of
    the request, of which classification has been assigned to the request.

    The Secretary of the IEEE-SA Standards Board shall notify the requestor within 10 working days of the Sponsor's written notification of the
    classification of the request and the anticipated response date.

    5.9.1 Explanations process

    The Sponsor shall prepare explanations in the manner it deems practical and send them to the party initiating the request and to the Secretary of the
    IEEE-SA Standards Board. The correspondence shall clearly note that the request was considered to be an explanation only. The explanation shall be
    developed in a timely manner. A copy of the explanation shall be kept in the Sponsor's records for consideration in developing any revisions or
    amendments to the standard.

    The Sponsor shall not be required to develop a response that in its estimation constitutes engineering application information that would normally be
    within the area of consultant services. The explanation will be made available to any other party who makes a request to review the explanation. A charge
    may be incurred for providing such a copy and is the responsibility of the review requestor.

    5.9.2 Interpretations process

    The Sponsor may forward requests for interpretation to a designated interpretations group.

    The proposed response prepared by the designated interpretations group shall be approved by a majority of that group prior to submittal to the
    Sponsor.

    Once accepted by the interpretations group, a vote on the proposed response shall be taken in accordance with Sponsor rules. As a courtesy, the
    preliminary response may be sent to the requestor. If the requestor submits comments on the preliminary response within 15 days of the date that the
    proposed interpretation is sent to the requestor, the Sponsor shall consider the comments and respond to the requestor. The proposed interpretation
    response shall be concluded within nine months of notification of classification of the interpretations request as an interpretation by the Sponsor.

    The final interpretation shall be transmitted to the party initiating the request. A copy shall be forwarded to the Secretary of the IEEE-SA Standards
    Board, together with a list of the members of the designated interpretations group for IEEE records. IEEE Standards interpretations shall be posted at
    the IEEE Standards website until the next amendment or revision of the standard.

    If the Sponsor is unable to reach consensus on an interpretation, the Sponsor can respond to the requestor that an interpretation will not be
    forthcoming on this matter. It should be noted that, if the Sponsor cannot issue an interpretation for a request, this area of the standard should be
    considered for revision.

    Interpretations shall be developed in a timely fashion. If the Sponsor classifies the request as an interpretation, the Secretary of the IEEE-SA Standards
    Board shall provide a status report to the requestor no more than 90 days from the Sponsor's classification of the interpretation request as an
    interpretation. The Sponsor shall keep a log of all interpretations requested and completed. The Sponsor shall consider interpretations either as
    corrigenda, when developing an amendment to the standard, or for inclusion in the next revision of the standard.

    5.9.3 Disclaimer

    Wording to this effect is included in each IEEE standard published:

    "At lectures, symposia, seminars, or educational courses, an individual presenting information on IEEE standards shall make it clear that his or her views
    should be considered the personal views of that individual rather than the formal position, explanation, or interpretation of the IEEE."

    When a proposed interpretation is sent to a requestor and a Sponsor, the following wording shall be attached:

    "WARNING: This proposed interpretation is not an official IEEE Sponsor interpretation, as it has not yet been balloted and, as such, is subject to change.
    This proposed interpretation is for informative purposes only. USE AT YOUR OWN RISK."
      

    Now, having seen all that, if you are still reading this, let's see what Steven wrote.
      

    Steven Sharp wrote:

    >That makes sense. On the last paragraph though, I'm not sure
    >that *Verilog* cases currently do evaluate in that way, even if
    >existing Verilog simulation *tools* evaluate them in that way.
    >Is there really anything in the LRM itself that would make
    >my hypothetical new tool wrong if it followed Shalom's "dachuk"
    >interpretation?

    There are several questions here.

    1. Can you apply your own "dachuk" interpretation to the standard
    and legitimately claim that you are following the standard? I think
    that the answer is no. There was an intended interpretation, which
    was actually pretty clear here. Even if it weren't clear and could
    reasonably be considered ambiguous, that still doesn't mean that any
    interpretation you choose is valid. There was still an intended
    interpretation, and that is the only valid one.

    According to the IEEE Standards Companion,
    "If the standard is ambiguous, then the interpretation must favor a looser
    requirement rather than a more restrictive one."

    That is for the case "if it weren't clear and could reasonably be considered ambiguous".
      

    Presumably there is a procedure for requesting clarification from the
    standards body, so you can get the official interpretation. If you
    apply your own interpretation instead of the official interpretation,
    it is your mistake, just as if you misread the LRM. I assume that
    there is some official IEEE policy to this effect, because it seems
    like the only reasonable way to handle it.

    2. What if the LRM says nothing about a subject? Is this the same as
    saying something ambiguous (i.e. you should ask for an interpretation)?
    Or is it reasonable to assume that an implementation is not constrained
    in that area? I think that this would still be subject to official
    interpretation, but hopefully most readers have good enough judgement to
    avoid the need to ask in most cases. One problem here is that if there
    is no text in the LRM, there may not be any historical knowledge of the
    intent. That brings us to the next question.

    From the Standards Companion, example response 4:

    4.The unaddressed issue
        "The standard does not speak to this issue,
        and as such no distinction can be made
        between alternative implementations based on
        this. This is being referred to the sponsor for
        possible action at the next revision."

    From the IEEE Standards Intrepreations page,
                 "The interpretations subgroup cannot make new rules to fit
                  situations not yet covered in the standard, even if the
                  investigations of the subgroup lead it to conclude that the
                  requirement is incomplete or in error."
      

    3. Is the LRM the sole source of the definition of the language? In an
    ideal world, it would be. However, I don't think that this is practical
    with the current Verilog LRM. It started out as the Verilog-XL Reference
    Manual, which was not a complete or rigorous specification of the language.
    It was only adequate because there was a reference implementation. Some
    improvements have been made since, but it is still not complete. And in
    the meantime, we have officially lost the reference implementation. That
    creates a problem. I think that practicality requires us to recognize
    that we have to get historical knowledge of the "intent" in a variety of
    ways, including the memories of those who were involved, and the known
    behavior of the former reference implementation.

    I think the IEEE rules are pretty clear that the standard IS
    "the sole source of the definition of the language"
    (including official interpretations of what is already written there).

    Not everyone has direct access to those memories or that reference
    implementation, but I don't think that matters. Those are not directly
    the standard anyway. Everyone has equal access to the actual standard,
    including asking for official interpretations of it. Such interpretations
    are always going to be based on knowledge that was not universal (since
    otherwise the asker would have known the answer already).

    So existing Verilog tools may not define the language, but the behavior of
    some of them may indicate the historical intent of something that is not
    explicit enough in the LRM. In that sense, they assist in defining the
    language.

    4. If we accept the behavior of some implementation as "correct", would
    that be sufficient to define the standard? The answer here is clearly
    no. The standard may allow a variety of behaviors in some situation,
    while a tool can only practically implement one. The tool can indicate
    a behavior that is allowed, but not whether any alternatives are allowed.
    That requires reference to the LRM, and judgement.

    This is also something that can change. There are things that were
    originally specified to be nondeterministic, but were later required to
    be deterministic and match the reference implementation (e.g. order of
    nonblocking assignments completing). Others were originally intended to
    work a specific way, but were later relaxed to allow a noncompliant
    implementation to be considered compliant (e.g. whether all subprocesses
    have to be disabled by a disable statement).

    And of course an implementation's behavior is not automatically correct.
    The fact that some implementation works some way, even if it is the original
    implementation upon which the original standard was based, does not
    automatically mean that is what the standard should be. In fact, during the
    development of 1364-1995, there were some deliberate changes, and that
    original implementation is not and never has been 100% compliant to 1364-1995
    (which is not meant to imply that any other implementation is in a better or worse state).

    5. How does all of this apply to the specific question of case item
    expression evaluation? Here is my opinion, which may or may not be
    backed up by official IEEE policy.

    The text in question is reasonably clear, and I think everyone agrees on
    the intent of it. So that provides an official interpretation of the
    text. A hypothetical tool that did not follow that interpretation would
    be wrong.

    Even if everyone agrees on the intent, that still does not make it an
    official interpretation. There is a process for that. Fortunately for us
    (or unfortunately, depending on how you look at it), IEEE does not
    deal with compliance certification.
      

    However, Shalom says that text is not in the published standard, but is
    something that we approved for a later draft. I am not sure what the
    resulting effect is. I think it would be considered an interpretation of
    the standard, which is being inserted into the text for the next revision
    (subject to balloting at that time).

    Again, we have not issued it as an official interpretation.
    We could think about issuing an interpretation document.
      

    The behavior that we approved happens to match certain existing tools,
    and that is presumably part of why we approved it. If we were discussing
    the approval of that text, we could debate whether the standard should
    require that exact behavior, or allow some variation. If a proposal is
    made to change that text, then we can discuss it again. But at present
    I think that the text has been approved as an interpretation, and that
    the intent of it is known, so that is the standard. The text itself seems
    to me to describe that intent adequately, so I am not convinced that there
    is a problem here.

    >Consider the semantics of fork. I think it's probably the case that
    >existing tools do not interleave threads. But if I wanted to execute
    >each thread truly in parallel on separate processors, wouldn't that
    >be within the letter of the LRM law? There are likely some existing
    >Verilog programs that rely on the threads of a fork happening one after
    >the other, in some nondeterministic order, but not interleaved.
    >My hypothetical new tool would break them, but still be legal Verilog.

    The LRM explicitly allows interleaving of process execution in section 5.
    However, if you took the interleaving to an extreme (as would happen with
    separate processors if you didn't do some basic synchronization around
    critical regions), I think it would fall outside the intent of this section.
    While the intent was apparently partly to allow for parallel simulation,
    an extreme interpretation of the allowed interleaving could create serious
    language problems that the original authors probably didn't intend.

    Which is related to my favorite issue, #57.

    -- 
    

    Shalom Bresticker Shalom.Bresticker@motorola.com

    Design & Reuse Methodology Tel: +972 9 9522268

    Motorola Semiconductor Israel, Ltd. Fax: +972 9 9522890

    POB 2208, Herzlia 46120, ISRAEL Cell: +972 50 441478

    [x]Motorola General Business Information

    [ ]Motorola Internal Use Only

    [ ]Motorola Confidential Proprietary



    This archive was generated by hypermail 2.1.4 : Wed Mar 31 2004 - 06:12:46 PST and
    sponsored by Boyd Technology, Inc.