Re: errata/47: Wrong description of tri0/1 in 3.7.4

From: Shalom Bresticker (Shalom.Bresticker@motorola.com)
Date: Sun Oct 14 2001 - 07:00:01 PDT


Precedence: bulk

The following reply was made to PR errata/47; it has been noted by GNATS.

From: Shalom Bresticker <Shalom.Bresticker@motorola.com>
To: Steven Sharp <sharp@cadence.com>
Cc: btf-bugs@boyd.com
Subject: Re: errata/47: Wrong description of tri0/1 in 3.7.4
Date: Sun, 14 Oct 2001 15:54:36 +0200

 --------------64955FC3A0BFC550B61697CC
 Content-Type: text/plain; charset=us-ascii
 Content-Transfer-Encoding: 7bit
 
 Arggh !!
 
 You're right, at least in Verilog-XL !
 
 That's an even worse bug! Now I consider fixing this in the LRM as critical!
 
 Let me explain.
 
 In any standard, it is accepted that where there is a conflict between the verbal
 description and the formal description, then the formal description takes precedence.
 
 In this case, the formal description is the truth tables in Tables 3-5 and 3-6,
 which make no reference to strength. For example, 3-5 shows that if a tri0 is
 driven with a 1, regardless of strength, then the wire is never 0.
 
 Note that the corresponding truth tables 3-2 to 3-4 have the comment,
 "Note that they assume equal strengths for both drivers".
 
 Furthermore, I raised this issue way back in October 2000,
 and nobody contradicted me then.
 
 If I could interpret this wrongly, than others are liable to do so as well.
 
 Therefore, the correct fix is:
 
 - Delete the sentences:
 "When no driver drives a tri0 net, its value is 0. When no driver drives a tri1 net, its value is 1.
 The strength of this value is pull."
 
 - Delete the sentences:
 "A truth table for tri0 is shown in Table 3-5. A truth table for tri1 is shown in Table 3-6."
 
 - Delete Table 3-5 and 3-6.
 
 Thanks, Steven.
 
 Shalom
 
 
 
 Steven Sharp wrote:
 
