Hands-on with KLayout: Design rule checks and layout to netlist tools
Speaker: Matthias Köfferlein
Other information: KLayout project (www.klayout.org)
This tutorial consists of two parts: a tutorial for the DRC feature of KLayout and another one for the new layout-to-netlist feature. While the DRC tutorial covers mature functionality available since a few years now, the layout-to-netlist feature is brand new and still under development. The tuturial for this part will show the use cases that are available already and prepares the basis for the next level of verification support.
Both tutorials are based on a virtual technology with a design manual document and sample layouts. You'll find the samples, scripts and design manual on GitHub at
To work through the DRC tutorial part you will need a standard KLayout installation (version 0.25.x - 0.25.8 is recommended). Binary distributions are available for a variety of systems here:
For the layout-to-netlist tutorial, you'll need a build for the development branch (master) from https://github.com/klayout/klayout. Prebuild binaries can be found here along with current documentation links:
For the tutorial you need the sample files. Get them from GitHub:
or download as .zip an unpack.
Start KLayout and include the DRC files, so you can use them easily:
- Use Tools/Macro Development IDE
- Select the "DRC" page
- Right-click on the DRC column, chose "Add location"
- Navigate to the "drc" folder and press Ok
- Double-click "drc - NCC1701" it
For trying the DRC, a layout with a lot of DRC errors has been provided. Open (or drag and drop)
You can also load (or drag and drop) the layer properties file from
Run the DRC by using the "Run" button from the macro development IDE.
When the DRC has finished, the Marker Browser will open. For a better visibility of the markers chose "Configure" and use these settings right.
- When you close the Marker Browser, you can bring it up again using "Tools/Marker Browser"
- You can run a DRC from the menu too using "Tools/DRC/..." if you don't need debugging