RTimothyEdwards / open_pdks

PDK installer for open-source EDA tools and toolchains. Distributed with setups for the SkyWater 130nm and Global Foundries 180nm open processes.
http://opencircuitdesign.com/open_pdks
Apache License 2.0
267 stars 85 forks source link

Fill .spice files seem to be non-deterministic #184

Open mithro opened 2 years ago

mithro commented 2 years ago
diff --git a/usr/local/share/pdk/sky130A/libs.ref/sky130_fd_sc_hd/spice/sky130_ef_sc_hd__fill_8.spice b/usr/local/share/pdk/sky130A/libs.ref/sky130_fd_sc_hd/spice/sky130_ef_sc_hd__fill_8.spice
index 6d2d4412..4d213b37 100644
--- a/usr/local/share/pdk/sky130A/libs.ref/sky130_fd_sc_hd/spice/sky130_ef_sc_hd__fill_8.spice
+++ b/usr/local/share/pdk/sky130A/libs.ref/sky130_fd_sc_hd/spice/sky130_ef_sc_hd__fill_8.spice
@@ -1,7 +1,7 @@
 * NGSPICE file created from sky130_ef_sc_hd__fill_8.ext - technology: sky130A

 .subckt sky130_ef_sc_hd__fill_8 VGND VPWR VPB VNB
-C0 VPWR a_31_305# 0.14fF
-C1 a_31_39# VGND 0.14fF
+C0 a_31_305# VPWR 0.14fF
+C1 VGND a_31_39# 0.14fF
 .ends
mithro commented 2 years ago

Seems to affect sky130_ef_sc_hd__fill_8.spice and sky130_ef_sc_hvl__fill_8.spice

RTimothyEdwards commented 2 years ago

Why is extraction being done with parasitic capacitances?

mithro commented 2 years ago

I don't know, you wrote the scripts which create these files?

RTimothyEdwards commented 2 years ago

I just added an option to distinguish between generating SPICE files with or without parasitics, so this should not be a problem in the future.

olofk commented 2 years ago

Is there any action to take here or simply a user option to generate with/without parasitics?

RTimothyEdwards commented 2 years ago

@olofk : open_pdks is generating these SPICE netlists without parasitics now, so there should no longer be any difference between these files from run to run of the install.

olofk commented 2 years ago

A candidate for closing then?

mithro commented 2 years ago

So while the parasitics have been fixed, the order of things in the files seems to still change.

olofk commented 2 years ago

@mithro Order of things like in the diff you show above? I.e. a_31_305# and VPWR being swapped? (I have no idea what spice files looks like so I might have misunderstood)

mithro commented 2 years ago

@olofk - Correct.

mithro commented 2 years ago

Spice files still seem to change randomly, see diffs @ https://foss-eda-tools.googlesource.com/skywater-pdk/output/+/6cf361415849f0d802413e2f419abd5d29ff4d09

mithro commented 2 years ago

The delta in the spice files seems very weird;

diff --git a/usr/local/share/pdk/sky130A/libs.ref/sky130_fd_pr/spice/sky130_fd_pr__esd_nfet_05v0_nvt.pm3.spice b/usr/local/share/pdk/sky130A/libs.ref/sky130_fd_pr/spice/sky130_fd_pr__esd_nfet_05v0_nvt.pm3.spice
index e2deb23..c6869e0 100644
--- a/usr/local/share/pdk/sky130A/libs.ref/sky130_fd_pr/spice/sky130_fd_pr__esd_nfet_05v0_nvt.pm3.spice
+++ b/usr/local/share/pdk/sky130A/libs.ref/sky130_fd_pr/spice/sky130_fd_pr__esd_nfet_05v0_nvt.pm3.spice
@@ -13,27 +13,27 @@
 * limitations under the License.

 * SKY130 Spice File.
-.param sky130_fd_pr__nfet_g5v0d10v5__toxe_slope_spectre = 0.0
-.param sky130_fd_pr__nfet_g5v0d10v5__vth0_slope_spectre = 0.0
-.param sky130_fd_pr__nfet_g5v0d10v5__voff_slope_spectre = 0.0
-.param sky130_fd_pr__nfet_g5v0d10v5__nfactor_slope_spectre = 0.0
+.param sky130_fd_pr__esd_nfet_05v0_nvt__toxe_slope_spectre = 0.0
+.param sky130_fd_pr__esd_nfet_05v0_nvt__vth0_slope_spectre = 0.0
+.param sky130_fd_pr__esd_nfet_05v0_nvt__voff_slope_spectre = 0.0
+.param sky130_fd_pr__esd_nfet_05v0_nvt__nfactor_slope_spectre = 0.0