Announcing Xic-3
IC Design Software for Unix/Linux and Windows
Whiteley Research Inc., 456 Flora Vista Avenue, Sunnyvale CA 94086 www.wrcad.com

Announcing Xic Generation 3

Whiteley Research Inc. is pleased to announce the third generation of the Xic family of tools. This represents a complete rewrite and upgrading of the code base for the Xic graphical editor, the XicII layout editor, and the Xiv viewer product to be announced soon.


New Features in Xic-3
Click here to enter the on-line Xic-3 help system.
Click here to browse the on-line Xic-3 manual.

Installation

Xic Generation 3 has built-in capability for automatically checking for update availability, and for actually downloading and installing updates. After installing for the first time, the !passwd command should be run to enable these features.

Modularity

The code base was extensively reorganized, and subsystems have been modularized. Now, the programs are linked only with the needed modules. Previously, all functionality was linked, but unused features were disabled.

This has consequences for XicII, which does not include modules (for example) for DRC and extraction. Previously, XicII would read the full Xic technology files that contain DRC and extraction keywords without complaint, and write these values back if the technology file was updated. This is no longer true. XicII can read the full Xic technology file with no real problem, however there will be a lengthly listing of warnings printed in the console window due to the unrecognized DRC and extraction keywords. When the technology file is updated, these entries will be absent from the updated file. The distribution for XicII now includes example tech files that use conditionals that prevent XicII from "seeing" inappropriate lines or blocks.

A second consequence in XicII was that although DRC and extraction were not available from the graphical interface, elements of this functionality were available through script functions and the '!' commands. This is no longer true. The script functions and '!' commands that are exclusively for an unincluded module will not be present, these capabilities are now part of the module code base.

Separation of Electrical/Physical Data

The method by which electrical and physical data are associated has changed. In previous releases, symbol names were saved in a single hash table. The hash element contained cell definitions for the physical and electrical cells, which can be empty. The problem with this approach is that if there is no electrical data, which is true in many environments and is always true in XicII, the empty electrical cell definitions waste memory.

In Generation 3, electrical and physical cells have separate hash tables, so there is no longer storage required for empty cell stubs. This uses less memory when working (for example) with physical data only.

On-Screen Rendering

In Generation 3, all graphical layout displays are composed in local memory, which is then sent as a block to the graphics system. Previously, the graphics system (X windows) performed the rendering. The new approach can be hugely faster, particularly when running remotely over a relatively slow connection.

Digests

In older releases, use was made internally of an "archive context" data structure, that is a compact representation of a cell hierarchy with offsets into a layout file. This structure allows efficient access to the cells within the layout file, and provides the ability to work with files that are too large to reside in memory.

In Generation 3, this structure is called a "Cell Hierarchy Digest" (CHD) and given a more accessible and prominent position in the program interface.

New in Generation 3 is a companion data structure called a "Cell Geometry Digest" (CGD). This is a hash table that, for a cell name and layer, provides a highly compressed byte string that represents cell geometry.

A CGD can be linked to a CHD, in which case file reading operations through the CHD will retrieve geometrical data from the CGD instead of from the original layout file. Since both the CHD and CGD are in memory, this should be much faster than reading the layout file on disk.

There are new pop-ups which provide access to the saved CHDs and CGDs, and initiate various operations. One operation of interest is the ability to display a layout through a CHD. In this case, only the CHD resides in memory, allowing viewing of files that are far too large to be viewed in the normal way.

Another new feature is the "cell override table" which, when a file is accessed through a CHD, certain cells will be overridden by cells in memory. This allows editing of files that are too huge to fit in memory.

Xic can be used as a "geometry server" to provide access to cell geometry on a per-cell/per-layer basis to other hosts on a network.

File Merging and Assembly

A new "reference cell" feature allows a cell to act as a pointer to a file hierarchy stored in a file on disk. Reference cells can be placed in a layout in the normal way. When the layout is saved to an archive file, the reference cell is replaced with the actual cell hierarchy extracted from the referenced layout file, streamed into the new file. This can be used to create layout files containing much more data than can fit into memory.

A similar capability is provided by the Layout File Merge Tool, which is a panel which provides a graphical front-end to the !assemble command. This provides a means for merging cell hierarchies from multiple layout files into a single file, allowing transformations, windowing, etc.

Layer Table and Layer Palette

The previous method of displaying layers, using up/down buttons to advance to a new line of layers, was cumbersome at best for layouts with many layers.

In Generation 3, the up/down buttons are gone, and instead a scrollbar is provided. The scrollbar enables scrolling through all of the layers in use, which is far easier that clicking the buttons.

To make available a subset of layers in which the user has particular interest, a Layer Palette pop-up is available. The top part of the pop-up displays information about the layer under the mouse pointer. Below this info area are two rows that may contain layer icons, as in the layer table. The first row shows the last few "current layer" selections. The second row contains a "sticky" area, where layers can be dragged from the layer table and dropped. Clicking on any of these layers has the same effect as a similar click in the layer table.

Enhanced Library Support, Immutable Cells

The library support, whereby cells can be opened via indirection through library files, has been enhanced. Cells opened through the library mechanism by default have the new IMMUTABLE and LIBRARY flags set. The IMMUTABLE flag means that the cell is read-only. The LIBRARY flag means that the cell won't be included when writing a layout file. The user can set/unset these flags, and thereby has great control over which cells are written to output.

Lots More

Much of the existing functionality has been updated and enhanced. Many for the commands and features have new pop-ups or other features, too numerous to fully list here.

Copyright © Whiteley Research Inc. 2008