<MOVECELL 
"MOVE CELL

Places, moves, or removes cells or blocks anywhere in the layout area.


Syntax

MOV*E C*ELL 
[NO*NE | SP*AN | RA*TS]... 	
{cellID | NE*W P*SEUDO modelID cell} 	
[MODEL modelID] 	
[ NO*NE | SP*AN spanCoord | RA*TS 	
| OR*IGINALPOSITION | H*ORIZONTALFLIP 	
| V*ERTICALFLIP | R*IGHTROTATE 	
| L*EFTROTATE | OV*ERLAPSOK | SH*ORTSOK 	
| N*ORTH | W*EST | S*OUTH | E*AST | W*EST 	
| FN*ORTH | FW*EST | FS*OUTH | FE*AST ]... 	
| CH*ECKCANPLACE | CHECKCANN*OTOCCUPY 	
| SE*ARCH ]... 	
{ [AT] pt {U*NPLACE | RE*MOVE} 	
| {T*OP | L*EFT | B*OTTOM | R*IGHT} 
[SP*ACING space] cell } 	
{siteID | U*NPLACE | RE*MOVE} 	
[A*NCHORWEIGHT anchorWt] ;


Arguments

NONE
Turns off interconnection display while dragging a cell.

SPAN spanCoord
Displays the minimal spanning tree of all nets connected to the moved cell, using spanCoord as the cell origin.

RATS
Highlights the rat's nest, the straight-line-interconnect dynamic display, between the cell's pins and all connected nets.

cellID
Identifies the component to be moved by name or by coordinate.

NEW PSEUDO modelID cell
Adds to the design a new instance named cell of library model modelID. The PSEUDO keyword is required. The cell name must be unique for the design. Adding a pseudo component does not change a netlist.

MODEL modelID
Replaces the library model of the cell with the specified EEQ or LEQ. 

ORIGINALPOSITION
Moves the cursor and the dynamic display back to the original location, if it is within the current window.

HORIZONTALFLIP
Flips the object around the horizontal axis of the design, if allowed by the library model.

VERTICALFLIP
Flips the object around the vertical axis of the design, if allowed by the library model.

RIGHTROTATE
Rotates the object 90 degrees clockwise, if the library model has R90 symmetry.

LEFTROTATE
Rotates the object 90 degrees counterclockwise, if the library model has R90 symmetry.

OVERLAPSOK
Permits overlapping of cells. Default: OVERLAPSNOTOK

SHORTSOK
Permits shorts. Default: SHORTSNOTOK

NORTH, WEST, SOUTH, EAST, WEST, FNORTH, FWEST, FSOUTH, FEAST 
Places the object according to the specified absolute orientation. F-type orientations involve a flip along the vertical axis of the cell, followed by the specified rotation.

CHECKCANPLACE
Issues a warning if the lower left site is not a CANPLACE site.

CHECKCANNOTOCCUPY
Issues a warning if the cell covers a CANNOTOCCUPY site.

SEARCH
Searches for a legal location within the radius specified by Move.Cell.SearchRadius.

siteID
Identifies the destination site for the move. If the location is legal, the cell is highlighted and the dynamic display disappears. If the location is not legal, the system issues a warning.

AT pt
Exact location at which to place the cell. The cell is placed even if the row is not of the same type, but, in this case, a warning is issued.

UNPLACE
Temporarily unplaces the cell from the chip but not from the netlist. If you use this option, the dynamic display disappears and the cell is erased from the screen.

REMOVE
Removes the cell from the design. Only pseudocells can be removed.

TOP, BOTTOM, LEFT, RIGHT
Moves the cell to the top, bottom, left, or right of the cell indicated by cell.

SPACING space
Amount of space to leave between the cell and the adjacent cell.

ANCHORWEIGHT anchorWt
Assigns a value to the cell's Anchor.Weight attribute. Nonzero makes the cell immovable.


Description

MOVE CELL allows you to place standard cells or blocks anywhere within the layout area. You can do the following with MOVE CELL.

- Move an already placed cell to a new location.

- Move an unplaced cell to a new location.

- Unplace a cell.

- Remove a placed or unplaced pseudocell (that is, a cell with Gen.Source attribute of USER or DIST).

- Replace the library model of the selected cell with a specified electrically or logically equivalent model.

- Add a new pseudocell of a specified library model to the design, without affecting the netlist. An example is a logo cell placed at a corner of the chip.

When you run MOVE CELL, the selected cell's dynamic display is attached to the cursor. At the end of the move, the lower left corner of the cell bounding box snaps to the nearest site origin.

If the selected cell is already placed, the cursor is attached at the center of the lower left site. If the selected cell is unplaced, the cursor is attached at the lower left. If you choose an incorrect cell or more than one cell, use NEXT to step through a list of choices.

You can run MOVE CELL any time during design--before or after PLACE, GROUTE, or FROUTE. You cannot move a cell if its Modify.Code attribute is COVER, unless Allow.EC is true. You cannot move a cell if any of its pins have FIXED wiring.

MOVE CELL breaks physical connections to the cell being moved and does not reroute any wires it disconnects. Wiring is disconnected at the nearest pin or Steiner points; a need to be GRouted info is attached to each net. A geometry info is created if there were any wires within the cell's boundary at the location before the move. However, if you replace a cell at its original location, MOVE CELL does not remove any attached wiring or create geometry info.
Moving a cell sets its Modify.Code to FIXED. Unplacing a cell sets its code to FREE. Adding a pseudocell sets its Gen.Source attribute to USER. The new cell can be removed later using REMOVE. 

