| * 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 |
| |