Welcome to Quilt - philstopford/Quilt_GPL GitHub Wiki
Quilt is a production-proven, high performance pattern generator that writes to hierarchical GDSII and Oasis files. The tool also works with the DOE system in Variance. It is available on Windows, macOS and Linux, running on top of .NET Core 3.1
Extensive documentation is available in the repository and available from the help menu when using the releases. 'Standalone' releases bundle all required libraries; other packages will require .NET Core 3.1 to be installed for the tool to launch (macOS is special here - those builds have the required code always integrated).
A quilt is an array of patterns. Each pattern consist of individual pattern elements. Each pattern in the quilt is unique. The quilt represents a factorial across all variations of the pattern elements that the user has configured. The patterns are placed in a uniform grid, with the interval in each axis coming from the largest pattern.
You can view input, as above, which show the individual components of each pattern element (color-coded) or the final result:
Quilt offers multiple primitives (box, L, T, X, U, and S) as well as text (for contact annotation, enabling electrical analysis in offline tools).
For each of X and Y, you can specify offsets, increments and steps. For patterns with more than one pattern element, you can specify relative positioning using the drop-down.
The relative positioning system can also use subshapes' components within the reference pattern element, as shown below.
Rotation, including relative rotation, is available:
For relative rotation, the pivot point from the reference element can be used, if desired:
Pattern elements can also be flipped, and the reference position responds accordingly:
You can also configure arrays within the pattern element:
Array definitions can be referenced across pattern elements.
Arrays are built after any rotation of the element:
and can also be rotated themselves:
Relative array rotations can be defined, to non-array or array elements, with the ability to use the reference element's pivot point if desired:
Navigating around the pattern, you can simply drag in the viewport, or type in specific X,Y or pattern number values. The output (to GDSII or Oasis) is hierarchical with the pattern view being fully consistent with the output to disk.