Guidelines for Optimizing Abstract Generator Performance
Some abstract generation functions can adversely affect the performance of the tool and should be run only when necessary. Keep the following guidelines in mind while using the standalone Abstract Generator interface:
- Do not extract signal and power nets for blocks or IO cells unless you are sure you need to do so. For example, you must extract signal nets if you want to perform antenna extraction, while you might need to extract power nets if you want to create ring pins.
-
If you do need to extract signal or power nets,
- Do not create pins on a given layer unless it is necessary. For example, do not create pins on polysilicon, diffusion, or contact layers, except where there are dominant cut-layer spacings.
-
Define the
Polylayer asPoly and OxideandOxidelayer asOxide andnot Polyin the geometry specifications under the Extract signal nets and Extract power nets sections in the Extract step. - You may not require the Maximum depth value to be 32 as per your design scenario under the Extract Limitations section in the Extract step. Limit the extraction by the hierarchy depth.
- Ensure in the Abstract step that not all of the extracted geometry is turned into pins. If you do not do this, Abstract Generator must cut around each pin, which increases the time taken to generate the blockage model. You can avoid this for power pins by creating ring or boundary pins and for signal pins by creating boundary pins.
- Turn off the Fracture pins and Fracture blockages options if you observe that Abstract Generator is taking a lot of time in the Abstract step.
- Do not create detailed blockages on contact or via layers for large blocks. The large number of contact obstructions slows down the Abstract step.
- Do not run grid analysis for blocks or IO cells.
- If blocks or IO cells have pins or obstructions with 45-degree shapes, you must either ensure that they are removed from the abstract (for example, if they are not in pins, then the cover blockage will hide them) or consider increasing the stair-step width.
- If pins and extract cellviews are not required by the user, the QuickAbstract option can be enabled to improve the performance of Abstract Generator by 30 percent on small- and mid-size designs. When the QuickAbstract option is set to true, then Abstract Generator will not generate the intermediate cellviews that is Pin and Extract cellviews. Only the Abstract cellview will be generated. By default, the QuickAbstract option is set to false.
-
Take care when creating geometry specifications to act on pins on the
prBoundarylayer. This layer can feature thousands of shapes and an incorrect geometry specification can cause these to be merged into a single rectangle for each pin. -
Ensure to correctly define the Gate/Drain region under the Antenna tab in the Abstract step for antenna calculations. If the Use different layer assignments for antenna calculations only option is turned on, define the
Polylayer asPolyandOxidelayer asOxide andnot Polyin the geometry specifications. - Limit the Geometry search depth to a lower value if required, under the Text tab in the Pins step.
-
If Abstract Generator is running out of memory while extracting nets on large designs and you get the following message:
*WARNING* dbDeleteShape: A memory allocation for 1073741824 bytes failed. The process heap is 511MB, and OpenAccess is using 1405MB. The available system memory is 991MB, and physical system memory is 7857MB.
Set the following option in the Abstract Generator console or script files.
absSetOption("OptimizeBigDesignMemory" "true")
This option takes care of memory issues that arise on the big block designs in Abstract Generator. By default, this option is set tofalse. To optimize the memory for big designs, set this option totrue. Also, ensure that the abstract executable is run in 64-bit mode. -
If extraction is aborted because of an excessive number of shapes while extracting the power nets on large designs, increase the limit of shapes to be extracted using the following option. The default value is
10000.
absSetOption( "ExtractShapeLimit" "150000")
Related Topics
Pins Step in Standalone Abstract Generation
Extract Step in Standalone Abstract Generation
Abstract Step in Standalone Abstract Generation
Return to top