| **.subckt FFD |
| x1 vdd in out net1 vss nand |
| V1 vss GND DC{Vss} |
| V2 vdd vss DC{Vdd} |
| V3 in vss PULSE(0 {Vin} 1ps 1ps 1ps 50ns 100ns) DC{Vin} |
| C1 out vss 1f m=1 |
| x2 vdd out net1 net2 vss nand |
| x3 vdd in net2 vss vss not |
| **** begin user architecture code |
| |
| |
| |
| |
| * Circuit Parameters |
| .param vdd = 1.8 |
| .param vss = 0.0 |
| .param vin = 1.8 |
| .param iref = 200u |
| .options TEMP = 65.0 |
| |
| * Include Models |
| .lib ~/skywater_pdk/skywater-pdk/libraries/sky130_fd_pr/latest/models/corners/sky130.lib TT |
| |
| * OP Parameters & Singals to save |
| .save all @M.X1.XM1.msky130_fd_pr__nfet_01v8[id] @M.X1.XM1.msky130_fd_pr__nfet_01v8[vth] |
| + @M.X1.XM1.msky130_fd_pr__nfet_01v8[vgs] @M.X1.XM1.msky130_fd_pr__nfet_01v8[vds] @M.X1.XM1.msky130_fd_pr__nfet_01v8[vdsat] |
| + @M.X1.XM1.msky130_fd_pr__nfet_01v8[gm] @M.X1.XM1.msky130_fd_pr__nfet_01v8[gds] @M.X1.XM2.msky130_fd_pr__pfet_01v8[id] |
| + @M.X1.XM2.msky130_fd_pr__pfet_01v8[vth] @M.X1.XM2.msky130_fd_pr__pfet_01v8[vgs] @M.X1.XM2.msky130_fd_pr__pfet_01v8[vds] |
| + @M.X1.XM2.msky130_fd_pr__pfet_01v8[vdsat] @M.X1.XM2.msky130_fd_pr__pfet_01v8[gm] @M.X1.XM2.msky130_fd_pr__pfet_01v8[gds] |
| |
| *Simulations |
| .control |
| tran 0.1n 0.5u |
| setplot tran1 |
| plot v(out) v(in) |
| setplot tran2 |
| plot v(in) |
| setplot tran3 |
| plot v(out) |
| write ~/caravel_fulgor_opamp/xschem/ring_osc/nand_tran1.raw |
| |
| |
| |
| .endc |
| |
| .end |
| |
| |
| **** end user architecture code |
| **.ends |
| |
| * expanding symbol: /home/dhernando/caravel_fulgor_opamp/xschem/ring_vco/nand.sym # of pins=5 |
| |
| .subckt nand vdd A OUT B vss |
| *.opin OUT |
| *.ipin vdd |
| *.ipin A |
| *.ipin B |
| *.ipin vss |
| XM1 net1 B vss vss sky130_fd_pr__nfet_01v8 W=0.45 L=0.15 ad='W * 0.29' pd='2 * (W + 0.29)' as='W * 0.29' |
| + ps='2 * (W + 0.29)' nrd='0.29 / W' nrs='0.29 / W' sa=0 sb=0 sd=0 nf=1 mult=1 m=1 |
| XM2 OUT A net1 vss sky130_fd_pr__nfet_01v8 W=0.45 L=0.15 ad='W * 0.29' pd='2 * (W + 0.29)' as='W * 0.29' |
| + ps='2 * (W + 0.29)' nrd='0.29 / W' nrs='0.29 / W' sa=0 sb=0 sd=0 nf=1 mult=1 m=1 |
| XM3 net2 A vss vss sky130_fd_pr__nfet_01v8 W=0.45 L=0.15 ad='W * 0.29' pd='2 * (W + 0.29)' as='W * 0.29' |
| + ps='2 * (W + 0.29)' nrd='0.29 / W' nrs='0.29 / W' sa=0 sb=0 sd=0 nf=1 mult=1 m=1 |
| XM4 OUT B net2 vss sky130_fd_pr__nfet_01v8 W=0.45 L=0.15 ad='W * 0.29' pd='2 * (W + 0.29)' as='W * 0.29' |
| + ps='2 * (W + 0.29)' nrd='0.29 / W' nrs='0.29 / W' sa=0 sb=0 sd=0 nf=1 mult=1 m=1 |
| XM5 OUT A vdd vdd sky130_fd_pr__pfet_01v8 W=0.9 L=0.15 ad='W * 0.29' pd='2 * (W + 0.29)' as='W * 0.29' |
| + ps='2 * (W + 0.29)' nrd='0.29 / W' nrs='0.29 / W' sa=0 sb=0 sd=0 nf=1 mult=1 m=1 |
| XM6 OUT B vdd vdd sky130_fd_pr__pfet_01v8 W=0.9 L=0.15 ad='W * 0.29' pd='2 * (W + 0.29)' as='W * 0.29' |
| + ps='2 * (W + 0.29)' nrd='0.29 / W' nrs='0.29 / W' sa=0 sb=0 sd=0 nf=1 mult=1 m=1 |
| .ends |
| |
| |
| * expanding symbol: /home/dhernando/caravel_fulgor_opamp/xschem/ring_vco/not.sym # of pins=5 |
| |
| .subckt not vdd in out vss vbulk |
| *.ipin vdd |
| *.ipin in |
| *.ipin vss |
| *.opin out |
| *.ipin vbulk |
| XM1 out in vss vbulk sky130_fd_pr__nfet_01v8 W=0.45 L=0.15 ad='W * 0.29' pd='2 * (W + 0.29)' as='W * 0.29' |
| + ps='2 * (W + 0.29)' nrd='0.29 / W' nrs='0.29 / W' sa=0 sb=0 sd=0 nf=1 mult=1 m=1 |
| XM2 out in vdd vdd sky130_fd_pr__pfet_01v8 W=0.9 L=0.15 ad='W * 0.29' pd='2 * (W + 0.29)' as='W * 0.29' |
| + ps='2 * (W + 0.29)' nrd='0.29 / W' nrs='0.29 / W' sa=0 sb=0 sd=0 nf=1 mult=1 m=1 |
| .ends |
| |
| .GLOBAL GND |
| .end |