Product Documentation
Virtuoso Space-based Router Command Reference
Product Version IC23.1, September 2023

fix_litho_errors

fix_litho_errors
[ -allow_hint_adjust [ true | false ] ] 
[ -allow_hintless_fixing [ true | false ] ] 
[ -annotate [ all | none | unfixed | ignored | SPACING | ENCLOSURE | WIDTH 
| LINEEND | SPACEEND | GATE_CD | s_errorTypeName ] ] 
[ -annotation_limit i_count ] 
[ -error_type {all | SPACING | ENCLOSURE | WIDTH | LINEEND | SPACEEND | GATE_CD | s_errorTypeName} ] 
[ -force [ true | false ] ] 
[ -incremental_check [ true | false ] ] 
[ -layers {s_layerName…} ] 
[ -mode { 1 | 2 | 3 } ] 
[ -no_repaint ] 
[ -push_limit {1 | 2 | 3 | 4 | 5} ] 
[ -region {f_xlo f_ylo f_xhi f_yhi} ] 
[ -report s_fileName [ -report_unfixed [ true | false ] ] ] 
[ -severity {i_severityLevel…} ] 
[ -soft_rules_adherence [ true | false ] ] 
[ -top_level_only [ true | false ] ] 
[ -use_fill_shapes [ true | false ] ] 

Description

Attempts to fix lithography errors based on Lithography Errors given in the Violations page of the Annotation Browser. To run this command, you must first run read_litho_errors or check_litho_errors to create the lithography error annotations.

You can optionally incrementally fix and check lithography errors (-incremental_check) if you have Litho Physical Analyzer installed, have an LPA license, and first run initialize_lpa to enable Litho Physical Analyzer checking.

For best results when using this command, you should enable gridless routing.

set_route_on_grid -on_grid false

Arguments

-allow_hint_adjust [ true | false ]

  

When true, hints can be adjusted in order to match the manufacturing grid or to transform some edge moves into shape moves.

Default: true

-allow_hintless_fixing [ true | false ]

  

When true, attempts to fix lithography errors that do not provide hints for fixing and when the provided hints are not successful. When false, hintless lithography errors will not be fixed.

Default: true

-annotate s_typeName

Specifies the type of adjustments to annotate.

all

Creates Unfixed, Fixed, and Ignored annotations as described for the respective conditions below.

ignored

Creates annotations for errors that are ignored. An ignored error is an error that Space-based Router and Chip Optimizer does not attempt to fix, because the original geometries that caused the violation have been changed by a previous fix, or because it is a hintless error and fixing hintless errors has not been enabled (-allow_hintless_fixing).

none

Does not create annotations. This is the default.

unfixed

Creates annotations for errors that were attempted, but could not be fixed, by this command.

ENCLOSURE

Creates annotations for enclosure errors that were fixed by this command.

  

GATE_CD

Creates annotations for device gate critical dimension errors that were fixed by this command.

LINEEND

Creates annotations for lineend errors that were fixed by this command.

SPACEEND

Creates annotations for spaceend errors that were fixed by this command.

SPACING

Creates annotations for spacing errors that were fixed by this command.

WIDTH

Creates annotations for width errors that were fixed by this command.

s_errorTypeName

Creates annotations for prototype errors that were fixed by this command.

The annotations are added to the annotation:viaOpt purpose of the given layer and are listed as Unfixed, Fixed, or Ignored by layer under FixLithoErrors on the Optimizations page of the Annotation Browser.

-annotation_limit i_count

Specifies the maximum number of annotations that this command can create. This does not restrict the number of fixes attempted. Specify -annotation_limit -1 to choose no limit.

Default: 1000

-error_type {all | SPACING | ENCLOSURE | WIDTH | LINEEND | SPACEEND | GATE_CD | s_errorTypeName}

Specifies the types of lithography errors to process.

When giving specific error types, the names must match the syntax for the names in the Litho error file and are case-sensitive.

Default: all

-force [ true | false ]

When true, forces lithography errors that are marked checked (as indicated by the Properties Browser isChecked property and the Violations Browser checked attribute column for the annotation) to be processed by this command.
After a lithography error is fixed by fix_litho_errors, it is automatically marked checked.

Default: (false) Lithography errors that are marked checked are not processed by the command.

-incremental_check [ true | false ]

  

If set to true, Litho Physical Analyzer will be run in the region after each fix to check the results. If a lithography error still exists in the changed area, the change is undone and the next hint is attempted and checked, and so on, until successful or all hints have been tried.

To use this feature, you must first have Litho Physical Analyzer installed with an LPA license and run initialize_lpa.

Default: false (results are not checked by Litho Physical Analyzer)

-layers {s_layerName…}

Specifies the metal layers to operate on.

Default: All layers are operated on.

-mode {1|2|3}

