<@U016EM8L91B> do you know the reason why the high...
# sky130
m
@Tim Edwards do you know the reason why the high resistance poly resistors are extracted with a bulk terminal? The rule file seems to accept nwell or pwell or psubstrate. On slot-020 of the sky130 mpw-7 shuttle, there’s a resistor that crosses nwell. The schematic has
VGND
as the bulk connection, but the layout is extracting
VPB
.
t
Extracting the substrate as a terminal allows the model to capture the capacitance from the resistor to the substrate, which makes a better model. Splitting the substrate under the device is bad for matching and degrades the accuracy of the simulation model. Depending on the circuit, this may or may not be an issue.
👍 1
m
Thanks. maybe a drc rule would be appropriate.
t
I don't know if this layout was designed in magic or klayout, but extraction in magic would have flagged the split substrate under the device as an extraction error (or warning).
Actually I'm not confident about the statement above. Both well and substrate are listed as allowable substrate connections, so maybe it wouldn't be flagged during extraction.
m
I don’t see any errors in the extraction log or feedback report. Log
Copy code
BEGIN: Wed Feb  7 08:34:55 2024
Extracting as analog. Top ports connected by name.

Magic 8.3 revision 456 - Compiled on Sat Jan  6 13:53:23 PST 2024.
Starting magic under Tcl interpreter
Using the terminal as the console.
Using NULL graphics device.
Processing system .magicrc file
Sourcing design magicrc.well for technology sky130B ...
2 Magic internal units = 1 Lambda
Input style sky130(): scaleFactor=2, multiplier=2
The following types are not handled by extraction and will be treated as non-electrical types:
    ubm 
Scaled tech values by 2 / 1 to match internal grid scaling
Loading "/home/kanobailey/pull-requests/extra_be_checks/scripts/gds.analog.spice.tcl" from command line.
Extracting with top ports connected by name (analog)
CIF input style is now "sky130()"
Flattening {*sky130_fd_pr__*[A-Z]*}
Extracting work/gds/KM_user_analog_project_wrapper.gds.gz
Warning: Calma reading is not undoable!  I hope that's OK.
Library written using GDS-II Release 6.0
Library name: LIB
Reading "KM_SC_reram".
Saving contents of cell KM_SC_reram
Reading "KM_SC_1T1R".
Reading "KM_SC_sky130_fd_pr__pfet_g5v0d10v5_XFUK3A".
Saving contents of cell KM_SC_sky130_fd_pr__pfet_g5v0d10v5_XFUK3A
Reading "KM_SC_sky130_fd_pr__pfet_g5v0d10v5_TCBS39".
Saving contents of cell KM_SC_sky130_fd_pr__pfet_g5v0d10v5_TCBS39
Reading "KM_SC_sky130_fd_pr__pfet_g5v0d10v5_2PVZVF".
Saving contents of cell KM_SC_sky130_fd_pr__pfet_g5v0d10v5_2PVZVF
Reading "KM_SC_sky130_fd_pr__pfet_g5v0d10v5_WE88DU".
Saving contents of cell KM_SC_sky130_fd_pr__pfet_g5v0d10v5_WE88DU
Reading "KM_SC_sky130_fd_pr__pfet_g5v0d10v5_FGV9HZ".
Saving contents of cell KM_SC_sky130_fd_pr__pfet_g5v0d10v5_FGV9HZ
Reading "KM_SC_sky130_fd_pr__nfet_g5v0d10v5_QCNVDG".
Saving contents of cell KM_SC_sky130_fd_pr__nfet_g5v0d10v5_QCNVDG
Reading "KM_SC_sky130_fd_pr__nfet_g5v0d10v5_P8PKF4".
Saving contents of cell KM_SC_sky130_fd_pr__nfet_g5v0d10v5_P8PKF4
Reading "KM_SC_1T1R_2x2".
Reading "KM_SC_C4".
CIF file read warning: CIF style sky130(): units rescaled by factor of 5 / 1
Reading "KM_SC_FG_pfet".
Reading "KM_SC_hv_tgate".
Reading "KM_SC_sky130_sc_ams__ota_1".
Reading "KM_user_analog_project_wrapper".
Processing KM_SC_1T1R
Processing KM_SC_1T1R_2x2
Processing KM_SC_C4
Processing KM_SC_FG_pfet
Processing KM_SC_hv_tgate
Processing KM_SC_sky130_sc_ams__ota_1
Processing KM_user_analog_project_wrapper
The following types are not handled by extraction and will be treated as non-electrical types:
    ubm 
Extraction style is now "ngspice()"
Extracting KM_SC_1T1R into KM_SC_1T1R.ext:
Extracting KM_SC_1T1R_2x2 into KM_SC_1T1R_2x2.ext:
Extracting KM_SC_C4 into KM_SC_C4.ext:
Extracting KM_SC_FG_pfet into KM_SC_FG_pfet.ext:
freeMagic called with NULL argument.
KM_SC_FG_pfet: 2 warnings
Extracting KM_SC_hv_tgate into KM_SC_hv_tgate.ext:
Extracting KM_SC_sky130_sc_ams__ota_1 into KM_SC_sky130_sc_ams__ota_1.ext:
Warning:  Ports "VPB" and "VPWR" are electrically shorted.
Warning:  Ports "VNB" and "VGND" are electrically shorted.
Extracting KM_user_analog_project_wrapper into KM_user_analog_project_wrapper.ext:
KM_user_analog_project_wrapper: 38 warnings
Total of 40 warnings.
Devs merged: 18
Devs merged: 18
Devs merged: 18
Devs merged: 18
Devs merged: 74
Devs merged: 74
Devs merged: 74
exttospice finished.
Using technology "sky130B", version 1.0.446-0-gdd7771c
END: Wed Feb  7 08:34:58 2024
Runtime: 0:00:03 (hh:mm:ss)
feedback report
Copy code
box 52803 660692 53403 661092
feedback add "device missing 1 terminal;
 connecting remainder to node vin" pale
