249 lines
14 KiB
Plaintext
249 lines
14 KiB
Plaintext
** sch_path: /foss/designs/personal/SKY130_SAR-ADC/xschem/adc_comp_latch_tb.sch
|
|
**.subckt adc_comp_latch_tb
|
|
V1 VDD GND 1.8
|
|
V2 clk GND 0 PULSE(0 1.8 400n 1f 1f 400n 800n)
|
|
V3 inp GND 0 PULSE({vcm-5m} {vcm+5m} 0 8u 8u 8u 16u)
|
|
V4 inn GND 0 PULSE({vcm+5m} {vcm-5m} 0 8u 8u 8u 16u)
|
|
x1 VDD GND clk inp inn comp_trig qn q adc_comp_latch
|
|
**** begin user architecture code
|
|
|
|
.param mc_mm_switch=0
|
|
.param mc_pr_switch=0
|
|
.include /content/conda-env/share/pdk/sky130A/libs.tech/ngspice/corners/tt.spice
|
|
.include /content/conda-env/share/pdk/sky130A/libs.tech/ngspice/r+c/res_typical__cap_typical.spice
|
|
.include /content/conda-env/share/pdk/sky130A/libs.tech/ngspice/r+c/res_typical__cap_typical__lin.spice
|
|
.include /content/conda-env/share/pdk/sky130A/libs.tech/ngspice/corners/tt/specialized_cells.spice
|
|
|
|
|
|
.save all
|
|
.temp 25
|
|
.OPTIONS RELTOL=.001 TRTOL=1 ABSTOL=1e-16 CHGTOL=1.0e-16 DEFAD=1.0e-16
|
|
.param vcm=900m
|
|
.control
|
|
tran 100p 4.403u 4.3995u
|
|
set wr_singlescale
|
|
wrdata plot1.txt v(inp)-v(inn)
|
|
wrdata plot2.txt v(q) v(comp_trig)
|
|
wrdata delay.txt v(clk) v(comp_trig) v(q)
|
|
wrdata plot4.txt v(x1.x1.on) v(x1.x1.op)
|
|
wrdata plot5.txt v(x1.x1.bn) v(x1.x1.bp)
|
|
.endc
|
|
|
|
**** end user architecture code
|
|
**.ends
|
|
|
|
* expanding symbol: adc_comp_latch.sym # of pins=8
|
|
** sym_path: /foss/designs/personal/SKY130_SAR-ADC/xschem/adc_comp_latch.sym
|
|
** sch_path: /foss/designs/personal/SKY130_SAR-ADC/xschem/adc_comp_latch.sch
|
|
.subckt adc_comp_latch VDD VSS clk inp inn comp_trig latch_qn latch_q
|
|
*.iopin VDD
|
|
*.iopin VSS
|
|
*.ipin clk
|
|
*.ipin inp
|
|
*.ipin inn
|
|
*.opin comp_trig
|
|
*.opin latch_qn
|
|
*.opin latch_q
|
|
x4 VDD VSS clk net1 adc_inverter
|
|
x5 VDD VSS net1 net2 adc_inverter
|
|
x1 VDD VSS net2 net1 inp inn comp_outp comp_outn adc_comp_circuit
|
|
x3 comp_outp comp_outn VDD comp_trig VSS adc_nor
|
|
x2 comp_outp latch_qn VDD latch_q VSS comp_outn adc_nor_latch
|
|
.ends
|
|
|
|
|
|
* expanding symbol: adc_inverter.sym # of pins=4
|
|
** sym_path: /foss/designs/personal/SKY130_SAR-ADC/xschem/adc_inverter.sym
|
|
** sch_path: /foss/designs/personal/SKY130_SAR-ADC/xschem/adc_inverter.sch
|
|
.subckt adc_inverter VDD VSS in out
|
|
*.iopin VDD
|
|
*.iopin VSS
|
|
*.ipin in
|
|
*.opin out
|
|
XM2 out in VDD VDD sky130_fd_pr__pfet_01v8 L=0.15 W=0.84 nf=2 ad='int((nf+1)/2) * W/nf * 0.29' as='int((nf+2)/2) * W/nf * 0.29'
|
|
+ pd='2*int((nf+1)/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 mult=1 m=1
|
|
XM1 out in VSS VSS sky130_fd_pr__nfet_01v8 L=0.15 W=0.42 nf=1 ad='int((nf+1)/2) * W/nf * 0.29' as='int((nf+2)/2) * W/nf * 0.29'
|
|
+ pd='2*int((nf+1)/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 mult=1 m=1
|
|
.ends
|
|
|
|
|
|
* expanding symbol: adc_comp_circuit.sym # of pins=8
|
|
** sym_path: /foss/designs/personal/SKY130_SAR-ADC/xschem/adc_comp_circuit.sym
|
|
** sch_path: /foss/designs/personal/SKY130_SAR-ADC/xschem/adc_comp_circuit.sch
|
|
.subckt adc_comp_circuit VPWR VGND clk nclk inp inn outp outn
|
|
*.iopin VPWR
|
|
*.iopin VGND
|
|
*.ipin clk
|
|
*.ipin nclk
|
|
*.ipin inp
|
|
*.ipin inn
|
|
*.opin outp
|
|
*.opin outn
|
|
XM3 on inp in_stage_net1 VGND sky130_fd_pr__nfet_01v8_lvt L=0.15 W=8 nf=4 ad='int((nf+1)/2) * W/nf * 0.29'
|
|
+ as='int((nf+2)/2) * W/nf * 0.29' pd='2*int((nf+1)/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 mult=1 m=1
|
|
XM4 op inn in_stage_net1 VGND sky130_fd_pr__nfet_01v8_lvt L=0.15 W=8 nf=4 ad='int((nf+1)/2) * W/nf * 0.29'
|
|
+ as='int((nf+2)/2) * W/nf * 0.29' pd='2*int((nf+1)/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 mult=1 m=1
|
|
XM5 in_stage_net1 clk VGND VGND sky130_fd_pr__nfet_01v8 L=0.15 W=4 nf=8 ad='int((nf+1)/2) * W/nf * 0.29'
|
|
+ as='int((nf+2)/2) * W/nf * 0.29' pd='2*int((nf+1)/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 mult=1 m=1
|
|
XM6 in_stage_net2 bp VPWR VPWR sky130_fd_pr__pfet_01v8 L=0.15 W=4 nf=2 ad='int((nf+1)/2) * W/nf * 0.29'
|
|
+ as='int((nf+2)/2) * W/nf * 0.29' pd='2*int((nf+1)/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 mult=1 m=1
|
|
XM7 in_stage_net3 bn VPWR VPWR sky130_fd_pr__pfet_01v8 L=0.15 W=4 nf=2 ad='int((nf+1)/2) * W/nf * 0.29'
|
|
+ as='int((nf+2)/2) * W/nf * 0.29' pd='2*int((nf+1)/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 mult=1 m=1
|
|
XM8 bn op in_stage_net2 VPWR sky130_fd_pr__pfet_01v8 L=0.15 W=4 nf=2 ad='int((nf+1)/2) * W/nf * 0.29'
|
|
+ as='int((nf+2)/2) * W/nf * 0.29' pd='2*int((nf+1)/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 mult=1 m=1
|
|
XM9 bp on in_stage_net3 VPWR sky130_fd_pr__pfet_01v8 L=0.15 W=4 nf=2 ad='int((nf+1)/2) * W/nf * 0.29'
|
|
+ as='int((nf+2)/2) * W/nf * 0.29' pd='2*int((nf+1)/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 mult=1 m=1
|
|
XM10 bn bp VGND VGND sky130_fd_pr__nfet_01v8 L=0.15 W=2 nf=1 ad='int((nf+1)/2) * W/nf * 0.29' as='int((nf+2)/2) * W/nf * 0.29'
|
|
+ pd='2*int((nf+1)/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 mult=1 m=1
|
|
XM11 bn nclk VGND VGND sky130_fd_pr__nfet_01v8 L=0.15 W=2 nf=1 ad='int((nf+1)/2) * W/nf * 0.29' as='int((nf+2)/2) * W/nf * 0.29'
|
|
+ pd='2*int((nf+1)/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 mult=1 m=1
|
|
XM12 bp nclk VGND VGND sky130_fd_pr__nfet_01v8 L=0.15 W=2 nf=1 ad='int((nf+1)/2) * W/nf * 0.29' as='int((nf+2)/2) * W/nf * 0.29'
|
|
+ pd='2*int((nf+1)/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 mult=1 m=1
|
|
XM13 bp bn VGND VGND sky130_fd_pr__nfet_01v8 L=0.15 W=2 nf=1 ad='int((nf+1)/2) * W/nf * 0.29' as='int((nf+2)/2) * W/nf * 0.29'
|
|
+ pd='2*int((nf+1)/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 mult=1 m=1
|
|
XM2 op clk VPWR VPWR sky130_fd_pr__pfet_01v8 L=0.15 W=2 nf=4 ad='int((nf+1)/2) * W/nf * 0.29' as='int((nf+2)/2) * W/nf * 0.29'
|
|
+ pd='2*int((nf+1)/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 mult=1 m=1
|
|
XM1 on clk VPWR VPWR sky130_fd_pr__pfet_01v8 L=0.15 W=2 nf=4 ad='int((nf+1)/2) * W/nf * 0.29' as='int((nf+2)/2) * W/nf * 0.29'
|
|
+ pd='2*int((nf+1)/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 mult=1 m=1
|
|
x1 VPWR VGND bp outp adc_comp_buffer
|
|
x2 VPWR VGND bn outn adc_comp_buffer
|
|
x3 VGND VGND on VGND VGND adc_noise_decoup_cell2
|
|
x4 VGND VGND op VGND VGND adc_noise_decoup_cell2
|
|
XM4_DUMMY in_stage_net1 inn in_stage_net1 VGND sky130_fd_pr__nfet_01v8_lvt L=0.15 W=2 nf=1 ad='int((nf+1)/2) * W/nf * 0.29'
|
|
+ as='int((nf+2)/2) * W/nf * 0.29' pd='2*int((nf+1)/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 mult=1 m=1
|
|
XM3_DUMMY in_stage_net1 inp in_stage_net1 VGND sky130_fd_pr__nfet_01v8_lvt L=0.15 W=2 nf=1 ad='int((nf+1)/2) * W/nf * 0.29'
|
|
+ as='int((nf+2)/2) * W/nf * 0.29' pd='2*int((nf+1)/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 mult=1 m=1
|
|
XM5_DUMMY2 in_stage_net1 clk in_stage_net1 VGND sky130_fd_pr__nfet_01v8 L=0.15 W=0.5 nf=1 ad='int((nf+1)/2) * W/nf * 0.29'
|
|
+ as='int((nf+2)/2) * W/nf * 0.29' pd='2*int((nf+1)/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 mult=1 m=1
|
|
XM5_DUMMY1 in_stage_net1 clk in_stage_net1 VGND sky130_fd_pr__nfet_01v8 L=0.15 W=0.5 nf=1 ad='int((nf+1)/2) * W/nf * 0.29'
|
|
+ as='int((nf+2)/2) * W/nf * 0.29' pd='2*int((nf+1)/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 mult=1 m=1
|
|
XM2_DUMMY VPWR clk VPWR VPWR sky130_fd_pr__pfet_01v8 L=0.15 W=0.5 nf=1 ad='int((nf+1)/2) * W/nf * 0.29'
|
|
+ as='int((nf+2)/2) * W/nf * 0.29' pd='2*int((nf+1)/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 mult=1 m=1
|
|
XM1_DUMMY VPWR clk VPWR VPWR sky130_fd_pr__pfet_01v8 L=0.15 W=0.5 nf=1 ad='int((nf+1)/2) * W/nf * 0.29'
|
|
+ as='int((nf+2)/2) * W/nf * 0.29' pd='2*int((nf+1)/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 mult=1 m=1
|
|
XM8_DUMMY in_stage_net2 op in_stage_net2 VPWR sky130_fd_pr__pfet_01v8 L=0.15 W=2 nf=1 ad='int((nf+1)/2) * W/nf * 0.29'
|
|
+ as='int((nf+2)/2) * W/nf * 0.29' pd='2*int((nf+1)/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 mult=1 m=1
|
|
XM9_DUMMY in_stage_net3 on in_stage_net3 VPWR sky130_fd_pr__pfet_01v8 L=0.15 W=2 nf=1 ad='int((nf+1)/2) * W/nf * 0.29'
|
|
+ as='int((nf+2)/2) * W/nf * 0.29' pd='2*int((nf+1)/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 mult=1 m=1
|
|
XM6_DUMMY in_stage_net2 bp in_stage_net2 VPWR sky130_fd_pr__pfet_01v8 L=0.15 W=2 nf=1 ad='int((nf+1)/2) * W/nf * 0.29'
|
|
+ as='int((nf+2)/2) * W/nf * 0.29' pd='2*int((nf+1)/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 mult=1 m=1
|
|
XM7_DUMMY in_stage_net3 bn in_stage_net3 VPWR sky130_fd_pr__pfet_01v8 L=0.15 W=2 nf=1 ad='int((nf+1)/2) * W/nf * 0.29'
|
|
+ as='int((nf+2)/2) * W/nf * 0.29' pd='2*int((nf+1)/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 mult=1 m=1
|
|
XM12_DUMMY VGND VGND VGND VGND sky130_fd_pr__nfet_01v8 L=0.15 W=2 nf=1 ad='int((nf+1)/2) * W/nf * 0.29'
|
|
+ as='int((nf+2)/2) * W/nf * 0.29' pd='2*int((nf+1)/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 mult=1 m=1
|
|
XM11_DUMMY VGND VGND VGND VGND sky130_fd_pr__nfet_01v8 L=0.15 W=2 nf=1 ad='int((nf+1)/2) * W/nf * 0.29'
|
|
+ as='int((nf+2)/2) * W/nf * 0.29' pd='2*int((nf+1)/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 mult=1 m=1
|
|
.ends
|
|
|
|
|
|
* expanding symbol: adc_nor.sym # of pins=5
|
|
** sym_path: /foss/designs/personal/SKY130_SAR-ADC/xschem/adc_nor.sym
|
|
** sch_path: /foss/designs/personal/SKY130_SAR-ADC/xschem/adc_nor.sch
|
|
.subckt adc_nor b a VDD q VSS
|
|
*.iopin VDD
|
|
*.iopin VSS
|
|
*.ipin b
|
|
*.ipin a
|
|
*.opin q
|
|
XM5 q b VSS VSS sky130_fd_pr__nfet_01v8 L=0.15 W=0.42 nf=1 ad='int((nf+1)/2) * W/nf * 0.29' as='int((nf+2)/2) * W/nf * 0.29'
|
|
+ pd='2*int((nf+1)/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 mult=1 m=1
|
|
XM6 q a VSS VSS sky130_fd_pr__nfet_01v8 L=0.15 W=0.42 nf=1 ad='int((nf+1)/2) * W/nf * 0.29' as='int((nf+2)/2) * W/nf * 0.29'
|
|
+ pd='2*int((nf+1)/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 mult=1 m=1
|
|
XM1 q b net1 VDD sky130_fd_pr__pfet_01v8 L=0.15 W=0.8 nf=1 ad='int((nf+1)/2) * W/nf * 0.29' as='int((nf+2)/2) * W/nf * 0.29'
|
|
+ pd='2*int((nf+1)/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 mult=1 m=1
|
|
XM2 q a net2 VDD sky130_fd_pr__pfet_01v8 L=0.15 W=0.8 nf=1 ad='int((nf+1)/2) * W/nf * 0.29' as='int((nf+2)/2) * W/nf * 0.29'
|
|
+ pd='2*int((nf+1)/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 mult=1 m=1
|
|
XM3 net2 b VDD VDD sky130_fd_pr__pfet_01v8 L=0.15 W=0.8 nf=1 ad='int((nf+1)/2) * W/nf * 0.29' as='int((nf+2)/2) * W/nf * 0.29'
|
|
+ pd='2*int((nf+1)/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 mult=1 m=1
|
|
XM4 net1 a VDD VDD sky130_fd_pr__pfet_01v8 L=0.15 W=0.8 nf=1 ad='int((nf+1)/2) * W/nf * 0.29' as='int((nf+2)/2) * W/nf * 0.29'
|
|
+ pd='2*int((nf+1)/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 mult=1 m=1
|
|
.ends
|
|
|
|
|
|
* expanding symbol: adc_nor_latch.sym # of pins=6
|
|
** sym_path: /foss/designs/personal/SKY130_SAR-ADC/xschem/adc_nor_latch.sym
|
|
** sch_path: /foss/designs/personal/SKY130_SAR-ADC/xschem/adc_nor_latch.sch
|
|
.subckt adc_nor_latch s qn VDD q VSS r
|
|
*.iopin VDD
|
|
*.iopin VSS
|
|
*.ipin s
|
|
*.ipin r
|
|
*.opin q
|
|
*.opin qn
|
|
x1 q s VDD qn VSS adc_nor
|
|
x2 qn r VDD q VSS adc_nor
|
|
.ends
|
|
|
|
|
|
* expanding symbol: adc_comp_buffer.sym # of pins=4
|
|
** sym_path: /foss/designs/personal/SKY130_SAR-ADC/xschem/adc_comp_buffer.sym
|
|
** sch_path: /foss/designs/personal/SKY130_SAR-ADC/xschem/adc_comp_buffer.sch
|
|
.subckt adc_comp_buffer VDD VSS in out
|
|
*.iopin VDD
|
|
*.iopin VSS
|
|
*.ipin in
|
|
*.opin out
|
|
XM5 buf_mid in VSS VSS sky130_fd_pr__nfet_01v8 L=0.15 W=0.5 nf=1 ad='int((nf+1)/2) * W/nf * 0.29' as='int((nf+2)/2) * W/nf * 0.29'
|
|
+ pd='2*int((nf+1)/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 mult=1 m=1
|
|
XM1 buf_mid in VDD VDD sky130_fd_pr__pfet_01v8 L=0.15 W=1 nf=1 ad='int((nf+1)/2) * W/nf * 0.29' as='int((nf+2)/2) * W/nf * 0.29'
|
|
+ pd='2*int((nf+1)/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 mult=1 m=1
|
|
XM2 out buf_mid VDD VDD sky130_fd_pr__pfet_01v8 L=0.15 W=2 nf=2 ad='int((nf+1)/2) * W/nf * 0.29' as='int((nf+2)/2) * W/nf * 0.29'
|
|
+ pd='2*int((nf+1)/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 mult=1 m=1
|
|
XM6 out buf_mid VSS VSS sky130_fd_pr__nfet_01v8 L=0.15 W=1 nf=2 ad='int((nf+1)/2) * W/nf * 0.29' as='int((nf+2)/2) * W/nf * 0.29'
|
|
+ pd='2*int((nf+1)/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 mult=1 m=1
|
|
.ends
|
|
|
|
|
|
* expanding symbol: adc_noise_decoup_cell2.sym # of pins=5
|
|
** sym_path: /foss/designs/personal/SKY130_SAR-ADC/xschem/adc_noise_decoup_cell2.sym
|
|
** sch_path: /foss/designs/personal/SKY130_SAR-ADC/xschem/adc_noise_decoup_cell2.sch
|
|
.subckt adc_noise_decoup_cell2 mimcap_top mimcap_bot nmoscap_top nmoscap_bot pwell
|
|
*.iopin nmoscap_top
|
|
*.iopin mimcap_top
|
|
*.iopin mimcap_bot
|
|
*.iopin nmoscap_bot
|
|
*.iopin pwell
|
|
XC1 mimcap_top mimcap_bot sky130_fd_pr__cap_mim_m3_1 W=18.9 L=5.1 MF=1 m=1
|
|
XC2 nmoscap_top nmoscap_bot pwell sky130_fd_pr__cap_var_lvt W=18.4 L=3.9 VM=1 m=1
|
|
.ends
|
|
|
|
.GLOBAL GND
|
|
.GLOBAL VDD
|
|
.end |