file ///StdCell/SCPlaceUtil.mesa
placement utility routines
-- ExchInsts - exchange two like instances
-- ReverseOrientation - reverse orientation of an instance
-- PutLgRow - put component in row and position
-- ExchPosRow - exchange components in positions index1 and index2
-- RemvLgComp - remove a logic instance from current placement
-- PutBpSide - add a bp instance to a side
-- PutBpPos -
-- ExchPosSide - exchange components in positions index1 and index2
-- RemvBpComp - remove a bp instance from current placement
-- WriteCurPlace - write the current placement
-- ClrCurPlac - clear the current placement
-- CheckPlace -- check the placement consistancy
DIRECTORY
SC,
SCPrivate;
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];
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];
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];
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];
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.