next up previous contents index
Next: The Enable Editing Button: Up: Cell and Object Properties Previous: Electrical Mode Properties   Contents   Index


Physical Mode Pseudo-Properties

In physical mode, the listing of properties contains ``pseudo-properties'' which are not saved as properties, but rather change or return some parameter related to the object. This allows the property setting mechanism to be used to alter the physical layout, which can be an important feature in design automation. There are a number of reserved property numbers which can be applied to physical objects (this feature applies in physical mode only). Setting the property will change a geometric or other attribute of the object. Reading the property will provide the value of the geometric or some other parameter. The pseudo-properties are listed below.

Although it is not allowed in the Xic user interface, internally pseudo-properties can be applied to any object, electrical or physical. Many of the script functions that modify objects use the pseudo-property mechanism internally. These functions can take electrical or physical input.

7200: XprpType
This value can be read from all objects. The returned property string consists of a single character: b, p, w, l, or c for boxes, polygons, wires, labels, or subcells respectively. The returned value indicates the type of object.

7201: XprpBB
This value can be read from all objects, and can be applied to boxes, polygons, wires, and labels. The property string is in the form left,bottom right,top where the left, etc. are the coordinates of the object's bounding box in internal units. The x and y values are separated by commas. When this property is applied to an object other than a subcell, the object's geometry is stretched to conform to the bounding box given.

7202: XprpLayer
This value can be read from all objects, and can be applied to boxes, polygons, wires, and subcells. The property string is the name of the layer on which the object is defined. For subcells, the returned name is ``$$'', which is the internal name for the layer on which subcells are defined. When this property is given to an object (not a subcell), and if the name is found in the layer table, the object will be moved to the given layer.

7203: XprpFlags
This value can be read from all objects, and can be applied to all objects. The property string is a list of values and keywords corresponding to special flags associated with the object. These flags are set internally, and should not be set by the general user.

7204: XprpState
This value can be read from all objects, and can be applied to all objects. The property string contains one of the keywords normal, selected, deleted, incomplete, and internal. This indicates a state value for the object which is used internally. These values should not be set by the general user.

7205: XprpGroup
This value can be read from all objects, and can be applied to all objects. The property string is an integer corresponding to the conductor group assigned to the object by the extraction system. Though all objects have this data field, it has relevance to objects that are defined on conducting layers only. It is generally unwise for the user to set this value.

7206: XprpCoords
This value can be read from all objects, and can be applied to boxes, polygons, wires, and labels. The property string is a list of coordinates, one for each vertex, with the x and y values separated by a comma. Line feeds are included in returned strings to keep the line length below 80 characters. The values are in internal units. For boxes, labels, and subcells, the coordinates are those of the bounding box. For polygons and wires, the coordinates are the actual vertices. For all but wires, the first and last coordinates are the same, i.e., the path is closed. For boxes and polygons, applying this property will change the object geometry. If the new geometry is a Manhattan rectangle, the new figure will be a box, otherwise it will be a polygon. When applied to wires, the new object will always be a wire, but with the new path. The coordinates given to a label must describe a Manhattan rectangle, and the label will be stretched to fill the given rectangle, as with applying XprpBB.

7207: XprpMagn
This value can be read from all objects, and can be applied to all objects. The return value is ``1.0'' for objects other than subcells, and the magnification value for subcells. When applied to objects other than subcells, all coordinates of the object will be scaled by the given value. When applied to subcells, the instance magnification factor will take the new value. Note that the instance origin will not change, however the scaling given to other objects in general implies a translation as well as a change in size.

7208: XprpWwidth
This value can be read from wires, and can be applied to wires. The property string is the width of the wire in internal units. When applied to a wire, the width will take the new value. This has no effect when applied to objects other than wires.

7209: XprpWstyle
This value can be read from wires, and can be applied to wires. The property string is the end style code, which is an integer 0, 1, or 2. If 0, flush ends are used. If 1, the wire is extended by one half of the width, and the end is rounded. If 2, the wire is extended by one half of the width, and the end is Manhattan. Applying this property to a wire will cause that wire to be rendered with the given end style. The property has no effect if given to objects other than wires.

7210: XprpText
This value can be read from labels, and can be applied to labels. The return value is the text of the label. The full text including encoded hypertext entries is provided. When applied to a label, the label takes the new text. There is no effect if this property is applied to objects other than labels.

7211: XprpXform
This value can be read from labels, and can be applied to labels. The property string is a hexadecimal integer representing a transformation code.

Bits Description
0-1 0-no rotation, 1-90, 2-180, 3-270
2 mirror y after rotation
3 mirror x after rotation and mirror y
4 shift rotation to 45, 135, 225, 315
5-6 horiz justification 00,11 left, 01 center, 10 right
7-8 vert justification 00,11 bottom, 01 center, 10 top
9-10 font

When applied to a label, the label will rendered using the new code. This property has no effect when applied to objects other than labels.

7212: XprpArray
This value can be read from subcell instances, and can be applied to subcell instances. The property string is of the form ``nx,ny dx,dy'' where nx and ny are the number of columns and rows, and the dx and dy are the center to center spacings in internal units, for an array of subcells. When applied to an instance, the array parameters of the instance are correspondingly changed. This property has no effect on objects other than subcells.

7213: XprpTransf
This value can be read from subcell instances, and can be applied to subcell instances. The property string is the CIF transformation string for the instance, with coordinates in internal units. When applied to an instance, the instance placement and orientation change to reflect the new transformation. This property has no effect on objects other than subcells.

7214: XprpName
This value can be read from subcell instances, and can be applied to subcell instances. The property string is the name of the instantiated cell. If this property is set, the instance is replaced by an instance of the given cell name. The current transform is added to the existing transform when the new instance is placed. This property has no effect on objects other than subcells.

7215: XprpXY
This pseudo-property has a value that is an x,y coordinate, and can be read from or applied to any object or subcell. The interpretation of this coordinate depends on the type of object. For boxes, it is the lower-left corner. For polygons and wires, it is the first vertex in the vertex list. For labels, it is the text anchor point, and for subcells it is the placement coordinate. Setting the property is equivalent to moving the object.

7216: XprpWidth
This pseudo-property returns the width of any object or cell instance in internal units. It can be applied to objects but not cell instances, and will scale the object to the specified width.

7217: XprpHeight
This pseudo-property returns the height of any object or cell instance in internal units. It can be applied to objects but not cell instances, and will scale the object to the specified height.

The settable pseudo-properties for an object are listed in the Properties Editor, along with the ``real'' properties. These can be changed in the same way, which will produce physical changes to the object.


next up previous contents index
Next: The Enable Editing Button: Up: Cell and Object Properties Previous: Electrical Mode Properties   Contents   Index
Stephen R. Whiteley 2012-04-01