/KlayoutNetworkX

Klayout Routing with NetworkX

Primary LanguagePython

KlayoutNetworkX

Utilizing Klayout and NetworkX to realize a basic router for Klayout

About Klayout KLayout - Your Mask Layout Friend https://www.klayout.de/

About NetworkX Download Package here https://networkx.org/

NetworkX is a Python package for the creation, manipulation, and study of the structure, dynamics, and functions of complex networks.

Following files are in this git

decorator.py
ArrayLabels.lym
NX_ROUTE.lym
Nx_Router.py
TGPcell.lym
tech.lyp
TestingRoute.gds
TestingRouteBuss.gds
TestingRouteBlackBox.gds

Copy networkx python package and decorator.py Download the networkx package here https://networkx.org/

to the following location of your Klayout Installation in Windows C:\Users\your_path\AppData\Roaming\KLayout\lib\python3.7

For the Python and Ruby files you will need to install at these locations

Python goes into C:\Users\your_path\KLayout\pymacros
NX_ROUTE.lym
Nx_Router.py

Ruby goes into C:\Users\your_path\KLayout\macros
ArrayLabels.lym
TGPcell.lym

You will need to install Matthias great demo pdk and copy it too C:\Users\your_path\KLayout\salt Copy the tech.lyp file to C:\Users\your_path\KLayout\salt\si4all

Once all copied load Klayout if every thing is in place load the GDS file TestingRoute.gds, on the Macro menu you should see the following Macros ---> Create Label of Pins ---> Load Router

Create Label of Pins allows you to create array's of Text Pins in the layout Load Router loads the Router and puts a Toolbar selection called NxRouter The Pcell uses the 1000 marking layer as Pin targets , feel free to move the Pin's around to test .

To route the demo TestingRoute.gds click the NxRouter in the toolbar

before

after

blackbox

blackbox2