Long live Github
diff --git a/xschem/BGR_lvs.sch b/xschem/BGR_lvs.sch new file mode 100644 index 0000000..525fd48 --- /dev/null +++ b/xschem/BGR_lvs.sch
@@ -0,0 +1,1146 @@ +v {xschem version=3.0.0 file_version=1.2 } +G {} +K {} +V {} +S {} +E {} +T {Itail = 100uA +Iout = 460uA} -810 -310 0 0 0.4 0.4 {} +T {Itail = 150uA +Iout = 460uA} 460 -340 0 0 0.4 0.4 {} +N -970 -40 -970 -10 { lab=VSS} +N -1030 -70 -970 -70 { lab=VSS} +N -1030 -70 -1030 -10 { lab=VSS} +N -970 -670 -750 -670 { lab=VDD} +N -510 -670 -310 -670 { lab=VDD} +N -510 -330 -510 -310 { lab=Vb} +N -510 -410 -510 -330 { lab=Vb} +N 0 -460 0 -330 { lab=Vbg} +N -510 -250 -510 -230 { lab=Vb} +N -510 -540 -510 -470 { lab=Vb} +N -510 -170 -510 -100 { lab=vbneg} +N -470 -70 -470 -10 { lab=VSS} +N -510 -40 -510 -10 { lab=VSS} +N -550 -70 -510 -70 { lab=VSS} +N -550 -70 -550 -10 { lab=VSS} +N -930 -70 -910 -70 { lab=VSS} +N -910 -70 -910 -10 { lab=VSS} +N -610 -200 -530 -200 { lab=VSS} +N -610 -200 -610 -10 { lab=VSS} +N -970 -250 -970 -100 { lab=Va} +N -620 -330 -510 -330 { lab=Vb} +N -1270 -40 -1260 -40 { lab=VSS} +N -1310 -70 -1310 -40 { lab=Vota_bias1} +N -1310 -70 -1270 -70 { lab=Vota_bias1} +N -1260 -40 -1260 -10 { lab=VSS} +N -120 -670 0 -670 { lab=VDD} +N -510 -670 -510 -600 { lab=VDD} +N -120 -10 0 -10 { lab=VSS} +N -970 -330 -970 -310 { lab=Va} +N -550 -580 -550 -570 { lab=vgate} +N -1010 -580 -1010 -570 { lab=vgate} +N -970 -540 -970 -480 { lab=Va} +N -1270 -570 -1260 -570 { lab=VDD} +N -1260 -600 -1260 -570 { lab=VDD} +N -1270 -600 -1260 -600 { lab=VDD} +N -970 -570 -960 -570 { lab=VDD} +N -960 -600 -960 -570 { lab=VDD} +N -970 -600 -960 -600 { lab=VDD} +N -970 -670 -970 -600 { lab=VDD} +N -510 -570 -500 -570 { lab=VDD} +N -500 -600 -500 -570 { lab=VDD} +N -510 -600 -500 -600 { lab=VDD} +N -1230 -670 -970 -670 { lab=VDD} +N -70 -580 -40 -580 { lab=vgate} +N -1310 -580 -1310 -570 { lab=vgate} +N -1270 -670 -1270 -600 { lab=VDD} +N -1270 -350 -1270 -70 { lab=Vota_bias1} +N -970 -330 -900 -330 { lab=Va} +N -1030 -10 -970 -10 { lab=VSS} +N -1100 -10 -1030 -10 { lab=VSS} +N -1220 -10 -1100 -10 { lab=VSS} +N -470 -10 -380 -10 { lab=VSS} +N -510 -10 -470 -10 { lab=VSS} +N -550 -10 -510 -10 { lab=VSS} +N -610 -10 -550 -10 { lab=VSS} +N -970 -10 -910 -10 { lab=VSS} +N -910 -10 -850 -10 { lab=VSS} +N 0 -270 0 -250 { lab=vbe3} +N -310 -670 -120 -670 { lab=VDD} +N -1010 -580 -790 -580 { lab=vgate} +N -790 -580 -310 -580 { lab=vgate} +N -970 -420 -970 -330 { lab=Va} +N -1270 -670 -1230 -670 { lab=VDD} +N -1260 -10 -1220 -10 { lab=VSS} +N -1170 -580 -1010 -580 { lab=vgate} +N -1310 -580 -1170 -580 { lab=vgate} +N 0 -670 300 -670 { +lab=VDD} +N -720 -330 -620 -330 { +lab=Vb} +N -720 -360 -720 -330 { +lab=Vb} +N -900 -330 -760 -330 { +lab=Va} +N -760 -360 -760 -330 { +lab=Va} +N -740 -580 -740 -530 { +lab=vgate} +N -750 -670 -510 -670 { +lab=VDD} +N -310 -580 -70 -580 { +lab=vgate} +N -850 -10 -610 -10 { +lab=VSS} +N -380 -10 -120 -10 { +lab=VSS} +N -860 -460 -800 -460 { +lab=VSS} +N -660 -460 -620 -460 { +lab=VDD} +N -660 -430 -640 -430 { +lab=Vota_bias1} +N 0 -250 0 -140 { +lab=vbe3} +N 0 -80 0 -10 { +lab=VSS} +N 40 -110 40 -10 { +lab=VSS} +N 0 -400 140 -400 { +lab=Vbg} +N -1270 -540 -1270 -470 { +lab=Vota_bias1} +N -1270 -410 -1270 -350 { +lab=Vota_bias1} +N -90 -300 -20 -300 { +lab=VSS} +N -90 -300 -90 -10 { +lab=VSS} +N -40 -580 -40 -570 { +lab=vgate} +N 0 -670 0 -600 { +lab=VDD} +N 0 -540 0 -520 { +lab=Vbg} +N -1270 -10 -1260 -10 { +lab=VSS} +N -0 -570 20 -570 { +lab=VDD} +N 20 -600 20 -570 { +lab=VDD} +N 0 -600 20 -600 { +lab=VDD} +N -220 -390 -220 -10 { +lab=VSS} +N -220 -420 -210 -420 { lab=VSS} +N 410 -670 440 -670 { +lab=VDD} +N 440 -670 440 -500 { +lab=VDD} +N 280 -440 340 -440 { +lab=vd4} +N 560 -420 620 -420 { +lab=vcurrent_gate} +N 440 -670 660 -670 { +lab=VDD} +N 440 -360 440 -320 { +lab=VSS} +N 660 -390 660 -370 { +lab=vd4} +N 660 -310 660 -280 { +lab=vd4} +N 660 -440 660 -390 { +lab=vd4} +N 600 -470 600 -420 { +lab=vcurrent_gate} +N 600 -470 620 -470 { +lab=vcurrent_gate} +N 660 -670 660 -500 { +lab=VDD} +N 840 -390 840 -370 { +lab=voutb2} +N 840 -440 840 -390 { +lab=voutb2} +N 620 -420 780 -420 { +lab=vcurrent_gate} +N 840 -670 840 -500 { +lab=VDD} +N 660 -670 840 -670 { +lab=VDD} +N 790 -150 790 -10 { +lab=VSS} +N 660 -470 710 -470 { +lab=VDD} +N 710 -520 710 -470 { +lab=VDD} +N 660 -520 710 -520 { +lab=VDD} +N 840 -470 900 -470 { +lab=VDD} +N 900 -520 900 -470 { +lab=VDD} +N 840 -520 900 -520 { +lab=VDD} +N 300 -400 340 -400 { +lab=Vbg} +N 300 -670 410 -670 { +lab=VDD} +N 370 -10 660 -10 { +lab=VSS} +N 840 -10 910 -10 { +lab=VSS} +N 410 -520 410 -500 { +lab=Vota_bias1} +N 660 -280 660 -250 { +lab=vd4} +N 660 -250 660 -220 { +lab=vd4} +N 840 -100 840 -70 { +lab=voutb1} +N 840 -200 840 -160 { +lab=voutb2} +N 840 -310 840 -260 { +lab=voutb2} +N 880 -40 910 -40 { +lab=voutb1} +N 910 -80 910 -40 { +lab=voutb1} +N 910 -180 910 -130 { +lab=voutb2} +N 840 -180 910 -180 { +lab=voutb2} +N 790 -130 840 -130 { +lab=VSS} +N 790 -40 840 -40 { +lab=VSS} +N 880 -130 910 -130 { +lab=voutb2} +N 840 -80 910 -80 { +lab=voutb1} +N 660 -10 790 -10 { +lab=VSS} +N 790 -10 840 -10 { +lab=VSS} +N 660 -220 660 -160 { +lab=vd4} +N 660 -160 660 -130 { +lab=vd4} +N 0 -10 370 -10 { +lab=VSS} +N -220 -500 -220 -450 { +lab=vgate} +N -220 -580 -220 -500 { +lab=vgate} +N 280 -310 280 -280 { +lab=vd4} +N 280 -400 280 -310 { +lab=vd4} +N 280 -440 280 -400 { +lab=vd4} +N 510 -420 560 -420 { +lab=vcurrent_gate} +N 780 -420 800 -420 { +lab=vcurrent_gate} +N 800 -470 800 -420 { +lab=vcurrent_gate} +N -170 -900 -170 -860 { +lab=#net1} +N -250 -830 -210 -830 { +lab=porst} +N -250 -930 -250 -830 { +lab=porst} +N -250 -930 -210 -930 { +lab=porst} +N -170 -990 -170 -960 { +lab=VDD} +N -30 -900 -30 -860 { +lab=#net2} +N -30 -990 -30 -960 { +lab=VDD} +N -80 -830 -70 -830 { +lab=#net1} +N -80 -930 -80 -830 { +lab=#net1} +N -80 -930 -70 -930 { +lab=#net1} +N -170 -880 -80 -880 { +lab=#net1} +N -170 -990 -30 -990 { +lab=VDD} +N -170 -800 -170 -780 { +lab=VSS} +N -170 -780 -30 -780 { +lab=VSS} +N -30 -800 -30 -780 { +lab=VSS} +N -170 -930 -150 -930 { +lab=VDD} +N -150 -960 -150 -930 { +lab=VDD} +N -170 -960 -150 -960 { +lab=VDD} +N -30 -930 -10 -930 { +lab=VDD} +N -10 -960 -10 -930 { +lab=VDD} +N -30 -960 -10 -960 { +lab=VDD} +N -170 -830 -150 -830 { +lab=VSS} +N -150 -830 -150 -800 { +lab=VSS} +N -170 -800 -150 -800 { +lab=VSS} +N -30 -830 -10 -830 { +lab=VSS} +N -10 -830 -10 -800 { +lab=VSS} +N -30 -800 -10 -800 { +lab=VSS} +N -210 -420 -200 -420 { +lab=VSS} +N -200 -420 -200 -390 { +lab=VSS} +N -220 -390 -200 -390 { +lab=VSS} +N 160 -880 160 -840 { +lab=porst_buff} +N 140 -880 160 -880 { +lab=porst_buff} +N -30 -880 80 -880 { +lab=#net2} +N 160 -780 160 -750 { +lab=VSS} +N 840 -260 840 -200 { +lab=voutb2} +N 1060 -100 1060 -70 { +lab=#net3} +N 910 -10 1060 -10 { +lab=VSS} +N 1060 -10 1230 -10 { +lab=VSS} +N 1230 -100 1230 -70 { +lab=#net4} +N 1060 -200 1060 -160 { +lab=Iout0} +N 1230 -200 1230 -160 { +lab=Iout1} +N 910 -40 1020 -40 { +lab=voutb1} +N 910 -130 1020 -130 { +lab=voutb2} +N 1160 -40 1190 -40 { +lab=voutb1} +N 1160 -130 1190 -130 { +lab=voutb2} +N 1060 -130 1090 -130 { +lab=VSS} +N 1090 -130 1090 -100 { +lab=VSS} +N 1060 -40 1090 -40 { +lab=VSS} +N 1090 -40 1090 -10 { +lab=VSS} +N 1230 -130 1260 -130 { +lab=VSS} +N 1260 -130 1260 -100 { +lab=VSS} +N 1230 -40 1260 -40 { +lab=VSS} +N 1260 -40 1260 -10 { +lab=VSS} +N 1230 -10 1260 -10 { +lab=VSS} +N 280 -280 660 -280 { +lab=vd4} +N -1310 -10 -1270 -10 { +lab=VSS} +N 1400 -100 1400 -70 { +lab=#net5} +N 1400 -200 1400 -160 { +lab=Iout2} +N 1330 -40 1360 -40 { +lab=voutb1} +N 1330 -130 1360 -130 { +lab=voutb2} +N 1400 -130 1430 -130 { +lab=VSS} +N 1430 -130 1430 -100 { +lab=VSS} +N 1400 -40 1430 -40 { +lab=VSS} +N 1430 -40 1430 -10 { +lab=VSS} +N 1400 -10 1430 -10 { +lab=VSS} +N 1260 -10 1400 -10 { +lab=VSS} +N 1610 -100 1610 -70 { +lab=#net6} +N 1610 -200 1610 -160 { +lab=Iout3} +N 1540 -40 1570 -40 { +lab=voutb1} +N 1540 -130 1570 -130 { +lab=voutb2} +N 1610 -130 1640 -130 { +lab=VSS} +N 1640 -130 1640 -100 { +lab=VSS} +N 1610 -40 1640 -40 { +lab=VSS} +N 1640 -40 1640 -10 { +lab=VSS} +N 1610 -10 1640 -10 { +lab=VSS} +N 1780 -100 1780 -70 { +lab=#net7} +N 1780 -200 1780 -160 { +lab=Iout4} +N 1710 -40 1740 -40 { +lab=voutb1} +N 1710 -130 1740 -130 { +lab=voutb2} +N 1780 -130 1810 -130 { +lab=VSS} +N 1810 -130 1810 -100 { +lab=VSS} +N 1780 -40 1810 -40 { +lab=VSS} +N 1810 -40 1810 -10 { +lab=VSS} +N 1780 -10 1810 -10 { +lab=VSS} +N 1640 -10 1780 -10 { +lab=VSS} +N 1430 -10 1610 -10 { +lab=VSS} +N 1970 -100 1970 -70 { +lab=#net8} +N 1970 -200 1970 -160 { +lab=Iout5} +N 1900 -40 1930 -40 { +lab=voutb1} +N 1900 -130 1930 -130 { +lab=voutb2} +N 1970 -130 2000 -130 { +lab=VSS} +N 2000 -130 2000 -100 { +lab=VSS} +N 1970 -40 2000 -40 { +lab=VSS} +N 2000 -40 2000 -10 { +lab=VSS} +N 1970 -10 2000 -10 { +lab=VSS} +N 2140 -100 2140 -70 { +lab=#net9} +N 2140 -200 2140 -160 { +lab=Iout6} +N 2070 -40 2100 -40 { +lab=voutb1} +N 2070 -130 2100 -130 { +lab=voutb2} +N 2140 -130 2170 -130 { +lab=VSS} +N 2170 -130 2170 -100 { +lab=VSS} +N 2140 -40 2170 -40 { +lab=VSS} +N 2170 -40 2170 -10 { +lab=VSS} +N 2140 -10 2170 -10 { +lab=VSS} +N 2000 -10 2140 -10 { +lab=VSS} +N 1810 -10 1970 -10 { +lab=VSS} +N 470 -160 660 -160 { +lab=vd4} +N 170 -160 170 -10 { +lab=VSS} +N 200 -140 260 -140 { +lab=VSS} +N 260 -140 320 -140 { +lab=VSS} +N 320 -140 380 -140 { +lab=VSS} +N 380 -140 440 -140 { +lab=VSS} +N 280 -140 280 -10 { +lab=VSS} +N 1050 -460 1090 -460 { +lab=VSS} +N 1050 -460 1050 -400 { +lab=VSS} +N 1050 -400 1090 -400 { +lab=VSS} +N 1130 -430 1180 -430 { +lab=VSS} +N 1180 -430 1180 -370 { +lab=VSS} +N 1050 -370 1180 -370 { +lab=VSS} +N 1050 -400 1050 -370 { +lab=VSS} +N 1090 -100 1090 -40 { +lab=VSS} +N 1260 -100 1260 -40 { +lab=VSS} +N 1430 -100 1430 -40 { +lab=VSS} +N 1640 -100 1640 -40 { +lab=VSS} +N 1810 -100 1810 -40 { +lab=VSS} +N 2000 -100 2000 -40 { +lab=VSS} +N 2170 -100 2170 -40 { +lab=VSS} +N 660 -130 660 -80 { +lab=vd4} +N 610 -80 660 -80 { +lab=vd4} +N 530 -80 550 -80 { +lab=#net10} +N 440 -80 470 -80 { +lab=VSS} +N 440 -80 440 -10 { +lab=VSS} +N 500 -60 500 -10 { +lab=VSS} +N 580 -60 580 -10 { +lab=VSS} +N 1360 -400 1360 -370 { +lab=VSS} +N 1290 -340 1320 -340 { +lab=VSS} +N 1290 -430 1320 -430 { +lab=VSS} +N 1360 -430 1390 -430 { +lab=VSS} +N 1390 -430 1390 -400 { +lab=VSS} +N 1360 -340 1390 -340 { +lab=VSS} +N 1390 -340 1390 -310 { +lab=VSS} +N 1360 -310 1390 -310 { +lab=VSS} +N 1390 -400 1390 -340 { +lab=VSS} +N 1290 -430 1290 -340 { +lab=VSS} +N 1290 -310 1360 -310 { +lab=VSS} +N 1290 -340 1290 -310 { +lab=VSS} +N 1290 -460 1290 -430 { +lab=VSS} +N 1290 -460 1360 -460 { +lab=VSS} +N 1360 -460 1390 -460 { +lab=VSS} +N 1390 -460 1390 -430 { +lab=VSS} +N 1550 -520 1550 -480 { +lab=VDD} +N 1480 -480 1550 -480 { +lab=VDD} +N 1480 -550 1480 -480 { +lab=VDD} +N 1480 -550 1510 -550 { +lab=VDD} +N 1510 -610 1510 -550 { +lab=VDD} +N 1510 -610 1550 -610 { +lab=VDD} +N 1550 -610 1550 -580 { +lab=VDD} +N 1550 -550 1580 -550 { +lab=VDD} +N 1580 -610 1580 -550 { +lab=VDD} +N 1550 -610 1580 -610 { +lab=VDD} +N -1270 -470 -1270 -410 { +lab=Vota_bias1} +N -970 -310 -970 -250 { +lab=Va} +N -970 -480 -970 -420 { +lab=Va} +N -510 -310 -510 -250 { +lab=Vb} +N -510 -470 -510 -410 { +lab=Vb} +N 0 -520 0 -460 { +lab=Vbg} +N 660 -370 660 -310 { +lab=vd4} +N 840 -370 840 -310 { +lab=voutb2} +N 1360 -380 1390 -380 { +lab=VSS} +C {sky130_fd_pr/pnp_05v5.sym} -950 -70 0 1 {name=Q2 +model=pnp_05v5_W3p40L3p40 +spiceprefix=X +} +C {devices/lab_pin.sym} -900 -330 3 0 {name=l5 lab=Va} +C {devices/lab_pin.sym} -620 -330 3 0 {name=l6 lab=Vb} +C {sky130_fd_pr/pnp_05v5.sym} -490 -70 0 1 {name=Q1 +model="pnp_05v5_W3p40L3p40 m=34" +spiceprefix=X +} +C {devices/lab_pin.sym} -510 -140 0 0 {name=l4 lab=vbneg} +C {devices/lab_wire.sym} -820 -580 0 0 {name=l11 lab=vgate} +C {sky130_fd_pr/nfet_01v8_lvt.sym} -1290 -40 0 0 {name=Mota_bias_n +L=4 +W=5 +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_lvt +spiceprefix=X +} +C {sky130_fd_pr/pfet_01v8_lvt.sym} -1290 -570 0 0 {name=Mota_bias_p +L=1 +W=1 +nf=1 +mult=10 +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} -990 -570 0 0 {name=Mfeedback_mir +L=1 +W=1 +nf=1 +mult=28 +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} -530 -570 0 0 {name=Mfeedback_mir1 +L=1 +W=1 +nf=1 +mult=28 +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} -20 -570 0 0 {name=Mfeedback_mir2 +L=1 +W=1 +nf=1 +mult=28 +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 {devices/ngspice_probe.sym} -510 -140 0 0 {name=r9} +C {devices/lab_wire.sym} -620 -460 0 1 {name=l14 lab=VDD} +C {devices/lab_pin.sym} 0 -190 0 0 {name=l15 lab=vbe3} +C {sky130_fd_pr/pnp_05v5.sym} 20 -110 0 1 {name=Q3 +model=pnp_05v5_W3p40L3p40 +*model="pnp_05v5_W3p40L3p40 m=1" +spiceprefix=X +} +C {devices/lab_pin.sym} -1310 -70 2 1 {name=l2 lab=Vota_bias1} +C {devices/lab_pin.sym} -640 -430 2 0 {name=l18 lab=Vota_bias1} +C {devices/lab_pin.sym} -260 -420 0 0 {name=l26 lab=porst_buff} +C {sky130_fd_pr/pfet_01v8_lvt.sym} 640 -470 0 0 {name=M11 +L=1 +W=1 +nf=1 +mult=5 +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} 820 -470 0 0 {name=M8 +L=1 +W=1 +nf=1 +mult=5 +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_lvt.sym} 860 -40 0 1 {name=M4 +L=2 +W=8 +nf=1 +mult=8 +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/lab_pin.sym} 840 -410 0 1 {name=l24 lab=voutb2} +C {devices/lab_pin.sym} 660 -400 0 1 {name=l25 lab=vd4} +C {devices/lab_pin.sym} 410 -520 2 1 {name=l19 lab=Vota_bias1} +C {sky130_fd_pr/nfet_01v8_lvt.sym} 860 -130 0 1 {name=M5 +L=2 +W=8 +nf=1 +mult=8 +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 {lab_wire.sym} 330 -400 0 0 {name=l7 sig_type=std_logic lab=Vbg} +C {devices/lab_pin.sym} 600 -470 0 0 {name=l21 lab=vcurrent_gate} +C {sky130_fd_pr/nfet_01v8.sym} -190 -830 0 0 {name=Minv_n +L=0.5 +W=1.5 +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/pfet_01v8.sym} -190 -930 0 0 {name=Minv_p +L=0.5 +W=4 +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/nfet_01v8.sym} -50 -830 0 0 {name=Minv_n1 +L=0.5 +W=1.5 +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/pfet_01v8.sym} -50 -930 0 0 {name=Minv_p1 +L=0.5 +W=4 +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 {lab_wire.sym} -170 -990 0 0 {name=l28 sig_type=std_logic lab=VDD} +C {devices/lab_pin.sym} 160 -880 0 1 {name=l31 lab=porst_buff} +C {devices/lab_pin.sym} 910 -70 0 1 {name=l34 lab=voutb1} +C {sky130_fd_pr/nfet_01v8_lvt.sym} 1040 -40 0 0 {name=M15 +L=2 +W=8 +nf=1 +mult=8 +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} 1040 -130 0 0 {name=M16 +L=2 +W=8 +nf=1 +mult=8 +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} 1210 -40 0 0 {name=M17 +L=2 +W=8 +nf=1 +mult=8 +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} 1210 -130 0 0 {name=M18 +L=2 +W=8 +nf=1 +mult=8 +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 {opin.sym} 1060 -200 0 0 {name=p1 lab=Iout0} +C {devices/lab_pin.sym} 1170 -40 0 0 {name=l36 lab=voutb1} +C {devices/lab_pin.sym} 1170 -130 0 0 {name=l37 lab=voutb2} +C {sky130_fd_pr/cap_mim_m3_1.sym} 160 -810 2 0 {name=C_porst model=cap_mim_m3_1 W=23 L=5.8 MF=1 spiceprefix=X} +C {iopin.sym} -1270 -670 0 1 {name=p2 lab=VDD} +C {iopin.sym} -1310 -10 0 1 {name=p3 lab=VSS} +C {devices/lab_pin.sym} -80 -780 3 0 {name=l1 lab=VSS} +C {devices/lab_pin.sym} 160 -750 3 0 {name=l16 lab=VSS} +C {devices/lab_pin.sym} 110 -860 3 0 {name=l17 lab=VSS} +C {devices/lab_pin.sym} -860 -460 0 0 {name=l3 lab=VSS} +C {devices/lab_pin.sym} 440 -320 0 0 {name=l9 lab=VSS} +C {opin.sym} 1230 -200 0 0 {name=p4 lab=Iout1} +C {sky130_fd_pr/nfet_01v8_lvt.sym} 1380 -40 0 0 {name=M19 +L=2 +W=8 +nf=1 +mult=8 +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} 1380 -130 0 0 {name=M20 +L=2 +W=8 +nf=1 +mult=8 +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/lab_pin.sym} 1340 -40 0 0 {name=l13 lab=voutb1} +C {devices/lab_pin.sym} 1340 -130 0 0 {name=l20 lab=voutb2} +C {opin.sym} 1400 -200 0 0 {name=p5 lab=Iout2} +C {ipin.sym} -250 -880 0 0 {name=p6 lab=porst} +C {opin.sym} 140 -400 0 0 {name=p7 lab=Vbg} +C {sky130_fd_pr/nfet_01v8_lvt.sym} 1590 -40 0 0 {name=M21 +L=2 +W=8 +nf=1 +mult=8 +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} 1590 -130 0 0 {name=M22 +L=2 +W=8 +nf=1 +mult=8 +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/lab_pin.sym} 1550 -40 0 0 {name=l8 lab=voutb1} +C {devices/lab_pin.sym} 1550 -130 0 0 {name=l12 lab=voutb2} +C {opin.sym} 1610 -200 0 0 {name=p8 lab=Iout3} +C {sky130_fd_pr/nfet_01v8_lvt.sym} 1760 -40 0 0 {name=M23 +L=2 +W=8 +nf=1 +mult=8 +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} 1760 -130 0 0 {name=M24 +L=2 +W=8 +nf=1 +mult=8 +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/lab_pin.sym} 1720 -40 0 0 {name=l22 lab=voutb1} +C {devices/lab_pin.sym} 1720 -130 0 0 {name=l23 lab=voutb2} +C {opin.sym} 1780 -200 0 0 {name=p9 lab=Iout4} +C {sky130_fd_pr/nfet_01v8_lvt.sym} 1950 -40 0 0 {name=M25 +L=2 +W=8 +nf=1 +mult=8 +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} 1950 -130 0 0 {name=M26 +L=2 +W=8 +nf=1 +mult=8 +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/lab_pin.sym} 1910 -40 0 0 {name=l27 lab=voutb1} +C {devices/lab_pin.sym} 1910 -130 0 0 {name=l30 lab=voutb2} +C {opin.sym} 1970 -200 0 0 {name=p10 lab=Iout5} +C {sky130_fd_pr/nfet_01v8_lvt.sym} 2120 -40 0 0 {name=M27 +L=2 +W=8 +nf=1 +mult=8 +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} 2120 -130 0 0 {name=M28 +L=2 +W=8 +nf=1 +mult=8 +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/lab_pin.sym} 2080 -40 0 0 {name=l32 lab=voutb1} +C {devices/lab_pin.sym} 2080 -130 0 0 {name=l33 lab=voutb2} +C {opin.sym} 2140 -200 0 0 {name=p11 lab=Iout6} +C {sky130_fd_pr/res_xhigh_po_5p73.sym} 200 -160 3 0 {name=Rref_xhigh +W=5.73 +L=106 +model=res_xhigh_po_5p73 +spiceprefix=X +mult=1} +C {sky130_fd_pr/res_xhigh_po_5p73.sym} 260 -160 3 0 {name=Rref_xhigh1 +W=5.73 +L=106 +model=res_xhigh_po_5p73 +spiceprefix=X +mult=1} +C {sky130_fd_pr/res_xhigh_po_5p73.sym} 320 -160 3 0 {name=Rref_xhigh2 +W=5.73 +L=106 +model=res_xhigh_po_5p73 +spiceprefix=X +mult=1} +C {sky130_fd_pr/res_xhigh_po_5p73.sym} 380 -160 3 0 {name=Rref_xhigh3 +W=5.73 +L=106 +model=res_xhigh_po_5p73 +spiceprefix=X +mult=1} +C {sky130_fd_pr/res_xhigh_po_5p73.sym} 440 -160 3 0 {name=Rref_xhigh4 +W=5.73 +L=106 +model=res_xhigh_po_5p73 +spiceprefix=X +mult=1} +C {sky130_fd_pr/res_high_po_1p41.sym} 0 -300 0 0 {name=R4 +W=1.41 +L=42.39 +model=res_high_po_1p41 +spiceprefix=X +mult=1} +C {sky130_fd_pr/res_high_po_1p41.sym} -510 -200 0 0 {name=R3 +W=1.41 +L=8.1 +model=res_high_po_1p41 +spiceprefix=X +mult=1} +C {sky130_fd_pr/res_high_po_1p41.sym} 110 -880 3 0 {name=R_porst +W=1.41 +L=16 +model=res_high_po_1p41 +spiceprefix=X +mult=1} +C {devices/lab_pin.sym} 1050 -380 0 0 {name=l38 lab=VSS} +C {sky130_fd_pr/res_high_po_1p41.sym} 580 -80 3 0 {name=Rref_high1 +W=1.41 +L=47.5 +model=res_high_po_1p41 +spiceprefix=X +mult=1} +C {sky130_fd_pr/res_high_po_1p41.sym} 500 -80 3 0 {name=Rref_high2 +W=1.41 +L=104 +model=res_high_po_1p41 +spiceprefix=X +mult=1} +C {sky130_fd_pr/nfet_01v8_lvt.sym} 1340 -340 0 0 {name=M1 +L=2 +W=8 +nf=1 +mult=512 +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} 1340 -430 0 0 {name=M2 +L=2 +W=8 +nf=1 +mult=512 +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/lab_pin.sym} 1290 -310 0 0 {name=l39 lab=VSS} +C {sky130_fd_pr/pfet_01v8_lvt.sym} 1530 -550 0 0 {name=M3 +L=1 +W=1 +nf=1 +mult=80 +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 {devices/lab_wire.sym} 1550 -610 0 1 {name=l40 lab=VDD} +C {sky130_fd_pr/nfet_01v8.sym} -240 -420 0 0 {name=Mpdn +L=0.5 +W=1.5 +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/pnp_05v5.sym} 1110 -430 0 1 {name=Q4 +model="pnp_05v5_W3p40L3p40 m=14" +spiceprefix=X +} +C {opamp_realcomp3_usefinger.sym} -740 -460 1 1 {name=x1} +C {opamp_realcomp3_usefinger.sym} 440 -420 0 0 {name=x2}
diff --git a/xschem/BGR_lvs.sym b/xschem/BGR_lvs.sym new file mode 100644 index 0000000..3fd8ecc --- /dev/null +++ b/xschem/BGR_lvs.sym
@@ -0,0 +1,61 @@ +v {xschem version=3.0.0 file_version=1.2 } +G {} +K {type=subcircuit +format="@name @pinlist @symname" +template="name=X1"} +V {} +S {} +E {} +L 4 170 -120 190 -120 {} +L 4 290 -270 310 -270 {} +L 4 290 -250 310 -250 {} +L 4 290 -240 310 -240 {} +L 4 290 -230 310 -230 {} +L 4 220 -300 220 -280 {} +L 4 220 -40 220 -20 {} +L 4 190 -210 190 -120 {} +L 4 190 -280 290 -280 {} +L 4 290 -210 290 -40 {} +L 4 190 -40 290 -40 {} +L 4 190 -120 190 -40 {} +L 4 190 -280 190 -210 {} +L 4 290 -280 290 -210 {} +L 4 290 -220 310 -220 {} +L 4 290 -210 310 -210 {} +L 4 290 -200 310 -200 {} +L 4 290 -190 310 -190 {} +B 5 167.5 -122.5 172.5 -117.5 {name=porst +dir=in} +B 5 217.5 -302.5 222.5 -297.5 {name=VDD +dir=inout} +B 5 217.5 -22.5 222.5 -17.5 {name=VSS +dir=inout} +B 5 307.5 -272.5 312.5 -267.5 {name=Vbg +dir=out} +B 5 307.5 -252.5 312.5 -247.5 {name=Iout0 +dir=out} +B 5 307.5 -242.5 312.5 -237.5 {name=Iout1 +dir=out} +B 5 307.5 -232.5 312.5 -227.5 {name=Iout2 +dir=out} +B 5 307.5 -222.5 312.5 -217.5 {name=Iout3 +dir=out} +B 5 307.5 -212.5 312.5 -207.5 {name=Iout4 +dir=out} +B 5 307.5 -202.5 312.5 -197.5 {name=Iout5 +dir=out} +B 5 307.5 -192.5 312.5 -187.5 {name=Iout6 +dir=out} +T {porst} 195 -124 0 0 0.2 0.2 {} +T {Vbg} 265 -274 0 0 0.2 0.2 {} +T {Iout0} 265 -254 0 0 0.1 0.1 {} +T {Iout1} 265 -244 0 0 0.1 0.1 {} +T {Iout2} 265 -234 0 0 0.1 0.1 {} +T {VSS} 205 -64 0 0 0.2 0.2 {} +T {VDD} 205 -204 0 0 0.2 0.2 {} +T {@name} 295 -72 0 0 0.2 0.2 {} +T {@symname} 295 -52 0 0 0.2 0.2 {} +T {Iout3} 265 -224 0 0 0.1 0.1 {} +T {Iout4} 265 -214 0 0 0.1 0.1 {} +T {Iout5} 265 -204 0 0 0.1 0.1 {} +T {Iout6} 265 -194 0 0 0.1 0.1 {}
diff --git a/xschem/opamp_realcomp3_usefinger.sch b/xschem/opamp_realcomp3_usefinger.sch new file mode 100644 index 0000000..33f345d --- /dev/null +++ b/xschem/opamp_realcomp3_usefinger.sch
@@ -0,0 +1,188 @@ +v {xschem version=3.0.0 file_version=1.2 } +G {} +K {} +V {} +S {} +E {} +T {10u} 540 -440 0 0 0.4 0.4 {} +T {10u} 330 -440 0 0 0.4 0.4 {} +T {100u} 740 -440 0 0 0.4 0.4 {} +N 360 -170 360 -140 { lab=ppair_gate} +N 450 -140 540 -140 { lab=ppair_gate} +N 540 -170 540 -140 { lab=ppair_gate} +N 450 -60 470 -60 { lab=vss} +N 470 -60 470 0 { lab=vss} +N 450 -140 450 -90 { lab=ppair_gate} +N 470 -200 540 -200 { lab=vss} +N 470 -200 470 -60 { lab=vss} +N 680 -60 720 -60 { lab=bias_0p7} +N 680 -110 680 -60 { lab=bias_0p7} +N 380 -110 680 -110 { lab=bias_0p7} +N 380 -60 410 -60 { lab=bias_0p7} +N 380 -110 380 -60 { lab=bias_0p7} +N 450 -30 450 -0 { lab=vss} +N 360 -310 360 -230 { lab=ppair_gate} +N 400 -340 500 -340 { lab=ppair_gate} +N 540 -280 540 -230 { lab=first_stage_out} +N 540 -340 560 -340 { lab=vdd} +N 560 -400 560 -340 { lab=vdd} +N 540 -400 560 -400 { lab=vdd} +N 340 -400 340 -340 { lab=vdd} +N 340 -340 360 -340 { lab=vdd} +N 360 -400 360 -370 { lab=vdd} +N 540 -400 540 -370 { lab=vdd} +N 760 -400 760 -310 { lab=vdd} +N 560 -400 760 -400 { lab=vdd} +N 760 -250 760 -90 { lab=out} +N 760 -280 780 -280 { lab=vdd} +N 780 -400 780 -280 { lab=vdd} +N 760 -400 780 -400 { lab=vdd} +N 760 -60 780 -60 { lab=vss} +N 780 -60 780 0 { lab=vss} +N 760 -30 760 0 { lab=vss} +N 450 -0 470 0 { lab=vss} +N 360 -140 450 -140 { lab=ppair_gate} +N 360 -200 470 -200 { lab=vss} +N 340 -400 360 -400 { lab=vdd} +N 360 -400 540 -400 { lab=vdd} +N 760 0 780 0 { lab=vss} +N 470 0 760 0 { lab=vss} +N 540 -310 540 -280 { lab=first_stage_out} +N 300 -200 320 -200 { lab=in_n} +N 450 -340 450 -280 { lab=ppair_gate} +N 360 -280 450 -280 { lab=ppair_gate} +N 580 -200 600 -200 { lab=in_p} +N 300 -110 380 -110 { +lab=bias_0p7} +N 670 -280 720 -280 { +lab=first_stage_out} +N 540 -280 670 -280 { +lab=first_stage_out} +N 760 -200 810 -200 { +lab=out} +N 690 -280 690 -250 { +lab=first_stage_out} +N 690 -190 690 -170 { +lab=#net1} +N 690 -170 690 -150 { +lab=#net1} +N 750 -150 760 -150 { +lab=out} +N 720 -170 780 -170 { +lab=vss} +N 780 -170 780 -60 { +lab=vss} +C {sky130_fd_pr/nfet_01v8_lvt.sym} 340 -200 0 0 {name=M_diff_n +L=1 +W=4.5 +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_lvt +spiceprefix=X +} +C {sky130_fd_pr/nfet_01v8_lvt.sym} 560 -200 0 1 {name=M_diff_n1 +L=1 +W=4.5 +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_lvt +spiceprefix=X +} +C {sky130_fd_pr/nfet_01v8_lvt.sym} 430 -60 0 0 {name=M_tail +L=2 +W=10 +nf=5 +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_lvt +spiceprefix=X +} +C {sky130_fd_pr/nfet_01v8_lvt.sym} 740 -60 0 0 {name=M_actload +L=2 +W=15 +nf=5 +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_lvt +spiceprefix=X +} +C {sky130_fd_pr/pfet_01v8_lvt.sym} 520 -340 0 0 {name=M_ppair_p +L=1 +W=8 +nf=4 +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_lvt +spiceprefix=X +} +C {sky130_fd_pr/pfet_01v8_lvt.sym} 380 -340 0 1 {name=M_ppair_p1 +L=1 +W=8 +nf=4 +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_lvt +spiceprefix=X +} +C {sky130_fd_pr/pfet_01v8_lvt.sym} 740 -280 0 0 {name=M_cs +L=0.5 +W=84 +nf=14 +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_lvt +spiceprefix=X +} +C {devices/iopin.sym} 340 -400 0 1 {name=p1 lab=vdd} +C {devices/iopin.sym} 450 0 0 1 {name=p2 lab=vss} +C {devices/ipin.sym} 300 -200 0 0 {name=p3 lab=in_n} +C {devices/ipin.sym} 600 -200 0 1 {name=p4 lab=in_p} +C {devices/opin.sym} 810 -200 0 0 {name=p5 lab=out} +C {devices/ipin.sym} 300 -110 0 0 {name=p6 lab=bias_0p7} +C {sky130_fd_pr/cap_mim_m3_1.sym} 690 -220 0 0 {name=C1 model=cap_mim_m3_1 W=16 L=21.4 MF=1 spiceprefix=X} +C {sky130_fd_pr/res_high_po_2p85.sym} 720 -150 1 0 {name=R1 +W=2.85 +L=12.1 +model=res_high_po_2p85 +spiceprefix=X +mult=1} +C {lab_wire.sym} 630 -280 1 0 {name=l1 sig_type=std_logic lab=first_stage_out} +C {lab_wire.sym} 410 -280 2 0 {name=l2 sig_type=std_logic lab=ppair_gate} +C {lab_wire.sym} 540 -140 2 0 {name=l3 sig_type=std_logic lab=diffpair_source}
diff --git a/xschem/opamp_realcomp3_usefinger.sym b/xschem/opamp_realcomp3_usefinger.sym new file mode 100644 index 0000000..9bc07ed --- /dev/null +++ b/xschem/opamp_realcomp3_usefinger.sym
@@ -0,0 +1,32 @@ +v {xschem version=3.0.0 file_version=1.2 } +G {} +K {type=subcircuit +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 -100 20 -80 20 {} +L 4 -100 -20 -80 -20 {} +L 4 50 0 70 0 {} +L 4 -30 -80 -30 -37 {} +L 4 -80 -60 -80 60 {} +L 4 -80 60 50 -0 {} +L 4 -80 -60 50 -0 {} +L 7 0 -80 0 -23 {} +L 7 0 23 0 60 {} +B 5 -2.5 -82.5 2.5 -77.5 {name=vdd dir=inout } +B 5 -102.5 17.5 -97.5 22.5 {name=in_n dir=in } +B 5 -102.5 -22.5 -97.5 -17.5 {name=in_p dir=in } +B 5 67.5 -2.5 72.5 2.5 {name=out dir=out } +B 5 -32.5 -82.5 -27.5 -77.5 {name=bias_0p7 dir=in } +B 5 -2.5 57.5 2.5 62.5 {name=vss dir=inout } +T {@symname} 29.5 34 0 0 0.3 0.3 {} +T {@name} 35 18 0 0 0.2 0.2 {} +T {vdd} 26 -75 0 1 0.2 0.2 {} +T {in_n} -75 16 0 0 0.2 0.2 {} +T {in_p} -75 -24 0 0 0.2 0.2 {} +T {out} 34 -7 0 1 0.2 0.2 {} +T {bias_0p7} -36 -65 2 0 0.2 0.2 {} +T {vss} 4 55 2 1 0.2 0.2 {}