OVERLAPSOK lets you move a component to a location already occupied by another component.

The AT option places the cell at the exact selected pt regardless of row type. Be careful when placing a cell this way, because you must align the cell correctly for it to be included in the row. In particular, if you use DELETE ROW, a cell placed incorrectly is not deleted with the rest of the cells in the row.

Using the MOVE CELL operands TOP, BOTTOM, LEFT, or RIGHT, you can move a cell to a location relative to the top, bottom, left, or right of a particular existing cell, regardless of row type. 

When placing a cell relative to an existing cell, MOVE CELL does not attempt alternative orientation or EEQ substitution, nor does it check for the same row type. The Move.Cell.Left.Justify and Move.Cell.Bottom.Justify environmental variables designate the alignment of the moved cell with respect to the existing cell. 

For example, if Move.Cell.Left.Justify is True and cell A is placed relative to the top or bottom of cell B, the left edge of cell A aligns with the left edge of cell B. If Move.Cell.Bottom.Justify is False and cell A is placed relative to the left or right of cell B, the top edge of cell A aligns with the top edge of cell B.

MOVE CELL checks for shorts and different-net spacing violations, but not for antennas, opens, or same-net spacing violations. MOVE CELL deletes wiring and checks for design rule violations before performing the move, so it occasionally reports shorts that will not exist after the move. Specifying SHORTSOK allows the cell to move regardless of shorts, and without causing an error message.

When Move.Cell.CreateVia is true, MOVE CELL automatically adds vias for special wiring, if legal cuts can be made for the vias.

MOVE CELL checks for legal locations automatically. Except when invoking relative-placement operands, MOVE CELL automatically attempts alternate orientations and EEQ substitutions. If the placement is illegal despite these attempts (for example, because available sites do not match the requirements of the component type) an error is reported. 

In this case you must pick an alternate location, or keep the component unplaced and let PLACE find a legal location automatically. If a placement is legal after an orientation change, the change is reported. If an EEQ is used, the substitution is reported.

You can control display of the dynamic drawing with NONE, SPAN, and RATS. If you specify RATS or NONE prior to the cellID parameter, dynamic drawing is turned off or on. SPAN is handled differently: If you specify SPAN prior to cellID, MOVE CELL displays the spanning tree from the initial position of the cell. If you specify SPAN following cellID, MOVE CELL displays the spanning tree for the spanCoord parameter.


Environmental Variables

Allow.EC 
BOOLEAN - Default: false - NOVICE 
If true, you can run INPUT DEF ECO to add engineering changes to the database, and MOVE CELL to move COVER cells.

Move.Cell.AllDynamicLines 
BOOLEAN - Default: true - NOVICE 
Determines how to draw dynamic lines for cells that have more than 200 lines. When true, no lines are displayed. When false, an arbitrary 200 lines are displayed.

Move.Cell.Bottom.Justify 
BOOLEAN - Default: True - NOVICE 
If true, bottom edge of cell A aligns to that of cell B at left or right.

Move.Cell.Left.Justify 
BOOLEAN - Default: True - NOVICE 
If true, left edge of cell A aligns to that of cell B at top or bottom.

Move.Cell.MaxNetPins 
INTEGER [0, 200] - Default: 100 - NOVICE 
Max number of pins of the same net that can be dynamically drawn.

Move.Cell.NetStyle 
STRING {RatsNest | Span | None} Default: RatsNest - NOVICE 
Sets the form of the dynamic flight lines for the MOVE CELL command. RatsNest displays dynamic lines from each pin on the cell to pins on other cells on the same net. Span displays the minimal spanning tree for the nets. None disables the display of any flight lines.

Move.Cell.CreateVia 
BOOLEAN - Default: false - NOVICE 
If true, MOVE CELL creates a via whenever a cell's pin is placed on a special wire of same net.

Move.Cell.Replace.Model
BOOLEAN - Default: TRUE - NOVICE

Move.Cell.Snap.Rgird
BOOLEAN - Default: TRUE - NOVICE

Move.Cell.SearchRadius 
INTEGER [1, 1000000] - Default: 1000 - NOVICE 
Maximum distance to search for a legal location when using the SEARCH option of MOVE CELL.

SnapRadius.<Cell, LMod> 
STRING {Small | Medium | Large} - Default: Small - NOVICE 
How close the cursor must be to a cell or library model to select it.

SnapRadius.Large 
INTEGER [0, 1000000000] - Default: 10000 - NOVICE 
Sets the value of a Large snap radius.

SnapRadius.Medium 
INTEGER [0, 1000000000] - Default: 2500 - NOVICE 
Sets the value of a Medium snap radius.

SnapRadius.Small 
INTEGER [0, 1000000000] - Default: 100 - NOVICE 
Sets the value of a Small snap radius.

With the Move.Cell.Display.* variables you can enable and disable the display of flight lines for the following kinds of nets: Clock, Power, Signal, and Tieoff.


Example

MOVE CELL ND2_45 HORIZ (50300 30240) ;
"

	<Type QHELP>
	<Header "Move Cell Command Help">
<beginAutoGen "** Do not edit from here to the endAutoGen tag **" >
	<Tag MOVEIOPIN
		<Toolname gsEnsemble>
		<Version 5.0>
		<Title "Move IO Pin Command Help">
	>
	<Tag MoveCell
		<Toolname gsEnsemble>
		<Version 5.0>
		<Title "Move Cell Form Help">
	>
<endAutoGen >
>
