what versions of python and python packages are needed to get skywater and gf180mcu PDK work

I've run into a major wall as a new klayout user.

I built version 30.2 from source on Rocky Linux 8, using python 3.12. For both the skywater and gf180mcu PDKs, I get error messages that make it look like there are incompatibilities between the PDKs and the Python packages kfactory and/or gdsfactory. I get error messages for most pcells when I try to instantiate them. I installed the salt packages for both in klayout. What is going on here? Examples are below. Thanks. --Curt.

Like for skywater, when instantiating pcell "nfet":
ERROR: AttributeError: module 'kfactory.kcell' has no attribute '_get_default_kcl' in PCellDeclaration.produce
/home/cate/Downloads/klayout/salt/Efabless_sky130/tech/sky130/python/cells/pdk.py:32
/home/cate/Downloads/klayout/salt/Efabless_sky130/tech/sky130/python/cells/draw_fet.py:550
/home/cate/Downloads/klayout/salt/Efabless_sky130/tech/sky130/python/cells/fet.py:261
/home/cate/Downloads/klayout/bin-release/pymod/klayout/db/pcell_declaration_helper.py:274

or for gf180mcu, when instantiating "cap_pmos"
ERROR: TypeError: 'builtin_function_or_method' object is not subscriptable in PCellDeclaration.produce
/home/cate/Downloads/klayout/salt/gf180mcu/pymacros/cells/draw_cap_mos.py:62
/home/cate/.local/lib/python3.12/site-packages/kfactory/decorators.py:383
/home/cate/.local/lib/python3.12/site-packages/cachetools/_cached.py:173
/home/cate/.local/lib/python3.12/site-packages/kfactory/decorators.py:432
/home/cate/.local/lib/python3.12/site-packages/kfactory/decorators.py:458
/home/cate/.local/lib/python3.12/site-packages/kfactory/layout.py:1003
/home/cate/Downloads/klayout/salt/gf180mcu/pymacros/cells/draw_cap_mos.py:193
/home/cate/Downloads/klayout/salt/gf180mcu/pymacros/cells/cap_mos.py:182
/home/cate/Downloads/klayout/bin-release/pymod/klayout/db/pcell_declaration_helper.py:274

Comments

  • even using volare to get the very latest gf180mcu PDK version, I still see the pcells throwing python errors:

    ERROR: TypeError: 'builtin_function_or_method' object is not subscriptable in PCellDeclaration.produce
    /home/cate/.volare/volare/gf180mcu/versions/aa683509e2e20358805fcbc3407776a1c890c4e6/gf180mcuA/libs.tech/klayout/tech/pymacros/cells/draw_cap_mos.py:68
    /home/cate/.local/lib/python3.12/site-packages/kfactory/decorators.py:383
    /home/cate/.local/lib/python3.12/site-packages/cachetools/_cached.py:173
    /home/cate/.local/lib/python3.12/site-packages/kfactory/decorators.py:432
    /home/cate/.local/lib/python3.12/site-packages/kfactory/decorators.py:458
    /home/cate/.local/lib/python3.12/site-packages/kfactory/layout.py:1003
    /home/cate/.volare/volare/gf180mcu/versions/aa683509e2e20358805fcbc3407776a1c890c4e6/gf180mcuA/libs.tech/klayout/tech/pymacros/cells/draw_cap_mos.py:221
    /home/cate/.volare/volare/gf180mcu/versions/aa683509e2e20358805fcbc3407776a1c890c4e6/gf180mcuA/libs.tech/klayout/tech/pymacros/cells/cap_mos.py:182
    /home/cate/Downloads/klayout/bin-release/pymod/klayout/db/pcell_declaration_helper.py:274

    ERROR: AttributeError: 'Cell' object has no attribute 'add_array' in PCellDeclaration.produce
    /home/cate/.local/lib/python3.12/site-packages/kfactory/kcell.py:422
    /home/cate/.local/lib/python3.12/site-packages/kfactory/kcell.py:710
    /home/cate/.volare/volare/gf180mcu/versions/aa683509e2e20358805fcbc3407776a1c890c4e6/gf180mcuA/libs.tech/klayout/tech/pymacros/cells/draw_fet.py:1316
    /home/cate/.volare/volare/gf180mcu/versions/aa683509e2e20358805fcbc3407776a1c890c4e6/gf180mcuA/libs.tech/klayout/tech/pymacros/cells/fet.py:167
    /home/cate/Downloads/klayout/bin-release/pymod/klayout/db/pcell_declaration_helper.py:274

  • Does the install bundle not state which
    dependencies and versions?

    If not, then you should put that question to
    the maintainers.

    However the error I see, looks more like
    maybe a PCell:code_pile sync / content
    problem, it seems a bit of code has asked
    for a nonexistent feature. Is the new code
    bad, is the PCell stale (or the other way
    'round)?

    Maybe take another cut at it from a blank
    slate and let the compile dependency checks
    / fails lead you, without the existing "clutter
    base"? Pull libraries at the same vintage, etc.

  • Hi @ckarnstedt,

    this isn't the right place for this question, as this forum is not about the open PDKs.

    From what I know, these open PDKs currently need GDSFactory 7.x and will not work with later versions. The KLayout PCells apparently are in "low maintenance mode" and AFAIK there is work ongoing to fix the GDSFactory issue.

    The best place to look for support is the FOSSi chat: https://fossi-chat.org. There is a room for open PDKs.

    Matthias

Sign In or Register to comment.