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

D


Loading VFO Infrastructure in Third-Party Tools

The customized fluid guard rings (FGRs) are derived from the base classes defined in the Virtuoso Fluid Object (VFO) infrastructure. Therefore, the related SKILL and SKILL++ code files have a dependency on the vfo* context and class definitions. Typically, third-party tools cannot evaluate the customized FGRs because they do not have access to the SKILL and SKILL++ code written by a PDK developer specifically for such FGRs. Also, the approach of loading the SKILL and SKILL++ code from the libInit.il initialization file is not user intuitive. This might lead to display of different types of error and warning messages while loading the customized FGR classes and methods. For example, unknown class found while defining a user-defined method or unable to restore a particular method.

Therefore, to allow third-party tools to read customized FGRs, you need to manually load the .il and context files that have the VFO infrastructure definitions, as explained in this chapter.

A PDK developer handles the loading of files that contain the code for any customized FGR. Therefore, if you need assistance in configuring or troubleshooting the load sequence of customized FGRs, contact your PDK provider for information.

Run the following steps to manually load the VFO infrastructure:

  1. Create a SKILL file that contains the lines of code given in the Procedure for Initializing Customized FGR Devices section and save it with a filename having the .il extension. For example, load_vfo_context_and_files.il
  2. Load this new SKILL file by adding the following lines of code in the libInit.il file:
    load("load_vfo_context_and_files.il")
  3. In the same libInit.il file, call the load_vfo_context_and_files SKILL procedure by using the following syntax:
    load_vfo_context_and_files (cxt_path  ils_path)
    Here,
    • cxt_path is the string specifying the location of the vfo.cxt file.
      In the Virtuoso installation, the cxt_path is:
      <install_dir>/tools/dfII/etc/context
    • ils_path is the string specifying the location of the vfo*.ils files.
      In the Virtuoso installation, the ils_path is:
      <install_dir>/tools/dfII/etc/vfo

Procedure for Initializing Customized FGR Devices

Add the following procedure to a file, such as, load_vfo_context_and_files.il:

procedure(load_vfo_context_and_files(vfoCxtPath ilsPath)
  let((vfoLoadSeqFilePath fileName )
    unless(isContextLoaded("vfo")
      loadContext(sprintf(nil "%s/vfo.cxt" vfoCxtPath))
    );;unless
    vfoLoadSeqFilePath = strcat(ilsPath "/vfoInitialize.ils")
    if(isFileName(vfoLoadSeqFilePath)
    then
      when(!isCallable('vfoGRGeometry)
        load(vfoLoadSeqFilePath)
        foreach(fileName vfoGetFileListWithLoadSequence()
          load(sprintf( nil "%s/%s" ilsPath fileName))
          printf("done loading %s/%s\n" ilsPath fileName)
        )
      );;when 
  else
      when(!isCallable('vfoGRGeometry)
        foreach(fileName (list
          "vfoMessageIds.ils"
          "vfoAbstractClass.ils"
          "vfoAddOns.ils"
          "vfoApi.ils"
          "vfoAlgClass.ils"
          "vfoUtils.ils"
          "vfoShapeData.ils"
          "vfoSfShapeData.ils"
          "vfoSf.ils"
          "vfoSfFilling.ils"
          "vfoGuardRing.ils"
          "vfoGrShrinkWrap.ils"
          "vfoGuardRingPreview.ils")
          load(sprintf( nil "%s/%s" ilsPath fileName))
          printf("done loading %s/%s\n" ilsPath fileName)
        );;foreach
      );;when  
    );;if
  );;let
);;load_vfo_context_and_files


Return to top
 ⠀
X