Welcome to the Bartels Group of Companies make this page your Homepage... add this page to your Favorites... send this page to a friend... display printer friendly page... display sitemap... display sitemap with all page contents...
Autoplacement - Deutsche Version Autoplacement - English Version
Bartels

Bartels System GmbH
Bartels
Bartels AutoEngineer
BAE Product Info
BAE Price List
BAE Downloads
BAE Documentation
BAE Installation Guide
BAE User Manual
Preface
1 Introduction
2 Circuit Design
3 Packager
4 PCB Design
4.1 General
4.2 Layout Library Symbol Design
4.3 Designing PCB Layouts
4.4 Autoplacement
4.4.1 Part Set
4.4.2 Matrix Placement
4.4.3 Initial Placement
4.4.4 Placement Optimization
4.5 Autorouter
4.6 Special Layout Features
4.7 CAM Processor
4.8 CAM View
5 IC/ASIC Design
6 Rule System
7 Utilities
BAE Libraries
User Language Programmer's Guide
BAE Update History
BAE Next Version Release Notes Preliminary
BAE V8.0 Release Notes
BAE V7.8 Release Notes
BAE V7.6 Release Notes
BAE V7.4 Release Notes
BAE V7.2 Release Notes
BAE V7.0 Release Notes
BAE V6.8 Release Notes
BAE V6.6 Release Notes
BAE V6.4 Release Notes
BAE V6.2 Release Notes
BAE V6.0 Release Notes
BAE V5.4 Release Notes
BAE V5.0 Release Notes
BAE V4.6 Release Notes
BAE V4.4 Release Notes
BAE V4.2 Release Notes
BAE V4.0 Release Notes
BAE V3.4 Release Notes
BAE Support
BAE Contributions
BAE Development and Service Companies
Electronics Development
Bartels Sport Service
Company Profile
Corporate Info
Bartels :: Bartels AutoEngineer :: BAE Documentation :: BAE User Manual :: PCB Design :: Autoplacement
Bartels AutoEngineer® - User Manual

4.4 Autoplacement

Bartels AutoEngineer® Dokumentation

The BAE layout system is equipped with powerful Autoplacement functions. The part set functions are used for selecting and/or deselecting parts for subsequent placement operations. The matrix placement facilities are used for placing selectable part sets onto definable placement grids. Initial placement functions are provided for performing fully automated part placement. The system also provides placement optimization functions for automatic part and pin/gate swap.

The Autoplacement functions are available from the Part Set, Auto Placement and Matrix Placement submenus of the Layout Editor Parts menu.

Start the Layout Editor if it is not yet active and load the layout board from the demo.ddb DDB file.

Use the Delete Part function from the Parts menu to delete the resistors named r100 and r101, and apply group functions to delete the switches named s1000 through s1009:

PartsLeft Mouse Button (LMB)
Delete PartLeft Mouse Button (LMB)
Move to "r100",[1.0",2.4"]Left Mouse Button (LMB)
Delete PartLeft Mouse Button (LMB)
Move to "r101",[1.6",2.4"]Left Mouse Button (LMB)
GroupsLeft Mouse Button (LMB)
Group PolygonLeft Mouse Button (LMB)
PartsLeft Mouse Button (LMB)
SelectLeft Mouse Button (LMB)
Move to [0.1",0.4"]Left Mouse Button (LMB)
Move to [0.6",0.4"]Left Mouse Button (LMB)
Move to [0.6",2.4"]Left Mouse Button (LMB)
Move to [0.1",2.4"]Left Mouse Button (LMB)
Right Mouse Button (RMB)
DoneLeft Mouse Button (LMB)
Delete GroupLeft Mouse Button (LMB)

Autoplacement features and functions are used throughout the following sections to place the deleted parts back onto the layout.

 

4.4.1 Part Set

