Product Documentation
Virtuoso Fluid Guard Ring Developer Guide
Product Version IC23.1, June 2023

7


Methodology to Maintain Versions of Implementation Class

You can maintain multiple versions of an implementation class. This is useful when you want to associate different drawing methods with an implementation class. Based on the implementation class version being used, different draw methods are called for creating the geometries in an FGR device. This chapter covers the methodology that VFO infrastructure provides to maintain versions of an implementation class.

For an FGR device, the technology file contains the following two parameters in the device definition:

These parameters facilitate version control for an implementation class. Currently, the VFO infrastructure is implemented to support values 0 and 1 for these parameters.

A SKILL code file can be created to save the different version of an implementation class. In this file, the customized implementation class is extended from the vfoGuardRing class, as shown in the example below.

defclass(sub1GuardRing (vfoAdvGuardRing)
(
 /* add here the new formal parameters in the guard ring definition */
) ;sub1GuardRing

Different versions of this implementation class can be defined by sequentially extending one class from the other as shown in the figure below. Ensure that the class name string for each version is constructed based on the concatanation string present in the vfoGuardRing class definition in the technology file.

The device definitions for the customized implementation class, such as sub1GuardRing used in the example above, reside in the technology file. The figure below shows definition of device, FGR_version1, using the customized implementation class, sub1GuardRing, and parameter value, 1. Similarly another device definition, FGR_version0, can exist with implementation class as sub1GuardRing, but parameter value as 0 instead of 1.

In the SKILL code file, for each version of the implementation class, there should be a vfoSfDraw method that defines drawing of the geometries in an FGR instance. The example below shows the methods for sub1GuardRing_ver_0 and sub1GuardRing_ver_1:

defmethod(vfoSfDraw ((gr sub1GuardRing_ver_0)) 
    dbCreateRect(gr->cv list("Metal1") list(0:0 1:1))
   ) ;vfoSfDraw
defmethod(vfoSfDraw ((gr sub1GuardRing_ver_1)) 
    dbCreateRect(gr->cv list("Metal2") list(1:1 2:2)) 
   ) ;vfoSfDraw

While creating an FGR device, these vfoSfDraw methods are evaluated based on classVersion and formalVersion parameter values present in device definition in the technology file.

See the example below to understand this methodology.


Return to top
 ⠀
X