                ICM Issue Resolution Document  (IIRD)





IIRD ID:       4.1
ISSUE TITLE:   Removal of Extraneous Argument for [End ICM Section] Keyword

REQUESTOR:     Kelly Green
DATE SUBMITTED:                       August 17, 2004 
DATE REVISED:                         August 28, 2004
DATE ACCEPTED BY IBIS OPEN FORUM:     October 29, 2004 


****************************************************************************

****************************************************************************



STATEMENT OF THE ISSUE:



      The keyword [End ICM Section] presently requires an argument that

      presumably matches the Section name given for the corresponding 

      [Begin ICM Section].



      No other keyword pairing requires that the corresponding End Keyword

      use any argument, much less a matching one.  Furthermore, no 

      example of the use of the [End ICM Section] keyword has an argument,

      contradicting the definition of the keyword.



      Thus, there is a consistency issue with the present ICM specification.





****************************************************************************



STATEMENT OF THE RESOLVED SPECIFICATIONS:





Current wording of the specification:





=============================================================================

     Keyword: [End ICM Section]

    Required: Yes

    Argument: Text String

     Used By: [Begin ICM Section]

 Description: Indicates the end of [Begin ICM Section].  This keyword is 

              after the [Derivation Method], [Resistance Matrix], 

              [Inductance Matrix], [Conductance Matrix], [Capacitance Matrix], 

              [Bandwidth], [Row], [ICM S-parameter].

 Usage Rules: Every [Begin ICM Section] keyword must have a corresponding

              [End ICM Section] keyword, which must be the last keyword of an 

              ICM Section description.

-----------------------------------------------------------------------------







Proposed wording of the specification: (remove "Argument")





=============================================================================

     Keyword: [End ICM Section]

    Required: Yes

     Used By: [Begin ICM Section]

 Description: Indicates the end of [Begin ICM Section].  This keyword is 

              after the [Derivation Method], [Resistance Matrix], 

              [Inductance Matrix], [Conductance Matrix], [Capacitance Matrix], 

              [Bandwidth], [Row], [ICM S-parameter].

 Usage Rules: Every [Begin ICM Section] keyword must have a corresponding

              [End ICM Section] keyword, which must be the last keyword of an 

              ICM Section description.





-----------------------------------------------------------------------------

[End ICM Section]













****************************************************************************



ANALYSIS PATH/DATA THAT LED TO SPECIFICATION:







       It's likely that the presence of the argument was an error resulting

       form the incomplete removal of text describing it and it's intended

       use from early drafts of the ICM specification.



       The v1.0 golden parser inherited this oddity as well, since the 

       argument continued to be called out in the definition of the keyword,

       and the only reasonable value was a match with the [Begin ICM Section].



       The issue now is to reconcile the specification with it's examples,

       and to correct the original error in the v1.0 specification





****************************************************************************



ANY OTHER BACKGROUND INFORMATION:



       The 4.1 revision of this IIRD captures debate around the initial

       draft.  In particular, it is more important to correct the document

       that perpetuate the original error in an attempt to maintain 'upward 

       compatibility'.



       The keyword argument is simply removed for ICM v1.1.  This action

       introduces a known incompatibility between v1.0 .icm files, and the

       v1.1 parser.



       Extensive debate on the subject of version numbers led to the

       conclusion that the icmchk parser always applies the highest

       available level of the icm specification, and in doing so 

       disregards the stated [ICM Ver] keyword's version within the

       .icm document being parsed.



       Thus, a v1.1 parser, when parsing a v1.0 .icm file which has the 

       erroneous [End ICM Section] argument value, will in fact report 

       a parse error.  The parser by default is expected to disregard 

       the embedded '[ICM Ver] 1.0' keyword, rather than honoring it 

       and thereby successfully parsing a v1.0 file according to the 

       outdated v1.0 rules.



       As a side note, the work-in-progress v1.1 icmchk parser does 

       implement both v1.0 and v1.1 rulsets.  It is a trivial matter to 

       provide any desired behavior with respect to the '[ICM Ver]' 

       keyword.

       





****************************************************************************







