-- ChipDRC.mesa

-- last modified by E. McCreight, August 16, 1983  2:42 PM
-- written by E. McCreight, April 14, 1982  10:25 AM

DIRECTORY
  ChipNetDefs,
  ChipWire,
  LeftFeaturePQ,
  RightFeaturePQ,
  ppdefs;

ChipDRC: DEFINITIONS =
  BEGIN OPEN ppdefs, ChipNetDefs;

  doingDRC: BOOLEAN;

  SetupDRC: PROCEDURE[check: BOOLEAN];

  FinishDRC: PROCEDURE[root: CellCallPtr];

  LeftEdges: PROCEDURE[pq: LeftFeaturePQ.LeftFeaturePQHandle];

  RightEdges: PROCEDURE[
    pq: RightFeaturePQ.RightFeaturePQHandle];

  PurgeDRCViolations: PROCEDURE[n: netPtr];
 
  NoteViolation: PROCEDURE[v: Violation];

  EnumerateViolations: PROCEDURE[];

  CheckTerminalConnections: PROCEDURE[call: CellCallPtr];

  polyGateOverlap, minTransistorDiffusionWidth,
    depletionOverlap: locNum;

  holdViolations: PRIVATE BOOLEAN;
  drcSwath: PRIVATE ChipWire.SlicePtr; -- featureDelay wide
  drcSwathFeatures: PRIVATE
    RightFeaturePQ.RightFeaturePQHandle;
    -- the features in the slice but abandoned by ExtractNets
  drcSwathWidth: PRIVATE Coord;

  minSize, closestUnconnected:
    PRIVATE ARRAY ExtractLevel OF Coord;

  SetDRCParams: PRIVATE PROCEDURE[];

  END. -- of ChipDRC