blob: 35eedc478feafc80dd7461fb8c5c80a642a28766 [file] [log] [blame]
* Map the heavily renamed sky130A PDK primitive device model-names to the model-names extracted by (un-renamed) calibre LVS.
* Since sky130A spice netlists use subckt-instances for primitives, exploit this: Define said subckts
* that internally just nest the calibre model-named true spice primitive.
*
* Example schematic-side SUBCKT replacements, used in place of
* /foss/pdk/sky130A/libs.ref/sky130_fd_pr/spice/
* ...
* sky130_fd_pr__nfet_01v8.pm3.spice
.subckt sky130_fd_pr__nfet_01v8 d g s b m=1 w=1 l=1 ad=1 as=1 pd=1 ps=1 nrd=1 nrs=1
m0 d g s b nshort m=m w=w l=l ad=ad as=as pd=pd ps=ps nrd=nrd nrs=nrs mult=1
.ends
*m0 d g s b sky130_fd_pr__nfet_01v8 l={l} w={w} nf={nf}
*msky130_fd_pr__nfet_01v8 d g s b sky130_fd_pr__nfet_01v8__model l = {l} w = {w} nf = {nf}
* sky130_fd_pr__pfet_g5v0d10v5.pm3.spice
.subckt sky130_fd_pr__pfet_g5v0d10v5 d g s b m=1 w=1 l=1 ad=1 as=1 pd=1 ps=1 nrd=1 nrs=1
m0 d g s b phv m=m w=w l=l ad=ad as=as pd=pd ps=ps nrd=nrd nrs=nrs mult=1
.ends
*m0 d g s b sky130_fd_pr__pfet_g5v0d10v5 l={l} w={w} nf={nf}
*msky130_fd_pr__pfet_g5v0d10v5 d g s b sky130_fd_pr__pfet_g5v0d10v5 l = {l} w = {w} nf = {nf}
* sky130_fd_pr__pfet_01v8_hvt.pm3.spice
.subckt sky130_fd_pr__pfet_01v8_hvt d g s b m=1 w=1 l=1 ad=1 as=1 pd=1 ps=1 nrd=1 nrs=1
m0 d g s b phighvt m='m' w='w' l='l' ad='ad' as='as' pd='pd' ps='ps' nrd='nrd' nrs='nrs' mult=1
.ends
*m0 d g s b sky130_fd_pr__pfet_01v8_hvt l={l} w={w} nf={nf}
*msky130_fd_pr__pfet_01v8_hvt d g s b sky130_fd_pr__pfet_01v8_hvt__model l = {l} w = {w} nf = {nf}
* need mappsings:
* sky130_fd_pr__pfet_g5v0d10v5 phv ?
* sky130_fd_pr__nfet_g5v0d10v5 nhv ?
* sky130_fd_pr__nfet_01v8_lvt nlowvt ?
* sky130_fd_pr__nfet_03v3_nvt ntvnative ? mid not low?
* sky130_fd_pr__nfet_05v0_nvt nhvnative ?
* sky130_fd_pr__pfet_01v8 pshort ?
* sky130_fd_pr__esd_nfet_g5v0d10v5 nhvesd ?
.subckt sky130_fd_pr__nfet_g5v0d10v5 d g s b m=1 w=1 l=1 ad=1 as=1 pd=1 ps=1 nrd=1 nrs=1
m0 d g s b nhv m=m w=w l=l ad=ad as=as pd=pd ps=ps nrd=nrd nrs=nrs mult=1
.ends
.subckt sky130_fd_pr__nfet_01v8_lvt d g s b m=1 w=1 l=1 ad=1 as=1 pd=1 ps=1 nrd=1 nrs=1
m0 d g s b nlowvt m=m w=w l=l ad=ad as=as pd=pd ps=ps nrd=nrd nrs=nrs mult=1
.ends
.subckt sky130_fd_pr__nfet_03v3_nvt d g s b m=1 w=1 l=1 ad=1 as=1 pd=1 ps=1 nrd=1 nrs=1
m0 d g s b ntvnative m=m w=w l=l ad=ad as=as pd=pd ps=ps nrd=nrd nrs=nrs mult=1
.ends
.subckt sky130_fd_pr__nfet_05v0_nvt d g s b m=1 w=1 l=1 ad=1 as=1 pd=1 ps=1 nrd=1 nrs=1
m0 d g s b nhvnative m=m w=w l=l ad=ad as=as pd=pd ps=ps nrd=nrd nrs=nrs mult=1
.ends
.subckt sky130_fd_pr__pfet_01v8 d g s b m=1 w=1 l=1 ad=1 as=1 pd=1 ps=1 nrd=1 nrs=1
m0 d g s b pshort m=m w=w l=l ad=ad as=as pd=pd ps=ps nrd=nrd nrs=nrs mult=1
.ends
.subckt sky130_fd_pr__esd_nfet_g5v0d10v5 d g s b m=1 w=1 l=1 ad=1 as=1 pd=1 ps=1 nrd=1 nrs=1
m0 d g s b nhvesd m=m w=w l=l ad=ad as=as pd=pd ps=ps nrd=nrd nrs=nrs mult=1
.ends
* NGSPICE file created from ska_5nfets.ext - technology: sky130A
.subckt sky130_fd_pr__nfet_01v8_EDB9KC a_n175_n216#
X0 a_15_n42# a_n33_n130# a_n73_n42# a_n175_n216# sky130_fd_pr__nfet_01v8 ad=0.122 pd=1.42 as=0.122 ps=1.42 w=0.42 l=0.15
.ends
.subckt sky130_fd_pr__nfet_01v8_lvt_EDB9KC a_n175_n216#
X0 a_15_n42# a_n33_n130# a_n73_n42# a_n175_n216# sky130_fd_pr__nfet_01v8_lvt ad=0.122 pd=1.42 as=0.122 ps=1.42 w=0.42 l=0.15
.ends
.subckt sky130_fd_pr__nfet_05v0_nvt_9B7ADG a_n282_n264#
X0 a_90_n42# a_n90_n130# a_n148_n42# a_n282_n264# sky130_fd_pr__nfet_05v0_nvt ad=0.122 pd=1.42 as=0.122 ps=1.42 w=0.42 l=0.9
.ends
.subckt sky130_fd_pr__nfet_03v3_nvt_DHXKC7 a_n242_n264#
X0 a_50_n42# a_n50_n130# a_n108_n42# a_n242_n264# sky130_fd_pr__nfet_03v3_nvt ad=0.122 pd=1.42 as=0.122 ps=1.42 w=0.42 l=0.5
.ends
.subckt sky130_fd_pr__nfet_g5v0d10v5_DHXKC7 a_n242_n264#
X0 a_50_n42# a_n50_n130# a_n108_n42# a_n242_n264# sky130_fd_pr__nfet_g5v0d10v5 ad=0.122 pd=1.42 as=0.122 ps=1.42 w=0.42 l=0.5
.ends
.subckt ska_5nfets
Xsky130_fd_pr__nfet_01v8_EDB9KC_0 SUB sky130_fd_pr__nfet_01v8_EDB9KC
Xsky130_fd_pr__nfet_01v8_lvt_EDB9KC_0 SUB sky130_fd_pr__nfet_01v8_lvt_EDB9KC
Xsky130_fd_pr__nfet_05v0_nvt_9B7ADG_0 SUB sky130_fd_pr__nfet_05v0_nvt_9B7ADG
Xsky130_fd_pr__nfet_03v3_nvt_DHXKC7_0 SUB sky130_fd_pr__nfet_03v3_nvt_DHXKC7
Xsky130_fd_pr__nfet_g5v0d10v5_DHXKC7_0 SUB sky130_fd_pr__nfet_g5v0d10v5_DHXKC7
.ends