The Part Set submenu provides features for selecting the parts to be subsequently placed. Parts can be selected and/or deselected according to set principles either by specifying part names (c1, r2, ic15, etc.) or by specifying package types (dil14, so20, plcc44, etc.), where wildcards are also permitted. The user can also select parts from certain blocks of a hierarchical circuit design. With the Part Set functions the user is able to control the placement process in a way that e.g., first the plug(s) can be placed, then the DIL packages, then the capacitors, etc.

Use the following commands to deselect all unplaced parts:

PartsLeft Mouse Button (LMB)
Part SetLeft Mouse Button (LMB)
AllLeft Mouse Button (LMB)
DeselectLeft Mouse Button (LMB)
Deselect all parts ?j Return/Enter Key (CR)
AbortLeft Mouse Button (LMB)

Now you might want to use the List Parts command to have a look at the part list:

PartsLeft Mouse Button (LMB)
Part SetLeft Mouse Button (LMB)
List PartsLeft Mouse Button (LMB)

The List Parts function provides verbose output of all net list parts:

File : demo.ddb  Layout : board  Parts : 23

: c100 chip1210 P : c101 chip1206 P : ic10 dil14 P : k1 relais P : r100 r04a25 U : r101 r04a25 U : r102 r04a25 P : r103 r04a25 P : r104 minimelf P : r105 chip1206 P : s1000 s1dilo U : s1001 s1dilo U : s1002 s1dilo U : s1003 s1dilo U : s1004 s1dilo U : s1005 s1dilo U : s1006 s1dilo U : s1007 s1dilo U : s1008 s1dilo U : s1009 s1dilo U : v1 to92 P : v1000 d04a25 P : x1000 xsubd9bl P - End -

Each part is listed with part name, library name and placement status, respectively. The placement status is indicated using either of the characters U, P or S. U indicates that the part is neither placed nor selected for placement. P indicates that the part is already placed on the layout. S indicates that the part is not yet placed but selected for subsequent placement operations. Press X and the return key Return/Enter Key (CR) to exit from the parts list.

Use the following commands to select all unplaced parts with part names starting with an r:

PartsLeft Mouse Button (LMB)
Part SetLeft Mouse Button (LMB)
Part(s)Left Mouse Button (LMB)
SelectLeft Mouse Button (LMB)
Part Name ?r* Return/Enter Key (CR)
Part Name ? Return/Enter Key (CR)

The Select and Deselect part set selection options from the Part(s) function also provide a popup menu for part selections. With the Select option, the popup menu only displays unselected parts, whilst with the Deselect option, only selected parts are displayed. A part name pattern can be entered for part set selections.

The above commands selected the two resistors r100 and r101 for subsequent placement operations. You can check this with the List Parts function (see placement status S for these two parts).

The All function can be used to select all unplaced parts for placement. The Macro(s) function can be used to select parts with library names (such as so16 for all unplaced 16 pin small outline package types or dil* for all unplaced dual-in-line package types). The Deselect option can be used to deselect parts from the set of parts to be subsequently placed.

The List Blocks and Block functions from the Part Set menu can be used for selecting and/or deselecting parts which are defined in certain blocks of a hierarchical circuit design. I.e., parts are selected or deselected through block names. Part block names are automatically transferred and stored by the Packager utilizing the internal $blkname part attribute.

It has already been mentioned that the Add Part and Place Next Part functions work on the part set (see section Placing Parts in chapter 4.3.2). Use the following commands to set the coordinate display mode to inch, and place all parts of the currently defined part set (i.e., the two resistors named r100 and r101):

SettingsLeft Mouse Button (LMB)
Coordinate DisplayLeft Mouse Button (LMB)
Display InchLeft Mouse Button (LMB)
PartsLeft Mouse Button (LMB)
Place Next PartLeft Mouse Button (LMB)
Move to [1.0",2.4"]Left Mouse Button (LMB)
PartLeft Mouse Button (LMB)
Place Next PartLeft Mouse Button (LMB)
Move to [1.6",2.4"]Left Mouse Button (LMB)
PartsLeft Mouse Button (LMB)
Place Next PartLeft Mouse Button (LMB)

The Place Next Part function issues the

All selected parts have been placed already!

