Number | 47
|
Category | errata
|
Synopsis | 3.7.4: Wrong description of tri0/1 in 3.7.4
|
State | lrmdraft
|
Class | errata-discuss
|
Arrival-Date | Oct 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
Let me explain.
In any standard, it is accepted that where there is a conflict between
In this case, the formal description is the truth tables in Tables 3-5
Note that the corresponding truth tables 3-2 to 3-4 have the comment,
Furthermore, I raised this issue way back in October 2000,
If I could interpret this wrongly, than others are liable to do
Therefore, the correct fix is:
- Delete the sentences:
- Delete the sentences: - Delete Table 3-5 and 3-6.
Thanks, Steven.
Shalom
Steven Sharp wrote:
>The descriptions of tri0 and tri1 in section 3.7.4 are inaccurate and
Slightly misleading anyway.
>The accurate sentence (for tri1) is "When no driver drives a tri1 net,
No, that is the one that is misleading. It happens to be true,
>Inaccurate are
This is the one that is accurate and complete.
>The difference occurs if the net is being driven by a driver weaker
Yes, that is when the difference occurs. If you try this in Verilog-XL,
>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
The first sentence is an oversimplification and obviously could be
Steven Sharp
-- ************************************************************************** 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