open_pdks icon indicating copy to clipboard operation
open_pdks copied to clipboard

incorrect path to klayout gf180mcu tech files for interactive usage

Open proppy opened this issue 2 years ago • 2 comments

per https://www.klayout.de/doc/about/technology_manager.html#:~:text=The%20technology%20folder%20may%20have%20subfolders%20to%20hold%20library%20files%2C%20macros%2C%20DRC%20runsets%2C%20LEF%20files%20and%20other%20pieces%20of%20the%20technology%20package

Except for the default technology, technologies are kept in technology folders in KLayout's application path. They are read from subfolders from the "tech" directories. The technology definition itself is held in a file with extension ".lyt". The technology folder may have subfolders to hold library files, macros, DRC runsets, LEF files and other pieces of the technology package.

it seems that klayout expect the following directory hierarchy to enable interactive usage:

tech/
tech/pdkname.lyt
tech/pdkname.lyp
tech/pymacros/pdkname.lym # for autoload
tech/pymacros/cells # as of current lym file
tech/drc
tech/lvs

However https://github.com/RTimothyEdwards/open_pdks/blob/master/sky130/Makefile.in#L1008-L1012 and https://github.com/RTimothyEdwards/open_pdks/blob/master/gf180mcu/Makefile.in#L660-L669 currently stage things differently:

tech/
tech/pdkname.lyt
tech/pdkname.lyp
tech/pdkname.lym # doesn't autoload
pymacros/cells # not relative to lym
drc # override default base tech
lvs # override default base tech

It would be nice to re-organize those to follow klayout convention without breaking OpenLane and other tools expectation about the current layout (maybe a transition release with symlinks would be nice?)

proppy avatar Feb 02 '23 12:02 proppy

@kareefardi : Can you please check how making this structural change to the directories in klayout affects the running of openlane?

RTimothyEdwards avatar Feb 02 '23 14:02 RTimothyEdwards

@RTimothyEdwards looking at the OpenLane code it seems that it does relies exclusively on KLAYOUT_TECH to resolve the tech files from klayout (assuming tcl forward its $::env to python invocation when not setting --tech-file explicitly): https://github.com/The-OpenROAD-Project/OpenLane/blob/ce916510de89a037889e06ab16c00c4101f77d2f/scripts/tcl_commands/klayout.tcl#L38 https://github.com/The-OpenROAD-Project/OpenLane/blob/09e2095f9335981ec02c58b2f4d06f089448ed9e/scripts/klayout/open_design.py#L37-L38 https://github.com/The-OpenROAD-Project/OpenLane/blob/d8e399d55dfaac13048c84987ecf71f2086c5175/scripts/klayout/screenshot_layout.py#L36-L37 https://github.com/The-OpenROAD-Project/OpenLane/blob/ce916510de89a037889e06ab16c00c4101f77d2f/scripts/klayout/stream_out.py#L74-L75

proppy avatar Feb 15 '23 14:02 proppy