blob: 0d7f11ecfa777d757ad8b6a6f793a6f335cc0641 [file] [log] [blame]
v {xschem version=3.0.0 file_version=1.2 }
G {}
K {}
V {}
S {}
E {}
T {Nom V: 1.4V} 1270 -370 0 0 0.4 0.4 {}
T {Max V: 0.9V
Nom V: 0.6V
Min V: 0.3V
} 1700 -70 0 0 0.4 0.4 {}
N 330 -600 710 -600 { lab=VP}
N 330 -140 330 -100 { lab=VIq}
N 330 -100 710 -100 { lab=VIq}
N 710 -140 710 -100 { lab=VIq}
N 750 -170 830 -170 { lab=Inn}
N 330 -170 590 -170 { lab=VIq}
N 180 -170 290 -170 { lab=Inp}
N 590 -170 710 -170 { lab=VIq}
N 590 -100 590 -10 { lab=VIq}
N -270 360 920 360 { lab=VN}
N 920 360 1000 360 { lab=VN}
N 590 230 680 230 { lab=VN}
N 680 230 680 360 { lab=VN}
N 590 320 680 320 { lab=VN}
N 590 260 590 290 { lab=#net1}
N 590 350 590 360 { lab=VN}
N -270 230 -190 230 { lab=VN}
N -190 230 -190 360 { lab=VN}
N -270 320 -190 320 { lab=VN}
N -270 260 -270 290 { lab=#net2}
N -270 350 -270 360 { lab=VN}
N -410 360 -270 360 { lab=VN}
N -310 230 -310 320 { lab=I_bias1}
N -310 200 -310 230 { lab=I_bias1}
N -270 180 -210 180 { lab=I_bias1}
N -270 180 -270 200 { lab=I_bias1}
N -310 180 -270 180 { lab=I_bias1}
N -310 180 -310 200 { lab=I_bias1}
N 550 180 550 320 { lab=I_bias1}
N 590 -10 590 200 { lab=VIq}
N 590 -170 590 -100 { lab=VIq}
N 370 180 730 180 { lab=I_bias1}
N 730 180 880 180 { lab=I_bias1}
N 1000 360 1810 360 { lab=VN}
N 1810 310 1810 360 { lab=VN}
N 1810 180 1810 250 { lab=I_bias1}
N 880 180 1810 180 { lab=I_bias1}
N 1810 360 1930 360 { lab=VN}
N 1810 180 1930 180 { lab=I_bias1}
N 710 -600 900 -600 { lab=VP}
N 900 -600 920 -600 { lab=VP}
N 1190 -250 1190 -220 { lab=VM2D}
N 1190 -280 1190 -250 { lab=VM2D}
N 710 -280 1190 -280 { lab=VM2D}
N 1190 -220 1190 -190 { lab=VM2D}
N 1190 -160 1190 60 { lab=OutP}
N 1170 90 1170 120 { lab=VN}
N 1170 120 1190 120 { lab=VN}
N 1190 120 1190 360 { lab=VN}
N 1190 -90 1230 -90 { lab=OutP}
N 1530 -250 1530 -220 { lab=VM1D}
N 1530 -280 1530 -250 { lab=VM1D}
N 1530 -220 1530 -190 { lab=VM1D}
N 1530 -160 1530 60 { lab=OutN}
N 1510 90 1510 120 { lab=VN}
N 1510 120 1530 120 { lab=VN}
N 1530 120 1530 360 { lab=VN}
N 1530 -90 1570 -90 { lab=OutN}
N 330 -330 1530 -330 { lab=VM1D}
N 1530 -330 1530 -280 { lab=VM1D}
N 1230 -190 1230 -150 { lab=V_ref1}
N 1230 -150 1570 -150 { lab=V_ref1}
N 1570 -190 1570 -150 { lab=V_ref1}
N 1570 -190 1590 -190 { lab=V_ref1}
N -240 -600 330 -600 { lab=VP}
N -340 180 -310 180 { lab=I_bias1}
N 1570 -90 1590 -90 { lab=OutN}
N -210 180 370 180 { lab=I_bias1}
N 710 -280 710 -200 { lab=VM2D}
N 330 -330 330 -200 { lab=VM1D}
N 710 -430 710 -280 { lab=VM2D}
N 710 -600 710 -570 { lab=VP}
N 710 -510 710 -490 { lab=#net3}
N 710 -460 800 -460 { lab=VP}
N 800 -600 800 -460 { lab=VP}
N 710 -540 790 -540 { lab=VP}
N 790 -540 800 -540 { lab=VP}
N 330 -600 330 -570 { lab=VP}
N 330 -510 330 -490 { lab=#net4}
N 330 -460 420 -460 { lab=VP}
N 420 -600 420 -460 { lab=VP}
N 330 -540 410 -540 { lab=VP}
N 410 -540 420 -540 { lab=VP}
N 330 -430 330 -330 { lab=VM1D}
N 670 -540 670 -460 { lab=VM3D}
N 670 -460 670 -410 { lab=VM3D}
N 290 -410 670 -410 { lab=VM3D}
N 290 -460 290 -410 { lab=VM3D}
N 290 -540 290 -460 { lab=VM3D}
N -70 -600 -70 -570 { lab=VP}
N -70 -510 -70 -490 { lab=#net5}
N -150 -460 -70 -460 { lab=VP}
N -150 -600 -150 -460 { lab=VP}
N -140 -540 -70 -540 { lab=VP}
N -150 -540 -140 -540 { lab=VP}
N -30 -540 -30 -460 { lab=VM3D}
N -70 -410 290 -410 { lab=VM3D}
N -30 -460 -30 -410 { lab=VM3D}
N -70 -430 -70 -280 { lab=VM3D}
N 120 -480 120 -410 { lab=VM3D}
N 120 -600 120 -540 { lab=VP}
N 920 -600 1830 -600 { lab=VP}
N -70 -280 -70 -70 { lab=VM3D}
N -70 -0 -70 360 { lab=VN}
N -70 -40 -70 -10 { lab=VN}
N -70 -10 -70 -0 { lab=VN}
N -190 -40 -110 -40 { lab=cmm_fb}
N 1490 120 1510 120 { lab=VN}
N 1490 60 1530 60 { lab=OutN}
N 1150 60 1190 60 { lab=OutP}
N 1150 120 1170 120 { lab=VN}
C {devices/code.sym} 2370 -740 0 0 {name=TT_MODELS
only_toplevel=true
format="tcleval( @value )"
value="
*.lib \\\\$::SKYWATER_MODELS\\\\/sky130.lib.spice tt
.lib \\\\$::SKYWATER_MODELS\\\\/sky130.lib.spice.tt.red tt
"}
C {devices/ngspice_get_value.sym} 830 -550 0 0 {name=r9 node="@m.x7.xm5.msky130_fd_pr__pfet_01v8_lvt[gm]"
descr="M5 gm"}
C {devices/ngspice_get_value.sym} 830 -520 0 0 {name=r10 node="@m.x7.xm5.msky130_fd_pr__pfet_01v8_lvt[gds]"
descr="M5 gds"}
C {devices/ngspice_get_value.sym} 830 -490 0 0 {name=r11 node="@m.xm5.msky130_fd_pr__pfet_01v8_lvt[cgs]"
descr="M5 cgs"}
C {devices/ngspice_get_value.sym} 830 -460 0 0 {name=r12 node="@m.xm5.msky130_fd_pr__pfet_01v8_lvt[cdg]"
descr="M5 cdg"}
C {devices/code.sym} 2370 -560 0 0 {name=SPICE
only_toplevel=true
value="
*.options savecurrents
.option warn=1
.control
set wr_vecnames
set wr_singlescale
* Power consumption
op
* save all
* #OP#
print @m.xm1.msky130_fd_pr__nfet_01v8_lvt[gds]
print vdd#branch
print v(vm2d)
print v(vm3d)
print v(UD_M5)
wrdata 'result_op.csv' vdd#branch
ac dec 10 1 10G
meas ac dc_gain_vm2d FIND vdb(vm2d) AT=1
let bw_amp_vm2d=dc_gain_vm2d-3
meas ac dc_gain_vm3d FIND vdb(vm3d) AT=1
let bw_amp_vm3d=dc_gain_vm3d-3
meas ac bw_vm2d when vdb(vm2d)=bw_amp_vm2d
meas ac bw_vm3d when vdb(vm3d)=bw_amp_vm3d
*MEAS AC phasem FIND vp(vm2d) WHEN vdb(vm2d)=0
* wrdata 'result_ac.csv' dc_gain bw
* plot vdb(vm2D) log
*
*print WM3D
run
reset
save @m.xm1.msky130_fd_pr__nfet_01v8_lvt[gds]
save @m.xm1.msky130_fd_pr__nfet_01v8_lvt[gm]
save @m.xm1.msky130_fd_pr__nfet_01v8_lvt[cgs]
save @m.xm1.msky130_fd_pr__nfet_01v8_lvt[cdg]
save @m.xm2.msky130_fd_pr__nfet_01v8_lvt[gm]
save @m.xm2.msky130_fd_pr__nfet_01v8_lvt[gds]
save @m.xm2.msky130_fd_pr__nfet_01v8_lvt[cgs]
save @m.xm2.msky130_fd_pr__nfet_01v8_lvt[cdg]
save @m.xm3.msky130_fd_pr__nfet_01v8_lvt[gm]
save @m.xm3.msky130_fd_pr__nfet_01v8_lvt[gds]
save @m.xm3.msky130_fd_pr__nfet_01v8_lvt[cgs]
save @m.xm3.msky130_fd_pr__nfet_01v8_lvt[cdg]
save @m.xm4.msky130_fd_pr__nfet_01v8_lvt[gm]
save @m.xm4.msky130_fd_pr__nfet_01v8_lvt[gds]
save @m.xm4.msky130_fd_pr__nfet_01v8_lvt[cgs]
save @m.xm4.msky130_fd_pr__nfet_01v8_lvt[cdg]
save @m.xm5.msky130_fd_pr__pfet_01v8_lvt[gm]
save @m.xm5.msky130_fd_pr__pfet_01v8_lvt[gds]
save @m.xm5.msky130_fd_pr__pfet_01v8_lvt[cgs]
save @m.xm5.msky130_fd_pr__pfet_01v8_lvt[cdg]
save @m.xm6.msky130_fd_pr__pfet_01v8_lvt[gm]
save @m.xm6.msky130_fd_pr__pfet_01v8_lvt[gds]
save @m.xm6.msky130_fd_pr__pfet_01v8_lvt[cgs]
save @m.xm6.msky130_fd_pr__pfet_01v8_lvt[cdg]
save @m.xm7.msky130_fd_pr__nfet_01v8_lvt[gm]
save @m.xm7.msky130_fd_pr__nfet_01v8_lvt[gds]
save @m.xm7.msky130_fd_pr__nfet_01v8_lvt[cgs]
save @m.xm7.msky130_fd_pr__nfet_01v8_lvt[cdg]
save @m.xm8.msky130_fd_pr__nfet_01v8_lvt[gm]
save @m.xm8.msky130_fd_pr__nfet_01v8_lvt[gds]
save @m.xm8.msky130_fd_pr__nfet_01v8_lvt[cgs]
save @m.xm8.msky130_fd_pr__nfet_01v8_lvt[cdg]
save @m.xm9.msky130_fd_pr__nfet_01v8_lvt[gm]
save @m.xm9.msky130_fd_pr__nfet_01v8_lvt[gds]
save @m.xm9.msky130_fd_pr__nfet_01v8_lvt[cgs]
save @m.xm9.msky130_fd_pr__nfet_01v8_lvt[cdg]
save v(Voutp)
save v(Voutn)
save v(VIa)
save v(VIq)
save v(Vinn)
save v(Vinp)
save v(VM8G)
op
write comp.raw
run
*reset
*noise v(vm1d) I1 dec 100 1 10G
*print all
*setplot noise2
*write noise2.raw
*run
reset
ac dec 10 1 1T
plot vdb(Voutp) vdb(Voutn)
plot phase(Voutp)/pi*180 phase(Voutn)/pi*180
run
reset
tran 1ps 10ns
plot v(Vinp) v(Voutn) v(Voutp)
run
.endc
"}
C {sky130_fd_pr/nfet_01v8_lvt.sym} 310 -170 0 0 {name=M1
L=0.2
W=2
nf=1
mult=12
ad="'int((nf+1)/2) * W/nf * 0.29'"
pd="'2*int((nf+1)/2) * (W/nf + 0.29)'"
as="'int((nf+2)/2) * W/nf * 0.29'"
ps="'2*int((nf+2)/2) * (W/nf + 0.29)'"
nrd="'0.29 / W'" nrs="'0.29 / W'"
sa=0 sb=0 sd=0
model=nfet_01v8_lvt
spiceprefix=X
}
C {sky130_fd_pr/nfet_01v8_lvt.sym} 730 -170 0 1 {name=M2
L=0.2
W=2
nf=1
mult=12
ad="'int((nf+1)/2) * W/nf * 0.29'"
pd="'2*int((nf+1)/2) * (W/nf + 0.29)'"
as="'int((nf+2)/2) * W/nf * 0.29'"
ps="'2*int((nf+2)/2) * (W/nf + 0.29)'"
nrd="'0.29 / W'" nrs="'0.29 / W'"
sa=0 sb=0 sd=0
model=nfet_01v8_lvt
spiceprefix=X
}
C {devices/ngspice_get_value.sym} 440 -550 0 0 {name=r33 node="@m.x7.xm6.msky130_fd_pr__pfet_01v8_lvt[gm]"
descr="M6 gm"}
C {devices/ngspice_get_value.sym} 440 -520 0 0 {name=r34 node="@m.x7.xm6.msky130_fd_pr__pfet_01v8_lvt[gds]"
descr="M6 gds"}
C {devices/ngspice_get_value.sym} 440 -490 0 0 {name=r35 node="@m.xm6.msky130_fd_pr__pfet_01v8_lvt[cgs]"
descr="M6 cgs"}
C {devices/ngspice_get_value.sym} 440 -460 0 0 {name=r36 node="@m.xm6.msky130_fd_pr__pfet_01v8_lvt[cdg]"
descr="M6 cdg"}
C {devices/ngspice_get_value.sym} 770 -130 0 0 {name=r37 node="@m.x7.xm2.msky130_fd_pr__nfet_01v8_lvt[gm]"
descr="M2 gm"}
C {devices/ngspice_get_value.sym} 770 -100 0 0 {name=r38 node="@m.x7.xm2.msky130_fd_pr__nfet_01v8_lvt[gds]"
descr="M2 gds"}
C {devices/ngspice_get_value.sym} 770 -70 0 0 {name=r39 node="@m.xm2.msky130_fd_pr__nfet_01v8_lvt[cgs]"
descr="M2 cgs"}
C {devices/ngspice_get_value.sym} 770 -40 0 0 {name=r40 node="@m.xm2.msky130_fd_pr__nfet_01v8_lvt[cdg]"
descr="M2 cdg"}
C {devices/ngspice_get_value.sym} 280 -120 0 1 {name=r1 node="@m.x7.xm1.msky130_fd_pr__nfet_01v8_lvt[gm]"
descr="M1 gm"}
C {devices/ngspice_get_value.sym} 280 -90 0 1 {name=r2 node="@m.x7.xm1.msky130_fd_pr__nfet_01v8_lvt[gds]"
descr="M1 gds"}
C {devices/ngspice_get_value.sym} 280 -60 0 1 {name=r3 node="@m.xm1.msky130_fd_pr__nfet_01v8_lvt[cgs]"
descr="M1 cgs"}
C {devices/ngspice_get_value.sym} 280 -30 0 1 {name=r4 node="@m.xm1.msky130_fd_pr__nfet_01v8_lvt[cdg]"
descr="M1 cdg"}
C {devices/lab_wire.sym} 710 -100 0 1 {name=l7 sig_type=std_logic lab=VIq}
C {devices/ngspice_get_value.sym} 440 230 0 0 {name=r5 node="@m.xm9.msky130_fd_pr__nfet_01v8_lvt[gm]"
descr="M9 gm" }
C {devices/ngspice_get_value.sym} 440 260 0 0 {name=r6 node="@m.xm9.msky130_fd_pr__nfet_01v8_lvt[gds]"
descr="M9 gds"}
C {devices/ngspice_get_value.sym} 440 290 0 0 {name=r7 node="@m.xm9.msky130_fd_pr__nfet_01v8_lvt[cgs]"
descr="M9 cgs"}
C {devices/ngspice_get_value.sym} 440 320 0 0 {name=r8 node="@m.xm9.msky130_fd_pr__nfet_01v8_lvt[cdg]"
descr="M9 cdg"}
C {devices/ngspice_get_value.sym} -460 230 0 0 {name=r13 node="@m.xm7.msky130_fd_pr__nfet_01v8_lvt[gm]"
descr="M7 gm"}
C {devices/ngspice_get_value.sym} -460 260 0 0 {name=r14 node="@m.xm7.msky130_fd_pr__nfet_01v8_lvt[gds]"
descr="M7 gds"}
C {devices/ngspice_get_value.sym} -460 290 0 0 {name=r15 node="@m.xm7.msky130_fd_pr__nfet_01v8_lvt[cgs]"
descr="M7 cgs"}
C {devices/ngspice_get_value.sym} -460 320 0 0 {name=r16 node="@m.xm7.msky130_fd_pr__nfet_01v8_lvt[cdg]"
descr="M7 cdg"}
C {devices/ngspice_get_value.sym} 630 -100 0 0 {name=r24 node="v(xcmp1.VIq)"
descr="v(xcmp1.VIq)"}
C {devices/ipin.sym} 180 -170 0 0 {name=p1 lab=Inp}
C {devices/ipin.sym} -340 180 0 0 {name=p2 lab=I_bias1}
C {devices/ipin.sym} 830 -170 0 1 {name=p3 lab=Inn}
C {devices/iopin.sym} -240 -600 2 0 {name=p4 lab=VP}
C {devices/iopin.sym} -410 360 2 0 {name=p5 lab=VN}
C {devices/opin.sym} 1590 -90 2 1 {name=p6 lab=OutN}
C {devices/opin.sym} 1230 -90 0 0 {name=p7 lab=OutP}
C {devices/lab_wire.sym} 1530 -310 0 1 {name=l1 sig_type=std_logic lab=VM1D}
C {sky130_fd_pr/nfet_01v8.sym} 570 320 0 0 {name=M10
L=0.5
W=2
nf=1
mult=12*4
ad="'int((nf+1)/2) * W/nf * 0.29'"
pd="'2*int((nf+1)/2) * (W/nf + 0.29)'"
as="'int((nf+2)/2) * W/nf * 0.29'"
ps="'2*int((nf+2)/2) * (W/nf + 0.29)'"
nrd="'0.29 / W'" nrs="'0.29 / W'"
sa=0 sb=0 sd=0
model=nfet_01v8
spiceprefix=X
}
C {sky130_fd_pr/nfet_01v8.sym} 570 230 0 0 {name=M12
L=0.15
W=2
nf=1
mult=12
ad="'int((nf+1)/2) * W/nf * 0.29'"
pd="'2*int((nf+1)/2) * (W/nf + 0.29)'"
as="'int((nf+2)/2) * W/nf * 0.29'"
ps="'2*int((nf+2)/2) * (W/nf + 0.29)'"
nrd="'0.29 / W'" nrs="'0.29 / W'"
sa=0 sb=0 sd=0
model=nfet_01v8
spiceprefix=X
}
C {sky130_fd_pr/nfet_01v8.sym} -290 320 0 0 {name=M17
L=0.5
W=2
nf=1
mult=2*4
ad="'int((nf+1)/2) * W/nf * 0.29'"
pd="'2*int((nf+1)/2) * (W/nf + 0.29)'"
as="'int((nf+2)/2) * W/nf * 0.29'"
ps="'2*int((nf+2)/2) * (W/nf + 0.29)'"
nrd="'0.29 / W'" nrs="'0.29 / W'"
sa=0 sb=0 sd=0
model=nfet_01v8
spiceprefix=X
}
C {sky130_fd_pr/nfet_01v8.sym} -290 230 0 0 {name=M18
L=0.15
W=2
nf=1
mult=2
ad="'int((nf+1)/2) * W/nf * 0.29'"
pd="'2*int((nf+1)/2) * (W/nf + 0.29)'"
as="'int((nf+2)/2) * W/nf * 0.29'"
ps="'2*int((nf+2)/2) * (W/nf + 0.29)'"
nrd="'0.29 / W'" nrs="'0.29 / W'"
sa=0 sb=0 sd=0
model=nfet_01v8
spiceprefix=X
}
C {sky130_fd_pr/cap_mim_m3_2.sym} 1810 280 0 0 {name=C1 model=cap_mim_m3_2 W=30 L=30 MF=1 spiceprefix=X}
C {sky130_fd_pr/pfet_01v8.sym} 1210 -190 0 1 {name=M4
L=0.2
W=2
nf=1
mult=12
ad="'int((nf+1)/2) * W/nf * 0.29'"
pd="'2*int((nf+1)/2) * (W/nf + 0.29)'"
as="'int((nf+2)/2) * W/nf * 0.29'"
ps="'2*int((nf+2)/2) * (W/nf + 0.29)'"
nrd="'0.29 / W'" nrs="'0.29 / W'"
sa=0 sb=0 sd=0
model=pfet_01v8
spiceprefix=X
}
C {sky130_fd_pr/res_high_po_0p35.sym} 1190 90 0 0 {name=R3
W=0.35
L=2
model=res_high_po_0p35
spiceprefix=X
mult=1}
C {sky130_fd_pr/res_high_po_0p35.sym} 1530 90 0 0 {name=R4
W=0.35
L=2
model=res_high_po_0p35
spiceprefix=X
mult=1}
C {devices/ngspice_get_value.sym} 1170 -280 0 0 {name=r19 node="v(xcmp1.VM2D)"
descr="v(xcmp1.VM2D)"}
C {devices/lab_wire.sym} 1190 -260 0 1 {name=l2 sig_type=std_logic lab=VM2D}
C {devices/ngspice_get_value.sym} 1170 -330 0 0 {name=r17 node="v(xcmp1.VM1D)"
descr="v(xcmp1.VM1D)"}
C {devices/ipin.sym} 1590 -190 0 1 {name=p8 lab=V_ref1
}
C {sky130_fd_pr/pfet_01v8.sym} 1550 -190 0 1 {name=M5
L=0.2
W=2
nf=1
mult=12
ad="'int((nf+1)/2) * W/nf * 0.29'"
pd="'2*int((nf+1)/2) * (W/nf + 0.29)'"
as="'int((nf+2)/2) * W/nf * 0.29'"
ps="'2*int((nf+2)/2) * (W/nf + 0.29)'"
nrd="'0.29 / W'" nrs="'0.29 / W'"
sa=0 sb=0 sd=0
model=pfet_01v8
spiceprefix=X
}
C {devices/ipin.sym} -190 -40 0 0 {name=p9 lab=cmm_fb}
C {devices/ngspice_get_value.sym} 1240 70 0 0 {name=r18 node="v(out_p1)"
descr="v(out_p1)"}
C {devices/ngspice_get_value.sym} 1240 70 0 0 {name=r20 node="v(out_p1)"
descr="v(out_p1)"}
C {devices/ngspice_get_value.sym} 1580 70 0 0 {name=r21 node="v(out_n1)"
descr="v(out_n1)"}
C {sky130_fd_pr/pfet_01v8.sym} 310 -540 0 0 {name=M21
L=0.5
W=2
nf=1
mult=12*4
ad="'int((nf+1)/2) * W/nf * 0.29'"
pd="'2*int((nf+1)/2) * (W/nf + 0.29)'"
as="'int((nf+2)/2) * W/nf * 0.29'"
ps="'2*int((nf+2)/2) * (W/nf + 0.29)'"
nrd="'0.29 / W'" nrs="'0.29 / W'"
sa=0 sb=0 sd=0
model=pfet_01v8
spiceprefix=X
}
C {sky130_fd_pr/pfet_01v8.sym} 310 -460 0 0 {name=M22
L=0.15
W=2
nf=1
mult=12
ad="'int((nf+1)/2) * W/nf * 0.29'"
pd="'2*int((nf+1)/2) * (W/nf + 0.29)'"
as="'int((nf+2)/2) * W/nf * 0.29'"
ps="'2*int((nf+2)/2) * (W/nf + 0.29)'"
nrd="'0.29 / W'" nrs="'0.29 / W'"
sa=0 sb=0 sd=0
model=pfet_01v8
spiceprefix=X
}
C {sky130_fd_pr/pfet_01v8.sym} -50 -540 0 1 {name=M23
L=0.5
W=2
nf=1
mult=4
ad="'int((nf+1)/2) * W/nf * 0.29'"
pd="'2*int((nf+1)/2) * (W/nf + 0.29)'"
as="'int((nf+2)/2) * W/nf * 0.29'"
ps="'2*int((nf+2)/2) * (W/nf + 0.29)'"
nrd="'0.29 / W'" nrs="'0.29 / W'"
sa=0 sb=0 sd=0
model=pfet_01v8
spiceprefix=X
}
C {sky130_fd_pr/pfet_01v8.sym} -50 -460 0 1 {name=M24
L=0.15
W=2
nf=1
mult=1
ad="'int((nf+1)/2) * W/nf * 0.29'"
pd="'2*int((nf+1)/2) * (W/nf + 0.29)'"
as="'int((nf+2)/2) * W/nf * 0.29'"
ps="'2*int((nf+2)/2) * (W/nf + 0.29)'"
nrd="'0.29 / W'" nrs="'0.29 / W'"
sa=0 sb=0 sd=0
model=pfet_01v8
spiceprefix=X
}
C {sky130_fd_pr/cap_mim_m3_2.sym} 120 -510 0 0 {name=C3 model=cap_mim_m3_2 W=30 L=30 MF=1 spiceprefix=X}
C {sky130_fd_pr/nfet_01v8.sym} -90 -40 0 0 {name=M3
L=0.5
W=2
nf=1
mult=4
ad="'int((nf+1)/2) * W/nf * 0.29'"
pd="'2*int((nf+1)/2) * (W/nf + 0.29)'"
as="'int((nf+2)/2) * W/nf * 0.29'"
ps="'2*int((nf+2)/2) * (W/nf + 0.29)'"
nrd="'0.29 / W'" nrs="'0.29 / W'"
sa=0 sb=0 sd=0
model=nfet_01v8
spiceprefix=X
}
C {devices/lab_wire.sym} -70 -340 0 1 {name=l3 sig_type=std_logic lab=VM3D}
C {devices/ngspice_get_value.sym} -70 -290 0 0 {name=r22 node="v(xcmp1.VM3D)"
descr="v(xcmp1.VM3D)"}
C {devices/ngspice_get_value.sym} -290 180 0 0 {name=r23 node="v(V_IBias)"
descr="v(V_IBias)"}
C {sky130_fd_pr/pfet_01v8.sym} 690 -540 0 0 {name=M6
L=0.5
W=2
nf=1
mult=12*4
ad="'int((nf+1)/2) * W/nf * 0.29'"
pd="'2*int((nf+1)/2) * (W/nf + 0.29)'"
as="'int((nf+2)/2) * W/nf * 0.29'"
ps="'2*int((nf+2)/2) * (W/nf + 0.29)'"
nrd="'0.29 / W'" nrs="'0.29 / W'"
sa=0 sb=0 sd=0
model=pfet_01v8
spiceprefix=X
}
C {sky130_fd_pr/pfet_01v8.sym} 690 -460 0 0 {name=M7
L=0.15
W=2
nf=1
mult=12
ad="'int((nf+1)/2) * W/nf * 0.29'"
pd="'2*int((nf+1)/2) * (W/nf + 0.29)'"
as="'int((nf+2)/2) * W/nf * 0.29'"
ps="'2*int((nf+2)/2) * (W/nf + 0.29)'"
nrd="'0.29 / W'" nrs="'0.29 / W'"
sa=0 sb=0 sd=0
model=pfet_01v8
spiceprefix=X
}
C {sky130_fd_pr/res_high_po_0p35.sym} 1490 90 0 1 {name=R1
W=0.35
L=2
model=res_high_po_0p35
spiceprefix=X
mult=1}
C {sky130_fd_pr/res_high_po_0p35.sym} 1150 90 0 1 {name=R2
W=0.35
L=2
model=res_high_po_0p35
spiceprefix=X
mult=1}