Qckvu3 Web Page Header

Layer and Cell Filtering

If you have to open and view a very large GDSII or OASIS files, you know that the larger the file the more time it takes to open and the slower pan and zoom operations become. In many cases, a layout file will contain more data than you need (or want) to deal with.


Layer/Datatype Filtering

For example, if you are looking at metal connectivity you might not need to see the diffusion or contact layers. Or a file that has bee prepared for output will have new layers or datatypes containing only dummy metal fill - these layers may not be of interest to you.

Filtering out layers while opening is different than merely turning layers off on the display.

If a input layer filter is used, any entities on that layer (or a layer:datatype combination) that are filtered do not enter the database (or its representation in memory) at all. This has a double effect: the quad tree does not need to contain the entity and the entity geometry itself does not get loaded.


Cell Filtering

Cell filtering during input can have a similar beneficial effect. Sometimes we encounter dummy metal fill that cannot be ignored based on layer filtering but which is contained in hundreds or even thousands of cells. If a consistent naming convention is used for these dummy metal cells, one can use a wildcard or regular expression to instruct Qckvu3 that all such cells matching the expression should be ignored.

The cell filter is smart - if you "ignore" a cell, any SREF or AREFs to that cell (located in other higher level cells) are also removed.

Again, the net result is a smaller memory footprint, faster opening and faster pan and zoom operations.


A Priori Knowledge Required

Of course, to use a filter at opening, one must be able to specify which layers/datatypes or cells should be blocked and to do so requires that one know the layer numbers and cell names prior to opening the layout file. In many cases the operator knows this information -- if not, there is a fast utility that can scan the file and return a list of layers containing data and a list of all the cell names in the database.


The User Interface

To specify input filters use the file pulldown and select GDSII/OASIS Open Filters ...

The filters are accessed from the File pull down. Click on GDSII/OASIS Open Filters ... to open the filter dialog. Remember this must be done before opening a file. Setting these values after opening a file has no effect.




The Open Filter Dialog Box

The GDSII/OASIS Open Filter Dialog

The dialog is divided into five control sections.

1) Layer Filter

2) Cell Filter

3) Load DB to RAM Setting

4) Items per Quad Setting

5) Reference Pruning Section



Layer Filtering

you can specify layers to ignore

Imagine that you wish to ignore layers on which you know there is only dummy metal on data type 20. You can list each layer/datatype pair, separating them with commas.



Specifying Layers to Pass

you can specify layers to pass

If you only want to view a few layers, it may be much easier to specify those to pass (as opposed to ignore.)



Cell Filtering Using Regular Expression

cell filtering

A regular expression is a very powerful way to specify names of cells to ignore. Here is a short example. You know that in the large design you want to open that there are lots of dummy metal cells and that their names all end in _DMx. You can knock out all such cells with a single line:

^.*_DMx$

Let's say that you also want to remove all cells containing large via arrays. It turns out that all such cell names start with the characters $$via. You can knock all of these out with a single regular expression:

^\$\$via.*$

Placing both of these expressions in your filter will knock out a whole lot of unwanted data and greatly reduce the size of the file you have to deal with.