care area web page logo


Running Cell Name Searches on Large Files

August 14, 2014
Steve DiBartolomeo
Steve DiBartolomeo


One approach to generating care areas for SRAM inspection is to generate the regions by searching for cells based on their name. This assumes that one knows the name(s) of cells used to construct the SRAMs.


The Flow

The basic flow is shown below:

cell_name1.gif

The layout file is loaded into Qckvu3/CAW. The user then runs the Highlight function with search by name and enters a regular expression that will match all the names of the cells used in creating the SRAM cells.

CAW computes the placements of these cells and stores the thousands (or millions) of care areas boxes in memory. The normal process is to size these up by a small amount to close narrow gaps; then unionize any touching or overlapping care area boxes and finally to size them back down again to the original dimensions. The final output consists of larger and fewer care area boxes.


The Problem!

The customer ran into a problem. The extraction process seemed to hang -- even after several hours it did not complete. Because the layout data could not be sent to Artwork for analysis, we flew to the facility and examined the problem on site.

cell_name2.gif

The Reason

Why was the program getting stuck? It turns out that this was a very large design -- the number of cell placements used to construct the SRAMs was in excess of 200,000,000.

It turns out the main problem is not related to the computations needed to actually extract 200,000,000 cell locations. Instead it is a graphics-related problem. This extraction module is interactive -- it draws each extracted care area box on the display using X-windows.

cell_name3.gif

Trying to send all those draws via X-Windows is the bottleneck.


Solution

It is not possible to turn off the graphics pipeline in CAW for highlighting. However one can do the following which is almost the same thing. Before starting the cell extraction by name, zoom in very tightly so that only a tiny part of the overall layout is shown on the screen.

Then check the box called All Highlights in Home View when selecting the area to process. Even though the display is zoomed in to a tiny region, the full extents of the layout (i.e. the Home View) will be processed. Since almost none of the care areas fall into the region encompassed by the display, only a few care areas will be sent via X-Windows to the display.

cell_name7.png

Results

When the entire home view was displayed the extraction ran for several hours and no results were obtained before the program was terminated by the user. By zooming in to a tiny part of the layout, the Home View extraction completed in 10 minutes and extracted 212,000,000 care areas.


Sizing and Merging

The 212,000,000 care areas take up about 17 GBytes in memory for the next module to process. Fortunately the module that does the sizing and boolean is multi-threaded so it can take advantage of as many cores as your machine can throw at the problem. On this particular system the machine had 8 cores -- it took about 1 hour 10 minutes to perform the sizing and merging. The 212,000,000 care areas were reduced to approximately 12,000 final care areas.


cell_name4.gif