At 11:45 AM 5/11/01 -0700, Rimas Avizienis wrote:
>if i have a circuit replicated eight times in a design, is there an easy
>way to do the layout for one circuit and then replicate the layout for
>the others?
Glad you asked.
It would be nice if we had some artificial intelligence that would
recognise replicated circuit blocks at the schematic level, regardless of
how the individual components were labelled, and it would then take a
physical layout of one block and replicate it, assigning the correct
reference designators. But we don't have that, at least not in Protel, not yet.
When a PCB block is copied, there is some control over how the designators
are copied. See Paste Special/Paste Array. This will give designators a
fixed increment, and if the schematic has been drawn such that the
reference designators have the same increment between the blocks, you are
practically home free. But we don't always have this luxury, and it makes
for reference designators with lots of gaps in the numbering.
Now, I'm just finishing up a board with 8 identical blocks. I had drawn the
schematic, and the eight blocks existed on two sheets of the schematic, 4
per sheet. In some ways, it would have been a little easier if there had
been one block per sheet. It was auto-annotated, see below for a comment
about that.
I then designed one block, working with the components until I had an
efficient placement (this needed to be designed at almost 100% density); it
was long and skinny. I then made gerbers of this block, of the silkscreen
and padmaster layers, and imported them to an otherwise unused mech layer,
I'll call it the placement layer. I stepped seven copies of this placement
layer in a row adjacent to the original. I made sure that the full array
would fit on the PCB before I went any further.
I made a list of which parts in each block corresponded to the parts in the
first section. This was easy because the increment for each type of
component was equal to the number of that type of component (C, R, etc) in
the array. I had been careful to arrange the schematic in the first place
so that the numbering would occur in this way (this has to do with the
sequence in which parts are placed as well as the annotation command
setup). Had I not done this, it would have been only a little more
difficult. In any case, if you make a mistake here, it will self-correct
since it will create DRC errors.
I made a list instead of just looking at the schematic because it will be
*much* faster to pick names from a list than to try to match them visually
from one block to another, one at a time.
I then zoomed in on the second section, with the placement layer being the
current layer. One at a time, I picked up a component from my list and
placed it on the corresponding part on the placement layer. Having snap
appropriately set will help this, and if a part has a pad centered on the
reference point, parts will literally snap into place even if they are on
weird grid. I'm starting to place a mech layer pad on the reference point
of each part if it does not already have a pad there. (I like to use
centroid reference because it makes it easy to rotate parts in place, and
also to line them up after some of them have been rotated. Pin 1 reference
can be lousy in this respect and there is little good reason for it.)
To grab the parts, I used a procedure which all designers should know if
they don't already: Move/Component, click on empty space, make sure that
move_component_to_cursor is set, and then pick the component from the list
or type its name in the dialog. This way the component does not need to be
on screen. It's a huge timesaver over zooming around all the time to find
components and zooming back to place them.
In this way, I built up each block. It did not take long to do all eight
blocks. When I had placed all the parts, I deleted all contents of the
placement layer and then the layer itself. (Edit/Select/All_on_layer,
Edit/Clear is probably the fastest way to do this.)
Then I selected all the track and vias in the first block, set a reference
point on a pad, and copied it to each of the other blocks.
Done.
One very big point to notice. Make sure that the first block is *exactly*
how you want it, including the placement of reference designators. Allow
for the fact that the later designators may have longer names. This way you
will not have to adjust hundreds of reference designators later on;
further, any change you make to one section may need to be replicated eight
times. Get it right the first time and save yourself a lot of time later on.
[EMAIL PROTECTED]
Abdulrahman Lomax
P.O. Box 690
El Verano, CA 95433
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* To post a message: mailto:[EMAIL PROTECTED]
*
* To leave this list visit:
* http://www.techservinc.com/protelusers/subscrib.html
* - or email -
* mailto:[EMAIL PROTECTED]?body=leave%20proteledaforum
*
* Contact the list manager:
* mailto:[EMAIL PROTECTED]
*
* Browse or Search previous postings:
* http://www.mail-archive.com/[email protected]
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * *