Artwork has written a large number of stand alone rasterizers over the last 25 years for different input formats. We are now integrating these different rasterizers into a single library based platform. Various functions are isolated into their own extension libraries. Once the user determines which functions are needed, they can be licensed and accessed through their own API.
This modular approach enables Artwork to optimize the functions independently yet have each function available for different formats.
The QisMGerberPS library is enables a user to import Gerber data into the QisMLib database and then take advantage of the powerful manipulation operations such as sizing, annotation and rasterization.
Figure 1 - block diagram of QisMGerberPS data flow.
This module reads the input Gerber file and performs a number of data conditioning and operations to convert it into a GDSII stream file. (This is required since QisMLib currently handles GDSII input - however in the future we will be able to directly convert the Gerber into Artwork's internal DB.)
Paint and Scratch
Most complex Gerber files make extensive use of paint and scratch layers -- a concept which is not available in a GDSII like database. Therefore on additional function that 274xsplit does when converting the data to GDSII is to aggregate all polygons belonging to a paint or scratch group into a cell. The cell's name tells the subsequent modules whether the polygons represent paint or scratch operations and the order of the operation.
For rasterization, this is a much more efficient and fast approach than attempting to Booleanize all the paint and scratch layers into a single positive layer.
2. Etch Compensation
Very often a requirement is to perform edge compensation - i.e. to take the CAD data and offset the edges of traces, areas and flashes by a set value in order to compensate for over or under etching of the metalization.
This step, if needed is handled by a utility engine called SNPUtil. Edge compensation can be a very compute intensive operation but the SNPUtil is multi-threaded so throughput can be improved by use of many separate threads - each running on its own logical CPU.
Note: Edge compensation is not the same as distortion compensation (caused by changes in the substrate width or length due to processing). Distortion compensation is handled by a different extension library - QisMCorrX or QisMRTCR.
Once 274xsplit is complete, the GDSII file it produced is normally loaded back into QisMLib's internal database so that it can then be rasterized using the QisMRaster extension library.