Subject: IBIS BIRD53.1 - IBIS FIle Character Set

From: [email-masked] (Bob Ross)
Date: Tue, 1 Sep 98 16:57:50 PDT

To All:

Below is BIRD53.1 from Geoffrey Ellis (with assistance from Matthew
Flora).  This will be scheduled for a vote at the September 18, 1998
meeting.

Bob Ross
Mentor Graphics

                       Buffer Issue Resolution Document  (BIRD)

BIRD ID#:      53.1
ISSUE TITLE:   IBIS File Character Set
REQUESTER:     Geoffrey Ellis at Cadence Design Systems
DATE SUBMITTED: August 7, 1998, September 1, 1998
DATE ACCEPTED BY IBIS OPEN FORUM: Pending

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

STATEMENT OF THE ISSUE:

While the general syntax rules and guidelines say, "The file must have no more
than 80 characters per line," the rules do not say which character sequences
are legal to terminate a line, e.g. carriage return followed by a linefeed
character, etc.  Also, the Specification does not say whether or not the line
termination character(s) count against the 80 character limit.

The Specification also does not state which characters are legal in an IBIS
file, other than that it is an ASCII file.  Although ASCII is a 7-bit code
("US-ASCII. Coded Character Set - 7-Bit American Standard Code for Information
Interchange. Standard ANSI X3.4-1986, ANSI, 1986"), some published standards
make reference to "8-bit ASCII characters", for example "File Transfer Protocol
RFC 542 NIC 17759".  The International Standards Organization has published
ISO-8859, a group of 8-bit character sets, for use in different regions of the
world.  Each of these character sets is a super set of ASCII, using codes
greater than hexadecimal 07F to represent accented or local characters.

The IBIS Specification should make clear that neither extended character sets,
such as those defined in ISO-8859, nor ASCII controls (other than tabs and
line terminators) are allowed in an IBIS file.

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

STATEMENT OF THE RESOLVED SPECIFICATIONS:

    The "General Syntax Rules and Guidelines" section contains 13 numbered
    items, including item 4 which states:

        4) The file must have no more than 80 characters per line.

    We propose to modify item 4, and to add item 14, as follows:

        4) A line of the file may have at most 80 characters, followed
           by a line termination sequence.  The line termination sequence must
           be one of the following two sequences: a linefeed character, or a
           carriage return followed by linefeed character.

       14) Only ASCII characters, as defined in ANSI Standard X3.4-1986, may be
           used in an IBIS file.  The use of characters with codes greater than
           hexadecimal 07F is not allowed.  Also, ASCII control characters
           (those numerically less than hexadecimal 20) are not allowed, except
           for tabs or in a line termination sequence. As mentioned in item 10
           above, the use of tab characters is discouraged.

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

ANALYSIS PATH/DATA THAT LED TO SPECIFICATION:

    At the lowest level of detail, the IBIS Specification needs to say which
    characters are legal, and what constitutes a "line".

    ASCII files produced in a Microsoft/PC environment have lines which end
    with a carriage return followed by a linefeed character, while ASCII files
    produced on UNIX have lines which end with a linefeed character.  An IBIS
    parser should accept either line termination sequence, regardless of the
    environment in which the parser runs.  Any other line termination sequence
    should be ruled out.

    Use of an ISO-8859 extended character set might improve model readability
    in the region of the world where the model was produced, but would make the
    IBIS file less readable in other regions.  The ASCII code, which is a
    subset of each of the ISO-8859 character sets, is the subset which is
    readable across all of the regions.

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

ANY OTHER BACKGROUND INFORMATION:

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