> Sorry Shalom, but you have this backwards.
>
> >The descriptions of tri0 and tri1 in section 3.7.4 are inaccurate and
> misleading.
>
> Slightly misleading anyway.
>
> >The accurate sentence (for tri1) is "When no driver drives a tri1 net, its
> value is 1."
>
> No, that is the one that is misleading. It happens to be true, but does
> not specify its full effect.
>
> >Inaccurate are
> >"The tri0 and tri1 nets model nets with resistive pulldown and resistive pullup
> devices on them," and "A tri1 net is
> >equivalent to a wire net with a continuous 1 value of pull strength driving
> it."
>
> This is the one that is accurate and complete.
>
> >The difference occurs if the net is being driven by a driver weaker than pull.
> >In a true pullup net, the pullup will override the driver. In a tri1, the weak
> driver will succeed.
> >Similarly, if a true pullup net is also driven by a pull0
> >strength, there will be contention, but not in a tri1 net.
>
> Yes, that is when the difference occurs. If you try this in Verilog-XL,
> you will find that a tri1 acts exactly like a net with an implicit pullup.
>
> >Note that the second inaccurate sentence does not appear in 1364-1995.
>
> The second sentence was added to clarify the misleading one from 1364-1995.
>
> >At the very least, the second inaccurate sentence, which was
> >added in 1364-2001 should be deleted.
>
> The first sentence is an oversimplification and obviously could be
> misleading. Perhaps it should be modified. However, the second
> sentence acts to clarify the meaning of the first sentence.
>
> Steven Sharp
> sharp@cadence.com
 
 --
 **************************************************************************
 Shalom Bresticker Shalom.Bresticker@motorola.com
 Motorola Semiconductor Israel, Ltd. Tel #: +972 9 9522268
 P.O.B. 2208, Herzlia 46120, ISRAEL Fax #: +972 9 9522890
 **************************************************************************
 
 
 
 --------------64955FC3A0BFC550B61697CC
 Content-Type: text/html; charset=us-ascii
 Content-Transfer-Encoding: 7bit
 
 <!doctype html public "-//w3c//dtd html 4.0 transitional//en">
 <html>
 Arggh !!
 <p>You're right, at least in Verilog-XL !
 <p>That's an even worse bug! Now I consider fixing this in the LRM
 as critical!
 <p>Let me explain.
 <p>In any standard, it is accepted that where there is a conflict between
 the verbal
 <br>description and the formal description, then the formal description
 takes precedence.
 <p>In this case, the formal description is the truth tables in Tables 3-5
 and 3-6,
 <br>which make no reference to strength. For example, 3-5 shows that if
 a tri0 is
 <br>driven with a 1, regardless of strength, then the wire is never 0.
 <p>Note that the corresponding truth tables 3-2 to 3-4 have the comment,
 <br>"Note that they assume equal strengths for both drivers".
 <p>Furthermore, I raised this issue way back in October 2000,
 <br>and nobody contradicted me then.
 <p>If I could interpret this wrongly, than others are liable to do
 so as well.
 <p>Therefore, the correct fix is:
 <p>- Delete the sentences:
 <br>"When no driver drives a tri0 net, its value is 0. When no driver drives
 a tri1 net, its value is 1.
 <br>The strength of this value is pull."
 <p>- Delete the sentences:<br>
 "A truth table for tri0 is shown in Table 3-5. A truth table
 for tri1 is shown in Table 3-6."
 <p>- Delete Table 3-5 and 3-6.
 <p>Thanks, Steven.
 <p>Shalom
 <br>
 <br>
 <p>Steven Sharp wrote:
 <blockquote TYPE=CITE>Sorry Shalom, but you have this backwards.
 <p>>The descriptions of tri0 and tri1 in section 3.7.4 are inaccurate and
 <br>misleading.
 <p>Slightly misleading anyway.
 <p>>The accurate sentence (for tri1) is "When no driver drives a tri1 net,
 its
 <br>value is 1."
 <p>No, that is the one that is misleading. It happens to be true,
 but does
 <br>not specify its full effect.
 <p>>Inaccurate are
 <br>>"The tri0 and tri1 nets model nets with resistive pulldown and resistive
 pullup
 <br>devices on them," and "A tri1 net is
 <br>>equivalent to a wire net with a continuous 1 value of pull strength
 driving
 <br>it."
 <p>This is the one that is accurate and complete.
 <p>>The difference occurs if the net is being driven by a driver weaker
 than pull.
 <br>>In a true pullup net, the pullup will override the driver. In a tri1,
 the weak
 <br>driver will succeed.
 <br>>Similarly, if a true pullup net is also driven by a pull0
 <br>>strength, there will be contention, but not in a tri1 net.
 <p>Yes, that is when the difference occurs. If you try this in Verilog-XL,
 <br>you will find that a tri1 acts exactly like a net with an implicit
 pullup.
 <p>>Note that the second inaccurate sentence does not appear in 1364-1995.
 <p>The second sentence was added to clarify the misleading one from 1364-1995.
 <p>>At the very least, the second inaccurate sentence, which was
 <br>>added in 1364-2001 should be deleted.
 <p>The first sentence is an oversimplification and obviously could be
 <br>misleading. Perhaps it should be modified. However, the
 second
 <br>sentence acts to clarify the meaning of the first sentence.
 <p>Steven Sharp
 <br>sharp@cadence.com</blockquote>
 
 <pre>--
 **************************************************************************
 Shalom Bresticker Shalom.Bresticker@motorola.com
 Motorola Semiconductor Israel, Ltd. Tel #: +972 9 9522268
 P.O.B. 2208, Herzlia 46120, ISRAEL Fax #: +972 9 9522890
 **************************************************************************</pre>
  </html>
 
 --------------64955FC3A0BFC550B61697CC--
 



This archive was generated by hypermail 2.1.4 : Mon Jul 08 2002 - 12:54:47 PDT and
sponsored by Boyd Technology, Inc.