Product Documentation
Virtuoso Fluid Guard Ring User Guide
Product Version IC23.1, November 2023

6


Version Management

Fluid guard rings are SKILL/SKILL++ Pcells, with powerful creation and graphical editing capabilities. The Pcell code to evaluate them is located in the Virtuoso installation hierarchy. When you move to a different version of Virtuoso, geometry changes in existing FGR instances might occur, more details are described below. This can lead to issues as qualified designs that are already in production can change in a different release of Virtuoso and such designs would require re-qualification.

Fluid guard rings are dynamically evaluated Pcells. The Pcell code to evaluate them, Virtuoso Fluid Object (VFO), is shipped with the Virtuoso release (vfo*.ils files) under the following directory)

<cic_install_dir>/tools/dfII/etc/vfo

By default, the VFO code available in the Virtuoso hierarchy of the running Virtuoso session is used for FGR Pcell evaluation. Geometry changes in existing FGR instances can occur due to introduction of new or enhanced FGR features, or bug fixes made in the VFO code, or changes made in non-VFO SKILL functions used by the FGRs.

To ensure that the layout does not display unexpected geometry changes in existing FGR instances when moving to newer Virtuoso releases, the FGR version management solution is now available. This solution is based on caching on disk the FGR sub-masters that exist in a layout cellview.

The version management solution is only is applicable for FGR devices that have been defined through the Install Guard Ring form. This solution is not applicable to custom FGR devices that have been developed through custom SKILL or SKILL++ code, for example, advanced node FGRs.

Version Management Solution

The cache-based version management solution ensures that layouts are safe from unexpected geometry changes in existing FGR instances when moving to newer versions of Virtuoso.

When you create or edit an FGR instance, the FGR sub-masters in the memory are saved to a cache when you save the layout cellview. The cache is located under the containing layout cellview. When you open the layout, Virtuoso uses these saved sub-masters from the cache, rather than dynamically evaluating them.

The following figure describes the flow of the version management solution:

This solution ensures that the layout is safe from unexpected geometry changes in existing FGR instances when moving to newer Virtuoso versions. When you save an FGR instance, the FGR sub-master gets saved to the FGR cache. The version of the VFO code, for example FGR_617.0, used during the creation or editing of an FGR instance is saved in the cache in the cacheCreateVersion parameter of the sub-master.

When you re-open the layout in subsequent sessions, the FGR sub-master used in that layout will be read from the cache instead of the SKILL code being evaluated. This ensures that the geometries of instances remains unchanged across Virtuoso versions.

The FGR instances remain Pcells, so you can use the editing commands on these instances.

Each layout cellview containing FGR instances has its own cache. This avoids conflicts that can arise if a common cache is used for multiple layout cellviews.

This FGR version management solution is compatible with mainstream IC design management tools.

To enable version management for FGRs, you can do one of the following:

After re-installing in IC617 a legacy FGR super-master that was originally installed in a prior version of Virtuoso, for example IC615 or IC616, newly created instances of such FGRs in IC617 will be saved to the FGR cache. However, existing legacy instances of such super-masters will not get stored in the cache automatically. They will continue being SKILL-evaluated. To get such instances stored to the FGR cache, you can do one of the following:

Cache Files

The version management solution uses two binary files:

These cache files are located under the Unix or Linux directory of the containing layout cellview.

The cache files get updated when you save the layout cellview after creating or editing FGR instances. The edit commands, such as Merge, Chop, Tunnel, and Stretch, involve changes in the FGR Pcell parameter values, and the edits that you make through the Edit Properties form, cause the cache to be updated when you save the layout.

The cache files do not get updated when you move or copy an FGR instance. When you move an FGR instance and its sub-master exists in the cache, the cache is not updated on saving the cellview. This is because the parameters of the instance do not change during the Move command. When you copy an FGR instance and its sub-master exists in the cache, then when you save the cellview, the cache to not updated. This is because both instances point to the same sub-master, and that sub-master already exists in the cache.

Note:

The writing and reading from the cache happens as a background activity. If you want to view the read and write information about FGR sub-masters, you can set the following Shell environment variable before starting the Virtuoso session.

setenv VER_CACHE_DEBUG_MSG

If the cache files are read-only at the time of creating or editing an FGR instance, the value of the cacheCreateVersion parameter is set to 0 on that instance. At the time of saving the celllview, you get a warning message about all such FGR instances whose sub-masters will not be saved in the cache.

GUI Updates for Version Management

A new field, Cache Create Version, has been added to the Edit Instance Properties form. This field is visible when you select a cache-enabled FGR instance. The value of this field corresponds to the VFO version that was used when that instance was created or edited, and its sub-master was saved to the FGR cache.

When you click the Disable Cache button, the value in the Cache Create Version field is set to 0, as shown in the figure below.

When the value of this field is set to 0, and you open this FGR instance in a new session, it is evaluated through SKILL instead of being read from the cache.

When you click the Update Version button, the selected FGR instance is re-evaluated, using the VFO version of the current Virtuoso session.

When you save the layout cellview containing the FGR instances, the sub-master of the FGR instances which are version enabled will get saved to the FGR cache, if it was not already present in the cache.

Cache Cleaning Mechanism

The version management solution has a cache cleaning mechanism to prevent increase in the cache file size. There are ways to automatically or manually clean the cache, as described below.

Automatic Cache Cleaning

The automatic cache cleaning mechanism prevents cache file size growth. When you delete all instances of an FGR sub-master from a layout cellview, the image of that sub-master is no longer needed.

Unused FGR sub-master images get deleted from the cache after you open the layout cellview in the scenarios mentioned below:

Automatic cache cleaning is enabled by default. You can disable it by setting the Shell environment variable FGR_CACHE_AUTO_CLEANUP to OFF.

Manual Cache Cleaning

You can clean the cache files either by using the GUI options or the SKILL function described below:

After removing all FGR instances from a layout cellview and cleaning its FGR cache, the cache.pcl and index.pcl files continue to exist for the cellview, even if they do not contain any FGR sub-masters. However, the size of these files will be 0 bytes.

Known Limitations of Version Management Solution

The version management solution has the following known limitations:

SKILL Functions

The SKILL functions listed below let you manually update the FGR cache of one or more layout cellviews.


Return to top
 ⠀
X