SCPlaceUtil:
CEDAR
DEFINITIONS =
BEGIN
exchange two like instances
ExchInsts: PROCEDURE[handle: SC.Handle, instance1, instance2: SCPrivate.Instance];
reverse orientation of an instance
ReverseOrientation: PROCEDURE[instance: SCPrivate.Instance];
add a logic instance to a row
PutLgRow:
PROCEDURE[handle:
SC.Handle, instance: SCPrivate.Instance, row: SCPrivate.MaxRowSr, orien: SCPrivate.OrientationOrNone ← 0];
PutLgPos:
PROCEDURE[handle:
SC.Handle, instance: SCPrivate.Instance, row: SCPrivate.MaxRowSr, pos: SCPrivate.MaxPosSr, orien: SCPrivate.OrientationOrNone ← 0, updateOffsets:
BOOLEAN ←
TRUE];
exchange components in positions index1 and index2
ExchPosRow:
PROCEDURE[handle:
SC.Handle, index1, index2: SCPrivate.MaxPosSr, row: SCPrivate.MaxRowSr];
remove a logic instance from current placement
RemvLgComp:
PROCEDURE [handle:
SC.Handle, instance: SCPrivate.Instance, updateOffsets:
BOOLEAN ←
TRUE];
add a bp instance to a side
PutBpSide:
PROCEDURE[handle:
SC.Handle, instance: SCPrivate.Instance, side:
SC.SideOrNone, orien: SCPrivate.OrientationOrNone ← 0];
PutBpPos:
PROCEDURE[handle:
SC.Handle, instance: SCPrivate.Instance, side:
SC.Side, pos: SCPrivate.MaxPosSr, orien: SCPrivate.OrientationOrNone ← 0, updateOffsets:
BOOLEAN ←
TRUE];
exchange components in positions index1 and index2
ExchPosSide:
PROCEDURE [handle:
SC.Handle, index1,index2: SCPrivate.MaxPosSr, side:
SC.Side];
remove a bp instance from current placement
RemvBpComp: PROCEDURE[handle: SC.Handle, instance: SCPrivate.Instance, updateOffsets: BOOLEAN ← TRUE];
write the current placment on the terminal
WriteCurPlace: PUBLIC PROCEDURE [handle: SC.Handle];
clear the current placement in preparation for reinitialization
ClrCurPlac: PROCEDURE[handle: SC.Handle, initPrePlace: BOOLEAN];
check the placement consistancy
CheckPlace: PUBLIC PROCEDURE[handle: SC.Handle];
END.