SFGEN Web page header


Path Recovery


Introduction

When SFGEN processes an ODB++ file, the circuit traces (aka lines or paths) are converted into GDSII boundaries due to the fact that the ODB++ data is run through Boolean operations during the conversion. So the output from a PCB (sample.tgz layer=top) consists solely of boundaries.

standard SFGEN flow produces a GDSII output using only boundaries

But what if your application prefers GDSII paths to make the interconnections between pads? The new path recovery engine addresses that issue.


How Path Recovery Works

Path Recovery works because during the SFGEN processing, a file called GDX (we call this the auxiliary file) actually retains all of the trace information from the ODB++ file. However one cannot just take these traces and dump them into the output GDSII file for a couple of reasons:

SFGen Flow with Path Recovery enabled

User Interfaces

There are two ways to run SFGen's Path Recovery - from the SFGEN GUI (see details below) and from the command line. For details on the command line syntax go to this page: Path Recovery Command Line.



Path Recovery Dialog

To activate path recovery, press the Advanced button on the main menu which will take you to the tabbed Advanced Settings dialog; select the tab: Path Recovery.

Then check the box next to Path Recovery.

use the Path Recovery tab from the Advanced Settings

Controls and Parameters

The Path Recovery function includes a large number of controls and parameters that can be adjusted to "tune" the path recognition routine as well as to control the output.

Output Layers, Boundaries, Paths

Path Recovery produces a GDSII output which includes: paths (from traces/lines) pads (boundaries that have been recognized as pads) and boundaries (everything else). By default all three of these outputs are placed on layer 0:0 (where 0:0 indicates layer:datatype)

user control of layer assigned to path, pad and boundary output

However the user can specify the layer for each of the three groups by filling in the appropriate layer numbers.

For example, if 10,20,30 is entered into the field for this control then:

separation of output data to boundaries, paths and pads.

Controlling What Gets Output from Path Recovery

Depending on the user's requirements, Path Recovery's output can be filtered. This section of the dialog window controls what gets output.

controlling output

Allow Singlets

If "Allow Singlets" is checked, then a straight path connecting two pads will be passed to the output.

compare output using allow singlets

Include Pads

If "Include Pads" is checked, then any boundaries that are recognized as pads are output to the specified pad layer. This includes round, oblong, square and rectangular shapes. Custom pad shapes such as thermals are not recognized.


Participating Only

If "Participating Only" is checked, then only pads that terminate a path are output to the pads layer. Standalone pads are not output to the pad layer.

If particpating pads is checked, then only pads that are attached to a path/trace are passed to the output GDSII.

Termination Requirement

Choose one of the three path termination options:


Output Source Path Data (positive only) on Layer L[:D]

This is a debugging feature and is used if one needs to examine the boundaries that were the source for the path conversion. Most users have no need to check this. If you do check this make sure to specify a layer (or layer:datatype) that does not match any of the main outputs for boundaries, paths or pads.



Parameter Fields

The parameter fields can be used to "tune" the recovery of paths. However tuning the recovery using these parameters requires a deep understanding of both the program operation and the nature of your data.

In most cases, the only parameter to adjust would be the "Nom. Width" by entering a value that is approximately the width of most of the paths one expects to recover.

The values in the parameter section influence which paths ar recovered.

Tolerance

A value (in um) which sets the precision associated with general computations, vertex matching (default: 1um)


Sliver

The sliver value (in um) associated with Boolean operations; (default = 10 X chord error)The purpose of the sliver operation is to remove small "slivers" of conductor that arise from noise in the Boolean operations.

Min Width

A value (in um) that sets the minimum width of a PATH to be output. Default = 0


Max Width

A value (in um) that sets the maximum width of a PATH to be output. Default = No limit.


Percent Area

The ratio of the area covered by a path (two segments or more) to the area of the bounding box surrounding the path. If the computed ratio is greater than that value set by the user then the path is NOT output. (Default = 25%)

the ratio of the path's area divided by the area of the path's bounding box.

Aspect Ratio

The Length/Width ratio of the candidate PATH. If the PATH's L/W is less than the value entered, the PATH will not be output. For example, if the Aspect Ratio = 5 and the path is 100 um wide and 300 um in length it will not pass the ASPECT ratio test and will not be output. Default=5

Aspect ratio of the trace can be used to filter out very fat traces that look more like boundaries.

Arc Resolution

The arc resolution (in degrees) to be used when converting candidate PATH data to polygon data for Boolean operations. Because this works together with the chord error parameter, it is normally set to 45 degrees ( a very coarse value) which allows the setting and use of chord error to determine the number of vertices. Chord error is a more dynamic approach to setting the number of vertices per arc as it takes into account the arc's radius. Default = 45 deg.

arc resolution

Chord Error

The value of chord error (previously referred to as arg sag), in um, to be used when converting candidate PATH data to polygons data for Boolean operations. The software then determines how many segments (vertices) are needed to approximate the arc to achieve this amount of error. This minimizes the total number of vertices and still insures that the error is not any larger than what the user specifies. Default = 0.1um.

by specifying a chord error the program then computes how many vertices are necessary to approximate the arc with this amount of error. This minimizes the number of segments used to approximate each arc.

Nom. Width

Enter a nominal width for your PATHS. For example, if you PCB has many traces with width of 150 um then enter that value here. This will change the other parameters to values that work "best" on paths of this width.


Retain Reference File

If checked, the reference file used to generate the path recovery output is saved to the SFGen working directory.