open access web page header


acsOaBool is a plug-in engine designed to provide boolean operations for the Open Access run time environment. It provides the following boolean operations:

  • Union
  • XOR
  • Minus
  • Intersection
  • Sizing
flow for acsBool



The Reference implementation of Open Access does not include boolean operations - one cannot compute the intersection of poly with the diffusion region below it. Yet boolean operations are fundamental to layout, LVS, DRC and DFM applications. Clearly there is a need for a low cost, efficient, robust and easy-to-use plug in that provides these basic operations.

Plug-In Implementation

We have implemented the boolean as a plug-in that C++ programmers can quickly and easily incorporate into their applications. By inheriting the oaRegionQuery class, one that is constantly used by all applications, we have made it quite straightforward to specify the sets of shapes to booleanize and to retrieve them from the plug-in. The boolean is intended to be invisible to the application.


It is not that difficult to write a boolean operation for simple conditions: small data sets, Manhattan geometry and a limited number of vertices per polygon. It is another matter to code a boolean that supports very large data sets (say 100K+ polygons), all angle data and polygons with 5,000 vertices.


acsOaBool does all that. It is also multi-threaded so it can subdivide the boolean work onto as many additional CPU's as are available.



Sun Ultra Sparc
Solaris 1 64 bit
Sun Opteron
Solaris 10 64 bit
Linux X86
RedHat 3/4 64 bit

OA Main Page API Download Revision History Sample Code

417 Ingalls St., Santa Cruz, CA 95060    Tel (831) 426-6163     Fax 426-2824    email: