Product Documentation
Virtuoso Layout Suite SKILL Reference
Product Version IC23.1, November 2023

lxCheckAndUpdateRegister

lxCheckAndUpdateRegister(
t_appName
g_path
g_check
g_update
[ ?severity t_severity ]
[ ?object t_objectType ]
[ ?checkFunction t_checkFunction ]
[ ?updateFunction t_updateFunction ]
[ ?configCB t_arcCallBackFunction ]
[ ?master g_callCheckUpdateMaster ]
[ ?subMaster g_callCheckUpdateSubmaster ]
[ ?markers g_createMarkers ]
)
=> t / nil

Description

Registers any user-defined SKILL check and update functions needed for the application readiness check.

Arguments

t_appName

Application name for which to add user-defined check and update functions.

g_path

Path where the option is in the form.

g_check

Specifies the default value of the user-defined check.

Valid values: t, nil, ""

The empty string "" means, there is no a check available.

g_update

Specifies the default value of update.

Valid values: t, nil

The empty string "" means, there is no update available.

?severity t_severity

Specifies the severity level of any messages generated by the check.

Valid values: "Error", "Warning", "Info"

The default is "Error"

?object t_objectType

Object type to pass to the check and update functions.

Valid values:  "Inst", "Term", "Net","Cellview", or multiple types, for example "Inst Net"

The default is "Inst".

?checkFunction t_checkFunction

Name of the check function.

The default is "", which means that no check function is defined.

?updateFunction t_updateFunction

Name of the update function.

The default is "", which means that no update function is defined.

?configCB t_arcCallBackFunction

The callback function to be called from the Configure column of the Application Readiness Checker form.

The default is "".

?master g_callCheckUpdateMaster

Specifies whether to call check and update once per master cellview.

The default is nil.

?subMaster g_callCheckUpdateSubmaster

Specifies whether to call check and update once per submaster cellview.

The default is nil.

?markers g_createMarkers

Specifies whether to create markers.

The default is t.

Value Returned

t

The specified check and update functions are registered.

nil

The operation failed.

Examples

The example first specifies the callback functions layoutViewNameCheck and layoutViewNameUpdate and then registers them using lxCheckAndUpdateRegister.

The getHierPath function is not defined here. This function returns the hierarchy path as a string.

Define the function layoutViewNameCheck to check that every layout instance uses the layout view and reports if any views such as layout1 and layoutTmp are being used.

procedure(layoutViewNameCheck(srcPaths tgtPaths update)
  let((res msg cv inst pathName)
    res = tconc(nil nil)
    foreach(path tgtPaths
      inst = car(last(path))
      unless(inst~>viewName == "layout"
        if(update then
          master = dbOpenCellViewByType(inst~>libName inst~>cellName "layout")
          when(master
            dbRemasterAnyInst(inst master)
          )
        else
          pathName = getHierPath(path nil)
          sprintf(msg "Layout view name - instance %s \t%s/%s" pathName inst~>cellName inst~>viewName)
          tconc(res list(car(path) msg))
        )
      )
    )
    cdar(res)
  )
)

Define the check and update functions:

procedure(layoutViewNameCheck(srcPaths tgtPaths)
 layoutViewName(srcPaths tgtPaths nil)
)
procedure(layoutViewNameUpdate(srcPaths tgtPaths)
 layoutViewName(srcPaths tgtPaths t)
)

Register the layoutViewNameCheck and layoutViewNameUpdate functions using lxCheckAndUpdateRegister.

lxCheckAndUpdateRegister(
    "Schematic v Layout"                       ; app
         list("Custom" "Layout view name") ; path
       t                                 ; default value for check
  t                                 ; default value for update
  ?object         "Inst"
  ?checkFunction  "layoutViewNameCheck"
  ?updateFunction "layoutViewNameUpdate"
  ?severity       "Error"
  ?markers        t)    

Return to top
 ⠀
X