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]
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

Reply via email to