Product Documentation
Virtuoso Floorplanner User Guide
Product Version IC23.1, November 2023

Area Estimation Function Registration

The area estimation framework in Floorplanner lets you analyze an acceptable area utilization percentage and derive the size of a rectangular area boundary for a cellview or virtual hierarchy. To do this, you define your own area estimation function. You can directly type the area estimation function in the CIW or define it in the .cdsinit file. The area estimator function will be honored only when it is registered. Use the leRegAreaEstimator SKILL function to register a new area estimation function. You can register an area estimator function without any parameter, with a specific alias and parameter name, or with different parameters in the SKILL function. When Virtuoso is launched, these area estimation functions are automatically registered.

The leRegAreaEstimator function supports deferred and direct modes:.

Mode Description

deferred

In this mode, the information required for area estimator to run is present and the area value can be viewed. For example, when the input is a schematic ID, the area estimator traverses the entire hierarchy to output an area. The function is applied only when all the required information is available. In this example, the layout instances would be available only when the Generate All From Source command is run, and after that the area estimator runs to calculate the area.

Register the function in "deferred" mode as shown below.

leRegAreaEstimator(
    'myFunction
        "simpleAreaEst"
        '('cellView)
        '((contactArea 1.0))
        "deferred"
        )

direct

In this mode, the area estimation function is applied after all the other related information is available. This ensures the estimated area is accurate as the area estimation calculation considers the related area values to derive the final value. For example, when the input is a physical layout cellview ID, area estimation is deferred until the Generate All From Source command is run and the physical hierarchy is available. This ensures that the area estimation is performed using the actual physical values.

Register the function in "direct" mode as shown below.

leRegAreaEstimator(
    'myFunction
        "simpleAreaEst"
        '('cellView)
        '((contactArea 1.0))
        "direct"
        )

Examples

In the following example, the areaEstUsingLayoutPRBoundary area estimator function is registered with alias estAreaUsingLayoutPR, cellView object type, parameter multFactor with default value 10, and the run mode set to direct.

leRegAreaEstimator('areaEstUsingLayoutPRBoundary 
        "estAreaUsingLayoutPR"
'('cellView)
'((multFactor 10))
"direct"
);

To register an area estimator function with a specific alias and parameter name:

In the CIW, type the command given below to register the areaEstSchematic area estimator function.

Here, the areaEstSchematic area estimator function is registered with alias stdCellAreaEst, the object type is cellView, and the parameter is Mode, which is of the type list.

leRegAreaEstimator('areaEstSchematic
        "cellAreaEst"
'('cellView)
'(
(Library "myLib")
(Cell "myCell")
(View "layout")
(Mode '("Row1" "Row2" "Row3")) // list support
(spacing 1.2)
(X_Axis 1.08)
(Y_Axis 1.632)
)
"direct")

To register an area estimator function without any parameter:

In the CIW, type the command given below to register areaEstUsingLayoutBBox area estimator function without any parameter.

leRegAreaEstimator('areaEstUsingLayoutBBox 
                   "estAreaUsingLayoutBBox" 
                   '('cellView) 
                   nil 
                   "direct"
        );

To register an area estimator function by defining different parameters in the SKILL function:

In the CIW, type the command given below to define the parameter list in the area estimator SKILL function and register it through leRegAreaEstimator([l_parameterNameValuePairs];):

leRegAreaEstimator('areaEstUsingLayoutPRBoundary
     "estAreaUsingLayoutPR"
     '('cellView)
     '((multFactor 10))
     "direct"
     );
=> t | nil

To register an area estimator function with the cluster object type:

In the CIW, type the command given below to first define the myClusterAreaEstimator area estimator function, and then register with the cluster object type.

procedure(myClusterAreaEstimator(clusterId 
   @optional (factor 10.0) (num 4) (text       
   "myFunc"))
100
)
leRegAreaEstimator('myClusterAreaEstimator 
     "forCluster" 
     '('cluster) 
     '((factor 10.0) (num 4) (text  
      "myFunc")) 
     "direct"
     )

Use the following utility functions to display registered area estimators and to unregister area estimation functions.

Related Topics

leRegAreaEstimator

Area Estimation using the Configure Physical Hierarchy Window

Area Estimation using the Create Cluster Boundary Form

Adding an Area Estimator Function for Layout Generation


Return to top
 ⠀
X