DIRECTORY SC, SCPrivate; SCPlaceUtil: CEDAR DEFINITIONS = BEGIN ExchInsts: PROCEDURE[handle: SC.Handle, instance1, instance2: SCPrivate.Instance]; ReverseOrientation: PROCEDURE[instance: SCPrivate.Instance]; 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]; ExchPosRow: PROCEDURE[handle: SC.Handle, index1, index2: SCPrivate.MaxPosSr, row: SCPrivate.MaxRowSr]; RemvLgComp: PROCEDURE [handle: SC.Handle, instance: SCPrivate.Instance, updateOffsets: BOOLEAN _ TRUE]; 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]; ExchPosSide: PROCEDURE [handle: SC.Handle, index1,index2: SCPrivate.MaxPosSr, side: SC.Side]; RemvBpComp: PROCEDURE[handle: SC.Handle, instance: SCPrivate.Instance, updateOffsets: BOOLEAN _ TRUE]; WriteCurPlace: PUBLIC PROCEDURE [handle: SC.Handle]; ClrCurPlac: PROCEDURE[handle: SC.Handle, initPrePlace: BOOLEAN]; CheckPlace: PUBLIC PROCEDURE[handle: SC.Handle]; END. lfile ///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 exchange two like instances reverse orientation of an instance add a logic instance to a row exchange components in positions index1 and index2 remove a logic instance from current placement add a bp instance to a side exchange components in positions index1 and index2 remove a bp instance from current placement write the current placment on the terminal clear the current placement in preparation for reinitialization check the placement consistancy ʈ˜Jšœ ™ J˜Jšœ™JšœÏn œ™*Jšœœ%™:Jšœœ$™/Jšœ œ5™BJšœ œ1™>Jšœ œ™*Jšœœ™Jšœ œ5™CJšœ œ.™;Jšœ œ™.Jšœ œ™+Jšœ œ#™0J™J˜šÏk ˜ Jšœžœ˜Jšœ ˜ J˜—š œžœž œ˜ J˜Jšž˜J˜Jšœ™Jš œž œ žœ3˜RJ˜Jšœ"™"Jšœž œ˜