message if no more part is selected for subsequent placement operations anymore (i.e., all parts of the previously defined part set are already placed).

 

4.4.2 Matrix Placement

Matrix placement is a special initial placement process for automatically placing selected parts on certain matrix-defined insertion positions.

Use the following commands to select all parts with library name s1dilo (i.e., the switches named s1000 through s1009) for subsequent placement operations:

PartsLeft Mouse Button (LMB)
Part SetLeft Mouse Button (LMB)
Select MacroLeft Mouse Button (LMB)
SelectLeft Mouse Button (LMB)
Library Element Name ?s1dilo Return/Enter Key (CR)
Library Element Name ? Return/Enter Key (CR)

Set the default placement rotation angle to 270 degree (without mirroring (the Default Angle option is probably located in the Parts group of the Settings dialog from the Settings menu when working with customized BAE user interfaces):

PartsLeft Mouse Button (LMB)
Default AngleLeft Mouse Button (LMB)
270 Degrees LeftLeft Mouse Button (LMB)

Use the following commands to define a placement matrix, place all selected parts onto this matrix and delete the placement matrix definition again:

PartsLeft Mouse Button (LMB)
Matrix PlacementLeft Mouse Button (LMB)
Define MatrixLeft Mouse Button (LMB)
Move to Matrix Origin,[0.2",2.3"]Left Mouse Button (LMB)
Move to Matrix Element Size Designation,[0.3",2.1"]Left Mouse Button (LMB)
Move to Matrix Size Designation,[0.2",0.5"]Left Mouse Button (LMB)
Place MatrixLeft Mouse Button (LMB)
Delete MatrixLeft Mouse Button (LMB)

The Place Matrix function automatically places all parts of the currently defined part set onto the placement matrix, also considering the current default placement rotation angle and mirror mode settings.

Now all net list parts are placed. You might want to check this with the List Parts function.

 

4.4.3 Initial Placement

The system provides full automatic initial placement algorithms. The initial placement functions automatically place all unplaced net list parts inside the board outline onto the currently selected input (placement) grid, considering pre-placed parts (connectors, LEDs, etc.), keepout areas and net list preferences, and also featuring automatic block capacitor and SMD device recognition. Automatic SMD part mirroring can optionally be enabled to allow SMD placement on the solder side. Either unrestricted or restricted automatic part rotation in 90 degree steps can be applied; restricted part rotation can be used to simplify subsequent insertion processes. A generally applicable part expansion value can optionally be defined to ensure minimum clearance between adjacent parts. The placement algorithms are guarded by adjustable strategy parameters for net list preference control and for the consideration of part segment matching/fitting. Rip-up and retry passes are automatically applied during the placement process to optimize board area yield.

The initial placement routines are integrated to the Auto Placement submenu which provides the following functions:

PartsLeft Mouse Button (LMB)
Auto PlacementLeft Mouse Button (LMB)
Full Autoplacer
Cluster Placer
Area Placer
Single Pass Optimizer
Multi Pass Optimizer
Part Pin Factor
Segment Fit
Mirroring Mode
Rotation Mode
Part Expansion
Number of Retries
Number of Passes
P/G Swap Method

The Full Autoplacer, Cluster Placer and Area Placer function can be used to perform automatic part placement. Only the parts from the current part set (see chapter 4.4.1) are placed. Placed parts which are not selected to the current part set are treated like fixed parts. This feature allows for automatic placement of selectable part groups.

The first part selected for placement will be positioned at the placement start point. The Full Autoplacer function automatically designates the placement start point. The Cluster Placer and Area Placer functions prompt the user for the placement start point (prompt Select placement start point!). The placement of the first part determines the placement of subsequent parts. I.e., the selected placement start point position has crucial meaning for the complete placement process (with regard to 100% completion success and/or the quality of the achieved placement). If the first part cannot be placed at the placement start point, then no subsequent part can be placed either. If the placement start point is selected outside the board outline, then no part can be placed at all. If no board outline is defined then there are no restrictions on selecting the placement start point, however parts could then be placed even outside the boundaries of the currently loaded layout element.

After starting an initial placement function the placement progress is indicated in the status line by a progress message such as Pass : 1/1 Part : <p>/<n>. The autoplacement process can be stopped by keystroke. Each autoplacement stop request is verified with user confirmation and will be denoted by a message such as Autoplace aborted!. Note that there might be a short delay on stop requests since any currently active autoplacer rip-up and retry pass must be completed.

A message such as Operation completed without errors. is issued after completing an initial placement function to indicate that all parts have been successfully placed. If the autoplacer fails to complete 100% part placement using the current parameter settings, then a message such as <n> parts could not be placed! is issued, denoting the number <n> of yet unplaced parts. On incomplete initial placement it is recommended to change placement parameters (use smaller placement grid, reduce part expansion, use unrestricted part rotation, allow SMD mirroring; see below on how to set placement parameters) and restart the autoplacer (after Undo and/or selecting a different placement start point) to achieve 100% part placement.

Full Autoplacer

The Full Autoplacer function performs cluster placement (see below) with automatic placement start point selection and subsequently applies multi-pass placement optimization (see chapter 4.4.4 below) using the currently selected placement optimization parameters (number of passes and the pin/gate swap method). The placement start point results from the board outline gravity point. No part can be placed using the Full Autoplacer function, if the board outline gravity point is outside the board outline (e.g., on L-shaped PCBs) then ; in this case either Cluster Placer or Area Placer must be used instead of Full Autoplacer.

If no board outline is defined, then the placement start point results from the absolute origin of the currently loaded layout element. In this case it is recommended to zoom to overview after completing the placement process since parts can be placed beyond the currently defined and/or visible layout element boundaries.

Cluster Placer

After activating the Cluster Placer function the user is expected to select the placement start point interactively. The first part selected for placement is positioned at the placement start point.

The Cluster Placer function analyzes the net list to classify the nets and parts contained in the net list. Parts are grouped to clusters, and these clusters are subsequently placed on the layout with respect to pre-calculated cluster-dependent placement priorities. Each cluster is grouped by selecting a multi-pin part and a series of connected parts with less than four pins. Parts which are connected to power signals only (such as block capacitors) are postponed during cluster generation and will be assigned to clusters with corresponding power connections afterwards. This method of cluster building automatically involves block capacitor recognition, thus featuring appropriate block capacitor placement nearby corresponding ICs. Parts and/or part clusters are assigned and/or processed due to alphabetical part name order. It is recommended to introduce part type grouping by choosing appropriate type-specific part name patterns, i.e., to insert connectors at the end of the part name list to avoid block capacitor assignment to connectors and/or plugs (e.g., by using name pattern x??? for connectors and/or plugs, ic??? for integrated circuits, etc.).

Area Placer

The Area Placer function performs area placement with interactively selectable placement start point. Area placement does not consider any net list preferences, i.e., only part dimensions are considered as placement criteria. The Area Placer function can be used to estimate part placement area requirements, i.e., to check whether the board area is large enough to place all parts.

Part Pin Factor

The part pin factor is used to control the sequence of parts and/or clusters to be placed. The next part to be placed is selected by applying a combination of two strategies. The first strategy simply selects the part with the maximum number of pins connected to already placed parts. The second strategy selects the part with the maximum ratio of number of part pins connected to already placed parts to total part pin count. The part pin factor value designates which strategy has higher priority. Use the

PartsLeft Mouse Button (LMB)
Auto PlacementLeft Mouse Button (LMB)
SettingsLeft Mouse Button (LMB)
Part Pin FactorLeft Mouse Button (LMB)
Pin Count Weight [0.0,1.0] (0.90) ?

function to set the desired part pin factor value in the range 0.0 (for considering connection counts only) to 1.0 (for considering connection count to total pin count ratios only). On default the part pin factor value is set to 0.9. A high part pin factor value usually results in a better distribution of nets, but could cause excessive placement area fragmentation on high-density layouts by early placement of small parts, which might prevent from placing larger parts afterwards.

Segment Fit

The segment fit value is used to control on how much part edge length matching should be considered by the placement algorithm, i.e., whether preference should be given on placing parts with equal edge lengths side by side. Use the

PartsLeft Mouse Button (LMB)
Auto PlacementLeft Mouse Button (LMB)
SettingsLeft Mouse Button (LMB)
Segment FitLeft Mouse Button (LMB)
Segment Fit [0.0,1.0] (0.10) ?

function to set the weight factor for considering part edge length matching. Valid segment fit values are in the range 0.0 (no segment fit preference) to 1.0 (high segment fit preference). On default the segment fit value is set to 0.1. High segment fit values usually result in better looking layouts, and can increase the routability of layouts with many bus connections. Better routability of high-density layouts with a "random" connection distribution however can be achieved using smaller segment fit values.

Mirroring Mode

The part mirroring mode has effect on the placement of SMD parts only. With the No SMD Mirroring default option, SMD parts can only be placed on the PCB part side. SMD Mirroring is used to allow unrestricted placement of SMD parts on both the part side and the solder side. The SMD 2 Pin Mirroring option restricts automatic part mirroring to 2-pin SMDs only, thus allowing for solder side placement of small parts such as block capacitors whilst placement of SMDs with more than 2 pins is forced onto the PCB part side. Use the

PartsLeft Mouse Button (LMB)
Auto PlacementLeft Mouse Button (LMB)
SettingsLeft Mouse Button (LMB)
Mirroring ModeLeft Mouse Button (LMB)
No SMD Mirroring
SMD Mirroring
SMD 2 Pin Mirroring

function to select the desired SMD mirroring option.

Rotation Mode

The part rotation mode is used to apply either unrestricted or restricted automatic part rotation in 90 degree steps. With the 0-270 Degree Rotation default option all parts can be placed at arbitrary 90 degree rotation steps. Option 0-90 Degree Rotation can be used to restrict part rotation, i.e., to allow no rotation or 90 degree left rotation only. Restricted part rotation can be used to simplify subsequent insertion processes which will also result in a reduction of CPU time required by the placement algorithms. Use the

PartsLeft Mouse Button (LMB)
Auto PlacementLeft Mouse Button (LMB)
SettingsLeft Mouse Button (LMB)
Rotation ModeLeft Mouse Button (LMB)
0- 90 Deg. Rot.
0-270 Deg. Rot.

function to select the desired part rotation mode.

Part Size, Part Expansion, Block Capacitors, Placement Grid

The parts are placed onto the currently selected input grid (to be set using the Input Grid function from the View menu). The placement area required for each part (i.e., the part size) emerges from the element boundaries of the corresponding part macro. This should be taken into consideration at the definition of element boundaries when creating part macro symbols. It is recommended to refrain from defining unnecessarily large part macro element boundaries to avoid redundant placement area occupancy.

A generally applicable part expansion value can optionally be defined in order to ensure minimum clearance between adjacent parts (on low-density layouts). Use the

PartsLeft Mouse Button (LMB)
Auto PlacementLeft Mouse Button (LMB)
SettingsLeft Mouse Button (LMB)
Part ExpansionLeft Mouse Button (LMB)
Expansion Value ( 0.00mm) ?

function to set the desired part expansion value. On default the part expansion value is set to 0.0mm (i.e., no part expansion is applied). Note that the specified part expansion value with no regard to different part macro type dimensions is equally applied on each part macro type except for block capacitors. Block capacitors are automatically recognized and will be placed as close as possible to the ICs to be supplied. The Full Autoplacer preferably places block capacitors either on top or on the right-hand side of the integrated circuits, according to the ICs orientation.

The Full Autoplacer features a function for automatically reducing part expansion settings by 25 percent steps until either complete placement is achieved or part expansion is reduced to zero.

Rip-up and Retry Passes

The initial placement algorithms are designed to consider only connections to/between already placed parts. Intermediate placement results might show up with alternate positions to be more optimum for a series of previously autoplaced parts. For this reason, rip-up and retry passes are activated for replacing already placed parts in order to find a more optimum placement. Note that preplaced unfixed parts are also processed by the rip-up and retry passes. It is strongly recommended to fix those preplaced parts which must not be replaced. Parts can be fixed using Layout Editor group functions. Use the

PartsLeft Mouse Button (LMB)
Auto PlacementLeft Mouse Button (LMB)
SettingsLeft Mouse Button (LMB)
Number of RetriesLeft Mouse Button (LMB)
Number of Retries [0,9] ( 2) ?

function to specify the number of retry passes to be applied during the autoplacement process. Two retry passes are used on default; i.e., one rip-up and retry pass is applied after placing half of the unplaced parts and one rip-up and retry pass is applied at the end of the autoplacement process. It is recommended to refrain from specifying too many retry passes since this not only increases CPU time requirements but also can result in a deterioration of intermediate placement results since small parts such as block capacitors might not be correctly replaced with their clusters.

 

4.4.4 Placement Optimization

The placement optimization features of the BAE layout system include functions for automatic part and pin/gate swap. The part swap facility mutually exchanges identical components at their insertion position in order to minimize unroutes lengths. The pin/gate swap facility analogously performs an iterative exchange of gates and/or pins and pin groups, where gates or groups can also be swapped between different parts. The admissibility of pin/gate swaps is fairly controlled with appropriate library definitions. Either single pass or multi pass optimization can be applied. Different swap methods can be selected through the P/G Swap Method function, with the default Both Swap Methods option to perform both component and pin/gate swap, Only Part Swap to switch off pin/gate swap and Only Pin/Gate Swap to switch off component swap. Applying placement optimization usually causes a significant simplification of the routing problem, thus considerably reducing runtime at the subsequent Autorouting process.

Use the following commands to perform a triple-pass placement optimization with both component and pin/gate swaps:

PartsLeft Mouse Button (LMB)
Auto PlacementLeft Mouse Button (LMB)
SettingsLeft Mouse Button (LMB)
Number of PassesLeft Mouse Button (LMB)
Number of Passes : 2 (1..99) ?3 Return/Enter Key (CR)
Multi Pass OptimizerLeft Mouse Button (LMB)

During optimization a status line message instantly reports the number of parts processed by the current optimizer pass. Placement optimization can be interrupted at any time by pressing an arbitrary key on the keyboard.

Wait until all optimizer passes are completed and use the Undo function to estimate how placement optimization did change the complexity of the "ratsnest" (unroutes).

Fixed parts are excluded from placement optimization. It is strongly recommended to fix critical parts before running the placement optimization. Critical parts are those which must not be replaced (e.g., plugs, switches, LEDs, etc.) or where pin/gate swaps are not allowed (e.g., relays, multi-opamps, etc.). Parts can be fixed using Layout Editor group functions. Please note that automatic pin/gate swap should only be performed if all of the swap definitions stored with the logical library are permitted. Select the Only Part Swap option from the P/G Swap Method function to switch off automatic pin/gate swap if you are in doubt about the correctness of swap definitions. Consider please that usually no pin/gate swap is allowed for plugs. Swaps for parts with special attribute values (e.g., resistor networks with attribute $val must be defined internal to prevent the system from swapping gates between parts with different values. See chapter 7.11 of this manual for a description of the loglib utility program and how to introduce pin/gate swap definitions to the logical library.

Bartels :: Bartels AutoEngineer :: BAE Documentation :: BAE User Manual :: PCB Design :: Autoplacement

Autoplacement
© 1985-2024 Oliver Bartels F+E • Updated: 11 October 2010, 10:30 [UTC]

© 1985-2024 Oliver Bartels F+E Bartels Homepage Contact and Corporate Info

Web Development by Baumeister Mediasoft Engineering

make this page your Homepage... add this page to your Favorites... send this page to a friend... display printer friendly page... display sitemap... display sitemap with all page contents... Autoplacement - Deutsche Version Autoplacement - English Version