box 50339 660792 50439 660992
feedback add "device missing 1 terminal;
 connecting remainder to node vtun" pale
box 329293 702299 329295 702301
feedback add "Label \"io_analog[4]\" attached to more than one unconnected node: m5_329294_702300#" pale
box 318993 702299 318995 702301
feedback add "Label \"io_analog[4]\" attached to more than one unconnected node: m5_318994_702300#" pale
box 329293 702299 329295 702301
feedback add "Label \"io_analog[4]\" attached to more than one unconnected node: m4_329294_702300#" pale
box 318993 702299 318995 702301
feedback add "Label \"io_analog[4]\" attached to more than one unconnected node: m4_318994_702300#" pale
box 329293 702299 329295 702301
feedback add "Label \"io_analog[4]\" attached to more than one unconnected node: m1_326566_684646#" pale
box 318993 702299 318995 702301
feedback add "Label \"io_analog[4]\" attached to more than one unconnected node: m1_326566_684646#" pale
box 227593 702299 227595 702301
feedback add "Label \"io_analog[5]\" attached to more than one unconnected node: m5_227594_702300#" pale
box 217293 702299 217295 702301
feedback add "Label \"io_analog[5]\" attached to more than one unconnected node: m5_217294_702300#" pale
box 227593 702299 227595 702301
feedback add "Label \"io_analog[5]\" attached to more than one unconnected node: m4_227594_702300#" pale
box 217293 702299 217295 702301
feedback add "Label \"io_analog[5]\" attached to more than one unconnected node: m4_217294_702300#" pale
box 227593 702299 227595 702301
feedback add "Label \"io_analog[5]\" attached to more than one unconnected node: m1_224866_683612#" pale
box 217293 702299 217295 702301
feedback add "Label \"io_analog[5]\" attached to more than one unconnected node: m1_224866_683612#" pale
box 175893 702299 175895 702301
feedback add "Label \"io_analog[6]\" attached to more than one unconnected node: m5_175894_702300#" pale
box 165593 702299 165595 702301
feedback add "Label \"io_analog[6]\" attached to more than one unconnected node: m5_165594_702300#" pale
box 175893 702299 175895 702301
feedback add "Label \"io_analog[6]\" attached to more than one unconnected node: m4_175894_702300#" pale
box 165593 702299 165595 702301
feedback add "Label \"io_analog[6]\" attached to more than one unconnected node: m4_165594_702300#" pale
box 165593 702299 165595 702301
feedback add "Label \"io_analog[6]\" attached to more than one unconnected node: m2_526839_432413#" pale
box 175893 702299 175895 702301
feedback add "Label \"io_analog[6]\" attached to more than one unconnected node: m2_526839_432413#" pale
box 582339 136829 582341 136831
feedback add "Label \"vssa1\" attached to more than one unconnected node: m3_582340_136830#" pale
box 582339 146829 582341 146831
feedback add "Label \"vssa1\" attached to more than one unconnected node: m3_582340_146830#" pale
box 520593 702339 520595 702341
feedback add "Label \"vssa1\" attached to more than one unconnected node: m2_522681_700196#" pale
box 510593 702339 510595 702341
feedback add "Label \"vssa1\" attached to more than one unconnected node: m2_251643_425931#" pale
box -1 204887 1 204889
feedback add "Label \"vdda2\" attached to more than one unconnected node: m3_n800_204888#" pale
box -1 214887 1 214889
feedback add "Label \"vdda2\" attached to more than one unconnected node: m3_n800_214888#" pale
box 582339 225229 582341 225231
feedback add "Label \"vdda1\" attached to more than one unconnected node: m3_582340_225230#" pale
box 582339 235229 582341 235231
feedback add "Label \"vdda1\" attached to more than one unconnected node: m3_582340_235230#" pale
box 582339 540561 582341 540563
feedback add "Label \"vdda1\" attached to more than one unconnected node: m3_582340_540562#" pale
box 582339 550561 582341 550563
feedback add "Label \"vdda1\" attached to more than one unconnected node: m2_227322_552004#" pale
box -1 172887 1 172889
feedback add "Label \"vssd2\" attached to more than one unconnected node: m3_n800_172888#" pale
box -1 162887 1 162889
feedback add "Label \"vssd2\" attached to more than one unconnected node: m1_8165_167085#" pale
box 582339 181429 582341 181431
feedback add "Label \"vssd1\" attached to more than one unconnected node: m3_582340_181430#" pale
box 582339 191429 582341 191431
feedback add "Label \"vssd1\" attached to more than one unconnected node: m1_530627_282920#" pale
box 582339 639783 582341 639785
feedback add "Label \"vccd1\" attached to more than one unconnected node: m3_582340_639784#" pale
box 582339 629783 582341 629785
feedback add "Label \"vccd1\" attached to more than one unconnected node: m1_530832_283729#" pale
box -1 643841 1 643843
feedback add "Label \"vccd2\" attached to more than one unconnected node: m3_n800_643842#" pale
box -1 633841 1 633843
feedback add "Label \"vccd2\" attached to more than one unconnected node: m1_2411_506084#" pale
box -1 549441 1 549443
feedback add "Label \"vssa2\" attached to more than one unconnected node: m3_n800_549442#" pale
box -1 559441 1 559443
feedback add "Label \"vssa2\" attached to more than one unconnected node: m1_51830_660998#" pale