ERF Parameters

This section describes the ERF file sigopt.erf .

 

 

ERF Variable

Description

do_poly_shave

Default is No .

Yes - use polygon shaves if a compromise and a shaved line cannot be added because it shaves other features.

exact_min_on_compromise

Default is No .

Yes - every time a compromise is made, the shave will only be down to the minimum spacing. This results in more locations being corrected but less spacing achieved.

fill_poly

Default is Yes.

Yes - automatically fill the created polygon shaves.

No - rely on operator to fill the created polygon shaves.

max_pad_misregistration

Maximum distance permitted between Pad center and hole center to consider the hole as assigned to the Pad.

max_pad_shaves

A pad is not allowed to have more than this number of shaves. A complex (filled) shave counts as one upon creation, but as many lines as it is made of upon reactivation of the function.

min_brush

Minimum brush size to use when filling. Default is 0.5 mils.

min_neck_len

A neckdowned portion of a line will always be greater than this length.

min_reroute_side

If a line segment is rerouted, then there should remain at least this length of the original segment on both sides of the reroute.

resize_smd

Yes - means PadDn modifications will also affect SMD pads, otherwise SMD pads will not get modified.

shave_smd

Default = Yes

Yes - SMD shave is allowed.

No - SMD pad will never be shaved.

smd_resize_ratio

Even if resize_smd = Yes the SMDs' small dimension is never allowed to become less than this ratio to its original dimension.

v_handle_non_standard_
pads

Enables you to define what non-standard pads, if any, you wish to handle.

Yes = Handles non-standard pads, according to procedures below.

No = action does not handle non-standard pads.

A standard pad is a round or square pad. There are two kinds of non-standard pads:

*    *    Semi-standard pads - Those are pads that Genesis is familiar with. They do not need special symbols to be represented.

*    *    Non-standard pads - Those are pads that Genesis is not familiar with and do need special symbols to be represented.

v_handle_non_standard_pads has three optional modes:

*    *    Don't handle non-standard pads

*    *    Handle only semi-standard and standard pads

*    *    Also handle non-standard pads

v_handle_non_standard_pads affects the DFM action in two ways:

*    *    1. Reroutes traces against non-standard pads.

Previously, the action rerouted line only against standard pads. Now you can also reroute lines for non-standard pads.

*    *    2. Enlarge non-standard pads to achieve AR.

Previously, only standard pads were enlarged in order to achieve AR. Now you can also enlarge semi-standard or non-standard pads.

After enlargement, Genesis tries to change the non-standard pad to a semi-standard pad. Only if that fails will Genesis create a new non-standard pad (Construct Pad).

v_handle_same_net_
spacing

Enables the SLO action to search for and fix Same Net Spacing problems. This variable is relevant only when the ERF variable same_net_spacing = Yes.

v_handle_same_net_spacing has three options:

*    *    1. Don't handle Same Net Spacing.

Action has same behavior as in previous versions. Action does not look for Same Net Spacing violations. If a Same Net Spacing violation is created by enlarging a pad, occurred and same_net_spacing = Yes, the enlargement is canceled and the spacing violation reported this in the Same Net Spacing category.

*    *    2. Only report Same Net Spacing violations

Action reports existing Same Net Spacing violations. These violations are recorded in the report category Same Net Spacing .

*    *    3. Fix Same Net Spacing Violations

Action tries to solve Same Net Spacing problems.
If Same Net Spacing violations occur while enlarging a pad, the action tries to solve these violations.
Solved Same Net Spacing violations are reported in a new category: Same Net Spacing Violation Repaired.

v_keep_smd_form

If set to Y and SMD is drilled, annular ring for the via will not be repaired by adding a round pad that will change the apparent shape of the SMD pad.

v_rerout_bus

Enables you to control a bus rerouting, if that is necessary to solve a pad to line spacing problem. (A bus is a series parallel lines of any width.)

No = the action tries to solve the pad to line spacing problem using the relevant mode. BUT, if there is another line which creates a line to line spacing problem, than this line will not be rerouted.

Yes = the action tries to reroute a line to solve a specific pad to line spacing problem. BUT, if there is another line that blocks the line rerouting, it will first move the line that is blocking the line rerouting in order to create enough space for rerouting, and then it will reroute the line.

Note: The bus rerout mode is controlled by the ERF variable v_rerout_mode . When a line that is needed to be moved as a triplet is touching a Pad, the action will retain a small part of line as it is (the length of this section is controlled by the ERF variable min_reroute_side ), and will move the rest of the line as a triplet.

Examples

Examples:

v_rerout_mode

Enables you to control line rerouting operations.

When v_rerout_mode = 0 (default), you can reroute the line locally only (current behavior and default value).
When v_rerout_mode = 1, you can move the whole line as a triplet only.
When v_rerout_mode = 2, you can move the whole line if that is possible. Otherwise, you must perform only a local reroute.

v_shave_pad_below_min

Enables you to violate minimum Annular Ring limitations by shaving a pad in order to solve a Line to Pad spacing problem.

No = the action will not shave a Pad below the minimum Annular Ring value ( pp_min_ar or pp_min_via_ar ).

Yes = the action will shave a Pad to solve a spacing problem even if it violates the minimum Annular Ring value.

Examples

 

 

 

 

.

Modification Priorities

Modifications will be tried by descending priority values, highest value first

PRD

Shrink a pad (do not sacrifice optimal AR).

PRS

Reshape an SMD (round its corners).

LRR

Line reroute.

PSH

Pad shaving (don't sacrifice optimal AR or space).

PSHC*

Pad shaving (allow minimal AR or space).

LRE

Reduce line width (neckdown) - only to achieve min spacing.

PRDC

Shrink a pad (allow minimal AR or space).

* The C (stands for Compromise) indicates we allow minimal values.

.

 

 

allow_both

Default = Yes

Yes - applies a small shave to each of two pads (with spacing violation) rather than apply a large shave to one of the pads.

LRR_max_shift

Default is zero (0).

The maximum shift allowed the central segment of a rerouted line.

0 - no limit.

max_pad_enlarge

Default is zero.

The maximum amount a pad can grow to fix annular ring violations. A value other than zero may cause a drill annular ring to be fixed sub-optimally or not at all.

0 - no limit.

max_pad_shrink

The maximum amount a pad (drilled or non drilled) can be shrunk to solve a spacing violation.

0 - no limit.

same_net_space

Yes - same net spacing violations will prevent a pad from growing to repair the annular ring.

No - same net spacing is ignored.

keep_pad_shape

Default is No.

Yes - square pads will remain square even when enlarged and will not be replaced by round pads.

No - added/enlarged pads will always be round.

shave_only_vias

Default is No.

Yes - only via pads will be shaved to solve spacing violations.

No - all pads may be shaved.