CDSimpleRules.mesa (part of ChipNDale)
Copyright © 1985, 1986 by Xerox Corporation. All rights reserved.
by Christian Jacobi, July 5, 1985 4:58:37 pm PDT
Last Edited by Christian Jacobi, March 14, 1986 2:37:23 pm PST
DIRECTORY
CD, Rope, SymTab;
CDSimpleRules: CEDAR DEFINITIONS =   
BEGIN
This module is used to hide the actual technology used from otherwise quite technology independent routing software.
Not all technologies do support this module. If used for a technology which does not support this module, procedures will raise NotKnown.
--general procedures
NotKnown: ERROR;
MinWidth: PROC [layer: CD.Layer] RETURNS [CD.Number];
-- Minimum width of conductors.
-- Might return 0 if nothing specified.
-- (Width of interrest rect).
MinDist: PROC [l1, l2: CD.Layer] RETURNS [CD.Number];
-- Minimum distance between unrelated conductors.
-- 0 if no interaction.
-- Error if l1 and l2 from different technologies.
-- Raises NotKnown if distance (or technology) is not known.
-- (Distance of interrest rects).
MaxWidth: PROC [layer: CD.Layer] RETURNS [CD.Number];
-- Maximum width of features.
-- (width of interrest rects).
GetLayer: PROC [technology, layer: REF] RETURNS [CD.Layer];
-- Tries to figure out a layer, given names.
-- Use only to get technology specific names.
-- A little bit more forgiving than CD.FetchLayer...
-- Raises NotKnown if not known.
Rect: PROC [size: CD.Position, layer: CD.Layer] RETURNS [CD.Object];
-- size: interest rect
-- For conveniance only, duplicate of CDRects...
Contact: PROC [l1, l2: CD.Layer] RETURNS [CD.Object];
-- nil if any complication or no contact possible...
-- use CD.InterestRect to get size
-- Error if l1 and l2 from different technologies.
--technology implementors procedures
ImplementTechnology: PROC [technology: CD.Technology,
minWidth: PROC [layer: CD.Layer] RETURNS [CD.Number],
minDist: PROC [l1, l2: CD.Layer] RETURNS [CD.Number],
maxWidth: PROC [layer: CD.Layer] RETURNS [CD.Number]←NIL,
contact: PROC [l1, l2: CD.Layer] RETURNS [CD.Object],
layerTable: SymTab.Ref←NIL,
technologyNames: LIST OF Rope.ROPENIL
];
END.