summaryrefslogtreecommitdiff
path: root/library/SubcircuitLibrary/SKY130_IP/avsdpll_1v8/avsdpll_1v8.sub
diff options
context:
space:
mode:
Diffstat (limited to 'library/SubcircuitLibrary/SKY130_IP/avsdpll_1v8/avsdpll_1v8.sub')
-rw-r--r--library/SubcircuitLibrary/SKY130_IP/avsdpll_1v8/avsdpll_1v8.sub162
1 files changed, 162 insertions, 0 deletions
diff --git a/library/SubcircuitLibrary/SKY130_IP/avsdpll_1v8/avsdpll_1v8.sub b/library/SubcircuitLibrary/SKY130_IP/avsdpll_1v8/avsdpll_1v8.sub
new file mode 100644
index 00000000..013d6fc1
--- /dev/null
+++ b/library/SubcircuitLibrary/SKY130_IP/avsdpll_1v8/avsdpll_1v8.sub
@@ -0,0 +1,162 @@
+.include sky130nm.lib
+.subckt avsdpll_1v8 Clk_Ref Clk_Out_by_8 Clk_Out_by_4 Clk_Out_by_2 Clk_Out up down VCtrl GND
+xx1 Clk_Ref Clk_Out_by_8 up down pd
+xx2 up down VCtrl cp
+
+*Loop Filter
+r1 VCtrl rc1 490
+c1 rc1 0 355f
+r2 rc1 rc2 490
+c2 rc2 0 350f
+r3 rc2 rc3 490
+c3 rc3 0 345f
+
+xx3 rc3 Clk_Out vco
+
+xx4 Clk_Out Clk_Out_by_2 fd
+xx5 Clk_Out_by_2 Clk_Out_by_4 fd
+xx6 Clk_Out_by_4 Clk_Out_by_8 fd
+
+
+.ic v(VCtrl) = 0
+.ic v(Clk_Out_by_2) = 0
+.ic v(Clk_Out_by_4) = 1.8
+.ic v(Clk_Out_by_8) = 0
+.ends
+
+*PFD
+.subckt pd Clk1 Clk2 up down
+xm1 1 clk1 3 1 sky130_fd_pr__pfet_01v8 l=150n w=640n
+xm2 3 clk1 4 0 sky130_fd_pr__nfet_01v8 l=150n w=1800n
+xm3 4 clk2 0 0 sky130_fd_pr__nfet_01v8 l=150n w=360n
+
+xm4 1 clk2 6 1 sky130_fd_pr__pfet_01v8 l=150n w=640n
+xm5 6 clk2 7 0 sky130_fd_pr__nfet_01v8 l=150n w=1800n
+xm6 7 clk1 0 0 sky130_fd_pr__nfet_01v8 l=150n w=360n
+
+xm7 8 clk1 3 0 sky130_fd_pr__nfet_01v8 l=150n w=2400n
+xm8 clk1 clk1 8 1 sky130_fd_pr__pfet_01v8 l=150n w=640n
+
+xm11 upb 8 1 1 sky130_fd_pr__pfet_01v8 l=150n w=720n
+xm12 upb 8 0 0 sky130_fd_pr__nfet_01v8 l=150n w=360n
+
+xm15 up upb 1 1 sky130_fd_pr__pfet_01v8 l=150n w=720n
+xm16 up upb 0 0 sky130_fd_pr__nfet_01v8 l=150n w=360n
+
+xm9 9 clk2 6 0 sky130_fd_pr__nfet_01v8 l=150n w=2400n
+xm10 clk2 clk2 9 1 sky130_fd_pr__pfet_01v8 l=150n w=640n
+
+xm13 downb 9 1 1 sky130_fd_pr__pfet_01v8 l=150n w=720n
+xm14 downb 9 0 0 sky130_fd_pr__nfet_01v8 l=150n w=360n
+
+xm17 down downb 1 1 sky130_fd_pr__pfet_01v8 l=150n w=720n
+xm18 down downb 0 0 sky130_fd_pr__nfet_01v8 l=150n w=360n
+
+
+*output cap
+*c1 up 0 6f
+*c2 down 0 6f
+
+v1 1 0 1.8
+.ends pd
+
+
+*CP
+.subckt cp up down out
+xm43 3 2 1 1 sky130_fd_pr__pfet_01v8 l=150n w=18u
+xm44 out downb 3 1 sky130_fd_pr__pfet_01v8 l=150n w=420n
+xm31 out up 7 0 sky130_fd_pr__nfet_01v8 l=150n w=420n
+xm32 7 8 0 0 sky130_fd_pr__nfet_01v8 l=150n w=4.8u
+
+xm33 2 2 1 1 sky130_fd_pr__pfet_01v8 l=150n w=420n
+xm34 8 8 0 0 sky130_fd_pr__nfet_01v8 l=150n w=420n
+
+xm35 9 down 3 1 sky130_fd_pr__pfet_01v8 l=150n w=5400n
+xm36 9 9 0 0 sky130_fd_pr__nfet_01v8 l=150n w=420n
+
+xm37 10 10 1 1 sky130_fd_pr__pfet_01v8 l=150n w=420n
+xm38 10 upb 7 0 sky130_fd_pr__nfet_01v8 l=150n w=5400n
+
+xm39 1 down downb 1 sky130_fd_pr__pfet_01v8 l=150n w=720n
+xm40 0 down downb 0 sky130_fd_pr__nfet_01v8 l=150n w=360n
+
+xm41 1 up upb 1 sky130_fd_pr__pfet_01v8 l=150n w=720n
+xm42 0 up upb 0 sky130_fd_pr__nfet_01v8 l=150n w=360n
+
+*r1 out rc 200
+*c1 rc 0 8f
+
+v1 1 0 1.8
+.ends cp
+
+
+*VCO
+.subckt vco in 17
+xm1 10 16 3 10 sky130_fd_pr__pfet_01v8 l=150n w=420n
+xm2 3 16 9 9 sky130_fd_pr__nfet_01v8 l=150n w=420n
+
+xm3 10 3 4 10 sky130_fd_pr__pfet_01v8 l=150n w=420n
+xm4 4 3 9 9 sky130_fd_pr__nfet_01v8 l=150n w=420n
+
+xm5 10 4 12 10 sky130_fd_pr__pfet_01v8 l=150n w=420n
+xm6 12 4 9 9 sky130_fd_pr__nfet_01v8 l=150n w=420n
+
+xm11 10 12 13 10 sky130_fd_pr__pfet_01v8 l=150n w=420n
+xm12 13 12 9 9 sky130_fd_pr__nfet_01v8 l=150n w=420n
+
+xm13 10 13 14 10 sky130_fd_pr__pfet_01v8 l=150n w=420n
+xm14 14 13 9 9 sky130_fd_pr__nfet_01v8 l=150n w=420n
+
+xm15 10 14 15 10 sky130_fd_pr__pfet_01v8 l=150n w=420n
+xm16 15 14 9 9 sky130_fd_pr__nfet_01v8 l=150n w=420n
+
+xm17 10 15 16 10 sky130_fd_pr__pfet_01v8 l=150n w=2400n
+xm18 16 15 9 9 sky130_fd_pr__nfet_01v8 l=150n w=1200n
+
+xm7 10 5 1 1 sky130_fd_pr__pfet_01v8 l=150n w=1080n
+xm8 5 5 1 1 sky130_fd_pr__pfet_01v8 l=150n w=840n
+xm9 5 in 0 0 sky130_fd_pr__nfet_01v8 l=150n w=840n
+xm10 9 in 0 0 sky130_fd_pr__nfet_01v8 l=150n w=1080n
+
+xm19 1 16 11 1 sky130_fd_pr__pfet_01v8 l=150n w=720n
+xm20 11 16 0 0 sky130_fd_pr__nfet_01v8 l=150n w=360n
+
+xm21 1 11 17 1 sky130_fd_pr__pfet_01v8 l=150n w=720n
+xm22 17 11 0 0 sky130_fd_pr__nfet_01v8 l=150n w=360n
+
+*c1 11 0 24f
+v1 1 0 1.8
+.ends vco
+
+
+*FD
+.subckt fd Clk 10
+
+xm1 1 2 3 1 sky130_fd_pr__pfet_01v8 l=150n w=720n
+xm2 0 2 3 0 sky130_fd_pr__nfet_01v8 l=150n w=360n
+
+xm3 3 Clkb 4 1 sky130_fd_pr__pfet_01v8 l=150n w=420n
+xm4 3 Clk 4 0 sky130_fd_pr__nfet_01v8 l=150n w=840n
+
+xm7 1 4 5 1 sky130_fd_pr__pfet_01v8 l=150n w=720n
+xm8 0 4 5 0 sky130_fd_pr__nfet_01v8 l=150n w=360n
+
+xm9 5 Clk 6 1 sky130_fd_pr__pfet_01v8 l=150n w=420n
+xm10 5 Clkb 6 0 sky130_fd_pr__nfet_01v8 l=150n w=640n
+
+xm11 1 6 2 1 sky130_fd_pr__pfet_01v8 l=150n w=720n
+xm12 0 6 2 0 sky130_fd_pr__nfet_01v8 l=150n w=360n
+
+xm13 1 Clk Clkb 1 sky130_fd_pr__pfet_01v8 l=150n w=720n
+xm14 0 Clk Clkb 0 sky130_fd_pr__nfet_01v8 l=150n w=360n
+
+xm15 7 6 1 1 sky130_fd_pr__pfet_01v8 l=150n w=720n
+xm16 7 6 0 0 sky130_fd_pr__nfet_01v8 l=150n w=360n
+
+xm19 1 7 10 1 sky130_fd_pr__pfet_01v8 l=150n w=720n
+xm20 10 7 0 0 sky130_fd_pr__nfet_01v8 l=150n w=360n
+
+
+*c1 7 0 18f
+v1 1 0 1.8
+.ends fd