Beacon is a KLayout macro that adds constraint management for the design of analog integrated circuits.
-
Clone this repo
-
Open KLayout and the Macro Development IDE via Macros → Macro Development
-
On the left side, select the Python tab
-
Right-click in the file tree on the left and select Add Location
-
Select the directory
pymacros/Constraint/GUIfrom the cloned repo
In KLayout, select Macros → Constraint Manager.
The Constraint Manager lists all constraints and allows to create new constraints and verify existing ones.
In the Constraint Manager, click Add to create a new constraint. This opens the Constraint Creation Dialog, where you can select the constraint type.
Currently supported constraint types:
- Alignment: Left/right/top/bottom/v-center/h-center alignment of two or more instances with respect to an axis
- Global Orientation: Orientation of one or more instances in the top cell
- Matched Orientation: The orientation of two or more instances should match
- Self Symmetry: A single instance should be placed symmetrically to a horizontal or vertical axis
- Symmetry: Exactly two instances should be placed symmetrically to a horizontal or vertical axis
The axes of alignment and symmetry constraints can be reused.
In the Constraint Manager you can select individual constraints or instances to highlight them in KLayout. The axes of alignment or symmetry constraints are shown as well.
To verify the constraints, click Check in the Constraint Manager. This will open the bultin Marker Database Browser to show the results. Unfulfilled constraints are sorted by category. Individual instances can be selected to get more information on the violation and to highlight their location in the layout.