Solder Paste Optimization

Solder Paste Optimization (SPO) is a read-write DFM action designed to create a new Solder Paste layer or modify an existing one, derived from an external copper layer.

The purpose is to modify SMD/Test Vias/ Ground pads according to user-defined parameters so that the modified pads will act as the input for the creation of a solder paste application stencil.

A pad can be modified (resized) by an absolute value, a factor, or a specified distance. Separate rules apply to different pads.

SMD pads can be resized proportionately or disproportionately (that is, their heights can be changed by a ratio different from their widths). They can be resized disproportionately only when their symbols are standard system symbols that have width and height, such as rectangles and ellipses. Since pad sizes can be modified only when SMD pad sizes fall within the SMD Size ranges, separate paste pads can be created for different size ranges of SMD pads. By adding attributes to components in the component layers, you can control the way and amount by which their paste pads are reduced, and even control the paste pad shape.

When special predefined arrangements of solder paste on pads are required to be retained without change, the appropriate ERF variable modify_non_centered should be No. All other criteria are applied to all other pads, including staggered and/or cross-hatched.

Ground pads are round pads that are not defined as SMD or Test Point pads that were either user-selected or their diameters match the user-specified diameters. Paste pads for ground pads are created as user-definable thermal pads.

Affected layers can also be paste layers, or signal/mixed outer layers (with all the SMD pads).

When a solder paste layer exists before the initialization of Solder Paste Optimization, a backup layer will be created with the name <layer_name>+++. For example, if the existing solder paste layer is named: sp1 , the backup layer will be sp1+++.

The rules that apply to each type of pad is explained in the following sections: SMD Pads, Test Via Pads, Ground Pads.

SMD Pads

Paste pads for SMD pads can be created only when an SMD pad fits within the ranges defined in the SMD Ranges parameters. The paste pad characteristics will be derived from the SMD shape and size, and shrunk by the values specified in the relevant parameter. Shrinkage can be by an absolute value, a distance, or by a factor.

SMD pads can be shrunk proportionately or disproportionately, that is, width can be shrunk differently than height shrinkage. Of course, the shape has to have a width and height, such as a rectangle or an ellipse. Only standard system symbols can be shrunk disproportionately. A pad that does not have width and height, such as a round pad, or is not derived from a standard system symbol, will be shrunk proportionately only. Non-system symbols (user-defined) will be converted to standard system symbols if they are similar. If they are not similar, they will not be resized.

 

Additional Controls

Attributes may be applied by the user to a component and thus to all SMD pads belonging to the component toeprints. These attributes override the values specified in the parameters. The attributes are as follows:

 

Attribute

Description

.spo_w_mode, .spo_w_fact, .spo_w_val

To shrink pad widths by values other than those specified in the parameters.

.spo_h_mode, .spo_h_fact, .spo_h_val

To shrink pad heights by values other than those specified in the parameters.

.spo_s_mode, .spo_s_fact, .spo_s_val

To shrink pads proportionately by values other than those specified in the parameters.

.spo_shape

This attribute is the name of an Genesis 2000 standard symbol. The SPO DFM action will create a paste pad in the given symbol, and base its width and height on the SMD pad's width and height (only their order, and not their size). The SPO DFM action will not shrink these paste pads. If the given paste pad is not fully contained by the SMD pad, it will be reported as a measurement.

.spo_move_center

To move the paste pad from the SMD pad center.

A positive value will move the paste from the component center out.

A negative value will move the paste towards the component center.

Note: When specifying a .spo_*_mode attribute, you must also specify either a .spo_*_fact or a .spo_*_val attribute (as required), otherwise it will be ignored. Specification of only a .spo_*_fact or a .spo_*_val attribute without a .spo_*_mode attribute will also be ignored.

Test Via Pads

Paste pads shapes and sizes are derived directly from Test Via points shapes and sizes. Size reduction is proportionate, according to user-specified parameter values. If the Test Via Mode parameter is specified as None, the paste pads will not be modified. Test Via pads will be identified by their .test_point attributes.

 

Ground Pads

Paste pads derived from ground pads are in the shape of round thermal pads, whose characteristics are user-specified in the ERF variables.

Ground pads can be selected individually in the Graphic Editor, or by specifying up to three pad diameters. In all cases, ground pads must be round and their attributes must not be .smd or .test_point

If user-specified parameters do not succeed in creating a valid thermal pad, a message will be recorded in the log, and the ground pad will reported as missing or un-modified.

 

Typical Report

 

 

Result Attributes

These attributes are produced once for each layer:

Result Attribute

Description

<layer_name>_<category_name> = number

Where:

layer_name = the layer to which this attribute belongs

category_name = name of category measurement.

number = number of occurrences of this measurement.

<category_name>

Total number of occurrences of this measurement in all the layers together.

 

Ranges

It is not recommended to change the ranges on this DFM Action. The categories are divided to two groups, categories that are reported in the red range (e.g., paste_center_not_moved or smd_missing_paste ) and the categories that are reported in the green range (e.g., smd_added_paste , centered_paste or gnd_modified_paste ).