SCUtil.mesa
Copyright Ó 1985, 1987 by Xerox Corporation. All rights reserved.
by Bryan Preas August 29, 1985 2:48:22 pm PDT
last edited by Bryan Preas June 15, 1987 6:58:39 pm PDT
DIRECTORY
Basics, CDSymbolicObjects, Core, CoreGeometry, CoreProperties, FS, RedBlackTree, Rope, RTBasic, SC, SCPrivate;
SCUtil:
CEDAR
DEFINITIONS =
XYToPQ:
PROC [handle:
SC.Handle, pos:
SC.Pos]
RETURNS [pqPos: RTBasic.PQPos];
convert a position from x-y to p-q space.
PQToXY:
PROC [handle:
SC.Handle, pqPos: RTBasic.PQPos]
RETURNS [pos:
SC.Pos];
convert a position from p-q to x-y space.
FindPin:
PROCEDURE [object: SCPrivate.Object, pinName: Rope.
ROPE]
RETURNS [pin: SCPrivate.ObjectPin ←
NIL];
FindPinByWire:
PROCEDURE [object: SCPrivate.Object, wire: Core.Wire]
RETURNS [pin: SCPrivate.ObjectPin ←
NIL];
FindNet:
PROCEDURE [handle:
SC.Handle, netName: Rope.
ROPE]
RETURNS [net: SCPrivate.Net ←
NIL];
FindNetByWire:
PROCEDURE [handle:
SC.Handle, wire: Core.Wire]
RETURNS [net: SCPrivate.Net ←
NIL];
FindObject:
PROCEDURE [handle:
SC.Handle, objectName: Rope.
ROPE]
RETURNS [object: SCPrivate.Object ←
NIL];
FindObjectByCell:
PUBLIC
PROCEDURE [handle:
SC.Handle, cellType: Core.CellType]
RETURNS [object: SCPrivate.Object ←
NIL];
FindInstance:
PROCEDURE [handle:
SC.Handle, instanceName: Rope.
ROPE]
RETURNS [instance: SCPrivate.Instance ←
NIL];
IsPowerName:
PROCEDURE [handle:
SC.Handle, name: Rope.
ROPE]
RETURNS [found:
BOOLEAN ←
FALSE];
IsPadType:
PROCEDURE [object: SCPrivate.Object]
RETURNS [isPad:
BOOLEAN ←
FALSE] =
INLINE {
RETURN[object.typeClass = io]};
translate:
PUBLIC
ARRAY
SC.Side
OF
ARRAY SCPrivate.OrientationOrNone
OF
SC.Side;
SideTranslate:
PROCEDURE [side:
SC.Side, orien: SCPrivate.OrientationOrNone]
RETURNS [
SC.Side] =
INLINE {
RETURN[translate[side][orien]]};
DirectionFromSide:
PROC [side: CoreGeometry.Side]
RETURNS [CDSymbolicObjects.Direction];
WriteResults:
PROCEDURE [title: Rope.
ROPE, handle:
SC.Handle, startArea:
SC.Number]
RETURNS [area:
SC.Number];
WriteStructure:
PROCEDURE [handle:
SC.Handle];
DestroyRules:
PROC [handle:
SC.Handle];
DestroyParms:
PROC [handle:
SC.Handle];
GetCoreInvestmentProp:
PROC [cellType: Core.CellType, prop:
ATOM]
RETURNS [
SC.HowLongToWork];
get an investment property from a cell
WriteTWFiles:
PROC [handle:
SC.Handle];
write timberWolf files
AddCell:
PROC [celStream:
FS.
STREAM, instance: SCPrivate.Instance, pathName: Rope.
ROPE];
add a cell to the .cel file
AddPin:
PROC [celStream:
FS.
STREAM, instance: SCPrivate.Instance, pin: SCPrivate.ObjectPin, net: SCPrivate.Net, first:
BOOLEAN];
add a pin to the .cel file
AddPad:
PROC [padTable: RedBlackTree
.Table, instance: SCPrivate.Instance, pathName: Rope.
ROPE];
add a pad to the .cel file
CopyPadToCel:
PROC [celStream:
FS.
STREAM, padTable: RedBlackTree.Table];
pads must be at the end of the .cel file; write to .cel from the ordered symbol table
GetKey:
PUBLIC RedBlackTree.GetKey;
Callback proc: Given the user data in a node, return the key
PROC [data: UserData] RETURNS [Key];
Compare:
PUBLIC RedBlackTree.Compare;
Callback proc type: Given a key and the user data in a node, return the comparison of the keys
PROC [k: Key, data: UserData] RETURNS [Basics.Comparison];
ReadTWPlace:
PROC [handle:
SC.Handle];
write timberWolf files
END.