Xic is a dual-mode graphical editing tool. In the physical editing mode, Xic is a hierarchical mask layout editor, with interactive and batch mode design rule checking, arbitrary angle polygon and wire support, netlist and parameter value extraction, and many more advanced features. In electrical layout mode, Xic serves as a hierarchical electrical schematic editor and schematic capture front end for SPICE. In the XicTools environment, circuit simulation can be performed and results analyzed from within Xic, through an interprocess communication channel established to the companion WRspice program.
Arrayed along the top of the main window is a toolbar containing drop-down menu selectors. Below the menu bar is a tool bar containing buttons and other controls, including the coordinate readout area to the right. To the left of the main window is an array of additional command buttons. These menu commands control the operation of Xic. The main drawing window occupies the largest section of the main window. The main drawing window supports drag and drop as a drop receiver for files. To the left of the main drawing window is the layer menu, which displays a listing of the layers used in the process. The layers, and their attributes, are specified in a technology file read by Xic at program startup.
Just below the main drawing window is the prompt line, which provides a channel for text-mode interaction with the program. In the same row, below the buttons in the side menu is the key press buffer area, which records characters typed into the graphics window. It is invisible until characters are typed. The typed characters are interpreted as command accelerators. Below the prompt line, at the bottom of the main window, is a status line which provides information about the current program operating state.
The WR button, in the upper left corner of the main window, brings up a mail client which can be used to send messages and files via internet mail. It is preloaded with the address of the technical support group at Whiteley Research.
Despite the array of features, Xic is intended to be straightforward and intuitive to use, Xic has extensive on-line documentation available through a context-sensitive help system. This help system can easily be augmented and customized by the user, so that the user's design rules and tips, and other technical information can be made available from within Xic.
Xic includes a native, script execution facility, with plug-in support for Python and Tcl/Tk. These languages will be available if installed on the user's computer. The native scripting language is a straightforward but powerful C-like language with a rich library of primitives for controlling the operation of Xic. Scripting can be used for automation, for parameterized cells and executable labels, and to implement user-defined commands. These commands may appear as buttons in the User Menu.
One application of the user scripts is to provide simple, menu based commands for creating geometrical objects, devices, or parameterized device structures for use in circuit layout. Further uses for this capability are limited only by the user's imagination.
Xic can execute scripts in batch and server modes, allowing geometrical manipulations to be performed in a background or non-local environment. As a server, Xic can serve as the workhorse back-end for web-based or turn-key third-party products or services, or in-house custom applications.
Xic provides access to the OpenAccess database via a plug-in. It can utilize the OpenAccess database provided with Cadence Virtuoso, or Synopsys/Ciranova PyCell Studio, and others. Xic has some limited compatibility with Cadence Virtuoso: Xic can directly read Cadence technology and display resource files, and can read layout and some schematic and schematic symbol views.
Default schematic editing support is provided for a wide variety of devices, even Josephson junctions. Additional devices and subcircuits can easily be added by the user, or changes can be made to existing devices, by editing a single text file. Xic also provides a high-powered model library search engine compatible with any SPICE format model or subcircuit library files, such as those provided by semiconductor manufacturers.
Hard copy support is available for a variety of printers and file formats, including PostScript (mono and color), HPGL, and HP laser.
Xic has support for several archive layout file formats, plus native input and output. Data input in a given format will remain in that format, unless explicitly converted.
Xic produces data files which contain both electrical and physical data, though one of these two data areas may be empty. The file format used can be one of:
Built-in converters can be used to convert between the file formats. It is possible to ``strip'' the output, providing a physical-data file completely compatible with the industry standard file formats, for portability of mask layout information. It is also possible to read and write a ``text-mode'' version of GDSII files, which can be used to repair corrupted or misbehaving GDSII databases.
Xic provides a powerful facility for translating between supported layout file formats, while potentially modifying the data. Possible modifications include layer filtering and aliasing, cell name global modification and aliasing, flattening, and spatial filtering to a rectangular area with or without clipping, cell replacement, and more. These operations can be applied to very large files, as a unique technique minimizes memory use.
In physical mode, design rule checking can be performed as each new object is created of modified. Batch mode checking is also available, either in the foreground, or as a background child process. The philosophy of Xic is that it is never in the user's best interest to ``cheat'' in the enforcement of design rules, yet there may be times when a given rule is not appropriate, and a modified rule should be used. Following this philosophy, the user is given complete control over the design rules, which can be edited, disabled, or rules added interactively. The user can initiate batch mode design rule checking over a given area or over a complete cell. Design rule checking is performed over a pseudo-flat internal representation of the layout, so that physical rules are checked without any constraint based upon which subcells contain the geometry.
Xic has provision for netlist and parameter extraction. The netlist obtained from the physical layout, plus extracted physical device parameters, can be used to generate a SPICE output file, and even a schematic. Automated layout vs. schematic (LVS) testing is provided.