Area Fill - Area and Density Calculator

Revision History

This page lists the changes made to Area Fill -- enhancements and bug fixes.

Version 1.63 January 31,2017

Threads Allowed - Restriction Update

Changed a restriction imposed by the areafill manager areafillmgr64 with respect to the maximum number of threads it allowed to be passed to the areafill engines. Previously if the user requested more than 4 threads it quietly set the thread number to 4. This same behavior is preserved except that the maximum number of threads is 8.
Should concurrent explosion be allowed in future releases (this would require a new explosion model) this restriction could be removed altogether.

Version 1.62a January 17,2017

Memory Leak

Customer reported memory leak while running the tool.
Verified that potential memory leaks reported by customer in areafill64 engine were in fact present, and fixed the offending leaks.
In addition, valgrind was used to validate these fixes - In a moderate run, resulting in 17 GB of allocations only 288 bytes were lost (in the licensing module).

Version 1.62 January 9,2017

Fix empty progress field

The interprocess communication between the engine (areafill64) and the manager (areafillmgr64) was broken as a result of the wrong token being passed from the engine to the manager. This resulted in the progress field being empty when running areafillmgr64. This was fixed.
The Windows version does not make use of a manager, hence v1.61 for Windows is comparable to v1.62 for Windows.

Version 1.61 January 4,2017

Fix data drop issue

Fixed a bug related to the use of the -step:N command line option. Features larger than the tile size were dropped for N greater than 1.

WAN License

Updated licensing to check for WAN Enabler

Version 1.59 December 7, 2016

Uses BoolDll library

The area fill engine was modified so that the Boolean functions that were previously embedded into the areafill engine are now drawn on from BoolDll library.

Boolean fix

The current Boolean libraries fixed an issue that resulted in a program hang for a data set with a rectangular mesh rendered in a non-Manhattan way.

Version 1.56 January 11, 2011

Licensing issue

The new Areafill Manager available with this package tries to avoid the licensing contention by staggering the launch of child processes.

Version 1.54 Nov 4, 2010

AreaFill Windows 32 bit

Updated the underlying QISLIB to support OASIS files where the END record is not properly padded out to 256 bytes. (reported by KLA-Tencor Prolith division)

Version 1.532 July 27, 2010

AreaFill Multi-Core Manager (areafillmgr64) v1.2

New convenience feature (-lscan) to print a list of top cell names and layers in an input GDSII/OASIS file.

Version 1.531 July 22, 2010

AreaFill Multi-Core Manager

Fixed an error in the formatter that caused the areafill output to be incompatible with afill2tiff.

Version 1.53 July 19, 2010

New command line option -step

New performance tuning parameter -step:. Can be tuned to achieve optimal performance especially while processing numerous small tiles in an OASIS file.

New AreaFill Multi-Core Manager (areafillmgr64)

Divides the job amongst multiple AreaFill engines and manages their execution to make optimal use of a multi-core computational environment.
All command-line arguments except '-ncores:' and '-window:' are passed on to the areafill engine.
The '-tile:' command line argument while optional for AreaFill Engine, is mandatory for AreaFill Manager.
N AreaFill licenses would be required If one wishes to achieve parallelism of N cores
(N = numProcesses * numThreads/process)
Please refer to the Manual (areafillmgr_manual.pdf) for usage.

Version 1.52 Feb 4, 2010

New command line option -directional

New command-line option/feature '-directional' for reporting perimeter information along the most dominant direction of data.

This version is built with the latest QisLib v2.68 incorporating load memory optimization.

Version 1.51 January 15, 2010

Dominant Direction update

Areafill has a new feature to compute an angle of primary orientation of feature edges in each window, and then compute the projection onto X1, Y1 - these are the lines parallel and orthogonal to these orientation angles. The program is also able to process the orientation into a 256 color bitmap representation and the projections onto X1 and Y1 be processed just as the projections onto X and Y currently are.

