In physical mode, one arranges geometrical shapes on the various layers to produce a working circuit. One can also place subcells, which have been previously created. The knowledge of what shapes to place, and where, is dependent on the technology in use, and represents the essence of integrated circuit engineering. The user must be familiar with these fundamentals, as Xic is only a tool for application of this knowledge.
The basic primitive used by Xic is the box. Boxes are filled rectangular structures representing an area of opacity on the corresponding mask level. The box button in the side menu, with the rectangular icon, is used to create boxes. With the box button active, the user points to the two diagonal corners of the box desired in the drawing window, and a colored box will appear. The color and fill pattern are set for each layer in the technology file, and can be changed by the user with the Set Color and Set Fill buttons in the Attributes Menu. The layer can be selected by clicking on the desired layer in the layer table, which is arrayed near the bottom of the main Xic window. Note that when boxes created on the same level overlap, they are clipped or merged so as to not actually overlap. This increases the storage and retrieval efficiency of the database.
If the created box is too small or otherwise causes a design rule violation, a message will appear, if interactive rule checking is active. By default, all objects are checked for design rule violations when they are added to the database, though this can be set otherwise in the technology file or if the Set Interactive button in the DRC Menu is not active. Objects that ``fail'' are actually in the database, and it is the responsibility of the user to correct the error when it is flagged.
Boxes can be used exclusively to create a working circuit, however other structures are sometimes more convenient. Wires are fixed-width paths that are often used to make electrical connections. The wire button in the side menu allows the creation of wires, and the style button can be used to change or set the wire width and end style. The wire button has a sideways L-shaped icon. Every layer has a default wire width. To construct a wire, simply click on the points of the drawing window which correspond to wire vertices, and click the last vertex twice to end the wire. Note that the wire can zigzag at any angle, however the angles can be fixed to multiples of 45 degrees by setting the Constrain angles to 45 degree multiples check box in the Editing Setup panel from the Edit Menu. Also note that acute angles will most likely cause a design rule violation message to appear.
Polygons are constructed in a manner similar to wires, using the polyg button in the side menu. This button has a triangle icon. The polygon is constructed by clicking at each desired vertex location, and is terminated by clicking again on the first vertex. Polygons can have edges with arbitrary angles, which can be constrained to multiples of 45 degrees with the Constrain angles to 45 degree multiples check box in the Editing Setup panel. Again, acute angles are likely to cause design rule violations. Polygons are most useful for constructing rounded or off-angle shapes used in high frequency circuits. It is also slightly more efficient to use polygons rather than a collection of boxes.
With none of the geometry-creating buttons active, clicking on an object can cause it to be ``selected''. Only objects on layers that are selectable, as shown in the layer table, can be selected. A selected object will be outlined with a flashing highlight. Selected objects are used by many of the other commands. An object can be deselected by clicking on it a second time. The status window below the layer table will indicate the number of objects selected. Multiple objects can be selected at once by pressing and holding button 1, dragging the pointer, and releasing. A ghost-drawn rectangle will appear during this operation. Objects which overlap this rectangle will be selected (or deselected if already selected). All selected objects can be deselected with the desel button in the top button menu (above the main drawing window).
Once selected, an object can be deleted, either by pressing the Delete key, or by pressing the Delete button in the Modify Menu. The objects will disappear from the screen, and the database.
Almost any operation which modifies the database can be undone with the Undo button in the Modify Menu, which is equivalent to pressing the Tab key. The last 25 operation are saved, and can be undone. The Redo button, or equivalently Shift-Tab will redo the last undo. All of the undone operations are saved in the redo list, however the redo list is cleared after each new operation that is not an undo.
The Stretch button in the Modify Menu is used to modify the shapes or sizes of boxes, polygons, wires, and labels. By pointing at the edge or corner of a box, one can move that edge or corner to a new location. Similarly, polygon and wire vertices can be moved. Polygons and wires can also be modified with the vertex editor built into the polyg and wire command buttons. If a polygon or wire is selected before pressing the corresponding command button, the vertices of the selected object will be marked. The selected vertices can be deleted or moved, and new vertices added.
The erase button in the side menu has an icon consisting of a box with a corner missing. This button is used to delete parts of objects. One clicks twice, or presses and drags, to define a rectangle, which is ghost-drawn during the operation. This rectangular area will be cleared of fill from any box, polygon, or wire. Wires may not be entirely erased, as they are only cut at points where the central path crosses the erase box boundary.
The user may have already designed one or more cells using Xic, which are then available for use as subcells in the present layout. Subcells are called and placed with the place command button in the side menu. After pressing the place button, the Cell Placement Control pop-up will appear, which allows the user to select a cell to place from cells that have been placed previously, or to enter a new cell name to place. The cell name can be dragged from the File Selection panel or from the list pop-ups in the File Menu. In addition, the List pop-ups contain a Place button which will also set the name of the current ``master'' cell to be placed, and pop up the Cell Placement Control pop-up if it is not already visible. When the Place button in the Cell Placement Control pop-up is active, the current ``master'' will be ``attached'' to the mouse pointer, and instances will be placed at locations where the user clicks with mouse button 1 in the drawing. There is provision in the Cell Placement Control pop-up to define array parameters, so that an array of instances will be created rather than a single instance. The placement mode can be exited by pressing the Esc key, or by unsetting the Place button in the Cell Placement Control pop-up.
Once a physical layout is substantially complete, the layout is a candidate for batch design rule checking and extraction. These capabilities are described in detail in later chapters.
This brief introduction should convey the flavor of using Xic in physical mode. There are many more commands, and some of the commands introduced have additional features not mentioned. The best way to learn Xic is to use it, and read the on-line help available for the commands. After pressing the Help button in the Help Menu, pressing any command button will bring up a help screen describing the command. Reading the help and then trying the operation is the fastest way to learn. The help mode, and any command, can ge exited by pressing the Esc key.