Introducing Savage
Efficient Design Rule Checker for PC-based Platforms

Savage is a powerful ULSI Layout Verification System with Programmable Geometric Design Rules. It performs design rule checking on IC layout without any restrictions on geometry shape and size. Savage does checking as a combination of logical and resizing operations, and conventional spacing checks. It processes layouts of digital, analog, UHF, as well as mixed signal ICs for any fabrication technology. Savage runs on PC / Workstations under Microsoft Windows NT / 95.

The advanced mathematical methods implemented in Savage provide incomparable speed of DRC execution. It works faster than all other DRC tools available on the market of CAD systems on PC platform. Proprietary geometry data base allows to process ICs of arbitrary size without special requirements to main memory size. Two modes of operation are possible: interactive and batch. So, code for design rule checks and layout operations may be specified by means of Savage scripts, DRACULA command files, or input interactively. In addition, interactive command input may be captured into script for future re-use. Check reports are output in text or in graphical form with exact identification of the detected errors. Savage is compatible with the DRACULA system for input and output the command set. Layout input/output is possible via GDSII format or Savage own LLD format.



The cornerstone of Savage's efficiency is systematic approach to the DRC operations. From point of view of computational geometry, all of them are based on restricted set of abstract operations:

  • finding segment intersections
  • determining of subset of the given point set enclosed by contour or set of contours
  • construction of the tree of visibility for arbitrary set of plane contours
  • expansion and compression of regions
  • execution of boolean operations on regions
  • evaluation of distance between segments and regions


It is well known that the unified approach to the solution of these problems is the scan-line technique. However the key point is acceleration of the base scan-line method by applying some heuristics, based on specifics of regions from real layout. The accumulation of experience collected by SILVACO experts in this area have lead to speed-up of 3-5 times in comparison with common sweep algorithms for huge layout processing.


System Components

1. Structure of DRC Subsystem

The DRC subsystem actually performs geometric spacing checks on an IC layout. It is programmed tailoring to various user-defined checks. System's operation is easily tuned to any chip fabrication technology. The DRC subsystem has the following command blocks:

  • project management
  • layer manipulation
  • layout region selection
  • logical operations
  • size/spacing checks
  • layout object resizing

The convenient viewing subsystem is used to visualize the layout and examine the errors detected by the checking functions.


2. Optimizer

When Savage is run in batch mode, the input script is first processed by the Optimizer. It generates a new script and controls its execution. The optimized script takes into account the specifics of the processed layout, eliminates redundant duplicate checks, selects an optimal sequence of checks, etc. This effectively boosts the processing speed for an order of magnitude in comparison with line-by-line execution of the original input script. The heart of the Optimizer is an ingenious algorithm based on modern combinatorial optimization techniques.


3. Basic Operations

Savage operations may be invoked during an interactive session or processed in batch mode from user-supplied scripts.

* SELECT Operations are used:

  • to select regions which are in a specified relation with the regions of another layer,
  • to generate new layers from the selected regions for submitting them to checking operations.

The possible relations for Select operations are :

"inside", "outside", "cut", "hole", "touch", "enclose", "overlap", "vertex", "area"

* LOGICAL operations with layout layer supplemented in Savage are the following:

  • intersection (AND),
  • union (OR),
  • difference (DIF),
  • symmetric difference (XOR),
  • negation (NOT).

This set is both functionally complete and includes most natural logical operations.

An important feature of Savage is an immediate calculation of complex logical formulas in terms of layout layers, which is performed many times faster than direct execution of the basic logical operations from the formula one by one.


Savage implements the conventional basic checks:

  • angle checks (Angle),
  • intersection (Intersection),
  • admissible internal dimension (Width),
  • admissible internal distance (inDistance),
  • admissible outer distance (outDistance),
  • admissible overlap distance (ovDistance), etc.


More than one check may be run at a time.

In real applications most checks are performed on derived layer produced from the original ones by logical, selection, resizing, and other operations. Savage allows the user to perform these checks immediately, without creation of new layers, significantly decreasing the run time. Savage has two ways of representing errors: segment mode and region mode. In segment mode, the errors as segments are saved in an error file for further processing, viewing, or printing. In region mode, the error regions are saved in a new "error" layer. The way a region is treated as "error" is specified in the corresponding check command. Any error may be reported in either or both of the above modes.

* RESIZING operations allow to undersize or oversize a region by moving its edges inside or outside. They may produce forbidden configurations: self-intersections, overlaps, etc. Savage detects these violations and treats them as follows:

  • It automatically corrects them whenever possible.
  • Optionally, new layers are created containing all violations that might occur. The user may examine them together with the result of resizing and perform further corrections if he is dissatisfied with the automatic ones.
  • Simultaneously with resizing, it is possible to perform a merge operation or some spacing checks for the created layers.

In contrast with some other PC-based DRC systems Savage processes all- angle geometries of any number of segments. It is flexibly tunable to various conventions on geometric representation of the layout. In particular, multiply connected regions and nested boundary polygons may be allowed. It is efficient for handling of both regular and irregular IC layouts and adaptable to circuit fabrication technologies.


Figure 1. Graphical DRC error reporting in Savage.



Figure 2. Savage: DRC script and error logs are shown.


Figure 3. On-line creation of a complex DRC check operation.