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

Reply via email to