Determines the level of fixing that will be attempted. Each higher level increases the methods used for fixing but also increases the disturbance to neighboring shapes.

-mode 1

(With and without hints) Permits pushing or partial pushing of wires.

-mode 2

(With and without hints) Mode 1 functionality plus pushing of vias.

-mode 3

(Without hints) Mode 2 functionality plus incremental re-routing.

(With hints) Mode 2 functionality plus incremental re-routing is applied only if -allow_hintless_fixing is true. Otherwise, if the hints are not successful in this mode, no other action is taken.

This mode is the default.

-no_repaint

Disables screen repaint after fixes. This argument is intended for use in scripts when multiple calls to the command are made back-to-back and a repaint is only desired on the last command.

Default: The screen is always repainted when errors are fixed.

-push_limit {1 | 2 | 3 | 4 | 5}

  

Limits the number of wires that can be pushed when adding space around an error segment.

Default: 2

-region {f_xlo f_ylo f_xhi f_yhi}

  

Fixes only errors within the specified area.

Default: The entire design is operated on.

-report s_fileName

Creates a Litho Hotspot check file with the given name that reports areas that were checked by this command. If -report_unfixed is set to false, only fixed areas that were checked are included in the check file, otherwise, unfixed and ignored areas are also included.

This file can be read using read_check_area to create Changed area annotations that can be used by check_litho_errors.

-report_unfixed [ true | false ]

If true, unfixed errors and ignored areas are included in the output Litho Hotspot check file.

Default: true

-severity {i_severityLevel…}

Specifies the order in which lithography errors will be fixed, according to their severity level.

Default: Will attempt to fix errors of all severity levels that are identified by lithography error annotations.

-soft_rules_adherence [ true | false ]

  

When set to true, uses soft constraints when performing design rule checks.

Default: Uses hard constraints for design rule checks.

-top_level_only [ true | false ]

  

When set to true and by default, performs design rule checks on top level shapes only. When set to false, design rule checks are performed on all levels.

-use_fill_shapes [ true | false ]

(Applies to width and line end errors only) When false, wires will not be widened or lengthened. The violations will be fixed by adding space around the violation where possible using push (all -mode values) or incremental routing (if -mode 3 without hints, or -mode 3 with hints and -allow_hintless_fixing true). This prevents fill shapes from being added to the design, allowing for easier implementation of ECOs and validation tasks.

When true, wires can be widened or lengthened using fill shapes to correct width and line end errors.

Default: true

Value Returned

0

Command was run.

-1

A syntax error occurred. The command failed.

During processing, the following messages might occur:

Examples

Example 1—Fix all width violations using only hints

fix_litho_errors -error_type width -allow_hintless_fixing false

Example 2—Fix all width violations using hints and hintless methods

fix_litho_errors -error_type width -allow_hintless_fixing true

Example 3—Fix all width violations without adding fill shapes and only using hints

fix_litho_errors -error_type width -allow_hintless_fixing false -use_fill_shapes false

Example 4—Fill all violations using hintless methods including pushing wires and vias, and incremental wiring

fix_litho_errors -error_type all -allow_hintless_fixing true -mode 3

Example 5—Fix all violations and create annotations for unfixed errors

fix_litho_errors -annotate unfixed

Example 6—Incrementally fix all violations using only hints and create annotations for fixed, unfixed, and ignored errors, output all checked areas to a Litho check file

fix_litho_errors -annotate all -incremental_check true \
-allow_hintless_fixing false -report area_check.hif

The following is an example of the Lithography Hotspots Fixing Summary that is output to the Transcript area.

Lithography Hotspots Fixing Summary:
# + LAYER DETAILS =======================================================
# | Layer | | Fixed | | |
# | (Severity) | Analyzed | w/hints | w/o hints | Ignored | Unfixed |
# |---------------------------------------------------------------------|
# | metal2 | 63 | 46 | 16 | 0 | 1 |
# | (1) | (6) | (3) | (3) | (0) | (0) |
# | (2) | (19) | (13) | (5) | (0) | (1) |
# | (3) | (38) | (30) | (8) | (0) | (0) |
# | metal3 | 12 | 9 | 3 | 0 | 0 |
# | (1) | (6) | (4) | (2) | (0) | (0) |
# | (2) | (1) | (1) | (0) | (0) | (0) |
# | (3) | (5) | (4) | (1) | (0) | (0) |
# |---------------------------------------------------------------------|
# | Totals | 75 | 55 | 19 | 0 | 1 |
# | (1) | (12) | (7) | (5) | (0) | (0) |
# | (2) | (20) | (14) | (5) | (0) | (1) |
# | (3) | (43) | (34) | (9) | (0) | (0) |
# =======================================================================

Related Topics

Optimize Commands

check_litho_errors

read_check_area

read_litho_errors


Return to top
 ⠀
X