ISSUE 47

Number 47
Category errata
Synopsis 3.7.4: Wrong description of tri0/1 in 3.7.4
State lrmdraft
Class errata-discuss
Arrival-DateOct 11 2001
Originator Shalom.Bresticker@motorola.com
Release 2001b: 3.7.4, Tables 6 & 7
Environment
http://boydtechinc.com/btf/archive/btf_2001/1585.html
Description
The descriptions of tri0 and tri1 in section 3.7.4 are inaccurate and misleading.

The accurate sentence (for tri1) is "When no driver drives a tri1 net, its value is 1."

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."

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.

Note that the second inaccurate sentence does not appear in 1364-1995.

At the very least, the second inaccurate sentence, which was
added in 1364-2001 should be deleted.
Fix
In Section 3.7.4

Replace the first three paragraphs with:

"The tri0 and tri1 nets model nets with resistive pulldown
and resistive pullup devices on them. A tri0 net is
equivalent to a wire net with a continuous 0 value of pull
strength driving it. A tri1 net is equivalent to a wire net
with a continuous 1 value of pull strength driving it.

When no driver drives a tri0 net, its value is 0 with
strength pull. When no driver drives a tri1 net, its value
is 1 with strength pull. When there are drivers on a tri0
or tri1 net, the drivers combine with the strength pull
value implicitly driven on the net to determine the net's
value. See 7.9 for a discussion of logic strength modeling.

Table 6 and Table 7 are truth tables for modeling multiple
drivers of strength strong on tri0 and tri1 nets. The
resulting value on the net has strength strong, unless both
drivers are z, in which case the net has strength pull."

(In the last paragraph, "strong" and "pull" should be bold.)
Audit-Trail

From: Steven Sharp <sharp@cadence.com>
To: btf-bugs@boyd.com, Shalom.Bresticker@motorola.com
Cc:
Subject: Re: errata/47: Wrong description of tri0/1 in 3.7.4
Date: Thu, 11 Oct 2001 13:43:49 -0400 (EDT)

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


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">

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:
<blockquote TYPE=CITE>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--


From: Shalom Bresticker <Shalom.Bresticker@motorola.com>
To: etf-bugs@boyd.com
Cc:
Subject: Re: errata/47: PROPOSAL - Wrong description of tri0/1 in 3.7.4
Date: Sun, 30 Mar 2003 14:19:29 +0300

The proposed text is OK with me
(except that at the end of the next to last sentence,
"nets value" should be "net's value".)

However, I would prefer to avoid deleting the tables in order
to avoid changing the numbers of the following tables.

On the other hand, if we are going to change the table numbers
back to the X-Y scheme, then maybe it does not matter.

Shalom


> In Section 3.7.4
>
> Replace the first paragraph with:
>
> The tri0 and tri1 nets model nets with resistive pulldown
> and resistive pullup devices on them. When no driver
> drives a tri0 net, its value is 0 with strength pull.
> When no driver drives a tri1 net, its value is 1 with
> strength pull. When there are drivers on a tri0 or
> tri1 net, the drivers combine with the strength pull value
> implicitly driven on the net to determine the nets value.
> See Clause 7 for a description of strength modeling.
>
> Delete paragraph 3, and tables 3.6 and 3.7.
>
> http://boydtechinc.com/cgi-bin/issueproposal.pl?cmd=view&pr=47

--
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




From: Shalom.Bresticker@motorola.com
To: etf-bugs@boyd.com
Cc:
Subject: Re: errata/47: PROPOSAL - Wrong description of tri0/1 in 3.7.4
Date: Sun, 27 Apr 2003 10:05:06 +0300 (IDT)

I would like to add mutual cross-references between:

- sections 3.7.4 (this section) and 7.13.1 ("tri0 and tri1 net strengths")
- sections 3.7.2 ("Wired nets") and 7.10.4 ("Wired logic net types")
- sections 3.7.3 ("Trireg net") and 7.13.1 ("trireg strength")

Shalom


On Thu, 24 Apr 2003, Shalom Bresticker wrote:

> In Section 3.7.4
>
> Replace the first three paragraphs with:
>
> "The tri0 and tri1 nets model nets with resistive pulldown
> and resistive pullup devices on them. A tri0 net is
> equivalent to a wire net with a continuous 0 value of pull
> strength driving it. A tri1 net is equivalent to a wire net
> with a continuous 1 value of pull strength driving it.
>
> When no driver drives a tri0 net, its value is 0 with
> strength pull. When no driver drives a tri1 net, its value
> is 1 with strength pull. When there are drivers on a tri0
> or tri1 net, the drivers combine with the strength pull
> value implicitly driven on the net to determine the net's
> value. See 7.9 for a discussion of logic strength modeling.
>
> Table 6 and Table 7 are truth tables for modeling multiple
> drivers of strength strong on tri0 and tri1 nets. The
> resulting value on the net has strength strong, unless both
> drivers are z, in which case the net has strength pull."
>
> (In the last paragraph, "strong" and "pull" should be bold.)
> http://boydtechinc.com/cgi-bin/issueproposal.pl?cmd=view&pr=47


From: Shalom.Bresticker@motorola.com
To: etf-bugs@boyd.com
Cc:
Subject: Re: errata/47: PROPOSAL - Wrong description of tri0/1 in 3.7.4 (fwd)
Date: Sun, 27 Apr 2003 10:07:31 +0300 (IDT)

Resend with correction.

I would like to add mutual cross-references between:

- sections 3.7.4 (this section) and 7.13.1 ("tri0 and tri1 net strengths")
- sections 3.7.2 ("Wired nets") and 7.10.4 ("Wired logic net types")
- sections 3.7.3 ("Trireg net") and 7.13.2 ("trireg strength")

Shalom


On Thu, 24 Apr 2003, Shalom Bresticker wrote:

> In Section 3.7.4
>
> Replace the first three paragraphs with:
>
> "The tri0 and tri1 nets model nets with resistive pulldown
> and resistive pullup devices on them. A tri0 net is
> equivalent to a wire net with a continuous 0 value of pull
> strength driving it. A tri1 net is equivalent to a wire net
> with a continuous 1 value of pull strength driving it.
>
> When no driver drives a tri0 net, its value is 0 with
> strength pull. When no driver drives a tri1 net, its value
> is 1 with strength pull. When there are drivers on a tri0
> or tri1 net, the drivers combine with the strength pull
> value implicitly driven on the net to determine the net's
> value. See 7.9 for a discussion of logic strength modeling.
>
> Table 6 and Table 7 are truth tables for modeling multiple
> drivers of strength strong on tri0 and tri1 nets. The
> resulting value on the net has strength strong, unless both
> drivers are z, in which case the net has strength pull."
>
> (In the last paragraph, "strong" and "pull" should be bold.)
> http://boydtechinc.com/cgi-bin/issueproposal.pl?cmd=view&pr=47

Unformatted



Hosted by Boyd Technology