Here I was getting ready to send a job off for photoplot and it entered my
head that I ought to practice what I preach and reload the net list. Much
to my surprise, I got 224 macros:
U3 has 112 pins
Nets report For try2layer
On 15-Feb-2001 at 19:25:12
Statistics
112 Redundant Nodes
112 New Nodes
0 Error
Netlist Macros
No. Action Error
1 Remove node U3-seg4 from net SEG4
2 Remove node U3-seg47 from net SEG47
.....
113 Add node U3-Seg4 to net SEG4
114 Add node U3-Seg47 to net SEG47
.....
This was disconcerting, to say the least. The board appeared to be perfect,
DRC no errors, and this board was a whole lot of two-pad nets and clearly
there were not 112 missing. Besides, the remove macros exactly matched the
add macros.
U3 was a part with 112 pads, each one of them given a name in lower case.
(Honest, I didn't do it! I did worry a bit, but the netlist loaded
perfectly and everything looked good.)
At first I thought that there might be two copies of U3 on the board, or U3
might be somehow double-padded in the footprint library, or duplicated nets
in the netlist. No.
It appears that pad names with lower case have some strange behavior. I
generated a net list from the board connected copper and used the netlist
comparison tools (in both PCB and Schematic). Both reported that the net
lists were different, as if U3-Seg4 in one list did not match U3-seg 4 in
the other list. Hmmm.... While writing this, I noticed for the first time
that there is indeed a difference in the names: one has a lower case "s"
and the other has an upper case "S".
Checking the original net lists, I found that the list provided to me,
indeed, had capitalized pad names, and the part was all lower case. I built
that part, from a drawing provided by the client which had lower case names.
Netlist load appears to ignore case when it comes to assigning nets. Fine.
But as we have not infrequently seen, the left hand knoweth not what the
right hand doeth. It does *not* ignore case when checking existing net
assignments, thus it generates a remove macro. Since there is now a missing
pad in the net being loaded(following the example above, U3-Seg4, PCB goes
and looks for that pad on the board, and it finds it: U3-seg4. It ignores case.
The netlist comparison utilities do not ignore case; they treat U3-seg4 and
U3-Seg4 as distinct nodes.
Netlist load and comparison utilities are mission critical. If we cannot
trust them, if their behavior is not 100% predictable, use of the software
becomes hazardous. It would be unusual that the bug described here would
actually cause a design error, but it could happen. It is only the fact
that we very rarely use lower case pad names that has protected us.
Workaround: use only upper case pad names and reference designators. If a
net list is provided with lower case names in it, use Word or the like to
convert all the lower case to upper case. If there are names distinguished
only by case, know that netlist load will consider them the same; the
distinction will be lost. So we might as well edit the names to different
names in upper case....
[EMAIL PROTECTED]
Abdulrahman Lomax
P.O. Box 690
El Verano, CA 95433
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* This message sent by: PROTEL EDA USERS MAILING LIST
*
* Use the "reply" command in your email program to
* respond to this message.
*
* To unsubscribe from this mailing list use the form at
* the Association web site. You will need to give the same
* email address you originally used to subscribe (do not
* give an alias unless it was used to subscribe).
*
* Visit http://www.techservinc.com/protelusers/subscrib.html
* to unsubscribe or to subscribe a new email address.
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
________________________________________________________
To leave the EDAFORUM discussion list, send a email with
'leave edaforum' in the body to '[EMAIL PROTECTED]'
More Information : http://www.dolist.net