Introduction

QisMLib is a GDSII/OASIS library that enables a client to display and manipulate GDSII/OASIS data using a simple set of function calls. The M version (for Multi-Threaded) is the result of several years of work; the "explosion" of data is now thread based and can take advantage of many processor cores sharing the same pool of memory.

The Front End

1. The scan routines open the layout file, scan it and build an array of quad trees. The load routine moves the GDSII entity data from disk into memory for faster access.

2. An array of quad trees are stored in memory; these aid the exploder to navigate efficiently through the hierarchy for a given window. The user can control the granularity of the quad trees to trade memory vs. performance.

3. The entity data is stored in RAM in a compressed format to reduce the memory footprint. Optionally, it can be left on disk but this is not recommended since disk access (even for SSDs) is much slower than memory access.

4. The exploder is now thread safe. The user can specify how many exploder threads should run. (Up to the max limited by the license.) This greatly increases throughput when the layout file is large and many windows have to be extracted.

5. Any boundaries (or paths) that cross the requested window are placed in a polygon buffer. Paths can be converted into boundaries. The pointer to the polygon buffer is accessed by the calling application via a callback function.

Organization and API

The QisMLib has its API's organized into groups.

Click on any of the API class boxes in the illustration to get details on specific API sets.

Specific Applications

Many applications in metrology require extraction of hundreds or thousands of small windows from a very large layout file. We've created a "wrapper" using the QisLib_MT library (and the Boolean and Raster libraries) that does this very efficiently with minimal programming effort.

Equipment such as FIBs used for active circuit analysis and modification benefit from being able to view the CAD data and trace out the net connections. A specialized library, QisMNetrace, can be tightly integrated with QisMLib to provide both display functions and real time net tracing functions.