next up previous contents index
Next: Standard Vias Up: CadenceTM Compatibility Previous: Express PCells   Contents   Index


Importing a Design from Virtuoso

Once the OpenAccess database of a Cadence Virtuoso installation is connected to Xic, designs created in Virtuoso can be imported into Xic. Physical (layout) data should transfer without issues. Schematic and schematic symbol data will transform as electrical cells, some of which are devices. These will probably work successfully as Xic cells, but it is possible that a bit of intervention will be needed. It is disasterous if the cells are written back to Virtuoso. By default, Virtuoso libraries are read-only in Xic to prevent this from happening.

Xic obtains technology information from its own technology file, and (presently) not directly from OpenAccess. However, the same technology information should be available to Xic through direct reading of the appropriate display.drf and ASCII technology files. These files should be available in the process design kit in use.

The user's cds.lib file (or a copy) should exist in the current directory. This file will be used and updated by Xic. It is fine to share a cds.lib with an active Virtuoso installation, but it is probably better to maintain separate files, so that the Xic libraries, which are presently incompatible with Virtuoso, are invisible in Virtuoso.

If the OpenAccess database is connected, the OpenAccess Libraries panel, from the OpenAccess Libs button in the File Menu, will display the libraries that are defined in the cds.lib file. The button will appear in the File Menu only if an OpenAccess database is connected.

From the panel, one can select a library by clicking on the listing, and list the contents with the Contents button in the panel. Pressing the Contents button brings up a listing of the cells contained in the library.

Presently, Xic does not use ``views'' in the same manner as Virtuoso. Each of the listed cell names contain one or more of the following OpenAccess standard views, which are used to create the Xic cell. The maskLayout view contributes the physical data. The schematic view provides the electrical data, and the schematicSymbol view provides the Xic symbolic representation. Other views are ignored by Xic.

In the Listing panel, one can select cells bu clicking on a name. When a cell is selected, the Open button becomes active. Pressing this button will read that cell, and its hierarchy, into Xic. Note that it does not matter whether or not the library is ``open'' in the OpenAccess Libraries listing. The ``open'' status means that cells in the library will resolve instantiations as archive files are being read, but explicitly read cells, and subcells referenced in OpenAccess, are always read.

Before data can be successfully read into Xic, Virtuoso parameterized cells must be cached, using the Cadence Express PCells feature. Xic can not create super-masters for Virtuoso (Skill-based) pcells, but will import cached super-masters. The imported cell will be an ordinary cell in Xic, but will retain properties that identify the cell as originating as a Virtuoso pcell.

Once the hierarchy is read, it should appear visually very similar if not identical to the corresponding views in Virtuoso, if the appropriate technology has been accessed properly. Electrical cells will always have a symbolic representation, since in Virtuoso schematic instantiations are always symbolic, unlike in Xic.

If there are errors or warnings emitted during the import, the log file listing will appear. The user should inspect this and take appropriate action if needed.

With the design now local in Xic, it can be saved to disk in any of the formats supported by Xic. Initially, it is recommended saving the imported design as a collection of native cell files, into a clean directory. The Export Control panel from the Convert Menu can be used for this. Then, the devices can be ``harvested''.

Initially, a number of the imported cells represent devices. These correspond to Virtuoso pcells, and have the same name. Except for some terminal devices that are created during translation as needed, the standard device library is not used. The imported devices serve the same purpose as the library devices, and will work in the same way. However, they will not appear in the device selection menus, and they are treated as ordinary cells in the hierarchy. By ``harvesting'' the devices, we will make ``official'' Xic devices out of them, allowing use in other designs, and remove them as ordinary cells in the imported hierarchy.

The following procedure can be used to identify the ``device'' cells. Bring up the Cells Listing panel from the Cells Menu. In the lower right-hand corner, select Elec Cells in the menu. Click the Filter button on the side of the listing, which will bring up the Cell List Filter panel. Make sure that the only box checked is the one next to Device (between not and Device). Then click Apply. The listing will now consist of the device cells only. You should save this list, using Save Text or otherwise.

After saving the imported design in a directory as native cell files, Xic can be exited. To harvest the devices, we will create a new directory (if needed), and move the device cells in our list from the directory containing our design to the new directory. We will then add the new directory as a reference in a local device.lib file, if this hasn't been done previously. Then, next time we use Xic, the devices will be present in the device selection menus, and can be used in new schematics just as any other device. Specifically, suppose that you saved the design as native cell files in a directory named ``chip1'', and you have another directory named ``devices''. By hand, move each of the files in the list of devices from chip1<to devices. Then, add the devices directory to the device.lib file. The default system-wide device.lib is in the startup directory in the installation area (/usr/local/xictools/xic/startup by default). You can modify this file, or better copy this file to your current directory, and modify the copy. With a text editor, add a line to the end of the

device.lib file:

Directory /full/path/to/your/devices

The second token should be the actual full path to the devices directory that you created. Note that in the future, all that you need to do to ``install'' a new device is to move the file into your devices directory.

Once finished, one can start Xic again, with the same technology file, and read in the top-level cell from the saved native cell files directory. The devices will be included, now resolved through the library mechanism. One may wish to save the design in an archive format such as OASIS or GDSII, which may be more convenient than the directory full of cell files. The archive file will not contain the devices. Be aware that to export the design to another Xic installation, the devices directory will have to be exported too.


next up previous contents index
Next: Standard Vias Up: CadenceTM Compatibility Previous: Express PCells   Contents   Index
Stephen R. Whiteley 2022-05-28