.subckt REFERENCE_RING OUT VPWR VGND
CC_STAGE0 Q0 VGND 2e-12
CC_STAGE1 Q1 VGND 2e-12
CC_STAGE2 Q2 VGND 2e-12
CC_STAGE3 Q3 VGND 2e-12
CC_STAGE4 OUT VGND 2e-12
XINV0N Q0 OUT VGND VGND sky130_fd_pr__nfet_01v8 w=4 l=0.15 nf=1 m=1
XINV0P Q0 OUT VPWR VPWR sky130_fd_pr__pfet_01v8_hvt w=8 l=0.15 nf=1 m=1
XINV1N Q1 Q0 VGND VGND sky130_fd_pr__nfet_01v8 w=4 l=0.15 nf=1 m=1
XINV1P Q1 Q0 VPWR VPWR sky130_fd_pr__pfet_01v8_hvt w=8 l=0.15 nf=1 m=1
XINV2N Q2 Q1 VGND VGND sky130_fd_pr__nfet_01v8 w=4 l=0.15 nf=1 m=1
XINV2P Q2 Q1 VPWR VPWR sky130_fd_pr__pfet_01v8_hvt w=8 l=0.15 nf=1 m=1
XINV3N Q3 Q2 VGND VGND sky130_fd_pr__nfet_01v8 w=4 l=0.15 nf=1 m=1
XINV3P Q3 Q2 VPWR VPWR sky130_fd_pr__pfet_01v8_hvt w=8 l=0.15 nf=1 m=1
XINV4N OUT Q3 VGND VGND sky130_fd_pr__nfet_01v8 w=4 l=0.15 nf=1 m=1
XINV4P OUT Q3 VPWR VPWR sky130_fd_pr__pfet_01v8_hvt w=8 l=0.15 nf=1 m=1
.ends REFERENCE_RING
.subckt SENSOR_RING OUT VPWR VGND
CC_STAGE0 Q0 VGND 2.3e-12
CC_STAGE1 Q1 VGND 2.3e-12
CC_STAGE2 Q2 VGND 2.3e-12
CC_STAGE3 Q3 VGND 2.3e-12
CC_STAGE4 OUT VGND 2.3e-12
XINV0N Q0 OUT VGND VGND sky130_fd_pr__nfet_01v8 w=4 l=0.15 nf=1 m=1
XINV0P Q0 OUT VPWR VPWR sky130_fd_pr__pfet_01v8_hvt w=8 l=0.15 nf=1 m=1
XINV1N Q1 Q0 VGND VGND sky130_fd_pr__nfet_01v8 w=4 l=0.15 nf=1 m=1
XINV1P Q1 Q0 VPWR VPWR sky130_fd_pr__pfet_01v8_hvt w=8 l=0.15 nf=1 m=1
XINV2N Q2 Q1 VGND VGND sky130_fd_pr__nfet_01v8 w=4 l=0.15 nf=1 m=1
XINV2P Q2 Q1 VPWR VPWR sky130_fd_pr__pfet_01v8_hvt w=8 l=0.15 nf=1 m=1
XINV3N Q3 Q2 VGND VGND sky130_fd_pr__nfet_01v8 w=4 l=0.15 nf=1 m=1
XINV3P Q3 Q2 VPWR VPWR sky130_fd_pr__pfet_01v8_hvt w=8 l=0.15 nf=1 m=1
XINV4N OUT Q3 VGND VGND sky130_fd_pr__nfet_01v8 w=4 l=0.15 nf=1 m=1
XINV4P OUT Q3 VPWR VPWR sky130_fd_pr__pfet_01v8_hvt w=8 l=0.15 nf=1 m=1
.ends SENSOR_RING
.subckt NAND2 A0 A1 Y VPWR VGND
XMN0 Y A0 N1 VGND sky130_fd_pr__nfet_01v8 w=0.65 l=0.15 nf=1 m=1
XMN1 N1 A1 VGND VGND sky130_fd_pr__nfet_01v8 w=0.65 l=0.15 nf=1 m=1
XMP0 Y A0 VPWR VPWR sky130_fd_pr__pfet_01v8_hvt w=0.65 l=0.15 nf=1 m=1
XMP1 Y A1 VPWR VPWR sky130_fd_pr__pfet_01v8_hvt w=0.65 l=0.15 nf=1 m=1
.ends NAND2
.subckt XOR2 A B Y VPWR VGND
XN1 A B N1 VPWR VGND NAND2
XN2 A N1 N2 VPWR VGND NAND2
XN3 B N1 N3 VPWR VGND NAND2
XN4 N2 N3 Y VPWR VGND NAND2
.ends XOR2
.subckt osc_beat REF SENSE XOR OUT VPWR VGND
CC_ENVELOPE OUT VGND 5e-12
XPHASE_DETECTOR REF SENSE XOR VPWR VGND XOR2
XREFERENCE REF VPWR VGND REFERENCE_RING
RR_ENVELOPE XOR OUT 20000
XSENSOR SENSE VPWR VGND SENSOR_RING
.ends osc_beat
