Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

rules/klayout/lvs: parse xschem netlist #99

Closed
wants to merge 3 commits into from

Conversation

proppy
Copy link
Member

@proppy proppy commented Feb 3, 2023

  • try multiple extension
  • remove modeling equations
  • parse X subckt elements
  • reorder device signals

Fixes #98 #101

@proppy proppy changed the title rules/klayout/lvs: parse X subckt rules/klayout/lvs: parse xschem netlist Feb 6, 2023
@atorkmabrains
Copy link
Collaborator

atorkmabrains commented Feb 7, 2023

@proppy I advise against making this change in LVS. The LVS deal with X as subcircuit by default not as primitive. adding the device as X might lead to weird behavior in LVS.

@atorkmabrains
Copy link
Collaborator

@proppy Usually, the netlist for simulation use X for devices, but when you create a netlist for LVS purpose, it should use the primitive form of that device like: M, L, R, Q, etc...

@atorkmabrains
Copy link
Collaborator

atorkmabrains commented Feb 7, 2023

The solution for that should happen in side xschem or any other tool that generates the netlist. LVS should only use primitive form for devices and X for real subcircuits that present a circuit not a device. Remember the purpose of LVS it check the equivalence of the circuit against layout not to simulate the netlist.

@atorkmabrains
Copy link
Collaborator

I believe @StefanSchippers has already addressed that #102.

Please don't change the LVS rule deck. It's working correctly.

@proppy
Copy link
Member Author

proppy commented Feb 7, 2023

@proppy I advise against making this change in LVS. The LVS deal with X as subcircuit by default not as primitive. adding the device as X might lead to weird behavior in LVS.

Yes, I agree with #102 the primitive gets correctly exported as M devices with the right pin ordering so I don't believe 94ae368 is necessary anymore.

@proppy
Copy link
Member Author

proppy commented Feb 7, 2023

Please don't change the LVS rule deck. It's working correctly.

I still believe that the part of 061d376#diff-5692c889f49e046ff484fad52b83b49f9adfd5f9f8258289418462282a350f2bR290-R296 that deals with multiple file extension could be useful for interactive usage.

What do you think?

@atorkmabrains
Copy link
Collaborator

I don't believe file extension is important for klayout. As long as the file adhere with the Standard Spice Format with the limitation mentioned here:
https://klayout.de/doc-qt4/manual/lvs_io.html#h2-146

@atorkmabrains
Copy link
Collaborator

atorkmabrains commented Feb 7, 2023

@proppy The LVS:
https://github.com/efabless/globalfoundries-pdk-libs-gf180mcu_fd_pr/tree/main/rules/klayout/lvs
is working correctly. If there are differences between what we have there and here in Google's version, I would advise that you take Efabless version.

@proppy
Copy link
Member Author

proppy commented Feb 7, 2023

I don't believe file extension is important for klayout.

Yes, but the default produced by xschem (.spice) doesn't match with the default consumed by the lvs deck (.cdl).
https://github.com/efabless/globalfoundries-pdk-libs-gf180mcu_fd_pr/blob/main/rules/klayout/lvs/gf180mcu.lvs#L259

@atorkmabrains
Copy link
Collaborator

@proppy I get the point, we could change .cdl to .spice in the LVS.

@proppy
Copy link
Member Author

proppy commented Feb 8, 2023

@atorkmabrains yes, see efabless#26

@proppy proppy closed this Feb 8, 2023
proppy pushed a commit to proppy/globalfoundries-pdk-libs-gf180mcu_fd_pr that referenced this pull request Feb 14, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

lvs script should be able to read X subcircuit
2 participants