Version 1.48 November 30, 2009

OASIS support

AreaFill supports OASIS Files and Compressed GDSII Files in addition to GDSII files.


The Licensing Environment variable ARTWORK_LICENSE_FILE must be appropriately set.

AREF Upgrades

OASIS and GDSII Aref Optimization is finalized.
An AREF bug was detected in the OASIS module and fixed.

Version 1.47 October 29, 2009

AREF related problem

A bug was found in the Aref (Array References) optimization module because of which processing times for a subset of an Aref was no better than the Aref as a whole. The bug affected GDSII and OASIS files alike.
This bug is evident when one tries to chop a huge array into 'n' pieces (windows) and process them one piece at a time.
The total output time would be n x (the time for processing the entire array once).
This bug has been fixed. For the scenario mentioned above, the processing times per piece would be significantly lower than AreaFill v1.46, v1.45.

Version 1.46 September 23, 2009

Percentage report

The 'extents (%)' column of the default output (when +nclip is used) has a precision of 3 decimal places. Previously, these values were integral (0 decimal places)

Version 1.45 Windows July 30, 2009

64 bit version with QISLIB support

This version includes the latest Qislib engine and is available in 32 and 64 bit.

Version 1.45 June 4, 2009

Missing features

This version fixes the 'Missing features' issue which was found to be specific to Arrays for GDSII input files.

Version 1.44 March 10, 2009

Percentage Vs. number of tiles processed

This version prints out a percentage instead of the number of tiles processed.
We have run tests to verify that the speed of printing out 100 percentages is the same as redirecting stdout to /dev/null.

Multi Threading blocking information

Regarding the blocking for multithread, each thread is waiting for another thread to explode and flatten the cell array data. This explosion process is not multithread, only the area calculation is multithread.
To improve the processing speed, shift more area calculation per tile and less data explosion overhead per tile.

An alternate solution for small-medium size files, run multiple AreaFill on the same file at the same time. Namely, instead of running 1 AreaFill at 16 threads, try 4 AreaFills with 4 threads per AreaFill.

Version 1.43 Windows November 17, 2007

Wrong report

A problem was fixed in the Windows version. 1.40 on Linux and Solaris have no problems.

Version 1.40 March 7, 2007

QIS Library usage

This is the first version that uses the QIS Library in AreaFill for faster processing.

Added perimeter calculations

Added perimeter calculations.

New XML output support

New XML output support.

Percentage Output precision increased

More precisions in the output of the percentage description per Skyworks request.

New program afill2tiff

New program afill2tiff (UNIX and Linux only).

Version 1.18 August 3, 2006

Improved Array Explosion

The routine that explodes arrays has been rewritten to handle extremely large AREFs by precomputing which array elements fall into the window under consideration. For a 50,000 x 50,000 array, the processing time was reduced by 360X due to this precomputation.

Explosion Improvements

Additional algorithmic improvements were made to the exploder resulting in a 3X improvement in throughput for dense files.

Version 1.15 June 19, 2006

Output File Formatting Corrected

Corrected an error in the tiling output text where data fields would run into each other.

Automatic Partioning made Default

automatic partioning of the database is made the default when no tiling arguments are specified on the command line. Previous to this, the default was no automatic partioning which resulted in slow execution times for larger files. (automatic partitioning command line argument is: +nclip:1,1)

Version 1.14 June 16, 2006

Output Text File

Output is now directed to the specified file. Previously always went out to the log file.

Version 1.13 June 15, 2006

Add Tiling Option

Adds a tiling option so that the use can specify a tile (X,Y) which will be tiled across the extents of the selected window. The output is saved in tabular format.

Release Linux 32 bit version

released as a Linux 32 bit binary. Tested on Red Hat Enterprise 4 but should run on other versions of Red Hat Linux.

Download   |   Installation   |   Documentation   |   Command Line Syntax   |   Revision History  

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