IntroductionQFract reads either a GDSII/OASIS file as its input, selects all of the data or a window of the data and extracts it into memory. The extracted data is flattened, clipped to the window extents and fractured into trapezoids. The calling program can then take these trapezoids and use them for various analyses. QFract is supplied as a library (shared object) so that it can be utilized by a calling program; however if a customer needs it as an executable, Artwork can supply it with a calling program "wrapper" to output the data as GDSII or even in other formats. |
QFRACT ModulesThe QFract library is built using the following modules:
|
Fractured Data PropertiesQFract will unionize and fracture the selected window into a mininum number of rectangles and trapezoids (in the case of non-Manhattan data), and provide the results as a pointer to a list of polygons (4 vertex: either rectangle or trapezoid) into memory along with a pointer to the start of data. Output FormatThe output format is straightforward and easy for the calling application to use. For each polygon, whether it is a trapezoid or rectangle the following integers will be output: The layer and datatype attributes are integers (typically these will range from 0 to 1024). Each vertex is a pair of integer coordinates. The original data coordinates from the GDSII file are maintained. Each polygon will use 40 Bytes in memory.The output polygons will be passed to the user via a CQisBoundary struct: typedef struct { const char* StructName; const CVectHandle* Handle; unsigned short Layer; unsigned short DataType; unsigned int NumVert; CXYCoords XYCoords; }CQisBoundary; XYCoords is an array of coordinates which holds the vertices of an output polygon. StructName and Handle are not applicable for QFract_GetFracture purpose and can be ignored. |