| v {xschem version=3.0.0 file_version=1.2 } |
| G {} |
| K {} |
| V {} |
| S {} |
| E {} |
| T {Nom V: 1.4V} 700 -20 0 0 0.4 0.4 {} |
| T {Max V: 0.9V |
| Nom V: 0.6V |
| Min V: 0.3V |
| } 1380 -370 0 0 0.4 0.4 {} |
| N 680 -220 710 -220 { lab=Inn} |
| N 330 -220 370 -220 { lab=Inp} |
| N 410 -190 410 -10 { lab=VM3D} |
| N 410 230 500 230 { lab=VN} |
| N 500 230 500 360 { lab=VN} |
| N 410 320 500 320 { lab=VN} |
| N 410 260 410 290 { lab=#net1} |
| N 410 350 410 360 { lab=VN} |
| N -300 230 -220 230 { lab=VN} |
| N -220 230 -220 360 { lab=VN} |
| N -300 320 -220 320 { lab=VN} |
| N -300 260 -300 290 { lab=#net2} |
| N -300 350 -300 360 { lab=VN} |
| N -410 360 -300 360 { lab=VN} |
| N -340 230 -340 320 { lab=VM4D} |
| N -340 200 -340 230 { lab=VM4D} |
| N -300 180 -240 180 { lab=VM4D} |
| N -300 180 -300 200 { lab=VM4D} |
| N -340 180 -300 180 { lab=VM4D} |
| N -340 180 -340 200 { lab=VM4D} |
| N 370 180 370 320 { lab=VM4D} |
| N 410 -10 410 200 { lab=VM3D} |
| N 450 180 660 180 { lab=VM4D} |
| N 810 310 810 360 { lab=VN} |
| N 810 180 810 250 { lab=VM4D} |
| N 1000 -250 1000 -220 { lab=OutP} |
| N 1000 -280 1000 -250 { lab=OutP} |
| N 1370 -250 1370 -220 { lab=OutN} |
| N 1370 -280 1370 -250 { lab=OutN} |
| N 1370 -220 1370 -190 { lab=OutN} |
| N 1370 -330 1370 -280 { lab=OutN} |
| N -340 -600 520 -600 { lab=VP} |
| N -240 180 450 180 { lab=VM4D} |
| N 520 -600 520 -570 { lab=VP} |
| N 520 -510 520 -490 { lab=#net3} |
| N 520 -460 610 -460 { lab=VP} |
| N 610 -600 610 -460 { lab=VP} |
| N 520 -540 600 -540 { lab=VP} |
| N 600 -540 610 -540 { lab=VP} |
| N 480 -460 480 -410 { lab=I_bias2} |
| N 480 -540 480 -460 { lab=I_bias2} |
| N -140 -600 -140 -570 { lab=VP} |
| N -140 -510 -140 -490 { lab=#net4} |
| N -220 -460 -140 -460 { lab=VP} |
| N -220 -600 -220 -460 { lab=VP} |
| N -210 -540 -140 -540 { lab=VP} |
| N -220 -540 -210 -540 { lab=VP} |
| N -100 -540 -100 -460 { lab=I_bias2} |
| N -140 -410 480 -410 { lab=I_bias2} |
| N -100 -460 -100 -410 { lab=I_bias2} |
| N -180 -350 -140 -350 { lab=I_bias2} |
| N -140 -430 -140 -350 { lab=I_bias2} |
| N 330 -480 330 -410 { lab=I_bias2} |
| N 330 -600 330 -540 { lab=VP} |
| N 640 -190 640 -10 { lab=VM6D} |
| N 640 230 730 230 { lab=VN} |
| N 730 230 730 360 { lab=VN} |
| N 640 320 730 320 { lab=VN} |
| N 640 260 640 290 { lab=#net5} |
| N 640 350 640 360 { lab=VN} |
| N 600 180 600 320 { lab=VM4D} |
| N 640 -10 640 200 { lab=VM6D} |
| N 410 -320 410 -250 { lab=VIq} |
| N 410 -320 520 -320 { lab=VIq} |
| N 520 -430 520 -320 { lab=VIq} |
| N 520 -320 640 -320 { lab=VIq} |
| N 640 -320 640 -250 { lab=VIq} |
| N 550 -220 640 -220 { lab=VIq} |
| N 550 -320 550 -220 { lab=VIq} |
| N 410 -220 490 -220 { lab=VIq} |
| N 490 -320 490 -220 { lab=VIq} |
| N -300 -230 -300 180 { lab=VM4D} |
| N -300 -290 -300 -260 { lab=VP} |
| N -300 -600 -300 -290 { lab=VP} |
| N -380 -260 -340 -260 { lab=cmm_fb} |
| N 410 20 1000 20 { lab=VM3D} |
| N 1000 -70 1000 20 { lab=VM3D} |
| N 1000 -460 1000 -280 { lab=OutP} |
| N 1000 -100 1000 -70 { lab=VM3D} |
| N 1370 -100 1370 -70 { lab=VM6D} |
| N 640 70 1370 70 { lab=VM6D} |
| N 1370 -70 1370 70 { lab=VM6D} |
| N 1370 -190 1370 -130 { lab=OutN} |
| N 930 -190 960 -190 { lab=V_ref1} |
| N 960 -190 960 -100 { lab=V_ref1} |
| N 960 -190 1330 -190 { lab=V_ref1} |
| N 1330 -190 1330 -100 { lab=V_ref1} |
| N 1000 -220 1000 -130 { lab=OutP} |
| N 1000 -240 1030 -240 { lab=OutP} |
| N 1370 -240 1410 -240 { lab=OutN} |
| N 1370 -460 1370 -330 { lab=OutN} |
| N -300 360 1130 360 { lab=VN} |
| N 1370 -600 1370 -520 { lab=VP} |
| N 1000 -600 1000 -520 { lab=VP} |
| N 520 -600 1370 -600 { lab=VP} |
| N 660 180 810 180 { lab=VM4D} |
| N 10 -600 10 -570 { lab=VP} |
| N 10 -510 10 -490 { lab=#net6} |
| N -70 -460 10 -460 { lab=VP} |
| N -70 -600 -70 -460 { lab=VP} |
| N -60 -540 10 -540 { lab=VP} |
| N -70 -540 -60 -540 { lab=VP} |
| N 50 -540 50 -460 { lab=I_bias2} |
| N 50 -460 50 -410 { lab=I_bias2} |
| N 10 -430 10 180 { lab=VM4D} |
| N 1130 -350 1130 360 { lab=VN} |
| N 1000 -460 1050 -460 { lab=OutP} |
| N 1000 -520 1050 -520 { lab=VP} |
| N 1320 -520 1370 -520 { lab=VP} |
| N 1320 -460 1370 -460 { lab=OutN} |
| N 1020 -490 1030 -490 { lab=VN} |
| N 1030 -490 1030 -410 { lab=VN} |
| N 1030 -410 1340 -410 { lab=VN} |
| N 1340 -490 1340 -410 { lab=VN} |
| N 1340 -490 1350 -490 { lab=VN} |
| N 1130 -410 1130 -350 { lab=VN} |
| C {devices/code.sym} 1840 -280 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/code.sym} 1840 -100 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 {devices/ngspice_get_value.sym} 630 -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} 630 -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} 630 -490 0 0 {name=r35 node="@m.xm6.msky130_fd_pr__pfet_01v8_lvt[cgs]" |
| descr="M6 cgs"} |
| C {devices/ngspice_get_value.sym} 630 -460 0 0 {name=r36 node="@m.xm6.msky130_fd_pr__pfet_01v8_lvt[cdg]" |
| descr="M6 cdg"} |
| C {devices/lab_wire.sym} 600 -320 0 1 {name=l7 sig_type=std_logic lab=VIq} |
| C {devices/ngspice_get_value.sym} 260 230 0 0 {name=r5 node="@m.xm9.msky130_fd_pr__nfet_01v8_lvt[gm]" |
| descr="M9 gm" } |
| C {devices/ngspice_get_value.sym} 260 260 0 0 {name=r6 node="@m.xm9.msky130_fd_pr__nfet_01v8_lvt[gds]" |
| descr="M9 gds"} |
| C {devices/ngspice_get_value.sym} 260 290 0 0 {name=r7 node="@m.xm9.msky130_fd_pr__nfet_01v8_lvt[cgs]" |
| descr="M9 cgs"} |
| C {devices/ngspice_get_value.sym} 260 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} 580 -340 0 0 {name=r24 node="v(xcmp_p1.VIq)" |
| descr="v(xcmp_p1.VIq)"} |
| C {devices/ipin.sym} 330 -220 0 0 {name=p1 lab=Inp} |
| C {devices/ipin.sym} -380 -260 0 0 {name=p2 lab=cmm_fb} |
| C {devices/ipin.sym} 710 -220 0 1 {name=p3 lab=Inn} |
| C {devices/iopin.sym} -340 -600 2 0 {name=p4 lab=VP} |
| C {devices/iopin.sym} -410 360 2 0 {name=p5 lab=VN} |
| C {devices/opin.sym} 1410 -240 2 1 {name=p6 lab=OutN} |
| C {devices/opin.sym} 1030 -240 0 0 {name=p7 lab=OutP} |
| C {sky130_fd_pr/nfet_01v8.sym} 390 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} 390 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} -320 320 0 0 {name=M17 |
| 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 {sky130_fd_pr/nfet_01v8.sym} -320 230 0 0 {name=M18 |
| 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=nfet_01v8 |
| spiceprefix=X |
| } |
| C {sky130_fd_pr/cap_mim_m3_2.sym} 810 280 0 0 {name=C1 model=cap_mim_m3_2 W=30 L=30 MF=1 spiceprefix=X} |
| C {sky130_fd_pr/res_high_po_0p35.sym} 1000 -490 0 1 {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} 1370 -490 0 0 {name=R4 |
| W=0.35 |
| L=2 |
| model=res_high_po_0p35 |
| spiceprefix=X |
| mult=1} |
| C {devices/ngspice_get_value.sym} 840 -290 0 0 {name=r19 node="v(xcmp1.VM2D)" |
| descr="v(xcmp1.VM2D)"} |
| C {devices/ngspice_get_value.sym} 840 -340 0 0 {name=r17 node="v(xcmp1.VM1D)" |
| descr="v(xcmp1.VM1D)"} |
| C {devices/ipin.sym} 930 -190 0 0 {name=p8 lab=V_ref1 |
| } |
| C {devices/ipin.sym} -180 -350 0 0 {name=p9 lab=I_bias2} |
| C {devices/ngspice_get_value.sym} 1560 -470 0 0 {name=r18 node="v(out_p1)" |
| descr="v(out_p1)"} |
| C {devices/ngspice_get_value.sym} 860 -400 0 0 {name=r20 node="v(out_p1)" |
| descr="v(out_p1)"} |
| C {devices/ngspice_get_value.sym} 1440 -540 0 0 {name=r21 node="v(out_n1)" |
| descr="v(out_n1)"} |
| C {sky130_fd_pr/pfet_01v8.sym} 500 -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} 500 -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} -120 -540 0 1 {name=M23 |
| 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=pfet_01v8 |
| spiceprefix=X |
| } |
| C {sky130_fd_pr/pfet_01v8.sym} -120 -460 0 1 {name=M24 |
| 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=pfet_01v8 |
| spiceprefix=X |
| } |
| C {sky130_fd_pr/cap_mim_m3_2.sym} 330 -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} 980 -100 0 0 {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 |
| spiceprefix=X |
| } |
| C {sky130_fd_pr/pfet_01v8.sym} -320 -260 0 0 {name=M4 |
| L=0.2 |
| 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/nfet_01v8.sym} 1350 -100 0 0 {name=M7 |
| 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 |
| spiceprefix=X |
| } |
| C {devices/lab_wire.sym} 410 -80 0 1 {name=l1 sig_type=std_logic lab=VM3D} |
| C {devices/lab_wire.sym} 640 -80 0 1 {name=l2 sig_type=std_logic lab=VM6D} |
| C {devices/ngspice_get_value.sym} 410 -40 0 0 {name=r1 node="v(xcmp_p1.VM3D)" |
| descr="v(xcmp_p1.VM3D)"} |
| C {devices/ngspice_get_value.sym} 640 -40 0 0 {name=r2 node="v(xcmp_p1.VM6D)" |
| descr="v(xcmp_p1.VM6D)"} |
| C {devices/lab_wire.sym} -300 -70 0 1 {name=l3 sig_type=std_logic lab=VM4D} |
| C {devices/ngspice_get_value.sym} -300 -30 0 0 {name=r3 node="v(xcmp_p1.VM4D)" |
| descr="v(xcmp_p1.VM4D)"} |
| C {sky130_fd_pr/pfet_01v8_lvt.sym} 390 -220 0 0 {name=M11 |
| L=0.35 |
| 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_lvt |
| spiceprefix=X |
| } |
| C {sky130_fd_pr/pfet_01v8_lvt.sym} 660 -220 0 1 {name=M3 |
| L=0.35 |
| 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_lvt |
| spiceprefix=X |
| } |
| C {sky130_fd_pr/nfet_01v8.sym} 620 230 0 0 {name=M1 |
| 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} 620 320 0 0 {name=M5 |
| 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 {devices/ngspice_get_value.sym} -140 -350 0 0 {name=r4 node="v(xcmp_p1.VM24D)" |
| descr="v(xcmp_p1.VM24D)"} |
| C {sky130_fd_pr/res_high_po_0p35.sym} 1050 -490 0 0 {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} 1320 -490 0 1 {name=R2 |
| W=0.35 |
| L=2 |
| model=res_high_po_0p35 |
| spiceprefix=X |
| mult=1} |
| C {sky130_fd_pr/pfet_01v8.sym} 30 -540 0 1 {name=M6 |
| 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=pfet_01v8 |
| spiceprefix=X |
| } |
| C {sky130_fd_pr/pfet_01v8.sym} 30 -460 0 1 {name=M8 |
| 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=pfet_01v8 |
| spiceprefix=X |
| } |