how launch lvs

Sure, here's the corrected text:


I have a basic question: How do I launch LVS on Klayout? I'm surprised that I can't seem to find it! I've been working on this for three and a half days. I successfully extracted the netlist from the layout after correcting a bug on line 31 in the sky130.lylvs file. However, I'm facing two problems.

The first problem is that the LVS can't run because it can't find the file "not_opt1.cir" which is located in the same directory as the "not_opt1.gds" file. If I need to load the ".cir" file, where should I load it?

The second problem is that when I launch LVS using "write/schematic('not_opt1.cir')", I encounter an issue but there's no log. When I click on the green arrow, nothing happens. I have attached my reference netlist and the extracted netlist for your reference.

Can you please help me with these issues?

Thank you.


  • some tims when I launch the LVS I have this

  • I don't have any experience-based advice (actually hoping to
    see you "plow the road" with this kind of stuff, ending at some
    sort of cookbook). But I have glanced at some tutorials laying
    about, that seemed to offer a primer. Have you dug any of those
    up yet?

    There's whole sections of the site devoted to DRC and LVS and
    general scripting:

    although the LVS stuff seems to be more of a "deep dive" while
    we could use some coaching on how to dog-paddle....

    I have saved a "Tutorial.pdf" from the FiSC2019 conference
    but it is quite out-of-date regarding extraction and comparison.
    I wonder if any refreshed version exists? It seemed a lot more
    "n00b friendly" than the other documentation, too bad about
    the stale.

  • I did it !
    I successfully launched the LVS yesterday, but there were errors. I changed many things, but I don't know where the issue was.
    The last problem was solved today; I needed to change the substrate name. By default, the name is sky130_gnd.

  • edited April 2023

    the name of my substate is V_ss

  • It would be great if you could make a "cheat sheet" for
    a quick leg up on the setup and invocation, and more
    of a "problems & solutions" reportage that tells what you
    encountered, how it manifested and how you solved it.
    While it is all still fresh in your mind.

    The "back leg" from error message to problem-deduction
    to correction, often is missing from forward-direction t
    utorials made by people who are past screwing up.

  • This is my netlist I use :smile:

    "The X needs to be removed."
    "Remove the .end."
    "Put 'u' or '1e-6' after the number describing the length or width."

  • edited April 2023

    And this is the result of my LVS :

    all is green B)

  • Another problem I encounter with the pin is that capital letters written in lowercase affect the pin (not the netlist).

  • Very good :)

    Sorry I missed this discussion.

    I did not find an attachment on the first post. I'd like to see if I can reproduce the crash.

    I'm aware that LVS is not an easy thing. Specifically if you like to take any kind of schematic and expect it to work. There are too many flavors. PDK people like to wrap LVS in their flow scripts so it is guaranteed to work with the flow specific flavors.

    You can skip the "u" if you use ".scale" to set a default scale of 1e-6, but that needs version 0.28.6 at least.

    The "X" means that devices are wrapped into model circuits. The Spice reader needs to know how to unwrap them. You can configure the reader through a NetlistReaderDelegate, but it may be easier to remove the "X".

    ".end" should not hurt and does not need to be removed. At least with 0.28.6. Again, test data was helpful.

    What do you mean by "capital letters written in lowercase affect the pin"? The pin name is extracted in a case sensitive manner, but compared (or rather: used in comparison) in a case-insensitive way. So for the check result it should not matter whether the pin is written lower- or uppercase.



Sign In or Register to comment.