At 12:59 PM 11/11/01 -0800, John Williams wrote:
>Take a look at this video (254KB download) of Mentor's (was Veribest)
>implementation of interactive trace plowing through polygon planes:

The problem with Protel's polygon pour system is that it creates a huge 
number of individual primitives to accomplish the fill. So plowing can 
involved moving a lot of primitives to calculate and move. A 
positive/negative system would involve very few primitives.

The fastest polygons would be purely negative, i.e., all that exists in the 
database is the polygon outline and parameters and the polygon appears as 
*calculated* in the display and in plotting; the problem with that is that 
(1) display could be slower -- though I think not -- and (2) determining 
connectivity is more difficult. (Protel's inner planes are purely negative 
and they are not checked for connectivity at all except by assuming that a 
pad of the plane's net is connected if it is within the plane's territory.)

A positive-negative plane is stored on two layers, a positive layer which 
is the only one which implements connections, since it draws copper, and a 
negative layer which draws only anticopper creating clearance around all 
primitives except non-pad primitives connected to the plane's net. All pads 
and vias are clear regardless of net. Then track is placed (or already 
existed) on the positive layer to implement connections, with that track 
also obeying the clearance settings for the plane with respect to other 
nets. This connecting track is invisible both in plot and display except 
for ties to the plane across thermal reliefs or filling in direct connect 
pads and vias, or where it may approach closer to a primitive of a 
different net allowed by a special design rule (or exception allowed as I 
have suggested elsewhere by the PCB equivalent of a no-ERC marker). Thus a 
plane may be created which has contiguous connectivity where otherwise it 
would not, because traces have been added across, for example, the spaces 
between pads.

(Planes are, in good design practice, created with clearances greater than 
the generic board clearance, because of the fabrication requirements of 
inner layers where tight clearance *everywhere* can reduce yield. But this 
greater clearance can cause islands -- or areas connected only by very thin 
copper -- to appear in the plane because of pad blowouts; thus it is useful 
to allow lower clearance in a few places where it improves plane 
connectivity. This is easily implemented under the Protel rule-driven 
system by setting the plane fill to a greater clearance than the generic 
board clearance or other relevant clearance; the capability of doing this 
was introduced in Protel 99 or in one of the service packs, as I recall.)

Another advantage of the positive-negative system would be that it would be 
equally useful for polygon pours or for "inner planes."

Right now the positive-negative system can be implemented with Protel using 
a combination of an inner plane and a positive layer; the inner plane would 
be set to clear all primitives, and the merge would be through specific 
instruction to the photoplotters to merge the layers. There is no simple 
and direct way, however, to generate such a plane on the top or bottom 
layers because the inner planes are based on hole diameters rather than pad 
diameters. A mech layer, however, can be created; it would be really simple 
if Protel's global edits would do math on fields, so that one could, for 
example, edit all track on a layer to its present value plus or minus a 
variable. One would enter into the replacement field a number at present, 
except that it would be preceded with the addition or subtraction 
operation. This should be simple to implement. Many times for many purposes 
I have desired such an ability....

One way to create such a blowout layer would be to set a board or 
layer-scope solder mask rule with the desired expansion, plot it, then 
import it to the blowout mech layer. The normal solder mask rules would be 
disabled during the plot and then the blowout rule would be disabled and 
the others enabled.

Protel's ability to name rules can make this self-documenting.

Protel does not presently support positive-negative merges directly; direct 
support would involve using RS-274X polarity commands to plot both the 
positive and negative simultaneously. But this would be exactly equivalent 
to a manually merged plot.

I used a system like this for many years with Tango DOS. It works. Since 
the blowout layer is guaranteed by the rules and process to have the proper 
clearance, no DRC of it for clearance violations is necessary, and since 
the connections are made by track on the positive layer, those connections 
are DRC'd for both clearance and connectivity. Any islands will be detected 
if the plane layer is not allowed to make any actual pad-to-pad connections.

There may be some problems related to the Protel floating track/via bug. 
(Free non-pad primitives assigned to a layer and to a polygon fill net are 
not checked for actual connectivity; this has been recently discussed; the 
net assignments of those primitives is sufficient to cause an island not to 
be cleared even though dead copper removal is enabled in the polygon setup, 
so this can allow floating islands of copper, undesirable for noise 
reasons. This cannot cause nets to be split in the DRC, however, because 
connectivity DRC only checks pad connections.) Methods have been presented 
recently to detect this condition.

All of this only becomes significant or necessary when board complexity 
grows to the point where manual checking of plane and polygon connectivity 
is undesirable and error-prone.

Abdulrahman Lomax
Easthampton, Massachusetts USA

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* To post a message: mailto:[EMAIL PROTECTED]
* To leave this list visit:
* Contact the list manager:
* Forum Guidelines Rules:
* Browse or Search previous postings:
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

Reply via email to