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. 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. Just below the main drawing window is the prompt line. Below the prompt line is the layer menu, and to the left of the layer menu is the coordinate readout, and just below is the status area. Below the buttons in the side menu is the key press buffer area. The WR button in the upper left corner 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. Next to this button is a pair of buttons to clear and restore the current transform. The current transform is used to apply rotation, mirroring, and magnification to moved/copied objects and newly created subcells.
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 script execution facility, providing interpreters for the native language, tcl/tk, and lisp. A straightforward but powerful native C-like scripting language with a rich library of primitives for controlling the operation of Xic is provided for implementing 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 wab-based or turn-key third-party products or services, or in-house custom applications.
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 file formats, and native input and output. Data input in a given format will remain in that format, unless explicitly converted.
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.
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: the native format, in which each cell of a design is written to an independent ASCII file, or an extension of GDSII, a binary format where the entire design is written to a single file, or an extension of CIF, an ASCII format where the entire design is written to a single file, and others, including OASIS. Xic will read any of these file types automatically, and save any editing changes in the same file type unless instructed otherwise. Built-in converters can be used to convert between the file formats. It is possible to ``strip'' the GDSII or CIF 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.
The XicTools package has been developed primarily under BSD-4.4 Unix (FreeBSD, www.freebsd.org), which is the reference operating system. The tools have been ported to many other Unix-type operating systems, including Linux, Sun Solaris and SunOS 4.1.x, AIX, HPUX, and DEC Alpha-OSF. The tools are also now available for Microsoft Windows and Apple OS X.
The Unix/Linux version of Xic uses the GTK user interface toolkit running on the X window system.