Skip to content

Xschem symbols unified to provide instance name without "spiceprefix". #607

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

Open
wants to merge 1 commit into
base: dev
Choose a base branch
from

Conversation

KrzysztofHerman
Copy link
Contributor

Unifies xschem symbols not to have spiceprefix. It cancels #605.
It also cleans up lvs_format entry not to have spiceprefix.

@d-m-bailey
Copy link
Contributor

@KrzysztofHerman Could you help me understand this change?

My understanding is that klayout expects device names to begin the the standard spice prefix for the respective models. M for mosfets, D for diodes, etc.

However, the ngspice models are defined as subcircuits, so X needs to be added. The format variable in the xschem symbol will allow this.

In sky130, the magic extraction rules were designed to extract as X devices also. For ihp-sg13g2, are we expected to use the lvs variant of the ihp-sg13g2.tech file so that the same source can be used for both klayout and magic/netgen?

@H-Ojiro

@d-m-bailey
Copy link
Contributor

@KrzysztofHerman @RTimothyEdwards @FaragElsayed2
We are checking the effect of these changes on LVS in Klayout and netgen/magic.

We attempted to run LVS against the magic extracted netlist using the lvs variant (extracts devices as M, C, D, Q, etc. instead of X). This is the same as Klayout extraction. The intention was to verify that LVS passes netgen and Klayout using the same source netlist that would be created by the changes in this PR.

We ran into a problem with the 3 terminal capacitor/resistor devices and 4 terminal bipolar devices. The lvs variant will not extract these. Also, spice format does not allow a 3 terminal capacitor/resistor and netgen did not correctly recognize the devices as output by xschem. The Klayout rule deck has special processing for 3 terminal capacitors/resistors and 4 terminal bipolar devices that allows LVS to pass.

The cdl (Calibre) format for 3 terminal resistors/capacitors adds the third terminal as a comment

C0 TOP BOTTOM rfcmin $SUB=VSS

I don't know if magic can handle this or not. Klayout rules could be modified to process this, I think.

Is it iHP's intention to configure xschem to produce an LVS netlist that will pass Klayout LVS without modification? If that is the case, we can create scripts that will modify that netlist to pass magic/netgen LVS. Or do you want to create a netlist that will pass all LVS - Klayout, magic/netgen, Calibre, etc.?

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.

2 participants