greetings! How can i configure the sky130 pdk in t...
# lvs
m
greetings! How can i configure the sky130 pdk in the klayout for layout design of the simulated circuit from the xschem? any resources
l
Hi @Mohammed Zeeshan, there are several ways to do this: 1. Install the Efabless_sky130 KLayout package (Tools->Manage Packages->Install New Packages) Afterwards you will be able to enable the sky130 technology. 2. Install the PDK using open_pdks or volare. Set
KLAYOUT_PATH
to
$PDK_ROOT/$PDK/libs.tech/klayout/
and start KLayout (
KLAYOUT_PATH=$PDK_ROOT/$PDK/libs.tech/klayout klayout -e
) If you use any of these two methods you still need to install gdsfactory system-wide to be able to use the PCells. More information here: https://github.com/efabless/sky130_klayout_pdk/tree/main The third option is to use Nix. This option will also install gdsfactory for you. 3. Install Nix, you can follow this guide from CACE: https://cace.readthedocs.io/en/latest/getting_started/common/nix_installation/index.html The nix-eda repository hosts a variety of tools: https://github.com/efabless/nix-eda/tree/main The following command will start KLayout in editable mode:
nix run github:efabless/nix-eda#klayout-gdsfactory -- -e
Finally, all you have to do is create a new layout and import a spice netlist or place the PCells manually.
m
@Leo Moser thanks for this detailed response!
👍 1
@Leo Moser can you please suggest how to use klayout for validating the gds or layout files any potential guides/web posts available online? would be a great help!!
l
Hi @Mohammed Zeeshan, do you mean DRC and LVS? I created a basic tutorial some time ago: https://codeberg.org/mole99/klayout-sky130-inverter Part of the content is still valid, some is outdated as the KLayout package for sky130 has been improved in the meantime. If you have any issues, feel free to ask me any question.
👍 1
m
greetings @Leo Moser and wishing you a happy warm new year i want to validate my gds so i thought of making the layout design in the klayout as it will be more easy to debug and find potential errors in the layouts while doing it meanwhile i have done my lvs using netgen and drc with the help of magic layout tool
l
@Mohammed Zeeshan Happy New Year to you too! It's not necessarily easier to debug, it's just a question of whether you prefer magic or KLayout. I create my layouts in KLayout, so if you have any questions regarding DRC/LVS feel free to ask.
m
@Leo Moser my bad for reaching out again this late however whenever i open up the klayout it's kind of confusing always any steps to be followed to import the .sch from the xschem and start developing the layout or any other way out!!! Thank You!
l
Hi @Mohammed Zeeshan, no problem! But I'm not sure if I understand your issue. Normally you would create the schematic first and then create the layout. For the layout, you can either place all of the PCells manually or you can import a .spice netlist. When you import a spice netlist, the PCells will be placed for you, but you still need to connect them. For a university course I have prepared an exercise with KLayout, maybe this is useful to you: https://gitlab.tugraz.at/202C8AB2AFB402BD/aicd1_pe_2024/-/tree/main/13_Exercise4?ref_type=heads I can also send you the finished layout if it helps you as an example. If you still have your issue, maybe you could send me a screenshot so I can understand it better.
m
@Leo Moser it is so generous of you sir to reply consistently, i get this issue while setting up the klayout as i was following the steps mentioned in your gitlab link forwarded earlier
l
@Mohammed Zeeshan You seem to do everything right, the issue seems to be at the server hosting the KLayout packages. I have noticed that the connection to the server is a bit flaky, so maybe you could try it again later. Alternatively, you can install the package by directly cloning the
sky130_klayout_pdk
repository into `~/.klayout/salt`:
git clone <https://github.com/efabless/sky130_klayout_pdk.git> ~/.klayout/salt/sky130_klayout_pdk
. But this won't install the dependencies such as xsection. Still, DRC LVS and the PCells should work this way.