diff --git a/modules/module_4_type_2_PLL/CML_divider/cace/scripts/__pycache__/freq.cpython-312.pyc b/modules/module_4_type_2_PLL/CML_divider/cace/scripts/__pycache__/freq.cpython-312.pyc new file mode 100644 index 00000000..9966062b Binary files /dev/null and b/modules/module_4_type_2_PLL/CML_divider/cace/scripts/__pycache__/freq.cpython-312.pyc differ diff --git a/modules/module_4_type_2_PLL/CML_divider/cace/templates/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/cace/templates/CML_core_tb.sch index 48f6f0bb..0f707234 100644 --- a/modules/module_4_type_2_PLL/CML_divider/cace/templates/CML_core_tb.sch +++ b/modules/module_4_type_2_PLL/CML_divider/cace/templates/CML_core_tb.sch @@ -1,8 +1,9 @@ -v {xschem version=3.4.6 file_version=1.2} +v {xschem version=3.4.8RC file_version=1.3} G {} K {} V {} S {} +F {} E {} N 740 -940 740 -920 {lab=GND} N 740 -1090 740 -1060 {lab=VDD} @@ -19,6 +20,7 @@ N 720 -760 720 -730 {lab=GND} C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false value=" .ic V(Voplus)=1.2 +.param A=0 .control set noaskquit set numdgt=12 @@ -62,10 +64,10 @@ C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} -C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 0.3 10G 0 0 0)" savecurrent=false} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 A 10G 0 0 0)" savecurrent=false} C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} -C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 0.3 10G 0 0 180)" savecurrent=false} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 A 10G 0 0 180)" savecurrent=false} C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/CML_core_tb.sch new file mode 100644 index 00000000..48f6f0bb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/CML_core_tb.sch @@ -0,0 +1,71 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {} +V {} +S {} +E {} +N 740 -940 740 -920 {lab=GND} +N 740 -1090 740 -1060 {lab=VDD} +N 600 -1020 620 -1020 {lab=Vinplus} +N 600 -980 620 -980 {lab=Vinminus} +N 860 -1020 880 -1020 {lab=Voplus} +N 860 -980 880 -980 {lab=Vominus} +N 1150 -850 1150 -820 {lab=VDD} +N 1150 -760 1150 -730 {lab=GND} +N 930 -850 930 -820 {lab=Vinminus} +N 930 -760 930 -730 {lab=GND} +N 720 -850 720 -820 {lab=Vinplus} +N 720 -760 720 -730 {lab=GND} +C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write CML_core_tb.raw +set appendwrite +tran 10p 1n 160p + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata CACE\{simpath\}/CACE\{filename\}_CACE\{N\}.data vo_diff +quit + +.endc +"} +C {opin.sym} 880 -1020 2 1 {name=p6 lab=Voplus} +C {opin.sym} 880 -980 0 0 {name=p9 lab=Vominus} +C {devices/code_shown.sym} 10 -620 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib CACE\{PDK_ROOT\}/CACE\{PDK\}/libs.tech/ngspice/models/cornerMOSlv.lib mos_CACE\{corner\} + +.include CACE\{DUT_path\} + +.temp CACE\{temperature\} +" +} +C {iopin.sym} 740 -1090 0 1 {name=p2 lab=VDD} +C {ipin.sym} 600 -1020 2 1 {name=p4 lab=Vinplus} +C {ipin.sym} 600 -980 2 1 {name=p1 lab=Vinminus} +C {CML_divider.sym} 740 -1000 0 1 {name=x1} +C {vsource.sym} 1150 -790 0 0 {name=V1 value=CACE\{vdd\} savecurrent=false} +C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} +C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} +C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 0.3 10G 0 0 0)" savecurrent=false} +C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 0.3 10G 0 0 180)" savecurrent=false} +C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_00/.spiceinit b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_00/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_00/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_00/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_00/CML_core_tb.sch new file mode 100644 index 00000000..9edf23c9 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_00/CML_core_tb.sch @@ -0,0 +1,71 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {} +V {} +S {} +E {} +N 740 -940 740 -920 {lab=GND} +N 740 -1090 740 -1060 {lab=VDD} +N 600 -1020 620 -1020 {lab=Vinplus} +N 600 -980 620 -980 {lab=Vinminus} +N 860 -1020 880 -1020 {lab=Voplus} +N 860 -980 880 -980 {lab=Vominus} +N 1150 -850 1150 -820 {lab=VDD} +N 1150 -760 1150 -730 {lab=GND} +N 930 -850 930 -820 {lab=Vinminus} +N 930 -760 930 -730 {lab=GND} +N 720 -850 720 -820 {lab=Vinplus} +N 720 -760 720 -730 {lab=GND} +C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write CML_core_tb.raw +set appendwrite +tran 10p 1n 160p + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_00/CML_core_tb_0.data vo_diff +quit + +.endc +"} +C {opin.sym} 880 -1020 2 1 {name=p6 lab=Voplus} +C {opin.sym} 880 -980 0 0 {name=p9 lab=Vominus} +C {devices/code_shown.sym} 10 -620 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_tt + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice + +.temp -40 +" +} +C {iopin.sym} 740 -1090 0 1 {name=p2 lab=VDD} +C {ipin.sym} 600 -1020 2 1 {name=p4 lab=Vinplus} +C {ipin.sym} 600 -980 2 1 {name=p1 lab=Vinminus} +C {CML_divider.sym} 740 -1000 0 1 {name=x1} +C {vsource.sym} 1150 -790 0 0 {name=V1 value=0.8 savecurrent=false} +C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} +C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} +C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 0.3 10G 0 0 0)" savecurrent=false} +C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 0.3 10G 0 0 180)" savecurrent=false} +C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_00/CML_core_tb_0.data b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_00/CML_core_tb_0.data new file mode 100644 index 00000000..6e5c755c --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_00/CML_core_tb_0.data @@ -0,0 +1,85 @@ + 1.628000000000e-10 -2.952325246460e-01 + 1.728000000000e-10 -6.043942197180e-02 + 1.828000000000e-10 1.817064006720e-01 + 1.928000000000e-10 3.985392356515e-01 + 2.028000000000e-10 5.562505249699e-01 + 2.128000000000e-10 6.572874178466e-01 + 2.228000000000e-10 7.087352858161e-01 + 2.328000000000e-10 7.029522511861e-01 + 2.428000000000e-10 6.344368312078e-01 + 2.528000000000e-10 5.013241237787e-01 + 2.628000000000e-10 3.030080742176e-01 + 2.728000000000e-10 6.578821975767e-02 + 2.828000000000e-10 -1.781586778972e-01 + 2.928000000000e-10 -3.964040373443e-01 + 3.028000000000e-10 -5.555461653242e-01 + 3.128000000000e-10 -6.571022283471e-01 + 3.228000000000e-10 -7.092808909864e-01 + 3.328000000000e-10 -7.040843150938e-01 + 3.428000000000e-10 -6.362469325195e-01 + 3.528000000000e-10 -5.032364212786e-01 + 3.628000000000e-10 -3.051350358226e-01 + 3.728000000000e-10 -6.762904380973e-02 + 3.828000000000e-10 1.763878132349e-01 + 3.928000000000e-10 3.951284969670e-01 + 4.028000000000e-10 5.545978983505e-01 + 4.128000000000e-10 6.566315830069e-01 + 4.228000000000e-10 7.089962487465e-01 + 4.328000000000e-10 7.042633111532e-01 + 4.428000000000e-10 6.365365170049e-01 + 4.528000000000e-10 5.037912579488e-01 + 4.628000000000e-10 3.056253251435e-01 + 4.728000000000e-10 6.823087043489e-02 + 4.828000000000e-10 -1.759620590786e-01 + 4.928000000000e-10 -3.946766675460e-01 + 5.028000000000e-10 -5.543918551335e-01 + 5.128000000000e-10 -6.564106038653e-01 + 5.228000000000e-10 -7.089804674794e-01 + 5.328000000000e-10 -7.042284637667e-01 + 5.428000000000e-10 -6.366831677063e-01 + 5.528000000000e-10 -5.038654128054e-01 + 5.628000000000e-10 -3.058301627321e-01 + 5.728000000000e-10 -6.832081314378e-02 + 5.828000000000e-10 1.757744687450e-01 + 5.928000000000e-10 3.946207346164e-01 + 6.028000000000e-10 5.542681653143e-01 + 6.128000000000e-10 6.564162326939e-01 + 6.228000000000e-10 7.089102158365e-01 + 6.328000000000e-10 7.042850183822e-01 + 6.428000000000e-10 6.366586213363e-01 + 6.528000000000e-10 5.039505543903e-01 + 6.628000000000e-10 3.058219717524e-01 + 6.728000000000e-10 6.840961740524e-02 + 6.828000000000e-10 -1.757862033444e-01 + 6.928000000000e-10 -3.945467987447e-01 + 7.028000000000e-10 -5.542929102277e-01 + 7.128000000000e-10 -6.563603422698e-01 + 7.228000000000e-10 -7.089481650220e-01 + 7.328000000000e-10 -7.042424683005e-01 + 7.428000000000e-10 -6.367078290897e-01 + 7.528000000000e-10 -5.039165471509e-01 + 7.628000000000e-10 -3.058753018579e-01 + 7.728000000000e-10 -6.837707225292e-02 + 7.828000000000e-10 1.757345833407e-01 + 7.928000000000e-10 3.945785215449e-01 + 8.028000000000e-10 5.542482652542e-01 + 8.128000000000e-10 6.563959408481e-01 + 8.228000000000e-10 7.089082113076e-01 + 8.328000000000e-10 7.042817797830e-01 + 8.428000000000e-10 6.366719399828e-01 + 8.528000000000e-10 5.039573608246e-01 + 8.628000000000e-10 3.058408732486e-01 + 8.728000000000e-10 6.841772818469e-02 + 8.828000000000e-10 -1.757686495942e-01 + 8.928000000000e-10 -3.945419964750e-01 + 9.028000000000e-10 -5.542809328797e-01 + 9.128000000000e-10 -6.563614885531e-01 + 9.228000000000e-10 -7.089411806967e-01 + 9.328000000000e-10 -7.042479976407e-01 + 9.428000000000e-10 -6.367051444468e-01 + 9.528000000000e-10 -5.039245834310e-01 + 9.628000000000e-10 -3.058742220339e-01 + 9.728000000000e-10 -6.838526492007e-02 + 9.828000000000e-10 1.757358039920e-01 + 9.928000000000e-10 3.945718167364e-01 + 1.000000000000e-09 5.155910006549e-01 diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_00/CML_divider.sym b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_00/CML_divider.sym new file mode 100644 index 00000000..e46eb233 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_00/CML_divider.sym @@ -0,0 +1,30 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 -120 -20 -100 -20 {} +L 4 -120 20 -100 20 {} +L 4 100 -20 120 -20 {} +L 4 100 20 120 20 {} +L 7 0 -60 0 -40 {} +L 7 0 40 0 60 {} +B 5 -122.5 -22.5 -117.5 -17.5 {name=Vo+ dir=out} +B 5 -122.5 17.5 -117.5 22.5 {name=Vo- dir=out} +B 5 117.5 -22.5 122.5 -17.5 {name=Vi+ dir=in} +B 5 117.5 17.5 122.5 22.5 {name=Vi- dir=in} +B 5 -2.5 -62.5 2.5 -57.5 {name=vdd dir=inout} +B 5 -2.5 57.5 2.5 62.5 {name=gnd dir=inout} +P 4 5 100 -40 -100 -40 -100 40 100 40 100 -40 {} +T {@symname} -44 -6 0 0 0.3 0.3 {} +T {@name} 45 -52 0 0 0.2 0.2 {} +T {Vo+} -95 -24 0 0 0.2 0.2 {} +T {Vo-} -95 16 0 0 0.2 0.2 {} +T {Vi+} 95 -16 2 0 0.2 0.2 {} +T {Vi-} 95 24 2 0 0.2 0.2 {} +T {vdd} 10 -39 0 1 0.2 0.2 {} +T {gnd} -10 34 2 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_00/conditions.yaml b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_00/conditions.yaml new file mode 100644 index 00000000..ea54f39e --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_00/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice +N: 0 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: tt +filename: CML_core_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_00 +temperature: '-40' +vdd: '0.8' diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_01/.spiceinit b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_01/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_01/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_01/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_01/CML_core_tb.sch new file mode 100644 index 00000000..0181912f --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_01/CML_core_tb.sch @@ -0,0 +1,71 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {} +V {} +S {} +E {} +N 740 -940 740 -920 {lab=GND} +N 740 -1090 740 -1060 {lab=VDD} +N 600 -1020 620 -1020 {lab=Vinplus} +N 600 -980 620 -980 {lab=Vinminus} +N 860 -1020 880 -1020 {lab=Voplus} +N 860 -980 880 -980 {lab=Vominus} +N 1150 -850 1150 -820 {lab=VDD} +N 1150 -760 1150 -730 {lab=GND} +N 930 -850 930 -820 {lab=Vinminus} +N 930 -760 930 -730 {lab=GND} +N 720 -850 720 -820 {lab=Vinplus} +N 720 -760 720 -730 {lab=GND} +C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write CML_core_tb.raw +set appendwrite +tran 10p 1n 160p + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_01/CML_core_tb_1.data vo_diff +quit + +.endc +"} +C {opin.sym} 880 -1020 2 1 {name=p6 lab=Voplus} +C {opin.sym} 880 -980 0 0 {name=p9 lab=Vominus} +C {devices/code_shown.sym} 10 -620 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_ff + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice + +.temp -40 +" +} +C {iopin.sym} 740 -1090 0 1 {name=p2 lab=VDD} +C {ipin.sym} 600 -1020 2 1 {name=p4 lab=Vinplus} +C {ipin.sym} 600 -980 2 1 {name=p1 lab=Vinminus} +C {CML_divider.sym} 740 -1000 0 1 {name=x1} +C {vsource.sym} 1150 -790 0 0 {name=V1 value=0.8 savecurrent=false} +C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} +C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} +C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 0.3 10G 0 0 0)" savecurrent=false} +C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 0.3 10G 0 0 180)" savecurrent=false} +C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_01/CML_core_tb_1.data b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_01/CML_core_tb_1.data new file mode 100644 index 00000000..94a2849c --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_01/CML_core_tb_1.data @@ -0,0 +1,85 @@ + 1.628000000000e-10 -2.647956442563e-01 + 1.728000000000e-10 -3.672466403620e-02 + 1.828000000000e-10 1.978055322165e-01 + 1.928000000000e-10 4.056017943518e-01 + 2.028000000000e-10 5.547344088879e-01 + 2.128000000000e-10 6.487490848065e-01 + 2.228000000000e-10 6.923653634957e-01 + 2.328000000000e-10 6.780886353961e-01 + 2.428000000000e-10 6.039598047192e-01 + 2.528000000000e-10 4.698168410475e-01 + 2.628000000000e-10 2.751260896566e-01 + 2.728000000000e-10 4.430157580526e-02 + 2.828000000000e-10 -1.925038311834e-01 + 2.928000000000e-10 -4.023301580756e-01 + 3.028000000000e-10 -5.533152551340e-01 + 3.128000000000e-10 -6.481954476962e-01 + 3.228000000000e-10 -6.930655672739e-01 + 3.328000000000e-10 -6.800540209913e-01 + 3.428000000000e-10 -6.070129146880e-01 + 3.528000000000e-10 -4.732295235615e-01 + 3.628000000000e-10 -2.788311309623e-01 + 3.728000000000e-10 -4.769207273318e-02 + 3.828000000000e-10 1.893739393663e-01 + 3.928000000000e-10 3.999895682405e-01 + 4.028000000000e-10 5.516914161753e-01 + 4.128000000000e-10 6.473194453459e-01 + 4.228000000000e-10 6.926967113745e-01 + 4.328000000000e-10 6.804409619078e-01 + 4.428000000000e-10 6.077344291363e-01 + 4.528000000000e-10 4.743209278754e-01 + 4.628000000000e-10 2.799315218230e-01 + 4.728000000000e-10 4.887682675205e-02 + 4.828000000000e-10 -1.884058832182e-01 + 4.928000000000e-10 -3.991237321070e-01 + 5.028000000000e-10 -5.511979674959e-01 + 5.128000000000e-10 -6.469402879887e-01 + 5.228000000000e-10 -6.926225993557e-01 + 5.328000000000e-10 -6.804805060919e-01 + 5.428000000000e-10 -6.080204415279e-01 + 5.528000000000e-10 -4.745961817340e-01 + 5.628000000000e-10 -2.803459413605e-01 + 5.728000000000e-10 -4.918721233066e-02 + 5.828000000000e-10 1.880320213273e-01 + 5.928000000000e-10 3.989072784961e-01 + 6.028000000000e-10 5.509784832100e-01 + 6.128000000000e-10 6.468776696433e-01 + 6.228000000000e-10 6.925382949500e-01 + 6.328000000000e-10 6.805520167761e-01 + 6.428000000000e-10 6.080522625696e-01 + 6.528000000000e-10 4.747422384222e-01 + 6.628000000000e-10 2.804194075907e-01 + 6.728000000000e-10 4.934414267879e-02 + 6.828000000000e-10 -1.879699706397e-01 + 6.928000000000e-10 -3.987854446736e-01 + 7.028000000000e-10 -5.509613139230e-01 + 7.128000000000e-10 -6.468062697707e-01 + 7.228000000000e-10 -6.925630874809e-01 + 7.328000000000e-10 -6.805223964692e-01 + 7.428000000000e-10 -6.081132322697e-01 + 7.528000000000e-10 -4.747366406660e-01 + 7.628000000000e-10 -2.804933490724e-01 + 7.728000000000e-10 -4.934235519722e-02 + 7.828000000000e-10 1.879006367827e-01 + 7.928000000000e-10 3.987938070562e-01 + 8.028000000000e-10 5.509093463144e-01 + 8.128000000000e-10 6.468293959909e-01 + 8.228000000000e-10 6.925252291894e-01 + 8.328000000000e-10 6.805590879185e-01 + 8.428000000000e-10 6.080875904937e-01 + 8.528000000000e-10 4.747803907956e-01 + 8.628000000000e-10 2.804721530083e-01 + 8.728000000000e-10 4.938687520288e-02 + 8.828000000000e-10 -1.879222775604e-01 + 8.928000000000e-10 -3.987554695640e-01 + 9.028000000000e-10 -5.509333914335e-01 + 9.128000000000e-10 -6.467969990881e-01 + 9.228000000000e-10 -6.925530415231e-01 + 9.328000000000e-10 -6.805304150604e-01 + 9.428000000000e-10 -6.081187600045e-01 + 9.528000000000e-10 -4.747542418837e-01 + 9.628000000000e-10 -2.805045225794e-01 + 9.728000000000e-10 -4.936125388638e-02 + 9.828000000000e-10 1.878908530872e-01 + 9.928000000000e-10 3.987795364060e-01 + 1.000000000000e-09 5.142017254263e-01 diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_01/CML_divider.sym b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_01/CML_divider.sym new file mode 100644 index 00000000..e46eb233 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_01/CML_divider.sym @@ -0,0 +1,30 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 -120 -20 -100 -20 {} +L 4 -120 20 -100 20 {} +L 4 100 -20 120 -20 {} +L 4 100 20 120 20 {} +L 7 0 -60 0 -40 {} +L 7 0 40 0 60 {} +B 5 -122.5 -22.5 -117.5 -17.5 {name=Vo+ dir=out} +B 5 -122.5 17.5 -117.5 22.5 {name=Vo- dir=out} +B 5 117.5 -22.5 122.5 -17.5 {name=Vi+ dir=in} +B 5 117.5 17.5 122.5 22.5 {name=Vi- dir=in} +B 5 -2.5 -62.5 2.5 -57.5 {name=vdd dir=inout} +B 5 -2.5 57.5 2.5 62.5 {name=gnd dir=inout} +P 4 5 100 -40 -100 -40 -100 40 100 40 100 -40 {} +T {@symname} -44 -6 0 0 0.3 0.3 {} +T {@name} 45 -52 0 0 0.2 0.2 {} +T {Vo+} -95 -24 0 0 0.2 0.2 {} +T {Vo-} -95 16 0 0 0.2 0.2 {} +T {Vi+} 95 -16 2 0 0.2 0.2 {} +T {Vi-} 95 24 2 0 0.2 0.2 {} +T {vdd} 10 -39 0 1 0.2 0.2 {} +T {gnd} -10 34 2 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_01/conditions.yaml b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_01/conditions.yaml new file mode 100644 index 00000000..44209672 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_01/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice +N: 1 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: ff +filename: CML_core_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_01 +temperature: '-40' +vdd: '0.8' diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_02/.spiceinit b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_02/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_02/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_02/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_02/CML_core_tb.sch new file mode 100644 index 00000000..e77fc7fc --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_02/CML_core_tb.sch @@ -0,0 +1,71 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {} +V {} +S {} +E {} +N 740 -940 740 -920 {lab=GND} +N 740 -1090 740 -1060 {lab=VDD} +N 600 -1020 620 -1020 {lab=Vinplus} +N 600 -980 620 -980 {lab=Vinminus} +N 860 -1020 880 -1020 {lab=Voplus} +N 860 -980 880 -980 {lab=Vominus} +N 1150 -850 1150 -820 {lab=VDD} +N 1150 -760 1150 -730 {lab=GND} +N 930 -850 930 -820 {lab=Vinminus} +N 930 -760 930 -730 {lab=GND} +N 720 -850 720 -820 {lab=Vinplus} +N 720 -760 720 -730 {lab=GND} +C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write CML_core_tb.raw +set appendwrite +tran 10p 1n 160p + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_02/CML_core_tb_2.data vo_diff +quit + +.endc +"} +C {opin.sym} 880 -1020 2 1 {name=p6 lab=Voplus} +C {opin.sym} 880 -980 0 0 {name=p9 lab=Vominus} +C {devices/code_shown.sym} 10 -620 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_ss + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice + +.temp -40 +" +} +C {iopin.sym} 740 -1090 0 1 {name=p2 lab=VDD} +C {ipin.sym} 600 -1020 2 1 {name=p4 lab=Vinplus} +C {ipin.sym} 600 -980 2 1 {name=p1 lab=Vinminus} +C {CML_divider.sym} 740 -1000 0 1 {name=x1} +C {vsource.sym} 1150 -790 0 0 {name=V1 value=0.8 savecurrent=false} +C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} +C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} +C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 0.3 10G 0 0 0)" savecurrent=false} +C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 0.3 10G 0 0 180)" savecurrent=false} +C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_02/CML_core_tb_2.data b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_02/CML_core_tb_2.data new file mode 100644 index 00000000..cdbb156b --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_02/CML_core_tb_2.data @@ -0,0 +1,85 @@ + 1.628000000000e-10 -3.226907107526e-01 + 1.728000000000e-10 -8.539968284410e-02 + 1.828000000000e-10 1.614480909662e-01 + 1.928000000000e-10 3.869191924745e-01 + 2.028000000000e-10 5.540483396157e-01 + 2.128000000000e-10 6.620167995175e-01 + 2.228000000000e-10 7.202634748901e-01 + 2.328000000000e-10 7.212523007105e-01 + 2.428000000000e-10 6.566979396260e-01 + 2.528000000000e-10 5.250303609426e-01 + 2.628000000000e-10 3.265092852166e-01 + 2.728000000000e-10 8.707604756770e-02 + 2.828000000000e-10 -1.611600424348e-01 + 2.928000000000e-10 -3.873238626333e-01 + 3.028000000000e-10 -5.550746884823e-01 + 3.128000000000e-10 -6.629366269634e-01 + 3.228000000000e-10 -7.212894794449e-01 + 3.328000000000e-10 -7.220878341254e-01 + 3.428000000000e-10 -6.576651735802e-01 + 3.528000000000e-10 -5.257535323793e-01 + 3.628000000000e-10 -3.273054874384e-01 + 3.728000000000e-10 -8.759901468451e-02 + 3.828000000000e-10 1.605580394287e-01 + 3.928000000000e-10 3.869863823107e-01 + 4.028000000000e-10 5.547303069787e-01 + 4.128000000000e-10 6.628461833305e-01 + 4.228000000000e-10 7.211466820779e-01 + 4.328000000000e-10 7.221995653822e-01 + 4.428000000000e-10 6.577128147927e-01 + 4.528000000000e-10 5.259884868760e-01 + 4.628000000000e-10 3.274163471898e-01 + 4.728000000000e-10 8.784541550780e-02 + 4.828000000000e-10 -1.604682108624e-01 + 4.928000000000e-10 -3.867888973241e-01 + 5.028000000000e-10 -5.547066546217e-01 + 5.128000000000e-10 -6.627253094524e-01 + 5.228000000000e-10 -7.211826888209e-01 + 5.328000000000e-10 -7.221369141817e-01 + 5.428000000000e-10 -6.577994031943e-01 + 5.528000000000e-10 -5.259620192587e-01 + 5.628000000000e-10 -3.275201865204e-01 + 5.728000000000e-10 -8.782404636233e-02 + 5.828000000000e-10 1.603689538405e-01 + 5.928000000000e-10 3.868153343854e-01 + 6.028000000000e-10 5.546284247412e-01 + 6.128000000000e-10 6.627691182366e-01 + 6.228000000000e-10 7.211205707397e-01 + 6.328000000000e-10 7.221945096033e-01 + 6.428000000000e-10 6.577508134366e-01 + 6.528000000000e-10 5.260261908485e-01 + 6.628000000000e-10 3.274760111912e-01 + 6.728000000000e-10 8.788851273295e-02 + 6.828000000000e-10 -1.604138329037e-01 + 6.928000000000e-10 -3.867579820075e-01 + 7.028000000000e-10 -5.546733587088e-01 + 7.128000000000e-10 -6.627166397254e-01 + 7.228000000000e-10 -7.211676696649e-01 + 7.328000000000e-10 -7.221448613305e-01 + 7.428000000000e-10 -6.577993970261e-01 + 7.528000000000e-10 -5.259796511606e-01 + 7.628000000000e-10 -3.275252420812e-01 + 7.728000000000e-10 -8.784270745333e-02 + 7.828000000000e-10 1.603648729372e-01 + 7.928000000000e-10 3.868003178892e-01 + 8.028000000000e-10 5.546284703905e-01 + 8.128000000000e-10 6.627594909397e-01 + 8.228000000000e-10 7.211247368625e-01 + 8.328000000000e-10 7.221884517678e-01 + 8.428000000000e-10 6.577581123739e-01 + 8.528000000000e-10 5.260226393584e-01 + 8.628000000000e-10 3.274844581735e-01 + 8.728000000000e-10 8.788515759553e-02 + 8.828000000000e-10 -1.604054537172e-01 + 8.928000000000e-10 -3.867616376768e-01 + 9.028000000000e-10 -5.546662826942e-01 + 9.128000000000e-10 -6.627215467888e-01 + 9.228000000000e-10 -7.211618152183e-01 + 9.328000000000e-10 -7.221504122635e-01 + 9.428000000000e-10 -6.577943183983e-01 + 9.528000000000e-10 -5.259856282734e-01 + 9.628000000000e-10 -3.275204867996e-01 + 9.728000000000e-10 -8.784851998896e-02 + 9.828000000000e-10 1.603694682536e-01 + 9.928000000000e-10 3.867951846118e-01 + 1.000000000000e-09 5.139507493642e-01 diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_02/CML_divider.sym b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_02/CML_divider.sym new file mode 100644 index 00000000..e46eb233 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_02/CML_divider.sym @@ -0,0 +1,30 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 -120 -20 -100 -20 {} +L 4 -120 20 -100 20 {} +L 4 100 -20 120 -20 {} +L 4 100 20 120 20 {} +L 7 0 -60 0 -40 {} +L 7 0 40 0 60 {} +B 5 -122.5 -22.5 -117.5 -17.5 {name=Vo+ dir=out} +B 5 -122.5 17.5 -117.5 22.5 {name=Vo- dir=out} +B 5 117.5 -22.5 122.5 -17.5 {name=Vi+ dir=in} +B 5 117.5 17.5 122.5 22.5 {name=Vi- dir=in} +B 5 -2.5 -62.5 2.5 -57.5 {name=vdd dir=inout} +B 5 -2.5 57.5 2.5 62.5 {name=gnd dir=inout} +P 4 5 100 -40 -100 -40 -100 40 100 40 100 -40 {} +T {@symname} -44 -6 0 0 0.3 0.3 {} +T {@name} 45 -52 0 0 0.2 0.2 {} +T {Vo+} -95 -24 0 0 0.2 0.2 {} +T {Vo-} -95 16 0 0 0.2 0.2 {} +T {Vi+} 95 -16 2 0 0.2 0.2 {} +T {Vi-} 95 24 2 0 0.2 0.2 {} +T {vdd} 10 -39 0 1 0.2 0.2 {} +T {gnd} -10 34 2 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_02/conditions.yaml b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_02/conditions.yaml new file mode 100644 index 00000000..41559501 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_02/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice +N: 2 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: ss +filename: CML_core_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_02 +temperature: '-40' +vdd: '0.8' diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_03/.spiceinit b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_03/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_03/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_03/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_03/CML_core_tb.sch new file mode 100644 index 00000000..c6e7129b --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_03/CML_core_tb.sch @@ -0,0 +1,71 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {} +V {} +S {} +E {} +N 740 -940 740 -920 {lab=GND} +N 740 -1090 740 -1060 {lab=VDD} +N 600 -1020 620 -1020 {lab=Vinplus} +N 600 -980 620 -980 {lab=Vinminus} +N 860 -1020 880 -1020 {lab=Voplus} +N 860 -980 880 -980 {lab=Vominus} +N 1150 -850 1150 -820 {lab=VDD} +N 1150 -760 1150 -730 {lab=GND} +N 930 -850 930 -820 {lab=Vinminus} +N 930 -760 930 -730 {lab=GND} +N 720 -850 720 -820 {lab=Vinplus} +N 720 -760 720 -730 {lab=GND} +C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write CML_core_tb.raw +set appendwrite +tran 10p 1n 160p + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_03/CML_core_tb_3.data vo_diff +quit + +.endc +"} +C {opin.sym} 880 -1020 2 1 {name=p6 lab=Voplus} +C {opin.sym} 880 -980 0 0 {name=p9 lab=Vominus} +C {devices/code_shown.sym} 10 -620 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_tt + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice + +.temp 27 +" +} +C {iopin.sym} 740 -1090 0 1 {name=p2 lab=VDD} +C {ipin.sym} 600 -1020 2 1 {name=p4 lab=Vinplus} +C {ipin.sym} 600 -980 2 1 {name=p1 lab=Vinminus} +C {CML_divider.sym} 740 -1000 0 1 {name=x1} +C {vsource.sym} 1150 -790 0 0 {name=V1 value=0.8 savecurrent=false} +C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} +C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} +C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 0.3 10G 0 0 0)" savecurrent=false} +C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 0.3 10G 0 0 180)" savecurrent=false} +C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_03/CML_core_tb_3.data b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_03/CML_core_tb_3.data new file mode 100644 index 00000000..a5b707e1 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_03/CML_core_tb_3.data @@ -0,0 +1,85 @@ + 1.628000000000e-10 -2.752371518652e-01 + 1.728000000000e-10 -5.371376319542e-02 + 1.828000000000e-10 1.789877413053e-01 + 1.928000000000e-10 3.904548691103e-01 + 2.028000000000e-10 5.481842948229e-01 + 2.128000000000e-10 6.473880529986e-01 + 2.228000000000e-10 6.910106576952e-01 + 2.328000000000e-10 6.747515328639e-01 + 2.428000000000e-10 5.993982850131e-01 + 2.528000000000e-10 4.678235295331e-01 + 2.628000000000e-10 2.811940191144e-01 + 2.728000000000e-10 5.749892092429e-02 + 2.828000000000e-10 -1.768703468756e-01 + 2.928000000000e-10 -3.894327299011e-01 + 3.028000000000e-10 -5.481462871223e-01 + 3.128000000000e-10 -6.476233959034e-01 + 3.228000000000e-10 -6.918267741740e-01 + 3.328000000000e-10 -6.759891610513e-01 + 3.428000000000e-10 -6.011477081233e-01 + 3.528000000000e-10 -4.695436066175e-01 + 3.628000000000e-10 -2.830251877311e-01 + 3.728000000000e-10 -5.907673776650e-02 + 3.828000000000e-10 1.753349861707e-01 + 3.928000000000e-10 3.883274219019e-01 + 4.028000000000e-10 5.473035177189e-01 + 4.128000000000e-10 6.472356324664e-01 + 4.228000000000e-10 6.916308158427e-01 + 4.328000000000e-10 6.762268077787e-01 + 4.428000000000e-10 6.014684070962e-01 + 4.528000000000e-10 4.700895666681e-01 + 4.628000000000e-10 2.834862741746e-01 + 4.728000000000e-10 5.964855757083e-02 + 4.828000000000e-10 -1.749274761915e-01 + 4.928000000000e-10 -3.878897710558e-01 + 5.028000000000e-10 -5.470986037433e-01 + 5.128000000000e-10 -6.470272164409e-01 + 5.228000000000e-10 -6.916322065746e-01 + 5.328000000000e-10 -6.762158687864e-01 + 5.428000000000e-10 -6.016311330158e-01 + 5.528000000000e-10 -4.701782346337e-01 + 5.628000000000e-10 -2.836941639082e-01 + 5.728000000000e-10 -5.974768838544e-02 + 5.828000000000e-10 1.747352099095e-01 + 5.928000000000e-10 3.878245260251e-01 + 6.028000000000e-10 5.469715931678e-01 + 6.128000000000e-10 6.470284806517e-01 + 6.228000000000e-10 6.915679621080e-01 + 6.328000000000e-10 6.762768333485e-01 + 6.428000000000e-10 6.016163496453e-01 + 6.528000000000e-10 4.702674812943e-01 + 6.628000000000e-10 2.836938506434e-01 + 6.728000000000e-10 5.983990401354e-02 + 6.828000000000e-10 -1.747391664584e-01 + 6.928000000000e-10 -3.877472828580e-01 + 7.028000000000e-10 -5.469903889528e-01 + 7.128000000000e-10 -6.469730360721e-01 + 7.228000000000e-10 -6.916047287716e-01 + 7.328000000000e-10 -6.762386026180e-01 + 7.428000000000e-10 -6.016669907082e-01 + 7.528000000000e-10 -4.702390118128e-01 + 7.628000000000e-10 -2.837481181728e-01 + 7.728000000000e-10 -5.981248689037e-02 + 7.828000000000e-10 1.746867337354e-01 + 7.928000000000e-10 3.877749638679e-01 + 8.028000000000e-10 5.469462314077e-01 + 8.128000000000e-10 6.470055622974e-01 + 8.228000000000e-10 6.915665740520e-01 + 8.328000000000e-10 6.762766371031e-01 + 8.428000000000e-10 6.016337946720e-01 + 8.528000000000e-10 4.702787360349e-01 + 8.628000000000e-10 2.837166478210e-01 + 8.728000000000e-10 5.985233152723e-02 + 8.828000000000e-10 -1.747180248353e-01 + 8.928000000000e-10 -3.877389392165e-01 + 9.028000000000e-10 -5.469764940938e-01 + 9.128000000000e-10 -6.469724949526e-01 + 9.228000000000e-10 -6.915980610397e-01 + 9.328000000000e-10 -6.762447762615e-01 + 9.428000000000e-10 -6.016660865709e-01 + 9.528000000000e-10 -4.702484057793e-01 + 9.628000000000e-10 -2.837489236123e-01 + 9.728000000000e-10 -5.982216431619e-02 + 9.828000000000e-10 1.746862818107e-01 + 9.928000000000e-10 3.877670239311e-01 + 1.000000000000e-09 5.084292112944e-01 diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_03/CML_divider.sym b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_03/CML_divider.sym new file mode 100644 index 00000000..e46eb233 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_03/CML_divider.sym @@ -0,0 +1,30 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 -120 -20 -100 -20 {} +L 4 -120 20 -100 20 {} +L 4 100 -20 120 -20 {} +L 4 100 20 120 20 {} +L 7 0 -60 0 -40 {} +L 7 0 40 0 60 {} +B 5 -122.5 -22.5 -117.5 -17.5 {name=Vo+ dir=out} +B 5 -122.5 17.5 -117.5 22.5 {name=Vo- dir=out} +B 5 117.5 -22.5 122.5 -17.5 {name=Vi+ dir=in} +B 5 117.5 17.5 122.5 22.5 {name=Vi- dir=in} +B 5 -2.5 -62.5 2.5 -57.5 {name=vdd dir=inout} +B 5 -2.5 57.5 2.5 62.5 {name=gnd dir=inout} +P 4 5 100 -40 -100 -40 -100 40 100 40 100 -40 {} +T {@symname} -44 -6 0 0 0.3 0.3 {} +T {@name} 45 -52 0 0 0.2 0.2 {} +T {Vo+} -95 -24 0 0 0.2 0.2 {} +T {Vo-} -95 16 0 0 0.2 0.2 {} +T {Vi+} 95 -16 2 0 0.2 0.2 {} +T {Vi-} 95 24 2 0 0.2 0.2 {} +T {vdd} 10 -39 0 1 0.2 0.2 {} +T {gnd} -10 34 2 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_03/conditions.yaml b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_03/conditions.yaml new file mode 100644 index 00000000..4920501d --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_03/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice +N: 3 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: tt +filename: CML_core_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_03 +temperature: '27' +vdd: '0.8' diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_04/.spiceinit b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_04/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_04/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_04/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_04/CML_core_tb.sch new file mode 100644 index 00000000..ee385fcb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_04/CML_core_tb.sch @@ -0,0 +1,71 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {} +V {} +S {} +E {} +N 740 -940 740 -920 {lab=GND} +N 740 -1090 740 -1060 {lab=VDD} +N 600 -1020 620 -1020 {lab=Vinplus} +N 600 -980 620 -980 {lab=Vinminus} +N 860 -1020 880 -1020 {lab=Voplus} +N 860 -980 880 -980 {lab=Vominus} +N 1150 -850 1150 -820 {lab=VDD} +N 1150 -760 1150 -730 {lab=GND} +N 930 -850 930 -820 {lab=Vinminus} +N 930 -760 930 -730 {lab=GND} +N 720 -850 720 -820 {lab=Vinplus} +N 720 -760 720 -730 {lab=GND} +C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write CML_core_tb.raw +set appendwrite +tran 10p 1n 160p + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_04/CML_core_tb_4.data vo_diff +quit + +.endc +"} +C {opin.sym} 880 -1020 2 1 {name=p6 lab=Voplus} +C {opin.sym} 880 -980 0 0 {name=p9 lab=Vominus} +C {devices/code_shown.sym} 10 -620 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_ff + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice + +.temp 27 +" +} +C {iopin.sym} 740 -1090 0 1 {name=p2 lab=VDD} +C {ipin.sym} 600 -1020 2 1 {name=p4 lab=Vinplus} +C {ipin.sym} 600 -980 2 1 {name=p1 lab=Vinminus} +C {CML_divider.sym} 740 -1000 0 1 {name=x1} +C {vsource.sym} 1150 -790 0 0 {name=V1 value=0.8 savecurrent=false} +C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} +C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} +C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 0.3 10G 0 0 0)" savecurrent=false} +C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 0.3 10G 0 0 180)" savecurrent=false} +C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_04/CML_core_tb_4.data b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_04/CML_core_tb_4.data new file mode 100644 index 00000000..8dbaf881 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_04/CML_core_tb_4.data @@ -0,0 +1,85 @@ + 1.628000000000e-10 -2.482257947455e-01 + 1.728000000000e-10 -3.259266550035e-02 + 1.828000000000e-10 1.930322087844e-01 + 1.928000000000e-10 3.960886599474e-01 + 2.028000000000e-10 5.450058997505e-01 + 2.128000000000e-10 6.360387116800e-01 + 2.228000000000e-10 6.712975422190e-01 + 2.328000000000e-10 6.474938983982e-01 + 2.428000000000e-10 5.679706274704e-01 + 2.528000000000e-10 4.364781736218e-01 + 2.628000000000e-10 2.536409133725e-01 + 2.728000000000e-10 3.555786929817e-02 + 2.828000000000e-10 -1.919150168478e-01 + 2.928000000000e-10 -3.960490843585e-01 + 3.028000000000e-10 -5.456465197220e-01 + 3.128000000000e-10 -6.367232933250e-01 + 3.228000000000e-10 -6.725166925877e-01 + 3.328000000000e-10 -6.491812984547e-01 + 3.428000000000e-10 -5.701612342484e-01 + 3.528000000000e-10 -4.386195239579e-01 + 3.628000000000e-10 -2.558666299298e-01 + 3.728000000000e-10 -3.750940439386e-02 + 3.828000000000e-10 1.900731677010e-01 + 3.928000000000e-10 3.947279065049e-01 + 4.028000000000e-10 5.446879536498e-01 + 4.128000000000e-10 6.362937598492e-01 + 4.228000000000e-10 6.723764816130e-01 + 4.328000000000e-10 6.495551727740e-01 + 4.428000000000e-10 5.706690754638e-01 + 4.528000000000e-10 4.393690386281e-01 + 4.628000000000e-10 2.565445890136e-01 + 4.728000000000e-10 3.828939038748e-02 + 4.828000000000e-10 -1.894747026650e-01 + 4.928000000000e-10 -3.941469427019e-01 + 5.028000000000e-10 -5.443881652157e-01 + 5.128000000000e-10 -6.360424686566e-01 + 5.228000000000e-10 -6.723795425302e-01 + 5.328000000000e-10 -6.495951074105e-01 + 5.428000000000e-10 -5.709049111673e-01 + 5.528000000000e-10 -4.395480856777e-01 + 5.628000000000e-10 -2.568451405700e-01 + 5.728000000000e-10 -3.848386295174e-02 + 5.828000000000e-10 1.891998017504e-01 + 5.928000000000e-10 3.940128253458e-01 + 6.028000000000e-10 5.442195759360e-01 + 6.128000000000e-10 6.360190076123e-01 + 6.228000000000e-10 6.723154692419e-01 + 6.328000000000e-10 6.496722035130e-01 + 6.428000000000e-10 5.709215560836e-01 + 6.528000000000e-10 4.396716365902e-01 + 6.628000000000e-10 2.568848555761e-01 + 6.728000000000e-10 3.861258812938e-02 + 6.828000000000e-10 -1.891673406027e-01 + 6.928000000000e-10 -3.939096487469e-01 + 7.028000000000e-10 -5.442185154541e-01 + 7.128000000000e-10 -6.359555029215e-01 + 7.228000000000e-10 -6.723494769467e-01 + 7.328000000000e-10 -6.496420384079e-01 + 7.428000000000e-10 -5.709822816025e-01 + 7.528000000000e-10 -4.396582995671e-01 + 7.628000000000e-10 -2.569529185106e-01 + 7.728000000000e-10 -3.860128053097e-02 + 7.828000000000e-10 1.891028165048e-01 + 7.928000000000e-10 3.939252197739e-01 + 8.028000000000e-10 5.441685861906e-01 + 8.128000000000e-10 6.359828023137e-01 + 8.228000000000e-10 6.723118712615e-01 + 8.328000000000e-10 6.496812709937e-01 + 8.428000000000e-10 5.709544657577e-01 + 8.528000000000e-10 4.397022527784e-01 + 8.628000000000e-10 2.569280980597e-01 + 8.728000000000e-10 3.864565597286e-02 + 8.828000000000e-10 -1.891278298806e-01 + 8.928000000000e-10 -3.938862165142e-01 + 9.028000000000e-10 -5.441949734698e-01 + 9.128000000000e-10 -6.359493781265e-01 + 9.228000000000e-10 -6.723420888760e-01 + 9.328000000000e-10 -6.496512561522e-01 + 9.428000000000e-10 -5.709874488604e-01 + 9.528000000000e-10 -4.396746422576e-01 + 9.628000000000e-10 -2.569616958772e-01 + 9.728000000000e-10 -3.861839939192e-02 + 9.828000000000e-10 1.890951489097e-01 + 9.928000000000e-10 3.939119089870e-01 + 1.000000000000e-09 5.081084039478e-01 diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_04/CML_divider.sym b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_04/CML_divider.sym new file mode 100644 index 00000000..e46eb233 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_04/CML_divider.sym @@ -0,0 +1,30 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 -120 -20 -100 -20 {} +L 4 -120 20 -100 20 {} +L 4 100 -20 120 -20 {} +L 4 100 20 120 20 {} +L 7 0 -60 0 -40 {} +L 7 0 40 0 60 {} +B 5 -122.5 -22.5 -117.5 -17.5 {name=Vo+ dir=out} +B 5 -122.5 17.5 -117.5 22.5 {name=Vo- dir=out} +B 5 117.5 -22.5 122.5 -17.5 {name=Vi+ dir=in} +B 5 117.5 17.5 122.5 22.5 {name=Vi- dir=in} +B 5 -2.5 -62.5 2.5 -57.5 {name=vdd dir=inout} +B 5 -2.5 57.5 2.5 62.5 {name=gnd dir=inout} +P 4 5 100 -40 -100 -40 -100 40 100 40 100 -40 {} +T {@symname} -44 -6 0 0 0.3 0.3 {} +T {@name} 45 -52 0 0 0.2 0.2 {} +T {Vo+} -95 -24 0 0 0.2 0.2 {} +T {Vo-} -95 16 0 0 0.2 0.2 {} +T {Vi+} 95 -16 2 0 0.2 0.2 {} +T {Vi-} 95 24 2 0 0.2 0.2 {} +T {vdd} 10 -39 0 1 0.2 0.2 {} +T {gnd} -10 34 2 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_04/conditions.yaml b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_04/conditions.yaml new file mode 100644 index 00000000..9430aa5d --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_04/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice +N: 4 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: ff +filename: CML_core_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_04 +temperature: '27' +vdd: '0.8' diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_05/.spiceinit b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_05/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_05/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_05/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_05/CML_core_tb.sch new file mode 100644 index 00000000..0ca73f35 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_05/CML_core_tb.sch @@ -0,0 +1,71 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {} +V {} +S {} +E {} +N 740 -940 740 -920 {lab=GND} +N 740 -1090 740 -1060 {lab=VDD} +N 600 -1020 620 -1020 {lab=Vinplus} +N 600 -980 620 -980 {lab=Vinminus} +N 860 -1020 880 -1020 {lab=Voplus} +N 860 -980 880 -980 {lab=Vominus} +N 1150 -850 1150 -820 {lab=VDD} +N 1150 -760 1150 -730 {lab=GND} +N 930 -850 930 -820 {lab=Vinminus} +N 930 -760 930 -730 {lab=GND} +N 720 -850 720 -820 {lab=Vinplus} +N 720 -760 720 -730 {lab=GND} +C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write CML_core_tb.raw +set appendwrite +tran 10p 1n 160p + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_05/CML_core_tb_5.data vo_diff +quit + +.endc +"} +C {opin.sym} 880 -1020 2 1 {name=p6 lab=Voplus} +C {opin.sym} 880 -980 0 0 {name=p9 lab=Vominus} +C {devices/code_shown.sym} 10 -620 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_ss + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice + +.temp 27 +" +} +C {iopin.sym} 740 -1090 0 1 {name=p2 lab=VDD} +C {ipin.sym} 600 -1020 2 1 {name=p4 lab=Vinplus} +C {ipin.sym} 600 -980 2 1 {name=p1 lab=Vinminus} +C {CML_divider.sym} 740 -1000 0 1 {name=x1} +C {vsource.sym} 1150 -790 0 0 {name=V1 value=0.8 savecurrent=false} +C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} +C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} +C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 0.3 10G 0 0 0)" savecurrent=false} +C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 0.3 10G 0 0 180)" savecurrent=false} +C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_05/CML_core_tb_5.data b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_05/CML_core_tb_5.data new file mode 100644 index 00000000..72d71163 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_05/CML_core_tb_5.data @@ -0,0 +1,85 @@ + 1.628000000000e-10 -3.026592886865e-01 + 1.728000000000e-10 -8.046058591213e-02 + 1.828000000000e-10 1.560684489845e-01 + 1.928000000000e-10 3.758215815324e-01 + 2.028000000000e-10 5.441825187720e-01 + 2.128000000000e-10 6.527787402061e-01 + 2.228000000000e-10 7.054162779080e-01 + 2.328000000000e-10 6.966940307878e-01 + 2.428000000000e-10 6.251719997267e-01 + 2.528000000000e-10 4.948986245243e-01 + 2.628000000000e-10 3.088338841037e-01 + 2.728000000000e-10 8.463582249819e-02 + 2.828000000000e-10 -1.534379373390e-01 + 2.928000000000e-10 -3.742382678981e-01 + 3.028000000000e-10 -5.437587344983e-01 + 3.128000000000e-10 -6.527795869025e-01 + 3.228000000000e-10 -7.060578401775e-01 + 3.328000000000e-10 -6.977288800308e-01 + 3.428000000000e-10 -6.267241220561e-01 + 3.528000000000e-10 -4.964034573067e-01 + 3.628000000000e-10 -3.104523257846e-01 + 3.728000000000e-10 -8.599843693100e-02 + 3.828000000000e-10 1.520614001089e-01 + 3.928000000000e-10 3.732327292359e-01 + 4.028000000000e-10 5.429530946109e-01 + 4.128000000000e-10 6.523997728799e-01 + 4.228000000000e-10 7.058202145507e-01 + 4.328000000000e-10 6.979022558405e-01 + 4.428000000000e-10 6.269588593419e-01 + 4.528000000000e-10 4.968624227466e-01 + 4.628000000000e-10 3.108132149603e-01 + 4.728000000000e-10 8.648038785746e-02 + 4.828000000000e-10 -1.517384677919e-01 + 4.928000000000e-10 -3.728474794484e-01 + 5.028000000000e-10 -5.427866011842e-01 + 5.128000000000e-10 -6.522022614009e-01 + 5.228000000000e-10 -7.058208822479e-01 + 5.328000000000e-10 -6.978651082200e-01 + 5.428000000000e-10 -6.270935668997e-01 + 5.528000000000e-10 -4.969096569281e-01 + 5.628000000000e-10 -3.109835748750e-01 + 5.728000000000e-10 -8.653572716924e-02 + 5.828000000000e-10 1.515778681972e-01 + 5.928000000000e-10 3.728127447205e-01 + 6.028000000000e-10 5.426739415091e-01 + 6.128000000000e-10 6.522162007318e-01 + 6.228000000000e-10 7.057544179932e-01 + 6.328000000000e-10 6.979224304337e-01 + 6.428000000000e-10 6.270641898671e-01 + 6.528000000000e-10 4.969874144680e-01 + 6.628000000000e-10 3.109648292365e-01 + 6.728000000000e-10 8.661535651254e-02 + 6.828000000000e-10 -1.515990397030e-01 + 6.928000000000e-10 -3.727433125293e-01 + 7.028000000000e-10 -5.427028559119e-01 + 7.128000000000e-10 -6.521615488134e-01 + 7.228000000000e-10 -7.057946841560e-01 + 7.328000000000e-10 -6.978790263426e-01 + 7.428000000000e-10 -6.271133848792e-01 + 7.528000000000e-10 -4.969513861012e-01 + 7.628000000000e-10 -3.110159233563e-01 + 7.728000000000e-10 -8.658006676818e-02 + 7.828000000000e-10 1.515487071721e-01 + 7.928000000000e-10 3.727772980737e-01 + 8.028000000000e-10 5.426589701450e-01 + 8.128000000000e-10 6.521979789832e-01 + 8.228000000000e-10 7.057547305503e-01 + 8.328000000000e-10 6.979187185021e-01 + 8.428000000000e-10 6.270767072939e-01 + 8.528000000000e-10 4.969913946096e-01 + 8.628000000000e-10 3.109805885282e-01 + 8.728000000000e-10 8.662004567696e-02 + 8.828000000000e-10 -1.515841004471e-01 + 8.928000000000e-10 -3.727405314049e-01 + 9.028000000000e-10 -5.426922302859e-01 + 9.128000000000e-10 -6.521632231968e-01 + 9.228000000000e-10 -7.057882763540e-01 + 9.328000000000e-10 -6.978845659833e-01 + 9.428000000000e-10 -6.271103709374e-01 + 9.528000000000e-10 -4.969587868574e-01 + 9.628000000000e-10 -3.110138943909e-01 + 9.728000000000e-10 -8.658760475646e-02 + 9.828000000000e-10 1.515508999036e-01 + 9.928000000000e-10 3.727707590510e-01 + 1.000000000000e-09 5.012730784879e-01 diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_05/CML_divider.sym b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_05/CML_divider.sym new file mode 100644 index 00000000..e46eb233 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_05/CML_divider.sym @@ -0,0 +1,30 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 -120 -20 -100 -20 {} +L 4 -120 20 -100 20 {} +L 4 100 -20 120 -20 {} +L 4 100 20 120 20 {} +L 7 0 -60 0 -40 {} +L 7 0 40 0 60 {} +B 5 -122.5 -22.5 -117.5 -17.5 {name=Vo+ dir=out} +B 5 -122.5 17.5 -117.5 22.5 {name=Vo- dir=out} +B 5 117.5 -22.5 122.5 -17.5 {name=Vi+ dir=in} +B 5 117.5 17.5 122.5 22.5 {name=Vi- dir=in} +B 5 -2.5 -62.5 2.5 -57.5 {name=vdd dir=inout} +B 5 -2.5 57.5 2.5 62.5 {name=gnd dir=inout} +P 4 5 100 -40 -100 -40 -100 40 100 40 100 -40 {} +T {@symname} -44 -6 0 0 0.3 0.3 {} +T {@name} 45 -52 0 0 0.2 0.2 {} +T {Vo+} -95 -24 0 0 0.2 0.2 {} +T {Vo-} -95 16 0 0 0.2 0.2 {} +T {Vi+} 95 -16 2 0 0.2 0.2 {} +T {Vi-} 95 24 2 0 0.2 0.2 {} +T {vdd} 10 -39 0 1 0.2 0.2 {} +T {gnd} -10 34 2 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_05/conditions.yaml b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_05/conditions.yaml new file mode 100644 index 00000000..194e56a1 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_05/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice +N: 5 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: ss +filename: CML_core_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_05 +temperature: '27' +vdd: '0.8' diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_06/.spiceinit b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_06/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_06/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_06/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_06/CML_core_tb.sch new file mode 100644 index 00000000..35464db0 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_06/CML_core_tb.sch @@ -0,0 +1,71 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {} +V {} +S {} +E {} +N 740 -940 740 -920 {lab=GND} +N 740 -1090 740 -1060 {lab=VDD} +N 600 -1020 620 -1020 {lab=Vinplus} +N 600 -980 620 -980 {lab=Vinminus} +N 860 -1020 880 -1020 {lab=Voplus} +N 860 -980 880 -980 {lab=Vominus} +N 1150 -850 1150 -820 {lab=VDD} +N 1150 -760 1150 -730 {lab=GND} +N 930 -850 930 -820 {lab=Vinminus} +N 930 -760 930 -730 {lab=GND} +N 720 -850 720 -820 {lab=Vinplus} +N 720 -760 720 -730 {lab=GND} +C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write CML_core_tb.raw +set appendwrite +tran 10p 1n 160p + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_06/CML_core_tb_6.data vo_diff +quit + +.endc +"} +C {opin.sym} 880 -1020 2 1 {name=p6 lab=Voplus} +C {opin.sym} 880 -980 0 0 {name=p9 lab=Vominus} +C {devices/code_shown.sym} 10 -620 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_tt + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice + +.temp 80 +" +} +C {iopin.sym} 740 -1090 0 1 {name=p2 lab=VDD} +C {ipin.sym} 600 -1020 2 1 {name=p4 lab=Vinplus} +C {ipin.sym} 600 -980 2 1 {name=p1 lab=Vinminus} +C {CML_divider.sym} 740 -1000 0 1 {name=x1} +C {vsource.sym} 1150 -790 0 0 {name=V1 value=0.8 savecurrent=false} +C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} +C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} +C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 0.3 10G 0 0 0)" savecurrent=false} +C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 0.3 10G 0 0 180)" savecurrent=false} +C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_06/CML_core_tb_6.data b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_06/CML_core_tb_6.data new file mode 100644 index 00000000..2ac25b32 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_06/CML_core_tb_6.data @@ -0,0 +1,85 @@ + 1.628000000000e-10 -2.658991355482e-01 + 1.728000000000e-10 -5.658971746101e-02 + 1.828000000000e-10 1.665652322471e-01 + 1.928000000000e-10 3.726189743475e-01 + 2.028000000000e-10 5.303705116758e-01 + 2.128000000000e-10 6.287796796090e-01 + 2.228000000000e-10 6.685380236864e-01 + 2.328000000000e-10 6.490234756137e-01 + 2.428000000000e-10 5.737092070140e-01 + 2.528000000000e-10 4.474825535463e-01 + 2.628000000000e-10 2.725242795062e-01 + 2.728000000000e-10 6.117177433707e-02 + 2.828000000000e-10 -1.637031734923e-01 + 2.928000000000e-10 -3.708935568747e-01 + 3.028000000000e-10 -5.297756369707e-01 + 3.128000000000e-10 -6.287017384995e-01 + 3.228000000000e-10 -6.693265533929e-01 + 3.328000000000e-10 -6.504570398323e-01 + 3.428000000000e-10 -5.758168078022e-01 + 3.528000000000e-10 -4.496242973413e-01 + 3.628000000000e-10 -2.747981275605e-01 + 3.728000000000e-10 -6.319393908833e-02 + 3.828000000000e-10 1.617439470913e-01 + 3.928000000000e-10 3.694169588634e-01 + 4.028000000000e-10 5.286499307585e-01 + 4.128000000000e-10 6.281722098808e-01 + 4.228000000000e-10 6.691184385543e-01 + 4.328000000000e-10 6.507901751637e-01 + 4.428000000000e-10 5.762974118946e-01 + 4.528000000000e-10 4.503608294114e-01 + 4.628000000000e-10 2.754522690623e-01 + 4.728000000000e-10 6.396306731359e-02 + 4.828000000000e-10 -1.611542650007e-01 + 4.928000000000e-10 -3.688169747432e-01 + 5.028000000000e-10 -5.283292872594e-01 + 5.128000000000e-10 -6.279003852563e-01 + 5.228000000000e-10 -6.691136918962e-01 + 5.328000000000e-10 -6.508124831570e-01 + 5.428000000000e-10 -5.765249280825e-01 + 5.528000000000e-10 -4.505225248069e-01 + 5.628000000000e-10 -2.757393848954e-01 + 5.728000000000e-10 -6.413835118523e-02 + 5.828000000000e-10 1.608879015274e-01 + 5.928000000000e-10 3.686909867212e-01 + 6.028000000000e-10 5.281558224884e-01 + 6.128000000000e-10 6.278785795680e-01 + 6.228000000000e-10 6.690442760911e-01 + 6.328000000000e-10 6.508870303825e-01 + 6.428000000000e-10 5.765321271449e-01 + 6.528000000000e-10 4.506407637839e-01 + 6.628000000000e-10 2.757670228304e-01 + 6.728000000000e-10 6.426080532693e-02 + 6.828000000000e-10 -1.608659404084e-01 + 6.928000000000e-10 -3.685888330346e-01 + 7.028000000000e-10 -5.281591419234e-01 + 7.128000000000e-10 -6.278127091451e-01 + 7.228000000000e-10 -6.690805910819e-01 + 7.328000000000e-10 -6.508520944992e-01 + 7.428000000000e-10 -5.765925476372e-01 + 7.528000000000e-10 -4.506215704207e-01 + 7.628000000000e-10 -2.758332595929e-01 + 7.728000000000e-10 -6.424327491403e-02 + 7.828000000000e-10 1.608024320318e-01 + 7.928000000000e-10 3.686091606456e-01 + 8.028000000000e-10 5.281080947303e-01 + 8.128000000000e-10 6.278426474070e-01 + 8.228000000000e-10 6.690409470235e-01 + 8.328000000000e-10 6.508923982303e-01 + 8.428000000000e-10 5.765614162070e-01 + 8.528000000000e-10 4.506656063053e-01 + 8.628000000000e-10 2.758047260180e-01 + 8.728000000000e-10 6.428762429922e-02 + 8.828000000000e-10 -1.608310872580e-01 + 8.928000000000e-10 -3.685690211775e-01 + 9.028000000000e-10 -5.281370864240e-01 + 9.128000000000e-10 -6.278075066251e-01 + 9.228000000000e-10 -6.690730291835e-01 + 9.328000000000e-10 -6.508603444096e-01 + 9.428000000000e-10 -5.765956636587e-01 + 9.528000000000e-10 -4.506359555730e-01 + 9.628000000000e-10 -2.758391852585e-01 + 9.728000000000e-10 -6.425829353036e-02 + 9.828000000000e-10 1.607973448132e-01 + 9.928000000000e-10 3.685968285070e-01 + 1.000000000000e-09 4.894958047088e-01 diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_06/CML_divider.sym b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_06/CML_divider.sym new file mode 100644 index 00000000..e46eb233 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_06/CML_divider.sym @@ -0,0 +1,30 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 -120 -20 -100 -20 {} +L 4 -120 20 -100 20 {} +L 4 100 -20 120 -20 {} +L 4 100 20 120 20 {} +L 7 0 -60 0 -40 {} +L 7 0 40 0 60 {} +B 5 -122.5 -22.5 -117.5 -17.5 {name=Vo+ dir=out} +B 5 -122.5 17.5 -117.5 22.5 {name=Vo- dir=out} +B 5 117.5 -22.5 122.5 -17.5 {name=Vi+ dir=in} +B 5 117.5 17.5 122.5 22.5 {name=Vi- dir=in} +B 5 -2.5 -62.5 2.5 -57.5 {name=vdd dir=inout} +B 5 -2.5 57.5 2.5 62.5 {name=gnd dir=inout} +P 4 5 100 -40 -100 -40 -100 40 100 40 100 -40 {} +T {@symname} -44 -6 0 0 0.3 0.3 {} +T {@name} 45 -52 0 0 0.2 0.2 {} +T {Vo+} -95 -24 0 0 0.2 0.2 {} +T {Vo-} -95 16 0 0 0.2 0.2 {} +T {Vi+} 95 -16 2 0 0.2 0.2 {} +T {Vi-} 95 24 2 0 0.2 0.2 {} +T {vdd} 10 -39 0 1 0.2 0.2 {} +T {gnd} -10 34 2 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_06/conditions.yaml b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_06/conditions.yaml new file mode 100644 index 00000000..95070641 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_06/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice +N: 6 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: tt +filename: CML_core_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_06 +temperature: '80' +vdd: '0.8' diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_07/.spiceinit b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_07/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_07/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_07/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_07/CML_core_tb.sch new file mode 100644 index 00000000..17e8588a --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_07/CML_core_tb.sch @@ -0,0 +1,71 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {} +V {} +S {} +E {} +N 740 -940 740 -920 {lab=GND} +N 740 -1090 740 -1060 {lab=VDD} +N 600 -1020 620 -1020 {lab=Vinplus} +N 600 -980 620 -980 {lab=Vinminus} +N 860 -1020 880 -1020 {lab=Voplus} +N 860 -980 880 -980 {lab=Vominus} +N 1150 -850 1150 -820 {lab=VDD} +N 1150 -760 1150 -730 {lab=GND} +N 930 -850 930 -820 {lab=Vinminus} +N 930 -760 930 -730 {lab=GND} +N 720 -850 720 -820 {lab=Vinplus} +N 720 -760 720 -730 {lab=GND} +C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write CML_core_tb.raw +set appendwrite +tran 10p 1n 160p + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_07/CML_core_tb_7.data vo_diff +quit + +.endc +"} +C {opin.sym} 880 -1020 2 1 {name=p6 lab=Voplus} +C {opin.sym} 880 -980 0 0 {name=p9 lab=Vominus} +C {devices/code_shown.sym} 10 -620 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_ff + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice + +.temp 80 +" +} +C {iopin.sym} 740 -1090 0 1 {name=p2 lab=VDD} +C {ipin.sym} 600 -1020 2 1 {name=p4 lab=Vinplus} +C {ipin.sym} 600 -980 2 1 {name=p1 lab=Vinminus} +C {CML_divider.sym} 740 -1000 0 1 {name=x1} +C {vsource.sym} 1150 -790 0 0 {name=V1 value=0.8 savecurrent=false} +C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} +C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} +C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 0.3 10G 0 0 0)" savecurrent=false} +C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 0.3 10G 0 0 180)" savecurrent=false} +C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_07/CML_core_tb_7.data b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_07/CML_core_tb_7.data new file mode 100644 index 00000000..8cc8eec2 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_07/CML_core_tb_7.data @@ -0,0 +1,85 @@ + 1.628000000000e-10 -2.411371086013e-01 + 1.728000000000e-10 -3.745255924116e-02 + 1.828000000000e-10 1.789428987452e-01 + 1.928000000000e-10 3.769558934840e-01 + 2.028000000000e-10 5.255858783541e-01 + 2.128000000000e-10 6.150086513683e-01 + 2.228000000000e-10 6.463506095909e-01 + 2.328000000000e-10 6.202014565113e-01 + 2.428000000000e-10 5.417075102450e-01 + 2.528000000000e-10 4.161519970610e-01 + 2.628000000000e-10 2.448960905686e-01 + 2.728000000000e-10 3.892968213965e-02 + 2.828000000000e-10 -1.791505445505e-01 + 2.928000000000e-10 -3.778686664383e-01 + 3.028000000000e-10 -5.268093330033e-01 + 3.128000000000e-10 -6.159877416348e-01 + 3.228000000000e-10 -6.476195951568e-01 + 3.328000000000e-10 -6.216667221790e-01 + 3.428000000000e-10 -5.435382878554e-01 + 3.528000000000e-10 -4.178448923887e-01 + 3.628000000000e-10 -2.466531390426e-01 + 3.728000000000e-10 -4.041876256606e-02 + 3.828000000000e-10 1.777092594525e-01 + 3.928000000000e-10 3.768542192180e-01 + 4.028000000000e-10 5.260351926041e-01 + 4.128000000000e-10 6.156923491854e-01 + 4.228000000000e-10 6.475364165656e-01 + 4.328000000000e-10 6.220253224816e-01 + 4.428000000000e-10 5.439681165412e-01 + 4.528000000000e-10 4.184919515643e-01 + 4.628000000000e-10 2.472032785778e-01 + 4.728000000000e-10 4.108392377197e-02 + 4.828000000000e-10 -1.772209974541e-01 + 4.928000000000e-10 -3.763464849454e-01 + 5.028000000000e-10 -5.257893585276e-01 + 5.128000000000e-10 -6.154751208437e-01 + 5.228000000000e-10 -6.475677164184e-01 + 5.328000000000e-10 -6.220637777790e-01 + 5.428000000000e-10 -5.441970040997e-01 + 5.528000000000e-10 -4.186454653208e-01 + 5.628000000000e-10 -2.474812841152e-01 + 5.728000000000e-10 -4.124875776275e-02 + 5.828000000000e-10 1.769646369358e-01 + 5.928000000000e-10 3.762321495571e-01 + 6.028000000000e-10 5.256270530622e-01 + 6.128000000000e-10 6.154644314175e-01 + 6.228000000000e-10 6.475079392204e-01 + 6.328000000000e-10 6.221477255403e-01 + 6.428000000000e-10 5.442104878297e-01 + 6.528000000000e-10 4.187701859554e-01 + 6.628000000000e-10 2.475138621783e-01 + 6.728000000000e-10 4.137738638918e-02 + 6.828000000000e-10 -1.769383615791e-01 + 6.928000000000e-10 -3.761265802968e-01 + 7.028000000000e-10 -5.256298366366e-01 + 7.128000000000e-10 -6.153992750277e-01 + 7.228000000000e-10 -6.475476374408e-01 + 7.328000000000e-10 -6.221164421539e-01 + 7.428000000000e-10 -5.442762390873e-01 + 7.528000000000e-10 -4.187551150856e-01 + 7.628000000000e-10 -2.475858208222e-01 + 7.728000000000e-10 -4.136415856981e-02 + 7.828000000000e-10 1.768699557901e-01 + 7.928000000000e-10 3.761440347995e-01 + 8.028000000000e-10 5.255765528630e-01 + 8.128000000000e-10 6.154291154928e-01 + 8.228000000000e-10 6.475082015932e-01 + 8.328000000000e-10 6.221591874056e-01 + 8.428000000000e-10 5.442468649409e-01 + 8.528000000000e-10 4.188025713318e-01 + 8.628000000000e-10 2.475593730203e-01 + 8.728000000000e-10 4.141194467582e-02 + 8.828000000000e-10 -1.768965906206e-01 + 8.928000000000e-10 -3.761014263264e-01 + 9.028000000000e-10 -5.256047249426e-01 + 9.128000000000e-10 -6.153930400649e-01 + 9.228000000000e-10 -6.475410523019e-01 + 9.328000000000e-10 -6.221273229309e-01 + 9.428000000000e-10 -5.442828742825e-01 + 9.528000000000e-10 -4.187734552047e-01 + 9.628000000000e-10 -2.475958588134e-01 + 9.728000000000e-10 -4.138326223977e-02 + 9.828000000000e-10 1.768611473522e-01 + 9.928000000000e-10 3.761288017358e-01 + 1.000000000000e-09 4.898465656484e-01 diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_07/CML_divider.sym b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_07/CML_divider.sym new file mode 100644 index 00000000..e46eb233 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_07/CML_divider.sym @@ -0,0 +1,30 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 -120 -20 -100 -20 {} +L 4 -120 20 -100 20 {} +L 4 100 -20 120 -20 {} +L 4 100 20 120 20 {} +L 7 0 -60 0 -40 {} +L 7 0 40 0 60 {} +B 5 -122.5 -22.5 -117.5 -17.5 {name=Vo+ dir=out} +B 5 -122.5 17.5 -117.5 22.5 {name=Vo- dir=out} +B 5 117.5 -22.5 122.5 -17.5 {name=Vi+ dir=in} +B 5 117.5 17.5 122.5 22.5 {name=Vi- dir=in} +B 5 -2.5 -62.5 2.5 -57.5 {name=vdd dir=inout} +B 5 -2.5 57.5 2.5 62.5 {name=gnd dir=inout} +P 4 5 100 -40 -100 -40 -100 40 100 40 100 -40 {} +T {@symname} -44 -6 0 0 0.3 0.3 {} +T {@name} 45 -52 0 0 0.2 0.2 {} +T {Vo+} -95 -24 0 0 0.2 0.2 {} +T {Vo-} -95 16 0 0 0.2 0.2 {} +T {Vi+} 95 -16 2 0 0.2 0.2 {} +T {Vi-} 95 24 2 0 0.2 0.2 {} +T {vdd} 10 -39 0 1 0.2 0.2 {} +T {gnd} -10 34 2 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_07/conditions.yaml b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_07/conditions.yaml new file mode 100644 index 00000000..97a487a6 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_07/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice +N: 7 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: ff +filename: CML_core_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_07 +temperature: '80' +vdd: '0.8' diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_08/.spiceinit b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_08/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_08/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_08/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_08/CML_core_tb.sch new file mode 100644 index 00000000..c7d695d3 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_08/CML_core_tb.sch @@ -0,0 +1,71 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {} +V {} +S {} +E {} +N 740 -940 740 -920 {lab=GND} +N 740 -1090 740 -1060 {lab=VDD} +N 600 -1020 620 -1020 {lab=Vinplus} +N 600 -980 620 -980 {lab=Vinminus} +N 860 -1020 880 -1020 {lab=Voplus} +N 860 -980 880 -980 {lab=Vominus} +N 1150 -850 1150 -820 {lab=VDD} +N 1150 -760 1150 -730 {lab=GND} +N 930 -850 930 -820 {lab=Vinminus} +N 930 -760 930 -730 {lab=GND} +N 720 -850 720 -820 {lab=Vinplus} +N 720 -760 720 -730 {lab=GND} +C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write CML_core_tb.raw +set appendwrite +tran 10p 1n 160p + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_08/CML_core_tb_8.data vo_diff +quit + +.endc +"} +C {opin.sym} 880 -1020 2 1 {name=p6 lab=Voplus} +C {opin.sym} 880 -980 0 0 {name=p9 lab=Vominus} +C {devices/code_shown.sym} 10 -620 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_ss + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice + +.temp 80 +" +} +C {iopin.sym} 740 -1090 0 1 {name=p2 lab=VDD} +C {ipin.sym} 600 -1020 2 1 {name=p4 lab=Vinplus} +C {ipin.sym} 600 -980 2 1 {name=p1 lab=Vinminus} +C {CML_divider.sym} 740 -1000 0 1 {name=x1} +C {vsource.sym} 1150 -790 0 0 {name=V1 value=0.8 savecurrent=false} +C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} +C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} +C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 0.3 10G 0 0 0)" savecurrent=false} +C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 0.3 10G 0 0 180)" savecurrent=false} +C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_08/CML_core_tb_8.data b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_08/CML_core_tb_8.data new file mode 100644 index 00000000..2ec9911e --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_08/CML_core_tb_8.data @@ -0,0 +1,85 @@ + 1.628000000000e-10 -2.915574653990e-01 + 1.728000000000e-10 -8.207206468644e-02 + 1.828000000000e-10 1.443140454917e-01 + 1.928000000000e-10 3.578501059917e-01 + 2.028000000000e-10 5.264102614641e-01 + 2.128000000000e-10 6.356033847750e-01 + 2.228000000000e-10 6.852124516173e-01 + 2.328000000000e-10 6.731697751231e-01 + 2.428000000000e-10 6.014680860110e-01 + 2.528000000000e-10 4.762934940598e-01 + 2.628000000000e-10 3.019743151843e-01 + 2.728000000000e-10 9.052768843264e-02 + 2.828000000000e-10 -1.376882496508e-01 + 2.928000000000e-10 -3.528073773591e-01 + 3.028000000000e-10 -5.234244166185e-01 + 3.128000000000e-10 -6.340851318675e-01 + 3.228000000000e-10 -6.854084589569e-01 + 3.328000000000e-10 -6.747695956588e-01 + 3.428000000000e-10 -6.042844418494e-01 + 3.528000000000e-10 -4.793995649692e-01 + 3.628000000000e-10 -3.052822644166e-01 + 3.728000000000e-10 -9.358407685982e-02 + 3.828000000000e-10 1.347194202511e-01 + 3.928000000000e-10 3.504174847188e-01 + 4.028000000000e-10 5.215924623562e-01 + 4.128000000000e-10 6.330900225454e-01 + 4.228000000000e-10 6.849701135730e-01 + 4.328000000000e-10 6.751037342439e-01 + 4.428000000000e-10 6.049384750133e-01 + 4.528000000000e-10 4.803914109079e-01 + 4.628000000000e-10 3.062148923158e-01 + 4.728000000000e-10 9.463220881739e-02 + 4.828000000000e-10 -1.338572933423e-01 + 4.928000000000e-10 -3.495689260045e-01 + 5.028000000000e-10 -5.210792449240e-01 + 5.128000000000e-10 -6.326887195405e-01 + 5.228000000000e-10 -6.848983576670e-01 + 5.328000000000e-10 -6.751198274713e-01 + 5.428000000000e-10 -6.052060952211e-01 + 5.528000000000e-10 -4.806148207689e-01 + 5.628000000000e-10 -3.065686575138e-01 + 5.728000000000e-10 -9.487468231530e-02 + 5.828000000000e-10 1.335246601606e-01 + 5.928000000000e-10 3.493821792388e-01 + 6.028000000000e-10 5.208575371198e-01 + 6.128000000000e-10 6.326338805716e-01 + 6.228000000000e-10 6.848108600046e-01 + 6.328000000000e-10 6.751907109187e-01 + 6.428000000000e-10 6.052214841565e-01 + 6.528000000000e-10 4.807458450129e-01 + 6.628000000000e-10 3.066111422989e-01 + 6.728000000000e-10 9.501122064621e-02 + 6.828000000000e-10 -1.334882175614e-01 + 6.928000000000e-10 -3.492660352924e-01 + 7.028000000000e-10 -5.208495294585e-01 + 7.128000000000e-10 -6.325598499367e-01 + 7.228000000000e-10 -6.848421004985e-01 + 7.328000000000e-10 -6.751543080912e-01 + 7.428000000000e-10 -6.052828258645e-01 + 7.528000000000e-10 -4.807293659120e-01 + 7.628000000000e-10 -3.066794924108e-01 + 7.728000000000e-10 -9.499664108150e-02 + 7.828000000000e-10 1.334220275121e-01 + 7.928000000000e-10 3.492835018463e-01 + 8.028000000000e-10 5.207961769649e-01 + 8.128000000000e-10 6.325876998525e-01 + 8.228000000000e-10 6.848014468222e-01 + 8.328000000000e-10 6.751935994962e-01 + 8.428000000000e-10 6.052518981308e-01 + 8.528000000000e-10 4.807729857688e-01 + 8.628000000000e-10 3.066516205185e-01 + 8.728000000000e-10 9.504068447267e-02 + 8.828000000000e-10 -1.334502935734e-01 + 8.928000000000e-10 -3.492430994753e-01 + 9.028000000000e-10 -5.208246106410e-01 + 9.128000000000e-10 -6.325523513325e-01 + 9.228000000000e-10 -6.848328984481e-01 + 9.328000000000e-10 -6.751615848536e-01 + 9.428000000000e-10 -6.052856721640e-01 + 9.528000000000e-10 -4.807436971446e-01 + 9.628000000000e-10 -3.066854569150e-01 + 9.728000000000e-10 -9.501170247959e-02 + 9.828000000000e-10 1.334168358063e-01 + 9.928000000000e-10 3.492707284922e-01 + 1.000000000000e-09 4.787459694615e-01 diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_08/CML_divider.sym b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_08/CML_divider.sym new file mode 100644 index 00000000..e46eb233 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_08/CML_divider.sym @@ -0,0 +1,30 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 -120 -20 -100 -20 {} +L 4 -120 20 -100 20 {} +L 4 100 -20 120 -20 {} +L 4 100 20 120 20 {} +L 7 0 -60 0 -40 {} +L 7 0 40 0 60 {} +B 5 -122.5 -22.5 -117.5 -17.5 {name=Vo+ dir=out} +B 5 -122.5 17.5 -117.5 22.5 {name=Vo- dir=out} +B 5 117.5 -22.5 122.5 -17.5 {name=Vi+ dir=in} +B 5 117.5 17.5 122.5 22.5 {name=Vi- dir=in} +B 5 -2.5 -62.5 2.5 -57.5 {name=vdd dir=inout} +B 5 -2.5 57.5 2.5 62.5 {name=gnd dir=inout} +P 4 5 100 -40 -100 -40 -100 40 100 40 100 -40 {} +T {@symname} -44 -6 0 0 0.3 0.3 {} +T {@name} 45 -52 0 0 0.2 0.2 {} +T {Vo+} -95 -24 0 0 0.2 0.2 {} +T {Vo-} -95 16 0 0 0.2 0.2 {} +T {Vi+} 95 -16 2 0 0.2 0.2 {} +T {Vi-} 95 24 2 0 0.2 0.2 {} +T {vdd} 10 -39 0 1 0.2 0.2 {} +T {gnd} -10 34 2 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_08/conditions.yaml b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_08/conditions.yaml new file mode 100644 index 00000000..04700952 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_08/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice +N: 8 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: ss +filename: CML_core_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_08 +temperature: '80' +vdd: '0.8' diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_09/.spiceinit b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_09/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_09/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_09/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_09/CML_core_tb.sch new file mode 100644 index 00000000..ef7cb693 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_09/CML_core_tb.sch @@ -0,0 +1,71 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {} +V {} +S {} +E {} +N 740 -940 740 -920 {lab=GND} +N 740 -1090 740 -1060 {lab=VDD} +N 600 -1020 620 -1020 {lab=Vinplus} +N 600 -980 620 -980 {lab=Vinminus} +N 860 -1020 880 -1020 {lab=Voplus} +N 860 -980 880 -980 {lab=Vominus} +N 1150 -850 1150 -820 {lab=VDD} +N 1150 -760 1150 -730 {lab=GND} +N 930 -850 930 -820 {lab=Vinminus} +N 930 -760 930 -730 {lab=GND} +N 720 -850 720 -820 {lab=Vinplus} +N 720 -760 720 -730 {lab=GND} +C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write CML_core_tb.raw +set appendwrite +tran 10p 1n 160p + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_09/CML_core_tb_9.data vo_diff +quit + +.endc +"} +C {opin.sym} 880 -1020 2 1 {name=p6 lab=Voplus} +C {opin.sym} 880 -980 0 0 {name=p9 lab=Vominus} +C {devices/code_shown.sym} 10 -620 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_tt + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice + +.temp -40 +" +} +C {iopin.sym} 740 -1090 0 1 {name=p2 lab=VDD} +C {ipin.sym} 600 -1020 2 1 {name=p4 lab=Vinplus} +C {ipin.sym} 600 -980 2 1 {name=p1 lab=Vinminus} +C {CML_divider.sym} 740 -1000 0 1 {name=x1} +C {vsource.sym} 1150 -790 0 0 {name=V1 value=1.2 savecurrent=false} +C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} +C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} +C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 0.3 10G 0 0 0)" savecurrent=false} +C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 0.3 10G 0 0 180)" savecurrent=false} +C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_09/CML_core_tb_9.data b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_09/CML_core_tb_9.data new file mode 100644 index 00000000..1eb23e09 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_09/CML_core_tb_9.data @@ -0,0 +1,85 @@ + 1.628000000000e-10 -5.397443385003e-01 + 1.728000000000e-10 -2.045536352810e-01 + 1.828000000000e-10 1.313863393294e-01 + 1.928000000000e-10 3.838209275603e-01 + 2.028000000000e-10 5.347375940933e-01 + 2.128000000000e-10 6.276591932156e-01 + 2.228000000000e-10 7.115621702194e-01 + 2.328000000000e-10 7.798611559065e-01 + 2.428000000000e-10 8.066497785728e-01 + 2.528000000000e-10 7.447444131165e-01 + 2.628000000000e-10 5.331798214247e-01 + 2.728000000000e-10 1.991243487461e-01 + 2.828000000000e-10 -1.352153251063e-01 + 2.928000000000e-10 -3.864762984078e-01 + 3.028000000000e-10 -5.369168929595e-01 + 3.128000000000e-10 -6.290603792866e-01 + 3.228000000000e-10 -7.126196515736e-01 + 3.328000000000e-10 -7.804415576126e-01 + 3.428000000000e-10 -8.071911048716e-01 + 3.528000000000e-10 -7.450481751688e-01 + 3.628000000000e-10 -5.336055963763e-01 + 3.728000000000e-10 -1.993198332358e-01 + 3.828000000000e-10 1.349559401886e-01 + 3.928000000000e-10 3.864112742700e-01 + 4.028000000000e-10 5.367351878370e-01 + 4.128000000000e-10 6.290489992071e-01 + 4.228000000000e-10 7.124864782962e-01 + 4.328000000000e-10 7.804750739895e-01 + 4.428000000000e-10 8.070933947437e-01 + 4.528000000000e-10 7.451033689318e-01 + 4.628000000000e-10 5.335168975820e-01 + 4.728000000000e-10 1.993807368925e-01 + 4.828000000000e-10 -1.350304895400e-01 + 4.928000000000e-10 -3.863532554681e-01 + 5.028000000000e-10 -5.368040585560e-01 + 5.128000000000e-10 -6.289909078772e-01 + 5.228000000000e-10 -7.125533448218e-01 + 5.328000000000e-10 -7.804160897110e-01 + 5.428000000000e-10 -8.071554863663e-01 + 5.528000000000e-10 -7.450422465689e-01 + 5.628000000000e-10 -5.335838460974e-01 + 5.728000000000e-10 -1.993167730115e-01 + 5.828000000000e-10 1.349726890253e-01 + 5.928000000000e-10 3.864109858256e-01 + 6.028000000000e-10 5.367479691018e-01 + 6.128000000000e-10 6.290476980128e-01 + 6.228000000000e-10 7.124950121919e-01 + 6.328000000000e-10 7.804717191606e-01 + 6.428000000000e-10 8.070994779138e-01 + 6.528000000000e-10 7.450975613250e-01 + 6.628000000000e-10 5.335259065522e-01 + 6.728000000000e-10 1.993734548210e-01 + 6.828000000000e-10 -1.350242777574e-01 + 6.928000000000e-10 -3.863605033303e-01 + 7.028000000000e-10 -5.367975294074e-01 + 7.128000000000e-10 -6.289982763959e-01 + 7.228000000000e-10 -7.125455111440e-01 + 7.328000000000e-10 -7.804238043085e-01 + 7.428000000000e-10 -8.071473680780e-01 + 7.528000000000e-10 -7.450494772754e-01 + 7.628000000000e-10 -5.335773499054e-01 + 7.728000000000e-10 -1.993230348361e-01 + 7.828000000000e-10 1.349793746975e-01 + 7.928000000000e-10 3.864055722387e-01 + 8.028000000000e-10 5.367539279153e-01 + 8.128000000000e-10 6.290427569852e-01 + 8.228000000000e-10 7.125002063044e-01 + 8.328000000000e-10 7.804668926767e-01 + 8.428000000000e-10 8.071042297758e-01 + 8.528000000000e-10 7.450922570276e-01 + 8.628000000000e-10 5.335323457615e-01 + 8.728000000000e-10 1.993673584870e-01 + 8.828000000000e-10 -1.350193573750e-01 + 8.928000000000e-10 -3.863660901230e-01 + 9.028000000000e-10 -5.367925035482e-01 + 9.128000000000e-10 -6.290039875175e-01 + 9.228000000000e-10 -7.125398122704e-01 + 9.328000000000e-10 -7.804294363608e-01 + 9.428000000000e-10 -8.071416857778e-01 + 9.528000000000e-10 -7.450548065452e-01 + 9.628000000000e-10 -5.335722743766e-01 + 9.728000000000e-10 -1.993280329539e-01 + 9.828000000000e-10 1.349843549639e-01 + 9.928000000000e-10 3.864011317450e-01 + 1.000000000000e-09 5.028020863733e-01 diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_09/CML_divider.sym b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_09/CML_divider.sym new file mode 100644 index 00000000..e46eb233 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_09/CML_divider.sym @@ -0,0 +1,30 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 -120 -20 -100 -20 {} +L 4 -120 20 -100 20 {} +L 4 100 -20 120 -20 {} +L 4 100 20 120 20 {} +L 7 0 -60 0 -40 {} +L 7 0 40 0 60 {} +B 5 -122.5 -22.5 -117.5 -17.5 {name=Vo+ dir=out} +B 5 -122.5 17.5 -117.5 22.5 {name=Vo- dir=out} +B 5 117.5 -22.5 122.5 -17.5 {name=Vi+ dir=in} +B 5 117.5 17.5 122.5 22.5 {name=Vi- dir=in} +B 5 -2.5 -62.5 2.5 -57.5 {name=vdd dir=inout} +B 5 -2.5 57.5 2.5 62.5 {name=gnd dir=inout} +P 4 5 100 -40 -100 -40 -100 40 100 40 100 -40 {} +T {@symname} -44 -6 0 0 0.3 0.3 {} +T {@name} 45 -52 0 0 0.2 0.2 {} +T {Vo+} -95 -24 0 0 0.2 0.2 {} +T {Vo-} -95 16 0 0 0.2 0.2 {} +T {Vi+} 95 -16 2 0 0.2 0.2 {} +T {Vi-} 95 24 2 0 0.2 0.2 {} +T {vdd} 10 -39 0 1 0.2 0.2 {} +T {gnd} -10 34 2 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_09/conditions.yaml b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_09/conditions.yaml new file mode 100644 index 00000000..ed692c0a --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_09/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice +N: 9 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: tt +filename: CML_core_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_09 +temperature: '-40' +vdd: '1.2' diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_10/.spiceinit b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_10/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_10/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_10/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_10/CML_core_tb.sch new file mode 100644 index 00000000..db663a1f --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_10/CML_core_tb.sch @@ -0,0 +1,71 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {} +V {} +S {} +E {} +N 740 -940 740 -920 {lab=GND} +N 740 -1090 740 -1060 {lab=VDD} +N 600 -1020 620 -1020 {lab=Vinplus} +N 600 -980 620 -980 {lab=Vinminus} +N 860 -1020 880 -1020 {lab=Voplus} +N 860 -980 880 -980 {lab=Vominus} +N 1150 -850 1150 -820 {lab=VDD} +N 1150 -760 1150 -730 {lab=GND} +N 930 -850 930 -820 {lab=Vinminus} +N 930 -760 930 -730 {lab=GND} +N 720 -850 720 -820 {lab=Vinplus} +N 720 -760 720 -730 {lab=GND} +C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write CML_core_tb.raw +set appendwrite +tran 10p 1n 160p + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_10/CML_core_tb_10.data vo_diff +quit + +.endc +"} +C {opin.sym} 880 -1020 2 1 {name=p6 lab=Voplus} +C {opin.sym} 880 -980 0 0 {name=p9 lab=Vominus} +C {devices/code_shown.sym} 10 -620 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_ff + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice + +.temp -40 +" +} +C {iopin.sym} 740 -1090 0 1 {name=p2 lab=VDD} +C {ipin.sym} 600 -1020 2 1 {name=p4 lab=Vinplus} +C {ipin.sym} 600 -980 2 1 {name=p1 lab=Vinminus} +C {CML_divider.sym} 740 -1000 0 1 {name=x1} +C {vsource.sym} 1150 -790 0 0 {name=V1 value=1.2 savecurrent=false} +C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} +C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} +C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 0.3 10G 0 0 0)" savecurrent=false} +C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 0.3 10G 0 0 180)" savecurrent=false} +C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_10/CML_core_tb_10.data b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_10/CML_core_tb_10.data new file mode 100644 index 00000000..973ede5e --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_10/CML_core_tb_10.data @@ -0,0 +1,85 @@ + 1.628000000000e-10 -5.293189432094e-01 + 1.728000000000e-10 -2.034299929592e-01 + 1.828000000000e-10 1.254532736892e-01 + 1.928000000000e-10 3.744603520131e-01 + 2.028000000000e-10 5.220595086358e-01 + 2.128000000000e-10 6.139346231694e-01 + 2.228000000000e-10 6.977077768020e-01 + 2.328000000000e-10 7.638951530454e-01 + 2.428000000000e-10 7.881008470503e-01 + 2.528000000000e-10 7.271434956617e-01 + 2.628000000000e-10 5.227259392947e-01 + 2.728000000000e-10 1.977807095317e-01 + 2.828000000000e-10 -1.296557480667e-01 + 2.928000000000e-10 -3.774966254092e-01 + 3.028000000000e-10 -5.245506032311e-01 + 3.128000000000e-10 -6.155925798862e-01 + 3.228000000000e-10 -6.989490114600e-01 + 3.328000000000e-10 -7.646204924296e-01 + 3.428000000000e-10 -7.887093478172e-01 + 3.528000000000e-10 -7.274783648153e-01 + 3.628000000000e-10 -5.231513423786e-01 + 3.728000000000e-10 -1.979863018154e-01 + 3.828000000000e-10 1.294013660930e-01 + 3.928000000000e-10 3.774276121382e-01 + 4.028000000000e-10 5.243833105689e-01 + 4.128000000000e-10 6.155813660155e-01 + 4.228000000000e-10 6.988272077165e-01 + 4.328000000000e-10 7.646509984988e-01 + 4.428000000000e-10 7.886185007607e-01 + 4.528000000000e-10 7.275266613790e-01 + 4.628000000000e-10 5.230676681296e-01 + 4.728000000000e-10 1.980405747385e-01 + 4.828000000000e-10 -1.294713662253e-01 + 4.928000000000e-10 -3.773761496757e-01 + 5.028000000000e-10 -5.244469821379e-01 + 5.128000000000e-10 -6.155294307936e-01 + 5.228000000000e-10 -6.988887956355e-01 + 5.328000000000e-10 -7.645972449904e-01 + 5.428000000000e-10 -7.886754254295e-01 + 5.528000000000e-10 -7.274706677122e-01 + 5.628000000000e-10 -5.231295350854e-01 + 5.728000000000e-10 -1.979806299381e-01 + 5.828000000000e-10 1.294187696545e-01 + 5.928000000000e-10 3.774292707563e-01 + 6.028000000000e-10 5.243961595933e-01 + 6.128000000000e-10 6.155814701559e-01 + 6.228000000000e-10 6.988355515168e-01 + 6.328000000000e-10 7.646484599731e-01 + 6.428000000000e-10 7.886243100181e-01 + 6.528000000000e-10 7.275215569265e-01 + 6.628000000000e-10 5.230764840752e-01 + 6.728000000000e-10 1.980332799823e-01 + 6.828000000000e-10 -1.294660192513e-01 + 6.928000000000e-10 -3.773827405650e-01 + 7.028000000000e-10 -5.244413520748e-01 + 7.128000000000e-10 -6.155361997798e-01 + 7.228000000000e-10 -6.988817029216e-01 + 7.328000000000e-10 -7.646043204444e-01 + 7.428000000000e-10 -7.886680576572e-01 + 7.528000000000e-10 -7.274772120684e-01 + 7.628000000000e-10 -5.231238849653e-01 + 7.728000000000e-10 -1.979860775160e-01 + 7.828000000000e-10 1.294249237809e-01 + 7.928000000000e-10 3.774244918330e-01 + 8.028000000000e-10 5.244015690321e-01 + 8.128000000000e-10 6.155771739165e-01 + 8.228000000000e-10 6.988402156207e-01 + 8.328000000000e-10 7.646441380646e-01 + 8.428000000000e-10 7.886285892332e-01 + 8.528000000000e-10 7.275167248781e-01 + 8.628000000000e-10 5.230825202638e-01 + 8.728000000000e-10 1.980273627479e-01 + 8.828000000000e-10 -1.294617038455e-01 + 8.928000000000e-10 -3.773878907236e-01 + 9.028000000000e-10 -5.244369215985e-01 + 9.128000000000e-10 -6.155414802599e-01 + 9.228000000000e-10 -6.988765421320e-01 + 9.328000000000e-10 -7.646094975483e-01 + 9.428000000000e-10 -7.886629049186e-01 + 9.528000000000e-10 -7.274820443091e-01 + 9.628000000000e-10 -5.231193961018e-01 + 9.728000000000e-10 -1.979905037884e-01 + 9.828000000000e-10 1.294294922144e-01 + 9.928000000000e-10 3.774205018001e-01 + 1.000000000000e-09 4.912603506308e-01 diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_10/CML_divider.sym b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_10/CML_divider.sym new file mode 100644 index 00000000..e46eb233 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_10/CML_divider.sym @@ -0,0 +1,30 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 -120 -20 -100 -20 {} +L 4 -120 20 -100 20 {} +L 4 100 -20 120 -20 {} +L 4 100 20 120 20 {} +L 7 0 -60 0 -40 {} +L 7 0 40 0 60 {} +B 5 -122.5 -22.5 -117.5 -17.5 {name=Vo+ dir=out} +B 5 -122.5 17.5 -117.5 22.5 {name=Vo- dir=out} +B 5 117.5 -22.5 122.5 -17.5 {name=Vi+ dir=in} +B 5 117.5 17.5 122.5 22.5 {name=Vi- dir=in} +B 5 -2.5 -62.5 2.5 -57.5 {name=vdd dir=inout} +B 5 -2.5 57.5 2.5 62.5 {name=gnd dir=inout} +P 4 5 100 -40 -100 -40 -100 40 100 40 100 -40 {} +T {@symname} -44 -6 0 0 0.3 0.3 {} +T {@name} 45 -52 0 0 0.2 0.2 {} +T {Vo+} -95 -24 0 0 0.2 0.2 {} +T {Vo-} -95 16 0 0 0.2 0.2 {} +T {Vi+} 95 -16 2 0 0.2 0.2 {} +T {Vi-} 95 24 2 0 0.2 0.2 {} +T {vdd} 10 -39 0 1 0.2 0.2 {} +T {gnd} -10 34 2 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_10/conditions.yaml b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_10/conditions.yaml new file mode 100644 index 00000000..9564492a --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_10/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice +N: 10 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: ff +filename: CML_core_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_10 +temperature: '-40' +vdd: '1.2' diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_11/.spiceinit b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_11/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_11/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_11/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_11/CML_core_tb.sch new file mode 100644 index 00000000..fa5a1fa8 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_11/CML_core_tb.sch @@ -0,0 +1,71 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {} +V {} +S {} +E {} +N 740 -940 740 -920 {lab=GND} +N 740 -1090 740 -1060 {lab=VDD} +N 600 -1020 620 -1020 {lab=Vinplus} +N 600 -980 620 -980 {lab=Vinminus} +N 860 -1020 880 -1020 {lab=Voplus} +N 860 -980 880 -980 {lab=Vominus} +N 1150 -850 1150 -820 {lab=VDD} +N 1150 -760 1150 -730 {lab=GND} +N 930 -850 930 -820 {lab=Vinminus} +N 930 -760 930 -730 {lab=GND} +N 720 -850 720 -820 {lab=Vinplus} +N 720 -760 720 -730 {lab=GND} +C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write CML_core_tb.raw +set appendwrite +tran 10p 1n 160p + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_11/CML_core_tb_11.data vo_diff +quit + +.endc +"} +C {opin.sym} 880 -1020 2 1 {name=p6 lab=Voplus} +C {opin.sym} 880 -980 0 0 {name=p9 lab=Vominus} +C {devices/code_shown.sym} 10 -620 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_ss + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice + +.temp -40 +" +} +C {iopin.sym} 740 -1090 0 1 {name=p2 lab=VDD} +C {ipin.sym} 600 -1020 2 1 {name=p4 lab=Vinplus} +C {ipin.sym} 600 -980 2 1 {name=p1 lab=Vinminus} +C {CML_divider.sym} 740 -1000 0 1 {name=x1} +C {vsource.sym} 1150 -790 0 0 {name=V1 value=1.2 savecurrent=false} +C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} +C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} +C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 0.3 10G 0 0 0)" savecurrent=false} +C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 0.3 10G 0 0 180)" savecurrent=false} +C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_11/CML_core_tb_11.data b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_11/CML_core_tb_11.data new file mode 100644 index 00000000..799f8459 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_11/CML_core_tb_11.data @@ -0,0 +1,85 @@ + 1.628000000000e-10 -5.473675478550e-01 + 1.728000000000e-10 -2.087893101739e-01 + 1.828000000000e-10 1.310494751476e-01 + 1.928000000000e-10 3.871555645678e-01 + 2.028000000000e-10 5.437689230363e-01 + 2.128000000000e-10 6.391330299748e-01 + 2.228000000000e-10 7.213082317981e-01 + 2.328000000000e-10 7.903248370025e-01 + 2.428000000000e-10 8.187618792919e-01 + 2.528000000000e-10 7.555729663838e-01 + 2.628000000000e-10 5.409345054541e-01 + 2.728000000000e-10 2.036912835862e-01 + 2.828000000000e-10 -1.345140506878e-01 + 2.928000000000e-10 -3.895370892644e-01 + 3.028000000000e-10 -5.457400052530e-01 + 3.128000000000e-10 -6.403498057265e-01 + 3.228000000000e-10 -7.222286336937e-01 + 3.328000000000e-10 -7.907911780827e-01 + 3.428000000000e-10 -8.192361080664e-01 + 3.528000000000e-10 -7.558198978931e-01 + 3.628000000000e-10 -5.413206307136e-01 + 3.728000000000e-10 -2.038438399825e-01 + 3.828000000000e-10 1.342763346632e-01 + 3.928000000000e-10 3.894921044587e-01 + 4.028000000000e-10 5.455616788274e-01 + 4.128000000000e-10 6.403489734683e-01 + 4.228000000000e-10 7.220944352324e-01 + 4.328000000000e-10 7.908322596821e-01 + 4.428000000000e-10 8.191363162855e-01 + 4.528000000000e-10 7.558824803046e-01 + 4.628000000000e-10 5.412307821184e-01 + 4.728000000000e-10 2.039121351986e-01 + 4.828000000000e-10 -1.343528713892e-01 + 4.928000000000e-10 -3.894290190191e-01 + 5.028000000000e-10 -5.456335562174e-01 + 5.128000000000e-10 -6.402860869065e-01 + 5.228000000000e-10 -7.221652152444e-01 + 5.328000000000e-10 -7.907686614943e-01 + 5.428000000000e-10 -8.192023796026e-01 + 5.528000000000e-10 -7.558173441778e-01 + 5.628000000000e-10 -5.413004970284e-01 + 5.728000000000e-10 -2.038447386050e-01 + 5.828000000000e-10 1.342913524064e-01 + 5.928000000000e-10 3.894897157728e-01 + 6.028000000000e-10 5.455737058766e-01 + 6.128000000000e-10 6.403462778603e-01 + 6.228000000000e-10 7.221032530671e-01 + 6.328000000000e-10 7.908278354740e-01 + 6.428000000000e-10 8.191430293573e-01 + 6.528000000000e-10 7.558759446864e-01 + 6.628000000000e-10 5.412396296665e-01 + 6.728000000000e-10 2.039046702204e-01 + 6.828000000000e-10 -1.343459163903e-01 + 6.928000000000e-10 -3.894366779769e-01 + 7.028000000000e-10 -5.456262483653e-01 + 7.128000000000e-10 -6.402940065215e-01 + 7.228000000000e-10 -7.221570137640e-01 + 7.328000000000e-10 -7.907769448806e-01 + 7.428000000000e-10 -8.191938542033e-01 + 7.528000000000e-10 -7.558251320231e-01 + 7.628000000000e-10 -5.412933191298e-01 + 7.728000000000e-10 -2.038518419443e-01 + 7.828000000000e-10 1.342982918430e-01 + 7.928000000000e-10 3.894837914532e-01 + 8.028000000000e-10 5.455799247329e-01 + 8.128000000000e-10 6.403408689327e-01 + 8.228000000000e-10 7.221089932485e-01 + 8.328000000000e-10 7.908225333386e-01 + 8.428000000000e-10 8.191482615363e-01 + 8.528000000000e-10 7.558702665648e-01 + 8.628000000000e-10 5.412462517638e-01 + 8.728000000000e-10 2.038984202104e-01 + 8.828000000000e-10 -1.343404705774e-01 + 8.928000000000e-10 -3.894425333092e-01 + 9.028000000000e-10 -5.456206778041e-01 + 9.128000000000e-10 -6.403000729433e-01 + 9.228000000000e-10 -7.221509667404e-01 + 9.328000000000e-10 -7.907829740936e-01 + 9.428000000000e-10 -8.191877974471e-01 + 9.528000000000e-10 -7.558308764830e-01 + 9.628000000000e-10 -5.412878201925e-01 + 9.728000000000e-10 -2.038573569097e-01 + 9.828000000000e-10 1.343035264203e-01 + 9.928000000000e-10 3.894790170617e-01 + 1.000000000000e-09 5.100069898815e-01 diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_11/CML_divider.sym b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_11/CML_divider.sym new file mode 100644 index 00000000..e46eb233 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_11/CML_divider.sym @@ -0,0 +1,30 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 -120 -20 -100 -20 {} +L 4 -120 20 -100 20 {} +L 4 100 -20 120 -20 {} +L 4 100 20 120 20 {} +L 7 0 -60 0 -40 {} +L 7 0 40 0 60 {} +B 5 -122.5 -22.5 -117.5 -17.5 {name=Vo+ dir=out} +B 5 -122.5 17.5 -117.5 22.5 {name=Vo- dir=out} +B 5 117.5 -22.5 122.5 -17.5 {name=Vi+ dir=in} +B 5 117.5 17.5 122.5 22.5 {name=Vi- dir=in} +B 5 -2.5 -62.5 2.5 -57.5 {name=vdd dir=inout} +B 5 -2.5 57.5 2.5 62.5 {name=gnd dir=inout} +P 4 5 100 -40 -100 -40 -100 40 100 40 100 -40 {} +T {@symname} -44 -6 0 0 0.3 0.3 {} +T {@name} 45 -52 0 0 0.2 0.2 {} +T {Vo+} -95 -24 0 0 0.2 0.2 {} +T {Vo-} -95 16 0 0 0.2 0.2 {} +T {Vi+} 95 -16 2 0 0.2 0.2 {} +T {Vi-} 95 24 2 0 0.2 0.2 {} +T {vdd} 10 -39 0 1 0.2 0.2 {} +T {gnd} -10 34 2 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_11/conditions.yaml b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_11/conditions.yaml new file mode 100644 index 00000000..18507a3d --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_11/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice +N: 11 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: ss +filename: CML_core_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_11 +temperature: '-40' +vdd: '1.2' diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_12/.spiceinit b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_12/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_12/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_12/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_12/CML_core_tb.sch new file mode 100644 index 00000000..c0d8e471 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_12/CML_core_tb.sch @@ -0,0 +1,71 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {} +V {} +S {} +E {} +N 740 -940 740 -920 {lab=GND} +N 740 -1090 740 -1060 {lab=VDD} +N 600 -1020 620 -1020 {lab=Vinplus} +N 600 -980 620 -980 {lab=Vinminus} +N 860 -1020 880 -1020 {lab=Voplus} +N 860 -980 880 -980 {lab=Vominus} +N 1150 -850 1150 -820 {lab=VDD} +N 1150 -760 1150 -730 {lab=GND} +N 930 -850 930 -820 {lab=Vinminus} +N 930 -760 930 -730 {lab=GND} +N 720 -850 720 -820 {lab=Vinplus} +N 720 -760 720 -730 {lab=GND} +C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write CML_core_tb.raw +set appendwrite +tran 10p 1n 160p + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_12/CML_core_tb_12.data vo_diff +quit + +.endc +"} +C {opin.sym} 880 -1020 2 1 {name=p6 lab=Voplus} +C {opin.sym} 880 -980 0 0 {name=p9 lab=Vominus} +C {devices/code_shown.sym} 10 -620 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_tt + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice + +.temp 27 +" +} +C {iopin.sym} 740 -1090 0 1 {name=p2 lab=VDD} +C {ipin.sym} 600 -1020 2 1 {name=p4 lab=Vinplus} +C {ipin.sym} 600 -980 2 1 {name=p1 lab=Vinminus} +C {CML_divider.sym} 740 -1000 0 1 {name=x1} +C {vsource.sym} 1150 -790 0 0 {name=V1 value=1.2 savecurrent=false} +C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} +C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} +C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 0.3 10G 0 0 0)" savecurrent=false} +C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 0.3 10G 0 0 180)" savecurrent=false} +C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_12/CML_core_tb_12.data b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_12/CML_core_tb_12.data new file mode 100644 index 00000000..db4e4cce --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_12/CML_core_tb_12.data @@ -0,0 +1,85 @@ + 1.628000000000e-10 -5.049557277618e-01 + 1.728000000000e-10 -1.958466480437e-01 + 1.828000000000e-10 1.196319367700e-01 + 1.928000000000e-10 3.700244189406e-01 + 2.028000000000e-10 5.308067637731e-01 + 2.128000000000e-10 6.311299202315e-01 + 2.228000000000e-10 7.086540860403e-01 + 2.328000000000e-10 7.625529356493e-01 + 2.428000000000e-10 7.708473475114e-01 + 2.528000000000e-10 6.980446990655e-01 + 2.628000000000e-10 4.981026307256e-01 + 2.728000000000e-10 1.904449044265e-01 + 2.828000000000e-10 -1.236510258628e-01 + 2.928000000000e-10 -3.730975798774e-01 + 3.028000000000e-10 -5.333436235403e-01 + 3.128000000000e-10 -6.328422885796e-01 + 3.228000000000e-10 -7.099622515515e-01 + 3.328000000000e-10 -7.633093670089e-01 + 3.428000000000e-10 -7.714462858000e-01 + 3.528000000000e-10 -6.983543456334e-01 + 3.628000000000e-10 -4.984830350414e-01 + 3.728000000000e-10 -1.906133898346e-01 + 3.828000000000e-10 1.234140438752e-01 + 3.928000000000e-10 3.730258572177e-01 + 4.028000000000e-10 5.331667972487e-01 + 4.128000000000e-10 6.328214645319e-01 + 4.228000000000e-10 7.098336990067e-01 + 4.328000000000e-10 7.633335528675e-01 + 4.428000000000e-10 7.713603033543e-01 + 4.528000000000e-10 6.984040906368e-01 + 4.628000000000e-10 4.984087981115e-01 + 4.728000000000e-10 1.906698925098e-01 + 4.828000000000e-10 -1.234792426423e-01 + 4.928000000000e-10 -3.729733539485e-01 + 5.028000000000e-10 -5.332277682129e-01 + 5.128000000000e-10 -6.327690017914e-01 + 5.228000000000e-10 -7.098933602520e-01 + 5.328000000000e-10 -7.632805035294e-01 + 5.428000000000e-10 -7.714147767047e-01 + 5.528000000000e-10 -6.983493927960e-01 + 5.628000000000e-10 -4.984657326360e-01 + 5.728000000000e-10 -1.906133403657e-01 + 5.828000000000e-10 1.234275058651e-01 + 5.928000000000e-10 3.730246636548e-01 + 6.028000000000e-10 5.331775888699e-01 + 6.128000000000e-10 6.328197652536e-01 + 6.228000000000e-10 7.098419058182e-01 + 6.328000000000e-10 7.633301342197e-01 + 6.428000000000e-10 7.713661487972e-01 + 6.528000000000e-10 6.983986251010e-01 + 6.628000000000e-10 4.984160910452e-01 + 6.728000000000e-10 1.906635868460e-01 + 6.828000000000e-10 -1.234734747225e-01 + 6.928000000000e-10 -3.729797013887e-01 + 7.028000000000e-10 -5.332215969565e-01 + 7.128000000000e-10 -6.327757131741e-01 + 7.228000000000e-10 -7.098865351622e-01 + 7.328000000000e-10 -7.632871392149e-01 + 7.428000000000e-10 -7.714081948986e-01 + 7.528000000000e-10 -6.983555969606e-01 + 7.628000000000e-10 -4.984601688237e-01 + 7.728000000000e-10 -1.906192454806e-01 + 7.828000000000e-10 1.234332321656e-01 + 7.928000000000e-10 3.730195983111e-01 + 8.028000000000e-10 5.331826746949e-01 + 8.128000000000e-10 6.328151783475e-01 + 8.228000000000e-10 7.098466992587e-01 + 8.328000000000e-10 7.633256332241e-01 + 8.428000000000e-10 7.713705417094e-01 + 8.528000000000e-10 6.983937777920e-01 + 8.628000000000e-10 4.984215072239e-01 + 8.728000000000e-10 1.906583322627e-01 + 8.828000000000e-10 -1.234689419945e-01 + 8.928000000000e-10 -3.729845695752e-01 + 9.028000000000e-10 -5.332169477613e-01 + 9.128000000000e-10 -6.327807857544e-01 + 9.228000000000e-10 -7.098815617208e-01 + 9.328000000000e-10 -7.632920474235e-01 + 9.428000000000e-10 -7.714033753149e-01 + 9.528000000000e-10 -6.983602366678e-01 + 9.628000000000e-10 -4.984557776243e-01 + 9.728000000000e-10 -1.906237729891e-01 + 9.828000000000e-10 1.234375916302e-01 + 9.928000000000e-10 3.730155682884e-01 + 1.000000000000e-09 4.959193237551e-01 diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_12/CML_divider.sym b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_12/CML_divider.sym new file mode 100644 index 00000000..e46eb233 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_12/CML_divider.sym @@ -0,0 +1,30 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 -120 -20 -100 -20 {} +L 4 -120 20 -100 20 {} +L 4 100 -20 120 -20 {} +L 4 100 20 120 20 {} +L 7 0 -60 0 -40 {} +L 7 0 40 0 60 {} +B 5 -122.5 -22.5 -117.5 -17.5 {name=Vo+ dir=out} +B 5 -122.5 17.5 -117.5 22.5 {name=Vo- dir=out} +B 5 117.5 -22.5 122.5 -17.5 {name=Vi+ dir=in} +B 5 117.5 17.5 122.5 22.5 {name=Vi- dir=in} +B 5 -2.5 -62.5 2.5 -57.5 {name=vdd dir=inout} +B 5 -2.5 57.5 2.5 62.5 {name=gnd dir=inout} +P 4 5 100 -40 -100 -40 -100 40 100 40 100 -40 {} +T {@symname} -44 -6 0 0 0.3 0.3 {} +T {@name} 45 -52 0 0 0.2 0.2 {} +T {Vo+} -95 -24 0 0 0.2 0.2 {} +T {Vo-} -95 16 0 0 0.2 0.2 {} +T {Vi+} 95 -16 2 0 0.2 0.2 {} +T {Vi-} 95 24 2 0 0.2 0.2 {} +T {vdd} 10 -39 0 1 0.2 0.2 {} +T {gnd} -10 34 2 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_12/conditions.yaml b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_12/conditions.yaml new file mode 100644 index 00000000..ba5a292d --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_12/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice +N: 12 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: tt +filename: CML_core_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_12 +temperature: '27' +vdd: '1.2' diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_13/.spiceinit b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_13/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_13/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_13/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_13/CML_core_tb.sch new file mode 100644 index 00000000..e4f89ede --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_13/CML_core_tb.sch @@ -0,0 +1,71 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {} +V {} +S {} +E {} +N 740 -940 740 -920 {lab=GND} +N 740 -1090 740 -1060 {lab=VDD} +N 600 -1020 620 -1020 {lab=Vinplus} +N 600 -980 620 -980 {lab=Vinminus} +N 860 -1020 880 -1020 {lab=Voplus} +N 860 -980 880 -980 {lab=Vominus} +N 1150 -850 1150 -820 {lab=VDD} +N 1150 -760 1150 -730 {lab=GND} +N 930 -850 930 -820 {lab=Vinminus} +N 930 -760 930 -730 {lab=GND} +N 720 -850 720 -820 {lab=Vinplus} +N 720 -760 720 -730 {lab=GND} +C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write CML_core_tb.raw +set appendwrite +tran 10p 1n 160p + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_13/CML_core_tb_13.data vo_diff +quit + +.endc +"} +C {opin.sym} 880 -1020 2 1 {name=p6 lab=Voplus} +C {opin.sym} 880 -980 0 0 {name=p9 lab=Vominus} +C {devices/code_shown.sym} 10 -620 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_ff + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice + +.temp 27 +" +} +C {iopin.sym} 740 -1090 0 1 {name=p2 lab=VDD} +C {ipin.sym} 600 -1020 2 1 {name=p4 lab=Vinplus} +C {ipin.sym} 600 -980 2 1 {name=p1 lab=Vinminus} +C {CML_divider.sym} 740 -1000 0 1 {name=x1} +C {vsource.sym} 1150 -790 0 0 {name=V1 value=1.2 savecurrent=false} +C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} +C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} +C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 0.3 10G 0 0 0)" savecurrent=false} +C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 0.3 10G 0 0 180)" savecurrent=false} +C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_13/CML_core_tb_13.data b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_13/CML_core_tb_13.data new file mode 100644 index 00000000..abbd3617 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_13/CML_core_tb_13.data @@ -0,0 +1,85 @@ + 1.628000000000e-10 -4.935497259980e-01 + 1.728000000000e-10 -1.928633983658e-01 + 1.828000000000e-10 1.160949240371e-01 + 1.928000000000e-10 3.619360857197e-01 + 2.028000000000e-10 5.185143131218e-01 + 2.128000000000e-10 6.170086772416e-01 + 2.228000000000e-10 6.939063598865e-01 + 2.328000000000e-10 7.457993341265e-01 + 2.428000000000e-10 7.520509596304e-01 + 2.528000000000e-10 6.804739824857e-01 + 2.628000000000e-10 4.870426149481e-01 + 2.728000000000e-10 1.875308246798e-01 + 2.828000000000e-10 -1.202389208092e-01 + 2.928000000000e-10 -3.651754434827e-01 + 3.028000000000e-10 -5.211918880427e-01 + 3.128000000000e-10 -6.188469707889e-01 + 3.228000000000e-10 -6.953072467312e-01 + 3.328000000000e-10 -7.466129151979e-01 + 3.428000000000e-10 -7.526565311823e-01 + 3.528000000000e-10 -6.807675409917e-01 + 3.628000000000e-10 -4.873945801883e-01 + 3.728000000000e-10 -1.876809763872e-01 + 3.828000000000e-10 1.200199744899e-01 + 3.928000000000e-10 3.651151173578e-01 + 4.028000000000e-10 5.210322421793e-01 + 4.128000000000e-10 6.188330192958e-01 + 4.228000000000e-10 6.951893716680e-01 + 4.328000000000e-10 7.466394998986e-01 + 4.428000000000e-10 7.525773069027e-01 + 4.528000000000e-10 6.808165070916e-01 + 4.628000000000e-10 4.873248087716e-01 + 4.728000000000e-10 1.877358679741e-01 + 4.828000000000e-10 -1.200819840902e-01 + 4.928000000000e-10 -3.650646413699e-01 + 5.028000000000e-10 -5.210903047408e-01 + 5.128000000000e-10 -6.187830156405e-01 + 5.228000000000e-10 -6.952462050643e-01 + 5.328000000000e-10 -7.465883056072e-01 + 5.428000000000e-10 -7.526293067125e-01 + 5.528000000000e-10 -6.807638103361e-01 + 5.628000000000e-10 -4.873795115625e-01 + 5.728000000000e-10 -1.876807689254e-01 + 5.828000000000e-10 1.200326256254e-01 + 5.928000000000e-10 3.651139754788e-01 + 6.028000000000e-10 5.210426454606e-01 + 6.128000000000e-10 6.188315227579e-01 + 6.228000000000e-10 6.951972695911e-01 + 6.328000000000e-10 7.466359762403e-01 + 6.428000000000e-10 7.525829976005e-01 + 6.528000000000e-10 6.808110143898e-01 + 6.628000000000e-10 4.873318873720e-01 + 6.728000000000e-10 1.877292356433e-01 + 6.828000000000e-10 -1.200767202072e-01 + 6.928000000000e-10 -3.650706499628e-01 + 7.028000000000e-10 -5.210847183857e-01 + 7.128000000000e-10 -6.187893543189e-01 + 7.228000000000e-10 -6.952399017798e-01 + 7.328000000000e-10 -7.465944604664e-01 + 7.428000000000e-10 -7.526232942576e-01 + 7.528000000000e-10 -6.807695137827e-01 + 7.628000000000e-10 -4.873744121182e-01 + 7.728000000000e-10 -1.876860880622e-01 + 7.828000000000e-10 1.200380835632e-01 + 7.928000000000e-10 3.651091778387e-01 + 8.028000000000e-10 5.210475167171e-01 + 8.128000000000e-10 6.188272213187e-01 + 8.228000000000e-10 6.952018279574e-01 + 8.328000000000e-10 7.466316140292e-01 + 8.428000000000e-10 7.525872528114e-01 + 8.528000000000e-10 6.808063071094e-01 + 8.628000000000e-10 4.873371355126e-01 + 8.728000000000e-10 1.877239857571e-01 + 8.828000000000e-10 -1.200724809112e-01 + 8.928000000000e-10 -3.650752679165e-01 + 9.028000000000e-10 -5.210804068397e-01 + 9.128000000000e-10 -6.187941569931e-01 + 9.228000000000e-10 -6.952352466105e-01 + 9.328000000000e-10 -7.465990720366e-01 + 9.428000000000e-10 -7.526188226163e-01 + 9.528000000000e-10 -6.807738360998e-01 + 9.628000000000e-10 -4.873703126609e-01 + 9.728000000000e-10 -1.876902725775e-01 + 9.828000000000e-10 1.200422409457e-01 + 9.928000000000e-10 3.651053453859e-01 + 1.000000000000e-09 4.847952698035e-01 diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_13/CML_divider.sym b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_13/CML_divider.sym new file mode 100644 index 00000000..e46eb233 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_13/CML_divider.sym @@ -0,0 +1,30 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 -120 -20 -100 -20 {} +L 4 -120 20 -100 20 {} +L 4 100 -20 120 -20 {} +L 4 100 20 120 20 {} +L 7 0 -60 0 -40 {} +L 7 0 40 0 60 {} +B 5 -122.5 -22.5 -117.5 -17.5 {name=Vo+ dir=out} +B 5 -122.5 17.5 -117.5 22.5 {name=Vo- dir=out} +B 5 117.5 -22.5 122.5 -17.5 {name=Vi+ dir=in} +B 5 117.5 17.5 122.5 22.5 {name=Vi- dir=in} +B 5 -2.5 -62.5 2.5 -57.5 {name=vdd dir=inout} +B 5 -2.5 57.5 2.5 62.5 {name=gnd dir=inout} +P 4 5 100 -40 -100 -40 -100 40 100 40 100 -40 {} +T {@symname} -44 -6 0 0 0.3 0.3 {} +T {@name} 45 -52 0 0 0.2 0.2 {} +T {Vo+} -95 -24 0 0 0.2 0.2 {} +T {Vo-} -95 16 0 0 0.2 0.2 {} +T {Vi+} 95 -16 2 0 0.2 0.2 {} +T {Vi-} 95 24 2 0 0.2 0.2 {} +T {vdd} 10 -39 0 1 0.2 0.2 {} +T {gnd} -10 34 2 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_13/conditions.yaml b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_13/conditions.yaml new file mode 100644 index 00000000..71d8574d --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_13/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice +N: 13 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: ff +filename: CML_core_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_13 +temperature: '27' +vdd: '1.2' diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_14/.spiceinit b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_14/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_14/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_14/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_14/CML_core_tb.sch new file mode 100644 index 00000000..735ac191 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_14/CML_core_tb.sch @@ -0,0 +1,71 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {} +V {} +S {} +E {} +N 740 -940 740 -920 {lab=GND} +N 740 -1090 740 -1060 {lab=VDD} +N 600 -1020 620 -1020 {lab=Vinplus} +N 600 -980 620 -980 {lab=Vinminus} +N 860 -1020 880 -1020 {lab=Voplus} +N 860 -980 880 -980 {lab=Vominus} +N 1150 -850 1150 -820 {lab=VDD} +N 1150 -760 1150 -730 {lab=GND} +N 930 -850 930 -820 {lab=Vinminus} +N 930 -760 930 -730 {lab=GND} +N 720 -850 720 -820 {lab=Vinplus} +N 720 -760 720 -730 {lab=GND} +C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write CML_core_tb.raw +set appendwrite +tran 10p 1n 160p + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_14/CML_core_tb_14.data vo_diff +quit + +.endc +"} +C {opin.sym} 880 -1020 2 1 {name=p6 lab=Voplus} +C {opin.sym} 880 -980 0 0 {name=p9 lab=Vominus} +C {devices/code_shown.sym} 10 -620 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_ss + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice + +.temp 27 +" +} +C {iopin.sym} 740 -1090 0 1 {name=p2 lab=VDD} +C {ipin.sym} 600 -1020 2 1 {name=p4 lab=Vinplus} +C {ipin.sym} 600 -980 2 1 {name=p1 lab=Vinminus} +C {CML_divider.sym} 740 -1000 0 1 {name=x1} +C {vsource.sym} 1150 -790 0 0 {name=V1 value=1.2 savecurrent=false} +C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} +C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} +C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 0.3 10G 0 0 0)" savecurrent=false} +C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 0.3 10G 0 0 180)" savecurrent=false} +C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_14/CML_core_tb_14.data b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_14/CML_core_tb_14.data new file mode 100644 index 00000000..3796cea3 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_14/CML_core_tb_14.data @@ -0,0 +1,85 @@ + 1.628000000000e-10 -5.133282675634e-01 + 1.728000000000e-10 -2.031582081928e-01 + 1.828000000000e-10 1.144804838339e-01 + 1.928000000000e-10 3.698591588516e-01 + 2.028000000000e-10 5.380258146680e-01 + 2.128000000000e-10 6.422542980920e-01 + 2.228000000000e-10 7.191574927620e-01 + 2.328000000000e-10 7.734390216007e-01 + 2.428000000000e-10 7.823512104827e-01 + 2.528000000000e-10 7.081342613122e-01 + 2.628000000000e-10 5.065809773945e-01 + 2.728000000000e-10 1.980707374060e-01 + 2.828000000000e-10 -1.181831896095e-01 + 2.928000000000e-10 -3.727163876319e-01 + 3.028000000000e-10 -5.404428949084e-01 + 3.128000000000e-10 -6.438704305572e-01 + 3.228000000000e-10 -7.204145434420e-01 + 3.328000000000e-10 -7.741471374370e-01 + 3.428000000000e-10 -7.829309638154e-01 + 3.528000000000e-10 -7.084110972821e-01 + 3.628000000000e-10 -5.069426471107e-01 + 3.728000000000e-10 -1.982066720174e-01 + 3.828000000000e-10 1.179564926067e-01 + 3.928000000000e-10 3.726621714283e-01 + 4.028000000000e-10 5.402630628674e-01 + 4.128000000000e-10 6.438601752956e-01 + 4.228000000000e-10 7.202791375194e-01 + 4.328000000000e-10 7.741793827377e-01 + 4.428000000000e-10 7.828380754967e-01 + 4.528000000000e-10 7.084693803333e-01 + 4.628000000000e-10 5.068627667504e-01 + 4.728000000000e-10 1.982719515445e-01 + 4.828000000000e-10 -1.180275895897e-01 + 4.928000000000e-10 -3.726028735362e-01 + 5.028000000000e-10 -5.403301024789e-01 + 5.128000000000e-10 -6.438008084190e-01 + 5.228000000000e-10 -7.203455420725e-01 + 5.328000000000e-10 -7.741198297783e-01 + 5.428000000000e-10 -7.828987326701e-01 + 5.528000000000e-10 -7.084084859242e-01 + 5.628000000000e-10 -5.069251044876e-01 + 5.728000000000e-10 -1.982094732584e-01 + 5.828000000000e-10 1.179697981212e-01 + 5.928000000000e-10 3.726595322461e-01 + 6.028000000000e-10 5.402739437431e-01 + 6.128000000000e-10 6.438573026479e-01 + 6.228000000000e-10 7.202880216174e-01 + 6.328000000000e-10 7.741750830136e-01 + 6.428000000000e-10 7.828445699494e-01 + 6.528000000000e-10 7.084631989914e-01 + 6.628000000000e-10 5.068703543607e-01 + 6.728000000000e-10 1.982651160797e-01 + 6.828000000000e-10 -1.180209524418e-01 + 6.928000000000e-10 -3.726100259571e-01 + 7.028000000000e-10 -5.403229404029e-01 + 7.128000000000e-10 -6.438083895554e-01 + 7.228000000000e-10 -7.203378638829e-01 + 7.328000000000e-10 -7.741273273776e-01 + 7.428000000000e-10 -7.828912312659e-01 + 7.528000000000e-10 -7.084155733246e-01 + 7.628000000000e-10 -5.069185371484e-01 + 7.728000000000e-10 -1.982163796445e-01 + 7.828000000000e-10 1.179761824049e-01 + 7.928000000000e-10 3.726538824343e-01 + 8.028000000000e-10 5.402795684719e-01 + 8.128000000000e-10 6.438520994328e-01 + 8.228000000000e-10 7.202935093188e-01 + 8.328000000000e-10 7.741699689895e-01 + 8.428000000000e-10 7.828494756723e-01 + 8.528000000000e-10 7.084578188073e-01 + 8.628000000000e-10 5.068761410729e-01 + 8.728000000000e-10 1.982594122387e-01 + 8.828000000000e-10 -1.180157633845e-01 + 8.928000000000e-10 -3.726154653834e-01 + 9.028000000000e-10 -5.403175771302e-01 + 9.128000000000e-10 -6.438140825829e-01 + 9.228000000000e-10 -7.203322576361e-01 + 9.328000000000e-10 -7.741328388949e-01 + 9.428000000000e-10 -7.828857350121e-01 + 9.528000000000e-10 -7.084208512479e-01 + 9.628000000000e-10 -5.069134738545e-01 + 9.728000000000e-10 -1.982215797151e-01 + 9.828000000000e-10 1.179810466336e-01 + 9.928000000000e-10 3.726493985613e-01 + 1.000000000000e-09 5.010433738758e-01 diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_14/CML_divider.sym b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_14/CML_divider.sym new file mode 100644 index 00000000..e46eb233 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_14/CML_divider.sym @@ -0,0 +1,30 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 -120 -20 -100 -20 {} +L 4 -120 20 -100 20 {} +L 4 100 -20 120 -20 {} +L 4 100 20 120 20 {} +L 7 0 -60 0 -40 {} +L 7 0 40 0 60 {} +B 5 -122.5 -22.5 -117.5 -17.5 {name=Vo+ dir=out} +B 5 -122.5 17.5 -117.5 22.5 {name=Vo- dir=out} +B 5 117.5 -22.5 122.5 -17.5 {name=Vi+ dir=in} +B 5 117.5 17.5 122.5 22.5 {name=Vi- dir=in} +B 5 -2.5 -62.5 2.5 -57.5 {name=vdd dir=inout} +B 5 -2.5 57.5 2.5 62.5 {name=gnd dir=inout} +P 4 5 100 -40 -100 -40 -100 40 100 40 100 -40 {} +T {@symname} -44 -6 0 0 0.3 0.3 {} +T {@name} 45 -52 0 0 0.2 0.2 {} +T {Vo+} -95 -24 0 0 0.2 0.2 {} +T {Vo-} -95 16 0 0 0.2 0.2 {} +T {Vi+} 95 -16 2 0 0.2 0.2 {} +T {Vi-} 95 24 2 0 0.2 0.2 {} +T {vdd} 10 -39 0 1 0.2 0.2 {} +T {gnd} -10 34 2 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_14/conditions.yaml b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_14/conditions.yaml new file mode 100644 index 00000000..13aeb15d --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_14/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice +N: 14 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: ss +filename: CML_core_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_14 +temperature: '27' +vdd: '1.2' diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_15/.spiceinit b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_15/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_15/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_15/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_15/CML_core_tb.sch new file mode 100644 index 00000000..4d031f0e --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_15/CML_core_tb.sch @@ -0,0 +1,71 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {} +V {} +S {} +E {} +N 740 -940 740 -920 {lab=GND} +N 740 -1090 740 -1060 {lab=VDD} +N 600 -1020 620 -1020 {lab=Vinplus} +N 600 -980 620 -980 {lab=Vinminus} +N 860 -1020 880 -1020 {lab=Voplus} +N 860 -980 880 -980 {lab=Vominus} +N 1150 -850 1150 -820 {lab=VDD} +N 1150 -760 1150 -730 {lab=GND} +N 930 -850 930 -820 {lab=Vinminus} +N 930 -760 930 -730 {lab=GND} +N 720 -850 720 -820 {lab=Vinplus} +N 720 -760 720 -730 {lab=GND} +C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write CML_core_tb.raw +set appendwrite +tran 10p 1n 160p + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_15/CML_core_tb_15.data vo_diff +quit + +.endc +"} +C {opin.sym} 880 -1020 2 1 {name=p6 lab=Voplus} +C {opin.sym} 880 -980 0 0 {name=p9 lab=Vominus} +C {devices/code_shown.sym} 10 -620 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_tt + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice + +.temp 80 +" +} +C {iopin.sym} 740 -1090 0 1 {name=p2 lab=VDD} +C {ipin.sym} 600 -1020 2 1 {name=p4 lab=Vinplus} +C {ipin.sym} 600 -980 2 1 {name=p1 lab=Vinminus} +C {CML_divider.sym} 740 -1000 0 1 {name=x1} +C {vsource.sym} 1150 -790 0 0 {name=V1 value=1.2 savecurrent=false} +C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} +C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} +C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 0.3 10G 0 0 0)" savecurrent=false} +C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 0.3 10G 0 0 180)" savecurrent=false} +C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_15/CML_core_tb_15.data b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_15/CML_core_tb_15.data new file mode 100644 index 00000000..a18684b0 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_15/CML_core_tb_15.data @@ -0,0 +1,85 @@ + 1.628000000000e-10 -4.764925698370e-01 + 1.728000000000e-10 -1.934019301872e-01 + 1.828000000000e-10 1.027850457497e-01 + 1.928000000000e-10 3.499528968595e-01 + 2.028000000000e-10 5.186059326128e-01 + 2.128000000000e-10 6.254912177700e-01 + 2.228000000000e-10 6.994356057335e-01 + 2.328000000000e-10 7.419604616039e-01 + 2.428000000000e-10 7.366001230119e-01 + 2.528000000000e-10 6.575586826882e-01 + 2.628000000000e-10 4.703480039804e-01 + 2.728000000000e-10 1.887311437228e-01 + 2.828000000000e-10 -1.064955609068e-01 + 2.928000000000e-10 -3.530674432656e-01 + 3.028000000000e-10 -5.214103928852e-01 + 3.128000000000e-10 -6.276329249236e-01 + 3.228000000000e-10 -7.010919569868e-01 + 3.328000000000e-10 -7.428528846984e-01 + 3.428000000000e-10 -7.371070425945e-01 + 3.528000000000e-10 -6.576931102984e-01 + 3.628000000000e-10 -4.705213908487e-01 + 3.728000000000e-10 -1.887451417089e-01 + 3.828000000000e-10 1.063771169054e-01 + 3.928000000000e-10 3.530644558224e-01 + 4.028000000000e-10 5.212882945537e-01 + 4.128000000000e-10 6.276273956697e-01 + 4.228000000000e-10 7.009872983885e-01 + 4.328000000000e-10 7.428850006835e-01 + 4.428000000000e-10 7.370483197885e-01 + 4.528000000000e-10 6.577532995019e-01 + 4.628000000000e-10 4.704734311564e-01 + 4.728000000000e-10 1.888066765622e-01 + 4.828000000000e-10 -1.064251900033e-01 + 4.928000000000e-10 -3.530110058012e-01 + 5.028000000000e-10 -5.213363794122e-01 + 5.128000000000e-10 -6.275779961821e-01 + 5.228000000000e-10 -7.010367362436e-01 + 5.328000000000e-10 -7.428359180794e-01 + 5.428000000000e-10 -7.370946234404e-01 + 5.528000000000e-10 -6.577041924295e-01 + 5.628000000000e-10 -4.705211118057e-01 + 5.728000000000e-10 -1.887571402743e-01 + 5.828000000000e-10 1.063798390696e-01 + 5.928000000000e-10 3.530562876751e-01 + 6.028000000000e-10 5.212929538773e-01 + 6.128000000000e-10 6.276223718978e-01 + 6.228000000000e-10 7.009927681762e-01 + 6.328000000000e-10 7.428797293753e-01 + 6.428000000000e-10 7.370526578677e-01 + 6.528000000000e-10 6.577470674825e-01 + 6.628000000000e-10 4.704784998901e-01 + 6.728000000000e-10 1.888003575241e-01 + 6.828000000000e-10 -1.064204487643e-01 + 6.928000000000e-10 -3.530168946500e-01 + 7.028000000000e-10 -5.213312567329e-01 + 7.128000000000e-10 -6.275838929681e-01 + 7.228000000000e-10 -7.010312441909e-01 + 7.328000000000e-10 -7.428415937954e-01 + 7.428000000000e-10 -7.370893810626e-01 + 7.528000000000e-10 -6.577094889087e-01 + 7.628000000000e-10 -4.705162397262e-01 + 7.728000000000e-10 -1.887623115300e-01 + 7.828000000000e-10 1.063847513579e-01 + 7.928000000000e-10 3.530516705381e-01 + 8.028000000000e-10 5.212973590939e-01 + 8.128000000000e-10 6.276181223045e-01 + 8.228000000000e-10 7.009970786285e-01 + 8.328000000000e-10 7.428754735512e-01 + 8.428000000000e-10 7.370567570344e-01 + 8.528000000000e-10 6.577427030952e-01 + 8.628000000000e-10 4.704830497474e-01 + 8.728000000000e-10 1.887958404937e-01 + 8.828000000000e-10 -1.064163174914e-01 + 8.928000000000e-10 -3.530210908451e-01 + 9.028000000000e-10 -5.213271590930e-01 + 9.128000000000e-10 -6.275881896870e-01 + 9.228000000000e-10 -7.010270518598e-01 + 9.328000000000e-10 -7.428457852801e-01 + 9.428000000000e-10 -7.370853633469e-01 + 9.528000000000e-10 -6.577134719194e-01 + 9.628000000000e-10 -4.705123783357e-01 + 9.728000000000e-10 -1.887662540331e-01 + 9.828000000000e-10 1.063885555413e-01 + 9.928000000000e-10 3.530480784075e-01 + 1.000000000000e-09 4.814572085440e-01 diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_15/CML_divider.sym b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_15/CML_divider.sym new file mode 100644 index 00000000..e46eb233 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_15/CML_divider.sym @@ -0,0 +1,30 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 -120 -20 -100 -20 {} +L 4 -120 20 -100 20 {} +L 4 100 -20 120 -20 {} +L 4 100 20 120 20 {} +L 7 0 -60 0 -40 {} +L 7 0 40 0 60 {} +B 5 -122.5 -22.5 -117.5 -17.5 {name=Vo+ dir=out} +B 5 -122.5 17.5 -117.5 22.5 {name=Vo- dir=out} +B 5 117.5 -22.5 122.5 -17.5 {name=Vi+ dir=in} +B 5 117.5 17.5 122.5 22.5 {name=Vi- dir=in} +B 5 -2.5 -62.5 2.5 -57.5 {name=vdd dir=inout} +B 5 -2.5 57.5 2.5 62.5 {name=gnd dir=inout} +P 4 5 100 -40 -100 -40 -100 40 100 40 100 -40 {} +T {@symname} -44 -6 0 0 0.3 0.3 {} +T {@name} 45 -52 0 0 0.2 0.2 {} +T {Vo+} -95 -24 0 0 0.2 0.2 {} +T {Vo-} -95 16 0 0 0.2 0.2 {} +T {Vi+} 95 -16 2 0 0.2 0.2 {} +T {Vi-} 95 24 2 0 0.2 0.2 {} +T {vdd} 10 -39 0 1 0.2 0.2 {} +T {gnd} -10 34 2 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_15/conditions.yaml b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_15/conditions.yaml new file mode 100644 index 00000000..827a3bae --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_15/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice +N: 15 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: tt +filename: CML_core_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_15 +temperature: '80' +vdd: '1.2' diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_16/.spiceinit b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_16/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_16/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_16/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_16/CML_core_tb.sch new file mode 100644 index 00000000..a8832cf1 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_16/CML_core_tb.sch @@ -0,0 +1,71 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {} +V {} +S {} +E {} +N 740 -940 740 -920 {lab=GND} +N 740 -1090 740 -1060 {lab=VDD} +N 600 -1020 620 -1020 {lab=Vinplus} +N 600 -980 620 -980 {lab=Vinminus} +N 860 -1020 880 -1020 {lab=Voplus} +N 860 -980 880 -980 {lab=Vominus} +N 1150 -850 1150 -820 {lab=VDD} +N 1150 -760 1150 -730 {lab=GND} +N 930 -850 930 -820 {lab=Vinminus} +N 930 -760 930 -730 {lab=GND} +N 720 -850 720 -820 {lab=Vinplus} +N 720 -760 720 -730 {lab=GND} +C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write CML_core_tb.raw +set appendwrite +tran 10p 1n 160p + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_16/CML_core_tb_16.data vo_diff +quit + +.endc +"} +C {opin.sym} 880 -1020 2 1 {name=p6 lab=Voplus} +C {opin.sym} 880 -980 0 0 {name=p9 lab=Vominus} +C {devices/code_shown.sym} 10 -620 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_ff + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice + +.temp 80 +" +} +C {iopin.sym} 740 -1090 0 1 {name=p2 lab=VDD} +C {ipin.sym} 600 -1020 2 1 {name=p4 lab=Vinplus} +C {ipin.sym} 600 -980 2 1 {name=p1 lab=Vinminus} +C {CML_divider.sym} 740 -1000 0 1 {name=x1} +C {vsource.sym} 1150 -790 0 0 {name=V1 value=1.2 savecurrent=false} +C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} +C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} +C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 0.3 10G 0 0 0)" savecurrent=false} +C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 0.3 10G 0 0 180)" savecurrent=false} +C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_16/CML_core_tb_16.data b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_16/CML_core_tb_16.data new file mode 100644 index 00000000..5b9b7365 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_16/CML_core_tb_16.data @@ -0,0 +1,85 @@ + 1.628000000000e-10 -4.643042367579e-01 + 1.728000000000e-10 -1.889536448800e-01 + 1.828000000000e-10 1.011027156160e-01 + 1.928000000000e-10 3.431119917378e-01 + 2.028000000000e-10 5.070519088353e-01 + 2.128000000000e-10 6.112991757094e-01 + 2.228000000000e-10 6.838020209744e-01 + 2.328000000000e-10 7.242864479517e-01 + 2.428000000000e-10 7.174167448313e-01 + 2.528000000000e-10 6.398083866093e-01 + 2.628000000000e-10 4.585166519927e-01 + 2.728000000000e-10 1.844271573483e-01 + 2.828000000000e-10 -1.048019054065e-01 + 2.928000000000e-10 -3.462317584687e-01 + 3.028000000000e-10 -5.098344721858e-01 + 3.128000000000e-10 -6.133899227371e-01 + 3.228000000000e-10 -6.853968517792e-01 + 3.328000000000e-10 -7.251059393871e-01 + 3.428000000000e-10 -7.178642533065e-01 + 3.528000000000e-10 -6.398898931720e-01 + 3.628000000000e-10 -4.586473976402e-01 + 3.728000000000e-10 -1.843989570585e-01 + 3.828000000000e-10 1.047140758745e-01 + 3.928000000000e-10 3.462576483703e-01 + 4.028000000000e-10 5.097333770465e-01 + 4.128000000000e-10 6.134023110554e-01 + 4.228000000000e-10 6.853047053340e-01 + 4.328000000000e-10 7.251501511308e-01 + 4.428000000000e-10 7.178117501486e-01 + 4.528000000000e-10 6.399568281317e-01 + 4.628000000000e-10 4.586017943502e-01 + 4.728000000000e-10 1.844658494373e-01 + 4.828000000000e-10 -1.047609876408e-01 + 4.928000000000e-10 -3.462003104379e-01 + 5.028000000000e-10 -5.097813732572e-01 + 5.128000000000e-10 -6.133504189098e-01 + 5.228000000000e-10 -6.853547602223e-01 + 5.328000000000e-10 -7.250985458364e-01 + 5.428000000000e-10 -7.178593251267e-01 + 5.528000000000e-10 -6.399055102013e-01 + 5.628000000000e-10 -4.586511534755e-01 + 5.728000000000e-10 -1.844138975484e-01 + 5.828000000000e-10 1.047143295024e-01 + 5.928000000000e-10 3.462472486482e-01 + 6.028000000000e-10 5.097369504642e-01 + 6.128000000000e-10 6.133959963639e-01 + 6.228000000000e-10 6.853096740322e-01 + 6.328000000000e-10 7.251438129543e-01 + 6.428000000000e-10 7.178160816468e-01 + 6.528000000000e-10 6.399498616471e-01 + 6.628000000000e-10 4.586069220749e-01 + 6.728000000000e-10 1.844588245643e-01 + 6.828000000000e-10 -1.047563687876e-01 + 6.928000000000e-10 -3.462063328010e-01 + 7.028000000000e-10 -5.097765086741e-01 + 7.128000000000e-10 -6.133562893232e-01 + 7.228000000000e-10 -6.853494321266e-01 + 7.328000000000e-10 -7.251041291885e-01 + 7.428000000000e-10 -7.178542203751e-01 + 7.528000000000e-10 -6.399107355976e-01 + 7.628000000000e-10 -4.586462738291e-01 + 7.728000000000e-10 -1.844190131957e-01 + 7.828000000000e-10 1.047193339603e-01 + 7.928000000000e-10 3.462424630766e-01 + 8.028000000000e-10 5.097415276109e-01 + 8.128000000000e-10 6.133915881396e-01 + 8.228000000000e-10 6.853141467162e-01 + 8.328000000000e-10 7.251393167662e-01 + 8.428000000000e-10 7.178204152808e-01 + 8.528000000000e-10 6.399452651751e-01 + 8.628000000000e-10 4.586116651576e-01 + 8.728000000000e-10 1.844540563551e-01 + 8.828000000000e-10 -1.047521530128e-01 + 8.928000000000e-10 -3.462105768541e-01 + 9.028000000000e-10 -5.097724238353e-01 + 9.128000000000e-10 -6.133605792288e-01 + 9.228000000000e-10 -6.853452315529e-01 + 9.328000000000e-10 -7.251083207568e-01 + 9.428000000000e-10 -7.178502144615e-01 + 9.528000000000e-10 -6.399147306347e-01 + 9.628000000000e-10 -4.586423495280e-01 + 9.728000000000e-10 -1.844229988419e-01 + 9.828000000000e-10 1.047232268776e-01 + 9.928000000000e-10 3.462387497741e-01 + 1.000000000000e-09 4.710752262880e-01 diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_16/CML_divider.sym b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_16/CML_divider.sym new file mode 100644 index 00000000..e46eb233 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_16/CML_divider.sym @@ -0,0 +1,30 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 -120 -20 -100 -20 {} +L 4 -120 20 -100 20 {} +L 4 100 -20 120 -20 {} +L 4 100 20 120 20 {} +L 7 0 -60 0 -40 {} +L 7 0 40 0 60 {} +B 5 -122.5 -22.5 -117.5 -17.5 {name=Vo+ dir=out} +B 5 -122.5 17.5 -117.5 22.5 {name=Vo- dir=out} +B 5 117.5 -22.5 122.5 -17.5 {name=Vi+ dir=in} +B 5 117.5 17.5 122.5 22.5 {name=Vi- dir=in} +B 5 -2.5 -62.5 2.5 -57.5 {name=vdd dir=inout} +B 5 -2.5 57.5 2.5 62.5 {name=gnd dir=inout} +P 4 5 100 -40 -100 -40 -100 40 100 40 100 -40 {} +T {@symname} -44 -6 0 0 0.3 0.3 {} +T {@name} 45 -52 0 0 0.2 0.2 {} +T {Vo+} -95 -24 0 0 0.2 0.2 {} +T {Vo-} -95 16 0 0 0.2 0.2 {} +T {Vi+} 95 -16 2 0 0.2 0.2 {} +T {Vi-} 95 24 2 0 0.2 0.2 {} +T {vdd} 10 -39 0 1 0.2 0.2 {} +T {gnd} -10 34 2 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_16/conditions.yaml b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_16/conditions.yaml new file mode 100644 index 00000000..645395ae --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_16/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice +N: 16 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: ff +filename: CML_core_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_16 +temperature: '80' +vdd: '1.2' diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_17/.spiceinit b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_17/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_17/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_17/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_17/CML_core_tb.sch new file mode 100644 index 00000000..5764795e --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_17/CML_core_tb.sch @@ -0,0 +1,71 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {} +V {} +S {} +E {} +N 740 -940 740 -920 {lab=GND} +N 740 -1090 740 -1060 {lab=VDD} +N 600 -1020 620 -1020 {lab=Vinplus} +N 600 -980 620 -980 {lab=Vinminus} +N 860 -1020 880 -1020 {lab=Voplus} +N 860 -980 880 -980 {lab=Vominus} +N 1150 -850 1150 -820 {lab=VDD} +N 1150 -760 1150 -730 {lab=GND} +N 930 -850 930 -820 {lab=Vinminus} +N 930 -760 930 -730 {lab=GND} +N 720 -850 720 -820 {lab=Vinplus} +N 720 -760 720 -730 {lab=GND} +C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write CML_core_tb.raw +set appendwrite +tran 10p 1n 160p + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_17/CML_core_tb_17.data vo_diff +quit + +.endc +"} +C {opin.sym} 880 -1020 2 1 {name=p6 lab=Voplus} +C {opin.sym} 880 -980 0 0 {name=p9 lab=Vominus} +C {devices/code_shown.sym} 10 -620 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_ss + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice + +.temp 80 +" +} +C {iopin.sym} 740 -1090 0 1 {name=p2 lab=VDD} +C {ipin.sym} 600 -1020 2 1 {name=p4 lab=Vinplus} +C {ipin.sym} 600 -980 2 1 {name=p1 lab=Vinminus} +C {CML_divider.sym} 740 -1000 0 1 {name=x1} +C {vsource.sym} 1150 -790 0 0 {name=V1 value=1.2 savecurrent=false} +C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} +C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} +C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 0.3 10G 0 0 0)" savecurrent=false} +C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 0.3 10G 0 0 180)" savecurrent=false} +C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_17/CML_core_tb_17.data b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_17/CML_core_tb_17.data new file mode 100644 index 00000000..15600382 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_17/CML_core_tb_17.data @@ -0,0 +1,85 @@ + 1.628000000000e-10 -4.852886719505e-01 + 1.728000000000e-10 -2.023606658915e-01 + 1.828000000000e-10 9.500407548716e-02 + 1.928000000000e-10 3.473018630854e-01 + 2.028000000000e-10 5.238539974445e-01 + 2.128000000000e-10 6.356942626004e-01 + 2.228000000000e-10 7.106560719901e-01 + 2.328000000000e-10 7.539243132234e-01 + 2.428000000000e-10 7.486736309564e-01 + 2.528000000000e-10 6.681985082542e-01 + 2.628000000000e-10 4.800908099257e-01 + 2.728000000000e-10 1.985903293754e-01 + 2.828000000000e-10 -9.801965724844e-02 + 2.928000000000e-10 -3.499456539083e-01 + 3.028000000000e-10 -5.264166063204e-01 + 3.128000000000e-10 -6.377599985577e-01 + 3.228000000000e-10 -7.123258227204e-01 + 3.328000000000e-10 -7.548386637736e-01 + 3.428000000000e-10 -7.491646196322e-01 + 3.528000000000e-10 -6.682802381819e-01 + 3.628000000000e-10 -4.802044877583e-01 + 3.728000000000e-10 -1.985554586747e-01 + 3.828000000000e-10 9.793570714348e-02 + 3.928000000000e-10 3.499705083814e-01 + 4.028000000000e-10 5.263126851869e-01 + 4.128000000000e-10 6.377668221774e-01 + 4.228000000000e-10 7.122256281615e-01 + 4.328000000000e-10 7.548735616237e-01 + 4.428000000000e-10 7.491068615558e-01 + 4.528000000000e-10 6.683430307676e-01 + 4.628000000000e-10 4.801581700099e-01 + 4.728000000000e-10 1.986186025664e-01 + 4.828000000000e-10 -9.798359332438e-02 + 4.928000000000e-10 -3.499159407959e-01 + 5.028000000000e-10 -5.263605524234e-01 + 5.128000000000e-10 -6.377159898188e-01 + 5.228000000000e-10 -7.122753084256e-01 + 5.328000000000e-10 -7.548237332543e-01 + 5.428000000000e-10 -7.491535548765e-01 + 5.528000000000e-10 -6.682936663178e-01 + 5.628000000000e-10 -4.802057994081e-01 + 5.728000000000e-10 -1.985692377738e-01 + 5.828000000000e-10 9.793754425938e-02 + 5.928000000000e-10 3.499612594703e-01 + 6.028000000000e-10 5.263165540334e-01 + 6.128000000000e-10 6.377608692391e-01 + 6.228000000000e-10 7.122309292959e-01 + 6.328000000000e-10 7.548679483739e-01 + 6.428000000000e-10 7.491113260135e-01 + 6.528000000000e-10 6.683367510584e-01 + 6.628000000000e-10 4.801631540398e-01 + 6.728000000000e-10 1.986123746205e-01 + 6.828000000000e-10 -9.797860547701e-02 + 6.928000000000e-10 -3.499219086015e-01 + 7.028000000000e-10 -5.263552271330e-01 + 7.128000000000e-10 -6.377219921840e-01 + 7.228000000000e-10 -7.122696952774e-01 + 7.328000000000e-10 -7.548295298651e-01 + 7.428000000000e-10 -7.491481908175e-01 + 7.528000000000e-10 -6.682991221138e-01 + 7.628000000000e-10 -4.802006967346e-01 + 7.728000000000e-10 -1.985745887274e-01 + 7.828000000000e-10 9.794256695295e-02 + 7.928000000000e-10 3.499565849765e-01 + 8.028000000000e-10 5.263210489698e-01 + 8.128000000000e-10 6.377564579322e-01 + 8.228000000000e-10 7.122353719246e-01 + 8.328000000000e-10 7.548635649925e-01 + 8.428000000000e-10 7.491155123701e-01 + 8.528000000000e-10 6.683323549155e-01 + 8.628000000000e-10 4.801676539865e-01 + 8.728000000000e-10 1.986078923136e-01 + 8.828000000000e-10 -9.797434132868e-02 + 8.928000000000e-10 -3.499261582655e-01 + 9.028000000000e-10 -5.263510069851e-01 + 9.128000000000e-10 -6.377263524572e-01 + 9.228000000000e-10 -7.122654282965e-01 + 9.328000000000e-10 -7.548337908470e-01 + 9.428000000000e-10 -7.491440991364e-01 + 9.528000000000e-10 -6.683032069827e-01 + 9.628000000000e-10 -4.801967157057e-01 + 9.728000000000e-10 -1.985786291727e-01 + 9.828000000000e-10 9.794644208878e-02 + 9.928000000000e-10 3.499529545785e-01 + 1.000000000000e-09 4.843355885316e-01 diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_17/CML_divider.sym b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_17/CML_divider.sym new file mode 100644 index 00000000..e46eb233 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_17/CML_divider.sym @@ -0,0 +1,30 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 -120 -20 -100 -20 {} +L 4 -120 20 -100 20 {} +L 4 100 -20 120 -20 {} +L 4 100 20 120 20 {} +L 7 0 -60 0 -40 {} +L 7 0 40 0 60 {} +B 5 -122.5 -22.5 -117.5 -17.5 {name=Vo+ dir=out} +B 5 -122.5 17.5 -117.5 22.5 {name=Vo- dir=out} +B 5 117.5 -22.5 122.5 -17.5 {name=Vi+ dir=in} +B 5 117.5 17.5 122.5 22.5 {name=Vi- dir=in} +B 5 -2.5 -62.5 2.5 -57.5 {name=vdd dir=inout} +B 5 -2.5 57.5 2.5 62.5 {name=gnd dir=inout} +P 4 5 100 -40 -100 -40 -100 40 100 40 100 -40 {} +T {@symname} -44 -6 0 0 0.3 0.3 {} +T {@name} 45 -52 0 0 0.2 0.2 {} +T {Vo+} -95 -24 0 0 0.2 0.2 {} +T {Vo-} -95 16 0 0 0.2 0.2 {} +T {Vi+} 95 -16 2 0 0.2 0.2 {} +T {Vi-} 95 24 2 0 0.2 0.2 {} +T {vdd} 10 -39 0 1 0.2 0.2 {} +T {gnd} -10 34 2 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_17/conditions.yaml b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_17/conditions.yaml new file mode 100644 index 00000000..6dde0b42 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_17/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice +N: 17 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: ss +filename: CML_core_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_17 +temperature: '80' +vdd: '1.2' diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_18/.spiceinit b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_18/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_18/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_18/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_18/CML_core_tb.sch new file mode 100644 index 00000000..dee2e392 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_18/CML_core_tb.sch @@ -0,0 +1,71 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {} +V {} +S {} +E {} +N 740 -940 740 -920 {lab=GND} +N 740 -1090 740 -1060 {lab=VDD} +N 600 -1020 620 -1020 {lab=Vinplus} +N 600 -980 620 -980 {lab=Vinminus} +N 860 -1020 880 -1020 {lab=Voplus} +N 860 -980 880 -980 {lab=Vominus} +N 1150 -850 1150 -820 {lab=VDD} +N 1150 -760 1150 -730 {lab=GND} +N 930 -850 930 -820 {lab=Vinminus} +N 930 -760 930 -730 {lab=GND} +N 720 -850 720 -820 {lab=Vinplus} +N 720 -760 720 -730 {lab=GND} +C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write CML_core_tb.raw +set appendwrite +tran 10p 1n 160p + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_18/CML_core_tb_18.data vo_diff +quit + +.endc +"} +C {opin.sym} 880 -1020 2 1 {name=p6 lab=Voplus} +C {opin.sym} 880 -980 0 0 {name=p9 lab=Vominus} +C {devices/code_shown.sym} 10 -620 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_tt + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice + +.temp -40 +" +} +C {iopin.sym} 740 -1090 0 1 {name=p2 lab=VDD} +C {ipin.sym} 600 -1020 2 1 {name=p4 lab=Vinplus} +C {ipin.sym} 600 -980 2 1 {name=p1 lab=Vinminus} +C {CML_divider.sym} 740 -1000 0 1 {name=x1} +C {vsource.sym} 1150 -790 0 0 {name=V1 value=1.6 savecurrent=false} +C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} +C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} +C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 0.3 10G 0 0 0)" savecurrent=false} +C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 0.3 10G 0 0 180)" savecurrent=false} +C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_18/CML_core_tb_18.data b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_18/CML_core_tb_18.data new file mode 100644 index 00000000..6bdb4a2e --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_18/CML_core_tb_18.data @@ -0,0 +1,85 @@ + 1.628000000000e-10 5.747244840755e-01 + 1.728000000000e-10 2.031348680811e-01 + 1.828000000000e-10 -1.640358346053e-01 + 1.928000000000e-10 -4.121983890365e-01 + 2.028000000000e-10 -5.403960481430e-01 + 2.128000000000e-10 -6.175267008304e-01 + 2.228000000000e-10 -7.185181164841e-01 + 2.328000000000e-10 -8.111835866476e-01 + 2.428000000000e-10 -8.505757111821e-01 + 2.528000000000e-10 -7.941523888433e-01 + 2.628000000000e-10 -5.697557803605e-01 + 2.728000000000e-10 -1.993901761575e-01 + 2.828000000000e-10 1.667454340744e-01 + 2.928000000000e-10 4.143424459307e-01 + 3.028000000000e-10 5.421310172268e-01 + 3.128000000000e-10 6.189024162340e-01 + 3.228000000000e-10 7.194369498053e-01 + 3.328000000000e-10 8.117600127730e-01 + 3.428000000000e-10 8.508336653308e-01 + 3.528000000000e-10 7.942656656211e-01 + 3.628000000000e-10 5.697751550033e-01 + 3.728000000000e-10 1.994135726672e-01 + 3.828000000000e-10 -1.667386419247e-01 + 3.928000000000e-10 -4.143148464313e-01 + 4.028000000000e-10 -5.421262038320e-01 + 4.128000000000e-10 -6.188832903749e-01 + 4.228000000000e-10 -7.194346712496e-01 + 4.328000000000e-10 -8.117442314974e-01 + 4.428000000000e-10 -8.508381039982e-01 + 4.528000000000e-10 -7.942559196005e-01 + 4.628000000000e-10 -5.697859373045e-01 + 4.728000000000e-10 -1.993975895742e-01 + 4.828000000000e-10 1.667322235508e-01 + 4.928000000000e-10 4.143280512458e-01 + 5.028000000000e-10 5.421195877560e-01 + 5.128000000000e-10 6.188968586913e-01 + 5.228000000000e-10 7.194236426239e-01 + 5.328000000000e-10 8.117540342679e-01 + 5.428000000000e-10 8.508266757829e-01 + 5.528000000000e-10 7.942652287581e-01 + 5.628000000000e-10 5.697754142960e-01 + 5.728000000000e-10 1.994033695962e-01 + 5.828000000000e-10 -1.667424669503e-01 + 5.928000000000e-10 -4.143216611718e-01 + 6.028000000000e-10 -5.421291067647e-01 + 6.128000000000e-10 -6.188909595847e-01 + 6.228000000000e-10 -7.194310352535e-01 + 6.328000000000e-10 -8.117467342350e-01 + 6.428000000000e-10 -8.508333273630e-01 + 6.528000000000e-10 -7.942577903765e-01 + 6.628000000000e-10 -5.697836419865e-01 + 6.728000000000e-10 -1.993929431350e-01 + 6.828000000000e-10 1.667361734044e-01 + 6.928000000000e-10 4.143307053824e-01 + 7.028000000000e-10 5.421226813799e-01 + 7.128000000000e-10 6.189001833416e-01 + 7.228000000000e-10 7.194227358993e-01 + 7.328000000000e-10 8.117542266055e-01 + 7.428000000000e-10 8.508251070290e-01 + 7.528000000000e-10 7.942649966766e-01 + 7.628000000000e-10 5.697756363247e-01 + 7.728000000000e-10 1.993989977467e-01 + 7.828000000000e-10 -1.667434615441e-01 + 7.928000000000e-10 -4.143248161746e-01 + 8.028000000000e-10 -5.421295610790e-01 + 8.128000000000e-10 -6.188945163710e-01 + 8.228000000000e-10 -7.194289229798e-01 + 8.328000000000e-10 -8.117483413843e-01 + 8.428000000000e-10 -8.508308647988e-01 + 8.528000000000e-10 -7.942590780393e-01 + 8.628000000000e-10 -5.697822347435e-01 + 8.728000000000e-10 -1.993917000580e-01 + 8.828000000000e-10 1.667380255271e-01 + 8.928000000000e-10 4.143314131245e-01 + 9.028000000000e-10 5.421241182927e-01 + 9.128000000000e-10 6.189011822630e-01 + 9.228000000000e-10 7.194226089303e-01 + 9.328000000000e-10 8.117540798381e-01 + 9.428000000000e-10 8.508247577722e-01 + 9.528000000000e-10 7.942646412254e-01 + 9.628000000000e-10 5.697760282588e-01 + 9.728000000000e-10 1.993969946892e-01 + 9.828000000000e-10 -1.667434796269e-01 + 9.928000000000e-10 -4.143264352220e-01 + 1.000000000000e-09 -5.150731751424e-01 diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_18/CML_divider.sym b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_18/CML_divider.sym new file mode 100644 index 00000000..e46eb233 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_18/CML_divider.sym @@ -0,0 +1,30 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 -120 -20 -100 -20 {} +L 4 -120 20 -100 20 {} +L 4 100 -20 120 -20 {} +L 4 100 20 120 20 {} +L 7 0 -60 0 -40 {} +L 7 0 40 0 60 {} +B 5 -122.5 -22.5 -117.5 -17.5 {name=Vo+ dir=out} +B 5 -122.5 17.5 -117.5 22.5 {name=Vo- dir=out} +B 5 117.5 -22.5 122.5 -17.5 {name=Vi+ dir=in} +B 5 117.5 17.5 122.5 22.5 {name=Vi- dir=in} +B 5 -2.5 -62.5 2.5 -57.5 {name=vdd dir=inout} +B 5 -2.5 57.5 2.5 62.5 {name=gnd dir=inout} +P 4 5 100 -40 -100 -40 -100 40 100 40 100 -40 {} +T {@symname} -44 -6 0 0 0.3 0.3 {} +T {@name} 45 -52 0 0 0.2 0.2 {} +T {Vo+} -95 -24 0 0 0.2 0.2 {} +T {Vo-} -95 16 0 0 0.2 0.2 {} +T {Vi+} 95 -16 2 0 0.2 0.2 {} +T {Vi-} 95 24 2 0 0.2 0.2 {} +T {vdd} 10 -39 0 1 0.2 0.2 {} +T {gnd} -10 34 2 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_18/conditions.yaml b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_18/conditions.yaml new file mode 100644 index 00000000..76ef5491 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_18/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice +N: 18 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: tt +filename: CML_core_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_18 +temperature: '-40' +vdd: '1.6' diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_19/.spiceinit b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_19/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_19/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_19/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_19/CML_core_tb.sch new file mode 100644 index 00000000..258c6946 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_19/CML_core_tb.sch @@ -0,0 +1,71 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {} +V {} +S {} +E {} +N 740 -940 740 -920 {lab=GND} +N 740 -1090 740 -1060 {lab=VDD} +N 600 -1020 620 -1020 {lab=Vinplus} +N 600 -980 620 -980 {lab=Vinminus} +N 860 -1020 880 -1020 {lab=Voplus} +N 860 -980 880 -980 {lab=Vominus} +N 1150 -850 1150 -820 {lab=VDD} +N 1150 -760 1150 -730 {lab=GND} +N 930 -850 930 -820 {lab=Vinminus} +N 930 -760 930 -730 {lab=GND} +N 720 -850 720 -820 {lab=Vinplus} +N 720 -760 720 -730 {lab=GND} +C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write CML_core_tb.raw +set appendwrite +tran 10p 1n 160p + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_19/CML_core_tb_19.data vo_diff +quit + +.endc +"} +C {opin.sym} 880 -1020 2 1 {name=p6 lab=Voplus} +C {opin.sym} 880 -980 0 0 {name=p9 lab=Vominus} +C {devices/code_shown.sym} 10 -620 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_ff + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice + +.temp -40 +" +} +C {iopin.sym} 740 -1090 0 1 {name=p2 lab=VDD} +C {ipin.sym} 600 -1020 2 1 {name=p4 lab=Vinplus} +C {ipin.sym} 600 -980 2 1 {name=p1 lab=Vinminus} +C {CML_divider.sym} 740 -1000 0 1 {name=x1} +C {vsource.sym} 1150 -790 0 0 {name=V1 value=1.6 savecurrent=false} +C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} +C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} +C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 0.3 10G 0 0 0)" savecurrent=false} +C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 0.3 10G 0 0 180)" savecurrent=false} +C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_19/CML_core_tb_19.data b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_19/CML_core_tb_19.data new file mode 100644 index 00000000..cfa0d051 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_19/CML_core_tb_19.data @@ -0,0 +1,85 @@ + 1.628000000000e-10 5.707988120441e-01 + 1.728000000000e-10 2.050562196689e-01 + 1.828000000000e-10 -1.568083182045e-01 + 1.928000000000e-10 -4.020696229917e-01 + 2.028000000000e-10 -5.270997867267e-01 + 2.128000000000e-10 -6.030122328411e-01 + 2.228000000000e-10 -7.060404303518e-01 + 2.328000000000e-10 -7.977729548420e-01 + 2.428000000000e-10 -8.357087979117e-01 + 2.528000000000e-10 -7.823438332914e-01 + 2.628000000000e-10 -5.641015035384e-01 + 2.728000000000e-10 -1.996979729386e-01 + 2.828000000000e-10 1.605395493177e-01 + 2.928000000000e-10 4.049019788065e-01 + 3.028000000000e-10 5.293349858313e-01 + 3.128000000000e-10 6.047755538782e-01 + 3.228000000000e-10 7.072083327509e-01 + 3.328000000000e-10 7.985177439850e-01 + 3.428000000000e-10 8.360745897587e-01 + 3.528000000000e-10 7.825643018760e-01 + 3.628000000000e-10 5.642043953033e-01 + 3.728000000000e-10 1.998026918934e-01 + 3.828000000000e-10 -1.604858693758e-01 + 3.928000000000e-10 -4.048299316522e-01 + 4.028000000000e-10 -5.293048172022e-01 + 4.128000000000e-10 -6.047267733392e-01 + 4.228000000000e-10 -7.071932602489e-01 + 4.328000000000e-10 -7.984844304353e-01 + 4.428000000000e-10 -8.360789616419e-01 + 4.528000000000e-10 -7.825446968704e-01 + 4.628000000000e-10 -5.642205462461e-01 + 4.728000000000e-10 -1.997755595675e-01 + 4.828000000000e-10 1.604765943145e-01 + 4.928000000000e-10 4.048512691297e-01 + 5.028000000000e-10 5.292953655278e-01 + 5.128000000000e-10 6.047472585148e-01 + 5.228000000000e-10 7.071773753770e-01 + 5.328000000000e-10 7.985008103891e-01 + 5.428000000000e-10 8.360621173440e-01 + 5.528000000000e-10 7.825604957102e-01 + 5.628000000000e-10 5.642042607216e-01 + 5.728000000000e-10 1.997857962408e-01 + 5.828000000000e-10 -1.604926267251e-01 + 5.928000000000e-10 -4.048407079574e-01 + 6.028000000000e-10 -5.293103597207e-01 + 6.128000000000e-10 -6.047374718328e-01 + 6.228000000000e-10 -7.071895246392e-01 + 6.328000000000e-10 -7.984887922220e-01 + 6.428000000000e-10 -8.360735876941e-01 + 6.528000000000e-10 -7.825482507809e-01 + 6.628000000000e-10 -5.642183473935e-01 + 6.728000000000e-10 -1.997692084041e-01 + 6.828000000000e-10 1.604823178167e-01 + 6.928000000000e-10 4.048548923992e-01 + 7.028000000000e-10 5.293001528657e-01 + 7.128000000000e-10 6.047514904939e-01 + 7.228000000000e-10 7.071767775245e-01 + 7.328000000000e-10 7.985010886851e-01 + 7.428000000000e-10 8.360609061049e-01 + 7.528000000000e-10 7.825602391468e-01 + 7.628000000000e-10 5.642057995328e-01 + 7.728000000000e-10 1.997793833692e-01 + 7.828000000000e-10 -1.604939026989e-01 + 7.928000000000e-10 -4.048452814924e-01 + 8.028000000000e-10 -5.293110935611e-01 + 8.128000000000e-10 -6.047422910037e-01 + 8.228000000000e-10 -7.071868576548e-01 + 8.328000000000e-10 -7.984914661054e-01 + 8.428000000000e-10 -8.360704549701e-01 + 8.528000000000e-10 -7.825505283213e-01 + 8.628000000000e-10 -5.642168951425e-01 + 8.728000000000e-10 -1.997675829904e-01 + 8.828000000000e-10 1.604850893678e-01 + 8.928000000000e-10 4.048557791622e-01 + 9.028000000000e-10 5.293024006551e-01 + 9.128000000000e-10 6.047526676189e-01 + 9.228000000000e-10 7.071769813422e-01 + 9.328000000000e-10 7.985009240492e-01 + 9.428000000000e-10 8.360608174754e-01 + 9.528000000000e-10 7.825597625659e-01 + 9.628000000000e-10 5.642070937767e-01 + 9.728000000000e-10 1.997763618165e-01 + 9.828000000000e-10 -1.604938267743e-01 + 9.928000000000e-10 -4.048476936234e-01 + 1.000000000000e-09 -5.033604123532e-01 diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_19/CML_divider.sym b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_19/CML_divider.sym new file mode 100644 index 00000000..e46eb233 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_19/CML_divider.sym @@ -0,0 +1,30 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 -120 -20 -100 -20 {} +L 4 -120 20 -100 20 {} +L 4 100 -20 120 -20 {} +L 4 100 20 120 20 {} +L 7 0 -60 0 -40 {} +L 7 0 40 0 60 {} +B 5 -122.5 -22.5 -117.5 -17.5 {name=Vo+ dir=out} +B 5 -122.5 17.5 -117.5 22.5 {name=Vo- dir=out} +B 5 117.5 -22.5 122.5 -17.5 {name=Vi+ dir=in} +B 5 117.5 17.5 122.5 22.5 {name=Vi- dir=in} +B 5 -2.5 -62.5 2.5 -57.5 {name=vdd dir=inout} +B 5 -2.5 57.5 2.5 62.5 {name=gnd dir=inout} +P 4 5 100 -40 -100 -40 -100 40 100 40 100 -40 {} +T {@symname} -44 -6 0 0 0.3 0.3 {} +T {@name} 45 -52 0 0 0.2 0.2 {} +T {Vo+} -95 -24 0 0 0.2 0.2 {} +T {Vo-} -95 16 0 0 0.2 0.2 {} +T {Vi+} 95 -16 2 0 0.2 0.2 {} +T {Vi-} 95 24 2 0 0.2 0.2 {} +T {vdd} 10 -39 0 1 0.2 0.2 {} +T {gnd} -10 34 2 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_19/conditions.yaml b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_19/conditions.yaml new file mode 100644 index 00000000..2b63c838 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_19/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice +N: 19 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: ff +filename: CML_core_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_19 +temperature: '-40' +vdd: '1.6' diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_20/.spiceinit b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_20/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_20/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_20/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_20/CML_core_tb.sch new file mode 100644 index 00000000..91296918 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_20/CML_core_tb.sch @@ -0,0 +1,71 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {} +V {} +S {} +E {} +N 740 -940 740 -920 {lab=GND} +N 740 -1090 740 -1060 {lab=VDD} +N 600 -1020 620 -1020 {lab=Vinplus} +N 600 -980 620 -980 {lab=Vinminus} +N 860 -1020 880 -1020 {lab=Voplus} +N 860 -980 880 -980 {lab=Vominus} +N 1150 -850 1150 -820 {lab=VDD} +N 1150 -760 1150 -730 {lab=GND} +N 930 -850 930 -820 {lab=Vinminus} +N 930 -760 930 -730 {lab=GND} +N 720 -850 720 -820 {lab=Vinplus} +N 720 -760 720 -730 {lab=GND} +C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write CML_core_tb.raw +set appendwrite +tran 10p 1n 160p + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_20/CML_core_tb_20.data vo_diff +quit + +.endc +"} +C {opin.sym} 880 -1020 2 1 {name=p6 lab=Voplus} +C {opin.sym} 880 -980 0 0 {name=p9 lab=Vominus} +C {devices/code_shown.sym} 10 -620 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_ss + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice + +.temp -40 +" +} +C {iopin.sym} 740 -1090 0 1 {name=p2 lab=VDD} +C {ipin.sym} 600 -1020 2 1 {name=p4 lab=Vinplus} +C {ipin.sym} 600 -980 2 1 {name=p1 lab=Vinminus} +C {CML_divider.sym} 740 -1000 0 1 {name=x1} +C {vsource.sym} 1150 -790 0 0 {name=V1 value=1.6 savecurrent=false} +C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} +C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} +C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 0.3 10G 0 0 0)" savecurrent=false} +C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 0.3 10G 0 0 180)" savecurrent=false} +C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_20/CML_core_tb_20.data b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_20/CML_core_tb_20.data new file mode 100644 index 00000000..696f2b8b --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_20/CML_core_tb_20.data @@ -0,0 +1,85 @@ + 1.628000000000e-10 5.787258342535e-01 + 1.728000000000e-10 2.078017915173e-01 + 1.828000000000e-10 -1.622649468476e-01 + 1.928000000000e-10 -4.154784848215e-01 + 2.028000000000e-10 -5.503628241592e-01 + 2.128000000000e-10 -6.299323770996e-01 + 2.228000000000e-10 -7.254942323191e-01 + 2.328000000000e-10 -8.176578932007e-01 + 2.428000000000e-10 -8.600222409410e-01 + 2.528000000000e-10 -8.019093712422e-01 + 2.628000000000e-10 -5.756893793886e-01 + 2.728000000000e-10 -2.057606209176e-01 + 2.828000000000e-10 1.639197157563e-01 + 2.928000000000e-10 4.168841038800e-01 + 3.028000000000e-10 5.515424627408e-01 + 3.128000000000e-10 6.308336221978e-01 + 3.228000000000e-10 7.261208861559e-01 + 3.328000000000e-10 8.180354096547e-01 + 3.428000000000e-10 8.601969327831e-01 + 3.528000000000e-10 8.019450515145e-01 + 3.628000000000e-10 5.756806762770e-01 + 3.728000000000e-10 2.057351595047e-01 + 3.828000000000e-10 -1.639234125928e-01 + 3.928000000000e-10 -4.168916689126e-01 + 4.028000000000e-10 -5.515399403849e-01 + 4.128000000000e-10 -6.308421950132e-01 + 4.228000000000e-10 -7.261151591955e-01 + 4.328000000000e-10 -8.180409257235e-01 + 4.428000000000e-10 -8.601903753395e-01 + 4.528000000000e-10 -8.019506024478e-01 + 4.628000000000e-10 -5.756757498169e-01 + 4.728000000000e-10 -2.057370812605e-01 + 4.828000000000e-10 1.639284669376e-01 + 4.928000000000e-10 4.168895758092e-01 + 5.028000000000e-10 5.515444733402e-01 + 5.128000000000e-10 6.308408648378e-01 + 5.228000000000e-10 7.261175778597e-01 + 5.328000000000e-10 8.180376908128e-01 + 5.428000000000e-10 8.601923700088e-01 + 5.528000000000e-10 8.019470527506e-01 + 5.628000000000e-10 5.756789455974e-01 + 5.728000000000e-10 2.057316537746e-01 + 5.828000000000e-10 -1.639258645561e-01 + 5.928000000000e-10 -4.168940343704e-01 + 6.028000000000e-10 -5.515416140289e-01 + 6.128000000000e-10 -6.308456056710e-01 + 6.228000000000e-10 -7.261132930683e-01 + 6.328000000000e-10 -8.180415890619e-01 + 6.428000000000e-10 -8.601877913845e-01 + 6.528000000000e-10 -8.019507055326e-01 + 6.628000000000e-10 -5.756748223597e-01 + 6.728000000000e-10 -2.057339330851e-01 + 6.828000000000e-10 1.639294327626e-01 + 6.928000000000e-10 4.168918933453e-01 + 7.028000000000e-10 5.515448110547e-01 + 7.128000000000e-10 6.308438013344e-01 + 7.228000000000e-10 7.261156471026e-01 + 7.328000000000e-10 8.180389426729e-01 + 7.428000000000e-10 8.601899882644e-01 + 7.528000000000e-10 8.019478991926e-01 + 7.628000000000e-10 5.756775488816e-01 + 7.728000000000e-10 2.057303912125e-01 + 7.828000000000e-10 -1.639270777727e-01 + 7.928000000000e-10 -4.168949361223e-01 + 8.028000000000e-10 -5.515423789761e-01 + 8.128000000000e-10 -6.308469511551e-01 + 8.228000000000e-10 -7.261125857103e-01 + 8.328000000000e-10 -8.180418172660e-01 + 8.428000000000e-10 -8.601868536640e-01 + 8.528000000000e-10 -8.019506539776e-01 + 8.628000000000e-10 -5.756745040863e-01 + 8.728000000000e-10 -2.057325997968e-01 + 8.828000000000e-10 1.639296206310e-01 + 8.928000000000e-10 4.168929982528e-01 + 9.028000000000e-10 5.515447184418e-01 + 9.128000000000e-10 6.308451859194e-01 + 9.228000000000e-10 7.261146020976e-01 + 9.328000000000e-10 8.180396416883e-01 + 9.428000000000e-10 8.601888436252e-01 + 9.528000000000e-10 8.019484098509e-01 + 9.628000000000e-10 5.756767177581e-01 + 9.728000000000e-10 2.057300830001e-01 + 9.828000000000e-10 -1.639276725752e-01 + 9.928000000000e-10 -4.168951851932e-01 + 1.000000000000e-09 -5.223291820834e-01 diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_20/CML_divider.sym b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_20/CML_divider.sym new file mode 100644 index 00000000..e46eb233 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_20/CML_divider.sym @@ -0,0 +1,30 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 -120 -20 -100 -20 {} +L 4 -120 20 -100 20 {} +L 4 100 -20 120 -20 {} +L 4 100 20 120 20 {} +L 7 0 -60 0 -40 {} +L 7 0 40 0 60 {} +B 5 -122.5 -22.5 -117.5 -17.5 {name=Vo+ dir=out} +B 5 -122.5 17.5 -117.5 22.5 {name=Vo- dir=out} +B 5 117.5 -22.5 122.5 -17.5 {name=Vi+ dir=in} +B 5 117.5 17.5 122.5 22.5 {name=Vi- dir=in} +B 5 -2.5 -62.5 2.5 -57.5 {name=vdd dir=inout} +B 5 -2.5 57.5 2.5 62.5 {name=gnd dir=inout} +P 4 5 100 -40 -100 -40 -100 40 100 40 100 -40 {} +T {@symname} -44 -6 0 0 0.3 0.3 {} +T {@name} 45 -52 0 0 0.2 0.2 {} +T {Vo+} -95 -24 0 0 0.2 0.2 {} +T {Vo-} -95 16 0 0 0.2 0.2 {} +T {Vi+} 95 -16 2 0 0.2 0.2 {} +T {Vi-} 95 24 2 0 0.2 0.2 {} +T {vdd} 10 -39 0 1 0.2 0.2 {} +T {gnd} -10 34 2 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_20/conditions.yaml b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_20/conditions.yaml new file mode 100644 index 00000000..3c308a42 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_20/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice +N: 20 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: ss +filename: CML_core_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_20 +temperature: '-40' +vdd: '1.6' diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_21/.spiceinit b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_21/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_21/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_21/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_21/CML_core_tb.sch new file mode 100644 index 00000000..50f70f20 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_21/CML_core_tb.sch @@ -0,0 +1,71 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {} +V {} +S {} +E {} +N 740 -940 740 -920 {lab=GND} +N 740 -1090 740 -1060 {lab=VDD} +N 600 -1020 620 -1020 {lab=Vinplus} +N 600 -980 620 -980 {lab=Vinminus} +N 860 -1020 880 -1020 {lab=Voplus} +N 860 -980 880 -980 {lab=Vominus} +N 1150 -850 1150 -820 {lab=VDD} +N 1150 -760 1150 -730 {lab=GND} +N 930 -850 930 -820 {lab=Vinminus} +N 930 -760 930 -730 {lab=GND} +N 720 -850 720 -820 {lab=Vinplus} +N 720 -760 720 -730 {lab=GND} +C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write CML_core_tb.raw +set appendwrite +tran 10p 1n 160p + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_21/CML_core_tb_21.data vo_diff +quit + +.endc +"} +C {opin.sym} 880 -1020 2 1 {name=p6 lab=Voplus} +C {opin.sym} 880 -980 0 0 {name=p9 lab=Vominus} +C {devices/code_shown.sym} 10 -620 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_tt + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice + +.temp 27 +" +} +C {iopin.sym} 740 -1090 0 1 {name=p2 lab=VDD} +C {ipin.sym} 600 -1020 2 1 {name=p4 lab=Vinplus} +C {ipin.sym} 600 -980 2 1 {name=p1 lab=Vinminus} +C {CML_divider.sym} 740 -1000 0 1 {name=x1} +C {vsource.sym} 1150 -790 0 0 {name=V1 value=1.6 savecurrent=false} +C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} +C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} +C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 0.3 10G 0 0 0)" savecurrent=false} +C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 0.3 10G 0 0 180)" savecurrent=false} +C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_21/CML_core_tb_21.data b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_21/CML_core_tb_21.data new file mode 100644 index 00000000..b199692b --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_21/CML_core_tb_21.data @@ -0,0 +1,85 @@ + 1.628000000000e-10 5.573501255338e-01 + 1.728000000000e-10 2.075317226020e-01 + 1.828000000000e-10 -1.459750710281e-01 + 1.928000000000e-10 -3.981214724862e-01 + 2.028000000000e-10 -5.378144391949e-01 + 2.128000000000e-10 -6.222071778117e-01 + 2.228000000000e-10 -7.144656924256e-01 + 2.328000000000e-10 -7.957588475985e-01 + 2.428000000000e-10 -8.259944634024e-01 + 2.528000000000e-10 -7.639419051023e-01 + 2.628000000000e-10 -5.499582313836e-01 + 2.728000000000e-10 -2.015822705639e-01 + 2.828000000000e-10 1.503547149045e-01 + 2.928000000000e-10 4.016725871885e-01 + 3.028000000000e-10 5.406529598204e-01 + 3.128000000000e-10 6.244429748136e-01 + 3.228000000000e-10 7.159703736038e-01 + 3.328000000000e-10 7.967442303644e-01 + 3.428000000000e-10 8.264465978318e-01 + 3.528000000000e-10 7.642028659706e-01 + 3.628000000000e-10 5.500598536778e-01 + 3.728000000000e-10 2.017167809837e-01 + 3.828000000000e-10 -1.502994036069e-01 + 3.928000000000e-10 -4.015772846450e-01 + 4.028000000000e-10 -5.406194194587e-01 + 4.128000000000e-10 -6.243734224937e-01 + 4.228000000000e-10 -7.159615996115e-01 + 4.328000000000e-10 -7.966982014285e-01 + 4.428000000000e-10 -8.264613960108e-01 + 4.528000000000e-10 -7.641725666632e-01 + 4.628000000000e-10 -5.500862997678e-01 + 4.728000000000e-10 -2.016863380222e-01 + 4.828000000000e-10 1.502773228882e-01 + 4.928000000000e-10 4.016041852700e-01 + 5.028000000000e-10 5.405973091915e-01 + 5.128000000000e-10 6.243995261147e-01 + 5.228000000000e-10 7.159367954986e-01 + 5.328000000000e-10 7.967237369409e-01 + 5.428000000000e-10 8.264362767952e-01 + 5.528000000000e-10 7.641972989051e-01 + 5.628000000000e-10 5.500612169320e-01 + 5.728000000000e-10 2.017098008556e-01 + 5.828000000000e-10 -1.502994747055e-01 + 5.928000000000e-10 -4.015836624598e-01 + 6.028000000000e-10 -5.406181129288e-01 + 6.128000000000e-10 -6.243799299897e-01 + 6.228000000000e-10 -7.159574419629e-01 + 6.328000000000e-10 -7.967036557443e-01 + 6.428000000000e-10 -8.264562124237e-01 + 6.528000000000e-10 -7.641768324224e-01 + 6.628000000000e-10 -5.500832409355e-01 + 6.728000000000e-10 -2.016878835950e-01 + 6.828000000000e-10 1.502805147690e-01 + 6.928000000000e-10 4.016033959904e-01 + 7.028000000000e-10 5.405993862387e-01 + 7.128000000000e-10 6.243994053085e-01 + 7.228000000000e-10 7.159375001908e-01 + 7.328000000000e-10 7.967227911979e-01 + 7.428000000000e-10 8.264369695557e-01 + 7.528000000000e-10 7.641957504677e-01 + 7.628000000000e-10 5.500638388088e-01 + 7.728000000000e-10 2.017065810231e-01 + 7.828000000000e-10 -1.502977706940e-01 + 7.928000000000e-10 -4.015868518817e-01 + 8.028000000000e-10 -5.406159021220e-01 + 8.128000000000e-10 -6.243834226598e-01 + 8.228000000000e-10 -7.159542700032e-01 + 8.328000000000e-10 -7.967069113699e-01 + 8.428000000000e-10 -8.264528986398e-01 + 8.528000000000e-10 -7.641796598358e-01 + 8.628000000000e-10 -5.500810114131e-01 + 8.728000000000e-10 -2.016895461018e-01 + 8.828000000000e-10 1.502827695530e-01 + 8.928000000000e-10 4.016022282365e-01 + 9.028000000000e-10 5.406011687872e-01 + 9.128000000000e-10 6.243986267121e-01 + 9.228000000000e-10 7.159387803359e-01 + 9.328000000000e-10 7.967217157361e-01 + 9.428000000000e-10 8.264380732409e-01 + 9.528000000000e-10 7.641943142595e-01 + 9.628000000000e-10 5.500658668163e-01 + 9.728000000000e-10 2.017043552905e-01 + 9.828000000000e-10 -1.502962363926e-01 + 9.928000000000e-10 -4.015890294030e-01 + 1.000000000000e-09 -5.098048460363e-01 diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_21/CML_divider.sym b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_21/CML_divider.sym new file mode 100644 index 00000000..e46eb233 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_21/CML_divider.sym @@ -0,0 +1,30 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 -120 -20 -100 -20 {} +L 4 -120 20 -100 20 {} +L 4 100 -20 120 -20 {} +L 4 100 20 120 20 {} +L 7 0 -60 0 -40 {} +L 7 0 40 0 60 {} +B 5 -122.5 -22.5 -117.5 -17.5 {name=Vo+ dir=out} +B 5 -122.5 17.5 -117.5 22.5 {name=Vo- dir=out} +B 5 117.5 -22.5 122.5 -17.5 {name=Vi+ dir=in} +B 5 117.5 17.5 122.5 22.5 {name=Vi- dir=in} +B 5 -2.5 -62.5 2.5 -57.5 {name=vdd dir=inout} +B 5 -2.5 57.5 2.5 62.5 {name=gnd dir=inout} +P 4 5 100 -40 -100 -40 -100 40 100 40 100 -40 {} +T {@symname} -44 -6 0 0 0.3 0.3 {} +T {@name} 45 -52 0 0 0.2 0.2 {} +T {Vo+} -95 -24 0 0 0.2 0.2 {} +T {Vo-} -95 16 0 0 0.2 0.2 {} +T {Vi+} 95 -16 2 0 0.2 0.2 {} +T {Vi-} 95 24 2 0 0.2 0.2 {} +T {vdd} 10 -39 0 1 0.2 0.2 {} +T {gnd} -10 34 2 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_21/conditions.yaml b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_21/conditions.yaml new file mode 100644 index 00000000..9179713d --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_21/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice +N: 21 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: tt +filename: CML_core_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_21 +temperature: '27' +vdd: '1.6' diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_22/.spiceinit b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_22/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_22/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_22/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_22/CML_core_tb.sch new file mode 100644 index 00000000..85575ba5 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_22/CML_core_tb.sch @@ -0,0 +1,71 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {} +V {} +S {} +E {} +N 740 -940 740 -920 {lab=GND} +N 740 -1090 740 -1060 {lab=VDD} +N 600 -1020 620 -1020 {lab=Vinplus} +N 600 -980 620 -980 {lab=Vinminus} +N 860 -1020 880 -1020 {lab=Voplus} +N 860 -980 880 -980 {lab=Vominus} +N 1150 -850 1150 -820 {lab=VDD} +N 1150 -760 1150 -730 {lab=GND} +N 930 -850 930 -820 {lab=Vinminus} +N 930 -760 930 -730 {lab=GND} +N 720 -850 720 -820 {lab=Vinplus} +N 720 -760 720 -730 {lab=GND} +C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write CML_core_tb.raw +set appendwrite +tran 10p 1n 160p + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_22/CML_core_tb_22.data vo_diff +quit + +.endc +"} +C {opin.sym} 880 -1020 2 1 {name=p6 lab=Voplus} +C {opin.sym} 880 -980 0 0 {name=p9 lab=Vominus} +C {devices/code_shown.sym} 10 -620 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_ff + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice + +.temp 27 +" +} +C {iopin.sym} 740 -1090 0 1 {name=p2 lab=VDD} +C {ipin.sym} 600 -1020 2 1 {name=p4 lab=Vinplus} +C {ipin.sym} 600 -980 2 1 {name=p1 lab=Vinminus} +C {CML_divider.sym} 740 -1000 0 1 {name=x1} +C {vsource.sym} 1150 -790 0 0 {name=V1 value=1.6 savecurrent=false} +C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} +C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} +C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 0.3 10G 0 0 0)" savecurrent=false} +C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 0.3 10G 0 0 180)" savecurrent=false} +C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_22/CML_core_tb_22.data b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_22/CML_core_tb_22.data new file mode 100644 index 00000000..60989baa --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_22/CML_core_tb_22.data @@ -0,0 +1,85 @@ + 1.628000000000e-10 5.539342660958e-01 + 1.728000000000e-10 2.092356958505e-01 + 1.828000000000e-10 -1.399589402437e-01 + 1.928000000000e-10 -3.887664135754e-01 + 2.028000000000e-10 -5.242925922458e-01 + 2.128000000000e-10 -6.069418933180e-01 + 2.228000000000e-10 -7.009344183633e-01 + 2.328000000000e-10 -7.819154973681e-01 + 2.428000000000e-10 -8.115011787752e-01 + 2.528000000000e-10 -7.528782125237e-01 + 2.628000000000e-10 -5.449881732974e-01 + 2.728000000000e-10 -2.018085669996e-01 + 2.828000000000e-10 1.453371294429e-01 + 2.928000000000e-10 3.930046196046e-01 + 3.028000000000e-10 5.275952350978e-01 + 3.128000000000e-10 6.094983923496e-01 + 3.228000000000e-10 7.026430994561e-01 + 3.328000000000e-10 7.830459101342e-01 + 3.428000000000e-10 8.120643124066e-01 + 3.528000000000e-10 7.532542388222e-01 + 3.628000000000e-10 5.451889146656e-01 + 3.728000000000e-10 2.020380161925e-01 + 3.828000000000e-10 -1.452202245966e-01 + 3.928000000000e-10 -3.928550396378e-01 + 4.028000000000e-10 -5.275272038156e-01 + 4.128000000000e-10 -6.093963788491e-01 + 4.228000000000e-10 -7.026185076638e-01 + 4.328000000000e-10 -7.829822343256e-01 + 4.428000000000e-10 -8.120760322925e-01 + 4.528000000000e-10 -7.532137307257e-01 + 4.628000000000e-10 -5.452168897181e-01 + 4.728000000000e-10 -2.019975663161e-01 + 4.828000000000e-10 1.451970774770e-01 + 4.928000000000e-10 3.928886426712e-01 + 5.028000000000e-10 5.275035947470e-01 + 5.128000000000e-10 6.094279224341e-01 + 5.228000000000e-10 7.025906785817e-01 + 5.328000000000e-10 7.830125874729e-01 + 5.428000000000e-10 8.120474298427e-01 + 5.528000000000e-10 7.532431353399e-01 + 5.628000000000e-10 5.451877569897e-01 + 5.728000000000e-10 2.020249691554e-01 + 5.828000000000e-10 -1.452230860448e-01 + 5.928000000000e-10 -3.928644448798e-01 + 6.028000000000e-10 -5.275279936983e-01 + 6.128000000000e-10 -6.094050782075e-01 + 6.228000000000e-10 -7.026148963104e-01 + 6.328000000000e-10 -7.829886841749e-01 + 6.428000000000e-10 -8.120708569069e-01 + 6.528000000000e-10 -7.532187757848e-01 + 6.628000000000e-10 -5.452139572157e-01 + 6.728000000000e-10 -2.019983459359e-01 + 6.828000000000e-10 1.452010057661e-01 + 6.928000000000e-10 3.928879698340e-01 + 7.028000000000e-10 5.275064479083e-01 + 7.128000000000e-10 6.094280990005e-01 + 7.228000000000e-10 7.025917879356e-01 + 7.328000000000e-10 7.830113821989e-01 + 7.428000000000e-10 8.120485256383e-01 + 7.528000000000e-10 7.532412367972e-01 + 7.628000000000e-10 5.451912171970e-01 + 7.728000000000e-10 2.020204953427e-01 + 7.828000000000e-10 -1.452213117732e-01 + 7.928000000000e-10 -3.928683087954e-01 + 8.028000000000e-10 -5.275257546899e-01 + 8.128000000000e-10 -6.094092443434e-01 + 8.228000000000e-10 -7.026114152643e-01 + 8.328000000000e-10 -7.829924127838e-01 + 8.428000000000e-10 -8.120671951794e-01 + 8.528000000000e-10 -7.532220607865e-01 + 8.628000000000e-10 -5.452116115033e-01 + 8.728000000000e-10 -2.019999026099e-01 + 8.828000000000e-10 1.452037268076e-01 + 8.928000000000e-10 3.928866787286e-01 + 9.028000000000e-10 5.275085793908e-01 + 9.128000000000e-10 6.094272189130e-01 + 9.228000000000e-10 7.025932924679e-01 + 9.328000000000e-10 7.830100596429e-01 + 9.428000000000e-10 8.120498613680e-01 + 9.528000000000e-10 7.532395420815e-01 + 9.628000000000e-10 5.451937902395e-01 + 9.728000000000e-10 2.020175827840e-01 + 9.828000000000e-10 -1.452196157349e-01 + 9.928000000000e-10 -3.928709378362e-01 + 1.000000000000e-09 -4.979849828547e-01 diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_22/CML_divider.sym b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_22/CML_divider.sym new file mode 100644 index 00000000..e46eb233 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_22/CML_divider.sym @@ -0,0 +1,30 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 -120 -20 -100 -20 {} +L 4 -120 20 -100 20 {} +L 4 100 -20 120 -20 {} +L 4 100 20 120 20 {} +L 7 0 -60 0 -40 {} +L 7 0 40 0 60 {} +B 5 -122.5 -22.5 -117.5 -17.5 {name=Vo+ dir=out} +B 5 -122.5 17.5 -117.5 22.5 {name=Vo- dir=out} +B 5 117.5 -22.5 122.5 -17.5 {name=Vi+ dir=in} +B 5 117.5 17.5 122.5 22.5 {name=Vi- dir=in} +B 5 -2.5 -62.5 2.5 -57.5 {name=vdd dir=inout} +B 5 -2.5 57.5 2.5 62.5 {name=gnd dir=inout} +P 4 5 100 -40 -100 -40 -100 40 100 40 100 -40 {} +T {@symname} -44 -6 0 0 0.3 0.3 {} +T {@name} 45 -52 0 0 0.2 0.2 {} +T {Vo+} -95 -24 0 0 0.2 0.2 {} +T {Vo-} -95 16 0 0 0.2 0.2 {} +T {Vi+} 95 -16 2 0 0.2 0.2 {} +T {Vi-} 95 24 2 0 0.2 0.2 {} +T {vdd} 10 -39 0 1 0.2 0.2 {} +T {gnd} -10 34 2 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_22/conditions.yaml b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_22/conditions.yaml new file mode 100644 index 00000000..244dbf1b --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_22/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice +N: 22 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: ff +filename: CML_core_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_22 +temperature: '27' +vdd: '1.6' diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_23/.spiceinit b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_23/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_23/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_23/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_23/CML_core_tb.sch new file mode 100644 index 00000000..36e2ceec --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_23/CML_core_tb.sch @@ -0,0 +1,71 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {} +V {} +S {} +E {} +N 740 -940 740 -920 {lab=GND} +N 740 -1090 740 -1060 {lab=VDD} +N 600 -1020 620 -1020 {lab=Vinplus} +N 600 -980 620 -980 {lab=Vinminus} +N 860 -1020 880 -1020 {lab=Voplus} +N 860 -980 880 -980 {lab=Vominus} +N 1150 -850 1150 -820 {lab=VDD} +N 1150 -760 1150 -730 {lab=GND} +N 930 -850 930 -820 {lab=Vinminus} +N 930 -760 930 -730 {lab=GND} +N 720 -850 720 -820 {lab=Vinplus} +N 720 -760 720 -730 {lab=GND} +C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write CML_core_tb.raw +set appendwrite +tran 10p 1n 160p + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_23/CML_core_tb_23.data vo_diff +quit + +.endc +"} +C {opin.sym} 880 -1020 2 1 {name=p6 lab=Voplus} +C {opin.sym} 880 -980 0 0 {name=p9 lab=Vominus} +C {devices/code_shown.sym} 10 -620 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_ss + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice + +.temp 27 +" +} +C {iopin.sym} 740 -1090 0 1 {name=p2 lab=VDD} +C {ipin.sym} 600 -1020 2 1 {name=p4 lab=Vinplus} +C {ipin.sym} 600 -980 2 1 {name=p1 lab=Vinminus} +C {CML_divider.sym} 740 -1000 0 1 {name=x1} +C {vsource.sym} 1150 -790 0 0 {name=V1 value=1.6 savecurrent=false} +C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} +C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} +C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 0.3 10G 0 0 0)" savecurrent=false} +C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 0.3 10G 0 0 180)" savecurrent=false} +C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_23/CML_core_tb_23.data b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_23/CML_core_tb_23.data new file mode 100644 index 00000000..208aa09a --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_23/CML_core_tb_23.data @@ -0,0 +1,85 @@ + 1.628000000000e-10 5.609932954578e-01 + 1.728000000000e-10 2.135803595156e-01 + 1.828000000000e-10 -1.406795105233e-01 + 1.928000000000e-10 -3.985242549940e-01 + 2.028000000000e-10 -5.467902250198e-01 + 2.128000000000e-10 -6.349197102047e-01 + 2.228000000000e-10 -7.225601155251e-01 + 2.328000000000e-10 -8.022847270862e-01 + 2.428000000000e-10 -8.341174139963e-01 + 2.528000000000e-10 -7.703472968512e-01 + 2.628000000000e-10 -5.554753546701e-01 + 2.728000000000e-10 -2.092959847468e-01 + 2.828000000000e-10 1.439827087572e-01 + 2.928000000000e-10 4.013409764958e-01 + 3.028000000000e-10 5.491103575815e-01 + 3.128000000000e-10 6.367736171292e-01 + 3.228000000000e-10 7.238327114492e-01 + 3.328000000000e-10 8.031250424519e-01 + 3.428000000000e-10 8.344898451807e-01 + 3.528000000000e-10 7.705288945959e-01 + 3.628000000000e-10 5.555161552443e-01 + 3.728000000000e-10 2.093659332353e-01 + 3.828000000000e-10 -1.439645708780e-01 + 3.928000000000e-10 -4.012864243472e-01 + 4.028000000000e-10 -5.490981432908e-01 + 4.128000000000e-10 -6.367310776976e-01 + 4.228000000000e-10 -7.238327358891e-01 + 4.328000000000e-10 -8.030945225544e-01 + 4.428000000000e-10 -8.345032641498e-01 + 4.528000000000e-10 -7.705076814073e-01 + 4.628000000000e-10 -5.555368200040e-01 + 4.728000000000e-10 -2.093450233604e-01 + 4.828000000000e-10 1.439466188317e-01 + 4.928000000000e-10 4.013057839415e-01 + 5.028000000000e-10 5.490801810840e-01 + 5.128000000000e-10 6.367502973173e-01 + 5.228000000000e-10 7.238134370273e-01 + 5.328000000000e-10 8.031142213064e-01 + 5.428000000000e-10 8.344836920712e-01 + 5.528000000000e-10 7.705267055682e-01 + 5.628000000000e-10 5.555176728822e-01 + 5.728000000000e-10 2.093634169255e-01 + 5.828000000000e-10 -1.439633135713e-01 + 5.928000000000e-10 -4.012903718012e-01 + 6.028000000000e-10 -5.490957661747e-01 + 6.128000000000e-10 -6.367354259501e-01 + 6.228000000000e-10 -7.238289911799e-01 + 6.328000000000e-10 -8.030991093312e-01 + 6.428000000000e-10 -8.344987261970e-01 + 6.528000000000e-10 -7.705113506628e-01 + 6.628000000000e-10 -5.555339922038e-01 + 6.728000000000e-10 -2.093472747699e-01 + 6.828000000000e-10 1.439488143392e-01 + 6.928000000000e-10 4.013051006454e-01 + 7.028000000000e-10 5.490813620131e-01 + 7.128000000000e-10 6.367501696447e-01 + 7.228000000000e-10 7.238138408460e-01 + 7.328000000000e-10 8.031138234310e-01 + 7.428000000000e-10 8.344840024625e-01 + 7.528000000000e-10 7.705257750612e-01 + 7.628000000000e-10 5.555193682491e-01 + 7.728000000000e-10 2.093616154732e-01 + 7.828000000000e-10 -1.439618235384e-01 + 7.928000000000e-10 -4.012927107128e-01 + 8.028000000000e-10 -5.490937463184e-01 + 8.128000000000e-10 -6.367380404539e-01 + 8.228000000000e-10 -7.238264478501e-01 + 8.328000000000e-10 -8.031018435980e-01 + 8.428000000000e-10 -8.344959687989e-01 + 8.528000000000e-10 -7.705137100306e-01 + 8.628000000000e-10 -5.555321098787e-01 + 8.728000000000e-10 -2.093489927492e-01 + 8.828000000000e-10 1.439504269532e-01 + 8.928000000000e-10 4.013041525432e-01 + 9.028000000000e-10 5.490824887692e-01 + 9.128000000000e-10 6.367494882502e-01 + 9.228000000000e-10 7.238146944607e-01 + 9.328000000000e-10 8.031131051507e-01 + 9.428000000000e-10 8.344847147049e-01 + 9.528000000000e-10 7.705248067970e-01 + 9.628000000000e-10 5.555207970002e-01 + 9.728000000000e-10 2.093601819839e-01 + 9.828000000000e-10 -1.439605753448e-01 + 9.928000000000e-10 -4.012943342775e-01 + 1.000000000000e-09 -5.158218772706e-01 diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_23/CML_divider.sym b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_23/CML_divider.sym new file mode 100644 index 00000000..e46eb233 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_23/CML_divider.sym @@ -0,0 +1,30 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 -120 -20 -100 -20 {} +L 4 -120 20 -100 20 {} +L 4 100 -20 120 -20 {} +L 4 100 20 120 20 {} +L 7 0 -60 0 -40 {} +L 7 0 40 0 60 {} +B 5 -122.5 -22.5 -117.5 -17.5 {name=Vo+ dir=out} +B 5 -122.5 17.5 -117.5 22.5 {name=Vo- dir=out} +B 5 117.5 -22.5 122.5 -17.5 {name=Vi+ dir=in} +B 5 117.5 17.5 122.5 22.5 {name=Vi- dir=in} +B 5 -2.5 -62.5 2.5 -57.5 {name=vdd dir=inout} +B 5 -2.5 57.5 2.5 62.5 {name=gnd dir=inout} +P 4 5 100 -40 -100 -40 -100 40 100 40 100 -40 {} +T {@symname} -44 -6 0 0 0.3 0.3 {} +T {@name} 45 -52 0 0 0.2 0.2 {} +T {Vo+} -95 -24 0 0 0.2 0.2 {} +T {Vo-} -95 16 0 0 0.2 0.2 {} +T {Vi+} 95 -16 2 0 0.2 0.2 {} +T {Vi-} 95 24 2 0 0.2 0.2 {} +T {vdd} 10 -39 0 1 0.2 0.2 {} +T {gnd} -10 34 2 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_23/conditions.yaml b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_23/conditions.yaml new file mode 100644 index 00000000..b870c1dc --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_23/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice +N: 23 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: ss +filename: CML_core_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_23 +temperature: '27' +vdd: '1.6' diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_24/.spiceinit b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_24/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_24/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_24/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_24/CML_core_tb.sch new file mode 100644 index 00000000..155b63de --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_24/CML_core_tb.sch @@ -0,0 +1,71 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {} +V {} +S {} +E {} +N 740 -940 740 -920 {lab=GND} +N 740 -1090 740 -1060 {lab=VDD} +N 600 -1020 620 -1020 {lab=Vinplus} +N 600 -980 620 -980 {lab=Vinminus} +N 860 -1020 880 -1020 {lab=Voplus} +N 860 -980 880 -980 {lab=Vominus} +N 1150 -850 1150 -820 {lab=VDD} +N 1150 -760 1150 -730 {lab=GND} +N 930 -850 930 -820 {lab=Vinminus} +N 930 -760 930 -730 {lab=GND} +N 720 -850 720 -820 {lab=Vinplus} +N 720 -760 720 -730 {lab=GND} +C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write CML_core_tb.raw +set appendwrite +tran 10p 1n 160p + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_24/CML_core_tb_24.data vo_diff +quit + +.endc +"} +C {opin.sym} 880 -1020 2 1 {name=p6 lab=Voplus} +C {opin.sym} 880 -980 0 0 {name=p9 lab=Vominus} +C {devices/code_shown.sym} 10 -620 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_tt + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice + +.temp 80 +" +} +C {iopin.sym} 740 -1090 0 1 {name=p2 lab=VDD} +C {ipin.sym} 600 -1020 2 1 {name=p4 lab=Vinplus} +C {ipin.sym} 600 -980 2 1 {name=p1 lab=Vinminus} +C {CML_divider.sym} 740 -1000 0 1 {name=x1} +C {vsource.sym} 1150 -790 0 0 {name=V1 value=1.6 savecurrent=false} +C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} +C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} +C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 0.3 10G 0 0 0)" savecurrent=false} +C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 0.3 10G 0 0 180)" savecurrent=false} +C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_24/CML_core_tb_24.data b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_24/CML_core_tb_24.data new file mode 100644 index 00000000..a8519464 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_24/CML_core_tb_24.data @@ -0,0 +1,85 @@ + 1.628000000000e-10 5.405028365217e-01 + 1.728000000000e-10 2.142897527484e-01 + 1.828000000000e-10 -1.231353412434e-01 + 1.928000000000e-10 -3.782847553257e-01 + 2.028000000000e-10 -5.290944707244e-01 + 2.128000000000e-10 -6.207435846591e-01 + 2.228000000000e-10 -7.069850917784e-01 + 2.328000000000e-10 -7.774395392863e-01 + 2.428000000000e-10 -7.982183108700e-01 + 2.528000000000e-10 -7.327456021571e-01 + 2.628000000000e-10 -5.310063164445e-01 + 2.728000000000e-10 -2.063297175293e-01 + 2.828000000000e-10 1.293176468137e-01 + 2.928000000000e-10 3.835270490977e-01 + 3.028000000000e-10 5.333180257023e-01 + 3.128000000000e-10 6.240938619865e-01 + 3.228000000000e-10 7.092802493907e-01 + 3.328000000000e-10 7.789607942300e-01 + 3.428000000000e-10 7.989234313230e-01 + 3.528000000000e-10 7.331763415294e-01 + 3.628000000000e-10 5.312045040772e-01 + 3.728000000000e-10 2.065847902134e-01 + 3.828000000000e-10 -1.291958906021e-01 + 3.928000000000e-10 -3.833411283085e-01 + 4.028000000000e-10 -5.332389173297e-01 + 4.128000000000e-10 -6.239588708494e-01 + 4.228000000000e-10 -7.092541595355e-01 + 4.328000000000e-10 -7.788766619073e-01 + 4.428000000000e-10 -7.989439817890e-01 + 4.528000000000e-10 -7.331237184970e-01 + 4.628000000000e-10 -5.312431858800e-01 + 4.728000000000e-10 -2.065354720445e-01 + 4.828000000000e-10 1.291604530900e-01 + 4.928000000000e-10 3.833851407049e-01 + 5.028000000000e-10 5.332033925163e-01 + 5.128000000000e-10 6.240009303805e-01 + 5.228000000000e-10 7.092156296740e-01 + 5.328000000000e-10 7.789178950697e-01 + 5.428000000000e-10 7.989050835748e-01 + 5.528000000000e-10 7.331635644704e-01 + 5.628000000000e-10 5.312038508238e-01 + 5.728000000000e-10 2.065745538625e-01 + 5.828000000000e-10 -1.291960705945e-01 + 5.928000000000e-10 -3.833509278886e-01 + 6.028000000000e-10 -5.332368573592e-01 + 6.128000000000e-10 -6.239679712691e-01 + 6.228000000000e-10 -7.092497084655e-01 + 6.328000000000e-10 -7.788845366535e-01 + 6.428000000000e-10 -7.989377629672e-01 + 6.528000000000e-10 -7.331298791234e-01 + 6.628000000000e-10 -5.312385744549e-01 + 6.728000000000e-10 -2.065399094583e-01 + 6.828000000000e-10 1.291646812354e-01 + 6.928000000000e-10 3.833822988637e-01 + 7.028000000000e-10 5.332062833028e-01 + 7.128000000000e-10 6.239988652624e-01 + 7.228000000000e-10 7.092181343784e-01 + 7.328000000000e-10 7.789155267181e-01 + 7.428000000000e-10 7.989074545455e-01 + 7.528000000000e-10 7.331605295450e-01 + 7.628000000000e-10 5.312080087648e-01 + 7.728000000000e-10 2.065705039315e-01 + 7.828000000000e-10 -1.291926212165e-01 + 7.928000000000e-10 -3.833551733065e-01 + 8.028000000000e-10 -5.332328436976e-01 + 8.128000000000e-10 -6.239725200032e-01 + 8.228000000000e-10 -7.092452956008e-01 + 8.328000000000e-10 -7.788891439389e-01 + 8.428000000000e-10 -7.989331916474e-01 + 8.528000000000e-10 -7.331340451631e-01 + 8.628000000000e-10 -5.312350772815e-01 + 8.728000000000e-10 -2.065433053799e-01 + 8.828000000000e-10 1.291679984852e-01 + 8.928000000000e-10 3.833797175156e-01 + 9.028000000000e-10 5.332088978421e-01 + 9.128000000000e-10 6.239966795455e-01 + 9.228000000000e-10 7.092206518532e-01 + 9.328000000000e-10 7.789132522577e-01 + 9.428000000000e-10 7.989096829455e-01 + 9.528000000000e-10 7.331579091452e-01 + 9.628000000000e-10 5.312112407565e-01 + 9.728000000000e-10 2.065672983353e-01 + 9.828000000000e-10 -1.291898675297e-01 + 9.928000000000e-10 -3.833583124064e-01 + 1.000000000000e-09 -4.991705375338e-01 diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_24/CML_divider.sym b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_24/CML_divider.sym new file mode 100644 index 00000000..e46eb233 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_24/CML_divider.sym @@ -0,0 +1,30 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 -120 -20 -100 -20 {} +L 4 -120 20 -100 20 {} +L 4 100 -20 120 -20 {} +L 4 100 20 120 20 {} +L 7 0 -60 0 -40 {} +L 7 0 40 0 60 {} +B 5 -122.5 -22.5 -117.5 -17.5 {name=Vo+ dir=out} +B 5 -122.5 17.5 -117.5 22.5 {name=Vo- dir=out} +B 5 117.5 -22.5 122.5 -17.5 {name=Vi+ dir=in} +B 5 117.5 17.5 122.5 22.5 {name=Vi- dir=in} +B 5 -2.5 -62.5 2.5 -57.5 {name=vdd dir=inout} +B 5 -2.5 57.5 2.5 62.5 {name=gnd dir=inout} +P 4 5 100 -40 -100 -40 -100 40 100 40 100 -40 {} +T {@symname} -44 -6 0 0 0.3 0.3 {} +T {@name} 45 -52 0 0 0.2 0.2 {} +T {Vo+} -95 -24 0 0 0.2 0.2 {} +T {Vo-} -95 16 0 0 0.2 0.2 {} +T {Vi+} 95 -16 2 0 0.2 0.2 {} +T {Vi-} 95 24 2 0 0.2 0.2 {} +T {vdd} 10 -39 0 1 0.2 0.2 {} +T {gnd} -10 34 2 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_24/conditions.yaml b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_24/conditions.yaml new file mode 100644 index 00000000..d924e2a1 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_24/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice +N: 24 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: tt +filename: CML_core_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_24 +temperature: '80' +vdd: '1.6' diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_25/.spiceinit b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_25/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_25/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_25/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_25/CML_core_tb.sch new file mode 100644 index 00000000..84a6a627 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_25/CML_core_tb.sch @@ -0,0 +1,71 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {} +V {} +S {} +E {} +N 740 -940 740 -920 {lab=GND} +N 740 -1090 740 -1060 {lab=VDD} +N 600 -1020 620 -1020 {lab=Vinplus} +N 600 -980 620 -980 {lab=Vinminus} +N 860 -1020 880 -1020 {lab=Voplus} +N 860 -980 880 -980 {lab=Vominus} +N 1150 -850 1150 -820 {lab=VDD} +N 1150 -760 1150 -730 {lab=GND} +N 930 -850 930 -820 {lab=Vinminus} +N 930 -760 930 -730 {lab=GND} +N 720 -850 720 -820 {lab=Vinplus} +N 720 -760 720 -730 {lab=GND} +C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write CML_core_tb.raw +set appendwrite +tran 10p 1n 160p + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_25/CML_core_tb_25.data vo_diff +quit + +.endc +"} +C {opin.sym} 880 -1020 2 1 {name=p6 lab=Voplus} +C {opin.sym} 880 -980 0 0 {name=p9 lab=Vominus} +C {devices/code_shown.sym} 10 -620 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_ff + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice + +.temp 80 +" +} +C {iopin.sym} 740 -1090 0 1 {name=p2 lab=VDD} +C {ipin.sym} 600 -1020 2 1 {name=p4 lab=Vinplus} +C {ipin.sym} 600 -980 2 1 {name=p1 lab=Vinminus} +C {CML_divider.sym} 740 -1000 0 1 {name=x1} +C {vsource.sym} 1150 -790 0 0 {name=V1 value=1.6 savecurrent=false} +C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} +C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} +C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 0.3 10G 0 0 0)" savecurrent=false} +C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 0.3 10G 0 0 180)" savecurrent=false} +C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_25/CML_core_tb_25.data b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_25/CML_core_tb_25.data new file mode 100644 index 00000000..39c04d30 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_25/CML_core_tb_25.data @@ -0,0 +1,85 @@ + 1.628000000000e-10 5.368449571564e-01 + 1.728000000000e-10 2.154696494615e-01 + 1.828000000000e-10 -1.180750667507e-01 + 1.928000000000e-10 -3.694801437498e-01 + 2.028000000000e-10 -5.157339685643e-01 + 2.128000000000e-10 -6.051803608378e-01 + 2.228000000000e-10 -6.923688047900e-01 + 2.328000000000e-10 -7.627278516708e-01 + 2.428000000000e-10 -7.836324050269e-01 + 2.528000000000e-10 -7.217390774868e-01 + 2.628000000000e-10 -5.258344598842e-01 + 2.728000000000e-10 -2.060622799160e-01 + 2.828000000000e-10 1.253068918672e-01 + 2.928000000000e-10 3.754763463876e-01 + 3.028000000000e-10 5.204513706872e-01 + 3.128000000000e-10 6.088547126517e-01 + 3.228000000000e-10 6.948747427610e-01 + 3.328000000000e-10 7.643967320598e-01 + 3.428000000000e-10 7.844541546789e-01 + 3.528000000000e-10 7.222905371020e-01 + 3.628000000000e-10 5.261436989659e-01 + 3.728000000000e-10 2.064244494061e-01 + 3.828000000000e-10 -1.251087630482e-01 + 3.928000000000e-10 -3.752230316774e-01 + 4.028000000000e-10 -5.203274407129e-01 + 4.128000000000e-10 -6.086807930540e-01 + 4.228000000000e-10 -6.948278459755e-01 + 4.328000000000e-10 -7.642927444658e-01 + 4.428000000000e-10 -7.844689558048e-01 + 4.528000000000e-10 -7.222270537973e-01 + 4.628000000000e-10 -5.261810188038e-01 + 4.728000000000e-10 -2.063649367923e-01 + 4.828000000000e-10 1.250740150254e-01 + 4.928000000000e-10 3.752740624702e-01 + 5.028000000000e-10 5.202917067072e-01 + 5.128000000000e-10 6.087280474834e-01 + 5.228000000000e-10 6.947875493975e-01 + 5.328000000000e-10 7.643381446772e-01 + 5.428000000000e-10 7.844278436925e-01 + 5.528000000000e-10 7.222707134126e-01 + 5.628000000000e-10 5.261386731045e-01 + 5.728000000000e-10 2.064078101390e-01 + 5.828000000000e-10 -1.251125509614e-01 + 5.928000000000e-10 -3.752362786491e-01 + 6.028000000000e-10 -5.203279553884e-01 + 6.128000000000e-10 -6.086920089480e-01 + 6.228000000000e-10 -6.948246280643e-01 + 6.328000000000e-10 -7.643013046090e-01 + 6.428000000000e-10 -7.844633201903e-01 + 6.528000000000e-10 -7.222336042293e-01 + 6.628000000000e-10 -5.261766512068e-01 + 6.728000000000e-10 -2.063691829929e-01 + 6.828000000000e-10 1.250784814444e-01 + 6.928000000000e-10 3.752708432251e-01 + 7.028000000000e-10 5.202949527958e-01 + 7.128000000000e-10 6.087256874770e-01 + 7.228000000000e-10 6.947904319095e-01 + 7.328000000000e-10 7.643352365607e-01 + 7.428000000000e-10 7.844306677783e-01 + 7.528000000000e-10 7.222672114429e-01 + 7.628000000000e-10 5.261433781551e-01 + 7.728000000000e-10 2.064029029490e-01 + 7.828000000000e-10 -1.251089390610e-01 + 7.928000000000e-10 -3.752408867518e-01 + 8.028000000000e-10 -5.203238706374e-01 + 8.128000000000e-10 -6.086968714396e-01 + 8.228000000000e-10 -6.948200705245e-01 + 8.328000000000e-10 -7.643060605343e-01 + 8.428000000000e-10 -7.844586734539e-01 + 8.528000000000e-10 -7.222379683755e-01 + 8.628000000000e-10 -5.261730442965e-01 + 8.728000000000e-10 -2.063725681788e-01 + 8.828000000000e-10 1.250820910423e-01 + 8.928000000000e-10 3.752680406761e-01 + 9.028000000000e-10 5.202978581562e-01 + 9.128000000000e-10 6.087233210610e-01 + 9.228000000000e-10 6.947932359489e-01 + 9.328000000000e-10 7.643326365950e-01 + 9.428000000000e-10 7.844331791786e-01 + 9.528000000000e-10 7.222642751837e-01 + 9.628000000000e-10 5.261469613157e-01 + 9.728000000000e-10 2.063991803079e-01 + 9.828000000000e-10 -1.251060220915e-01 + 9.928000000000e-10 -3.752443155305e-01 + 1.000000000000e-09 -4.875704709340e-01 diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_25/CML_divider.sym b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_25/CML_divider.sym new file mode 100644 index 00000000..e46eb233 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_25/CML_divider.sym @@ -0,0 +1,30 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 -120 -20 -100 -20 {} +L 4 -120 20 -100 20 {} +L 4 100 -20 120 -20 {} +L 4 100 20 120 20 {} +L 7 0 -60 0 -40 {} +L 7 0 40 0 60 {} +B 5 -122.5 -22.5 -117.5 -17.5 {name=Vo+ dir=out} +B 5 -122.5 17.5 -117.5 22.5 {name=Vo- dir=out} +B 5 117.5 -22.5 122.5 -17.5 {name=Vi+ dir=in} +B 5 117.5 17.5 122.5 22.5 {name=Vi- dir=in} +B 5 -2.5 -62.5 2.5 -57.5 {name=vdd dir=inout} +B 5 -2.5 57.5 2.5 62.5 {name=gnd dir=inout} +P 4 5 100 -40 -100 -40 -100 40 100 40 100 -40 {} +T {@symname} -44 -6 0 0 0.3 0.3 {} +T {@name} 45 -52 0 0 0.2 0.2 {} +T {Vo+} -95 -24 0 0 0.2 0.2 {} +T {Vo-} -95 16 0 0 0.2 0.2 {} +T {Vi+} 95 -16 2 0 0.2 0.2 {} +T {Vi-} 95 24 2 0 0.2 0.2 {} +T {vdd} 10 -39 0 1 0.2 0.2 {} +T {gnd} -10 34 2 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_25/conditions.yaml b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_25/conditions.yaml new file mode 100644 index 00000000..e7fd67d6 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_25/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice +N: 25 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: ff +filename: CML_core_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_25 +temperature: '80' +vdd: '1.6' diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_26/.spiceinit b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_26/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_26/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_26/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_26/CML_core_tb.sch new file mode 100644 index 00000000..89053b1d --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_26/CML_core_tb.sch @@ -0,0 +1,71 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {} +V {} +S {} +E {} +N 740 -940 740 -920 {lab=GND} +N 740 -1090 740 -1060 {lab=VDD} +N 600 -1020 620 -1020 {lab=Vinplus} +N 600 -980 620 -980 {lab=Vinminus} +N 860 -1020 880 -1020 {lab=Voplus} +N 860 -980 880 -980 {lab=Vominus} +N 1150 -850 1150 -820 {lab=VDD} +N 1150 -760 1150 -730 {lab=GND} +N 930 -850 930 -820 {lab=Vinminus} +N 930 -760 930 -730 {lab=GND} +N 720 -850 720 -820 {lab=Vinplus} +N 720 -760 720 -730 {lab=GND} +C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write CML_core_tb.raw +set appendwrite +tran 10p 1n 160p + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_26/CML_core_tb_26.data vo_diff +quit + +.endc +"} +C {opin.sym} 880 -1020 2 1 {name=p6 lab=Voplus} +C {opin.sym} 880 -980 0 0 {name=p9 lab=Vominus} +C {devices/code_shown.sym} 10 -620 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_ss + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice + +.temp 80 +" +} +C {iopin.sym} 740 -1090 0 1 {name=p2 lab=VDD} +C {ipin.sym} 600 -1020 2 1 {name=p4 lab=Vinplus} +C {ipin.sym} 600 -980 2 1 {name=p1 lab=Vinminus} +C {CML_divider.sym} 740 -1000 0 1 {name=x1} +C {vsource.sym} 1150 -790 0 0 {name=V1 value=1.6 savecurrent=false} +C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} +C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} +C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 0.3 10G 0 0 0)" savecurrent=false} +C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 0.3 10G 0 0 180)" savecurrent=false} +C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_26/CML_core_tb_26.data b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_26/CML_core_tb_26.data new file mode 100644 index 00000000..894f4c67 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_26/CML_core_tb_26.data @@ -0,0 +1,85 @@ + 1.628000000000e-10 5.436948212736e-01 + 1.728000000000e-10 2.205877879634e-01 + 1.828000000000e-10 -1.163348151974e-01 + 1.928000000000e-10 -3.771420921807e-01 + 2.028000000000e-10 -5.370108455130e-01 + 2.128000000000e-10 -6.331888427572e-01 + 2.228000000000e-10 -7.164762236683e-01 + 2.328000000000e-10 -7.851286946760e-01 + 2.428000000000e-10 -8.059531868761e-01 + 2.528000000000e-10 -7.384564800459e-01 + 2.628000000000e-10 -5.363144999221e-01 + 2.728000000000e-10 -2.144637665285e-01 + 2.828000000000e-10 1.212929793685e-01 + 2.928000000000e-10 3.815418180812e-01 + 3.028000000000e-10 5.406606883043e-01 + 3.128000000000e-10 6.361475176918e-01 + 3.228000000000e-10 7.185360719894e-01 + 3.328000000000e-10 7.865091736067e-01 + 3.428000000000e-10 8.065713749450e-01 + 3.528000000000e-10 7.387921596039e-01 + 3.628000000000e-10 5.364259512539e-01 + 3.728000000000e-10 2.146317863835e-01 + 3.828000000000e-10 -1.212295238309e-01 + 3.928000000000e-10 -3.814110096077e-01 + 4.028000000000e-10 -5.406166203788e-01 + 4.128000000000e-10 -6.360467438854e-01 + 4.228000000000e-10 -7.185257686739e-01 + 4.328000000000e-10 -7.864422304189e-01 + 4.428000000000e-10 -8.065937411296e-01 + 4.528000000000e-10 -7.387487319623e-01 + 4.628000000000e-10 -5.364619855530e-01 + 4.728000000000e-10 -2.145913861363e-01 + 4.828000000000e-10 1.211959412322e-01 + 4.928000000000e-10 3.814481551476e-01 + 5.028000000000e-10 5.405833390120e-01 + 5.128000000000e-10 6.360831449777e-01 + 5.228000000000e-10 7.184907253890e-01 + 5.328000000000e-10 7.864786648334e-01 + 5.428000000000e-10 8.065585198321e-01 + 5.528000000000e-10 7.387840006966e-01 + 5.628000000000e-10 5.364270346085e-01 + 5.728000000000e-10 2.146260338484e-01 + 5.828000000000e-10 -1.212277001077e-01 + 5.928000000000e-10 -3.814182410321e-01 + 6.028000000000e-10 -5.406130595607e-01 + 6.128000000000e-10 -6.360540210765e-01 + 6.228000000000e-10 -7.185209180994e-01 + 6.328000000000e-10 -7.864492678158e-01 + 6.428000000000e-10 -8.065874846616e-01 + 6.528000000000e-10 -7.387544794760e-01 + 6.628000000000e-10 -5.364572547805e-01 + 6.728000000000e-10 -2.145959871001e-01 + 6.828000000000e-10 1.211997934696e-01 + 6.928000000000e-10 3.814456726213e-01 + 7.028000000000e-10 5.405857946323e-01 + 7.128000000000e-10 6.360813265814e-01 + 7.228000000000e-10 7.184929266665e-01 + 7.328000000000e-10 7.864767243186e-01 + 7.428000000000e-10 8.065604357181e-01 + 7.528000000000e-10 7.387815158779e-01 + 7.628000000000e-10 5.364303644926e-01 + 7.728000000000e-10 2.146228844142e-01 + 7.828000000000e-10 -1.212245339809e-01 + 7.928000000000e-10 -3.814220075435e-01 + 8.028000000000e-10 -5.406092538148e-01 + 8.128000000000e-10 -6.360581238583e-01 + 8.228000000000e-10 -7.185168954112e-01 + 8.328000000000e-10 -7.864535273883e-01 + 8.428000000000e-10 -8.065831328643e-01 + 8.528000000000e-10 -7.387583532284e-01 + 8.628000000000e-10 -5.364538735708e-01 + 8.728000000000e-10 -2.145992968151e-01 + 8.828000000000e-10 1.212027591883e-01 + 8.928000000000e-10 3.814433789143e-01 + 9.028000000000e-10 5.405880431190e-01 + 9.128000000000e-10 6.360793794818e-01 + 9.228000000000e-10 7.184951630330e-01 + 9.328000000000e-10 7.864747526663e-01 + 9.428000000000e-10 8.065622905723e-01 + 9.528000000000e-10 7.387792872630e-01 + 9.628000000000e-10 5.364330391099e-01 + 9.728000000000e-10 2.146202349236e-01 + 9.828000000000e-10 -1.212220310216e-01 + 9.928000000000e-10 -3.814247853449e-01 + 1.000000000000e-09 -5.040490090913e-01 diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_26/CML_divider.sym b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_26/CML_divider.sym new file mode 100644 index 00000000..e46eb233 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_26/CML_divider.sym @@ -0,0 +1,30 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 -120 -20 -100 -20 {} +L 4 -120 20 -100 20 {} +L 4 100 -20 120 -20 {} +L 4 100 20 120 20 {} +L 7 0 -60 0 -40 {} +L 7 0 40 0 60 {} +B 5 -122.5 -22.5 -117.5 -17.5 {name=Vo+ dir=out} +B 5 -122.5 17.5 -117.5 22.5 {name=Vo- dir=out} +B 5 117.5 -22.5 122.5 -17.5 {name=Vi+ dir=in} +B 5 117.5 17.5 122.5 22.5 {name=Vi- dir=in} +B 5 -2.5 -62.5 2.5 -57.5 {name=vdd dir=inout} +B 5 -2.5 57.5 2.5 62.5 {name=gnd dir=inout} +P 4 5 100 -40 -100 -40 -100 40 100 40 100 -40 {} +T {@symname} -44 -6 0 0 0.3 0.3 {} +T {@name} 45 -52 0 0 0.2 0.2 {} +T {Vo+} -95 -24 0 0 0.2 0.2 {} +T {Vo-} -95 16 0 0 0.2 0.2 {} +T {Vi+} 95 -16 2 0 0.2 0.2 {} +T {Vi-} 95 24 2 0 0.2 0.2 {} +T {vdd} 10 -39 0 1 0.2 0.2 {} +T {gnd} -10 34 2 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_26/conditions.yaml b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_26/conditions.yaml new file mode 100644 index 00000000..8ef7dbf9 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_26/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice +N: 26 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: ss +filename: CML_core_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/run_26 +temperature: '80' +vdd: '1.6' diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/simulation_summary.csv b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/simulation_summary.csv new file mode 100644 index 00000000..2f5f947b --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/simulation_summary.csv @@ -0,0 +1,28 @@ +run,corner,temperature,vdd,time,vo_diff,frequency,amplitude,voltage_swing +run_00,tt,-40,0.8,"[1.628e-10, 1.728e-10, 1.828e-10, …]","[-2.952e-01, -6.044e-02, 0.182, …]",4.722e+09,0.709,1.418 +run_01,ff,-40,0.8,"[1.628e-10, 1.728e-10, 1.828e-10, …]","[-2.648e-01, -3.672e-02, 0.198, …]",4.722e+09,0.693,1.386 +run_02,ss,-40,0.8,"[1.628e-10, 1.728e-10, 1.828e-10, …]","[-3.227e-01, -8.540e-02, 0.161, …]",4.722e+09,0.722,1.444 +run_03,tt,27,0.8,"[1.628e-10, 1.728e-10, 1.828e-10, …]","[-2.752e-01, -5.371e-02, 0.179, …]",4.722e+09,0.692,1.383 +run_04,ff,27,0.8,"[1.628e-10, 1.728e-10, 1.828e-10, …]","[-2.482e-01, -3.259e-02, 0.193, …]",4.722e+09,0.672,1.345 +run_05,ss,27,0.8,"[1.628e-10, 1.728e-10, 1.828e-10, …]","[-3.027e-01, -8.046e-02, 0.156, …]",4.722e+09,0.706,1.412 +run_06,tt,80,0.8,"[1.628e-10, 1.728e-10, 1.828e-10, …]","[-2.659e-01, -5.659e-02, 0.167, …]",4.722e+09,0.669,1.338 +run_07,ff,80,0.8,"[1.628e-10, 1.728e-10, 1.828e-10, …]","[-2.411e-01, -3.745e-02, 0.179, …]",4.722e+09,0.648,1.295 +run_08,ss,80,0.8,"[1.628e-10, 1.728e-10, 1.828e-10, …]","[-2.916e-01, -8.207e-02, 0.144, …]",4.722e+09,0.685,1.371 +run_09,tt,-40,1.2,"[1.628e-10, 1.728e-10, 1.828e-10, …]","[-5.397e-01, -2.046e-01, 0.131, …]",4.722e+09,0.807,1.614 +run_10,ff,-40,1.2,"[1.628e-10, 1.728e-10, 1.828e-10, …]","[-5.293e-01, -2.034e-01, 0.125, …]",4.722e+09,0.789,1.577 +run_11,ss,-40,1.2,"[1.628e-10, 1.728e-10, 1.828e-10, …]","[-5.474e-01, -2.088e-01, 0.131, …]",4.722e+09,0.819,1.638 +run_12,tt,27,1.2,"[1.628e-10, 1.728e-10, 1.828e-10, …]","[-5.050e-01, -1.958e-01, 0.120, …]",4.722e+09,0.771,1.543 +run_13,ff,27,1.2,"[1.628e-10, 1.728e-10, 1.828e-10, …]","[-4.935e-01, -1.929e-01, 0.116, …]",4.722e+09,0.753,1.505 +run_14,ss,27,1.2,"[1.628e-10, 1.728e-10, 1.828e-10, …]","[-5.133e-01, -2.032e-01, 0.114, …]",4.722e+09,0.783,1.566 +run_15,tt,80,1.2,"[1.628e-10, 1.728e-10, 1.828e-10, …]","[-4.765e-01, -1.934e-01, 0.103, …]",4.722e+09,0.743,1.486 +run_16,ff,80,1.2,"[1.628e-10, 1.728e-10, 1.828e-10, …]","[-4.643e-01, -1.890e-01, 0.101, …]",4.722e+09,0.725,1.450 +run_17,ss,80,1.2,"[1.628e-10, 1.728e-10, 1.828e-10, …]","[-4.853e-01, -2.024e-01, 9.500e-02, …]",4.722e+09,0.755,1.510 +run_18,tt,-40,1.6,"[1.628e-10, 1.728e-10, 1.828e-10, …]","[0.575, 0.203, -1.640e-01, …]",4.722e+09,0.851,1.702 +run_19,ff,-40,1.6,"[1.628e-10, 1.728e-10, 1.828e-10, …]","[0.571, 0.205, -1.568e-01, …]",4.722e+09,0.836,1.672 +run_20,ss,-40,1.6,"[1.628e-10, 1.728e-10, 1.828e-10, …]","[0.579, 0.208, -1.623e-01, …]",4.722e+09,0.860,1.720 +run_21,tt,27,1.6,"[1.628e-10, 1.728e-10, 1.828e-10, …]","[0.557, 0.208, -1.460e-01, …]",4.722e+09,0.826,1.653 +run_22,ff,27,1.6,"[1.628e-10, 1.728e-10, 1.828e-10, …]","[0.554, 0.209, -1.400e-01, …]",4.722e+09,0.812,1.624 +run_23,ss,27,1.6,"[1.628e-10, 1.728e-10, 1.828e-10, …]","[0.561, 0.214, -1.407e-01, …]",4.722e+09,0.834,1.669 +run_24,tt,80,1.6,"[1.628e-10, 1.728e-10, 1.828e-10, …]","[0.541, 0.214, -1.231e-01, …]",4.722e+09,0.799,1.598 +run_25,ff,80,1.6,"[1.628e-10, 1.728e-10, 1.828e-10, …]","[0.537, 0.215, -1.181e-01, …]",4.722e+09,0.784,1.569 +run_26,ss,80,1.6,"[1.628e-10, 1.728e-10, 1.828e-10, …]","[0.544, 0.221, -1.163e-01, …]",4.722e+09,0.807,1.613 diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/simulation_summary.md b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/simulation_summary.md new file mode 100644 index 00000000..6401031e --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/simulation_summary.md @@ -0,0 +1,31 @@ +# Simulation Summary for CML divider frequency response + +| run | corner | temperature | vdd | time | vo_diff | frequency | amplitude | voltage_swing | +| :-- | -----: | ----------: | --: | ---: | ------: | --------: | --------: | ------------: | +| run_00 | tt | -40 | 0.8 | [1.628e-10, 1.728e-10, 1.828e-10, …] | [-2.952e-01, -6.044e-02, 0.182, …] | 4.722e+09 | 0.709 | 1.418 | +| run_01 | ff | -40 | 0.8 | [1.628e-10, 1.728e-10, 1.828e-10, …] | [-2.648e-01, -3.672e-02, 0.198, …] | 4.722e+09 | 0.693 | 1.386 | +| run_02 | ss | -40 | 0.8 | [1.628e-10, 1.728e-10, 1.828e-10, …] | [-3.227e-01, -8.540e-02, 0.161, …] | 4.722e+09 | 0.722 | 1.444 | +| run_03 | tt | 27 | 0.8 | [1.628e-10, 1.728e-10, 1.828e-10, …] | [-2.752e-01, -5.371e-02, 0.179, …] | 4.722e+09 | 0.692 | 1.383 | +| run_04 | ff | 27 | 0.8 | [1.628e-10, 1.728e-10, 1.828e-10, …] | [-2.482e-01, -3.259e-02, 0.193, …] | 4.722e+09 | 0.672 | 1.345 | +| run_05 | ss | 27 | 0.8 | [1.628e-10, 1.728e-10, 1.828e-10, …] | [-3.027e-01, -8.046e-02, 0.156, …] | 4.722e+09 | 0.706 | 1.412 | +| run_06 | tt | 80 | 0.8 | [1.628e-10, 1.728e-10, 1.828e-10, …] | [-2.659e-01, -5.659e-02, 0.167, …] | 4.722e+09 | 0.669 | 1.338 | +| run_07 | ff | 80 | 0.8 | [1.628e-10, 1.728e-10, 1.828e-10, …] | [-2.411e-01, -3.745e-02, 0.179, …] | 4.722e+09 | 0.648 | 1.295 | +| run_08 | ss | 80 | 0.8 | [1.628e-10, 1.728e-10, 1.828e-10, …] | [-2.916e-01, -8.207e-02, 0.144, …] | 4.722e+09 | 0.685 | 1.371 | +| run_09 | tt | -40 | 1.2 | [1.628e-10, 1.728e-10, 1.828e-10, …] | [-5.397e-01, -2.046e-01, 0.131, …] | 4.722e+09 | 0.807 | 1.614 | +| run_10 | ff | -40 | 1.2 | [1.628e-10, 1.728e-10, 1.828e-10, …] | [-5.293e-01, -2.034e-01, 0.125, …] | 4.722e+09 | 0.789 | 1.577 | +| run_11 | ss | -40 | 1.2 | [1.628e-10, 1.728e-10, 1.828e-10, …] | [-5.474e-01, -2.088e-01, 0.131, …] | 4.722e+09 | 0.819 | 1.638 | +| run_12 | tt | 27 | 1.2 | [1.628e-10, 1.728e-10, 1.828e-10, …] | [-5.050e-01, -1.958e-01, 0.120, …] | 4.722e+09 | 0.771 | 1.543 | +| run_13 | ff | 27 | 1.2 | [1.628e-10, 1.728e-10, 1.828e-10, …] | [-4.935e-01, -1.929e-01, 0.116, …] | 4.722e+09 | 0.753 | 1.505 | +| run_14 | ss | 27 | 1.2 | [1.628e-10, 1.728e-10, 1.828e-10, …] | [-5.133e-01, -2.032e-01, 0.114, …] | 4.722e+09 | 0.783 | 1.566 | +| run_15 | tt | 80 | 1.2 | [1.628e-10, 1.728e-10, 1.828e-10, …] | [-4.765e-01, -1.934e-01, 0.103, …] | 4.722e+09 | 0.743 | 1.486 | +| run_16 | ff | 80 | 1.2 | [1.628e-10, 1.728e-10, 1.828e-10, …] | [-4.643e-01, -1.890e-01, 0.101, …] | 4.722e+09 | 0.725 | 1.450 | +| run_17 | ss | 80 | 1.2 | [1.628e-10, 1.728e-10, 1.828e-10, …] | [-4.853e-01, -2.024e-01, 9.500e-02, …] | 4.722e+09 | 0.755 | 1.510 | +| run_18 | tt | -40 | 1.6 | [1.628e-10, 1.728e-10, 1.828e-10, …] | [0.575, 0.203, -1.640e-01, …] | 4.722e+09 | 0.851 | 1.702 | +| run_19 | ff | -40 | 1.6 | [1.628e-10, 1.728e-10, 1.828e-10, …] | [0.571, 0.205, -1.568e-01, …] | 4.722e+09 | 0.836 | 1.672 | +| run_20 | ss | -40 | 1.6 | [1.628e-10, 1.728e-10, 1.828e-10, …] | [0.579, 0.208, -1.623e-01, …] | 4.722e+09 | 0.860 | 1.720 | +| run_21 | tt | 27 | 1.6 | [1.628e-10, 1.728e-10, 1.828e-10, …] | [0.557, 0.208, -1.460e-01, …] | 4.722e+09 | 0.826 | 1.653 | +| run_22 | ff | 27 | 1.6 | [1.628e-10, 1.728e-10, 1.828e-10, …] | [0.554, 0.209, -1.400e-01, …] | 4.722e+09 | 0.812 | 1.624 | +| run_23 | ss | 27 | 1.6 | [1.628e-10, 1.728e-10, 1.828e-10, …] | [0.561, 0.214, -1.407e-01, …] | 4.722e+09 | 0.834 | 1.669 | +| run_24 | tt | 80 | 1.6 | [1.628e-10, 1.728e-10, 1.828e-10, …] | [0.541, 0.214, -1.231e-01, …] | 4.722e+09 | 0.799 | 1.598 | +| run_25 | ff | 80 | 1.6 | [1.628e-10, 1.728e-10, 1.828e-10, …] | [0.537, 0.215, -1.181e-01, …] | 4.722e+09 | 0.784 | 1.569 | +| run_26 | ss | 80 | 1.6 | [1.628e-10, 1.728e-10, 1.828e-10, …] | [0.544, 0.221, -1.163e-01, …] | 4.722e+09 | 0.807 | 1.613 | diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/vo_diff_vs_time.png b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/vo_diff_vs_time.png new file mode 100644 index 00000000..64d1b808 Binary files /dev/null and b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/parameters/ac_params/vo_diff_vs_time.png differ diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/summary.md b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/summary.md new file mode 100644 index 00000000..a11c2c65 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-34-33/summary.md @@ -0,0 +1,11 @@ + +# CACE Summary for CML_divider + +**netlist source**: schematic + +| Parameter | Tool | Result | Min Limit | Min Value | Typ Target | Typ Value | Max Limit | Max Value | Status | +| :------------------- | :------------------- | :-------------- | ---------: | -----------: | ---------: | -----------: | ---------: | -----------: | :------: | +| Frequency | ngspice | frequency | 4.3 GHz | 4.722 GHz | 5.0 GHz | 4.722 GHz | 5.2 GHz | 4.722 GHz | Pass ✅ | +| Amplitude | ngspice | amplitude | 0.2 V | 0.648 V | 0.4 V | 0.771 V | 0.6 V | 0.860 V | Fail ❌ | +| Voltage swing | ngspice | voltage_swing | 0.4 V | 1.295 V | 0.8 V | 1.543 V | 1.2 V | 1.720 V | Fail ❌ | + diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/CML_core_tb.sch new file mode 100644 index 00000000..48f6f0bb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/CML_core_tb.sch @@ -0,0 +1,71 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {} +V {} +S {} +E {} +N 740 -940 740 -920 {lab=GND} +N 740 -1090 740 -1060 {lab=VDD} +N 600 -1020 620 -1020 {lab=Vinplus} +N 600 -980 620 -980 {lab=Vinminus} +N 860 -1020 880 -1020 {lab=Voplus} +N 860 -980 880 -980 {lab=Vominus} +N 1150 -850 1150 -820 {lab=VDD} +N 1150 -760 1150 -730 {lab=GND} +N 930 -850 930 -820 {lab=Vinminus} +N 930 -760 930 -730 {lab=GND} +N 720 -850 720 -820 {lab=Vinplus} +N 720 -760 720 -730 {lab=GND} +C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write CML_core_tb.raw +set appendwrite +tran 10p 1n 160p + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata CACE\{simpath\}/CACE\{filename\}_CACE\{N\}.data vo_diff +quit + +.endc +"} +C {opin.sym} 880 -1020 2 1 {name=p6 lab=Voplus} +C {opin.sym} 880 -980 0 0 {name=p9 lab=Vominus} +C {devices/code_shown.sym} 10 -620 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib CACE\{PDK_ROOT\}/CACE\{PDK\}/libs.tech/ngspice/models/cornerMOSlv.lib mos_CACE\{corner\} + +.include CACE\{DUT_path\} + +.temp CACE\{temperature\} +" +} +C {iopin.sym} 740 -1090 0 1 {name=p2 lab=VDD} +C {ipin.sym} 600 -1020 2 1 {name=p4 lab=Vinplus} +C {ipin.sym} 600 -980 2 1 {name=p1 lab=Vinminus} +C {CML_divider.sym} 740 -1000 0 1 {name=x1} +C {vsource.sym} 1150 -790 0 0 {name=V1 value=CACE\{vdd\} savecurrent=false} +C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} +C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} +C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 0.3 10G 0 0 0)" savecurrent=false} +C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 0.3 10G 0 0 180)" savecurrent=false} +C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_00/.spiceinit b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_00/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_00/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_00/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_00/CML_core_tb.sch new file mode 100644 index 00000000..bdaed397 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_00/CML_core_tb.sch @@ -0,0 +1,71 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {} +V {} +S {} +E {} +N 740 -940 740 -920 {lab=GND} +N 740 -1090 740 -1060 {lab=VDD} +N 600 -1020 620 -1020 {lab=Vinplus} +N 600 -980 620 -980 {lab=Vinminus} +N 860 -1020 880 -1020 {lab=Voplus} +N 860 -980 880 -980 {lab=Vominus} +N 1150 -850 1150 -820 {lab=VDD} +N 1150 -760 1150 -730 {lab=GND} +N 930 -850 930 -820 {lab=Vinminus} +N 930 -760 930 -730 {lab=GND} +N 720 -850 720 -820 {lab=Vinplus} +N 720 -760 720 -730 {lab=GND} +C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write CML_core_tb.raw +set appendwrite +tran 10p 1n 160p + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_00/CML_core_tb_0.data vo_diff +quit + +.endc +"} +C {opin.sym} 880 -1020 2 1 {name=p6 lab=Voplus} +C {opin.sym} 880 -980 0 0 {name=p9 lab=Vominus} +C {devices/code_shown.sym} 10 -620 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_tt + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice + +.temp -40 +" +} +C {iopin.sym} 740 -1090 0 1 {name=p2 lab=VDD} +C {ipin.sym} 600 -1020 2 1 {name=p4 lab=Vinplus} +C {ipin.sym} 600 -980 2 1 {name=p1 lab=Vinminus} +C {CML_divider.sym} 740 -1000 0 1 {name=x1} +C {vsource.sym} 1150 -790 0 0 {name=V1 value=0.8 savecurrent=false} +C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} +C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} +C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 0.3 10G 0 0 0)" savecurrent=false} +C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 0.3 10G 0 0 180)" savecurrent=false} +C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_00/CML_core_tb_0.data b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_00/CML_core_tb_0.data new file mode 100644 index 00000000..6e5c755c --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_00/CML_core_tb_0.data @@ -0,0 +1,85 @@ + 1.628000000000e-10 -2.952325246460e-01 + 1.728000000000e-10 -6.043942197180e-02 + 1.828000000000e-10 1.817064006720e-01 + 1.928000000000e-10 3.985392356515e-01 + 2.028000000000e-10 5.562505249699e-01 + 2.128000000000e-10 6.572874178466e-01 + 2.228000000000e-10 7.087352858161e-01 + 2.328000000000e-10 7.029522511861e-01 + 2.428000000000e-10 6.344368312078e-01 + 2.528000000000e-10 5.013241237787e-01 + 2.628000000000e-10 3.030080742176e-01 + 2.728000000000e-10 6.578821975767e-02 + 2.828000000000e-10 -1.781586778972e-01 + 2.928000000000e-10 -3.964040373443e-01 + 3.028000000000e-10 -5.555461653242e-01 + 3.128000000000e-10 -6.571022283471e-01 + 3.228000000000e-10 -7.092808909864e-01 + 3.328000000000e-10 -7.040843150938e-01 + 3.428000000000e-10 -6.362469325195e-01 + 3.528000000000e-10 -5.032364212786e-01 + 3.628000000000e-10 -3.051350358226e-01 + 3.728000000000e-10 -6.762904380973e-02 + 3.828000000000e-10 1.763878132349e-01 + 3.928000000000e-10 3.951284969670e-01 + 4.028000000000e-10 5.545978983505e-01 + 4.128000000000e-10 6.566315830069e-01 + 4.228000000000e-10 7.089962487465e-01 + 4.328000000000e-10 7.042633111532e-01 + 4.428000000000e-10 6.365365170049e-01 + 4.528000000000e-10 5.037912579488e-01 + 4.628000000000e-10 3.056253251435e-01 + 4.728000000000e-10 6.823087043489e-02 + 4.828000000000e-10 -1.759620590786e-01 + 4.928000000000e-10 -3.946766675460e-01 + 5.028000000000e-10 -5.543918551335e-01 + 5.128000000000e-10 -6.564106038653e-01 + 5.228000000000e-10 -7.089804674794e-01 + 5.328000000000e-10 -7.042284637667e-01 + 5.428000000000e-10 -6.366831677063e-01 + 5.528000000000e-10 -5.038654128054e-01 + 5.628000000000e-10 -3.058301627321e-01 + 5.728000000000e-10 -6.832081314378e-02 + 5.828000000000e-10 1.757744687450e-01 + 5.928000000000e-10 3.946207346164e-01 + 6.028000000000e-10 5.542681653143e-01 + 6.128000000000e-10 6.564162326939e-01 + 6.228000000000e-10 7.089102158365e-01 + 6.328000000000e-10 7.042850183822e-01 + 6.428000000000e-10 6.366586213363e-01 + 6.528000000000e-10 5.039505543903e-01 + 6.628000000000e-10 3.058219717524e-01 + 6.728000000000e-10 6.840961740524e-02 + 6.828000000000e-10 -1.757862033444e-01 + 6.928000000000e-10 -3.945467987447e-01 + 7.028000000000e-10 -5.542929102277e-01 + 7.128000000000e-10 -6.563603422698e-01 + 7.228000000000e-10 -7.089481650220e-01 + 7.328000000000e-10 -7.042424683005e-01 + 7.428000000000e-10 -6.367078290897e-01 + 7.528000000000e-10 -5.039165471509e-01 + 7.628000000000e-10 -3.058753018579e-01 + 7.728000000000e-10 -6.837707225292e-02 + 7.828000000000e-10 1.757345833407e-01 + 7.928000000000e-10 3.945785215449e-01 + 8.028000000000e-10 5.542482652542e-01 + 8.128000000000e-10 6.563959408481e-01 + 8.228000000000e-10 7.089082113076e-01 + 8.328000000000e-10 7.042817797830e-01 + 8.428000000000e-10 6.366719399828e-01 + 8.528000000000e-10 5.039573608246e-01 + 8.628000000000e-10 3.058408732486e-01 + 8.728000000000e-10 6.841772818469e-02 + 8.828000000000e-10 -1.757686495942e-01 + 8.928000000000e-10 -3.945419964750e-01 + 9.028000000000e-10 -5.542809328797e-01 + 9.128000000000e-10 -6.563614885531e-01 + 9.228000000000e-10 -7.089411806967e-01 + 9.328000000000e-10 -7.042479976407e-01 + 9.428000000000e-10 -6.367051444468e-01 + 9.528000000000e-10 -5.039245834310e-01 + 9.628000000000e-10 -3.058742220339e-01 + 9.728000000000e-10 -6.838526492007e-02 + 9.828000000000e-10 1.757358039920e-01 + 9.928000000000e-10 3.945718167364e-01 + 1.000000000000e-09 5.155910006549e-01 diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_00/CML_divider.sym b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_00/CML_divider.sym new file mode 100644 index 00000000..e46eb233 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_00/CML_divider.sym @@ -0,0 +1,30 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 -120 -20 -100 -20 {} +L 4 -120 20 -100 20 {} +L 4 100 -20 120 -20 {} +L 4 100 20 120 20 {} +L 7 0 -60 0 -40 {} +L 7 0 40 0 60 {} +B 5 -122.5 -22.5 -117.5 -17.5 {name=Vo+ dir=out} +B 5 -122.5 17.5 -117.5 22.5 {name=Vo- dir=out} +B 5 117.5 -22.5 122.5 -17.5 {name=Vi+ dir=in} +B 5 117.5 17.5 122.5 22.5 {name=Vi- dir=in} +B 5 -2.5 -62.5 2.5 -57.5 {name=vdd dir=inout} +B 5 -2.5 57.5 2.5 62.5 {name=gnd dir=inout} +P 4 5 100 -40 -100 -40 -100 40 100 40 100 -40 {} +T {@symname} -44 -6 0 0 0.3 0.3 {} +T {@name} 45 -52 0 0 0.2 0.2 {} +T {Vo+} -95 -24 0 0 0.2 0.2 {} +T {Vo-} -95 16 0 0 0.2 0.2 {} +T {Vi+} 95 -16 2 0 0.2 0.2 {} +T {Vi-} 95 24 2 0 0.2 0.2 {} +T {vdd} 10 -39 0 1 0.2 0.2 {} +T {gnd} -10 34 2 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_00/conditions.yaml b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_00/conditions.yaml new file mode 100644 index 00000000..0b7f398a --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_00/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice +N: 0 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: tt +filename: CML_core_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_00 +temperature: '-40' +vdd: '0.8' diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_01/.spiceinit b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_01/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_01/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_01/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_01/CML_core_tb.sch new file mode 100644 index 00000000..6d814da2 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_01/CML_core_tb.sch @@ -0,0 +1,71 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {} +V {} +S {} +E {} +N 740 -940 740 -920 {lab=GND} +N 740 -1090 740 -1060 {lab=VDD} +N 600 -1020 620 -1020 {lab=Vinplus} +N 600 -980 620 -980 {lab=Vinminus} +N 860 -1020 880 -1020 {lab=Voplus} +N 860 -980 880 -980 {lab=Vominus} +N 1150 -850 1150 -820 {lab=VDD} +N 1150 -760 1150 -730 {lab=GND} +N 930 -850 930 -820 {lab=Vinminus} +N 930 -760 930 -730 {lab=GND} +N 720 -850 720 -820 {lab=Vinplus} +N 720 -760 720 -730 {lab=GND} +C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write CML_core_tb.raw +set appendwrite +tran 10p 1n 160p + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_01/CML_core_tb_1.data vo_diff +quit + +.endc +"} +C {opin.sym} 880 -1020 2 1 {name=p6 lab=Voplus} +C {opin.sym} 880 -980 0 0 {name=p9 lab=Vominus} +C {devices/code_shown.sym} 10 -620 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_ff + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice + +.temp -40 +" +} +C {iopin.sym} 740 -1090 0 1 {name=p2 lab=VDD} +C {ipin.sym} 600 -1020 2 1 {name=p4 lab=Vinplus} +C {ipin.sym} 600 -980 2 1 {name=p1 lab=Vinminus} +C {CML_divider.sym} 740 -1000 0 1 {name=x1} +C {vsource.sym} 1150 -790 0 0 {name=V1 value=0.8 savecurrent=false} +C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} +C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} +C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 0.3 10G 0 0 0)" savecurrent=false} +C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 0.3 10G 0 0 180)" savecurrent=false} +C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_01/CML_core_tb_1.data b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_01/CML_core_tb_1.data new file mode 100644 index 00000000..94a2849c --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_01/CML_core_tb_1.data @@ -0,0 +1,85 @@ + 1.628000000000e-10 -2.647956442563e-01 + 1.728000000000e-10 -3.672466403620e-02 + 1.828000000000e-10 1.978055322165e-01 + 1.928000000000e-10 4.056017943518e-01 + 2.028000000000e-10 5.547344088879e-01 + 2.128000000000e-10 6.487490848065e-01 + 2.228000000000e-10 6.923653634957e-01 + 2.328000000000e-10 6.780886353961e-01 + 2.428000000000e-10 6.039598047192e-01 + 2.528000000000e-10 4.698168410475e-01 + 2.628000000000e-10 2.751260896566e-01 + 2.728000000000e-10 4.430157580526e-02 + 2.828000000000e-10 -1.925038311834e-01 + 2.928000000000e-10 -4.023301580756e-01 + 3.028000000000e-10 -5.533152551340e-01 + 3.128000000000e-10 -6.481954476962e-01 + 3.228000000000e-10 -6.930655672739e-01 + 3.328000000000e-10 -6.800540209913e-01 + 3.428000000000e-10 -6.070129146880e-01 + 3.528000000000e-10 -4.732295235615e-01 + 3.628000000000e-10 -2.788311309623e-01 + 3.728000000000e-10 -4.769207273318e-02 + 3.828000000000e-10 1.893739393663e-01 + 3.928000000000e-10 3.999895682405e-01 + 4.028000000000e-10 5.516914161753e-01 + 4.128000000000e-10 6.473194453459e-01 + 4.228000000000e-10 6.926967113745e-01 + 4.328000000000e-10 6.804409619078e-01 + 4.428000000000e-10 6.077344291363e-01 + 4.528000000000e-10 4.743209278754e-01 + 4.628000000000e-10 2.799315218230e-01 + 4.728000000000e-10 4.887682675205e-02 + 4.828000000000e-10 -1.884058832182e-01 + 4.928000000000e-10 -3.991237321070e-01 + 5.028000000000e-10 -5.511979674959e-01 + 5.128000000000e-10 -6.469402879887e-01 + 5.228000000000e-10 -6.926225993557e-01 + 5.328000000000e-10 -6.804805060919e-01 + 5.428000000000e-10 -6.080204415279e-01 + 5.528000000000e-10 -4.745961817340e-01 + 5.628000000000e-10 -2.803459413605e-01 + 5.728000000000e-10 -4.918721233066e-02 + 5.828000000000e-10 1.880320213273e-01 + 5.928000000000e-10 3.989072784961e-01 + 6.028000000000e-10 5.509784832100e-01 + 6.128000000000e-10 6.468776696433e-01 + 6.228000000000e-10 6.925382949500e-01 + 6.328000000000e-10 6.805520167761e-01 + 6.428000000000e-10 6.080522625696e-01 + 6.528000000000e-10 4.747422384222e-01 + 6.628000000000e-10 2.804194075907e-01 + 6.728000000000e-10 4.934414267879e-02 + 6.828000000000e-10 -1.879699706397e-01 + 6.928000000000e-10 -3.987854446736e-01 + 7.028000000000e-10 -5.509613139230e-01 + 7.128000000000e-10 -6.468062697707e-01 + 7.228000000000e-10 -6.925630874809e-01 + 7.328000000000e-10 -6.805223964692e-01 + 7.428000000000e-10 -6.081132322697e-01 + 7.528000000000e-10 -4.747366406660e-01 + 7.628000000000e-10 -2.804933490724e-01 + 7.728000000000e-10 -4.934235519722e-02 + 7.828000000000e-10 1.879006367827e-01 + 7.928000000000e-10 3.987938070562e-01 + 8.028000000000e-10 5.509093463144e-01 + 8.128000000000e-10 6.468293959909e-01 + 8.228000000000e-10 6.925252291894e-01 + 8.328000000000e-10 6.805590879185e-01 + 8.428000000000e-10 6.080875904937e-01 + 8.528000000000e-10 4.747803907956e-01 + 8.628000000000e-10 2.804721530083e-01 + 8.728000000000e-10 4.938687520288e-02 + 8.828000000000e-10 -1.879222775604e-01 + 8.928000000000e-10 -3.987554695640e-01 + 9.028000000000e-10 -5.509333914335e-01 + 9.128000000000e-10 -6.467969990881e-01 + 9.228000000000e-10 -6.925530415231e-01 + 9.328000000000e-10 -6.805304150604e-01 + 9.428000000000e-10 -6.081187600045e-01 + 9.528000000000e-10 -4.747542418837e-01 + 9.628000000000e-10 -2.805045225794e-01 + 9.728000000000e-10 -4.936125388638e-02 + 9.828000000000e-10 1.878908530872e-01 + 9.928000000000e-10 3.987795364060e-01 + 1.000000000000e-09 5.142017254263e-01 diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_01/CML_divider.sym b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_01/CML_divider.sym new file mode 100644 index 00000000..e46eb233 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_01/CML_divider.sym @@ -0,0 +1,30 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 -120 -20 -100 -20 {} +L 4 -120 20 -100 20 {} +L 4 100 -20 120 -20 {} +L 4 100 20 120 20 {} +L 7 0 -60 0 -40 {} +L 7 0 40 0 60 {} +B 5 -122.5 -22.5 -117.5 -17.5 {name=Vo+ dir=out} +B 5 -122.5 17.5 -117.5 22.5 {name=Vo- dir=out} +B 5 117.5 -22.5 122.5 -17.5 {name=Vi+ dir=in} +B 5 117.5 17.5 122.5 22.5 {name=Vi- dir=in} +B 5 -2.5 -62.5 2.5 -57.5 {name=vdd dir=inout} +B 5 -2.5 57.5 2.5 62.5 {name=gnd dir=inout} +P 4 5 100 -40 -100 -40 -100 40 100 40 100 -40 {} +T {@symname} -44 -6 0 0 0.3 0.3 {} +T {@name} 45 -52 0 0 0.2 0.2 {} +T {Vo+} -95 -24 0 0 0.2 0.2 {} +T {Vo-} -95 16 0 0 0.2 0.2 {} +T {Vi+} 95 -16 2 0 0.2 0.2 {} +T {Vi-} 95 24 2 0 0.2 0.2 {} +T {vdd} 10 -39 0 1 0.2 0.2 {} +T {gnd} -10 34 2 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_01/conditions.yaml b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_01/conditions.yaml new file mode 100644 index 00000000..a6501d32 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_01/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice +N: 1 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: ff +filename: CML_core_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_01 +temperature: '-40' +vdd: '0.8' diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_02/.spiceinit b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_02/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_02/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_02/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_02/CML_core_tb.sch new file mode 100644 index 00000000..41a5530c --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_02/CML_core_tb.sch @@ -0,0 +1,71 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {} +V {} +S {} +E {} +N 740 -940 740 -920 {lab=GND} +N 740 -1090 740 -1060 {lab=VDD} +N 600 -1020 620 -1020 {lab=Vinplus} +N 600 -980 620 -980 {lab=Vinminus} +N 860 -1020 880 -1020 {lab=Voplus} +N 860 -980 880 -980 {lab=Vominus} +N 1150 -850 1150 -820 {lab=VDD} +N 1150 -760 1150 -730 {lab=GND} +N 930 -850 930 -820 {lab=Vinminus} +N 930 -760 930 -730 {lab=GND} +N 720 -850 720 -820 {lab=Vinplus} +N 720 -760 720 -730 {lab=GND} +C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write CML_core_tb.raw +set appendwrite +tran 10p 1n 160p + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_02/CML_core_tb_2.data vo_diff +quit + +.endc +"} +C {opin.sym} 880 -1020 2 1 {name=p6 lab=Voplus} +C {opin.sym} 880 -980 0 0 {name=p9 lab=Vominus} +C {devices/code_shown.sym} 10 -620 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_ss + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice + +.temp -40 +" +} +C {iopin.sym} 740 -1090 0 1 {name=p2 lab=VDD} +C {ipin.sym} 600 -1020 2 1 {name=p4 lab=Vinplus} +C {ipin.sym} 600 -980 2 1 {name=p1 lab=Vinminus} +C {CML_divider.sym} 740 -1000 0 1 {name=x1} +C {vsource.sym} 1150 -790 0 0 {name=V1 value=0.8 savecurrent=false} +C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} +C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} +C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 0.3 10G 0 0 0)" savecurrent=false} +C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 0.3 10G 0 0 180)" savecurrent=false} +C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_02/CML_core_tb_2.data b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_02/CML_core_tb_2.data new file mode 100644 index 00000000..cdbb156b --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_02/CML_core_tb_2.data @@ -0,0 +1,85 @@ + 1.628000000000e-10 -3.226907107526e-01 + 1.728000000000e-10 -8.539968284410e-02 + 1.828000000000e-10 1.614480909662e-01 + 1.928000000000e-10 3.869191924745e-01 + 2.028000000000e-10 5.540483396157e-01 + 2.128000000000e-10 6.620167995175e-01 + 2.228000000000e-10 7.202634748901e-01 + 2.328000000000e-10 7.212523007105e-01 + 2.428000000000e-10 6.566979396260e-01 + 2.528000000000e-10 5.250303609426e-01 + 2.628000000000e-10 3.265092852166e-01 + 2.728000000000e-10 8.707604756770e-02 + 2.828000000000e-10 -1.611600424348e-01 + 2.928000000000e-10 -3.873238626333e-01 + 3.028000000000e-10 -5.550746884823e-01 + 3.128000000000e-10 -6.629366269634e-01 + 3.228000000000e-10 -7.212894794449e-01 + 3.328000000000e-10 -7.220878341254e-01 + 3.428000000000e-10 -6.576651735802e-01 + 3.528000000000e-10 -5.257535323793e-01 + 3.628000000000e-10 -3.273054874384e-01 + 3.728000000000e-10 -8.759901468451e-02 + 3.828000000000e-10 1.605580394287e-01 + 3.928000000000e-10 3.869863823107e-01 + 4.028000000000e-10 5.547303069787e-01 + 4.128000000000e-10 6.628461833305e-01 + 4.228000000000e-10 7.211466820779e-01 + 4.328000000000e-10 7.221995653822e-01 + 4.428000000000e-10 6.577128147927e-01 + 4.528000000000e-10 5.259884868760e-01 + 4.628000000000e-10 3.274163471898e-01 + 4.728000000000e-10 8.784541550780e-02 + 4.828000000000e-10 -1.604682108624e-01 + 4.928000000000e-10 -3.867888973241e-01 + 5.028000000000e-10 -5.547066546217e-01 + 5.128000000000e-10 -6.627253094524e-01 + 5.228000000000e-10 -7.211826888209e-01 + 5.328000000000e-10 -7.221369141817e-01 + 5.428000000000e-10 -6.577994031943e-01 + 5.528000000000e-10 -5.259620192587e-01 + 5.628000000000e-10 -3.275201865204e-01 + 5.728000000000e-10 -8.782404636233e-02 + 5.828000000000e-10 1.603689538405e-01 + 5.928000000000e-10 3.868153343854e-01 + 6.028000000000e-10 5.546284247412e-01 + 6.128000000000e-10 6.627691182366e-01 + 6.228000000000e-10 7.211205707397e-01 + 6.328000000000e-10 7.221945096033e-01 + 6.428000000000e-10 6.577508134366e-01 + 6.528000000000e-10 5.260261908485e-01 + 6.628000000000e-10 3.274760111912e-01 + 6.728000000000e-10 8.788851273295e-02 + 6.828000000000e-10 -1.604138329037e-01 + 6.928000000000e-10 -3.867579820075e-01 + 7.028000000000e-10 -5.546733587088e-01 + 7.128000000000e-10 -6.627166397254e-01 + 7.228000000000e-10 -7.211676696649e-01 + 7.328000000000e-10 -7.221448613305e-01 + 7.428000000000e-10 -6.577993970261e-01 + 7.528000000000e-10 -5.259796511606e-01 + 7.628000000000e-10 -3.275252420812e-01 + 7.728000000000e-10 -8.784270745333e-02 + 7.828000000000e-10 1.603648729372e-01 + 7.928000000000e-10 3.868003178892e-01 + 8.028000000000e-10 5.546284703905e-01 + 8.128000000000e-10 6.627594909397e-01 + 8.228000000000e-10 7.211247368625e-01 + 8.328000000000e-10 7.221884517678e-01 + 8.428000000000e-10 6.577581123739e-01 + 8.528000000000e-10 5.260226393584e-01 + 8.628000000000e-10 3.274844581735e-01 + 8.728000000000e-10 8.788515759553e-02 + 8.828000000000e-10 -1.604054537172e-01 + 8.928000000000e-10 -3.867616376768e-01 + 9.028000000000e-10 -5.546662826942e-01 + 9.128000000000e-10 -6.627215467888e-01 + 9.228000000000e-10 -7.211618152183e-01 + 9.328000000000e-10 -7.221504122635e-01 + 9.428000000000e-10 -6.577943183983e-01 + 9.528000000000e-10 -5.259856282734e-01 + 9.628000000000e-10 -3.275204867996e-01 + 9.728000000000e-10 -8.784851998896e-02 + 9.828000000000e-10 1.603694682536e-01 + 9.928000000000e-10 3.867951846118e-01 + 1.000000000000e-09 5.139507493642e-01 diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_02/CML_divider.sym b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_02/CML_divider.sym new file mode 100644 index 00000000..e46eb233 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_02/CML_divider.sym @@ -0,0 +1,30 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 -120 -20 -100 -20 {} +L 4 -120 20 -100 20 {} +L 4 100 -20 120 -20 {} +L 4 100 20 120 20 {} +L 7 0 -60 0 -40 {} +L 7 0 40 0 60 {} +B 5 -122.5 -22.5 -117.5 -17.5 {name=Vo+ dir=out} +B 5 -122.5 17.5 -117.5 22.5 {name=Vo- dir=out} +B 5 117.5 -22.5 122.5 -17.5 {name=Vi+ dir=in} +B 5 117.5 17.5 122.5 22.5 {name=Vi- dir=in} +B 5 -2.5 -62.5 2.5 -57.5 {name=vdd dir=inout} +B 5 -2.5 57.5 2.5 62.5 {name=gnd dir=inout} +P 4 5 100 -40 -100 -40 -100 40 100 40 100 -40 {} +T {@symname} -44 -6 0 0 0.3 0.3 {} +T {@name} 45 -52 0 0 0.2 0.2 {} +T {Vo+} -95 -24 0 0 0.2 0.2 {} +T {Vo-} -95 16 0 0 0.2 0.2 {} +T {Vi+} 95 -16 2 0 0.2 0.2 {} +T {Vi-} 95 24 2 0 0.2 0.2 {} +T {vdd} 10 -39 0 1 0.2 0.2 {} +T {gnd} -10 34 2 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_02/conditions.yaml b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_02/conditions.yaml new file mode 100644 index 00000000..443b9fe6 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_02/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice +N: 2 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: ss +filename: CML_core_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_02 +temperature: '-40' +vdd: '0.8' diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_03/.spiceinit b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_03/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_03/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_03/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_03/CML_core_tb.sch new file mode 100644 index 00000000..769600e2 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_03/CML_core_tb.sch @@ -0,0 +1,71 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {} +V {} +S {} +E {} +N 740 -940 740 -920 {lab=GND} +N 740 -1090 740 -1060 {lab=VDD} +N 600 -1020 620 -1020 {lab=Vinplus} +N 600 -980 620 -980 {lab=Vinminus} +N 860 -1020 880 -1020 {lab=Voplus} +N 860 -980 880 -980 {lab=Vominus} +N 1150 -850 1150 -820 {lab=VDD} +N 1150 -760 1150 -730 {lab=GND} +N 930 -850 930 -820 {lab=Vinminus} +N 930 -760 930 -730 {lab=GND} +N 720 -850 720 -820 {lab=Vinplus} +N 720 -760 720 -730 {lab=GND} +C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write CML_core_tb.raw +set appendwrite +tran 10p 1n 160p + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_03/CML_core_tb_3.data vo_diff +quit + +.endc +"} +C {opin.sym} 880 -1020 2 1 {name=p6 lab=Voplus} +C {opin.sym} 880 -980 0 0 {name=p9 lab=Vominus} +C {devices/code_shown.sym} 10 -620 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_tt + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice + +.temp 27 +" +} +C {iopin.sym} 740 -1090 0 1 {name=p2 lab=VDD} +C {ipin.sym} 600 -1020 2 1 {name=p4 lab=Vinplus} +C {ipin.sym} 600 -980 2 1 {name=p1 lab=Vinminus} +C {CML_divider.sym} 740 -1000 0 1 {name=x1} +C {vsource.sym} 1150 -790 0 0 {name=V1 value=0.8 savecurrent=false} +C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} +C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} +C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 0.3 10G 0 0 0)" savecurrent=false} +C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 0.3 10G 0 0 180)" savecurrent=false} +C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_03/CML_core_tb_3.data b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_03/CML_core_tb_3.data new file mode 100644 index 00000000..a5b707e1 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_03/CML_core_tb_3.data @@ -0,0 +1,85 @@ + 1.628000000000e-10 -2.752371518652e-01 + 1.728000000000e-10 -5.371376319542e-02 + 1.828000000000e-10 1.789877413053e-01 + 1.928000000000e-10 3.904548691103e-01 + 2.028000000000e-10 5.481842948229e-01 + 2.128000000000e-10 6.473880529986e-01 + 2.228000000000e-10 6.910106576952e-01 + 2.328000000000e-10 6.747515328639e-01 + 2.428000000000e-10 5.993982850131e-01 + 2.528000000000e-10 4.678235295331e-01 + 2.628000000000e-10 2.811940191144e-01 + 2.728000000000e-10 5.749892092429e-02 + 2.828000000000e-10 -1.768703468756e-01 + 2.928000000000e-10 -3.894327299011e-01 + 3.028000000000e-10 -5.481462871223e-01 + 3.128000000000e-10 -6.476233959034e-01 + 3.228000000000e-10 -6.918267741740e-01 + 3.328000000000e-10 -6.759891610513e-01 + 3.428000000000e-10 -6.011477081233e-01 + 3.528000000000e-10 -4.695436066175e-01 + 3.628000000000e-10 -2.830251877311e-01 + 3.728000000000e-10 -5.907673776650e-02 + 3.828000000000e-10 1.753349861707e-01 + 3.928000000000e-10 3.883274219019e-01 + 4.028000000000e-10 5.473035177189e-01 + 4.128000000000e-10 6.472356324664e-01 + 4.228000000000e-10 6.916308158427e-01 + 4.328000000000e-10 6.762268077787e-01 + 4.428000000000e-10 6.014684070962e-01 + 4.528000000000e-10 4.700895666681e-01 + 4.628000000000e-10 2.834862741746e-01 + 4.728000000000e-10 5.964855757083e-02 + 4.828000000000e-10 -1.749274761915e-01 + 4.928000000000e-10 -3.878897710558e-01 + 5.028000000000e-10 -5.470986037433e-01 + 5.128000000000e-10 -6.470272164409e-01 + 5.228000000000e-10 -6.916322065746e-01 + 5.328000000000e-10 -6.762158687864e-01 + 5.428000000000e-10 -6.016311330158e-01 + 5.528000000000e-10 -4.701782346337e-01 + 5.628000000000e-10 -2.836941639082e-01 + 5.728000000000e-10 -5.974768838544e-02 + 5.828000000000e-10 1.747352099095e-01 + 5.928000000000e-10 3.878245260251e-01 + 6.028000000000e-10 5.469715931678e-01 + 6.128000000000e-10 6.470284806517e-01 + 6.228000000000e-10 6.915679621080e-01 + 6.328000000000e-10 6.762768333485e-01 + 6.428000000000e-10 6.016163496453e-01 + 6.528000000000e-10 4.702674812943e-01 + 6.628000000000e-10 2.836938506434e-01 + 6.728000000000e-10 5.983990401354e-02 + 6.828000000000e-10 -1.747391664584e-01 + 6.928000000000e-10 -3.877472828580e-01 + 7.028000000000e-10 -5.469903889528e-01 + 7.128000000000e-10 -6.469730360721e-01 + 7.228000000000e-10 -6.916047287716e-01 + 7.328000000000e-10 -6.762386026180e-01 + 7.428000000000e-10 -6.016669907082e-01 + 7.528000000000e-10 -4.702390118128e-01 + 7.628000000000e-10 -2.837481181728e-01 + 7.728000000000e-10 -5.981248689037e-02 + 7.828000000000e-10 1.746867337354e-01 + 7.928000000000e-10 3.877749638679e-01 + 8.028000000000e-10 5.469462314077e-01 + 8.128000000000e-10 6.470055622974e-01 + 8.228000000000e-10 6.915665740520e-01 + 8.328000000000e-10 6.762766371031e-01 + 8.428000000000e-10 6.016337946720e-01 + 8.528000000000e-10 4.702787360349e-01 + 8.628000000000e-10 2.837166478210e-01 + 8.728000000000e-10 5.985233152723e-02 + 8.828000000000e-10 -1.747180248353e-01 + 8.928000000000e-10 -3.877389392165e-01 + 9.028000000000e-10 -5.469764940938e-01 + 9.128000000000e-10 -6.469724949526e-01 + 9.228000000000e-10 -6.915980610397e-01 + 9.328000000000e-10 -6.762447762615e-01 + 9.428000000000e-10 -6.016660865709e-01 + 9.528000000000e-10 -4.702484057793e-01 + 9.628000000000e-10 -2.837489236123e-01 + 9.728000000000e-10 -5.982216431619e-02 + 9.828000000000e-10 1.746862818107e-01 + 9.928000000000e-10 3.877670239311e-01 + 1.000000000000e-09 5.084292112944e-01 diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_03/CML_divider.sym b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_03/CML_divider.sym new file mode 100644 index 00000000..e46eb233 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_03/CML_divider.sym @@ -0,0 +1,30 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 -120 -20 -100 -20 {} +L 4 -120 20 -100 20 {} +L 4 100 -20 120 -20 {} +L 4 100 20 120 20 {} +L 7 0 -60 0 -40 {} +L 7 0 40 0 60 {} +B 5 -122.5 -22.5 -117.5 -17.5 {name=Vo+ dir=out} +B 5 -122.5 17.5 -117.5 22.5 {name=Vo- dir=out} +B 5 117.5 -22.5 122.5 -17.5 {name=Vi+ dir=in} +B 5 117.5 17.5 122.5 22.5 {name=Vi- dir=in} +B 5 -2.5 -62.5 2.5 -57.5 {name=vdd dir=inout} +B 5 -2.5 57.5 2.5 62.5 {name=gnd dir=inout} +P 4 5 100 -40 -100 -40 -100 40 100 40 100 -40 {} +T {@symname} -44 -6 0 0 0.3 0.3 {} +T {@name} 45 -52 0 0 0.2 0.2 {} +T {Vo+} -95 -24 0 0 0.2 0.2 {} +T {Vo-} -95 16 0 0 0.2 0.2 {} +T {Vi+} 95 -16 2 0 0.2 0.2 {} +T {Vi-} 95 24 2 0 0.2 0.2 {} +T {vdd} 10 -39 0 1 0.2 0.2 {} +T {gnd} -10 34 2 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_03/conditions.yaml b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_03/conditions.yaml new file mode 100644 index 00000000..b8a61493 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_03/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice +N: 3 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: tt +filename: CML_core_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_03 +temperature: '27' +vdd: '0.8' diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_04/.spiceinit b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_04/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_04/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_04/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_04/CML_core_tb.sch new file mode 100644 index 00000000..1da7bc04 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_04/CML_core_tb.sch @@ -0,0 +1,71 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {} +V {} +S {} +E {} +N 740 -940 740 -920 {lab=GND} +N 740 -1090 740 -1060 {lab=VDD} +N 600 -1020 620 -1020 {lab=Vinplus} +N 600 -980 620 -980 {lab=Vinminus} +N 860 -1020 880 -1020 {lab=Voplus} +N 860 -980 880 -980 {lab=Vominus} +N 1150 -850 1150 -820 {lab=VDD} +N 1150 -760 1150 -730 {lab=GND} +N 930 -850 930 -820 {lab=Vinminus} +N 930 -760 930 -730 {lab=GND} +N 720 -850 720 -820 {lab=Vinplus} +N 720 -760 720 -730 {lab=GND} +C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write CML_core_tb.raw +set appendwrite +tran 10p 1n 160p + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_04/CML_core_tb_4.data vo_diff +quit + +.endc +"} +C {opin.sym} 880 -1020 2 1 {name=p6 lab=Voplus} +C {opin.sym} 880 -980 0 0 {name=p9 lab=Vominus} +C {devices/code_shown.sym} 10 -620 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_ff + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice + +.temp 27 +" +} +C {iopin.sym} 740 -1090 0 1 {name=p2 lab=VDD} +C {ipin.sym} 600 -1020 2 1 {name=p4 lab=Vinplus} +C {ipin.sym} 600 -980 2 1 {name=p1 lab=Vinminus} +C {CML_divider.sym} 740 -1000 0 1 {name=x1} +C {vsource.sym} 1150 -790 0 0 {name=V1 value=0.8 savecurrent=false} +C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} +C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} +C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 0.3 10G 0 0 0)" savecurrent=false} +C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 0.3 10G 0 0 180)" savecurrent=false} +C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_04/CML_core_tb_4.data b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_04/CML_core_tb_4.data new file mode 100644 index 00000000..8dbaf881 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_04/CML_core_tb_4.data @@ -0,0 +1,85 @@ + 1.628000000000e-10 -2.482257947455e-01 + 1.728000000000e-10 -3.259266550035e-02 + 1.828000000000e-10 1.930322087844e-01 + 1.928000000000e-10 3.960886599474e-01 + 2.028000000000e-10 5.450058997505e-01 + 2.128000000000e-10 6.360387116800e-01 + 2.228000000000e-10 6.712975422190e-01 + 2.328000000000e-10 6.474938983982e-01 + 2.428000000000e-10 5.679706274704e-01 + 2.528000000000e-10 4.364781736218e-01 + 2.628000000000e-10 2.536409133725e-01 + 2.728000000000e-10 3.555786929817e-02 + 2.828000000000e-10 -1.919150168478e-01 + 2.928000000000e-10 -3.960490843585e-01 + 3.028000000000e-10 -5.456465197220e-01 + 3.128000000000e-10 -6.367232933250e-01 + 3.228000000000e-10 -6.725166925877e-01 + 3.328000000000e-10 -6.491812984547e-01 + 3.428000000000e-10 -5.701612342484e-01 + 3.528000000000e-10 -4.386195239579e-01 + 3.628000000000e-10 -2.558666299298e-01 + 3.728000000000e-10 -3.750940439386e-02 + 3.828000000000e-10 1.900731677010e-01 + 3.928000000000e-10 3.947279065049e-01 + 4.028000000000e-10 5.446879536498e-01 + 4.128000000000e-10 6.362937598492e-01 + 4.228000000000e-10 6.723764816130e-01 + 4.328000000000e-10 6.495551727740e-01 + 4.428000000000e-10 5.706690754638e-01 + 4.528000000000e-10 4.393690386281e-01 + 4.628000000000e-10 2.565445890136e-01 + 4.728000000000e-10 3.828939038748e-02 + 4.828000000000e-10 -1.894747026650e-01 + 4.928000000000e-10 -3.941469427019e-01 + 5.028000000000e-10 -5.443881652157e-01 + 5.128000000000e-10 -6.360424686566e-01 + 5.228000000000e-10 -6.723795425302e-01 + 5.328000000000e-10 -6.495951074105e-01 + 5.428000000000e-10 -5.709049111673e-01 + 5.528000000000e-10 -4.395480856777e-01 + 5.628000000000e-10 -2.568451405700e-01 + 5.728000000000e-10 -3.848386295174e-02 + 5.828000000000e-10 1.891998017504e-01 + 5.928000000000e-10 3.940128253458e-01 + 6.028000000000e-10 5.442195759360e-01 + 6.128000000000e-10 6.360190076123e-01 + 6.228000000000e-10 6.723154692419e-01 + 6.328000000000e-10 6.496722035130e-01 + 6.428000000000e-10 5.709215560836e-01 + 6.528000000000e-10 4.396716365902e-01 + 6.628000000000e-10 2.568848555761e-01 + 6.728000000000e-10 3.861258812938e-02 + 6.828000000000e-10 -1.891673406027e-01 + 6.928000000000e-10 -3.939096487469e-01 + 7.028000000000e-10 -5.442185154541e-01 + 7.128000000000e-10 -6.359555029215e-01 + 7.228000000000e-10 -6.723494769467e-01 + 7.328000000000e-10 -6.496420384079e-01 + 7.428000000000e-10 -5.709822816025e-01 + 7.528000000000e-10 -4.396582995671e-01 + 7.628000000000e-10 -2.569529185106e-01 + 7.728000000000e-10 -3.860128053097e-02 + 7.828000000000e-10 1.891028165048e-01 + 7.928000000000e-10 3.939252197739e-01 + 8.028000000000e-10 5.441685861906e-01 + 8.128000000000e-10 6.359828023137e-01 + 8.228000000000e-10 6.723118712615e-01 + 8.328000000000e-10 6.496812709937e-01 + 8.428000000000e-10 5.709544657577e-01 + 8.528000000000e-10 4.397022527784e-01 + 8.628000000000e-10 2.569280980597e-01 + 8.728000000000e-10 3.864565597286e-02 + 8.828000000000e-10 -1.891278298806e-01 + 8.928000000000e-10 -3.938862165142e-01 + 9.028000000000e-10 -5.441949734698e-01 + 9.128000000000e-10 -6.359493781265e-01 + 9.228000000000e-10 -6.723420888760e-01 + 9.328000000000e-10 -6.496512561522e-01 + 9.428000000000e-10 -5.709874488604e-01 + 9.528000000000e-10 -4.396746422576e-01 + 9.628000000000e-10 -2.569616958772e-01 + 9.728000000000e-10 -3.861839939192e-02 + 9.828000000000e-10 1.890951489097e-01 + 9.928000000000e-10 3.939119089870e-01 + 1.000000000000e-09 5.081084039478e-01 diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_04/CML_divider.sym b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_04/CML_divider.sym new file mode 100644 index 00000000..e46eb233 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_04/CML_divider.sym @@ -0,0 +1,30 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 -120 -20 -100 -20 {} +L 4 -120 20 -100 20 {} +L 4 100 -20 120 -20 {} +L 4 100 20 120 20 {} +L 7 0 -60 0 -40 {} +L 7 0 40 0 60 {} +B 5 -122.5 -22.5 -117.5 -17.5 {name=Vo+ dir=out} +B 5 -122.5 17.5 -117.5 22.5 {name=Vo- dir=out} +B 5 117.5 -22.5 122.5 -17.5 {name=Vi+ dir=in} +B 5 117.5 17.5 122.5 22.5 {name=Vi- dir=in} +B 5 -2.5 -62.5 2.5 -57.5 {name=vdd dir=inout} +B 5 -2.5 57.5 2.5 62.5 {name=gnd dir=inout} +P 4 5 100 -40 -100 -40 -100 40 100 40 100 -40 {} +T {@symname} -44 -6 0 0 0.3 0.3 {} +T {@name} 45 -52 0 0 0.2 0.2 {} +T {Vo+} -95 -24 0 0 0.2 0.2 {} +T {Vo-} -95 16 0 0 0.2 0.2 {} +T {Vi+} 95 -16 2 0 0.2 0.2 {} +T {Vi-} 95 24 2 0 0.2 0.2 {} +T {vdd} 10 -39 0 1 0.2 0.2 {} +T {gnd} -10 34 2 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_04/conditions.yaml b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_04/conditions.yaml new file mode 100644 index 00000000..0fc6562b --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_04/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice +N: 4 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: ff +filename: CML_core_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_04 +temperature: '27' +vdd: '0.8' diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_05/.spiceinit b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_05/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_05/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_05/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_05/CML_core_tb.sch new file mode 100644 index 00000000..2c044836 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_05/CML_core_tb.sch @@ -0,0 +1,71 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {} +V {} +S {} +E {} +N 740 -940 740 -920 {lab=GND} +N 740 -1090 740 -1060 {lab=VDD} +N 600 -1020 620 -1020 {lab=Vinplus} +N 600 -980 620 -980 {lab=Vinminus} +N 860 -1020 880 -1020 {lab=Voplus} +N 860 -980 880 -980 {lab=Vominus} +N 1150 -850 1150 -820 {lab=VDD} +N 1150 -760 1150 -730 {lab=GND} +N 930 -850 930 -820 {lab=Vinminus} +N 930 -760 930 -730 {lab=GND} +N 720 -850 720 -820 {lab=Vinplus} +N 720 -760 720 -730 {lab=GND} +C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write CML_core_tb.raw +set appendwrite +tran 10p 1n 160p + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_05/CML_core_tb_5.data vo_diff +quit + +.endc +"} +C {opin.sym} 880 -1020 2 1 {name=p6 lab=Voplus} +C {opin.sym} 880 -980 0 0 {name=p9 lab=Vominus} +C {devices/code_shown.sym} 10 -620 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_ss + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice + +.temp 27 +" +} +C {iopin.sym} 740 -1090 0 1 {name=p2 lab=VDD} +C {ipin.sym} 600 -1020 2 1 {name=p4 lab=Vinplus} +C {ipin.sym} 600 -980 2 1 {name=p1 lab=Vinminus} +C {CML_divider.sym} 740 -1000 0 1 {name=x1} +C {vsource.sym} 1150 -790 0 0 {name=V1 value=0.8 savecurrent=false} +C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} +C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} +C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 0.3 10G 0 0 0)" savecurrent=false} +C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 0.3 10G 0 0 180)" savecurrent=false} +C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_05/CML_core_tb_5.data b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_05/CML_core_tb_5.data new file mode 100644 index 00000000..72d71163 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_05/CML_core_tb_5.data @@ -0,0 +1,85 @@ + 1.628000000000e-10 -3.026592886865e-01 + 1.728000000000e-10 -8.046058591213e-02 + 1.828000000000e-10 1.560684489845e-01 + 1.928000000000e-10 3.758215815324e-01 + 2.028000000000e-10 5.441825187720e-01 + 2.128000000000e-10 6.527787402061e-01 + 2.228000000000e-10 7.054162779080e-01 + 2.328000000000e-10 6.966940307878e-01 + 2.428000000000e-10 6.251719997267e-01 + 2.528000000000e-10 4.948986245243e-01 + 2.628000000000e-10 3.088338841037e-01 + 2.728000000000e-10 8.463582249819e-02 + 2.828000000000e-10 -1.534379373390e-01 + 2.928000000000e-10 -3.742382678981e-01 + 3.028000000000e-10 -5.437587344983e-01 + 3.128000000000e-10 -6.527795869025e-01 + 3.228000000000e-10 -7.060578401775e-01 + 3.328000000000e-10 -6.977288800308e-01 + 3.428000000000e-10 -6.267241220561e-01 + 3.528000000000e-10 -4.964034573067e-01 + 3.628000000000e-10 -3.104523257846e-01 + 3.728000000000e-10 -8.599843693100e-02 + 3.828000000000e-10 1.520614001089e-01 + 3.928000000000e-10 3.732327292359e-01 + 4.028000000000e-10 5.429530946109e-01 + 4.128000000000e-10 6.523997728799e-01 + 4.228000000000e-10 7.058202145507e-01 + 4.328000000000e-10 6.979022558405e-01 + 4.428000000000e-10 6.269588593419e-01 + 4.528000000000e-10 4.968624227466e-01 + 4.628000000000e-10 3.108132149603e-01 + 4.728000000000e-10 8.648038785746e-02 + 4.828000000000e-10 -1.517384677919e-01 + 4.928000000000e-10 -3.728474794484e-01 + 5.028000000000e-10 -5.427866011842e-01 + 5.128000000000e-10 -6.522022614009e-01 + 5.228000000000e-10 -7.058208822479e-01 + 5.328000000000e-10 -6.978651082200e-01 + 5.428000000000e-10 -6.270935668997e-01 + 5.528000000000e-10 -4.969096569281e-01 + 5.628000000000e-10 -3.109835748750e-01 + 5.728000000000e-10 -8.653572716924e-02 + 5.828000000000e-10 1.515778681972e-01 + 5.928000000000e-10 3.728127447205e-01 + 6.028000000000e-10 5.426739415091e-01 + 6.128000000000e-10 6.522162007318e-01 + 6.228000000000e-10 7.057544179932e-01 + 6.328000000000e-10 6.979224304337e-01 + 6.428000000000e-10 6.270641898671e-01 + 6.528000000000e-10 4.969874144680e-01 + 6.628000000000e-10 3.109648292365e-01 + 6.728000000000e-10 8.661535651254e-02 + 6.828000000000e-10 -1.515990397030e-01 + 6.928000000000e-10 -3.727433125293e-01 + 7.028000000000e-10 -5.427028559119e-01 + 7.128000000000e-10 -6.521615488134e-01 + 7.228000000000e-10 -7.057946841560e-01 + 7.328000000000e-10 -6.978790263426e-01 + 7.428000000000e-10 -6.271133848792e-01 + 7.528000000000e-10 -4.969513861012e-01 + 7.628000000000e-10 -3.110159233563e-01 + 7.728000000000e-10 -8.658006676818e-02 + 7.828000000000e-10 1.515487071721e-01 + 7.928000000000e-10 3.727772980737e-01 + 8.028000000000e-10 5.426589701450e-01 + 8.128000000000e-10 6.521979789832e-01 + 8.228000000000e-10 7.057547305503e-01 + 8.328000000000e-10 6.979187185021e-01 + 8.428000000000e-10 6.270767072939e-01 + 8.528000000000e-10 4.969913946096e-01 + 8.628000000000e-10 3.109805885282e-01 + 8.728000000000e-10 8.662004567696e-02 + 8.828000000000e-10 -1.515841004471e-01 + 8.928000000000e-10 -3.727405314049e-01 + 9.028000000000e-10 -5.426922302859e-01 + 9.128000000000e-10 -6.521632231968e-01 + 9.228000000000e-10 -7.057882763540e-01 + 9.328000000000e-10 -6.978845659833e-01 + 9.428000000000e-10 -6.271103709374e-01 + 9.528000000000e-10 -4.969587868574e-01 + 9.628000000000e-10 -3.110138943909e-01 + 9.728000000000e-10 -8.658760475646e-02 + 9.828000000000e-10 1.515508999036e-01 + 9.928000000000e-10 3.727707590510e-01 + 1.000000000000e-09 5.012730784879e-01 diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_05/CML_divider.sym b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_05/CML_divider.sym new file mode 100644 index 00000000..e46eb233 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_05/CML_divider.sym @@ -0,0 +1,30 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 -120 -20 -100 -20 {} +L 4 -120 20 -100 20 {} +L 4 100 -20 120 -20 {} +L 4 100 20 120 20 {} +L 7 0 -60 0 -40 {} +L 7 0 40 0 60 {} +B 5 -122.5 -22.5 -117.5 -17.5 {name=Vo+ dir=out} +B 5 -122.5 17.5 -117.5 22.5 {name=Vo- dir=out} +B 5 117.5 -22.5 122.5 -17.5 {name=Vi+ dir=in} +B 5 117.5 17.5 122.5 22.5 {name=Vi- dir=in} +B 5 -2.5 -62.5 2.5 -57.5 {name=vdd dir=inout} +B 5 -2.5 57.5 2.5 62.5 {name=gnd dir=inout} +P 4 5 100 -40 -100 -40 -100 40 100 40 100 -40 {} +T {@symname} -44 -6 0 0 0.3 0.3 {} +T {@name} 45 -52 0 0 0.2 0.2 {} +T {Vo+} -95 -24 0 0 0.2 0.2 {} +T {Vo-} -95 16 0 0 0.2 0.2 {} +T {Vi+} 95 -16 2 0 0.2 0.2 {} +T {Vi-} 95 24 2 0 0.2 0.2 {} +T {vdd} 10 -39 0 1 0.2 0.2 {} +T {gnd} -10 34 2 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_05/conditions.yaml b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_05/conditions.yaml new file mode 100644 index 00000000..0ad1edf7 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_05/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice +N: 5 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: ss +filename: CML_core_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_05 +temperature: '27' +vdd: '0.8' diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_06/.spiceinit b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_06/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_06/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_06/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_06/CML_core_tb.sch new file mode 100644 index 00000000..6264c557 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_06/CML_core_tb.sch @@ -0,0 +1,71 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {} +V {} +S {} +E {} +N 740 -940 740 -920 {lab=GND} +N 740 -1090 740 -1060 {lab=VDD} +N 600 -1020 620 -1020 {lab=Vinplus} +N 600 -980 620 -980 {lab=Vinminus} +N 860 -1020 880 -1020 {lab=Voplus} +N 860 -980 880 -980 {lab=Vominus} +N 1150 -850 1150 -820 {lab=VDD} +N 1150 -760 1150 -730 {lab=GND} +N 930 -850 930 -820 {lab=Vinminus} +N 930 -760 930 -730 {lab=GND} +N 720 -850 720 -820 {lab=Vinplus} +N 720 -760 720 -730 {lab=GND} +C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write CML_core_tb.raw +set appendwrite +tran 10p 1n 160p + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_06/CML_core_tb_6.data vo_diff +quit + +.endc +"} +C {opin.sym} 880 -1020 2 1 {name=p6 lab=Voplus} +C {opin.sym} 880 -980 0 0 {name=p9 lab=Vominus} +C {devices/code_shown.sym} 10 -620 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_tt + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice + +.temp 80 +" +} +C {iopin.sym} 740 -1090 0 1 {name=p2 lab=VDD} +C {ipin.sym} 600 -1020 2 1 {name=p4 lab=Vinplus} +C {ipin.sym} 600 -980 2 1 {name=p1 lab=Vinminus} +C {CML_divider.sym} 740 -1000 0 1 {name=x1} +C {vsource.sym} 1150 -790 0 0 {name=V1 value=0.8 savecurrent=false} +C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} +C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} +C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 0.3 10G 0 0 0)" savecurrent=false} +C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 0.3 10G 0 0 180)" savecurrent=false} +C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_06/CML_core_tb_6.data b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_06/CML_core_tb_6.data new file mode 100644 index 00000000..2ac25b32 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_06/CML_core_tb_6.data @@ -0,0 +1,85 @@ + 1.628000000000e-10 -2.658991355482e-01 + 1.728000000000e-10 -5.658971746101e-02 + 1.828000000000e-10 1.665652322471e-01 + 1.928000000000e-10 3.726189743475e-01 + 2.028000000000e-10 5.303705116758e-01 + 2.128000000000e-10 6.287796796090e-01 + 2.228000000000e-10 6.685380236864e-01 + 2.328000000000e-10 6.490234756137e-01 + 2.428000000000e-10 5.737092070140e-01 + 2.528000000000e-10 4.474825535463e-01 + 2.628000000000e-10 2.725242795062e-01 + 2.728000000000e-10 6.117177433707e-02 + 2.828000000000e-10 -1.637031734923e-01 + 2.928000000000e-10 -3.708935568747e-01 + 3.028000000000e-10 -5.297756369707e-01 + 3.128000000000e-10 -6.287017384995e-01 + 3.228000000000e-10 -6.693265533929e-01 + 3.328000000000e-10 -6.504570398323e-01 + 3.428000000000e-10 -5.758168078022e-01 + 3.528000000000e-10 -4.496242973413e-01 + 3.628000000000e-10 -2.747981275605e-01 + 3.728000000000e-10 -6.319393908833e-02 + 3.828000000000e-10 1.617439470913e-01 + 3.928000000000e-10 3.694169588634e-01 + 4.028000000000e-10 5.286499307585e-01 + 4.128000000000e-10 6.281722098808e-01 + 4.228000000000e-10 6.691184385543e-01 + 4.328000000000e-10 6.507901751637e-01 + 4.428000000000e-10 5.762974118946e-01 + 4.528000000000e-10 4.503608294114e-01 + 4.628000000000e-10 2.754522690623e-01 + 4.728000000000e-10 6.396306731359e-02 + 4.828000000000e-10 -1.611542650007e-01 + 4.928000000000e-10 -3.688169747432e-01 + 5.028000000000e-10 -5.283292872594e-01 + 5.128000000000e-10 -6.279003852563e-01 + 5.228000000000e-10 -6.691136918962e-01 + 5.328000000000e-10 -6.508124831570e-01 + 5.428000000000e-10 -5.765249280825e-01 + 5.528000000000e-10 -4.505225248069e-01 + 5.628000000000e-10 -2.757393848954e-01 + 5.728000000000e-10 -6.413835118523e-02 + 5.828000000000e-10 1.608879015274e-01 + 5.928000000000e-10 3.686909867212e-01 + 6.028000000000e-10 5.281558224884e-01 + 6.128000000000e-10 6.278785795680e-01 + 6.228000000000e-10 6.690442760911e-01 + 6.328000000000e-10 6.508870303825e-01 + 6.428000000000e-10 5.765321271449e-01 + 6.528000000000e-10 4.506407637839e-01 + 6.628000000000e-10 2.757670228304e-01 + 6.728000000000e-10 6.426080532693e-02 + 6.828000000000e-10 -1.608659404084e-01 + 6.928000000000e-10 -3.685888330346e-01 + 7.028000000000e-10 -5.281591419234e-01 + 7.128000000000e-10 -6.278127091451e-01 + 7.228000000000e-10 -6.690805910819e-01 + 7.328000000000e-10 -6.508520944992e-01 + 7.428000000000e-10 -5.765925476372e-01 + 7.528000000000e-10 -4.506215704207e-01 + 7.628000000000e-10 -2.758332595929e-01 + 7.728000000000e-10 -6.424327491403e-02 + 7.828000000000e-10 1.608024320318e-01 + 7.928000000000e-10 3.686091606456e-01 + 8.028000000000e-10 5.281080947303e-01 + 8.128000000000e-10 6.278426474070e-01 + 8.228000000000e-10 6.690409470235e-01 + 8.328000000000e-10 6.508923982303e-01 + 8.428000000000e-10 5.765614162070e-01 + 8.528000000000e-10 4.506656063053e-01 + 8.628000000000e-10 2.758047260180e-01 + 8.728000000000e-10 6.428762429922e-02 + 8.828000000000e-10 -1.608310872580e-01 + 8.928000000000e-10 -3.685690211775e-01 + 9.028000000000e-10 -5.281370864240e-01 + 9.128000000000e-10 -6.278075066251e-01 + 9.228000000000e-10 -6.690730291835e-01 + 9.328000000000e-10 -6.508603444096e-01 + 9.428000000000e-10 -5.765956636587e-01 + 9.528000000000e-10 -4.506359555730e-01 + 9.628000000000e-10 -2.758391852585e-01 + 9.728000000000e-10 -6.425829353036e-02 + 9.828000000000e-10 1.607973448132e-01 + 9.928000000000e-10 3.685968285070e-01 + 1.000000000000e-09 4.894958047088e-01 diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_06/CML_divider.sym b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_06/CML_divider.sym new file mode 100644 index 00000000..e46eb233 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_06/CML_divider.sym @@ -0,0 +1,30 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 -120 -20 -100 -20 {} +L 4 -120 20 -100 20 {} +L 4 100 -20 120 -20 {} +L 4 100 20 120 20 {} +L 7 0 -60 0 -40 {} +L 7 0 40 0 60 {} +B 5 -122.5 -22.5 -117.5 -17.5 {name=Vo+ dir=out} +B 5 -122.5 17.5 -117.5 22.5 {name=Vo- dir=out} +B 5 117.5 -22.5 122.5 -17.5 {name=Vi+ dir=in} +B 5 117.5 17.5 122.5 22.5 {name=Vi- dir=in} +B 5 -2.5 -62.5 2.5 -57.5 {name=vdd dir=inout} +B 5 -2.5 57.5 2.5 62.5 {name=gnd dir=inout} +P 4 5 100 -40 -100 -40 -100 40 100 40 100 -40 {} +T {@symname} -44 -6 0 0 0.3 0.3 {} +T {@name} 45 -52 0 0 0.2 0.2 {} +T {Vo+} -95 -24 0 0 0.2 0.2 {} +T {Vo-} -95 16 0 0 0.2 0.2 {} +T {Vi+} 95 -16 2 0 0.2 0.2 {} +T {Vi-} 95 24 2 0 0.2 0.2 {} +T {vdd} 10 -39 0 1 0.2 0.2 {} +T {gnd} -10 34 2 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_06/conditions.yaml b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_06/conditions.yaml new file mode 100644 index 00000000..36f5013b --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_06/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice +N: 6 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: tt +filename: CML_core_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_06 +temperature: '80' +vdd: '0.8' diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_07/.spiceinit b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_07/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_07/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_07/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_07/CML_core_tb.sch new file mode 100644 index 00000000..a5abe997 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_07/CML_core_tb.sch @@ -0,0 +1,71 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {} +V {} +S {} +E {} +N 740 -940 740 -920 {lab=GND} +N 740 -1090 740 -1060 {lab=VDD} +N 600 -1020 620 -1020 {lab=Vinplus} +N 600 -980 620 -980 {lab=Vinminus} +N 860 -1020 880 -1020 {lab=Voplus} +N 860 -980 880 -980 {lab=Vominus} +N 1150 -850 1150 -820 {lab=VDD} +N 1150 -760 1150 -730 {lab=GND} +N 930 -850 930 -820 {lab=Vinminus} +N 930 -760 930 -730 {lab=GND} +N 720 -850 720 -820 {lab=Vinplus} +N 720 -760 720 -730 {lab=GND} +C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write CML_core_tb.raw +set appendwrite +tran 10p 1n 160p + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_07/CML_core_tb_7.data vo_diff +quit + +.endc +"} +C {opin.sym} 880 -1020 2 1 {name=p6 lab=Voplus} +C {opin.sym} 880 -980 0 0 {name=p9 lab=Vominus} +C {devices/code_shown.sym} 10 -620 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_ff + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice + +.temp 80 +" +} +C {iopin.sym} 740 -1090 0 1 {name=p2 lab=VDD} +C {ipin.sym} 600 -1020 2 1 {name=p4 lab=Vinplus} +C {ipin.sym} 600 -980 2 1 {name=p1 lab=Vinminus} +C {CML_divider.sym} 740 -1000 0 1 {name=x1} +C {vsource.sym} 1150 -790 0 0 {name=V1 value=0.8 savecurrent=false} +C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} +C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} +C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 0.3 10G 0 0 0)" savecurrent=false} +C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 0.3 10G 0 0 180)" savecurrent=false} +C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_07/CML_core_tb_7.data b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_07/CML_core_tb_7.data new file mode 100644 index 00000000..8cc8eec2 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_07/CML_core_tb_7.data @@ -0,0 +1,85 @@ + 1.628000000000e-10 -2.411371086013e-01 + 1.728000000000e-10 -3.745255924116e-02 + 1.828000000000e-10 1.789428987452e-01 + 1.928000000000e-10 3.769558934840e-01 + 2.028000000000e-10 5.255858783541e-01 + 2.128000000000e-10 6.150086513683e-01 + 2.228000000000e-10 6.463506095909e-01 + 2.328000000000e-10 6.202014565113e-01 + 2.428000000000e-10 5.417075102450e-01 + 2.528000000000e-10 4.161519970610e-01 + 2.628000000000e-10 2.448960905686e-01 + 2.728000000000e-10 3.892968213965e-02 + 2.828000000000e-10 -1.791505445505e-01 + 2.928000000000e-10 -3.778686664383e-01 + 3.028000000000e-10 -5.268093330033e-01 + 3.128000000000e-10 -6.159877416348e-01 + 3.228000000000e-10 -6.476195951568e-01 + 3.328000000000e-10 -6.216667221790e-01 + 3.428000000000e-10 -5.435382878554e-01 + 3.528000000000e-10 -4.178448923887e-01 + 3.628000000000e-10 -2.466531390426e-01 + 3.728000000000e-10 -4.041876256606e-02 + 3.828000000000e-10 1.777092594525e-01 + 3.928000000000e-10 3.768542192180e-01 + 4.028000000000e-10 5.260351926041e-01 + 4.128000000000e-10 6.156923491854e-01 + 4.228000000000e-10 6.475364165656e-01 + 4.328000000000e-10 6.220253224816e-01 + 4.428000000000e-10 5.439681165412e-01 + 4.528000000000e-10 4.184919515643e-01 + 4.628000000000e-10 2.472032785778e-01 + 4.728000000000e-10 4.108392377197e-02 + 4.828000000000e-10 -1.772209974541e-01 + 4.928000000000e-10 -3.763464849454e-01 + 5.028000000000e-10 -5.257893585276e-01 + 5.128000000000e-10 -6.154751208437e-01 + 5.228000000000e-10 -6.475677164184e-01 + 5.328000000000e-10 -6.220637777790e-01 + 5.428000000000e-10 -5.441970040997e-01 + 5.528000000000e-10 -4.186454653208e-01 + 5.628000000000e-10 -2.474812841152e-01 + 5.728000000000e-10 -4.124875776275e-02 + 5.828000000000e-10 1.769646369358e-01 + 5.928000000000e-10 3.762321495571e-01 + 6.028000000000e-10 5.256270530622e-01 + 6.128000000000e-10 6.154644314175e-01 + 6.228000000000e-10 6.475079392204e-01 + 6.328000000000e-10 6.221477255403e-01 + 6.428000000000e-10 5.442104878297e-01 + 6.528000000000e-10 4.187701859554e-01 + 6.628000000000e-10 2.475138621783e-01 + 6.728000000000e-10 4.137738638918e-02 + 6.828000000000e-10 -1.769383615791e-01 + 6.928000000000e-10 -3.761265802968e-01 + 7.028000000000e-10 -5.256298366366e-01 + 7.128000000000e-10 -6.153992750277e-01 + 7.228000000000e-10 -6.475476374408e-01 + 7.328000000000e-10 -6.221164421539e-01 + 7.428000000000e-10 -5.442762390873e-01 + 7.528000000000e-10 -4.187551150856e-01 + 7.628000000000e-10 -2.475858208222e-01 + 7.728000000000e-10 -4.136415856981e-02 + 7.828000000000e-10 1.768699557901e-01 + 7.928000000000e-10 3.761440347995e-01 + 8.028000000000e-10 5.255765528630e-01 + 8.128000000000e-10 6.154291154928e-01 + 8.228000000000e-10 6.475082015932e-01 + 8.328000000000e-10 6.221591874056e-01 + 8.428000000000e-10 5.442468649409e-01 + 8.528000000000e-10 4.188025713318e-01 + 8.628000000000e-10 2.475593730203e-01 + 8.728000000000e-10 4.141194467582e-02 + 8.828000000000e-10 -1.768965906206e-01 + 8.928000000000e-10 -3.761014263264e-01 + 9.028000000000e-10 -5.256047249426e-01 + 9.128000000000e-10 -6.153930400649e-01 + 9.228000000000e-10 -6.475410523019e-01 + 9.328000000000e-10 -6.221273229309e-01 + 9.428000000000e-10 -5.442828742825e-01 + 9.528000000000e-10 -4.187734552047e-01 + 9.628000000000e-10 -2.475958588134e-01 + 9.728000000000e-10 -4.138326223977e-02 + 9.828000000000e-10 1.768611473522e-01 + 9.928000000000e-10 3.761288017358e-01 + 1.000000000000e-09 4.898465656484e-01 diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_07/CML_divider.sym b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_07/CML_divider.sym new file mode 100644 index 00000000..e46eb233 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_07/CML_divider.sym @@ -0,0 +1,30 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 -120 -20 -100 -20 {} +L 4 -120 20 -100 20 {} +L 4 100 -20 120 -20 {} +L 4 100 20 120 20 {} +L 7 0 -60 0 -40 {} +L 7 0 40 0 60 {} +B 5 -122.5 -22.5 -117.5 -17.5 {name=Vo+ dir=out} +B 5 -122.5 17.5 -117.5 22.5 {name=Vo- dir=out} +B 5 117.5 -22.5 122.5 -17.5 {name=Vi+ dir=in} +B 5 117.5 17.5 122.5 22.5 {name=Vi- dir=in} +B 5 -2.5 -62.5 2.5 -57.5 {name=vdd dir=inout} +B 5 -2.5 57.5 2.5 62.5 {name=gnd dir=inout} +P 4 5 100 -40 -100 -40 -100 40 100 40 100 -40 {} +T {@symname} -44 -6 0 0 0.3 0.3 {} +T {@name} 45 -52 0 0 0.2 0.2 {} +T {Vo+} -95 -24 0 0 0.2 0.2 {} +T {Vo-} -95 16 0 0 0.2 0.2 {} +T {Vi+} 95 -16 2 0 0.2 0.2 {} +T {Vi-} 95 24 2 0 0.2 0.2 {} +T {vdd} 10 -39 0 1 0.2 0.2 {} +T {gnd} -10 34 2 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_07/conditions.yaml b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_07/conditions.yaml new file mode 100644 index 00000000..69575399 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_07/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice +N: 7 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: ff +filename: CML_core_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_07 +temperature: '80' +vdd: '0.8' diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_08/.spiceinit b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_08/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_08/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_08/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_08/CML_core_tb.sch new file mode 100644 index 00000000..85c2bca7 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_08/CML_core_tb.sch @@ -0,0 +1,71 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {} +V {} +S {} +E {} +N 740 -940 740 -920 {lab=GND} +N 740 -1090 740 -1060 {lab=VDD} +N 600 -1020 620 -1020 {lab=Vinplus} +N 600 -980 620 -980 {lab=Vinminus} +N 860 -1020 880 -1020 {lab=Voplus} +N 860 -980 880 -980 {lab=Vominus} +N 1150 -850 1150 -820 {lab=VDD} +N 1150 -760 1150 -730 {lab=GND} +N 930 -850 930 -820 {lab=Vinminus} +N 930 -760 930 -730 {lab=GND} +N 720 -850 720 -820 {lab=Vinplus} +N 720 -760 720 -730 {lab=GND} +C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write CML_core_tb.raw +set appendwrite +tran 10p 1n 160p + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_08/CML_core_tb_8.data vo_diff +quit + +.endc +"} +C {opin.sym} 880 -1020 2 1 {name=p6 lab=Voplus} +C {opin.sym} 880 -980 0 0 {name=p9 lab=Vominus} +C {devices/code_shown.sym} 10 -620 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_ss + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice + +.temp 80 +" +} +C {iopin.sym} 740 -1090 0 1 {name=p2 lab=VDD} +C {ipin.sym} 600 -1020 2 1 {name=p4 lab=Vinplus} +C {ipin.sym} 600 -980 2 1 {name=p1 lab=Vinminus} +C {CML_divider.sym} 740 -1000 0 1 {name=x1} +C {vsource.sym} 1150 -790 0 0 {name=V1 value=0.8 savecurrent=false} +C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} +C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} +C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 0.3 10G 0 0 0)" savecurrent=false} +C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 0.3 10G 0 0 180)" savecurrent=false} +C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_08/CML_core_tb_8.data b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_08/CML_core_tb_8.data new file mode 100644 index 00000000..2ec9911e --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_08/CML_core_tb_8.data @@ -0,0 +1,85 @@ + 1.628000000000e-10 -2.915574653990e-01 + 1.728000000000e-10 -8.207206468644e-02 + 1.828000000000e-10 1.443140454917e-01 + 1.928000000000e-10 3.578501059917e-01 + 2.028000000000e-10 5.264102614641e-01 + 2.128000000000e-10 6.356033847750e-01 + 2.228000000000e-10 6.852124516173e-01 + 2.328000000000e-10 6.731697751231e-01 + 2.428000000000e-10 6.014680860110e-01 + 2.528000000000e-10 4.762934940598e-01 + 2.628000000000e-10 3.019743151843e-01 + 2.728000000000e-10 9.052768843264e-02 + 2.828000000000e-10 -1.376882496508e-01 + 2.928000000000e-10 -3.528073773591e-01 + 3.028000000000e-10 -5.234244166185e-01 + 3.128000000000e-10 -6.340851318675e-01 + 3.228000000000e-10 -6.854084589569e-01 + 3.328000000000e-10 -6.747695956588e-01 + 3.428000000000e-10 -6.042844418494e-01 + 3.528000000000e-10 -4.793995649692e-01 + 3.628000000000e-10 -3.052822644166e-01 + 3.728000000000e-10 -9.358407685982e-02 + 3.828000000000e-10 1.347194202511e-01 + 3.928000000000e-10 3.504174847188e-01 + 4.028000000000e-10 5.215924623562e-01 + 4.128000000000e-10 6.330900225454e-01 + 4.228000000000e-10 6.849701135730e-01 + 4.328000000000e-10 6.751037342439e-01 + 4.428000000000e-10 6.049384750133e-01 + 4.528000000000e-10 4.803914109079e-01 + 4.628000000000e-10 3.062148923158e-01 + 4.728000000000e-10 9.463220881739e-02 + 4.828000000000e-10 -1.338572933423e-01 + 4.928000000000e-10 -3.495689260045e-01 + 5.028000000000e-10 -5.210792449240e-01 + 5.128000000000e-10 -6.326887195405e-01 + 5.228000000000e-10 -6.848983576670e-01 + 5.328000000000e-10 -6.751198274713e-01 + 5.428000000000e-10 -6.052060952211e-01 + 5.528000000000e-10 -4.806148207689e-01 + 5.628000000000e-10 -3.065686575138e-01 + 5.728000000000e-10 -9.487468231530e-02 + 5.828000000000e-10 1.335246601606e-01 + 5.928000000000e-10 3.493821792388e-01 + 6.028000000000e-10 5.208575371198e-01 + 6.128000000000e-10 6.326338805716e-01 + 6.228000000000e-10 6.848108600046e-01 + 6.328000000000e-10 6.751907109187e-01 + 6.428000000000e-10 6.052214841565e-01 + 6.528000000000e-10 4.807458450129e-01 + 6.628000000000e-10 3.066111422989e-01 + 6.728000000000e-10 9.501122064621e-02 + 6.828000000000e-10 -1.334882175614e-01 + 6.928000000000e-10 -3.492660352924e-01 + 7.028000000000e-10 -5.208495294585e-01 + 7.128000000000e-10 -6.325598499367e-01 + 7.228000000000e-10 -6.848421004985e-01 + 7.328000000000e-10 -6.751543080912e-01 + 7.428000000000e-10 -6.052828258645e-01 + 7.528000000000e-10 -4.807293659120e-01 + 7.628000000000e-10 -3.066794924108e-01 + 7.728000000000e-10 -9.499664108150e-02 + 7.828000000000e-10 1.334220275121e-01 + 7.928000000000e-10 3.492835018463e-01 + 8.028000000000e-10 5.207961769649e-01 + 8.128000000000e-10 6.325876998525e-01 + 8.228000000000e-10 6.848014468222e-01 + 8.328000000000e-10 6.751935994962e-01 + 8.428000000000e-10 6.052518981308e-01 + 8.528000000000e-10 4.807729857688e-01 + 8.628000000000e-10 3.066516205185e-01 + 8.728000000000e-10 9.504068447267e-02 + 8.828000000000e-10 -1.334502935734e-01 + 8.928000000000e-10 -3.492430994753e-01 + 9.028000000000e-10 -5.208246106410e-01 + 9.128000000000e-10 -6.325523513325e-01 + 9.228000000000e-10 -6.848328984481e-01 + 9.328000000000e-10 -6.751615848536e-01 + 9.428000000000e-10 -6.052856721640e-01 + 9.528000000000e-10 -4.807436971446e-01 + 9.628000000000e-10 -3.066854569150e-01 + 9.728000000000e-10 -9.501170247959e-02 + 9.828000000000e-10 1.334168358063e-01 + 9.928000000000e-10 3.492707284922e-01 + 1.000000000000e-09 4.787459694615e-01 diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_08/CML_divider.sym b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_08/CML_divider.sym new file mode 100644 index 00000000..e46eb233 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_08/CML_divider.sym @@ -0,0 +1,30 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 -120 -20 -100 -20 {} +L 4 -120 20 -100 20 {} +L 4 100 -20 120 -20 {} +L 4 100 20 120 20 {} +L 7 0 -60 0 -40 {} +L 7 0 40 0 60 {} +B 5 -122.5 -22.5 -117.5 -17.5 {name=Vo+ dir=out} +B 5 -122.5 17.5 -117.5 22.5 {name=Vo- dir=out} +B 5 117.5 -22.5 122.5 -17.5 {name=Vi+ dir=in} +B 5 117.5 17.5 122.5 22.5 {name=Vi- dir=in} +B 5 -2.5 -62.5 2.5 -57.5 {name=vdd dir=inout} +B 5 -2.5 57.5 2.5 62.5 {name=gnd dir=inout} +P 4 5 100 -40 -100 -40 -100 40 100 40 100 -40 {} +T {@symname} -44 -6 0 0 0.3 0.3 {} +T {@name} 45 -52 0 0 0.2 0.2 {} +T {Vo+} -95 -24 0 0 0.2 0.2 {} +T {Vo-} -95 16 0 0 0.2 0.2 {} +T {Vi+} 95 -16 2 0 0.2 0.2 {} +T {Vi-} 95 24 2 0 0.2 0.2 {} +T {vdd} 10 -39 0 1 0.2 0.2 {} +T {gnd} -10 34 2 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_08/conditions.yaml b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_08/conditions.yaml new file mode 100644 index 00000000..a0f14717 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_08/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice +N: 8 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: ss +filename: CML_core_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_08 +temperature: '80' +vdd: '0.8' diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_09/.spiceinit b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_09/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_09/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_09/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_09/CML_core_tb.sch new file mode 100644 index 00000000..6cbfd323 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_09/CML_core_tb.sch @@ -0,0 +1,71 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {} +V {} +S {} +E {} +N 740 -940 740 -920 {lab=GND} +N 740 -1090 740 -1060 {lab=VDD} +N 600 -1020 620 -1020 {lab=Vinplus} +N 600 -980 620 -980 {lab=Vinminus} +N 860 -1020 880 -1020 {lab=Voplus} +N 860 -980 880 -980 {lab=Vominus} +N 1150 -850 1150 -820 {lab=VDD} +N 1150 -760 1150 -730 {lab=GND} +N 930 -850 930 -820 {lab=Vinminus} +N 930 -760 930 -730 {lab=GND} +N 720 -850 720 -820 {lab=Vinplus} +N 720 -760 720 -730 {lab=GND} +C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write CML_core_tb.raw +set appendwrite +tran 10p 1n 160p + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_09/CML_core_tb_9.data vo_diff +quit + +.endc +"} +C {opin.sym} 880 -1020 2 1 {name=p6 lab=Voplus} +C {opin.sym} 880 -980 0 0 {name=p9 lab=Vominus} +C {devices/code_shown.sym} 10 -620 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_tt + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice + +.temp -40 +" +} +C {iopin.sym} 740 -1090 0 1 {name=p2 lab=VDD} +C {ipin.sym} 600 -1020 2 1 {name=p4 lab=Vinplus} +C {ipin.sym} 600 -980 2 1 {name=p1 lab=Vinminus} +C {CML_divider.sym} 740 -1000 0 1 {name=x1} +C {vsource.sym} 1150 -790 0 0 {name=V1 value=1.2 savecurrent=false} +C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} +C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} +C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 0.3 10G 0 0 0)" savecurrent=false} +C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 0.3 10G 0 0 180)" savecurrent=false} +C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_09/CML_core_tb_9.data b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_09/CML_core_tb_9.data new file mode 100644 index 00000000..1eb23e09 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_09/CML_core_tb_9.data @@ -0,0 +1,85 @@ + 1.628000000000e-10 -5.397443385003e-01 + 1.728000000000e-10 -2.045536352810e-01 + 1.828000000000e-10 1.313863393294e-01 + 1.928000000000e-10 3.838209275603e-01 + 2.028000000000e-10 5.347375940933e-01 + 2.128000000000e-10 6.276591932156e-01 + 2.228000000000e-10 7.115621702194e-01 + 2.328000000000e-10 7.798611559065e-01 + 2.428000000000e-10 8.066497785728e-01 + 2.528000000000e-10 7.447444131165e-01 + 2.628000000000e-10 5.331798214247e-01 + 2.728000000000e-10 1.991243487461e-01 + 2.828000000000e-10 -1.352153251063e-01 + 2.928000000000e-10 -3.864762984078e-01 + 3.028000000000e-10 -5.369168929595e-01 + 3.128000000000e-10 -6.290603792866e-01 + 3.228000000000e-10 -7.126196515736e-01 + 3.328000000000e-10 -7.804415576126e-01 + 3.428000000000e-10 -8.071911048716e-01 + 3.528000000000e-10 -7.450481751688e-01 + 3.628000000000e-10 -5.336055963763e-01 + 3.728000000000e-10 -1.993198332358e-01 + 3.828000000000e-10 1.349559401886e-01 + 3.928000000000e-10 3.864112742700e-01 + 4.028000000000e-10 5.367351878370e-01 + 4.128000000000e-10 6.290489992071e-01 + 4.228000000000e-10 7.124864782962e-01 + 4.328000000000e-10 7.804750739895e-01 + 4.428000000000e-10 8.070933947437e-01 + 4.528000000000e-10 7.451033689318e-01 + 4.628000000000e-10 5.335168975820e-01 + 4.728000000000e-10 1.993807368925e-01 + 4.828000000000e-10 -1.350304895400e-01 + 4.928000000000e-10 -3.863532554681e-01 + 5.028000000000e-10 -5.368040585560e-01 + 5.128000000000e-10 -6.289909078772e-01 + 5.228000000000e-10 -7.125533448218e-01 + 5.328000000000e-10 -7.804160897110e-01 + 5.428000000000e-10 -8.071554863663e-01 + 5.528000000000e-10 -7.450422465689e-01 + 5.628000000000e-10 -5.335838460974e-01 + 5.728000000000e-10 -1.993167730115e-01 + 5.828000000000e-10 1.349726890253e-01 + 5.928000000000e-10 3.864109858256e-01 + 6.028000000000e-10 5.367479691018e-01 + 6.128000000000e-10 6.290476980128e-01 + 6.228000000000e-10 7.124950121919e-01 + 6.328000000000e-10 7.804717191606e-01 + 6.428000000000e-10 8.070994779138e-01 + 6.528000000000e-10 7.450975613250e-01 + 6.628000000000e-10 5.335259065522e-01 + 6.728000000000e-10 1.993734548210e-01 + 6.828000000000e-10 -1.350242777574e-01 + 6.928000000000e-10 -3.863605033303e-01 + 7.028000000000e-10 -5.367975294074e-01 + 7.128000000000e-10 -6.289982763959e-01 + 7.228000000000e-10 -7.125455111440e-01 + 7.328000000000e-10 -7.804238043085e-01 + 7.428000000000e-10 -8.071473680780e-01 + 7.528000000000e-10 -7.450494772754e-01 + 7.628000000000e-10 -5.335773499054e-01 + 7.728000000000e-10 -1.993230348361e-01 + 7.828000000000e-10 1.349793746975e-01 + 7.928000000000e-10 3.864055722387e-01 + 8.028000000000e-10 5.367539279153e-01 + 8.128000000000e-10 6.290427569852e-01 + 8.228000000000e-10 7.125002063044e-01 + 8.328000000000e-10 7.804668926767e-01 + 8.428000000000e-10 8.071042297758e-01 + 8.528000000000e-10 7.450922570276e-01 + 8.628000000000e-10 5.335323457615e-01 + 8.728000000000e-10 1.993673584870e-01 + 8.828000000000e-10 -1.350193573750e-01 + 8.928000000000e-10 -3.863660901230e-01 + 9.028000000000e-10 -5.367925035482e-01 + 9.128000000000e-10 -6.290039875175e-01 + 9.228000000000e-10 -7.125398122704e-01 + 9.328000000000e-10 -7.804294363608e-01 + 9.428000000000e-10 -8.071416857778e-01 + 9.528000000000e-10 -7.450548065452e-01 + 9.628000000000e-10 -5.335722743766e-01 + 9.728000000000e-10 -1.993280329539e-01 + 9.828000000000e-10 1.349843549639e-01 + 9.928000000000e-10 3.864011317450e-01 + 1.000000000000e-09 5.028020863733e-01 diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_09/CML_divider.sym b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_09/CML_divider.sym new file mode 100644 index 00000000..e46eb233 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_09/CML_divider.sym @@ -0,0 +1,30 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 -120 -20 -100 -20 {} +L 4 -120 20 -100 20 {} +L 4 100 -20 120 -20 {} +L 4 100 20 120 20 {} +L 7 0 -60 0 -40 {} +L 7 0 40 0 60 {} +B 5 -122.5 -22.5 -117.5 -17.5 {name=Vo+ dir=out} +B 5 -122.5 17.5 -117.5 22.5 {name=Vo- dir=out} +B 5 117.5 -22.5 122.5 -17.5 {name=Vi+ dir=in} +B 5 117.5 17.5 122.5 22.5 {name=Vi- dir=in} +B 5 -2.5 -62.5 2.5 -57.5 {name=vdd dir=inout} +B 5 -2.5 57.5 2.5 62.5 {name=gnd dir=inout} +P 4 5 100 -40 -100 -40 -100 40 100 40 100 -40 {} +T {@symname} -44 -6 0 0 0.3 0.3 {} +T {@name} 45 -52 0 0 0.2 0.2 {} +T {Vo+} -95 -24 0 0 0.2 0.2 {} +T {Vo-} -95 16 0 0 0.2 0.2 {} +T {Vi+} 95 -16 2 0 0.2 0.2 {} +T {Vi-} 95 24 2 0 0.2 0.2 {} +T {vdd} 10 -39 0 1 0.2 0.2 {} +T {gnd} -10 34 2 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_09/conditions.yaml b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_09/conditions.yaml new file mode 100644 index 00000000..25163809 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_09/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice +N: 9 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: tt +filename: CML_core_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_09 +temperature: '-40' +vdd: '1.2' diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_10/.spiceinit b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_10/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_10/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_10/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_10/CML_core_tb.sch new file mode 100644 index 00000000..c13e9c20 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_10/CML_core_tb.sch @@ -0,0 +1,71 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {} +V {} +S {} +E {} +N 740 -940 740 -920 {lab=GND} +N 740 -1090 740 -1060 {lab=VDD} +N 600 -1020 620 -1020 {lab=Vinplus} +N 600 -980 620 -980 {lab=Vinminus} +N 860 -1020 880 -1020 {lab=Voplus} +N 860 -980 880 -980 {lab=Vominus} +N 1150 -850 1150 -820 {lab=VDD} +N 1150 -760 1150 -730 {lab=GND} +N 930 -850 930 -820 {lab=Vinminus} +N 930 -760 930 -730 {lab=GND} +N 720 -850 720 -820 {lab=Vinplus} +N 720 -760 720 -730 {lab=GND} +C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write CML_core_tb.raw +set appendwrite +tran 10p 1n 160p + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_10/CML_core_tb_10.data vo_diff +quit + +.endc +"} +C {opin.sym} 880 -1020 2 1 {name=p6 lab=Voplus} +C {opin.sym} 880 -980 0 0 {name=p9 lab=Vominus} +C {devices/code_shown.sym} 10 -620 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_ff + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice + +.temp -40 +" +} +C {iopin.sym} 740 -1090 0 1 {name=p2 lab=VDD} +C {ipin.sym} 600 -1020 2 1 {name=p4 lab=Vinplus} +C {ipin.sym} 600 -980 2 1 {name=p1 lab=Vinminus} +C {CML_divider.sym} 740 -1000 0 1 {name=x1} +C {vsource.sym} 1150 -790 0 0 {name=V1 value=1.2 savecurrent=false} +C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} +C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} +C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 0.3 10G 0 0 0)" savecurrent=false} +C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 0.3 10G 0 0 180)" savecurrent=false} +C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_10/CML_core_tb_10.data b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_10/CML_core_tb_10.data new file mode 100644 index 00000000..973ede5e --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_10/CML_core_tb_10.data @@ -0,0 +1,85 @@ + 1.628000000000e-10 -5.293189432094e-01 + 1.728000000000e-10 -2.034299929592e-01 + 1.828000000000e-10 1.254532736892e-01 + 1.928000000000e-10 3.744603520131e-01 + 2.028000000000e-10 5.220595086358e-01 + 2.128000000000e-10 6.139346231694e-01 + 2.228000000000e-10 6.977077768020e-01 + 2.328000000000e-10 7.638951530454e-01 + 2.428000000000e-10 7.881008470503e-01 + 2.528000000000e-10 7.271434956617e-01 + 2.628000000000e-10 5.227259392947e-01 + 2.728000000000e-10 1.977807095317e-01 + 2.828000000000e-10 -1.296557480667e-01 + 2.928000000000e-10 -3.774966254092e-01 + 3.028000000000e-10 -5.245506032311e-01 + 3.128000000000e-10 -6.155925798862e-01 + 3.228000000000e-10 -6.989490114600e-01 + 3.328000000000e-10 -7.646204924296e-01 + 3.428000000000e-10 -7.887093478172e-01 + 3.528000000000e-10 -7.274783648153e-01 + 3.628000000000e-10 -5.231513423786e-01 + 3.728000000000e-10 -1.979863018154e-01 + 3.828000000000e-10 1.294013660930e-01 + 3.928000000000e-10 3.774276121382e-01 + 4.028000000000e-10 5.243833105689e-01 + 4.128000000000e-10 6.155813660155e-01 + 4.228000000000e-10 6.988272077165e-01 + 4.328000000000e-10 7.646509984988e-01 + 4.428000000000e-10 7.886185007607e-01 + 4.528000000000e-10 7.275266613790e-01 + 4.628000000000e-10 5.230676681296e-01 + 4.728000000000e-10 1.980405747385e-01 + 4.828000000000e-10 -1.294713662253e-01 + 4.928000000000e-10 -3.773761496757e-01 + 5.028000000000e-10 -5.244469821379e-01 + 5.128000000000e-10 -6.155294307936e-01 + 5.228000000000e-10 -6.988887956355e-01 + 5.328000000000e-10 -7.645972449904e-01 + 5.428000000000e-10 -7.886754254295e-01 + 5.528000000000e-10 -7.274706677122e-01 + 5.628000000000e-10 -5.231295350854e-01 + 5.728000000000e-10 -1.979806299381e-01 + 5.828000000000e-10 1.294187696545e-01 + 5.928000000000e-10 3.774292707563e-01 + 6.028000000000e-10 5.243961595933e-01 + 6.128000000000e-10 6.155814701559e-01 + 6.228000000000e-10 6.988355515168e-01 + 6.328000000000e-10 7.646484599731e-01 + 6.428000000000e-10 7.886243100181e-01 + 6.528000000000e-10 7.275215569265e-01 + 6.628000000000e-10 5.230764840752e-01 + 6.728000000000e-10 1.980332799823e-01 + 6.828000000000e-10 -1.294660192513e-01 + 6.928000000000e-10 -3.773827405650e-01 + 7.028000000000e-10 -5.244413520748e-01 + 7.128000000000e-10 -6.155361997798e-01 + 7.228000000000e-10 -6.988817029216e-01 + 7.328000000000e-10 -7.646043204444e-01 + 7.428000000000e-10 -7.886680576572e-01 + 7.528000000000e-10 -7.274772120684e-01 + 7.628000000000e-10 -5.231238849653e-01 + 7.728000000000e-10 -1.979860775160e-01 + 7.828000000000e-10 1.294249237809e-01 + 7.928000000000e-10 3.774244918330e-01 + 8.028000000000e-10 5.244015690321e-01 + 8.128000000000e-10 6.155771739165e-01 + 8.228000000000e-10 6.988402156207e-01 + 8.328000000000e-10 7.646441380646e-01 + 8.428000000000e-10 7.886285892332e-01 + 8.528000000000e-10 7.275167248781e-01 + 8.628000000000e-10 5.230825202638e-01 + 8.728000000000e-10 1.980273627479e-01 + 8.828000000000e-10 -1.294617038455e-01 + 8.928000000000e-10 -3.773878907236e-01 + 9.028000000000e-10 -5.244369215985e-01 + 9.128000000000e-10 -6.155414802599e-01 + 9.228000000000e-10 -6.988765421320e-01 + 9.328000000000e-10 -7.646094975483e-01 + 9.428000000000e-10 -7.886629049186e-01 + 9.528000000000e-10 -7.274820443091e-01 + 9.628000000000e-10 -5.231193961018e-01 + 9.728000000000e-10 -1.979905037884e-01 + 9.828000000000e-10 1.294294922144e-01 + 9.928000000000e-10 3.774205018001e-01 + 1.000000000000e-09 4.912603506308e-01 diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_10/CML_divider.sym b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_10/CML_divider.sym new file mode 100644 index 00000000..e46eb233 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_10/CML_divider.sym @@ -0,0 +1,30 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 -120 -20 -100 -20 {} +L 4 -120 20 -100 20 {} +L 4 100 -20 120 -20 {} +L 4 100 20 120 20 {} +L 7 0 -60 0 -40 {} +L 7 0 40 0 60 {} +B 5 -122.5 -22.5 -117.5 -17.5 {name=Vo+ dir=out} +B 5 -122.5 17.5 -117.5 22.5 {name=Vo- dir=out} +B 5 117.5 -22.5 122.5 -17.5 {name=Vi+ dir=in} +B 5 117.5 17.5 122.5 22.5 {name=Vi- dir=in} +B 5 -2.5 -62.5 2.5 -57.5 {name=vdd dir=inout} +B 5 -2.5 57.5 2.5 62.5 {name=gnd dir=inout} +P 4 5 100 -40 -100 -40 -100 40 100 40 100 -40 {} +T {@symname} -44 -6 0 0 0.3 0.3 {} +T {@name} 45 -52 0 0 0.2 0.2 {} +T {Vo+} -95 -24 0 0 0.2 0.2 {} +T {Vo-} -95 16 0 0 0.2 0.2 {} +T {Vi+} 95 -16 2 0 0.2 0.2 {} +T {Vi-} 95 24 2 0 0.2 0.2 {} +T {vdd} 10 -39 0 1 0.2 0.2 {} +T {gnd} -10 34 2 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_10/conditions.yaml b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_10/conditions.yaml new file mode 100644 index 00000000..3d2bd3a6 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_10/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice +N: 10 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: ff +filename: CML_core_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_10 +temperature: '-40' +vdd: '1.2' diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_11/.spiceinit b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_11/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_11/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_11/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_11/CML_core_tb.sch new file mode 100644 index 00000000..d1583716 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_11/CML_core_tb.sch @@ -0,0 +1,71 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {} +V {} +S {} +E {} +N 740 -940 740 -920 {lab=GND} +N 740 -1090 740 -1060 {lab=VDD} +N 600 -1020 620 -1020 {lab=Vinplus} +N 600 -980 620 -980 {lab=Vinminus} +N 860 -1020 880 -1020 {lab=Voplus} +N 860 -980 880 -980 {lab=Vominus} +N 1150 -850 1150 -820 {lab=VDD} +N 1150 -760 1150 -730 {lab=GND} +N 930 -850 930 -820 {lab=Vinminus} +N 930 -760 930 -730 {lab=GND} +N 720 -850 720 -820 {lab=Vinplus} +N 720 -760 720 -730 {lab=GND} +C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write CML_core_tb.raw +set appendwrite +tran 10p 1n 160p + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_11/CML_core_tb_11.data vo_diff +quit + +.endc +"} +C {opin.sym} 880 -1020 2 1 {name=p6 lab=Voplus} +C {opin.sym} 880 -980 0 0 {name=p9 lab=Vominus} +C {devices/code_shown.sym} 10 -620 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_ss + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice + +.temp -40 +" +} +C {iopin.sym} 740 -1090 0 1 {name=p2 lab=VDD} +C {ipin.sym} 600 -1020 2 1 {name=p4 lab=Vinplus} +C {ipin.sym} 600 -980 2 1 {name=p1 lab=Vinminus} +C {CML_divider.sym} 740 -1000 0 1 {name=x1} +C {vsource.sym} 1150 -790 0 0 {name=V1 value=1.2 savecurrent=false} +C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} +C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} +C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 0.3 10G 0 0 0)" savecurrent=false} +C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 0.3 10G 0 0 180)" savecurrent=false} +C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_11/CML_core_tb_11.data b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_11/CML_core_tb_11.data new file mode 100644 index 00000000..799f8459 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_11/CML_core_tb_11.data @@ -0,0 +1,85 @@ + 1.628000000000e-10 -5.473675478550e-01 + 1.728000000000e-10 -2.087893101739e-01 + 1.828000000000e-10 1.310494751476e-01 + 1.928000000000e-10 3.871555645678e-01 + 2.028000000000e-10 5.437689230363e-01 + 2.128000000000e-10 6.391330299748e-01 + 2.228000000000e-10 7.213082317981e-01 + 2.328000000000e-10 7.903248370025e-01 + 2.428000000000e-10 8.187618792919e-01 + 2.528000000000e-10 7.555729663838e-01 + 2.628000000000e-10 5.409345054541e-01 + 2.728000000000e-10 2.036912835862e-01 + 2.828000000000e-10 -1.345140506878e-01 + 2.928000000000e-10 -3.895370892644e-01 + 3.028000000000e-10 -5.457400052530e-01 + 3.128000000000e-10 -6.403498057265e-01 + 3.228000000000e-10 -7.222286336937e-01 + 3.328000000000e-10 -7.907911780827e-01 + 3.428000000000e-10 -8.192361080664e-01 + 3.528000000000e-10 -7.558198978931e-01 + 3.628000000000e-10 -5.413206307136e-01 + 3.728000000000e-10 -2.038438399825e-01 + 3.828000000000e-10 1.342763346632e-01 + 3.928000000000e-10 3.894921044587e-01 + 4.028000000000e-10 5.455616788274e-01 + 4.128000000000e-10 6.403489734683e-01 + 4.228000000000e-10 7.220944352324e-01 + 4.328000000000e-10 7.908322596821e-01 + 4.428000000000e-10 8.191363162855e-01 + 4.528000000000e-10 7.558824803046e-01 + 4.628000000000e-10 5.412307821184e-01 + 4.728000000000e-10 2.039121351986e-01 + 4.828000000000e-10 -1.343528713892e-01 + 4.928000000000e-10 -3.894290190191e-01 + 5.028000000000e-10 -5.456335562174e-01 + 5.128000000000e-10 -6.402860869065e-01 + 5.228000000000e-10 -7.221652152444e-01 + 5.328000000000e-10 -7.907686614943e-01 + 5.428000000000e-10 -8.192023796026e-01 + 5.528000000000e-10 -7.558173441778e-01 + 5.628000000000e-10 -5.413004970284e-01 + 5.728000000000e-10 -2.038447386050e-01 + 5.828000000000e-10 1.342913524064e-01 + 5.928000000000e-10 3.894897157728e-01 + 6.028000000000e-10 5.455737058766e-01 + 6.128000000000e-10 6.403462778603e-01 + 6.228000000000e-10 7.221032530671e-01 + 6.328000000000e-10 7.908278354740e-01 + 6.428000000000e-10 8.191430293573e-01 + 6.528000000000e-10 7.558759446864e-01 + 6.628000000000e-10 5.412396296665e-01 + 6.728000000000e-10 2.039046702204e-01 + 6.828000000000e-10 -1.343459163903e-01 + 6.928000000000e-10 -3.894366779769e-01 + 7.028000000000e-10 -5.456262483653e-01 + 7.128000000000e-10 -6.402940065215e-01 + 7.228000000000e-10 -7.221570137640e-01 + 7.328000000000e-10 -7.907769448806e-01 + 7.428000000000e-10 -8.191938542033e-01 + 7.528000000000e-10 -7.558251320231e-01 + 7.628000000000e-10 -5.412933191298e-01 + 7.728000000000e-10 -2.038518419443e-01 + 7.828000000000e-10 1.342982918430e-01 + 7.928000000000e-10 3.894837914532e-01 + 8.028000000000e-10 5.455799247329e-01 + 8.128000000000e-10 6.403408689327e-01 + 8.228000000000e-10 7.221089932485e-01 + 8.328000000000e-10 7.908225333386e-01 + 8.428000000000e-10 8.191482615363e-01 + 8.528000000000e-10 7.558702665648e-01 + 8.628000000000e-10 5.412462517638e-01 + 8.728000000000e-10 2.038984202104e-01 + 8.828000000000e-10 -1.343404705774e-01 + 8.928000000000e-10 -3.894425333092e-01 + 9.028000000000e-10 -5.456206778041e-01 + 9.128000000000e-10 -6.403000729433e-01 + 9.228000000000e-10 -7.221509667404e-01 + 9.328000000000e-10 -7.907829740936e-01 + 9.428000000000e-10 -8.191877974471e-01 + 9.528000000000e-10 -7.558308764830e-01 + 9.628000000000e-10 -5.412878201925e-01 + 9.728000000000e-10 -2.038573569097e-01 + 9.828000000000e-10 1.343035264203e-01 + 9.928000000000e-10 3.894790170617e-01 + 1.000000000000e-09 5.100069898815e-01 diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_11/CML_divider.sym b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_11/CML_divider.sym new file mode 100644 index 00000000..e46eb233 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_11/CML_divider.sym @@ -0,0 +1,30 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 -120 -20 -100 -20 {} +L 4 -120 20 -100 20 {} +L 4 100 -20 120 -20 {} +L 4 100 20 120 20 {} +L 7 0 -60 0 -40 {} +L 7 0 40 0 60 {} +B 5 -122.5 -22.5 -117.5 -17.5 {name=Vo+ dir=out} +B 5 -122.5 17.5 -117.5 22.5 {name=Vo- dir=out} +B 5 117.5 -22.5 122.5 -17.5 {name=Vi+ dir=in} +B 5 117.5 17.5 122.5 22.5 {name=Vi- dir=in} +B 5 -2.5 -62.5 2.5 -57.5 {name=vdd dir=inout} +B 5 -2.5 57.5 2.5 62.5 {name=gnd dir=inout} +P 4 5 100 -40 -100 -40 -100 40 100 40 100 -40 {} +T {@symname} -44 -6 0 0 0.3 0.3 {} +T {@name} 45 -52 0 0 0.2 0.2 {} +T {Vo+} -95 -24 0 0 0.2 0.2 {} +T {Vo-} -95 16 0 0 0.2 0.2 {} +T {Vi+} 95 -16 2 0 0.2 0.2 {} +T {Vi-} 95 24 2 0 0.2 0.2 {} +T {vdd} 10 -39 0 1 0.2 0.2 {} +T {gnd} -10 34 2 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_11/conditions.yaml b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_11/conditions.yaml new file mode 100644 index 00000000..9911aad3 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_11/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice +N: 11 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: ss +filename: CML_core_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_11 +temperature: '-40' +vdd: '1.2' diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_12/.spiceinit b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_12/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_12/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_12/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_12/CML_core_tb.sch new file mode 100644 index 00000000..39a0b30e --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_12/CML_core_tb.sch @@ -0,0 +1,71 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {} +V {} +S {} +E {} +N 740 -940 740 -920 {lab=GND} +N 740 -1090 740 -1060 {lab=VDD} +N 600 -1020 620 -1020 {lab=Vinplus} +N 600 -980 620 -980 {lab=Vinminus} +N 860 -1020 880 -1020 {lab=Voplus} +N 860 -980 880 -980 {lab=Vominus} +N 1150 -850 1150 -820 {lab=VDD} +N 1150 -760 1150 -730 {lab=GND} +N 930 -850 930 -820 {lab=Vinminus} +N 930 -760 930 -730 {lab=GND} +N 720 -850 720 -820 {lab=Vinplus} +N 720 -760 720 -730 {lab=GND} +C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write CML_core_tb.raw +set appendwrite +tran 10p 1n 160p + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_12/CML_core_tb_12.data vo_diff +quit + +.endc +"} +C {opin.sym} 880 -1020 2 1 {name=p6 lab=Voplus} +C {opin.sym} 880 -980 0 0 {name=p9 lab=Vominus} +C {devices/code_shown.sym} 10 -620 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_tt + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice + +.temp 27 +" +} +C {iopin.sym} 740 -1090 0 1 {name=p2 lab=VDD} +C {ipin.sym} 600 -1020 2 1 {name=p4 lab=Vinplus} +C {ipin.sym} 600 -980 2 1 {name=p1 lab=Vinminus} +C {CML_divider.sym} 740 -1000 0 1 {name=x1} +C {vsource.sym} 1150 -790 0 0 {name=V1 value=1.2 savecurrent=false} +C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} +C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} +C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 0.3 10G 0 0 0)" savecurrent=false} +C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 0.3 10G 0 0 180)" savecurrent=false} +C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_12/CML_core_tb_12.data b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_12/CML_core_tb_12.data new file mode 100644 index 00000000..db4e4cce --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_12/CML_core_tb_12.data @@ -0,0 +1,85 @@ + 1.628000000000e-10 -5.049557277618e-01 + 1.728000000000e-10 -1.958466480437e-01 + 1.828000000000e-10 1.196319367700e-01 + 1.928000000000e-10 3.700244189406e-01 + 2.028000000000e-10 5.308067637731e-01 + 2.128000000000e-10 6.311299202315e-01 + 2.228000000000e-10 7.086540860403e-01 + 2.328000000000e-10 7.625529356493e-01 + 2.428000000000e-10 7.708473475114e-01 + 2.528000000000e-10 6.980446990655e-01 + 2.628000000000e-10 4.981026307256e-01 + 2.728000000000e-10 1.904449044265e-01 + 2.828000000000e-10 -1.236510258628e-01 + 2.928000000000e-10 -3.730975798774e-01 + 3.028000000000e-10 -5.333436235403e-01 + 3.128000000000e-10 -6.328422885796e-01 + 3.228000000000e-10 -7.099622515515e-01 + 3.328000000000e-10 -7.633093670089e-01 + 3.428000000000e-10 -7.714462858000e-01 + 3.528000000000e-10 -6.983543456334e-01 + 3.628000000000e-10 -4.984830350414e-01 + 3.728000000000e-10 -1.906133898346e-01 + 3.828000000000e-10 1.234140438752e-01 + 3.928000000000e-10 3.730258572177e-01 + 4.028000000000e-10 5.331667972487e-01 + 4.128000000000e-10 6.328214645319e-01 + 4.228000000000e-10 7.098336990067e-01 + 4.328000000000e-10 7.633335528675e-01 + 4.428000000000e-10 7.713603033543e-01 + 4.528000000000e-10 6.984040906368e-01 + 4.628000000000e-10 4.984087981115e-01 + 4.728000000000e-10 1.906698925098e-01 + 4.828000000000e-10 -1.234792426423e-01 + 4.928000000000e-10 -3.729733539485e-01 + 5.028000000000e-10 -5.332277682129e-01 + 5.128000000000e-10 -6.327690017914e-01 + 5.228000000000e-10 -7.098933602520e-01 + 5.328000000000e-10 -7.632805035294e-01 + 5.428000000000e-10 -7.714147767047e-01 + 5.528000000000e-10 -6.983493927960e-01 + 5.628000000000e-10 -4.984657326360e-01 + 5.728000000000e-10 -1.906133403657e-01 + 5.828000000000e-10 1.234275058651e-01 + 5.928000000000e-10 3.730246636548e-01 + 6.028000000000e-10 5.331775888699e-01 + 6.128000000000e-10 6.328197652536e-01 + 6.228000000000e-10 7.098419058182e-01 + 6.328000000000e-10 7.633301342197e-01 + 6.428000000000e-10 7.713661487972e-01 + 6.528000000000e-10 6.983986251010e-01 + 6.628000000000e-10 4.984160910452e-01 + 6.728000000000e-10 1.906635868460e-01 + 6.828000000000e-10 -1.234734747225e-01 + 6.928000000000e-10 -3.729797013887e-01 + 7.028000000000e-10 -5.332215969565e-01 + 7.128000000000e-10 -6.327757131741e-01 + 7.228000000000e-10 -7.098865351622e-01 + 7.328000000000e-10 -7.632871392149e-01 + 7.428000000000e-10 -7.714081948986e-01 + 7.528000000000e-10 -6.983555969606e-01 + 7.628000000000e-10 -4.984601688237e-01 + 7.728000000000e-10 -1.906192454806e-01 + 7.828000000000e-10 1.234332321656e-01 + 7.928000000000e-10 3.730195983111e-01 + 8.028000000000e-10 5.331826746949e-01 + 8.128000000000e-10 6.328151783475e-01 + 8.228000000000e-10 7.098466992587e-01 + 8.328000000000e-10 7.633256332241e-01 + 8.428000000000e-10 7.713705417094e-01 + 8.528000000000e-10 6.983937777920e-01 + 8.628000000000e-10 4.984215072239e-01 + 8.728000000000e-10 1.906583322627e-01 + 8.828000000000e-10 -1.234689419945e-01 + 8.928000000000e-10 -3.729845695752e-01 + 9.028000000000e-10 -5.332169477613e-01 + 9.128000000000e-10 -6.327807857544e-01 + 9.228000000000e-10 -7.098815617208e-01 + 9.328000000000e-10 -7.632920474235e-01 + 9.428000000000e-10 -7.714033753149e-01 + 9.528000000000e-10 -6.983602366678e-01 + 9.628000000000e-10 -4.984557776243e-01 + 9.728000000000e-10 -1.906237729891e-01 + 9.828000000000e-10 1.234375916302e-01 + 9.928000000000e-10 3.730155682884e-01 + 1.000000000000e-09 4.959193237551e-01 diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_12/CML_divider.sym b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_12/CML_divider.sym new file mode 100644 index 00000000..e46eb233 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_12/CML_divider.sym @@ -0,0 +1,30 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 -120 -20 -100 -20 {} +L 4 -120 20 -100 20 {} +L 4 100 -20 120 -20 {} +L 4 100 20 120 20 {} +L 7 0 -60 0 -40 {} +L 7 0 40 0 60 {} +B 5 -122.5 -22.5 -117.5 -17.5 {name=Vo+ dir=out} +B 5 -122.5 17.5 -117.5 22.5 {name=Vo- dir=out} +B 5 117.5 -22.5 122.5 -17.5 {name=Vi+ dir=in} +B 5 117.5 17.5 122.5 22.5 {name=Vi- dir=in} +B 5 -2.5 -62.5 2.5 -57.5 {name=vdd dir=inout} +B 5 -2.5 57.5 2.5 62.5 {name=gnd dir=inout} +P 4 5 100 -40 -100 -40 -100 40 100 40 100 -40 {} +T {@symname} -44 -6 0 0 0.3 0.3 {} +T {@name} 45 -52 0 0 0.2 0.2 {} +T {Vo+} -95 -24 0 0 0.2 0.2 {} +T {Vo-} -95 16 0 0 0.2 0.2 {} +T {Vi+} 95 -16 2 0 0.2 0.2 {} +T {Vi-} 95 24 2 0 0.2 0.2 {} +T {vdd} 10 -39 0 1 0.2 0.2 {} +T {gnd} -10 34 2 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_12/conditions.yaml b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_12/conditions.yaml new file mode 100644 index 00000000..cddd2127 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_12/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice +N: 12 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: tt +filename: CML_core_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_12 +temperature: '27' +vdd: '1.2' diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_13/.spiceinit b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_13/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_13/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_13/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_13/CML_core_tb.sch new file mode 100644 index 00000000..268d2560 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_13/CML_core_tb.sch @@ -0,0 +1,71 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {} +V {} +S {} +E {} +N 740 -940 740 -920 {lab=GND} +N 740 -1090 740 -1060 {lab=VDD} +N 600 -1020 620 -1020 {lab=Vinplus} +N 600 -980 620 -980 {lab=Vinminus} +N 860 -1020 880 -1020 {lab=Voplus} +N 860 -980 880 -980 {lab=Vominus} +N 1150 -850 1150 -820 {lab=VDD} +N 1150 -760 1150 -730 {lab=GND} +N 930 -850 930 -820 {lab=Vinminus} +N 930 -760 930 -730 {lab=GND} +N 720 -850 720 -820 {lab=Vinplus} +N 720 -760 720 -730 {lab=GND} +C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write CML_core_tb.raw +set appendwrite +tran 10p 1n 160p + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_13/CML_core_tb_13.data vo_diff +quit + +.endc +"} +C {opin.sym} 880 -1020 2 1 {name=p6 lab=Voplus} +C {opin.sym} 880 -980 0 0 {name=p9 lab=Vominus} +C {devices/code_shown.sym} 10 -620 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_ff + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice + +.temp 27 +" +} +C {iopin.sym} 740 -1090 0 1 {name=p2 lab=VDD} +C {ipin.sym} 600 -1020 2 1 {name=p4 lab=Vinplus} +C {ipin.sym} 600 -980 2 1 {name=p1 lab=Vinminus} +C {CML_divider.sym} 740 -1000 0 1 {name=x1} +C {vsource.sym} 1150 -790 0 0 {name=V1 value=1.2 savecurrent=false} +C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} +C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} +C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 0.3 10G 0 0 0)" savecurrent=false} +C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 0.3 10G 0 0 180)" savecurrent=false} +C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_13/CML_core_tb_13.data b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_13/CML_core_tb_13.data new file mode 100644 index 00000000..abbd3617 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_13/CML_core_tb_13.data @@ -0,0 +1,85 @@ + 1.628000000000e-10 -4.935497259980e-01 + 1.728000000000e-10 -1.928633983658e-01 + 1.828000000000e-10 1.160949240371e-01 + 1.928000000000e-10 3.619360857197e-01 + 2.028000000000e-10 5.185143131218e-01 + 2.128000000000e-10 6.170086772416e-01 + 2.228000000000e-10 6.939063598865e-01 + 2.328000000000e-10 7.457993341265e-01 + 2.428000000000e-10 7.520509596304e-01 + 2.528000000000e-10 6.804739824857e-01 + 2.628000000000e-10 4.870426149481e-01 + 2.728000000000e-10 1.875308246798e-01 + 2.828000000000e-10 -1.202389208092e-01 + 2.928000000000e-10 -3.651754434827e-01 + 3.028000000000e-10 -5.211918880427e-01 + 3.128000000000e-10 -6.188469707889e-01 + 3.228000000000e-10 -6.953072467312e-01 + 3.328000000000e-10 -7.466129151979e-01 + 3.428000000000e-10 -7.526565311823e-01 + 3.528000000000e-10 -6.807675409917e-01 + 3.628000000000e-10 -4.873945801883e-01 + 3.728000000000e-10 -1.876809763872e-01 + 3.828000000000e-10 1.200199744899e-01 + 3.928000000000e-10 3.651151173578e-01 + 4.028000000000e-10 5.210322421793e-01 + 4.128000000000e-10 6.188330192958e-01 + 4.228000000000e-10 6.951893716680e-01 + 4.328000000000e-10 7.466394998986e-01 + 4.428000000000e-10 7.525773069027e-01 + 4.528000000000e-10 6.808165070916e-01 + 4.628000000000e-10 4.873248087716e-01 + 4.728000000000e-10 1.877358679741e-01 + 4.828000000000e-10 -1.200819840902e-01 + 4.928000000000e-10 -3.650646413699e-01 + 5.028000000000e-10 -5.210903047408e-01 + 5.128000000000e-10 -6.187830156405e-01 + 5.228000000000e-10 -6.952462050643e-01 + 5.328000000000e-10 -7.465883056072e-01 + 5.428000000000e-10 -7.526293067125e-01 + 5.528000000000e-10 -6.807638103361e-01 + 5.628000000000e-10 -4.873795115625e-01 + 5.728000000000e-10 -1.876807689254e-01 + 5.828000000000e-10 1.200326256254e-01 + 5.928000000000e-10 3.651139754788e-01 + 6.028000000000e-10 5.210426454606e-01 + 6.128000000000e-10 6.188315227579e-01 + 6.228000000000e-10 6.951972695911e-01 + 6.328000000000e-10 7.466359762403e-01 + 6.428000000000e-10 7.525829976005e-01 + 6.528000000000e-10 6.808110143898e-01 + 6.628000000000e-10 4.873318873720e-01 + 6.728000000000e-10 1.877292356433e-01 + 6.828000000000e-10 -1.200767202072e-01 + 6.928000000000e-10 -3.650706499628e-01 + 7.028000000000e-10 -5.210847183857e-01 + 7.128000000000e-10 -6.187893543189e-01 + 7.228000000000e-10 -6.952399017798e-01 + 7.328000000000e-10 -7.465944604664e-01 + 7.428000000000e-10 -7.526232942576e-01 + 7.528000000000e-10 -6.807695137827e-01 + 7.628000000000e-10 -4.873744121182e-01 + 7.728000000000e-10 -1.876860880622e-01 + 7.828000000000e-10 1.200380835632e-01 + 7.928000000000e-10 3.651091778387e-01 + 8.028000000000e-10 5.210475167171e-01 + 8.128000000000e-10 6.188272213187e-01 + 8.228000000000e-10 6.952018279574e-01 + 8.328000000000e-10 7.466316140292e-01 + 8.428000000000e-10 7.525872528114e-01 + 8.528000000000e-10 6.808063071094e-01 + 8.628000000000e-10 4.873371355126e-01 + 8.728000000000e-10 1.877239857571e-01 + 8.828000000000e-10 -1.200724809112e-01 + 8.928000000000e-10 -3.650752679165e-01 + 9.028000000000e-10 -5.210804068397e-01 + 9.128000000000e-10 -6.187941569931e-01 + 9.228000000000e-10 -6.952352466105e-01 + 9.328000000000e-10 -7.465990720366e-01 + 9.428000000000e-10 -7.526188226163e-01 + 9.528000000000e-10 -6.807738360998e-01 + 9.628000000000e-10 -4.873703126609e-01 + 9.728000000000e-10 -1.876902725775e-01 + 9.828000000000e-10 1.200422409457e-01 + 9.928000000000e-10 3.651053453859e-01 + 1.000000000000e-09 4.847952698035e-01 diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_13/CML_divider.sym b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_13/CML_divider.sym new file mode 100644 index 00000000..e46eb233 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_13/CML_divider.sym @@ -0,0 +1,30 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 -120 -20 -100 -20 {} +L 4 -120 20 -100 20 {} +L 4 100 -20 120 -20 {} +L 4 100 20 120 20 {} +L 7 0 -60 0 -40 {} +L 7 0 40 0 60 {} +B 5 -122.5 -22.5 -117.5 -17.5 {name=Vo+ dir=out} +B 5 -122.5 17.5 -117.5 22.5 {name=Vo- dir=out} +B 5 117.5 -22.5 122.5 -17.5 {name=Vi+ dir=in} +B 5 117.5 17.5 122.5 22.5 {name=Vi- dir=in} +B 5 -2.5 -62.5 2.5 -57.5 {name=vdd dir=inout} +B 5 -2.5 57.5 2.5 62.5 {name=gnd dir=inout} +P 4 5 100 -40 -100 -40 -100 40 100 40 100 -40 {} +T {@symname} -44 -6 0 0 0.3 0.3 {} +T {@name} 45 -52 0 0 0.2 0.2 {} +T {Vo+} -95 -24 0 0 0.2 0.2 {} +T {Vo-} -95 16 0 0 0.2 0.2 {} +T {Vi+} 95 -16 2 0 0.2 0.2 {} +T {Vi-} 95 24 2 0 0.2 0.2 {} +T {vdd} 10 -39 0 1 0.2 0.2 {} +T {gnd} -10 34 2 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_13/conditions.yaml b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_13/conditions.yaml new file mode 100644 index 00000000..46ff607c --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_13/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice +N: 13 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: ff +filename: CML_core_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_13 +temperature: '27' +vdd: '1.2' diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_14/.spiceinit b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_14/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_14/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_14/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_14/CML_core_tb.sch new file mode 100644 index 00000000..439b1ad4 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_14/CML_core_tb.sch @@ -0,0 +1,71 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {} +V {} +S {} +E {} +N 740 -940 740 -920 {lab=GND} +N 740 -1090 740 -1060 {lab=VDD} +N 600 -1020 620 -1020 {lab=Vinplus} +N 600 -980 620 -980 {lab=Vinminus} +N 860 -1020 880 -1020 {lab=Voplus} +N 860 -980 880 -980 {lab=Vominus} +N 1150 -850 1150 -820 {lab=VDD} +N 1150 -760 1150 -730 {lab=GND} +N 930 -850 930 -820 {lab=Vinminus} +N 930 -760 930 -730 {lab=GND} +N 720 -850 720 -820 {lab=Vinplus} +N 720 -760 720 -730 {lab=GND} +C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write CML_core_tb.raw +set appendwrite +tran 10p 1n 160p + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_14/CML_core_tb_14.data vo_diff +quit + +.endc +"} +C {opin.sym} 880 -1020 2 1 {name=p6 lab=Voplus} +C {opin.sym} 880 -980 0 0 {name=p9 lab=Vominus} +C {devices/code_shown.sym} 10 -620 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_ss + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice + +.temp 27 +" +} +C {iopin.sym} 740 -1090 0 1 {name=p2 lab=VDD} +C {ipin.sym} 600 -1020 2 1 {name=p4 lab=Vinplus} +C {ipin.sym} 600 -980 2 1 {name=p1 lab=Vinminus} +C {CML_divider.sym} 740 -1000 0 1 {name=x1} +C {vsource.sym} 1150 -790 0 0 {name=V1 value=1.2 savecurrent=false} +C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} +C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} +C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 0.3 10G 0 0 0)" savecurrent=false} +C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 0.3 10G 0 0 180)" savecurrent=false} +C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_14/CML_core_tb_14.data b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_14/CML_core_tb_14.data new file mode 100644 index 00000000..3796cea3 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_14/CML_core_tb_14.data @@ -0,0 +1,85 @@ + 1.628000000000e-10 -5.133282675634e-01 + 1.728000000000e-10 -2.031582081928e-01 + 1.828000000000e-10 1.144804838339e-01 + 1.928000000000e-10 3.698591588516e-01 + 2.028000000000e-10 5.380258146680e-01 + 2.128000000000e-10 6.422542980920e-01 + 2.228000000000e-10 7.191574927620e-01 + 2.328000000000e-10 7.734390216007e-01 + 2.428000000000e-10 7.823512104827e-01 + 2.528000000000e-10 7.081342613122e-01 + 2.628000000000e-10 5.065809773945e-01 + 2.728000000000e-10 1.980707374060e-01 + 2.828000000000e-10 -1.181831896095e-01 + 2.928000000000e-10 -3.727163876319e-01 + 3.028000000000e-10 -5.404428949084e-01 + 3.128000000000e-10 -6.438704305572e-01 + 3.228000000000e-10 -7.204145434420e-01 + 3.328000000000e-10 -7.741471374370e-01 + 3.428000000000e-10 -7.829309638154e-01 + 3.528000000000e-10 -7.084110972821e-01 + 3.628000000000e-10 -5.069426471107e-01 + 3.728000000000e-10 -1.982066720174e-01 + 3.828000000000e-10 1.179564926067e-01 + 3.928000000000e-10 3.726621714283e-01 + 4.028000000000e-10 5.402630628674e-01 + 4.128000000000e-10 6.438601752956e-01 + 4.228000000000e-10 7.202791375194e-01 + 4.328000000000e-10 7.741793827377e-01 + 4.428000000000e-10 7.828380754967e-01 + 4.528000000000e-10 7.084693803333e-01 + 4.628000000000e-10 5.068627667504e-01 + 4.728000000000e-10 1.982719515445e-01 + 4.828000000000e-10 -1.180275895897e-01 + 4.928000000000e-10 -3.726028735362e-01 + 5.028000000000e-10 -5.403301024789e-01 + 5.128000000000e-10 -6.438008084190e-01 + 5.228000000000e-10 -7.203455420725e-01 + 5.328000000000e-10 -7.741198297783e-01 + 5.428000000000e-10 -7.828987326701e-01 + 5.528000000000e-10 -7.084084859242e-01 + 5.628000000000e-10 -5.069251044876e-01 + 5.728000000000e-10 -1.982094732584e-01 + 5.828000000000e-10 1.179697981212e-01 + 5.928000000000e-10 3.726595322461e-01 + 6.028000000000e-10 5.402739437431e-01 + 6.128000000000e-10 6.438573026479e-01 + 6.228000000000e-10 7.202880216174e-01 + 6.328000000000e-10 7.741750830136e-01 + 6.428000000000e-10 7.828445699494e-01 + 6.528000000000e-10 7.084631989914e-01 + 6.628000000000e-10 5.068703543607e-01 + 6.728000000000e-10 1.982651160797e-01 + 6.828000000000e-10 -1.180209524418e-01 + 6.928000000000e-10 -3.726100259571e-01 + 7.028000000000e-10 -5.403229404029e-01 + 7.128000000000e-10 -6.438083895554e-01 + 7.228000000000e-10 -7.203378638829e-01 + 7.328000000000e-10 -7.741273273776e-01 + 7.428000000000e-10 -7.828912312659e-01 + 7.528000000000e-10 -7.084155733246e-01 + 7.628000000000e-10 -5.069185371484e-01 + 7.728000000000e-10 -1.982163796445e-01 + 7.828000000000e-10 1.179761824049e-01 + 7.928000000000e-10 3.726538824343e-01 + 8.028000000000e-10 5.402795684719e-01 + 8.128000000000e-10 6.438520994328e-01 + 8.228000000000e-10 7.202935093188e-01 + 8.328000000000e-10 7.741699689895e-01 + 8.428000000000e-10 7.828494756723e-01 + 8.528000000000e-10 7.084578188073e-01 + 8.628000000000e-10 5.068761410729e-01 + 8.728000000000e-10 1.982594122387e-01 + 8.828000000000e-10 -1.180157633845e-01 + 8.928000000000e-10 -3.726154653834e-01 + 9.028000000000e-10 -5.403175771302e-01 + 9.128000000000e-10 -6.438140825829e-01 + 9.228000000000e-10 -7.203322576361e-01 + 9.328000000000e-10 -7.741328388949e-01 + 9.428000000000e-10 -7.828857350121e-01 + 9.528000000000e-10 -7.084208512479e-01 + 9.628000000000e-10 -5.069134738545e-01 + 9.728000000000e-10 -1.982215797151e-01 + 9.828000000000e-10 1.179810466336e-01 + 9.928000000000e-10 3.726493985613e-01 + 1.000000000000e-09 5.010433738758e-01 diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_14/CML_divider.sym b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_14/CML_divider.sym new file mode 100644 index 00000000..e46eb233 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_14/CML_divider.sym @@ -0,0 +1,30 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 -120 -20 -100 -20 {} +L 4 -120 20 -100 20 {} +L 4 100 -20 120 -20 {} +L 4 100 20 120 20 {} +L 7 0 -60 0 -40 {} +L 7 0 40 0 60 {} +B 5 -122.5 -22.5 -117.5 -17.5 {name=Vo+ dir=out} +B 5 -122.5 17.5 -117.5 22.5 {name=Vo- dir=out} +B 5 117.5 -22.5 122.5 -17.5 {name=Vi+ dir=in} +B 5 117.5 17.5 122.5 22.5 {name=Vi- dir=in} +B 5 -2.5 -62.5 2.5 -57.5 {name=vdd dir=inout} +B 5 -2.5 57.5 2.5 62.5 {name=gnd dir=inout} +P 4 5 100 -40 -100 -40 -100 40 100 40 100 -40 {} +T {@symname} -44 -6 0 0 0.3 0.3 {} +T {@name} 45 -52 0 0 0.2 0.2 {} +T {Vo+} -95 -24 0 0 0.2 0.2 {} +T {Vo-} -95 16 0 0 0.2 0.2 {} +T {Vi+} 95 -16 2 0 0.2 0.2 {} +T {Vi-} 95 24 2 0 0.2 0.2 {} +T {vdd} 10 -39 0 1 0.2 0.2 {} +T {gnd} -10 34 2 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_14/conditions.yaml b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_14/conditions.yaml new file mode 100644 index 00000000..8cbc3b80 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_14/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice +N: 14 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: ss +filename: CML_core_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_14 +temperature: '27' +vdd: '1.2' diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_15/.spiceinit b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_15/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_15/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_15/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_15/CML_core_tb.sch new file mode 100644 index 00000000..9cd78fdc --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_15/CML_core_tb.sch @@ -0,0 +1,71 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {} +V {} +S {} +E {} +N 740 -940 740 -920 {lab=GND} +N 740 -1090 740 -1060 {lab=VDD} +N 600 -1020 620 -1020 {lab=Vinplus} +N 600 -980 620 -980 {lab=Vinminus} +N 860 -1020 880 -1020 {lab=Voplus} +N 860 -980 880 -980 {lab=Vominus} +N 1150 -850 1150 -820 {lab=VDD} +N 1150 -760 1150 -730 {lab=GND} +N 930 -850 930 -820 {lab=Vinminus} +N 930 -760 930 -730 {lab=GND} +N 720 -850 720 -820 {lab=Vinplus} +N 720 -760 720 -730 {lab=GND} +C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write CML_core_tb.raw +set appendwrite +tran 10p 1n 160p + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_15/CML_core_tb_15.data vo_diff +quit + +.endc +"} +C {opin.sym} 880 -1020 2 1 {name=p6 lab=Voplus} +C {opin.sym} 880 -980 0 0 {name=p9 lab=Vominus} +C {devices/code_shown.sym} 10 -620 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_tt + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice + +.temp 80 +" +} +C {iopin.sym} 740 -1090 0 1 {name=p2 lab=VDD} +C {ipin.sym} 600 -1020 2 1 {name=p4 lab=Vinplus} +C {ipin.sym} 600 -980 2 1 {name=p1 lab=Vinminus} +C {CML_divider.sym} 740 -1000 0 1 {name=x1} +C {vsource.sym} 1150 -790 0 0 {name=V1 value=1.2 savecurrent=false} +C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} +C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} +C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 0.3 10G 0 0 0)" savecurrent=false} +C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 0.3 10G 0 0 180)" savecurrent=false} +C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_15/CML_core_tb_15.data b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_15/CML_core_tb_15.data new file mode 100644 index 00000000..a18684b0 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_15/CML_core_tb_15.data @@ -0,0 +1,85 @@ + 1.628000000000e-10 -4.764925698370e-01 + 1.728000000000e-10 -1.934019301872e-01 + 1.828000000000e-10 1.027850457497e-01 + 1.928000000000e-10 3.499528968595e-01 + 2.028000000000e-10 5.186059326128e-01 + 2.128000000000e-10 6.254912177700e-01 + 2.228000000000e-10 6.994356057335e-01 + 2.328000000000e-10 7.419604616039e-01 + 2.428000000000e-10 7.366001230119e-01 + 2.528000000000e-10 6.575586826882e-01 + 2.628000000000e-10 4.703480039804e-01 + 2.728000000000e-10 1.887311437228e-01 + 2.828000000000e-10 -1.064955609068e-01 + 2.928000000000e-10 -3.530674432656e-01 + 3.028000000000e-10 -5.214103928852e-01 + 3.128000000000e-10 -6.276329249236e-01 + 3.228000000000e-10 -7.010919569868e-01 + 3.328000000000e-10 -7.428528846984e-01 + 3.428000000000e-10 -7.371070425945e-01 + 3.528000000000e-10 -6.576931102984e-01 + 3.628000000000e-10 -4.705213908487e-01 + 3.728000000000e-10 -1.887451417089e-01 + 3.828000000000e-10 1.063771169054e-01 + 3.928000000000e-10 3.530644558224e-01 + 4.028000000000e-10 5.212882945537e-01 + 4.128000000000e-10 6.276273956697e-01 + 4.228000000000e-10 7.009872983885e-01 + 4.328000000000e-10 7.428850006835e-01 + 4.428000000000e-10 7.370483197885e-01 + 4.528000000000e-10 6.577532995019e-01 + 4.628000000000e-10 4.704734311564e-01 + 4.728000000000e-10 1.888066765622e-01 + 4.828000000000e-10 -1.064251900033e-01 + 4.928000000000e-10 -3.530110058012e-01 + 5.028000000000e-10 -5.213363794122e-01 + 5.128000000000e-10 -6.275779961821e-01 + 5.228000000000e-10 -7.010367362436e-01 + 5.328000000000e-10 -7.428359180794e-01 + 5.428000000000e-10 -7.370946234404e-01 + 5.528000000000e-10 -6.577041924295e-01 + 5.628000000000e-10 -4.705211118057e-01 + 5.728000000000e-10 -1.887571402743e-01 + 5.828000000000e-10 1.063798390696e-01 + 5.928000000000e-10 3.530562876751e-01 + 6.028000000000e-10 5.212929538773e-01 + 6.128000000000e-10 6.276223718978e-01 + 6.228000000000e-10 7.009927681762e-01 + 6.328000000000e-10 7.428797293753e-01 + 6.428000000000e-10 7.370526578677e-01 + 6.528000000000e-10 6.577470674825e-01 + 6.628000000000e-10 4.704784998901e-01 + 6.728000000000e-10 1.888003575241e-01 + 6.828000000000e-10 -1.064204487643e-01 + 6.928000000000e-10 -3.530168946500e-01 + 7.028000000000e-10 -5.213312567329e-01 + 7.128000000000e-10 -6.275838929681e-01 + 7.228000000000e-10 -7.010312441909e-01 + 7.328000000000e-10 -7.428415937954e-01 + 7.428000000000e-10 -7.370893810626e-01 + 7.528000000000e-10 -6.577094889087e-01 + 7.628000000000e-10 -4.705162397262e-01 + 7.728000000000e-10 -1.887623115300e-01 + 7.828000000000e-10 1.063847513579e-01 + 7.928000000000e-10 3.530516705381e-01 + 8.028000000000e-10 5.212973590939e-01 + 8.128000000000e-10 6.276181223045e-01 + 8.228000000000e-10 7.009970786285e-01 + 8.328000000000e-10 7.428754735512e-01 + 8.428000000000e-10 7.370567570344e-01 + 8.528000000000e-10 6.577427030952e-01 + 8.628000000000e-10 4.704830497474e-01 + 8.728000000000e-10 1.887958404937e-01 + 8.828000000000e-10 -1.064163174914e-01 + 8.928000000000e-10 -3.530210908451e-01 + 9.028000000000e-10 -5.213271590930e-01 + 9.128000000000e-10 -6.275881896870e-01 + 9.228000000000e-10 -7.010270518598e-01 + 9.328000000000e-10 -7.428457852801e-01 + 9.428000000000e-10 -7.370853633469e-01 + 9.528000000000e-10 -6.577134719194e-01 + 9.628000000000e-10 -4.705123783357e-01 + 9.728000000000e-10 -1.887662540331e-01 + 9.828000000000e-10 1.063885555413e-01 + 9.928000000000e-10 3.530480784075e-01 + 1.000000000000e-09 4.814572085440e-01 diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_15/CML_divider.sym b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_15/CML_divider.sym new file mode 100644 index 00000000..e46eb233 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_15/CML_divider.sym @@ -0,0 +1,30 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 -120 -20 -100 -20 {} +L 4 -120 20 -100 20 {} +L 4 100 -20 120 -20 {} +L 4 100 20 120 20 {} +L 7 0 -60 0 -40 {} +L 7 0 40 0 60 {} +B 5 -122.5 -22.5 -117.5 -17.5 {name=Vo+ dir=out} +B 5 -122.5 17.5 -117.5 22.5 {name=Vo- dir=out} +B 5 117.5 -22.5 122.5 -17.5 {name=Vi+ dir=in} +B 5 117.5 17.5 122.5 22.5 {name=Vi- dir=in} +B 5 -2.5 -62.5 2.5 -57.5 {name=vdd dir=inout} +B 5 -2.5 57.5 2.5 62.5 {name=gnd dir=inout} +P 4 5 100 -40 -100 -40 -100 40 100 40 100 -40 {} +T {@symname} -44 -6 0 0 0.3 0.3 {} +T {@name} 45 -52 0 0 0.2 0.2 {} +T {Vo+} -95 -24 0 0 0.2 0.2 {} +T {Vo-} -95 16 0 0 0.2 0.2 {} +T {Vi+} 95 -16 2 0 0.2 0.2 {} +T {Vi-} 95 24 2 0 0.2 0.2 {} +T {vdd} 10 -39 0 1 0.2 0.2 {} +T {gnd} -10 34 2 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_15/conditions.yaml b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_15/conditions.yaml new file mode 100644 index 00000000..5baebc44 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_15/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice +N: 15 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: tt +filename: CML_core_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_15 +temperature: '80' +vdd: '1.2' diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_16/.spiceinit b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_16/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_16/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_16/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_16/CML_core_tb.sch new file mode 100644 index 00000000..c9d91e93 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_16/CML_core_tb.sch @@ -0,0 +1,71 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {} +V {} +S {} +E {} +N 740 -940 740 -920 {lab=GND} +N 740 -1090 740 -1060 {lab=VDD} +N 600 -1020 620 -1020 {lab=Vinplus} +N 600 -980 620 -980 {lab=Vinminus} +N 860 -1020 880 -1020 {lab=Voplus} +N 860 -980 880 -980 {lab=Vominus} +N 1150 -850 1150 -820 {lab=VDD} +N 1150 -760 1150 -730 {lab=GND} +N 930 -850 930 -820 {lab=Vinminus} +N 930 -760 930 -730 {lab=GND} +N 720 -850 720 -820 {lab=Vinplus} +N 720 -760 720 -730 {lab=GND} +C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write CML_core_tb.raw +set appendwrite +tran 10p 1n 160p + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_16/CML_core_tb_16.data vo_diff +quit + +.endc +"} +C {opin.sym} 880 -1020 2 1 {name=p6 lab=Voplus} +C {opin.sym} 880 -980 0 0 {name=p9 lab=Vominus} +C {devices/code_shown.sym} 10 -620 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_ff + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice + +.temp 80 +" +} +C {iopin.sym} 740 -1090 0 1 {name=p2 lab=VDD} +C {ipin.sym} 600 -1020 2 1 {name=p4 lab=Vinplus} +C {ipin.sym} 600 -980 2 1 {name=p1 lab=Vinminus} +C {CML_divider.sym} 740 -1000 0 1 {name=x1} +C {vsource.sym} 1150 -790 0 0 {name=V1 value=1.2 savecurrent=false} +C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} +C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} +C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 0.3 10G 0 0 0)" savecurrent=false} +C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 0.3 10G 0 0 180)" savecurrent=false} +C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_16/CML_core_tb_16.data b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_16/CML_core_tb_16.data new file mode 100644 index 00000000..5b9b7365 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_16/CML_core_tb_16.data @@ -0,0 +1,85 @@ + 1.628000000000e-10 -4.643042367579e-01 + 1.728000000000e-10 -1.889536448800e-01 + 1.828000000000e-10 1.011027156160e-01 + 1.928000000000e-10 3.431119917378e-01 + 2.028000000000e-10 5.070519088353e-01 + 2.128000000000e-10 6.112991757094e-01 + 2.228000000000e-10 6.838020209744e-01 + 2.328000000000e-10 7.242864479517e-01 + 2.428000000000e-10 7.174167448313e-01 + 2.528000000000e-10 6.398083866093e-01 + 2.628000000000e-10 4.585166519927e-01 + 2.728000000000e-10 1.844271573483e-01 + 2.828000000000e-10 -1.048019054065e-01 + 2.928000000000e-10 -3.462317584687e-01 + 3.028000000000e-10 -5.098344721858e-01 + 3.128000000000e-10 -6.133899227371e-01 + 3.228000000000e-10 -6.853968517792e-01 + 3.328000000000e-10 -7.251059393871e-01 + 3.428000000000e-10 -7.178642533065e-01 + 3.528000000000e-10 -6.398898931720e-01 + 3.628000000000e-10 -4.586473976402e-01 + 3.728000000000e-10 -1.843989570585e-01 + 3.828000000000e-10 1.047140758745e-01 + 3.928000000000e-10 3.462576483703e-01 + 4.028000000000e-10 5.097333770465e-01 + 4.128000000000e-10 6.134023110554e-01 + 4.228000000000e-10 6.853047053340e-01 + 4.328000000000e-10 7.251501511308e-01 + 4.428000000000e-10 7.178117501486e-01 + 4.528000000000e-10 6.399568281317e-01 + 4.628000000000e-10 4.586017943502e-01 + 4.728000000000e-10 1.844658494373e-01 + 4.828000000000e-10 -1.047609876408e-01 + 4.928000000000e-10 -3.462003104379e-01 + 5.028000000000e-10 -5.097813732572e-01 + 5.128000000000e-10 -6.133504189098e-01 + 5.228000000000e-10 -6.853547602223e-01 + 5.328000000000e-10 -7.250985458364e-01 + 5.428000000000e-10 -7.178593251267e-01 + 5.528000000000e-10 -6.399055102013e-01 + 5.628000000000e-10 -4.586511534755e-01 + 5.728000000000e-10 -1.844138975484e-01 + 5.828000000000e-10 1.047143295024e-01 + 5.928000000000e-10 3.462472486482e-01 + 6.028000000000e-10 5.097369504642e-01 + 6.128000000000e-10 6.133959963639e-01 + 6.228000000000e-10 6.853096740322e-01 + 6.328000000000e-10 7.251438129543e-01 + 6.428000000000e-10 7.178160816468e-01 + 6.528000000000e-10 6.399498616471e-01 + 6.628000000000e-10 4.586069220749e-01 + 6.728000000000e-10 1.844588245643e-01 + 6.828000000000e-10 -1.047563687876e-01 + 6.928000000000e-10 -3.462063328010e-01 + 7.028000000000e-10 -5.097765086741e-01 + 7.128000000000e-10 -6.133562893232e-01 + 7.228000000000e-10 -6.853494321266e-01 + 7.328000000000e-10 -7.251041291885e-01 + 7.428000000000e-10 -7.178542203751e-01 + 7.528000000000e-10 -6.399107355976e-01 + 7.628000000000e-10 -4.586462738291e-01 + 7.728000000000e-10 -1.844190131957e-01 + 7.828000000000e-10 1.047193339603e-01 + 7.928000000000e-10 3.462424630766e-01 + 8.028000000000e-10 5.097415276109e-01 + 8.128000000000e-10 6.133915881396e-01 + 8.228000000000e-10 6.853141467162e-01 + 8.328000000000e-10 7.251393167662e-01 + 8.428000000000e-10 7.178204152808e-01 + 8.528000000000e-10 6.399452651751e-01 + 8.628000000000e-10 4.586116651576e-01 + 8.728000000000e-10 1.844540563551e-01 + 8.828000000000e-10 -1.047521530128e-01 + 8.928000000000e-10 -3.462105768541e-01 + 9.028000000000e-10 -5.097724238353e-01 + 9.128000000000e-10 -6.133605792288e-01 + 9.228000000000e-10 -6.853452315529e-01 + 9.328000000000e-10 -7.251083207568e-01 + 9.428000000000e-10 -7.178502144615e-01 + 9.528000000000e-10 -6.399147306347e-01 + 9.628000000000e-10 -4.586423495280e-01 + 9.728000000000e-10 -1.844229988419e-01 + 9.828000000000e-10 1.047232268776e-01 + 9.928000000000e-10 3.462387497741e-01 + 1.000000000000e-09 4.710752262880e-01 diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_16/CML_divider.sym b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_16/CML_divider.sym new file mode 100644 index 00000000..e46eb233 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_16/CML_divider.sym @@ -0,0 +1,30 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 -120 -20 -100 -20 {} +L 4 -120 20 -100 20 {} +L 4 100 -20 120 -20 {} +L 4 100 20 120 20 {} +L 7 0 -60 0 -40 {} +L 7 0 40 0 60 {} +B 5 -122.5 -22.5 -117.5 -17.5 {name=Vo+ dir=out} +B 5 -122.5 17.5 -117.5 22.5 {name=Vo- dir=out} +B 5 117.5 -22.5 122.5 -17.5 {name=Vi+ dir=in} +B 5 117.5 17.5 122.5 22.5 {name=Vi- dir=in} +B 5 -2.5 -62.5 2.5 -57.5 {name=vdd dir=inout} +B 5 -2.5 57.5 2.5 62.5 {name=gnd dir=inout} +P 4 5 100 -40 -100 -40 -100 40 100 40 100 -40 {} +T {@symname} -44 -6 0 0 0.3 0.3 {} +T {@name} 45 -52 0 0 0.2 0.2 {} +T {Vo+} -95 -24 0 0 0.2 0.2 {} +T {Vo-} -95 16 0 0 0.2 0.2 {} +T {Vi+} 95 -16 2 0 0.2 0.2 {} +T {Vi-} 95 24 2 0 0.2 0.2 {} +T {vdd} 10 -39 0 1 0.2 0.2 {} +T {gnd} -10 34 2 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_16/conditions.yaml b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_16/conditions.yaml new file mode 100644 index 00000000..252bbf24 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_16/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice +N: 16 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: ff +filename: CML_core_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_16 +temperature: '80' +vdd: '1.2' diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_17/.spiceinit b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_17/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_17/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_17/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_17/CML_core_tb.sch new file mode 100644 index 00000000..0be98424 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_17/CML_core_tb.sch @@ -0,0 +1,71 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {} +V {} +S {} +E {} +N 740 -940 740 -920 {lab=GND} +N 740 -1090 740 -1060 {lab=VDD} +N 600 -1020 620 -1020 {lab=Vinplus} +N 600 -980 620 -980 {lab=Vinminus} +N 860 -1020 880 -1020 {lab=Voplus} +N 860 -980 880 -980 {lab=Vominus} +N 1150 -850 1150 -820 {lab=VDD} +N 1150 -760 1150 -730 {lab=GND} +N 930 -850 930 -820 {lab=Vinminus} +N 930 -760 930 -730 {lab=GND} +N 720 -850 720 -820 {lab=Vinplus} +N 720 -760 720 -730 {lab=GND} +C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write CML_core_tb.raw +set appendwrite +tran 10p 1n 160p + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_17/CML_core_tb_17.data vo_diff +quit + +.endc +"} +C {opin.sym} 880 -1020 2 1 {name=p6 lab=Voplus} +C {opin.sym} 880 -980 0 0 {name=p9 lab=Vominus} +C {devices/code_shown.sym} 10 -620 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_ss + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice + +.temp 80 +" +} +C {iopin.sym} 740 -1090 0 1 {name=p2 lab=VDD} +C {ipin.sym} 600 -1020 2 1 {name=p4 lab=Vinplus} +C {ipin.sym} 600 -980 2 1 {name=p1 lab=Vinminus} +C {CML_divider.sym} 740 -1000 0 1 {name=x1} +C {vsource.sym} 1150 -790 0 0 {name=V1 value=1.2 savecurrent=false} +C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} +C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} +C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 0.3 10G 0 0 0)" savecurrent=false} +C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 0.3 10G 0 0 180)" savecurrent=false} +C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_17/CML_core_tb_17.data b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_17/CML_core_tb_17.data new file mode 100644 index 00000000..15600382 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_17/CML_core_tb_17.data @@ -0,0 +1,85 @@ + 1.628000000000e-10 -4.852886719505e-01 + 1.728000000000e-10 -2.023606658915e-01 + 1.828000000000e-10 9.500407548716e-02 + 1.928000000000e-10 3.473018630854e-01 + 2.028000000000e-10 5.238539974445e-01 + 2.128000000000e-10 6.356942626004e-01 + 2.228000000000e-10 7.106560719901e-01 + 2.328000000000e-10 7.539243132234e-01 + 2.428000000000e-10 7.486736309564e-01 + 2.528000000000e-10 6.681985082542e-01 + 2.628000000000e-10 4.800908099257e-01 + 2.728000000000e-10 1.985903293754e-01 + 2.828000000000e-10 -9.801965724844e-02 + 2.928000000000e-10 -3.499456539083e-01 + 3.028000000000e-10 -5.264166063204e-01 + 3.128000000000e-10 -6.377599985577e-01 + 3.228000000000e-10 -7.123258227204e-01 + 3.328000000000e-10 -7.548386637736e-01 + 3.428000000000e-10 -7.491646196322e-01 + 3.528000000000e-10 -6.682802381819e-01 + 3.628000000000e-10 -4.802044877583e-01 + 3.728000000000e-10 -1.985554586747e-01 + 3.828000000000e-10 9.793570714348e-02 + 3.928000000000e-10 3.499705083814e-01 + 4.028000000000e-10 5.263126851869e-01 + 4.128000000000e-10 6.377668221774e-01 + 4.228000000000e-10 7.122256281615e-01 + 4.328000000000e-10 7.548735616237e-01 + 4.428000000000e-10 7.491068615558e-01 + 4.528000000000e-10 6.683430307676e-01 + 4.628000000000e-10 4.801581700099e-01 + 4.728000000000e-10 1.986186025664e-01 + 4.828000000000e-10 -9.798359332438e-02 + 4.928000000000e-10 -3.499159407959e-01 + 5.028000000000e-10 -5.263605524234e-01 + 5.128000000000e-10 -6.377159898188e-01 + 5.228000000000e-10 -7.122753084256e-01 + 5.328000000000e-10 -7.548237332543e-01 + 5.428000000000e-10 -7.491535548765e-01 + 5.528000000000e-10 -6.682936663178e-01 + 5.628000000000e-10 -4.802057994081e-01 + 5.728000000000e-10 -1.985692377738e-01 + 5.828000000000e-10 9.793754425938e-02 + 5.928000000000e-10 3.499612594703e-01 + 6.028000000000e-10 5.263165540334e-01 + 6.128000000000e-10 6.377608692391e-01 + 6.228000000000e-10 7.122309292959e-01 + 6.328000000000e-10 7.548679483739e-01 + 6.428000000000e-10 7.491113260135e-01 + 6.528000000000e-10 6.683367510584e-01 + 6.628000000000e-10 4.801631540398e-01 + 6.728000000000e-10 1.986123746205e-01 + 6.828000000000e-10 -9.797860547701e-02 + 6.928000000000e-10 -3.499219086015e-01 + 7.028000000000e-10 -5.263552271330e-01 + 7.128000000000e-10 -6.377219921840e-01 + 7.228000000000e-10 -7.122696952774e-01 + 7.328000000000e-10 -7.548295298651e-01 + 7.428000000000e-10 -7.491481908175e-01 + 7.528000000000e-10 -6.682991221138e-01 + 7.628000000000e-10 -4.802006967346e-01 + 7.728000000000e-10 -1.985745887274e-01 + 7.828000000000e-10 9.794256695295e-02 + 7.928000000000e-10 3.499565849765e-01 + 8.028000000000e-10 5.263210489698e-01 + 8.128000000000e-10 6.377564579322e-01 + 8.228000000000e-10 7.122353719246e-01 + 8.328000000000e-10 7.548635649925e-01 + 8.428000000000e-10 7.491155123701e-01 + 8.528000000000e-10 6.683323549155e-01 + 8.628000000000e-10 4.801676539865e-01 + 8.728000000000e-10 1.986078923136e-01 + 8.828000000000e-10 -9.797434132868e-02 + 8.928000000000e-10 -3.499261582655e-01 + 9.028000000000e-10 -5.263510069851e-01 + 9.128000000000e-10 -6.377263524572e-01 + 9.228000000000e-10 -7.122654282965e-01 + 9.328000000000e-10 -7.548337908470e-01 + 9.428000000000e-10 -7.491440991364e-01 + 9.528000000000e-10 -6.683032069827e-01 + 9.628000000000e-10 -4.801967157057e-01 + 9.728000000000e-10 -1.985786291727e-01 + 9.828000000000e-10 9.794644208878e-02 + 9.928000000000e-10 3.499529545785e-01 + 1.000000000000e-09 4.843355885316e-01 diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_17/CML_divider.sym b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_17/CML_divider.sym new file mode 100644 index 00000000..e46eb233 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_17/CML_divider.sym @@ -0,0 +1,30 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 -120 -20 -100 -20 {} +L 4 -120 20 -100 20 {} +L 4 100 -20 120 -20 {} +L 4 100 20 120 20 {} +L 7 0 -60 0 -40 {} +L 7 0 40 0 60 {} +B 5 -122.5 -22.5 -117.5 -17.5 {name=Vo+ dir=out} +B 5 -122.5 17.5 -117.5 22.5 {name=Vo- dir=out} +B 5 117.5 -22.5 122.5 -17.5 {name=Vi+ dir=in} +B 5 117.5 17.5 122.5 22.5 {name=Vi- dir=in} +B 5 -2.5 -62.5 2.5 -57.5 {name=vdd dir=inout} +B 5 -2.5 57.5 2.5 62.5 {name=gnd dir=inout} +P 4 5 100 -40 -100 -40 -100 40 100 40 100 -40 {} +T {@symname} -44 -6 0 0 0.3 0.3 {} +T {@name} 45 -52 0 0 0.2 0.2 {} +T {Vo+} -95 -24 0 0 0.2 0.2 {} +T {Vo-} -95 16 0 0 0.2 0.2 {} +T {Vi+} 95 -16 2 0 0.2 0.2 {} +T {Vi-} 95 24 2 0 0.2 0.2 {} +T {vdd} 10 -39 0 1 0.2 0.2 {} +T {gnd} -10 34 2 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_17/conditions.yaml b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_17/conditions.yaml new file mode 100644 index 00000000..0c4952bc --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_17/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice +N: 17 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: ss +filename: CML_core_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_17 +temperature: '80' +vdd: '1.2' diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_18/.spiceinit b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_18/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_18/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_18/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_18/CML_core_tb.sch new file mode 100644 index 00000000..328a4361 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_18/CML_core_tb.sch @@ -0,0 +1,71 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {} +V {} +S {} +E {} +N 740 -940 740 -920 {lab=GND} +N 740 -1090 740 -1060 {lab=VDD} +N 600 -1020 620 -1020 {lab=Vinplus} +N 600 -980 620 -980 {lab=Vinminus} +N 860 -1020 880 -1020 {lab=Voplus} +N 860 -980 880 -980 {lab=Vominus} +N 1150 -850 1150 -820 {lab=VDD} +N 1150 -760 1150 -730 {lab=GND} +N 930 -850 930 -820 {lab=Vinminus} +N 930 -760 930 -730 {lab=GND} +N 720 -850 720 -820 {lab=Vinplus} +N 720 -760 720 -730 {lab=GND} +C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write CML_core_tb.raw +set appendwrite +tran 10p 1n 160p + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_18/CML_core_tb_18.data vo_diff +quit + +.endc +"} +C {opin.sym} 880 -1020 2 1 {name=p6 lab=Voplus} +C {opin.sym} 880 -980 0 0 {name=p9 lab=Vominus} +C {devices/code_shown.sym} 10 -620 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_tt + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice + +.temp -40 +" +} +C {iopin.sym} 740 -1090 0 1 {name=p2 lab=VDD} +C {ipin.sym} 600 -1020 2 1 {name=p4 lab=Vinplus} +C {ipin.sym} 600 -980 2 1 {name=p1 lab=Vinminus} +C {CML_divider.sym} 740 -1000 0 1 {name=x1} +C {vsource.sym} 1150 -790 0 0 {name=V1 value=1.6 savecurrent=false} +C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} +C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} +C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 0.3 10G 0 0 0)" savecurrent=false} +C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 0.3 10G 0 0 180)" savecurrent=false} +C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_18/CML_core_tb_18.data b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_18/CML_core_tb_18.data new file mode 100644 index 00000000..6bdb4a2e --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_18/CML_core_tb_18.data @@ -0,0 +1,85 @@ + 1.628000000000e-10 5.747244840755e-01 + 1.728000000000e-10 2.031348680811e-01 + 1.828000000000e-10 -1.640358346053e-01 + 1.928000000000e-10 -4.121983890365e-01 + 2.028000000000e-10 -5.403960481430e-01 + 2.128000000000e-10 -6.175267008304e-01 + 2.228000000000e-10 -7.185181164841e-01 + 2.328000000000e-10 -8.111835866476e-01 + 2.428000000000e-10 -8.505757111821e-01 + 2.528000000000e-10 -7.941523888433e-01 + 2.628000000000e-10 -5.697557803605e-01 + 2.728000000000e-10 -1.993901761575e-01 + 2.828000000000e-10 1.667454340744e-01 + 2.928000000000e-10 4.143424459307e-01 + 3.028000000000e-10 5.421310172268e-01 + 3.128000000000e-10 6.189024162340e-01 + 3.228000000000e-10 7.194369498053e-01 + 3.328000000000e-10 8.117600127730e-01 + 3.428000000000e-10 8.508336653308e-01 + 3.528000000000e-10 7.942656656211e-01 + 3.628000000000e-10 5.697751550033e-01 + 3.728000000000e-10 1.994135726672e-01 + 3.828000000000e-10 -1.667386419247e-01 + 3.928000000000e-10 -4.143148464313e-01 + 4.028000000000e-10 -5.421262038320e-01 + 4.128000000000e-10 -6.188832903749e-01 + 4.228000000000e-10 -7.194346712496e-01 + 4.328000000000e-10 -8.117442314974e-01 + 4.428000000000e-10 -8.508381039982e-01 + 4.528000000000e-10 -7.942559196005e-01 + 4.628000000000e-10 -5.697859373045e-01 + 4.728000000000e-10 -1.993975895742e-01 + 4.828000000000e-10 1.667322235508e-01 + 4.928000000000e-10 4.143280512458e-01 + 5.028000000000e-10 5.421195877560e-01 + 5.128000000000e-10 6.188968586913e-01 + 5.228000000000e-10 7.194236426239e-01 + 5.328000000000e-10 8.117540342679e-01 + 5.428000000000e-10 8.508266757829e-01 + 5.528000000000e-10 7.942652287581e-01 + 5.628000000000e-10 5.697754142960e-01 + 5.728000000000e-10 1.994033695962e-01 + 5.828000000000e-10 -1.667424669503e-01 + 5.928000000000e-10 -4.143216611718e-01 + 6.028000000000e-10 -5.421291067647e-01 + 6.128000000000e-10 -6.188909595847e-01 + 6.228000000000e-10 -7.194310352535e-01 + 6.328000000000e-10 -8.117467342350e-01 + 6.428000000000e-10 -8.508333273630e-01 + 6.528000000000e-10 -7.942577903765e-01 + 6.628000000000e-10 -5.697836419865e-01 + 6.728000000000e-10 -1.993929431350e-01 + 6.828000000000e-10 1.667361734044e-01 + 6.928000000000e-10 4.143307053824e-01 + 7.028000000000e-10 5.421226813799e-01 + 7.128000000000e-10 6.189001833416e-01 + 7.228000000000e-10 7.194227358993e-01 + 7.328000000000e-10 8.117542266055e-01 + 7.428000000000e-10 8.508251070290e-01 + 7.528000000000e-10 7.942649966766e-01 + 7.628000000000e-10 5.697756363247e-01 + 7.728000000000e-10 1.993989977467e-01 + 7.828000000000e-10 -1.667434615441e-01 + 7.928000000000e-10 -4.143248161746e-01 + 8.028000000000e-10 -5.421295610790e-01 + 8.128000000000e-10 -6.188945163710e-01 + 8.228000000000e-10 -7.194289229798e-01 + 8.328000000000e-10 -8.117483413843e-01 + 8.428000000000e-10 -8.508308647988e-01 + 8.528000000000e-10 -7.942590780393e-01 + 8.628000000000e-10 -5.697822347435e-01 + 8.728000000000e-10 -1.993917000580e-01 + 8.828000000000e-10 1.667380255271e-01 + 8.928000000000e-10 4.143314131245e-01 + 9.028000000000e-10 5.421241182927e-01 + 9.128000000000e-10 6.189011822630e-01 + 9.228000000000e-10 7.194226089303e-01 + 9.328000000000e-10 8.117540798381e-01 + 9.428000000000e-10 8.508247577722e-01 + 9.528000000000e-10 7.942646412254e-01 + 9.628000000000e-10 5.697760282588e-01 + 9.728000000000e-10 1.993969946892e-01 + 9.828000000000e-10 -1.667434796269e-01 + 9.928000000000e-10 -4.143264352220e-01 + 1.000000000000e-09 -5.150731751424e-01 diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_18/CML_divider.sym b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_18/CML_divider.sym new file mode 100644 index 00000000..e46eb233 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_18/CML_divider.sym @@ -0,0 +1,30 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 -120 -20 -100 -20 {} +L 4 -120 20 -100 20 {} +L 4 100 -20 120 -20 {} +L 4 100 20 120 20 {} +L 7 0 -60 0 -40 {} +L 7 0 40 0 60 {} +B 5 -122.5 -22.5 -117.5 -17.5 {name=Vo+ dir=out} +B 5 -122.5 17.5 -117.5 22.5 {name=Vo- dir=out} +B 5 117.5 -22.5 122.5 -17.5 {name=Vi+ dir=in} +B 5 117.5 17.5 122.5 22.5 {name=Vi- dir=in} +B 5 -2.5 -62.5 2.5 -57.5 {name=vdd dir=inout} +B 5 -2.5 57.5 2.5 62.5 {name=gnd dir=inout} +P 4 5 100 -40 -100 -40 -100 40 100 40 100 -40 {} +T {@symname} -44 -6 0 0 0.3 0.3 {} +T {@name} 45 -52 0 0 0.2 0.2 {} +T {Vo+} -95 -24 0 0 0.2 0.2 {} +T {Vo-} -95 16 0 0 0.2 0.2 {} +T {Vi+} 95 -16 2 0 0.2 0.2 {} +T {Vi-} 95 24 2 0 0.2 0.2 {} +T {vdd} 10 -39 0 1 0.2 0.2 {} +T {gnd} -10 34 2 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_18/conditions.yaml b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_18/conditions.yaml new file mode 100644 index 00000000..8c98dac6 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_18/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice +N: 18 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: tt +filename: CML_core_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_18 +temperature: '-40' +vdd: '1.6' diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_19/.spiceinit b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_19/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_19/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_19/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_19/CML_core_tb.sch new file mode 100644 index 00000000..c09a1129 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_19/CML_core_tb.sch @@ -0,0 +1,71 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {} +V {} +S {} +E {} +N 740 -940 740 -920 {lab=GND} +N 740 -1090 740 -1060 {lab=VDD} +N 600 -1020 620 -1020 {lab=Vinplus} +N 600 -980 620 -980 {lab=Vinminus} +N 860 -1020 880 -1020 {lab=Voplus} +N 860 -980 880 -980 {lab=Vominus} +N 1150 -850 1150 -820 {lab=VDD} +N 1150 -760 1150 -730 {lab=GND} +N 930 -850 930 -820 {lab=Vinminus} +N 930 -760 930 -730 {lab=GND} +N 720 -850 720 -820 {lab=Vinplus} +N 720 -760 720 -730 {lab=GND} +C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write CML_core_tb.raw +set appendwrite +tran 10p 1n 160p + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_19/CML_core_tb_19.data vo_diff +quit + +.endc +"} +C {opin.sym} 880 -1020 2 1 {name=p6 lab=Voplus} +C {opin.sym} 880 -980 0 0 {name=p9 lab=Vominus} +C {devices/code_shown.sym} 10 -620 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_ff + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice + +.temp -40 +" +} +C {iopin.sym} 740 -1090 0 1 {name=p2 lab=VDD} +C {ipin.sym} 600 -1020 2 1 {name=p4 lab=Vinplus} +C {ipin.sym} 600 -980 2 1 {name=p1 lab=Vinminus} +C {CML_divider.sym} 740 -1000 0 1 {name=x1} +C {vsource.sym} 1150 -790 0 0 {name=V1 value=1.6 savecurrent=false} +C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} +C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} +C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 0.3 10G 0 0 0)" savecurrent=false} +C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 0.3 10G 0 0 180)" savecurrent=false} +C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_19/CML_core_tb_19.data b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_19/CML_core_tb_19.data new file mode 100644 index 00000000..cfa0d051 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_19/CML_core_tb_19.data @@ -0,0 +1,85 @@ + 1.628000000000e-10 5.707988120441e-01 + 1.728000000000e-10 2.050562196689e-01 + 1.828000000000e-10 -1.568083182045e-01 + 1.928000000000e-10 -4.020696229917e-01 + 2.028000000000e-10 -5.270997867267e-01 + 2.128000000000e-10 -6.030122328411e-01 + 2.228000000000e-10 -7.060404303518e-01 + 2.328000000000e-10 -7.977729548420e-01 + 2.428000000000e-10 -8.357087979117e-01 + 2.528000000000e-10 -7.823438332914e-01 + 2.628000000000e-10 -5.641015035384e-01 + 2.728000000000e-10 -1.996979729386e-01 + 2.828000000000e-10 1.605395493177e-01 + 2.928000000000e-10 4.049019788065e-01 + 3.028000000000e-10 5.293349858313e-01 + 3.128000000000e-10 6.047755538782e-01 + 3.228000000000e-10 7.072083327509e-01 + 3.328000000000e-10 7.985177439850e-01 + 3.428000000000e-10 8.360745897587e-01 + 3.528000000000e-10 7.825643018760e-01 + 3.628000000000e-10 5.642043953033e-01 + 3.728000000000e-10 1.998026918934e-01 + 3.828000000000e-10 -1.604858693758e-01 + 3.928000000000e-10 -4.048299316522e-01 + 4.028000000000e-10 -5.293048172022e-01 + 4.128000000000e-10 -6.047267733392e-01 + 4.228000000000e-10 -7.071932602489e-01 + 4.328000000000e-10 -7.984844304353e-01 + 4.428000000000e-10 -8.360789616419e-01 + 4.528000000000e-10 -7.825446968704e-01 + 4.628000000000e-10 -5.642205462461e-01 + 4.728000000000e-10 -1.997755595675e-01 + 4.828000000000e-10 1.604765943145e-01 + 4.928000000000e-10 4.048512691297e-01 + 5.028000000000e-10 5.292953655278e-01 + 5.128000000000e-10 6.047472585148e-01 + 5.228000000000e-10 7.071773753770e-01 + 5.328000000000e-10 7.985008103891e-01 + 5.428000000000e-10 8.360621173440e-01 + 5.528000000000e-10 7.825604957102e-01 + 5.628000000000e-10 5.642042607216e-01 + 5.728000000000e-10 1.997857962408e-01 + 5.828000000000e-10 -1.604926267251e-01 + 5.928000000000e-10 -4.048407079574e-01 + 6.028000000000e-10 -5.293103597207e-01 + 6.128000000000e-10 -6.047374718328e-01 + 6.228000000000e-10 -7.071895246392e-01 + 6.328000000000e-10 -7.984887922220e-01 + 6.428000000000e-10 -8.360735876941e-01 + 6.528000000000e-10 -7.825482507809e-01 + 6.628000000000e-10 -5.642183473935e-01 + 6.728000000000e-10 -1.997692084041e-01 + 6.828000000000e-10 1.604823178167e-01 + 6.928000000000e-10 4.048548923992e-01 + 7.028000000000e-10 5.293001528657e-01 + 7.128000000000e-10 6.047514904939e-01 + 7.228000000000e-10 7.071767775245e-01 + 7.328000000000e-10 7.985010886851e-01 + 7.428000000000e-10 8.360609061049e-01 + 7.528000000000e-10 7.825602391468e-01 + 7.628000000000e-10 5.642057995328e-01 + 7.728000000000e-10 1.997793833692e-01 + 7.828000000000e-10 -1.604939026989e-01 + 7.928000000000e-10 -4.048452814924e-01 + 8.028000000000e-10 -5.293110935611e-01 + 8.128000000000e-10 -6.047422910037e-01 + 8.228000000000e-10 -7.071868576548e-01 + 8.328000000000e-10 -7.984914661054e-01 + 8.428000000000e-10 -8.360704549701e-01 + 8.528000000000e-10 -7.825505283213e-01 + 8.628000000000e-10 -5.642168951425e-01 + 8.728000000000e-10 -1.997675829904e-01 + 8.828000000000e-10 1.604850893678e-01 + 8.928000000000e-10 4.048557791622e-01 + 9.028000000000e-10 5.293024006551e-01 + 9.128000000000e-10 6.047526676189e-01 + 9.228000000000e-10 7.071769813422e-01 + 9.328000000000e-10 7.985009240492e-01 + 9.428000000000e-10 8.360608174754e-01 + 9.528000000000e-10 7.825597625659e-01 + 9.628000000000e-10 5.642070937767e-01 + 9.728000000000e-10 1.997763618165e-01 + 9.828000000000e-10 -1.604938267743e-01 + 9.928000000000e-10 -4.048476936234e-01 + 1.000000000000e-09 -5.033604123532e-01 diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_19/CML_divider.sym b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_19/CML_divider.sym new file mode 100644 index 00000000..e46eb233 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_19/CML_divider.sym @@ -0,0 +1,30 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 -120 -20 -100 -20 {} +L 4 -120 20 -100 20 {} +L 4 100 -20 120 -20 {} +L 4 100 20 120 20 {} +L 7 0 -60 0 -40 {} +L 7 0 40 0 60 {} +B 5 -122.5 -22.5 -117.5 -17.5 {name=Vo+ dir=out} +B 5 -122.5 17.5 -117.5 22.5 {name=Vo- dir=out} +B 5 117.5 -22.5 122.5 -17.5 {name=Vi+ dir=in} +B 5 117.5 17.5 122.5 22.5 {name=Vi- dir=in} +B 5 -2.5 -62.5 2.5 -57.5 {name=vdd dir=inout} +B 5 -2.5 57.5 2.5 62.5 {name=gnd dir=inout} +P 4 5 100 -40 -100 -40 -100 40 100 40 100 -40 {} +T {@symname} -44 -6 0 0 0.3 0.3 {} +T {@name} 45 -52 0 0 0.2 0.2 {} +T {Vo+} -95 -24 0 0 0.2 0.2 {} +T {Vo-} -95 16 0 0 0.2 0.2 {} +T {Vi+} 95 -16 2 0 0.2 0.2 {} +T {Vi-} 95 24 2 0 0.2 0.2 {} +T {vdd} 10 -39 0 1 0.2 0.2 {} +T {gnd} -10 34 2 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_19/conditions.yaml b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_19/conditions.yaml new file mode 100644 index 00000000..8604dc5c --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_19/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice +N: 19 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: ff +filename: CML_core_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_19 +temperature: '-40' +vdd: '1.6' diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_20/.spiceinit b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_20/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_20/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_20/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_20/CML_core_tb.sch new file mode 100644 index 00000000..40ea2fb0 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_20/CML_core_tb.sch @@ -0,0 +1,71 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {} +V {} +S {} +E {} +N 740 -940 740 -920 {lab=GND} +N 740 -1090 740 -1060 {lab=VDD} +N 600 -1020 620 -1020 {lab=Vinplus} +N 600 -980 620 -980 {lab=Vinminus} +N 860 -1020 880 -1020 {lab=Voplus} +N 860 -980 880 -980 {lab=Vominus} +N 1150 -850 1150 -820 {lab=VDD} +N 1150 -760 1150 -730 {lab=GND} +N 930 -850 930 -820 {lab=Vinminus} +N 930 -760 930 -730 {lab=GND} +N 720 -850 720 -820 {lab=Vinplus} +N 720 -760 720 -730 {lab=GND} +C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write CML_core_tb.raw +set appendwrite +tran 10p 1n 160p + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_20/CML_core_tb_20.data vo_diff +quit + +.endc +"} +C {opin.sym} 880 -1020 2 1 {name=p6 lab=Voplus} +C {opin.sym} 880 -980 0 0 {name=p9 lab=Vominus} +C {devices/code_shown.sym} 10 -620 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_ss + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice + +.temp -40 +" +} +C {iopin.sym} 740 -1090 0 1 {name=p2 lab=VDD} +C {ipin.sym} 600 -1020 2 1 {name=p4 lab=Vinplus} +C {ipin.sym} 600 -980 2 1 {name=p1 lab=Vinminus} +C {CML_divider.sym} 740 -1000 0 1 {name=x1} +C {vsource.sym} 1150 -790 0 0 {name=V1 value=1.6 savecurrent=false} +C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} +C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} +C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 0.3 10G 0 0 0)" savecurrent=false} +C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 0.3 10G 0 0 180)" savecurrent=false} +C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_20/CML_core_tb_20.data b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_20/CML_core_tb_20.data new file mode 100644 index 00000000..696f2b8b --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_20/CML_core_tb_20.data @@ -0,0 +1,85 @@ + 1.628000000000e-10 5.787258342535e-01 + 1.728000000000e-10 2.078017915173e-01 + 1.828000000000e-10 -1.622649468476e-01 + 1.928000000000e-10 -4.154784848215e-01 + 2.028000000000e-10 -5.503628241592e-01 + 2.128000000000e-10 -6.299323770996e-01 + 2.228000000000e-10 -7.254942323191e-01 + 2.328000000000e-10 -8.176578932007e-01 + 2.428000000000e-10 -8.600222409410e-01 + 2.528000000000e-10 -8.019093712422e-01 + 2.628000000000e-10 -5.756893793886e-01 + 2.728000000000e-10 -2.057606209176e-01 + 2.828000000000e-10 1.639197157563e-01 + 2.928000000000e-10 4.168841038800e-01 + 3.028000000000e-10 5.515424627408e-01 + 3.128000000000e-10 6.308336221978e-01 + 3.228000000000e-10 7.261208861559e-01 + 3.328000000000e-10 8.180354096547e-01 + 3.428000000000e-10 8.601969327831e-01 + 3.528000000000e-10 8.019450515145e-01 + 3.628000000000e-10 5.756806762770e-01 + 3.728000000000e-10 2.057351595047e-01 + 3.828000000000e-10 -1.639234125928e-01 + 3.928000000000e-10 -4.168916689126e-01 + 4.028000000000e-10 -5.515399403849e-01 + 4.128000000000e-10 -6.308421950132e-01 + 4.228000000000e-10 -7.261151591955e-01 + 4.328000000000e-10 -8.180409257235e-01 + 4.428000000000e-10 -8.601903753395e-01 + 4.528000000000e-10 -8.019506024478e-01 + 4.628000000000e-10 -5.756757498169e-01 + 4.728000000000e-10 -2.057370812605e-01 + 4.828000000000e-10 1.639284669376e-01 + 4.928000000000e-10 4.168895758092e-01 + 5.028000000000e-10 5.515444733402e-01 + 5.128000000000e-10 6.308408648378e-01 + 5.228000000000e-10 7.261175778597e-01 + 5.328000000000e-10 8.180376908128e-01 + 5.428000000000e-10 8.601923700088e-01 + 5.528000000000e-10 8.019470527506e-01 + 5.628000000000e-10 5.756789455974e-01 + 5.728000000000e-10 2.057316537746e-01 + 5.828000000000e-10 -1.639258645561e-01 + 5.928000000000e-10 -4.168940343704e-01 + 6.028000000000e-10 -5.515416140289e-01 + 6.128000000000e-10 -6.308456056710e-01 + 6.228000000000e-10 -7.261132930683e-01 + 6.328000000000e-10 -8.180415890619e-01 + 6.428000000000e-10 -8.601877913845e-01 + 6.528000000000e-10 -8.019507055326e-01 + 6.628000000000e-10 -5.756748223597e-01 + 6.728000000000e-10 -2.057339330851e-01 + 6.828000000000e-10 1.639294327626e-01 + 6.928000000000e-10 4.168918933453e-01 + 7.028000000000e-10 5.515448110547e-01 + 7.128000000000e-10 6.308438013344e-01 + 7.228000000000e-10 7.261156471026e-01 + 7.328000000000e-10 8.180389426729e-01 + 7.428000000000e-10 8.601899882644e-01 + 7.528000000000e-10 8.019478991926e-01 + 7.628000000000e-10 5.756775488816e-01 + 7.728000000000e-10 2.057303912125e-01 + 7.828000000000e-10 -1.639270777727e-01 + 7.928000000000e-10 -4.168949361223e-01 + 8.028000000000e-10 -5.515423789761e-01 + 8.128000000000e-10 -6.308469511551e-01 + 8.228000000000e-10 -7.261125857103e-01 + 8.328000000000e-10 -8.180418172660e-01 + 8.428000000000e-10 -8.601868536640e-01 + 8.528000000000e-10 -8.019506539776e-01 + 8.628000000000e-10 -5.756745040863e-01 + 8.728000000000e-10 -2.057325997968e-01 + 8.828000000000e-10 1.639296206310e-01 + 8.928000000000e-10 4.168929982528e-01 + 9.028000000000e-10 5.515447184418e-01 + 9.128000000000e-10 6.308451859194e-01 + 9.228000000000e-10 7.261146020976e-01 + 9.328000000000e-10 8.180396416883e-01 + 9.428000000000e-10 8.601888436252e-01 + 9.528000000000e-10 8.019484098509e-01 + 9.628000000000e-10 5.756767177581e-01 + 9.728000000000e-10 2.057300830001e-01 + 9.828000000000e-10 -1.639276725752e-01 + 9.928000000000e-10 -4.168951851932e-01 + 1.000000000000e-09 -5.223291820834e-01 diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_20/CML_divider.sym b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_20/CML_divider.sym new file mode 100644 index 00000000..e46eb233 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_20/CML_divider.sym @@ -0,0 +1,30 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 -120 -20 -100 -20 {} +L 4 -120 20 -100 20 {} +L 4 100 -20 120 -20 {} +L 4 100 20 120 20 {} +L 7 0 -60 0 -40 {} +L 7 0 40 0 60 {} +B 5 -122.5 -22.5 -117.5 -17.5 {name=Vo+ dir=out} +B 5 -122.5 17.5 -117.5 22.5 {name=Vo- dir=out} +B 5 117.5 -22.5 122.5 -17.5 {name=Vi+ dir=in} +B 5 117.5 17.5 122.5 22.5 {name=Vi- dir=in} +B 5 -2.5 -62.5 2.5 -57.5 {name=vdd dir=inout} +B 5 -2.5 57.5 2.5 62.5 {name=gnd dir=inout} +P 4 5 100 -40 -100 -40 -100 40 100 40 100 -40 {} +T {@symname} -44 -6 0 0 0.3 0.3 {} +T {@name} 45 -52 0 0 0.2 0.2 {} +T {Vo+} -95 -24 0 0 0.2 0.2 {} +T {Vo-} -95 16 0 0 0.2 0.2 {} +T {Vi+} 95 -16 2 0 0.2 0.2 {} +T {Vi-} 95 24 2 0 0.2 0.2 {} +T {vdd} 10 -39 0 1 0.2 0.2 {} +T {gnd} -10 34 2 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_20/conditions.yaml b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_20/conditions.yaml new file mode 100644 index 00000000..1514a4fc --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_20/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice +N: 20 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: ss +filename: CML_core_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_20 +temperature: '-40' +vdd: '1.6' diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_21/.spiceinit b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_21/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_21/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_21/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_21/CML_core_tb.sch new file mode 100644 index 00000000..31235299 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_21/CML_core_tb.sch @@ -0,0 +1,71 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {} +V {} +S {} +E {} +N 740 -940 740 -920 {lab=GND} +N 740 -1090 740 -1060 {lab=VDD} +N 600 -1020 620 -1020 {lab=Vinplus} +N 600 -980 620 -980 {lab=Vinminus} +N 860 -1020 880 -1020 {lab=Voplus} +N 860 -980 880 -980 {lab=Vominus} +N 1150 -850 1150 -820 {lab=VDD} +N 1150 -760 1150 -730 {lab=GND} +N 930 -850 930 -820 {lab=Vinminus} +N 930 -760 930 -730 {lab=GND} +N 720 -850 720 -820 {lab=Vinplus} +N 720 -760 720 -730 {lab=GND} +C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write CML_core_tb.raw +set appendwrite +tran 10p 1n 160p + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_21/CML_core_tb_21.data vo_diff +quit + +.endc +"} +C {opin.sym} 880 -1020 2 1 {name=p6 lab=Voplus} +C {opin.sym} 880 -980 0 0 {name=p9 lab=Vominus} +C {devices/code_shown.sym} 10 -620 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_tt + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice + +.temp 27 +" +} +C {iopin.sym} 740 -1090 0 1 {name=p2 lab=VDD} +C {ipin.sym} 600 -1020 2 1 {name=p4 lab=Vinplus} +C {ipin.sym} 600 -980 2 1 {name=p1 lab=Vinminus} +C {CML_divider.sym} 740 -1000 0 1 {name=x1} +C {vsource.sym} 1150 -790 0 0 {name=V1 value=1.6 savecurrent=false} +C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} +C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} +C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 0.3 10G 0 0 0)" savecurrent=false} +C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 0.3 10G 0 0 180)" savecurrent=false} +C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_21/CML_core_tb_21.data b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_21/CML_core_tb_21.data new file mode 100644 index 00000000..b199692b --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_21/CML_core_tb_21.data @@ -0,0 +1,85 @@ + 1.628000000000e-10 5.573501255338e-01 + 1.728000000000e-10 2.075317226020e-01 + 1.828000000000e-10 -1.459750710281e-01 + 1.928000000000e-10 -3.981214724862e-01 + 2.028000000000e-10 -5.378144391949e-01 + 2.128000000000e-10 -6.222071778117e-01 + 2.228000000000e-10 -7.144656924256e-01 + 2.328000000000e-10 -7.957588475985e-01 + 2.428000000000e-10 -8.259944634024e-01 + 2.528000000000e-10 -7.639419051023e-01 + 2.628000000000e-10 -5.499582313836e-01 + 2.728000000000e-10 -2.015822705639e-01 + 2.828000000000e-10 1.503547149045e-01 + 2.928000000000e-10 4.016725871885e-01 + 3.028000000000e-10 5.406529598204e-01 + 3.128000000000e-10 6.244429748136e-01 + 3.228000000000e-10 7.159703736038e-01 + 3.328000000000e-10 7.967442303644e-01 + 3.428000000000e-10 8.264465978318e-01 + 3.528000000000e-10 7.642028659706e-01 + 3.628000000000e-10 5.500598536778e-01 + 3.728000000000e-10 2.017167809837e-01 + 3.828000000000e-10 -1.502994036069e-01 + 3.928000000000e-10 -4.015772846450e-01 + 4.028000000000e-10 -5.406194194587e-01 + 4.128000000000e-10 -6.243734224937e-01 + 4.228000000000e-10 -7.159615996115e-01 + 4.328000000000e-10 -7.966982014285e-01 + 4.428000000000e-10 -8.264613960108e-01 + 4.528000000000e-10 -7.641725666632e-01 + 4.628000000000e-10 -5.500862997678e-01 + 4.728000000000e-10 -2.016863380222e-01 + 4.828000000000e-10 1.502773228882e-01 + 4.928000000000e-10 4.016041852700e-01 + 5.028000000000e-10 5.405973091915e-01 + 5.128000000000e-10 6.243995261147e-01 + 5.228000000000e-10 7.159367954986e-01 + 5.328000000000e-10 7.967237369409e-01 + 5.428000000000e-10 8.264362767952e-01 + 5.528000000000e-10 7.641972989051e-01 + 5.628000000000e-10 5.500612169320e-01 + 5.728000000000e-10 2.017098008556e-01 + 5.828000000000e-10 -1.502994747055e-01 + 5.928000000000e-10 -4.015836624598e-01 + 6.028000000000e-10 -5.406181129288e-01 + 6.128000000000e-10 -6.243799299897e-01 + 6.228000000000e-10 -7.159574419629e-01 + 6.328000000000e-10 -7.967036557443e-01 + 6.428000000000e-10 -8.264562124237e-01 + 6.528000000000e-10 -7.641768324224e-01 + 6.628000000000e-10 -5.500832409355e-01 + 6.728000000000e-10 -2.016878835950e-01 + 6.828000000000e-10 1.502805147690e-01 + 6.928000000000e-10 4.016033959904e-01 + 7.028000000000e-10 5.405993862387e-01 + 7.128000000000e-10 6.243994053085e-01 + 7.228000000000e-10 7.159375001908e-01 + 7.328000000000e-10 7.967227911979e-01 + 7.428000000000e-10 8.264369695557e-01 + 7.528000000000e-10 7.641957504677e-01 + 7.628000000000e-10 5.500638388088e-01 + 7.728000000000e-10 2.017065810231e-01 + 7.828000000000e-10 -1.502977706940e-01 + 7.928000000000e-10 -4.015868518817e-01 + 8.028000000000e-10 -5.406159021220e-01 + 8.128000000000e-10 -6.243834226598e-01 + 8.228000000000e-10 -7.159542700032e-01 + 8.328000000000e-10 -7.967069113699e-01 + 8.428000000000e-10 -8.264528986398e-01 + 8.528000000000e-10 -7.641796598358e-01 + 8.628000000000e-10 -5.500810114131e-01 + 8.728000000000e-10 -2.016895461018e-01 + 8.828000000000e-10 1.502827695530e-01 + 8.928000000000e-10 4.016022282365e-01 + 9.028000000000e-10 5.406011687872e-01 + 9.128000000000e-10 6.243986267121e-01 + 9.228000000000e-10 7.159387803359e-01 + 9.328000000000e-10 7.967217157361e-01 + 9.428000000000e-10 8.264380732409e-01 + 9.528000000000e-10 7.641943142595e-01 + 9.628000000000e-10 5.500658668163e-01 + 9.728000000000e-10 2.017043552905e-01 + 9.828000000000e-10 -1.502962363926e-01 + 9.928000000000e-10 -4.015890294030e-01 + 1.000000000000e-09 -5.098048460363e-01 diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_21/CML_divider.sym b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_21/CML_divider.sym new file mode 100644 index 00000000..e46eb233 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_21/CML_divider.sym @@ -0,0 +1,30 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 -120 -20 -100 -20 {} +L 4 -120 20 -100 20 {} +L 4 100 -20 120 -20 {} +L 4 100 20 120 20 {} +L 7 0 -60 0 -40 {} +L 7 0 40 0 60 {} +B 5 -122.5 -22.5 -117.5 -17.5 {name=Vo+ dir=out} +B 5 -122.5 17.5 -117.5 22.5 {name=Vo- dir=out} +B 5 117.5 -22.5 122.5 -17.5 {name=Vi+ dir=in} +B 5 117.5 17.5 122.5 22.5 {name=Vi- dir=in} +B 5 -2.5 -62.5 2.5 -57.5 {name=vdd dir=inout} +B 5 -2.5 57.5 2.5 62.5 {name=gnd dir=inout} +P 4 5 100 -40 -100 -40 -100 40 100 40 100 -40 {} +T {@symname} -44 -6 0 0 0.3 0.3 {} +T {@name} 45 -52 0 0 0.2 0.2 {} +T {Vo+} -95 -24 0 0 0.2 0.2 {} +T {Vo-} -95 16 0 0 0.2 0.2 {} +T {Vi+} 95 -16 2 0 0.2 0.2 {} +T {Vi-} 95 24 2 0 0.2 0.2 {} +T {vdd} 10 -39 0 1 0.2 0.2 {} +T {gnd} -10 34 2 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_21/conditions.yaml b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_21/conditions.yaml new file mode 100644 index 00000000..8184d1c1 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_21/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice +N: 21 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: tt +filename: CML_core_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_21 +temperature: '27' +vdd: '1.6' diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_22/.spiceinit b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_22/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_22/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_22/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_22/CML_core_tb.sch new file mode 100644 index 00000000..e729411a --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_22/CML_core_tb.sch @@ -0,0 +1,71 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {} +V {} +S {} +E {} +N 740 -940 740 -920 {lab=GND} +N 740 -1090 740 -1060 {lab=VDD} +N 600 -1020 620 -1020 {lab=Vinplus} +N 600 -980 620 -980 {lab=Vinminus} +N 860 -1020 880 -1020 {lab=Voplus} +N 860 -980 880 -980 {lab=Vominus} +N 1150 -850 1150 -820 {lab=VDD} +N 1150 -760 1150 -730 {lab=GND} +N 930 -850 930 -820 {lab=Vinminus} +N 930 -760 930 -730 {lab=GND} +N 720 -850 720 -820 {lab=Vinplus} +N 720 -760 720 -730 {lab=GND} +C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write CML_core_tb.raw +set appendwrite +tran 10p 1n 160p + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_22/CML_core_tb_22.data vo_diff +quit + +.endc +"} +C {opin.sym} 880 -1020 2 1 {name=p6 lab=Voplus} +C {opin.sym} 880 -980 0 0 {name=p9 lab=Vominus} +C {devices/code_shown.sym} 10 -620 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_ff + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice + +.temp 27 +" +} +C {iopin.sym} 740 -1090 0 1 {name=p2 lab=VDD} +C {ipin.sym} 600 -1020 2 1 {name=p4 lab=Vinplus} +C {ipin.sym} 600 -980 2 1 {name=p1 lab=Vinminus} +C {CML_divider.sym} 740 -1000 0 1 {name=x1} +C {vsource.sym} 1150 -790 0 0 {name=V1 value=1.6 savecurrent=false} +C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} +C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} +C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 0.3 10G 0 0 0)" savecurrent=false} +C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 0.3 10G 0 0 180)" savecurrent=false} +C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_22/CML_core_tb_22.data b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_22/CML_core_tb_22.data new file mode 100644 index 00000000..60989baa --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_22/CML_core_tb_22.data @@ -0,0 +1,85 @@ + 1.628000000000e-10 5.539342660958e-01 + 1.728000000000e-10 2.092356958505e-01 + 1.828000000000e-10 -1.399589402437e-01 + 1.928000000000e-10 -3.887664135754e-01 + 2.028000000000e-10 -5.242925922458e-01 + 2.128000000000e-10 -6.069418933180e-01 + 2.228000000000e-10 -7.009344183633e-01 + 2.328000000000e-10 -7.819154973681e-01 + 2.428000000000e-10 -8.115011787752e-01 + 2.528000000000e-10 -7.528782125237e-01 + 2.628000000000e-10 -5.449881732974e-01 + 2.728000000000e-10 -2.018085669996e-01 + 2.828000000000e-10 1.453371294429e-01 + 2.928000000000e-10 3.930046196046e-01 + 3.028000000000e-10 5.275952350978e-01 + 3.128000000000e-10 6.094983923496e-01 + 3.228000000000e-10 7.026430994561e-01 + 3.328000000000e-10 7.830459101342e-01 + 3.428000000000e-10 8.120643124066e-01 + 3.528000000000e-10 7.532542388222e-01 + 3.628000000000e-10 5.451889146656e-01 + 3.728000000000e-10 2.020380161925e-01 + 3.828000000000e-10 -1.452202245966e-01 + 3.928000000000e-10 -3.928550396378e-01 + 4.028000000000e-10 -5.275272038156e-01 + 4.128000000000e-10 -6.093963788491e-01 + 4.228000000000e-10 -7.026185076638e-01 + 4.328000000000e-10 -7.829822343256e-01 + 4.428000000000e-10 -8.120760322925e-01 + 4.528000000000e-10 -7.532137307257e-01 + 4.628000000000e-10 -5.452168897181e-01 + 4.728000000000e-10 -2.019975663161e-01 + 4.828000000000e-10 1.451970774770e-01 + 4.928000000000e-10 3.928886426712e-01 + 5.028000000000e-10 5.275035947470e-01 + 5.128000000000e-10 6.094279224341e-01 + 5.228000000000e-10 7.025906785817e-01 + 5.328000000000e-10 7.830125874729e-01 + 5.428000000000e-10 8.120474298427e-01 + 5.528000000000e-10 7.532431353399e-01 + 5.628000000000e-10 5.451877569897e-01 + 5.728000000000e-10 2.020249691554e-01 + 5.828000000000e-10 -1.452230860448e-01 + 5.928000000000e-10 -3.928644448798e-01 + 6.028000000000e-10 -5.275279936983e-01 + 6.128000000000e-10 -6.094050782075e-01 + 6.228000000000e-10 -7.026148963104e-01 + 6.328000000000e-10 -7.829886841749e-01 + 6.428000000000e-10 -8.120708569069e-01 + 6.528000000000e-10 -7.532187757848e-01 + 6.628000000000e-10 -5.452139572157e-01 + 6.728000000000e-10 -2.019983459359e-01 + 6.828000000000e-10 1.452010057661e-01 + 6.928000000000e-10 3.928879698340e-01 + 7.028000000000e-10 5.275064479083e-01 + 7.128000000000e-10 6.094280990005e-01 + 7.228000000000e-10 7.025917879356e-01 + 7.328000000000e-10 7.830113821989e-01 + 7.428000000000e-10 8.120485256383e-01 + 7.528000000000e-10 7.532412367972e-01 + 7.628000000000e-10 5.451912171970e-01 + 7.728000000000e-10 2.020204953427e-01 + 7.828000000000e-10 -1.452213117732e-01 + 7.928000000000e-10 -3.928683087954e-01 + 8.028000000000e-10 -5.275257546899e-01 + 8.128000000000e-10 -6.094092443434e-01 + 8.228000000000e-10 -7.026114152643e-01 + 8.328000000000e-10 -7.829924127838e-01 + 8.428000000000e-10 -8.120671951794e-01 + 8.528000000000e-10 -7.532220607865e-01 + 8.628000000000e-10 -5.452116115033e-01 + 8.728000000000e-10 -2.019999026099e-01 + 8.828000000000e-10 1.452037268076e-01 + 8.928000000000e-10 3.928866787286e-01 + 9.028000000000e-10 5.275085793908e-01 + 9.128000000000e-10 6.094272189130e-01 + 9.228000000000e-10 7.025932924679e-01 + 9.328000000000e-10 7.830100596429e-01 + 9.428000000000e-10 8.120498613680e-01 + 9.528000000000e-10 7.532395420815e-01 + 9.628000000000e-10 5.451937902395e-01 + 9.728000000000e-10 2.020175827840e-01 + 9.828000000000e-10 -1.452196157349e-01 + 9.928000000000e-10 -3.928709378362e-01 + 1.000000000000e-09 -4.979849828547e-01 diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_22/CML_divider.sym b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_22/CML_divider.sym new file mode 100644 index 00000000..e46eb233 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_22/CML_divider.sym @@ -0,0 +1,30 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 -120 -20 -100 -20 {} +L 4 -120 20 -100 20 {} +L 4 100 -20 120 -20 {} +L 4 100 20 120 20 {} +L 7 0 -60 0 -40 {} +L 7 0 40 0 60 {} +B 5 -122.5 -22.5 -117.5 -17.5 {name=Vo+ dir=out} +B 5 -122.5 17.5 -117.5 22.5 {name=Vo- dir=out} +B 5 117.5 -22.5 122.5 -17.5 {name=Vi+ dir=in} +B 5 117.5 17.5 122.5 22.5 {name=Vi- dir=in} +B 5 -2.5 -62.5 2.5 -57.5 {name=vdd dir=inout} +B 5 -2.5 57.5 2.5 62.5 {name=gnd dir=inout} +P 4 5 100 -40 -100 -40 -100 40 100 40 100 -40 {} +T {@symname} -44 -6 0 0 0.3 0.3 {} +T {@name} 45 -52 0 0 0.2 0.2 {} +T {Vo+} -95 -24 0 0 0.2 0.2 {} +T {Vo-} -95 16 0 0 0.2 0.2 {} +T {Vi+} 95 -16 2 0 0.2 0.2 {} +T {Vi-} 95 24 2 0 0.2 0.2 {} +T {vdd} 10 -39 0 1 0.2 0.2 {} +T {gnd} -10 34 2 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_22/conditions.yaml b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_22/conditions.yaml new file mode 100644 index 00000000..9ee9fc95 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_22/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice +N: 22 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: ff +filename: CML_core_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_22 +temperature: '27' +vdd: '1.6' diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_23/.spiceinit b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_23/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_23/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_23/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_23/CML_core_tb.sch new file mode 100644 index 00000000..15caf797 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_23/CML_core_tb.sch @@ -0,0 +1,71 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {} +V {} +S {} +E {} +N 740 -940 740 -920 {lab=GND} +N 740 -1090 740 -1060 {lab=VDD} +N 600 -1020 620 -1020 {lab=Vinplus} +N 600 -980 620 -980 {lab=Vinminus} +N 860 -1020 880 -1020 {lab=Voplus} +N 860 -980 880 -980 {lab=Vominus} +N 1150 -850 1150 -820 {lab=VDD} +N 1150 -760 1150 -730 {lab=GND} +N 930 -850 930 -820 {lab=Vinminus} +N 930 -760 930 -730 {lab=GND} +N 720 -850 720 -820 {lab=Vinplus} +N 720 -760 720 -730 {lab=GND} +C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write CML_core_tb.raw +set appendwrite +tran 10p 1n 160p + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_23/CML_core_tb_23.data vo_diff +quit + +.endc +"} +C {opin.sym} 880 -1020 2 1 {name=p6 lab=Voplus} +C {opin.sym} 880 -980 0 0 {name=p9 lab=Vominus} +C {devices/code_shown.sym} 10 -620 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_ss + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice + +.temp 27 +" +} +C {iopin.sym} 740 -1090 0 1 {name=p2 lab=VDD} +C {ipin.sym} 600 -1020 2 1 {name=p4 lab=Vinplus} +C {ipin.sym} 600 -980 2 1 {name=p1 lab=Vinminus} +C {CML_divider.sym} 740 -1000 0 1 {name=x1} +C {vsource.sym} 1150 -790 0 0 {name=V1 value=1.6 savecurrent=false} +C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} +C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} +C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 0.3 10G 0 0 0)" savecurrent=false} +C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 0.3 10G 0 0 180)" savecurrent=false} +C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_23/CML_core_tb_23.data b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_23/CML_core_tb_23.data new file mode 100644 index 00000000..208aa09a --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_23/CML_core_tb_23.data @@ -0,0 +1,85 @@ + 1.628000000000e-10 5.609932954578e-01 + 1.728000000000e-10 2.135803595156e-01 + 1.828000000000e-10 -1.406795105233e-01 + 1.928000000000e-10 -3.985242549940e-01 + 2.028000000000e-10 -5.467902250198e-01 + 2.128000000000e-10 -6.349197102047e-01 + 2.228000000000e-10 -7.225601155251e-01 + 2.328000000000e-10 -8.022847270862e-01 + 2.428000000000e-10 -8.341174139963e-01 + 2.528000000000e-10 -7.703472968512e-01 + 2.628000000000e-10 -5.554753546701e-01 + 2.728000000000e-10 -2.092959847468e-01 + 2.828000000000e-10 1.439827087572e-01 + 2.928000000000e-10 4.013409764958e-01 + 3.028000000000e-10 5.491103575815e-01 + 3.128000000000e-10 6.367736171292e-01 + 3.228000000000e-10 7.238327114492e-01 + 3.328000000000e-10 8.031250424519e-01 + 3.428000000000e-10 8.344898451807e-01 + 3.528000000000e-10 7.705288945959e-01 + 3.628000000000e-10 5.555161552443e-01 + 3.728000000000e-10 2.093659332353e-01 + 3.828000000000e-10 -1.439645708780e-01 + 3.928000000000e-10 -4.012864243472e-01 + 4.028000000000e-10 -5.490981432908e-01 + 4.128000000000e-10 -6.367310776976e-01 + 4.228000000000e-10 -7.238327358891e-01 + 4.328000000000e-10 -8.030945225544e-01 + 4.428000000000e-10 -8.345032641498e-01 + 4.528000000000e-10 -7.705076814073e-01 + 4.628000000000e-10 -5.555368200040e-01 + 4.728000000000e-10 -2.093450233604e-01 + 4.828000000000e-10 1.439466188317e-01 + 4.928000000000e-10 4.013057839415e-01 + 5.028000000000e-10 5.490801810840e-01 + 5.128000000000e-10 6.367502973173e-01 + 5.228000000000e-10 7.238134370273e-01 + 5.328000000000e-10 8.031142213064e-01 + 5.428000000000e-10 8.344836920712e-01 + 5.528000000000e-10 7.705267055682e-01 + 5.628000000000e-10 5.555176728822e-01 + 5.728000000000e-10 2.093634169255e-01 + 5.828000000000e-10 -1.439633135713e-01 + 5.928000000000e-10 -4.012903718012e-01 + 6.028000000000e-10 -5.490957661747e-01 + 6.128000000000e-10 -6.367354259501e-01 + 6.228000000000e-10 -7.238289911799e-01 + 6.328000000000e-10 -8.030991093312e-01 + 6.428000000000e-10 -8.344987261970e-01 + 6.528000000000e-10 -7.705113506628e-01 + 6.628000000000e-10 -5.555339922038e-01 + 6.728000000000e-10 -2.093472747699e-01 + 6.828000000000e-10 1.439488143392e-01 + 6.928000000000e-10 4.013051006454e-01 + 7.028000000000e-10 5.490813620131e-01 + 7.128000000000e-10 6.367501696447e-01 + 7.228000000000e-10 7.238138408460e-01 + 7.328000000000e-10 8.031138234310e-01 + 7.428000000000e-10 8.344840024625e-01 + 7.528000000000e-10 7.705257750612e-01 + 7.628000000000e-10 5.555193682491e-01 + 7.728000000000e-10 2.093616154732e-01 + 7.828000000000e-10 -1.439618235384e-01 + 7.928000000000e-10 -4.012927107128e-01 + 8.028000000000e-10 -5.490937463184e-01 + 8.128000000000e-10 -6.367380404539e-01 + 8.228000000000e-10 -7.238264478501e-01 + 8.328000000000e-10 -8.031018435980e-01 + 8.428000000000e-10 -8.344959687989e-01 + 8.528000000000e-10 -7.705137100306e-01 + 8.628000000000e-10 -5.555321098787e-01 + 8.728000000000e-10 -2.093489927492e-01 + 8.828000000000e-10 1.439504269532e-01 + 8.928000000000e-10 4.013041525432e-01 + 9.028000000000e-10 5.490824887692e-01 + 9.128000000000e-10 6.367494882502e-01 + 9.228000000000e-10 7.238146944607e-01 + 9.328000000000e-10 8.031131051507e-01 + 9.428000000000e-10 8.344847147049e-01 + 9.528000000000e-10 7.705248067970e-01 + 9.628000000000e-10 5.555207970002e-01 + 9.728000000000e-10 2.093601819839e-01 + 9.828000000000e-10 -1.439605753448e-01 + 9.928000000000e-10 -4.012943342775e-01 + 1.000000000000e-09 -5.158218772706e-01 diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_23/CML_divider.sym b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_23/CML_divider.sym new file mode 100644 index 00000000..e46eb233 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_23/CML_divider.sym @@ -0,0 +1,30 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 -120 -20 -100 -20 {} +L 4 -120 20 -100 20 {} +L 4 100 -20 120 -20 {} +L 4 100 20 120 20 {} +L 7 0 -60 0 -40 {} +L 7 0 40 0 60 {} +B 5 -122.5 -22.5 -117.5 -17.5 {name=Vo+ dir=out} +B 5 -122.5 17.5 -117.5 22.5 {name=Vo- dir=out} +B 5 117.5 -22.5 122.5 -17.5 {name=Vi+ dir=in} +B 5 117.5 17.5 122.5 22.5 {name=Vi- dir=in} +B 5 -2.5 -62.5 2.5 -57.5 {name=vdd dir=inout} +B 5 -2.5 57.5 2.5 62.5 {name=gnd dir=inout} +P 4 5 100 -40 -100 -40 -100 40 100 40 100 -40 {} +T {@symname} -44 -6 0 0 0.3 0.3 {} +T {@name} 45 -52 0 0 0.2 0.2 {} +T {Vo+} -95 -24 0 0 0.2 0.2 {} +T {Vo-} -95 16 0 0 0.2 0.2 {} +T {Vi+} 95 -16 2 0 0.2 0.2 {} +T {Vi-} 95 24 2 0 0.2 0.2 {} +T {vdd} 10 -39 0 1 0.2 0.2 {} +T {gnd} -10 34 2 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_23/conditions.yaml b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_23/conditions.yaml new file mode 100644 index 00000000..76389497 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_23/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice +N: 23 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: ss +filename: CML_core_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_23 +temperature: '27' +vdd: '1.6' diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_24/.spiceinit b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_24/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_24/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_24/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_24/CML_core_tb.sch new file mode 100644 index 00000000..5d1666cf --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_24/CML_core_tb.sch @@ -0,0 +1,71 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {} +V {} +S {} +E {} +N 740 -940 740 -920 {lab=GND} +N 740 -1090 740 -1060 {lab=VDD} +N 600 -1020 620 -1020 {lab=Vinplus} +N 600 -980 620 -980 {lab=Vinminus} +N 860 -1020 880 -1020 {lab=Voplus} +N 860 -980 880 -980 {lab=Vominus} +N 1150 -850 1150 -820 {lab=VDD} +N 1150 -760 1150 -730 {lab=GND} +N 930 -850 930 -820 {lab=Vinminus} +N 930 -760 930 -730 {lab=GND} +N 720 -850 720 -820 {lab=Vinplus} +N 720 -760 720 -730 {lab=GND} +C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write CML_core_tb.raw +set appendwrite +tran 10p 1n 160p + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_24/CML_core_tb_24.data vo_diff +quit + +.endc +"} +C {opin.sym} 880 -1020 2 1 {name=p6 lab=Voplus} +C {opin.sym} 880 -980 0 0 {name=p9 lab=Vominus} +C {devices/code_shown.sym} 10 -620 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_tt + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice + +.temp 80 +" +} +C {iopin.sym} 740 -1090 0 1 {name=p2 lab=VDD} +C {ipin.sym} 600 -1020 2 1 {name=p4 lab=Vinplus} +C {ipin.sym} 600 -980 2 1 {name=p1 lab=Vinminus} +C {CML_divider.sym} 740 -1000 0 1 {name=x1} +C {vsource.sym} 1150 -790 0 0 {name=V1 value=1.6 savecurrent=false} +C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} +C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} +C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 0.3 10G 0 0 0)" savecurrent=false} +C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 0.3 10G 0 0 180)" savecurrent=false} +C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_24/CML_core_tb_24.data b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_24/CML_core_tb_24.data new file mode 100644 index 00000000..a8519464 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_24/CML_core_tb_24.data @@ -0,0 +1,85 @@ + 1.628000000000e-10 5.405028365217e-01 + 1.728000000000e-10 2.142897527484e-01 + 1.828000000000e-10 -1.231353412434e-01 + 1.928000000000e-10 -3.782847553257e-01 + 2.028000000000e-10 -5.290944707244e-01 + 2.128000000000e-10 -6.207435846591e-01 + 2.228000000000e-10 -7.069850917784e-01 + 2.328000000000e-10 -7.774395392863e-01 + 2.428000000000e-10 -7.982183108700e-01 + 2.528000000000e-10 -7.327456021571e-01 + 2.628000000000e-10 -5.310063164445e-01 + 2.728000000000e-10 -2.063297175293e-01 + 2.828000000000e-10 1.293176468137e-01 + 2.928000000000e-10 3.835270490977e-01 + 3.028000000000e-10 5.333180257023e-01 + 3.128000000000e-10 6.240938619865e-01 + 3.228000000000e-10 7.092802493907e-01 + 3.328000000000e-10 7.789607942300e-01 + 3.428000000000e-10 7.989234313230e-01 + 3.528000000000e-10 7.331763415294e-01 + 3.628000000000e-10 5.312045040772e-01 + 3.728000000000e-10 2.065847902134e-01 + 3.828000000000e-10 -1.291958906021e-01 + 3.928000000000e-10 -3.833411283085e-01 + 4.028000000000e-10 -5.332389173297e-01 + 4.128000000000e-10 -6.239588708494e-01 + 4.228000000000e-10 -7.092541595355e-01 + 4.328000000000e-10 -7.788766619073e-01 + 4.428000000000e-10 -7.989439817890e-01 + 4.528000000000e-10 -7.331237184970e-01 + 4.628000000000e-10 -5.312431858800e-01 + 4.728000000000e-10 -2.065354720445e-01 + 4.828000000000e-10 1.291604530900e-01 + 4.928000000000e-10 3.833851407049e-01 + 5.028000000000e-10 5.332033925163e-01 + 5.128000000000e-10 6.240009303805e-01 + 5.228000000000e-10 7.092156296740e-01 + 5.328000000000e-10 7.789178950697e-01 + 5.428000000000e-10 7.989050835748e-01 + 5.528000000000e-10 7.331635644704e-01 + 5.628000000000e-10 5.312038508238e-01 + 5.728000000000e-10 2.065745538625e-01 + 5.828000000000e-10 -1.291960705945e-01 + 5.928000000000e-10 -3.833509278886e-01 + 6.028000000000e-10 -5.332368573592e-01 + 6.128000000000e-10 -6.239679712691e-01 + 6.228000000000e-10 -7.092497084655e-01 + 6.328000000000e-10 -7.788845366535e-01 + 6.428000000000e-10 -7.989377629672e-01 + 6.528000000000e-10 -7.331298791234e-01 + 6.628000000000e-10 -5.312385744549e-01 + 6.728000000000e-10 -2.065399094583e-01 + 6.828000000000e-10 1.291646812354e-01 + 6.928000000000e-10 3.833822988637e-01 + 7.028000000000e-10 5.332062833028e-01 + 7.128000000000e-10 6.239988652624e-01 + 7.228000000000e-10 7.092181343784e-01 + 7.328000000000e-10 7.789155267181e-01 + 7.428000000000e-10 7.989074545455e-01 + 7.528000000000e-10 7.331605295450e-01 + 7.628000000000e-10 5.312080087648e-01 + 7.728000000000e-10 2.065705039315e-01 + 7.828000000000e-10 -1.291926212165e-01 + 7.928000000000e-10 -3.833551733065e-01 + 8.028000000000e-10 -5.332328436976e-01 + 8.128000000000e-10 -6.239725200032e-01 + 8.228000000000e-10 -7.092452956008e-01 + 8.328000000000e-10 -7.788891439389e-01 + 8.428000000000e-10 -7.989331916474e-01 + 8.528000000000e-10 -7.331340451631e-01 + 8.628000000000e-10 -5.312350772815e-01 + 8.728000000000e-10 -2.065433053799e-01 + 8.828000000000e-10 1.291679984852e-01 + 8.928000000000e-10 3.833797175156e-01 + 9.028000000000e-10 5.332088978421e-01 + 9.128000000000e-10 6.239966795455e-01 + 9.228000000000e-10 7.092206518532e-01 + 9.328000000000e-10 7.789132522577e-01 + 9.428000000000e-10 7.989096829455e-01 + 9.528000000000e-10 7.331579091452e-01 + 9.628000000000e-10 5.312112407565e-01 + 9.728000000000e-10 2.065672983353e-01 + 9.828000000000e-10 -1.291898675297e-01 + 9.928000000000e-10 -3.833583124064e-01 + 1.000000000000e-09 -4.991705375338e-01 diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_24/CML_divider.sym b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_24/CML_divider.sym new file mode 100644 index 00000000..e46eb233 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_24/CML_divider.sym @@ -0,0 +1,30 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 -120 -20 -100 -20 {} +L 4 -120 20 -100 20 {} +L 4 100 -20 120 -20 {} +L 4 100 20 120 20 {} +L 7 0 -60 0 -40 {} +L 7 0 40 0 60 {} +B 5 -122.5 -22.5 -117.5 -17.5 {name=Vo+ dir=out} +B 5 -122.5 17.5 -117.5 22.5 {name=Vo- dir=out} +B 5 117.5 -22.5 122.5 -17.5 {name=Vi+ dir=in} +B 5 117.5 17.5 122.5 22.5 {name=Vi- dir=in} +B 5 -2.5 -62.5 2.5 -57.5 {name=vdd dir=inout} +B 5 -2.5 57.5 2.5 62.5 {name=gnd dir=inout} +P 4 5 100 -40 -100 -40 -100 40 100 40 100 -40 {} +T {@symname} -44 -6 0 0 0.3 0.3 {} +T {@name} 45 -52 0 0 0.2 0.2 {} +T {Vo+} -95 -24 0 0 0.2 0.2 {} +T {Vo-} -95 16 0 0 0.2 0.2 {} +T {Vi+} 95 -16 2 0 0.2 0.2 {} +T {Vi-} 95 24 2 0 0.2 0.2 {} +T {vdd} 10 -39 0 1 0.2 0.2 {} +T {gnd} -10 34 2 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_24/conditions.yaml b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_24/conditions.yaml new file mode 100644 index 00000000..9d15c663 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_24/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice +N: 24 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: tt +filename: CML_core_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_24 +temperature: '80' +vdd: '1.6' diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_25/.spiceinit b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_25/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_25/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_25/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_25/CML_core_tb.sch new file mode 100644 index 00000000..25cfc5da --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_25/CML_core_tb.sch @@ -0,0 +1,71 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {} +V {} +S {} +E {} +N 740 -940 740 -920 {lab=GND} +N 740 -1090 740 -1060 {lab=VDD} +N 600 -1020 620 -1020 {lab=Vinplus} +N 600 -980 620 -980 {lab=Vinminus} +N 860 -1020 880 -1020 {lab=Voplus} +N 860 -980 880 -980 {lab=Vominus} +N 1150 -850 1150 -820 {lab=VDD} +N 1150 -760 1150 -730 {lab=GND} +N 930 -850 930 -820 {lab=Vinminus} +N 930 -760 930 -730 {lab=GND} +N 720 -850 720 -820 {lab=Vinplus} +N 720 -760 720 -730 {lab=GND} +C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write CML_core_tb.raw +set appendwrite +tran 10p 1n 160p + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_25/CML_core_tb_25.data vo_diff +quit + +.endc +"} +C {opin.sym} 880 -1020 2 1 {name=p6 lab=Voplus} +C {opin.sym} 880 -980 0 0 {name=p9 lab=Vominus} +C {devices/code_shown.sym} 10 -620 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_ff + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice + +.temp 80 +" +} +C {iopin.sym} 740 -1090 0 1 {name=p2 lab=VDD} +C {ipin.sym} 600 -1020 2 1 {name=p4 lab=Vinplus} +C {ipin.sym} 600 -980 2 1 {name=p1 lab=Vinminus} +C {CML_divider.sym} 740 -1000 0 1 {name=x1} +C {vsource.sym} 1150 -790 0 0 {name=V1 value=1.6 savecurrent=false} +C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} +C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} +C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 0.3 10G 0 0 0)" savecurrent=false} +C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 0.3 10G 0 0 180)" savecurrent=false} +C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_25/CML_core_tb_25.data b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_25/CML_core_tb_25.data new file mode 100644 index 00000000..39c04d30 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_25/CML_core_tb_25.data @@ -0,0 +1,85 @@ + 1.628000000000e-10 5.368449571564e-01 + 1.728000000000e-10 2.154696494615e-01 + 1.828000000000e-10 -1.180750667507e-01 + 1.928000000000e-10 -3.694801437498e-01 + 2.028000000000e-10 -5.157339685643e-01 + 2.128000000000e-10 -6.051803608378e-01 + 2.228000000000e-10 -6.923688047900e-01 + 2.328000000000e-10 -7.627278516708e-01 + 2.428000000000e-10 -7.836324050269e-01 + 2.528000000000e-10 -7.217390774868e-01 + 2.628000000000e-10 -5.258344598842e-01 + 2.728000000000e-10 -2.060622799160e-01 + 2.828000000000e-10 1.253068918672e-01 + 2.928000000000e-10 3.754763463876e-01 + 3.028000000000e-10 5.204513706872e-01 + 3.128000000000e-10 6.088547126517e-01 + 3.228000000000e-10 6.948747427610e-01 + 3.328000000000e-10 7.643967320598e-01 + 3.428000000000e-10 7.844541546789e-01 + 3.528000000000e-10 7.222905371020e-01 + 3.628000000000e-10 5.261436989659e-01 + 3.728000000000e-10 2.064244494061e-01 + 3.828000000000e-10 -1.251087630482e-01 + 3.928000000000e-10 -3.752230316774e-01 + 4.028000000000e-10 -5.203274407129e-01 + 4.128000000000e-10 -6.086807930540e-01 + 4.228000000000e-10 -6.948278459755e-01 + 4.328000000000e-10 -7.642927444658e-01 + 4.428000000000e-10 -7.844689558048e-01 + 4.528000000000e-10 -7.222270537973e-01 + 4.628000000000e-10 -5.261810188038e-01 + 4.728000000000e-10 -2.063649367923e-01 + 4.828000000000e-10 1.250740150254e-01 + 4.928000000000e-10 3.752740624702e-01 + 5.028000000000e-10 5.202917067072e-01 + 5.128000000000e-10 6.087280474834e-01 + 5.228000000000e-10 6.947875493975e-01 + 5.328000000000e-10 7.643381446772e-01 + 5.428000000000e-10 7.844278436925e-01 + 5.528000000000e-10 7.222707134126e-01 + 5.628000000000e-10 5.261386731045e-01 + 5.728000000000e-10 2.064078101390e-01 + 5.828000000000e-10 -1.251125509614e-01 + 5.928000000000e-10 -3.752362786491e-01 + 6.028000000000e-10 -5.203279553884e-01 + 6.128000000000e-10 -6.086920089480e-01 + 6.228000000000e-10 -6.948246280643e-01 + 6.328000000000e-10 -7.643013046090e-01 + 6.428000000000e-10 -7.844633201903e-01 + 6.528000000000e-10 -7.222336042293e-01 + 6.628000000000e-10 -5.261766512068e-01 + 6.728000000000e-10 -2.063691829929e-01 + 6.828000000000e-10 1.250784814444e-01 + 6.928000000000e-10 3.752708432251e-01 + 7.028000000000e-10 5.202949527958e-01 + 7.128000000000e-10 6.087256874770e-01 + 7.228000000000e-10 6.947904319095e-01 + 7.328000000000e-10 7.643352365607e-01 + 7.428000000000e-10 7.844306677783e-01 + 7.528000000000e-10 7.222672114429e-01 + 7.628000000000e-10 5.261433781551e-01 + 7.728000000000e-10 2.064029029490e-01 + 7.828000000000e-10 -1.251089390610e-01 + 7.928000000000e-10 -3.752408867518e-01 + 8.028000000000e-10 -5.203238706374e-01 + 8.128000000000e-10 -6.086968714396e-01 + 8.228000000000e-10 -6.948200705245e-01 + 8.328000000000e-10 -7.643060605343e-01 + 8.428000000000e-10 -7.844586734539e-01 + 8.528000000000e-10 -7.222379683755e-01 + 8.628000000000e-10 -5.261730442965e-01 + 8.728000000000e-10 -2.063725681788e-01 + 8.828000000000e-10 1.250820910423e-01 + 8.928000000000e-10 3.752680406761e-01 + 9.028000000000e-10 5.202978581562e-01 + 9.128000000000e-10 6.087233210610e-01 + 9.228000000000e-10 6.947932359489e-01 + 9.328000000000e-10 7.643326365950e-01 + 9.428000000000e-10 7.844331791786e-01 + 9.528000000000e-10 7.222642751837e-01 + 9.628000000000e-10 5.261469613157e-01 + 9.728000000000e-10 2.063991803079e-01 + 9.828000000000e-10 -1.251060220915e-01 + 9.928000000000e-10 -3.752443155305e-01 + 1.000000000000e-09 -4.875704709340e-01 diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_25/CML_divider.sym b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_25/CML_divider.sym new file mode 100644 index 00000000..e46eb233 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_25/CML_divider.sym @@ -0,0 +1,30 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 -120 -20 -100 -20 {} +L 4 -120 20 -100 20 {} +L 4 100 -20 120 -20 {} +L 4 100 20 120 20 {} +L 7 0 -60 0 -40 {} +L 7 0 40 0 60 {} +B 5 -122.5 -22.5 -117.5 -17.5 {name=Vo+ dir=out} +B 5 -122.5 17.5 -117.5 22.5 {name=Vo- dir=out} +B 5 117.5 -22.5 122.5 -17.5 {name=Vi+ dir=in} +B 5 117.5 17.5 122.5 22.5 {name=Vi- dir=in} +B 5 -2.5 -62.5 2.5 -57.5 {name=vdd dir=inout} +B 5 -2.5 57.5 2.5 62.5 {name=gnd dir=inout} +P 4 5 100 -40 -100 -40 -100 40 100 40 100 -40 {} +T {@symname} -44 -6 0 0 0.3 0.3 {} +T {@name} 45 -52 0 0 0.2 0.2 {} +T {Vo+} -95 -24 0 0 0.2 0.2 {} +T {Vo-} -95 16 0 0 0.2 0.2 {} +T {Vi+} 95 -16 2 0 0.2 0.2 {} +T {Vi-} 95 24 2 0 0.2 0.2 {} +T {vdd} 10 -39 0 1 0.2 0.2 {} +T {gnd} -10 34 2 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_25/conditions.yaml b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_25/conditions.yaml new file mode 100644 index 00000000..ed90bd87 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_25/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice +N: 25 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: ff +filename: CML_core_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_25 +temperature: '80' +vdd: '1.6' diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_26/.spiceinit b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_26/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_26/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_26/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_26/CML_core_tb.sch new file mode 100644 index 00000000..1ca4391f --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_26/CML_core_tb.sch @@ -0,0 +1,71 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {} +V {} +S {} +E {} +N 740 -940 740 -920 {lab=GND} +N 740 -1090 740 -1060 {lab=VDD} +N 600 -1020 620 -1020 {lab=Vinplus} +N 600 -980 620 -980 {lab=Vinminus} +N 860 -1020 880 -1020 {lab=Voplus} +N 860 -980 880 -980 {lab=Vominus} +N 1150 -850 1150 -820 {lab=VDD} +N 1150 -760 1150 -730 {lab=GND} +N 930 -850 930 -820 {lab=Vinminus} +N 930 -760 930 -730 {lab=GND} +N 720 -850 720 -820 {lab=Vinplus} +N 720 -760 720 -730 {lab=GND} +C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write CML_core_tb.raw +set appendwrite +tran 10p 1n 160p + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_26/CML_core_tb_26.data vo_diff +quit + +.endc +"} +C {opin.sym} 880 -1020 2 1 {name=p6 lab=Voplus} +C {opin.sym} 880 -980 0 0 {name=p9 lab=Vominus} +C {devices/code_shown.sym} 10 -620 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_ss + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice + +.temp 80 +" +} +C {iopin.sym} 740 -1090 0 1 {name=p2 lab=VDD} +C {ipin.sym} 600 -1020 2 1 {name=p4 lab=Vinplus} +C {ipin.sym} 600 -980 2 1 {name=p1 lab=Vinminus} +C {CML_divider.sym} 740 -1000 0 1 {name=x1} +C {vsource.sym} 1150 -790 0 0 {name=V1 value=1.6 savecurrent=false} +C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} +C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} +C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 0.3 10G 0 0 0)" savecurrent=false} +C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 0.3 10G 0 0 180)" savecurrent=false} +C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_26/CML_core_tb_26.data b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_26/CML_core_tb_26.data new file mode 100644 index 00000000..894f4c67 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_26/CML_core_tb_26.data @@ -0,0 +1,85 @@ + 1.628000000000e-10 5.436948212736e-01 + 1.728000000000e-10 2.205877879634e-01 + 1.828000000000e-10 -1.163348151974e-01 + 1.928000000000e-10 -3.771420921807e-01 + 2.028000000000e-10 -5.370108455130e-01 + 2.128000000000e-10 -6.331888427572e-01 + 2.228000000000e-10 -7.164762236683e-01 + 2.328000000000e-10 -7.851286946760e-01 + 2.428000000000e-10 -8.059531868761e-01 + 2.528000000000e-10 -7.384564800459e-01 + 2.628000000000e-10 -5.363144999221e-01 + 2.728000000000e-10 -2.144637665285e-01 + 2.828000000000e-10 1.212929793685e-01 + 2.928000000000e-10 3.815418180812e-01 + 3.028000000000e-10 5.406606883043e-01 + 3.128000000000e-10 6.361475176918e-01 + 3.228000000000e-10 7.185360719894e-01 + 3.328000000000e-10 7.865091736067e-01 + 3.428000000000e-10 8.065713749450e-01 + 3.528000000000e-10 7.387921596039e-01 + 3.628000000000e-10 5.364259512539e-01 + 3.728000000000e-10 2.146317863835e-01 + 3.828000000000e-10 -1.212295238309e-01 + 3.928000000000e-10 -3.814110096077e-01 + 4.028000000000e-10 -5.406166203788e-01 + 4.128000000000e-10 -6.360467438854e-01 + 4.228000000000e-10 -7.185257686739e-01 + 4.328000000000e-10 -7.864422304189e-01 + 4.428000000000e-10 -8.065937411296e-01 + 4.528000000000e-10 -7.387487319623e-01 + 4.628000000000e-10 -5.364619855530e-01 + 4.728000000000e-10 -2.145913861363e-01 + 4.828000000000e-10 1.211959412322e-01 + 4.928000000000e-10 3.814481551476e-01 + 5.028000000000e-10 5.405833390120e-01 + 5.128000000000e-10 6.360831449777e-01 + 5.228000000000e-10 7.184907253890e-01 + 5.328000000000e-10 7.864786648334e-01 + 5.428000000000e-10 8.065585198321e-01 + 5.528000000000e-10 7.387840006966e-01 + 5.628000000000e-10 5.364270346085e-01 + 5.728000000000e-10 2.146260338484e-01 + 5.828000000000e-10 -1.212277001077e-01 + 5.928000000000e-10 -3.814182410321e-01 + 6.028000000000e-10 -5.406130595607e-01 + 6.128000000000e-10 -6.360540210765e-01 + 6.228000000000e-10 -7.185209180994e-01 + 6.328000000000e-10 -7.864492678158e-01 + 6.428000000000e-10 -8.065874846616e-01 + 6.528000000000e-10 -7.387544794760e-01 + 6.628000000000e-10 -5.364572547805e-01 + 6.728000000000e-10 -2.145959871001e-01 + 6.828000000000e-10 1.211997934696e-01 + 6.928000000000e-10 3.814456726213e-01 + 7.028000000000e-10 5.405857946323e-01 + 7.128000000000e-10 6.360813265814e-01 + 7.228000000000e-10 7.184929266665e-01 + 7.328000000000e-10 7.864767243186e-01 + 7.428000000000e-10 8.065604357181e-01 + 7.528000000000e-10 7.387815158779e-01 + 7.628000000000e-10 5.364303644926e-01 + 7.728000000000e-10 2.146228844142e-01 + 7.828000000000e-10 -1.212245339809e-01 + 7.928000000000e-10 -3.814220075435e-01 + 8.028000000000e-10 -5.406092538148e-01 + 8.128000000000e-10 -6.360581238583e-01 + 8.228000000000e-10 -7.185168954112e-01 + 8.328000000000e-10 -7.864535273883e-01 + 8.428000000000e-10 -8.065831328643e-01 + 8.528000000000e-10 -7.387583532284e-01 + 8.628000000000e-10 -5.364538735708e-01 + 8.728000000000e-10 -2.145992968151e-01 + 8.828000000000e-10 1.212027591883e-01 + 8.928000000000e-10 3.814433789143e-01 + 9.028000000000e-10 5.405880431190e-01 + 9.128000000000e-10 6.360793794818e-01 + 9.228000000000e-10 7.184951630330e-01 + 9.328000000000e-10 7.864747526663e-01 + 9.428000000000e-10 8.065622905723e-01 + 9.528000000000e-10 7.387792872630e-01 + 9.628000000000e-10 5.364330391099e-01 + 9.728000000000e-10 2.146202349236e-01 + 9.828000000000e-10 -1.212220310216e-01 + 9.928000000000e-10 -3.814247853449e-01 + 1.000000000000e-09 -5.040490090913e-01 diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_26/CML_divider.sym b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_26/CML_divider.sym new file mode 100644 index 00000000..e46eb233 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_26/CML_divider.sym @@ -0,0 +1,30 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 -120 -20 -100 -20 {} +L 4 -120 20 -100 20 {} +L 4 100 -20 120 -20 {} +L 4 100 20 120 20 {} +L 7 0 -60 0 -40 {} +L 7 0 40 0 60 {} +B 5 -122.5 -22.5 -117.5 -17.5 {name=Vo+ dir=out} +B 5 -122.5 17.5 -117.5 22.5 {name=Vo- dir=out} +B 5 117.5 -22.5 122.5 -17.5 {name=Vi+ dir=in} +B 5 117.5 17.5 122.5 22.5 {name=Vi- dir=in} +B 5 -2.5 -62.5 2.5 -57.5 {name=vdd dir=inout} +B 5 -2.5 57.5 2.5 62.5 {name=gnd dir=inout} +P 4 5 100 -40 -100 -40 -100 40 100 40 100 -40 {} +T {@symname} -44 -6 0 0 0.3 0.3 {} +T {@name} 45 -52 0 0 0.2 0.2 {} +T {Vo+} -95 -24 0 0 0.2 0.2 {} +T {Vo-} -95 16 0 0 0.2 0.2 {} +T {Vi+} 95 -16 2 0 0.2 0.2 {} +T {Vi-} 95 24 2 0 0.2 0.2 {} +T {vdd} 10 -39 0 1 0.2 0.2 {} +T {gnd} -10 34 2 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_26/conditions.yaml b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_26/conditions.yaml new file mode 100644 index 00000000..9486e63a --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_26/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice +N: 26 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: ss +filename: CML_core_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/run_26 +temperature: '80' +vdd: '1.6' diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/simulation_summary.csv b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/simulation_summary.csv new file mode 100644 index 00000000..2f5f947b --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/simulation_summary.csv @@ -0,0 +1,28 @@ +run,corner,temperature,vdd,time,vo_diff,frequency,amplitude,voltage_swing +run_00,tt,-40,0.8,"[1.628e-10, 1.728e-10, 1.828e-10, …]","[-2.952e-01, -6.044e-02, 0.182, …]",4.722e+09,0.709,1.418 +run_01,ff,-40,0.8,"[1.628e-10, 1.728e-10, 1.828e-10, …]","[-2.648e-01, -3.672e-02, 0.198, …]",4.722e+09,0.693,1.386 +run_02,ss,-40,0.8,"[1.628e-10, 1.728e-10, 1.828e-10, …]","[-3.227e-01, -8.540e-02, 0.161, …]",4.722e+09,0.722,1.444 +run_03,tt,27,0.8,"[1.628e-10, 1.728e-10, 1.828e-10, …]","[-2.752e-01, -5.371e-02, 0.179, …]",4.722e+09,0.692,1.383 +run_04,ff,27,0.8,"[1.628e-10, 1.728e-10, 1.828e-10, …]","[-2.482e-01, -3.259e-02, 0.193, …]",4.722e+09,0.672,1.345 +run_05,ss,27,0.8,"[1.628e-10, 1.728e-10, 1.828e-10, …]","[-3.027e-01, -8.046e-02, 0.156, …]",4.722e+09,0.706,1.412 +run_06,tt,80,0.8,"[1.628e-10, 1.728e-10, 1.828e-10, …]","[-2.659e-01, -5.659e-02, 0.167, …]",4.722e+09,0.669,1.338 +run_07,ff,80,0.8,"[1.628e-10, 1.728e-10, 1.828e-10, …]","[-2.411e-01, -3.745e-02, 0.179, …]",4.722e+09,0.648,1.295 +run_08,ss,80,0.8,"[1.628e-10, 1.728e-10, 1.828e-10, …]","[-2.916e-01, -8.207e-02, 0.144, …]",4.722e+09,0.685,1.371 +run_09,tt,-40,1.2,"[1.628e-10, 1.728e-10, 1.828e-10, …]","[-5.397e-01, -2.046e-01, 0.131, …]",4.722e+09,0.807,1.614 +run_10,ff,-40,1.2,"[1.628e-10, 1.728e-10, 1.828e-10, …]","[-5.293e-01, -2.034e-01, 0.125, …]",4.722e+09,0.789,1.577 +run_11,ss,-40,1.2,"[1.628e-10, 1.728e-10, 1.828e-10, …]","[-5.474e-01, -2.088e-01, 0.131, …]",4.722e+09,0.819,1.638 +run_12,tt,27,1.2,"[1.628e-10, 1.728e-10, 1.828e-10, …]","[-5.050e-01, -1.958e-01, 0.120, …]",4.722e+09,0.771,1.543 +run_13,ff,27,1.2,"[1.628e-10, 1.728e-10, 1.828e-10, …]","[-4.935e-01, -1.929e-01, 0.116, …]",4.722e+09,0.753,1.505 +run_14,ss,27,1.2,"[1.628e-10, 1.728e-10, 1.828e-10, …]","[-5.133e-01, -2.032e-01, 0.114, …]",4.722e+09,0.783,1.566 +run_15,tt,80,1.2,"[1.628e-10, 1.728e-10, 1.828e-10, …]","[-4.765e-01, -1.934e-01, 0.103, …]",4.722e+09,0.743,1.486 +run_16,ff,80,1.2,"[1.628e-10, 1.728e-10, 1.828e-10, …]","[-4.643e-01, -1.890e-01, 0.101, …]",4.722e+09,0.725,1.450 +run_17,ss,80,1.2,"[1.628e-10, 1.728e-10, 1.828e-10, …]","[-4.853e-01, -2.024e-01, 9.500e-02, …]",4.722e+09,0.755,1.510 +run_18,tt,-40,1.6,"[1.628e-10, 1.728e-10, 1.828e-10, …]","[0.575, 0.203, -1.640e-01, …]",4.722e+09,0.851,1.702 +run_19,ff,-40,1.6,"[1.628e-10, 1.728e-10, 1.828e-10, …]","[0.571, 0.205, -1.568e-01, …]",4.722e+09,0.836,1.672 +run_20,ss,-40,1.6,"[1.628e-10, 1.728e-10, 1.828e-10, …]","[0.579, 0.208, -1.623e-01, …]",4.722e+09,0.860,1.720 +run_21,tt,27,1.6,"[1.628e-10, 1.728e-10, 1.828e-10, …]","[0.557, 0.208, -1.460e-01, …]",4.722e+09,0.826,1.653 +run_22,ff,27,1.6,"[1.628e-10, 1.728e-10, 1.828e-10, …]","[0.554, 0.209, -1.400e-01, …]",4.722e+09,0.812,1.624 +run_23,ss,27,1.6,"[1.628e-10, 1.728e-10, 1.828e-10, …]","[0.561, 0.214, -1.407e-01, …]",4.722e+09,0.834,1.669 +run_24,tt,80,1.6,"[1.628e-10, 1.728e-10, 1.828e-10, …]","[0.541, 0.214, -1.231e-01, …]",4.722e+09,0.799,1.598 +run_25,ff,80,1.6,"[1.628e-10, 1.728e-10, 1.828e-10, …]","[0.537, 0.215, -1.181e-01, …]",4.722e+09,0.784,1.569 +run_26,ss,80,1.6,"[1.628e-10, 1.728e-10, 1.828e-10, …]","[0.544, 0.221, -1.163e-01, …]",4.722e+09,0.807,1.613 diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/simulation_summary.md b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/simulation_summary.md new file mode 100644 index 00000000..6401031e --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/simulation_summary.md @@ -0,0 +1,31 @@ +# Simulation Summary for CML divider frequency response + +| run | corner | temperature | vdd | time | vo_diff | frequency | amplitude | voltage_swing | +| :-- | -----: | ----------: | --: | ---: | ------: | --------: | --------: | ------------: | +| run_00 | tt | -40 | 0.8 | [1.628e-10, 1.728e-10, 1.828e-10, …] | [-2.952e-01, -6.044e-02, 0.182, …] | 4.722e+09 | 0.709 | 1.418 | +| run_01 | ff | -40 | 0.8 | [1.628e-10, 1.728e-10, 1.828e-10, …] | [-2.648e-01, -3.672e-02, 0.198, …] | 4.722e+09 | 0.693 | 1.386 | +| run_02 | ss | -40 | 0.8 | [1.628e-10, 1.728e-10, 1.828e-10, …] | [-3.227e-01, -8.540e-02, 0.161, …] | 4.722e+09 | 0.722 | 1.444 | +| run_03 | tt | 27 | 0.8 | [1.628e-10, 1.728e-10, 1.828e-10, …] | [-2.752e-01, -5.371e-02, 0.179, …] | 4.722e+09 | 0.692 | 1.383 | +| run_04 | ff | 27 | 0.8 | [1.628e-10, 1.728e-10, 1.828e-10, …] | [-2.482e-01, -3.259e-02, 0.193, …] | 4.722e+09 | 0.672 | 1.345 | +| run_05 | ss | 27 | 0.8 | [1.628e-10, 1.728e-10, 1.828e-10, …] | [-3.027e-01, -8.046e-02, 0.156, …] | 4.722e+09 | 0.706 | 1.412 | +| run_06 | tt | 80 | 0.8 | [1.628e-10, 1.728e-10, 1.828e-10, …] | [-2.659e-01, -5.659e-02, 0.167, …] | 4.722e+09 | 0.669 | 1.338 | +| run_07 | ff | 80 | 0.8 | [1.628e-10, 1.728e-10, 1.828e-10, …] | [-2.411e-01, -3.745e-02, 0.179, …] | 4.722e+09 | 0.648 | 1.295 | +| run_08 | ss | 80 | 0.8 | [1.628e-10, 1.728e-10, 1.828e-10, …] | [-2.916e-01, -8.207e-02, 0.144, …] | 4.722e+09 | 0.685 | 1.371 | +| run_09 | tt | -40 | 1.2 | [1.628e-10, 1.728e-10, 1.828e-10, …] | [-5.397e-01, -2.046e-01, 0.131, …] | 4.722e+09 | 0.807 | 1.614 | +| run_10 | ff | -40 | 1.2 | [1.628e-10, 1.728e-10, 1.828e-10, …] | [-5.293e-01, -2.034e-01, 0.125, …] | 4.722e+09 | 0.789 | 1.577 | +| run_11 | ss | -40 | 1.2 | [1.628e-10, 1.728e-10, 1.828e-10, …] | [-5.474e-01, -2.088e-01, 0.131, …] | 4.722e+09 | 0.819 | 1.638 | +| run_12 | tt | 27 | 1.2 | [1.628e-10, 1.728e-10, 1.828e-10, …] | [-5.050e-01, -1.958e-01, 0.120, …] | 4.722e+09 | 0.771 | 1.543 | +| run_13 | ff | 27 | 1.2 | [1.628e-10, 1.728e-10, 1.828e-10, …] | [-4.935e-01, -1.929e-01, 0.116, …] | 4.722e+09 | 0.753 | 1.505 | +| run_14 | ss | 27 | 1.2 | [1.628e-10, 1.728e-10, 1.828e-10, …] | [-5.133e-01, -2.032e-01, 0.114, …] | 4.722e+09 | 0.783 | 1.566 | +| run_15 | tt | 80 | 1.2 | [1.628e-10, 1.728e-10, 1.828e-10, …] | [-4.765e-01, -1.934e-01, 0.103, …] | 4.722e+09 | 0.743 | 1.486 | +| run_16 | ff | 80 | 1.2 | [1.628e-10, 1.728e-10, 1.828e-10, …] | [-4.643e-01, -1.890e-01, 0.101, …] | 4.722e+09 | 0.725 | 1.450 | +| run_17 | ss | 80 | 1.2 | [1.628e-10, 1.728e-10, 1.828e-10, …] | [-4.853e-01, -2.024e-01, 9.500e-02, …] | 4.722e+09 | 0.755 | 1.510 | +| run_18 | tt | -40 | 1.6 | [1.628e-10, 1.728e-10, 1.828e-10, …] | [0.575, 0.203, -1.640e-01, …] | 4.722e+09 | 0.851 | 1.702 | +| run_19 | ff | -40 | 1.6 | [1.628e-10, 1.728e-10, 1.828e-10, …] | [0.571, 0.205, -1.568e-01, …] | 4.722e+09 | 0.836 | 1.672 | +| run_20 | ss | -40 | 1.6 | [1.628e-10, 1.728e-10, 1.828e-10, …] | [0.579, 0.208, -1.623e-01, …] | 4.722e+09 | 0.860 | 1.720 | +| run_21 | tt | 27 | 1.6 | [1.628e-10, 1.728e-10, 1.828e-10, …] | [0.557, 0.208, -1.460e-01, …] | 4.722e+09 | 0.826 | 1.653 | +| run_22 | ff | 27 | 1.6 | [1.628e-10, 1.728e-10, 1.828e-10, …] | [0.554, 0.209, -1.400e-01, …] | 4.722e+09 | 0.812 | 1.624 | +| run_23 | ss | 27 | 1.6 | [1.628e-10, 1.728e-10, 1.828e-10, …] | [0.561, 0.214, -1.407e-01, …] | 4.722e+09 | 0.834 | 1.669 | +| run_24 | tt | 80 | 1.6 | [1.628e-10, 1.728e-10, 1.828e-10, …] | [0.541, 0.214, -1.231e-01, …] | 4.722e+09 | 0.799 | 1.598 | +| run_25 | ff | 80 | 1.6 | [1.628e-10, 1.728e-10, 1.828e-10, …] | [0.537, 0.215, -1.181e-01, …] | 4.722e+09 | 0.784 | 1.569 | +| run_26 | ss | 80 | 1.6 | [1.628e-10, 1.728e-10, 1.828e-10, …] | [0.544, 0.221, -1.163e-01, …] | 4.722e+09 | 0.807 | 1.613 | diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/vo_diff_vs_time.png b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/vo_diff_vs_time.png new file mode 100644 index 00000000..64d1b808 Binary files /dev/null and b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/parameters/ac_params/vo_diff_vs_time.png differ diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/summary.md b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/summary.md new file mode 100644 index 00000000..a11c2c65 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-38-33/summary.md @@ -0,0 +1,11 @@ + +# CACE Summary for CML_divider + +**netlist source**: schematic + +| Parameter | Tool | Result | Min Limit | Min Value | Typ Target | Typ Value | Max Limit | Max Value | Status | +| :------------------- | :------------------- | :-------------- | ---------: | -----------: | ---------: | -----------: | ---------: | -----------: | :------: | +| Frequency | ngspice | frequency | 4.3 GHz | 4.722 GHz | 5.0 GHz | 4.722 GHz | 5.2 GHz | 4.722 GHz | Pass ✅ | +| Amplitude | ngspice | amplitude | 0.2 V | 0.648 V | 0.4 V | 0.771 V | 0.6 V | 0.860 V | Fail ❌ | +| Voltage swing | ngspice | voltage_swing | 0.4 V | 1.295 V | 0.8 V | 1.543 V | 1.2 V | 1.720 V | Fail ❌ | + diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/CML_core_tb.sch new file mode 100644 index 00000000..48f6f0bb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/CML_core_tb.sch @@ -0,0 +1,71 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {} +V {} +S {} +E {} +N 740 -940 740 -920 {lab=GND} +N 740 -1090 740 -1060 {lab=VDD} +N 600 -1020 620 -1020 {lab=Vinplus} +N 600 -980 620 -980 {lab=Vinminus} +N 860 -1020 880 -1020 {lab=Voplus} +N 860 -980 880 -980 {lab=Vominus} +N 1150 -850 1150 -820 {lab=VDD} +N 1150 -760 1150 -730 {lab=GND} +N 930 -850 930 -820 {lab=Vinminus} +N 930 -760 930 -730 {lab=GND} +N 720 -850 720 -820 {lab=Vinplus} +N 720 -760 720 -730 {lab=GND} +C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write CML_core_tb.raw +set appendwrite +tran 10p 1n 160p + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata CACE\{simpath\}/CACE\{filename\}_CACE\{N\}.data vo_diff +quit + +.endc +"} +C {opin.sym} 880 -1020 2 1 {name=p6 lab=Voplus} +C {opin.sym} 880 -980 0 0 {name=p9 lab=Vominus} +C {devices/code_shown.sym} 10 -620 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib CACE\{PDK_ROOT\}/CACE\{PDK\}/libs.tech/ngspice/models/cornerMOSlv.lib mos_CACE\{corner\} + +.include CACE\{DUT_path\} + +.temp CACE\{temperature\} +" +} +C {iopin.sym} 740 -1090 0 1 {name=p2 lab=VDD} +C {ipin.sym} 600 -1020 2 1 {name=p4 lab=Vinplus} +C {ipin.sym} 600 -980 2 1 {name=p1 lab=Vinminus} +C {CML_divider.sym} 740 -1000 0 1 {name=x1} +C {vsource.sym} 1150 -790 0 0 {name=V1 value=CACE\{vdd\} savecurrent=false} +C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} +C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} +C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 0.3 10G 0 0 0)" savecurrent=false} +C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 0.3 10G 0 0 180)" savecurrent=false} +C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_00/.spiceinit b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_00/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_00/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_00/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_00/CML_core_tb.sch new file mode 100644 index 00000000..3c8ccdf1 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_00/CML_core_tb.sch @@ -0,0 +1,71 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {} +V {} +S {} +E {} +N 740 -940 740 -920 {lab=GND} +N 740 -1090 740 -1060 {lab=VDD} +N 600 -1020 620 -1020 {lab=Vinplus} +N 600 -980 620 -980 {lab=Vinminus} +N 860 -1020 880 -1020 {lab=Voplus} +N 860 -980 880 -980 {lab=Vominus} +N 1150 -850 1150 -820 {lab=VDD} +N 1150 -760 1150 -730 {lab=GND} +N 930 -850 930 -820 {lab=Vinminus} +N 930 -760 930 -730 {lab=GND} +N 720 -850 720 -820 {lab=Vinplus} +N 720 -760 720 -730 {lab=GND} +C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write CML_core_tb.raw +set appendwrite +tran 10p 1n 160p + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_00/CML_core_tb_0.data vo_diff +quit + +.endc +"} +C {opin.sym} 880 -1020 2 1 {name=p6 lab=Voplus} +C {opin.sym} 880 -980 0 0 {name=p9 lab=Vominus} +C {devices/code_shown.sym} 10 -620 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_tt + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice + +.temp -40 +" +} +C {iopin.sym} 740 -1090 0 1 {name=p2 lab=VDD} +C {ipin.sym} 600 -1020 2 1 {name=p4 lab=Vinplus} +C {ipin.sym} 600 -980 2 1 {name=p1 lab=Vinminus} +C {CML_divider.sym} 740 -1000 0 1 {name=x1} +C {vsource.sym} 1150 -790 0 0 {name=V1 value=0.8 savecurrent=false} +C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} +C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} +C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 0.3 10G 0 0 0)" savecurrent=false} +C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 0.3 10G 0 0 180)" savecurrent=false} +C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_00/CML_core_tb_0.data b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_00/CML_core_tb_0.data new file mode 100644 index 00000000..6e5c755c --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_00/CML_core_tb_0.data @@ -0,0 +1,85 @@ + 1.628000000000e-10 -2.952325246460e-01 + 1.728000000000e-10 -6.043942197180e-02 + 1.828000000000e-10 1.817064006720e-01 + 1.928000000000e-10 3.985392356515e-01 + 2.028000000000e-10 5.562505249699e-01 + 2.128000000000e-10 6.572874178466e-01 + 2.228000000000e-10 7.087352858161e-01 + 2.328000000000e-10 7.029522511861e-01 + 2.428000000000e-10 6.344368312078e-01 + 2.528000000000e-10 5.013241237787e-01 + 2.628000000000e-10 3.030080742176e-01 + 2.728000000000e-10 6.578821975767e-02 + 2.828000000000e-10 -1.781586778972e-01 + 2.928000000000e-10 -3.964040373443e-01 + 3.028000000000e-10 -5.555461653242e-01 + 3.128000000000e-10 -6.571022283471e-01 + 3.228000000000e-10 -7.092808909864e-01 + 3.328000000000e-10 -7.040843150938e-01 + 3.428000000000e-10 -6.362469325195e-01 + 3.528000000000e-10 -5.032364212786e-01 + 3.628000000000e-10 -3.051350358226e-01 + 3.728000000000e-10 -6.762904380973e-02 + 3.828000000000e-10 1.763878132349e-01 + 3.928000000000e-10 3.951284969670e-01 + 4.028000000000e-10 5.545978983505e-01 + 4.128000000000e-10 6.566315830069e-01 + 4.228000000000e-10 7.089962487465e-01 + 4.328000000000e-10 7.042633111532e-01 + 4.428000000000e-10 6.365365170049e-01 + 4.528000000000e-10 5.037912579488e-01 + 4.628000000000e-10 3.056253251435e-01 + 4.728000000000e-10 6.823087043489e-02 + 4.828000000000e-10 -1.759620590786e-01 + 4.928000000000e-10 -3.946766675460e-01 + 5.028000000000e-10 -5.543918551335e-01 + 5.128000000000e-10 -6.564106038653e-01 + 5.228000000000e-10 -7.089804674794e-01 + 5.328000000000e-10 -7.042284637667e-01 + 5.428000000000e-10 -6.366831677063e-01 + 5.528000000000e-10 -5.038654128054e-01 + 5.628000000000e-10 -3.058301627321e-01 + 5.728000000000e-10 -6.832081314378e-02 + 5.828000000000e-10 1.757744687450e-01 + 5.928000000000e-10 3.946207346164e-01 + 6.028000000000e-10 5.542681653143e-01 + 6.128000000000e-10 6.564162326939e-01 + 6.228000000000e-10 7.089102158365e-01 + 6.328000000000e-10 7.042850183822e-01 + 6.428000000000e-10 6.366586213363e-01 + 6.528000000000e-10 5.039505543903e-01 + 6.628000000000e-10 3.058219717524e-01 + 6.728000000000e-10 6.840961740524e-02 + 6.828000000000e-10 -1.757862033444e-01 + 6.928000000000e-10 -3.945467987447e-01 + 7.028000000000e-10 -5.542929102277e-01 + 7.128000000000e-10 -6.563603422698e-01 + 7.228000000000e-10 -7.089481650220e-01 + 7.328000000000e-10 -7.042424683005e-01 + 7.428000000000e-10 -6.367078290897e-01 + 7.528000000000e-10 -5.039165471509e-01 + 7.628000000000e-10 -3.058753018579e-01 + 7.728000000000e-10 -6.837707225292e-02 + 7.828000000000e-10 1.757345833407e-01 + 7.928000000000e-10 3.945785215449e-01 + 8.028000000000e-10 5.542482652542e-01 + 8.128000000000e-10 6.563959408481e-01 + 8.228000000000e-10 7.089082113076e-01 + 8.328000000000e-10 7.042817797830e-01 + 8.428000000000e-10 6.366719399828e-01 + 8.528000000000e-10 5.039573608246e-01 + 8.628000000000e-10 3.058408732486e-01 + 8.728000000000e-10 6.841772818469e-02 + 8.828000000000e-10 -1.757686495942e-01 + 8.928000000000e-10 -3.945419964750e-01 + 9.028000000000e-10 -5.542809328797e-01 + 9.128000000000e-10 -6.563614885531e-01 + 9.228000000000e-10 -7.089411806967e-01 + 9.328000000000e-10 -7.042479976407e-01 + 9.428000000000e-10 -6.367051444468e-01 + 9.528000000000e-10 -5.039245834310e-01 + 9.628000000000e-10 -3.058742220339e-01 + 9.728000000000e-10 -6.838526492007e-02 + 9.828000000000e-10 1.757358039920e-01 + 9.928000000000e-10 3.945718167364e-01 + 1.000000000000e-09 5.155910006549e-01 diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_00/CML_divider.sym b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_00/CML_divider.sym new file mode 100644 index 00000000..e46eb233 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_00/CML_divider.sym @@ -0,0 +1,30 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 -120 -20 -100 -20 {} +L 4 -120 20 -100 20 {} +L 4 100 -20 120 -20 {} +L 4 100 20 120 20 {} +L 7 0 -60 0 -40 {} +L 7 0 40 0 60 {} +B 5 -122.5 -22.5 -117.5 -17.5 {name=Vo+ dir=out} +B 5 -122.5 17.5 -117.5 22.5 {name=Vo- dir=out} +B 5 117.5 -22.5 122.5 -17.5 {name=Vi+ dir=in} +B 5 117.5 17.5 122.5 22.5 {name=Vi- dir=in} +B 5 -2.5 -62.5 2.5 -57.5 {name=vdd dir=inout} +B 5 -2.5 57.5 2.5 62.5 {name=gnd dir=inout} +P 4 5 100 -40 -100 -40 -100 40 100 40 100 -40 {} +T {@symname} -44 -6 0 0 0.3 0.3 {} +T {@name} 45 -52 0 0 0.2 0.2 {} +T {Vo+} -95 -24 0 0 0.2 0.2 {} +T {Vo-} -95 16 0 0 0.2 0.2 {} +T {Vi+} 95 -16 2 0 0.2 0.2 {} +T {Vi-} 95 24 2 0 0.2 0.2 {} +T {vdd} 10 -39 0 1 0.2 0.2 {} +T {gnd} -10 34 2 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_00/conditions.yaml b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_00/conditions.yaml new file mode 100644 index 00000000..61941c26 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_00/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice +N: 0 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: tt +filename: CML_core_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_00 +temperature: '-40' +vdd: '0.8' diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_01/.spiceinit b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_01/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_01/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_01/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_01/CML_core_tb.sch new file mode 100644 index 00000000..17574ff5 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_01/CML_core_tb.sch @@ -0,0 +1,71 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {} +V {} +S {} +E {} +N 740 -940 740 -920 {lab=GND} +N 740 -1090 740 -1060 {lab=VDD} +N 600 -1020 620 -1020 {lab=Vinplus} +N 600 -980 620 -980 {lab=Vinminus} +N 860 -1020 880 -1020 {lab=Voplus} +N 860 -980 880 -980 {lab=Vominus} +N 1150 -850 1150 -820 {lab=VDD} +N 1150 -760 1150 -730 {lab=GND} +N 930 -850 930 -820 {lab=Vinminus} +N 930 -760 930 -730 {lab=GND} +N 720 -850 720 -820 {lab=Vinplus} +N 720 -760 720 -730 {lab=GND} +C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write CML_core_tb.raw +set appendwrite +tran 10p 1n 160p + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_01/CML_core_tb_1.data vo_diff +quit + +.endc +"} +C {opin.sym} 880 -1020 2 1 {name=p6 lab=Voplus} +C {opin.sym} 880 -980 0 0 {name=p9 lab=Vominus} +C {devices/code_shown.sym} 10 -620 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_ff + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice + +.temp -40 +" +} +C {iopin.sym} 740 -1090 0 1 {name=p2 lab=VDD} +C {ipin.sym} 600 -1020 2 1 {name=p4 lab=Vinplus} +C {ipin.sym} 600 -980 2 1 {name=p1 lab=Vinminus} +C {CML_divider.sym} 740 -1000 0 1 {name=x1} +C {vsource.sym} 1150 -790 0 0 {name=V1 value=0.8 savecurrent=false} +C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} +C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} +C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 0.3 10G 0 0 0)" savecurrent=false} +C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 0.3 10G 0 0 180)" savecurrent=false} +C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_01/CML_core_tb_1.data b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_01/CML_core_tb_1.data new file mode 100644 index 00000000..94a2849c --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_01/CML_core_tb_1.data @@ -0,0 +1,85 @@ + 1.628000000000e-10 -2.647956442563e-01 + 1.728000000000e-10 -3.672466403620e-02 + 1.828000000000e-10 1.978055322165e-01 + 1.928000000000e-10 4.056017943518e-01 + 2.028000000000e-10 5.547344088879e-01 + 2.128000000000e-10 6.487490848065e-01 + 2.228000000000e-10 6.923653634957e-01 + 2.328000000000e-10 6.780886353961e-01 + 2.428000000000e-10 6.039598047192e-01 + 2.528000000000e-10 4.698168410475e-01 + 2.628000000000e-10 2.751260896566e-01 + 2.728000000000e-10 4.430157580526e-02 + 2.828000000000e-10 -1.925038311834e-01 + 2.928000000000e-10 -4.023301580756e-01 + 3.028000000000e-10 -5.533152551340e-01 + 3.128000000000e-10 -6.481954476962e-01 + 3.228000000000e-10 -6.930655672739e-01 + 3.328000000000e-10 -6.800540209913e-01 + 3.428000000000e-10 -6.070129146880e-01 + 3.528000000000e-10 -4.732295235615e-01 + 3.628000000000e-10 -2.788311309623e-01 + 3.728000000000e-10 -4.769207273318e-02 + 3.828000000000e-10 1.893739393663e-01 + 3.928000000000e-10 3.999895682405e-01 + 4.028000000000e-10 5.516914161753e-01 + 4.128000000000e-10 6.473194453459e-01 + 4.228000000000e-10 6.926967113745e-01 + 4.328000000000e-10 6.804409619078e-01 + 4.428000000000e-10 6.077344291363e-01 + 4.528000000000e-10 4.743209278754e-01 + 4.628000000000e-10 2.799315218230e-01 + 4.728000000000e-10 4.887682675205e-02 + 4.828000000000e-10 -1.884058832182e-01 + 4.928000000000e-10 -3.991237321070e-01 + 5.028000000000e-10 -5.511979674959e-01 + 5.128000000000e-10 -6.469402879887e-01 + 5.228000000000e-10 -6.926225993557e-01 + 5.328000000000e-10 -6.804805060919e-01 + 5.428000000000e-10 -6.080204415279e-01 + 5.528000000000e-10 -4.745961817340e-01 + 5.628000000000e-10 -2.803459413605e-01 + 5.728000000000e-10 -4.918721233066e-02 + 5.828000000000e-10 1.880320213273e-01 + 5.928000000000e-10 3.989072784961e-01 + 6.028000000000e-10 5.509784832100e-01 + 6.128000000000e-10 6.468776696433e-01 + 6.228000000000e-10 6.925382949500e-01 + 6.328000000000e-10 6.805520167761e-01 + 6.428000000000e-10 6.080522625696e-01 + 6.528000000000e-10 4.747422384222e-01 + 6.628000000000e-10 2.804194075907e-01 + 6.728000000000e-10 4.934414267879e-02 + 6.828000000000e-10 -1.879699706397e-01 + 6.928000000000e-10 -3.987854446736e-01 + 7.028000000000e-10 -5.509613139230e-01 + 7.128000000000e-10 -6.468062697707e-01 + 7.228000000000e-10 -6.925630874809e-01 + 7.328000000000e-10 -6.805223964692e-01 + 7.428000000000e-10 -6.081132322697e-01 + 7.528000000000e-10 -4.747366406660e-01 + 7.628000000000e-10 -2.804933490724e-01 + 7.728000000000e-10 -4.934235519722e-02 + 7.828000000000e-10 1.879006367827e-01 + 7.928000000000e-10 3.987938070562e-01 + 8.028000000000e-10 5.509093463144e-01 + 8.128000000000e-10 6.468293959909e-01 + 8.228000000000e-10 6.925252291894e-01 + 8.328000000000e-10 6.805590879185e-01 + 8.428000000000e-10 6.080875904937e-01 + 8.528000000000e-10 4.747803907956e-01 + 8.628000000000e-10 2.804721530083e-01 + 8.728000000000e-10 4.938687520288e-02 + 8.828000000000e-10 -1.879222775604e-01 + 8.928000000000e-10 -3.987554695640e-01 + 9.028000000000e-10 -5.509333914335e-01 + 9.128000000000e-10 -6.467969990881e-01 + 9.228000000000e-10 -6.925530415231e-01 + 9.328000000000e-10 -6.805304150604e-01 + 9.428000000000e-10 -6.081187600045e-01 + 9.528000000000e-10 -4.747542418837e-01 + 9.628000000000e-10 -2.805045225794e-01 + 9.728000000000e-10 -4.936125388638e-02 + 9.828000000000e-10 1.878908530872e-01 + 9.928000000000e-10 3.987795364060e-01 + 1.000000000000e-09 5.142017254263e-01 diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_01/CML_divider.sym b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_01/CML_divider.sym new file mode 100644 index 00000000..e46eb233 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_01/CML_divider.sym @@ -0,0 +1,30 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 -120 -20 -100 -20 {} +L 4 -120 20 -100 20 {} +L 4 100 -20 120 -20 {} +L 4 100 20 120 20 {} +L 7 0 -60 0 -40 {} +L 7 0 40 0 60 {} +B 5 -122.5 -22.5 -117.5 -17.5 {name=Vo+ dir=out} +B 5 -122.5 17.5 -117.5 22.5 {name=Vo- dir=out} +B 5 117.5 -22.5 122.5 -17.5 {name=Vi+ dir=in} +B 5 117.5 17.5 122.5 22.5 {name=Vi- dir=in} +B 5 -2.5 -62.5 2.5 -57.5 {name=vdd dir=inout} +B 5 -2.5 57.5 2.5 62.5 {name=gnd dir=inout} +P 4 5 100 -40 -100 -40 -100 40 100 40 100 -40 {} +T {@symname} -44 -6 0 0 0.3 0.3 {} +T {@name} 45 -52 0 0 0.2 0.2 {} +T {Vo+} -95 -24 0 0 0.2 0.2 {} +T {Vo-} -95 16 0 0 0.2 0.2 {} +T {Vi+} 95 -16 2 0 0.2 0.2 {} +T {Vi-} 95 24 2 0 0.2 0.2 {} +T {vdd} 10 -39 0 1 0.2 0.2 {} +T {gnd} -10 34 2 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_01/conditions.yaml b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_01/conditions.yaml new file mode 100644 index 00000000..eee3a944 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_01/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice +N: 1 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: ff +filename: CML_core_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_01 +temperature: '-40' +vdd: '0.8' diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_02/.spiceinit b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_02/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_02/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_02/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_02/CML_core_tb.sch new file mode 100644 index 00000000..e5054b24 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_02/CML_core_tb.sch @@ -0,0 +1,71 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {} +V {} +S {} +E {} +N 740 -940 740 -920 {lab=GND} +N 740 -1090 740 -1060 {lab=VDD} +N 600 -1020 620 -1020 {lab=Vinplus} +N 600 -980 620 -980 {lab=Vinminus} +N 860 -1020 880 -1020 {lab=Voplus} +N 860 -980 880 -980 {lab=Vominus} +N 1150 -850 1150 -820 {lab=VDD} +N 1150 -760 1150 -730 {lab=GND} +N 930 -850 930 -820 {lab=Vinminus} +N 930 -760 930 -730 {lab=GND} +N 720 -850 720 -820 {lab=Vinplus} +N 720 -760 720 -730 {lab=GND} +C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write CML_core_tb.raw +set appendwrite +tran 10p 1n 160p + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_02/CML_core_tb_2.data vo_diff +quit + +.endc +"} +C {opin.sym} 880 -1020 2 1 {name=p6 lab=Voplus} +C {opin.sym} 880 -980 0 0 {name=p9 lab=Vominus} +C {devices/code_shown.sym} 10 -620 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_ss + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice + +.temp -40 +" +} +C {iopin.sym} 740 -1090 0 1 {name=p2 lab=VDD} +C {ipin.sym} 600 -1020 2 1 {name=p4 lab=Vinplus} +C {ipin.sym} 600 -980 2 1 {name=p1 lab=Vinminus} +C {CML_divider.sym} 740 -1000 0 1 {name=x1} +C {vsource.sym} 1150 -790 0 0 {name=V1 value=0.8 savecurrent=false} +C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} +C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} +C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 0.3 10G 0 0 0)" savecurrent=false} +C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 0.3 10G 0 0 180)" savecurrent=false} +C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_02/CML_core_tb_2.data b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_02/CML_core_tb_2.data new file mode 100644 index 00000000..cdbb156b --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_02/CML_core_tb_2.data @@ -0,0 +1,85 @@ + 1.628000000000e-10 -3.226907107526e-01 + 1.728000000000e-10 -8.539968284410e-02 + 1.828000000000e-10 1.614480909662e-01 + 1.928000000000e-10 3.869191924745e-01 + 2.028000000000e-10 5.540483396157e-01 + 2.128000000000e-10 6.620167995175e-01 + 2.228000000000e-10 7.202634748901e-01 + 2.328000000000e-10 7.212523007105e-01 + 2.428000000000e-10 6.566979396260e-01 + 2.528000000000e-10 5.250303609426e-01 + 2.628000000000e-10 3.265092852166e-01 + 2.728000000000e-10 8.707604756770e-02 + 2.828000000000e-10 -1.611600424348e-01 + 2.928000000000e-10 -3.873238626333e-01 + 3.028000000000e-10 -5.550746884823e-01 + 3.128000000000e-10 -6.629366269634e-01 + 3.228000000000e-10 -7.212894794449e-01 + 3.328000000000e-10 -7.220878341254e-01 + 3.428000000000e-10 -6.576651735802e-01 + 3.528000000000e-10 -5.257535323793e-01 + 3.628000000000e-10 -3.273054874384e-01 + 3.728000000000e-10 -8.759901468451e-02 + 3.828000000000e-10 1.605580394287e-01 + 3.928000000000e-10 3.869863823107e-01 + 4.028000000000e-10 5.547303069787e-01 + 4.128000000000e-10 6.628461833305e-01 + 4.228000000000e-10 7.211466820779e-01 + 4.328000000000e-10 7.221995653822e-01 + 4.428000000000e-10 6.577128147927e-01 + 4.528000000000e-10 5.259884868760e-01 + 4.628000000000e-10 3.274163471898e-01 + 4.728000000000e-10 8.784541550780e-02 + 4.828000000000e-10 -1.604682108624e-01 + 4.928000000000e-10 -3.867888973241e-01 + 5.028000000000e-10 -5.547066546217e-01 + 5.128000000000e-10 -6.627253094524e-01 + 5.228000000000e-10 -7.211826888209e-01 + 5.328000000000e-10 -7.221369141817e-01 + 5.428000000000e-10 -6.577994031943e-01 + 5.528000000000e-10 -5.259620192587e-01 + 5.628000000000e-10 -3.275201865204e-01 + 5.728000000000e-10 -8.782404636233e-02 + 5.828000000000e-10 1.603689538405e-01 + 5.928000000000e-10 3.868153343854e-01 + 6.028000000000e-10 5.546284247412e-01 + 6.128000000000e-10 6.627691182366e-01 + 6.228000000000e-10 7.211205707397e-01 + 6.328000000000e-10 7.221945096033e-01 + 6.428000000000e-10 6.577508134366e-01 + 6.528000000000e-10 5.260261908485e-01 + 6.628000000000e-10 3.274760111912e-01 + 6.728000000000e-10 8.788851273295e-02 + 6.828000000000e-10 -1.604138329037e-01 + 6.928000000000e-10 -3.867579820075e-01 + 7.028000000000e-10 -5.546733587088e-01 + 7.128000000000e-10 -6.627166397254e-01 + 7.228000000000e-10 -7.211676696649e-01 + 7.328000000000e-10 -7.221448613305e-01 + 7.428000000000e-10 -6.577993970261e-01 + 7.528000000000e-10 -5.259796511606e-01 + 7.628000000000e-10 -3.275252420812e-01 + 7.728000000000e-10 -8.784270745333e-02 + 7.828000000000e-10 1.603648729372e-01 + 7.928000000000e-10 3.868003178892e-01 + 8.028000000000e-10 5.546284703905e-01 + 8.128000000000e-10 6.627594909397e-01 + 8.228000000000e-10 7.211247368625e-01 + 8.328000000000e-10 7.221884517678e-01 + 8.428000000000e-10 6.577581123739e-01 + 8.528000000000e-10 5.260226393584e-01 + 8.628000000000e-10 3.274844581735e-01 + 8.728000000000e-10 8.788515759553e-02 + 8.828000000000e-10 -1.604054537172e-01 + 8.928000000000e-10 -3.867616376768e-01 + 9.028000000000e-10 -5.546662826942e-01 + 9.128000000000e-10 -6.627215467888e-01 + 9.228000000000e-10 -7.211618152183e-01 + 9.328000000000e-10 -7.221504122635e-01 + 9.428000000000e-10 -6.577943183983e-01 + 9.528000000000e-10 -5.259856282734e-01 + 9.628000000000e-10 -3.275204867996e-01 + 9.728000000000e-10 -8.784851998896e-02 + 9.828000000000e-10 1.603694682536e-01 + 9.928000000000e-10 3.867951846118e-01 + 1.000000000000e-09 5.139507493642e-01 diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_02/CML_divider.sym b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_02/CML_divider.sym new file mode 100644 index 00000000..e46eb233 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_02/CML_divider.sym @@ -0,0 +1,30 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 -120 -20 -100 -20 {} +L 4 -120 20 -100 20 {} +L 4 100 -20 120 -20 {} +L 4 100 20 120 20 {} +L 7 0 -60 0 -40 {} +L 7 0 40 0 60 {} +B 5 -122.5 -22.5 -117.5 -17.5 {name=Vo+ dir=out} +B 5 -122.5 17.5 -117.5 22.5 {name=Vo- dir=out} +B 5 117.5 -22.5 122.5 -17.5 {name=Vi+ dir=in} +B 5 117.5 17.5 122.5 22.5 {name=Vi- dir=in} +B 5 -2.5 -62.5 2.5 -57.5 {name=vdd dir=inout} +B 5 -2.5 57.5 2.5 62.5 {name=gnd dir=inout} +P 4 5 100 -40 -100 -40 -100 40 100 40 100 -40 {} +T {@symname} -44 -6 0 0 0.3 0.3 {} +T {@name} 45 -52 0 0 0.2 0.2 {} +T {Vo+} -95 -24 0 0 0.2 0.2 {} +T {Vo-} -95 16 0 0 0.2 0.2 {} +T {Vi+} 95 -16 2 0 0.2 0.2 {} +T {Vi-} 95 24 2 0 0.2 0.2 {} +T {vdd} 10 -39 0 1 0.2 0.2 {} +T {gnd} -10 34 2 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_02/conditions.yaml b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_02/conditions.yaml new file mode 100644 index 00000000..a71e07da --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_02/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice +N: 2 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: ss +filename: CML_core_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_02 +temperature: '-40' +vdd: '0.8' diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_03/.spiceinit b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_03/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_03/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_03/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_03/CML_core_tb.sch new file mode 100644 index 00000000..83f6cb3a --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_03/CML_core_tb.sch @@ -0,0 +1,71 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {} +V {} +S {} +E {} +N 740 -940 740 -920 {lab=GND} +N 740 -1090 740 -1060 {lab=VDD} +N 600 -1020 620 -1020 {lab=Vinplus} +N 600 -980 620 -980 {lab=Vinminus} +N 860 -1020 880 -1020 {lab=Voplus} +N 860 -980 880 -980 {lab=Vominus} +N 1150 -850 1150 -820 {lab=VDD} +N 1150 -760 1150 -730 {lab=GND} +N 930 -850 930 -820 {lab=Vinminus} +N 930 -760 930 -730 {lab=GND} +N 720 -850 720 -820 {lab=Vinplus} +N 720 -760 720 -730 {lab=GND} +C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write CML_core_tb.raw +set appendwrite +tran 10p 1n 160p + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_03/CML_core_tb_3.data vo_diff +quit + +.endc +"} +C {opin.sym} 880 -1020 2 1 {name=p6 lab=Voplus} +C {opin.sym} 880 -980 0 0 {name=p9 lab=Vominus} +C {devices/code_shown.sym} 10 -620 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_tt + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice + +.temp 27 +" +} +C {iopin.sym} 740 -1090 0 1 {name=p2 lab=VDD} +C {ipin.sym} 600 -1020 2 1 {name=p4 lab=Vinplus} +C {ipin.sym} 600 -980 2 1 {name=p1 lab=Vinminus} +C {CML_divider.sym} 740 -1000 0 1 {name=x1} +C {vsource.sym} 1150 -790 0 0 {name=V1 value=0.8 savecurrent=false} +C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} +C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} +C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 0.3 10G 0 0 0)" savecurrent=false} +C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 0.3 10G 0 0 180)" savecurrent=false} +C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_03/CML_core_tb_3.data b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_03/CML_core_tb_3.data new file mode 100644 index 00000000..a5b707e1 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_03/CML_core_tb_3.data @@ -0,0 +1,85 @@ + 1.628000000000e-10 -2.752371518652e-01 + 1.728000000000e-10 -5.371376319542e-02 + 1.828000000000e-10 1.789877413053e-01 + 1.928000000000e-10 3.904548691103e-01 + 2.028000000000e-10 5.481842948229e-01 + 2.128000000000e-10 6.473880529986e-01 + 2.228000000000e-10 6.910106576952e-01 + 2.328000000000e-10 6.747515328639e-01 + 2.428000000000e-10 5.993982850131e-01 + 2.528000000000e-10 4.678235295331e-01 + 2.628000000000e-10 2.811940191144e-01 + 2.728000000000e-10 5.749892092429e-02 + 2.828000000000e-10 -1.768703468756e-01 + 2.928000000000e-10 -3.894327299011e-01 + 3.028000000000e-10 -5.481462871223e-01 + 3.128000000000e-10 -6.476233959034e-01 + 3.228000000000e-10 -6.918267741740e-01 + 3.328000000000e-10 -6.759891610513e-01 + 3.428000000000e-10 -6.011477081233e-01 + 3.528000000000e-10 -4.695436066175e-01 + 3.628000000000e-10 -2.830251877311e-01 + 3.728000000000e-10 -5.907673776650e-02 + 3.828000000000e-10 1.753349861707e-01 + 3.928000000000e-10 3.883274219019e-01 + 4.028000000000e-10 5.473035177189e-01 + 4.128000000000e-10 6.472356324664e-01 + 4.228000000000e-10 6.916308158427e-01 + 4.328000000000e-10 6.762268077787e-01 + 4.428000000000e-10 6.014684070962e-01 + 4.528000000000e-10 4.700895666681e-01 + 4.628000000000e-10 2.834862741746e-01 + 4.728000000000e-10 5.964855757083e-02 + 4.828000000000e-10 -1.749274761915e-01 + 4.928000000000e-10 -3.878897710558e-01 + 5.028000000000e-10 -5.470986037433e-01 + 5.128000000000e-10 -6.470272164409e-01 + 5.228000000000e-10 -6.916322065746e-01 + 5.328000000000e-10 -6.762158687864e-01 + 5.428000000000e-10 -6.016311330158e-01 + 5.528000000000e-10 -4.701782346337e-01 + 5.628000000000e-10 -2.836941639082e-01 + 5.728000000000e-10 -5.974768838544e-02 + 5.828000000000e-10 1.747352099095e-01 + 5.928000000000e-10 3.878245260251e-01 + 6.028000000000e-10 5.469715931678e-01 + 6.128000000000e-10 6.470284806517e-01 + 6.228000000000e-10 6.915679621080e-01 + 6.328000000000e-10 6.762768333485e-01 + 6.428000000000e-10 6.016163496453e-01 + 6.528000000000e-10 4.702674812943e-01 + 6.628000000000e-10 2.836938506434e-01 + 6.728000000000e-10 5.983990401354e-02 + 6.828000000000e-10 -1.747391664584e-01 + 6.928000000000e-10 -3.877472828580e-01 + 7.028000000000e-10 -5.469903889528e-01 + 7.128000000000e-10 -6.469730360721e-01 + 7.228000000000e-10 -6.916047287716e-01 + 7.328000000000e-10 -6.762386026180e-01 + 7.428000000000e-10 -6.016669907082e-01 + 7.528000000000e-10 -4.702390118128e-01 + 7.628000000000e-10 -2.837481181728e-01 + 7.728000000000e-10 -5.981248689037e-02 + 7.828000000000e-10 1.746867337354e-01 + 7.928000000000e-10 3.877749638679e-01 + 8.028000000000e-10 5.469462314077e-01 + 8.128000000000e-10 6.470055622974e-01 + 8.228000000000e-10 6.915665740520e-01 + 8.328000000000e-10 6.762766371031e-01 + 8.428000000000e-10 6.016337946720e-01 + 8.528000000000e-10 4.702787360349e-01 + 8.628000000000e-10 2.837166478210e-01 + 8.728000000000e-10 5.985233152723e-02 + 8.828000000000e-10 -1.747180248353e-01 + 8.928000000000e-10 -3.877389392165e-01 + 9.028000000000e-10 -5.469764940938e-01 + 9.128000000000e-10 -6.469724949526e-01 + 9.228000000000e-10 -6.915980610397e-01 + 9.328000000000e-10 -6.762447762615e-01 + 9.428000000000e-10 -6.016660865709e-01 + 9.528000000000e-10 -4.702484057793e-01 + 9.628000000000e-10 -2.837489236123e-01 + 9.728000000000e-10 -5.982216431619e-02 + 9.828000000000e-10 1.746862818107e-01 + 9.928000000000e-10 3.877670239311e-01 + 1.000000000000e-09 5.084292112944e-01 diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_03/CML_divider.sym b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_03/CML_divider.sym new file mode 100644 index 00000000..e46eb233 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_03/CML_divider.sym @@ -0,0 +1,30 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 -120 -20 -100 -20 {} +L 4 -120 20 -100 20 {} +L 4 100 -20 120 -20 {} +L 4 100 20 120 20 {} +L 7 0 -60 0 -40 {} +L 7 0 40 0 60 {} +B 5 -122.5 -22.5 -117.5 -17.5 {name=Vo+ dir=out} +B 5 -122.5 17.5 -117.5 22.5 {name=Vo- dir=out} +B 5 117.5 -22.5 122.5 -17.5 {name=Vi+ dir=in} +B 5 117.5 17.5 122.5 22.5 {name=Vi- dir=in} +B 5 -2.5 -62.5 2.5 -57.5 {name=vdd dir=inout} +B 5 -2.5 57.5 2.5 62.5 {name=gnd dir=inout} +P 4 5 100 -40 -100 -40 -100 40 100 40 100 -40 {} +T {@symname} -44 -6 0 0 0.3 0.3 {} +T {@name} 45 -52 0 0 0.2 0.2 {} +T {Vo+} -95 -24 0 0 0.2 0.2 {} +T {Vo-} -95 16 0 0 0.2 0.2 {} +T {Vi+} 95 -16 2 0 0.2 0.2 {} +T {Vi-} 95 24 2 0 0.2 0.2 {} +T {vdd} 10 -39 0 1 0.2 0.2 {} +T {gnd} -10 34 2 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_03/conditions.yaml b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_03/conditions.yaml new file mode 100644 index 00000000..d9659250 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_03/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice +N: 3 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: tt +filename: CML_core_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_03 +temperature: '27' +vdd: '0.8' diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_04/.spiceinit b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_04/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_04/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_04/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_04/CML_core_tb.sch new file mode 100644 index 00000000..345ea94d --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_04/CML_core_tb.sch @@ -0,0 +1,71 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {} +V {} +S {} +E {} +N 740 -940 740 -920 {lab=GND} +N 740 -1090 740 -1060 {lab=VDD} +N 600 -1020 620 -1020 {lab=Vinplus} +N 600 -980 620 -980 {lab=Vinminus} +N 860 -1020 880 -1020 {lab=Voplus} +N 860 -980 880 -980 {lab=Vominus} +N 1150 -850 1150 -820 {lab=VDD} +N 1150 -760 1150 -730 {lab=GND} +N 930 -850 930 -820 {lab=Vinminus} +N 930 -760 930 -730 {lab=GND} +N 720 -850 720 -820 {lab=Vinplus} +N 720 -760 720 -730 {lab=GND} +C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write CML_core_tb.raw +set appendwrite +tran 10p 1n 160p + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_04/CML_core_tb_4.data vo_diff +quit + +.endc +"} +C {opin.sym} 880 -1020 2 1 {name=p6 lab=Voplus} +C {opin.sym} 880 -980 0 0 {name=p9 lab=Vominus} +C {devices/code_shown.sym} 10 -620 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_ff + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice + +.temp 27 +" +} +C {iopin.sym} 740 -1090 0 1 {name=p2 lab=VDD} +C {ipin.sym} 600 -1020 2 1 {name=p4 lab=Vinplus} +C {ipin.sym} 600 -980 2 1 {name=p1 lab=Vinminus} +C {CML_divider.sym} 740 -1000 0 1 {name=x1} +C {vsource.sym} 1150 -790 0 0 {name=V1 value=0.8 savecurrent=false} +C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} +C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} +C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 0.3 10G 0 0 0)" savecurrent=false} +C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 0.3 10G 0 0 180)" savecurrent=false} +C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_04/CML_core_tb_4.data b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_04/CML_core_tb_4.data new file mode 100644 index 00000000..8dbaf881 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_04/CML_core_tb_4.data @@ -0,0 +1,85 @@ + 1.628000000000e-10 -2.482257947455e-01 + 1.728000000000e-10 -3.259266550035e-02 + 1.828000000000e-10 1.930322087844e-01 + 1.928000000000e-10 3.960886599474e-01 + 2.028000000000e-10 5.450058997505e-01 + 2.128000000000e-10 6.360387116800e-01 + 2.228000000000e-10 6.712975422190e-01 + 2.328000000000e-10 6.474938983982e-01 + 2.428000000000e-10 5.679706274704e-01 + 2.528000000000e-10 4.364781736218e-01 + 2.628000000000e-10 2.536409133725e-01 + 2.728000000000e-10 3.555786929817e-02 + 2.828000000000e-10 -1.919150168478e-01 + 2.928000000000e-10 -3.960490843585e-01 + 3.028000000000e-10 -5.456465197220e-01 + 3.128000000000e-10 -6.367232933250e-01 + 3.228000000000e-10 -6.725166925877e-01 + 3.328000000000e-10 -6.491812984547e-01 + 3.428000000000e-10 -5.701612342484e-01 + 3.528000000000e-10 -4.386195239579e-01 + 3.628000000000e-10 -2.558666299298e-01 + 3.728000000000e-10 -3.750940439386e-02 + 3.828000000000e-10 1.900731677010e-01 + 3.928000000000e-10 3.947279065049e-01 + 4.028000000000e-10 5.446879536498e-01 + 4.128000000000e-10 6.362937598492e-01 + 4.228000000000e-10 6.723764816130e-01 + 4.328000000000e-10 6.495551727740e-01 + 4.428000000000e-10 5.706690754638e-01 + 4.528000000000e-10 4.393690386281e-01 + 4.628000000000e-10 2.565445890136e-01 + 4.728000000000e-10 3.828939038748e-02 + 4.828000000000e-10 -1.894747026650e-01 + 4.928000000000e-10 -3.941469427019e-01 + 5.028000000000e-10 -5.443881652157e-01 + 5.128000000000e-10 -6.360424686566e-01 + 5.228000000000e-10 -6.723795425302e-01 + 5.328000000000e-10 -6.495951074105e-01 + 5.428000000000e-10 -5.709049111673e-01 + 5.528000000000e-10 -4.395480856777e-01 + 5.628000000000e-10 -2.568451405700e-01 + 5.728000000000e-10 -3.848386295174e-02 + 5.828000000000e-10 1.891998017504e-01 + 5.928000000000e-10 3.940128253458e-01 + 6.028000000000e-10 5.442195759360e-01 + 6.128000000000e-10 6.360190076123e-01 + 6.228000000000e-10 6.723154692419e-01 + 6.328000000000e-10 6.496722035130e-01 + 6.428000000000e-10 5.709215560836e-01 + 6.528000000000e-10 4.396716365902e-01 + 6.628000000000e-10 2.568848555761e-01 + 6.728000000000e-10 3.861258812938e-02 + 6.828000000000e-10 -1.891673406027e-01 + 6.928000000000e-10 -3.939096487469e-01 + 7.028000000000e-10 -5.442185154541e-01 + 7.128000000000e-10 -6.359555029215e-01 + 7.228000000000e-10 -6.723494769467e-01 + 7.328000000000e-10 -6.496420384079e-01 + 7.428000000000e-10 -5.709822816025e-01 + 7.528000000000e-10 -4.396582995671e-01 + 7.628000000000e-10 -2.569529185106e-01 + 7.728000000000e-10 -3.860128053097e-02 + 7.828000000000e-10 1.891028165048e-01 + 7.928000000000e-10 3.939252197739e-01 + 8.028000000000e-10 5.441685861906e-01 + 8.128000000000e-10 6.359828023137e-01 + 8.228000000000e-10 6.723118712615e-01 + 8.328000000000e-10 6.496812709937e-01 + 8.428000000000e-10 5.709544657577e-01 + 8.528000000000e-10 4.397022527784e-01 + 8.628000000000e-10 2.569280980597e-01 + 8.728000000000e-10 3.864565597286e-02 + 8.828000000000e-10 -1.891278298806e-01 + 8.928000000000e-10 -3.938862165142e-01 + 9.028000000000e-10 -5.441949734698e-01 + 9.128000000000e-10 -6.359493781265e-01 + 9.228000000000e-10 -6.723420888760e-01 + 9.328000000000e-10 -6.496512561522e-01 + 9.428000000000e-10 -5.709874488604e-01 + 9.528000000000e-10 -4.396746422576e-01 + 9.628000000000e-10 -2.569616958772e-01 + 9.728000000000e-10 -3.861839939192e-02 + 9.828000000000e-10 1.890951489097e-01 + 9.928000000000e-10 3.939119089870e-01 + 1.000000000000e-09 5.081084039478e-01 diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_04/CML_divider.sym b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_04/CML_divider.sym new file mode 100644 index 00000000..e46eb233 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_04/CML_divider.sym @@ -0,0 +1,30 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 -120 -20 -100 -20 {} +L 4 -120 20 -100 20 {} +L 4 100 -20 120 -20 {} +L 4 100 20 120 20 {} +L 7 0 -60 0 -40 {} +L 7 0 40 0 60 {} +B 5 -122.5 -22.5 -117.5 -17.5 {name=Vo+ dir=out} +B 5 -122.5 17.5 -117.5 22.5 {name=Vo- dir=out} +B 5 117.5 -22.5 122.5 -17.5 {name=Vi+ dir=in} +B 5 117.5 17.5 122.5 22.5 {name=Vi- dir=in} +B 5 -2.5 -62.5 2.5 -57.5 {name=vdd dir=inout} +B 5 -2.5 57.5 2.5 62.5 {name=gnd dir=inout} +P 4 5 100 -40 -100 -40 -100 40 100 40 100 -40 {} +T {@symname} -44 -6 0 0 0.3 0.3 {} +T {@name} 45 -52 0 0 0.2 0.2 {} +T {Vo+} -95 -24 0 0 0.2 0.2 {} +T {Vo-} -95 16 0 0 0.2 0.2 {} +T {Vi+} 95 -16 2 0 0.2 0.2 {} +T {Vi-} 95 24 2 0 0.2 0.2 {} +T {vdd} 10 -39 0 1 0.2 0.2 {} +T {gnd} -10 34 2 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_04/conditions.yaml b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_04/conditions.yaml new file mode 100644 index 00000000..7fe81e1e --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_04/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice +N: 4 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: ff +filename: CML_core_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_04 +temperature: '27' +vdd: '0.8' diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_05/.spiceinit b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_05/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_05/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_05/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_05/CML_core_tb.sch new file mode 100644 index 00000000..7c161102 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_05/CML_core_tb.sch @@ -0,0 +1,71 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {} +V {} +S {} +E {} +N 740 -940 740 -920 {lab=GND} +N 740 -1090 740 -1060 {lab=VDD} +N 600 -1020 620 -1020 {lab=Vinplus} +N 600 -980 620 -980 {lab=Vinminus} +N 860 -1020 880 -1020 {lab=Voplus} +N 860 -980 880 -980 {lab=Vominus} +N 1150 -850 1150 -820 {lab=VDD} +N 1150 -760 1150 -730 {lab=GND} +N 930 -850 930 -820 {lab=Vinminus} +N 930 -760 930 -730 {lab=GND} +N 720 -850 720 -820 {lab=Vinplus} +N 720 -760 720 -730 {lab=GND} +C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write CML_core_tb.raw +set appendwrite +tran 10p 1n 160p + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_05/CML_core_tb_5.data vo_diff +quit + +.endc +"} +C {opin.sym} 880 -1020 2 1 {name=p6 lab=Voplus} +C {opin.sym} 880 -980 0 0 {name=p9 lab=Vominus} +C {devices/code_shown.sym} 10 -620 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_ss + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice + +.temp 27 +" +} +C {iopin.sym} 740 -1090 0 1 {name=p2 lab=VDD} +C {ipin.sym} 600 -1020 2 1 {name=p4 lab=Vinplus} +C {ipin.sym} 600 -980 2 1 {name=p1 lab=Vinminus} +C {CML_divider.sym} 740 -1000 0 1 {name=x1} +C {vsource.sym} 1150 -790 0 0 {name=V1 value=0.8 savecurrent=false} +C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} +C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} +C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 0.3 10G 0 0 0)" savecurrent=false} +C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 0.3 10G 0 0 180)" savecurrent=false} +C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_05/CML_core_tb_5.data b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_05/CML_core_tb_5.data new file mode 100644 index 00000000..72d71163 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_05/CML_core_tb_5.data @@ -0,0 +1,85 @@ + 1.628000000000e-10 -3.026592886865e-01 + 1.728000000000e-10 -8.046058591213e-02 + 1.828000000000e-10 1.560684489845e-01 + 1.928000000000e-10 3.758215815324e-01 + 2.028000000000e-10 5.441825187720e-01 + 2.128000000000e-10 6.527787402061e-01 + 2.228000000000e-10 7.054162779080e-01 + 2.328000000000e-10 6.966940307878e-01 + 2.428000000000e-10 6.251719997267e-01 + 2.528000000000e-10 4.948986245243e-01 + 2.628000000000e-10 3.088338841037e-01 + 2.728000000000e-10 8.463582249819e-02 + 2.828000000000e-10 -1.534379373390e-01 + 2.928000000000e-10 -3.742382678981e-01 + 3.028000000000e-10 -5.437587344983e-01 + 3.128000000000e-10 -6.527795869025e-01 + 3.228000000000e-10 -7.060578401775e-01 + 3.328000000000e-10 -6.977288800308e-01 + 3.428000000000e-10 -6.267241220561e-01 + 3.528000000000e-10 -4.964034573067e-01 + 3.628000000000e-10 -3.104523257846e-01 + 3.728000000000e-10 -8.599843693100e-02 + 3.828000000000e-10 1.520614001089e-01 + 3.928000000000e-10 3.732327292359e-01 + 4.028000000000e-10 5.429530946109e-01 + 4.128000000000e-10 6.523997728799e-01 + 4.228000000000e-10 7.058202145507e-01 + 4.328000000000e-10 6.979022558405e-01 + 4.428000000000e-10 6.269588593419e-01 + 4.528000000000e-10 4.968624227466e-01 + 4.628000000000e-10 3.108132149603e-01 + 4.728000000000e-10 8.648038785746e-02 + 4.828000000000e-10 -1.517384677919e-01 + 4.928000000000e-10 -3.728474794484e-01 + 5.028000000000e-10 -5.427866011842e-01 + 5.128000000000e-10 -6.522022614009e-01 + 5.228000000000e-10 -7.058208822479e-01 + 5.328000000000e-10 -6.978651082200e-01 + 5.428000000000e-10 -6.270935668997e-01 + 5.528000000000e-10 -4.969096569281e-01 + 5.628000000000e-10 -3.109835748750e-01 + 5.728000000000e-10 -8.653572716924e-02 + 5.828000000000e-10 1.515778681972e-01 + 5.928000000000e-10 3.728127447205e-01 + 6.028000000000e-10 5.426739415091e-01 + 6.128000000000e-10 6.522162007318e-01 + 6.228000000000e-10 7.057544179932e-01 + 6.328000000000e-10 6.979224304337e-01 + 6.428000000000e-10 6.270641898671e-01 + 6.528000000000e-10 4.969874144680e-01 + 6.628000000000e-10 3.109648292365e-01 + 6.728000000000e-10 8.661535651254e-02 + 6.828000000000e-10 -1.515990397030e-01 + 6.928000000000e-10 -3.727433125293e-01 + 7.028000000000e-10 -5.427028559119e-01 + 7.128000000000e-10 -6.521615488134e-01 + 7.228000000000e-10 -7.057946841560e-01 + 7.328000000000e-10 -6.978790263426e-01 + 7.428000000000e-10 -6.271133848792e-01 + 7.528000000000e-10 -4.969513861012e-01 + 7.628000000000e-10 -3.110159233563e-01 + 7.728000000000e-10 -8.658006676818e-02 + 7.828000000000e-10 1.515487071721e-01 + 7.928000000000e-10 3.727772980737e-01 + 8.028000000000e-10 5.426589701450e-01 + 8.128000000000e-10 6.521979789832e-01 + 8.228000000000e-10 7.057547305503e-01 + 8.328000000000e-10 6.979187185021e-01 + 8.428000000000e-10 6.270767072939e-01 + 8.528000000000e-10 4.969913946096e-01 + 8.628000000000e-10 3.109805885282e-01 + 8.728000000000e-10 8.662004567696e-02 + 8.828000000000e-10 -1.515841004471e-01 + 8.928000000000e-10 -3.727405314049e-01 + 9.028000000000e-10 -5.426922302859e-01 + 9.128000000000e-10 -6.521632231968e-01 + 9.228000000000e-10 -7.057882763540e-01 + 9.328000000000e-10 -6.978845659833e-01 + 9.428000000000e-10 -6.271103709374e-01 + 9.528000000000e-10 -4.969587868574e-01 + 9.628000000000e-10 -3.110138943909e-01 + 9.728000000000e-10 -8.658760475646e-02 + 9.828000000000e-10 1.515508999036e-01 + 9.928000000000e-10 3.727707590510e-01 + 1.000000000000e-09 5.012730784879e-01 diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_05/CML_divider.sym b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_05/CML_divider.sym new file mode 100644 index 00000000..e46eb233 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_05/CML_divider.sym @@ -0,0 +1,30 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 -120 -20 -100 -20 {} +L 4 -120 20 -100 20 {} +L 4 100 -20 120 -20 {} +L 4 100 20 120 20 {} +L 7 0 -60 0 -40 {} +L 7 0 40 0 60 {} +B 5 -122.5 -22.5 -117.5 -17.5 {name=Vo+ dir=out} +B 5 -122.5 17.5 -117.5 22.5 {name=Vo- dir=out} +B 5 117.5 -22.5 122.5 -17.5 {name=Vi+ dir=in} +B 5 117.5 17.5 122.5 22.5 {name=Vi- dir=in} +B 5 -2.5 -62.5 2.5 -57.5 {name=vdd dir=inout} +B 5 -2.5 57.5 2.5 62.5 {name=gnd dir=inout} +P 4 5 100 -40 -100 -40 -100 40 100 40 100 -40 {} +T {@symname} -44 -6 0 0 0.3 0.3 {} +T {@name} 45 -52 0 0 0.2 0.2 {} +T {Vo+} -95 -24 0 0 0.2 0.2 {} +T {Vo-} -95 16 0 0 0.2 0.2 {} +T {Vi+} 95 -16 2 0 0.2 0.2 {} +T {Vi-} 95 24 2 0 0.2 0.2 {} +T {vdd} 10 -39 0 1 0.2 0.2 {} +T {gnd} -10 34 2 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_05/conditions.yaml b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_05/conditions.yaml new file mode 100644 index 00000000..9263549c --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_05/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice +N: 5 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: ss +filename: CML_core_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_05 +temperature: '27' +vdd: '0.8' diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_06/.spiceinit b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_06/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_06/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_06/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_06/CML_core_tb.sch new file mode 100644 index 00000000..371a05d0 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_06/CML_core_tb.sch @@ -0,0 +1,71 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {} +V {} +S {} +E {} +N 740 -940 740 -920 {lab=GND} +N 740 -1090 740 -1060 {lab=VDD} +N 600 -1020 620 -1020 {lab=Vinplus} +N 600 -980 620 -980 {lab=Vinminus} +N 860 -1020 880 -1020 {lab=Voplus} +N 860 -980 880 -980 {lab=Vominus} +N 1150 -850 1150 -820 {lab=VDD} +N 1150 -760 1150 -730 {lab=GND} +N 930 -850 930 -820 {lab=Vinminus} +N 930 -760 930 -730 {lab=GND} +N 720 -850 720 -820 {lab=Vinplus} +N 720 -760 720 -730 {lab=GND} +C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write CML_core_tb.raw +set appendwrite +tran 10p 1n 160p + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_06/CML_core_tb_6.data vo_diff +quit + +.endc +"} +C {opin.sym} 880 -1020 2 1 {name=p6 lab=Voplus} +C {opin.sym} 880 -980 0 0 {name=p9 lab=Vominus} +C {devices/code_shown.sym} 10 -620 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_tt + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice + +.temp 80 +" +} +C {iopin.sym} 740 -1090 0 1 {name=p2 lab=VDD} +C {ipin.sym} 600 -1020 2 1 {name=p4 lab=Vinplus} +C {ipin.sym} 600 -980 2 1 {name=p1 lab=Vinminus} +C {CML_divider.sym} 740 -1000 0 1 {name=x1} +C {vsource.sym} 1150 -790 0 0 {name=V1 value=0.8 savecurrent=false} +C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} +C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} +C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 0.3 10G 0 0 0)" savecurrent=false} +C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 0.3 10G 0 0 180)" savecurrent=false} +C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_06/CML_core_tb_6.data b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_06/CML_core_tb_6.data new file mode 100644 index 00000000..2ac25b32 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_06/CML_core_tb_6.data @@ -0,0 +1,85 @@ + 1.628000000000e-10 -2.658991355482e-01 + 1.728000000000e-10 -5.658971746101e-02 + 1.828000000000e-10 1.665652322471e-01 + 1.928000000000e-10 3.726189743475e-01 + 2.028000000000e-10 5.303705116758e-01 + 2.128000000000e-10 6.287796796090e-01 + 2.228000000000e-10 6.685380236864e-01 + 2.328000000000e-10 6.490234756137e-01 + 2.428000000000e-10 5.737092070140e-01 + 2.528000000000e-10 4.474825535463e-01 + 2.628000000000e-10 2.725242795062e-01 + 2.728000000000e-10 6.117177433707e-02 + 2.828000000000e-10 -1.637031734923e-01 + 2.928000000000e-10 -3.708935568747e-01 + 3.028000000000e-10 -5.297756369707e-01 + 3.128000000000e-10 -6.287017384995e-01 + 3.228000000000e-10 -6.693265533929e-01 + 3.328000000000e-10 -6.504570398323e-01 + 3.428000000000e-10 -5.758168078022e-01 + 3.528000000000e-10 -4.496242973413e-01 + 3.628000000000e-10 -2.747981275605e-01 + 3.728000000000e-10 -6.319393908833e-02 + 3.828000000000e-10 1.617439470913e-01 + 3.928000000000e-10 3.694169588634e-01 + 4.028000000000e-10 5.286499307585e-01 + 4.128000000000e-10 6.281722098808e-01 + 4.228000000000e-10 6.691184385543e-01 + 4.328000000000e-10 6.507901751637e-01 + 4.428000000000e-10 5.762974118946e-01 + 4.528000000000e-10 4.503608294114e-01 + 4.628000000000e-10 2.754522690623e-01 + 4.728000000000e-10 6.396306731359e-02 + 4.828000000000e-10 -1.611542650007e-01 + 4.928000000000e-10 -3.688169747432e-01 + 5.028000000000e-10 -5.283292872594e-01 + 5.128000000000e-10 -6.279003852563e-01 + 5.228000000000e-10 -6.691136918962e-01 + 5.328000000000e-10 -6.508124831570e-01 + 5.428000000000e-10 -5.765249280825e-01 + 5.528000000000e-10 -4.505225248069e-01 + 5.628000000000e-10 -2.757393848954e-01 + 5.728000000000e-10 -6.413835118523e-02 + 5.828000000000e-10 1.608879015274e-01 + 5.928000000000e-10 3.686909867212e-01 + 6.028000000000e-10 5.281558224884e-01 + 6.128000000000e-10 6.278785795680e-01 + 6.228000000000e-10 6.690442760911e-01 + 6.328000000000e-10 6.508870303825e-01 + 6.428000000000e-10 5.765321271449e-01 + 6.528000000000e-10 4.506407637839e-01 + 6.628000000000e-10 2.757670228304e-01 + 6.728000000000e-10 6.426080532693e-02 + 6.828000000000e-10 -1.608659404084e-01 + 6.928000000000e-10 -3.685888330346e-01 + 7.028000000000e-10 -5.281591419234e-01 + 7.128000000000e-10 -6.278127091451e-01 + 7.228000000000e-10 -6.690805910819e-01 + 7.328000000000e-10 -6.508520944992e-01 + 7.428000000000e-10 -5.765925476372e-01 + 7.528000000000e-10 -4.506215704207e-01 + 7.628000000000e-10 -2.758332595929e-01 + 7.728000000000e-10 -6.424327491403e-02 + 7.828000000000e-10 1.608024320318e-01 + 7.928000000000e-10 3.686091606456e-01 + 8.028000000000e-10 5.281080947303e-01 + 8.128000000000e-10 6.278426474070e-01 + 8.228000000000e-10 6.690409470235e-01 + 8.328000000000e-10 6.508923982303e-01 + 8.428000000000e-10 5.765614162070e-01 + 8.528000000000e-10 4.506656063053e-01 + 8.628000000000e-10 2.758047260180e-01 + 8.728000000000e-10 6.428762429922e-02 + 8.828000000000e-10 -1.608310872580e-01 + 8.928000000000e-10 -3.685690211775e-01 + 9.028000000000e-10 -5.281370864240e-01 + 9.128000000000e-10 -6.278075066251e-01 + 9.228000000000e-10 -6.690730291835e-01 + 9.328000000000e-10 -6.508603444096e-01 + 9.428000000000e-10 -5.765956636587e-01 + 9.528000000000e-10 -4.506359555730e-01 + 9.628000000000e-10 -2.758391852585e-01 + 9.728000000000e-10 -6.425829353036e-02 + 9.828000000000e-10 1.607973448132e-01 + 9.928000000000e-10 3.685968285070e-01 + 1.000000000000e-09 4.894958047088e-01 diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_06/CML_divider.sym b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_06/CML_divider.sym new file mode 100644 index 00000000..e46eb233 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_06/CML_divider.sym @@ -0,0 +1,30 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 -120 -20 -100 -20 {} +L 4 -120 20 -100 20 {} +L 4 100 -20 120 -20 {} +L 4 100 20 120 20 {} +L 7 0 -60 0 -40 {} +L 7 0 40 0 60 {} +B 5 -122.5 -22.5 -117.5 -17.5 {name=Vo+ dir=out} +B 5 -122.5 17.5 -117.5 22.5 {name=Vo- dir=out} +B 5 117.5 -22.5 122.5 -17.5 {name=Vi+ dir=in} +B 5 117.5 17.5 122.5 22.5 {name=Vi- dir=in} +B 5 -2.5 -62.5 2.5 -57.5 {name=vdd dir=inout} +B 5 -2.5 57.5 2.5 62.5 {name=gnd dir=inout} +P 4 5 100 -40 -100 -40 -100 40 100 40 100 -40 {} +T {@symname} -44 -6 0 0 0.3 0.3 {} +T {@name} 45 -52 0 0 0.2 0.2 {} +T {Vo+} -95 -24 0 0 0.2 0.2 {} +T {Vo-} -95 16 0 0 0.2 0.2 {} +T {Vi+} 95 -16 2 0 0.2 0.2 {} +T {Vi-} 95 24 2 0 0.2 0.2 {} +T {vdd} 10 -39 0 1 0.2 0.2 {} +T {gnd} -10 34 2 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_06/conditions.yaml b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_06/conditions.yaml new file mode 100644 index 00000000..999004cd --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_06/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice +N: 6 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: tt +filename: CML_core_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_06 +temperature: '80' +vdd: '0.8' diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_07/.spiceinit b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_07/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_07/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_07/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_07/CML_core_tb.sch new file mode 100644 index 00000000..10b8e80e --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_07/CML_core_tb.sch @@ -0,0 +1,71 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {} +V {} +S {} +E {} +N 740 -940 740 -920 {lab=GND} +N 740 -1090 740 -1060 {lab=VDD} +N 600 -1020 620 -1020 {lab=Vinplus} +N 600 -980 620 -980 {lab=Vinminus} +N 860 -1020 880 -1020 {lab=Voplus} +N 860 -980 880 -980 {lab=Vominus} +N 1150 -850 1150 -820 {lab=VDD} +N 1150 -760 1150 -730 {lab=GND} +N 930 -850 930 -820 {lab=Vinminus} +N 930 -760 930 -730 {lab=GND} +N 720 -850 720 -820 {lab=Vinplus} +N 720 -760 720 -730 {lab=GND} +C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write CML_core_tb.raw +set appendwrite +tran 10p 1n 160p + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_07/CML_core_tb_7.data vo_diff +quit + +.endc +"} +C {opin.sym} 880 -1020 2 1 {name=p6 lab=Voplus} +C {opin.sym} 880 -980 0 0 {name=p9 lab=Vominus} +C {devices/code_shown.sym} 10 -620 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_ff + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice + +.temp 80 +" +} +C {iopin.sym} 740 -1090 0 1 {name=p2 lab=VDD} +C {ipin.sym} 600 -1020 2 1 {name=p4 lab=Vinplus} +C {ipin.sym} 600 -980 2 1 {name=p1 lab=Vinminus} +C {CML_divider.sym} 740 -1000 0 1 {name=x1} +C {vsource.sym} 1150 -790 0 0 {name=V1 value=0.8 savecurrent=false} +C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} +C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} +C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 0.3 10G 0 0 0)" savecurrent=false} +C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 0.3 10G 0 0 180)" savecurrent=false} +C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_07/CML_core_tb_7.data b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_07/CML_core_tb_7.data new file mode 100644 index 00000000..8cc8eec2 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_07/CML_core_tb_7.data @@ -0,0 +1,85 @@ + 1.628000000000e-10 -2.411371086013e-01 + 1.728000000000e-10 -3.745255924116e-02 + 1.828000000000e-10 1.789428987452e-01 + 1.928000000000e-10 3.769558934840e-01 + 2.028000000000e-10 5.255858783541e-01 + 2.128000000000e-10 6.150086513683e-01 + 2.228000000000e-10 6.463506095909e-01 + 2.328000000000e-10 6.202014565113e-01 + 2.428000000000e-10 5.417075102450e-01 + 2.528000000000e-10 4.161519970610e-01 + 2.628000000000e-10 2.448960905686e-01 + 2.728000000000e-10 3.892968213965e-02 + 2.828000000000e-10 -1.791505445505e-01 + 2.928000000000e-10 -3.778686664383e-01 + 3.028000000000e-10 -5.268093330033e-01 + 3.128000000000e-10 -6.159877416348e-01 + 3.228000000000e-10 -6.476195951568e-01 + 3.328000000000e-10 -6.216667221790e-01 + 3.428000000000e-10 -5.435382878554e-01 + 3.528000000000e-10 -4.178448923887e-01 + 3.628000000000e-10 -2.466531390426e-01 + 3.728000000000e-10 -4.041876256606e-02 + 3.828000000000e-10 1.777092594525e-01 + 3.928000000000e-10 3.768542192180e-01 + 4.028000000000e-10 5.260351926041e-01 + 4.128000000000e-10 6.156923491854e-01 + 4.228000000000e-10 6.475364165656e-01 + 4.328000000000e-10 6.220253224816e-01 + 4.428000000000e-10 5.439681165412e-01 + 4.528000000000e-10 4.184919515643e-01 + 4.628000000000e-10 2.472032785778e-01 + 4.728000000000e-10 4.108392377197e-02 + 4.828000000000e-10 -1.772209974541e-01 + 4.928000000000e-10 -3.763464849454e-01 + 5.028000000000e-10 -5.257893585276e-01 + 5.128000000000e-10 -6.154751208437e-01 + 5.228000000000e-10 -6.475677164184e-01 + 5.328000000000e-10 -6.220637777790e-01 + 5.428000000000e-10 -5.441970040997e-01 + 5.528000000000e-10 -4.186454653208e-01 + 5.628000000000e-10 -2.474812841152e-01 + 5.728000000000e-10 -4.124875776275e-02 + 5.828000000000e-10 1.769646369358e-01 + 5.928000000000e-10 3.762321495571e-01 + 6.028000000000e-10 5.256270530622e-01 + 6.128000000000e-10 6.154644314175e-01 + 6.228000000000e-10 6.475079392204e-01 + 6.328000000000e-10 6.221477255403e-01 + 6.428000000000e-10 5.442104878297e-01 + 6.528000000000e-10 4.187701859554e-01 + 6.628000000000e-10 2.475138621783e-01 + 6.728000000000e-10 4.137738638918e-02 + 6.828000000000e-10 -1.769383615791e-01 + 6.928000000000e-10 -3.761265802968e-01 + 7.028000000000e-10 -5.256298366366e-01 + 7.128000000000e-10 -6.153992750277e-01 + 7.228000000000e-10 -6.475476374408e-01 + 7.328000000000e-10 -6.221164421539e-01 + 7.428000000000e-10 -5.442762390873e-01 + 7.528000000000e-10 -4.187551150856e-01 + 7.628000000000e-10 -2.475858208222e-01 + 7.728000000000e-10 -4.136415856981e-02 + 7.828000000000e-10 1.768699557901e-01 + 7.928000000000e-10 3.761440347995e-01 + 8.028000000000e-10 5.255765528630e-01 + 8.128000000000e-10 6.154291154928e-01 + 8.228000000000e-10 6.475082015932e-01 + 8.328000000000e-10 6.221591874056e-01 + 8.428000000000e-10 5.442468649409e-01 + 8.528000000000e-10 4.188025713318e-01 + 8.628000000000e-10 2.475593730203e-01 + 8.728000000000e-10 4.141194467582e-02 + 8.828000000000e-10 -1.768965906206e-01 + 8.928000000000e-10 -3.761014263264e-01 + 9.028000000000e-10 -5.256047249426e-01 + 9.128000000000e-10 -6.153930400649e-01 + 9.228000000000e-10 -6.475410523019e-01 + 9.328000000000e-10 -6.221273229309e-01 + 9.428000000000e-10 -5.442828742825e-01 + 9.528000000000e-10 -4.187734552047e-01 + 9.628000000000e-10 -2.475958588134e-01 + 9.728000000000e-10 -4.138326223977e-02 + 9.828000000000e-10 1.768611473522e-01 + 9.928000000000e-10 3.761288017358e-01 + 1.000000000000e-09 4.898465656484e-01 diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_07/CML_divider.sym b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_07/CML_divider.sym new file mode 100644 index 00000000..e46eb233 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_07/CML_divider.sym @@ -0,0 +1,30 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 -120 -20 -100 -20 {} +L 4 -120 20 -100 20 {} +L 4 100 -20 120 -20 {} +L 4 100 20 120 20 {} +L 7 0 -60 0 -40 {} +L 7 0 40 0 60 {} +B 5 -122.5 -22.5 -117.5 -17.5 {name=Vo+ dir=out} +B 5 -122.5 17.5 -117.5 22.5 {name=Vo- dir=out} +B 5 117.5 -22.5 122.5 -17.5 {name=Vi+ dir=in} +B 5 117.5 17.5 122.5 22.5 {name=Vi- dir=in} +B 5 -2.5 -62.5 2.5 -57.5 {name=vdd dir=inout} +B 5 -2.5 57.5 2.5 62.5 {name=gnd dir=inout} +P 4 5 100 -40 -100 -40 -100 40 100 40 100 -40 {} +T {@symname} -44 -6 0 0 0.3 0.3 {} +T {@name} 45 -52 0 0 0.2 0.2 {} +T {Vo+} -95 -24 0 0 0.2 0.2 {} +T {Vo-} -95 16 0 0 0.2 0.2 {} +T {Vi+} 95 -16 2 0 0.2 0.2 {} +T {Vi-} 95 24 2 0 0.2 0.2 {} +T {vdd} 10 -39 0 1 0.2 0.2 {} +T {gnd} -10 34 2 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_07/conditions.yaml b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_07/conditions.yaml new file mode 100644 index 00000000..12457833 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_07/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice +N: 7 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: ff +filename: CML_core_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_07 +temperature: '80' +vdd: '0.8' diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_08/.spiceinit b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_08/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_08/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_08/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_08/CML_core_tb.sch new file mode 100644 index 00000000..3b1a3f45 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_08/CML_core_tb.sch @@ -0,0 +1,71 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {} +V {} +S {} +E {} +N 740 -940 740 -920 {lab=GND} +N 740 -1090 740 -1060 {lab=VDD} +N 600 -1020 620 -1020 {lab=Vinplus} +N 600 -980 620 -980 {lab=Vinminus} +N 860 -1020 880 -1020 {lab=Voplus} +N 860 -980 880 -980 {lab=Vominus} +N 1150 -850 1150 -820 {lab=VDD} +N 1150 -760 1150 -730 {lab=GND} +N 930 -850 930 -820 {lab=Vinminus} +N 930 -760 930 -730 {lab=GND} +N 720 -850 720 -820 {lab=Vinplus} +N 720 -760 720 -730 {lab=GND} +C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write CML_core_tb.raw +set appendwrite +tran 10p 1n 160p + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_08/CML_core_tb_8.data vo_diff +quit + +.endc +"} +C {opin.sym} 880 -1020 2 1 {name=p6 lab=Voplus} +C {opin.sym} 880 -980 0 0 {name=p9 lab=Vominus} +C {devices/code_shown.sym} 10 -620 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_ss + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice + +.temp 80 +" +} +C {iopin.sym} 740 -1090 0 1 {name=p2 lab=VDD} +C {ipin.sym} 600 -1020 2 1 {name=p4 lab=Vinplus} +C {ipin.sym} 600 -980 2 1 {name=p1 lab=Vinminus} +C {CML_divider.sym} 740 -1000 0 1 {name=x1} +C {vsource.sym} 1150 -790 0 0 {name=V1 value=0.8 savecurrent=false} +C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} +C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} +C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 0.3 10G 0 0 0)" savecurrent=false} +C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 0.3 10G 0 0 180)" savecurrent=false} +C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_08/CML_core_tb_8.data b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_08/CML_core_tb_8.data new file mode 100644 index 00000000..2ec9911e --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_08/CML_core_tb_8.data @@ -0,0 +1,85 @@ + 1.628000000000e-10 -2.915574653990e-01 + 1.728000000000e-10 -8.207206468644e-02 + 1.828000000000e-10 1.443140454917e-01 + 1.928000000000e-10 3.578501059917e-01 + 2.028000000000e-10 5.264102614641e-01 + 2.128000000000e-10 6.356033847750e-01 + 2.228000000000e-10 6.852124516173e-01 + 2.328000000000e-10 6.731697751231e-01 + 2.428000000000e-10 6.014680860110e-01 + 2.528000000000e-10 4.762934940598e-01 + 2.628000000000e-10 3.019743151843e-01 + 2.728000000000e-10 9.052768843264e-02 + 2.828000000000e-10 -1.376882496508e-01 + 2.928000000000e-10 -3.528073773591e-01 + 3.028000000000e-10 -5.234244166185e-01 + 3.128000000000e-10 -6.340851318675e-01 + 3.228000000000e-10 -6.854084589569e-01 + 3.328000000000e-10 -6.747695956588e-01 + 3.428000000000e-10 -6.042844418494e-01 + 3.528000000000e-10 -4.793995649692e-01 + 3.628000000000e-10 -3.052822644166e-01 + 3.728000000000e-10 -9.358407685982e-02 + 3.828000000000e-10 1.347194202511e-01 + 3.928000000000e-10 3.504174847188e-01 + 4.028000000000e-10 5.215924623562e-01 + 4.128000000000e-10 6.330900225454e-01 + 4.228000000000e-10 6.849701135730e-01 + 4.328000000000e-10 6.751037342439e-01 + 4.428000000000e-10 6.049384750133e-01 + 4.528000000000e-10 4.803914109079e-01 + 4.628000000000e-10 3.062148923158e-01 + 4.728000000000e-10 9.463220881739e-02 + 4.828000000000e-10 -1.338572933423e-01 + 4.928000000000e-10 -3.495689260045e-01 + 5.028000000000e-10 -5.210792449240e-01 + 5.128000000000e-10 -6.326887195405e-01 + 5.228000000000e-10 -6.848983576670e-01 + 5.328000000000e-10 -6.751198274713e-01 + 5.428000000000e-10 -6.052060952211e-01 + 5.528000000000e-10 -4.806148207689e-01 + 5.628000000000e-10 -3.065686575138e-01 + 5.728000000000e-10 -9.487468231530e-02 + 5.828000000000e-10 1.335246601606e-01 + 5.928000000000e-10 3.493821792388e-01 + 6.028000000000e-10 5.208575371198e-01 + 6.128000000000e-10 6.326338805716e-01 + 6.228000000000e-10 6.848108600046e-01 + 6.328000000000e-10 6.751907109187e-01 + 6.428000000000e-10 6.052214841565e-01 + 6.528000000000e-10 4.807458450129e-01 + 6.628000000000e-10 3.066111422989e-01 + 6.728000000000e-10 9.501122064621e-02 + 6.828000000000e-10 -1.334882175614e-01 + 6.928000000000e-10 -3.492660352924e-01 + 7.028000000000e-10 -5.208495294585e-01 + 7.128000000000e-10 -6.325598499367e-01 + 7.228000000000e-10 -6.848421004985e-01 + 7.328000000000e-10 -6.751543080912e-01 + 7.428000000000e-10 -6.052828258645e-01 + 7.528000000000e-10 -4.807293659120e-01 + 7.628000000000e-10 -3.066794924108e-01 + 7.728000000000e-10 -9.499664108150e-02 + 7.828000000000e-10 1.334220275121e-01 + 7.928000000000e-10 3.492835018463e-01 + 8.028000000000e-10 5.207961769649e-01 + 8.128000000000e-10 6.325876998525e-01 + 8.228000000000e-10 6.848014468222e-01 + 8.328000000000e-10 6.751935994962e-01 + 8.428000000000e-10 6.052518981308e-01 + 8.528000000000e-10 4.807729857688e-01 + 8.628000000000e-10 3.066516205185e-01 + 8.728000000000e-10 9.504068447267e-02 + 8.828000000000e-10 -1.334502935734e-01 + 8.928000000000e-10 -3.492430994753e-01 + 9.028000000000e-10 -5.208246106410e-01 + 9.128000000000e-10 -6.325523513325e-01 + 9.228000000000e-10 -6.848328984481e-01 + 9.328000000000e-10 -6.751615848536e-01 + 9.428000000000e-10 -6.052856721640e-01 + 9.528000000000e-10 -4.807436971446e-01 + 9.628000000000e-10 -3.066854569150e-01 + 9.728000000000e-10 -9.501170247959e-02 + 9.828000000000e-10 1.334168358063e-01 + 9.928000000000e-10 3.492707284922e-01 + 1.000000000000e-09 4.787459694615e-01 diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_08/CML_divider.sym b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_08/CML_divider.sym new file mode 100644 index 00000000..e46eb233 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_08/CML_divider.sym @@ -0,0 +1,30 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 -120 -20 -100 -20 {} +L 4 -120 20 -100 20 {} +L 4 100 -20 120 -20 {} +L 4 100 20 120 20 {} +L 7 0 -60 0 -40 {} +L 7 0 40 0 60 {} +B 5 -122.5 -22.5 -117.5 -17.5 {name=Vo+ dir=out} +B 5 -122.5 17.5 -117.5 22.5 {name=Vo- dir=out} +B 5 117.5 -22.5 122.5 -17.5 {name=Vi+ dir=in} +B 5 117.5 17.5 122.5 22.5 {name=Vi- dir=in} +B 5 -2.5 -62.5 2.5 -57.5 {name=vdd dir=inout} +B 5 -2.5 57.5 2.5 62.5 {name=gnd dir=inout} +P 4 5 100 -40 -100 -40 -100 40 100 40 100 -40 {} +T {@symname} -44 -6 0 0 0.3 0.3 {} +T {@name} 45 -52 0 0 0.2 0.2 {} +T {Vo+} -95 -24 0 0 0.2 0.2 {} +T {Vo-} -95 16 0 0 0.2 0.2 {} +T {Vi+} 95 -16 2 0 0.2 0.2 {} +T {Vi-} 95 24 2 0 0.2 0.2 {} +T {vdd} 10 -39 0 1 0.2 0.2 {} +T {gnd} -10 34 2 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_08/conditions.yaml b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_08/conditions.yaml new file mode 100644 index 00000000..95a41dea --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_08/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice +N: 8 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: ss +filename: CML_core_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_08 +temperature: '80' +vdd: '0.8' diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_09/.spiceinit b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_09/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_09/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_09/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_09/CML_core_tb.sch new file mode 100644 index 00000000..dde89224 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_09/CML_core_tb.sch @@ -0,0 +1,71 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {} +V {} +S {} +E {} +N 740 -940 740 -920 {lab=GND} +N 740 -1090 740 -1060 {lab=VDD} +N 600 -1020 620 -1020 {lab=Vinplus} +N 600 -980 620 -980 {lab=Vinminus} +N 860 -1020 880 -1020 {lab=Voplus} +N 860 -980 880 -980 {lab=Vominus} +N 1150 -850 1150 -820 {lab=VDD} +N 1150 -760 1150 -730 {lab=GND} +N 930 -850 930 -820 {lab=Vinminus} +N 930 -760 930 -730 {lab=GND} +N 720 -850 720 -820 {lab=Vinplus} +N 720 -760 720 -730 {lab=GND} +C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write CML_core_tb.raw +set appendwrite +tran 10p 1n 160p + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_09/CML_core_tb_9.data vo_diff +quit + +.endc +"} +C {opin.sym} 880 -1020 2 1 {name=p6 lab=Voplus} +C {opin.sym} 880 -980 0 0 {name=p9 lab=Vominus} +C {devices/code_shown.sym} 10 -620 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_tt + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice + +.temp -40 +" +} +C {iopin.sym} 740 -1090 0 1 {name=p2 lab=VDD} +C {ipin.sym} 600 -1020 2 1 {name=p4 lab=Vinplus} +C {ipin.sym} 600 -980 2 1 {name=p1 lab=Vinminus} +C {CML_divider.sym} 740 -1000 0 1 {name=x1} +C {vsource.sym} 1150 -790 0 0 {name=V1 value=1.2 savecurrent=false} +C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} +C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} +C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 0.3 10G 0 0 0)" savecurrent=false} +C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 0.3 10G 0 0 180)" savecurrent=false} +C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_09/CML_core_tb_9.data b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_09/CML_core_tb_9.data new file mode 100644 index 00000000..1eb23e09 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_09/CML_core_tb_9.data @@ -0,0 +1,85 @@ + 1.628000000000e-10 -5.397443385003e-01 + 1.728000000000e-10 -2.045536352810e-01 + 1.828000000000e-10 1.313863393294e-01 + 1.928000000000e-10 3.838209275603e-01 + 2.028000000000e-10 5.347375940933e-01 + 2.128000000000e-10 6.276591932156e-01 + 2.228000000000e-10 7.115621702194e-01 + 2.328000000000e-10 7.798611559065e-01 + 2.428000000000e-10 8.066497785728e-01 + 2.528000000000e-10 7.447444131165e-01 + 2.628000000000e-10 5.331798214247e-01 + 2.728000000000e-10 1.991243487461e-01 + 2.828000000000e-10 -1.352153251063e-01 + 2.928000000000e-10 -3.864762984078e-01 + 3.028000000000e-10 -5.369168929595e-01 + 3.128000000000e-10 -6.290603792866e-01 + 3.228000000000e-10 -7.126196515736e-01 + 3.328000000000e-10 -7.804415576126e-01 + 3.428000000000e-10 -8.071911048716e-01 + 3.528000000000e-10 -7.450481751688e-01 + 3.628000000000e-10 -5.336055963763e-01 + 3.728000000000e-10 -1.993198332358e-01 + 3.828000000000e-10 1.349559401886e-01 + 3.928000000000e-10 3.864112742700e-01 + 4.028000000000e-10 5.367351878370e-01 + 4.128000000000e-10 6.290489992071e-01 + 4.228000000000e-10 7.124864782962e-01 + 4.328000000000e-10 7.804750739895e-01 + 4.428000000000e-10 8.070933947437e-01 + 4.528000000000e-10 7.451033689318e-01 + 4.628000000000e-10 5.335168975820e-01 + 4.728000000000e-10 1.993807368925e-01 + 4.828000000000e-10 -1.350304895400e-01 + 4.928000000000e-10 -3.863532554681e-01 + 5.028000000000e-10 -5.368040585560e-01 + 5.128000000000e-10 -6.289909078772e-01 + 5.228000000000e-10 -7.125533448218e-01 + 5.328000000000e-10 -7.804160897110e-01 + 5.428000000000e-10 -8.071554863663e-01 + 5.528000000000e-10 -7.450422465689e-01 + 5.628000000000e-10 -5.335838460974e-01 + 5.728000000000e-10 -1.993167730115e-01 + 5.828000000000e-10 1.349726890253e-01 + 5.928000000000e-10 3.864109858256e-01 + 6.028000000000e-10 5.367479691018e-01 + 6.128000000000e-10 6.290476980128e-01 + 6.228000000000e-10 7.124950121919e-01 + 6.328000000000e-10 7.804717191606e-01 + 6.428000000000e-10 8.070994779138e-01 + 6.528000000000e-10 7.450975613250e-01 + 6.628000000000e-10 5.335259065522e-01 + 6.728000000000e-10 1.993734548210e-01 + 6.828000000000e-10 -1.350242777574e-01 + 6.928000000000e-10 -3.863605033303e-01 + 7.028000000000e-10 -5.367975294074e-01 + 7.128000000000e-10 -6.289982763959e-01 + 7.228000000000e-10 -7.125455111440e-01 + 7.328000000000e-10 -7.804238043085e-01 + 7.428000000000e-10 -8.071473680780e-01 + 7.528000000000e-10 -7.450494772754e-01 + 7.628000000000e-10 -5.335773499054e-01 + 7.728000000000e-10 -1.993230348361e-01 + 7.828000000000e-10 1.349793746975e-01 + 7.928000000000e-10 3.864055722387e-01 + 8.028000000000e-10 5.367539279153e-01 + 8.128000000000e-10 6.290427569852e-01 + 8.228000000000e-10 7.125002063044e-01 + 8.328000000000e-10 7.804668926767e-01 + 8.428000000000e-10 8.071042297758e-01 + 8.528000000000e-10 7.450922570276e-01 + 8.628000000000e-10 5.335323457615e-01 + 8.728000000000e-10 1.993673584870e-01 + 8.828000000000e-10 -1.350193573750e-01 + 8.928000000000e-10 -3.863660901230e-01 + 9.028000000000e-10 -5.367925035482e-01 + 9.128000000000e-10 -6.290039875175e-01 + 9.228000000000e-10 -7.125398122704e-01 + 9.328000000000e-10 -7.804294363608e-01 + 9.428000000000e-10 -8.071416857778e-01 + 9.528000000000e-10 -7.450548065452e-01 + 9.628000000000e-10 -5.335722743766e-01 + 9.728000000000e-10 -1.993280329539e-01 + 9.828000000000e-10 1.349843549639e-01 + 9.928000000000e-10 3.864011317450e-01 + 1.000000000000e-09 5.028020863733e-01 diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_09/CML_divider.sym b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_09/CML_divider.sym new file mode 100644 index 00000000..e46eb233 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_09/CML_divider.sym @@ -0,0 +1,30 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 -120 -20 -100 -20 {} +L 4 -120 20 -100 20 {} +L 4 100 -20 120 -20 {} +L 4 100 20 120 20 {} +L 7 0 -60 0 -40 {} +L 7 0 40 0 60 {} +B 5 -122.5 -22.5 -117.5 -17.5 {name=Vo+ dir=out} +B 5 -122.5 17.5 -117.5 22.5 {name=Vo- dir=out} +B 5 117.5 -22.5 122.5 -17.5 {name=Vi+ dir=in} +B 5 117.5 17.5 122.5 22.5 {name=Vi- dir=in} +B 5 -2.5 -62.5 2.5 -57.5 {name=vdd dir=inout} +B 5 -2.5 57.5 2.5 62.5 {name=gnd dir=inout} +P 4 5 100 -40 -100 -40 -100 40 100 40 100 -40 {} +T {@symname} -44 -6 0 0 0.3 0.3 {} +T {@name} 45 -52 0 0 0.2 0.2 {} +T {Vo+} -95 -24 0 0 0.2 0.2 {} +T {Vo-} -95 16 0 0 0.2 0.2 {} +T {Vi+} 95 -16 2 0 0.2 0.2 {} +T {Vi-} 95 24 2 0 0.2 0.2 {} +T {vdd} 10 -39 0 1 0.2 0.2 {} +T {gnd} -10 34 2 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_09/conditions.yaml b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_09/conditions.yaml new file mode 100644 index 00000000..fd2b1fae --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_09/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice +N: 9 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: tt +filename: CML_core_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_09 +temperature: '-40' +vdd: '1.2' diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_10/.spiceinit b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_10/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_10/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_10/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_10/CML_core_tb.sch new file mode 100644 index 00000000..fe3742cb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_10/CML_core_tb.sch @@ -0,0 +1,71 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {} +V {} +S {} +E {} +N 740 -940 740 -920 {lab=GND} +N 740 -1090 740 -1060 {lab=VDD} +N 600 -1020 620 -1020 {lab=Vinplus} +N 600 -980 620 -980 {lab=Vinminus} +N 860 -1020 880 -1020 {lab=Voplus} +N 860 -980 880 -980 {lab=Vominus} +N 1150 -850 1150 -820 {lab=VDD} +N 1150 -760 1150 -730 {lab=GND} +N 930 -850 930 -820 {lab=Vinminus} +N 930 -760 930 -730 {lab=GND} +N 720 -850 720 -820 {lab=Vinplus} +N 720 -760 720 -730 {lab=GND} +C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write CML_core_tb.raw +set appendwrite +tran 10p 1n 160p + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_10/CML_core_tb_10.data vo_diff +quit + +.endc +"} +C {opin.sym} 880 -1020 2 1 {name=p6 lab=Voplus} +C {opin.sym} 880 -980 0 0 {name=p9 lab=Vominus} +C {devices/code_shown.sym} 10 -620 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_ff + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice + +.temp -40 +" +} +C {iopin.sym} 740 -1090 0 1 {name=p2 lab=VDD} +C {ipin.sym} 600 -1020 2 1 {name=p4 lab=Vinplus} +C {ipin.sym} 600 -980 2 1 {name=p1 lab=Vinminus} +C {CML_divider.sym} 740 -1000 0 1 {name=x1} +C {vsource.sym} 1150 -790 0 0 {name=V1 value=1.2 savecurrent=false} +C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} +C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} +C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 0.3 10G 0 0 0)" savecurrent=false} +C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 0.3 10G 0 0 180)" savecurrent=false} +C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_10/CML_core_tb_10.data b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_10/CML_core_tb_10.data new file mode 100644 index 00000000..973ede5e --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_10/CML_core_tb_10.data @@ -0,0 +1,85 @@ + 1.628000000000e-10 -5.293189432094e-01 + 1.728000000000e-10 -2.034299929592e-01 + 1.828000000000e-10 1.254532736892e-01 + 1.928000000000e-10 3.744603520131e-01 + 2.028000000000e-10 5.220595086358e-01 + 2.128000000000e-10 6.139346231694e-01 + 2.228000000000e-10 6.977077768020e-01 + 2.328000000000e-10 7.638951530454e-01 + 2.428000000000e-10 7.881008470503e-01 + 2.528000000000e-10 7.271434956617e-01 + 2.628000000000e-10 5.227259392947e-01 + 2.728000000000e-10 1.977807095317e-01 + 2.828000000000e-10 -1.296557480667e-01 + 2.928000000000e-10 -3.774966254092e-01 + 3.028000000000e-10 -5.245506032311e-01 + 3.128000000000e-10 -6.155925798862e-01 + 3.228000000000e-10 -6.989490114600e-01 + 3.328000000000e-10 -7.646204924296e-01 + 3.428000000000e-10 -7.887093478172e-01 + 3.528000000000e-10 -7.274783648153e-01 + 3.628000000000e-10 -5.231513423786e-01 + 3.728000000000e-10 -1.979863018154e-01 + 3.828000000000e-10 1.294013660930e-01 + 3.928000000000e-10 3.774276121382e-01 + 4.028000000000e-10 5.243833105689e-01 + 4.128000000000e-10 6.155813660155e-01 + 4.228000000000e-10 6.988272077165e-01 + 4.328000000000e-10 7.646509984988e-01 + 4.428000000000e-10 7.886185007607e-01 + 4.528000000000e-10 7.275266613790e-01 + 4.628000000000e-10 5.230676681296e-01 + 4.728000000000e-10 1.980405747385e-01 + 4.828000000000e-10 -1.294713662253e-01 + 4.928000000000e-10 -3.773761496757e-01 + 5.028000000000e-10 -5.244469821379e-01 + 5.128000000000e-10 -6.155294307936e-01 + 5.228000000000e-10 -6.988887956355e-01 + 5.328000000000e-10 -7.645972449904e-01 + 5.428000000000e-10 -7.886754254295e-01 + 5.528000000000e-10 -7.274706677122e-01 + 5.628000000000e-10 -5.231295350854e-01 + 5.728000000000e-10 -1.979806299381e-01 + 5.828000000000e-10 1.294187696545e-01 + 5.928000000000e-10 3.774292707563e-01 + 6.028000000000e-10 5.243961595933e-01 + 6.128000000000e-10 6.155814701559e-01 + 6.228000000000e-10 6.988355515168e-01 + 6.328000000000e-10 7.646484599731e-01 + 6.428000000000e-10 7.886243100181e-01 + 6.528000000000e-10 7.275215569265e-01 + 6.628000000000e-10 5.230764840752e-01 + 6.728000000000e-10 1.980332799823e-01 + 6.828000000000e-10 -1.294660192513e-01 + 6.928000000000e-10 -3.773827405650e-01 + 7.028000000000e-10 -5.244413520748e-01 + 7.128000000000e-10 -6.155361997798e-01 + 7.228000000000e-10 -6.988817029216e-01 + 7.328000000000e-10 -7.646043204444e-01 + 7.428000000000e-10 -7.886680576572e-01 + 7.528000000000e-10 -7.274772120684e-01 + 7.628000000000e-10 -5.231238849653e-01 + 7.728000000000e-10 -1.979860775160e-01 + 7.828000000000e-10 1.294249237809e-01 + 7.928000000000e-10 3.774244918330e-01 + 8.028000000000e-10 5.244015690321e-01 + 8.128000000000e-10 6.155771739165e-01 + 8.228000000000e-10 6.988402156207e-01 + 8.328000000000e-10 7.646441380646e-01 + 8.428000000000e-10 7.886285892332e-01 + 8.528000000000e-10 7.275167248781e-01 + 8.628000000000e-10 5.230825202638e-01 + 8.728000000000e-10 1.980273627479e-01 + 8.828000000000e-10 -1.294617038455e-01 + 8.928000000000e-10 -3.773878907236e-01 + 9.028000000000e-10 -5.244369215985e-01 + 9.128000000000e-10 -6.155414802599e-01 + 9.228000000000e-10 -6.988765421320e-01 + 9.328000000000e-10 -7.646094975483e-01 + 9.428000000000e-10 -7.886629049186e-01 + 9.528000000000e-10 -7.274820443091e-01 + 9.628000000000e-10 -5.231193961018e-01 + 9.728000000000e-10 -1.979905037884e-01 + 9.828000000000e-10 1.294294922144e-01 + 9.928000000000e-10 3.774205018001e-01 + 1.000000000000e-09 4.912603506308e-01 diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_10/CML_divider.sym b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_10/CML_divider.sym new file mode 100644 index 00000000..e46eb233 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_10/CML_divider.sym @@ -0,0 +1,30 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 -120 -20 -100 -20 {} +L 4 -120 20 -100 20 {} +L 4 100 -20 120 -20 {} +L 4 100 20 120 20 {} +L 7 0 -60 0 -40 {} +L 7 0 40 0 60 {} +B 5 -122.5 -22.5 -117.5 -17.5 {name=Vo+ dir=out} +B 5 -122.5 17.5 -117.5 22.5 {name=Vo- dir=out} +B 5 117.5 -22.5 122.5 -17.5 {name=Vi+ dir=in} +B 5 117.5 17.5 122.5 22.5 {name=Vi- dir=in} +B 5 -2.5 -62.5 2.5 -57.5 {name=vdd dir=inout} +B 5 -2.5 57.5 2.5 62.5 {name=gnd dir=inout} +P 4 5 100 -40 -100 -40 -100 40 100 40 100 -40 {} +T {@symname} -44 -6 0 0 0.3 0.3 {} +T {@name} 45 -52 0 0 0.2 0.2 {} +T {Vo+} -95 -24 0 0 0.2 0.2 {} +T {Vo-} -95 16 0 0 0.2 0.2 {} +T {Vi+} 95 -16 2 0 0.2 0.2 {} +T {Vi-} 95 24 2 0 0.2 0.2 {} +T {vdd} 10 -39 0 1 0.2 0.2 {} +T {gnd} -10 34 2 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_10/conditions.yaml b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_10/conditions.yaml new file mode 100644 index 00000000..3113a09b --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_10/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice +N: 10 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: ff +filename: CML_core_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_10 +temperature: '-40' +vdd: '1.2' diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_11/.spiceinit b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_11/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_11/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_11/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_11/CML_core_tb.sch new file mode 100644 index 00000000..397774de --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_11/CML_core_tb.sch @@ -0,0 +1,71 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {} +V {} +S {} +E {} +N 740 -940 740 -920 {lab=GND} +N 740 -1090 740 -1060 {lab=VDD} +N 600 -1020 620 -1020 {lab=Vinplus} +N 600 -980 620 -980 {lab=Vinminus} +N 860 -1020 880 -1020 {lab=Voplus} +N 860 -980 880 -980 {lab=Vominus} +N 1150 -850 1150 -820 {lab=VDD} +N 1150 -760 1150 -730 {lab=GND} +N 930 -850 930 -820 {lab=Vinminus} +N 930 -760 930 -730 {lab=GND} +N 720 -850 720 -820 {lab=Vinplus} +N 720 -760 720 -730 {lab=GND} +C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write CML_core_tb.raw +set appendwrite +tran 10p 1n 160p + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_11/CML_core_tb_11.data vo_diff +quit + +.endc +"} +C {opin.sym} 880 -1020 2 1 {name=p6 lab=Voplus} +C {opin.sym} 880 -980 0 0 {name=p9 lab=Vominus} +C {devices/code_shown.sym} 10 -620 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_ss + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice + +.temp -40 +" +} +C {iopin.sym} 740 -1090 0 1 {name=p2 lab=VDD} +C {ipin.sym} 600 -1020 2 1 {name=p4 lab=Vinplus} +C {ipin.sym} 600 -980 2 1 {name=p1 lab=Vinminus} +C {CML_divider.sym} 740 -1000 0 1 {name=x1} +C {vsource.sym} 1150 -790 0 0 {name=V1 value=1.2 savecurrent=false} +C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} +C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} +C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 0.3 10G 0 0 0)" savecurrent=false} +C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 0.3 10G 0 0 180)" savecurrent=false} +C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_11/CML_core_tb_11.data b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_11/CML_core_tb_11.data new file mode 100644 index 00000000..799f8459 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_11/CML_core_tb_11.data @@ -0,0 +1,85 @@ + 1.628000000000e-10 -5.473675478550e-01 + 1.728000000000e-10 -2.087893101739e-01 + 1.828000000000e-10 1.310494751476e-01 + 1.928000000000e-10 3.871555645678e-01 + 2.028000000000e-10 5.437689230363e-01 + 2.128000000000e-10 6.391330299748e-01 + 2.228000000000e-10 7.213082317981e-01 + 2.328000000000e-10 7.903248370025e-01 + 2.428000000000e-10 8.187618792919e-01 + 2.528000000000e-10 7.555729663838e-01 + 2.628000000000e-10 5.409345054541e-01 + 2.728000000000e-10 2.036912835862e-01 + 2.828000000000e-10 -1.345140506878e-01 + 2.928000000000e-10 -3.895370892644e-01 + 3.028000000000e-10 -5.457400052530e-01 + 3.128000000000e-10 -6.403498057265e-01 + 3.228000000000e-10 -7.222286336937e-01 + 3.328000000000e-10 -7.907911780827e-01 + 3.428000000000e-10 -8.192361080664e-01 + 3.528000000000e-10 -7.558198978931e-01 + 3.628000000000e-10 -5.413206307136e-01 + 3.728000000000e-10 -2.038438399825e-01 + 3.828000000000e-10 1.342763346632e-01 + 3.928000000000e-10 3.894921044587e-01 + 4.028000000000e-10 5.455616788274e-01 + 4.128000000000e-10 6.403489734683e-01 + 4.228000000000e-10 7.220944352324e-01 + 4.328000000000e-10 7.908322596821e-01 + 4.428000000000e-10 8.191363162855e-01 + 4.528000000000e-10 7.558824803046e-01 + 4.628000000000e-10 5.412307821184e-01 + 4.728000000000e-10 2.039121351986e-01 + 4.828000000000e-10 -1.343528713892e-01 + 4.928000000000e-10 -3.894290190191e-01 + 5.028000000000e-10 -5.456335562174e-01 + 5.128000000000e-10 -6.402860869065e-01 + 5.228000000000e-10 -7.221652152444e-01 + 5.328000000000e-10 -7.907686614943e-01 + 5.428000000000e-10 -8.192023796026e-01 + 5.528000000000e-10 -7.558173441778e-01 + 5.628000000000e-10 -5.413004970284e-01 + 5.728000000000e-10 -2.038447386050e-01 + 5.828000000000e-10 1.342913524064e-01 + 5.928000000000e-10 3.894897157728e-01 + 6.028000000000e-10 5.455737058766e-01 + 6.128000000000e-10 6.403462778603e-01 + 6.228000000000e-10 7.221032530671e-01 + 6.328000000000e-10 7.908278354740e-01 + 6.428000000000e-10 8.191430293573e-01 + 6.528000000000e-10 7.558759446864e-01 + 6.628000000000e-10 5.412396296665e-01 + 6.728000000000e-10 2.039046702204e-01 + 6.828000000000e-10 -1.343459163903e-01 + 6.928000000000e-10 -3.894366779769e-01 + 7.028000000000e-10 -5.456262483653e-01 + 7.128000000000e-10 -6.402940065215e-01 + 7.228000000000e-10 -7.221570137640e-01 + 7.328000000000e-10 -7.907769448806e-01 + 7.428000000000e-10 -8.191938542033e-01 + 7.528000000000e-10 -7.558251320231e-01 + 7.628000000000e-10 -5.412933191298e-01 + 7.728000000000e-10 -2.038518419443e-01 + 7.828000000000e-10 1.342982918430e-01 + 7.928000000000e-10 3.894837914532e-01 + 8.028000000000e-10 5.455799247329e-01 + 8.128000000000e-10 6.403408689327e-01 + 8.228000000000e-10 7.221089932485e-01 + 8.328000000000e-10 7.908225333386e-01 + 8.428000000000e-10 8.191482615363e-01 + 8.528000000000e-10 7.558702665648e-01 + 8.628000000000e-10 5.412462517638e-01 + 8.728000000000e-10 2.038984202104e-01 + 8.828000000000e-10 -1.343404705774e-01 + 8.928000000000e-10 -3.894425333092e-01 + 9.028000000000e-10 -5.456206778041e-01 + 9.128000000000e-10 -6.403000729433e-01 + 9.228000000000e-10 -7.221509667404e-01 + 9.328000000000e-10 -7.907829740936e-01 + 9.428000000000e-10 -8.191877974471e-01 + 9.528000000000e-10 -7.558308764830e-01 + 9.628000000000e-10 -5.412878201925e-01 + 9.728000000000e-10 -2.038573569097e-01 + 9.828000000000e-10 1.343035264203e-01 + 9.928000000000e-10 3.894790170617e-01 + 1.000000000000e-09 5.100069898815e-01 diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_11/CML_divider.sym b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_11/CML_divider.sym new file mode 100644 index 00000000..e46eb233 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_11/CML_divider.sym @@ -0,0 +1,30 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 -120 -20 -100 -20 {} +L 4 -120 20 -100 20 {} +L 4 100 -20 120 -20 {} +L 4 100 20 120 20 {} +L 7 0 -60 0 -40 {} +L 7 0 40 0 60 {} +B 5 -122.5 -22.5 -117.5 -17.5 {name=Vo+ dir=out} +B 5 -122.5 17.5 -117.5 22.5 {name=Vo- dir=out} +B 5 117.5 -22.5 122.5 -17.5 {name=Vi+ dir=in} +B 5 117.5 17.5 122.5 22.5 {name=Vi- dir=in} +B 5 -2.5 -62.5 2.5 -57.5 {name=vdd dir=inout} +B 5 -2.5 57.5 2.5 62.5 {name=gnd dir=inout} +P 4 5 100 -40 -100 -40 -100 40 100 40 100 -40 {} +T {@symname} -44 -6 0 0 0.3 0.3 {} +T {@name} 45 -52 0 0 0.2 0.2 {} +T {Vo+} -95 -24 0 0 0.2 0.2 {} +T {Vo-} -95 16 0 0 0.2 0.2 {} +T {Vi+} 95 -16 2 0 0.2 0.2 {} +T {Vi-} 95 24 2 0 0.2 0.2 {} +T {vdd} 10 -39 0 1 0.2 0.2 {} +T {gnd} -10 34 2 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_11/conditions.yaml b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_11/conditions.yaml new file mode 100644 index 00000000..5b32d934 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_11/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice +N: 11 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: ss +filename: CML_core_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_11 +temperature: '-40' +vdd: '1.2' diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_12/.spiceinit b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_12/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_12/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_12/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_12/CML_core_tb.sch new file mode 100644 index 00000000..4341a240 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_12/CML_core_tb.sch @@ -0,0 +1,71 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {} +V {} +S {} +E {} +N 740 -940 740 -920 {lab=GND} +N 740 -1090 740 -1060 {lab=VDD} +N 600 -1020 620 -1020 {lab=Vinplus} +N 600 -980 620 -980 {lab=Vinminus} +N 860 -1020 880 -1020 {lab=Voplus} +N 860 -980 880 -980 {lab=Vominus} +N 1150 -850 1150 -820 {lab=VDD} +N 1150 -760 1150 -730 {lab=GND} +N 930 -850 930 -820 {lab=Vinminus} +N 930 -760 930 -730 {lab=GND} +N 720 -850 720 -820 {lab=Vinplus} +N 720 -760 720 -730 {lab=GND} +C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write CML_core_tb.raw +set appendwrite +tran 10p 1n 160p + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_12/CML_core_tb_12.data vo_diff +quit + +.endc +"} +C {opin.sym} 880 -1020 2 1 {name=p6 lab=Voplus} +C {opin.sym} 880 -980 0 0 {name=p9 lab=Vominus} +C {devices/code_shown.sym} 10 -620 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_tt + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice + +.temp 27 +" +} +C {iopin.sym} 740 -1090 0 1 {name=p2 lab=VDD} +C {ipin.sym} 600 -1020 2 1 {name=p4 lab=Vinplus} +C {ipin.sym} 600 -980 2 1 {name=p1 lab=Vinminus} +C {CML_divider.sym} 740 -1000 0 1 {name=x1} +C {vsource.sym} 1150 -790 0 0 {name=V1 value=1.2 savecurrent=false} +C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} +C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} +C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 0.3 10G 0 0 0)" savecurrent=false} +C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 0.3 10G 0 0 180)" savecurrent=false} +C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_12/CML_core_tb_12.data b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_12/CML_core_tb_12.data new file mode 100644 index 00000000..db4e4cce --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_12/CML_core_tb_12.data @@ -0,0 +1,85 @@ + 1.628000000000e-10 -5.049557277618e-01 + 1.728000000000e-10 -1.958466480437e-01 + 1.828000000000e-10 1.196319367700e-01 + 1.928000000000e-10 3.700244189406e-01 + 2.028000000000e-10 5.308067637731e-01 + 2.128000000000e-10 6.311299202315e-01 + 2.228000000000e-10 7.086540860403e-01 + 2.328000000000e-10 7.625529356493e-01 + 2.428000000000e-10 7.708473475114e-01 + 2.528000000000e-10 6.980446990655e-01 + 2.628000000000e-10 4.981026307256e-01 + 2.728000000000e-10 1.904449044265e-01 + 2.828000000000e-10 -1.236510258628e-01 + 2.928000000000e-10 -3.730975798774e-01 + 3.028000000000e-10 -5.333436235403e-01 + 3.128000000000e-10 -6.328422885796e-01 + 3.228000000000e-10 -7.099622515515e-01 + 3.328000000000e-10 -7.633093670089e-01 + 3.428000000000e-10 -7.714462858000e-01 + 3.528000000000e-10 -6.983543456334e-01 + 3.628000000000e-10 -4.984830350414e-01 + 3.728000000000e-10 -1.906133898346e-01 + 3.828000000000e-10 1.234140438752e-01 + 3.928000000000e-10 3.730258572177e-01 + 4.028000000000e-10 5.331667972487e-01 + 4.128000000000e-10 6.328214645319e-01 + 4.228000000000e-10 7.098336990067e-01 + 4.328000000000e-10 7.633335528675e-01 + 4.428000000000e-10 7.713603033543e-01 + 4.528000000000e-10 6.984040906368e-01 + 4.628000000000e-10 4.984087981115e-01 + 4.728000000000e-10 1.906698925098e-01 + 4.828000000000e-10 -1.234792426423e-01 + 4.928000000000e-10 -3.729733539485e-01 + 5.028000000000e-10 -5.332277682129e-01 + 5.128000000000e-10 -6.327690017914e-01 + 5.228000000000e-10 -7.098933602520e-01 + 5.328000000000e-10 -7.632805035294e-01 + 5.428000000000e-10 -7.714147767047e-01 + 5.528000000000e-10 -6.983493927960e-01 + 5.628000000000e-10 -4.984657326360e-01 + 5.728000000000e-10 -1.906133403657e-01 + 5.828000000000e-10 1.234275058651e-01 + 5.928000000000e-10 3.730246636548e-01 + 6.028000000000e-10 5.331775888699e-01 + 6.128000000000e-10 6.328197652536e-01 + 6.228000000000e-10 7.098419058182e-01 + 6.328000000000e-10 7.633301342197e-01 + 6.428000000000e-10 7.713661487972e-01 + 6.528000000000e-10 6.983986251010e-01 + 6.628000000000e-10 4.984160910452e-01 + 6.728000000000e-10 1.906635868460e-01 + 6.828000000000e-10 -1.234734747225e-01 + 6.928000000000e-10 -3.729797013887e-01 + 7.028000000000e-10 -5.332215969565e-01 + 7.128000000000e-10 -6.327757131741e-01 + 7.228000000000e-10 -7.098865351622e-01 + 7.328000000000e-10 -7.632871392149e-01 + 7.428000000000e-10 -7.714081948986e-01 + 7.528000000000e-10 -6.983555969606e-01 + 7.628000000000e-10 -4.984601688237e-01 + 7.728000000000e-10 -1.906192454806e-01 + 7.828000000000e-10 1.234332321656e-01 + 7.928000000000e-10 3.730195983111e-01 + 8.028000000000e-10 5.331826746949e-01 + 8.128000000000e-10 6.328151783475e-01 + 8.228000000000e-10 7.098466992587e-01 + 8.328000000000e-10 7.633256332241e-01 + 8.428000000000e-10 7.713705417094e-01 + 8.528000000000e-10 6.983937777920e-01 + 8.628000000000e-10 4.984215072239e-01 + 8.728000000000e-10 1.906583322627e-01 + 8.828000000000e-10 -1.234689419945e-01 + 8.928000000000e-10 -3.729845695752e-01 + 9.028000000000e-10 -5.332169477613e-01 + 9.128000000000e-10 -6.327807857544e-01 + 9.228000000000e-10 -7.098815617208e-01 + 9.328000000000e-10 -7.632920474235e-01 + 9.428000000000e-10 -7.714033753149e-01 + 9.528000000000e-10 -6.983602366678e-01 + 9.628000000000e-10 -4.984557776243e-01 + 9.728000000000e-10 -1.906237729891e-01 + 9.828000000000e-10 1.234375916302e-01 + 9.928000000000e-10 3.730155682884e-01 + 1.000000000000e-09 4.959193237551e-01 diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_12/CML_divider.sym b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_12/CML_divider.sym new file mode 100644 index 00000000..e46eb233 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_12/CML_divider.sym @@ -0,0 +1,30 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 -120 -20 -100 -20 {} +L 4 -120 20 -100 20 {} +L 4 100 -20 120 -20 {} +L 4 100 20 120 20 {} +L 7 0 -60 0 -40 {} +L 7 0 40 0 60 {} +B 5 -122.5 -22.5 -117.5 -17.5 {name=Vo+ dir=out} +B 5 -122.5 17.5 -117.5 22.5 {name=Vo- dir=out} +B 5 117.5 -22.5 122.5 -17.5 {name=Vi+ dir=in} +B 5 117.5 17.5 122.5 22.5 {name=Vi- dir=in} +B 5 -2.5 -62.5 2.5 -57.5 {name=vdd dir=inout} +B 5 -2.5 57.5 2.5 62.5 {name=gnd dir=inout} +P 4 5 100 -40 -100 -40 -100 40 100 40 100 -40 {} +T {@symname} -44 -6 0 0 0.3 0.3 {} +T {@name} 45 -52 0 0 0.2 0.2 {} +T {Vo+} -95 -24 0 0 0.2 0.2 {} +T {Vo-} -95 16 0 0 0.2 0.2 {} +T {Vi+} 95 -16 2 0 0.2 0.2 {} +T {Vi-} 95 24 2 0 0.2 0.2 {} +T {vdd} 10 -39 0 1 0.2 0.2 {} +T {gnd} -10 34 2 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_12/conditions.yaml b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_12/conditions.yaml new file mode 100644 index 00000000..7de6eb46 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_12/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice +N: 12 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: tt +filename: CML_core_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_12 +temperature: '27' +vdd: '1.2' diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_13/.spiceinit b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_13/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_13/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_13/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_13/CML_core_tb.sch new file mode 100644 index 00000000..f7a1d543 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_13/CML_core_tb.sch @@ -0,0 +1,71 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {} +V {} +S {} +E {} +N 740 -940 740 -920 {lab=GND} +N 740 -1090 740 -1060 {lab=VDD} +N 600 -1020 620 -1020 {lab=Vinplus} +N 600 -980 620 -980 {lab=Vinminus} +N 860 -1020 880 -1020 {lab=Voplus} +N 860 -980 880 -980 {lab=Vominus} +N 1150 -850 1150 -820 {lab=VDD} +N 1150 -760 1150 -730 {lab=GND} +N 930 -850 930 -820 {lab=Vinminus} +N 930 -760 930 -730 {lab=GND} +N 720 -850 720 -820 {lab=Vinplus} +N 720 -760 720 -730 {lab=GND} +C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write CML_core_tb.raw +set appendwrite +tran 10p 1n 160p + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_13/CML_core_tb_13.data vo_diff +quit + +.endc +"} +C {opin.sym} 880 -1020 2 1 {name=p6 lab=Voplus} +C {opin.sym} 880 -980 0 0 {name=p9 lab=Vominus} +C {devices/code_shown.sym} 10 -620 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_ff + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice + +.temp 27 +" +} +C {iopin.sym} 740 -1090 0 1 {name=p2 lab=VDD} +C {ipin.sym} 600 -1020 2 1 {name=p4 lab=Vinplus} +C {ipin.sym} 600 -980 2 1 {name=p1 lab=Vinminus} +C {CML_divider.sym} 740 -1000 0 1 {name=x1} +C {vsource.sym} 1150 -790 0 0 {name=V1 value=1.2 savecurrent=false} +C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} +C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} +C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 0.3 10G 0 0 0)" savecurrent=false} +C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 0.3 10G 0 0 180)" savecurrent=false} +C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_13/CML_core_tb_13.data b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_13/CML_core_tb_13.data new file mode 100644 index 00000000..abbd3617 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_13/CML_core_tb_13.data @@ -0,0 +1,85 @@ + 1.628000000000e-10 -4.935497259980e-01 + 1.728000000000e-10 -1.928633983658e-01 + 1.828000000000e-10 1.160949240371e-01 + 1.928000000000e-10 3.619360857197e-01 + 2.028000000000e-10 5.185143131218e-01 + 2.128000000000e-10 6.170086772416e-01 + 2.228000000000e-10 6.939063598865e-01 + 2.328000000000e-10 7.457993341265e-01 + 2.428000000000e-10 7.520509596304e-01 + 2.528000000000e-10 6.804739824857e-01 + 2.628000000000e-10 4.870426149481e-01 + 2.728000000000e-10 1.875308246798e-01 + 2.828000000000e-10 -1.202389208092e-01 + 2.928000000000e-10 -3.651754434827e-01 + 3.028000000000e-10 -5.211918880427e-01 + 3.128000000000e-10 -6.188469707889e-01 + 3.228000000000e-10 -6.953072467312e-01 + 3.328000000000e-10 -7.466129151979e-01 + 3.428000000000e-10 -7.526565311823e-01 + 3.528000000000e-10 -6.807675409917e-01 + 3.628000000000e-10 -4.873945801883e-01 + 3.728000000000e-10 -1.876809763872e-01 + 3.828000000000e-10 1.200199744899e-01 + 3.928000000000e-10 3.651151173578e-01 + 4.028000000000e-10 5.210322421793e-01 + 4.128000000000e-10 6.188330192958e-01 + 4.228000000000e-10 6.951893716680e-01 + 4.328000000000e-10 7.466394998986e-01 + 4.428000000000e-10 7.525773069027e-01 + 4.528000000000e-10 6.808165070916e-01 + 4.628000000000e-10 4.873248087716e-01 + 4.728000000000e-10 1.877358679741e-01 + 4.828000000000e-10 -1.200819840902e-01 + 4.928000000000e-10 -3.650646413699e-01 + 5.028000000000e-10 -5.210903047408e-01 + 5.128000000000e-10 -6.187830156405e-01 + 5.228000000000e-10 -6.952462050643e-01 + 5.328000000000e-10 -7.465883056072e-01 + 5.428000000000e-10 -7.526293067125e-01 + 5.528000000000e-10 -6.807638103361e-01 + 5.628000000000e-10 -4.873795115625e-01 + 5.728000000000e-10 -1.876807689254e-01 + 5.828000000000e-10 1.200326256254e-01 + 5.928000000000e-10 3.651139754788e-01 + 6.028000000000e-10 5.210426454606e-01 + 6.128000000000e-10 6.188315227579e-01 + 6.228000000000e-10 6.951972695911e-01 + 6.328000000000e-10 7.466359762403e-01 + 6.428000000000e-10 7.525829976005e-01 + 6.528000000000e-10 6.808110143898e-01 + 6.628000000000e-10 4.873318873720e-01 + 6.728000000000e-10 1.877292356433e-01 + 6.828000000000e-10 -1.200767202072e-01 + 6.928000000000e-10 -3.650706499628e-01 + 7.028000000000e-10 -5.210847183857e-01 + 7.128000000000e-10 -6.187893543189e-01 + 7.228000000000e-10 -6.952399017798e-01 + 7.328000000000e-10 -7.465944604664e-01 + 7.428000000000e-10 -7.526232942576e-01 + 7.528000000000e-10 -6.807695137827e-01 + 7.628000000000e-10 -4.873744121182e-01 + 7.728000000000e-10 -1.876860880622e-01 + 7.828000000000e-10 1.200380835632e-01 + 7.928000000000e-10 3.651091778387e-01 + 8.028000000000e-10 5.210475167171e-01 + 8.128000000000e-10 6.188272213187e-01 + 8.228000000000e-10 6.952018279574e-01 + 8.328000000000e-10 7.466316140292e-01 + 8.428000000000e-10 7.525872528114e-01 + 8.528000000000e-10 6.808063071094e-01 + 8.628000000000e-10 4.873371355126e-01 + 8.728000000000e-10 1.877239857571e-01 + 8.828000000000e-10 -1.200724809112e-01 + 8.928000000000e-10 -3.650752679165e-01 + 9.028000000000e-10 -5.210804068397e-01 + 9.128000000000e-10 -6.187941569931e-01 + 9.228000000000e-10 -6.952352466105e-01 + 9.328000000000e-10 -7.465990720366e-01 + 9.428000000000e-10 -7.526188226163e-01 + 9.528000000000e-10 -6.807738360998e-01 + 9.628000000000e-10 -4.873703126609e-01 + 9.728000000000e-10 -1.876902725775e-01 + 9.828000000000e-10 1.200422409457e-01 + 9.928000000000e-10 3.651053453859e-01 + 1.000000000000e-09 4.847952698035e-01 diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_13/CML_divider.sym b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_13/CML_divider.sym new file mode 100644 index 00000000..e46eb233 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_13/CML_divider.sym @@ -0,0 +1,30 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 -120 -20 -100 -20 {} +L 4 -120 20 -100 20 {} +L 4 100 -20 120 -20 {} +L 4 100 20 120 20 {} +L 7 0 -60 0 -40 {} +L 7 0 40 0 60 {} +B 5 -122.5 -22.5 -117.5 -17.5 {name=Vo+ dir=out} +B 5 -122.5 17.5 -117.5 22.5 {name=Vo- dir=out} +B 5 117.5 -22.5 122.5 -17.5 {name=Vi+ dir=in} +B 5 117.5 17.5 122.5 22.5 {name=Vi- dir=in} +B 5 -2.5 -62.5 2.5 -57.5 {name=vdd dir=inout} +B 5 -2.5 57.5 2.5 62.5 {name=gnd dir=inout} +P 4 5 100 -40 -100 -40 -100 40 100 40 100 -40 {} +T {@symname} -44 -6 0 0 0.3 0.3 {} +T {@name} 45 -52 0 0 0.2 0.2 {} +T {Vo+} -95 -24 0 0 0.2 0.2 {} +T {Vo-} -95 16 0 0 0.2 0.2 {} +T {Vi+} 95 -16 2 0 0.2 0.2 {} +T {Vi-} 95 24 2 0 0.2 0.2 {} +T {vdd} 10 -39 0 1 0.2 0.2 {} +T {gnd} -10 34 2 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_13/conditions.yaml b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_13/conditions.yaml new file mode 100644 index 00000000..7e7f43da --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_13/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice +N: 13 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: ff +filename: CML_core_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_13 +temperature: '27' +vdd: '1.2' diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_14/.spiceinit b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_14/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_14/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_14/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_14/CML_core_tb.sch new file mode 100644 index 00000000..ff92c0fe --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_14/CML_core_tb.sch @@ -0,0 +1,71 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {} +V {} +S {} +E {} +N 740 -940 740 -920 {lab=GND} +N 740 -1090 740 -1060 {lab=VDD} +N 600 -1020 620 -1020 {lab=Vinplus} +N 600 -980 620 -980 {lab=Vinminus} +N 860 -1020 880 -1020 {lab=Voplus} +N 860 -980 880 -980 {lab=Vominus} +N 1150 -850 1150 -820 {lab=VDD} +N 1150 -760 1150 -730 {lab=GND} +N 930 -850 930 -820 {lab=Vinminus} +N 930 -760 930 -730 {lab=GND} +N 720 -850 720 -820 {lab=Vinplus} +N 720 -760 720 -730 {lab=GND} +C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write CML_core_tb.raw +set appendwrite +tran 10p 1n 160p + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_14/CML_core_tb_14.data vo_diff +quit + +.endc +"} +C {opin.sym} 880 -1020 2 1 {name=p6 lab=Voplus} +C {opin.sym} 880 -980 0 0 {name=p9 lab=Vominus} +C {devices/code_shown.sym} 10 -620 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_ss + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice + +.temp 27 +" +} +C {iopin.sym} 740 -1090 0 1 {name=p2 lab=VDD} +C {ipin.sym} 600 -1020 2 1 {name=p4 lab=Vinplus} +C {ipin.sym} 600 -980 2 1 {name=p1 lab=Vinminus} +C {CML_divider.sym} 740 -1000 0 1 {name=x1} +C {vsource.sym} 1150 -790 0 0 {name=V1 value=1.2 savecurrent=false} +C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} +C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} +C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 0.3 10G 0 0 0)" savecurrent=false} +C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 0.3 10G 0 0 180)" savecurrent=false} +C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_14/CML_core_tb_14.data b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_14/CML_core_tb_14.data new file mode 100644 index 00000000..3796cea3 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_14/CML_core_tb_14.data @@ -0,0 +1,85 @@ + 1.628000000000e-10 -5.133282675634e-01 + 1.728000000000e-10 -2.031582081928e-01 + 1.828000000000e-10 1.144804838339e-01 + 1.928000000000e-10 3.698591588516e-01 + 2.028000000000e-10 5.380258146680e-01 + 2.128000000000e-10 6.422542980920e-01 + 2.228000000000e-10 7.191574927620e-01 + 2.328000000000e-10 7.734390216007e-01 + 2.428000000000e-10 7.823512104827e-01 + 2.528000000000e-10 7.081342613122e-01 + 2.628000000000e-10 5.065809773945e-01 + 2.728000000000e-10 1.980707374060e-01 + 2.828000000000e-10 -1.181831896095e-01 + 2.928000000000e-10 -3.727163876319e-01 + 3.028000000000e-10 -5.404428949084e-01 + 3.128000000000e-10 -6.438704305572e-01 + 3.228000000000e-10 -7.204145434420e-01 + 3.328000000000e-10 -7.741471374370e-01 + 3.428000000000e-10 -7.829309638154e-01 + 3.528000000000e-10 -7.084110972821e-01 + 3.628000000000e-10 -5.069426471107e-01 + 3.728000000000e-10 -1.982066720174e-01 + 3.828000000000e-10 1.179564926067e-01 + 3.928000000000e-10 3.726621714283e-01 + 4.028000000000e-10 5.402630628674e-01 + 4.128000000000e-10 6.438601752956e-01 + 4.228000000000e-10 7.202791375194e-01 + 4.328000000000e-10 7.741793827377e-01 + 4.428000000000e-10 7.828380754967e-01 + 4.528000000000e-10 7.084693803333e-01 + 4.628000000000e-10 5.068627667504e-01 + 4.728000000000e-10 1.982719515445e-01 + 4.828000000000e-10 -1.180275895897e-01 + 4.928000000000e-10 -3.726028735362e-01 + 5.028000000000e-10 -5.403301024789e-01 + 5.128000000000e-10 -6.438008084190e-01 + 5.228000000000e-10 -7.203455420725e-01 + 5.328000000000e-10 -7.741198297783e-01 + 5.428000000000e-10 -7.828987326701e-01 + 5.528000000000e-10 -7.084084859242e-01 + 5.628000000000e-10 -5.069251044876e-01 + 5.728000000000e-10 -1.982094732584e-01 + 5.828000000000e-10 1.179697981212e-01 + 5.928000000000e-10 3.726595322461e-01 + 6.028000000000e-10 5.402739437431e-01 + 6.128000000000e-10 6.438573026479e-01 + 6.228000000000e-10 7.202880216174e-01 + 6.328000000000e-10 7.741750830136e-01 + 6.428000000000e-10 7.828445699494e-01 + 6.528000000000e-10 7.084631989914e-01 + 6.628000000000e-10 5.068703543607e-01 + 6.728000000000e-10 1.982651160797e-01 + 6.828000000000e-10 -1.180209524418e-01 + 6.928000000000e-10 -3.726100259571e-01 + 7.028000000000e-10 -5.403229404029e-01 + 7.128000000000e-10 -6.438083895554e-01 + 7.228000000000e-10 -7.203378638829e-01 + 7.328000000000e-10 -7.741273273776e-01 + 7.428000000000e-10 -7.828912312659e-01 + 7.528000000000e-10 -7.084155733246e-01 + 7.628000000000e-10 -5.069185371484e-01 + 7.728000000000e-10 -1.982163796445e-01 + 7.828000000000e-10 1.179761824049e-01 + 7.928000000000e-10 3.726538824343e-01 + 8.028000000000e-10 5.402795684719e-01 + 8.128000000000e-10 6.438520994328e-01 + 8.228000000000e-10 7.202935093188e-01 + 8.328000000000e-10 7.741699689895e-01 + 8.428000000000e-10 7.828494756723e-01 + 8.528000000000e-10 7.084578188073e-01 + 8.628000000000e-10 5.068761410729e-01 + 8.728000000000e-10 1.982594122387e-01 + 8.828000000000e-10 -1.180157633845e-01 + 8.928000000000e-10 -3.726154653834e-01 + 9.028000000000e-10 -5.403175771302e-01 + 9.128000000000e-10 -6.438140825829e-01 + 9.228000000000e-10 -7.203322576361e-01 + 9.328000000000e-10 -7.741328388949e-01 + 9.428000000000e-10 -7.828857350121e-01 + 9.528000000000e-10 -7.084208512479e-01 + 9.628000000000e-10 -5.069134738545e-01 + 9.728000000000e-10 -1.982215797151e-01 + 9.828000000000e-10 1.179810466336e-01 + 9.928000000000e-10 3.726493985613e-01 + 1.000000000000e-09 5.010433738758e-01 diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_14/CML_divider.sym b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_14/CML_divider.sym new file mode 100644 index 00000000..e46eb233 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_14/CML_divider.sym @@ -0,0 +1,30 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 -120 -20 -100 -20 {} +L 4 -120 20 -100 20 {} +L 4 100 -20 120 -20 {} +L 4 100 20 120 20 {} +L 7 0 -60 0 -40 {} +L 7 0 40 0 60 {} +B 5 -122.5 -22.5 -117.5 -17.5 {name=Vo+ dir=out} +B 5 -122.5 17.5 -117.5 22.5 {name=Vo- dir=out} +B 5 117.5 -22.5 122.5 -17.5 {name=Vi+ dir=in} +B 5 117.5 17.5 122.5 22.5 {name=Vi- dir=in} +B 5 -2.5 -62.5 2.5 -57.5 {name=vdd dir=inout} +B 5 -2.5 57.5 2.5 62.5 {name=gnd dir=inout} +P 4 5 100 -40 -100 -40 -100 40 100 40 100 -40 {} +T {@symname} -44 -6 0 0 0.3 0.3 {} +T {@name} 45 -52 0 0 0.2 0.2 {} +T {Vo+} -95 -24 0 0 0.2 0.2 {} +T {Vo-} -95 16 0 0 0.2 0.2 {} +T {Vi+} 95 -16 2 0 0.2 0.2 {} +T {Vi-} 95 24 2 0 0.2 0.2 {} +T {vdd} 10 -39 0 1 0.2 0.2 {} +T {gnd} -10 34 2 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_14/conditions.yaml b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_14/conditions.yaml new file mode 100644 index 00000000..ec458589 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_14/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice +N: 14 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: ss +filename: CML_core_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_14 +temperature: '27' +vdd: '1.2' diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_15/.spiceinit b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_15/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_15/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_15/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_15/CML_core_tb.sch new file mode 100644 index 00000000..f5d44dfb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_15/CML_core_tb.sch @@ -0,0 +1,71 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {} +V {} +S {} +E {} +N 740 -940 740 -920 {lab=GND} +N 740 -1090 740 -1060 {lab=VDD} +N 600 -1020 620 -1020 {lab=Vinplus} +N 600 -980 620 -980 {lab=Vinminus} +N 860 -1020 880 -1020 {lab=Voplus} +N 860 -980 880 -980 {lab=Vominus} +N 1150 -850 1150 -820 {lab=VDD} +N 1150 -760 1150 -730 {lab=GND} +N 930 -850 930 -820 {lab=Vinminus} +N 930 -760 930 -730 {lab=GND} +N 720 -850 720 -820 {lab=Vinplus} +N 720 -760 720 -730 {lab=GND} +C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write CML_core_tb.raw +set appendwrite +tran 10p 1n 160p + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_15/CML_core_tb_15.data vo_diff +quit + +.endc +"} +C {opin.sym} 880 -1020 2 1 {name=p6 lab=Voplus} +C {opin.sym} 880 -980 0 0 {name=p9 lab=Vominus} +C {devices/code_shown.sym} 10 -620 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_tt + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice + +.temp 80 +" +} +C {iopin.sym} 740 -1090 0 1 {name=p2 lab=VDD} +C {ipin.sym} 600 -1020 2 1 {name=p4 lab=Vinplus} +C {ipin.sym} 600 -980 2 1 {name=p1 lab=Vinminus} +C {CML_divider.sym} 740 -1000 0 1 {name=x1} +C {vsource.sym} 1150 -790 0 0 {name=V1 value=1.2 savecurrent=false} +C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} +C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} +C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 0.3 10G 0 0 0)" savecurrent=false} +C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 0.3 10G 0 0 180)" savecurrent=false} +C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_15/CML_core_tb_15.data b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_15/CML_core_tb_15.data new file mode 100644 index 00000000..a18684b0 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_15/CML_core_tb_15.data @@ -0,0 +1,85 @@ + 1.628000000000e-10 -4.764925698370e-01 + 1.728000000000e-10 -1.934019301872e-01 + 1.828000000000e-10 1.027850457497e-01 + 1.928000000000e-10 3.499528968595e-01 + 2.028000000000e-10 5.186059326128e-01 + 2.128000000000e-10 6.254912177700e-01 + 2.228000000000e-10 6.994356057335e-01 + 2.328000000000e-10 7.419604616039e-01 + 2.428000000000e-10 7.366001230119e-01 + 2.528000000000e-10 6.575586826882e-01 + 2.628000000000e-10 4.703480039804e-01 + 2.728000000000e-10 1.887311437228e-01 + 2.828000000000e-10 -1.064955609068e-01 + 2.928000000000e-10 -3.530674432656e-01 + 3.028000000000e-10 -5.214103928852e-01 + 3.128000000000e-10 -6.276329249236e-01 + 3.228000000000e-10 -7.010919569868e-01 + 3.328000000000e-10 -7.428528846984e-01 + 3.428000000000e-10 -7.371070425945e-01 + 3.528000000000e-10 -6.576931102984e-01 + 3.628000000000e-10 -4.705213908487e-01 + 3.728000000000e-10 -1.887451417089e-01 + 3.828000000000e-10 1.063771169054e-01 + 3.928000000000e-10 3.530644558224e-01 + 4.028000000000e-10 5.212882945537e-01 + 4.128000000000e-10 6.276273956697e-01 + 4.228000000000e-10 7.009872983885e-01 + 4.328000000000e-10 7.428850006835e-01 + 4.428000000000e-10 7.370483197885e-01 + 4.528000000000e-10 6.577532995019e-01 + 4.628000000000e-10 4.704734311564e-01 + 4.728000000000e-10 1.888066765622e-01 + 4.828000000000e-10 -1.064251900033e-01 + 4.928000000000e-10 -3.530110058012e-01 + 5.028000000000e-10 -5.213363794122e-01 + 5.128000000000e-10 -6.275779961821e-01 + 5.228000000000e-10 -7.010367362436e-01 + 5.328000000000e-10 -7.428359180794e-01 + 5.428000000000e-10 -7.370946234404e-01 + 5.528000000000e-10 -6.577041924295e-01 + 5.628000000000e-10 -4.705211118057e-01 + 5.728000000000e-10 -1.887571402743e-01 + 5.828000000000e-10 1.063798390696e-01 + 5.928000000000e-10 3.530562876751e-01 + 6.028000000000e-10 5.212929538773e-01 + 6.128000000000e-10 6.276223718978e-01 + 6.228000000000e-10 7.009927681762e-01 + 6.328000000000e-10 7.428797293753e-01 + 6.428000000000e-10 7.370526578677e-01 + 6.528000000000e-10 6.577470674825e-01 + 6.628000000000e-10 4.704784998901e-01 + 6.728000000000e-10 1.888003575241e-01 + 6.828000000000e-10 -1.064204487643e-01 + 6.928000000000e-10 -3.530168946500e-01 + 7.028000000000e-10 -5.213312567329e-01 + 7.128000000000e-10 -6.275838929681e-01 + 7.228000000000e-10 -7.010312441909e-01 + 7.328000000000e-10 -7.428415937954e-01 + 7.428000000000e-10 -7.370893810626e-01 + 7.528000000000e-10 -6.577094889087e-01 + 7.628000000000e-10 -4.705162397262e-01 + 7.728000000000e-10 -1.887623115300e-01 + 7.828000000000e-10 1.063847513579e-01 + 7.928000000000e-10 3.530516705381e-01 + 8.028000000000e-10 5.212973590939e-01 + 8.128000000000e-10 6.276181223045e-01 + 8.228000000000e-10 7.009970786285e-01 + 8.328000000000e-10 7.428754735512e-01 + 8.428000000000e-10 7.370567570344e-01 + 8.528000000000e-10 6.577427030952e-01 + 8.628000000000e-10 4.704830497474e-01 + 8.728000000000e-10 1.887958404937e-01 + 8.828000000000e-10 -1.064163174914e-01 + 8.928000000000e-10 -3.530210908451e-01 + 9.028000000000e-10 -5.213271590930e-01 + 9.128000000000e-10 -6.275881896870e-01 + 9.228000000000e-10 -7.010270518598e-01 + 9.328000000000e-10 -7.428457852801e-01 + 9.428000000000e-10 -7.370853633469e-01 + 9.528000000000e-10 -6.577134719194e-01 + 9.628000000000e-10 -4.705123783357e-01 + 9.728000000000e-10 -1.887662540331e-01 + 9.828000000000e-10 1.063885555413e-01 + 9.928000000000e-10 3.530480784075e-01 + 1.000000000000e-09 4.814572085440e-01 diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_15/CML_divider.sym b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_15/CML_divider.sym new file mode 100644 index 00000000..e46eb233 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_15/CML_divider.sym @@ -0,0 +1,30 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 -120 -20 -100 -20 {} +L 4 -120 20 -100 20 {} +L 4 100 -20 120 -20 {} +L 4 100 20 120 20 {} +L 7 0 -60 0 -40 {} +L 7 0 40 0 60 {} +B 5 -122.5 -22.5 -117.5 -17.5 {name=Vo+ dir=out} +B 5 -122.5 17.5 -117.5 22.5 {name=Vo- dir=out} +B 5 117.5 -22.5 122.5 -17.5 {name=Vi+ dir=in} +B 5 117.5 17.5 122.5 22.5 {name=Vi- dir=in} +B 5 -2.5 -62.5 2.5 -57.5 {name=vdd dir=inout} +B 5 -2.5 57.5 2.5 62.5 {name=gnd dir=inout} +P 4 5 100 -40 -100 -40 -100 40 100 40 100 -40 {} +T {@symname} -44 -6 0 0 0.3 0.3 {} +T {@name} 45 -52 0 0 0.2 0.2 {} +T {Vo+} -95 -24 0 0 0.2 0.2 {} +T {Vo-} -95 16 0 0 0.2 0.2 {} +T {Vi+} 95 -16 2 0 0.2 0.2 {} +T {Vi-} 95 24 2 0 0.2 0.2 {} +T {vdd} 10 -39 0 1 0.2 0.2 {} +T {gnd} -10 34 2 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_15/conditions.yaml b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_15/conditions.yaml new file mode 100644 index 00000000..72976e82 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_15/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice +N: 15 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: tt +filename: CML_core_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_15 +temperature: '80' +vdd: '1.2' diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_16/.spiceinit b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_16/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_16/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_16/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_16/CML_core_tb.sch new file mode 100644 index 00000000..a044fcea --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_16/CML_core_tb.sch @@ -0,0 +1,71 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {} +V {} +S {} +E {} +N 740 -940 740 -920 {lab=GND} +N 740 -1090 740 -1060 {lab=VDD} +N 600 -1020 620 -1020 {lab=Vinplus} +N 600 -980 620 -980 {lab=Vinminus} +N 860 -1020 880 -1020 {lab=Voplus} +N 860 -980 880 -980 {lab=Vominus} +N 1150 -850 1150 -820 {lab=VDD} +N 1150 -760 1150 -730 {lab=GND} +N 930 -850 930 -820 {lab=Vinminus} +N 930 -760 930 -730 {lab=GND} +N 720 -850 720 -820 {lab=Vinplus} +N 720 -760 720 -730 {lab=GND} +C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write CML_core_tb.raw +set appendwrite +tran 10p 1n 160p + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_16/CML_core_tb_16.data vo_diff +quit + +.endc +"} +C {opin.sym} 880 -1020 2 1 {name=p6 lab=Voplus} +C {opin.sym} 880 -980 0 0 {name=p9 lab=Vominus} +C {devices/code_shown.sym} 10 -620 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_ff + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice + +.temp 80 +" +} +C {iopin.sym} 740 -1090 0 1 {name=p2 lab=VDD} +C {ipin.sym} 600 -1020 2 1 {name=p4 lab=Vinplus} +C {ipin.sym} 600 -980 2 1 {name=p1 lab=Vinminus} +C {CML_divider.sym} 740 -1000 0 1 {name=x1} +C {vsource.sym} 1150 -790 0 0 {name=V1 value=1.2 savecurrent=false} +C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} +C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} +C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 0.3 10G 0 0 0)" savecurrent=false} +C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 0.3 10G 0 0 180)" savecurrent=false} +C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_16/CML_core_tb_16.data b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_16/CML_core_tb_16.data new file mode 100644 index 00000000..5b9b7365 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_16/CML_core_tb_16.data @@ -0,0 +1,85 @@ + 1.628000000000e-10 -4.643042367579e-01 + 1.728000000000e-10 -1.889536448800e-01 + 1.828000000000e-10 1.011027156160e-01 + 1.928000000000e-10 3.431119917378e-01 + 2.028000000000e-10 5.070519088353e-01 + 2.128000000000e-10 6.112991757094e-01 + 2.228000000000e-10 6.838020209744e-01 + 2.328000000000e-10 7.242864479517e-01 + 2.428000000000e-10 7.174167448313e-01 + 2.528000000000e-10 6.398083866093e-01 + 2.628000000000e-10 4.585166519927e-01 + 2.728000000000e-10 1.844271573483e-01 + 2.828000000000e-10 -1.048019054065e-01 + 2.928000000000e-10 -3.462317584687e-01 + 3.028000000000e-10 -5.098344721858e-01 + 3.128000000000e-10 -6.133899227371e-01 + 3.228000000000e-10 -6.853968517792e-01 + 3.328000000000e-10 -7.251059393871e-01 + 3.428000000000e-10 -7.178642533065e-01 + 3.528000000000e-10 -6.398898931720e-01 + 3.628000000000e-10 -4.586473976402e-01 + 3.728000000000e-10 -1.843989570585e-01 + 3.828000000000e-10 1.047140758745e-01 + 3.928000000000e-10 3.462576483703e-01 + 4.028000000000e-10 5.097333770465e-01 + 4.128000000000e-10 6.134023110554e-01 + 4.228000000000e-10 6.853047053340e-01 + 4.328000000000e-10 7.251501511308e-01 + 4.428000000000e-10 7.178117501486e-01 + 4.528000000000e-10 6.399568281317e-01 + 4.628000000000e-10 4.586017943502e-01 + 4.728000000000e-10 1.844658494373e-01 + 4.828000000000e-10 -1.047609876408e-01 + 4.928000000000e-10 -3.462003104379e-01 + 5.028000000000e-10 -5.097813732572e-01 + 5.128000000000e-10 -6.133504189098e-01 + 5.228000000000e-10 -6.853547602223e-01 + 5.328000000000e-10 -7.250985458364e-01 + 5.428000000000e-10 -7.178593251267e-01 + 5.528000000000e-10 -6.399055102013e-01 + 5.628000000000e-10 -4.586511534755e-01 + 5.728000000000e-10 -1.844138975484e-01 + 5.828000000000e-10 1.047143295024e-01 + 5.928000000000e-10 3.462472486482e-01 + 6.028000000000e-10 5.097369504642e-01 + 6.128000000000e-10 6.133959963639e-01 + 6.228000000000e-10 6.853096740322e-01 + 6.328000000000e-10 7.251438129543e-01 + 6.428000000000e-10 7.178160816468e-01 + 6.528000000000e-10 6.399498616471e-01 + 6.628000000000e-10 4.586069220749e-01 + 6.728000000000e-10 1.844588245643e-01 + 6.828000000000e-10 -1.047563687876e-01 + 6.928000000000e-10 -3.462063328010e-01 + 7.028000000000e-10 -5.097765086741e-01 + 7.128000000000e-10 -6.133562893232e-01 + 7.228000000000e-10 -6.853494321266e-01 + 7.328000000000e-10 -7.251041291885e-01 + 7.428000000000e-10 -7.178542203751e-01 + 7.528000000000e-10 -6.399107355976e-01 + 7.628000000000e-10 -4.586462738291e-01 + 7.728000000000e-10 -1.844190131957e-01 + 7.828000000000e-10 1.047193339603e-01 + 7.928000000000e-10 3.462424630766e-01 + 8.028000000000e-10 5.097415276109e-01 + 8.128000000000e-10 6.133915881396e-01 + 8.228000000000e-10 6.853141467162e-01 + 8.328000000000e-10 7.251393167662e-01 + 8.428000000000e-10 7.178204152808e-01 + 8.528000000000e-10 6.399452651751e-01 + 8.628000000000e-10 4.586116651576e-01 + 8.728000000000e-10 1.844540563551e-01 + 8.828000000000e-10 -1.047521530128e-01 + 8.928000000000e-10 -3.462105768541e-01 + 9.028000000000e-10 -5.097724238353e-01 + 9.128000000000e-10 -6.133605792288e-01 + 9.228000000000e-10 -6.853452315529e-01 + 9.328000000000e-10 -7.251083207568e-01 + 9.428000000000e-10 -7.178502144615e-01 + 9.528000000000e-10 -6.399147306347e-01 + 9.628000000000e-10 -4.586423495280e-01 + 9.728000000000e-10 -1.844229988419e-01 + 9.828000000000e-10 1.047232268776e-01 + 9.928000000000e-10 3.462387497741e-01 + 1.000000000000e-09 4.710752262880e-01 diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_16/CML_divider.sym b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_16/CML_divider.sym new file mode 100644 index 00000000..e46eb233 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_16/CML_divider.sym @@ -0,0 +1,30 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 -120 -20 -100 -20 {} +L 4 -120 20 -100 20 {} +L 4 100 -20 120 -20 {} +L 4 100 20 120 20 {} +L 7 0 -60 0 -40 {} +L 7 0 40 0 60 {} +B 5 -122.5 -22.5 -117.5 -17.5 {name=Vo+ dir=out} +B 5 -122.5 17.5 -117.5 22.5 {name=Vo- dir=out} +B 5 117.5 -22.5 122.5 -17.5 {name=Vi+ dir=in} +B 5 117.5 17.5 122.5 22.5 {name=Vi- dir=in} +B 5 -2.5 -62.5 2.5 -57.5 {name=vdd dir=inout} +B 5 -2.5 57.5 2.5 62.5 {name=gnd dir=inout} +P 4 5 100 -40 -100 -40 -100 40 100 40 100 -40 {} +T {@symname} -44 -6 0 0 0.3 0.3 {} +T {@name} 45 -52 0 0 0.2 0.2 {} +T {Vo+} -95 -24 0 0 0.2 0.2 {} +T {Vo-} -95 16 0 0 0.2 0.2 {} +T {Vi+} 95 -16 2 0 0.2 0.2 {} +T {Vi-} 95 24 2 0 0.2 0.2 {} +T {vdd} 10 -39 0 1 0.2 0.2 {} +T {gnd} -10 34 2 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_16/conditions.yaml b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_16/conditions.yaml new file mode 100644 index 00000000..178ac9dd --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_16/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice +N: 16 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: ff +filename: CML_core_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_16 +temperature: '80' +vdd: '1.2' diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_17/.spiceinit b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_17/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_17/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_17/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_17/CML_core_tb.sch new file mode 100644 index 00000000..f915ac12 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_17/CML_core_tb.sch @@ -0,0 +1,71 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {} +V {} +S {} +E {} +N 740 -940 740 -920 {lab=GND} +N 740 -1090 740 -1060 {lab=VDD} +N 600 -1020 620 -1020 {lab=Vinplus} +N 600 -980 620 -980 {lab=Vinminus} +N 860 -1020 880 -1020 {lab=Voplus} +N 860 -980 880 -980 {lab=Vominus} +N 1150 -850 1150 -820 {lab=VDD} +N 1150 -760 1150 -730 {lab=GND} +N 930 -850 930 -820 {lab=Vinminus} +N 930 -760 930 -730 {lab=GND} +N 720 -850 720 -820 {lab=Vinplus} +N 720 -760 720 -730 {lab=GND} +C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write CML_core_tb.raw +set appendwrite +tran 10p 1n 160p + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_17/CML_core_tb_17.data vo_diff +quit + +.endc +"} +C {opin.sym} 880 -1020 2 1 {name=p6 lab=Voplus} +C {opin.sym} 880 -980 0 0 {name=p9 lab=Vominus} +C {devices/code_shown.sym} 10 -620 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_ss + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice + +.temp 80 +" +} +C {iopin.sym} 740 -1090 0 1 {name=p2 lab=VDD} +C {ipin.sym} 600 -1020 2 1 {name=p4 lab=Vinplus} +C {ipin.sym} 600 -980 2 1 {name=p1 lab=Vinminus} +C {CML_divider.sym} 740 -1000 0 1 {name=x1} +C {vsource.sym} 1150 -790 0 0 {name=V1 value=1.2 savecurrent=false} +C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} +C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} +C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 0.3 10G 0 0 0)" savecurrent=false} +C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 0.3 10G 0 0 180)" savecurrent=false} +C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_17/CML_core_tb_17.data b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_17/CML_core_tb_17.data new file mode 100644 index 00000000..15600382 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_17/CML_core_tb_17.data @@ -0,0 +1,85 @@ + 1.628000000000e-10 -4.852886719505e-01 + 1.728000000000e-10 -2.023606658915e-01 + 1.828000000000e-10 9.500407548716e-02 + 1.928000000000e-10 3.473018630854e-01 + 2.028000000000e-10 5.238539974445e-01 + 2.128000000000e-10 6.356942626004e-01 + 2.228000000000e-10 7.106560719901e-01 + 2.328000000000e-10 7.539243132234e-01 + 2.428000000000e-10 7.486736309564e-01 + 2.528000000000e-10 6.681985082542e-01 + 2.628000000000e-10 4.800908099257e-01 + 2.728000000000e-10 1.985903293754e-01 + 2.828000000000e-10 -9.801965724844e-02 + 2.928000000000e-10 -3.499456539083e-01 + 3.028000000000e-10 -5.264166063204e-01 + 3.128000000000e-10 -6.377599985577e-01 + 3.228000000000e-10 -7.123258227204e-01 + 3.328000000000e-10 -7.548386637736e-01 + 3.428000000000e-10 -7.491646196322e-01 + 3.528000000000e-10 -6.682802381819e-01 + 3.628000000000e-10 -4.802044877583e-01 + 3.728000000000e-10 -1.985554586747e-01 + 3.828000000000e-10 9.793570714348e-02 + 3.928000000000e-10 3.499705083814e-01 + 4.028000000000e-10 5.263126851869e-01 + 4.128000000000e-10 6.377668221774e-01 + 4.228000000000e-10 7.122256281615e-01 + 4.328000000000e-10 7.548735616237e-01 + 4.428000000000e-10 7.491068615558e-01 + 4.528000000000e-10 6.683430307676e-01 + 4.628000000000e-10 4.801581700099e-01 + 4.728000000000e-10 1.986186025664e-01 + 4.828000000000e-10 -9.798359332438e-02 + 4.928000000000e-10 -3.499159407959e-01 + 5.028000000000e-10 -5.263605524234e-01 + 5.128000000000e-10 -6.377159898188e-01 + 5.228000000000e-10 -7.122753084256e-01 + 5.328000000000e-10 -7.548237332543e-01 + 5.428000000000e-10 -7.491535548765e-01 + 5.528000000000e-10 -6.682936663178e-01 + 5.628000000000e-10 -4.802057994081e-01 + 5.728000000000e-10 -1.985692377738e-01 + 5.828000000000e-10 9.793754425938e-02 + 5.928000000000e-10 3.499612594703e-01 + 6.028000000000e-10 5.263165540334e-01 + 6.128000000000e-10 6.377608692391e-01 + 6.228000000000e-10 7.122309292959e-01 + 6.328000000000e-10 7.548679483739e-01 + 6.428000000000e-10 7.491113260135e-01 + 6.528000000000e-10 6.683367510584e-01 + 6.628000000000e-10 4.801631540398e-01 + 6.728000000000e-10 1.986123746205e-01 + 6.828000000000e-10 -9.797860547701e-02 + 6.928000000000e-10 -3.499219086015e-01 + 7.028000000000e-10 -5.263552271330e-01 + 7.128000000000e-10 -6.377219921840e-01 + 7.228000000000e-10 -7.122696952774e-01 + 7.328000000000e-10 -7.548295298651e-01 + 7.428000000000e-10 -7.491481908175e-01 + 7.528000000000e-10 -6.682991221138e-01 + 7.628000000000e-10 -4.802006967346e-01 + 7.728000000000e-10 -1.985745887274e-01 + 7.828000000000e-10 9.794256695295e-02 + 7.928000000000e-10 3.499565849765e-01 + 8.028000000000e-10 5.263210489698e-01 + 8.128000000000e-10 6.377564579322e-01 + 8.228000000000e-10 7.122353719246e-01 + 8.328000000000e-10 7.548635649925e-01 + 8.428000000000e-10 7.491155123701e-01 + 8.528000000000e-10 6.683323549155e-01 + 8.628000000000e-10 4.801676539865e-01 + 8.728000000000e-10 1.986078923136e-01 + 8.828000000000e-10 -9.797434132868e-02 + 8.928000000000e-10 -3.499261582655e-01 + 9.028000000000e-10 -5.263510069851e-01 + 9.128000000000e-10 -6.377263524572e-01 + 9.228000000000e-10 -7.122654282965e-01 + 9.328000000000e-10 -7.548337908470e-01 + 9.428000000000e-10 -7.491440991364e-01 + 9.528000000000e-10 -6.683032069827e-01 + 9.628000000000e-10 -4.801967157057e-01 + 9.728000000000e-10 -1.985786291727e-01 + 9.828000000000e-10 9.794644208878e-02 + 9.928000000000e-10 3.499529545785e-01 + 1.000000000000e-09 4.843355885316e-01 diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_17/CML_divider.sym b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_17/CML_divider.sym new file mode 100644 index 00000000..e46eb233 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_17/CML_divider.sym @@ -0,0 +1,30 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 -120 -20 -100 -20 {} +L 4 -120 20 -100 20 {} +L 4 100 -20 120 -20 {} +L 4 100 20 120 20 {} +L 7 0 -60 0 -40 {} +L 7 0 40 0 60 {} +B 5 -122.5 -22.5 -117.5 -17.5 {name=Vo+ dir=out} +B 5 -122.5 17.5 -117.5 22.5 {name=Vo- dir=out} +B 5 117.5 -22.5 122.5 -17.5 {name=Vi+ dir=in} +B 5 117.5 17.5 122.5 22.5 {name=Vi- dir=in} +B 5 -2.5 -62.5 2.5 -57.5 {name=vdd dir=inout} +B 5 -2.5 57.5 2.5 62.5 {name=gnd dir=inout} +P 4 5 100 -40 -100 -40 -100 40 100 40 100 -40 {} +T {@symname} -44 -6 0 0 0.3 0.3 {} +T {@name} 45 -52 0 0 0.2 0.2 {} +T {Vo+} -95 -24 0 0 0.2 0.2 {} +T {Vo-} -95 16 0 0 0.2 0.2 {} +T {Vi+} 95 -16 2 0 0.2 0.2 {} +T {Vi-} 95 24 2 0 0.2 0.2 {} +T {vdd} 10 -39 0 1 0.2 0.2 {} +T {gnd} -10 34 2 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_17/conditions.yaml b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_17/conditions.yaml new file mode 100644 index 00000000..4932bffd --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_17/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice +N: 17 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: ss +filename: CML_core_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_17 +temperature: '80' +vdd: '1.2' diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_18/.spiceinit b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_18/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_18/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_18/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_18/CML_core_tb.sch new file mode 100644 index 00000000..23448941 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_18/CML_core_tb.sch @@ -0,0 +1,71 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {} +V {} +S {} +E {} +N 740 -940 740 -920 {lab=GND} +N 740 -1090 740 -1060 {lab=VDD} +N 600 -1020 620 -1020 {lab=Vinplus} +N 600 -980 620 -980 {lab=Vinminus} +N 860 -1020 880 -1020 {lab=Voplus} +N 860 -980 880 -980 {lab=Vominus} +N 1150 -850 1150 -820 {lab=VDD} +N 1150 -760 1150 -730 {lab=GND} +N 930 -850 930 -820 {lab=Vinminus} +N 930 -760 930 -730 {lab=GND} +N 720 -850 720 -820 {lab=Vinplus} +N 720 -760 720 -730 {lab=GND} +C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write CML_core_tb.raw +set appendwrite +tran 10p 1n 160p + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_18/CML_core_tb_18.data vo_diff +quit + +.endc +"} +C {opin.sym} 880 -1020 2 1 {name=p6 lab=Voplus} +C {opin.sym} 880 -980 0 0 {name=p9 lab=Vominus} +C {devices/code_shown.sym} 10 -620 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_tt + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice + +.temp -40 +" +} +C {iopin.sym} 740 -1090 0 1 {name=p2 lab=VDD} +C {ipin.sym} 600 -1020 2 1 {name=p4 lab=Vinplus} +C {ipin.sym} 600 -980 2 1 {name=p1 lab=Vinminus} +C {CML_divider.sym} 740 -1000 0 1 {name=x1} +C {vsource.sym} 1150 -790 0 0 {name=V1 value=1.6 savecurrent=false} +C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} +C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} +C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 0.3 10G 0 0 0)" savecurrent=false} +C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 0.3 10G 0 0 180)" savecurrent=false} +C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_18/CML_core_tb_18.data b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_18/CML_core_tb_18.data new file mode 100644 index 00000000..6bdb4a2e --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_18/CML_core_tb_18.data @@ -0,0 +1,85 @@ + 1.628000000000e-10 5.747244840755e-01 + 1.728000000000e-10 2.031348680811e-01 + 1.828000000000e-10 -1.640358346053e-01 + 1.928000000000e-10 -4.121983890365e-01 + 2.028000000000e-10 -5.403960481430e-01 + 2.128000000000e-10 -6.175267008304e-01 + 2.228000000000e-10 -7.185181164841e-01 + 2.328000000000e-10 -8.111835866476e-01 + 2.428000000000e-10 -8.505757111821e-01 + 2.528000000000e-10 -7.941523888433e-01 + 2.628000000000e-10 -5.697557803605e-01 + 2.728000000000e-10 -1.993901761575e-01 + 2.828000000000e-10 1.667454340744e-01 + 2.928000000000e-10 4.143424459307e-01 + 3.028000000000e-10 5.421310172268e-01 + 3.128000000000e-10 6.189024162340e-01 + 3.228000000000e-10 7.194369498053e-01 + 3.328000000000e-10 8.117600127730e-01 + 3.428000000000e-10 8.508336653308e-01 + 3.528000000000e-10 7.942656656211e-01 + 3.628000000000e-10 5.697751550033e-01 + 3.728000000000e-10 1.994135726672e-01 + 3.828000000000e-10 -1.667386419247e-01 + 3.928000000000e-10 -4.143148464313e-01 + 4.028000000000e-10 -5.421262038320e-01 + 4.128000000000e-10 -6.188832903749e-01 + 4.228000000000e-10 -7.194346712496e-01 + 4.328000000000e-10 -8.117442314974e-01 + 4.428000000000e-10 -8.508381039982e-01 + 4.528000000000e-10 -7.942559196005e-01 + 4.628000000000e-10 -5.697859373045e-01 + 4.728000000000e-10 -1.993975895742e-01 + 4.828000000000e-10 1.667322235508e-01 + 4.928000000000e-10 4.143280512458e-01 + 5.028000000000e-10 5.421195877560e-01 + 5.128000000000e-10 6.188968586913e-01 + 5.228000000000e-10 7.194236426239e-01 + 5.328000000000e-10 8.117540342679e-01 + 5.428000000000e-10 8.508266757829e-01 + 5.528000000000e-10 7.942652287581e-01 + 5.628000000000e-10 5.697754142960e-01 + 5.728000000000e-10 1.994033695962e-01 + 5.828000000000e-10 -1.667424669503e-01 + 5.928000000000e-10 -4.143216611718e-01 + 6.028000000000e-10 -5.421291067647e-01 + 6.128000000000e-10 -6.188909595847e-01 + 6.228000000000e-10 -7.194310352535e-01 + 6.328000000000e-10 -8.117467342350e-01 + 6.428000000000e-10 -8.508333273630e-01 + 6.528000000000e-10 -7.942577903765e-01 + 6.628000000000e-10 -5.697836419865e-01 + 6.728000000000e-10 -1.993929431350e-01 + 6.828000000000e-10 1.667361734044e-01 + 6.928000000000e-10 4.143307053824e-01 + 7.028000000000e-10 5.421226813799e-01 + 7.128000000000e-10 6.189001833416e-01 + 7.228000000000e-10 7.194227358993e-01 + 7.328000000000e-10 8.117542266055e-01 + 7.428000000000e-10 8.508251070290e-01 + 7.528000000000e-10 7.942649966766e-01 + 7.628000000000e-10 5.697756363247e-01 + 7.728000000000e-10 1.993989977467e-01 + 7.828000000000e-10 -1.667434615441e-01 + 7.928000000000e-10 -4.143248161746e-01 + 8.028000000000e-10 -5.421295610790e-01 + 8.128000000000e-10 -6.188945163710e-01 + 8.228000000000e-10 -7.194289229798e-01 + 8.328000000000e-10 -8.117483413843e-01 + 8.428000000000e-10 -8.508308647988e-01 + 8.528000000000e-10 -7.942590780393e-01 + 8.628000000000e-10 -5.697822347435e-01 + 8.728000000000e-10 -1.993917000580e-01 + 8.828000000000e-10 1.667380255271e-01 + 8.928000000000e-10 4.143314131245e-01 + 9.028000000000e-10 5.421241182927e-01 + 9.128000000000e-10 6.189011822630e-01 + 9.228000000000e-10 7.194226089303e-01 + 9.328000000000e-10 8.117540798381e-01 + 9.428000000000e-10 8.508247577722e-01 + 9.528000000000e-10 7.942646412254e-01 + 9.628000000000e-10 5.697760282588e-01 + 9.728000000000e-10 1.993969946892e-01 + 9.828000000000e-10 -1.667434796269e-01 + 9.928000000000e-10 -4.143264352220e-01 + 1.000000000000e-09 -5.150731751424e-01 diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_18/CML_divider.sym b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_18/CML_divider.sym new file mode 100644 index 00000000..e46eb233 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_18/CML_divider.sym @@ -0,0 +1,30 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 -120 -20 -100 -20 {} +L 4 -120 20 -100 20 {} +L 4 100 -20 120 -20 {} +L 4 100 20 120 20 {} +L 7 0 -60 0 -40 {} +L 7 0 40 0 60 {} +B 5 -122.5 -22.5 -117.5 -17.5 {name=Vo+ dir=out} +B 5 -122.5 17.5 -117.5 22.5 {name=Vo- dir=out} +B 5 117.5 -22.5 122.5 -17.5 {name=Vi+ dir=in} +B 5 117.5 17.5 122.5 22.5 {name=Vi- dir=in} +B 5 -2.5 -62.5 2.5 -57.5 {name=vdd dir=inout} +B 5 -2.5 57.5 2.5 62.5 {name=gnd dir=inout} +P 4 5 100 -40 -100 -40 -100 40 100 40 100 -40 {} +T {@symname} -44 -6 0 0 0.3 0.3 {} +T {@name} 45 -52 0 0 0.2 0.2 {} +T {Vo+} -95 -24 0 0 0.2 0.2 {} +T {Vo-} -95 16 0 0 0.2 0.2 {} +T {Vi+} 95 -16 2 0 0.2 0.2 {} +T {Vi-} 95 24 2 0 0.2 0.2 {} +T {vdd} 10 -39 0 1 0.2 0.2 {} +T {gnd} -10 34 2 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_18/conditions.yaml b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_18/conditions.yaml new file mode 100644 index 00000000..35485a45 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_18/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice +N: 18 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: tt +filename: CML_core_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_18 +temperature: '-40' +vdd: '1.6' diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_19/.spiceinit b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_19/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_19/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_19/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_19/CML_core_tb.sch new file mode 100644 index 00000000..8d68286d --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_19/CML_core_tb.sch @@ -0,0 +1,71 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {} +V {} +S {} +E {} +N 740 -940 740 -920 {lab=GND} +N 740 -1090 740 -1060 {lab=VDD} +N 600 -1020 620 -1020 {lab=Vinplus} +N 600 -980 620 -980 {lab=Vinminus} +N 860 -1020 880 -1020 {lab=Voplus} +N 860 -980 880 -980 {lab=Vominus} +N 1150 -850 1150 -820 {lab=VDD} +N 1150 -760 1150 -730 {lab=GND} +N 930 -850 930 -820 {lab=Vinminus} +N 930 -760 930 -730 {lab=GND} +N 720 -850 720 -820 {lab=Vinplus} +N 720 -760 720 -730 {lab=GND} +C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write CML_core_tb.raw +set appendwrite +tran 10p 1n 160p + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_19/CML_core_tb_19.data vo_diff +quit + +.endc +"} +C {opin.sym} 880 -1020 2 1 {name=p6 lab=Voplus} +C {opin.sym} 880 -980 0 0 {name=p9 lab=Vominus} +C {devices/code_shown.sym} 10 -620 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_ff + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice + +.temp -40 +" +} +C {iopin.sym} 740 -1090 0 1 {name=p2 lab=VDD} +C {ipin.sym} 600 -1020 2 1 {name=p4 lab=Vinplus} +C {ipin.sym} 600 -980 2 1 {name=p1 lab=Vinminus} +C {CML_divider.sym} 740 -1000 0 1 {name=x1} +C {vsource.sym} 1150 -790 0 0 {name=V1 value=1.6 savecurrent=false} +C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} +C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} +C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 0.3 10G 0 0 0)" savecurrent=false} +C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 0.3 10G 0 0 180)" savecurrent=false} +C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_19/CML_core_tb_19.data b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_19/CML_core_tb_19.data new file mode 100644 index 00000000..cfa0d051 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_19/CML_core_tb_19.data @@ -0,0 +1,85 @@ + 1.628000000000e-10 5.707988120441e-01 + 1.728000000000e-10 2.050562196689e-01 + 1.828000000000e-10 -1.568083182045e-01 + 1.928000000000e-10 -4.020696229917e-01 + 2.028000000000e-10 -5.270997867267e-01 + 2.128000000000e-10 -6.030122328411e-01 + 2.228000000000e-10 -7.060404303518e-01 + 2.328000000000e-10 -7.977729548420e-01 + 2.428000000000e-10 -8.357087979117e-01 + 2.528000000000e-10 -7.823438332914e-01 + 2.628000000000e-10 -5.641015035384e-01 + 2.728000000000e-10 -1.996979729386e-01 + 2.828000000000e-10 1.605395493177e-01 + 2.928000000000e-10 4.049019788065e-01 + 3.028000000000e-10 5.293349858313e-01 + 3.128000000000e-10 6.047755538782e-01 + 3.228000000000e-10 7.072083327509e-01 + 3.328000000000e-10 7.985177439850e-01 + 3.428000000000e-10 8.360745897587e-01 + 3.528000000000e-10 7.825643018760e-01 + 3.628000000000e-10 5.642043953033e-01 + 3.728000000000e-10 1.998026918934e-01 + 3.828000000000e-10 -1.604858693758e-01 + 3.928000000000e-10 -4.048299316522e-01 + 4.028000000000e-10 -5.293048172022e-01 + 4.128000000000e-10 -6.047267733392e-01 + 4.228000000000e-10 -7.071932602489e-01 + 4.328000000000e-10 -7.984844304353e-01 + 4.428000000000e-10 -8.360789616419e-01 + 4.528000000000e-10 -7.825446968704e-01 + 4.628000000000e-10 -5.642205462461e-01 + 4.728000000000e-10 -1.997755595675e-01 + 4.828000000000e-10 1.604765943145e-01 + 4.928000000000e-10 4.048512691297e-01 + 5.028000000000e-10 5.292953655278e-01 + 5.128000000000e-10 6.047472585148e-01 + 5.228000000000e-10 7.071773753770e-01 + 5.328000000000e-10 7.985008103891e-01 + 5.428000000000e-10 8.360621173440e-01 + 5.528000000000e-10 7.825604957102e-01 + 5.628000000000e-10 5.642042607216e-01 + 5.728000000000e-10 1.997857962408e-01 + 5.828000000000e-10 -1.604926267251e-01 + 5.928000000000e-10 -4.048407079574e-01 + 6.028000000000e-10 -5.293103597207e-01 + 6.128000000000e-10 -6.047374718328e-01 + 6.228000000000e-10 -7.071895246392e-01 + 6.328000000000e-10 -7.984887922220e-01 + 6.428000000000e-10 -8.360735876941e-01 + 6.528000000000e-10 -7.825482507809e-01 + 6.628000000000e-10 -5.642183473935e-01 + 6.728000000000e-10 -1.997692084041e-01 + 6.828000000000e-10 1.604823178167e-01 + 6.928000000000e-10 4.048548923992e-01 + 7.028000000000e-10 5.293001528657e-01 + 7.128000000000e-10 6.047514904939e-01 + 7.228000000000e-10 7.071767775245e-01 + 7.328000000000e-10 7.985010886851e-01 + 7.428000000000e-10 8.360609061049e-01 + 7.528000000000e-10 7.825602391468e-01 + 7.628000000000e-10 5.642057995328e-01 + 7.728000000000e-10 1.997793833692e-01 + 7.828000000000e-10 -1.604939026989e-01 + 7.928000000000e-10 -4.048452814924e-01 + 8.028000000000e-10 -5.293110935611e-01 + 8.128000000000e-10 -6.047422910037e-01 + 8.228000000000e-10 -7.071868576548e-01 + 8.328000000000e-10 -7.984914661054e-01 + 8.428000000000e-10 -8.360704549701e-01 + 8.528000000000e-10 -7.825505283213e-01 + 8.628000000000e-10 -5.642168951425e-01 + 8.728000000000e-10 -1.997675829904e-01 + 8.828000000000e-10 1.604850893678e-01 + 8.928000000000e-10 4.048557791622e-01 + 9.028000000000e-10 5.293024006551e-01 + 9.128000000000e-10 6.047526676189e-01 + 9.228000000000e-10 7.071769813422e-01 + 9.328000000000e-10 7.985009240492e-01 + 9.428000000000e-10 8.360608174754e-01 + 9.528000000000e-10 7.825597625659e-01 + 9.628000000000e-10 5.642070937767e-01 + 9.728000000000e-10 1.997763618165e-01 + 9.828000000000e-10 -1.604938267743e-01 + 9.928000000000e-10 -4.048476936234e-01 + 1.000000000000e-09 -5.033604123532e-01 diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_19/CML_divider.sym b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_19/CML_divider.sym new file mode 100644 index 00000000..e46eb233 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_19/CML_divider.sym @@ -0,0 +1,30 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 -120 -20 -100 -20 {} +L 4 -120 20 -100 20 {} +L 4 100 -20 120 -20 {} +L 4 100 20 120 20 {} +L 7 0 -60 0 -40 {} +L 7 0 40 0 60 {} +B 5 -122.5 -22.5 -117.5 -17.5 {name=Vo+ dir=out} +B 5 -122.5 17.5 -117.5 22.5 {name=Vo- dir=out} +B 5 117.5 -22.5 122.5 -17.5 {name=Vi+ dir=in} +B 5 117.5 17.5 122.5 22.5 {name=Vi- dir=in} +B 5 -2.5 -62.5 2.5 -57.5 {name=vdd dir=inout} +B 5 -2.5 57.5 2.5 62.5 {name=gnd dir=inout} +P 4 5 100 -40 -100 -40 -100 40 100 40 100 -40 {} +T {@symname} -44 -6 0 0 0.3 0.3 {} +T {@name} 45 -52 0 0 0.2 0.2 {} +T {Vo+} -95 -24 0 0 0.2 0.2 {} +T {Vo-} -95 16 0 0 0.2 0.2 {} +T {Vi+} 95 -16 2 0 0.2 0.2 {} +T {Vi-} 95 24 2 0 0.2 0.2 {} +T {vdd} 10 -39 0 1 0.2 0.2 {} +T {gnd} -10 34 2 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_19/conditions.yaml b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_19/conditions.yaml new file mode 100644 index 00000000..19fa5343 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_19/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice +N: 19 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: ff +filename: CML_core_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_19 +temperature: '-40' +vdd: '1.6' diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_20/.spiceinit b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_20/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_20/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_20/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_20/CML_core_tb.sch new file mode 100644 index 00000000..e7bdc939 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_20/CML_core_tb.sch @@ -0,0 +1,71 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {} +V {} +S {} +E {} +N 740 -940 740 -920 {lab=GND} +N 740 -1090 740 -1060 {lab=VDD} +N 600 -1020 620 -1020 {lab=Vinplus} +N 600 -980 620 -980 {lab=Vinminus} +N 860 -1020 880 -1020 {lab=Voplus} +N 860 -980 880 -980 {lab=Vominus} +N 1150 -850 1150 -820 {lab=VDD} +N 1150 -760 1150 -730 {lab=GND} +N 930 -850 930 -820 {lab=Vinminus} +N 930 -760 930 -730 {lab=GND} +N 720 -850 720 -820 {lab=Vinplus} +N 720 -760 720 -730 {lab=GND} +C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write CML_core_tb.raw +set appendwrite +tran 10p 1n 160p + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_20/CML_core_tb_20.data vo_diff +quit + +.endc +"} +C {opin.sym} 880 -1020 2 1 {name=p6 lab=Voplus} +C {opin.sym} 880 -980 0 0 {name=p9 lab=Vominus} +C {devices/code_shown.sym} 10 -620 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_ss + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice + +.temp -40 +" +} +C {iopin.sym} 740 -1090 0 1 {name=p2 lab=VDD} +C {ipin.sym} 600 -1020 2 1 {name=p4 lab=Vinplus} +C {ipin.sym} 600 -980 2 1 {name=p1 lab=Vinminus} +C {CML_divider.sym} 740 -1000 0 1 {name=x1} +C {vsource.sym} 1150 -790 0 0 {name=V1 value=1.6 savecurrent=false} +C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} +C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} +C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 0.3 10G 0 0 0)" savecurrent=false} +C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 0.3 10G 0 0 180)" savecurrent=false} +C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_20/CML_core_tb_20.data b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_20/CML_core_tb_20.data new file mode 100644 index 00000000..696f2b8b --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_20/CML_core_tb_20.data @@ -0,0 +1,85 @@ + 1.628000000000e-10 5.787258342535e-01 + 1.728000000000e-10 2.078017915173e-01 + 1.828000000000e-10 -1.622649468476e-01 + 1.928000000000e-10 -4.154784848215e-01 + 2.028000000000e-10 -5.503628241592e-01 + 2.128000000000e-10 -6.299323770996e-01 + 2.228000000000e-10 -7.254942323191e-01 + 2.328000000000e-10 -8.176578932007e-01 + 2.428000000000e-10 -8.600222409410e-01 + 2.528000000000e-10 -8.019093712422e-01 + 2.628000000000e-10 -5.756893793886e-01 + 2.728000000000e-10 -2.057606209176e-01 + 2.828000000000e-10 1.639197157563e-01 + 2.928000000000e-10 4.168841038800e-01 + 3.028000000000e-10 5.515424627408e-01 + 3.128000000000e-10 6.308336221978e-01 + 3.228000000000e-10 7.261208861559e-01 + 3.328000000000e-10 8.180354096547e-01 + 3.428000000000e-10 8.601969327831e-01 + 3.528000000000e-10 8.019450515145e-01 + 3.628000000000e-10 5.756806762770e-01 + 3.728000000000e-10 2.057351595047e-01 + 3.828000000000e-10 -1.639234125928e-01 + 3.928000000000e-10 -4.168916689126e-01 + 4.028000000000e-10 -5.515399403849e-01 + 4.128000000000e-10 -6.308421950132e-01 + 4.228000000000e-10 -7.261151591955e-01 + 4.328000000000e-10 -8.180409257235e-01 + 4.428000000000e-10 -8.601903753395e-01 + 4.528000000000e-10 -8.019506024478e-01 + 4.628000000000e-10 -5.756757498169e-01 + 4.728000000000e-10 -2.057370812605e-01 + 4.828000000000e-10 1.639284669376e-01 + 4.928000000000e-10 4.168895758092e-01 + 5.028000000000e-10 5.515444733402e-01 + 5.128000000000e-10 6.308408648378e-01 + 5.228000000000e-10 7.261175778597e-01 + 5.328000000000e-10 8.180376908128e-01 + 5.428000000000e-10 8.601923700088e-01 + 5.528000000000e-10 8.019470527506e-01 + 5.628000000000e-10 5.756789455974e-01 + 5.728000000000e-10 2.057316537746e-01 + 5.828000000000e-10 -1.639258645561e-01 + 5.928000000000e-10 -4.168940343704e-01 + 6.028000000000e-10 -5.515416140289e-01 + 6.128000000000e-10 -6.308456056710e-01 + 6.228000000000e-10 -7.261132930683e-01 + 6.328000000000e-10 -8.180415890619e-01 + 6.428000000000e-10 -8.601877913845e-01 + 6.528000000000e-10 -8.019507055326e-01 + 6.628000000000e-10 -5.756748223597e-01 + 6.728000000000e-10 -2.057339330851e-01 + 6.828000000000e-10 1.639294327626e-01 + 6.928000000000e-10 4.168918933453e-01 + 7.028000000000e-10 5.515448110547e-01 + 7.128000000000e-10 6.308438013344e-01 + 7.228000000000e-10 7.261156471026e-01 + 7.328000000000e-10 8.180389426729e-01 + 7.428000000000e-10 8.601899882644e-01 + 7.528000000000e-10 8.019478991926e-01 + 7.628000000000e-10 5.756775488816e-01 + 7.728000000000e-10 2.057303912125e-01 + 7.828000000000e-10 -1.639270777727e-01 + 7.928000000000e-10 -4.168949361223e-01 + 8.028000000000e-10 -5.515423789761e-01 + 8.128000000000e-10 -6.308469511551e-01 + 8.228000000000e-10 -7.261125857103e-01 + 8.328000000000e-10 -8.180418172660e-01 + 8.428000000000e-10 -8.601868536640e-01 + 8.528000000000e-10 -8.019506539776e-01 + 8.628000000000e-10 -5.756745040863e-01 + 8.728000000000e-10 -2.057325997968e-01 + 8.828000000000e-10 1.639296206310e-01 + 8.928000000000e-10 4.168929982528e-01 + 9.028000000000e-10 5.515447184418e-01 + 9.128000000000e-10 6.308451859194e-01 + 9.228000000000e-10 7.261146020976e-01 + 9.328000000000e-10 8.180396416883e-01 + 9.428000000000e-10 8.601888436252e-01 + 9.528000000000e-10 8.019484098509e-01 + 9.628000000000e-10 5.756767177581e-01 + 9.728000000000e-10 2.057300830001e-01 + 9.828000000000e-10 -1.639276725752e-01 + 9.928000000000e-10 -4.168951851932e-01 + 1.000000000000e-09 -5.223291820834e-01 diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_20/CML_divider.sym b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_20/CML_divider.sym new file mode 100644 index 00000000..e46eb233 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_20/CML_divider.sym @@ -0,0 +1,30 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 -120 -20 -100 -20 {} +L 4 -120 20 -100 20 {} +L 4 100 -20 120 -20 {} +L 4 100 20 120 20 {} +L 7 0 -60 0 -40 {} +L 7 0 40 0 60 {} +B 5 -122.5 -22.5 -117.5 -17.5 {name=Vo+ dir=out} +B 5 -122.5 17.5 -117.5 22.5 {name=Vo- dir=out} +B 5 117.5 -22.5 122.5 -17.5 {name=Vi+ dir=in} +B 5 117.5 17.5 122.5 22.5 {name=Vi- dir=in} +B 5 -2.5 -62.5 2.5 -57.5 {name=vdd dir=inout} +B 5 -2.5 57.5 2.5 62.5 {name=gnd dir=inout} +P 4 5 100 -40 -100 -40 -100 40 100 40 100 -40 {} +T {@symname} -44 -6 0 0 0.3 0.3 {} +T {@name} 45 -52 0 0 0.2 0.2 {} +T {Vo+} -95 -24 0 0 0.2 0.2 {} +T {Vo-} -95 16 0 0 0.2 0.2 {} +T {Vi+} 95 -16 2 0 0.2 0.2 {} +T {Vi-} 95 24 2 0 0.2 0.2 {} +T {vdd} 10 -39 0 1 0.2 0.2 {} +T {gnd} -10 34 2 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_20/conditions.yaml b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_20/conditions.yaml new file mode 100644 index 00000000..5ec3e86f --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_20/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice +N: 20 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: ss +filename: CML_core_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_20 +temperature: '-40' +vdd: '1.6' diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_21/.spiceinit b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_21/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_21/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_21/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_21/CML_core_tb.sch new file mode 100644 index 00000000..fad2ff6b --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_21/CML_core_tb.sch @@ -0,0 +1,71 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {} +V {} +S {} +E {} +N 740 -940 740 -920 {lab=GND} +N 740 -1090 740 -1060 {lab=VDD} +N 600 -1020 620 -1020 {lab=Vinplus} +N 600 -980 620 -980 {lab=Vinminus} +N 860 -1020 880 -1020 {lab=Voplus} +N 860 -980 880 -980 {lab=Vominus} +N 1150 -850 1150 -820 {lab=VDD} +N 1150 -760 1150 -730 {lab=GND} +N 930 -850 930 -820 {lab=Vinminus} +N 930 -760 930 -730 {lab=GND} +N 720 -850 720 -820 {lab=Vinplus} +N 720 -760 720 -730 {lab=GND} +C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write CML_core_tb.raw +set appendwrite +tran 10p 1n 160p + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_21/CML_core_tb_21.data vo_diff +quit + +.endc +"} +C {opin.sym} 880 -1020 2 1 {name=p6 lab=Voplus} +C {opin.sym} 880 -980 0 0 {name=p9 lab=Vominus} +C {devices/code_shown.sym} 10 -620 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_tt + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice + +.temp 27 +" +} +C {iopin.sym} 740 -1090 0 1 {name=p2 lab=VDD} +C {ipin.sym} 600 -1020 2 1 {name=p4 lab=Vinplus} +C {ipin.sym} 600 -980 2 1 {name=p1 lab=Vinminus} +C {CML_divider.sym} 740 -1000 0 1 {name=x1} +C {vsource.sym} 1150 -790 0 0 {name=V1 value=1.6 savecurrent=false} +C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} +C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} +C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 0.3 10G 0 0 0)" savecurrent=false} +C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 0.3 10G 0 0 180)" savecurrent=false} +C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_21/CML_core_tb_21.data b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_21/CML_core_tb_21.data new file mode 100644 index 00000000..b199692b --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_21/CML_core_tb_21.data @@ -0,0 +1,85 @@ + 1.628000000000e-10 5.573501255338e-01 + 1.728000000000e-10 2.075317226020e-01 + 1.828000000000e-10 -1.459750710281e-01 + 1.928000000000e-10 -3.981214724862e-01 + 2.028000000000e-10 -5.378144391949e-01 + 2.128000000000e-10 -6.222071778117e-01 + 2.228000000000e-10 -7.144656924256e-01 + 2.328000000000e-10 -7.957588475985e-01 + 2.428000000000e-10 -8.259944634024e-01 + 2.528000000000e-10 -7.639419051023e-01 + 2.628000000000e-10 -5.499582313836e-01 + 2.728000000000e-10 -2.015822705639e-01 + 2.828000000000e-10 1.503547149045e-01 + 2.928000000000e-10 4.016725871885e-01 + 3.028000000000e-10 5.406529598204e-01 + 3.128000000000e-10 6.244429748136e-01 + 3.228000000000e-10 7.159703736038e-01 + 3.328000000000e-10 7.967442303644e-01 + 3.428000000000e-10 8.264465978318e-01 + 3.528000000000e-10 7.642028659706e-01 + 3.628000000000e-10 5.500598536778e-01 + 3.728000000000e-10 2.017167809837e-01 + 3.828000000000e-10 -1.502994036069e-01 + 3.928000000000e-10 -4.015772846450e-01 + 4.028000000000e-10 -5.406194194587e-01 + 4.128000000000e-10 -6.243734224937e-01 + 4.228000000000e-10 -7.159615996115e-01 + 4.328000000000e-10 -7.966982014285e-01 + 4.428000000000e-10 -8.264613960108e-01 + 4.528000000000e-10 -7.641725666632e-01 + 4.628000000000e-10 -5.500862997678e-01 + 4.728000000000e-10 -2.016863380222e-01 + 4.828000000000e-10 1.502773228882e-01 + 4.928000000000e-10 4.016041852700e-01 + 5.028000000000e-10 5.405973091915e-01 + 5.128000000000e-10 6.243995261147e-01 + 5.228000000000e-10 7.159367954986e-01 + 5.328000000000e-10 7.967237369409e-01 + 5.428000000000e-10 8.264362767952e-01 + 5.528000000000e-10 7.641972989051e-01 + 5.628000000000e-10 5.500612169320e-01 + 5.728000000000e-10 2.017098008556e-01 + 5.828000000000e-10 -1.502994747055e-01 + 5.928000000000e-10 -4.015836624598e-01 + 6.028000000000e-10 -5.406181129288e-01 + 6.128000000000e-10 -6.243799299897e-01 + 6.228000000000e-10 -7.159574419629e-01 + 6.328000000000e-10 -7.967036557443e-01 + 6.428000000000e-10 -8.264562124237e-01 + 6.528000000000e-10 -7.641768324224e-01 + 6.628000000000e-10 -5.500832409355e-01 + 6.728000000000e-10 -2.016878835950e-01 + 6.828000000000e-10 1.502805147690e-01 + 6.928000000000e-10 4.016033959904e-01 + 7.028000000000e-10 5.405993862387e-01 + 7.128000000000e-10 6.243994053085e-01 + 7.228000000000e-10 7.159375001908e-01 + 7.328000000000e-10 7.967227911979e-01 + 7.428000000000e-10 8.264369695557e-01 + 7.528000000000e-10 7.641957504677e-01 + 7.628000000000e-10 5.500638388088e-01 + 7.728000000000e-10 2.017065810231e-01 + 7.828000000000e-10 -1.502977706940e-01 + 7.928000000000e-10 -4.015868518817e-01 + 8.028000000000e-10 -5.406159021220e-01 + 8.128000000000e-10 -6.243834226598e-01 + 8.228000000000e-10 -7.159542700032e-01 + 8.328000000000e-10 -7.967069113699e-01 + 8.428000000000e-10 -8.264528986398e-01 + 8.528000000000e-10 -7.641796598358e-01 + 8.628000000000e-10 -5.500810114131e-01 + 8.728000000000e-10 -2.016895461018e-01 + 8.828000000000e-10 1.502827695530e-01 + 8.928000000000e-10 4.016022282365e-01 + 9.028000000000e-10 5.406011687872e-01 + 9.128000000000e-10 6.243986267121e-01 + 9.228000000000e-10 7.159387803359e-01 + 9.328000000000e-10 7.967217157361e-01 + 9.428000000000e-10 8.264380732409e-01 + 9.528000000000e-10 7.641943142595e-01 + 9.628000000000e-10 5.500658668163e-01 + 9.728000000000e-10 2.017043552905e-01 + 9.828000000000e-10 -1.502962363926e-01 + 9.928000000000e-10 -4.015890294030e-01 + 1.000000000000e-09 -5.098048460363e-01 diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_21/CML_divider.sym b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_21/CML_divider.sym new file mode 100644 index 00000000..e46eb233 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_21/CML_divider.sym @@ -0,0 +1,30 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 -120 -20 -100 -20 {} +L 4 -120 20 -100 20 {} +L 4 100 -20 120 -20 {} +L 4 100 20 120 20 {} +L 7 0 -60 0 -40 {} +L 7 0 40 0 60 {} +B 5 -122.5 -22.5 -117.5 -17.5 {name=Vo+ dir=out} +B 5 -122.5 17.5 -117.5 22.5 {name=Vo- dir=out} +B 5 117.5 -22.5 122.5 -17.5 {name=Vi+ dir=in} +B 5 117.5 17.5 122.5 22.5 {name=Vi- dir=in} +B 5 -2.5 -62.5 2.5 -57.5 {name=vdd dir=inout} +B 5 -2.5 57.5 2.5 62.5 {name=gnd dir=inout} +P 4 5 100 -40 -100 -40 -100 40 100 40 100 -40 {} +T {@symname} -44 -6 0 0 0.3 0.3 {} +T {@name} 45 -52 0 0 0.2 0.2 {} +T {Vo+} -95 -24 0 0 0.2 0.2 {} +T {Vo-} -95 16 0 0 0.2 0.2 {} +T {Vi+} 95 -16 2 0 0.2 0.2 {} +T {Vi-} 95 24 2 0 0.2 0.2 {} +T {vdd} 10 -39 0 1 0.2 0.2 {} +T {gnd} -10 34 2 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_21/conditions.yaml b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_21/conditions.yaml new file mode 100644 index 00000000..ce8c1ed6 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_21/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice +N: 21 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: tt +filename: CML_core_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_21 +temperature: '27' +vdd: '1.6' diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_22/.spiceinit b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_22/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_22/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_22/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_22/CML_core_tb.sch new file mode 100644 index 00000000..4df7b4c3 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_22/CML_core_tb.sch @@ -0,0 +1,71 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {} +V {} +S {} +E {} +N 740 -940 740 -920 {lab=GND} +N 740 -1090 740 -1060 {lab=VDD} +N 600 -1020 620 -1020 {lab=Vinplus} +N 600 -980 620 -980 {lab=Vinminus} +N 860 -1020 880 -1020 {lab=Voplus} +N 860 -980 880 -980 {lab=Vominus} +N 1150 -850 1150 -820 {lab=VDD} +N 1150 -760 1150 -730 {lab=GND} +N 930 -850 930 -820 {lab=Vinminus} +N 930 -760 930 -730 {lab=GND} +N 720 -850 720 -820 {lab=Vinplus} +N 720 -760 720 -730 {lab=GND} +C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write CML_core_tb.raw +set appendwrite +tran 10p 1n 160p + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_22/CML_core_tb_22.data vo_diff +quit + +.endc +"} +C {opin.sym} 880 -1020 2 1 {name=p6 lab=Voplus} +C {opin.sym} 880 -980 0 0 {name=p9 lab=Vominus} +C {devices/code_shown.sym} 10 -620 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_ff + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice + +.temp 27 +" +} +C {iopin.sym} 740 -1090 0 1 {name=p2 lab=VDD} +C {ipin.sym} 600 -1020 2 1 {name=p4 lab=Vinplus} +C {ipin.sym} 600 -980 2 1 {name=p1 lab=Vinminus} +C {CML_divider.sym} 740 -1000 0 1 {name=x1} +C {vsource.sym} 1150 -790 0 0 {name=V1 value=1.6 savecurrent=false} +C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} +C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} +C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 0.3 10G 0 0 0)" savecurrent=false} +C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 0.3 10G 0 0 180)" savecurrent=false} +C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_22/CML_core_tb_22.data b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_22/CML_core_tb_22.data new file mode 100644 index 00000000..60989baa --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_22/CML_core_tb_22.data @@ -0,0 +1,85 @@ + 1.628000000000e-10 5.539342660958e-01 + 1.728000000000e-10 2.092356958505e-01 + 1.828000000000e-10 -1.399589402437e-01 + 1.928000000000e-10 -3.887664135754e-01 + 2.028000000000e-10 -5.242925922458e-01 + 2.128000000000e-10 -6.069418933180e-01 + 2.228000000000e-10 -7.009344183633e-01 + 2.328000000000e-10 -7.819154973681e-01 + 2.428000000000e-10 -8.115011787752e-01 + 2.528000000000e-10 -7.528782125237e-01 + 2.628000000000e-10 -5.449881732974e-01 + 2.728000000000e-10 -2.018085669996e-01 + 2.828000000000e-10 1.453371294429e-01 + 2.928000000000e-10 3.930046196046e-01 + 3.028000000000e-10 5.275952350978e-01 + 3.128000000000e-10 6.094983923496e-01 + 3.228000000000e-10 7.026430994561e-01 + 3.328000000000e-10 7.830459101342e-01 + 3.428000000000e-10 8.120643124066e-01 + 3.528000000000e-10 7.532542388222e-01 + 3.628000000000e-10 5.451889146656e-01 + 3.728000000000e-10 2.020380161925e-01 + 3.828000000000e-10 -1.452202245966e-01 + 3.928000000000e-10 -3.928550396378e-01 + 4.028000000000e-10 -5.275272038156e-01 + 4.128000000000e-10 -6.093963788491e-01 + 4.228000000000e-10 -7.026185076638e-01 + 4.328000000000e-10 -7.829822343256e-01 + 4.428000000000e-10 -8.120760322925e-01 + 4.528000000000e-10 -7.532137307257e-01 + 4.628000000000e-10 -5.452168897181e-01 + 4.728000000000e-10 -2.019975663161e-01 + 4.828000000000e-10 1.451970774770e-01 + 4.928000000000e-10 3.928886426712e-01 + 5.028000000000e-10 5.275035947470e-01 + 5.128000000000e-10 6.094279224341e-01 + 5.228000000000e-10 7.025906785817e-01 + 5.328000000000e-10 7.830125874729e-01 + 5.428000000000e-10 8.120474298427e-01 + 5.528000000000e-10 7.532431353399e-01 + 5.628000000000e-10 5.451877569897e-01 + 5.728000000000e-10 2.020249691554e-01 + 5.828000000000e-10 -1.452230860448e-01 + 5.928000000000e-10 -3.928644448798e-01 + 6.028000000000e-10 -5.275279936983e-01 + 6.128000000000e-10 -6.094050782075e-01 + 6.228000000000e-10 -7.026148963104e-01 + 6.328000000000e-10 -7.829886841749e-01 + 6.428000000000e-10 -8.120708569069e-01 + 6.528000000000e-10 -7.532187757848e-01 + 6.628000000000e-10 -5.452139572157e-01 + 6.728000000000e-10 -2.019983459359e-01 + 6.828000000000e-10 1.452010057661e-01 + 6.928000000000e-10 3.928879698340e-01 + 7.028000000000e-10 5.275064479083e-01 + 7.128000000000e-10 6.094280990005e-01 + 7.228000000000e-10 7.025917879356e-01 + 7.328000000000e-10 7.830113821989e-01 + 7.428000000000e-10 8.120485256383e-01 + 7.528000000000e-10 7.532412367972e-01 + 7.628000000000e-10 5.451912171970e-01 + 7.728000000000e-10 2.020204953427e-01 + 7.828000000000e-10 -1.452213117732e-01 + 7.928000000000e-10 -3.928683087954e-01 + 8.028000000000e-10 -5.275257546899e-01 + 8.128000000000e-10 -6.094092443434e-01 + 8.228000000000e-10 -7.026114152643e-01 + 8.328000000000e-10 -7.829924127838e-01 + 8.428000000000e-10 -8.120671951794e-01 + 8.528000000000e-10 -7.532220607865e-01 + 8.628000000000e-10 -5.452116115033e-01 + 8.728000000000e-10 -2.019999026099e-01 + 8.828000000000e-10 1.452037268076e-01 + 8.928000000000e-10 3.928866787286e-01 + 9.028000000000e-10 5.275085793908e-01 + 9.128000000000e-10 6.094272189130e-01 + 9.228000000000e-10 7.025932924679e-01 + 9.328000000000e-10 7.830100596429e-01 + 9.428000000000e-10 8.120498613680e-01 + 9.528000000000e-10 7.532395420815e-01 + 9.628000000000e-10 5.451937902395e-01 + 9.728000000000e-10 2.020175827840e-01 + 9.828000000000e-10 -1.452196157349e-01 + 9.928000000000e-10 -3.928709378362e-01 + 1.000000000000e-09 -4.979849828547e-01 diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_22/CML_divider.sym b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_22/CML_divider.sym new file mode 100644 index 00000000..e46eb233 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_22/CML_divider.sym @@ -0,0 +1,30 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 -120 -20 -100 -20 {} +L 4 -120 20 -100 20 {} +L 4 100 -20 120 -20 {} +L 4 100 20 120 20 {} +L 7 0 -60 0 -40 {} +L 7 0 40 0 60 {} +B 5 -122.5 -22.5 -117.5 -17.5 {name=Vo+ dir=out} +B 5 -122.5 17.5 -117.5 22.5 {name=Vo- dir=out} +B 5 117.5 -22.5 122.5 -17.5 {name=Vi+ dir=in} +B 5 117.5 17.5 122.5 22.5 {name=Vi- dir=in} +B 5 -2.5 -62.5 2.5 -57.5 {name=vdd dir=inout} +B 5 -2.5 57.5 2.5 62.5 {name=gnd dir=inout} +P 4 5 100 -40 -100 -40 -100 40 100 40 100 -40 {} +T {@symname} -44 -6 0 0 0.3 0.3 {} +T {@name} 45 -52 0 0 0.2 0.2 {} +T {Vo+} -95 -24 0 0 0.2 0.2 {} +T {Vo-} -95 16 0 0 0.2 0.2 {} +T {Vi+} 95 -16 2 0 0.2 0.2 {} +T {Vi-} 95 24 2 0 0.2 0.2 {} +T {vdd} 10 -39 0 1 0.2 0.2 {} +T {gnd} -10 34 2 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_22/conditions.yaml b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_22/conditions.yaml new file mode 100644 index 00000000..5cd09398 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_22/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice +N: 22 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: ff +filename: CML_core_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_22 +temperature: '27' +vdd: '1.6' diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_23/.spiceinit b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_23/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_23/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_23/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_23/CML_core_tb.sch new file mode 100644 index 00000000..e2bfe757 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_23/CML_core_tb.sch @@ -0,0 +1,71 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {} +V {} +S {} +E {} +N 740 -940 740 -920 {lab=GND} +N 740 -1090 740 -1060 {lab=VDD} +N 600 -1020 620 -1020 {lab=Vinplus} +N 600 -980 620 -980 {lab=Vinminus} +N 860 -1020 880 -1020 {lab=Voplus} +N 860 -980 880 -980 {lab=Vominus} +N 1150 -850 1150 -820 {lab=VDD} +N 1150 -760 1150 -730 {lab=GND} +N 930 -850 930 -820 {lab=Vinminus} +N 930 -760 930 -730 {lab=GND} +N 720 -850 720 -820 {lab=Vinplus} +N 720 -760 720 -730 {lab=GND} +C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write CML_core_tb.raw +set appendwrite +tran 10p 1n 160p + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_23/CML_core_tb_23.data vo_diff +quit + +.endc +"} +C {opin.sym} 880 -1020 2 1 {name=p6 lab=Voplus} +C {opin.sym} 880 -980 0 0 {name=p9 lab=Vominus} +C {devices/code_shown.sym} 10 -620 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_ss + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice + +.temp 27 +" +} +C {iopin.sym} 740 -1090 0 1 {name=p2 lab=VDD} +C {ipin.sym} 600 -1020 2 1 {name=p4 lab=Vinplus} +C {ipin.sym} 600 -980 2 1 {name=p1 lab=Vinminus} +C {CML_divider.sym} 740 -1000 0 1 {name=x1} +C {vsource.sym} 1150 -790 0 0 {name=V1 value=1.6 savecurrent=false} +C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} +C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} +C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 0.3 10G 0 0 0)" savecurrent=false} +C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 0.3 10G 0 0 180)" savecurrent=false} +C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_23/CML_core_tb_23.data b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_23/CML_core_tb_23.data new file mode 100644 index 00000000..208aa09a --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_23/CML_core_tb_23.data @@ -0,0 +1,85 @@ + 1.628000000000e-10 5.609932954578e-01 + 1.728000000000e-10 2.135803595156e-01 + 1.828000000000e-10 -1.406795105233e-01 + 1.928000000000e-10 -3.985242549940e-01 + 2.028000000000e-10 -5.467902250198e-01 + 2.128000000000e-10 -6.349197102047e-01 + 2.228000000000e-10 -7.225601155251e-01 + 2.328000000000e-10 -8.022847270862e-01 + 2.428000000000e-10 -8.341174139963e-01 + 2.528000000000e-10 -7.703472968512e-01 + 2.628000000000e-10 -5.554753546701e-01 + 2.728000000000e-10 -2.092959847468e-01 + 2.828000000000e-10 1.439827087572e-01 + 2.928000000000e-10 4.013409764958e-01 + 3.028000000000e-10 5.491103575815e-01 + 3.128000000000e-10 6.367736171292e-01 + 3.228000000000e-10 7.238327114492e-01 + 3.328000000000e-10 8.031250424519e-01 + 3.428000000000e-10 8.344898451807e-01 + 3.528000000000e-10 7.705288945959e-01 + 3.628000000000e-10 5.555161552443e-01 + 3.728000000000e-10 2.093659332353e-01 + 3.828000000000e-10 -1.439645708780e-01 + 3.928000000000e-10 -4.012864243472e-01 + 4.028000000000e-10 -5.490981432908e-01 + 4.128000000000e-10 -6.367310776976e-01 + 4.228000000000e-10 -7.238327358891e-01 + 4.328000000000e-10 -8.030945225544e-01 + 4.428000000000e-10 -8.345032641498e-01 + 4.528000000000e-10 -7.705076814073e-01 + 4.628000000000e-10 -5.555368200040e-01 + 4.728000000000e-10 -2.093450233604e-01 + 4.828000000000e-10 1.439466188317e-01 + 4.928000000000e-10 4.013057839415e-01 + 5.028000000000e-10 5.490801810840e-01 + 5.128000000000e-10 6.367502973173e-01 + 5.228000000000e-10 7.238134370273e-01 + 5.328000000000e-10 8.031142213064e-01 + 5.428000000000e-10 8.344836920712e-01 + 5.528000000000e-10 7.705267055682e-01 + 5.628000000000e-10 5.555176728822e-01 + 5.728000000000e-10 2.093634169255e-01 + 5.828000000000e-10 -1.439633135713e-01 + 5.928000000000e-10 -4.012903718012e-01 + 6.028000000000e-10 -5.490957661747e-01 + 6.128000000000e-10 -6.367354259501e-01 + 6.228000000000e-10 -7.238289911799e-01 + 6.328000000000e-10 -8.030991093312e-01 + 6.428000000000e-10 -8.344987261970e-01 + 6.528000000000e-10 -7.705113506628e-01 + 6.628000000000e-10 -5.555339922038e-01 + 6.728000000000e-10 -2.093472747699e-01 + 6.828000000000e-10 1.439488143392e-01 + 6.928000000000e-10 4.013051006454e-01 + 7.028000000000e-10 5.490813620131e-01 + 7.128000000000e-10 6.367501696447e-01 + 7.228000000000e-10 7.238138408460e-01 + 7.328000000000e-10 8.031138234310e-01 + 7.428000000000e-10 8.344840024625e-01 + 7.528000000000e-10 7.705257750612e-01 + 7.628000000000e-10 5.555193682491e-01 + 7.728000000000e-10 2.093616154732e-01 + 7.828000000000e-10 -1.439618235384e-01 + 7.928000000000e-10 -4.012927107128e-01 + 8.028000000000e-10 -5.490937463184e-01 + 8.128000000000e-10 -6.367380404539e-01 + 8.228000000000e-10 -7.238264478501e-01 + 8.328000000000e-10 -8.031018435980e-01 + 8.428000000000e-10 -8.344959687989e-01 + 8.528000000000e-10 -7.705137100306e-01 + 8.628000000000e-10 -5.555321098787e-01 + 8.728000000000e-10 -2.093489927492e-01 + 8.828000000000e-10 1.439504269532e-01 + 8.928000000000e-10 4.013041525432e-01 + 9.028000000000e-10 5.490824887692e-01 + 9.128000000000e-10 6.367494882502e-01 + 9.228000000000e-10 7.238146944607e-01 + 9.328000000000e-10 8.031131051507e-01 + 9.428000000000e-10 8.344847147049e-01 + 9.528000000000e-10 7.705248067970e-01 + 9.628000000000e-10 5.555207970002e-01 + 9.728000000000e-10 2.093601819839e-01 + 9.828000000000e-10 -1.439605753448e-01 + 9.928000000000e-10 -4.012943342775e-01 + 1.000000000000e-09 -5.158218772706e-01 diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_23/CML_divider.sym b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_23/CML_divider.sym new file mode 100644 index 00000000..e46eb233 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_23/CML_divider.sym @@ -0,0 +1,30 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 -120 -20 -100 -20 {} +L 4 -120 20 -100 20 {} +L 4 100 -20 120 -20 {} +L 4 100 20 120 20 {} +L 7 0 -60 0 -40 {} +L 7 0 40 0 60 {} +B 5 -122.5 -22.5 -117.5 -17.5 {name=Vo+ dir=out} +B 5 -122.5 17.5 -117.5 22.5 {name=Vo- dir=out} +B 5 117.5 -22.5 122.5 -17.5 {name=Vi+ dir=in} +B 5 117.5 17.5 122.5 22.5 {name=Vi- dir=in} +B 5 -2.5 -62.5 2.5 -57.5 {name=vdd dir=inout} +B 5 -2.5 57.5 2.5 62.5 {name=gnd dir=inout} +P 4 5 100 -40 -100 -40 -100 40 100 40 100 -40 {} +T {@symname} -44 -6 0 0 0.3 0.3 {} +T {@name} 45 -52 0 0 0.2 0.2 {} +T {Vo+} -95 -24 0 0 0.2 0.2 {} +T {Vo-} -95 16 0 0 0.2 0.2 {} +T {Vi+} 95 -16 2 0 0.2 0.2 {} +T {Vi-} 95 24 2 0 0.2 0.2 {} +T {vdd} 10 -39 0 1 0.2 0.2 {} +T {gnd} -10 34 2 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_23/conditions.yaml b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_23/conditions.yaml new file mode 100644 index 00000000..4225835a --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_23/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice +N: 23 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: ss +filename: CML_core_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_23 +temperature: '27' +vdd: '1.6' diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_24/.spiceinit b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_24/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_24/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_24/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_24/CML_core_tb.sch new file mode 100644 index 00000000..5eb6d235 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_24/CML_core_tb.sch @@ -0,0 +1,71 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {} +V {} +S {} +E {} +N 740 -940 740 -920 {lab=GND} +N 740 -1090 740 -1060 {lab=VDD} +N 600 -1020 620 -1020 {lab=Vinplus} +N 600 -980 620 -980 {lab=Vinminus} +N 860 -1020 880 -1020 {lab=Voplus} +N 860 -980 880 -980 {lab=Vominus} +N 1150 -850 1150 -820 {lab=VDD} +N 1150 -760 1150 -730 {lab=GND} +N 930 -850 930 -820 {lab=Vinminus} +N 930 -760 930 -730 {lab=GND} +N 720 -850 720 -820 {lab=Vinplus} +N 720 -760 720 -730 {lab=GND} +C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write CML_core_tb.raw +set appendwrite +tran 10p 1n 160p + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_24/CML_core_tb_24.data vo_diff +quit + +.endc +"} +C {opin.sym} 880 -1020 2 1 {name=p6 lab=Voplus} +C {opin.sym} 880 -980 0 0 {name=p9 lab=Vominus} +C {devices/code_shown.sym} 10 -620 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_tt + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice + +.temp 80 +" +} +C {iopin.sym} 740 -1090 0 1 {name=p2 lab=VDD} +C {ipin.sym} 600 -1020 2 1 {name=p4 lab=Vinplus} +C {ipin.sym} 600 -980 2 1 {name=p1 lab=Vinminus} +C {CML_divider.sym} 740 -1000 0 1 {name=x1} +C {vsource.sym} 1150 -790 0 0 {name=V1 value=1.6 savecurrent=false} +C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} +C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} +C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 0.3 10G 0 0 0)" savecurrent=false} +C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 0.3 10G 0 0 180)" savecurrent=false} +C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_24/CML_core_tb_24.data b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_24/CML_core_tb_24.data new file mode 100644 index 00000000..a8519464 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_24/CML_core_tb_24.data @@ -0,0 +1,85 @@ + 1.628000000000e-10 5.405028365217e-01 + 1.728000000000e-10 2.142897527484e-01 + 1.828000000000e-10 -1.231353412434e-01 + 1.928000000000e-10 -3.782847553257e-01 + 2.028000000000e-10 -5.290944707244e-01 + 2.128000000000e-10 -6.207435846591e-01 + 2.228000000000e-10 -7.069850917784e-01 + 2.328000000000e-10 -7.774395392863e-01 + 2.428000000000e-10 -7.982183108700e-01 + 2.528000000000e-10 -7.327456021571e-01 + 2.628000000000e-10 -5.310063164445e-01 + 2.728000000000e-10 -2.063297175293e-01 + 2.828000000000e-10 1.293176468137e-01 + 2.928000000000e-10 3.835270490977e-01 + 3.028000000000e-10 5.333180257023e-01 + 3.128000000000e-10 6.240938619865e-01 + 3.228000000000e-10 7.092802493907e-01 + 3.328000000000e-10 7.789607942300e-01 + 3.428000000000e-10 7.989234313230e-01 + 3.528000000000e-10 7.331763415294e-01 + 3.628000000000e-10 5.312045040772e-01 + 3.728000000000e-10 2.065847902134e-01 + 3.828000000000e-10 -1.291958906021e-01 + 3.928000000000e-10 -3.833411283085e-01 + 4.028000000000e-10 -5.332389173297e-01 + 4.128000000000e-10 -6.239588708494e-01 + 4.228000000000e-10 -7.092541595355e-01 + 4.328000000000e-10 -7.788766619073e-01 + 4.428000000000e-10 -7.989439817890e-01 + 4.528000000000e-10 -7.331237184970e-01 + 4.628000000000e-10 -5.312431858800e-01 + 4.728000000000e-10 -2.065354720445e-01 + 4.828000000000e-10 1.291604530900e-01 + 4.928000000000e-10 3.833851407049e-01 + 5.028000000000e-10 5.332033925163e-01 + 5.128000000000e-10 6.240009303805e-01 + 5.228000000000e-10 7.092156296740e-01 + 5.328000000000e-10 7.789178950697e-01 + 5.428000000000e-10 7.989050835748e-01 + 5.528000000000e-10 7.331635644704e-01 + 5.628000000000e-10 5.312038508238e-01 + 5.728000000000e-10 2.065745538625e-01 + 5.828000000000e-10 -1.291960705945e-01 + 5.928000000000e-10 -3.833509278886e-01 + 6.028000000000e-10 -5.332368573592e-01 + 6.128000000000e-10 -6.239679712691e-01 + 6.228000000000e-10 -7.092497084655e-01 + 6.328000000000e-10 -7.788845366535e-01 + 6.428000000000e-10 -7.989377629672e-01 + 6.528000000000e-10 -7.331298791234e-01 + 6.628000000000e-10 -5.312385744549e-01 + 6.728000000000e-10 -2.065399094583e-01 + 6.828000000000e-10 1.291646812354e-01 + 6.928000000000e-10 3.833822988637e-01 + 7.028000000000e-10 5.332062833028e-01 + 7.128000000000e-10 6.239988652624e-01 + 7.228000000000e-10 7.092181343784e-01 + 7.328000000000e-10 7.789155267181e-01 + 7.428000000000e-10 7.989074545455e-01 + 7.528000000000e-10 7.331605295450e-01 + 7.628000000000e-10 5.312080087648e-01 + 7.728000000000e-10 2.065705039315e-01 + 7.828000000000e-10 -1.291926212165e-01 + 7.928000000000e-10 -3.833551733065e-01 + 8.028000000000e-10 -5.332328436976e-01 + 8.128000000000e-10 -6.239725200032e-01 + 8.228000000000e-10 -7.092452956008e-01 + 8.328000000000e-10 -7.788891439389e-01 + 8.428000000000e-10 -7.989331916474e-01 + 8.528000000000e-10 -7.331340451631e-01 + 8.628000000000e-10 -5.312350772815e-01 + 8.728000000000e-10 -2.065433053799e-01 + 8.828000000000e-10 1.291679984852e-01 + 8.928000000000e-10 3.833797175156e-01 + 9.028000000000e-10 5.332088978421e-01 + 9.128000000000e-10 6.239966795455e-01 + 9.228000000000e-10 7.092206518532e-01 + 9.328000000000e-10 7.789132522577e-01 + 9.428000000000e-10 7.989096829455e-01 + 9.528000000000e-10 7.331579091452e-01 + 9.628000000000e-10 5.312112407565e-01 + 9.728000000000e-10 2.065672983353e-01 + 9.828000000000e-10 -1.291898675297e-01 + 9.928000000000e-10 -3.833583124064e-01 + 1.000000000000e-09 -4.991705375338e-01 diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_24/CML_divider.sym b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_24/CML_divider.sym new file mode 100644 index 00000000..e46eb233 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_24/CML_divider.sym @@ -0,0 +1,30 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 -120 -20 -100 -20 {} +L 4 -120 20 -100 20 {} +L 4 100 -20 120 -20 {} +L 4 100 20 120 20 {} +L 7 0 -60 0 -40 {} +L 7 0 40 0 60 {} +B 5 -122.5 -22.5 -117.5 -17.5 {name=Vo+ dir=out} +B 5 -122.5 17.5 -117.5 22.5 {name=Vo- dir=out} +B 5 117.5 -22.5 122.5 -17.5 {name=Vi+ dir=in} +B 5 117.5 17.5 122.5 22.5 {name=Vi- dir=in} +B 5 -2.5 -62.5 2.5 -57.5 {name=vdd dir=inout} +B 5 -2.5 57.5 2.5 62.5 {name=gnd dir=inout} +P 4 5 100 -40 -100 -40 -100 40 100 40 100 -40 {} +T {@symname} -44 -6 0 0 0.3 0.3 {} +T {@name} 45 -52 0 0 0.2 0.2 {} +T {Vo+} -95 -24 0 0 0.2 0.2 {} +T {Vo-} -95 16 0 0 0.2 0.2 {} +T {Vi+} 95 -16 2 0 0.2 0.2 {} +T {Vi-} 95 24 2 0 0.2 0.2 {} +T {vdd} 10 -39 0 1 0.2 0.2 {} +T {gnd} -10 34 2 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_24/conditions.yaml b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_24/conditions.yaml new file mode 100644 index 00000000..67c930af --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_24/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice +N: 24 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: tt +filename: CML_core_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_24 +temperature: '80' +vdd: '1.6' diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_25/.spiceinit b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_25/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_25/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_25/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_25/CML_core_tb.sch new file mode 100644 index 00000000..b7993f6a --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_25/CML_core_tb.sch @@ -0,0 +1,71 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {} +V {} +S {} +E {} +N 740 -940 740 -920 {lab=GND} +N 740 -1090 740 -1060 {lab=VDD} +N 600 -1020 620 -1020 {lab=Vinplus} +N 600 -980 620 -980 {lab=Vinminus} +N 860 -1020 880 -1020 {lab=Voplus} +N 860 -980 880 -980 {lab=Vominus} +N 1150 -850 1150 -820 {lab=VDD} +N 1150 -760 1150 -730 {lab=GND} +N 930 -850 930 -820 {lab=Vinminus} +N 930 -760 930 -730 {lab=GND} +N 720 -850 720 -820 {lab=Vinplus} +N 720 -760 720 -730 {lab=GND} +C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write CML_core_tb.raw +set appendwrite +tran 10p 1n 160p + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_25/CML_core_tb_25.data vo_diff +quit + +.endc +"} +C {opin.sym} 880 -1020 2 1 {name=p6 lab=Voplus} +C {opin.sym} 880 -980 0 0 {name=p9 lab=Vominus} +C {devices/code_shown.sym} 10 -620 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_ff + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice + +.temp 80 +" +} +C {iopin.sym} 740 -1090 0 1 {name=p2 lab=VDD} +C {ipin.sym} 600 -1020 2 1 {name=p4 lab=Vinplus} +C {ipin.sym} 600 -980 2 1 {name=p1 lab=Vinminus} +C {CML_divider.sym} 740 -1000 0 1 {name=x1} +C {vsource.sym} 1150 -790 0 0 {name=V1 value=1.6 savecurrent=false} +C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} +C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} +C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 0.3 10G 0 0 0)" savecurrent=false} +C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 0.3 10G 0 0 180)" savecurrent=false} +C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_25/CML_core_tb_25.data b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_25/CML_core_tb_25.data new file mode 100644 index 00000000..39c04d30 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_25/CML_core_tb_25.data @@ -0,0 +1,85 @@ + 1.628000000000e-10 5.368449571564e-01 + 1.728000000000e-10 2.154696494615e-01 + 1.828000000000e-10 -1.180750667507e-01 + 1.928000000000e-10 -3.694801437498e-01 + 2.028000000000e-10 -5.157339685643e-01 + 2.128000000000e-10 -6.051803608378e-01 + 2.228000000000e-10 -6.923688047900e-01 + 2.328000000000e-10 -7.627278516708e-01 + 2.428000000000e-10 -7.836324050269e-01 + 2.528000000000e-10 -7.217390774868e-01 + 2.628000000000e-10 -5.258344598842e-01 + 2.728000000000e-10 -2.060622799160e-01 + 2.828000000000e-10 1.253068918672e-01 + 2.928000000000e-10 3.754763463876e-01 + 3.028000000000e-10 5.204513706872e-01 + 3.128000000000e-10 6.088547126517e-01 + 3.228000000000e-10 6.948747427610e-01 + 3.328000000000e-10 7.643967320598e-01 + 3.428000000000e-10 7.844541546789e-01 + 3.528000000000e-10 7.222905371020e-01 + 3.628000000000e-10 5.261436989659e-01 + 3.728000000000e-10 2.064244494061e-01 + 3.828000000000e-10 -1.251087630482e-01 + 3.928000000000e-10 -3.752230316774e-01 + 4.028000000000e-10 -5.203274407129e-01 + 4.128000000000e-10 -6.086807930540e-01 + 4.228000000000e-10 -6.948278459755e-01 + 4.328000000000e-10 -7.642927444658e-01 + 4.428000000000e-10 -7.844689558048e-01 + 4.528000000000e-10 -7.222270537973e-01 + 4.628000000000e-10 -5.261810188038e-01 + 4.728000000000e-10 -2.063649367923e-01 + 4.828000000000e-10 1.250740150254e-01 + 4.928000000000e-10 3.752740624702e-01 + 5.028000000000e-10 5.202917067072e-01 + 5.128000000000e-10 6.087280474834e-01 + 5.228000000000e-10 6.947875493975e-01 + 5.328000000000e-10 7.643381446772e-01 + 5.428000000000e-10 7.844278436925e-01 + 5.528000000000e-10 7.222707134126e-01 + 5.628000000000e-10 5.261386731045e-01 + 5.728000000000e-10 2.064078101390e-01 + 5.828000000000e-10 -1.251125509614e-01 + 5.928000000000e-10 -3.752362786491e-01 + 6.028000000000e-10 -5.203279553884e-01 + 6.128000000000e-10 -6.086920089480e-01 + 6.228000000000e-10 -6.948246280643e-01 + 6.328000000000e-10 -7.643013046090e-01 + 6.428000000000e-10 -7.844633201903e-01 + 6.528000000000e-10 -7.222336042293e-01 + 6.628000000000e-10 -5.261766512068e-01 + 6.728000000000e-10 -2.063691829929e-01 + 6.828000000000e-10 1.250784814444e-01 + 6.928000000000e-10 3.752708432251e-01 + 7.028000000000e-10 5.202949527958e-01 + 7.128000000000e-10 6.087256874770e-01 + 7.228000000000e-10 6.947904319095e-01 + 7.328000000000e-10 7.643352365607e-01 + 7.428000000000e-10 7.844306677783e-01 + 7.528000000000e-10 7.222672114429e-01 + 7.628000000000e-10 5.261433781551e-01 + 7.728000000000e-10 2.064029029490e-01 + 7.828000000000e-10 -1.251089390610e-01 + 7.928000000000e-10 -3.752408867518e-01 + 8.028000000000e-10 -5.203238706374e-01 + 8.128000000000e-10 -6.086968714396e-01 + 8.228000000000e-10 -6.948200705245e-01 + 8.328000000000e-10 -7.643060605343e-01 + 8.428000000000e-10 -7.844586734539e-01 + 8.528000000000e-10 -7.222379683755e-01 + 8.628000000000e-10 -5.261730442965e-01 + 8.728000000000e-10 -2.063725681788e-01 + 8.828000000000e-10 1.250820910423e-01 + 8.928000000000e-10 3.752680406761e-01 + 9.028000000000e-10 5.202978581562e-01 + 9.128000000000e-10 6.087233210610e-01 + 9.228000000000e-10 6.947932359489e-01 + 9.328000000000e-10 7.643326365950e-01 + 9.428000000000e-10 7.844331791786e-01 + 9.528000000000e-10 7.222642751837e-01 + 9.628000000000e-10 5.261469613157e-01 + 9.728000000000e-10 2.063991803079e-01 + 9.828000000000e-10 -1.251060220915e-01 + 9.928000000000e-10 -3.752443155305e-01 + 1.000000000000e-09 -4.875704709340e-01 diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_25/CML_divider.sym b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_25/CML_divider.sym new file mode 100644 index 00000000..e46eb233 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_25/CML_divider.sym @@ -0,0 +1,30 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 -120 -20 -100 -20 {} +L 4 -120 20 -100 20 {} +L 4 100 -20 120 -20 {} +L 4 100 20 120 20 {} +L 7 0 -60 0 -40 {} +L 7 0 40 0 60 {} +B 5 -122.5 -22.5 -117.5 -17.5 {name=Vo+ dir=out} +B 5 -122.5 17.5 -117.5 22.5 {name=Vo- dir=out} +B 5 117.5 -22.5 122.5 -17.5 {name=Vi+ dir=in} +B 5 117.5 17.5 122.5 22.5 {name=Vi- dir=in} +B 5 -2.5 -62.5 2.5 -57.5 {name=vdd dir=inout} +B 5 -2.5 57.5 2.5 62.5 {name=gnd dir=inout} +P 4 5 100 -40 -100 -40 -100 40 100 40 100 -40 {} +T {@symname} -44 -6 0 0 0.3 0.3 {} +T {@name} 45 -52 0 0 0.2 0.2 {} +T {Vo+} -95 -24 0 0 0.2 0.2 {} +T {Vo-} -95 16 0 0 0.2 0.2 {} +T {Vi+} 95 -16 2 0 0.2 0.2 {} +T {Vi-} 95 24 2 0 0.2 0.2 {} +T {vdd} 10 -39 0 1 0.2 0.2 {} +T {gnd} -10 34 2 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_25/conditions.yaml b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_25/conditions.yaml new file mode 100644 index 00000000..cba761bd --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_25/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice +N: 25 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: ff +filename: CML_core_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_25 +temperature: '80' +vdd: '1.6' diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_26/.spiceinit b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_26/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_26/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_26/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_26/CML_core_tb.sch new file mode 100644 index 00000000..3cfb1a1d --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_26/CML_core_tb.sch @@ -0,0 +1,71 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {} +V {} +S {} +E {} +N 740 -940 740 -920 {lab=GND} +N 740 -1090 740 -1060 {lab=VDD} +N 600 -1020 620 -1020 {lab=Vinplus} +N 600 -980 620 -980 {lab=Vinminus} +N 860 -1020 880 -1020 {lab=Voplus} +N 860 -980 880 -980 {lab=Vominus} +N 1150 -850 1150 -820 {lab=VDD} +N 1150 -760 1150 -730 {lab=GND} +N 930 -850 930 -820 {lab=Vinminus} +N 930 -760 930 -730 {lab=GND} +N 720 -850 720 -820 {lab=Vinplus} +N 720 -760 720 -730 {lab=GND} +C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write CML_core_tb.raw +set appendwrite +tran 10p 1n 160p + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_26/CML_core_tb_26.data vo_diff +quit + +.endc +"} +C {opin.sym} 880 -1020 2 1 {name=p6 lab=Voplus} +C {opin.sym} 880 -980 0 0 {name=p9 lab=Vominus} +C {devices/code_shown.sym} 10 -620 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_ss + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice + +.temp 80 +" +} +C {iopin.sym} 740 -1090 0 1 {name=p2 lab=VDD} +C {ipin.sym} 600 -1020 2 1 {name=p4 lab=Vinplus} +C {ipin.sym} 600 -980 2 1 {name=p1 lab=Vinminus} +C {CML_divider.sym} 740 -1000 0 1 {name=x1} +C {vsource.sym} 1150 -790 0 0 {name=V1 value=1.6 savecurrent=false} +C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} +C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} +C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 0.3 10G 0 0 0)" savecurrent=false} +C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 0.3 10G 0 0 180)" savecurrent=false} +C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_26/CML_core_tb_26.data b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_26/CML_core_tb_26.data new file mode 100644 index 00000000..894f4c67 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_26/CML_core_tb_26.data @@ -0,0 +1,85 @@ + 1.628000000000e-10 5.436948212736e-01 + 1.728000000000e-10 2.205877879634e-01 + 1.828000000000e-10 -1.163348151974e-01 + 1.928000000000e-10 -3.771420921807e-01 + 2.028000000000e-10 -5.370108455130e-01 + 2.128000000000e-10 -6.331888427572e-01 + 2.228000000000e-10 -7.164762236683e-01 + 2.328000000000e-10 -7.851286946760e-01 + 2.428000000000e-10 -8.059531868761e-01 + 2.528000000000e-10 -7.384564800459e-01 + 2.628000000000e-10 -5.363144999221e-01 + 2.728000000000e-10 -2.144637665285e-01 + 2.828000000000e-10 1.212929793685e-01 + 2.928000000000e-10 3.815418180812e-01 + 3.028000000000e-10 5.406606883043e-01 + 3.128000000000e-10 6.361475176918e-01 + 3.228000000000e-10 7.185360719894e-01 + 3.328000000000e-10 7.865091736067e-01 + 3.428000000000e-10 8.065713749450e-01 + 3.528000000000e-10 7.387921596039e-01 + 3.628000000000e-10 5.364259512539e-01 + 3.728000000000e-10 2.146317863835e-01 + 3.828000000000e-10 -1.212295238309e-01 + 3.928000000000e-10 -3.814110096077e-01 + 4.028000000000e-10 -5.406166203788e-01 + 4.128000000000e-10 -6.360467438854e-01 + 4.228000000000e-10 -7.185257686739e-01 + 4.328000000000e-10 -7.864422304189e-01 + 4.428000000000e-10 -8.065937411296e-01 + 4.528000000000e-10 -7.387487319623e-01 + 4.628000000000e-10 -5.364619855530e-01 + 4.728000000000e-10 -2.145913861363e-01 + 4.828000000000e-10 1.211959412322e-01 + 4.928000000000e-10 3.814481551476e-01 + 5.028000000000e-10 5.405833390120e-01 + 5.128000000000e-10 6.360831449777e-01 + 5.228000000000e-10 7.184907253890e-01 + 5.328000000000e-10 7.864786648334e-01 + 5.428000000000e-10 8.065585198321e-01 + 5.528000000000e-10 7.387840006966e-01 + 5.628000000000e-10 5.364270346085e-01 + 5.728000000000e-10 2.146260338484e-01 + 5.828000000000e-10 -1.212277001077e-01 + 5.928000000000e-10 -3.814182410321e-01 + 6.028000000000e-10 -5.406130595607e-01 + 6.128000000000e-10 -6.360540210765e-01 + 6.228000000000e-10 -7.185209180994e-01 + 6.328000000000e-10 -7.864492678158e-01 + 6.428000000000e-10 -8.065874846616e-01 + 6.528000000000e-10 -7.387544794760e-01 + 6.628000000000e-10 -5.364572547805e-01 + 6.728000000000e-10 -2.145959871001e-01 + 6.828000000000e-10 1.211997934696e-01 + 6.928000000000e-10 3.814456726213e-01 + 7.028000000000e-10 5.405857946323e-01 + 7.128000000000e-10 6.360813265814e-01 + 7.228000000000e-10 7.184929266665e-01 + 7.328000000000e-10 7.864767243186e-01 + 7.428000000000e-10 8.065604357181e-01 + 7.528000000000e-10 7.387815158779e-01 + 7.628000000000e-10 5.364303644926e-01 + 7.728000000000e-10 2.146228844142e-01 + 7.828000000000e-10 -1.212245339809e-01 + 7.928000000000e-10 -3.814220075435e-01 + 8.028000000000e-10 -5.406092538148e-01 + 8.128000000000e-10 -6.360581238583e-01 + 8.228000000000e-10 -7.185168954112e-01 + 8.328000000000e-10 -7.864535273883e-01 + 8.428000000000e-10 -8.065831328643e-01 + 8.528000000000e-10 -7.387583532284e-01 + 8.628000000000e-10 -5.364538735708e-01 + 8.728000000000e-10 -2.145992968151e-01 + 8.828000000000e-10 1.212027591883e-01 + 8.928000000000e-10 3.814433789143e-01 + 9.028000000000e-10 5.405880431190e-01 + 9.128000000000e-10 6.360793794818e-01 + 9.228000000000e-10 7.184951630330e-01 + 9.328000000000e-10 7.864747526663e-01 + 9.428000000000e-10 8.065622905723e-01 + 9.528000000000e-10 7.387792872630e-01 + 9.628000000000e-10 5.364330391099e-01 + 9.728000000000e-10 2.146202349236e-01 + 9.828000000000e-10 -1.212220310216e-01 + 9.928000000000e-10 -3.814247853449e-01 + 1.000000000000e-09 -5.040490090913e-01 diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_26/CML_divider.sym b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_26/CML_divider.sym new file mode 100644 index 00000000..e46eb233 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_26/CML_divider.sym @@ -0,0 +1,30 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 -120 -20 -100 -20 {} +L 4 -120 20 -100 20 {} +L 4 100 -20 120 -20 {} +L 4 100 20 120 20 {} +L 7 0 -60 0 -40 {} +L 7 0 40 0 60 {} +B 5 -122.5 -22.5 -117.5 -17.5 {name=Vo+ dir=out} +B 5 -122.5 17.5 -117.5 22.5 {name=Vo- dir=out} +B 5 117.5 -22.5 122.5 -17.5 {name=Vi+ dir=in} +B 5 117.5 17.5 122.5 22.5 {name=Vi- dir=in} +B 5 -2.5 -62.5 2.5 -57.5 {name=vdd dir=inout} +B 5 -2.5 57.5 2.5 62.5 {name=gnd dir=inout} +P 4 5 100 -40 -100 -40 -100 40 100 40 100 -40 {} +T {@symname} -44 -6 0 0 0.3 0.3 {} +T {@name} 45 -52 0 0 0.2 0.2 {} +T {Vo+} -95 -24 0 0 0.2 0.2 {} +T {Vo-} -95 16 0 0 0.2 0.2 {} +T {Vi+} 95 -16 2 0 0.2 0.2 {} +T {Vi-} 95 24 2 0 0.2 0.2 {} +T {vdd} 10 -39 0 1 0.2 0.2 {} +T {gnd} -10 34 2 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_26/conditions.yaml b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_26/conditions.yaml new file mode 100644 index 00000000..9057abc1 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_26/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice +N: 26 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: ss +filename: CML_core_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/run_26 +temperature: '80' +vdd: '1.6' diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/simulation_summary.csv b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/simulation_summary.csv new file mode 100644 index 00000000..2f5f947b --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/simulation_summary.csv @@ -0,0 +1,28 @@ +run,corner,temperature,vdd,time,vo_diff,frequency,amplitude,voltage_swing +run_00,tt,-40,0.8,"[1.628e-10, 1.728e-10, 1.828e-10, …]","[-2.952e-01, -6.044e-02, 0.182, …]",4.722e+09,0.709,1.418 +run_01,ff,-40,0.8,"[1.628e-10, 1.728e-10, 1.828e-10, …]","[-2.648e-01, -3.672e-02, 0.198, …]",4.722e+09,0.693,1.386 +run_02,ss,-40,0.8,"[1.628e-10, 1.728e-10, 1.828e-10, …]","[-3.227e-01, -8.540e-02, 0.161, …]",4.722e+09,0.722,1.444 +run_03,tt,27,0.8,"[1.628e-10, 1.728e-10, 1.828e-10, …]","[-2.752e-01, -5.371e-02, 0.179, …]",4.722e+09,0.692,1.383 +run_04,ff,27,0.8,"[1.628e-10, 1.728e-10, 1.828e-10, …]","[-2.482e-01, -3.259e-02, 0.193, …]",4.722e+09,0.672,1.345 +run_05,ss,27,0.8,"[1.628e-10, 1.728e-10, 1.828e-10, …]","[-3.027e-01, -8.046e-02, 0.156, …]",4.722e+09,0.706,1.412 +run_06,tt,80,0.8,"[1.628e-10, 1.728e-10, 1.828e-10, …]","[-2.659e-01, -5.659e-02, 0.167, …]",4.722e+09,0.669,1.338 +run_07,ff,80,0.8,"[1.628e-10, 1.728e-10, 1.828e-10, …]","[-2.411e-01, -3.745e-02, 0.179, …]",4.722e+09,0.648,1.295 +run_08,ss,80,0.8,"[1.628e-10, 1.728e-10, 1.828e-10, …]","[-2.916e-01, -8.207e-02, 0.144, …]",4.722e+09,0.685,1.371 +run_09,tt,-40,1.2,"[1.628e-10, 1.728e-10, 1.828e-10, …]","[-5.397e-01, -2.046e-01, 0.131, …]",4.722e+09,0.807,1.614 +run_10,ff,-40,1.2,"[1.628e-10, 1.728e-10, 1.828e-10, …]","[-5.293e-01, -2.034e-01, 0.125, …]",4.722e+09,0.789,1.577 +run_11,ss,-40,1.2,"[1.628e-10, 1.728e-10, 1.828e-10, …]","[-5.474e-01, -2.088e-01, 0.131, …]",4.722e+09,0.819,1.638 +run_12,tt,27,1.2,"[1.628e-10, 1.728e-10, 1.828e-10, …]","[-5.050e-01, -1.958e-01, 0.120, …]",4.722e+09,0.771,1.543 +run_13,ff,27,1.2,"[1.628e-10, 1.728e-10, 1.828e-10, …]","[-4.935e-01, -1.929e-01, 0.116, …]",4.722e+09,0.753,1.505 +run_14,ss,27,1.2,"[1.628e-10, 1.728e-10, 1.828e-10, …]","[-5.133e-01, -2.032e-01, 0.114, …]",4.722e+09,0.783,1.566 +run_15,tt,80,1.2,"[1.628e-10, 1.728e-10, 1.828e-10, …]","[-4.765e-01, -1.934e-01, 0.103, …]",4.722e+09,0.743,1.486 +run_16,ff,80,1.2,"[1.628e-10, 1.728e-10, 1.828e-10, …]","[-4.643e-01, -1.890e-01, 0.101, …]",4.722e+09,0.725,1.450 +run_17,ss,80,1.2,"[1.628e-10, 1.728e-10, 1.828e-10, …]","[-4.853e-01, -2.024e-01, 9.500e-02, …]",4.722e+09,0.755,1.510 +run_18,tt,-40,1.6,"[1.628e-10, 1.728e-10, 1.828e-10, …]","[0.575, 0.203, -1.640e-01, …]",4.722e+09,0.851,1.702 +run_19,ff,-40,1.6,"[1.628e-10, 1.728e-10, 1.828e-10, …]","[0.571, 0.205, -1.568e-01, …]",4.722e+09,0.836,1.672 +run_20,ss,-40,1.6,"[1.628e-10, 1.728e-10, 1.828e-10, …]","[0.579, 0.208, -1.623e-01, …]",4.722e+09,0.860,1.720 +run_21,tt,27,1.6,"[1.628e-10, 1.728e-10, 1.828e-10, …]","[0.557, 0.208, -1.460e-01, …]",4.722e+09,0.826,1.653 +run_22,ff,27,1.6,"[1.628e-10, 1.728e-10, 1.828e-10, …]","[0.554, 0.209, -1.400e-01, …]",4.722e+09,0.812,1.624 +run_23,ss,27,1.6,"[1.628e-10, 1.728e-10, 1.828e-10, …]","[0.561, 0.214, -1.407e-01, …]",4.722e+09,0.834,1.669 +run_24,tt,80,1.6,"[1.628e-10, 1.728e-10, 1.828e-10, …]","[0.541, 0.214, -1.231e-01, …]",4.722e+09,0.799,1.598 +run_25,ff,80,1.6,"[1.628e-10, 1.728e-10, 1.828e-10, …]","[0.537, 0.215, -1.181e-01, …]",4.722e+09,0.784,1.569 +run_26,ss,80,1.6,"[1.628e-10, 1.728e-10, 1.828e-10, …]","[0.544, 0.221, -1.163e-01, …]",4.722e+09,0.807,1.613 diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/simulation_summary.md b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/simulation_summary.md new file mode 100644 index 00000000..6401031e --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/simulation_summary.md @@ -0,0 +1,31 @@ +# Simulation Summary for CML divider frequency response + +| run | corner | temperature | vdd | time | vo_diff | frequency | amplitude | voltage_swing | +| :-- | -----: | ----------: | --: | ---: | ------: | --------: | --------: | ------------: | +| run_00 | tt | -40 | 0.8 | [1.628e-10, 1.728e-10, 1.828e-10, …] | [-2.952e-01, -6.044e-02, 0.182, …] | 4.722e+09 | 0.709 | 1.418 | +| run_01 | ff | -40 | 0.8 | [1.628e-10, 1.728e-10, 1.828e-10, …] | [-2.648e-01, -3.672e-02, 0.198, …] | 4.722e+09 | 0.693 | 1.386 | +| run_02 | ss | -40 | 0.8 | [1.628e-10, 1.728e-10, 1.828e-10, …] | [-3.227e-01, -8.540e-02, 0.161, …] | 4.722e+09 | 0.722 | 1.444 | +| run_03 | tt | 27 | 0.8 | [1.628e-10, 1.728e-10, 1.828e-10, …] | [-2.752e-01, -5.371e-02, 0.179, …] | 4.722e+09 | 0.692 | 1.383 | +| run_04 | ff | 27 | 0.8 | [1.628e-10, 1.728e-10, 1.828e-10, …] | [-2.482e-01, -3.259e-02, 0.193, …] | 4.722e+09 | 0.672 | 1.345 | +| run_05 | ss | 27 | 0.8 | [1.628e-10, 1.728e-10, 1.828e-10, …] | [-3.027e-01, -8.046e-02, 0.156, …] | 4.722e+09 | 0.706 | 1.412 | +| run_06 | tt | 80 | 0.8 | [1.628e-10, 1.728e-10, 1.828e-10, …] | [-2.659e-01, -5.659e-02, 0.167, …] | 4.722e+09 | 0.669 | 1.338 | +| run_07 | ff | 80 | 0.8 | [1.628e-10, 1.728e-10, 1.828e-10, …] | [-2.411e-01, -3.745e-02, 0.179, …] | 4.722e+09 | 0.648 | 1.295 | +| run_08 | ss | 80 | 0.8 | [1.628e-10, 1.728e-10, 1.828e-10, …] | [-2.916e-01, -8.207e-02, 0.144, …] | 4.722e+09 | 0.685 | 1.371 | +| run_09 | tt | -40 | 1.2 | [1.628e-10, 1.728e-10, 1.828e-10, …] | [-5.397e-01, -2.046e-01, 0.131, …] | 4.722e+09 | 0.807 | 1.614 | +| run_10 | ff | -40 | 1.2 | [1.628e-10, 1.728e-10, 1.828e-10, …] | [-5.293e-01, -2.034e-01, 0.125, …] | 4.722e+09 | 0.789 | 1.577 | +| run_11 | ss | -40 | 1.2 | [1.628e-10, 1.728e-10, 1.828e-10, …] | [-5.474e-01, -2.088e-01, 0.131, …] | 4.722e+09 | 0.819 | 1.638 | +| run_12 | tt | 27 | 1.2 | [1.628e-10, 1.728e-10, 1.828e-10, …] | [-5.050e-01, -1.958e-01, 0.120, …] | 4.722e+09 | 0.771 | 1.543 | +| run_13 | ff | 27 | 1.2 | [1.628e-10, 1.728e-10, 1.828e-10, …] | [-4.935e-01, -1.929e-01, 0.116, …] | 4.722e+09 | 0.753 | 1.505 | +| run_14 | ss | 27 | 1.2 | [1.628e-10, 1.728e-10, 1.828e-10, …] | [-5.133e-01, -2.032e-01, 0.114, …] | 4.722e+09 | 0.783 | 1.566 | +| run_15 | tt | 80 | 1.2 | [1.628e-10, 1.728e-10, 1.828e-10, …] | [-4.765e-01, -1.934e-01, 0.103, …] | 4.722e+09 | 0.743 | 1.486 | +| run_16 | ff | 80 | 1.2 | [1.628e-10, 1.728e-10, 1.828e-10, …] | [-4.643e-01, -1.890e-01, 0.101, …] | 4.722e+09 | 0.725 | 1.450 | +| run_17 | ss | 80 | 1.2 | [1.628e-10, 1.728e-10, 1.828e-10, …] | [-4.853e-01, -2.024e-01, 9.500e-02, …] | 4.722e+09 | 0.755 | 1.510 | +| run_18 | tt | -40 | 1.6 | [1.628e-10, 1.728e-10, 1.828e-10, …] | [0.575, 0.203, -1.640e-01, …] | 4.722e+09 | 0.851 | 1.702 | +| run_19 | ff | -40 | 1.6 | [1.628e-10, 1.728e-10, 1.828e-10, …] | [0.571, 0.205, -1.568e-01, …] | 4.722e+09 | 0.836 | 1.672 | +| run_20 | ss | -40 | 1.6 | [1.628e-10, 1.728e-10, 1.828e-10, …] | [0.579, 0.208, -1.623e-01, …] | 4.722e+09 | 0.860 | 1.720 | +| run_21 | tt | 27 | 1.6 | [1.628e-10, 1.728e-10, 1.828e-10, …] | [0.557, 0.208, -1.460e-01, …] | 4.722e+09 | 0.826 | 1.653 | +| run_22 | ff | 27 | 1.6 | [1.628e-10, 1.728e-10, 1.828e-10, …] | [0.554, 0.209, -1.400e-01, …] | 4.722e+09 | 0.812 | 1.624 | +| run_23 | ss | 27 | 1.6 | [1.628e-10, 1.728e-10, 1.828e-10, …] | [0.561, 0.214, -1.407e-01, …] | 4.722e+09 | 0.834 | 1.669 | +| run_24 | tt | 80 | 1.6 | [1.628e-10, 1.728e-10, 1.828e-10, …] | [0.541, 0.214, -1.231e-01, …] | 4.722e+09 | 0.799 | 1.598 | +| run_25 | ff | 80 | 1.6 | [1.628e-10, 1.728e-10, 1.828e-10, …] | [0.537, 0.215, -1.181e-01, …] | 4.722e+09 | 0.784 | 1.569 | +| run_26 | ss | 80 | 1.6 | [1.628e-10, 1.728e-10, 1.828e-10, …] | [0.544, 0.221, -1.163e-01, …] | 4.722e+09 | 0.807 | 1.613 | diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/vo_diff_vs_time.png b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/vo_diff_vs_time.png new file mode 100644 index 00000000..64d1b808 Binary files /dev/null and b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/parameters/ac_params/vo_diff_vs_time.png differ diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/summary.md b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/summary.md new file mode 100644 index 00000000..a11c2c65 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-40-01/summary.md @@ -0,0 +1,11 @@ + +# CACE Summary for CML_divider + +**netlist source**: schematic + +| Parameter | Tool | Result | Min Limit | Min Value | Typ Target | Typ Value | Max Limit | Max Value | Status | +| :------------------- | :------------------- | :-------------- | ---------: | -----------: | ---------: | -----------: | ---------: | -----------: | :------: | +| Frequency | ngspice | frequency | 4.3 GHz | 4.722 GHz | 5.0 GHz | 4.722 GHz | 5.2 GHz | 4.722 GHz | Pass ✅ | +| Amplitude | ngspice | amplitude | 0.2 V | 0.648 V | 0.4 V | 0.771 V | 0.6 V | 0.860 V | Fail ❌ | +| Voltage swing | ngspice | voltage_swing | 0.4 V | 1.295 V | 0.8 V | 1.543 V | 1.2 V | 1.720 V | Fail ❌ | + diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/CML_core_tb.sch new file mode 100644 index 00000000..4f2cfbbf --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/CML_core_tb.sch @@ -0,0 +1,73 @@ +v {xschem version=3.4.8RC file_version=1.3} +G {} +K {} +V {} +S {} +F {} +E {} +N 740 -940 740 -920 {lab=GND} +N 740 -1090 740 -1060 {lab=VDD} +N 600 -1020 620 -1020 {lab=Vinplus} +N 600 -980 620 -980 {lab=Vinminus} +N 860 -1020 880 -1020 {lab=Voplus} +N 860 -980 880 -980 {lab=Vominus} +N 1150 -850 1150 -820 {lab=VDD} +N 1150 -760 1150 -730 {lab=GND} +N 930 -850 930 -820 {lab=Vinminus} +N 930 -760 930 -730 {lab=GND} +N 720 -850 720 -820 {lab=Vinplus} +N 720 -760 720 -730 {lab=GND} +C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.param A=0.3 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write CML_core_tb.raw +set appendwrite +tran 10p 1n 160p + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata CACE\{simpath\}/CACE\{filename\}_CACE\{N\}.data vo_diff +quit + +.endc +"} +C {opin.sym} 880 -1020 2 1 {name=p6 lab=Voplus} +C {opin.sym} 880 -980 0 0 {name=p9 lab=Vominus} +C {devices/code_shown.sym} 10 -620 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib CACE\{PDK_ROOT\}/CACE\{PDK\}/libs.tech/ngspice/models/cornerMOSlv.lib mos_CACE\{corner\} + +.include CACE\{DUT_path\} + +.temp CACE\{temperature\} +" +} +C {iopin.sym} 740 -1090 0 1 {name=p2 lab=VDD} +C {ipin.sym} 600 -1020 2 1 {name=p4 lab=Vinplus} +C {ipin.sym} 600 -980 2 1 {name=p1 lab=Vinminus} +C {CML_divider.sym} 740 -1000 0 1 {name=x1} +C {vsource.sym} 1150 -790 0 0 {name=V1 value=CACE\{vdd\} savecurrent=false} +C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} +C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} +C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 A 10G 0 0 0)" savecurrent=false} +C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 A 10G 0 0 180)" savecurrent=false} +C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_00/.spiceinit b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_00/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_00/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_00/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_00/CML_core_tb.sch new file mode 100644 index 00000000..8da9de98 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_00/CML_core_tb.sch @@ -0,0 +1,73 @@ +v {xschem version=3.4.8RC file_version=1.3} +G {} +K {} +V {} +S {} +F {} +E {} +N 740 -940 740 -920 {lab=GND} +N 740 -1090 740 -1060 {lab=VDD} +N 600 -1020 620 -1020 {lab=Vinplus} +N 600 -980 620 -980 {lab=Vinminus} +N 860 -1020 880 -1020 {lab=Voplus} +N 860 -980 880 -980 {lab=Vominus} +N 1150 -850 1150 -820 {lab=VDD} +N 1150 -760 1150 -730 {lab=GND} +N 930 -850 930 -820 {lab=Vinminus} +N 930 -760 930 -730 {lab=GND} +N 720 -850 720 -820 {lab=Vinplus} +N 720 -760 720 -730 {lab=GND} +C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.param A=0.3 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write CML_core_tb.raw +set appendwrite +tran 10p 1n 160p + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_00/CML_core_tb_0.data vo_diff +quit + +.endc +"} +C {opin.sym} 880 -1020 2 1 {name=p6 lab=Voplus} +C {opin.sym} 880 -980 0 0 {name=p9 lab=Vominus} +C {devices/code_shown.sym} 10 -620 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_tt + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice + +.temp -40 +" +} +C {iopin.sym} 740 -1090 0 1 {name=p2 lab=VDD} +C {ipin.sym} 600 -1020 2 1 {name=p4 lab=Vinplus} +C {ipin.sym} 600 -980 2 1 {name=p1 lab=Vinminus} +C {CML_divider.sym} 740 -1000 0 1 {name=x1} +C {vsource.sym} 1150 -790 0 0 {name=V1 value=0.8 savecurrent=false} +C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} +C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} +C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 A 10G 0 0 0)" savecurrent=false} +C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 A 10G 0 0 180)" savecurrent=false} +C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_00/CML_core_tb_0.data b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_00/CML_core_tb_0.data new file mode 100644 index 00000000..f59ab2f0 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_00/CML_core_tb_0.data @@ -0,0 +1,85 @@ + 1.628000000000e-10 -2.952325246460e-01 + 1.728000000000e-10 -6.043942197180e-02 + 1.828000000000e-10 1.817064006719e-01 + 1.928000000000e-10 3.985392356515e-01 + 2.028000000000e-10 5.562505249699e-01 + 2.128000000000e-10 6.572874178466e-01 + 2.228000000000e-10 7.087352858161e-01 + 2.328000000000e-10 7.029522511861e-01 + 2.428000000000e-10 6.344368312078e-01 + 2.528000000000e-10 5.013241237787e-01 + 2.628000000000e-10 3.030080742176e-01 + 2.728000000000e-10 6.578821975768e-02 + 2.828000000000e-10 -1.781586778972e-01 + 2.928000000000e-10 -3.964040373442e-01 + 3.028000000000e-10 -5.555461653242e-01 + 3.128000000000e-10 -6.571022283471e-01 + 3.228000000000e-10 -7.092808909864e-01 + 3.328000000000e-10 -7.040843150938e-01 + 3.428000000000e-10 -6.362469325195e-01 + 3.528000000000e-10 -5.032364212786e-01 + 3.628000000000e-10 -3.051350358226e-01 + 3.728000000000e-10 -6.762904380974e-02 + 3.828000000000e-10 1.763878132349e-01 + 3.928000000000e-10 3.951284969670e-01 + 4.028000000000e-10 5.545978983505e-01 + 4.128000000000e-10 6.566315830069e-01 + 4.228000000000e-10 7.089962487465e-01 + 4.328000000000e-10 7.042633111532e-01 + 4.428000000000e-10 6.365365170049e-01 + 4.528000000000e-10 5.037912579488e-01 + 4.628000000000e-10 3.056253251435e-01 + 4.728000000000e-10 6.823087043489e-02 + 4.828000000000e-10 -1.759620590786e-01 + 4.928000000000e-10 -3.946766675460e-01 + 5.028000000000e-10 -5.543918551335e-01 + 5.128000000000e-10 -6.564106038653e-01 + 5.228000000000e-10 -7.089804674794e-01 + 5.328000000000e-10 -7.042284637667e-01 + 5.428000000000e-10 -6.366831677063e-01 + 5.528000000000e-10 -5.038654128054e-01 + 5.628000000000e-10 -3.058301627321e-01 + 5.728000000000e-10 -6.832081314378e-02 + 5.828000000000e-10 1.757744687450e-01 + 5.928000000000e-10 3.946207346164e-01 + 6.028000000000e-10 5.542681653143e-01 + 6.128000000000e-10 6.564162326939e-01 + 6.228000000000e-10 7.089102158365e-01 + 6.328000000000e-10 7.042850183822e-01 + 6.428000000000e-10 6.366586213363e-01 + 6.528000000000e-10 5.039505543903e-01 + 6.628000000000e-10 3.058219717524e-01 + 6.728000000000e-10 6.840961740524e-02 + 6.828000000000e-10 -1.757862033444e-01 + 6.928000000000e-10 -3.945467987447e-01 + 7.028000000000e-10 -5.542929102277e-01 + 7.128000000000e-10 -6.563603422698e-01 + 7.228000000000e-10 -7.089481650220e-01 + 7.328000000000e-10 -7.042424683005e-01 + 7.428000000000e-10 -6.367078290897e-01 + 7.528000000000e-10 -5.039165471509e-01 + 7.628000000000e-10 -3.058753018579e-01 + 7.728000000000e-10 -6.837707225292e-02 + 7.828000000000e-10 1.757345833407e-01 + 7.928000000000e-10 3.945785215449e-01 + 8.028000000000e-10 5.542482652542e-01 + 8.128000000000e-10 6.563959408481e-01 + 8.228000000000e-10 7.089082113076e-01 + 8.328000000000e-10 7.042817797830e-01 + 8.428000000000e-10 6.366719399828e-01 + 8.528000000000e-10 5.039573608246e-01 + 8.628000000000e-10 3.058408732486e-01 + 8.728000000000e-10 6.841772818469e-02 + 8.828000000000e-10 -1.757686495942e-01 + 8.928000000000e-10 -3.945419964750e-01 + 9.028000000000e-10 -5.542809328797e-01 + 9.128000000000e-10 -6.563614885531e-01 + 9.228000000000e-10 -7.089411806967e-01 + 9.328000000000e-10 -7.042479976407e-01 + 9.428000000000e-10 -6.367051444468e-01 + 9.528000000000e-10 -5.039245834310e-01 + 9.628000000000e-10 -3.058742220339e-01 + 9.728000000000e-10 -6.838526492008e-02 + 9.828000000000e-10 1.757358039920e-01 + 9.928000000000e-10 3.945718167364e-01 + 1.000000000000e-09 5.155910006549e-01 diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_00/CML_divider.sym b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_00/CML_divider.sym new file mode 100644 index 00000000..e46eb233 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_00/CML_divider.sym @@ -0,0 +1,30 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 -120 -20 -100 -20 {} +L 4 -120 20 -100 20 {} +L 4 100 -20 120 -20 {} +L 4 100 20 120 20 {} +L 7 0 -60 0 -40 {} +L 7 0 40 0 60 {} +B 5 -122.5 -22.5 -117.5 -17.5 {name=Vo+ dir=out} +B 5 -122.5 17.5 -117.5 22.5 {name=Vo- dir=out} +B 5 117.5 -22.5 122.5 -17.5 {name=Vi+ dir=in} +B 5 117.5 17.5 122.5 22.5 {name=Vi- dir=in} +B 5 -2.5 -62.5 2.5 -57.5 {name=vdd dir=inout} +B 5 -2.5 57.5 2.5 62.5 {name=gnd dir=inout} +P 4 5 100 -40 -100 -40 -100 40 100 40 100 -40 {} +T {@symname} -44 -6 0 0 0.3 0.3 {} +T {@name} 45 -52 0 0 0.2 0.2 {} +T {Vo+} -95 -24 0 0 0.2 0.2 {} +T {Vo-} -95 16 0 0 0.2 0.2 {} +T {Vi+} 95 -16 2 0 0.2 0.2 {} +T {Vi-} 95 24 2 0 0.2 0.2 {} +T {vdd} 10 -39 0 1 0.2 0.2 {} +T {gnd} -10 34 2 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_00/conditions.yaml b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_00/conditions.yaml new file mode 100644 index 00000000..92224cf6 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_00/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice +N: 0 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: tt +filename: CML_core_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_00 +temperature: '-40' +vdd: '0.8' diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_01/.spiceinit b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_01/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_01/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_01/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_01/CML_core_tb.sch new file mode 100644 index 00000000..a33acfdf --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_01/CML_core_tb.sch @@ -0,0 +1,73 @@ +v {xschem version=3.4.8RC file_version=1.3} +G {} +K {} +V {} +S {} +F {} +E {} +N 740 -940 740 -920 {lab=GND} +N 740 -1090 740 -1060 {lab=VDD} +N 600 -1020 620 -1020 {lab=Vinplus} +N 600 -980 620 -980 {lab=Vinminus} +N 860 -1020 880 -1020 {lab=Voplus} +N 860 -980 880 -980 {lab=Vominus} +N 1150 -850 1150 -820 {lab=VDD} +N 1150 -760 1150 -730 {lab=GND} +N 930 -850 930 -820 {lab=Vinminus} +N 930 -760 930 -730 {lab=GND} +N 720 -850 720 -820 {lab=Vinplus} +N 720 -760 720 -730 {lab=GND} +C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.param A=0.3 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write CML_core_tb.raw +set appendwrite +tran 10p 1n 160p + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_01/CML_core_tb_1.data vo_diff +quit + +.endc +"} +C {opin.sym} 880 -1020 2 1 {name=p6 lab=Voplus} +C {opin.sym} 880 -980 0 0 {name=p9 lab=Vominus} +C {devices/code_shown.sym} 10 -620 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_ff + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice + +.temp -40 +" +} +C {iopin.sym} 740 -1090 0 1 {name=p2 lab=VDD} +C {ipin.sym} 600 -1020 2 1 {name=p4 lab=Vinplus} +C {ipin.sym} 600 -980 2 1 {name=p1 lab=Vinminus} +C {CML_divider.sym} 740 -1000 0 1 {name=x1} +C {vsource.sym} 1150 -790 0 0 {name=V1 value=0.8 savecurrent=false} +C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} +C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} +C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 A 10G 0 0 0)" savecurrent=false} +C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 A 10G 0 0 180)" savecurrent=false} +C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_01/CML_core_tb_1.data b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_01/CML_core_tb_1.data new file mode 100644 index 00000000..e3f59bbb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_01/CML_core_tb_1.data @@ -0,0 +1,85 @@ + 1.628000000000e-10 -2.647956442563e-01 + 1.728000000000e-10 -3.672466403620e-02 + 1.828000000000e-10 1.978055322165e-01 + 1.928000000000e-10 4.056017943518e-01 + 2.028000000000e-10 5.547344088879e-01 + 2.128000000000e-10 6.487490848065e-01 + 2.228000000000e-10 6.923653634957e-01 + 2.328000000000e-10 6.780886353961e-01 + 2.428000000000e-10 6.039598047192e-01 + 2.528000000000e-10 4.698168410475e-01 + 2.628000000000e-10 2.751260896566e-01 + 2.728000000000e-10 4.430157580525e-02 + 2.828000000000e-10 -1.925038311835e-01 + 2.928000000000e-10 -4.023301580756e-01 + 3.028000000000e-10 -5.533152551341e-01 + 3.128000000000e-10 -6.481954476962e-01 + 3.228000000000e-10 -6.930655672739e-01 + 3.328000000000e-10 -6.800540209913e-01 + 3.428000000000e-10 -6.070129146880e-01 + 3.528000000000e-10 -4.732295235615e-01 + 3.628000000000e-10 -2.788311309623e-01 + 3.728000000000e-10 -4.769207273319e-02 + 3.828000000000e-10 1.893739393662e-01 + 3.928000000000e-10 3.999895682405e-01 + 4.028000000000e-10 5.516914161753e-01 + 4.128000000000e-10 6.473194453459e-01 + 4.228000000000e-10 6.926967113745e-01 + 4.328000000000e-10 6.804409619078e-01 + 4.428000000000e-10 6.077344291363e-01 + 4.528000000000e-10 4.743209278754e-01 + 4.628000000000e-10 2.799315218230e-01 + 4.728000000000e-10 4.887682675205e-02 + 4.828000000000e-10 -1.884058832182e-01 + 4.928000000000e-10 -3.991237321070e-01 + 5.028000000000e-10 -5.511979674959e-01 + 5.128000000000e-10 -6.469402879887e-01 + 5.228000000000e-10 -6.926225993557e-01 + 5.328000000000e-10 -6.804805060919e-01 + 5.428000000000e-10 -6.080204415279e-01 + 5.528000000000e-10 -4.745961817340e-01 + 5.628000000000e-10 -2.803459413605e-01 + 5.728000000000e-10 -4.918721233066e-02 + 5.828000000000e-10 1.880320213273e-01 + 5.928000000000e-10 3.989072784961e-01 + 6.028000000000e-10 5.509784832100e-01 + 6.128000000000e-10 6.468776696433e-01 + 6.228000000000e-10 6.925382949500e-01 + 6.328000000000e-10 6.805520167761e-01 + 6.428000000000e-10 6.080522625696e-01 + 6.528000000000e-10 4.747422384222e-01 + 6.628000000000e-10 2.804194075907e-01 + 6.728000000000e-10 4.934414267878e-02 + 6.828000000000e-10 -1.879699706397e-01 + 6.928000000000e-10 -3.987854446736e-01 + 7.028000000000e-10 -5.509613139230e-01 + 7.128000000000e-10 -6.468062697707e-01 + 7.228000000000e-10 -6.925630874809e-01 + 7.328000000000e-10 -6.805223964692e-01 + 7.428000000000e-10 -6.081132322697e-01 + 7.528000000000e-10 -4.747366406660e-01 + 7.628000000000e-10 -2.804933490724e-01 + 7.728000000000e-10 -4.934235519722e-02 + 7.828000000000e-10 1.879006367827e-01 + 7.928000000000e-10 3.987938070562e-01 + 8.028000000000e-10 5.509093463144e-01 + 8.128000000000e-10 6.468293959909e-01 + 8.228000000000e-10 6.925252291894e-01 + 8.328000000000e-10 6.805590879185e-01 + 8.428000000000e-10 6.080875904937e-01 + 8.528000000000e-10 4.747803907956e-01 + 8.628000000000e-10 2.804721530083e-01 + 8.728000000000e-10 4.938687520288e-02 + 8.828000000000e-10 -1.879222775604e-01 + 8.928000000000e-10 -3.987554695640e-01 + 9.028000000000e-10 -5.509333914335e-01 + 9.128000000000e-10 -6.467969990881e-01 + 9.228000000000e-10 -6.925530415231e-01 + 9.328000000000e-10 -6.805304150604e-01 + 9.428000000000e-10 -6.081187600045e-01 + 9.528000000000e-10 -4.747542418837e-01 + 9.628000000000e-10 -2.805045225795e-01 + 9.728000000000e-10 -4.936125388638e-02 + 9.828000000000e-10 1.878908530872e-01 + 9.928000000000e-10 3.987795364060e-01 + 1.000000000000e-09 5.142017254263e-01 diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_01/CML_divider.sym b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_01/CML_divider.sym new file mode 100644 index 00000000..e46eb233 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_01/CML_divider.sym @@ -0,0 +1,30 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 -120 -20 -100 -20 {} +L 4 -120 20 -100 20 {} +L 4 100 -20 120 -20 {} +L 4 100 20 120 20 {} +L 7 0 -60 0 -40 {} +L 7 0 40 0 60 {} +B 5 -122.5 -22.5 -117.5 -17.5 {name=Vo+ dir=out} +B 5 -122.5 17.5 -117.5 22.5 {name=Vo- dir=out} +B 5 117.5 -22.5 122.5 -17.5 {name=Vi+ dir=in} +B 5 117.5 17.5 122.5 22.5 {name=Vi- dir=in} +B 5 -2.5 -62.5 2.5 -57.5 {name=vdd dir=inout} +B 5 -2.5 57.5 2.5 62.5 {name=gnd dir=inout} +P 4 5 100 -40 -100 -40 -100 40 100 40 100 -40 {} +T {@symname} -44 -6 0 0 0.3 0.3 {} +T {@name} 45 -52 0 0 0.2 0.2 {} +T {Vo+} -95 -24 0 0 0.2 0.2 {} +T {Vo-} -95 16 0 0 0.2 0.2 {} +T {Vi+} 95 -16 2 0 0.2 0.2 {} +T {Vi-} 95 24 2 0 0.2 0.2 {} +T {vdd} 10 -39 0 1 0.2 0.2 {} +T {gnd} -10 34 2 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_01/conditions.yaml b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_01/conditions.yaml new file mode 100644 index 00000000..6f7af265 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_01/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice +N: 1 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: ff +filename: CML_core_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_01 +temperature: '-40' +vdd: '0.8' diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_02/.spiceinit b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_02/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_02/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_02/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_02/CML_core_tb.sch new file mode 100644 index 00000000..df03a06a --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_02/CML_core_tb.sch @@ -0,0 +1,73 @@ +v {xschem version=3.4.8RC file_version=1.3} +G {} +K {} +V {} +S {} +F {} +E {} +N 740 -940 740 -920 {lab=GND} +N 740 -1090 740 -1060 {lab=VDD} +N 600 -1020 620 -1020 {lab=Vinplus} +N 600 -980 620 -980 {lab=Vinminus} +N 860 -1020 880 -1020 {lab=Voplus} +N 860 -980 880 -980 {lab=Vominus} +N 1150 -850 1150 -820 {lab=VDD} +N 1150 -760 1150 -730 {lab=GND} +N 930 -850 930 -820 {lab=Vinminus} +N 930 -760 930 -730 {lab=GND} +N 720 -850 720 -820 {lab=Vinplus} +N 720 -760 720 -730 {lab=GND} +C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.param A=0.3 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write CML_core_tb.raw +set appendwrite +tran 10p 1n 160p + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_02/CML_core_tb_2.data vo_diff +quit + +.endc +"} +C {opin.sym} 880 -1020 2 1 {name=p6 lab=Voplus} +C {opin.sym} 880 -980 0 0 {name=p9 lab=Vominus} +C {devices/code_shown.sym} 10 -620 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_ss + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice + +.temp -40 +" +} +C {iopin.sym} 740 -1090 0 1 {name=p2 lab=VDD} +C {ipin.sym} 600 -1020 2 1 {name=p4 lab=Vinplus} +C {ipin.sym} 600 -980 2 1 {name=p1 lab=Vinminus} +C {CML_divider.sym} 740 -1000 0 1 {name=x1} +C {vsource.sym} 1150 -790 0 0 {name=V1 value=0.8 savecurrent=false} +C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} +C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} +C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 A 10G 0 0 0)" savecurrent=false} +C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 A 10G 0 0 180)" savecurrent=false} +C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_02/CML_core_tb_2.data b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_02/CML_core_tb_2.data new file mode 100644 index 00000000..69b4790a --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_02/CML_core_tb_2.data @@ -0,0 +1,85 @@ + 1.628000000000e-10 -3.226907107526e-01 + 1.728000000000e-10 -8.539968284410e-02 + 1.828000000000e-10 1.614480909662e-01 + 1.928000000000e-10 3.869191924745e-01 + 2.028000000000e-10 5.540483396157e-01 + 2.128000000000e-10 6.620167995175e-01 + 2.228000000000e-10 7.202634748901e-01 + 2.328000000000e-10 7.212523007105e-01 + 2.428000000000e-10 6.566979396260e-01 + 2.528000000000e-10 5.250303609426e-01 + 2.628000000000e-10 3.265092852166e-01 + 2.728000000000e-10 8.707604756771e-02 + 2.828000000000e-10 -1.611600424348e-01 + 2.928000000000e-10 -3.873238626333e-01 + 3.028000000000e-10 -5.550746884823e-01 + 3.128000000000e-10 -6.629366269634e-01 + 3.228000000000e-10 -7.212894794449e-01 + 3.328000000000e-10 -7.220878341254e-01 + 3.428000000000e-10 -6.576651735802e-01 + 3.528000000000e-10 -5.257535323793e-01 + 3.628000000000e-10 -3.273054874384e-01 + 3.728000000000e-10 -8.759901468452e-02 + 3.828000000000e-10 1.605580394287e-01 + 3.928000000000e-10 3.869863823107e-01 + 4.028000000000e-10 5.547303069787e-01 + 4.128000000000e-10 6.628461833305e-01 + 4.228000000000e-10 7.211466820779e-01 + 4.328000000000e-10 7.221995653822e-01 + 4.428000000000e-10 6.577128147927e-01 + 4.528000000000e-10 5.259884868760e-01 + 4.628000000000e-10 3.274163471898e-01 + 4.728000000000e-10 8.784541550780e-02 + 4.828000000000e-10 -1.604682108624e-01 + 4.928000000000e-10 -3.867888973241e-01 + 5.028000000000e-10 -5.547066546217e-01 + 5.128000000000e-10 -6.627253094524e-01 + 5.228000000000e-10 -7.211826888209e-01 + 5.328000000000e-10 -7.221369141817e-01 + 5.428000000000e-10 -6.577994031943e-01 + 5.528000000000e-10 -5.259620192587e-01 + 5.628000000000e-10 -3.275201865204e-01 + 5.728000000000e-10 -8.782404636233e-02 + 5.828000000000e-10 1.603689538405e-01 + 5.928000000000e-10 3.868153343854e-01 + 6.028000000000e-10 5.546284247412e-01 + 6.128000000000e-10 6.627691182366e-01 + 6.228000000000e-10 7.211205707397e-01 + 6.328000000000e-10 7.221945096033e-01 + 6.428000000000e-10 6.577508134366e-01 + 6.528000000000e-10 5.260261908485e-01 + 6.628000000000e-10 3.274760111912e-01 + 6.728000000000e-10 8.788851273294e-02 + 6.828000000000e-10 -1.604138329037e-01 + 6.928000000000e-10 -3.867579820075e-01 + 7.028000000000e-10 -5.546733587088e-01 + 7.128000000000e-10 -6.627166397254e-01 + 7.228000000000e-10 -7.211676696649e-01 + 7.328000000000e-10 -7.221448613305e-01 + 7.428000000000e-10 -6.577993970261e-01 + 7.528000000000e-10 -5.259796511606e-01 + 7.628000000000e-10 -3.275252420812e-01 + 7.728000000000e-10 -8.784270745333e-02 + 7.828000000000e-10 1.603648729372e-01 + 7.928000000000e-10 3.868003178892e-01 + 8.028000000000e-10 5.546284703905e-01 + 8.128000000000e-10 6.627594909397e-01 + 8.228000000000e-10 7.211247368625e-01 + 8.328000000000e-10 7.221884517678e-01 + 8.428000000000e-10 6.577581123739e-01 + 8.528000000000e-10 5.260226393584e-01 + 8.628000000000e-10 3.274844581735e-01 + 8.728000000000e-10 8.788515759553e-02 + 8.828000000000e-10 -1.604054537172e-01 + 8.928000000000e-10 -3.867616376768e-01 + 9.028000000000e-10 -5.546662826942e-01 + 9.128000000000e-10 -6.627215467888e-01 + 9.228000000000e-10 -7.211618152183e-01 + 9.328000000000e-10 -7.221504122635e-01 + 9.428000000000e-10 -6.577943183983e-01 + 9.528000000000e-10 -5.259856282734e-01 + 9.628000000000e-10 -3.275204867996e-01 + 9.728000000000e-10 -8.784851998896e-02 + 9.828000000000e-10 1.603694682536e-01 + 9.928000000000e-10 3.867951846118e-01 + 1.000000000000e-09 5.139507493642e-01 diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_02/CML_divider.sym b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_02/CML_divider.sym new file mode 100644 index 00000000..e46eb233 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_02/CML_divider.sym @@ -0,0 +1,30 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 -120 -20 -100 -20 {} +L 4 -120 20 -100 20 {} +L 4 100 -20 120 -20 {} +L 4 100 20 120 20 {} +L 7 0 -60 0 -40 {} +L 7 0 40 0 60 {} +B 5 -122.5 -22.5 -117.5 -17.5 {name=Vo+ dir=out} +B 5 -122.5 17.5 -117.5 22.5 {name=Vo- dir=out} +B 5 117.5 -22.5 122.5 -17.5 {name=Vi+ dir=in} +B 5 117.5 17.5 122.5 22.5 {name=Vi- dir=in} +B 5 -2.5 -62.5 2.5 -57.5 {name=vdd dir=inout} +B 5 -2.5 57.5 2.5 62.5 {name=gnd dir=inout} +P 4 5 100 -40 -100 -40 -100 40 100 40 100 -40 {} +T {@symname} -44 -6 0 0 0.3 0.3 {} +T {@name} 45 -52 0 0 0.2 0.2 {} +T {Vo+} -95 -24 0 0 0.2 0.2 {} +T {Vo-} -95 16 0 0 0.2 0.2 {} +T {Vi+} 95 -16 2 0 0.2 0.2 {} +T {Vi-} 95 24 2 0 0.2 0.2 {} +T {vdd} 10 -39 0 1 0.2 0.2 {} +T {gnd} -10 34 2 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_02/conditions.yaml b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_02/conditions.yaml new file mode 100644 index 00000000..e82cc1c3 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_02/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice +N: 2 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: ss +filename: CML_core_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_02 +temperature: '-40' +vdd: '0.8' diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_03/.spiceinit b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_03/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_03/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_03/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_03/CML_core_tb.sch new file mode 100644 index 00000000..e892badb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_03/CML_core_tb.sch @@ -0,0 +1,73 @@ +v {xschem version=3.4.8RC file_version=1.3} +G {} +K {} +V {} +S {} +F {} +E {} +N 740 -940 740 -920 {lab=GND} +N 740 -1090 740 -1060 {lab=VDD} +N 600 -1020 620 -1020 {lab=Vinplus} +N 600 -980 620 -980 {lab=Vinminus} +N 860 -1020 880 -1020 {lab=Voplus} +N 860 -980 880 -980 {lab=Vominus} +N 1150 -850 1150 -820 {lab=VDD} +N 1150 -760 1150 -730 {lab=GND} +N 930 -850 930 -820 {lab=Vinminus} +N 930 -760 930 -730 {lab=GND} +N 720 -850 720 -820 {lab=Vinplus} +N 720 -760 720 -730 {lab=GND} +C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.param A=0.3 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write CML_core_tb.raw +set appendwrite +tran 10p 1n 160p + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_03/CML_core_tb_3.data vo_diff +quit + +.endc +"} +C {opin.sym} 880 -1020 2 1 {name=p6 lab=Voplus} +C {opin.sym} 880 -980 0 0 {name=p9 lab=Vominus} +C {devices/code_shown.sym} 10 -620 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_tt + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice + +.temp 27 +" +} +C {iopin.sym} 740 -1090 0 1 {name=p2 lab=VDD} +C {ipin.sym} 600 -1020 2 1 {name=p4 lab=Vinplus} +C {ipin.sym} 600 -980 2 1 {name=p1 lab=Vinminus} +C {CML_divider.sym} 740 -1000 0 1 {name=x1} +C {vsource.sym} 1150 -790 0 0 {name=V1 value=0.8 savecurrent=false} +C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} +C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} +C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 A 10G 0 0 0)" savecurrent=false} +C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 A 10G 0 0 180)" savecurrent=false} +C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_03/CML_core_tb_3.data b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_03/CML_core_tb_3.data new file mode 100644 index 00000000..fedc9e2a --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_03/CML_core_tb_3.data @@ -0,0 +1,85 @@ + 1.628000000000e-10 -2.752371518652e-01 + 1.728000000000e-10 -5.371376319543e-02 + 1.828000000000e-10 1.789877413053e-01 + 1.928000000000e-10 3.904548691103e-01 + 2.028000000000e-10 5.481842948229e-01 + 2.128000000000e-10 6.473880529986e-01 + 2.228000000000e-10 6.910106576952e-01 + 2.328000000000e-10 6.747515328639e-01 + 2.428000000000e-10 5.993982850131e-01 + 2.528000000000e-10 4.678235295331e-01 + 2.628000000000e-10 2.811940191144e-01 + 2.728000000000e-10 5.749892092429e-02 + 2.828000000000e-10 -1.768703468756e-01 + 2.928000000000e-10 -3.894327299011e-01 + 3.028000000000e-10 -5.481462871223e-01 + 3.128000000000e-10 -6.476233959034e-01 + 3.228000000000e-10 -6.918267741740e-01 + 3.328000000000e-10 -6.759891610513e-01 + 3.428000000000e-10 -6.011477081233e-01 + 3.528000000000e-10 -4.695436066174e-01 + 3.628000000000e-10 -2.830251877311e-01 + 3.728000000000e-10 -5.907673776650e-02 + 3.828000000000e-10 1.753349861707e-01 + 3.928000000000e-10 3.883274219019e-01 + 4.028000000000e-10 5.473035177189e-01 + 4.128000000000e-10 6.472356324664e-01 + 4.228000000000e-10 6.916308158427e-01 + 4.328000000000e-10 6.762268077787e-01 + 4.428000000000e-10 6.014684070962e-01 + 4.528000000000e-10 4.700895666681e-01 + 4.628000000000e-10 2.834862741746e-01 + 4.728000000000e-10 5.964855757082e-02 + 4.828000000000e-10 -1.749274761915e-01 + 4.928000000000e-10 -3.878897710558e-01 + 5.028000000000e-10 -5.470986037433e-01 + 5.128000000000e-10 -6.470272164409e-01 + 5.228000000000e-10 -6.916322065746e-01 + 5.328000000000e-10 -6.762158687864e-01 + 5.428000000000e-10 -6.016311330158e-01 + 5.528000000000e-10 -4.701782346337e-01 + 5.628000000000e-10 -2.836941639082e-01 + 5.728000000000e-10 -5.974768838543e-02 + 5.828000000000e-10 1.747352099095e-01 + 5.928000000000e-10 3.878245260251e-01 + 6.028000000000e-10 5.469715931678e-01 + 6.128000000000e-10 6.470284806517e-01 + 6.228000000000e-10 6.915679621080e-01 + 6.328000000000e-10 6.762768333485e-01 + 6.428000000000e-10 6.016163496453e-01 + 6.528000000000e-10 4.702674812943e-01 + 6.628000000000e-10 2.836938506434e-01 + 6.728000000000e-10 5.983990401354e-02 + 6.828000000000e-10 -1.747391664584e-01 + 6.928000000000e-10 -3.877472828580e-01 + 7.028000000000e-10 -5.469903889528e-01 + 7.128000000000e-10 -6.469730360721e-01 + 7.228000000000e-10 -6.916047287716e-01 + 7.328000000000e-10 -6.762386026180e-01 + 7.428000000000e-10 -6.016669907083e-01 + 7.528000000000e-10 -4.702390118128e-01 + 7.628000000000e-10 -2.837481181728e-01 + 7.728000000000e-10 -5.981248689037e-02 + 7.828000000000e-10 1.746867337354e-01 + 7.928000000000e-10 3.877749638679e-01 + 8.028000000000e-10 5.469462314077e-01 + 8.128000000000e-10 6.470055622974e-01 + 8.228000000000e-10 6.915665740520e-01 + 8.328000000000e-10 6.762766371031e-01 + 8.428000000000e-10 6.016337946720e-01 + 8.528000000000e-10 4.702787360349e-01 + 8.628000000000e-10 2.837166478209e-01 + 8.728000000000e-10 5.985233152722e-02 + 8.828000000000e-10 -1.747180248353e-01 + 8.928000000000e-10 -3.877389392165e-01 + 9.028000000000e-10 -5.469764940938e-01 + 9.128000000000e-10 -6.469724949526e-01 + 9.228000000000e-10 -6.915980610397e-01 + 9.328000000000e-10 -6.762447762615e-01 + 9.428000000000e-10 -6.016660865709e-01 + 9.528000000000e-10 -4.702484057793e-01 + 9.628000000000e-10 -2.837489236123e-01 + 9.728000000000e-10 -5.982216431619e-02 + 9.828000000000e-10 1.746862818107e-01 + 9.928000000000e-10 3.877670239311e-01 + 1.000000000000e-09 5.084292112944e-01 diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_03/CML_divider.sym b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_03/CML_divider.sym new file mode 100644 index 00000000..e46eb233 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_03/CML_divider.sym @@ -0,0 +1,30 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 -120 -20 -100 -20 {} +L 4 -120 20 -100 20 {} +L 4 100 -20 120 -20 {} +L 4 100 20 120 20 {} +L 7 0 -60 0 -40 {} +L 7 0 40 0 60 {} +B 5 -122.5 -22.5 -117.5 -17.5 {name=Vo+ dir=out} +B 5 -122.5 17.5 -117.5 22.5 {name=Vo- dir=out} +B 5 117.5 -22.5 122.5 -17.5 {name=Vi+ dir=in} +B 5 117.5 17.5 122.5 22.5 {name=Vi- dir=in} +B 5 -2.5 -62.5 2.5 -57.5 {name=vdd dir=inout} +B 5 -2.5 57.5 2.5 62.5 {name=gnd dir=inout} +P 4 5 100 -40 -100 -40 -100 40 100 40 100 -40 {} +T {@symname} -44 -6 0 0 0.3 0.3 {} +T {@name} 45 -52 0 0 0.2 0.2 {} +T {Vo+} -95 -24 0 0 0.2 0.2 {} +T {Vo-} -95 16 0 0 0.2 0.2 {} +T {Vi+} 95 -16 2 0 0.2 0.2 {} +T {Vi-} 95 24 2 0 0.2 0.2 {} +T {vdd} 10 -39 0 1 0.2 0.2 {} +T {gnd} -10 34 2 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_03/conditions.yaml b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_03/conditions.yaml new file mode 100644 index 00000000..ecdc3782 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_03/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice +N: 3 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: tt +filename: CML_core_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_03 +temperature: '27' +vdd: '0.8' diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_04/.spiceinit b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_04/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_04/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_04/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_04/CML_core_tb.sch new file mode 100644 index 00000000..0bbf7b60 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_04/CML_core_tb.sch @@ -0,0 +1,73 @@ +v {xschem version=3.4.8RC file_version=1.3} +G {} +K {} +V {} +S {} +F {} +E {} +N 740 -940 740 -920 {lab=GND} +N 740 -1090 740 -1060 {lab=VDD} +N 600 -1020 620 -1020 {lab=Vinplus} +N 600 -980 620 -980 {lab=Vinminus} +N 860 -1020 880 -1020 {lab=Voplus} +N 860 -980 880 -980 {lab=Vominus} +N 1150 -850 1150 -820 {lab=VDD} +N 1150 -760 1150 -730 {lab=GND} +N 930 -850 930 -820 {lab=Vinminus} +N 930 -760 930 -730 {lab=GND} +N 720 -850 720 -820 {lab=Vinplus} +N 720 -760 720 -730 {lab=GND} +C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.param A=0.3 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write CML_core_tb.raw +set appendwrite +tran 10p 1n 160p + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_04/CML_core_tb_4.data vo_diff +quit + +.endc +"} +C {opin.sym} 880 -1020 2 1 {name=p6 lab=Voplus} +C {opin.sym} 880 -980 0 0 {name=p9 lab=Vominus} +C {devices/code_shown.sym} 10 -620 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_ff + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice + +.temp 27 +" +} +C {iopin.sym} 740 -1090 0 1 {name=p2 lab=VDD} +C {ipin.sym} 600 -1020 2 1 {name=p4 lab=Vinplus} +C {ipin.sym} 600 -980 2 1 {name=p1 lab=Vinminus} +C {CML_divider.sym} 740 -1000 0 1 {name=x1} +C {vsource.sym} 1150 -790 0 0 {name=V1 value=0.8 savecurrent=false} +C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} +C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} +C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 A 10G 0 0 0)" savecurrent=false} +C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 A 10G 0 0 180)" savecurrent=false} +C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_04/CML_core_tb_4.data b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_04/CML_core_tb_4.data new file mode 100644 index 00000000..4898dcc8 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_04/CML_core_tb_4.data @@ -0,0 +1,85 @@ + 1.628000000000e-10 -2.482257947455e-01 + 1.728000000000e-10 -3.259266550036e-02 + 1.828000000000e-10 1.930322087844e-01 + 1.928000000000e-10 3.960886599474e-01 + 2.028000000000e-10 5.450058997505e-01 + 2.128000000000e-10 6.360387116800e-01 + 2.228000000000e-10 6.712975422190e-01 + 2.328000000000e-10 6.474938983982e-01 + 2.428000000000e-10 5.679706274704e-01 + 2.528000000000e-10 4.364781736218e-01 + 2.628000000000e-10 2.536409133725e-01 + 2.728000000000e-10 3.555786929817e-02 + 2.828000000000e-10 -1.919150168478e-01 + 2.928000000000e-10 -3.960490843585e-01 + 3.028000000000e-10 -5.456465197220e-01 + 3.128000000000e-10 -6.367232933250e-01 + 3.228000000000e-10 -6.725166925877e-01 + 3.328000000000e-10 -6.491812984547e-01 + 3.428000000000e-10 -5.701612342484e-01 + 3.528000000000e-10 -4.386195239579e-01 + 3.628000000000e-10 -2.558666299298e-01 + 3.728000000000e-10 -3.750940439386e-02 + 3.828000000000e-10 1.900731677010e-01 + 3.928000000000e-10 3.947279065049e-01 + 4.028000000000e-10 5.446879536498e-01 + 4.128000000000e-10 6.362937598492e-01 + 4.228000000000e-10 6.723764816130e-01 + 4.328000000000e-10 6.495551727740e-01 + 4.428000000000e-10 5.706690754638e-01 + 4.528000000000e-10 4.393690386282e-01 + 4.628000000000e-10 2.565445890136e-01 + 4.728000000000e-10 3.828939038749e-02 + 4.828000000000e-10 -1.894747026650e-01 + 4.928000000000e-10 -3.941469427019e-01 + 5.028000000000e-10 -5.443881652157e-01 + 5.128000000000e-10 -6.360424686566e-01 + 5.228000000000e-10 -6.723795425302e-01 + 5.328000000000e-10 -6.495951074105e-01 + 5.428000000000e-10 -5.709049111674e-01 + 5.528000000000e-10 -4.395480856778e-01 + 5.628000000000e-10 -2.568451405700e-01 + 5.728000000000e-10 -3.848386295175e-02 + 5.828000000000e-10 1.891998017504e-01 + 5.928000000000e-10 3.940128253458e-01 + 6.028000000000e-10 5.442195759360e-01 + 6.128000000000e-10 6.360190076123e-01 + 6.228000000000e-10 6.723154692419e-01 + 6.328000000000e-10 6.496722035130e-01 + 6.428000000000e-10 5.709215560836e-01 + 6.528000000000e-10 4.396716365902e-01 + 6.628000000000e-10 2.568848555761e-01 + 6.728000000000e-10 3.861258812938e-02 + 6.828000000000e-10 -1.891673406027e-01 + 6.928000000000e-10 -3.939096487469e-01 + 7.028000000000e-10 -5.442185154541e-01 + 7.128000000000e-10 -6.359555029215e-01 + 7.228000000000e-10 -6.723494769467e-01 + 7.328000000000e-10 -6.496420384079e-01 + 7.428000000000e-10 -5.709822816025e-01 + 7.528000000000e-10 -4.396582995671e-01 + 7.628000000000e-10 -2.569529185106e-01 + 7.728000000000e-10 -3.860128053098e-02 + 7.828000000000e-10 1.891028165048e-01 + 7.928000000000e-10 3.939252197739e-01 + 8.028000000000e-10 5.441685861906e-01 + 8.128000000000e-10 6.359828023137e-01 + 8.228000000000e-10 6.723118712615e-01 + 8.328000000000e-10 6.496812709937e-01 + 8.428000000000e-10 5.709544657577e-01 + 8.528000000000e-10 4.397022527784e-01 + 8.628000000000e-10 2.569280980597e-01 + 8.728000000000e-10 3.864565597287e-02 + 8.828000000000e-10 -1.891278298806e-01 + 8.928000000000e-10 -3.938862165142e-01 + 9.028000000000e-10 -5.441949734698e-01 + 9.128000000000e-10 -6.359493781265e-01 + 9.228000000000e-10 -6.723420888760e-01 + 9.328000000000e-10 -6.496512561522e-01 + 9.428000000000e-10 -5.709874488604e-01 + 9.528000000000e-10 -4.396746422576e-01 + 9.628000000000e-10 -2.569616958772e-01 + 9.728000000000e-10 -3.861839939192e-02 + 9.828000000000e-10 1.890951489097e-01 + 9.928000000000e-10 3.939119089870e-01 + 1.000000000000e-09 5.081084039478e-01 diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_04/CML_divider.sym b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_04/CML_divider.sym new file mode 100644 index 00000000..e46eb233 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_04/CML_divider.sym @@ -0,0 +1,30 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 -120 -20 -100 -20 {} +L 4 -120 20 -100 20 {} +L 4 100 -20 120 -20 {} +L 4 100 20 120 20 {} +L 7 0 -60 0 -40 {} +L 7 0 40 0 60 {} +B 5 -122.5 -22.5 -117.5 -17.5 {name=Vo+ dir=out} +B 5 -122.5 17.5 -117.5 22.5 {name=Vo- dir=out} +B 5 117.5 -22.5 122.5 -17.5 {name=Vi+ dir=in} +B 5 117.5 17.5 122.5 22.5 {name=Vi- dir=in} +B 5 -2.5 -62.5 2.5 -57.5 {name=vdd dir=inout} +B 5 -2.5 57.5 2.5 62.5 {name=gnd dir=inout} +P 4 5 100 -40 -100 -40 -100 40 100 40 100 -40 {} +T {@symname} -44 -6 0 0 0.3 0.3 {} +T {@name} 45 -52 0 0 0.2 0.2 {} +T {Vo+} -95 -24 0 0 0.2 0.2 {} +T {Vo-} -95 16 0 0 0.2 0.2 {} +T {Vi+} 95 -16 2 0 0.2 0.2 {} +T {Vi-} 95 24 2 0 0.2 0.2 {} +T {vdd} 10 -39 0 1 0.2 0.2 {} +T {gnd} -10 34 2 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_04/conditions.yaml b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_04/conditions.yaml new file mode 100644 index 00000000..d49c902e --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_04/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice +N: 4 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: ff +filename: CML_core_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_04 +temperature: '27' +vdd: '0.8' diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_05/.spiceinit b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_05/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_05/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_05/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_05/CML_core_tb.sch new file mode 100644 index 00000000..54957d0f --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_05/CML_core_tb.sch @@ -0,0 +1,73 @@ +v {xschem version=3.4.8RC file_version=1.3} +G {} +K {} +V {} +S {} +F {} +E {} +N 740 -940 740 -920 {lab=GND} +N 740 -1090 740 -1060 {lab=VDD} +N 600 -1020 620 -1020 {lab=Vinplus} +N 600 -980 620 -980 {lab=Vinminus} +N 860 -1020 880 -1020 {lab=Voplus} +N 860 -980 880 -980 {lab=Vominus} +N 1150 -850 1150 -820 {lab=VDD} +N 1150 -760 1150 -730 {lab=GND} +N 930 -850 930 -820 {lab=Vinminus} +N 930 -760 930 -730 {lab=GND} +N 720 -850 720 -820 {lab=Vinplus} +N 720 -760 720 -730 {lab=GND} +C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.param A=0.3 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write CML_core_tb.raw +set appendwrite +tran 10p 1n 160p + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_05/CML_core_tb_5.data vo_diff +quit + +.endc +"} +C {opin.sym} 880 -1020 2 1 {name=p6 lab=Voplus} +C {opin.sym} 880 -980 0 0 {name=p9 lab=Vominus} +C {devices/code_shown.sym} 10 -620 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_ss + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice + +.temp 27 +" +} +C {iopin.sym} 740 -1090 0 1 {name=p2 lab=VDD} +C {ipin.sym} 600 -1020 2 1 {name=p4 lab=Vinplus} +C {ipin.sym} 600 -980 2 1 {name=p1 lab=Vinminus} +C {CML_divider.sym} 740 -1000 0 1 {name=x1} +C {vsource.sym} 1150 -790 0 0 {name=V1 value=0.8 savecurrent=false} +C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} +C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} +C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 A 10G 0 0 0)" savecurrent=false} +C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 A 10G 0 0 180)" savecurrent=false} +C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_05/CML_core_tb_5.data b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_05/CML_core_tb_5.data new file mode 100644 index 00000000..97a3ab1f --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_05/CML_core_tb_5.data @@ -0,0 +1,85 @@ + 1.628000000000e-10 -3.026592886865e-01 + 1.728000000000e-10 -8.046058591213e-02 + 1.828000000000e-10 1.560684489845e-01 + 1.928000000000e-10 3.758215815324e-01 + 2.028000000000e-10 5.441825187720e-01 + 2.128000000000e-10 6.527787402061e-01 + 2.228000000000e-10 7.054162779080e-01 + 2.328000000000e-10 6.966940307878e-01 + 2.428000000000e-10 6.251719997267e-01 + 2.528000000000e-10 4.948986245243e-01 + 2.628000000000e-10 3.088338841037e-01 + 2.728000000000e-10 8.463582249819e-02 + 2.828000000000e-10 -1.534379373390e-01 + 2.928000000000e-10 -3.742382678981e-01 + 3.028000000000e-10 -5.437587344983e-01 + 3.128000000000e-10 -6.527795869025e-01 + 3.228000000000e-10 -7.060578401775e-01 + 3.328000000000e-10 -6.977288800308e-01 + 3.428000000000e-10 -6.267241220561e-01 + 3.528000000000e-10 -4.964034573067e-01 + 3.628000000000e-10 -3.104523257846e-01 + 3.728000000000e-10 -8.599843693100e-02 + 3.828000000000e-10 1.520614001089e-01 + 3.928000000000e-10 3.732327292359e-01 + 4.028000000000e-10 5.429530946109e-01 + 4.128000000000e-10 6.523997728799e-01 + 4.228000000000e-10 7.058202145507e-01 + 4.328000000000e-10 6.979022558405e-01 + 4.428000000000e-10 6.269588593419e-01 + 4.528000000000e-10 4.968624227466e-01 + 4.628000000000e-10 3.108132149603e-01 + 4.728000000000e-10 8.648038785746e-02 + 4.828000000000e-10 -1.517384677919e-01 + 4.928000000000e-10 -3.728474794484e-01 + 5.028000000000e-10 -5.427866011842e-01 + 5.128000000000e-10 -6.522022614009e-01 + 5.228000000000e-10 -7.058208822479e-01 + 5.328000000000e-10 -6.978651082200e-01 + 5.428000000000e-10 -6.270935668997e-01 + 5.528000000000e-10 -4.969096569281e-01 + 5.628000000000e-10 -3.109835748750e-01 + 5.728000000000e-10 -8.653572716924e-02 + 5.828000000000e-10 1.515778681972e-01 + 5.928000000000e-10 3.728127447205e-01 + 6.028000000000e-10 5.426739415091e-01 + 6.128000000000e-10 6.522162007318e-01 + 6.228000000000e-10 7.057544179932e-01 + 6.328000000000e-10 6.979224304337e-01 + 6.428000000000e-10 6.270641898671e-01 + 6.528000000000e-10 4.969874144680e-01 + 6.628000000000e-10 3.109648292365e-01 + 6.728000000000e-10 8.661535651254e-02 + 6.828000000000e-10 -1.515990397030e-01 + 6.928000000000e-10 -3.727433125293e-01 + 7.028000000000e-10 -5.427028559119e-01 + 7.128000000000e-10 -6.521615488134e-01 + 7.228000000000e-10 -7.057946841560e-01 + 7.328000000000e-10 -6.978790263426e-01 + 7.428000000000e-10 -6.271133848792e-01 + 7.528000000000e-10 -4.969513861012e-01 + 7.628000000000e-10 -3.110159233563e-01 + 7.728000000000e-10 -8.658006676819e-02 + 7.828000000000e-10 1.515487071721e-01 + 7.928000000000e-10 3.727772980737e-01 + 8.028000000000e-10 5.426589701450e-01 + 8.128000000000e-10 6.521979789832e-01 + 8.228000000000e-10 7.057547305503e-01 + 8.328000000000e-10 6.979187185021e-01 + 8.428000000000e-10 6.270767072939e-01 + 8.528000000000e-10 4.969913946096e-01 + 8.628000000000e-10 3.109805885283e-01 + 8.728000000000e-10 8.662004567697e-02 + 8.828000000000e-10 -1.515841004471e-01 + 8.928000000000e-10 -3.727405314049e-01 + 9.028000000000e-10 -5.426922302859e-01 + 9.128000000000e-10 -6.521632231968e-01 + 9.228000000000e-10 -7.057882763540e-01 + 9.328000000000e-10 -6.978845659833e-01 + 9.428000000000e-10 -6.271103709374e-01 + 9.528000000000e-10 -4.969587868574e-01 + 9.628000000000e-10 -3.110138943909e-01 + 9.728000000000e-10 -8.658760475647e-02 + 9.828000000000e-10 1.515508999036e-01 + 9.928000000000e-10 3.727707590510e-01 + 1.000000000000e-09 5.012730784879e-01 diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_05/CML_divider.sym b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_05/CML_divider.sym new file mode 100644 index 00000000..e46eb233 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_05/CML_divider.sym @@ -0,0 +1,30 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 -120 -20 -100 -20 {} +L 4 -120 20 -100 20 {} +L 4 100 -20 120 -20 {} +L 4 100 20 120 20 {} +L 7 0 -60 0 -40 {} +L 7 0 40 0 60 {} +B 5 -122.5 -22.5 -117.5 -17.5 {name=Vo+ dir=out} +B 5 -122.5 17.5 -117.5 22.5 {name=Vo- dir=out} +B 5 117.5 -22.5 122.5 -17.5 {name=Vi+ dir=in} +B 5 117.5 17.5 122.5 22.5 {name=Vi- dir=in} +B 5 -2.5 -62.5 2.5 -57.5 {name=vdd dir=inout} +B 5 -2.5 57.5 2.5 62.5 {name=gnd dir=inout} +P 4 5 100 -40 -100 -40 -100 40 100 40 100 -40 {} +T {@symname} -44 -6 0 0 0.3 0.3 {} +T {@name} 45 -52 0 0 0.2 0.2 {} +T {Vo+} -95 -24 0 0 0.2 0.2 {} +T {Vo-} -95 16 0 0 0.2 0.2 {} +T {Vi+} 95 -16 2 0 0.2 0.2 {} +T {Vi-} 95 24 2 0 0.2 0.2 {} +T {vdd} 10 -39 0 1 0.2 0.2 {} +T {gnd} -10 34 2 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_05/conditions.yaml b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_05/conditions.yaml new file mode 100644 index 00000000..856c6ace --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_05/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice +N: 5 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: ss +filename: CML_core_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_05 +temperature: '27' +vdd: '0.8' diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_06/.spiceinit b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_06/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_06/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_06/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_06/CML_core_tb.sch new file mode 100644 index 00000000..344a9459 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_06/CML_core_tb.sch @@ -0,0 +1,73 @@ +v {xschem version=3.4.8RC file_version=1.3} +G {} +K {} +V {} +S {} +F {} +E {} +N 740 -940 740 -920 {lab=GND} +N 740 -1090 740 -1060 {lab=VDD} +N 600 -1020 620 -1020 {lab=Vinplus} +N 600 -980 620 -980 {lab=Vinminus} +N 860 -1020 880 -1020 {lab=Voplus} +N 860 -980 880 -980 {lab=Vominus} +N 1150 -850 1150 -820 {lab=VDD} +N 1150 -760 1150 -730 {lab=GND} +N 930 -850 930 -820 {lab=Vinminus} +N 930 -760 930 -730 {lab=GND} +N 720 -850 720 -820 {lab=Vinplus} +N 720 -760 720 -730 {lab=GND} +C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.param A=0.3 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write CML_core_tb.raw +set appendwrite +tran 10p 1n 160p + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_06/CML_core_tb_6.data vo_diff +quit + +.endc +"} +C {opin.sym} 880 -1020 2 1 {name=p6 lab=Voplus} +C {opin.sym} 880 -980 0 0 {name=p9 lab=Vominus} +C {devices/code_shown.sym} 10 -620 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_tt + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice + +.temp 80 +" +} +C {iopin.sym} 740 -1090 0 1 {name=p2 lab=VDD} +C {ipin.sym} 600 -1020 2 1 {name=p4 lab=Vinplus} +C {ipin.sym} 600 -980 2 1 {name=p1 lab=Vinminus} +C {CML_divider.sym} 740 -1000 0 1 {name=x1} +C {vsource.sym} 1150 -790 0 0 {name=V1 value=0.8 savecurrent=false} +C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} +C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} +C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 A 10G 0 0 0)" savecurrent=false} +C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 A 10G 0 0 180)" savecurrent=false} +C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_06/CML_core_tb_6.data b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_06/CML_core_tb_6.data new file mode 100644 index 00000000..68f452a6 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_06/CML_core_tb_6.data @@ -0,0 +1,85 @@ + 1.628000000000e-10 -2.658991355482e-01 + 1.728000000000e-10 -5.658971746101e-02 + 1.828000000000e-10 1.665652322471e-01 + 1.928000000000e-10 3.726189743475e-01 + 2.028000000000e-10 5.303705116758e-01 + 2.128000000000e-10 6.287796796090e-01 + 2.228000000000e-10 6.685380236864e-01 + 2.328000000000e-10 6.490234756137e-01 + 2.428000000000e-10 5.737092070140e-01 + 2.528000000000e-10 4.474825535463e-01 + 2.628000000000e-10 2.725242795062e-01 + 2.728000000000e-10 6.117177433706e-02 + 2.828000000000e-10 -1.637031734924e-01 + 2.928000000000e-10 -3.708935568748e-01 + 3.028000000000e-10 -5.297756369707e-01 + 3.128000000000e-10 -6.287017384995e-01 + 3.228000000000e-10 -6.693265533929e-01 + 3.328000000000e-10 -6.504570398323e-01 + 3.428000000000e-10 -5.758168078022e-01 + 3.528000000000e-10 -4.496242973413e-01 + 3.628000000000e-10 -2.747981275605e-01 + 3.728000000000e-10 -6.319393908832e-02 + 3.828000000000e-10 1.617439470913e-01 + 3.928000000000e-10 3.694169588634e-01 + 4.028000000000e-10 5.286499307585e-01 + 4.128000000000e-10 6.281722098808e-01 + 4.228000000000e-10 6.691184385543e-01 + 4.328000000000e-10 6.507901751638e-01 + 4.428000000000e-10 5.762974118946e-01 + 4.528000000000e-10 4.503608294115e-01 + 4.628000000000e-10 2.754522690623e-01 + 4.728000000000e-10 6.396306731360e-02 + 4.828000000000e-10 -1.611542650007e-01 + 4.928000000000e-10 -3.688169747432e-01 + 5.028000000000e-10 -5.283292872594e-01 + 5.128000000000e-10 -6.279003852563e-01 + 5.228000000000e-10 -6.691136918962e-01 + 5.328000000000e-10 -6.508124831570e-01 + 5.428000000000e-10 -5.765249280825e-01 + 5.528000000000e-10 -4.505225248069e-01 + 5.628000000000e-10 -2.757393848954e-01 + 5.728000000000e-10 -6.413835118523e-02 + 5.828000000000e-10 1.608879015274e-01 + 5.928000000000e-10 3.686909867212e-01 + 6.028000000000e-10 5.281558224884e-01 + 6.128000000000e-10 6.278785795680e-01 + 6.228000000000e-10 6.690442760911e-01 + 6.328000000000e-10 6.508870303825e-01 + 6.428000000000e-10 5.765321271449e-01 + 6.528000000000e-10 4.506407637839e-01 + 6.628000000000e-10 2.757670228304e-01 + 6.728000000000e-10 6.426080532693e-02 + 6.828000000000e-10 -1.608659404084e-01 + 6.928000000000e-10 -3.685888330346e-01 + 7.028000000000e-10 -5.281591419234e-01 + 7.128000000000e-10 -6.278127091451e-01 + 7.228000000000e-10 -6.690805910819e-01 + 7.328000000000e-10 -6.508520944992e-01 + 7.428000000000e-10 -5.765925476371e-01 + 7.528000000000e-10 -4.506215704207e-01 + 7.628000000000e-10 -2.758332595929e-01 + 7.728000000000e-10 -6.424327491402e-02 + 7.828000000000e-10 1.608024320318e-01 + 7.928000000000e-10 3.686091606456e-01 + 8.028000000000e-10 5.281080947303e-01 + 8.128000000000e-10 6.278426474070e-01 + 8.228000000000e-10 6.690409470235e-01 + 8.328000000000e-10 6.508923982303e-01 + 8.428000000000e-10 5.765614162070e-01 + 8.528000000000e-10 4.506656063053e-01 + 8.628000000000e-10 2.758047260180e-01 + 8.728000000000e-10 6.428762429921e-02 + 8.828000000000e-10 -1.608310872580e-01 + 8.928000000000e-10 -3.685690211775e-01 + 9.028000000000e-10 -5.281370864241e-01 + 9.128000000000e-10 -6.278075066251e-01 + 9.228000000000e-10 -6.690730291835e-01 + 9.328000000000e-10 -6.508603444096e-01 + 9.428000000000e-10 -5.765956636588e-01 + 9.528000000000e-10 -4.506359555730e-01 + 9.628000000000e-10 -2.758391852586e-01 + 9.728000000000e-10 -6.425829353037e-02 + 9.828000000000e-10 1.607973448132e-01 + 9.928000000000e-10 3.685968285070e-01 + 1.000000000000e-09 4.894958047088e-01 diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_06/CML_divider.sym b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_06/CML_divider.sym new file mode 100644 index 00000000..e46eb233 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_06/CML_divider.sym @@ -0,0 +1,30 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 -120 -20 -100 -20 {} +L 4 -120 20 -100 20 {} +L 4 100 -20 120 -20 {} +L 4 100 20 120 20 {} +L 7 0 -60 0 -40 {} +L 7 0 40 0 60 {} +B 5 -122.5 -22.5 -117.5 -17.5 {name=Vo+ dir=out} +B 5 -122.5 17.5 -117.5 22.5 {name=Vo- dir=out} +B 5 117.5 -22.5 122.5 -17.5 {name=Vi+ dir=in} +B 5 117.5 17.5 122.5 22.5 {name=Vi- dir=in} +B 5 -2.5 -62.5 2.5 -57.5 {name=vdd dir=inout} +B 5 -2.5 57.5 2.5 62.5 {name=gnd dir=inout} +P 4 5 100 -40 -100 -40 -100 40 100 40 100 -40 {} +T {@symname} -44 -6 0 0 0.3 0.3 {} +T {@name} 45 -52 0 0 0.2 0.2 {} +T {Vo+} -95 -24 0 0 0.2 0.2 {} +T {Vo-} -95 16 0 0 0.2 0.2 {} +T {Vi+} 95 -16 2 0 0.2 0.2 {} +T {Vi-} 95 24 2 0 0.2 0.2 {} +T {vdd} 10 -39 0 1 0.2 0.2 {} +T {gnd} -10 34 2 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_06/conditions.yaml b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_06/conditions.yaml new file mode 100644 index 00000000..6c2f28e1 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_06/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice +N: 6 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: tt +filename: CML_core_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_06 +temperature: '80' +vdd: '0.8' diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_07/.spiceinit b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_07/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_07/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_07/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_07/CML_core_tb.sch new file mode 100644 index 00000000..ba10f5a7 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_07/CML_core_tb.sch @@ -0,0 +1,73 @@ +v {xschem version=3.4.8RC file_version=1.3} +G {} +K {} +V {} +S {} +F {} +E {} +N 740 -940 740 -920 {lab=GND} +N 740 -1090 740 -1060 {lab=VDD} +N 600 -1020 620 -1020 {lab=Vinplus} +N 600 -980 620 -980 {lab=Vinminus} +N 860 -1020 880 -1020 {lab=Voplus} +N 860 -980 880 -980 {lab=Vominus} +N 1150 -850 1150 -820 {lab=VDD} +N 1150 -760 1150 -730 {lab=GND} +N 930 -850 930 -820 {lab=Vinminus} +N 930 -760 930 -730 {lab=GND} +N 720 -850 720 -820 {lab=Vinplus} +N 720 -760 720 -730 {lab=GND} +C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.param A=0.3 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write CML_core_tb.raw +set appendwrite +tran 10p 1n 160p + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_07/CML_core_tb_7.data vo_diff +quit + +.endc +"} +C {opin.sym} 880 -1020 2 1 {name=p6 lab=Voplus} +C {opin.sym} 880 -980 0 0 {name=p9 lab=Vominus} +C {devices/code_shown.sym} 10 -620 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_ff + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice + +.temp 80 +" +} +C {iopin.sym} 740 -1090 0 1 {name=p2 lab=VDD} +C {ipin.sym} 600 -1020 2 1 {name=p4 lab=Vinplus} +C {ipin.sym} 600 -980 2 1 {name=p1 lab=Vinminus} +C {CML_divider.sym} 740 -1000 0 1 {name=x1} +C {vsource.sym} 1150 -790 0 0 {name=V1 value=0.8 savecurrent=false} +C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} +C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} +C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 A 10G 0 0 0)" savecurrent=false} +C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 A 10G 0 0 180)" savecurrent=false} +C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_07/CML_core_tb_7.data b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_07/CML_core_tb_7.data new file mode 100644 index 00000000..0dc3c32a --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_07/CML_core_tb_7.data @@ -0,0 +1,85 @@ + 1.628000000000e-10 -2.411371086013e-01 + 1.728000000000e-10 -3.745255924117e-02 + 1.828000000000e-10 1.789428987452e-01 + 1.928000000000e-10 3.769558934840e-01 + 2.028000000000e-10 5.255858783541e-01 + 2.128000000000e-10 6.150086513683e-01 + 2.228000000000e-10 6.463506095909e-01 + 2.328000000000e-10 6.202014565113e-01 + 2.428000000000e-10 5.417075102450e-01 + 2.528000000000e-10 4.161519970610e-01 + 2.628000000000e-10 2.448960905686e-01 + 2.728000000000e-10 3.892968213965e-02 + 2.828000000000e-10 -1.791505445505e-01 + 2.928000000000e-10 -3.778686664383e-01 + 3.028000000000e-10 -5.268093330033e-01 + 3.128000000000e-10 -6.159877416348e-01 + 3.228000000000e-10 -6.476195951568e-01 + 3.328000000000e-10 -6.216667221790e-01 + 3.428000000000e-10 -5.435382878554e-01 + 3.528000000000e-10 -4.178448923887e-01 + 3.628000000000e-10 -2.466531390426e-01 + 3.728000000000e-10 -4.041876256606e-02 + 3.828000000000e-10 1.777092594525e-01 + 3.928000000000e-10 3.768542192180e-01 + 4.028000000000e-10 5.260351926041e-01 + 4.128000000000e-10 6.156923491854e-01 + 4.228000000000e-10 6.475364165656e-01 + 4.328000000000e-10 6.220253224816e-01 + 4.428000000000e-10 5.439681165412e-01 + 4.528000000000e-10 4.184919515643e-01 + 4.628000000000e-10 2.472032785778e-01 + 4.728000000000e-10 4.108392377197e-02 + 4.828000000000e-10 -1.772209974541e-01 + 4.928000000000e-10 -3.763464849454e-01 + 5.028000000000e-10 -5.257893585276e-01 + 5.128000000000e-10 -6.154751208437e-01 + 5.228000000000e-10 -6.475677164184e-01 + 5.328000000000e-10 -6.220637777790e-01 + 5.428000000000e-10 -5.441970040997e-01 + 5.528000000000e-10 -4.186454653208e-01 + 5.628000000000e-10 -2.474812841152e-01 + 5.728000000000e-10 -4.124875776275e-02 + 5.828000000000e-10 1.769646369358e-01 + 5.928000000000e-10 3.762321495571e-01 + 6.028000000000e-10 5.256270530622e-01 + 6.128000000000e-10 6.154644314175e-01 + 6.228000000000e-10 6.475079392204e-01 + 6.328000000000e-10 6.221477255403e-01 + 6.428000000000e-10 5.442104878297e-01 + 6.528000000000e-10 4.187701859554e-01 + 6.628000000000e-10 2.475138621783e-01 + 6.728000000000e-10 4.137738638918e-02 + 6.828000000000e-10 -1.769383615791e-01 + 6.928000000000e-10 -3.761265802968e-01 + 7.028000000000e-10 -5.256298366366e-01 + 7.128000000000e-10 -6.153992750277e-01 + 7.228000000000e-10 -6.475476374408e-01 + 7.328000000000e-10 -6.221164421539e-01 + 7.428000000000e-10 -5.442762390873e-01 + 7.528000000000e-10 -4.187551150856e-01 + 7.628000000000e-10 -2.475858208222e-01 + 7.728000000000e-10 -4.136415856981e-02 + 7.828000000000e-10 1.768699557901e-01 + 7.928000000000e-10 3.761440347995e-01 + 8.028000000000e-10 5.255765528630e-01 + 8.128000000000e-10 6.154291154928e-01 + 8.228000000000e-10 6.475082015932e-01 + 8.328000000000e-10 6.221591874055e-01 + 8.428000000000e-10 5.442468649409e-01 + 8.528000000000e-10 4.188025713318e-01 + 8.628000000000e-10 2.475593730203e-01 + 8.728000000000e-10 4.141194467582e-02 + 8.828000000000e-10 -1.768965906206e-01 + 8.928000000000e-10 -3.761014263264e-01 + 9.028000000000e-10 -5.256047249426e-01 + 9.128000000000e-10 -6.153930400648e-01 + 9.228000000000e-10 -6.475410523019e-01 + 9.328000000000e-10 -6.221273229309e-01 + 9.428000000000e-10 -5.442828742824e-01 + 9.528000000000e-10 -4.187734552047e-01 + 9.628000000000e-10 -2.475958588134e-01 + 9.728000000000e-10 -4.138326223976e-02 + 9.828000000000e-10 1.768611473522e-01 + 9.928000000000e-10 3.761288017358e-01 + 1.000000000000e-09 4.898465656484e-01 diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_07/CML_divider.sym b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_07/CML_divider.sym new file mode 100644 index 00000000..e46eb233 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_07/CML_divider.sym @@ -0,0 +1,30 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 -120 -20 -100 -20 {} +L 4 -120 20 -100 20 {} +L 4 100 -20 120 -20 {} +L 4 100 20 120 20 {} +L 7 0 -60 0 -40 {} +L 7 0 40 0 60 {} +B 5 -122.5 -22.5 -117.5 -17.5 {name=Vo+ dir=out} +B 5 -122.5 17.5 -117.5 22.5 {name=Vo- dir=out} +B 5 117.5 -22.5 122.5 -17.5 {name=Vi+ dir=in} +B 5 117.5 17.5 122.5 22.5 {name=Vi- dir=in} +B 5 -2.5 -62.5 2.5 -57.5 {name=vdd dir=inout} +B 5 -2.5 57.5 2.5 62.5 {name=gnd dir=inout} +P 4 5 100 -40 -100 -40 -100 40 100 40 100 -40 {} +T {@symname} -44 -6 0 0 0.3 0.3 {} +T {@name} 45 -52 0 0 0.2 0.2 {} +T {Vo+} -95 -24 0 0 0.2 0.2 {} +T {Vo-} -95 16 0 0 0.2 0.2 {} +T {Vi+} 95 -16 2 0 0.2 0.2 {} +T {Vi-} 95 24 2 0 0.2 0.2 {} +T {vdd} 10 -39 0 1 0.2 0.2 {} +T {gnd} -10 34 2 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_07/conditions.yaml b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_07/conditions.yaml new file mode 100644 index 00000000..d33b7488 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_07/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice +N: 7 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: ff +filename: CML_core_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_07 +temperature: '80' +vdd: '0.8' diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_08/.spiceinit b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_08/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_08/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_08/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_08/CML_core_tb.sch new file mode 100644 index 00000000..7c2e7249 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_08/CML_core_tb.sch @@ -0,0 +1,73 @@ +v {xschem version=3.4.8RC file_version=1.3} +G {} +K {} +V {} +S {} +F {} +E {} +N 740 -940 740 -920 {lab=GND} +N 740 -1090 740 -1060 {lab=VDD} +N 600 -1020 620 -1020 {lab=Vinplus} +N 600 -980 620 -980 {lab=Vinminus} +N 860 -1020 880 -1020 {lab=Voplus} +N 860 -980 880 -980 {lab=Vominus} +N 1150 -850 1150 -820 {lab=VDD} +N 1150 -760 1150 -730 {lab=GND} +N 930 -850 930 -820 {lab=Vinminus} +N 930 -760 930 -730 {lab=GND} +N 720 -850 720 -820 {lab=Vinplus} +N 720 -760 720 -730 {lab=GND} +C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.param A=0.3 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write CML_core_tb.raw +set appendwrite +tran 10p 1n 160p + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_08/CML_core_tb_8.data vo_diff +quit + +.endc +"} +C {opin.sym} 880 -1020 2 1 {name=p6 lab=Voplus} +C {opin.sym} 880 -980 0 0 {name=p9 lab=Vominus} +C {devices/code_shown.sym} 10 -620 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_ss + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice + +.temp 80 +" +} +C {iopin.sym} 740 -1090 0 1 {name=p2 lab=VDD} +C {ipin.sym} 600 -1020 2 1 {name=p4 lab=Vinplus} +C {ipin.sym} 600 -980 2 1 {name=p1 lab=Vinminus} +C {CML_divider.sym} 740 -1000 0 1 {name=x1} +C {vsource.sym} 1150 -790 0 0 {name=V1 value=0.8 savecurrent=false} +C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} +C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} +C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 A 10G 0 0 0)" savecurrent=false} +C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 A 10G 0 0 180)" savecurrent=false} +C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_08/CML_core_tb_8.data b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_08/CML_core_tb_8.data new file mode 100644 index 00000000..f9704d61 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_08/CML_core_tb_8.data @@ -0,0 +1,85 @@ + 1.628000000000e-10 -2.915574653990e-01 + 1.728000000000e-10 -8.207206468644e-02 + 1.828000000000e-10 1.443140454917e-01 + 1.928000000000e-10 3.578501059917e-01 + 2.028000000000e-10 5.264102614641e-01 + 2.128000000000e-10 6.356033847750e-01 + 2.228000000000e-10 6.852124516173e-01 + 2.328000000000e-10 6.731697751231e-01 + 2.428000000000e-10 6.014680860110e-01 + 2.528000000000e-10 4.762934940598e-01 + 2.628000000000e-10 3.019743151843e-01 + 2.728000000000e-10 9.052768843264e-02 + 2.828000000000e-10 -1.376882496508e-01 + 2.928000000000e-10 -3.528073773591e-01 + 3.028000000000e-10 -5.234244166185e-01 + 3.128000000000e-10 -6.340851318675e-01 + 3.228000000000e-10 -6.854084589569e-01 + 3.328000000000e-10 -6.747695956588e-01 + 3.428000000000e-10 -6.042844418494e-01 + 3.528000000000e-10 -4.793995649692e-01 + 3.628000000000e-10 -3.052822644166e-01 + 3.728000000000e-10 -9.358407685981e-02 + 3.828000000000e-10 1.347194202511e-01 + 3.928000000000e-10 3.504174847188e-01 + 4.028000000000e-10 5.215924623562e-01 + 4.128000000000e-10 6.330900225454e-01 + 4.228000000000e-10 6.849701135730e-01 + 4.328000000000e-10 6.751037342439e-01 + 4.428000000000e-10 6.049384750133e-01 + 4.528000000000e-10 4.803914109079e-01 + 4.628000000000e-10 3.062148923158e-01 + 4.728000000000e-10 9.463220881739e-02 + 4.828000000000e-10 -1.338572933423e-01 + 4.928000000000e-10 -3.495689260045e-01 + 5.028000000000e-10 -5.210792449240e-01 + 5.128000000000e-10 -6.326887195405e-01 + 5.228000000000e-10 -6.848983576670e-01 + 5.328000000000e-10 -6.751198274713e-01 + 5.428000000000e-10 -6.052060952211e-01 + 5.528000000000e-10 -4.806148207689e-01 + 5.628000000000e-10 -3.065686575138e-01 + 5.728000000000e-10 -9.487468231529e-02 + 5.828000000000e-10 1.335246601606e-01 + 5.928000000000e-10 3.493821792388e-01 + 6.028000000000e-10 5.208575371198e-01 + 6.128000000000e-10 6.326338805716e-01 + 6.228000000000e-10 6.848108600046e-01 + 6.328000000000e-10 6.751907109187e-01 + 6.428000000000e-10 6.052214841565e-01 + 6.528000000000e-10 4.807458450129e-01 + 6.628000000000e-10 3.066111422989e-01 + 6.728000000000e-10 9.501122064621e-02 + 6.828000000000e-10 -1.334882175614e-01 + 6.928000000000e-10 -3.492660352924e-01 + 7.028000000000e-10 -5.208495294585e-01 + 7.128000000000e-10 -6.325598499367e-01 + 7.228000000000e-10 -6.848421004986e-01 + 7.328000000000e-10 -6.751543080912e-01 + 7.428000000000e-10 -6.052828258645e-01 + 7.528000000000e-10 -4.807293659120e-01 + 7.628000000000e-10 -3.066794924108e-01 + 7.728000000000e-10 -9.499664108150e-02 + 7.828000000000e-10 1.334220275121e-01 + 7.928000000000e-10 3.492835018463e-01 + 8.028000000000e-10 5.207961769649e-01 + 8.128000000000e-10 6.325876998525e-01 + 8.228000000000e-10 6.848014468222e-01 + 8.328000000000e-10 6.751935994962e-01 + 8.428000000000e-10 6.052518981308e-01 + 8.528000000000e-10 4.807729857688e-01 + 8.628000000000e-10 3.066516205185e-01 + 8.728000000000e-10 9.504068447266e-02 + 8.828000000000e-10 -1.334502935734e-01 + 8.928000000000e-10 -3.492430994753e-01 + 9.028000000000e-10 -5.208246106410e-01 + 9.128000000000e-10 -6.325523513325e-01 + 9.228000000000e-10 -6.848328984481e-01 + 9.328000000000e-10 -6.751615848536e-01 + 9.428000000000e-10 -6.052856721640e-01 + 9.528000000000e-10 -4.807436971446e-01 + 9.628000000000e-10 -3.066854569150e-01 + 9.728000000000e-10 -9.501170247958e-02 + 9.828000000000e-10 1.334168358063e-01 + 9.928000000000e-10 3.492707284922e-01 + 1.000000000000e-09 4.787459694615e-01 diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_08/CML_divider.sym b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_08/CML_divider.sym new file mode 100644 index 00000000..e46eb233 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_08/CML_divider.sym @@ -0,0 +1,30 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 -120 -20 -100 -20 {} +L 4 -120 20 -100 20 {} +L 4 100 -20 120 -20 {} +L 4 100 20 120 20 {} +L 7 0 -60 0 -40 {} +L 7 0 40 0 60 {} +B 5 -122.5 -22.5 -117.5 -17.5 {name=Vo+ dir=out} +B 5 -122.5 17.5 -117.5 22.5 {name=Vo- dir=out} +B 5 117.5 -22.5 122.5 -17.5 {name=Vi+ dir=in} +B 5 117.5 17.5 122.5 22.5 {name=Vi- dir=in} +B 5 -2.5 -62.5 2.5 -57.5 {name=vdd dir=inout} +B 5 -2.5 57.5 2.5 62.5 {name=gnd dir=inout} +P 4 5 100 -40 -100 -40 -100 40 100 40 100 -40 {} +T {@symname} -44 -6 0 0 0.3 0.3 {} +T {@name} 45 -52 0 0 0.2 0.2 {} +T {Vo+} -95 -24 0 0 0.2 0.2 {} +T {Vo-} -95 16 0 0 0.2 0.2 {} +T {Vi+} 95 -16 2 0 0.2 0.2 {} +T {Vi-} 95 24 2 0 0.2 0.2 {} +T {vdd} 10 -39 0 1 0.2 0.2 {} +T {gnd} -10 34 2 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_08/conditions.yaml b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_08/conditions.yaml new file mode 100644 index 00000000..ef25974c --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_08/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice +N: 8 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: ss +filename: CML_core_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_08 +temperature: '80' +vdd: '0.8' diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_09/.spiceinit b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_09/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_09/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_09/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_09/CML_core_tb.sch new file mode 100644 index 00000000..640885d9 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_09/CML_core_tb.sch @@ -0,0 +1,73 @@ +v {xschem version=3.4.8RC file_version=1.3} +G {} +K {} +V {} +S {} +F {} +E {} +N 740 -940 740 -920 {lab=GND} +N 740 -1090 740 -1060 {lab=VDD} +N 600 -1020 620 -1020 {lab=Vinplus} +N 600 -980 620 -980 {lab=Vinminus} +N 860 -1020 880 -1020 {lab=Voplus} +N 860 -980 880 -980 {lab=Vominus} +N 1150 -850 1150 -820 {lab=VDD} +N 1150 -760 1150 -730 {lab=GND} +N 930 -850 930 -820 {lab=Vinminus} +N 930 -760 930 -730 {lab=GND} +N 720 -850 720 -820 {lab=Vinplus} +N 720 -760 720 -730 {lab=GND} +C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.param A=0.3 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write CML_core_tb.raw +set appendwrite +tran 10p 1n 160p + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_09/CML_core_tb_9.data vo_diff +quit + +.endc +"} +C {opin.sym} 880 -1020 2 1 {name=p6 lab=Voplus} +C {opin.sym} 880 -980 0 0 {name=p9 lab=Vominus} +C {devices/code_shown.sym} 10 -620 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_tt + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice + +.temp -40 +" +} +C {iopin.sym} 740 -1090 0 1 {name=p2 lab=VDD} +C {ipin.sym} 600 -1020 2 1 {name=p4 lab=Vinplus} +C {ipin.sym} 600 -980 2 1 {name=p1 lab=Vinminus} +C {CML_divider.sym} 740 -1000 0 1 {name=x1} +C {vsource.sym} 1150 -790 0 0 {name=V1 value=1.2 savecurrent=false} +C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} +C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} +C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 A 10G 0 0 0)" savecurrent=false} +C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 A 10G 0 0 180)" savecurrent=false} +C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_09/CML_core_tb_9.data b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_09/CML_core_tb_9.data new file mode 100644 index 00000000..bce5cca7 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_09/CML_core_tb_9.data @@ -0,0 +1,85 @@ + 1.628000000000e-10 -5.397443385003e-01 + 1.728000000000e-10 -2.045536352810e-01 + 1.828000000000e-10 1.313863393294e-01 + 1.928000000000e-10 3.838209275603e-01 + 2.028000000000e-10 5.347375940933e-01 + 2.128000000000e-10 6.276591932156e-01 + 2.228000000000e-10 7.115621702194e-01 + 2.328000000000e-10 7.798611559065e-01 + 2.428000000000e-10 8.066497785728e-01 + 2.528000000000e-10 7.447444131165e-01 + 2.628000000000e-10 5.331798214247e-01 + 2.728000000000e-10 1.991243487460e-01 + 2.828000000000e-10 -1.352153251063e-01 + 2.928000000000e-10 -3.864762984079e-01 + 3.028000000000e-10 -5.369168929595e-01 + 3.128000000000e-10 -6.290603792866e-01 + 3.228000000000e-10 -7.126196515736e-01 + 3.328000000000e-10 -7.804415576126e-01 + 3.428000000000e-10 -8.071911048716e-01 + 3.528000000000e-10 -7.450481751688e-01 + 3.628000000000e-10 -5.336055963763e-01 + 3.728000000000e-10 -1.993198332358e-01 + 3.828000000000e-10 1.349559401886e-01 + 3.928000000000e-10 3.864112742700e-01 + 4.028000000000e-10 5.367351878370e-01 + 4.128000000000e-10 6.290489992071e-01 + 4.228000000000e-10 7.124864782962e-01 + 4.328000000000e-10 7.804750739895e-01 + 4.428000000000e-10 8.070933947437e-01 + 4.528000000000e-10 7.451033689318e-01 + 4.628000000000e-10 5.335168975820e-01 + 4.728000000000e-10 1.993807368925e-01 + 4.828000000000e-10 -1.350304895400e-01 + 4.928000000000e-10 -3.863532554681e-01 + 5.028000000000e-10 -5.368040585560e-01 + 5.128000000000e-10 -6.289909078772e-01 + 5.228000000000e-10 -7.125533448218e-01 + 5.328000000000e-10 -7.804160897110e-01 + 5.428000000000e-10 -8.071554863663e-01 + 5.528000000000e-10 -7.450422465689e-01 + 5.628000000000e-10 -5.335838460974e-01 + 5.728000000000e-10 -1.993167730115e-01 + 5.828000000000e-10 1.349726890254e-01 + 5.928000000000e-10 3.864109858256e-01 + 6.028000000000e-10 5.367479691018e-01 + 6.128000000000e-10 6.290476980129e-01 + 6.228000000000e-10 7.124950121919e-01 + 6.328000000000e-10 7.804717191606e-01 + 6.428000000000e-10 8.070994779138e-01 + 6.528000000000e-10 7.450975613250e-01 + 6.628000000000e-10 5.335259065522e-01 + 6.728000000000e-10 1.993734548210e-01 + 6.828000000000e-10 -1.350242777574e-01 + 6.928000000000e-10 -3.863605033303e-01 + 7.028000000000e-10 -5.367975294074e-01 + 7.128000000000e-10 -6.289982763959e-01 + 7.228000000000e-10 -7.125455111440e-01 + 7.328000000000e-10 -7.804238043085e-01 + 7.428000000000e-10 -8.071473680780e-01 + 7.528000000000e-10 -7.450494772754e-01 + 7.628000000000e-10 -5.335773499054e-01 + 7.728000000000e-10 -1.993230348361e-01 + 7.828000000000e-10 1.349793746975e-01 + 7.928000000000e-10 3.864055722387e-01 + 8.028000000000e-10 5.367539279153e-01 + 8.128000000000e-10 6.290427569853e-01 + 8.228000000000e-10 7.125002063044e-01 + 8.328000000000e-10 7.804668926767e-01 + 8.428000000000e-10 8.071042297758e-01 + 8.528000000000e-10 7.450922570276e-01 + 8.628000000000e-10 5.335323457616e-01 + 8.728000000000e-10 1.993673584870e-01 + 8.828000000000e-10 -1.350193573750e-01 + 8.928000000000e-10 -3.863660901230e-01 + 9.028000000000e-10 -5.367925035482e-01 + 9.128000000000e-10 -6.290039875175e-01 + 9.228000000000e-10 -7.125398122704e-01 + 9.328000000000e-10 -7.804294363608e-01 + 9.428000000000e-10 -8.071416857778e-01 + 9.528000000000e-10 -7.450548065452e-01 + 9.628000000000e-10 -5.335722743766e-01 + 9.728000000000e-10 -1.993280329539e-01 + 9.828000000000e-10 1.349843549639e-01 + 9.928000000000e-10 3.864011317450e-01 + 1.000000000000e-09 5.028020863733e-01 diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_09/CML_divider.sym b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_09/CML_divider.sym new file mode 100644 index 00000000..e46eb233 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_09/CML_divider.sym @@ -0,0 +1,30 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 -120 -20 -100 -20 {} +L 4 -120 20 -100 20 {} +L 4 100 -20 120 -20 {} +L 4 100 20 120 20 {} +L 7 0 -60 0 -40 {} +L 7 0 40 0 60 {} +B 5 -122.5 -22.5 -117.5 -17.5 {name=Vo+ dir=out} +B 5 -122.5 17.5 -117.5 22.5 {name=Vo- dir=out} +B 5 117.5 -22.5 122.5 -17.5 {name=Vi+ dir=in} +B 5 117.5 17.5 122.5 22.5 {name=Vi- dir=in} +B 5 -2.5 -62.5 2.5 -57.5 {name=vdd dir=inout} +B 5 -2.5 57.5 2.5 62.5 {name=gnd dir=inout} +P 4 5 100 -40 -100 -40 -100 40 100 40 100 -40 {} +T {@symname} -44 -6 0 0 0.3 0.3 {} +T {@name} 45 -52 0 0 0.2 0.2 {} +T {Vo+} -95 -24 0 0 0.2 0.2 {} +T {Vo-} -95 16 0 0 0.2 0.2 {} +T {Vi+} 95 -16 2 0 0.2 0.2 {} +T {Vi-} 95 24 2 0 0.2 0.2 {} +T {vdd} 10 -39 0 1 0.2 0.2 {} +T {gnd} -10 34 2 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_09/conditions.yaml b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_09/conditions.yaml new file mode 100644 index 00000000..e334a68d --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_09/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice +N: 9 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: tt +filename: CML_core_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_09 +temperature: '-40' +vdd: '1.2' diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_10/.spiceinit b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_10/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_10/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_10/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_10/CML_core_tb.sch new file mode 100644 index 00000000..d3fa88ed --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_10/CML_core_tb.sch @@ -0,0 +1,73 @@ +v {xschem version=3.4.8RC file_version=1.3} +G {} +K {} +V {} +S {} +F {} +E {} +N 740 -940 740 -920 {lab=GND} +N 740 -1090 740 -1060 {lab=VDD} +N 600 -1020 620 -1020 {lab=Vinplus} +N 600 -980 620 -980 {lab=Vinminus} +N 860 -1020 880 -1020 {lab=Voplus} +N 860 -980 880 -980 {lab=Vominus} +N 1150 -850 1150 -820 {lab=VDD} +N 1150 -760 1150 -730 {lab=GND} +N 930 -850 930 -820 {lab=Vinminus} +N 930 -760 930 -730 {lab=GND} +N 720 -850 720 -820 {lab=Vinplus} +N 720 -760 720 -730 {lab=GND} +C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.param A=0.3 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write CML_core_tb.raw +set appendwrite +tran 10p 1n 160p + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_10/CML_core_tb_10.data vo_diff +quit + +.endc +"} +C {opin.sym} 880 -1020 2 1 {name=p6 lab=Voplus} +C {opin.sym} 880 -980 0 0 {name=p9 lab=Vominus} +C {devices/code_shown.sym} 10 -620 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_ff + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice + +.temp -40 +" +} +C {iopin.sym} 740 -1090 0 1 {name=p2 lab=VDD} +C {ipin.sym} 600 -1020 2 1 {name=p4 lab=Vinplus} +C {ipin.sym} 600 -980 2 1 {name=p1 lab=Vinminus} +C {CML_divider.sym} 740 -1000 0 1 {name=x1} +C {vsource.sym} 1150 -790 0 0 {name=V1 value=1.2 savecurrent=false} +C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} +C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} +C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 A 10G 0 0 0)" savecurrent=false} +C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 A 10G 0 0 180)" savecurrent=false} +C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_10/CML_core_tb_10.data b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_10/CML_core_tb_10.data new file mode 100644 index 00000000..b27b6db0 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_10/CML_core_tb_10.data @@ -0,0 +1,85 @@ + 1.628000000000e-10 -5.293189432094e-01 + 1.728000000000e-10 -2.034299929592e-01 + 1.828000000000e-10 1.254532736892e-01 + 1.928000000000e-10 3.744603520131e-01 + 2.028000000000e-10 5.220595086358e-01 + 2.128000000000e-10 6.139346231694e-01 + 2.228000000000e-10 6.977077768020e-01 + 2.328000000000e-10 7.638951530454e-01 + 2.428000000000e-10 7.881008470503e-01 + 2.528000000000e-10 7.271434956617e-01 + 2.628000000000e-10 5.227259392947e-01 + 2.728000000000e-10 1.977807095317e-01 + 2.828000000000e-10 -1.296557480667e-01 + 2.928000000000e-10 -3.774966254092e-01 + 3.028000000000e-10 -5.245506032311e-01 + 3.128000000000e-10 -6.155925798862e-01 + 3.228000000000e-10 -6.989490114600e-01 + 3.328000000000e-10 -7.646204924296e-01 + 3.428000000000e-10 -7.887093478172e-01 + 3.528000000000e-10 -7.274783648153e-01 + 3.628000000000e-10 -5.231513423786e-01 + 3.728000000000e-10 -1.979863018154e-01 + 3.828000000000e-10 1.294013660930e-01 + 3.928000000000e-10 3.774276121382e-01 + 4.028000000000e-10 5.243833105689e-01 + 4.128000000000e-10 6.155813660155e-01 + 4.228000000000e-10 6.988272077165e-01 + 4.328000000000e-10 7.646509984988e-01 + 4.428000000000e-10 7.886185007607e-01 + 4.528000000000e-10 7.275266613790e-01 + 4.628000000000e-10 5.230676681296e-01 + 4.728000000000e-10 1.980405747385e-01 + 4.828000000000e-10 -1.294713662253e-01 + 4.928000000000e-10 -3.773761496757e-01 + 5.028000000000e-10 -5.244469821379e-01 + 5.128000000000e-10 -6.155294307936e-01 + 5.228000000000e-10 -6.988887956355e-01 + 5.328000000000e-10 -7.645972449904e-01 + 5.428000000000e-10 -7.886754254295e-01 + 5.528000000000e-10 -7.274706677122e-01 + 5.628000000000e-10 -5.231295350854e-01 + 5.728000000000e-10 -1.979806299381e-01 + 5.828000000000e-10 1.294187696545e-01 + 5.928000000000e-10 3.774292707563e-01 + 6.028000000000e-10 5.243961595933e-01 + 6.128000000000e-10 6.155814701559e-01 + 6.228000000000e-10 6.988355515168e-01 + 6.328000000000e-10 7.646484599731e-01 + 6.428000000000e-10 7.886243100181e-01 + 6.528000000000e-10 7.275215569265e-01 + 6.628000000000e-10 5.230764840752e-01 + 6.728000000000e-10 1.980332799823e-01 + 6.828000000000e-10 -1.294660192513e-01 + 6.928000000000e-10 -3.773827405650e-01 + 7.028000000000e-10 -5.244413520748e-01 + 7.128000000000e-10 -6.155361997798e-01 + 7.228000000000e-10 -6.988817029216e-01 + 7.328000000000e-10 -7.646043204444e-01 + 7.428000000000e-10 -7.886680576572e-01 + 7.528000000000e-10 -7.274772120684e-01 + 7.628000000000e-10 -5.231238849653e-01 + 7.728000000000e-10 -1.979860775160e-01 + 7.828000000000e-10 1.294249237809e-01 + 7.928000000000e-10 3.774244918330e-01 + 8.028000000000e-10 5.244015690321e-01 + 8.128000000000e-10 6.155771739166e-01 + 8.228000000000e-10 6.988402156207e-01 + 8.328000000000e-10 7.646441380646e-01 + 8.428000000000e-10 7.886285892332e-01 + 8.528000000000e-10 7.275167248781e-01 + 8.628000000000e-10 5.230825202638e-01 + 8.728000000000e-10 1.980273627479e-01 + 8.828000000000e-10 -1.294617038455e-01 + 8.928000000000e-10 -3.773878907235e-01 + 9.028000000000e-10 -5.244369215984e-01 + 9.128000000000e-10 -6.155414802599e-01 + 9.228000000000e-10 -6.988765421320e-01 + 9.328000000000e-10 -7.646094975483e-01 + 9.428000000000e-10 -7.886629049186e-01 + 9.528000000000e-10 -7.274820443091e-01 + 9.628000000000e-10 -5.231193961018e-01 + 9.728000000000e-10 -1.979905037884e-01 + 9.828000000000e-10 1.294294922144e-01 + 9.928000000000e-10 3.774205018001e-01 + 1.000000000000e-09 4.912603506308e-01 diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_10/CML_divider.sym b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_10/CML_divider.sym new file mode 100644 index 00000000..e46eb233 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_10/CML_divider.sym @@ -0,0 +1,30 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 -120 -20 -100 -20 {} +L 4 -120 20 -100 20 {} +L 4 100 -20 120 -20 {} +L 4 100 20 120 20 {} +L 7 0 -60 0 -40 {} +L 7 0 40 0 60 {} +B 5 -122.5 -22.5 -117.5 -17.5 {name=Vo+ dir=out} +B 5 -122.5 17.5 -117.5 22.5 {name=Vo- dir=out} +B 5 117.5 -22.5 122.5 -17.5 {name=Vi+ dir=in} +B 5 117.5 17.5 122.5 22.5 {name=Vi- dir=in} +B 5 -2.5 -62.5 2.5 -57.5 {name=vdd dir=inout} +B 5 -2.5 57.5 2.5 62.5 {name=gnd dir=inout} +P 4 5 100 -40 -100 -40 -100 40 100 40 100 -40 {} +T {@symname} -44 -6 0 0 0.3 0.3 {} +T {@name} 45 -52 0 0 0.2 0.2 {} +T {Vo+} -95 -24 0 0 0.2 0.2 {} +T {Vo-} -95 16 0 0 0.2 0.2 {} +T {Vi+} 95 -16 2 0 0.2 0.2 {} +T {Vi-} 95 24 2 0 0.2 0.2 {} +T {vdd} 10 -39 0 1 0.2 0.2 {} +T {gnd} -10 34 2 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_10/conditions.yaml b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_10/conditions.yaml new file mode 100644 index 00000000..9563737f --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_10/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice +N: 10 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: ff +filename: CML_core_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_10 +temperature: '-40' +vdd: '1.2' diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_11/.spiceinit b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_11/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_11/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_11/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_11/CML_core_tb.sch new file mode 100644 index 00000000..ea990b32 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_11/CML_core_tb.sch @@ -0,0 +1,73 @@ +v {xschem version=3.4.8RC file_version=1.3} +G {} +K {} +V {} +S {} +F {} +E {} +N 740 -940 740 -920 {lab=GND} +N 740 -1090 740 -1060 {lab=VDD} +N 600 -1020 620 -1020 {lab=Vinplus} +N 600 -980 620 -980 {lab=Vinminus} +N 860 -1020 880 -1020 {lab=Voplus} +N 860 -980 880 -980 {lab=Vominus} +N 1150 -850 1150 -820 {lab=VDD} +N 1150 -760 1150 -730 {lab=GND} +N 930 -850 930 -820 {lab=Vinminus} +N 930 -760 930 -730 {lab=GND} +N 720 -850 720 -820 {lab=Vinplus} +N 720 -760 720 -730 {lab=GND} +C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.param A=0.3 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write CML_core_tb.raw +set appendwrite +tran 10p 1n 160p + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_11/CML_core_tb_11.data vo_diff +quit + +.endc +"} +C {opin.sym} 880 -1020 2 1 {name=p6 lab=Voplus} +C {opin.sym} 880 -980 0 0 {name=p9 lab=Vominus} +C {devices/code_shown.sym} 10 -620 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_ss + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice + +.temp -40 +" +} +C {iopin.sym} 740 -1090 0 1 {name=p2 lab=VDD} +C {ipin.sym} 600 -1020 2 1 {name=p4 lab=Vinplus} +C {ipin.sym} 600 -980 2 1 {name=p1 lab=Vinminus} +C {CML_divider.sym} 740 -1000 0 1 {name=x1} +C {vsource.sym} 1150 -790 0 0 {name=V1 value=1.2 savecurrent=false} +C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} +C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} +C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 A 10G 0 0 0)" savecurrent=false} +C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 A 10G 0 0 180)" savecurrent=false} +C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_11/CML_core_tb_11.data b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_11/CML_core_tb_11.data new file mode 100644 index 00000000..799f8459 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_11/CML_core_tb_11.data @@ -0,0 +1,85 @@ + 1.628000000000e-10 -5.473675478550e-01 + 1.728000000000e-10 -2.087893101739e-01 + 1.828000000000e-10 1.310494751476e-01 + 1.928000000000e-10 3.871555645678e-01 + 2.028000000000e-10 5.437689230363e-01 + 2.128000000000e-10 6.391330299748e-01 + 2.228000000000e-10 7.213082317981e-01 + 2.328000000000e-10 7.903248370025e-01 + 2.428000000000e-10 8.187618792919e-01 + 2.528000000000e-10 7.555729663838e-01 + 2.628000000000e-10 5.409345054541e-01 + 2.728000000000e-10 2.036912835862e-01 + 2.828000000000e-10 -1.345140506878e-01 + 2.928000000000e-10 -3.895370892644e-01 + 3.028000000000e-10 -5.457400052530e-01 + 3.128000000000e-10 -6.403498057265e-01 + 3.228000000000e-10 -7.222286336937e-01 + 3.328000000000e-10 -7.907911780827e-01 + 3.428000000000e-10 -8.192361080664e-01 + 3.528000000000e-10 -7.558198978931e-01 + 3.628000000000e-10 -5.413206307136e-01 + 3.728000000000e-10 -2.038438399825e-01 + 3.828000000000e-10 1.342763346632e-01 + 3.928000000000e-10 3.894921044587e-01 + 4.028000000000e-10 5.455616788274e-01 + 4.128000000000e-10 6.403489734683e-01 + 4.228000000000e-10 7.220944352324e-01 + 4.328000000000e-10 7.908322596821e-01 + 4.428000000000e-10 8.191363162855e-01 + 4.528000000000e-10 7.558824803046e-01 + 4.628000000000e-10 5.412307821184e-01 + 4.728000000000e-10 2.039121351986e-01 + 4.828000000000e-10 -1.343528713892e-01 + 4.928000000000e-10 -3.894290190191e-01 + 5.028000000000e-10 -5.456335562174e-01 + 5.128000000000e-10 -6.402860869065e-01 + 5.228000000000e-10 -7.221652152444e-01 + 5.328000000000e-10 -7.907686614943e-01 + 5.428000000000e-10 -8.192023796026e-01 + 5.528000000000e-10 -7.558173441778e-01 + 5.628000000000e-10 -5.413004970284e-01 + 5.728000000000e-10 -2.038447386050e-01 + 5.828000000000e-10 1.342913524064e-01 + 5.928000000000e-10 3.894897157728e-01 + 6.028000000000e-10 5.455737058766e-01 + 6.128000000000e-10 6.403462778603e-01 + 6.228000000000e-10 7.221032530671e-01 + 6.328000000000e-10 7.908278354740e-01 + 6.428000000000e-10 8.191430293573e-01 + 6.528000000000e-10 7.558759446864e-01 + 6.628000000000e-10 5.412396296665e-01 + 6.728000000000e-10 2.039046702204e-01 + 6.828000000000e-10 -1.343459163903e-01 + 6.928000000000e-10 -3.894366779769e-01 + 7.028000000000e-10 -5.456262483653e-01 + 7.128000000000e-10 -6.402940065215e-01 + 7.228000000000e-10 -7.221570137640e-01 + 7.328000000000e-10 -7.907769448806e-01 + 7.428000000000e-10 -8.191938542033e-01 + 7.528000000000e-10 -7.558251320231e-01 + 7.628000000000e-10 -5.412933191298e-01 + 7.728000000000e-10 -2.038518419443e-01 + 7.828000000000e-10 1.342982918430e-01 + 7.928000000000e-10 3.894837914532e-01 + 8.028000000000e-10 5.455799247329e-01 + 8.128000000000e-10 6.403408689327e-01 + 8.228000000000e-10 7.221089932485e-01 + 8.328000000000e-10 7.908225333386e-01 + 8.428000000000e-10 8.191482615363e-01 + 8.528000000000e-10 7.558702665648e-01 + 8.628000000000e-10 5.412462517638e-01 + 8.728000000000e-10 2.038984202104e-01 + 8.828000000000e-10 -1.343404705774e-01 + 8.928000000000e-10 -3.894425333092e-01 + 9.028000000000e-10 -5.456206778041e-01 + 9.128000000000e-10 -6.403000729433e-01 + 9.228000000000e-10 -7.221509667404e-01 + 9.328000000000e-10 -7.907829740936e-01 + 9.428000000000e-10 -8.191877974471e-01 + 9.528000000000e-10 -7.558308764830e-01 + 9.628000000000e-10 -5.412878201925e-01 + 9.728000000000e-10 -2.038573569097e-01 + 9.828000000000e-10 1.343035264203e-01 + 9.928000000000e-10 3.894790170617e-01 + 1.000000000000e-09 5.100069898815e-01 diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_11/CML_divider.sym b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_11/CML_divider.sym new file mode 100644 index 00000000..e46eb233 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_11/CML_divider.sym @@ -0,0 +1,30 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 -120 -20 -100 -20 {} +L 4 -120 20 -100 20 {} +L 4 100 -20 120 -20 {} +L 4 100 20 120 20 {} +L 7 0 -60 0 -40 {} +L 7 0 40 0 60 {} +B 5 -122.5 -22.5 -117.5 -17.5 {name=Vo+ dir=out} +B 5 -122.5 17.5 -117.5 22.5 {name=Vo- dir=out} +B 5 117.5 -22.5 122.5 -17.5 {name=Vi+ dir=in} +B 5 117.5 17.5 122.5 22.5 {name=Vi- dir=in} +B 5 -2.5 -62.5 2.5 -57.5 {name=vdd dir=inout} +B 5 -2.5 57.5 2.5 62.5 {name=gnd dir=inout} +P 4 5 100 -40 -100 -40 -100 40 100 40 100 -40 {} +T {@symname} -44 -6 0 0 0.3 0.3 {} +T {@name} 45 -52 0 0 0.2 0.2 {} +T {Vo+} -95 -24 0 0 0.2 0.2 {} +T {Vo-} -95 16 0 0 0.2 0.2 {} +T {Vi+} 95 -16 2 0 0.2 0.2 {} +T {Vi-} 95 24 2 0 0.2 0.2 {} +T {vdd} 10 -39 0 1 0.2 0.2 {} +T {gnd} -10 34 2 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_11/conditions.yaml b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_11/conditions.yaml new file mode 100644 index 00000000..0d4e1f0c --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_11/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice +N: 11 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: ss +filename: CML_core_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_11 +temperature: '-40' +vdd: '1.2' diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_12/.spiceinit b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_12/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_12/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_12/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_12/CML_core_tb.sch new file mode 100644 index 00000000..dac359f6 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_12/CML_core_tb.sch @@ -0,0 +1,73 @@ +v {xschem version=3.4.8RC file_version=1.3} +G {} +K {} +V {} +S {} +F {} +E {} +N 740 -940 740 -920 {lab=GND} +N 740 -1090 740 -1060 {lab=VDD} +N 600 -1020 620 -1020 {lab=Vinplus} +N 600 -980 620 -980 {lab=Vinminus} +N 860 -1020 880 -1020 {lab=Voplus} +N 860 -980 880 -980 {lab=Vominus} +N 1150 -850 1150 -820 {lab=VDD} +N 1150 -760 1150 -730 {lab=GND} +N 930 -850 930 -820 {lab=Vinminus} +N 930 -760 930 -730 {lab=GND} +N 720 -850 720 -820 {lab=Vinplus} +N 720 -760 720 -730 {lab=GND} +C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.param A=0.3 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write CML_core_tb.raw +set appendwrite +tran 10p 1n 160p + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_12/CML_core_tb_12.data vo_diff +quit + +.endc +"} +C {opin.sym} 880 -1020 2 1 {name=p6 lab=Voplus} +C {opin.sym} 880 -980 0 0 {name=p9 lab=Vominus} +C {devices/code_shown.sym} 10 -620 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_tt + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice + +.temp 27 +" +} +C {iopin.sym} 740 -1090 0 1 {name=p2 lab=VDD} +C {ipin.sym} 600 -1020 2 1 {name=p4 lab=Vinplus} +C {ipin.sym} 600 -980 2 1 {name=p1 lab=Vinminus} +C {CML_divider.sym} 740 -1000 0 1 {name=x1} +C {vsource.sym} 1150 -790 0 0 {name=V1 value=1.2 savecurrent=false} +C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} +C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} +C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 A 10G 0 0 0)" savecurrent=false} +C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 A 10G 0 0 180)" savecurrent=false} +C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_12/CML_core_tb_12.data b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_12/CML_core_tb_12.data new file mode 100644 index 00000000..db4e4cce --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_12/CML_core_tb_12.data @@ -0,0 +1,85 @@ + 1.628000000000e-10 -5.049557277618e-01 + 1.728000000000e-10 -1.958466480437e-01 + 1.828000000000e-10 1.196319367700e-01 + 1.928000000000e-10 3.700244189406e-01 + 2.028000000000e-10 5.308067637731e-01 + 2.128000000000e-10 6.311299202315e-01 + 2.228000000000e-10 7.086540860403e-01 + 2.328000000000e-10 7.625529356493e-01 + 2.428000000000e-10 7.708473475114e-01 + 2.528000000000e-10 6.980446990655e-01 + 2.628000000000e-10 4.981026307256e-01 + 2.728000000000e-10 1.904449044265e-01 + 2.828000000000e-10 -1.236510258628e-01 + 2.928000000000e-10 -3.730975798774e-01 + 3.028000000000e-10 -5.333436235403e-01 + 3.128000000000e-10 -6.328422885796e-01 + 3.228000000000e-10 -7.099622515515e-01 + 3.328000000000e-10 -7.633093670089e-01 + 3.428000000000e-10 -7.714462858000e-01 + 3.528000000000e-10 -6.983543456334e-01 + 3.628000000000e-10 -4.984830350414e-01 + 3.728000000000e-10 -1.906133898346e-01 + 3.828000000000e-10 1.234140438752e-01 + 3.928000000000e-10 3.730258572177e-01 + 4.028000000000e-10 5.331667972487e-01 + 4.128000000000e-10 6.328214645319e-01 + 4.228000000000e-10 7.098336990067e-01 + 4.328000000000e-10 7.633335528675e-01 + 4.428000000000e-10 7.713603033543e-01 + 4.528000000000e-10 6.984040906368e-01 + 4.628000000000e-10 4.984087981115e-01 + 4.728000000000e-10 1.906698925098e-01 + 4.828000000000e-10 -1.234792426423e-01 + 4.928000000000e-10 -3.729733539485e-01 + 5.028000000000e-10 -5.332277682129e-01 + 5.128000000000e-10 -6.327690017914e-01 + 5.228000000000e-10 -7.098933602520e-01 + 5.328000000000e-10 -7.632805035294e-01 + 5.428000000000e-10 -7.714147767047e-01 + 5.528000000000e-10 -6.983493927960e-01 + 5.628000000000e-10 -4.984657326360e-01 + 5.728000000000e-10 -1.906133403657e-01 + 5.828000000000e-10 1.234275058651e-01 + 5.928000000000e-10 3.730246636548e-01 + 6.028000000000e-10 5.331775888699e-01 + 6.128000000000e-10 6.328197652536e-01 + 6.228000000000e-10 7.098419058182e-01 + 6.328000000000e-10 7.633301342197e-01 + 6.428000000000e-10 7.713661487972e-01 + 6.528000000000e-10 6.983986251010e-01 + 6.628000000000e-10 4.984160910452e-01 + 6.728000000000e-10 1.906635868460e-01 + 6.828000000000e-10 -1.234734747225e-01 + 6.928000000000e-10 -3.729797013887e-01 + 7.028000000000e-10 -5.332215969565e-01 + 7.128000000000e-10 -6.327757131741e-01 + 7.228000000000e-10 -7.098865351622e-01 + 7.328000000000e-10 -7.632871392149e-01 + 7.428000000000e-10 -7.714081948986e-01 + 7.528000000000e-10 -6.983555969606e-01 + 7.628000000000e-10 -4.984601688237e-01 + 7.728000000000e-10 -1.906192454806e-01 + 7.828000000000e-10 1.234332321656e-01 + 7.928000000000e-10 3.730195983111e-01 + 8.028000000000e-10 5.331826746949e-01 + 8.128000000000e-10 6.328151783475e-01 + 8.228000000000e-10 7.098466992587e-01 + 8.328000000000e-10 7.633256332241e-01 + 8.428000000000e-10 7.713705417094e-01 + 8.528000000000e-10 6.983937777920e-01 + 8.628000000000e-10 4.984215072239e-01 + 8.728000000000e-10 1.906583322627e-01 + 8.828000000000e-10 -1.234689419945e-01 + 8.928000000000e-10 -3.729845695752e-01 + 9.028000000000e-10 -5.332169477613e-01 + 9.128000000000e-10 -6.327807857544e-01 + 9.228000000000e-10 -7.098815617208e-01 + 9.328000000000e-10 -7.632920474235e-01 + 9.428000000000e-10 -7.714033753149e-01 + 9.528000000000e-10 -6.983602366678e-01 + 9.628000000000e-10 -4.984557776243e-01 + 9.728000000000e-10 -1.906237729891e-01 + 9.828000000000e-10 1.234375916302e-01 + 9.928000000000e-10 3.730155682884e-01 + 1.000000000000e-09 4.959193237551e-01 diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_12/CML_divider.sym b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_12/CML_divider.sym new file mode 100644 index 00000000..e46eb233 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_12/CML_divider.sym @@ -0,0 +1,30 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 -120 -20 -100 -20 {} +L 4 -120 20 -100 20 {} +L 4 100 -20 120 -20 {} +L 4 100 20 120 20 {} +L 7 0 -60 0 -40 {} +L 7 0 40 0 60 {} +B 5 -122.5 -22.5 -117.5 -17.5 {name=Vo+ dir=out} +B 5 -122.5 17.5 -117.5 22.5 {name=Vo- dir=out} +B 5 117.5 -22.5 122.5 -17.5 {name=Vi+ dir=in} +B 5 117.5 17.5 122.5 22.5 {name=Vi- dir=in} +B 5 -2.5 -62.5 2.5 -57.5 {name=vdd dir=inout} +B 5 -2.5 57.5 2.5 62.5 {name=gnd dir=inout} +P 4 5 100 -40 -100 -40 -100 40 100 40 100 -40 {} +T {@symname} -44 -6 0 0 0.3 0.3 {} +T {@name} 45 -52 0 0 0.2 0.2 {} +T {Vo+} -95 -24 0 0 0.2 0.2 {} +T {Vo-} -95 16 0 0 0.2 0.2 {} +T {Vi+} 95 -16 2 0 0.2 0.2 {} +T {Vi-} 95 24 2 0 0.2 0.2 {} +T {vdd} 10 -39 0 1 0.2 0.2 {} +T {gnd} -10 34 2 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_12/conditions.yaml b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_12/conditions.yaml new file mode 100644 index 00000000..b0f21e40 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_12/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice +N: 12 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: tt +filename: CML_core_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_12 +temperature: '27' +vdd: '1.2' diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_13/.spiceinit b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_13/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_13/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_13/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_13/CML_core_tb.sch new file mode 100644 index 00000000..2dec963c --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_13/CML_core_tb.sch @@ -0,0 +1,73 @@ +v {xschem version=3.4.8RC file_version=1.3} +G {} +K {} +V {} +S {} +F {} +E {} +N 740 -940 740 -920 {lab=GND} +N 740 -1090 740 -1060 {lab=VDD} +N 600 -1020 620 -1020 {lab=Vinplus} +N 600 -980 620 -980 {lab=Vinminus} +N 860 -1020 880 -1020 {lab=Voplus} +N 860 -980 880 -980 {lab=Vominus} +N 1150 -850 1150 -820 {lab=VDD} +N 1150 -760 1150 -730 {lab=GND} +N 930 -850 930 -820 {lab=Vinminus} +N 930 -760 930 -730 {lab=GND} +N 720 -850 720 -820 {lab=Vinplus} +N 720 -760 720 -730 {lab=GND} +C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.param A=0.3 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write CML_core_tb.raw +set appendwrite +tran 10p 1n 160p + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_13/CML_core_tb_13.data vo_diff +quit + +.endc +"} +C {opin.sym} 880 -1020 2 1 {name=p6 lab=Voplus} +C {opin.sym} 880 -980 0 0 {name=p9 lab=Vominus} +C {devices/code_shown.sym} 10 -620 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_ff + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice + +.temp 27 +" +} +C {iopin.sym} 740 -1090 0 1 {name=p2 lab=VDD} +C {ipin.sym} 600 -1020 2 1 {name=p4 lab=Vinplus} +C {ipin.sym} 600 -980 2 1 {name=p1 lab=Vinminus} +C {CML_divider.sym} 740 -1000 0 1 {name=x1} +C {vsource.sym} 1150 -790 0 0 {name=V1 value=1.2 savecurrent=false} +C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} +C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} +C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 A 10G 0 0 0)" savecurrent=false} +C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 A 10G 0 0 180)" savecurrent=false} +C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_13/CML_core_tb_13.data b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_13/CML_core_tb_13.data new file mode 100644 index 00000000..539ab7b7 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_13/CML_core_tb_13.data @@ -0,0 +1,85 @@ + 1.628000000000e-10 -4.935497259980e-01 + 1.728000000000e-10 -1.928633983658e-01 + 1.828000000000e-10 1.160949240371e-01 + 1.928000000000e-10 3.619360857197e-01 + 2.028000000000e-10 5.185143131218e-01 + 2.128000000000e-10 6.170086772416e-01 + 2.228000000000e-10 6.939063598865e-01 + 2.328000000000e-10 7.457993341265e-01 + 2.428000000000e-10 7.520509596304e-01 + 2.528000000000e-10 6.804739824857e-01 + 2.628000000000e-10 4.870426149481e-01 + 2.728000000000e-10 1.875308246798e-01 + 2.828000000000e-10 -1.202389208092e-01 + 2.928000000000e-10 -3.651754434827e-01 + 3.028000000000e-10 -5.211918880427e-01 + 3.128000000000e-10 -6.188469707889e-01 + 3.228000000000e-10 -6.953072467312e-01 + 3.328000000000e-10 -7.466129151979e-01 + 3.428000000000e-10 -7.526565311823e-01 + 3.528000000000e-10 -6.807675409917e-01 + 3.628000000000e-10 -4.873945801883e-01 + 3.728000000000e-10 -1.876809763872e-01 + 3.828000000000e-10 1.200199744899e-01 + 3.928000000000e-10 3.651151173578e-01 + 4.028000000000e-10 5.210322421793e-01 + 4.128000000000e-10 6.188330192958e-01 + 4.228000000000e-10 6.951893716680e-01 + 4.328000000000e-10 7.466394998986e-01 + 4.428000000000e-10 7.525773069027e-01 + 4.528000000000e-10 6.808165070916e-01 + 4.628000000000e-10 4.873248087716e-01 + 4.728000000000e-10 1.877358679741e-01 + 4.828000000000e-10 -1.200819840902e-01 + 4.928000000000e-10 -3.650646413699e-01 + 5.028000000000e-10 -5.210903047408e-01 + 5.128000000000e-10 -6.187830156405e-01 + 5.228000000000e-10 -6.952462050643e-01 + 5.328000000000e-10 -7.465883056073e-01 + 5.428000000000e-10 -7.526293067125e-01 + 5.528000000000e-10 -6.807638103361e-01 + 5.628000000000e-10 -4.873795115624e-01 + 5.728000000000e-10 -1.876807689254e-01 + 5.828000000000e-10 1.200326256254e-01 + 5.928000000000e-10 3.651139754788e-01 + 6.028000000000e-10 5.210426454606e-01 + 6.128000000000e-10 6.188315227579e-01 + 6.228000000000e-10 6.951972695911e-01 + 6.328000000000e-10 7.466359762402e-01 + 6.428000000000e-10 7.525829976005e-01 + 6.528000000000e-10 6.808110143898e-01 + 6.628000000000e-10 4.873318873720e-01 + 6.728000000000e-10 1.877292356433e-01 + 6.828000000000e-10 -1.200767202072e-01 + 6.928000000000e-10 -3.650706499628e-01 + 7.028000000000e-10 -5.210847183857e-01 + 7.128000000000e-10 -6.187893543189e-01 + 7.228000000000e-10 -6.952399017798e-01 + 7.328000000000e-10 -7.465944604664e-01 + 7.428000000000e-10 -7.526232942576e-01 + 7.528000000000e-10 -6.807695137827e-01 + 7.628000000000e-10 -4.873744121182e-01 + 7.728000000000e-10 -1.876860880622e-01 + 7.828000000000e-10 1.200380835632e-01 + 7.928000000000e-10 3.651091778387e-01 + 8.028000000000e-10 5.210475167171e-01 + 8.128000000000e-10 6.188272213187e-01 + 8.228000000000e-10 6.952018279574e-01 + 8.328000000000e-10 7.466316140292e-01 + 8.428000000000e-10 7.525872528114e-01 + 8.528000000000e-10 6.808063071094e-01 + 8.628000000000e-10 4.873371355126e-01 + 8.728000000000e-10 1.877239857571e-01 + 8.828000000000e-10 -1.200724809112e-01 + 8.928000000000e-10 -3.650752679165e-01 + 9.028000000000e-10 -5.210804068397e-01 + 9.128000000000e-10 -6.187941569931e-01 + 9.228000000000e-10 -6.952352466105e-01 + 9.328000000000e-10 -7.465990720366e-01 + 9.428000000000e-10 -7.526188226163e-01 + 9.528000000000e-10 -6.807738360998e-01 + 9.628000000000e-10 -4.873703126609e-01 + 9.728000000000e-10 -1.876902725775e-01 + 9.828000000000e-10 1.200422409457e-01 + 9.928000000000e-10 3.651053453859e-01 + 1.000000000000e-09 4.847952698035e-01 diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_13/CML_divider.sym b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_13/CML_divider.sym new file mode 100644 index 00000000..e46eb233 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_13/CML_divider.sym @@ -0,0 +1,30 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 -120 -20 -100 -20 {} +L 4 -120 20 -100 20 {} +L 4 100 -20 120 -20 {} +L 4 100 20 120 20 {} +L 7 0 -60 0 -40 {} +L 7 0 40 0 60 {} +B 5 -122.5 -22.5 -117.5 -17.5 {name=Vo+ dir=out} +B 5 -122.5 17.5 -117.5 22.5 {name=Vo- dir=out} +B 5 117.5 -22.5 122.5 -17.5 {name=Vi+ dir=in} +B 5 117.5 17.5 122.5 22.5 {name=Vi- dir=in} +B 5 -2.5 -62.5 2.5 -57.5 {name=vdd dir=inout} +B 5 -2.5 57.5 2.5 62.5 {name=gnd dir=inout} +P 4 5 100 -40 -100 -40 -100 40 100 40 100 -40 {} +T {@symname} -44 -6 0 0 0.3 0.3 {} +T {@name} 45 -52 0 0 0.2 0.2 {} +T {Vo+} -95 -24 0 0 0.2 0.2 {} +T {Vo-} -95 16 0 0 0.2 0.2 {} +T {Vi+} 95 -16 2 0 0.2 0.2 {} +T {Vi-} 95 24 2 0 0.2 0.2 {} +T {vdd} 10 -39 0 1 0.2 0.2 {} +T {gnd} -10 34 2 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_13/conditions.yaml b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_13/conditions.yaml new file mode 100644 index 00000000..4bf35c87 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_13/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice +N: 13 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: ff +filename: CML_core_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_13 +temperature: '27' +vdd: '1.2' diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_14/.spiceinit b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_14/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_14/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_14/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_14/CML_core_tb.sch new file mode 100644 index 00000000..c5a0f74e --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_14/CML_core_tb.sch @@ -0,0 +1,73 @@ +v {xschem version=3.4.8RC file_version=1.3} +G {} +K {} +V {} +S {} +F {} +E {} +N 740 -940 740 -920 {lab=GND} +N 740 -1090 740 -1060 {lab=VDD} +N 600 -1020 620 -1020 {lab=Vinplus} +N 600 -980 620 -980 {lab=Vinminus} +N 860 -1020 880 -1020 {lab=Voplus} +N 860 -980 880 -980 {lab=Vominus} +N 1150 -850 1150 -820 {lab=VDD} +N 1150 -760 1150 -730 {lab=GND} +N 930 -850 930 -820 {lab=Vinminus} +N 930 -760 930 -730 {lab=GND} +N 720 -850 720 -820 {lab=Vinplus} +N 720 -760 720 -730 {lab=GND} +C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.param A=0.3 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write CML_core_tb.raw +set appendwrite +tran 10p 1n 160p + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_14/CML_core_tb_14.data vo_diff +quit + +.endc +"} +C {opin.sym} 880 -1020 2 1 {name=p6 lab=Voplus} +C {opin.sym} 880 -980 0 0 {name=p9 lab=Vominus} +C {devices/code_shown.sym} 10 -620 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_ss + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice + +.temp 27 +" +} +C {iopin.sym} 740 -1090 0 1 {name=p2 lab=VDD} +C {ipin.sym} 600 -1020 2 1 {name=p4 lab=Vinplus} +C {ipin.sym} 600 -980 2 1 {name=p1 lab=Vinminus} +C {CML_divider.sym} 740 -1000 0 1 {name=x1} +C {vsource.sym} 1150 -790 0 0 {name=V1 value=1.2 savecurrent=false} +C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} +C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} +C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 A 10G 0 0 0)" savecurrent=false} +C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 A 10G 0 0 180)" savecurrent=false} +C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_14/CML_core_tb_14.data b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_14/CML_core_tb_14.data new file mode 100644 index 00000000..3796cea3 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_14/CML_core_tb_14.data @@ -0,0 +1,85 @@ + 1.628000000000e-10 -5.133282675634e-01 + 1.728000000000e-10 -2.031582081928e-01 + 1.828000000000e-10 1.144804838339e-01 + 1.928000000000e-10 3.698591588516e-01 + 2.028000000000e-10 5.380258146680e-01 + 2.128000000000e-10 6.422542980920e-01 + 2.228000000000e-10 7.191574927620e-01 + 2.328000000000e-10 7.734390216007e-01 + 2.428000000000e-10 7.823512104827e-01 + 2.528000000000e-10 7.081342613122e-01 + 2.628000000000e-10 5.065809773945e-01 + 2.728000000000e-10 1.980707374060e-01 + 2.828000000000e-10 -1.181831896095e-01 + 2.928000000000e-10 -3.727163876319e-01 + 3.028000000000e-10 -5.404428949084e-01 + 3.128000000000e-10 -6.438704305572e-01 + 3.228000000000e-10 -7.204145434420e-01 + 3.328000000000e-10 -7.741471374370e-01 + 3.428000000000e-10 -7.829309638154e-01 + 3.528000000000e-10 -7.084110972821e-01 + 3.628000000000e-10 -5.069426471107e-01 + 3.728000000000e-10 -1.982066720174e-01 + 3.828000000000e-10 1.179564926067e-01 + 3.928000000000e-10 3.726621714283e-01 + 4.028000000000e-10 5.402630628674e-01 + 4.128000000000e-10 6.438601752956e-01 + 4.228000000000e-10 7.202791375194e-01 + 4.328000000000e-10 7.741793827377e-01 + 4.428000000000e-10 7.828380754967e-01 + 4.528000000000e-10 7.084693803333e-01 + 4.628000000000e-10 5.068627667504e-01 + 4.728000000000e-10 1.982719515445e-01 + 4.828000000000e-10 -1.180275895897e-01 + 4.928000000000e-10 -3.726028735362e-01 + 5.028000000000e-10 -5.403301024789e-01 + 5.128000000000e-10 -6.438008084190e-01 + 5.228000000000e-10 -7.203455420725e-01 + 5.328000000000e-10 -7.741198297783e-01 + 5.428000000000e-10 -7.828987326701e-01 + 5.528000000000e-10 -7.084084859242e-01 + 5.628000000000e-10 -5.069251044876e-01 + 5.728000000000e-10 -1.982094732584e-01 + 5.828000000000e-10 1.179697981212e-01 + 5.928000000000e-10 3.726595322461e-01 + 6.028000000000e-10 5.402739437431e-01 + 6.128000000000e-10 6.438573026479e-01 + 6.228000000000e-10 7.202880216174e-01 + 6.328000000000e-10 7.741750830136e-01 + 6.428000000000e-10 7.828445699494e-01 + 6.528000000000e-10 7.084631989914e-01 + 6.628000000000e-10 5.068703543607e-01 + 6.728000000000e-10 1.982651160797e-01 + 6.828000000000e-10 -1.180209524418e-01 + 6.928000000000e-10 -3.726100259571e-01 + 7.028000000000e-10 -5.403229404029e-01 + 7.128000000000e-10 -6.438083895554e-01 + 7.228000000000e-10 -7.203378638829e-01 + 7.328000000000e-10 -7.741273273776e-01 + 7.428000000000e-10 -7.828912312659e-01 + 7.528000000000e-10 -7.084155733246e-01 + 7.628000000000e-10 -5.069185371484e-01 + 7.728000000000e-10 -1.982163796445e-01 + 7.828000000000e-10 1.179761824049e-01 + 7.928000000000e-10 3.726538824343e-01 + 8.028000000000e-10 5.402795684719e-01 + 8.128000000000e-10 6.438520994328e-01 + 8.228000000000e-10 7.202935093188e-01 + 8.328000000000e-10 7.741699689895e-01 + 8.428000000000e-10 7.828494756723e-01 + 8.528000000000e-10 7.084578188073e-01 + 8.628000000000e-10 5.068761410729e-01 + 8.728000000000e-10 1.982594122387e-01 + 8.828000000000e-10 -1.180157633845e-01 + 8.928000000000e-10 -3.726154653834e-01 + 9.028000000000e-10 -5.403175771302e-01 + 9.128000000000e-10 -6.438140825829e-01 + 9.228000000000e-10 -7.203322576361e-01 + 9.328000000000e-10 -7.741328388949e-01 + 9.428000000000e-10 -7.828857350121e-01 + 9.528000000000e-10 -7.084208512479e-01 + 9.628000000000e-10 -5.069134738545e-01 + 9.728000000000e-10 -1.982215797151e-01 + 9.828000000000e-10 1.179810466336e-01 + 9.928000000000e-10 3.726493985613e-01 + 1.000000000000e-09 5.010433738758e-01 diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_14/CML_divider.sym b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_14/CML_divider.sym new file mode 100644 index 00000000..e46eb233 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_14/CML_divider.sym @@ -0,0 +1,30 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 -120 -20 -100 -20 {} +L 4 -120 20 -100 20 {} +L 4 100 -20 120 -20 {} +L 4 100 20 120 20 {} +L 7 0 -60 0 -40 {} +L 7 0 40 0 60 {} +B 5 -122.5 -22.5 -117.5 -17.5 {name=Vo+ dir=out} +B 5 -122.5 17.5 -117.5 22.5 {name=Vo- dir=out} +B 5 117.5 -22.5 122.5 -17.5 {name=Vi+ dir=in} +B 5 117.5 17.5 122.5 22.5 {name=Vi- dir=in} +B 5 -2.5 -62.5 2.5 -57.5 {name=vdd dir=inout} +B 5 -2.5 57.5 2.5 62.5 {name=gnd dir=inout} +P 4 5 100 -40 -100 -40 -100 40 100 40 100 -40 {} +T {@symname} -44 -6 0 0 0.3 0.3 {} +T {@name} 45 -52 0 0 0.2 0.2 {} +T {Vo+} -95 -24 0 0 0.2 0.2 {} +T {Vo-} -95 16 0 0 0.2 0.2 {} +T {Vi+} 95 -16 2 0 0.2 0.2 {} +T {Vi-} 95 24 2 0 0.2 0.2 {} +T {vdd} 10 -39 0 1 0.2 0.2 {} +T {gnd} -10 34 2 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_14/conditions.yaml b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_14/conditions.yaml new file mode 100644 index 00000000..63e5d64f --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_14/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice +N: 14 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: ss +filename: CML_core_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_14 +temperature: '27' +vdd: '1.2' diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_15/.spiceinit b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_15/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_15/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_15/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_15/CML_core_tb.sch new file mode 100644 index 00000000..bb1e1970 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_15/CML_core_tb.sch @@ -0,0 +1,73 @@ +v {xschem version=3.4.8RC file_version=1.3} +G {} +K {} +V {} +S {} +F {} +E {} +N 740 -940 740 -920 {lab=GND} +N 740 -1090 740 -1060 {lab=VDD} +N 600 -1020 620 -1020 {lab=Vinplus} +N 600 -980 620 -980 {lab=Vinminus} +N 860 -1020 880 -1020 {lab=Voplus} +N 860 -980 880 -980 {lab=Vominus} +N 1150 -850 1150 -820 {lab=VDD} +N 1150 -760 1150 -730 {lab=GND} +N 930 -850 930 -820 {lab=Vinminus} +N 930 -760 930 -730 {lab=GND} +N 720 -850 720 -820 {lab=Vinplus} +N 720 -760 720 -730 {lab=GND} +C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.param A=0.3 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write CML_core_tb.raw +set appendwrite +tran 10p 1n 160p + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_15/CML_core_tb_15.data vo_diff +quit + +.endc +"} +C {opin.sym} 880 -1020 2 1 {name=p6 lab=Voplus} +C {opin.sym} 880 -980 0 0 {name=p9 lab=Vominus} +C {devices/code_shown.sym} 10 -620 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_tt + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice + +.temp 80 +" +} +C {iopin.sym} 740 -1090 0 1 {name=p2 lab=VDD} +C {ipin.sym} 600 -1020 2 1 {name=p4 lab=Vinplus} +C {ipin.sym} 600 -980 2 1 {name=p1 lab=Vinminus} +C {CML_divider.sym} 740 -1000 0 1 {name=x1} +C {vsource.sym} 1150 -790 0 0 {name=V1 value=1.2 savecurrent=false} +C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} +C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} +C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 A 10G 0 0 0)" savecurrent=false} +C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 A 10G 0 0 180)" savecurrent=false} +C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_15/CML_core_tb_15.data b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_15/CML_core_tb_15.data new file mode 100644 index 00000000..14866dfa --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_15/CML_core_tb_15.data @@ -0,0 +1,85 @@ + 1.628000000000e-10 -4.764925698370e-01 + 1.728000000000e-10 -1.934019301871e-01 + 1.828000000000e-10 1.027850457497e-01 + 1.928000000000e-10 3.499528968595e-01 + 2.028000000000e-10 5.186059326129e-01 + 2.128000000000e-10 6.254912177700e-01 + 2.228000000000e-10 6.994356057335e-01 + 2.328000000000e-10 7.419604616039e-01 + 2.428000000000e-10 7.366001230120e-01 + 2.528000000000e-10 6.575586826882e-01 + 2.628000000000e-10 4.703480039804e-01 + 2.728000000000e-10 1.887311437228e-01 + 2.828000000000e-10 -1.064955609068e-01 + 2.928000000000e-10 -3.530674432656e-01 + 3.028000000000e-10 -5.214103928852e-01 + 3.128000000000e-10 -6.276329249236e-01 + 3.228000000000e-10 -7.010919569869e-01 + 3.328000000000e-10 -7.428528846984e-01 + 3.428000000000e-10 -7.371070425945e-01 + 3.528000000000e-10 -6.576931102984e-01 + 3.628000000000e-10 -4.705213908487e-01 + 3.728000000000e-10 -1.887451417089e-01 + 3.828000000000e-10 1.063771169054e-01 + 3.928000000000e-10 3.530644558224e-01 + 4.028000000000e-10 5.212882945537e-01 + 4.128000000000e-10 6.276273956697e-01 + 4.228000000000e-10 7.009872983885e-01 + 4.328000000000e-10 7.428850006835e-01 + 4.428000000000e-10 7.370483197885e-01 + 4.528000000000e-10 6.577532995019e-01 + 4.628000000000e-10 4.704734311564e-01 + 4.728000000000e-10 1.888066765623e-01 + 4.828000000000e-10 -1.064251900033e-01 + 4.928000000000e-10 -3.530110058012e-01 + 5.028000000000e-10 -5.213363794122e-01 + 5.128000000000e-10 -6.275779961821e-01 + 5.228000000000e-10 -7.010367362436e-01 + 5.328000000000e-10 -7.428359180793e-01 + 5.428000000000e-10 -7.370946234404e-01 + 5.528000000000e-10 -6.577041924294e-01 + 5.628000000000e-10 -4.705211118057e-01 + 5.728000000000e-10 -1.887571402743e-01 + 5.828000000000e-10 1.063798390696e-01 + 5.928000000000e-10 3.530562876751e-01 + 6.028000000000e-10 5.212929538773e-01 + 6.128000000000e-10 6.276223718978e-01 + 6.228000000000e-10 7.009927681762e-01 + 6.328000000000e-10 7.428797293753e-01 + 6.428000000000e-10 7.370526578677e-01 + 6.528000000000e-10 6.577470674825e-01 + 6.628000000000e-10 4.704784998901e-01 + 6.728000000000e-10 1.888003575241e-01 + 6.828000000000e-10 -1.064204487643e-01 + 6.928000000000e-10 -3.530168946500e-01 + 7.028000000000e-10 -5.213312567329e-01 + 7.128000000000e-10 -6.275838929681e-01 + 7.228000000000e-10 -7.010312441909e-01 + 7.328000000000e-10 -7.428415937954e-01 + 7.428000000000e-10 -7.370893810626e-01 + 7.528000000000e-10 -6.577094889087e-01 + 7.628000000000e-10 -4.705162397262e-01 + 7.728000000000e-10 -1.887623115300e-01 + 7.828000000000e-10 1.063847513579e-01 + 7.928000000000e-10 3.530516705381e-01 + 8.028000000000e-10 5.212973590939e-01 + 8.128000000000e-10 6.276181223045e-01 + 8.228000000000e-10 7.009970786286e-01 + 8.328000000000e-10 7.428754735512e-01 + 8.428000000000e-10 7.370567570344e-01 + 8.528000000000e-10 6.577427030952e-01 + 8.628000000000e-10 4.704830497474e-01 + 8.728000000000e-10 1.887958404937e-01 + 8.828000000000e-10 -1.064163174914e-01 + 8.928000000000e-10 -3.530210908451e-01 + 9.028000000000e-10 -5.213271590930e-01 + 9.128000000000e-10 -6.275881896870e-01 + 9.228000000000e-10 -7.010270518598e-01 + 9.328000000000e-10 -7.428457852801e-01 + 9.428000000000e-10 -7.370853633469e-01 + 9.528000000000e-10 -6.577134719194e-01 + 9.628000000000e-10 -4.705123783357e-01 + 9.728000000000e-10 -1.887662540331e-01 + 9.828000000000e-10 1.063885555413e-01 + 9.928000000000e-10 3.530480784075e-01 + 1.000000000000e-09 4.814572085440e-01 diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_15/CML_divider.sym b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_15/CML_divider.sym new file mode 100644 index 00000000..e46eb233 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_15/CML_divider.sym @@ -0,0 +1,30 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 -120 -20 -100 -20 {} +L 4 -120 20 -100 20 {} +L 4 100 -20 120 -20 {} +L 4 100 20 120 20 {} +L 7 0 -60 0 -40 {} +L 7 0 40 0 60 {} +B 5 -122.5 -22.5 -117.5 -17.5 {name=Vo+ dir=out} +B 5 -122.5 17.5 -117.5 22.5 {name=Vo- dir=out} +B 5 117.5 -22.5 122.5 -17.5 {name=Vi+ dir=in} +B 5 117.5 17.5 122.5 22.5 {name=Vi- dir=in} +B 5 -2.5 -62.5 2.5 -57.5 {name=vdd dir=inout} +B 5 -2.5 57.5 2.5 62.5 {name=gnd dir=inout} +P 4 5 100 -40 -100 -40 -100 40 100 40 100 -40 {} +T {@symname} -44 -6 0 0 0.3 0.3 {} +T {@name} 45 -52 0 0 0.2 0.2 {} +T {Vo+} -95 -24 0 0 0.2 0.2 {} +T {Vo-} -95 16 0 0 0.2 0.2 {} +T {Vi+} 95 -16 2 0 0.2 0.2 {} +T {Vi-} 95 24 2 0 0.2 0.2 {} +T {vdd} 10 -39 0 1 0.2 0.2 {} +T {gnd} -10 34 2 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_15/conditions.yaml b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_15/conditions.yaml new file mode 100644 index 00000000..caf50bc7 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_15/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice +N: 15 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: tt +filename: CML_core_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_15 +temperature: '80' +vdd: '1.2' diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_16/.spiceinit b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_16/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_16/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_16/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_16/CML_core_tb.sch new file mode 100644 index 00000000..1715f9ce --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_16/CML_core_tb.sch @@ -0,0 +1,73 @@ +v {xschem version=3.4.8RC file_version=1.3} +G {} +K {} +V {} +S {} +F {} +E {} +N 740 -940 740 -920 {lab=GND} +N 740 -1090 740 -1060 {lab=VDD} +N 600 -1020 620 -1020 {lab=Vinplus} +N 600 -980 620 -980 {lab=Vinminus} +N 860 -1020 880 -1020 {lab=Voplus} +N 860 -980 880 -980 {lab=Vominus} +N 1150 -850 1150 -820 {lab=VDD} +N 1150 -760 1150 -730 {lab=GND} +N 930 -850 930 -820 {lab=Vinminus} +N 930 -760 930 -730 {lab=GND} +N 720 -850 720 -820 {lab=Vinplus} +N 720 -760 720 -730 {lab=GND} +C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.param A=0.3 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write CML_core_tb.raw +set appendwrite +tran 10p 1n 160p + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_16/CML_core_tb_16.data vo_diff +quit + +.endc +"} +C {opin.sym} 880 -1020 2 1 {name=p6 lab=Voplus} +C {opin.sym} 880 -980 0 0 {name=p9 lab=Vominus} +C {devices/code_shown.sym} 10 -620 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_ff + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice + +.temp 80 +" +} +C {iopin.sym} 740 -1090 0 1 {name=p2 lab=VDD} +C {ipin.sym} 600 -1020 2 1 {name=p4 lab=Vinplus} +C {ipin.sym} 600 -980 2 1 {name=p1 lab=Vinminus} +C {CML_divider.sym} 740 -1000 0 1 {name=x1} +C {vsource.sym} 1150 -790 0 0 {name=V1 value=1.2 savecurrent=false} +C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} +C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} +C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 A 10G 0 0 0)" savecurrent=false} +C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 A 10G 0 0 180)" savecurrent=false} +C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_16/CML_core_tb_16.data b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_16/CML_core_tb_16.data new file mode 100644 index 00000000..0b2ed0e8 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_16/CML_core_tb_16.data @@ -0,0 +1,85 @@ + 1.628000000000e-10 -4.643042367579e-01 + 1.728000000000e-10 -1.889536448800e-01 + 1.828000000000e-10 1.011027156160e-01 + 1.928000000000e-10 3.431119917378e-01 + 2.028000000000e-10 5.070519088353e-01 + 2.128000000000e-10 6.112991757094e-01 + 2.228000000000e-10 6.838020209744e-01 + 2.328000000000e-10 7.242864479517e-01 + 2.428000000000e-10 7.174167448313e-01 + 2.528000000000e-10 6.398083866093e-01 + 2.628000000000e-10 4.585166519927e-01 + 2.728000000000e-10 1.844271573483e-01 + 2.828000000000e-10 -1.048019054065e-01 + 2.928000000000e-10 -3.462317584687e-01 + 3.028000000000e-10 -5.098344721858e-01 + 3.128000000000e-10 -6.133899227371e-01 + 3.228000000000e-10 -6.853968517792e-01 + 3.328000000000e-10 -7.251059393871e-01 + 3.428000000000e-10 -7.178642533065e-01 + 3.528000000000e-10 -6.398898931720e-01 + 3.628000000000e-10 -4.586473976402e-01 + 3.728000000000e-10 -1.843989570584e-01 + 3.828000000000e-10 1.047140758745e-01 + 3.928000000000e-10 3.462576483703e-01 + 4.028000000000e-10 5.097333770466e-01 + 4.128000000000e-10 6.134023110554e-01 + 4.228000000000e-10 6.853047053340e-01 + 4.328000000000e-10 7.251501511308e-01 + 4.428000000000e-10 7.178117501486e-01 + 4.528000000000e-10 6.399568281317e-01 + 4.628000000000e-10 4.586017943502e-01 + 4.728000000000e-10 1.844658494373e-01 + 4.828000000000e-10 -1.047609876408e-01 + 4.928000000000e-10 -3.462003104379e-01 + 5.028000000000e-10 -5.097813732572e-01 + 5.128000000000e-10 -6.133504189098e-01 + 5.228000000000e-10 -6.853547602223e-01 + 5.328000000000e-10 -7.250985458364e-01 + 5.428000000000e-10 -7.178593251267e-01 + 5.528000000000e-10 -6.399055102013e-01 + 5.628000000000e-10 -4.586511534755e-01 + 5.728000000000e-10 -1.844138975484e-01 + 5.828000000000e-10 1.047143295024e-01 + 5.928000000000e-10 3.462472486482e-01 + 6.028000000000e-10 5.097369504642e-01 + 6.128000000000e-10 6.133959963639e-01 + 6.228000000000e-10 6.853096740322e-01 + 6.328000000000e-10 7.251438129543e-01 + 6.428000000000e-10 7.178160816468e-01 + 6.528000000000e-10 6.399498616471e-01 + 6.628000000000e-10 4.586069220749e-01 + 6.728000000000e-10 1.844588245643e-01 + 6.828000000000e-10 -1.047563687876e-01 + 6.928000000000e-10 -3.462063328010e-01 + 7.028000000000e-10 -5.097765086741e-01 + 7.128000000000e-10 -6.133562893232e-01 + 7.228000000000e-10 -6.853494321266e-01 + 7.328000000000e-10 -7.251041291885e-01 + 7.428000000000e-10 -7.178542203751e-01 + 7.528000000000e-10 -6.399107355976e-01 + 7.628000000000e-10 -4.586462738291e-01 + 7.728000000000e-10 -1.844190131957e-01 + 7.828000000000e-10 1.047193339603e-01 + 7.928000000000e-10 3.462424630766e-01 + 8.028000000000e-10 5.097415276109e-01 + 8.128000000000e-10 6.133915881396e-01 + 8.228000000000e-10 6.853141467162e-01 + 8.328000000000e-10 7.251393167662e-01 + 8.428000000000e-10 7.178204152808e-01 + 8.528000000000e-10 6.399452651751e-01 + 8.628000000000e-10 4.586116651576e-01 + 8.728000000000e-10 1.844540563551e-01 + 8.828000000000e-10 -1.047521530128e-01 + 8.928000000000e-10 -3.462105768541e-01 + 9.028000000000e-10 -5.097724238353e-01 + 9.128000000000e-10 -6.133605792288e-01 + 9.228000000000e-10 -6.853452315529e-01 + 9.328000000000e-10 -7.251083207568e-01 + 9.428000000000e-10 -7.178502144615e-01 + 9.528000000000e-10 -6.399147306347e-01 + 9.628000000000e-10 -4.586423495280e-01 + 9.728000000000e-10 -1.844229988419e-01 + 9.828000000000e-10 1.047232268776e-01 + 9.928000000000e-10 3.462387497741e-01 + 1.000000000000e-09 4.710752262880e-01 diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_16/CML_divider.sym b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_16/CML_divider.sym new file mode 100644 index 00000000..e46eb233 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_16/CML_divider.sym @@ -0,0 +1,30 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 -120 -20 -100 -20 {} +L 4 -120 20 -100 20 {} +L 4 100 -20 120 -20 {} +L 4 100 20 120 20 {} +L 7 0 -60 0 -40 {} +L 7 0 40 0 60 {} +B 5 -122.5 -22.5 -117.5 -17.5 {name=Vo+ dir=out} +B 5 -122.5 17.5 -117.5 22.5 {name=Vo- dir=out} +B 5 117.5 -22.5 122.5 -17.5 {name=Vi+ dir=in} +B 5 117.5 17.5 122.5 22.5 {name=Vi- dir=in} +B 5 -2.5 -62.5 2.5 -57.5 {name=vdd dir=inout} +B 5 -2.5 57.5 2.5 62.5 {name=gnd dir=inout} +P 4 5 100 -40 -100 -40 -100 40 100 40 100 -40 {} +T {@symname} -44 -6 0 0 0.3 0.3 {} +T {@name} 45 -52 0 0 0.2 0.2 {} +T {Vo+} -95 -24 0 0 0.2 0.2 {} +T {Vo-} -95 16 0 0 0.2 0.2 {} +T {Vi+} 95 -16 2 0 0.2 0.2 {} +T {Vi-} 95 24 2 0 0.2 0.2 {} +T {vdd} 10 -39 0 1 0.2 0.2 {} +T {gnd} -10 34 2 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_16/conditions.yaml b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_16/conditions.yaml new file mode 100644 index 00000000..eb92c022 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_16/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice +N: 16 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: ff +filename: CML_core_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_16 +temperature: '80' +vdd: '1.2' diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_17/.spiceinit b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_17/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_17/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_17/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_17/CML_core_tb.sch new file mode 100644 index 00000000..284b2d92 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_17/CML_core_tb.sch @@ -0,0 +1,73 @@ +v {xschem version=3.4.8RC file_version=1.3} +G {} +K {} +V {} +S {} +F {} +E {} +N 740 -940 740 -920 {lab=GND} +N 740 -1090 740 -1060 {lab=VDD} +N 600 -1020 620 -1020 {lab=Vinplus} +N 600 -980 620 -980 {lab=Vinminus} +N 860 -1020 880 -1020 {lab=Voplus} +N 860 -980 880 -980 {lab=Vominus} +N 1150 -850 1150 -820 {lab=VDD} +N 1150 -760 1150 -730 {lab=GND} +N 930 -850 930 -820 {lab=Vinminus} +N 930 -760 930 -730 {lab=GND} +N 720 -850 720 -820 {lab=Vinplus} +N 720 -760 720 -730 {lab=GND} +C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.param A=0.3 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write CML_core_tb.raw +set appendwrite +tran 10p 1n 160p + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_17/CML_core_tb_17.data vo_diff +quit + +.endc +"} +C {opin.sym} 880 -1020 2 1 {name=p6 lab=Voplus} +C {opin.sym} 880 -980 0 0 {name=p9 lab=Vominus} +C {devices/code_shown.sym} 10 -620 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_ss + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice + +.temp 80 +" +} +C {iopin.sym} 740 -1090 0 1 {name=p2 lab=VDD} +C {ipin.sym} 600 -1020 2 1 {name=p4 lab=Vinplus} +C {ipin.sym} 600 -980 2 1 {name=p1 lab=Vinminus} +C {CML_divider.sym} 740 -1000 0 1 {name=x1} +C {vsource.sym} 1150 -790 0 0 {name=V1 value=1.2 savecurrent=false} +C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} +C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} +C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 A 10G 0 0 0)" savecurrent=false} +C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 A 10G 0 0 180)" savecurrent=false} +C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_17/CML_core_tb_17.data b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_17/CML_core_tb_17.data new file mode 100644 index 00000000..a6cc3a7a --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_17/CML_core_tb_17.data @@ -0,0 +1,85 @@ + 1.628000000000e-10 -4.852886719505e-01 + 1.728000000000e-10 -2.023606658915e-01 + 1.828000000000e-10 9.500407548716e-02 + 1.928000000000e-10 3.473018630854e-01 + 2.028000000000e-10 5.238539974445e-01 + 2.128000000000e-10 6.356942626004e-01 + 2.228000000000e-10 7.106560719901e-01 + 2.328000000000e-10 7.539243132234e-01 + 2.428000000000e-10 7.486736309564e-01 + 2.528000000000e-10 6.681985082542e-01 + 2.628000000000e-10 4.800908099257e-01 + 2.728000000000e-10 1.985903293754e-01 + 2.828000000000e-10 -9.801965724846e-02 + 2.928000000000e-10 -3.499456539083e-01 + 3.028000000000e-10 -5.264166063204e-01 + 3.128000000000e-10 -6.377599985577e-01 + 3.228000000000e-10 -7.123258227204e-01 + 3.328000000000e-10 -7.548386637736e-01 + 3.428000000000e-10 -7.491646196322e-01 + 3.528000000000e-10 -6.682802381819e-01 + 3.628000000000e-10 -4.802044877583e-01 + 3.728000000000e-10 -1.985554586747e-01 + 3.828000000000e-10 9.793570714349e-02 + 3.928000000000e-10 3.499705083814e-01 + 4.028000000000e-10 5.263126851869e-01 + 4.128000000000e-10 6.377668221774e-01 + 4.228000000000e-10 7.122256281615e-01 + 4.328000000000e-10 7.548735616237e-01 + 4.428000000000e-10 7.491068615558e-01 + 4.528000000000e-10 6.683430307676e-01 + 4.628000000000e-10 4.801581700098e-01 + 4.728000000000e-10 1.986186025664e-01 + 4.828000000000e-10 -9.798359332438e-02 + 4.928000000000e-10 -3.499159407959e-01 + 5.028000000000e-10 -5.263605524234e-01 + 5.128000000000e-10 -6.377159898188e-01 + 5.228000000000e-10 -7.122753084256e-01 + 5.328000000000e-10 -7.548237332543e-01 + 5.428000000000e-10 -7.491535548765e-01 + 5.528000000000e-10 -6.682936663178e-01 + 5.628000000000e-10 -4.802057994081e-01 + 5.728000000000e-10 -1.985692377738e-01 + 5.828000000000e-10 9.793754425939e-02 + 5.928000000000e-10 3.499612594703e-01 + 6.028000000000e-10 5.263165540334e-01 + 6.128000000000e-10 6.377608692392e-01 + 6.228000000000e-10 7.122309292959e-01 + 6.328000000000e-10 7.548679483739e-01 + 6.428000000000e-10 7.491113260135e-01 + 6.528000000000e-10 6.683367510584e-01 + 6.628000000000e-10 4.801631540398e-01 + 6.728000000000e-10 1.986123746205e-01 + 6.828000000000e-10 -9.797860547700e-02 + 6.928000000000e-10 -3.499219086015e-01 + 7.028000000000e-10 -5.263552271330e-01 + 7.128000000000e-10 -6.377219921840e-01 + 7.228000000000e-10 -7.122696952774e-01 + 7.328000000000e-10 -7.548295298651e-01 + 7.428000000000e-10 -7.491481908175e-01 + 7.528000000000e-10 -6.682991221138e-01 + 7.628000000000e-10 -4.802006967346e-01 + 7.728000000000e-10 -1.985745887274e-01 + 7.828000000000e-10 9.794256695295e-02 + 7.928000000000e-10 3.499565849765e-01 + 8.028000000000e-10 5.263210489698e-01 + 8.128000000000e-10 6.377564579322e-01 + 8.228000000000e-10 7.122353719246e-01 + 8.328000000000e-10 7.548635649926e-01 + 8.428000000000e-10 7.491155123701e-01 + 8.528000000000e-10 6.683323549155e-01 + 8.628000000000e-10 4.801676539865e-01 + 8.728000000000e-10 1.986078923136e-01 + 8.828000000000e-10 -9.797434132867e-02 + 8.928000000000e-10 -3.499261582655e-01 + 9.028000000000e-10 -5.263510069851e-01 + 9.128000000000e-10 -6.377263524571e-01 + 9.228000000000e-10 -7.122654282965e-01 + 9.328000000000e-10 -7.548337908470e-01 + 9.428000000000e-10 -7.491440991364e-01 + 9.528000000000e-10 -6.683032069827e-01 + 9.628000000000e-10 -4.801967157057e-01 + 9.728000000000e-10 -1.985786291727e-01 + 9.828000000000e-10 9.794644208879e-02 + 9.928000000000e-10 3.499529545785e-01 + 1.000000000000e-09 4.843355885316e-01 diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_17/CML_divider.sym b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_17/CML_divider.sym new file mode 100644 index 00000000..e46eb233 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_17/CML_divider.sym @@ -0,0 +1,30 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 -120 -20 -100 -20 {} +L 4 -120 20 -100 20 {} +L 4 100 -20 120 -20 {} +L 4 100 20 120 20 {} +L 7 0 -60 0 -40 {} +L 7 0 40 0 60 {} +B 5 -122.5 -22.5 -117.5 -17.5 {name=Vo+ dir=out} +B 5 -122.5 17.5 -117.5 22.5 {name=Vo- dir=out} +B 5 117.5 -22.5 122.5 -17.5 {name=Vi+ dir=in} +B 5 117.5 17.5 122.5 22.5 {name=Vi- dir=in} +B 5 -2.5 -62.5 2.5 -57.5 {name=vdd dir=inout} +B 5 -2.5 57.5 2.5 62.5 {name=gnd dir=inout} +P 4 5 100 -40 -100 -40 -100 40 100 40 100 -40 {} +T {@symname} -44 -6 0 0 0.3 0.3 {} +T {@name} 45 -52 0 0 0.2 0.2 {} +T {Vo+} -95 -24 0 0 0.2 0.2 {} +T {Vo-} -95 16 0 0 0.2 0.2 {} +T {Vi+} 95 -16 2 0 0.2 0.2 {} +T {Vi-} 95 24 2 0 0.2 0.2 {} +T {vdd} 10 -39 0 1 0.2 0.2 {} +T {gnd} -10 34 2 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_17/conditions.yaml b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_17/conditions.yaml new file mode 100644 index 00000000..c082f4cc --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_17/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice +N: 17 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: ss +filename: CML_core_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_17 +temperature: '80' +vdd: '1.2' diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_18/.spiceinit b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_18/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_18/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_18/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_18/CML_core_tb.sch new file mode 100644 index 00000000..aeaacc11 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_18/CML_core_tb.sch @@ -0,0 +1,73 @@ +v {xschem version=3.4.8RC file_version=1.3} +G {} +K {} +V {} +S {} +F {} +E {} +N 740 -940 740 -920 {lab=GND} +N 740 -1090 740 -1060 {lab=VDD} +N 600 -1020 620 -1020 {lab=Vinplus} +N 600 -980 620 -980 {lab=Vinminus} +N 860 -1020 880 -1020 {lab=Voplus} +N 860 -980 880 -980 {lab=Vominus} +N 1150 -850 1150 -820 {lab=VDD} +N 1150 -760 1150 -730 {lab=GND} +N 930 -850 930 -820 {lab=Vinminus} +N 930 -760 930 -730 {lab=GND} +N 720 -850 720 -820 {lab=Vinplus} +N 720 -760 720 -730 {lab=GND} +C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.param A=0.3 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write CML_core_tb.raw +set appendwrite +tran 10p 1n 160p + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_18/CML_core_tb_18.data vo_diff +quit + +.endc +"} +C {opin.sym} 880 -1020 2 1 {name=p6 lab=Voplus} +C {opin.sym} 880 -980 0 0 {name=p9 lab=Vominus} +C {devices/code_shown.sym} 10 -620 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_tt + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice + +.temp -40 +" +} +C {iopin.sym} 740 -1090 0 1 {name=p2 lab=VDD} +C {ipin.sym} 600 -1020 2 1 {name=p4 lab=Vinplus} +C {ipin.sym} 600 -980 2 1 {name=p1 lab=Vinminus} +C {CML_divider.sym} 740 -1000 0 1 {name=x1} +C {vsource.sym} 1150 -790 0 0 {name=V1 value=1.6 savecurrent=false} +C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} +C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} +C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 A 10G 0 0 0)" savecurrent=false} +C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 A 10G 0 0 180)" savecurrent=false} +C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_18/CML_core_tb_18.data b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_18/CML_core_tb_18.data new file mode 100644 index 00000000..a490208f --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_18/CML_core_tb_18.data @@ -0,0 +1,85 @@ + 1.628000000000e-10 5.747244840755e-01 + 1.728000000000e-10 2.031348680811e-01 + 1.828000000000e-10 -1.640358346053e-01 + 1.928000000000e-10 -4.121983890365e-01 + 2.028000000000e-10 -5.403960481430e-01 + 2.128000000000e-10 -6.175267008304e-01 + 2.228000000000e-10 -7.185181164841e-01 + 2.328000000000e-10 -8.111835866476e-01 + 2.428000000000e-10 -8.505757111821e-01 + 2.528000000000e-10 -7.941523888433e-01 + 2.628000000000e-10 -5.697557803605e-01 + 2.728000000000e-10 -1.993901761575e-01 + 2.828000000000e-10 1.667454340744e-01 + 2.928000000000e-10 4.143424459307e-01 + 3.028000000000e-10 5.421310172268e-01 + 3.128000000000e-10 6.189024162340e-01 + 3.228000000000e-10 7.194369498053e-01 + 3.328000000000e-10 8.117600127730e-01 + 3.428000000000e-10 8.508336653308e-01 + 3.528000000000e-10 7.942656656210e-01 + 3.628000000000e-10 5.697751550033e-01 + 3.728000000000e-10 1.994135726672e-01 + 3.828000000000e-10 -1.667386419247e-01 + 3.928000000000e-10 -4.143148464313e-01 + 4.028000000000e-10 -5.421262038320e-01 + 4.128000000000e-10 -6.188832903749e-01 + 4.228000000000e-10 -7.194346712496e-01 + 4.328000000000e-10 -8.117442314974e-01 + 4.428000000000e-10 -8.508381039982e-01 + 4.528000000000e-10 -7.942559196005e-01 + 4.628000000000e-10 -5.697859373045e-01 + 4.728000000000e-10 -1.993975895742e-01 + 4.828000000000e-10 1.667322235508e-01 + 4.928000000000e-10 4.143280512458e-01 + 5.028000000000e-10 5.421195877560e-01 + 5.128000000000e-10 6.188968586913e-01 + 5.228000000000e-10 7.194236426239e-01 + 5.328000000000e-10 8.117540342679e-01 + 5.428000000000e-10 8.508266757829e-01 + 5.528000000000e-10 7.942652287581e-01 + 5.628000000000e-10 5.697754142960e-01 + 5.728000000000e-10 1.994033695962e-01 + 5.828000000000e-10 -1.667424669503e-01 + 5.928000000000e-10 -4.143216611718e-01 + 6.028000000000e-10 -5.421291067647e-01 + 6.128000000000e-10 -6.188909595847e-01 + 6.228000000000e-10 -7.194310352535e-01 + 6.328000000000e-10 -8.117467342350e-01 + 6.428000000000e-10 -8.508333273630e-01 + 6.528000000000e-10 -7.942577903765e-01 + 6.628000000000e-10 -5.697836419865e-01 + 6.728000000000e-10 -1.993929431350e-01 + 6.828000000000e-10 1.667361734044e-01 + 6.928000000000e-10 4.143307053824e-01 + 7.028000000000e-10 5.421226813799e-01 + 7.128000000000e-10 6.189001833416e-01 + 7.228000000000e-10 7.194227358993e-01 + 7.328000000000e-10 8.117542266055e-01 + 7.428000000000e-10 8.508251070290e-01 + 7.528000000000e-10 7.942649966766e-01 + 7.628000000000e-10 5.697756363247e-01 + 7.728000000000e-10 1.993989977467e-01 + 7.828000000000e-10 -1.667434615441e-01 + 7.928000000000e-10 -4.143248161746e-01 + 8.028000000000e-10 -5.421295610790e-01 + 8.128000000000e-10 -6.188945163710e-01 + 8.228000000000e-10 -7.194289229798e-01 + 8.328000000000e-10 -8.117483413843e-01 + 8.428000000000e-10 -8.508308647988e-01 + 8.528000000000e-10 -7.942590780393e-01 + 8.628000000000e-10 -5.697822347435e-01 + 8.728000000000e-10 -1.993917000580e-01 + 8.828000000000e-10 1.667380255271e-01 + 8.928000000000e-10 4.143314131245e-01 + 9.028000000000e-10 5.421241182927e-01 + 9.128000000000e-10 6.189011822630e-01 + 9.228000000000e-10 7.194226089303e-01 + 9.328000000000e-10 8.117540798381e-01 + 9.428000000000e-10 8.508247577722e-01 + 9.528000000000e-10 7.942646412255e-01 + 9.628000000000e-10 5.697760282588e-01 + 9.728000000000e-10 1.993969946892e-01 + 9.828000000000e-10 -1.667434796269e-01 + 9.928000000000e-10 -4.143264352220e-01 + 1.000000000000e-09 -5.150731751424e-01 diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_18/CML_divider.sym b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_18/CML_divider.sym new file mode 100644 index 00000000..e46eb233 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_18/CML_divider.sym @@ -0,0 +1,30 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 -120 -20 -100 -20 {} +L 4 -120 20 -100 20 {} +L 4 100 -20 120 -20 {} +L 4 100 20 120 20 {} +L 7 0 -60 0 -40 {} +L 7 0 40 0 60 {} +B 5 -122.5 -22.5 -117.5 -17.5 {name=Vo+ dir=out} +B 5 -122.5 17.5 -117.5 22.5 {name=Vo- dir=out} +B 5 117.5 -22.5 122.5 -17.5 {name=Vi+ dir=in} +B 5 117.5 17.5 122.5 22.5 {name=Vi- dir=in} +B 5 -2.5 -62.5 2.5 -57.5 {name=vdd dir=inout} +B 5 -2.5 57.5 2.5 62.5 {name=gnd dir=inout} +P 4 5 100 -40 -100 -40 -100 40 100 40 100 -40 {} +T {@symname} -44 -6 0 0 0.3 0.3 {} +T {@name} 45 -52 0 0 0.2 0.2 {} +T {Vo+} -95 -24 0 0 0.2 0.2 {} +T {Vo-} -95 16 0 0 0.2 0.2 {} +T {Vi+} 95 -16 2 0 0.2 0.2 {} +T {Vi-} 95 24 2 0 0.2 0.2 {} +T {vdd} 10 -39 0 1 0.2 0.2 {} +T {gnd} -10 34 2 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_18/conditions.yaml b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_18/conditions.yaml new file mode 100644 index 00000000..4f9367fd --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_18/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice +N: 18 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: tt +filename: CML_core_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_18 +temperature: '-40' +vdd: '1.6' diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_19/.spiceinit b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_19/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_19/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_19/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_19/CML_core_tb.sch new file mode 100644 index 00000000..88f38d6f --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_19/CML_core_tb.sch @@ -0,0 +1,73 @@ +v {xschem version=3.4.8RC file_version=1.3} +G {} +K {} +V {} +S {} +F {} +E {} +N 740 -940 740 -920 {lab=GND} +N 740 -1090 740 -1060 {lab=VDD} +N 600 -1020 620 -1020 {lab=Vinplus} +N 600 -980 620 -980 {lab=Vinminus} +N 860 -1020 880 -1020 {lab=Voplus} +N 860 -980 880 -980 {lab=Vominus} +N 1150 -850 1150 -820 {lab=VDD} +N 1150 -760 1150 -730 {lab=GND} +N 930 -850 930 -820 {lab=Vinminus} +N 930 -760 930 -730 {lab=GND} +N 720 -850 720 -820 {lab=Vinplus} +N 720 -760 720 -730 {lab=GND} +C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.param A=0.3 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write CML_core_tb.raw +set appendwrite +tran 10p 1n 160p + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_19/CML_core_tb_19.data vo_diff +quit + +.endc +"} +C {opin.sym} 880 -1020 2 1 {name=p6 lab=Voplus} +C {opin.sym} 880 -980 0 0 {name=p9 lab=Vominus} +C {devices/code_shown.sym} 10 -620 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_ff + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice + +.temp -40 +" +} +C {iopin.sym} 740 -1090 0 1 {name=p2 lab=VDD} +C {ipin.sym} 600 -1020 2 1 {name=p4 lab=Vinplus} +C {ipin.sym} 600 -980 2 1 {name=p1 lab=Vinminus} +C {CML_divider.sym} 740 -1000 0 1 {name=x1} +C {vsource.sym} 1150 -790 0 0 {name=V1 value=1.6 savecurrent=false} +C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} +C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} +C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 A 10G 0 0 0)" savecurrent=false} +C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 A 10G 0 0 180)" savecurrent=false} +C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_19/CML_core_tb_19.data b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_19/CML_core_tb_19.data new file mode 100644 index 00000000..c81efdd4 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_19/CML_core_tb_19.data @@ -0,0 +1,85 @@ + 1.628000000000e-10 5.707988120441e-01 + 1.728000000000e-10 2.050562196689e-01 + 1.828000000000e-10 -1.568083182045e-01 + 1.928000000000e-10 -4.020696229917e-01 + 2.028000000000e-10 -5.270997867267e-01 + 2.128000000000e-10 -6.030122328411e-01 + 2.228000000000e-10 -7.060404303518e-01 + 2.328000000000e-10 -7.977729548420e-01 + 2.428000000000e-10 -8.357087979117e-01 + 2.528000000000e-10 -7.823438332914e-01 + 2.628000000000e-10 -5.641015035384e-01 + 2.728000000000e-10 -1.996979729386e-01 + 2.828000000000e-10 1.605395493176e-01 + 2.928000000000e-10 4.049019788065e-01 + 3.028000000000e-10 5.293349858313e-01 + 3.128000000000e-10 6.047755538782e-01 + 3.228000000000e-10 7.072083327509e-01 + 3.328000000000e-10 7.985177439850e-01 + 3.428000000000e-10 8.360745897587e-01 + 3.528000000000e-10 7.825643018760e-01 + 3.628000000000e-10 5.642043953033e-01 + 3.728000000000e-10 1.998026918934e-01 + 3.828000000000e-10 -1.604858693758e-01 + 3.928000000000e-10 -4.048299316522e-01 + 4.028000000000e-10 -5.293048172022e-01 + 4.128000000000e-10 -6.047267733392e-01 + 4.228000000000e-10 -7.071932602489e-01 + 4.328000000000e-10 -7.984844304352e-01 + 4.428000000000e-10 -8.360789616419e-01 + 4.528000000000e-10 -7.825446968704e-01 + 4.628000000000e-10 -5.642205462461e-01 + 4.728000000000e-10 -1.997755595675e-01 + 4.828000000000e-10 1.604765943145e-01 + 4.928000000000e-10 4.048512691297e-01 + 5.028000000000e-10 5.292953655278e-01 + 5.128000000000e-10 6.047472585148e-01 + 5.228000000000e-10 7.071773753770e-01 + 5.328000000000e-10 7.985008103891e-01 + 5.428000000000e-10 8.360621173440e-01 + 5.528000000000e-10 7.825604957102e-01 + 5.628000000000e-10 5.642042607215e-01 + 5.728000000000e-10 1.997857962408e-01 + 5.828000000000e-10 -1.604926267251e-01 + 5.928000000000e-10 -4.048407079574e-01 + 6.028000000000e-10 -5.293103597207e-01 + 6.128000000000e-10 -6.047374718328e-01 + 6.228000000000e-10 -7.071895246392e-01 + 6.328000000000e-10 -7.984887922220e-01 + 6.428000000000e-10 -8.360735876941e-01 + 6.528000000000e-10 -7.825482507809e-01 + 6.628000000000e-10 -5.642183473935e-01 + 6.728000000000e-10 -1.997692084041e-01 + 6.828000000000e-10 1.604823178167e-01 + 6.928000000000e-10 4.048548923991e-01 + 7.028000000000e-10 5.293001528657e-01 + 7.128000000000e-10 6.047514904939e-01 + 7.228000000000e-10 7.071767775245e-01 + 7.328000000000e-10 7.985010886851e-01 + 7.428000000000e-10 8.360609061049e-01 + 7.528000000000e-10 7.825602391468e-01 + 7.628000000000e-10 5.642057995328e-01 + 7.728000000000e-10 1.997793833692e-01 + 7.828000000000e-10 -1.604939026989e-01 + 7.928000000000e-10 -4.048452814924e-01 + 8.028000000000e-10 -5.293110935611e-01 + 8.128000000000e-10 -6.047422910037e-01 + 8.228000000000e-10 -7.071868576548e-01 + 8.328000000000e-10 -7.984914661054e-01 + 8.428000000000e-10 -8.360704549701e-01 + 8.528000000000e-10 -7.825505283213e-01 + 8.628000000000e-10 -5.642168951425e-01 + 8.728000000000e-10 -1.997675829904e-01 + 8.828000000000e-10 1.604850893678e-01 + 8.928000000000e-10 4.048557791622e-01 + 9.028000000000e-10 5.293024006551e-01 + 9.128000000000e-10 6.047526676189e-01 + 9.228000000000e-10 7.071769813422e-01 + 9.328000000000e-10 7.985009240492e-01 + 9.428000000000e-10 8.360608174754e-01 + 9.528000000000e-10 7.825597625659e-01 + 9.628000000000e-10 5.642070937767e-01 + 9.728000000000e-10 1.997763618165e-01 + 9.828000000000e-10 -1.604938267743e-01 + 9.928000000000e-10 -4.048476936234e-01 + 1.000000000000e-09 -5.033604123532e-01 diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_19/CML_divider.sym b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_19/CML_divider.sym new file mode 100644 index 00000000..e46eb233 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_19/CML_divider.sym @@ -0,0 +1,30 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 -120 -20 -100 -20 {} +L 4 -120 20 -100 20 {} +L 4 100 -20 120 -20 {} +L 4 100 20 120 20 {} +L 7 0 -60 0 -40 {} +L 7 0 40 0 60 {} +B 5 -122.5 -22.5 -117.5 -17.5 {name=Vo+ dir=out} +B 5 -122.5 17.5 -117.5 22.5 {name=Vo- dir=out} +B 5 117.5 -22.5 122.5 -17.5 {name=Vi+ dir=in} +B 5 117.5 17.5 122.5 22.5 {name=Vi- dir=in} +B 5 -2.5 -62.5 2.5 -57.5 {name=vdd dir=inout} +B 5 -2.5 57.5 2.5 62.5 {name=gnd dir=inout} +P 4 5 100 -40 -100 -40 -100 40 100 40 100 -40 {} +T {@symname} -44 -6 0 0 0.3 0.3 {} +T {@name} 45 -52 0 0 0.2 0.2 {} +T {Vo+} -95 -24 0 0 0.2 0.2 {} +T {Vo-} -95 16 0 0 0.2 0.2 {} +T {Vi+} 95 -16 2 0 0.2 0.2 {} +T {Vi-} 95 24 2 0 0.2 0.2 {} +T {vdd} 10 -39 0 1 0.2 0.2 {} +T {gnd} -10 34 2 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_19/conditions.yaml b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_19/conditions.yaml new file mode 100644 index 00000000..ccf6e277 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_19/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice +N: 19 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: ff +filename: CML_core_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_19 +temperature: '-40' +vdd: '1.6' diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_20/.spiceinit b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_20/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_20/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_20/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_20/CML_core_tb.sch new file mode 100644 index 00000000..ac357f76 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_20/CML_core_tb.sch @@ -0,0 +1,73 @@ +v {xschem version=3.4.8RC file_version=1.3} +G {} +K {} +V {} +S {} +F {} +E {} +N 740 -940 740 -920 {lab=GND} +N 740 -1090 740 -1060 {lab=VDD} +N 600 -1020 620 -1020 {lab=Vinplus} +N 600 -980 620 -980 {lab=Vinminus} +N 860 -1020 880 -1020 {lab=Voplus} +N 860 -980 880 -980 {lab=Vominus} +N 1150 -850 1150 -820 {lab=VDD} +N 1150 -760 1150 -730 {lab=GND} +N 930 -850 930 -820 {lab=Vinminus} +N 930 -760 930 -730 {lab=GND} +N 720 -850 720 -820 {lab=Vinplus} +N 720 -760 720 -730 {lab=GND} +C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.param A=0.3 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write CML_core_tb.raw +set appendwrite +tran 10p 1n 160p + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_20/CML_core_tb_20.data vo_diff +quit + +.endc +"} +C {opin.sym} 880 -1020 2 1 {name=p6 lab=Voplus} +C {opin.sym} 880 -980 0 0 {name=p9 lab=Vominus} +C {devices/code_shown.sym} 10 -620 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_ss + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice + +.temp -40 +" +} +C {iopin.sym} 740 -1090 0 1 {name=p2 lab=VDD} +C {ipin.sym} 600 -1020 2 1 {name=p4 lab=Vinplus} +C {ipin.sym} 600 -980 2 1 {name=p1 lab=Vinminus} +C {CML_divider.sym} 740 -1000 0 1 {name=x1} +C {vsource.sym} 1150 -790 0 0 {name=V1 value=1.6 savecurrent=false} +C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} +C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} +C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 A 10G 0 0 0)" savecurrent=false} +C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 A 10G 0 0 180)" savecurrent=false} +C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_20/CML_core_tb_20.data b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_20/CML_core_tb_20.data new file mode 100644 index 00000000..1c245490 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_20/CML_core_tb_20.data @@ -0,0 +1,85 @@ + 1.628000000000e-10 5.787258342535e-01 + 1.728000000000e-10 2.078017915173e-01 + 1.828000000000e-10 -1.622649468476e-01 + 1.928000000000e-10 -4.154784848215e-01 + 2.028000000000e-10 -5.503628241592e-01 + 2.128000000000e-10 -6.299323770996e-01 + 2.228000000000e-10 -7.254942323191e-01 + 2.328000000000e-10 -8.176578932008e-01 + 2.428000000000e-10 -8.600222409410e-01 + 2.528000000000e-10 -8.019093712422e-01 + 2.628000000000e-10 -5.756893793886e-01 + 2.728000000000e-10 -2.057606209176e-01 + 2.828000000000e-10 1.639197157563e-01 + 2.928000000000e-10 4.168841038800e-01 + 3.028000000000e-10 5.515424627408e-01 + 3.128000000000e-10 6.308336221978e-01 + 3.228000000000e-10 7.261208861559e-01 + 3.328000000000e-10 8.180354096547e-01 + 3.428000000000e-10 8.601969327831e-01 + 3.528000000000e-10 8.019450515145e-01 + 3.628000000000e-10 5.756806762770e-01 + 3.728000000000e-10 2.057351595047e-01 + 3.828000000000e-10 -1.639234125928e-01 + 3.928000000000e-10 -4.168916689126e-01 + 4.028000000000e-10 -5.515399403849e-01 + 4.128000000000e-10 -6.308421950132e-01 + 4.228000000000e-10 -7.261151591955e-01 + 4.328000000000e-10 -8.180409257235e-01 + 4.428000000000e-10 -8.601903753395e-01 + 4.528000000000e-10 -8.019506024478e-01 + 4.628000000000e-10 -5.756757498169e-01 + 4.728000000000e-10 -2.057370812604e-01 + 4.828000000000e-10 1.639284669376e-01 + 4.928000000000e-10 4.168895758092e-01 + 5.028000000000e-10 5.515444733402e-01 + 5.128000000000e-10 6.308408648378e-01 + 5.228000000000e-10 7.261175778597e-01 + 5.328000000000e-10 8.180376908128e-01 + 5.428000000000e-10 8.601923700088e-01 + 5.528000000000e-10 8.019470527506e-01 + 5.628000000000e-10 5.756789455973e-01 + 5.728000000000e-10 2.057316537746e-01 + 5.828000000000e-10 -1.639258645561e-01 + 5.928000000000e-10 -4.168940343704e-01 + 6.028000000000e-10 -5.515416140289e-01 + 6.128000000000e-10 -6.308456056710e-01 + 6.228000000000e-10 -7.261132930683e-01 + 6.328000000000e-10 -8.180415890619e-01 + 6.428000000000e-10 -8.601877913845e-01 + 6.528000000000e-10 -8.019507055326e-01 + 6.628000000000e-10 -5.756748223597e-01 + 6.728000000000e-10 -2.057339330851e-01 + 6.828000000000e-10 1.639294327626e-01 + 6.928000000000e-10 4.168918933453e-01 + 7.028000000000e-10 5.515448110547e-01 + 7.128000000000e-10 6.308438013344e-01 + 7.228000000000e-10 7.261156471026e-01 + 7.328000000000e-10 8.180389426729e-01 + 7.428000000000e-10 8.601899882644e-01 + 7.528000000000e-10 8.019478991926e-01 + 7.628000000000e-10 5.756775488816e-01 + 7.728000000000e-10 2.057303912126e-01 + 7.828000000000e-10 -1.639270777727e-01 + 7.928000000000e-10 -4.168949361223e-01 + 8.028000000000e-10 -5.515423789761e-01 + 8.128000000000e-10 -6.308469511551e-01 + 8.228000000000e-10 -7.261125857103e-01 + 8.328000000000e-10 -8.180418172660e-01 + 8.428000000000e-10 -8.601868536640e-01 + 8.528000000000e-10 -8.019506539776e-01 + 8.628000000000e-10 -5.756745040863e-01 + 8.728000000000e-10 -2.057325997968e-01 + 8.828000000000e-10 1.639296206310e-01 + 8.928000000000e-10 4.168929982528e-01 + 9.028000000000e-10 5.515447184418e-01 + 9.128000000000e-10 6.308451859194e-01 + 9.228000000000e-10 7.261146020976e-01 + 9.328000000000e-10 8.180396416883e-01 + 9.428000000000e-10 8.601888436252e-01 + 9.528000000000e-10 8.019484098509e-01 + 9.628000000000e-10 5.756767177581e-01 + 9.728000000000e-10 2.057300830000e-01 + 9.828000000000e-10 -1.639276725752e-01 + 9.928000000000e-10 -4.168951851932e-01 + 1.000000000000e-09 -5.223291820834e-01 diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_20/CML_divider.sym b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_20/CML_divider.sym new file mode 100644 index 00000000..e46eb233 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_20/CML_divider.sym @@ -0,0 +1,30 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 -120 -20 -100 -20 {} +L 4 -120 20 -100 20 {} +L 4 100 -20 120 -20 {} +L 4 100 20 120 20 {} +L 7 0 -60 0 -40 {} +L 7 0 40 0 60 {} +B 5 -122.5 -22.5 -117.5 -17.5 {name=Vo+ dir=out} +B 5 -122.5 17.5 -117.5 22.5 {name=Vo- dir=out} +B 5 117.5 -22.5 122.5 -17.5 {name=Vi+ dir=in} +B 5 117.5 17.5 122.5 22.5 {name=Vi- dir=in} +B 5 -2.5 -62.5 2.5 -57.5 {name=vdd dir=inout} +B 5 -2.5 57.5 2.5 62.5 {name=gnd dir=inout} +P 4 5 100 -40 -100 -40 -100 40 100 40 100 -40 {} +T {@symname} -44 -6 0 0 0.3 0.3 {} +T {@name} 45 -52 0 0 0.2 0.2 {} +T {Vo+} -95 -24 0 0 0.2 0.2 {} +T {Vo-} -95 16 0 0 0.2 0.2 {} +T {Vi+} 95 -16 2 0 0.2 0.2 {} +T {Vi-} 95 24 2 0 0.2 0.2 {} +T {vdd} 10 -39 0 1 0.2 0.2 {} +T {gnd} -10 34 2 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_20/conditions.yaml b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_20/conditions.yaml new file mode 100644 index 00000000..35ee6f6e --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_20/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice +N: 20 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: ss +filename: CML_core_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_20 +temperature: '-40' +vdd: '1.6' diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_21/.spiceinit b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_21/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_21/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_21/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_21/CML_core_tb.sch new file mode 100644 index 00000000..2466a20b --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_21/CML_core_tb.sch @@ -0,0 +1,73 @@ +v {xschem version=3.4.8RC file_version=1.3} +G {} +K {} +V {} +S {} +F {} +E {} +N 740 -940 740 -920 {lab=GND} +N 740 -1090 740 -1060 {lab=VDD} +N 600 -1020 620 -1020 {lab=Vinplus} +N 600 -980 620 -980 {lab=Vinminus} +N 860 -1020 880 -1020 {lab=Voplus} +N 860 -980 880 -980 {lab=Vominus} +N 1150 -850 1150 -820 {lab=VDD} +N 1150 -760 1150 -730 {lab=GND} +N 930 -850 930 -820 {lab=Vinminus} +N 930 -760 930 -730 {lab=GND} +N 720 -850 720 -820 {lab=Vinplus} +N 720 -760 720 -730 {lab=GND} +C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.param A=0.3 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write CML_core_tb.raw +set appendwrite +tran 10p 1n 160p + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_21/CML_core_tb_21.data vo_diff +quit + +.endc +"} +C {opin.sym} 880 -1020 2 1 {name=p6 lab=Voplus} +C {opin.sym} 880 -980 0 0 {name=p9 lab=Vominus} +C {devices/code_shown.sym} 10 -620 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_tt + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice + +.temp 27 +" +} +C {iopin.sym} 740 -1090 0 1 {name=p2 lab=VDD} +C {ipin.sym} 600 -1020 2 1 {name=p4 lab=Vinplus} +C {ipin.sym} 600 -980 2 1 {name=p1 lab=Vinminus} +C {CML_divider.sym} 740 -1000 0 1 {name=x1} +C {vsource.sym} 1150 -790 0 0 {name=V1 value=1.6 savecurrent=false} +C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} +C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} +C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 A 10G 0 0 0)" savecurrent=false} +C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 A 10G 0 0 180)" savecurrent=false} +C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_21/CML_core_tb_21.data b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_21/CML_core_tb_21.data new file mode 100644 index 00000000..18e4ab76 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_21/CML_core_tb_21.data @@ -0,0 +1,85 @@ + 1.628000000000e-10 5.573501255338e-01 + 1.728000000000e-10 2.075317226020e-01 + 1.828000000000e-10 -1.459750710281e-01 + 1.928000000000e-10 -3.981214724862e-01 + 2.028000000000e-10 -5.378144391949e-01 + 2.128000000000e-10 -6.222071778117e-01 + 2.228000000000e-10 -7.144656924256e-01 + 2.328000000000e-10 -7.957588475985e-01 + 2.428000000000e-10 -8.259944634024e-01 + 2.528000000000e-10 -7.639419051023e-01 + 2.628000000000e-10 -5.499582313836e-01 + 2.728000000000e-10 -2.015822705639e-01 + 2.828000000000e-10 1.503547149045e-01 + 2.928000000000e-10 4.016725871885e-01 + 3.028000000000e-10 5.406529598204e-01 + 3.128000000000e-10 6.244429748136e-01 + 3.228000000000e-10 7.159703736038e-01 + 3.328000000000e-10 7.967442303644e-01 + 3.428000000000e-10 8.264465978318e-01 + 3.528000000000e-10 7.642028659706e-01 + 3.628000000000e-10 5.500598536778e-01 + 3.728000000000e-10 2.017167809837e-01 + 3.828000000000e-10 -1.502994036069e-01 + 3.928000000000e-10 -4.015772846450e-01 + 4.028000000000e-10 -5.406194194588e-01 + 4.128000000000e-10 -6.243734224937e-01 + 4.228000000000e-10 -7.159615996115e-01 + 4.328000000000e-10 -7.966982014285e-01 + 4.428000000000e-10 -8.264613960108e-01 + 4.528000000000e-10 -7.641725666632e-01 + 4.628000000000e-10 -5.500862997678e-01 + 4.728000000000e-10 -2.016863380222e-01 + 4.828000000000e-10 1.502773228882e-01 + 4.928000000000e-10 4.016041852700e-01 + 5.028000000000e-10 5.405973091915e-01 + 5.128000000000e-10 6.243995261147e-01 + 5.228000000000e-10 7.159367954986e-01 + 5.328000000000e-10 7.967237369409e-01 + 5.428000000000e-10 8.264362767952e-01 + 5.528000000000e-10 7.641972989051e-01 + 5.628000000000e-10 5.500612169320e-01 + 5.728000000000e-10 2.017098008556e-01 + 5.828000000000e-10 -1.502994747055e-01 + 5.928000000000e-10 -4.015836624598e-01 + 6.028000000000e-10 -5.406181129288e-01 + 6.128000000000e-10 -6.243799299897e-01 + 6.228000000000e-10 -7.159574419629e-01 + 6.328000000000e-10 -7.967036557443e-01 + 6.428000000000e-10 -8.264562124237e-01 + 6.528000000000e-10 -7.641768324224e-01 + 6.628000000000e-10 -5.500832409355e-01 + 6.728000000000e-10 -2.016878835950e-01 + 6.828000000000e-10 1.502805147690e-01 + 6.928000000000e-10 4.016033959904e-01 + 7.028000000000e-10 5.405993862387e-01 + 7.128000000000e-10 6.243994053085e-01 + 7.228000000000e-10 7.159375001908e-01 + 7.328000000000e-10 7.967227911979e-01 + 7.428000000000e-10 8.264369695557e-01 + 7.528000000000e-10 7.641957504676e-01 + 7.628000000000e-10 5.500638388088e-01 + 7.728000000000e-10 2.017065810230e-01 + 7.828000000000e-10 -1.502977706940e-01 + 7.928000000000e-10 -4.015868518817e-01 + 8.028000000000e-10 -5.406159021220e-01 + 8.128000000000e-10 -6.243834226598e-01 + 8.228000000000e-10 -7.159542700032e-01 + 8.328000000000e-10 -7.967069113699e-01 + 8.428000000000e-10 -8.264528986398e-01 + 8.528000000000e-10 -7.641796598358e-01 + 8.628000000000e-10 -5.500810114131e-01 + 8.728000000000e-10 -2.016895461018e-01 + 8.828000000000e-10 1.502827695530e-01 + 8.928000000000e-10 4.016022282365e-01 + 9.028000000000e-10 5.406011687872e-01 + 9.128000000000e-10 6.243986267121e-01 + 9.228000000000e-10 7.159387803359e-01 + 9.328000000000e-10 7.967217157361e-01 + 9.428000000000e-10 8.264380732408e-01 + 9.528000000000e-10 7.641943142595e-01 + 9.628000000000e-10 5.500658668163e-01 + 9.728000000000e-10 2.017043552905e-01 + 9.828000000000e-10 -1.502962363926e-01 + 9.928000000000e-10 -4.015890294030e-01 + 1.000000000000e-09 -5.098048460363e-01 diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_21/CML_divider.sym b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_21/CML_divider.sym new file mode 100644 index 00000000..e46eb233 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_21/CML_divider.sym @@ -0,0 +1,30 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 -120 -20 -100 -20 {} +L 4 -120 20 -100 20 {} +L 4 100 -20 120 -20 {} +L 4 100 20 120 20 {} +L 7 0 -60 0 -40 {} +L 7 0 40 0 60 {} +B 5 -122.5 -22.5 -117.5 -17.5 {name=Vo+ dir=out} +B 5 -122.5 17.5 -117.5 22.5 {name=Vo- dir=out} +B 5 117.5 -22.5 122.5 -17.5 {name=Vi+ dir=in} +B 5 117.5 17.5 122.5 22.5 {name=Vi- dir=in} +B 5 -2.5 -62.5 2.5 -57.5 {name=vdd dir=inout} +B 5 -2.5 57.5 2.5 62.5 {name=gnd dir=inout} +P 4 5 100 -40 -100 -40 -100 40 100 40 100 -40 {} +T {@symname} -44 -6 0 0 0.3 0.3 {} +T {@name} 45 -52 0 0 0.2 0.2 {} +T {Vo+} -95 -24 0 0 0.2 0.2 {} +T {Vo-} -95 16 0 0 0.2 0.2 {} +T {Vi+} 95 -16 2 0 0.2 0.2 {} +T {Vi-} 95 24 2 0 0.2 0.2 {} +T {vdd} 10 -39 0 1 0.2 0.2 {} +T {gnd} -10 34 2 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_21/conditions.yaml b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_21/conditions.yaml new file mode 100644 index 00000000..f6ff0f82 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_21/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice +N: 21 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: tt +filename: CML_core_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_21 +temperature: '27' +vdd: '1.6' diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_22/.spiceinit b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_22/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_22/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_22/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_22/CML_core_tb.sch new file mode 100644 index 00000000..69f686b2 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_22/CML_core_tb.sch @@ -0,0 +1,73 @@ +v {xschem version=3.4.8RC file_version=1.3} +G {} +K {} +V {} +S {} +F {} +E {} +N 740 -940 740 -920 {lab=GND} +N 740 -1090 740 -1060 {lab=VDD} +N 600 -1020 620 -1020 {lab=Vinplus} +N 600 -980 620 -980 {lab=Vinminus} +N 860 -1020 880 -1020 {lab=Voplus} +N 860 -980 880 -980 {lab=Vominus} +N 1150 -850 1150 -820 {lab=VDD} +N 1150 -760 1150 -730 {lab=GND} +N 930 -850 930 -820 {lab=Vinminus} +N 930 -760 930 -730 {lab=GND} +N 720 -850 720 -820 {lab=Vinplus} +N 720 -760 720 -730 {lab=GND} +C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.param A=0.3 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write CML_core_tb.raw +set appendwrite +tran 10p 1n 160p + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_22/CML_core_tb_22.data vo_diff +quit + +.endc +"} +C {opin.sym} 880 -1020 2 1 {name=p6 lab=Voplus} +C {opin.sym} 880 -980 0 0 {name=p9 lab=Vominus} +C {devices/code_shown.sym} 10 -620 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_ff + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice + +.temp 27 +" +} +C {iopin.sym} 740 -1090 0 1 {name=p2 lab=VDD} +C {ipin.sym} 600 -1020 2 1 {name=p4 lab=Vinplus} +C {ipin.sym} 600 -980 2 1 {name=p1 lab=Vinminus} +C {CML_divider.sym} 740 -1000 0 1 {name=x1} +C {vsource.sym} 1150 -790 0 0 {name=V1 value=1.6 savecurrent=false} +C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} +C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} +C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 A 10G 0 0 0)" savecurrent=false} +C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 A 10G 0 0 180)" savecurrent=false} +C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_22/CML_core_tb_22.data b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_22/CML_core_tb_22.data new file mode 100644 index 00000000..1d781434 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_22/CML_core_tb_22.data @@ -0,0 +1,85 @@ + 1.628000000000e-10 5.539342660958e-01 + 1.728000000000e-10 2.092356958505e-01 + 1.828000000000e-10 -1.399589402437e-01 + 1.928000000000e-10 -3.887664135754e-01 + 2.028000000000e-10 -5.242925922458e-01 + 2.128000000000e-10 -6.069418933180e-01 + 2.228000000000e-10 -7.009344183633e-01 + 2.328000000000e-10 -7.819154973681e-01 + 2.428000000000e-10 -8.115011787752e-01 + 2.528000000000e-10 -7.528782125237e-01 + 2.628000000000e-10 -5.449881732974e-01 + 2.728000000000e-10 -2.018085669996e-01 + 2.828000000000e-10 1.453371294429e-01 + 2.928000000000e-10 3.930046196046e-01 + 3.028000000000e-10 5.275952350978e-01 + 3.128000000000e-10 6.094983923497e-01 + 3.228000000000e-10 7.026430994561e-01 + 3.328000000000e-10 7.830459101342e-01 + 3.428000000000e-10 8.120643124066e-01 + 3.528000000000e-10 7.532542388222e-01 + 3.628000000000e-10 5.451889146656e-01 + 3.728000000000e-10 2.020380161925e-01 + 3.828000000000e-10 -1.452202245966e-01 + 3.928000000000e-10 -3.928550396378e-01 + 4.028000000000e-10 -5.275272038156e-01 + 4.128000000000e-10 -6.093963788491e-01 + 4.228000000000e-10 -7.026185076638e-01 + 4.328000000000e-10 -7.829822343256e-01 + 4.428000000000e-10 -8.120760322925e-01 + 4.528000000000e-10 -7.532137307257e-01 + 4.628000000000e-10 -5.452168897181e-01 + 4.728000000000e-10 -2.019975663161e-01 + 4.828000000000e-10 1.451970774770e-01 + 4.928000000000e-10 3.928886426712e-01 + 5.028000000000e-10 5.275035947470e-01 + 5.128000000000e-10 6.094279224341e-01 + 5.228000000000e-10 7.025906785817e-01 + 5.328000000000e-10 7.830125874729e-01 + 5.428000000000e-10 8.120474298427e-01 + 5.528000000000e-10 7.532431353399e-01 + 5.628000000000e-10 5.451877569897e-01 + 5.728000000000e-10 2.020249691554e-01 + 5.828000000000e-10 -1.452230860448e-01 + 5.928000000000e-10 -3.928644448798e-01 + 6.028000000000e-10 -5.275279936983e-01 + 6.128000000000e-10 -6.094050782075e-01 + 6.228000000000e-10 -7.026148963104e-01 + 6.328000000000e-10 -7.829886841749e-01 + 6.428000000000e-10 -8.120708569069e-01 + 6.528000000000e-10 -7.532187757848e-01 + 6.628000000000e-10 -5.452139572157e-01 + 6.728000000000e-10 -2.019983459359e-01 + 6.828000000000e-10 1.452010057661e-01 + 6.928000000000e-10 3.928879698340e-01 + 7.028000000000e-10 5.275064479083e-01 + 7.128000000000e-10 6.094280990005e-01 + 7.228000000000e-10 7.025917879356e-01 + 7.328000000000e-10 7.830113821989e-01 + 7.428000000000e-10 8.120485256383e-01 + 7.528000000000e-10 7.532412367972e-01 + 7.628000000000e-10 5.451912171970e-01 + 7.728000000000e-10 2.020204953427e-01 + 7.828000000000e-10 -1.452213117731e-01 + 7.928000000000e-10 -3.928683087954e-01 + 8.028000000000e-10 -5.275257546899e-01 + 8.128000000000e-10 -6.094092443435e-01 + 8.228000000000e-10 -7.026114152643e-01 + 8.328000000000e-10 -7.829924127838e-01 + 8.428000000000e-10 -8.120671951794e-01 + 8.528000000000e-10 -7.532220607865e-01 + 8.628000000000e-10 -5.452116115033e-01 + 8.728000000000e-10 -2.019999026100e-01 + 8.828000000000e-10 1.452037268076e-01 + 8.928000000000e-10 3.928866787285e-01 + 9.028000000000e-10 5.275085793907e-01 + 9.128000000000e-10 6.094272189130e-01 + 9.228000000000e-10 7.025932924679e-01 + 9.328000000000e-10 7.830100596429e-01 + 9.428000000000e-10 8.120498613680e-01 + 9.528000000000e-10 7.532395420815e-01 + 9.628000000000e-10 5.451937902396e-01 + 9.728000000000e-10 2.020175827840e-01 + 9.828000000000e-10 -1.452196157349e-01 + 9.928000000000e-10 -3.928709378362e-01 + 1.000000000000e-09 -4.979849828547e-01 diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_22/CML_divider.sym b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_22/CML_divider.sym new file mode 100644 index 00000000..e46eb233 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_22/CML_divider.sym @@ -0,0 +1,30 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 -120 -20 -100 -20 {} +L 4 -120 20 -100 20 {} +L 4 100 -20 120 -20 {} +L 4 100 20 120 20 {} +L 7 0 -60 0 -40 {} +L 7 0 40 0 60 {} +B 5 -122.5 -22.5 -117.5 -17.5 {name=Vo+ dir=out} +B 5 -122.5 17.5 -117.5 22.5 {name=Vo- dir=out} +B 5 117.5 -22.5 122.5 -17.5 {name=Vi+ dir=in} +B 5 117.5 17.5 122.5 22.5 {name=Vi- dir=in} +B 5 -2.5 -62.5 2.5 -57.5 {name=vdd dir=inout} +B 5 -2.5 57.5 2.5 62.5 {name=gnd dir=inout} +P 4 5 100 -40 -100 -40 -100 40 100 40 100 -40 {} +T {@symname} -44 -6 0 0 0.3 0.3 {} +T {@name} 45 -52 0 0 0.2 0.2 {} +T {Vo+} -95 -24 0 0 0.2 0.2 {} +T {Vo-} -95 16 0 0 0.2 0.2 {} +T {Vi+} 95 -16 2 0 0.2 0.2 {} +T {Vi-} 95 24 2 0 0.2 0.2 {} +T {vdd} 10 -39 0 1 0.2 0.2 {} +T {gnd} -10 34 2 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_22/conditions.yaml b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_22/conditions.yaml new file mode 100644 index 00000000..97923d2c --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_22/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice +N: 22 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: ff +filename: CML_core_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_22 +temperature: '27' +vdd: '1.6' diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_23/.spiceinit b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_23/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_23/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_23/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_23/CML_core_tb.sch new file mode 100644 index 00000000..2c076fbe --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_23/CML_core_tb.sch @@ -0,0 +1,73 @@ +v {xschem version=3.4.8RC file_version=1.3} +G {} +K {} +V {} +S {} +F {} +E {} +N 740 -940 740 -920 {lab=GND} +N 740 -1090 740 -1060 {lab=VDD} +N 600 -1020 620 -1020 {lab=Vinplus} +N 600 -980 620 -980 {lab=Vinminus} +N 860 -1020 880 -1020 {lab=Voplus} +N 860 -980 880 -980 {lab=Vominus} +N 1150 -850 1150 -820 {lab=VDD} +N 1150 -760 1150 -730 {lab=GND} +N 930 -850 930 -820 {lab=Vinminus} +N 930 -760 930 -730 {lab=GND} +N 720 -850 720 -820 {lab=Vinplus} +N 720 -760 720 -730 {lab=GND} +C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.param A=0.3 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write CML_core_tb.raw +set appendwrite +tran 10p 1n 160p + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_23/CML_core_tb_23.data vo_diff +quit + +.endc +"} +C {opin.sym} 880 -1020 2 1 {name=p6 lab=Voplus} +C {opin.sym} 880 -980 0 0 {name=p9 lab=Vominus} +C {devices/code_shown.sym} 10 -620 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_ss + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice + +.temp 27 +" +} +C {iopin.sym} 740 -1090 0 1 {name=p2 lab=VDD} +C {ipin.sym} 600 -1020 2 1 {name=p4 lab=Vinplus} +C {ipin.sym} 600 -980 2 1 {name=p1 lab=Vinminus} +C {CML_divider.sym} 740 -1000 0 1 {name=x1} +C {vsource.sym} 1150 -790 0 0 {name=V1 value=1.6 savecurrent=false} +C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} +C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} +C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 A 10G 0 0 0)" savecurrent=false} +C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 A 10G 0 0 180)" savecurrent=false} +C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_23/CML_core_tb_23.data b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_23/CML_core_tb_23.data new file mode 100644 index 00000000..90cde859 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_23/CML_core_tb_23.data @@ -0,0 +1,85 @@ + 1.628000000000e-10 5.609932954578e-01 + 1.728000000000e-10 2.135803595156e-01 + 1.828000000000e-10 -1.406795105233e-01 + 1.928000000000e-10 -3.985242549940e-01 + 2.028000000000e-10 -5.467902250199e-01 + 2.128000000000e-10 -6.349197102047e-01 + 2.228000000000e-10 -7.225601155251e-01 + 2.328000000000e-10 -8.022847270862e-01 + 2.428000000000e-10 -8.341174139963e-01 + 2.528000000000e-10 -7.703472968512e-01 + 2.628000000000e-10 -5.554753546701e-01 + 2.728000000000e-10 -2.092959847468e-01 + 2.828000000000e-10 1.439827087572e-01 + 2.928000000000e-10 4.013409764958e-01 + 3.028000000000e-10 5.491103575815e-01 + 3.128000000000e-10 6.367736171292e-01 + 3.228000000000e-10 7.238327114492e-01 + 3.328000000000e-10 8.031250424519e-01 + 3.428000000000e-10 8.344898451807e-01 + 3.528000000000e-10 7.705288945959e-01 + 3.628000000000e-10 5.555161552443e-01 + 3.728000000000e-10 2.093659332353e-01 + 3.828000000000e-10 -1.439645708780e-01 + 3.928000000000e-10 -4.012864243472e-01 + 4.028000000000e-10 -5.490981432908e-01 + 4.128000000000e-10 -6.367310776976e-01 + 4.228000000000e-10 -7.238327358891e-01 + 4.328000000000e-10 -8.030945225544e-01 + 4.428000000000e-10 -8.345032641498e-01 + 4.528000000000e-10 -7.705076814073e-01 + 4.628000000000e-10 -5.555368200040e-01 + 4.728000000000e-10 -2.093450233605e-01 + 4.828000000000e-10 1.439466188317e-01 + 4.928000000000e-10 4.013057839415e-01 + 5.028000000000e-10 5.490801810840e-01 + 5.128000000000e-10 6.367502973173e-01 + 5.228000000000e-10 7.238134370273e-01 + 5.328000000000e-10 8.031142213064e-01 + 5.428000000000e-10 8.344836920712e-01 + 5.528000000000e-10 7.705267055681e-01 + 5.628000000000e-10 5.555176728822e-01 + 5.728000000000e-10 2.093634169255e-01 + 5.828000000000e-10 -1.439633135714e-01 + 5.928000000000e-10 -4.012903718012e-01 + 6.028000000000e-10 -5.490957661747e-01 + 6.128000000000e-10 -6.367354259501e-01 + 6.228000000000e-10 -7.238289911799e-01 + 6.328000000000e-10 -8.030991093312e-01 + 6.428000000000e-10 -8.344987261970e-01 + 6.528000000000e-10 -7.705113506628e-01 + 6.628000000000e-10 -5.555339922038e-01 + 6.728000000000e-10 -2.093472747698e-01 + 6.828000000000e-10 1.439488143392e-01 + 6.928000000000e-10 4.013051006454e-01 + 7.028000000000e-10 5.490813620131e-01 + 7.128000000000e-10 6.367501696447e-01 + 7.228000000000e-10 7.238138408460e-01 + 7.328000000000e-10 8.031138234310e-01 + 7.428000000000e-10 8.344840024625e-01 + 7.528000000000e-10 7.705257750612e-01 + 7.628000000000e-10 5.555193682491e-01 + 7.728000000000e-10 2.093616154732e-01 + 7.828000000000e-10 -1.439618235384e-01 + 7.928000000000e-10 -4.012927107128e-01 + 8.028000000000e-10 -5.490937463184e-01 + 8.128000000000e-10 -6.367380404539e-01 + 8.228000000000e-10 -7.238264478501e-01 + 8.328000000000e-10 -8.031018435980e-01 + 8.428000000000e-10 -8.344959687989e-01 + 8.528000000000e-10 -7.705137100306e-01 + 8.628000000000e-10 -5.555321098787e-01 + 8.728000000000e-10 -2.093489927492e-01 + 8.828000000000e-10 1.439504269532e-01 + 8.928000000000e-10 4.013041525432e-01 + 9.028000000000e-10 5.490824887692e-01 + 9.128000000000e-10 6.367494882502e-01 + 9.228000000000e-10 7.238146944607e-01 + 9.328000000000e-10 8.031131051507e-01 + 9.428000000000e-10 8.344847147049e-01 + 9.528000000000e-10 7.705248067970e-01 + 9.628000000000e-10 5.555207970002e-01 + 9.728000000000e-10 2.093601819839e-01 + 9.828000000000e-10 -1.439605753448e-01 + 9.928000000000e-10 -4.012943342775e-01 + 1.000000000000e-09 -5.158218772706e-01 diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_23/CML_divider.sym b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_23/CML_divider.sym new file mode 100644 index 00000000..e46eb233 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_23/CML_divider.sym @@ -0,0 +1,30 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 -120 -20 -100 -20 {} +L 4 -120 20 -100 20 {} +L 4 100 -20 120 -20 {} +L 4 100 20 120 20 {} +L 7 0 -60 0 -40 {} +L 7 0 40 0 60 {} +B 5 -122.5 -22.5 -117.5 -17.5 {name=Vo+ dir=out} +B 5 -122.5 17.5 -117.5 22.5 {name=Vo- dir=out} +B 5 117.5 -22.5 122.5 -17.5 {name=Vi+ dir=in} +B 5 117.5 17.5 122.5 22.5 {name=Vi- dir=in} +B 5 -2.5 -62.5 2.5 -57.5 {name=vdd dir=inout} +B 5 -2.5 57.5 2.5 62.5 {name=gnd dir=inout} +P 4 5 100 -40 -100 -40 -100 40 100 40 100 -40 {} +T {@symname} -44 -6 0 0 0.3 0.3 {} +T {@name} 45 -52 0 0 0.2 0.2 {} +T {Vo+} -95 -24 0 0 0.2 0.2 {} +T {Vo-} -95 16 0 0 0.2 0.2 {} +T {Vi+} 95 -16 2 0 0.2 0.2 {} +T {Vi-} 95 24 2 0 0.2 0.2 {} +T {vdd} 10 -39 0 1 0.2 0.2 {} +T {gnd} -10 34 2 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_23/conditions.yaml b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_23/conditions.yaml new file mode 100644 index 00000000..7cb02bec --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_23/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice +N: 23 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: ss +filename: CML_core_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_23 +temperature: '27' +vdd: '1.6' diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_24/.spiceinit b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_24/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_24/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_24/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_24/CML_core_tb.sch new file mode 100644 index 00000000..537eb2a6 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_24/CML_core_tb.sch @@ -0,0 +1,73 @@ +v {xschem version=3.4.8RC file_version=1.3} +G {} +K {} +V {} +S {} +F {} +E {} +N 740 -940 740 -920 {lab=GND} +N 740 -1090 740 -1060 {lab=VDD} +N 600 -1020 620 -1020 {lab=Vinplus} +N 600 -980 620 -980 {lab=Vinminus} +N 860 -1020 880 -1020 {lab=Voplus} +N 860 -980 880 -980 {lab=Vominus} +N 1150 -850 1150 -820 {lab=VDD} +N 1150 -760 1150 -730 {lab=GND} +N 930 -850 930 -820 {lab=Vinminus} +N 930 -760 930 -730 {lab=GND} +N 720 -850 720 -820 {lab=Vinplus} +N 720 -760 720 -730 {lab=GND} +C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.param A=0.3 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write CML_core_tb.raw +set appendwrite +tran 10p 1n 160p + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_24/CML_core_tb_24.data vo_diff +quit + +.endc +"} +C {opin.sym} 880 -1020 2 1 {name=p6 lab=Voplus} +C {opin.sym} 880 -980 0 0 {name=p9 lab=Vominus} +C {devices/code_shown.sym} 10 -620 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_tt + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice + +.temp 80 +" +} +C {iopin.sym} 740 -1090 0 1 {name=p2 lab=VDD} +C {ipin.sym} 600 -1020 2 1 {name=p4 lab=Vinplus} +C {ipin.sym} 600 -980 2 1 {name=p1 lab=Vinminus} +C {CML_divider.sym} 740 -1000 0 1 {name=x1} +C {vsource.sym} 1150 -790 0 0 {name=V1 value=1.6 savecurrent=false} +C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} +C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} +C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 A 10G 0 0 0)" savecurrent=false} +C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 A 10G 0 0 180)" savecurrent=false} +C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_24/CML_core_tb_24.data b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_24/CML_core_tb_24.data new file mode 100644 index 00000000..d8c2e7bc --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_24/CML_core_tb_24.data @@ -0,0 +1,85 @@ + 1.628000000000e-10 5.405028365217e-01 + 1.728000000000e-10 2.142897527484e-01 + 1.828000000000e-10 -1.231353412434e-01 + 1.928000000000e-10 -3.782847553257e-01 + 2.028000000000e-10 -5.290944707244e-01 + 2.128000000000e-10 -6.207435846591e-01 + 2.228000000000e-10 -7.069850917784e-01 + 2.328000000000e-10 -7.774395392863e-01 + 2.428000000000e-10 -7.982183108700e-01 + 2.528000000000e-10 -7.327456021571e-01 + 2.628000000000e-10 -5.310063164445e-01 + 2.728000000000e-10 -2.063297175293e-01 + 2.828000000000e-10 1.293176468138e-01 + 2.928000000000e-10 3.835270490977e-01 + 3.028000000000e-10 5.333180257023e-01 + 3.128000000000e-10 6.240938619865e-01 + 3.228000000000e-10 7.092802493907e-01 + 3.328000000000e-10 7.789607942300e-01 + 3.428000000000e-10 7.989234313230e-01 + 3.528000000000e-10 7.331763415294e-01 + 3.628000000000e-10 5.312045040772e-01 + 3.728000000000e-10 2.065847902134e-01 + 3.828000000000e-10 -1.291958906021e-01 + 3.928000000000e-10 -3.833411283085e-01 + 4.028000000000e-10 -5.332389173297e-01 + 4.128000000000e-10 -6.239588708494e-01 + 4.228000000000e-10 -7.092541595355e-01 + 4.328000000000e-10 -7.788766619073e-01 + 4.428000000000e-10 -7.989439817890e-01 + 4.528000000000e-10 -7.331237184970e-01 + 4.628000000000e-10 -5.312431858800e-01 + 4.728000000000e-10 -2.065354720445e-01 + 4.828000000000e-10 1.291604530900e-01 + 4.928000000000e-10 3.833851407049e-01 + 5.028000000000e-10 5.332033925163e-01 + 5.128000000000e-10 6.240009303805e-01 + 5.228000000000e-10 7.092156296740e-01 + 5.328000000000e-10 7.789178950697e-01 + 5.428000000000e-10 7.989050835748e-01 + 5.528000000000e-10 7.331635644704e-01 + 5.628000000000e-10 5.312038508238e-01 + 5.728000000000e-10 2.065745538625e-01 + 5.828000000000e-10 -1.291960705945e-01 + 5.928000000000e-10 -3.833509278886e-01 + 6.028000000000e-10 -5.332368573592e-01 + 6.128000000000e-10 -6.239679712691e-01 + 6.228000000000e-10 -7.092497084655e-01 + 6.328000000000e-10 -7.788845366535e-01 + 6.428000000000e-10 -7.989377629672e-01 + 6.528000000000e-10 -7.331298791234e-01 + 6.628000000000e-10 -5.312385744549e-01 + 6.728000000000e-10 -2.065399094583e-01 + 6.828000000000e-10 1.291646812353e-01 + 6.928000000000e-10 3.833822988637e-01 + 7.028000000000e-10 5.332062833028e-01 + 7.128000000000e-10 6.239988652624e-01 + 7.228000000000e-10 7.092181343784e-01 + 7.328000000000e-10 7.789155267181e-01 + 7.428000000000e-10 7.989074545455e-01 + 7.528000000000e-10 7.331605295450e-01 + 7.628000000000e-10 5.312080087648e-01 + 7.728000000000e-10 2.065705039315e-01 + 7.828000000000e-10 -1.291926212165e-01 + 7.928000000000e-10 -3.833551733065e-01 + 8.028000000000e-10 -5.332328436976e-01 + 8.128000000000e-10 -6.239725200032e-01 + 8.228000000000e-10 -7.092452956008e-01 + 8.328000000000e-10 -7.788891439389e-01 + 8.428000000000e-10 -7.989331916474e-01 + 8.528000000000e-10 -7.331340451631e-01 + 8.628000000000e-10 -5.312350772815e-01 + 8.728000000000e-10 -2.065433053799e-01 + 8.828000000000e-10 1.291679984852e-01 + 8.928000000000e-10 3.833797175156e-01 + 9.028000000000e-10 5.332088978420e-01 + 9.128000000000e-10 6.239966795455e-01 + 9.228000000000e-10 7.092206518532e-01 + 9.328000000000e-10 7.789132522577e-01 + 9.428000000000e-10 7.989096829456e-01 + 9.528000000000e-10 7.331579091452e-01 + 9.628000000000e-10 5.312112407565e-01 + 9.728000000000e-10 2.065672983353e-01 + 9.828000000000e-10 -1.291898675297e-01 + 9.928000000000e-10 -3.833583124064e-01 + 1.000000000000e-09 -4.991705375338e-01 diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_24/CML_divider.sym b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_24/CML_divider.sym new file mode 100644 index 00000000..e46eb233 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_24/CML_divider.sym @@ -0,0 +1,30 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 -120 -20 -100 -20 {} +L 4 -120 20 -100 20 {} +L 4 100 -20 120 -20 {} +L 4 100 20 120 20 {} +L 7 0 -60 0 -40 {} +L 7 0 40 0 60 {} +B 5 -122.5 -22.5 -117.5 -17.5 {name=Vo+ dir=out} +B 5 -122.5 17.5 -117.5 22.5 {name=Vo- dir=out} +B 5 117.5 -22.5 122.5 -17.5 {name=Vi+ dir=in} +B 5 117.5 17.5 122.5 22.5 {name=Vi- dir=in} +B 5 -2.5 -62.5 2.5 -57.5 {name=vdd dir=inout} +B 5 -2.5 57.5 2.5 62.5 {name=gnd dir=inout} +P 4 5 100 -40 -100 -40 -100 40 100 40 100 -40 {} +T {@symname} -44 -6 0 0 0.3 0.3 {} +T {@name} 45 -52 0 0 0.2 0.2 {} +T {Vo+} -95 -24 0 0 0.2 0.2 {} +T {Vo-} -95 16 0 0 0.2 0.2 {} +T {Vi+} 95 -16 2 0 0.2 0.2 {} +T {Vi-} 95 24 2 0 0.2 0.2 {} +T {vdd} 10 -39 0 1 0.2 0.2 {} +T {gnd} -10 34 2 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_24/conditions.yaml b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_24/conditions.yaml new file mode 100644 index 00000000..d6c8c2d6 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_24/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice +N: 24 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: tt +filename: CML_core_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_24 +temperature: '80' +vdd: '1.6' diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_25/.spiceinit b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_25/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_25/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_25/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_25/CML_core_tb.sch new file mode 100644 index 00000000..d5f3541b --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_25/CML_core_tb.sch @@ -0,0 +1,73 @@ +v {xschem version=3.4.8RC file_version=1.3} +G {} +K {} +V {} +S {} +F {} +E {} +N 740 -940 740 -920 {lab=GND} +N 740 -1090 740 -1060 {lab=VDD} +N 600 -1020 620 -1020 {lab=Vinplus} +N 600 -980 620 -980 {lab=Vinminus} +N 860 -1020 880 -1020 {lab=Voplus} +N 860 -980 880 -980 {lab=Vominus} +N 1150 -850 1150 -820 {lab=VDD} +N 1150 -760 1150 -730 {lab=GND} +N 930 -850 930 -820 {lab=Vinminus} +N 930 -760 930 -730 {lab=GND} +N 720 -850 720 -820 {lab=Vinplus} +N 720 -760 720 -730 {lab=GND} +C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.param A=0.3 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write CML_core_tb.raw +set appendwrite +tran 10p 1n 160p + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_25/CML_core_tb_25.data vo_diff +quit + +.endc +"} +C {opin.sym} 880 -1020 2 1 {name=p6 lab=Voplus} +C {opin.sym} 880 -980 0 0 {name=p9 lab=Vominus} +C {devices/code_shown.sym} 10 -620 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_ff + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice + +.temp 80 +" +} +C {iopin.sym} 740 -1090 0 1 {name=p2 lab=VDD} +C {ipin.sym} 600 -1020 2 1 {name=p4 lab=Vinplus} +C {ipin.sym} 600 -980 2 1 {name=p1 lab=Vinminus} +C {CML_divider.sym} 740 -1000 0 1 {name=x1} +C {vsource.sym} 1150 -790 0 0 {name=V1 value=1.6 savecurrent=false} +C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} +C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} +C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 A 10G 0 0 0)" savecurrent=false} +C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 A 10G 0 0 180)" savecurrent=false} +C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_25/CML_core_tb_25.data b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_25/CML_core_tb_25.data new file mode 100644 index 00000000..10c03df1 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_25/CML_core_tb_25.data @@ -0,0 +1,85 @@ + 1.628000000000e-10 5.368449571565e-01 + 1.728000000000e-10 2.154696494615e-01 + 1.828000000000e-10 -1.180750667507e-01 + 1.928000000000e-10 -3.694801437498e-01 + 2.028000000000e-10 -5.157339685643e-01 + 2.128000000000e-10 -6.051803608378e-01 + 2.228000000000e-10 -6.923688047900e-01 + 2.328000000000e-10 -7.627278516708e-01 + 2.428000000000e-10 -7.836324050269e-01 + 2.528000000000e-10 -7.217390774868e-01 + 2.628000000000e-10 -5.258344598842e-01 + 2.728000000000e-10 -2.060622799160e-01 + 2.828000000000e-10 1.253068918672e-01 + 2.928000000000e-10 3.754763463876e-01 + 3.028000000000e-10 5.204513706872e-01 + 3.128000000000e-10 6.088547126517e-01 + 3.228000000000e-10 6.948747427610e-01 + 3.328000000000e-10 7.643967320598e-01 + 3.428000000000e-10 7.844541546789e-01 + 3.528000000000e-10 7.222905371020e-01 + 3.628000000000e-10 5.261436989659e-01 + 3.728000000000e-10 2.064244494061e-01 + 3.828000000000e-10 -1.251087630483e-01 + 3.928000000000e-10 -3.752230316775e-01 + 4.028000000000e-10 -5.203274407129e-01 + 4.128000000000e-10 -6.086807930540e-01 + 4.228000000000e-10 -6.948278459755e-01 + 4.328000000000e-10 -7.642927444658e-01 + 4.428000000000e-10 -7.844689558048e-01 + 4.528000000000e-10 -7.222270537973e-01 + 4.628000000000e-10 -5.261810188038e-01 + 4.728000000000e-10 -2.063649367923e-01 + 4.828000000000e-10 1.250740150254e-01 + 4.928000000000e-10 3.752740624702e-01 + 5.028000000000e-10 5.202917067072e-01 + 5.128000000000e-10 6.087280474834e-01 + 5.228000000000e-10 6.947875493975e-01 + 5.328000000000e-10 7.643381446772e-01 + 5.428000000000e-10 7.844278436925e-01 + 5.528000000000e-10 7.222707134126e-01 + 5.628000000000e-10 5.261386731045e-01 + 5.728000000000e-10 2.064078101390e-01 + 5.828000000000e-10 -1.251125509614e-01 + 5.928000000000e-10 -3.752362786491e-01 + 6.028000000000e-10 -5.203279553884e-01 + 6.128000000000e-10 -6.086920089480e-01 + 6.228000000000e-10 -6.948246280643e-01 + 6.328000000000e-10 -7.643013046090e-01 + 6.428000000000e-10 -7.844633201903e-01 + 6.528000000000e-10 -7.222336042293e-01 + 6.628000000000e-10 -5.261766512068e-01 + 6.728000000000e-10 -2.063691829929e-01 + 6.828000000000e-10 1.250784814444e-01 + 6.928000000000e-10 3.752708432251e-01 + 7.028000000000e-10 5.202949527958e-01 + 7.128000000000e-10 6.087256874770e-01 + 7.228000000000e-10 6.947904319095e-01 + 7.328000000000e-10 7.643352365607e-01 + 7.428000000000e-10 7.844306677783e-01 + 7.528000000000e-10 7.222672114429e-01 + 7.628000000000e-10 5.261433781551e-01 + 7.728000000000e-10 2.064029029490e-01 + 7.828000000000e-10 -1.251089390610e-01 + 7.928000000000e-10 -3.752408867518e-01 + 8.028000000000e-10 -5.203238706374e-01 + 8.128000000000e-10 -6.086968714397e-01 + 8.228000000000e-10 -6.948200705245e-01 + 8.328000000000e-10 -7.643060605343e-01 + 8.428000000000e-10 -7.844586734539e-01 + 8.528000000000e-10 -7.222379683754e-01 + 8.628000000000e-10 -5.261730442965e-01 + 8.728000000000e-10 -2.063725681788e-01 + 8.828000000000e-10 1.250820910423e-01 + 8.928000000000e-10 3.752680406761e-01 + 9.028000000000e-10 5.202978581562e-01 + 9.128000000000e-10 6.087233210610e-01 + 9.228000000000e-10 6.947932359489e-01 + 9.328000000000e-10 7.643326365950e-01 + 9.428000000000e-10 7.844331791786e-01 + 9.528000000000e-10 7.222642751837e-01 + 9.628000000000e-10 5.261469613157e-01 + 9.728000000000e-10 2.063991803079e-01 + 9.828000000000e-10 -1.251060220915e-01 + 9.928000000000e-10 -3.752443155305e-01 + 1.000000000000e-09 -4.875704709340e-01 diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_25/CML_divider.sym b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_25/CML_divider.sym new file mode 100644 index 00000000..e46eb233 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_25/CML_divider.sym @@ -0,0 +1,30 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 -120 -20 -100 -20 {} +L 4 -120 20 -100 20 {} +L 4 100 -20 120 -20 {} +L 4 100 20 120 20 {} +L 7 0 -60 0 -40 {} +L 7 0 40 0 60 {} +B 5 -122.5 -22.5 -117.5 -17.5 {name=Vo+ dir=out} +B 5 -122.5 17.5 -117.5 22.5 {name=Vo- dir=out} +B 5 117.5 -22.5 122.5 -17.5 {name=Vi+ dir=in} +B 5 117.5 17.5 122.5 22.5 {name=Vi- dir=in} +B 5 -2.5 -62.5 2.5 -57.5 {name=vdd dir=inout} +B 5 -2.5 57.5 2.5 62.5 {name=gnd dir=inout} +P 4 5 100 -40 -100 -40 -100 40 100 40 100 -40 {} +T {@symname} -44 -6 0 0 0.3 0.3 {} +T {@name} 45 -52 0 0 0.2 0.2 {} +T {Vo+} -95 -24 0 0 0.2 0.2 {} +T {Vo-} -95 16 0 0 0.2 0.2 {} +T {Vi+} 95 -16 2 0 0.2 0.2 {} +T {Vi-} 95 24 2 0 0.2 0.2 {} +T {vdd} 10 -39 0 1 0.2 0.2 {} +T {gnd} -10 34 2 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_25/conditions.yaml b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_25/conditions.yaml new file mode 100644 index 00000000..43e5069a --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_25/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice +N: 25 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: ff +filename: CML_core_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_25 +temperature: '80' +vdd: '1.6' diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_26/.spiceinit b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_26/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_26/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_26/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_26/CML_core_tb.sch new file mode 100644 index 00000000..e9ecf884 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_26/CML_core_tb.sch @@ -0,0 +1,73 @@ +v {xschem version=3.4.8RC file_version=1.3} +G {} +K {} +V {} +S {} +F {} +E {} +N 740 -940 740 -920 {lab=GND} +N 740 -1090 740 -1060 {lab=VDD} +N 600 -1020 620 -1020 {lab=Vinplus} +N 600 -980 620 -980 {lab=Vinminus} +N 860 -1020 880 -1020 {lab=Voplus} +N 860 -980 880 -980 {lab=Vominus} +N 1150 -850 1150 -820 {lab=VDD} +N 1150 -760 1150 -730 {lab=GND} +N 930 -850 930 -820 {lab=Vinminus} +N 930 -760 930 -730 {lab=GND} +N 720 -850 720 -820 {lab=Vinplus} +N 720 -760 720 -730 {lab=GND} +C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.param A=0.3 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write CML_core_tb.raw +set appendwrite +tran 10p 1n 160p + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_26/CML_core_tb_26.data vo_diff +quit + +.endc +"} +C {opin.sym} 880 -1020 2 1 {name=p6 lab=Voplus} +C {opin.sym} 880 -980 0 0 {name=p9 lab=Vominus} +C {devices/code_shown.sym} 10 -620 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_ss + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice + +.temp 80 +" +} +C {iopin.sym} 740 -1090 0 1 {name=p2 lab=VDD} +C {ipin.sym} 600 -1020 2 1 {name=p4 lab=Vinplus} +C {ipin.sym} 600 -980 2 1 {name=p1 lab=Vinminus} +C {CML_divider.sym} 740 -1000 0 1 {name=x1} +C {vsource.sym} 1150 -790 0 0 {name=V1 value=1.6 savecurrent=false} +C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} +C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} +C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 A 10G 0 0 0)" savecurrent=false} +C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 A 10G 0 0 180)" savecurrent=false} +C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_26/CML_core_tb_26.data b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_26/CML_core_tb_26.data new file mode 100644 index 00000000..0eed4736 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_26/CML_core_tb_26.data @@ -0,0 +1,85 @@ + 1.628000000000e-10 5.436948212736e-01 + 1.728000000000e-10 2.205877879634e-01 + 1.828000000000e-10 -1.163348151974e-01 + 1.928000000000e-10 -3.771420921807e-01 + 2.028000000000e-10 -5.370108455130e-01 + 2.128000000000e-10 -6.331888427572e-01 + 2.228000000000e-10 -7.164762236683e-01 + 2.328000000000e-10 -7.851286946760e-01 + 2.428000000000e-10 -8.059531868761e-01 + 2.528000000000e-10 -7.384564800459e-01 + 2.628000000000e-10 -5.363144999221e-01 + 2.728000000000e-10 -2.144637665285e-01 + 2.828000000000e-10 1.212929793685e-01 + 2.928000000000e-10 3.815418180812e-01 + 3.028000000000e-10 5.406606883043e-01 + 3.128000000000e-10 6.361475176918e-01 + 3.228000000000e-10 7.185360719894e-01 + 3.328000000000e-10 7.865091736067e-01 + 3.428000000000e-10 8.065713749450e-01 + 3.528000000000e-10 7.387921596039e-01 + 3.628000000000e-10 5.364259512539e-01 + 3.728000000000e-10 2.146317863835e-01 + 3.828000000000e-10 -1.212295238309e-01 + 3.928000000000e-10 -3.814110096077e-01 + 4.028000000000e-10 -5.406166203788e-01 + 4.128000000000e-10 -6.360467438854e-01 + 4.228000000000e-10 -7.185257686739e-01 + 4.328000000000e-10 -7.864422304189e-01 + 4.428000000000e-10 -8.065937411295e-01 + 4.528000000000e-10 -7.387487319623e-01 + 4.628000000000e-10 -5.364619855530e-01 + 4.728000000000e-10 -2.145913861363e-01 + 4.828000000000e-10 1.211959412322e-01 + 4.928000000000e-10 3.814481551476e-01 + 5.028000000000e-10 5.405833390120e-01 + 5.128000000000e-10 6.360831449777e-01 + 5.228000000000e-10 7.184907253890e-01 + 5.328000000000e-10 7.864786648334e-01 + 5.428000000000e-10 8.065585198321e-01 + 5.528000000000e-10 7.387840006966e-01 + 5.628000000000e-10 5.364270346085e-01 + 5.728000000000e-10 2.146260338485e-01 + 5.828000000000e-10 -1.212277001076e-01 + 5.928000000000e-10 -3.814182410321e-01 + 6.028000000000e-10 -5.406130595607e-01 + 6.128000000000e-10 -6.360540210765e-01 + 6.228000000000e-10 -7.185209180994e-01 + 6.328000000000e-10 -7.864492678158e-01 + 6.428000000000e-10 -8.065874846616e-01 + 6.528000000000e-10 -7.387544794760e-01 + 6.628000000000e-10 -5.364572547805e-01 + 6.728000000000e-10 -2.145959871001e-01 + 6.828000000000e-10 1.211997934696e-01 + 6.928000000000e-10 3.814456726213e-01 + 7.028000000000e-10 5.405857946323e-01 + 7.128000000000e-10 6.360813265814e-01 + 7.228000000000e-10 7.184929266665e-01 + 7.328000000000e-10 7.864767243186e-01 + 7.428000000000e-10 8.065604357181e-01 + 7.528000000000e-10 7.387815158779e-01 + 7.628000000000e-10 5.364303644926e-01 + 7.728000000000e-10 2.146228844142e-01 + 7.828000000000e-10 -1.212245339809e-01 + 7.928000000000e-10 -3.814220075435e-01 + 8.028000000000e-10 -5.406092538148e-01 + 8.128000000000e-10 -6.360581238583e-01 + 8.228000000000e-10 -7.185168954112e-01 + 8.328000000000e-10 -7.864535273883e-01 + 8.428000000000e-10 -8.065831328643e-01 + 8.528000000000e-10 -7.387583532284e-01 + 8.628000000000e-10 -5.364538735708e-01 + 8.728000000000e-10 -2.145992968151e-01 + 8.828000000000e-10 1.212027591883e-01 + 8.928000000000e-10 3.814433789143e-01 + 9.028000000000e-10 5.405880431190e-01 + 9.128000000000e-10 6.360793794817e-01 + 9.228000000000e-10 7.184951630330e-01 + 9.328000000000e-10 7.864747526663e-01 + 9.428000000000e-10 8.065622905723e-01 + 9.528000000000e-10 7.387792872630e-01 + 9.628000000000e-10 5.364330391099e-01 + 9.728000000000e-10 2.146202349236e-01 + 9.828000000000e-10 -1.212220310216e-01 + 9.928000000000e-10 -3.814247853449e-01 + 1.000000000000e-09 -5.040490090913e-01 diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_26/CML_divider.sym b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_26/CML_divider.sym new file mode 100644 index 00000000..e46eb233 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_26/CML_divider.sym @@ -0,0 +1,30 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 -120 -20 -100 -20 {} +L 4 -120 20 -100 20 {} +L 4 100 -20 120 -20 {} +L 4 100 20 120 20 {} +L 7 0 -60 0 -40 {} +L 7 0 40 0 60 {} +B 5 -122.5 -22.5 -117.5 -17.5 {name=Vo+ dir=out} +B 5 -122.5 17.5 -117.5 22.5 {name=Vo- dir=out} +B 5 117.5 -22.5 122.5 -17.5 {name=Vi+ dir=in} +B 5 117.5 17.5 122.5 22.5 {name=Vi- dir=in} +B 5 -2.5 -62.5 2.5 -57.5 {name=vdd dir=inout} +B 5 -2.5 57.5 2.5 62.5 {name=gnd dir=inout} +P 4 5 100 -40 -100 -40 -100 40 100 40 100 -40 {} +T {@symname} -44 -6 0 0 0.3 0.3 {} +T {@name} 45 -52 0 0 0.2 0.2 {} +T {Vo+} -95 -24 0 0 0.2 0.2 {} +T {Vo-} -95 16 0 0 0.2 0.2 {} +T {Vi+} 95 -16 2 0 0.2 0.2 {} +T {Vi-} 95 24 2 0 0.2 0.2 {} +T {vdd} 10 -39 0 1 0.2 0.2 {} +T {gnd} -10 34 2 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_26/conditions.yaml b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_26/conditions.yaml new file mode 100644 index 00000000..0bd90bf0 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_26/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice +N: 26 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: ss +filename: CML_core_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/run_26 +temperature: '80' +vdd: '1.6' diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/simulation_summary.csv b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/simulation_summary.csv new file mode 100644 index 00000000..2f5f947b --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/simulation_summary.csv @@ -0,0 +1,28 @@ +run,corner,temperature,vdd,time,vo_diff,frequency,amplitude,voltage_swing +run_00,tt,-40,0.8,"[1.628e-10, 1.728e-10, 1.828e-10, …]","[-2.952e-01, -6.044e-02, 0.182, …]",4.722e+09,0.709,1.418 +run_01,ff,-40,0.8,"[1.628e-10, 1.728e-10, 1.828e-10, …]","[-2.648e-01, -3.672e-02, 0.198, …]",4.722e+09,0.693,1.386 +run_02,ss,-40,0.8,"[1.628e-10, 1.728e-10, 1.828e-10, …]","[-3.227e-01, -8.540e-02, 0.161, …]",4.722e+09,0.722,1.444 +run_03,tt,27,0.8,"[1.628e-10, 1.728e-10, 1.828e-10, …]","[-2.752e-01, -5.371e-02, 0.179, …]",4.722e+09,0.692,1.383 +run_04,ff,27,0.8,"[1.628e-10, 1.728e-10, 1.828e-10, …]","[-2.482e-01, -3.259e-02, 0.193, …]",4.722e+09,0.672,1.345 +run_05,ss,27,0.8,"[1.628e-10, 1.728e-10, 1.828e-10, …]","[-3.027e-01, -8.046e-02, 0.156, …]",4.722e+09,0.706,1.412 +run_06,tt,80,0.8,"[1.628e-10, 1.728e-10, 1.828e-10, …]","[-2.659e-01, -5.659e-02, 0.167, …]",4.722e+09,0.669,1.338 +run_07,ff,80,0.8,"[1.628e-10, 1.728e-10, 1.828e-10, …]","[-2.411e-01, -3.745e-02, 0.179, …]",4.722e+09,0.648,1.295 +run_08,ss,80,0.8,"[1.628e-10, 1.728e-10, 1.828e-10, …]","[-2.916e-01, -8.207e-02, 0.144, …]",4.722e+09,0.685,1.371 +run_09,tt,-40,1.2,"[1.628e-10, 1.728e-10, 1.828e-10, …]","[-5.397e-01, -2.046e-01, 0.131, …]",4.722e+09,0.807,1.614 +run_10,ff,-40,1.2,"[1.628e-10, 1.728e-10, 1.828e-10, …]","[-5.293e-01, -2.034e-01, 0.125, …]",4.722e+09,0.789,1.577 +run_11,ss,-40,1.2,"[1.628e-10, 1.728e-10, 1.828e-10, …]","[-5.474e-01, -2.088e-01, 0.131, …]",4.722e+09,0.819,1.638 +run_12,tt,27,1.2,"[1.628e-10, 1.728e-10, 1.828e-10, …]","[-5.050e-01, -1.958e-01, 0.120, …]",4.722e+09,0.771,1.543 +run_13,ff,27,1.2,"[1.628e-10, 1.728e-10, 1.828e-10, …]","[-4.935e-01, -1.929e-01, 0.116, …]",4.722e+09,0.753,1.505 +run_14,ss,27,1.2,"[1.628e-10, 1.728e-10, 1.828e-10, …]","[-5.133e-01, -2.032e-01, 0.114, …]",4.722e+09,0.783,1.566 +run_15,tt,80,1.2,"[1.628e-10, 1.728e-10, 1.828e-10, …]","[-4.765e-01, -1.934e-01, 0.103, …]",4.722e+09,0.743,1.486 +run_16,ff,80,1.2,"[1.628e-10, 1.728e-10, 1.828e-10, …]","[-4.643e-01, -1.890e-01, 0.101, …]",4.722e+09,0.725,1.450 +run_17,ss,80,1.2,"[1.628e-10, 1.728e-10, 1.828e-10, …]","[-4.853e-01, -2.024e-01, 9.500e-02, …]",4.722e+09,0.755,1.510 +run_18,tt,-40,1.6,"[1.628e-10, 1.728e-10, 1.828e-10, …]","[0.575, 0.203, -1.640e-01, …]",4.722e+09,0.851,1.702 +run_19,ff,-40,1.6,"[1.628e-10, 1.728e-10, 1.828e-10, …]","[0.571, 0.205, -1.568e-01, …]",4.722e+09,0.836,1.672 +run_20,ss,-40,1.6,"[1.628e-10, 1.728e-10, 1.828e-10, …]","[0.579, 0.208, -1.623e-01, …]",4.722e+09,0.860,1.720 +run_21,tt,27,1.6,"[1.628e-10, 1.728e-10, 1.828e-10, …]","[0.557, 0.208, -1.460e-01, …]",4.722e+09,0.826,1.653 +run_22,ff,27,1.6,"[1.628e-10, 1.728e-10, 1.828e-10, …]","[0.554, 0.209, -1.400e-01, …]",4.722e+09,0.812,1.624 +run_23,ss,27,1.6,"[1.628e-10, 1.728e-10, 1.828e-10, …]","[0.561, 0.214, -1.407e-01, …]",4.722e+09,0.834,1.669 +run_24,tt,80,1.6,"[1.628e-10, 1.728e-10, 1.828e-10, …]","[0.541, 0.214, -1.231e-01, …]",4.722e+09,0.799,1.598 +run_25,ff,80,1.6,"[1.628e-10, 1.728e-10, 1.828e-10, …]","[0.537, 0.215, -1.181e-01, …]",4.722e+09,0.784,1.569 +run_26,ss,80,1.6,"[1.628e-10, 1.728e-10, 1.828e-10, …]","[0.544, 0.221, -1.163e-01, …]",4.722e+09,0.807,1.613 diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/simulation_summary.md b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/simulation_summary.md new file mode 100644 index 00000000..6401031e --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/simulation_summary.md @@ -0,0 +1,31 @@ +# Simulation Summary for CML divider frequency response + +| run | corner | temperature | vdd | time | vo_diff | frequency | amplitude | voltage_swing | +| :-- | -----: | ----------: | --: | ---: | ------: | --------: | --------: | ------------: | +| run_00 | tt | -40 | 0.8 | [1.628e-10, 1.728e-10, 1.828e-10, …] | [-2.952e-01, -6.044e-02, 0.182, …] | 4.722e+09 | 0.709 | 1.418 | +| run_01 | ff | -40 | 0.8 | [1.628e-10, 1.728e-10, 1.828e-10, …] | [-2.648e-01, -3.672e-02, 0.198, …] | 4.722e+09 | 0.693 | 1.386 | +| run_02 | ss | -40 | 0.8 | [1.628e-10, 1.728e-10, 1.828e-10, …] | [-3.227e-01, -8.540e-02, 0.161, …] | 4.722e+09 | 0.722 | 1.444 | +| run_03 | tt | 27 | 0.8 | [1.628e-10, 1.728e-10, 1.828e-10, …] | [-2.752e-01, -5.371e-02, 0.179, …] | 4.722e+09 | 0.692 | 1.383 | +| run_04 | ff | 27 | 0.8 | [1.628e-10, 1.728e-10, 1.828e-10, …] | [-2.482e-01, -3.259e-02, 0.193, …] | 4.722e+09 | 0.672 | 1.345 | +| run_05 | ss | 27 | 0.8 | [1.628e-10, 1.728e-10, 1.828e-10, …] | [-3.027e-01, -8.046e-02, 0.156, …] | 4.722e+09 | 0.706 | 1.412 | +| run_06 | tt | 80 | 0.8 | [1.628e-10, 1.728e-10, 1.828e-10, …] | [-2.659e-01, -5.659e-02, 0.167, …] | 4.722e+09 | 0.669 | 1.338 | +| run_07 | ff | 80 | 0.8 | [1.628e-10, 1.728e-10, 1.828e-10, …] | [-2.411e-01, -3.745e-02, 0.179, …] | 4.722e+09 | 0.648 | 1.295 | +| run_08 | ss | 80 | 0.8 | [1.628e-10, 1.728e-10, 1.828e-10, …] | [-2.916e-01, -8.207e-02, 0.144, …] | 4.722e+09 | 0.685 | 1.371 | +| run_09 | tt | -40 | 1.2 | [1.628e-10, 1.728e-10, 1.828e-10, …] | [-5.397e-01, -2.046e-01, 0.131, …] | 4.722e+09 | 0.807 | 1.614 | +| run_10 | ff | -40 | 1.2 | [1.628e-10, 1.728e-10, 1.828e-10, …] | [-5.293e-01, -2.034e-01, 0.125, …] | 4.722e+09 | 0.789 | 1.577 | +| run_11 | ss | -40 | 1.2 | [1.628e-10, 1.728e-10, 1.828e-10, …] | [-5.474e-01, -2.088e-01, 0.131, …] | 4.722e+09 | 0.819 | 1.638 | +| run_12 | tt | 27 | 1.2 | [1.628e-10, 1.728e-10, 1.828e-10, …] | [-5.050e-01, -1.958e-01, 0.120, …] | 4.722e+09 | 0.771 | 1.543 | +| run_13 | ff | 27 | 1.2 | [1.628e-10, 1.728e-10, 1.828e-10, …] | [-4.935e-01, -1.929e-01, 0.116, …] | 4.722e+09 | 0.753 | 1.505 | +| run_14 | ss | 27 | 1.2 | [1.628e-10, 1.728e-10, 1.828e-10, …] | [-5.133e-01, -2.032e-01, 0.114, …] | 4.722e+09 | 0.783 | 1.566 | +| run_15 | tt | 80 | 1.2 | [1.628e-10, 1.728e-10, 1.828e-10, …] | [-4.765e-01, -1.934e-01, 0.103, …] | 4.722e+09 | 0.743 | 1.486 | +| run_16 | ff | 80 | 1.2 | [1.628e-10, 1.728e-10, 1.828e-10, …] | [-4.643e-01, -1.890e-01, 0.101, …] | 4.722e+09 | 0.725 | 1.450 | +| run_17 | ss | 80 | 1.2 | [1.628e-10, 1.728e-10, 1.828e-10, …] | [-4.853e-01, -2.024e-01, 9.500e-02, …] | 4.722e+09 | 0.755 | 1.510 | +| run_18 | tt | -40 | 1.6 | [1.628e-10, 1.728e-10, 1.828e-10, …] | [0.575, 0.203, -1.640e-01, …] | 4.722e+09 | 0.851 | 1.702 | +| run_19 | ff | -40 | 1.6 | [1.628e-10, 1.728e-10, 1.828e-10, …] | [0.571, 0.205, -1.568e-01, …] | 4.722e+09 | 0.836 | 1.672 | +| run_20 | ss | -40 | 1.6 | [1.628e-10, 1.728e-10, 1.828e-10, …] | [0.579, 0.208, -1.623e-01, …] | 4.722e+09 | 0.860 | 1.720 | +| run_21 | tt | 27 | 1.6 | [1.628e-10, 1.728e-10, 1.828e-10, …] | [0.557, 0.208, -1.460e-01, …] | 4.722e+09 | 0.826 | 1.653 | +| run_22 | ff | 27 | 1.6 | [1.628e-10, 1.728e-10, 1.828e-10, …] | [0.554, 0.209, -1.400e-01, …] | 4.722e+09 | 0.812 | 1.624 | +| run_23 | ss | 27 | 1.6 | [1.628e-10, 1.728e-10, 1.828e-10, …] | [0.561, 0.214, -1.407e-01, …] | 4.722e+09 | 0.834 | 1.669 | +| run_24 | tt | 80 | 1.6 | [1.628e-10, 1.728e-10, 1.828e-10, …] | [0.541, 0.214, -1.231e-01, …] | 4.722e+09 | 0.799 | 1.598 | +| run_25 | ff | 80 | 1.6 | [1.628e-10, 1.728e-10, 1.828e-10, …] | [0.537, 0.215, -1.181e-01, …] | 4.722e+09 | 0.784 | 1.569 | +| run_26 | ss | 80 | 1.6 | [1.628e-10, 1.728e-10, 1.828e-10, …] | [0.544, 0.221, -1.163e-01, …] | 4.722e+09 | 0.807 | 1.613 | diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/vo_diff_vs_time.png b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/vo_diff_vs_time.png new file mode 100644 index 00000000..64d1b808 Binary files /dev/null and b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/parameters/ac_params/vo_diff_vs_time.png differ diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/summary.md b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/summary.md new file mode 100644 index 00000000..a11c2c65 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-42-46/summary.md @@ -0,0 +1,11 @@ + +# CACE Summary for CML_divider + +**netlist source**: schematic + +| Parameter | Tool | Result | Min Limit | Min Value | Typ Target | Typ Value | Max Limit | Max Value | Status | +| :------------------- | :------------------- | :-------------- | ---------: | -----------: | ---------: | -----------: | ---------: | -----------: | :------: | +| Frequency | ngspice | frequency | 4.3 GHz | 4.722 GHz | 5.0 GHz | 4.722 GHz | 5.2 GHz | 4.722 GHz | Pass ✅ | +| Amplitude | ngspice | amplitude | 0.2 V | 0.648 V | 0.4 V | 0.771 V | 0.6 V | 0.860 V | Fail ❌ | +| Voltage swing | ngspice | voltage_swing | 0.4 V | 1.295 V | 0.8 V | 1.543 V | 1.2 V | 1.720 V | Fail ❌ | + diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/CML_core_tb.sch new file mode 100644 index 00000000..0f707234 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/CML_core_tb.sch @@ -0,0 +1,73 @@ +v {xschem version=3.4.8RC file_version=1.3} +G {} +K {} +V {} +S {} +F {} +E {} +N 740 -940 740 -920 {lab=GND} +N 740 -1090 740 -1060 {lab=VDD} +N 600 -1020 620 -1020 {lab=Vinplus} +N 600 -980 620 -980 {lab=Vinminus} +N 860 -1020 880 -1020 {lab=Voplus} +N 860 -980 880 -980 {lab=Vominus} +N 1150 -850 1150 -820 {lab=VDD} +N 1150 -760 1150 -730 {lab=GND} +N 930 -850 930 -820 {lab=Vinminus} +N 930 -760 930 -730 {lab=GND} +N 720 -850 720 -820 {lab=Vinplus} +N 720 -760 720 -730 {lab=GND} +C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.param A=0 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write CML_core_tb.raw +set appendwrite +tran 10p 1n 160p + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata CACE\{simpath\}/CACE\{filename\}_CACE\{N\}.data vo_diff +quit + +.endc +"} +C {opin.sym} 880 -1020 2 1 {name=p6 lab=Voplus} +C {opin.sym} 880 -980 0 0 {name=p9 lab=Vominus} +C {devices/code_shown.sym} 10 -620 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib CACE\{PDK_ROOT\}/CACE\{PDK\}/libs.tech/ngspice/models/cornerMOSlv.lib mos_CACE\{corner\} + +.include CACE\{DUT_path\} + +.temp CACE\{temperature\} +" +} +C {iopin.sym} 740 -1090 0 1 {name=p2 lab=VDD} +C {ipin.sym} 600 -1020 2 1 {name=p4 lab=Vinplus} +C {ipin.sym} 600 -980 2 1 {name=p1 lab=Vinminus} +C {CML_divider.sym} 740 -1000 0 1 {name=x1} +C {vsource.sym} 1150 -790 0 0 {name=V1 value=CACE\{vdd\} savecurrent=false} +C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} +C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} +C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 A 10G 0 0 0)" savecurrent=false} +C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 A 10G 0 0 180)" savecurrent=false} +C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_00/.spiceinit b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_00/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_00/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_00/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_00/CML_core_tb.sch new file mode 100644 index 00000000..5a875307 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_00/CML_core_tb.sch @@ -0,0 +1,73 @@ +v {xschem version=3.4.8RC file_version=1.3} +G {} +K {} +V {} +S {} +F {} +E {} +N 740 -940 740 -920 {lab=GND} +N 740 -1090 740 -1060 {lab=VDD} +N 600 -1020 620 -1020 {lab=Vinplus} +N 600 -980 620 -980 {lab=Vinminus} +N 860 -1020 880 -1020 {lab=Voplus} +N 860 -980 880 -980 {lab=Vominus} +N 1150 -850 1150 -820 {lab=VDD} +N 1150 -760 1150 -730 {lab=GND} +N 930 -850 930 -820 {lab=Vinminus} +N 930 -760 930 -730 {lab=GND} +N 720 -850 720 -820 {lab=Vinplus} +N 720 -760 720 -730 {lab=GND} +C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.param A=0 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write CML_core_tb.raw +set appendwrite +tran 10p 1n 160p + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_00/CML_core_tb_0.data vo_diff +quit + +.endc +"} +C {opin.sym} 880 -1020 2 1 {name=p6 lab=Voplus} +C {opin.sym} 880 -980 0 0 {name=p9 lab=Vominus} +C {devices/code_shown.sym} 10 -620 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_tt + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice + +.temp -40 +" +} +C {iopin.sym} 740 -1090 0 1 {name=p2 lab=VDD} +C {ipin.sym} 600 -1020 2 1 {name=p4 lab=Vinplus} +C {ipin.sym} 600 -980 2 1 {name=p1 lab=Vinminus} +C {CML_divider.sym} 740 -1000 0 1 {name=x1} +C {vsource.sym} 1150 -790 0 0 {name=V1 value=0.8 savecurrent=false} +C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} +C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} +C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 A 10G 0 0 0)" savecurrent=false} +C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 A 10G 0 0 180)" savecurrent=false} +C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_00/CML_core_tb_0.data b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_00/CML_core_tb_0.data new file mode 100644 index 00000000..66b58199 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_00/CML_core_tb_0.data @@ -0,0 +1,85 @@ + 1.628000000000e-10 4.172295258702e-01 + 1.728000000000e-10 5.660306289841e-01 + 1.828000000000e-10 6.427714835619e-01 + 1.928000000000e-10 6.309902240882e-01 + 2.028000000000e-10 5.294294766946e-01 + 2.128000000000e-10 3.620240344858e-01 + 2.228000000000e-10 1.640234450884e-01 + 2.328000000000e-10 -4.612275905861e-02 + 2.428000000000e-10 -2.579117429775e-01 + 2.528000000000e-10 -4.481189355521e-01 + 2.628000000000e-10 -5.863632401034e-01 + 2.728000000000e-10 -6.500797909801e-01 + 2.828000000000e-10 -6.244800987133e-01 + 2.928000000000e-10 -5.114796948453e-01 + 3.028000000000e-10 -3.375169508656e-01 + 3.128000000000e-10 -1.371992811787e-01 + 3.228000000000e-10 7.406969194951e-02 + 3.328000000000e-10 2.845715128812e-01 + 3.428000000000e-10 4.697496179395e-01 + 3.528000000000e-10 5.992920985552e-01 + 3.628000000000e-10 6.520148385162e-01 + 3.728000000000e-10 6.144241739579e-01 + 3.828000000000e-10 4.915878717611e-01 + 3.928000000000e-10 3.124248149666e-01 + 4.028000000000e-10 1.102877163723e-01 + 4.128000000000e-10 -1.018116542879e-01 + 4.228000000000e-10 -3.106348763410e-01 + 4.328000000000e-10 -4.902750974502e-01 + 4.428000000000e-10 -6.108946985102e-01 + 4.528000000000e-10 -6.523720773639e-01 + 4.628000000000e-10 -6.029054191106e-01 + 4.728000000000e-10 -4.707230721172e-01 + 4.828000000000e-10 -2.870097642856e-01 + 4.928000000000e-10 -8.317192159450e-02 + 5.028000000000e-10 1.295203952971e-01 + 5.128000000000e-10 3.362518112840e-01 + 5.228000000000e-10 5.097742084312e-01 + 5.328000000000e-10 6.211919546772e-01 + 5.428000000000e-10 6.511756762383e-01 + 5.528000000000e-10 5.899749487975e-01 + 5.628000000000e-10 4.489748742278e-01 + 5.728000000000e-10 2.613211253429e-01 + 5.828000000000e-10 5.587544382072e-02 + 5.928000000000e-10 -1.571477580061e-01 + 6.028000000000e-10 -3.613437817138e-01 + 6.128000000000e-10 -5.281831591597e-01 + 6.228000000000e-10 -6.301006152887e-01 + 6.328000000000e-10 -6.483960457705e-01 + 6.428000000000e-10 -5.756654257371e-01 + 6.528000000000e-10 -4.264399047824e-01 + 6.628000000000e-10 -2.354004817627e-01 + 6.728000000000e-10 -2.842675634560e-02 + 6.828000000000e-10 1.846345692911e-01 + 6.928000000000e-10 3.858281396610e-01 + 7.028000000000e-10 5.454514092524e-01 + 7.128000000000e-10 6.375581744727e-01 + 7.228000000000e-10 6.440263958793e-01 + 7.328000000000e-10 5.600361282065e-01 + 7.428000000000e-10 4.031839179600e-01 + 7.528000000000e-10 2.092376914444e-01 + 7.628000000000e-10 8.502356190527e-04 + 7.728000000000e-10 -2.119337824727e-01 + 7.828000000000e-10 -4.096116454145e-01 + 7.928000000000e-10 -5.615497053806e-01 + 8.028000000000e-10 -6.435211973252e-01 + 8.128000000000e-10 -6.380709280118e-01 + 8.228000000000e-10 -5.431342908426e-01 + 8.328000000000e-10 -3.792993370635e-01 + 8.428000000000e-10 -1.828419681275e-01 + 8.528000000000e-10 2.683833801096e-02 + 8.628000000000e-10 2.390033411822e-01 + 8.728000000000e-10 4.326291356130e-01 + 8.828000000000e-10 5.764809726856e-01 + 8.928000000000e-10 6.479900106917e-01 + 9.028000000000e-10 6.305680198179e-01 + 9.128000000000e-10 5.250415256290e-01 + 9.228000000000e-10 3.548834257623e-01 + 9.328000000000e-10 1.562248890761e-01 + 9.428000000000e-10 -5.459580212146e-02 + 9.528000000000e-10 -2.657781449274e-01 + 9.628000000000e-10 -4.547945612946e-01 + 9.728000000000e-10 -5.902149502308e-01 + 9.828000000000e-10 -6.509292568482e-01 + 9.928000000000e-10 -6.215366113118e-01 + 1.000000000000e-09 -5.446631202469e-01 diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_00/CML_divider.sym b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_00/CML_divider.sym new file mode 100644 index 00000000..e46eb233 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_00/CML_divider.sym @@ -0,0 +1,30 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 -120 -20 -100 -20 {} +L 4 -120 20 -100 20 {} +L 4 100 -20 120 -20 {} +L 4 100 20 120 20 {} +L 7 0 -60 0 -40 {} +L 7 0 40 0 60 {} +B 5 -122.5 -22.5 -117.5 -17.5 {name=Vo+ dir=out} +B 5 -122.5 17.5 -117.5 22.5 {name=Vo- dir=out} +B 5 117.5 -22.5 122.5 -17.5 {name=Vi+ dir=in} +B 5 117.5 17.5 122.5 22.5 {name=Vi- dir=in} +B 5 -2.5 -62.5 2.5 -57.5 {name=vdd dir=inout} +B 5 -2.5 57.5 2.5 62.5 {name=gnd dir=inout} +P 4 5 100 -40 -100 -40 -100 40 100 40 100 -40 {} +T {@symname} -44 -6 0 0 0.3 0.3 {} +T {@name} 45 -52 0 0 0.2 0.2 {} +T {Vo+} -95 -24 0 0 0.2 0.2 {} +T {Vo-} -95 16 0 0 0.2 0.2 {} +T {Vi+} 95 -16 2 0 0.2 0.2 {} +T {Vi-} 95 24 2 0 0.2 0.2 {} +T {vdd} 10 -39 0 1 0.2 0.2 {} +T {gnd} -10 34 2 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_00/conditions.yaml b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_00/conditions.yaml new file mode 100644 index 00000000..5e0cf1a6 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_00/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice +N: 0 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: tt +filename: CML_core_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_00 +temperature: '-40' +vdd: '0.8' diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_01/.spiceinit b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_01/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_01/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_01/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_01/CML_core_tb.sch new file mode 100644 index 00000000..d89df912 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_01/CML_core_tb.sch @@ -0,0 +1,73 @@ +v {xschem version=3.4.8RC file_version=1.3} +G {} +K {} +V {} +S {} +F {} +E {} +N 740 -940 740 -920 {lab=GND} +N 740 -1090 740 -1060 {lab=VDD} +N 600 -1020 620 -1020 {lab=Vinplus} +N 600 -980 620 -980 {lab=Vinminus} +N 860 -1020 880 -1020 {lab=Voplus} +N 860 -980 880 -980 {lab=Vominus} +N 1150 -850 1150 -820 {lab=VDD} +N 1150 -760 1150 -730 {lab=GND} +N 930 -850 930 -820 {lab=Vinminus} +N 930 -760 930 -730 {lab=GND} +N 720 -850 720 -820 {lab=Vinplus} +N 720 -760 720 -730 {lab=GND} +C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.param A=0 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write CML_core_tb.raw +set appendwrite +tran 10p 1n 160p + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_01/CML_core_tb_1.data vo_diff +quit + +.endc +"} +C {opin.sym} 880 -1020 2 1 {name=p6 lab=Voplus} +C {opin.sym} 880 -980 0 0 {name=p9 lab=Vominus} +C {devices/code_shown.sym} 10 -620 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_ff + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice + +.temp -40 +" +} +C {iopin.sym} 740 -1090 0 1 {name=p2 lab=VDD} +C {ipin.sym} 600 -1020 2 1 {name=p4 lab=Vinplus} +C {ipin.sym} 600 -980 2 1 {name=p1 lab=Vinminus} +C {CML_divider.sym} 740 -1000 0 1 {name=x1} +C {vsource.sym} 1150 -790 0 0 {name=V1 value=0.8 savecurrent=false} +C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} +C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} +C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 A 10G 0 0 0)" savecurrent=false} +C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 A 10G 0 0 180)" savecurrent=false} +C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_01/CML_core_tb_1.data b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_01/CML_core_tb_1.data new file mode 100644 index 00000000..09b2cf28 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_01/CML_core_tb_1.data @@ -0,0 +1,85 @@ + 1.628000000000e-10 3.883390876595e-01 + 1.728000000000e-10 5.408201711303e-01 + 1.828000000000e-10 6.237425658147e-01 + 1.928000000000e-10 6.212954997578e-01 + 2.028000000000e-10 5.309611858082e-01 + 2.128000000000e-10 3.727669362568e-01 + 2.228000000000e-10 1.799806712761e-01 + 2.328000000000e-10 -2.603148458398e-02 + 2.428000000000e-10 -2.346564323193e-01 + 2.528000000000e-10 -4.242479038446e-01 + 2.628000000000e-10 -5.649526956169e-01 + 2.728000000000e-10 -6.329728273322e-01 + 2.828000000000e-10 -6.146559746281e-01 + 2.928000000000e-10 -5.108371727377e-01 + 3.028000000000e-10 -3.442884446101e-01 + 3.128000000000e-10 -1.483824207161e-01 + 3.228000000000e-10 5.906028995990e-02 + 3.328000000000e-10 2.664145911003e-01 + 3.428000000000e-10 4.504551879416e-01 + 3.528000000000e-10 5.809008844736e-01 + 3.628000000000e-10 6.360567187756e-01 + 3.728000000000e-10 6.037436816278e-01 + 3.828000000000e-10 4.881225452421e-01 + 3.928000000000e-10 3.148407462953e-01 + 4.028000000000e-10 1.165218007575e-01 + 4.128000000000e-10 -9.193574793921e-02 + 4.228000000000e-10 -2.974342499544e-01 + 4.328000000000e-10 -4.751326768798e-01 + 4.428000000000e-10 -5.949346596006e-01 + 4.528000000000e-10 -6.369164704138e-01 + 4.628000000000e-10 -5.907458792091e-01 + 4.728000000000e-10 -4.639467590464e-01 + 4.828000000000e-10 -2.848562973336e-01 + 4.928000000000e-10 -8.437689253965e-02 + 5.028000000000e-10 1.247629474968e-01 + 5.128000000000e-10 3.278244343609e-01 + 5.228000000000e-10 4.983346669982e-01 + 5.328000000000e-10 6.070914453050e-01 + 5.428000000000e-10 6.355806464383e-01 + 5.528000000000e-10 5.757490218128e-01 + 5.628000000000e-10 4.384583523195e-01 + 5.728000000000e-10 2.544319838869e-01 + 5.828000000000e-10 5.198316416371e-02 + 5.928000000000e-10 -1.574660223817e-01 + 6.028000000000e-10 -3.574666910126e-01 + 6.128000000000e-10 -5.199664726946e-01 + 6.228000000000e-10 -6.172633670247e-01 + 6.328000000000e-10 -6.320252018899e-01 + 6.428000000000e-10 -5.588131771792e-01 + 6.528000000000e-10 -4.118134126240e-01 + 6.628000000000e-10 -2.236388151954e-01 + 6.728000000000e-10 -1.939350560218e-02 + 6.828000000000e-10 1.899440121342e-01 + 6.928000000000e-10 3.862188408687e-01 + 7.028000000000e-10 5.399416899491e-01 + 7.128000000000e-10 6.253721966482e-01 + 7.228000000000e-10 6.262505877611e-01 + 7.328000000000e-10 5.400360393825e-01 + 7.428000000000e-10 3.841445496134e-01 + 7.528000000000e-10 1.924821267214e-01 + 7.628000000000e-10 -1.335772409919e-02 + 7.728000000000e-10 -2.221234295217e-01 + 7.828000000000e-10 -4.139356901001e-01 + 7.928000000000e-10 -5.582208930433e-01 + 8.028000000000e-10 -6.313676734981e-01 + 8.128000000000e-10 -6.182838529344e-01 + 8.228000000000e-10 -5.195061658404e-01 + 8.328000000000e-10 -3.556114902208e-01 + 8.428000000000e-10 -1.609892428532e-01 + 8.528000000000e-10 4.622340719895e-02 + 8.628000000000e-10 2.539143850297e-01 + 8.728000000000e-10 4.404846384078e-01 + 8.828000000000e-10 5.747805062647e-01 + 8.928000000000e-10 6.352424586450e-01 + 9.028000000000e-10 6.081834380184e-01 + 9.128000000000e-10 4.973521296985e-01 + 9.228000000000e-10 3.263756894147e-01 + 9.328000000000e-10 1.291897894332e-01 + 9.428000000000e-10 -7.912913934513e-02 + 9.528000000000e-10 -2.852083523069e-01 + 9.628000000000e-10 -4.657099955095e-01 + 9.728000000000e-10 -5.895419772383e-01 + 9.828000000000e-10 -6.369389667120e-01 + 9.928000000000e-10 -5.959930992809e-01 + 1.000000000000e-09 -5.138392169398e-01 diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_01/CML_divider.sym b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_01/CML_divider.sym new file mode 100644 index 00000000..e46eb233 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_01/CML_divider.sym @@ -0,0 +1,30 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 -120 -20 -100 -20 {} +L 4 -120 20 -100 20 {} +L 4 100 -20 120 -20 {} +L 4 100 20 120 20 {} +L 7 0 -60 0 -40 {} +L 7 0 40 0 60 {} +B 5 -122.5 -22.5 -117.5 -17.5 {name=Vo+ dir=out} +B 5 -122.5 17.5 -117.5 22.5 {name=Vo- dir=out} +B 5 117.5 -22.5 122.5 -17.5 {name=Vi+ dir=in} +B 5 117.5 17.5 122.5 22.5 {name=Vi- dir=in} +B 5 -2.5 -62.5 2.5 -57.5 {name=vdd dir=inout} +B 5 -2.5 57.5 2.5 62.5 {name=gnd dir=inout} +P 4 5 100 -40 -100 -40 -100 40 100 40 100 -40 {} +T {@symname} -44 -6 0 0 0.3 0.3 {} +T {@name} 45 -52 0 0 0.2 0.2 {} +T {Vo+} -95 -24 0 0 0.2 0.2 {} +T {Vo-} -95 16 0 0 0.2 0.2 {} +T {Vi+} 95 -16 2 0 0.2 0.2 {} +T {Vi-} 95 24 2 0 0.2 0.2 {} +T {vdd} 10 -39 0 1 0.2 0.2 {} +T {gnd} -10 34 2 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_01/conditions.yaml b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_01/conditions.yaml new file mode 100644 index 00000000..53deb0f2 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_01/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice +N: 1 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: ff +filename: CML_core_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_01 +temperature: '-40' +vdd: '0.8' diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_02/.spiceinit b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_02/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_02/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_02/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_02/CML_core_tb.sch new file mode 100644 index 00000000..3278780c --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_02/CML_core_tb.sch @@ -0,0 +1,73 @@ +v {xschem version=3.4.8RC file_version=1.3} +G {} +K {} +V {} +S {} +F {} +E {} +N 740 -940 740 -920 {lab=GND} +N 740 -1090 740 -1060 {lab=VDD} +N 600 -1020 620 -1020 {lab=Vinplus} +N 600 -980 620 -980 {lab=Vinminus} +N 860 -1020 880 -1020 {lab=Voplus} +N 860 -980 880 -980 {lab=Vominus} +N 1150 -850 1150 -820 {lab=VDD} +N 1150 -760 1150 -730 {lab=GND} +N 930 -850 930 -820 {lab=Vinminus} +N 930 -760 930 -730 {lab=GND} +N 720 -850 720 -820 {lab=Vinplus} +N 720 -760 720 -730 {lab=GND} +C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.param A=0 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write CML_core_tb.raw +set appendwrite +tran 10p 1n 160p + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_02/CML_core_tb_2.data vo_diff +quit + +.endc +"} +C {opin.sym} 880 -1020 2 1 {name=p6 lab=Voplus} +C {opin.sym} 880 -980 0 0 {name=p9 lab=Vominus} +C {devices/code_shown.sym} 10 -620 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_ss + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice + +.temp -40 +" +} +C {iopin.sym} 740 -1090 0 1 {name=p2 lab=VDD} +C {ipin.sym} 600 -1020 2 1 {name=p4 lab=Vinplus} +C {ipin.sym} 600 -980 2 1 {name=p1 lab=Vinminus} +C {CML_divider.sym} 740 -1000 0 1 {name=x1} +C {vsource.sym} 1150 -790 0 0 {name=V1 value=0.8 savecurrent=false} +C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} +C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} +C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 A 10G 0 0 0)" savecurrent=false} +C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 A 10G 0 0 180)" savecurrent=false} +C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_02/CML_core_tb_2.data b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_02/CML_core_tb_2.data new file mode 100644 index 00000000..ef2eb41d --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_02/CML_core_tb_2.data @@ -0,0 +1,85 @@ + 1.628000000000e-10 4.369784277324e-01 + 1.728000000000e-10 5.844303264451e-01 + 1.828000000000e-10 6.576704604404e-01 + 1.928000000000e-10 6.389429128039e-01 + 2.028000000000e-10 5.287476203431e-01 + 2.128000000000e-10 3.556487123432e-01 + 2.228000000000e-10 1.563418818172e-01 + 2.328000000000e-10 -5.502691143237e-02 + 2.428000000000e-10 -2.693404771282e-01 + 2.528000000000e-10 -4.618915081145e-01 + 2.628000000000e-10 -6.008858148447e-01 + 2.728000000000e-10 -6.639573195925e-01 + 2.828000000000e-10 -6.345947706320e-01 + 2.928000000000e-10 -5.159306555046e-01 + 3.028000000000e-10 -3.383759499466e-01 + 3.128000000000e-10 -1.375370817241e-01 + 3.228000000000e-10 7.475314631072e-02 + 3.328000000000e-10 2.882433328129e-01 + 3.428000000000e-10 4.772006954996e-01 + 3.528000000000e-10 6.100237090738e-01 + 3.628000000000e-10 6.652131671859e-01 + 3.728000000000e-10 6.272348898736e-01 + 3.828000000000e-10 5.017111005409e-01 + 3.928000000000e-10 3.208176059829e-01 + 4.028000000000e-10 1.188347173379e-01 + 4.128000000000e-10 -9.421906833550e-02 + 4.228000000000e-10 -3.067231995217e-01 + 4.328000000000e-10 -4.918821205637e-01 + 4.428000000000e-10 -6.185156844977e-01 + 4.528000000000e-10 -6.657095473383e-01 + 4.628000000000e-10 -6.191782362066e-01 + 4.728000000000e-10 -4.870441103398e-01 + 4.828000000000e-10 -3.031237925016e-01 + 4.928000000000e-10 -1.000018396065e-01 + 5.028000000000e-10 1.137158888499e-01 + 5.128000000000e-10 3.250317818347e-01 + 5.228000000000e-10 5.060979436969e-01 + 5.328000000000e-10 6.264062533570e-01 + 5.428000000000e-10 6.654548423706e-01 + 5.528000000000e-10 6.104263907841e-01 + 5.628000000000e-10 4.719575676260e-01 + 5.728000000000e-10 2.853143594971e-01 + 5.828000000000e-10 8.106414726920e-02 + 5.928000000000e-10 -1.332038364715e-01 + 6.028000000000e-10 -3.431129576746e-01 + 6.128000000000e-10 -5.197947732430e-01 + 6.228000000000e-10 -6.336444564921e-01 + 6.328000000000e-10 -6.644191517138e-01 + 6.428000000000e-10 -6.009859600646e-01 + 6.528000000000e-10 -4.564780986599e-01 + 6.628000000000e-10 -2.673977907968e-01 + 6.728000000000e-10 -6.202320930944e-02 + 6.828000000000e-10 1.526686803142e-01 + 6.928000000000e-10 3.609440280272e-01 + 7.028000000000e-10 5.329548030217e-01 + 7.128000000000e-10 6.401938938134e-01 + 7.228000000000e-10 6.625917482038e-01 + 7.328000000000e-10 5.908682152266e-01 + 7.428000000000e-10 4.406469457529e-01 + 7.528000000000e-10 2.493902766858e-01 + 7.628000000000e-10 4.288693618446e-02 + 7.728000000000e-10 -1.720955910448e-01 + 7.828000000000e-10 -3.785000668285e-01 + 7.928000000000e-10 -5.455631256377e-01 + 8.028000000000e-10 -6.460279628055e-01 + 8.128000000000e-10 -6.599666543450e-01 + 8.228000000000e-10 -5.800952421897e-01 + 8.328000000000e-10 -4.244724639235e-01 + 8.428000000000e-10 -2.312744332894e-01 + 8.528000000000e-10 -2.367347524184e-02 + 8.628000000000e-10 1.914518431597e-01 + 8.728000000000e-10 3.957278536471e-01 + 8.828000000000e-10 5.575922897374e-01 + 8.928000000000e-10 6.511097119424e-01 + 9.028000000000e-10 6.565314471724e-01 + 9.128000000000e-10 5.686744713173e-01 + 9.228000000000e-10 4.079868100625e-01 + 9.328000000000e-10 2.130521276703e-01 + 9.428000000000e-10 4.377478818861e-03 + 9.528000000000e-10 -2.107363569920e-01 + 9.628000000000e-10 -4.126164059868e-01 + 9.728000000000e-10 -5.690558179458e-01 + 9.828000000000e-10 -6.554409556493e-01 + 9.928000000000e-10 -6.522987163864e-01 + 1.000000000000e-09 -5.908571383549e-01 diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_02/CML_divider.sym b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_02/CML_divider.sym new file mode 100644 index 00000000..e46eb233 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_02/CML_divider.sym @@ -0,0 +1,30 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 -120 -20 -100 -20 {} +L 4 -120 20 -100 20 {} +L 4 100 -20 120 -20 {} +L 4 100 20 120 20 {} +L 7 0 -60 0 -40 {} +L 7 0 40 0 60 {} +B 5 -122.5 -22.5 -117.5 -17.5 {name=Vo+ dir=out} +B 5 -122.5 17.5 -117.5 22.5 {name=Vo- dir=out} +B 5 117.5 -22.5 122.5 -17.5 {name=Vi+ dir=in} +B 5 117.5 17.5 122.5 22.5 {name=Vi- dir=in} +B 5 -2.5 -62.5 2.5 -57.5 {name=vdd dir=inout} +B 5 -2.5 57.5 2.5 62.5 {name=gnd dir=inout} +P 4 5 100 -40 -100 -40 -100 40 100 40 100 -40 {} +T {@symname} -44 -6 0 0 0.3 0.3 {} +T {@name} 45 -52 0 0 0.2 0.2 {} +T {Vo+} -95 -24 0 0 0.2 0.2 {} +T {Vo-} -95 16 0 0 0.2 0.2 {} +T {Vi+} 95 -16 2 0 0.2 0.2 {} +T {Vi-} 95 24 2 0 0.2 0.2 {} +T {vdd} 10 -39 0 1 0.2 0.2 {} +T {gnd} -10 34 2 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_02/conditions.yaml b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_02/conditions.yaml new file mode 100644 index 00000000..6fc556db --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_02/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice +N: 2 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: ss +filename: CML_core_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_02 +temperature: '-40' +vdd: '0.8' diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_03/.spiceinit b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_03/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_03/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_03/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_03/CML_core_tb.sch new file mode 100644 index 00000000..5412b0ed --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_03/CML_core_tb.sch @@ -0,0 +1,73 @@ +v {xschem version=3.4.8RC file_version=1.3} +G {} +K {} +V {} +S {} +F {} +E {} +N 740 -940 740 -920 {lab=GND} +N 740 -1090 740 -1060 {lab=VDD} +N 600 -1020 620 -1020 {lab=Vinplus} +N 600 -980 620 -980 {lab=Vinminus} +N 860 -1020 880 -1020 {lab=Voplus} +N 860 -980 880 -980 {lab=Vominus} +N 1150 -850 1150 -820 {lab=VDD} +N 1150 -760 1150 -730 {lab=GND} +N 930 -850 930 -820 {lab=Vinminus} +N 930 -760 930 -730 {lab=GND} +N 720 -850 720 -820 {lab=Vinplus} +N 720 -760 720 -730 {lab=GND} +C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.param A=0 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write CML_core_tb.raw +set appendwrite +tran 10p 1n 160p + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_03/CML_core_tb_3.data vo_diff +quit + +.endc +"} +C {opin.sym} 880 -1020 2 1 {name=p6 lab=Voplus} +C {opin.sym} 880 -980 0 0 {name=p9 lab=Vominus} +C {devices/code_shown.sym} 10 -620 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_tt + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice + +.temp 27 +" +} +C {iopin.sym} 740 -1090 0 1 {name=p2 lab=VDD} +C {ipin.sym} 600 -1020 2 1 {name=p4 lab=Vinplus} +C {ipin.sym} 600 -980 2 1 {name=p1 lab=Vinminus} +C {CML_divider.sym} 740 -1000 0 1 {name=x1} +C {vsource.sym} 1150 -790 0 0 {name=V1 value=0.8 savecurrent=false} +C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} +C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} +C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 A 10G 0 0 0)" savecurrent=false} +C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 A 10G 0 0 180)" savecurrent=false} +C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_03/CML_core_tb_3.data b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_03/CML_core_tb_3.data new file mode 100644 index 00000000..01d3da70 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_03/CML_core_tb_3.data @@ -0,0 +1,85 @@ + 1.628000000000e-10 3.787312328274e-01 + 1.728000000000e-10 5.310718577798e-01 + 1.828000000000e-10 6.116694852515e-01 + 1.928000000000e-10 6.032465414624e-01 + 2.028000000000e-10 5.080931547620e-01 + 2.128000000000e-10 3.507201651223e-01 + 2.228000000000e-10 1.637728723673e-01 + 2.328000000000e-10 -3.591423441942e-02 + 2.428000000000e-10 -2.389715433325e-01 + 2.528000000000e-10 -4.246365337882e-01 + 2.628000000000e-10 -5.619274107991e-01 + 2.728000000000e-10 -6.217416227793e-01 + 2.828000000000e-10 -5.917990170747e-01 + 2.928000000000e-10 -4.793798636191e-01 + 3.028000000000e-10 -3.123775151550e-01 + 3.128000000000e-10 -1.216623790409e-01 + 3.228000000000e-10 7.991461458154e-02 + 3.328000000000e-10 2.813838782715e-01 + 3.428000000000e-10 4.595056728565e-01 + 3.528000000000e-10 5.820987735157e-01 + 3.628000000000e-10 6.230696206400e-01 + 3.728000000000e-10 5.740668117715e-01 + 3.828000000000e-10 4.470822134740e-01 + 3.928000000000e-10 2.728987140975e-01 + 4.028000000000e-10 7.924079481723e-02 + 4.128000000000e-10 -1.235982812782e-01 + 4.228000000000e-10 -3.224222279001e-01 + 4.328000000000e-10 -4.914711718710e-01 + 4.428000000000e-10 -5.982669959871e-01 + 4.528000000000e-10 -6.200561583520e-01 + 4.628000000000e-10 -5.526428354822e-01 + 4.728000000000e-10 -4.125771347856e-01 + 4.828000000000e-10 -2.326459140319e-01 + 4.928000000000e-10 -3.636345260799e-02 + 5.028000000000e-10 1.671292936419e-01 + 5.128000000000e-10 3.621740771165e-01 + 5.228000000000e-10 5.205351785740e-01 + 5.328000000000e-10 6.105069571881e-01 + 5.428000000000e-10 6.128628419209e-01 + 5.528000000000e-10 5.278288461165e-01 + 5.628000000000e-10 3.762585221796e-01 + 5.728000000000e-10 1.917227152577e-01 + 5.828000000000e-10 -6.904475690515e-03 + 5.928000000000e-10 -2.103220173831e-01 + 6.028000000000e-10 -4.003190871139e-01 + 6.128000000000e-10 -5.464444171748e-01 + 6.228000000000e-10 -6.187242472741e-01 + 6.328000000000e-10 -6.016161834184e-01 + 6.428000000000e-10 -4.999426915796e-01 + 6.528000000000e-10 -3.384986058457e-01 + 6.628000000000e-10 -1.501838709863e-01 + 6.728000000000e-10 5.043881560349e-02 + 6.828000000000e-10 2.529164351583e-01 + 6.928000000000e-10 4.364447819991e-01 + 7.028000000000e-10 5.688890883170e-01 + 7.128000000000e-10 6.227826879224e-01 + 7.228000000000e-10 5.864162100126e-01 + 7.328000000000e-10 4.692911957394e-01 + 7.428000000000e-10 2.996268945459e-01 + 7.528000000000e-10 1.080868898165e-01 + 7.628000000000e-10 -9.411819978895e-02 + 7.728000000000e-10 -2.946865001516e-01 + 7.828000000000e-10 -4.702089203683e-01 + 7.928000000000e-10 -5.876676138587e-01 + 8.028000000000e-10 -6.226257044083e-01 + 8.128000000000e-10 -5.674465695445e-01 + 8.228000000000e-10 -4.362183280713e-01 + 8.328000000000e-10 -2.598861301879e-01 + 8.428000000000e-10 -6.549233734919e-02 + 8.528000000000e-10 1.377780729322e-01 + 8.628000000000e-10 3.353665108903e-01 + 8.728000000000e-10 5.012715026474e-01 + 8.828000000000e-10 6.025971886412e-01 + 8.928000000000e-10 6.182514222450e-01 + 9.028000000000e-10 5.449093081378e-01 + 9.128000000000e-10 4.010874781253e-01 + 9.228000000000e-10 2.194242609006e-01 + 9.328000000000e-10 2.246875729083e-02 + 9.428000000000e-10 -1.812181861115e-01 + 9.528000000000e-10 -3.746515006742e-01 + 9.628000000000e-10 -5.293413040803e-01 + 9.728000000000e-10 -6.135587086509e-01 + 9.828000000000e-10 -6.097309440254e-01 + 9.928000000000e-10 -5.190796501788e-01 + 1.000000000000e-09 -4.110830567596e-01 diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_03/CML_divider.sym b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_03/CML_divider.sym new file mode 100644 index 00000000..e46eb233 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_03/CML_divider.sym @@ -0,0 +1,30 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 -120 -20 -100 -20 {} +L 4 -120 20 -100 20 {} +L 4 100 -20 120 -20 {} +L 4 100 20 120 20 {} +L 7 0 -60 0 -40 {} +L 7 0 40 0 60 {} +B 5 -122.5 -22.5 -117.5 -17.5 {name=Vo+ dir=out} +B 5 -122.5 17.5 -117.5 22.5 {name=Vo- dir=out} +B 5 117.5 -22.5 122.5 -17.5 {name=Vi+ dir=in} +B 5 117.5 17.5 122.5 22.5 {name=Vi- dir=in} +B 5 -2.5 -62.5 2.5 -57.5 {name=vdd dir=inout} +B 5 -2.5 57.5 2.5 62.5 {name=gnd dir=inout} +P 4 5 100 -40 -100 -40 -100 40 100 40 100 -40 {} +T {@symname} -44 -6 0 0 0.3 0.3 {} +T {@name} 45 -52 0 0 0.2 0.2 {} +T {Vo+} -95 -24 0 0 0.2 0.2 {} +T {Vo-} -95 16 0 0 0.2 0.2 {} +T {Vi+} 95 -16 2 0 0.2 0.2 {} +T {Vi-} 95 24 2 0 0.2 0.2 {} +T {vdd} 10 -39 0 1 0.2 0.2 {} +T {gnd} -10 34 2 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_03/conditions.yaml b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_03/conditions.yaml new file mode 100644 index 00000000..800e62da --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_03/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice +N: 3 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: tt +filename: CML_core_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_03 +temperature: '27' +vdd: '0.8' diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_04/.spiceinit b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_04/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_04/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_04/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_04/CML_core_tb.sch new file mode 100644 index 00000000..a72a8f48 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_04/CML_core_tb.sch @@ -0,0 +1,73 @@ +v {xschem version=3.4.8RC file_version=1.3} +G {} +K {} +V {} +S {} +F {} +E {} +N 740 -940 740 -920 {lab=GND} +N 740 -1090 740 -1060 {lab=VDD} +N 600 -1020 620 -1020 {lab=Vinplus} +N 600 -980 620 -980 {lab=Vinminus} +N 860 -1020 880 -1020 {lab=Voplus} +N 860 -980 880 -980 {lab=Vominus} +N 1150 -850 1150 -820 {lab=VDD} +N 1150 -760 1150 -730 {lab=GND} +N 930 -850 930 -820 {lab=Vinminus} +N 930 -760 930 -730 {lab=GND} +N 720 -850 720 -820 {lab=Vinplus} +N 720 -760 720 -730 {lab=GND} +C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.param A=0 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write CML_core_tb.raw +set appendwrite +tran 10p 1n 160p + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_04/CML_core_tb_4.data vo_diff +quit + +.endc +"} +C {opin.sym} 880 -1020 2 1 {name=p6 lab=Voplus} +C {opin.sym} 880 -980 0 0 {name=p9 lab=Vominus} +C {devices/code_shown.sym} 10 -620 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_ff + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice + +.temp 27 +" +} +C {iopin.sym} 740 -1090 0 1 {name=p2 lab=VDD} +C {ipin.sym} 600 -1020 2 1 {name=p4 lab=Vinplus} +C {ipin.sym} 600 -980 2 1 {name=p1 lab=Vinminus} +C {CML_divider.sym} 740 -1000 0 1 {name=x1} +C {vsource.sym} 1150 -790 0 0 {name=V1 value=0.8 savecurrent=false} +C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} +C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} +C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 A 10G 0 0 0)" savecurrent=false} +C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 A 10G 0 0 180)" savecurrent=false} +C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_04/CML_core_tb_4.data b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_04/CML_core_tb_4.data new file mode 100644 index 00000000..9ae39401 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_04/CML_core_tb_4.data @@ -0,0 +1,85 @@ + 1.628000000000e-10 3.527739932023e-01 + 1.728000000000e-10 5.067296132741e-01 + 1.828000000000e-10 5.919306102367e-01 + 1.928000000000e-10 5.909637421707e-01 + 2.028000000000e-10 5.050843854174e-01 + 2.128000000000e-10 3.555305747672e-01 + 2.228000000000e-10 1.733318945705e-01 + 2.328000000000e-10 -2.246320083073e-02 + 2.428000000000e-10 -2.220625103466e-01 + 2.528000000000e-10 -4.056931517405e-01 + 2.628000000000e-10 -5.427471082900e-01 + 2.728000000000e-10 -6.042039445662e-01 + 2.828000000000e-10 -5.786741938972e-01 + 2.928000000000e-10 -4.726336370412e-01 + 3.028000000000e-10 -3.111272852435e-01 + 3.128000000000e-10 -1.240925914530e-01 + 3.228000000000e-10 7.395024567436e-02 + 3.328000000000e-10 2.718578294311e-01 + 3.428000000000e-10 4.467934011904e-01 + 3.528000000000e-10 5.665709106631e-01 + 3.628000000000e-10 6.061049714339e-01 + 3.728000000000e-10 5.585778357772e-01 + 3.828000000000e-10 4.353637877442e-01 + 3.928000000000e-10 2.649104770346e-01 + 4.028000000000e-10 7.422447535881e-02 + 4.128000000000e-10 -1.252066094696e-01 + 4.228000000000e-10 -3.199114008579e-01 + 4.328000000000e-10 -4.839123173062e-01 + 4.428000000000e-10 -5.848683081174e-01 + 4.528000000000e-10 -6.020960278290e-01 + 4.628000000000e-10 -5.334075032087e-01 + 4.728000000000e-10 -3.949565487431e-01 + 4.828000000000e-10 -2.175202194849e-01 + 4.928000000000e-10 -2.374137033440e-02 + 5.028000000000e-10 1.762067660298e-01 + 5.128000000000e-10 3.660614981710e-01 + 5.228000000000e-10 5.168353314960e-01 + 5.328000000000e-10 5.976520790730e-01 + 5.428000000000e-10 5.923721290712e-01 + 5.528000000000e-10 5.036135913931e-01 + 5.628000000000e-10 3.520147819229e-01 + 5.728000000000e-10 1.691411016634e-01 + 5.828000000000e-10 -2.720287389901e-02 + 5.928000000000e-10 -2.265902016718e-01 + 6.028000000000e-10 -4.097016868418e-01 + 6.128000000000e-10 -5.451012400507e-01 + 6.228000000000e-10 -6.047637320677e-01 + 6.328000000000e-10 -5.771127174561e-01 + 6.428000000000e-10 -4.696619234859e-01 + 6.528000000000e-10 -3.071376992250e-01 + 6.628000000000e-10 -1.199124463650e-01 + 6.728000000000e-10 7.843292596863e-02 + 6.828000000000e-10 2.759743419607e-01 + 6.928000000000e-10 4.502085789734e-01 + 7.028000000000e-10 5.682846910592e-01 + 7.128000000000e-10 6.060547534659e-01 + 7.228000000000e-10 5.565297283293e-01 + 7.328000000000e-10 4.320660125387e-01 + 7.428000000000e-10 2.608014341229e-01 + 7.528000000000e-10 6.996576024471e-02 + 7.628000000000e-10 -1.296831986240e-01 + 7.728000000000e-10 -3.239050411005e-01 + 7.828000000000e-10 -4.869831605413e-01 + 7.928000000000e-10 -5.861285383102e-01 + 8.028000000000e-10 -6.015423398526e-01 + 8.128000000000e-10 -5.309529844792e-01 + 8.228000000000e-10 -3.914078404525e-01 + 8.328000000000e-10 -2.133268983323e-01 + 8.428000000000e-10 -1.942817053603e-02 + 8.528000000000e-10 1.806385493964e-01 + 8.628000000000e-10 3.698710924499e-01 + 8.728000000000e-10 5.195165545946e-01 + 8.828000000000e-10 5.984340950058e-01 + 8.928000000000e-10 5.913281701523e-01 + 9.028000000000e-10 5.007881491315e-01 + 9.128000000000e-10 3.482705219974e-01 + 9.228000000000e-10 1.648762275078e-01 + 9.328000000000e-10 -3.155556636608e-02 + 9.428000000000e-10 -2.309443516678e-01 + 9.528000000000e-10 -4.132744730914e-01 + 9.628000000000e-10 -5.473543968075e-01 + 9.728000000000e-10 -6.050589011645e-01 + 9.828000000000e-10 -5.755953492732e-01 + 9.928000000000e-10 -4.665084057301e-01 + 1.000000000000e-09 -3.516472164760e-01 diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_04/CML_divider.sym b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_04/CML_divider.sym new file mode 100644 index 00000000..e46eb233 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_04/CML_divider.sym @@ -0,0 +1,30 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 -120 -20 -100 -20 {} +L 4 -120 20 -100 20 {} +L 4 100 -20 120 -20 {} +L 4 100 20 120 20 {} +L 7 0 -60 0 -40 {} +L 7 0 40 0 60 {} +B 5 -122.5 -22.5 -117.5 -17.5 {name=Vo+ dir=out} +B 5 -122.5 17.5 -117.5 22.5 {name=Vo- dir=out} +B 5 117.5 -22.5 122.5 -17.5 {name=Vi+ dir=in} +B 5 117.5 17.5 122.5 22.5 {name=Vi- dir=in} +B 5 -2.5 -62.5 2.5 -57.5 {name=vdd dir=inout} +B 5 -2.5 57.5 2.5 62.5 {name=gnd dir=inout} +P 4 5 100 -40 -100 -40 -100 40 100 40 100 -40 {} +T {@symname} -44 -6 0 0 0.3 0.3 {} +T {@name} 45 -52 0 0 0.2 0.2 {} +T {Vo+} -95 -24 0 0 0.2 0.2 {} +T {Vo-} -95 16 0 0 0.2 0.2 {} +T {Vi+} 95 -16 2 0 0.2 0.2 {} +T {Vi-} 95 24 2 0 0.2 0.2 {} +T {vdd} 10 -39 0 1 0.2 0.2 {} +T {gnd} -10 34 2 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_04/conditions.yaml b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_04/conditions.yaml new file mode 100644 index 00000000..193bbe4d --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_04/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice +N: 4 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: ff +filename: CML_core_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_04 +temperature: '27' +vdd: '0.8' diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_05/.spiceinit b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_05/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_05/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_05/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_05/CML_core_tb.sch new file mode 100644 index 00000000..336721e9 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_05/CML_core_tb.sch @@ -0,0 +1,73 @@ +v {xschem version=3.4.8RC file_version=1.3} +G {} +K {} +V {} +S {} +F {} +E {} +N 740 -940 740 -920 {lab=GND} +N 740 -1090 740 -1060 {lab=VDD} +N 600 -1020 620 -1020 {lab=Vinplus} +N 600 -980 620 -980 {lab=Vinminus} +N 860 -1020 880 -1020 {lab=Voplus} +N 860 -980 880 -980 {lab=Vominus} +N 1150 -850 1150 -820 {lab=VDD} +N 1150 -760 1150 -730 {lab=GND} +N 930 -850 930 -820 {lab=Vinminus} +N 930 -760 930 -730 {lab=GND} +N 720 -850 720 -820 {lab=Vinplus} +N 720 -760 720 -730 {lab=GND} +C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.param A=0 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write CML_core_tb.raw +set appendwrite +tran 10p 1n 160p + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_05/CML_core_tb_5.data vo_diff +quit + +.endc +"} +C {opin.sym} 880 -1020 2 1 {name=p6 lab=Voplus} +C {opin.sym} 880 -980 0 0 {name=p9 lab=Vominus} +C {devices/code_shown.sym} 10 -620 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_ss + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice + +.temp 27 +" +} +C {iopin.sym} 740 -1090 0 1 {name=p2 lab=VDD} +C {ipin.sym} 600 -1020 2 1 {name=p4 lab=Vinplus} +C {ipin.sym} 600 -980 2 1 {name=p1 lab=Vinminus} +C {CML_divider.sym} 740 -1000 0 1 {name=x1} +C {vsource.sym} 1150 -790 0 0 {name=V1 value=0.8 savecurrent=false} +C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} +C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} +C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 A 10G 0 0 0)" savecurrent=false} +C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 A 10G 0 0 180)" savecurrent=false} +C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_05/CML_core_tb_5.data b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_05/CML_core_tb_5.data new file mode 100644 index 00000000..10687699 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_05/CML_core_tb_5.data @@ -0,0 +1,85 @@ + 1.628000000000e-10 3.899805551492e-01 + 1.728000000000e-10 5.446618577616e-01 + 1.828000000000e-10 6.266096652190e-01 + 1.928000000000e-10 6.172504471116e-01 + 2.028000000000e-10 5.190610617635e-01 + 2.128000000000e-10 3.593956743245e-01 + 2.228000000000e-10 1.724426085975e-01 + 2.328000000000e-10 -2.745064663747e-02 + 2.428000000000e-10 -2.329616471951e-01 + 2.528000000000e-10 -4.234893258118e-01 + 2.628000000000e-10 -5.680967965453e-01 + 2.728000000000e-10 -6.358508809756e-01 + 2.828000000000e-10 -6.116847704035e-01 + 2.928000000000e-10 -5.017753699043e-01 + 3.028000000000e-10 -3.357622391395e-01 + 3.128000000000e-10 -1.463951301493e-01 + 3.228000000000e-10 5.501228565901e-02 + 3.328000000000e-10 2.599601873588e-01 + 3.428000000000e-10 4.463204041669e-01 + 3.528000000000e-10 5.821572067154e-01 + 3.628000000000e-10 6.381725221864e-01 + 3.728000000000e-10 6.017055446787e-01 + 3.828000000000e-10 4.823097743360e-01 + 3.928000000000e-10 3.116413511196e-01 + 4.028000000000e-10 1.204513464120e-01 + 4.128000000000e-10 -8.216746608457e-02 + 4.228000000000e-10 -2.861629008922e-01 + 4.328000000000e-10 -4.678572590668e-01 + 4.428000000000e-10 -5.945512494607e-01 + 4.528000000000e-10 -6.386993079281e-01 + 4.628000000000e-10 -5.902002735031e-01 + 4.728000000000e-10 -4.619269519683e-01 + 4.828000000000e-10 -2.872325672856e-01 + 4.928000000000e-10 -9.428805990276e-02 + 5.028000000000e-10 1.093767475837e-01 + 5.128000000000e-10 3.120263965424e-01 + 5.228000000000e-10 4.884339240257e-01 + 5.328000000000e-10 6.055096291837e-01 + 5.428000000000e-10 6.375795029609e-01 + 5.528000000000e-10 5.772859873177e-01 + 5.628000000000e-10 4.407300348513e-01 + 5.728000000000e-10 2.625705353928e-01 + 5.828000000000e-10 6.792556046796e-02 + 5.928000000000e-10 -1.365768524997e-01 + 6.028000000000e-10 -3.374542253471e-01 + 6.128000000000e-10 -5.079466715988e-01 + 6.228000000000e-10 -6.149592289389e-01 + 6.328000000000e-10 -6.347974900667e-01 + 6.428000000000e-10 -5.630051271319e-01 + 6.528000000000e-10 -4.188061832544e-01 + 6.628000000000e-10 -2.376603787830e-01 + 6.728000000000e-10 -4.134818844143e-02 + 6.828000000000e-10 1.637586206522e-01 + 6.928000000000e-10 3.624175492031e-01 + 7.028000000000e-10 5.263633140706e-01 + 7.128000000000e-10 6.228964156442e-01 + 7.228000000000e-10 6.303896300717e-01 + 7.328000000000e-10 5.474437216466e-01 + 7.428000000000e-10 3.962386662731e-01 + 7.528000000000e-10 2.125149883232e-01 + 7.628000000000e-10 1.461648003679e-02 + 7.728000000000e-10 -1.908138897843e-01 + 7.828000000000e-10 -3.867729399792e-01 + 7.928000000000e-10 -5.435669596211e-01 + 8.028000000000e-10 -6.292531394829e-01 + 8.128000000000e-10 -6.243668066490e-01 + 8.228000000000e-10 -5.306765426618e-01 + 8.328000000000e-10 -3.731361043849e-01 + 8.428000000000e-10 -1.871403151425e-01 + 8.528000000000e-10 1.226616272226e-02 + 8.628000000000e-10 2.177097156913e-01 + 8.728000000000e-10 4.104603685680e-01 + 8.828000000000e-10 5.595160805387e-01 + 8.928000000000e-10 6.340210539113e-01 + 9.028000000000e-10 6.167734167151e-01 + 9.128000000000e-10 5.127945975126e-01 + 9.228000000000e-10 3.495872919270e-01 + 9.328000000000e-10 1.615373139215e-01 + 9.428000000000e-10 -3.927853585867e-02 + 9.528000000000e-10 -2.443951865104e-01 + 9.628000000000e-10 -4.333865230537e-01 + 9.728000000000e-10 -5.741458706841e-01 + 9.828000000000e-10 -6.371615177319e-01 + 9.928000000000e-10 -6.076273838542e-01 + 1.000000000000e-09 -5.316204064609e-01 diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_05/CML_divider.sym b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_05/CML_divider.sym new file mode 100644 index 00000000..e46eb233 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_05/CML_divider.sym @@ -0,0 +1,30 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 -120 -20 -100 -20 {} +L 4 -120 20 -100 20 {} +L 4 100 -20 120 -20 {} +L 4 100 20 120 20 {} +L 7 0 -60 0 -40 {} +L 7 0 40 0 60 {} +B 5 -122.5 -22.5 -117.5 -17.5 {name=Vo+ dir=out} +B 5 -122.5 17.5 -117.5 22.5 {name=Vo- dir=out} +B 5 117.5 -22.5 122.5 -17.5 {name=Vi+ dir=in} +B 5 117.5 17.5 122.5 22.5 {name=Vi- dir=in} +B 5 -2.5 -62.5 2.5 -57.5 {name=vdd dir=inout} +B 5 -2.5 57.5 2.5 62.5 {name=gnd dir=inout} +P 4 5 100 -40 -100 -40 -100 40 100 40 100 -40 {} +T {@symname} -44 -6 0 0 0.3 0.3 {} +T {@name} 45 -52 0 0 0.2 0.2 {} +T {Vo+} -95 -24 0 0 0.2 0.2 {} +T {Vo-} -95 16 0 0 0.2 0.2 {} +T {Vi+} 95 -16 2 0 0.2 0.2 {} +T {Vi-} 95 24 2 0 0.2 0.2 {} +T {vdd} 10 -39 0 1 0.2 0.2 {} +T {gnd} -10 34 2 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_05/conditions.yaml b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_05/conditions.yaml new file mode 100644 index 00000000..5d00c883 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_05/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice +N: 5 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: ss +filename: CML_core_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_05 +temperature: '27' +vdd: '0.8' diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_06/.spiceinit b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_06/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_06/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_06/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_06/CML_core_tb.sch new file mode 100644 index 00000000..a4275f71 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_06/CML_core_tb.sch @@ -0,0 +1,73 @@ +v {xschem version=3.4.8RC file_version=1.3} +G {} +K {} +V {} +S {} +F {} +E {} +N 740 -940 740 -920 {lab=GND} +N 740 -1090 740 -1060 {lab=VDD} +N 600 -1020 620 -1020 {lab=Vinplus} +N 600 -980 620 -980 {lab=Vinminus} +N 860 -1020 880 -1020 {lab=Voplus} +N 860 -980 880 -980 {lab=Vominus} +N 1150 -850 1150 -820 {lab=VDD} +N 1150 -760 1150 -730 {lab=GND} +N 930 -850 930 -820 {lab=Vinminus} +N 930 -760 930 -730 {lab=GND} +N 720 -850 720 -820 {lab=Vinplus} +N 720 -760 720 -730 {lab=GND} +C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.param A=0 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write CML_core_tb.raw +set appendwrite +tran 10p 1n 160p + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_06/CML_core_tb_6.data vo_diff +quit + +.endc +"} +C {opin.sym} 880 -1020 2 1 {name=p6 lab=Voplus} +C {opin.sym} 880 -980 0 0 {name=p9 lab=Vominus} +C {devices/code_shown.sym} 10 -620 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_tt + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice + +.temp 80 +" +} +C {iopin.sym} 740 -1090 0 1 {name=p2 lab=VDD} +C {ipin.sym} 600 -1020 2 1 {name=p4 lab=Vinplus} +C {ipin.sym} 600 -980 2 1 {name=p1 lab=Vinminus} +C {CML_divider.sym} 740 -1000 0 1 {name=x1} +C {vsource.sym} 1150 -790 0 0 {name=V1 value=0.8 savecurrent=false} +C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} +C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} +C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 A 10G 0 0 0)" savecurrent=false} +C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 A 10G 0 0 180)" savecurrent=false} +C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_06/CML_core_tb_6.data b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_06/CML_core_tb_6.data new file mode 100644 index 00000000..d41c6130 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_06/CML_core_tb_6.data @@ -0,0 +1,85 @@ + 1.628000000000e-10 3.272923197830e-01 + 1.728000000000e-10 4.819566763926e-01 + 1.828000000000e-10 5.726826350468e-01 + 1.928000000000e-10 5.788408046581e-01 + 2.028000000000e-10 5.015057929381e-01 + 2.128000000000e-10 3.614946791662e-01 + 2.228000000000e-10 1.878018883160e-01 + 2.328000000000e-10 -5.152928654438e-04 + 2.428000000000e-10 -1.939629764799e-01 + 2.528000000000e-10 -3.754137148459e-01 + 2.628000000000e-10 -5.169596677951e-01 + 2.728000000000e-10 -5.868852209445e-01 + 2.828000000000e-10 -5.708977912689e-01 + 2.928000000000e-10 -4.753083054539e-01 + 3.028000000000e-10 -3.241657178363e-01 + 3.128000000000e-10 -1.455948464079e-01 + 3.228000000000e-10 4.499341463190e-02 + 3.328000000000e-10 2.376719771956e-01 + 3.428000000000e-10 4.128180830206e-01 + 3.528000000000e-10 5.403996474700e-01 + 3.628000000000e-10 5.911000287822e-01 + 3.728000000000e-10 5.556682151963e-01 + 3.828000000000e-10 4.448214476974e-01 + 3.928000000000e-10 2.852566745587e-01 + 4.028000000000e-10 1.031028047915e-01 + 4.128000000000e-10 -8.903168621584e-02 + 4.228000000000e-10 -2.798685004857e-01 + 4.328000000000e-10 -4.471531492488e-01 + 4.428000000000e-10 -5.593245084023e-01 + 4.528000000000e-10 -5.905190912946e-01 + 4.628000000000e-10 -5.363759912566e-01 + 4.728000000000e-10 -4.117695851479e-01 + 4.828000000000e-10 -2.452792947403e-01 + 4.928000000000e-10 -6.009673014036e-02 + 5.028000000000e-10 1.330294549602e-01 + 5.128000000000e-10 3.209066489495e-01 + 5.228000000000e-10 4.786196617327e-01 + 5.328000000000e-10 5.739939994269e-01 + 5.428000000000e-10 5.854521386947e-01 + 5.528000000000e-10 5.133999770894e-01 + 5.628000000000e-10 3.765766215401e-01 + 5.728000000000e-10 2.044210251017e-01 + 5.828000000000e-10 1.663948978675e-02 + 5.928000000000e-10 -1.768225768789e-01 + 6.028000000000e-10 -3.604735185863e-01 + 6.128000000000e-10 -5.068517002383e-01 + 6.228000000000e-10 -5.842923519665e-01 + 6.328000000000e-10 -5.760243982484e-01 + 6.428000000000e-10 -4.870560863823e-01 + 6.528000000000e-10 -3.396140103858e-01 + 6.628000000000e-10 -1.628160907611e-01 + 6.728000000000e-10 2.713518106981e-02 + 6.828000000000e-10 2.201313700592e-01 + 6.928000000000e-10 3.981398672845e-01 + 7.028000000000e-10 5.314129585100e-01 + 7.128000000000e-10 5.900629559558e-01 + 7.228000000000e-10 5.623346075405e-01 + 7.328000000000e-10 4.576489899043e-01 + 7.428000000000e-10 3.012060707577e-01 + 7.528000000000e-10 1.205607029165e-01 + 7.628000000000e-10 -7.111902777530e-02 + 7.728000000000e-10 -2.627143394217e-01 + 7.828000000000e-10 -4.335192481659e-01 + 7.928000000000e-10 -5.520469297325e-01 + 8.028000000000e-10 -5.913465255736e-01 + 8.128000000000e-10 -5.446422750292e-01 + 8.228000000000e-10 -4.255777736303e-01 + 8.328000000000e-10 -2.616434466132e-01 + 8.428000000000e-10 -7.774328533570e-02 + 8.528000000000e-10 1.151601059047e-01 + 8.628000000000e-10 3.042846665874e-01 + 8.728000000000e-10 4.662132820490e-01 + 8.828000000000e-10 5.684913559476e-01 + 8.928000000000e-10 5.881064262615e-01 + 9.028000000000e-10 5.231504152161e-01 + 9.128000000000e-10 3.912170597589e-01 + 9.228000000000e-10 2.211379352235e-01 + 9.328000000000e-10 3.445328650701e-02 + 9.428000000000e-10 -1.590552113490e-01 + 9.528000000000e-10 -3.445018956927e-01 + 9.628000000000e-10 -4.958047876980e-01 + 9.728000000000e-10 -5.805916053244e-01 + 9.828000000000e-10 -5.804363168583e-01 + 9.928000000000e-10 -4.981483730617e-01 + 1.000000000000e-09 -3.984864554057e-01 diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_06/CML_divider.sym b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_06/CML_divider.sym new file mode 100644 index 00000000..e46eb233 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_06/CML_divider.sym @@ -0,0 +1,30 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 -120 -20 -100 -20 {} +L 4 -120 20 -100 20 {} +L 4 100 -20 120 -20 {} +L 4 100 20 120 20 {} +L 7 0 -60 0 -40 {} +L 7 0 40 0 60 {} +B 5 -122.5 -22.5 -117.5 -17.5 {name=Vo+ dir=out} +B 5 -122.5 17.5 -117.5 22.5 {name=Vo- dir=out} +B 5 117.5 -22.5 122.5 -17.5 {name=Vi+ dir=in} +B 5 117.5 17.5 122.5 22.5 {name=Vi- dir=in} +B 5 -2.5 -62.5 2.5 -57.5 {name=vdd dir=inout} +B 5 -2.5 57.5 2.5 62.5 {name=gnd dir=inout} +P 4 5 100 -40 -100 -40 -100 40 100 40 100 -40 {} +T {@symname} -44 -6 0 0 0.3 0.3 {} +T {@name} 45 -52 0 0 0.2 0.2 {} +T {Vo+} -95 -24 0 0 0.2 0.2 {} +T {Vo-} -95 16 0 0 0.2 0.2 {} +T {Vi+} 95 -16 2 0 0.2 0.2 {} +T {Vi-} 95 24 2 0 0.2 0.2 {} +T {vdd} 10 -39 0 1 0.2 0.2 {} +T {gnd} -10 34 2 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_06/conditions.yaml b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_06/conditions.yaml new file mode 100644 index 00000000..e9928240 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_06/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice +N: 6 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: tt +filename: CML_core_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_06 +temperature: '80' +vdd: '0.8' diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_07/.spiceinit b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_07/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_07/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_07/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_07/CML_core_tb.sch new file mode 100644 index 00000000..b8634c09 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_07/CML_core_tb.sch @@ -0,0 +1,73 @@ +v {xschem version=3.4.8RC file_version=1.3} +G {} +K {} +V {} +S {} +F {} +E {} +N 740 -940 740 -920 {lab=GND} +N 740 -1090 740 -1060 {lab=VDD} +N 600 -1020 620 -1020 {lab=Vinplus} +N 600 -980 620 -980 {lab=Vinminus} +N 860 -1020 880 -1020 {lab=Voplus} +N 860 -980 880 -980 {lab=Vominus} +N 1150 -850 1150 -820 {lab=VDD} +N 1150 -760 1150 -730 {lab=GND} +N 930 -850 930 -820 {lab=Vinminus} +N 930 -760 930 -730 {lab=GND} +N 720 -850 720 -820 {lab=Vinplus} +N 720 -760 720 -730 {lab=GND} +C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.param A=0 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write CML_core_tb.raw +set appendwrite +tran 10p 1n 160p + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_07/CML_core_tb_7.data vo_diff +quit + +.endc +"} +C {opin.sym} 880 -1020 2 1 {name=p6 lab=Voplus} +C {opin.sym} 880 -980 0 0 {name=p9 lab=Vominus} +C {devices/code_shown.sym} 10 -620 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_ff + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice + +.temp 80 +" +} +C {iopin.sym} 740 -1090 0 1 {name=p2 lab=VDD} +C {ipin.sym} 600 -1020 2 1 {name=p4 lab=Vinplus} +C {ipin.sym} 600 -980 2 1 {name=p1 lab=Vinminus} +C {CML_divider.sym} 740 -1000 0 1 {name=x1} +C {vsource.sym} 1150 -790 0 0 {name=V1 value=0.8 savecurrent=false} +C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} +C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} +C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 A 10G 0 0 0)" savecurrent=false} +C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 A 10G 0 0 180)" savecurrent=false} +C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_07/CML_core_tb_7.data b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_07/CML_core_tb_7.data new file mode 100644 index 00000000..a10c27d2 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_07/CML_core_tb_7.data @@ -0,0 +1,85 @@ + 1.628000000000e-10 3.046755204913e-01 + 1.728000000000e-10 4.588771864746e-01 + 1.828000000000e-10 5.518179717254e-01 + 1.928000000000e-10 5.630613181018e-01 + 2.028000000000e-10 4.930058654618e-01 + 2.128000000000e-10 3.600434340665e-01 + 2.228000000000e-10 1.913332065647e-01 + 2.328000000000e-10 7.030379563374e-03 + 2.428000000000e-10 -1.825845992720e-01 + 2.528000000000e-10 -3.607212321510e-01 + 2.628000000000e-10 -4.995152077763e-01 + 2.728000000000e-10 -5.681601776296e-01 + 2.828000000000e-10 -5.536475265944e-01 + 2.928000000000e-10 -4.620883849781e-01 + 3.028000000000e-10 -3.154948373540e-01 + 3.128000000000e-10 -1.405895328965e-01 + 3.228000000000e-10 4.643731481932e-02 + 3.328000000000e-10 2.350973253463e-01 + 3.428000000000e-10 4.054203097179e-01 + 3.528000000000e-10 5.270988155628e-01 + 3.628000000000e-10 5.727125157929e-01 + 3.728000000000e-10 5.352123535322e-01 + 3.828000000000e-10 4.254605305301e-01 + 3.928000000000e-10 2.685036737698e-01 + 4.028000000000e-10 8.911586636822e-02 + 4.128000000000e-10 -9.963398240146e-02 + 4.228000000000e-10 -2.857170287196e-01 + 4.328000000000e-10 -4.457726616042e-01 + 4.428000000000e-10 -5.482103366819e-01 + 4.528000000000e-10 -5.704216942123e-01 + 4.628000000000e-10 -5.109460128406e-01 + 4.728000000000e-10 -3.850868130838e-01 + 4.828000000000e-10 -2.198835933739e-01 + 4.928000000000e-10 -3.689980676769e-02 + 5.028000000000e-10 1.526833767467e-01 + 5.128000000000e-10 3.343900010501e-01 + 5.228000000000e-10 4.815572314350e-01 + 5.328000000000e-10 5.629454287650e-01 + 5.428000000000e-10 5.616466908200e-01 + 5.528000000000e-10 4.814338387350e-01 + 5.628000000000e-10 3.416630734205e-01 + 5.728000000000e-10 1.699699975451e-01 + 5.828000000000e-10 -1.585775886924e-02 + 5.928000000000e-10 -2.051574982768e-01 + 6.028000000000e-10 -3.803955463572e-01 + 6.128000000000e-10 -5.120569276360e-01 + 6.228000000000e-10 -5.710959641361e-01 + 6.328000000000e-10 -5.465908780276e-01 + 6.428000000000e-10 -4.471998258417e-01 + 6.528000000000e-10 -2.958148073664e-01 + 6.628000000000e-10 -1.190050287464e-01 + 6.728000000000e-10 6.896892282433e-02 + 6.828000000000e-10 2.566225290979e-01 + 6.928000000000e-10 4.230361487305e-01 + 7.028000000000e-10 5.367245944621e-01 + 7.128000000000e-10 5.726009405551e-01 + 7.228000000000e-10 5.255773298606e-01 + 7.328000000000e-10 4.088680395342e-01 + 7.428000000000e-10 2.480819861851e-01 + 7.528000000000e-10 6.719204479067e-02 + 7.628000000000e-10 -1.221352201548e-01 + 7.728000000000e-10 -3.064998235705e-01 + 7.828000000000e-10 -4.615352773482e-01 + 7.928000000000e-10 -5.551743835496e-01 + 8.028000000000e-10 -5.675398121722e-01 + 8.128000000000e-10 -4.990356074229e-01 + 8.228000000000e-10 -3.671187730269e-01 + 8.328000000000e-10 -1.988855738478e-01 + 8.428000000000e-10 -1.471402250170e-02 + 8.528000000000e-10 1.749906067695e-01 + 8.628000000000e-10 3.541421288266e-01 + 8.728000000000e-10 4.951614050915e-01 + 8.828000000000e-10 5.671473843583e-01 + 8.928000000000e-10 5.560712514825e-01 + 9.028000000000e-10 4.674591983192e-01 + 9.128000000000e-10 3.225884832919e-01 + 9.228000000000e-10 1.485020348748e-01 + 9.328000000000e-10 -3.823610122102e-02 + 9.428000000000e-10 -2.271067171072e-01 + 9.528000000000e-10 -3.988323544176e-01 + 9.628000000000e-10 -5.232527594701e-01 + 9.728000000000e-10 -5.724941479336e-01 + 9.828000000000e-10 -5.384465917756e-01 + 9.928000000000e-10 -4.314195039535e-01 + 1.000000000000e-09 -3.218668116164e-01 diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_07/CML_divider.sym b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_07/CML_divider.sym new file mode 100644 index 00000000..e46eb233 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_07/CML_divider.sym @@ -0,0 +1,30 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 -120 -20 -100 -20 {} +L 4 -120 20 -100 20 {} +L 4 100 -20 120 -20 {} +L 4 100 20 120 20 {} +L 7 0 -60 0 -40 {} +L 7 0 40 0 60 {} +B 5 -122.5 -22.5 -117.5 -17.5 {name=Vo+ dir=out} +B 5 -122.5 17.5 -117.5 22.5 {name=Vo- dir=out} +B 5 117.5 -22.5 122.5 -17.5 {name=Vi+ dir=in} +B 5 117.5 17.5 122.5 22.5 {name=Vi- dir=in} +B 5 -2.5 -62.5 2.5 -57.5 {name=vdd dir=inout} +B 5 -2.5 57.5 2.5 62.5 {name=gnd dir=inout} +P 4 5 100 -40 -100 -40 -100 40 100 40 100 -40 {} +T {@symname} -44 -6 0 0 0.3 0.3 {} +T {@name} 45 -52 0 0 0.2 0.2 {} +T {Vo+} -95 -24 0 0 0.2 0.2 {} +T {Vo-} -95 16 0 0 0.2 0.2 {} +T {Vi+} 95 -16 2 0 0.2 0.2 {} +T {Vi-} 95 24 2 0 0.2 0.2 {} +T {vdd} 10 -39 0 1 0.2 0.2 {} +T {gnd} -10 34 2 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_07/conditions.yaml b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_07/conditions.yaml new file mode 100644 index 00000000..bcee4a2e --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_07/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice +N: 7 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: ff +filename: CML_core_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_07 +temperature: '80' +vdd: '0.8' diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_08/.spiceinit b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_08/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_08/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_08/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_08/CML_core_tb.sch new file mode 100644 index 00000000..056de1a6 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_08/CML_core_tb.sch @@ -0,0 +1,73 @@ +v {xschem version=3.4.8RC file_version=1.3} +G {} +K {} +V {} +S {} +F {} +E {} +N 740 -940 740 -920 {lab=GND} +N 740 -1090 740 -1060 {lab=VDD} +N 600 -1020 620 -1020 {lab=Vinplus} +N 600 -980 620 -980 {lab=Vinminus} +N 860 -1020 880 -1020 {lab=Voplus} +N 860 -980 880 -980 {lab=Vominus} +N 1150 -850 1150 -820 {lab=VDD} +N 1150 -760 1150 -730 {lab=GND} +N 930 -850 930 -820 {lab=Vinminus} +N 930 -760 930 -730 {lab=GND} +N 720 -850 720 -820 {lab=Vinplus} +N 720 -760 720 -730 {lab=GND} +C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.param A=0 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write CML_core_tb.raw +set appendwrite +tran 10p 1n 160p + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_08/CML_core_tb_8.data vo_diff +quit + +.endc +"} +C {opin.sym} 880 -1020 2 1 {name=p6 lab=Voplus} +C {opin.sym} 880 -980 0 0 {name=p9 lab=Vominus} +C {devices/code_shown.sym} 10 -620 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_ss + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice + +.temp 80 +" +} +C {iopin.sym} 740 -1090 0 1 {name=p2 lab=VDD} +C {ipin.sym} 600 -1020 2 1 {name=p4 lab=Vinplus} +C {ipin.sym} 600 -980 2 1 {name=p1 lab=Vinminus} +C {CML_divider.sym} 740 -1000 0 1 {name=x1} +C {vsource.sym} 1150 -790 0 0 {name=V1 value=0.8 savecurrent=false} +C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} +C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} +C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 A 10G 0 0 0)" savecurrent=false} +C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 A 10G 0 0 180)" savecurrent=false} +C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_08/CML_core_tb_8.data b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_08/CML_core_tb_8.data new file mode 100644 index 00000000..9bf52d4b --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_08/CML_core_tb_8.data @@ -0,0 +1,85 @@ + 1.628000000000e-10 3.334512303141e-01 + 1.728000000000e-10 4.920310241072e-01 + 1.828000000000e-10 5.871516315218e-01 + 1.928000000000e-10 5.960766354992e-01 + 2.028000000000e-10 5.190911466521e-01 + 2.128000000000e-10 3.785207326900e-01 + 2.228000000000e-10 2.049302653238e-01 + 2.328000000000e-10 1.651767251554e-02 + 2.428000000000e-10 -1.790271764811e-01 + 2.528000000000e-10 -3.657879864898e-01 + 2.628000000000e-10 -5.171831909383e-01 + 2.728000000000e-10 -5.997088663149e-01 + 2.828000000000e-10 -5.948111801226e-01 + 2.928000000000e-10 -5.063654012101e-01 + 3.028000000000e-10 -3.587863037418e-01 + 3.128000000000e-10 -1.821379391557e-01 + 3.228000000000e-10 7.888972519530e-03 + 3.328000000000e-10 2.035088728667e-01 + 3.428000000000e-10 3.875409021465e-01 + 3.528000000000e-10 5.320644301491e-01 + 3.628000000000e-10 6.042388280374e-01 + 3.728000000000e-10 5.883403890472e-01 + 3.828000000000e-10 4.910042429366e-01 + 3.928000000000e-10 3.383713820269e-01 + 4.028000000000e-10 1.596304490075e-01 + 4.128000000000e-10 -3.157975881199e-02 + 4.228000000000e-10 -2.269158813736e-01 + 4.328000000000e-10 -4.078630979115e-01 + 4.428000000000e-10 -5.452238343377e-01 + 4.528000000000e-10 -6.070914209056e-01 + 4.628000000000e-10 -5.804825164118e-01 + 4.728000000000e-10 -4.747613668514e-01 + 4.828000000000e-10 -3.176002092310e-01 + 4.928000000000e-10 -1.369439978288e-01 + 5.028000000000e-10 5.534658721980e-02 + 5.128000000000e-10 2.501430489142e-01 + 5.228000000000e-10 4.275696337474e-01 + 5.328000000000e-10 5.572530695454e-01 + 5.428000000000e-10 6.086048604787e-01 + 5.528000000000e-10 5.714423014991e-01 + 5.628000000000e-10 4.577558387660e-01 + 5.728000000000e-10 2.965226810522e-01 + 5.828000000000e-10 1.140863397721e-01 + 5.928000000000e-10 -7.916165526171e-02 + 6.028000000000e-10 -2.731282141304e-01 + 6.128000000000e-10 -4.465714488852e-01 + 6.228000000000e-10 -5.680918089739e-01 + 6.328000000000e-10 -6.087809432803e-01 + 6.428000000000e-10 -5.612546972849e-01 + 6.528000000000e-10 -4.400500904524e-01 + 6.628000000000e-10 -2.751690190519e-01 + 6.728000000000e-10 -9.106761382953e-02 + 6.828000000000e-10 1.029968797521e-01 + 6.928000000000e-10 2.958257130252e-01 + 7.028000000000e-10 4.648013192379e-01 + 7.128000000000e-10 5.777063572260e-01 + 7.228000000000e-10 6.076218987809e-01 + 7.328000000000e-10 5.499646386996e-01 + 7.428000000000e-10 4.217057221764e-01 + 7.528000000000e-10 2.535632375360e-01 + 7.628000000000e-10 6.789614061290e-02 + 7.728000000000e-10 -1.268193581673e-01 + 7.828000000000e-10 -3.181808612885e-01 + 7.928000000000e-10 -4.821903021659e-01 + 8.028000000000e-10 -5.860591830893e-01 + 8.128000000000e-10 -6.051306912086e-01 + 8.228000000000e-10 -5.376046096264e-01 + 8.328000000000e-10 -4.027756137924e-01 + 8.428000000000e-10 -2.317126300703e-01 + 8.528000000000e-10 -4.455549072905e-02 + 8.628000000000e-10 1.506398273088e-01 + 8.728000000000e-10 3.401881982667e-01 + 8.828000000000e-10 4.987168422738e-01 + 8.928000000000e-10 5.931649578198e-01 + 9.028000000000e-10 6.013494541833e-01 + 9.128000000000e-10 5.242449683991e-01 + 9.228000000000e-10 3.833231535447e-01 + 9.328000000000e-10 2.096470589865e-01 + 9.428000000000e-10 2.110110280871e-02 + 9.528000000000e-10 -1.743676839347e-01 + 9.628000000000e-10 -3.617308880367e-01 + 9.728000000000e-10 -5.142636715347e-01 + 9.828000000000e-10 -5.989629387124e-01 + 9.928000000000e-10 -5.962786821895e-01 + 1.000000000000e-09 -5.406592435476e-01 diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_08/CML_divider.sym b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_08/CML_divider.sym new file mode 100644 index 00000000..e46eb233 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_08/CML_divider.sym @@ -0,0 +1,30 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 -120 -20 -100 -20 {} +L 4 -120 20 -100 20 {} +L 4 100 -20 120 -20 {} +L 4 100 20 120 20 {} +L 7 0 -60 0 -40 {} +L 7 0 40 0 60 {} +B 5 -122.5 -22.5 -117.5 -17.5 {name=Vo+ dir=out} +B 5 -122.5 17.5 -117.5 22.5 {name=Vo- dir=out} +B 5 117.5 -22.5 122.5 -17.5 {name=Vi+ dir=in} +B 5 117.5 17.5 122.5 22.5 {name=Vi- dir=in} +B 5 -2.5 -62.5 2.5 -57.5 {name=vdd dir=inout} +B 5 -2.5 57.5 2.5 62.5 {name=gnd dir=inout} +P 4 5 100 -40 -100 -40 -100 40 100 40 100 -40 {} +T {@symname} -44 -6 0 0 0.3 0.3 {} +T {@name} 45 -52 0 0 0.2 0.2 {} +T {Vo+} -95 -24 0 0 0.2 0.2 {} +T {Vo-} -95 16 0 0 0.2 0.2 {} +T {Vi+} 95 -16 2 0 0.2 0.2 {} +T {Vi-} 95 24 2 0 0.2 0.2 {} +T {vdd} 10 -39 0 1 0.2 0.2 {} +T {gnd} -10 34 2 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_08/conditions.yaml b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_08/conditions.yaml new file mode 100644 index 00000000..9b83fa72 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_08/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice +N: 8 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: ss +filename: CML_core_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_08 +temperature: '80' +vdd: '0.8' diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_09/.spiceinit b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_09/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_09/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_09/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_09/CML_core_tb.sch new file mode 100644 index 00000000..24da899c --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_09/CML_core_tb.sch @@ -0,0 +1,73 @@ +v {xschem version=3.4.8RC file_version=1.3} +G {} +K {} +V {} +S {} +F {} +E {} +N 740 -940 740 -920 {lab=GND} +N 740 -1090 740 -1060 {lab=VDD} +N 600 -1020 620 -1020 {lab=Vinplus} +N 600 -980 620 -980 {lab=Vinminus} +N 860 -1020 880 -1020 {lab=Voplus} +N 860 -980 880 -980 {lab=Vominus} +N 1150 -850 1150 -820 {lab=VDD} +N 1150 -760 1150 -730 {lab=GND} +N 930 -850 930 -820 {lab=Vinminus} +N 930 -760 930 -730 {lab=GND} +N 720 -850 720 -820 {lab=Vinplus} +N 720 -760 720 -730 {lab=GND} +C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.param A=0 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write CML_core_tb.raw +set appendwrite +tran 10p 1n 160p + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_09/CML_core_tb_9.data vo_diff +quit + +.endc +"} +C {opin.sym} 880 -1020 2 1 {name=p6 lab=Voplus} +C {opin.sym} 880 -980 0 0 {name=p9 lab=Vominus} +C {devices/code_shown.sym} 10 -620 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_tt + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice + +.temp -40 +" +} +C {iopin.sym} 740 -1090 0 1 {name=p2 lab=VDD} +C {ipin.sym} 600 -1020 2 1 {name=p4 lab=Vinplus} +C {ipin.sym} 600 -980 2 1 {name=p1 lab=Vinminus} +C {CML_divider.sym} 740 -1000 0 1 {name=x1} +C {vsource.sym} 1150 -790 0 0 {name=V1 value=1.2 savecurrent=false} +C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} +C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} +C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 A 10G 0 0 0)" savecurrent=false} +C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 A 10G 0 0 180)" savecurrent=false} +C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_09/CML_core_tb_9.data b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_09/CML_core_tb_9.data new file mode 100644 index 00000000..2993c56d --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_09/CML_core_tb_9.data @@ -0,0 +1,85 @@ + 1.628000000000e-10 5.668053088994e-01 + 1.728000000000e-10 5.857254764211e-01 + 1.828000000000e-10 5.012885034242e-01 + 1.928000000000e-10 3.496119161339e-01 + 2.028000000000e-10 1.832231223385e-01 + 2.128000000000e-10 1.814016746348e-02 + 2.228000000000e-10 -1.582488922184e-01 + 2.328000000000e-10 -3.434810675640e-01 + 2.428000000000e-10 -5.067125803648e-01 + 2.528000000000e-10 -5.886170858536e-01 + 2.628000000000e-10 -5.623087079277e-01 + 2.728000000000e-10 -4.437897754944e-01 + 2.828000000000e-10 -2.803473323284e-01 + 2.928000000000e-10 -1.154437766492e-01 + 3.028000000000e-10 5.298892056425e-02 + 3.128000000000e-10 2.348763033985e-01 + 3.228000000000e-10 4.167289199396e-01 + 3.328000000000e-10 5.534898949576e-01 + 3.428000000000e-10 5.908111329708e-01 + 3.528000000000e-10 5.222863413108e-01 + 3.628000000000e-10 3.781315285794e-01 + 3.728000000000e-10 2.115997289284e-01 + 3.828000000000e-10 4.701053084038e-02 + 3.928000000000e-10 -1.267436670640e-01 + 4.028000000000e-10 -3.118715354619e-01 + 4.128000000000e-10 -4.825510114000e-01 + 4.228000000000e-10 -5.821722089926e-01 + 4.328000000000e-10 -5.742542254893e-01 + 4.428000000000e-10 -4.690576377049e-01 + 4.528000000000e-10 -3.091055349154e-01 + 4.628000000000e-10 -1.436815907828e-01 + 4.728000000000e-10 2.320195326925e-02 + 4.828000000000e-10 2.028356601470e-01 + 4.928000000000e-10 3.870062310368e-01 + 5.028000000000e-10 5.360981275586e-01 + 5.128000000000e-10 5.923134931039e-01 + 5.228000000000e-10 5.407044044462e-01 + 5.328000000000e-10 4.062163744597e-01 + 5.428000000000e-10 2.400594094322e-01 + 5.528000000000e-10 7.574547495214e-02 + 5.628000000000e-10 -9.573670339165e-02 + 5.728000000000e-10 -2.797908939581e-01 + 5.828000000000e-10 -4.563610748463e-01 + 5.928000000000e-10 -5.723989589010e-01 + 6.028000000000e-10 -5.833681745524e-01 + 6.128000000000e-10 -4.925316152611e-01 + 6.228000000000e-10 -3.380117706452e-01 + 6.328000000000e-10 -1.718187486666e-01 + 6.428000000000e-10 -6.311096017310e-03 + 6.528000000000e-10 1.710417477038e-01 + 6.628000000000e-10 3.561610603242e-01 + 6.728000000000e-10 5.157419068689e-01 + 6.828000000000e-10 5.903632413079e-01 + 6.928000000000e-10 5.566690398802e-01 + 7.028000000000e-10 4.332577725691e-01 + 7.128000000000e-10 2.687661939284e-01 + 7.228000000000e-10 1.040962406345e-01 + 7.328000000000e-10 -6.514380203775e-02 + 7.428000000000e-10 -2.477516573600e-01 + 7.528000000000e-10 -4.283810997893e-01 + 7.628000000000e-10 -5.595560501887e-01 + 7.728000000000e-10 -5.893136746958e-01 + 7.828000000000e-10 -5.141806750048e-01 + 7.928000000000e-10 -3.666907626534e-01 + 8.028000000000e-10 -2.001605247775e-01 + 8.128000000000e-10 -3.539844999637e-02 + 8.228000000000e-10 1.393801501742e-01 + 8.328000000000e-10 3.246733270368e-01 + 8.428000000000e-10 4.925514879874e-01 + 8.528000000000e-10 5.851746152462e-01 + 8.628000000000e-10 5.697858900390e-01 + 8.728000000000e-10 4.590951362034e-01 + 8.828000000000e-10 2.975143674948e-01 + 8.928000000000e-10 1.323427539482e-01 + 9.028000000000e-10 -3.514510890180e-02 + 9.128000000000e-10 -2.156968702842e-01 + 9.228000000000e-10 -3.991100939526e-01 + 9.328000000000e-10 -5.434600882914e-01 + 9.428000000000e-10 -5.921215711709e-01 + 9.528000000000e-10 -5.335762414989e-01 + 9.628000000000e-10 -3.950234022959e-01 + 9.728000000000e-10 -2.285812895409e-01 + 9.828000000000e-10 -6.423644498198e-02 + 9.928000000000e-10 1.081622418334e-01 + 1.000000000000e-09 2.412230503845e-01 diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_09/CML_divider.sym b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_09/CML_divider.sym new file mode 100644 index 00000000..e46eb233 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_09/CML_divider.sym @@ -0,0 +1,30 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 -120 -20 -100 -20 {} +L 4 -120 20 -100 20 {} +L 4 100 -20 120 -20 {} +L 4 100 20 120 20 {} +L 7 0 -60 0 -40 {} +L 7 0 40 0 60 {} +B 5 -122.5 -22.5 -117.5 -17.5 {name=Vo+ dir=out} +B 5 -122.5 17.5 -117.5 22.5 {name=Vo- dir=out} +B 5 117.5 -22.5 122.5 -17.5 {name=Vi+ dir=in} +B 5 117.5 17.5 122.5 22.5 {name=Vi- dir=in} +B 5 -2.5 -62.5 2.5 -57.5 {name=vdd dir=inout} +B 5 -2.5 57.5 2.5 62.5 {name=gnd dir=inout} +P 4 5 100 -40 -100 -40 -100 40 100 40 100 -40 {} +T {@symname} -44 -6 0 0 0.3 0.3 {} +T {@name} 45 -52 0 0 0.2 0.2 {} +T {Vo+} -95 -24 0 0 0.2 0.2 {} +T {Vo-} -95 16 0 0 0.2 0.2 {} +T {Vi+} 95 -16 2 0 0.2 0.2 {} +T {Vi-} 95 24 2 0 0.2 0.2 {} +T {vdd} 10 -39 0 1 0.2 0.2 {} +T {gnd} -10 34 2 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_09/conditions.yaml b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_09/conditions.yaml new file mode 100644 index 00000000..3f03bbe2 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_09/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice +N: 9 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: tt +filename: CML_core_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_09 +temperature: '-40' +vdd: '1.2' diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_10/.spiceinit b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_10/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_10/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_10/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_10/CML_core_tb.sch new file mode 100644 index 00000000..498e92f5 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_10/CML_core_tb.sch @@ -0,0 +1,73 @@ +v {xschem version=3.4.8RC file_version=1.3} +G {} +K {} +V {} +S {} +F {} +E {} +N 740 -940 740 -920 {lab=GND} +N 740 -1090 740 -1060 {lab=VDD} +N 600 -1020 620 -1020 {lab=Vinplus} +N 600 -980 620 -980 {lab=Vinminus} +N 860 -1020 880 -1020 {lab=Voplus} +N 860 -980 880 -980 {lab=Vominus} +N 1150 -850 1150 -820 {lab=VDD} +N 1150 -760 1150 -730 {lab=GND} +N 930 -850 930 -820 {lab=Vinminus} +N 930 -760 930 -730 {lab=GND} +N 720 -850 720 -820 {lab=Vinplus} +N 720 -760 720 -730 {lab=GND} +C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.param A=0 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write CML_core_tb.raw +set appendwrite +tran 10p 1n 160p + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_10/CML_core_tb_10.data vo_diff +quit + +.endc +"} +C {opin.sym} 880 -1020 2 1 {name=p6 lab=Voplus} +C {opin.sym} 880 -980 0 0 {name=p9 lab=Vominus} +C {devices/code_shown.sym} 10 -620 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_ff + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice + +.temp -40 +" +} +C {iopin.sym} 740 -1090 0 1 {name=p2 lab=VDD} +C {ipin.sym} 600 -1020 2 1 {name=p4 lab=Vinplus} +C {ipin.sym} 600 -980 2 1 {name=p1 lab=Vinminus} +C {CML_divider.sym} 740 -1000 0 1 {name=x1} +C {vsource.sym} 1150 -790 0 0 {name=V1 value=1.2 savecurrent=false} +C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} +C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} +C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 A 10G 0 0 0)" savecurrent=false} +C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 A 10G 0 0 180)" savecurrent=false} +C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_10/CML_core_tb_10.data b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_10/CML_core_tb_10.data new file mode 100644 index 00000000..3f80dd94 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_10/CML_core_tb_10.data @@ -0,0 +1,85 @@ + 1.628000000000e-10 5.428454097944e-01 + 1.728000000000e-10 5.887232665160e-01 + 1.828000000000e-10 5.330123444355e-01 + 1.928000000000e-10 4.002306682823e-01 + 2.028000000000e-10 2.376864868930e-01 + 2.128000000000e-10 7.678280982833e-02 + 2.228000000000e-10 -9.183070296933e-02 + 2.328000000000e-10 -2.735408409540e-01 + 2.428000000000e-10 -4.488104547239e-01 + 2.528000000000e-10 -5.660499400086e-01 + 2.628000000000e-10 -5.832044710923e-01 + 2.728000000000e-10 -5.025294495918e-01 + 2.828000000000e-10 -3.561389451591e-01 + 2.928000000000e-10 -1.931509973895e-01 + 3.028000000000e-10 -3.161724055927e-02 + 3.128000000000e-10 1.410162521305e-01 + 3.228000000000e-10 3.241425761048e-01 + 3.328000000000e-10 4.896722689474e-01 + 3.428000000000e-10 5.810994290094e-01 + 3.528000000000e-10 5.697787336600e-01 + 3.628000000000e-10 4.667491870485e-01 + 3.728000000000e-10 3.110523622229e-01 + 3.828000000000e-10 1.489204686804e-01 + 3.928000000000e-10 -1.441683887549e-02 + 4.028000000000e-10 -1.911114176137e-01 + 4.128000000000e-10 -3.736007816207e-01 + 4.228000000000e-10 -5.247269258094e-01 + 4.328000000000e-10 -5.883619802608e-01 + 4.428000000000e-10 -5.493709568696e-01 + 4.528000000000e-10 -4.268560645732e-01 + 4.628000000000e-10 -2.659216134563e-01 + 4.728000000000e-10 -1.046762237276e-01 + 4.828000000000e-10 6.154083598056e-02 + 4.928000000000e-10 2.417370283704e-01 + 5.028000000000e-10 4.207944424121e-01 + 5.128000000000e-10 5.525507732105e-01 + 5.228000000000e-10 5.875753342204e-01 + 5.328000000000e-10 5.224235076500e-01 + 5.428000000000e-10 3.839329178331e-01 + 5.528000000000e-10 2.211099477749e-01 + 5.628000000000e-10 5.996738384120e-02 + 5.728000000000e-10 -1.099674418154e-01 + 5.828000000000e-10 -2.925437637672e-01 + 5.928000000000e-10 -4.645883613969e-01 + 6.028000000000e-10 -5.726945090474e-01 + 6.128000000000e-10 -5.790563278825e-01 + 6.228000000000e-10 -4.898564008421e-01 + 6.328000000000e-10 -3.393681751694e-01 + 6.428000000000e-10 -1.767412253591e-01 + 6.528000000000e-10 -1.454956388405e-02 + 6.628000000000e-10 1.594975892711e-01 + 6.728000000000e-10 3.427835897317e-01 + 6.828000000000e-10 5.034181189969e-01 + 6.928000000000e-10 5.847881744116e-01 + 7.028000000000e-10 5.629416678024e-01 + 7.128000000000e-10 4.524088161704e-01 + 7.228000000000e-10 2.942348359352e-01 + 7.328000000000e-10 1.325830680191e-01 + 7.428000000000e-10 -3.185512433972e-02 + 7.528000000000e-10 -2.098392063323e-01 + 7.628000000000e-10 -3.915363466654e-01 + 7.728000000000e-10 -5.359377717046e-01 + 7.828000000000e-10 -5.890964735012e-01 + 7.928000000000e-10 -5.400822293487e-01 + 8.028000000000e-10 -4.113016871798e-01 + 8.128000000000e-10 -2.492332141259e-01 + 8.228000000000e-10 -8.824437749447e-02 + 8.328000000000e-10 7.936811900351e-02 + 8.428000000000e-10 2.605063461685e-01 + 8.528000000000e-10 4.375102433552e-01 + 8.628000000000e-10 5.608346246038e-01 + 8.728000000000e-10 5.853101833106e-01 + 8.828000000000e-10 5.109008400826e-01 + 8.928000000000e-10 3.675780917482e-01 + 9.028000000000e-10 2.045751110844e-01 + 9.128000000000e-10 4.327185431609e-02 + 9.228000000000e-10 -1.282588076844e-01 + 9.328000000000e-10 -3.112363383013e-01 + 9.428000000000e-10 -4.796448869807e-01 + 9.528000000000e-10 -5.779714766981e-01 + 9.628000000000e-10 -5.738664100326e-01 + 9.728000000000e-10 -4.763674754779e-01 + 9.828000000000e-10 -3.226217811241e-01 + 9.928000000000e-10 -1.602653782787e-01 + 1.000000000000e-09 -4.451885084543e-02 diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_10/CML_divider.sym b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_10/CML_divider.sym new file mode 100644 index 00000000..e46eb233 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_10/CML_divider.sym @@ -0,0 +1,30 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 -120 -20 -100 -20 {} +L 4 -120 20 -100 20 {} +L 4 100 -20 120 -20 {} +L 4 100 20 120 20 {} +L 7 0 -60 0 -40 {} +L 7 0 40 0 60 {} +B 5 -122.5 -22.5 -117.5 -17.5 {name=Vo+ dir=out} +B 5 -122.5 17.5 -117.5 22.5 {name=Vo- dir=out} +B 5 117.5 -22.5 122.5 -17.5 {name=Vi+ dir=in} +B 5 117.5 17.5 122.5 22.5 {name=Vi- dir=in} +B 5 -2.5 -62.5 2.5 -57.5 {name=vdd dir=inout} +B 5 -2.5 57.5 2.5 62.5 {name=gnd dir=inout} +P 4 5 100 -40 -100 -40 -100 40 100 40 100 -40 {} +T {@symname} -44 -6 0 0 0.3 0.3 {} +T {@name} 45 -52 0 0 0.2 0.2 {} +T {Vo+} -95 -24 0 0 0.2 0.2 {} +T {Vo-} -95 16 0 0 0.2 0.2 {} +T {Vi+} 95 -16 2 0 0.2 0.2 {} +T {Vi-} 95 24 2 0 0.2 0.2 {} +T {vdd} 10 -39 0 1 0.2 0.2 {} +T {gnd} -10 34 2 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_10/conditions.yaml b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_10/conditions.yaml new file mode 100644 index 00000000..62ddc3f2 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_10/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice +N: 10 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: ff +filename: CML_core_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_10 +temperature: '-40' +vdd: '1.2' diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_11/.spiceinit b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_11/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_11/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_11/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_11/CML_core_tb.sch new file mode 100644 index 00000000..d82d43e6 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_11/CML_core_tb.sch @@ -0,0 +1,73 @@ +v {xschem version=3.4.8RC file_version=1.3} +G {} +K {} +V {} +S {} +F {} +E {} +N 740 -940 740 -920 {lab=GND} +N 740 -1090 740 -1060 {lab=VDD} +N 600 -1020 620 -1020 {lab=Vinplus} +N 600 -980 620 -980 {lab=Vinminus} +N 860 -1020 880 -1020 {lab=Voplus} +N 860 -980 880 -980 {lab=Vominus} +N 1150 -850 1150 -820 {lab=VDD} +N 1150 -760 1150 -730 {lab=GND} +N 930 -850 930 -820 {lab=Vinminus} +N 930 -760 930 -730 {lab=GND} +N 720 -850 720 -820 {lab=Vinplus} +N 720 -760 720 -730 {lab=GND} +C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.param A=0 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write CML_core_tb.raw +set appendwrite +tran 10p 1n 160p + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_11/CML_core_tb_11.data vo_diff +quit + +.endc +"} +C {opin.sym} 880 -1020 2 1 {name=p6 lab=Voplus} +C {opin.sym} 880 -980 0 0 {name=p9 lab=Vominus} +C {devices/code_shown.sym} 10 -620 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_ss + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice + +.temp -40 +" +} +C {iopin.sym} 740 -1090 0 1 {name=p2 lab=VDD} +C {ipin.sym} 600 -1020 2 1 {name=p4 lab=Vinplus} +C {ipin.sym} 600 -980 2 1 {name=p1 lab=Vinminus} +C {CML_divider.sym} 740 -1000 0 1 {name=x1} +C {vsource.sym} 1150 -790 0 0 {name=V1 value=1.2 savecurrent=false} +C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} +C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} +C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 A 10G 0 0 0)" savecurrent=false} +C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 A 10G 0 0 180)" savecurrent=false} +C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_11/CML_core_tb_11.data b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_11/CML_core_tb_11.data new file mode 100644 index 00000000..9458f6ce --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_11/CML_core_tb_11.data @@ -0,0 +1,85 @@ + 1.628000000000e-10 5.827936810554e-01 + 1.728000000000e-10 5.810792076977e-01 + 1.828000000000e-10 4.754509601432e-01 + 1.928000000000e-10 3.123193265552e-01 + 2.028000000000e-10 1.445094956986e-01 + 2.128000000000e-10 -2.384329014267e-02 + 2.228000000000e-10 -2.052873687362e-01 + 2.328000000000e-10 -3.914038413672e-01 + 2.428000000000e-10 -5.430039178242e-01 + 2.528000000000e-10 -5.974115721655e-01 + 2.628000000000e-10 -5.389960693485e-01 + 2.728000000000e-10 -3.964329868203e-01 + 2.828000000000e-10 -2.268489588437e-01 + 2.928000000000e-10 -6.061675885961e-02 + 3.028000000000e-10 1.135421560512e-01 + 3.128000000000e-10 3.001127750219e-01 + 3.228000000000e-10 4.761699337604e-01 + 3.328000000000e-10 5.845551088541e-01 + 3.428000000000e-10 5.810137437748e-01 + 3.528000000000e-10 4.742887126822e-01 + 3.628000000000e-10 3.105573370732e-01 + 3.728000000000e-10 1.429035289472e-01 + 3.828000000000e-10 -2.566941675042e-02 + 3.928000000000e-10 -2.070892792811e-01 + 4.028000000000e-10 -3.932550397965e-01 + 4.128000000000e-10 -5.440358639049e-01 + 4.228000000000e-10 -5.974545613679e-01 + 4.328000000000e-10 -5.378639915963e-01 + 4.428000000000e-10 -3.948698115068e-01 + 4.528000000000e-10 -2.251456197037e-01 + 4.628000000000e-10 -5.904004941792e-02 + 4.728000000000e-10 1.153874791980e-01 + 4.828000000000e-10 3.018826859494e-01 + 4.928000000000e-10 4.777357070651e-01 + 5.028000000000e-10 5.850209286479e-01 + 5.128000000000e-10 5.804772883663e-01 + 5.228000000000e-10 4.728085019241e-01 + 5.328000000000e-10 3.089457683616e-01 + 5.428000000000e-10 1.412323614058e-01 + 5.528000000000e-10 -2.730899411782e-02 + 5.628000000000e-10 -2.089765034267e-01 + 5.728000000000e-10 -3.949384733604e-01 + 5.828000000000e-10 -5.451565863598e-01 + 5.928000000000e-10 -5.973527500019e-01 + 6.028000000000e-10 -5.368466314030e-01 + 6.128000000000e-10 -3.931843583920e-01 + 6.228000000000e-10 -2.235601147375e-01 + 6.328000000000e-10 -5.734349959237e-02 + 6.428000000000e-10 1.171162736371e-01 + 6.528000000000e-10 3.037703409726e-01 + 6.628000000000e-10 4.791912331459e-01 + 6.728000000000e-10 5.855798214314e-01 + 6.828000000000e-10 5.798240328394e-01 + 6.928000000000e-10 4.714288640290e-01 + 7.028000000000e-10 3.072315620121e-01 + 7.128000000000e-10 1.396641030954e-01 + 7.228000000000e-10 -2.905607141113e-02 + 7.328000000000e-10 -2.107594500296e-01 + 7.428000000000e-10 -3.967211258950e-01 + 7.528000000000e-10 -5.461706344704e-01 + 7.628000000000e-10 -5.973374521174e-01 + 7.728000000000e-10 -5.357205733965e-01 + 7.828000000000e-10 -3.915911928777e-01 + 7.928000000000e-10 -2.218810155195e-01 + 8.028000000000e-10 -5.573969116904e-02 + 8.128000000000e-10 1.189424413261e-01 + 8.228000000000e-10 3.055646827560e-01 + 8.328000000000e-10 4.807259154011e-01 + 8.428000000000e-10 5.860453138042e-01 + 8.528000000000e-10 5.792476749867e-01 + 8.628000000000e-10 4.699583360894e-01 + 8.728000000000e-10 3.056009455537e-01 + 8.828000000000e-10 1.380131640820e-01 + 8.928000000000e-10 -3.071912961450e-02 + 9.028000000000e-10 -2.126264792163e-01 + 9.128000000000e-10 -3.984185561653e-01 + 9.228000000000e-10 -5.472502664204e-01 + 9.328000000000e-10 -5.972326176360e-01 + 9.428000000000e-10 -5.346663530098e-01 + 9.528000000000e-10 -3.899201147490e-01 + 9.628000000000e-10 -2.202777602246e-01 + 9.728000000000e-10 -5.405978815575e-02 + 9.828000000000e-10 1.206936521389e-01 + 9.928000000000e-10 3.074328997109e-01 + 1.000000000000e-09 4.391748152565e-01 diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_11/CML_divider.sym b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_11/CML_divider.sym new file mode 100644 index 00000000..e46eb233 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_11/CML_divider.sym @@ -0,0 +1,30 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 -120 -20 -100 -20 {} +L 4 -120 20 -100 20 {} +L 4 100 -20 120 -20 {} +L 4 100 20 120 20 {} +L 7 0 -60 0 -40 {} +L 7 0 40 0 60 {} +B 5 -122.5 -22.5 -117.5 -17.5 {name=Vo+ dir=out} +B 5 -122.5 17.5 -117.5 22.5 {name=Vo- dir=out} +B 5 117.5 -22.5 122.5 -17.5 {name=Vi+ dir=in} +B 5 117.5 17.5 122.5 22.5 {name=Vi- dir=in} +B 5 -2.5 -62.5 2.5 -57.5 {name=vdd dir=inout} +B 5 -2.5 57.5 2.5 62.5 {name=gnd dir=inout} +P 4 5 100 -40 -100 -40 -100 40 100 40 100 -40 {} +T {@symname} -44 -6 0 0 0.3 0.3 {} +T {@name} 45 -52 0 0 0.2 0.2 {} +T {Vo+} -95 -24 0 0 0.2 0.2 {} +T {Vo-} -95 16 0 0 0.2 0.2 {} +T {Vi+} 95 -16 2 0 0.2 0.2 {} +T {Vi-} 95 24 2 0 0.2 0.2 {} +T {vdd} 10 -39 0 1 0.2 0.2 {} +T {gnd} -10 34 2 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_11/conditions.yaml b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_11/conditions.yaml new file mode 100644 index 00000000..3a3bb59b --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_11/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice +N: 11 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: ss +filename: CML_core_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_11 +temperature: '-40' +vdd: '1.2' diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_12/.spiceinit b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_12/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_12/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_12/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_12/CML_core_tb.sch new file mode 100644 index 00000000..4c820c55 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_12/CML_core_tb.sch @@ -0,0 +1,73 @@ +v {xschem version=3.4.8RC file_version=1.3} +G {} +K {} +V {} +S {} +F {} +E {} +N 740 -940 740 -920 {lab=GND} +N 740 -1090 740 -1060 {lab=VDD} +N 600 -1020 620 -1020 {lab=Vinplus} +N 600 -980 620 -980 {lab=Vinminus} +N 860 -1020 880 -1020 {lab=Voplus} +N 860 -980 880 -980 {lab=Vominus} +N 1150 -850 1150 -820 {lab=VDD} +N 1150 -760 1150 -730 {lab=GND} +N 930 -850 930 -820 {lab=Vinminus} +N 930 -760 930 -730 {lab=GND} +N 720 -850 720 -820 {lab=Vinplus} +N 720 -760 720 -730 {lab=GND} +C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.param A=0 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write CML_core_tb.raw +set appendwrite +tran 10p 1n 160p + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_12/CML_core_tb_12.data vo_diff +quit + +.endc +"} +C {opin.sym} 880 -1020 2 1 {name=p6 lab=Voplus} +C {opin.sym} 880 -980 0 0 {name=p9 lab=Vominus} +C {devices/code_shown.sym} 10 -620 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_tt + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice + +.temp 27 +" +} +C {iopin.sym} 740 -1090 0 1 {name=p2 lab=VDD} +C {ipin.sym} 600 -1020 2 1 {name=p4 lab=Vinplus} +C {ipin.sym} 600 -980 2 1 {name=p1 lab=Vinminus} +C {CML_divider.sym} 740 -1000 0 1 {name=x1} +C {vsource.sym} 1150 -790 0 0 {name=V1 value=1.2 savecurrent=false} +C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} +C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} +C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 A 10G 0 0 0)" savecurrent=false} +C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 A 10G 0 0 180)" savecurrent=false} +C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_12/CML_core_tb_12.data b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_12/CML_core_tb_12.data new file mode 100644 index 00000000..17b5ef26 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_12/CML_core_tb_12.data @@ -0,0 +1,85 @@ + 1.628000000000e-10 5.555711411691e-01 + 1.728000000000e-10 5.654533109598e-01 + 1.828000000000e-10 4.795726584841e-01 + 1.928000000000e-10 3.326502253637e-01 + 2.028000000000e-10 1.687296913114e-01 + 2.128000000000e-10 2.259632268033e-03 + 2.228000000000e-10 -1.737904072321e-01 + 2.328000000000e-10 -3.537060570041e-01 + 2.428000000000e-10 -5.045948747149e-01 + 2.528000000000e-10 -5.731435474460e-01 + 2.628000000000e-10 -5.391555089404e-01 + 2.728000000000e-10 -4.213148150041e-01 + 2.828000000000e-10 -2.626455484716e-01 + 2.928000000000e-10 -9.794124042607e-02 + 3.028000000000e-10 7.187921157535e-02 + 3.128000000000e-10 2.517461177776e-01 + 3.228000000000e-10 4.250624796943e-01 + 3.328000000000e-10 5.465250931262e-01 + 3.428000000000e-10 5.707653915460e-01 + 3.528000000000e-10 4.967299254069e-01 + 3.628000000000e-10 3.552764122875e-01 + 3.728000000000e-10 1.920279556884e-01 + 3.828000000000e-10 2.619193487626e-02 + 3.928000000000e-10 -1.481848868503e-01 + 4.028000000000e-10 -3.289567215963e-01 + 4.128000000000e-10 -4.870422839129e-01 + 4.228000000000e-10 -5.697831693720e-01 + 4.328000000000e-10 -5.497939882973e-01 + 4.428000000000e-10 -4.417146267181e-01 + 4.528000000000e-10 -2.858120458911e-01 + 4.628000000000e-10 -1.213979132799e-01 + 4.728000000000e-10 4.724925592827e-02 + 4.828000000000e-10 2.259536453083e-01 + 4.928000000000e-10 4.023731180618e-01 + 5.028000000000e-10 5.346129641317e-01 + 5.128000000000e-10 5.737179052380e-01 + 5.228000000000e-10 5.122194835459e-01 + 5.328000000000e-10 3.776695186105e-01 + 5.428000000000e-10 2.152751132312e-01 + 5.528000000000e-10 5.007645335031e-02 + 5.628000000000e-10 -1.228407452739e-01 + 5.728000000000e-10 -3.036742853578e-01 + 5.828000000000e-10 -4.679879288367e-01 + 5.928000000000e-10 -5.641705522090e-01 + 6.028000000000e-10 -5.586855895079e-01 + 6.128000000000e-10 -4.609840869152e-01 + 6.228000000000e-10 -3.089721186467e-01 + 6.328000000000e-10 -1.446728205678e-01 + 6.428000000000e-10 2.279331244334e-02 + 6.528000000000e-10 2.003088005884e-01 + 6.628000000000e-10 3.787966390790e-01 + 6.728000000000e-10 5.208271612122e-01 + 6.828000000000e-10 5.744915662569e-01 + 6.928000000000e-10 5.263276638189e-01 + 7.028000000000e-10 3.995002166786e-01 + 7.128000000000e-10 2.386440244848e-01 + 7.228000000000e-10 7.372747398587e-02 + 7.328000000000e-10 -9.758660335090e-02 + 7.428000000000e-10 -2.781765911571e-01 + 7.528000000000e-10 -4.474216397573e-01 + 7.628000000000e-10 -5.565126829014e-01 + 7.728000000000e-10 -5.655838789355e-01 + 7.828000000000e-10 -4.792180968458e-01 + 7.928000000000e-10 -3.318840785190e-01 + 8.028000000000e-10 -1.680007152563e-01 + 8.128000000000e-10 -1.392642620268e-03 + 8.228000000000e-10 1.746034541840e-01 + 8.328000000000e-10 3.545844335081e-01 + 8.428000000000e-10 5.051160584363e-01 + 8.528000000000e-10 5.732956921486e-01 + 8.628000000000e-10 5.387645428348e-01 + 8.728000000000e-10 4.207248762860e-01 + 8.828000000000e-10 2.618825805652e-01 + 8.928000000000e-10 9.726427312832e-02 + 9.028000000000e-10 -7.269024640303e-02 + 9.128000000000e-10 -2.524920750937e-01 + 9.228000000000e-10 -4.257908972026e-01 + 9.328000000000e-10 -5.468163600121e-01 + 9.428000000000e-10 -5.706862728602e-01 + 9.528000000000e-10 -4.961873446797e-01 + 9.628000000000e-10 -3.546245289348e-01 + 9.728000000000e-10 -1.912707334797e-01 + 9.828000000000e-10 -2.549745252487e-02 + 9.928000000000e-10 1.490100171927e-01 + 1.000000000000e-09 2.804042562760e-01 diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_12/CML_divider.sym b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_12/CML_divider.sym new file mode 100644 index 00000000..e46eb233 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_12/CML_divider.sym @@ -0,0 +1,30 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 -120 -20 -100 -20 {} +L 4 -120 20 -100 20 {} +L 4 100 -20 120 -20 {} +L 4 100 20 120 20 {} +L 7 0 -60 0 -40 {} +L 7 0 40 0 60 {} +B 5 -122.5 -22.5 -117.5 -17.5 {name=Vo+ dir=out} +B 5 -122.5 17.5 -117.5 22.5 {name=Vo- dir=out} +B 5 117.5 -22.5 122.5 -17.5 {name=Vi+ dir=in} +B 5 117.5 17.5 122.5 22.5 {name=Vi- dir=in} +B 5 -2.5 -62.5 2.5 -57.5 {name=vdd dir=inout} +B 5 -2.5 57.5 2.5 62.5 {name=gnd dir=inout} +P 4 5 100 -40 -100 -40 -100 40 100 40 100 -40 {} +T {@symname} -44 -6 0 0 0.3 0.3 {} +T {@name} 45 -52 0 0 0.2 0.2 {} +T {Vo+} -95 -24 0 0 0.2 0.2 {} +T {Vo-} -95 16 0 0 0.2 0.2 {} +T {Vi+} 95 -16 2 0 0.2 0.2 {} +T {Vi-} 95 24 2 0 0.2 0.2 {} +T {vdd} 10 -39 0 1 0.2 0.2 {} +T {gnd} -10 34 2 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_12/conditions.yaml b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_12/conditions.yaml new file mode 100644 index 00000000..888ce14c --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_12/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice +N: 12 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: tt +filename: CML_core_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_12 +temperature: '27' +vdd: '1.2' diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_13/.spiceinit b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_13/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_13/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_13/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_13/CML_core_tb.sch new file mode 100644 index 00000000..f446017d --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_13/CML_core_tb.sch @@ -0,0 +1,73 @@ +v {xschem version=3.4.8RC file_version=1.3} +G {} +K {} +V {} +S {} +F {} +E {} +N 740 -940 740 -920 {lab=GND} +N 740 -1090 740 -1060 {lab=VDD} +N 600 -1020 620 -1020 {lab=Vinplus} +N 600 -980 620 -980 {lab=Vinminus} +N 860 -1020 880 -1020 {lab=Voplus} +N 860 -980 880 -980 {lab=Vominus} +N 1150 -850 1150 -820 {lab=VDD} +N 1150 -760 1150 -730 {lab=GND} +N 930 -850 930 -820 {lab=Vinminus} +N 930 -760 930 -730 {lab=GND} +N 720 -850 720 -820 {lab=Vinplus} +N 720 -760 720 -730 {lab=GND} +C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.param A=0 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write CML_core_tb.raw +set appendwrite +tran 10p 1n 160p + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_13/CML_core_tb_13.data vo_diff +quit + +.endc +"} +C {opin.sym} 880 -1020 2 1 {name=p6 lab=Voplus} +C {opin.sym} 880 -980 0 0 {name=p9 lab=Vominus} +C {devices/code_shown.sym} 10 -620 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_ff + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice + +.temp 27 +" +} +C {iopin.sym} 740 -1090 0 1 {name=p2 lab=VDD} +C {ipin.sym} 600 -1020 2 1 {name=p4 lab=Vinplus} +C {ipin.sym} 600 -980 2 1 {name=p1 lab=Vinminus} +C {CML_divider.sym} 740 -1000 0 1 {name=x1} +C {vsource.sym} 1150 -790 0 0 {name=V1 value=1.2 savecurrent=false} +C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} +C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} +C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 A 10G 0 0 0)" savecurrent=false} +C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 A 10G 0 0 180)" savecurrent=false} +C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_13/CML_core_tb_13.data b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_13/CML_core_tb_13.data new file mode 100644 index 00000000..8b7e6d70 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_13/CML_core_tb_13.data @@ -0,0 +1,85 @@ + 1.628000000000e-10 5.371025020126e-01 + 1.728000000000e-10 5.671843434062e-01 + 1.828000000000e-10 5.026115974197e-01 + 1.928000000000e-10 3.698761175828e-01 + 2.028000000000e-10 2.107945230966e-01 + 2.128000000000e-10 4.885765443345e-02 + 2.228000000000e-10 -1.214244875766e-01 + 2.328000000000e-10 -3.000962430122e-01 + 2.428000000000e-10 -4.624539664009e-01 + 2.528000000000e-10 -5.578757965231e-01 + 2.628000000000e-10 -5.558325665603e-01 + 2.728000000000e-10 -4.651326499641e-01 + 2.828000000000e-10 -3.191410163203e-01 + 2.928000000000e-10 -1.584099737262e-01 + 3.028000000000e-10 5.260769792198e-03 + 3.128000000000e-10 1.792990320727e-01 + 3.228000000000e-10 3.568297244920e-01 + 3.328000000000e-10 5.033634481423e-01 + 3.428000000000e-10 5.679821613760e-01 + 3.528000000000e-10 5.348129833029e-01 + 3.628000000000e-10 4.215344084463e-01 + 3.728000000000e-10 2.671542738628e-01 + 3.828000000000e-10 1.058757320965e-01 + 3.928000000000e-10 -6.050653364250e-02 + 4.028000000000e-10 -2.376716892488e-01 + 4.128000000000e-10 -4.103945694446e-01 + 4.228000000000e-10 -5.351601037742e-01 + 4.328000000000e-10 -5.676142836602e-01 + 4.428000000000e-10 -5.052568222955e-01 + 4.528000000000e-10 -3.735630033165e-01 + 4.628000000000e-10 -2.147878950708e-01 + 4.728000000000e-10 -5.279672745046e-02 + 4.828000000000e-10 1.170845769200e-01 + 4.928000000000e-10 2.958542242500e-01 + 5.028000000000e-10 4.590288791838e-01 + 5.128000000000e-10 5.567565195036e-01 + 5.228000000000e-10 5.569827168059e-01 + 5.328000000000e-10 4.682426459242e-01 + 5.428000000000e-10 3.229559579659e-01 + 5.528000000000e-10 1.624050480172e-01 + 5.628000000000e-10 -1.216462084933e-03 + 5.728000000000e-10 -1.748700359540e-01 + 5.828000000000e-10 -3.527133673253e-01 + 5.928000000000e-10 -5.005383343433e-01 + 6.028000000000e-10 -5.676419424320e-01 + 6.128000000000e-10 -5.366502150486e-01 + 6.228000000000e-10 -4.250364870874e-01 + 6.328000000000e-10 -2.710292619083e-01 + 6.428000000000e-10 -1.098860218949e-01 + 6.528000000000e-10 5.636178196080e-02 + 6.628000000000e-10 2.332315395616e-01 + 6.728000000000e-10 4.065646248987e-01 + 6.828000000000e-10 5.330713538115e-01 + 6.928000000000e-10 5.680516295798e-01 + 7.028000000000e-10 5.077031668006e-01 + 7.128000000000e-10 3.773236938350e-01 + 7.228000000000e-10 2.186754316018e-01 + 7.328000000000e-10 5.685392835133e-02 + 7.428000000000e-10 -1.128372519467e-01 + 7.528000000000e-10 -2.914707069496e-01 + 7.628000000000e-10 -4.556375739225e-01 + 7.728000000000e-10 -5.554573322047e-01 + 7.828000000000e-10 -5.581623461271e-01 + 7.928000000000e-10 -4.712054490488e-01 + 8.028000000000e-10 -3.268259207673e-01 + 8.128000000000e-10 -1.662806807239e-01 + 8.228000000000e-10 -2.934244527428e-03 + 8.328000000000e-10 1.705229918111e-01 + 8.428000000000e-10 3.484637076667e-01 + 8.528000000000e-10 4.977273630891e-01 + 8.628000000000e-10 5.671286836934e-01 + 8.728000000000e-10 5.384999695443e-01 + 8.828000000000e-10 4.283929102026e-01 + 8.928000000000e-10 2.749581851622e-01 + 9.028000000000e-10 1.137763955641e-01 + 9.128000000000e-10 -5.216954389059e-02 + 9.228000000000e-10 -2.289115148628e-01 + 9.328000000000e-10 -4.026435402191e-01 + 9.428000000000e-10 -5.309621390281e-01 + 9.528000000000e-10 -5.682754939619e-01 + 9.628000000000e-10 -5.101282301777e-01 + 9.728000000000e-10 -3.809401272304e-01 + 9.828000000000e-10 -2.225992291958e-01 + 9.928000000000e-10 -6.078764252406e-02 + 1.000000000000e-09 5.969538211773e-02 diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_13/CML_divider.sym b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_13/CML_divider.sym new file mode 100644 index 00000000..e46eb233 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_13/CML_divider.sym @@ -0,0 +1,30 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 -120 -20 -100 -20 {} +L 4 -120 20 -100 20 {} +L 4 100 -20 120 -20 {} +L 4 100 20 120 20 {} +L 7 0 -60 0 -40 {} +L 7 0 40 0 60 {} +B 5 -122.5 -22.5 -117.5 -17.5 {name=Vo+ dir=out} +B 5 -122.5 17.5 -117.5 22.5 {name=Vo- dir=out} +B 5 117.5 -22.5 122.5 -17.5 {name=Vi+ dir=in} +B 5 117.5 17.5 122.5 22.5 {name=Vi- dir=in} +B 5 -2.5 -62.5 2.5 -57.5 {name=vdd dir=inout} +B 5 -2.5 57.5 2.5 62.5 {name=gnd dir=inout} +P 4 5 100 -40 -100 -40 -100 40 100 40 100 -40 {} +T {@symname} -44 -6 0 0 0.3 0.3 {} +T {@name} 45 -52 0 0 0.2 0.2 {} +T {Vo+} -95 -24 0 0 0.2 0.2 {} +T {Vo-} -95 16 0 0 0.2 0.2 {} +T {Vi+} 95 -16 2 0 0.2 0.2 {} +T {Vi-} 95 24 2 0 0.2 0.2 {} +T {vdd} 10 -39 0 1 0.2 0.2 {} +T {gnd} -10 34 2 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_13/conditions.yaml b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_13/conditions.yaml new file mode 100644 index 00000000..ab043f8b --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_13/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice +N: 13 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: ff +filename: CML_core_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_13 +temperature: '27' +vdd: '1.2' diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_14/.spiceinit b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_14/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_14/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_14/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_14/CML_core_tb.sch new file mode 100644 index 00000000..98f70c99 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_14/CML_core_tb.sch @@ -0,0 +1,73 @@ +v {xschem version=3.4.8RC file_version=1.3} +G {} +K {} +V {} +S {} +F {} +E {} +N 740 -940 740 -920 {lab=GND} +N 740 -1090 740 -1060 {lab=VDD} +N 600 -1020 620 -1020 {lab=Vinplus} +N 600 -980 620 -980 {lab=Vinminus} +N 860 -1020 880 -1020 {lab=Voplus} +N 860 -980 880 -980 {lab=Vominus} +N 1150 -850 1150 -820 {lab=VDD} +N 1150 -760 1150 -730 {lab=GND} +N 930 -850 930 -820 {lab=Vinminus} +N 930 -760 930 -730 {lab=GND} +N 720 -850 720 -820 {lab=Vinplus} +N 720 -760 720 -730 {lab=GND} +C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.param A=0 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write CML_core_tb.raw +set appendwrite +tran 10p 1n 160p + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_14/CML_core_tb_14.data vo_diff +quit + +.endc +"} +C {opin.sym} 880 -1020 2 1 {name=p6 lab=Voplus} +C {opin.sym} 880 -980 0 0 {name=p9 lab=Vominus} +C {devices/code_shown.sym} 10 -620 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_ss + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice + +.temp 27 +" +} +C {iopin.sym} 740 -1090 0 1 {name=p2 lab=VDD} +C {ipin.sym} 600 -1020 2 1 {name=p4 lab=Vinplus} +C {ipin.sym} 600 -980 2 1 {name=p1 lab=Vinminus} +C {CML_divider.sym} 740 -1000 0 1 {name=x1} +C {vsource.sym} 1150 -790 0 0 {name=V1 value=1.2 savecurrent=false} +C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} +C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} +C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 A 10G 0 0 0)" savecurrent=false} +C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 A 10G 0 0 180)" savecurrent=false} +C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_14/CML_core_tb_14.data b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_14/CML_core_tb_14.data new file mode 100644 index 00000000..e2d4a86a --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_14/CML_core_tb_14.data @@ -0,0 +1,85 @@ + 1.628000000000e-10 5.685994494077e-01 + 1.728000000000e-10 5.680033173677e-01 + 1.828000000000e-10 4.702563674856e-01 + 1.928000000000e-10 3.158730593689e-01 + 2.028000000000e-10 1.495129091369e-01 + 2.128000000000e-10 -1.953292317378e-02 + 2.228000000000e-10 -1.985217743373e-01 + 2.328000000000e-10 -3.791996140847e-01 + 2.428000000000e-10 -5.257312756755e-01 + 2.528000000000e-10 -5.827082806958e-01 + 2.628000000000e-10 -5.336126237469e-01 + 2.728000000000e-10 -4.031247045394e-01 + 2.828000000000e-10 -2.394215940201e-01 + 2.928000000000e-10 -7.255659698483e-02 + 3.028000000000e-10 1.005529440013e-01 + 3.128000000000e-10 2.828780215576e-01 + 3.228000000000e-10 4.542894564617e-01 + 3.328000000000e-10 5.653036008536e-01 + 3.428000000000e-10 5.725850512251e-01 + 3.528000000000e-10 4.810772025614e-01 + 3.628000000000e-10 3.289224425154e-01 + 3.728000000000e-10 1.627522206878e-01 + 3.828000000000e-10 -5.901236406385e-03 + 3.928000000000e-10 -1.839457166775e-01 + 4.028000000000e-10 -3.655051783869e-01 + 4.128000000000e-10 -5.167269598088e-01 + 4.228000000000e-10 -5.822517587470e-01 + 4.328000000000e-10 -5.410257088985e-01 + 4.428000000000e-10 -4.155309597132e-01 + 4.528000000000e-10 -2.526519838626e-01 + 4.628000000000e-10 -8.602442024441e-02 + 4.728000000000e-10 8.639716695153e-02 + 4.828000000000e-10 2.682378418749e-01 + 4.928000000000e-10 4.420446926342e-01 + 5.028000000000e-10 5.599611899078e-01 + 5.128000000000e-10 5.759765965943e-01 + 5.228000000000e-10 4.911677219482e-01 + 5.328000000000e-10 3.420625461523e-01 + 5.428000000000e-10 1.759664901080e-01 + 5.528000000000e-10 7.881982455238e-03 + 5.628000000000e-10 -1.694304774333e-01 + 5.728000000000e-10 -3.514381880500e-01 + 5.828000000000e-10 -5.071893150425e-01 + 5.928000000000e-10 -5.809527514514e-01 + 6.028000000000e-10 -5.479847244619e-01 + 6.128000000000e-10 -4.275846591595e-01 + 6.228000000000e-10 -2.659766117963e-01 + 6.328000000000e-10 -9.933722257759e-02 + 6.428000000000e-10 7.221956138870e-02 + 6.528000000000e-10 2.536833280759e-01 + 6.628000000000e-10 4.293709903854e-01 + 6.728000000000e-10 5.540487051204e-01 + 6.828000000000e-10 5.786193688372e-01 + 6.928000000000e-10 5.009476225142e-01 + 7.028000000000e-10 3.550417804446e-01 + 7.128000000000e-10 1.892841058759e-01 + 7.228000000000e-10 2.151387736973e-02 + 7.328000000000e-10 -1.548540580094e-01 + 7.428000000000e-10 -3.373021911532e-01 + 7.528000000000e-10 -4.969984208918e-01 + 7.628000000000e-10 -5.790298461209e-01 + 7.728000000000e-10 -5.542735467165e-01 + 7.828000000000e-10 -4.394491668012e-01 + 7.928000000000e-10 -2.791980749240e-01 + 8.028000000000e-10 -1.126948717144e-01 + 8.128000000000e-10 5.821099623132e-02 + 8.228000000000e-10 2.390333865018e-01 + 8.328000000000e-10 4.164796242174e-01 + 8.428000000000e-10 5.474016405952e-01 + 8.528000000000e-10 5.806820904512e-01 + 8.628000000000e-10 5.102199864307e-01 + 8.728000000000e-10 3.680116262167e-01 + 8.828000000000e-10 2.025355376563e-01 + 8.928000000000e-10 3.516640628822e-02 + 9.028000000000e-10 -1.404006287987e-01 + 9.128000000000e-10 -3.229571323578e-01 + 9.228000000000e-10 -4.863481312502e-01 + 9.328000000000e-10 -5.763266230399e-01 + 9.428000000000e-10 -5.600311989004e-01 + 9.528000000000e-10 -4.509360688916e-01 + 9.628000000000e-10 -2.924638512409e-01 + 9.728000000000e-10 -1.259546505516e-01 + 9.828000000000e-10 4.421130530697e-02 + 9.928000000000e-10 2.244486902223e-01 + 1.000000000000e-09 3.563189549212e-01 diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_14/CML_divider.sym b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_14/CML_divider.sym new file mode 100644 index 00000000..e46eb233 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_14/CML_divider.sym @@ -0,0 +1,30 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 -120 -20 -100 -20 {} +L 4 -120 20 -100 20 {} +L 4 100 -20 120 -20 {} +L 4 100 20 120 20 {} +L 7 0 -60 0 -40 {} +L 7 0 40 0 60 {} +B 5 -122.5 -22.5 -117.5 -17.5 {name=Vo+ dir=out} +B 5 -122.5 17.5 -117.5 22.5 {name=Vo- dir=out} +B 5 117.5 -22.5 122.5 -17.5 {name=Vi+ dir=in} +B 5 117.5 17.5 122.5 22.5 {name=Vi- dir=in} +B 5 -2.5 -62.5 2.5 -57.5 {name=vdd dir=inout} +B 5 -2.5 57.5 2.5 62.5 {name=gnd dir=inout} +P 4 5 100 -40 -100 -40 -100 40 100 40 100 -40 {} +T {@symname} -44 -6 0 0 0.3 0.3 {} +T {@name} 45 -52 0 0 0.2 0.2 {} +T {Vo+} -95 -24 0 0 0.2 0.2 {} +T {Vo-} -95 16 0 0 0.2 0.2 {} +T {Vi+} 95 -16 2 0 0.2 0.2 {} +T {Vi-} 95 24 2 0 0.2 0.2 {} +T {vdd} 10 -39 0 1 0.2 0.2 {} +T {gnd} -10 34 2 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_14/conditions.yaml b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_14/conditions.yaml new file mode 100644 index 00000000..f3906847 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_14/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice +N: 14 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: ss +filename: CML_core_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_14 +temperature: '27' +vdd: '1.2' diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_15/.spiceinit b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_15/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_15/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_15/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_15/CML_core_tb.sch new file mode 100644 index 00000000..ee3209dd --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_15/CML_core_tb.sch @@ -0,0 +1,73 @@ +v {xschem version=3.4.8RC file_version=1.3} +G {} +K {} +V {} +S {} +F {} +E {} +N 740 -940 740 -920 {lab=GND} +N 740 -1090 740 -1060 {lab=VDD} +N 600 -1020 620 -1020 {lab=Vinplus} +N 600 -980 620 -980 {lab=Vinminus} +N 860 -1020 880 -1020 {lab=Voplus} +N 860 -980 880 -980 {lab=Vominus} +N 1150 -850 1150 -820 {lab=VDD} +N 1150 -760 1150 -730 {lab=GND} +N 930 -850 930 -820 {lab=Vinminus} +N 930 -760 930 -730 {lab=GND} +N 720 -850 720 -820 {lab=Vinplus} +N 720 -760 720 -730 {lab=GND} +C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.param A=0 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write CML_core_tb.raw +set appendwrite +tran 10p 1n 160p + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_15/CML_core_tb_15.data vo_diff +quit + +.endc +"} +C {opin.sym} 880 -1020 2 1 {name=p6 lab=Voplus} +C {opin.sym} 880 -980 0 0 {name=p9 lab=Vominus} +C {devices/code_shown.sym} 10 -620 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_tt + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice + +.temp 80 +" +} +C {iopin.sym} 740 -1090 0 1 {name=p2 lab=VDD} +C {ipin.sym} 600 -1020 2 1 {name=p4 lab=Vinplus} +C {ipin.sym} 600 -980 2 1 {name=p1 lab=Vinminus} +C {CML_divider.sym} 740 -1000 0 1 {name=x1} +C {vsource.sym} 1150 -790 0 0 {name=V1 value=1.2 savecurrent=false} +C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} +C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} +C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 A 10G 0 0 0)" savecurrent=false} +C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 A 10G 0 0 180)" savecurrent=false} +C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_15/CML_core_tb_15.data b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_15/CML_core_tb_15.data new file mode 100644 index 00000000..2e85e4e6 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_15/CML_core_tb_15.data @@ -0,0 +1,85 @@ + 1.628000000000e-10 5.344960387987e-01 + 1.728000000000e-10 5.452560643354e-01 + 1.828000000000e-10 4.673129977556e-01 + 1.928000000000e-10 3.303067915845e-01 + 2.028000000000e-10 1.707484920037e-01 + 2.128000000000e-10 5.181087662118e-03 + 2.228000000000e-10 -1.675494404811e-01 + 2.328000000000e-10 -3.401592495055e-01 + 2.428000000000e-10 -4.829519141621e-01 + 2.528000000000e-10 -5.505340174514e-01 + 2.628000000000e-10 -5.235059140976e-01 + 2.728000000000e-10 -4.172147065113e-01 + 2.828000000000e-10 -2.674081541308e-01 + 2.928000000000e-10 -1.048630150144e-01 + 3.028000000000e-10 6.333682141777e-02 + 3.128000000000e-10 2.380835653681e-01 + 3.228000000000e-10 4.036717768786e-01 + 3.328000000000e-10 5.212857330835e-01 + 3.428000000000e-10 5.508388819728e-01 + 3.528000000000e-10 4.886846456314e-01 + 3.628000000000e-10 3.600535598894e-01 + 3.728000000000e-10 2.028200071044e-01 + 3.828000000000e-10 3.817873185626e-02 + 3.928000000000e-10 -1.330304531359e-01 + 4.028000000000e-10 -3.073574559208e-01 + 4.128000000000e-10 -4.594561993841e-01 + 4.228000000000e-10 -5.448052398968e-01 + 4.328000000000e-10 -5.359418383134e-01 + 4.428000000000e-10 -4.429420179764e-01 + 4.528000000000e-10 -2.984950838016e-01 + 4.628000000000e-10 -1.373019478795e-01 + 4.728000000000e-10 2.965174653267e-02 + 4.828000000000e-10 2.035061242558e-01 + 4.928000000000e-10 3.733469326425e-01 + 5.028000000000e-10 5.041915675507e-01 + 5.128000000000e-10 5.527110611332e-01 + 5.228000000000e-10 5.072274444340e-01 + 5.328000000000e-10 3.888403459299e-01 + 5.428000000000e-10 2.345873591410e-01 + 5.528000000000e-10 7.106266792034e-02 + 5.628000000000e-10 -9.874543593339e-02 + 5.728000000000e-10 -2.735849121761e-01 + 5.828000000000e-10 -4.333235700941e-01 + 5.928000000000e-10 -5.351812080818e-01 + 6.028000000000e-10 -5.451422835470e-01 + 6.128000000000e-10 -4.665505412081e-01 + 6.228000000000e-10 -3.291302258797e-01 + 6.328000000000e-10 -1.694802467479e-01 + 6.428000000000e-10 -3.821233014841e-03 + 6.528000000000e-10 1.689419826635e-01 + 6.628000000000e-10 3.414985173658e-01 + 6.728000000000e-10 4.838530688650e-01 + 6.828000000000e-10 5.507420108834e-01 + 6.928000000000e-10 5.229758848356e-01 + 7.028000000000e-10 4.162178351163e-01 + 7.128000000000e-10 2.661956516874e-01 + 7.228000000000e-10 1.036319474485e-01 + 7.328000000000e-10 -6.464764646601e-02 + 7.428000000000e-10 -2.393878849216e-01 + 7.528000000000e-10 -4.048132784755e-01 + 7.628000000000e-10 -5.218578949147e-01 + 7.728000000000e-10 -5.507107181542e-01 + 7.828000000000e-10 -4.879111720627e-01 + 7.928000000000e-10 -3.589466891516e-01 + 8.028000000000e-10 -2.015905948669e-01 + 8.128000000000e-10 -3.693360096320e-02 + 8.228000000000e-10 1.343543548759e-01 + 8.328000000000e-10 3.086174200492e-01 + 8.428000000000e-10 4.604141752903e-01 + 8.528000000000e-10 5.450873437482e-01 + 8.628000000000e-10 5.355380307875e-01 + 8.728000000000e-10 4.419896176703e-01 + 8.828000000000e-10 2.973286305239e-01 + 8.928000000000e-10 1.360616231662e-01 + 9.028000000000e-10 -3.092064447201e-02 + 9.128000000000e-10 -2.048337989979e-01 + 9.228000000000e-10 -3.745222574082e-01 + 9.328000000000e-10 -5.049124474742e-01 + 9.428000000000e-10 -5.526994993257e-01 + 9.528000000000e-10 -5.065798817364e-01 + 9.628000000000e-10 -3.877585771317e-01 + 9.728000000000e-10 -2.333895166498e-01 + 9.828000000000e-10 -6.980875104219e-02 + 9.928000000000e-10 1.000379638374e-01 + 1.000000000000e-09 2.266578768883e-01 diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_15/CML_divider.sym b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_15/CML_divider.sym new file mode 100644 index 00000000..e46eb233 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_15/CML_divider.sym @@ -0,0 +1,30 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 -120 -20 -100 -20 {} +L 4 -120 20 -100 20 {} +L 4 100 -20 120 -20 {} +L 4 100 20 120 20 {} +L 7 0 -60 0 -40 {} +L 7 0 40 0 60 {} +B 5 -122.5 -22.5 -117.5 -17.5 {name=Vo+ dir=out} +B 5 -122.5 17.5 -117.5 22.5 {name=Vo- dir=out} +B 5 117.5 -22.5 122.5 -17.5 {name=Vi+ dir=in} +B 5 117.5 17.5 122.5 22.5 {name=Vi- dir=in} +B 5 -2.5 -62.5 2.5 -57.5 {name=vdd dir=inout} +B 5 -2.5 57.5 2.5 62.5 {name=gnd dir=inout} +P 4 5 100 -40 -100 -40 -100 40 100 40 100 -40 {} +T {@symname} -44 -6 0 0 0.3 0.3 {} +T {@name} 45 -52 0 0 0.2 0.2 {} +T {Vo+} -95 -24 0 0 0.2 0.2 {} +T {Vo-} -95 16 0 0 0.2 0.2 {} +T {Vi+} 95 -16 2 0 0.2 0.2 {} +T {Vi-} 95 24 2 0 0.2 0.2 {} +T {vdd} 10 -39 0 1 0.2 0.2 {} +T {gnd} -10 34 2 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_15/conditions.yaml b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_15/conditions.yaml new file mode 100644 index 00000000..37399e5f --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_15/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice +N: 15 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: tt +filename: CML_core_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_15 +temperature: '80' +vdd: '1.2' diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_16/.spiceinit b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_16/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_16/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_16/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_16/CML_core_tb.sch new file mode 100644 index 00000000..82789548 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_16/CML_core_tb.sch @@ -0,0 +1,73 @@ +v {xschem version=3.4.8RC file_version=1.3} +G {} +K {} +V {} +S {} +F {} +E {} +N 740 -940 740 -920 {lab=GND} +N 740 -1090 740 -1060 {lab=VDD} +N 600 -1020 620 -1020 {lab=Vinplus} +N 600 -980 620 -980 {lab=Vinminus} +N 860 -1020 880 -1020 {lab=Voplus} +N 860 -980 880 -980 {lab=Vominus} +N 1150 -850 1150 -820 {lab=VDD} +N 1150 -760 1150 -730 {lab=GND} +N 930 -850 930 -820 {lab=Vinminus} +N 930 -760 930 -730 {lab=GND} +N 720 -850 720 -820 {lab=Vinplus} +N 720 -760 720 -730 {lab=GND} +C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.param A=0 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write CML_core_tb.raw +set appendwrite +tran 10p 1n 160p + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_16/CML_core_tb_16.data vo_diff +quit + +.endc +"} +C {opin.sym} 880 -1020 2 1 {name=p6 lab=Voplus} +C {opin.sym} 880 -980 0 0 {name=p9 lab=Vominus} +C {devices/code_shown.sym} 10 -620 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_ff + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice + +.temp 80 +" +} +C {iopin.sym} 740 -1090 0 1 {name=p2 lab=VDD} +C {ipin.sym} 600 -1020 2 1 {name=p4 lab=Vinplus} +C {ipin.sym} 600 -980 2 1 {name=p1 lab=Vinminus} +C {CML_divider.sym} 740 -1000 0 1 {name=x1} +C {vsource.sym} 1150 -790 0 0 {name=V1 value=1.2 savecurrent=false} +C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} +C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} +C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 A 10G 0 0 0)" savecurrent=false} +C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 A 10G 0 0 180)" savecurrent=false} +C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_16/CML_core_tb_16.data b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_16/CML_core_tb_16.data new file mode 100644 index 00000000..f9e049c3 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_16/CML_core_tb_16.data @@ -0,0 +1,85 @@ + 1.628000000000e-10 5.180119885725e-01 + 1.728000000000e-10 5.428150273087e-01 + 1.828000000000e-10 4.804584228924e-01 + 1.928000000000e-10 3.549741441244e-01 + 2.028000000000e-10 2.010895036379e-01 + 2.128000000000e-10 3.990849152816e-02 + 2.228000000000e-10 -1.285229050412e-01 + 2.328000000000e-10 -3.004511766915e-01 + 2.428000000000e-10 -4.509267588359e-01 + 2.528000000000e-10 -5.360472886334e-01 + 2.628000000000e-10 -5.308476150918e-01 + 2.728000000000e-10 -4.442065506601e-01 + 2.828000000000e-10 -3.056124141550e-01 + 2.928000000000e-10 -1.482443277933e-01 + 3.028000000000e-10 1.494851437600e-02 + 3.128000000000e-10 1.858420503105e-01 + 3.228000000000e-10 3.546289687231e-01 + 3.328000000000e-10 4.884116146647e-01 + 3.428000000000e-10 5.444051327513e-01 + 3.528000000000e-10 5.100351620157e-01 + 3.628000000000e-10 4.021886871948e-01 + 3.728000000000e-10 2.543879635859e-01 + 3.828000000000e-10 9.485214544103e-02 + 3.928000000000e-10 -7.075032672641e-02 + 4.028000000000e-10 -2.431563423365e-01 + 4.128000000000e-10 -4.051321357110e-01 + 4.228000000000e-10 -5.170375321361e-01 + 4.328000000000e-10 -5.425914254342e-01 + 4.428000000000e-10 -4.810164877195e-01 + 4.528000000000e-10 -3.557735325851e-01 + 4.628000000000e-10 -2.021049505527e-01 + 4.728000000000e-10 -4.082726638447e-02 + 4.828000000000e-10 1.274525546110e-01 + 4.928000000000e-10 2.995340763584e-01 + 5.028000000000e-10 4.501478854236e-01 + 5.128000000000e-10 5.358688831659e-01 + 5.228000000000e-10 5.310853197453e-01 + 5.328000000000e-10 4.449536567085e-01 + 5.428000000000e-10 3.064466861380e-01 + 5.528000000000e-10 1.492307891452e-01 + 5.628000000000e-10 -1.402970778054e-02 + 5.728000000000e-10 -1.847805764035e-01 + 5.828000000000e-10 -3.537555851935e-01 + 5.928000000000e-10 -4.877779299846e-01 + 6.028000000000e-10 -5.443965298452e-01 + 6.128000000000e-10 -5.104273583024e-01 + 6.228000000000e-10 -4.030190625192e-01 + 6.328000000000e-10 -2.552526844497e-01 + 6.428000000000e-10 -9.584365232983e-02 + 6.528000000000e-10 6.980767621840e-02 + 6.628000000000e-10 2.421063163491e-01 + 6.728000000000e-10 4.043299670627e-01 + 6.828000000000e-10 5.165725259787e-01 + 6.928000000000e-10 5.427511708711e-01 + 7.028000000000e-10 4.815471993596e-01 + 7.128000000000e-10 3.566618958690e-01 + 7.228000000000e-10 2.029878940739e-01 + 7.328000000000e-10 4.182623114247e-02 + 7.428000000000e-10 -1.264911878621e-01 + 7.528000000000e-10 -2.985161336122e-01 + 7.628000000000e-10 -4.494546695817e-01 + 7.728000000000e-10 -5.355872510690e-01 + 7.828000000000e-10 -5.314076392591e-01 + 7.928000000000e-10 -4.456031332240e-01 + 8.028000000000e-10 -3.073711989751e-01 + 8.128000000000e-10 -1.501267367277e-01 + 8.228000000000e-10 1.301977512060e-02 + 8.328000000000e-10 1.838083734602e-01 + 8.428000000000e-10 3.527931139928e-01 + 8.528000000000e-10 4.872248737515e-01 + 8.628000000000e-10 5.443010344572e-01 + 8.728000000000e-10 5.108995141754e-01 + 8.828000000000e-10 4.037638610128e-01 + 8.928000000000e-10 2.561974779182e-01 + 9.028000000000e-10 9.675266685198e-02 + 9.128000000000e-10 -6.878530852337e-02 + 9.228000000000e-10 -2.411372387693e-01 + 9.328000000000e-10 -4.034503900353e-01 + 9.428000000000e-10 -5.161800098612e-01 + 9.528000000000e-10 -5.428337693361e-01 + 9.628000000000e-10 -4.821501423095e-01 + 9.728000000000e-10 -3.574746220144e-01 + 9.828000000000e-10 -2.039425985968e-01 + 9.928000000000e-10 -4.275126436145e-02 + 1.000000000000e-09 7.745091708332e-02 diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_16/CML_divider.sym b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_16/CML_divider.sym new file mode 100644 index 00000000..e46eb233 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_16/CML_divider.sym @@ -0,0 +1,30 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 -120 -20 -100 -20 {} +L 4 -120 20 -100 20 {} +L 4 100 -20 120 -20 {} +L 4 100 20 120 20 {} +L 7 0 -60 0 -40 {} +L 7 0 40 0 60 {} +B 5 -122.5 -22.5 -117.5 -17.5 {name=Vo+ dir=out} +B 5 -122.5 17.5 -117.5 22.5 {name=Vo- dir=out} +B 5 117.5 -22.5 122.5 -17.5 {name=Vi+ dir=in} +B 5 117.5 17.5 122.5 22.5 {name=Vi- dir=in} +B 5 -2.5 -62.5 2.5 -57.5 {name=vdd dir=inout} +B 5 -2.5 57.5 2.5 62.5 {name=gnd dir=inout} +P 4 5 100 -40 -100 -40 -100 40 100 40 100 -40 {} +T {@symname} -44 -6 0 0 0.3 0.3 {} +T {@name} 45 -52 0 0 0.2 0.2 {} +T {Vo+} -95 -24 0 0 0.2 0.2 {} +T {Vo-} -95 16 0 0 0.2 0.2 {} +T {Vi+} 95 -16 2 0 0.2 0.2 {} +T {Vi-} 95 24 2 0 0.2 0.2 {} +T {vdd} 10 -39 0 1 0.2 0.2 {} +T {gnd} -10 34 2 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_16/conditions.yaml b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_16/conditions.yaml new file mode 100644 index 00000000..fd6ef12a --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_16/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice +N: 16 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: ff +filename: CML_core_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_16 +temperature: '80' +vdd: '1.2' diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_17/.spiceinit b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_17/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_17/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_17/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_17/CML_core_tb.sch new file mode 100644 index 00000000..61ee9699 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_17/CML_core_tb.sch @@ -0,0 +1,73 @@ +v {xschem version=3.4.8RC file_version=1.3} +G {} +K {} +V {} +S {} +F {} +E {} +N 740 -940 740 -920 {lab=GND} +N 740 -1090 740 -1060 {lab=VDD} +N 600 -1020 620 -1020 {lab=Vinplus} +N 600 -980 620 -980 {lab=Vinminus} +N 860 -1020 880 -1020 {lab=Voplus} +N 860 -980 880 -980 {lab=Vominus} +N 1150 -850 1150 -820 {lab=VDD} +N 1150 -760 1150 -730 {lab=GND} +N 930 -850 930 -820 {lab=Vinminus} +N 930 -760 930 -730 {lab=GND} +N 720 -850 720 -820 {lab=Vinplus} +N 720 -760 720 -730 {lab=GND} +C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.param A=0 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write CML_core_tb.raw +set appendwrite +tran 10p 1n 160p + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_17/CML_core_tb_17.data vo_diff +quit + +.endc +"} +C {opin.sym} 880 -1020 2 1 {name=p6 lab=Voplus} +C {opin.sym} 880 -980 0 0 {name=p9 lab=Vominus} +C {devices/code_shown.sym} 10 -620 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_ss + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice + +.temp 80 +" +} +C {iopin.sym} 740 -1090 0 1 {name=p2 lab=VDD} +C {ipin.sym} 600 -1020 2 1 {name=p4 lab=Vinplus} +C {ipin.sym} 600 -980 2 1 {name=p1 lab=Vinminus} +C {CML_divider.sym} 740 -1000 0 1 {name=x1} +C {vsource.sym} 1150 -790 0 0 {name=V1 value=1.2 savecurrent=false} +C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} +C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} +C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 A 10G 0 0 0)" savecurrent=false} +C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 A 10G 0 0 180)" savecurrent=false} +C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_17/CML_core_tb_17.data b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_17/CML_core_tb_17.data new file mode 100644 index 00000000..c30d205a --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_17/CML_core_tb_17.data @@ -0,0 +1,85 @@ + 1.628000000000e-10 5.463781676649e-01 + 1.728000000000e-10 5.536807365176e-01 + 1.828000000000e-10 4.700770949122e-01 + 1.928000000000e-10 3.283560096374e-01 + 2.028000000000e-10 1.661765018961e-01 + 2.128000000000e-10 -1.672370944420e-03 + 2.228000000000e-10 -1.765606556303e-01 + 2.328000000000e-10 -3.508537683178e-01 + 2.428000000000e-10 -4.950313094104e-01 + 2.528000000000e-10 -5.620298540958e-01 + 2.628000000000e-10 -5.312461007842e-01 + 2.728000000000e-10 -4.198540992456e-01 + 2.828000000000e-10 -2.664960217947e-01 + 2.928000000000e-10 -1.016301612782e-01 + 3.028000000000e-10 6.876015467442e-02 + 3.128000000000e-10 2.454396012797e-01 + 3.228000000000e-10 4.129162458203e-01 + 3.328000000000e-10 5.323840357395e-01 + 3.428000000000e-10 5.614013358642e-01 + 3.528000000000e-10 4.957648642518e-01 + 3.628000000000e-10 3.630462655612e-01 + 3.728000000000e-10 2.031966960814e-01 + 3.828000000000e-10 3.641362117762e-02 + 3.928000000000e-10 -1.368114278219e-01 + 4.028000000000e-10 -3.130570983897e-01 + 4.128000000000e-10 -4.678223855211e-01 + 4.228000000000e-10 -5.556303003937e-01 + 4.328000000000e-10 -5.462642326143e-01 + 4.428000000000e-10 -4.501399217455e-01 + 4.528000000000e-10 -3.025339874182e-01 + 4.628000000000e-10 -1.391211386078e-01 + 4.728000000000e-10 2.985973753259e-02 + 4.828000000000e-10 2.055652009596e-01 + 4.928000000000e-10 3.777164222946e-01 + 5.028000000000e-10 5.123237313715e-01 + 5.128000000000e-10 5.636674481973e-01 + 5.228000000000e-10 5.176804469731e-01 + 5.328000000000e-10 3.966493941254e-01 + 5.428000000000e-10 2.399755060346e-01 + 5.528000000000e-10 7.439347821169e-02 + 5.628000000000e-10 -9.728144141853e-02 + 5.728000000000e-10 -2.740298162715e-01 + 5.828000000000e-10 -4.370863804142e-01 + 5.928000000000e-10 -5.439077566444e-01 + 6.028000000000e-10 -5.568064057279e-01 + 6.128000000000e-10 -4.776550720163e-01 + 6.228000000000e-10 -3.379986837372e-01 + 6.328000000000e-10 -1.763039651121e-01 + 6.428000000000e-10 -8.754956992321e-03 + 6.528000000000e-10 1.657016199867e-01 + 6.628000000000e-10 3.406597684088e-01 + 6.728000000000e-10 4.880038370068e-01 + 6.828000000000e-10 5.608300027041e-01 + 6.928000000000e-10 5.358420893635e-01 + 7.028000000000e-10 4.284358145311e-01 + 7.128000000000e-10 2.764778248798e-01 + 7.228000000000e-10 1.119749819386e-01 + 7.328000000000e-10 -5.800762940386e-02 + 7.428000000000e-10 -2.344840217603e-01 + 7.528000000000e-10 -4.034266117712e-01 + 7.628000000000e-10 -5.273160770028e-01 + 7.728000000000e-10 -5.625139938790e-01 + 7.828000000000e-10 -5.021596064605e-01 + 7.928000000000e-10 -3.724404268933e-01 + 8.028000000000e-10 -2.133571863679e-01 + 8.128000000000e-10 -4.690703294164e-02 + 8.228000000000e-10 1.258913504065e-01 + 8.328000000000e-10 3.023910361449e-01 + 8.428000000000e-10 4.596790829686e-01 + 8.528000000000e-10 5.529129573994e-01 + 8.628000000000e-10 5.496313201411e-01 + 8.728000000000e-10 4.580052762854e-01 + 8.828000000000e-10 3.123772721548e-01 + 8.928000000000e-10 1.493839199912e-01 + 9.028000000000e-10 -1.918666707897e-02 + 9.128000000000e-10 -1.945822922857e-01 + 9.228000000000e-10 -3.676654591511e-01 + 9.328000000000e-10 -5.060424720484e-01 + 9.428000000000e-10 -5.633948067326e-01 + 9.528000000000e-10 -5.230854707832e-01 + 9.628000000000e-10 -4.056020491363e-01 + 9.728000000000e-10 -2.500708181275e-01 + 9.828000000000e-10 -8.477389482638e-02 + 9.928000000000e-10 8.642889056701e-02 + 1.000000000000e-09 2.140970415562e-01 diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_17/CML_divider.sym b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_17/CML_divider.sym new file mode 100644 index 00000000..e46eb233 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_17/CML_divider.sym @@ -0,0 +1,30 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 -120 -20 -100 -20 {} +L 4 -120 20 -100 20 {} +L 4 100 -20 120 -20 {} +L 4 100 20 120 20 {} +L 7 0 -60 0 -40 {} +L 7 0 40 0 60 {} +B 5 -122.5 -22.5 -117.5 -17.5 {name=Vo+ dir=out} +B 5 -122.5 17.5 -117.5 22.5 {name=Vo- dir=out} +B 5 117.5 -22.5 122.5 -17.5 {name=Vi+ dir=in} +B 5 117.5 17.5 122.5 22.5 {name=Vi- dir=in} +B 5 -2.5 -62.5 2.5 -57.5 {name=vdd dir=inout} +B 5 -2.5 57.5 2.5 62.5 {name=gnd dir=inout} +P 4 5 100 -40 -100 -40 -100 40 100 40 100 -40 {} +T {@symname} -44 -6 0 0 0.3 0.3 {} +T {@name} 45 -52 0 0 0.2 0.2 {} +T {Vo+} -95 -24 0 0 0.2 0.2 {} +T {Vo-} -95 16 0 0 0.2 0.2 {} +T {Vi+} 95 -16 2 0 0.2 0.2 {} +T {Vi-} 95 24 2 0 0.2 0.2 {} +T {vdd} 10 -39 0 1 0.2 0.2 {} +T {gnd} -10 34 2 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_17/conditions.yaml b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_17/conditions.yaml new file mode 100644 index 00000000..c181174b --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_17/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice +N: 17 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: ss +filename: CML_core_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_17 +temperature: '80' +vdd: '1.2' diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_18/.spiceinit b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_18/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_18/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_18/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_18/CML_core_tb.sch new file mode 100644 index 00000000..daf632f5 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_18/CML_core_tb.sch @@ -0,0 +1,73 @@ +v {xschem version=3.4.8RC file_version=1.3} +G {} +K {} +V {} +S {} +F {} +E {} +N 740 -940 740 -920 {lab=GND} +N 740 -1090 740 -1060 {lab=VDD} +N 600 -1020 620 -1020 {lab=Vinplus} +N 600 -980 620 -980 {lab=Vinminus} +N 860 -1020 880 -1020 {lab=Voplus} +N 860 -980 880 -980 {lab=Vominus} +N 1150 -850 1150 -820 {lab=VDD} +N 1150 -760 1150 -730 {lab=GND} +N 930 -850 930 -820 {lab=Vinminus} +N 930 -760 930 -730 {lab=GND} +N 720 -850 720 -820 {lab=Vinplus} +N 720 -760 720 -730 {lab=GND} +C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.param A=0 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write CML_core_tb.raw +set appendwrite +tran 10p 1n 160p + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_18/CML_core_tb_18.data vo_diff +quit + +.endc +"} +C {opin.sym} 880 -1020 2 1 {name=p6 lab=Voplus} +C {opin.sym} 880 -980 0 0 {name=p9 lab=Vominus} +C {devices/code_shown.sym} 10 -620 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_tt + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice + +.temp -40 +" +} +C {iopin.sym} 740 -1090 0 1 {name=p2 lab=VDD} +C {ipin.sym} 600 -1020 2 1 {name=p4 lab=Vinplus} +C {ipin.sym} 600 -980 2 1 {name=p1 lab=Vinminus} +C {CML_divider.sym} 740 -1000 0 1 {name=x1} +C {vsource.sym} 1150 -790 0 0 {name=V1 value=1.6 savecurrent=false} +C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} +C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} +C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 A 10G 0 0 0)" savecurrent=false} +C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 A 10G 0 0 180)" savecurrent=false} +C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_18/CML_core_tb_18.data b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_18/CML_core_tb_18.data new file mode 100644 index 00000000..cc7811c4 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_18/CML_core_tb_18.data @@ -0,0 +1,85 @@ + 1.628000000000e-10 -5.311365518451e-01 + 1.728000000000e-10 -5.592957758203e-01 + 1.828000000000e-10 -4.797488633791e-01 + 1.928000000000e-10 -3.322306134120e-01 + 2.028000000000e-10 -1.729422319394e-01 + 2.128000000000e-10 -1.699345238010e-02 + 2.228000000000e-10 1.494505024445e-01 + 2.328000000000e-10 3.277321819870e-01 + 2.428000000000e-10 4.870149438745e-01 + 2.528000000000e-10 5.631997225486e-01 + 2.628000000000e-10 5.268554024906e-01 + 2.728000000000e-10 4.016412888170e-01 + 2.828000000000e-10 2.419982611570e-01 + 2.928000000000e-10 8.556825878920e-02 + 3.028000000000e-10 -7.465365168675e-02 + 3.128000000000e-10 -2.494948470587e-01 + 3.228000000000e-10 -4.232379127345e-01 + 3.328000000000e-10 -5.434286569117e-01 + 3.428000000000e-10 -5.557093238954e-01 + 3.528000000000e-10 -4.638334293452e-01 + 3.628000000000e-10 -3.116470017089e-01 + 3.728000000000e-10 -1.529016666152e-01 + 3.828000000000e-10 3.530326886623e-03 + 3.928000000000e-10 1.720120307534e-01 + 4.028000000000e-10 3.502496598539e-01 + 4.128000000000e-10 5.026743598077e-01 + 4.228000000000e-10 5.645714571224e-01 + 4.328000000000e-10 5.146411371541e-01 + 4.428000000000e-10 3.815837412567e-01 + 4.528000000000e-10 2.215521808706e-01 + 4.628000000000e-10 6.558760297240e-02 + 4.728000000000e-10 -9.625239139173e-02 + 4.828000000000e-10 -2.725616547809e-01 + 4.928000000000e-10 -4.433312319638e-01 + 5.028000000000e-10 -5.516126019735e-01 + 5.128000000000e-10 -5.493294749001e-01 + 5.228000000000e-10 -4.466582063962e-01 + 5.328000000000e-10 -2.911102791776e-01 + 5.428000000000e-10 -1.330529430787e-01 + 5.528000000000e-10 2.419306484897e-02 + 5.628000000000e-10 1.946826166774e-01 + 5.728000000000e-10 3.723408844791e-01 + 5.828000000000e-10 5.166736750015e-01 + 5.928000000000e-10 5.640453324252e-01 + 6.028000000000e-10 5.010275355383e-01 + 6.128000000000e-10 3.611142538615e-01 + 6.228000000000e-10 2.011675579635e-01 + 6.328000000000e-10 4.543787953785e-02 + 6.428000000000e-10 -1.182323448552e-01 + 6.528000000000e-10 -2.956572850723e-01 + 6.628000000000e-10 -4.624607451942e-01 + 6.728000000000e-10 -5.578545785905e-01 + 6.828000000000e-10 -5.411926355366e-01 + 6.928000000000e-10 -4.285055769816e-01 + 7.028000000000e-10 -2.706297728416e-01 + 7.128000000000e-10 -1.132730447688e-01 + 7.228000000000e-10 4.503568429756e-02 + 7.328000000000e-10 2.174591325681e-01 + 7.428000000000e-10 3.939419516133e-01 + 7.528000000000e-10 5.290105305676e-01 + 7.628000000000e-10 5.617453823606e-01 + 7.728000000000e-10 4.862367997259e-01 + 7.828000000000e-10 3.404724989022e-01 + 7.928000000000e-10 1.809244921990e-01 + 8.028000000000e-10 2.511358192793e-02 + 8.128000000000e-10 -1.405112120148e-01 + 8.228000000000e-10 -3.186423567873e-01 + 8.328000000000e-10 -4.803054508961e-01 + 8.428000000000e-10 -5.620811329932e-01 + 8.528000000000e-10 -5.312734499961e-01 + 8.628000000000e-10 -4.094530758118e-01 + 8.728000000000e-10 -2.501524174489e-01 + 8.828000000000e-10 -9.347907818178e-02 + 8.928000000000e-10 6.615100779827e-02 + 9.028000000000e-10 2.403448238761e-01 + 9.128000000000e-10 4.150145923347e-01 + 9.228000000000e-10 5.396682113219e-01 + 9.328000000000e-10 5.577613949069e-01 + 9.428000000000e-10 4.704097965482e-01 + 9.528000000000e-10 3.198411419468e-01 + 9.628000000000e-10 1.608480611662e-01 + 9.728000000000e-10 4.653662126493e-03 + 9.828000000000e-10 -1.630114284973e-01 + 9.928000000000e-10 -3.413270422713e-01 + 1.000000000000e-09 -4.613528250395e-01 diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_18/CML_divider.sym b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_18/CML_divider.sym new file mode 100644 index 00000000..e46eb233 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_18/CML_divider.sym @@ -0,0 +1,30 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 -120 -20 -100 -20 {} +L 4 -120 20 -100 20 {} +L 4 100 -20 120 -20 {} +L 4 100 20 120 20 {} +L 7 0 -60 0 -40 {} +L 7 0 40 0 60 {} +B 5 -122.5 -22.5 -117.5 -17.5 {name=Vo+ dir=out} +B 5 -122.5 17.5 -117.5 22.5 {name=Vo- dir=out} +B 5 117.5 -22.5 122.5 -17.5 {name=Vi+ dir=in} +B 5 117.5 17.5 122.5 22.5 {name=Vi- dir=in} +B 5 -2.5 -62.5 2.5 -57.5 {name=vdd dir=inout} +B 5 -2.5 57.5 2.5 62.5 {name=gnd dir=inout} +P 4 5 100 -40 -100 -40 -100 40 100 40 100 -40 {} +T {@symname} -44 -6 0 0 0.3 0.3 {} +T {@name} 45 -52 0 0 0.2 0.2 {} +T {Vo+} -95 -24 0 0 0.2 0.2 {} +T {Vo-} -95 16 0 0 0.2 0.2 {} +T {Vi+} 95 -16 2 0 0.2 0.2 {} +T {Vi-} 95 24 2 0 0.2 0.2 {} +T {vdd} 10 -39 0 1 0.2 0.2 {} +T {gnd} -10 34 2 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_18/conditions.yaml b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_18/conditions.yaml new file mode 100644 index 00000000..7a230467 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_18/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice +N: 18 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: tt +filename: CML_core_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_18 +temperature: '-40' +vdd: '1.6' diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_19/.spiceinit b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_19/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_19/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_19/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_19/CML_core_tb.sch new file mode 100644 index 00000000..b07304f3 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_19/CML_core_tb.sch @@ -0,0 +1,73 @@ +v {xschem version=3.4.8RC file_version=1.3} +G {} +K {} +V {} +S {} +F {} +E {} +N 740 -940 740 -920 {lab=GND} +N 740 -1090 740 -1060 {lab=VDD} +N 600 -1020 620 -1020 {lab=Vinplus} +N 600 -980 620 -980 {lab=Vinminus} +N 860 -1020 880 -1020 {lab=Voplus} +N 860 -980 880 -980 {lab=Vominus} +N 1150 -850 1150 -820 {lab=VDD} +N 1150 -760 1150 -730 {lab=GND} +N 930 -850 930 -820 {lab=Vinminus} +N 930 -760 930 -730 {lab=GND} +N 720 -850 720 -820 {lab=Vinplus} +N 720 -760 720 -730 {lab=GND} +C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.param A=0 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write CML_core_tb.raw +set appendwrite +tran 10p 1n 160p + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_19/CML_core_tb_19.data vo_diff +quit + +.endc +"} +C {opin.sym} 880 -1020 2 1 {name=p6 lab=Voplus} +C {opin.sym} 880 -980 0 0 {name=p9 lab=Vominus} +C {devices/code_shown.sym} 10 -620 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_ff + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice + +.temp -40 +" +} +C {iopin.sym} 740 -1090 0 1 {name=p2 lab=VDD} +C {ipin.sym} 600 -1020 2 1 {name=p4 lab=Vinplus} +C {ipin.sym} 600 -980 2 1 {name=p1 lab=Vinminus} +C {CML_divider.sym} 740 -1000 0 1 {name=x1} +C {vsource.sym} 1150 -790 0 0 {name=V1 value=1.6 savecurrent=false} +C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} +C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} +C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 A 10G 0 0 0)" savecurrent=false} +C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 A 10G 0 0 180)" savecurrent=false} +C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_19/CML_core_tb_19.data b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_19/CML_core_tb_19.data new file mode 100644 index 00000000..ce7734f4 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_19/CML_core_tb_19.data @@ -0,0 +1,85 @@ + 1.628000000000e-10 -5.155675808532e-01 + 1.728000000000e-10 -5.590684876064e-01 + 1.828000000000e-10 -4.970485200967e-01 + 1.928000000000e-10 -3.613266108292e-01 + 2.028000000000e-10 -2.055839293821e-01 + 2.128000000000e-10 -5.419308304169e-02 + 2.228000000000e-10 1.051049218561e-01 + 2.328000000000e-10 2.795443727843e-01 + 2.428000000000e-10 4.471043056604e-01 + 2.528000000000e-10 5.502799551771e-01 + 2.628000000000e-10 5.466723192198e-01 + 2.728000000000e-10 4.475047904806e-01 + 2.828000000000e-10 2.965469054731e-01 + 2.928000000000e-10 1.424984493475e-01 + 3.028000000000e-10 -1.009734334473e-02 + 3.128000000000e-10 -1.761990552073e-01 + 3.228000000000e-10 -3.522714070339e-01 + 3.328000000000e-10 -5.015943728299e-01 + 3.428000000000e-10 -5.618459732258e-01 + 3.528000000000e-10 -5.151710002321e-01 + 3.628000000000e-10 -3.878721717088e-01 + 3.728000000000e-10 -2.320108967809e-01 + 3.828000000000e-10 -8.021590752923e-02 + 3.928000000000e-10 7.659358427726e-02 + 4.028000000000e-10 2.490479319101e-01 + 4.128000000000e-10 4.207782470121e-01 + 4.228000000000e-10 5.397262440240e-01 + 4.328000000000e-10 5.547212850072e-01 + 4.428000000000e-10 4.696030890105e-01 + 4.528000000000e-10 3.234581596635e-01 + 4.628000000000e-10 1.684623006214e-01 + 4.728000000000e-10 1.676979869404e-02 + 4.828000000000e-10 -1.464309122676e-01 + 4.928000000000e-10 -3.224564481247e-01 + 5.028000000000e-10 -4.808409761453e-01 + 5.128000000000e-10 -5.594658041433e-01 + 5.228000000000e-10 -5.302379687070e-01 + 5.328000000000e-10 -4.135626525439e-01 + 5.428000000000e-10 -2.587218271587e-01 + 5.528000000000e-10 -1.061069434306e-01 + 5.628000000000e-10 4.863244468104e-02 + 5.728000000000e-10 2.186435392419e-01 + 5.828000000000e-10 3.930244224828e-01 + 5.928000000000e-10 5.259796084394e-01 + 6.028000000000e-10 5.597842989924e-01 + 6.128000000000e-10 4.899102313230e-01 + 6.228000000000e-10 3.503762799238e-01 + 6.328000000000e-10 1.946627850762e-01 + 6.428000000000e-10 4.331344034385e-02 + 6.528000000000e-10 -1.170605128593e-01 + 6.628000000000e-10 -2.921153654664e-01 + 6.728000000000e-10 -4.574138319818e-01 + 6.828000000000e-10 -5.536758582513e-01 + 6.928000000000e-10 -5.425122630801e-01 + 7.028000000000e-10 -4.379661274856e-01 + 7.128000000000e-10 -2.855394493318e-01 + 7.228000000000e-10 -1.319119665575e-01 + 7.328000000000e-10 2.120629112930e-02 + 7.428000000000e-10 1.884806690649e-01 + 7.528000000000e-10 3.642798751115e-01 + 7.628000000000e-10 5.092746298205e-01 + 7.728000000000e-10 5.618748341869e-01 + 7.828000000000e-10 5.082788605290e-01 + 7.928000000000e-10 3.770821656158e-01 + 8.028000000000e-10 2.211144870134e-01 + 8.128000000000e-10 6.955039106327e-02 + 8.228000000000e-10 -8.822607507269e-02 + 8.328000000000e-10 -2.615556886470e-01 + 8.428000000000e-10 -4.317787817928e-01 + 8.528000000000e-10 -5.444558745209e-01 + 8.628000000000e-10 -5.517931188559e-01 + 8.728000000000e-10 -4.607631664440e-01 + 8.828000000000e-10 -3.124291013351e-01 + 8.928000000000e-10 -1.578021736335e-01 + 9.028000000000e-10 -5.805662459480e-03 + 9.128000000000e-10 1.585834552713e-01 + 9.228000000000e-10 3.347468424066e-01 + 9.328000000000e-10 4.896812097952e-01 + 9.428000000000e-10 5.608455231926e-01 + 9.528000000000e-10 5.243851341899e-01 + 9.628000000000e-10 4.031712702683e-01 + 9.728000000000e-10 2.477647716128e-01 + 9.828000000000e-10 9.552196707385e-02 + 9.928000000000e-10 -6.001371212577e-02 + 1.000000000000e-09 -1.819785427008e-01 diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_19/CML_divider.sym b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_19/CML_divider.sym new file mode 100644 index 00000000..e46eb233 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_19/CML_divider.sym @@ -0,0 +1,30 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 -120 -20 -100 -20 {} +L 4 -120 20 -100 20 {} +L 4 100 -20 120 -20 {} +L 4 100 20 120 20 {} +L 7 0 -60 0 -40 {} +L 7 0 40 0 60 {} +B 5 -122.5 -22.5 -117.5 -17.5 {name=Vo+ dir=out} +B 5 -122.5 17.5 -117.5 22.5 {name=Vo- dir=out} +B 5 117.5 -22.5 122.5 -17.5 {name=Vi+ dir=in} +B 5 117.5 17.5 122.5 22.5 {name=Vi- dir=in} +B 5 -2.5 -62.5 2.5 -57.5 {name=vdd dir=inout} +B 5 -2.5 57.5 2.5 62.5 {name=gnd dir=inout} +P 4 5 100 -40 -100 -40 -100 40 100 40 100 -40 {} +T {@symname} -44 -6 0 0 0.3 0.3 {} +T {@name} 45 -52 0 0 0.2 0.2 {} +T {Vo+} -95 -24 0 0 0.2 0.2 {} +T {Vo-} -95 16 0 0 0.2 0.2 {} +T {Vi+} 95 -16 2 0 0.2 0.2 {} +T {Vi-} 95 24 2 0 0.2 0.2 {} +T {vdd} 10 -39 0 1 0.2 0.2 {} +T {gnd} -10 34 2 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_19/conditions.yaml b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_19/conditions.yaml new file mode 100644 index 00000000..1f44945e --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_19/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice +N: 19 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: ff +filename: CML_core_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_19 +temperature: '-40' +vdd: '1.6' diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_20/.spiceinit b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_20/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_20/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_20/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_20/CML_core_tb.sch new file mode 100644 index 00000000..ff550b9f --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_20/CML_core_tb.sch @@ -0,0 +1,73 @@ +v {xschem version=3.4.8RC file_version=1.3} +G {} +K {} +V {} +S {} +F {} +E {} +N 740 -940 740 -920 {lab=GND} +N 740 -1090 740 -1060 {lab=VDD} +N 600 -1020 620 -1020 {lab=Vinplus} +N 600 -980 620 -980 {lab=Vinminus} +N 860 -1020 880 -1020 {lab=Voplus} +N 860 -980 880 -980 {lab=Vominus} +N 1150 -850 1150 -820 {lab=VDD} +N 1150 -760 1150 -730 {lab=GND} +N 930 -850 930 -820 {lab=Vinminus} +N 930 -760 930 -730 {lab=GND} +N 720 -850 720 -820 {lab=Vinplus} +N 720 -760 720 -730 {lab=GND} +C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.param A=0 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write CML_core_tb.raw +set appendwrite +tran 10p 1n 160p + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_20/CML_core_tb_20.data vo_diff +quit + +.endc +"} +C {opin.sym} 880 -1020 2 1 {name=p6 lab=Voplus} +C {opin.sym} 880 -980 0 0 {name=p9 lab=Vominus} +C {devices/code_shown.sym} 10 -620 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_ss + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice + +.temp -40 +" +} +C {iopin.sym} 740 -1090 0 1 {name=p2 lab=VDD} +C {ipin.sym} 600 -1020 2 1 {name=p4 lab=Vinplus} +C {ipin.sym} 600 -980 2 1 {name=p1 lab=Vinminus} +C {CML_divider.sym} 740 -1000 0 1 {name=x1} +C {vsource.sym} 1150 -790 0 0 {name=V1 value=1.6 savecurrent=false} +C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} +C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} +C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 A 10G 0 0 0)" savecurrent=false} +C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 A 10G 0 0 180)" savecurrent=false} +C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_20/CML_core_tb_20.data b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_20/CML_core_tb_20.data new file mode 100644 index 00000000..97f6482f --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_20/CML_core_tb_20.data @@ -0,0 +1,85 @@ + 1.628000000000e-10 -5.458151853251e-01 + 1.728000000000e-10 -5.643254766548e-01 + 1.828000000000e-10 -4.723962973094e-01 + 1.928000000000e-10 -3.161158967937e-01 + 2.028000000000e-10 -1.536236623040e-01 + 2.128000000000e-10 6.154159790893e-03 + 2.228000000000e-10 1.776400865005e-01 + 2.328000000000e-10 3.585728203369e-01 + 2.428000000000e-10 5.128898110550e-01 + 2.528000000000e-10 5.720795092985e-01 + 2.628000000000e-10 5.146802704471e-01 + 2.728000000000e-10 3.734987790907e-01 + 2.828000000000e-10 2.093224278876e-01 + 2.928000000000e-10 5.016262450452e-02 + 3.028000000000e-10 -1.160740173948e-01 + 3.128000000000e-10 -2.959691947518e-01 + 3.228000000000e-10 -4.664972833740e-01 + 3.328000000000e-10 -5.651437249055e-01 + 3.428000000000e-10 -5.468542207504e-01 + 3.528000000000e-10 -4.285892608711e-01 + 3.628000000000e-10 -2.656908007009e-01 + 3.728000000000e-10 -1.050444097649e-01 + 3.828000000000e-10 5.700889760574e-02 + 3.928000000000e-10 2.330826685219e-01 + 4.028000000000e-10 4.114835103448e-01 + 4.128000000000e-10 5.434543045193e-01 + 4.228000000000e-10 5.659306587180e-01 + 4.328000000000e-10 4.772694406511e-01 + 4.428000000000e-10 3.222111998943e-01 + 4.528000000000e-10 1.595126496403e-01 + 4.628000000000e-10 -8.158595572394e-05 + 4.728000000000e-10 -1.709892096568e-01 + 4.828000000000e-10 -3.519999279876e-01 + 4.928000000000e-10 -5.084951612902e-01 + 5.028000000000e-10 -5.720572917833e-01 + 5.128000000000e-10 -5.186602309448e-01 + 5.228000000000e-10 -3.795775987311e-01 + 5.328000000000e-10 -2.153237508215e-01 + 5.428000000000e-10 -5.608567178453e-02 + 5.528000000000e-10 1.096334054592e-01 + 5.628000000000e-10 2.892266745620e-01 + 5.728000000000e-10 4.609323786102e-01 + 5.828000000000e-10 5.635117430170e-01 + 5.928000000000e-10 5.495128317803e-01 + 6.028000000000e-10 4.341133868886e-01 + 6.128000000000e-10 2.716819382573e-01 + 6.228000000000e-10 1.108215375576e-01 + 6.328000000000e-10 -5.088594388569e-02 + 6.428000000000e-10 -2.264513702937e-01 + 6.528000000000e-10 -4.053353489572e-01 + 6.628000000000e-10 -5.403522985221e-01 + 6.728000000000e-10 -5.672014897407e-01 + 6.828000000000e-10 -4.820454848354e-01 + 6.928000000000e-10 -3.282943306675e-01 + 7.028000000000e-10 -1.653834725625e-01 + 7.128000000000e-10 -5.939055440262e-03 + 7.228000000000e-10 1.643952927308e-01 + 7.328000000000e-10 3.454317737162e-01 + 7.428000000000e-10 5.040001061821e-01 + 7.528000000000e-10 5.718789197400e-01 + 7.628000000000e-10 5.225332090982e-01 + 7.728000000000e-10 3.856179995450e-01 + 7.828000000000e-10 2.213278078794e-01 + 7.928000000000e-10 6.198746116702e-02 + 8.028000000000e-10 -1.032305577426e-01 + 8.128000000000e-10 -2.824883762098e-01 + 8.228000000000e-10 -4.552880309271e-01 + 8.328000000000e-10 -5.617059595217e-01 + 8.428000000000e-10 -5.520242696182e-01 + 8.528000000000e-10 -4.395509181377e-01 + 8.628000000000e-10 -2.776753414549e-01 + 8.728000000000e-10 -1.165949753256e-01 + 8.828000000000e-10 4.478485508267e-02 + 8.928000000000e-10 2.198282007479e-01 + 9.028000000000e-10 3.991459743212e-01 + 9.128000000000e-10 5.370997636905e-01 + 9.228000000000e-10 5.683346517250e-01 + 9.328000000000e-10 4.867396233883e-01 + 9.428000000000e-10 3.343950630196e-01 + 9.528000000000e-10 1.712745810974e-01 + 9.628000000000e-10 1.195401594982e-02 + 9.728000000000e-10 -1.578063240111e-01 + 9.828000000000e-10 -3.388254664564e-01 + 9.928000000000e-10 -4.993515803500e-01 + 1.000000000000e-09 -5.639567217174e-01 diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_20/CML_divider.sym b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_20/CML_divider.sym new file mode 100644 index 00000000..e46eb233 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_20/CML_divider.sym @@ -0,0 +1,30 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 -120 -20 -100 -20 {} +L 4 -120 20 -100 20 {} +L 4 100 -20 120 -20 {} +L 4 100 20 120 20 {} +L 7 0 -60 0 -40 {} +L 7 0 40 0 60 {} +B 5 -122.5 -22.5 -117.5 -17.5 {name=Vo+ dir=out} +B 5 -122.5 17.5 -117.5 22.5 {name=Vo- dir=out} +B 5 117.5 -22.5 122.5 -17.5 {name=Vi+ dir=in} +B 5 117.5 17.5 122.5 22.5 {name=Vi- dir=in} +B 5 -2.5 -62.5 2.5 -57.5 {name=vdd dir=inout} +B 5 -2.5 57.5 2.5 62.5 {name=gnd dir=inout} +P 4 5 100 -40 -100 -40 -100 40 100 40 100 -40 {} +T {@symname} -44 -6 0 0 0.3 0.3 {} +T {@name} 45 -52 0 0 0.2 0.2 {} +T {Vo+} -95 -24 0 0 0.2 0.2 {} +T {Vo-} -95 16 0 0 0.2 0.2 {} +T {Vi+} 95 -16 2 0 0.2 0.2 {} +T {Vi-} 95 24 2 0 0.2 0.2 {} +T {vdd} 10 -39 0 1 0.2 0.2 {} +T {gnd} -10 34 2 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_20/conditions.yaml b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_20/conditions.yaml new file mode 100644 index 00000000..0c6bad2c --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_20/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice +N: 20 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: ss +filename: CML_core_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_20 +temperature: '-40' +vdd: '1.6' diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_21/.spiceinit b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_21/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_21/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_21/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_21/CML_core_tb.sch new file mode 100644 index 00000000..8857e213 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_21/CML_core_tb.sch @@ -0,0 +1,73 @@ +v {xschem version=3.4.8RC file_version=1.3} +G {} +K {} +V {} +S {} +F {} +E {} +N 740 -940 740 -920 {lab=GND} +N 740 -1090 740 -1060 {lab=VDD} +N 600 -1020 620 -1020 {lab=Vinplus} +N 600 -980 620 -980 {lab=Vinminus} +N 860 -1020 880 -1020 {lab=Voplus} +N 860 -980 880 -980 {lab=Vominus} +N 1150 -850 1150 -820 {lab=VDD} +N 1150 -760 1150 -730 {lab=GND} +N 930 -850 930 -820 {lab=Vinminus} +N 930 -760 930 -730 {lab=GND} +N 720 -850 720 -820 {lab=Vinplus} +N 720 -760 720 -730 {lab=GND} +C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.param A=0 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write CML_core_tb.raw +set appendwrite +tran 10p 1n 160p + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_21/CML_core_tb_21.data vo_diff +quit + +.endc +"} +C {opin.sym} 880 -1020 2 1 {name=p6 lab=Voplus} +C {opin.sym} 880 -980 0 0 {name=p9 lab=Vominus} +C {devices/code_shown.sym} 10 -620 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_tt + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice + +.temp 27 +" +} +C {iopin.sym} 740 -1090 0 1 {name=p2 lab=VDD} +C {ipin.sym} 600 -1020 2 1 {name=p4 lab=Vinplus} +C {ipin.sym} 600 -980 2 1 {name=p1 lab=Vinminus} +C {CML_divider.sym} 740 -1000 0 1 {name=x1} +C {vsource.sym} 1150 -790 0 0 {name=V1 value=1.6 savecurrent=false} +C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} +C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} +C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 A 10G 0 0 0)" savecurrent=false} +C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 A 10G 0 0 180)" savecurrent=false} +C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_21/CML_core_tb_21.data b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_21/CML_core_tb_21.data new file mode 100644 index 00000000..db5e56e6 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_21/CML_core_tb_21.data @@ -0,0 +1,85 @@ + 1.628000000000e-10 -4.967584163944e-01 + 1.728000000000e-10 -5.441307121147e-01 + 1.828000000000e-10 -4.869491122499e-01 + 1.928000000000e-10 -3.554632512115e-01 + 2.028000000000e-10 -1.988621239548e-01 + 2.128000000000e-10 -4.121542293437e-02 + 2.228000000000e-10 1.234192116705e-01 + 2.328000000000e-10 2.975128220079e-01 + 2.428000000000e-10 4.558011352882e-01 + 2.528000000000e-10 5.430951048215e-01 + 2.628000000000e-10 5.249696364398e-01 + 2.728000000000e-10 4.172520503926e-01 + 2.828000000000e-10 2.649511784525e-01 + 2.928000000000e-10 1.072252439852e-01 + 3.028000000000e-10 -5.314590859624e-02 + 3.128000000000e-10 -2.244467961392e-01 + 3.228000000000e-10 -3.944081861133e-01 + 3.328000000000e-10 -5.185011785564e-01 + 3.428000000000e-10 -5.449839484085e-01 + 3.528000000000e-10 -4.705368687179e-01 + 3.628000000000e-10 -3.305422608546e-01 + 3.728000000000e-10 -1.730083852902e-01 + 3.828000000000e-10 -1.502725063011e-02 + 3.928000000000e-10 1.514848242575e-01 + 4.028000000000e-10 3.255090834192e-01 + 4.128000000000e-10 4.764210192724e-01 + 4.228000000000e-10 5.473819399546e-01 + 4.328000000000e-10 5.126114234729e-01 + 4.428000000000e-10 3.941363884649e-01 + 4.528000000000e-10 2.393230716168e-01 + 4.628000000000e-10 8.172293040000e-02 + 4.728000000000e-10 -8.009952092223e-02 + 4.828000000000e-10 -2.528470149998e-01 + 4.928000000000e-10 -4.193789155753e-01 + 5.028000000000e-10 -5.302774742884e-01 + 5.128000000000e-10 -5.393121879551e-01 + 5.228000000000e-10 -4.511079223488e-01 + 5.328000000000e-10 -3.052703536520e-01 + 5.428000000000e-10 -1.474976315314e-01 + 5.528000000000e-10 1.115548934129e-02 + 5.628000000000e-10 1.796144633165e-01 + 5.728000000000e-10 3.527923691049e-01 + 5.828000000000e-10 4.946340719334e-01 + 5.928000000000e-10 5.486364242717e-01 + 6.028000000000e-10 4.978842118109e-01 + 6.128000000000e-10 3.699928712855e-01 + 6.228000000000e-10 2.136243513812e-01 + 6.328000000000e-10 5.606424822427e-02 + 6.428000000000e-10 -1.074494638422e-01 + 6.528000000000e-10 -2.811956311550e-01 + 6.628000000000e-10 -4.429543495671e-01 + 6.728000000000e-10 -5.392711864894e-01 + 6.828000000000e-10 -5.310358699952e-01 + 6.928000000000e-10 -4.301531742275e-01 + 7.028000000000e-10 -2.798496238488e-01 + 7.128000000000e-10 -1.220649947350e-01 + 7.228000000000e-10 3.758346172733e-02 + 7.328000000000e-10 2.078957475644e-01 + 7.428000000000e-10 3.793298108372e-01 + 7.528000000000e-10 5.104288103282e-01 + 7.628000000000e-10 5.470998205174e-01 + 7.728000000000e-10 4.811320557219e-01 + 7.828000000000e-10 3.451918285639e-01 + 7.928000000000e-10 1.879491684004e-01 + 8.028000000000e-10 3.020898924804e-02 + 8.128000000000e-10 -1.351690342614e-01 + 8.228000000000e-10 -3.093059054867e-01 + 8.328000000000e-10 -4.647122494429e-01 + 8.428000000000e-10 -5.452822275400e-01 + 8.528000000000e-10 -5.201390848957e-01 + 8.628000000000e-10 -4.077752992205e-01 + 8.728000000000e-10 -2.542922053220e-01 + 8.828000000000e-10 -9.661975914604e-02 + 8.928000000000e-10 6.432342589314e-02 + 9.028000000000e-10 2.362706572610e-01 + 9.128000000000e-10 4.049510846020e-01 + 9.228000000000e-10 5.237279887269e-01 + 9.328000000000e-10 5.429357050019e-01 + 9.428000000000e-10 4.626367298941e-01 + 9.528000000000e-10 3.200395578321e-01 + 9.628000000000e-10 1.623716797215e-01 + 9.728000000000e-10 4.151080756644e-03 + 9.828000000000e-10 -1.631757576893e-01 + 9.928000000000e-10 -3.369512690495e-01 + 1.000000000000e-09 -4.509059119523e-01 diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_21/CML_divider.sym b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_21/CML_divider.sym new file mode 100644 index 00000000..e46eb233 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_21/CML_divider.sym @@ -0,0 +1,30 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 -120 -20 -100 -20 {} +L 4 -120 20 -100 20 {} +L 4 100 -20 120 -20 {} +L 4 100 20 120 20 {} +L 7 0 -60 0 -40 {} +L 7 0 40 0 60 {} +B 5 -122.5 -22.5 -117.5 -17.5 {name=Vo+ dir=out} +B 5 -122.5 17.5 -117.5 22.5 {name=Vo- dir=out} +B 5 117.5 -22.5 122.5 -17.5 {name=Vi+ dir=in} +B 5 117.5 17.5 122.5 22.5 {name=Vi- dir=in} +B 5 -2.5 -62.5 2.5 -57.5 {name=vdd dir=inout} +B 5 -2.5 57.5 2.5 62.5 {name=gnd dir=inout} +P 4 5 100 -40 -100 -40 -100 40 100 40 100 -40 {} +T {@symname} -44 -6 0 0 0.3 0.3 {} +T {@name} 45 -52 0 0 0.2 0.2 {} +T {Vo+} -95 -24 0 0 0.2 0.2 {} +T {Vo-} -95 16 0 0 0.2 0.2 {} +T {Vi+} 95 -16 2 0 0.2 0.2 {} +T {Vi-} 95 24 2 0 0.2 0.2 {} +T {vdd} 10 -39 0 1 0.2 0.2 {} +T {gnd} -10 34 2 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_21/conditions.yaml b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_21/conditions.yaml new file mode 100644 index 00000000..8586e52a --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_21/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice +N: 21 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: tt +filename: CML_core_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_21 +temperature: '27' +vdd: '1.6' diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_22/.spiceinit b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_22/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_22/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_22/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_22/CML_core_tb.sch new file mode 100644 index 00000000..141c3009 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_22/CML_core_tb.sch @@ -0,0 +1,73 @@ +v {xschem version=3.4.8RC file_version=1.3} +G {} +K {} +V {} +S {} +F {} +E {} +N 740 -940 740 -920 {lab=GND} +N 740 -1090 740 -1060 {lab=VDD} +N 600 -1020 620 -1020 {lab=Vinplus} +N 600 -980 620 -980 {lab=Vinminus} +N 860 -1020 880 -1020 {lab=Voplus} +N 860 -980 880 -980 {lab=Vominus} +N 1150 -850 1150 -820 {lab=VDD} +N 1150 -760 1150 -730 {lab=GND} +N 930 -850 930 -820 {lab=Vinminus} +N 930 -760 930 -730 {lab=GND} +N 720 -850 720 -820 {lab=Vinplus} +N 720 -760 720 -730 {lab=GND} +C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.param A=0 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write CML_core_tb.raw +set appendwrite +tran 10p 1n 160p + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_22/CML_core_tb_22.data vo_diff +quit + +.endc +"} +C {opin.sym} 880 -1020 2 1 {name=p6 lab=Voplus} +C {opin.sym} 880 -980 0 0 {name=p9 lab=Vominus} +C {devices/code_shown.sym} 10 -620 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_ff + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice + +.temp 27 +" +} +C {iopin.sym} 740 -1090 0 1 {name=p2 lab=VDD} +C {ipin.sym} 600 -1020 2 1 {name=p4 lab=Vinplus} +C {ipin.sym} 600 -980 2 1 {name=p1 lab=Vinminus} +C {CML_divider.sym} 740 -1000 0 1 {name=x1} +C {vsource.sym} 1150 -790 0 0 {name=V1 value=1.6 savecurrent=false} +C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} +C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} +C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 A 10G 0 0 0)" savecurrent=false} +C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 A 10G 0 0 180)" savecurrent=false} +C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_22/CML_core_tb_22.data b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_22/CML_core_tb_22.data new file mode 100644 index 00000000..a4ce7c24 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_22/CML_core_tb_22.data @@ -0,0 +1,85 @@ + 1.628000000000e-10 -4.848304249426e-01 + 1.728000000000e-10 -5.391759724127e-01 + 1.828000000000e-10 -4.922259523619e-01 + 1.928000000000e-10 -3.698272371178e-01 + 2.028000000000e-10 -2.180065872843e-01 + 2.128000000000e-10 -6.460953632397e-02 + 2.228000000000e-10 9.486881736254e-02 + 2.328000000000e-10 2.659762288236e-01 + 2.428000000000e-10 4.283087304849e-01 + 2.528000000000e-10 5.305600274544e-01 + 2.628000000000e-10 5.328402076396e-01 + 2.728000000000e-10 4.435481399688e-01 + 2.828000000000e-10 3.004968146615e-01 + 2.928000000000e-10 1.466955607821e-01 + 3.028000000000e-10 -7.955269451838e-03 + 3.128000000000e-10 -1.732653913612e-01 + 3.228000000000e-10 -3.446973183600e-01 + 3.328000000000e-10 -4.867593957189e-01 + 3.428000000000e-10 -5.444778628748e-01 + 3.528000000000e-10 -5.012307219623e-01 + 3.628000000000e-10 -3.811909292380e-01 + 3.728000000000e-10 -2.294630790072e-01 + 3.828000000000e-10 -7.603948824832e-02 + 3.928000000000e-10 8.251748845427e-02 + 4.028000000000e-10 2.530057604989e-01 + 4.128000000000e-10 4.174101003034e-01 + 4.228000000000e-10 5.262084834453e-01 + 4.328000000000e-10 5.362794555234e-01 + 4.428000000000e-10 4.529098257573e-01 + 4.528000000000e-10 3.122318792142e-01 + 4.628000000000e-10 1.584523736303e-01 + 4.728000000000e-10 4.199840693064e-03 + 4.828000000000e-10 -1.601057245874e-01 + 4.928000000000e-10 -3.319184262514e-01 + 5.028000000000e-10 -4.782861050312e-01 + 5.128000000000e-10 -5.437882777035e-01 + 5.228000000000e-10 -5.078115699859e-01 + 5.328000000000e-10 -3.922181326894e-01 + 5.428000000000e-10 -2.413352028336e-01 + 5.528000000000e-10 -8.785436874396e-02 + 5.628000000000e-10 6.988521236924e-02 + 5.728000000000e-10 2.396851953072e-01 + 5.828000000000e-10 4.059032189477e-01 + 5.928000000000e-10 5.210647965533e-01 + 6.028000000000e-10 5.390696565050e-01 + 6.128000000000e-10 4.619069423368e-01 + 6.228000000000e-10 3.239253657148e-01 + 6.328000000000e-10 1.702371555105e-01 + 6.428000000000e-10 1.630025752745e-02 + 6.528000000000e-10 -1.469932571368e-01 + 6.628000000000e-10 -3.189977520107e-01 + 6.728000000000e-10 -4.692924010411e-01 + 6.828000000000e-10 -5.424709166410e-01 + 6.928000000000e-10 -5.139003061272e-01 + 7.028000000000e-10 -4.030319985636e-01 + 7.128000000000e-10 -2.532011514544e-01 + 7.228000000000e-10 -9.964112975079e-02 + 7.328000000000e-10 5.734317287693e-02 + 7.428000000000e-10 2.263630430604e-01 + 7.528000000000e-10 3.941121782167e-01 + 7.628000000000e-10 5.153270127073e-01 + 7.728000000000e-10 5.412967448822e-01 + 7.828000000000e-10 4.705474701310e-01 + 7.928000000000e-10 3.355637546850e-01 + 8.028000000000e-10 1.820411848493e-01 + 8.128000000000e-10 2.834442810943e-02 + 8.228000000000e-10 -1.339458962945e-01 + 8.328000000000e-10 -3.059576766696e-01 + 8.428000000000e-10 -4.598017832852e-01 + 8.528000000000e-10 -5.405123993680e-01 + 8.628000000000e-10 -5.194744212788e-01 + 8.728000000000e-10 -4.135975609875e-01 + 8.828000000000e-10 -2.650548198522e-01 + 8.928000000000e-10 -1.114064015915e-01 + 9.028000000000e-10 4.488627822513e-02 + 9.128000000000e-10 2.130539878193e-01 + 9.228000000000e-10 3.820706486624e-01 + 9.328000000000e-10 5.090159169311e-01 + 9.428000000000e-10 5.429577078007e-01 + 9.528000000000e-10 4.788190270704e-01 + 9.628000000000e-10 3.471301013300e-01 + 9.728000000000e-10 1.938672644672e-01 + 9.828000000000e-10 4.033398182710e-02 + 9.928000000000e-10 -1.209697116944e-01 + 1.000000000000e-09 -2.451863854579e-01 diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_22/CML_divider.sym b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_22/CML_divider.sym new file mode 100644 index 00000000..e46eb233 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_22/CML_divider.sym @@ -0,0 +1,30 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 -120 -20 -100 -20 {} +L 4 -120 20 -100 20 {} +L 4 100 -20 120 -20 {} +L 4 100 20 120 20 {} +L 7 0 -60 0 -40 {} +L 7 0 40 0 60 {} +B 5 -122.5 -22.5 -117.5 -17.5 {name=Vo+ dir=out} +B 5 -122.5 17.5 -117.5 22.5 {name=Vo- dir=out} +B 5 117.5 -22.5 122.5 -17.5 {name=Vi+ dir=in} +B 5 117.5 17.5 122.5 22.5 {name=Vi- dir=in} +B 5 -2.5 -62.5 2.5 -57.5 {name=vdd dir=inout} +B 5 -2.5 57.5 2.5 62.5 {name=gnd dir=inout} +P 4 5 100 -40 -100 -40 -100 40 100 40 100 -40 {} +T {@symname} -44 -6 0 0 0.3 0.3 {} +T {@name} 45 -52 0 0 0.2 0.2 {} +T {Vo+} -95 -24 0 0 0.2 0.2 {} +T {Vo-} -95 16 0 0 0.2 0.2 {} +T {Vi+} 95 -16 2 0 0.2 0.2 {} +T {Vi-} 95 24 2 0 0.2 0.2 {} +T {vdd} 10 -39 0 1 0.2 0.2 {} +T {gnd} -10 34 2 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_22/conditions.yaml b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_22/conditions.yaml new file mode 100644 index 00000000..2f1f9908 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_22/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice +N: 22 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: ff +filename: CML_core_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_22 +temperature: '27' +vdd: '1.6' diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_23/.spiceinit b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_23/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_23/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_23/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_23/CML_core_tb.sch new file mode 100644 index 00000000..b0417a2c --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_23/CML_core_tb.sch @@ -0,0 +1,73 @@ +v {xschem version=3.4.8RC file_version=1.3} +G {} +K {} +V {} +S {} +F {} +E {} +N 740 -940 740 -920 {lab=GND} +N 740 -1090 740 -1060 {lab=VDD} +N 600 -1020 620 -1020 {lab=Vinplus} +N 600 -980 620 -980 {lab=Vinminus} +N 860 -1020 880 -1020 {lab=Voplus} +N 860 -980 880 -980 {lab=Vominus} +N 1150 -850 1150 -820 {lab=VDD} +N 1150 -760 1150 -730 {lab=GND} +N 930 -850 930 -820 {lab=Vinminus} +N 930 -760 930 -730 {lab=GND} +N 720 -850 720 -820 {lab=Vinplus} +N 720 -760 720 -730 {lab=GND} +C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.param A=0 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write CML_core_tb.raw +set appendwrite +tran 10p 1n 160p + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_23/CML_core_tb_23.data vo_diff +quit + +.endc +"} +C {opin.sym} 880 -1020 2 1 {name=p6 lab=Voplus} +C {opin.sym} 880 -980 0 0 {name=p9 lab=Vominus} +C {devices/code_shown.sym} 10 -620 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_ss + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice + +.temp 27 +" +} +C {iopin.sym} 740 -1090 0 1 {name=p2 lab=VDD} +C {ipin.sym} 600 -1020 2 1 {name=p4 lab=Vinplus} +C {ipin.sym} 600 -980 2 1 {name=p1 lab=Vinminus} +C {CML_divider.sym} 740 -1000 0 1 {name=x1} +C {vsource.sym} 1150 -790 0 0 {name=V1 value=1.6 savecurrent=false} +C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} +C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} +C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 A 10G 0 0 0)" savecurrent=false} +C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 A 10G 0 0 180)" savecurrent=false} +C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_23/CML_core_tb_23.data b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_23/CML_core_tb_23.data new file mode 100644 index 00000000..d5da674a --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_23/CML_core_tb_23.data @@ -0,0 +1,85 @@ + 1.628000000000e-10 -5.031698867449e-01 + 1.728000000000e-10 -5.559494115492e-01 + 1.828000000000e-10 -4.998730322938e-01 + 1.928000000000e-10 -3.658283790605e-01 + 2.028000000000e-10 -2.057211236409e-01 + 2.128000000000e-10 -4.489568269094e-02 + 2.228000000000e-10 1.222382606752e-01 + 2.328000000000e-10 2.986158355312e-01 + 2.428000000000e-10 4.606359926614e-01 + 2.528000000000e-10 5.521473773306e-01 + 2.628000000000e-10 5.345812393627e-01 + 2.728000000000e-10 4.238201873249e-01 + 2.828000000000e-10 2.676796377075e-01 + 2.928000000000e-10 1.066794684340e-01 + 3.028000000000e-10 -5.678604565117e-02 + 3.128000000000e-10 -2.306492037078e-01 + 3.228000000000e-10 -4.028933320857e-01 + 3.328000000000e-10 -5.288428511057e-01 + 3.428000000000e-10 -5.537272595675e-01 + 3.528000000000e-10 -4.743039424122e-01 + 3.628000000000e-10 -3.290350313112e-01 + 3.728000000000e-10 -1.680892829913e-01 + 3.828000000000e-10 -6.795755635653e-03 + 3.928000000000e-10 1.629203496285e-01 + 4.028000000000e-10 3.391611982248e-01 + 4.128000000000e-10 4.905466116494e-01 + 4.228000000000e-10 5.578106684004e-01 + 4.328000000000e-10 5.155575864532e-01 + 4.428000000000e-10 3.893295485048e-01 + 4.528000000000e-10 2.300915101026e-01 + 4.628000000000e-10 6.929126792669e-02 + 4.728000000000e-10 -9.624408118273e-02 + 4.828000000000e-10 -2.719338399007e-01 + 4.928000000000e-10 -4.389200417759e-01 + 5.028000000000e-10 -5.449342986188e-01 + 5.128000000000e-10 -5.439031126331e-01 + 5.228000000000e-10 -4.446530253554e-01 + 5.328000000000e-10 -2.918490615077e-01 + 5.428000000000e-10 -1.307639726990e-01 + 5.528000000000e-10 3.164732743246e-02 + 5.628000000000e-10 2.039847772760e-01 + 5.728000000000e-10 3.784050515971e-01 + 5.828000000000e-10 5.154866410800e-01 + 5.928000000000e-10 5.571793595685e-01 + 6.028000000000e-10 4.917497295790e-01 + 6.128000000000e-10 3.529773366480e-01 + 6.228000000000e-10 1.923890461403e-01 + 6.328000000000e-10 3.147558002288e-02 + 6.428000000000e-10 -1.365240202614e-01 + 6.528000000000e-10 -3.130216882928e-01 + 6.628000000000e-10 -4.717005257356e-01 + 6.728000000000e-10 -5.548816454072e-01 + 6.828000000000e-10 -5.284672024606e-01 + 6.928000000000e-10 -4.119333253215e-01 + 7.028000000000e-10 -2.544413325779e-01 + 7.128000000000e-10 -9.352454025311e-02 + 7.228000000000e-10 7.062104261896e-02 + 7.328000000000e-10 2.452119740286e-01 + 7.428000000000e-10 4.158977506374e-01 + 7.528000000000e-10 5.351728589329e-01 + 7.628000000000e-10 5.508876924354e-01 + 7.728000000000e-10 4.641954978457e-01 + 7.828000000000e-10 3.159291426141e-01 + 7.928000000000e-10 1.548820672850e-01 + 8.028000000000e-10 -6.726886093597e-03 + 8.128000000000e-10 -1.773917774576e-01 + 8.228000000000e-10 -3.531882556336e-01 + 8.328000000000e-10 -4.999436828040e-01 + 8.428000000000e-10 -5.582723309440e-01 + 8.528000000000e-10 -5.076454127540e-01 + 8.628000000000e-10 -3.766411335267e-01 + 8.728000000000e-10 -2.167811502550e-01 + 8.828000000000e-10 -5.599118467032e-02 + 8.928000000000e-10 1.103715238301e-01 + 9.028000000000e-10 2.864948163408e-01 + 9.128000000000e-10 4.509329110582e-01 + 9.228000000000e-10 5.491880863676e-01 + 9.328000000000e-10 5.390993007317e-01 + 9.428000000000e-10 4.334459560763e-01 + 9.528000000000e-10 2.786741986561e-01 + 9.628000000000e-10 1.176317365997e-01 + 9.728000000000e-10 -4.533239585396e-02 + 9.828000000000e-10 -2.185195339366e-01 + 9.928000000000e-10 -3.918650482151e-01 + 1.000000000000e-09 -4.962236612550e-01 diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_23/CML_divider.sym b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_23/CML_divider.sym new file mode 100644 index 00000000..e46eb233 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_23/CML_divider.sym @@ -0,0 +1,30 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 -120 -20 -100 -20 {} +L 4 -120 20 -100 20 {} +L 4 100 -20 120 -20 {} +L 4 100 20 120 20 {} +L 7 0 -60 0 -40 {} +L 7 0 40 0 60 {} +B 5 -122.5 -22.5 -117.5 -17.5 {name=Vo+ dir=out} +B 5 -122.5 17.5 -117.5 22.5 {name=Vo- dir=out} +B 5 117.5 -22.5 122.5 -17.5 {name=Vi+ dir=in} +B 5 117.5 17.5 122.5 22.5 {name=Vi- dir=in} +B 5 -2.5 -62.5 2.5 -57.5 {name=vdd dir=inout} +B 5 -2.5 57.5 2.5 62.5 {name=gnd dir=inout} +P 4 5 100 -40 -100 -40 -100 40 100 40 100 -40 {} +T {@symname} -44 -6 0 0 0.3 0.3 {} +T {@name} 45 -52 0 0 0.2 0.2 {} +T {Vo+} -95 -24 0 0 0.2 0.2 {} +T {Vo-} -95 16 0 0 0.2 0.2 {} +T {Vi+} 95 -16 2 0 0.2 0.2 {} +T {Vi-} 95 24 2 0 0.2 0.2 {} +T {vdd} 10 -39 0 1 0.2 0.2 {} +T {gnd} -10 34 2 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_23/conditions.yaml b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_23/conditions.yaml new file mode 100644 index 00000000..3d23fe4b --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_23/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice +N: 23 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: ss +filename: CML_core_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_23 +temperature: '27' +vdd: '1.6' diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_24/.spiceinit b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_24/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_24/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_24/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_24/CML_core_tb.sch new file mode 100644 index 00000000..6b2776b5 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_24/CML_core_tb.sch @@ -0,0 +1,73 @@ +v {xschem version=3.4.8RC file_version=1.3} +G {} +K {} +V {} +S {} +F {} +E {} +N 740 -940 740 -920 {lab=GND} +N 740 -1090 740 -1060 {lab=VDD} +N 600 -1020 620 -1020 {lab=Vinplus} +N 600 -980 620 -980 {lab=Vinminus} +N 860 -1020 880 -1020 {lab=Voplus} +N 860 -980 880 -980 {lab=Vominus} +N 1150 -850 1150 -820 {lab=VDD} +N 1150 -760 1150 -730 {lab=GND} +N 930 -850 930 -820 {lab=Vinminus} +N 930 -760 930 -730 {lab=GND} +N 720 -850 720 -820 {lab=Vinplus} +N 720 -760 720 -730 {lab=GND} +C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.param A=0 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write CML_core_tb.raw +set appendwrite +tran 10p 1n 160p + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_24/CML_core_tb_24.data vo_diff +quit + +.endc +"} +C {opin.sym} 880 -1020 2 1 {name=p6 lab=Voplus} +C {opin.sym} 880 -980 0 0 {name=p9 lab=Vominus} +C {devices/code_shown.sym} 10 -620 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_tt + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice + +.temp 80 +" +} +C {iopin.sym} 740 -1090 0 1 {name=p2 lab=VDD} +C {ipin.sym} 600 -1020 2 1 {name=p4 lab=Vinplus} +C {ipin.sym} 600 -980 2 1 {name=p1 lab=Vinminus} +C {CML_divider.sym} 740 -1000 0 1 {name=x1} +C {vsource.sym} 1150 -790 0 0 {name=V1 value=1.6 savecurrent=false} +C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} +C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} +C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 A 10G 0 0 0)" savecurrent=false} +C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 A 10G 0 0 180)" savecurrent=false} +C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_24/CML_core_tb_24.data b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_24/CML_core_tb_24.data new file mode 100644 index 00000000..c41c24d8 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_24/CML_core_tb_24.data @@ -0,0 +1,85 @@ + 1.628000000000e-10 -4.327910324256e-01 + 1.728000000000e-10 -5.104523204344e-01 + 1.828000000000e-10 -4.919049595295e-01 + 1.928000000000e-10 -3.909061576120e-01 + 2.028000000000e-10 -2.463905832969e-01 + 2.128000000000e-10 -9.030729814880e-02 + 2.228000000000e-10 7.090337967192e-02 + 2.328000000000e-10 2.391128518003e-01 + 2.428000000000e-10 3.979068244163e-01 + 2.528000000000e-10 5.057784369939e-01 + 2.628000000000e-10 5.222442811568e-01 + 2.728000000000e-10 4.475463421234e-01 + 2.828000000000e-10 3.135857176625e-01 + 2.928000000000e-10 1.594708320831e-01 + 3.028000000000e-10 8.984576080604e-04 + 3.128000000000e-10 -1.645587525434e-01 + 3.228000000000e-10 -3.311340835825e-01 + 3.328000000000e-10 -4.679485266507e-01 + 3.428000000000e-10 -5.277100272002e-01 + 3.528000000000e-10 -4.910003875365e-01 + 3.628000000000e-10 -3.782517931754e-01 + 3.728000000000e-10 -2.293684093697e-01 + 3.828000000000e-10 -7.248392410840e-02 + 3.928000000000e-10 8.947351034921e-02 + 4.028000000000e-10 2.577913488707e-01 + 4.128000000000e-10 4.135082684608e-01 + 4.228000000000e-10 5.128426072357e-01 + 4.328000000000e-10 5.187626011362e-01 + 4.428000000000e-10 4.357788211303e-01 + 4.528000000000e-10 2.980558508264e-01 + 4.628000000000e-10 1.431490581765e-01 + 4.728000000000e-10 -1.591265626250e-02 + 4.828000000000e-10 -1.821667232795e-01 + 4.928000000000e-10 -3.475025723663e-01 + 5.028000000000e-10 -4.784637362759e-01 + 5.128000000000e-10 -5.282831491711e-01 + 5.228000000000e-10 -4.822697516961e-01 + 5.328000000000e-10 -3.637830931217e-01 + 5.428000000000e-10 -2.133005363205e-01 + 5.528000000000e-10 -5.603973127618e-02 + 5.628000000000e-10 1.066850525713e-01 + 5.728000000000e-10 2.750581839130e-01 + 5.828000000000e-10 4.273008627169e-01 + 5.928000000000e-10 5.181067568383e-01 + 6.028000000000e-10 5.139063333086e-01 + 6.128000000000e-10 4.233641609123e-01 + 6.228000000000e-10 2.823752498996e-01 + 6.328000000000e-10 1.269005897264e-01 + 6.428000000000e-10 -3.275126442225e-02 + 6.528000000000e-10 -1.996704202465e-01 + 6.628000000000e-10 -3.634780398743e-01 + 6.728000000000e-10 -4.879892997483e-01 + 6.828000000000e-10 -5.277920833828e-01 + 6.928000000000e-10 -4.727131411481e-01 + 7.028000000000e-10 -3.490253785841e-01 + 7.128000000000e-10 -1.971666354585e-01 + 7.228000000000e-10 -3.957870648492e-02 + 7.328000000000e-10 1.239927359929e-01 + 7.428000000000e-10 2.921256198799e-01 + 7.528000000000e-10 4.404193015741e-01 + 7.628000000000e-10 5.222557511529e-01 + 7.728000000000e-10 5.081185505306e-01 + 7.828000000000e-10 4.103785543253e-01 + 7.928000000000e-10 2.665844078783e-01 + 8.028000000000e-10 1.105880832534e-01 + 8.128000000000e-10 -4.965159634504e-02 + 8.228000000000e-10 -2.171832072956e-01 + 8.328000000000e-10 -3.790547756631e-01 + 8.428000000000e-10 -4.966582386238e-01 + 8.528000000000e-10 -5.262999861314e-01 + 8.628000000000e-10 -4.624510461450e-01 + 8.728000000000e-10 -3.339637098432e-01 + 8.828000000000e-10 -1.809943980113e-01 + 8.928000000000e-10 -2.300609478627e-02 + 9.028000000000e-10 1.413751270982e-01 + 9.128000000000e-10 3.090431666435e-01 + 9.228000000000e-10 4.527815787591e-01 + 9.328000000000e-10 5.253391487746e-01 + 9.428000000000e-10 5.013727724367e-01 + 9.528000000000e-10 3.969006854251e-01 + 9.628000000000e-10 2.506746363374e-01 + 9.728000000000e-10 9.427227745141e-02 + 9.828000000000e-10 -6.667584352686e-02 + 9.928000000000e-10 -2.346505575192e-01 + 1.000000000000e-09 -3.536890741260e-01 diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_24/CML_divider.sym b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_24/CML_divider.sym new file mode 100644 index 00000000..e46eb233 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_24/CML_divider.sym @@ -0,0 +1,30 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 -120 -20 -100 -20 {} +L 4 -120 20 -100 20 {} +L 4 100 -20 120 -20 {} +L 4 100 20 120 20 {} +L 7 0 -60 0 -40 {} +L 7 0 40 0 60 {} +B 5 -122.5 -22.5 -117.5 -17.5 {name=Vo+ dir=out} +B 5 -122.5 17.5 -117.5 22.5 {name=Vo- dir=out} +B 5 117.5 -22.5 122.5 -17.5 {name=Vi+ dir=in} +B 5 117.5 17.5 122.5 22.5 {name=Vi- dir=in} +B 5 -2.5 -62.5 2.5 -57.5 {name=vdd dir=inout} +B 5 -2.5 57.5 2.5 62.5 {name=gnd dir=inout} +P 4 5 100 -40 -100 -40 -100 40 100 40 100 -40 {} +T {@symname} -44 -6 0 0 0.3 0.3 {} +T {@name} 45 -52 0 0 0.2 0.2 {} +T {Vo+} -95 -24 0 0 0.2 0.2 {} +T {Vo-} -95 16 0 0 0.2 0.2 {} +T {Vi+} 95 -16 2 0 0.2 0.2 {} +T {Vi-} 95 24 2 0 0.2 0.2 {} +T {vdd} 10 -39 0 1 0.2 0.2 {} +T {gnd} -10 34 2 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_24/conditions.yaml b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_24/conditions.yaml new file mode 100644 index 00000000..b187d61a --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_24/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice +N: 24 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: tt +filename: CML_core_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_24 +temperature: '80' +vdd: '1.6' diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_25/.spiceinit b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_25/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_25/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_25/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_25/CML_core_tb.sch new file mode 100644 index 00000000..60a09d77 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_25/CML_core_tb.sch @@ -0,0 +1,73 @@ +v {xschem version=3.4.8RC file_version=1.3} +G {} +K {} +V {} +S {} +F {} +E {} +N 740 -940 740 -920 {lab=GND} +N 740 -1090 740 -1060 {lab=VDD} +N 600 -1020 620 -1020 {lab=Vinplus} +N 600 -980 620 -980 {lab=Vinminus} +N 860 -1020 880 -1020 {lab=Voplus} +N 860 -980 880 -980 {lab=Vominus} +N 1150 -850 1150 -820 {lab=VDD} +N 1150 -760 1150 -730 {lab=GND} +N 930 -850 930 -820 {lab=Vinminus} +N 930 -760 930 -730 {lab=GND} +N 720 -850 720 -820 {lab=Vinplus} +N 720 -760 720 -730 {lab=GND} +C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.param A=0 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write CML_core_tb.raw +set appendwrite +tran 10p 1n 160p + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_25/CML_core_tb_25.data vo_diff +quit + +.endc +"} +C {opin.sym} 880 -1020 2 1 {name=p6 lab=Voplus} +C {opin.sym} 880 -980 0 0 {name=p9 lab=Vominus} +C {devices/code_shown.sym} 10 -620 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_ff + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice + +.temp 80 +" +} +C {iopin.sym} 740 -1090 0 1 {name=p2 lab=VDD} +C {ipin.sym} 600 -1020 2 1 {name=p4 lab=Vinplus} +C {ipin.sym} 600 -980 2 1 {name=p1 lab=Vinminus} +C {CML_divider.sym} 740 -1000 0 1 {name=x1} +C {vsource.sym} 1150 -790 0 0 {name=V1 value=1.6 savecurrent=false} +C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} +C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} +C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 A 10G 0 0 0)" savecurrent=false} +C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 A 10G 0 0 180)" savecurrent=false} +C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_25/CML_core_tb_25.data b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_25/CML_core_tb_25.data new file mode 100644 index 00000000..5b20472d --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_25/CML_core_tb_25.data @@ -0,0 +1,85 @@ + 1.628000000000e-10 -4.234652372470e-01 + 1.728000000000e-10 -5.023350411985e-01 + 1.828000000000e-10 -4.882370947196e-01 + 1.928000000000e-10 -3.934622991782e-01 + 2.028000000000e-10 -2.540849756424e-01 + 2.128000000000e-10 -1.022077626652e-01 + 2.228000000000e-10 5.487463989292e-02 + 2.328000000000e-10 2.201387084143e-01 + 2.428000000000e-10 3.793010385310e-01 + 2.528000000000e-10 4.928092825825e-01 + 2.628000000000e-10 5.196604221395e-01 + 2.728000000000e-10 4.569333044751e-01 + 2.828000000000e-10 3.319491455483e-01 + 2.928000000000e-10 1.828241959120e-01 + 3.028000000000e-10 2.875417263246e-02 + 3.128000000000e-10 -1.322085231319e-01 + 3.228000000000e-10 -2.979591628573e-01 + 3.328000000000e-10 -4.419921797151e-01 + 3.428000000000e-10 -5.181142235199e-01 + 3.528000000000e-10 -5.011276271936e-01 + 3.628000000000e-10 -4.047301057605e-01 + 3.728000000000e-10 -2.642146009991e-01 + 3.828000000000e-10 -1.120554869934e-01 + 3.928000000000e-10 4.449697941514e-02 + 4.028000000000e-10 2.092158976339e-01 + 4.128000000000e-10 3.698137386910e-01 + 4.228000000000e-10 4.880993908984e-01 + 4.328000000000e-10 5.216646824640e-01 + 4.428000000000e-10 4.646374646662e-01 + 4.528000000000e-10 3.428387452384e-01 + 4.628000000000e-10 1.944050088817e-01 + 4.728000000000e-10 4.065056841101e-02 + 4.828000000000e-10 -1.196538800530e-01 + 4.928000000000e-10 -2.856080481145e-01 + 5.028000000000e-10 -4.328604027743e-01 + 5.128000000000e-10 -5.155684125841e-01 + 5.228000000000e-10 -5.056146117143e-01 + 5.328000000000e-10 -4.141876506985e-01 + 5.428000000000e-10 -2.756803009980e-01 + 5.528000000000e-10 -1.238226525070e-01 + 5.628000000000e-10 3.221018080289e-02 + 5.728000000000e-10 1.964355129807e-01 + 5.828000000000e-10 3.583575591201e-01 + 5.928000000000e-10 4.816985038066e-01 + 6.028000000000e-10 5.224947498493e-01 + 6.128000000000e-10 4.718193125923e-01 + 6.228000000000e-10 3.536174083497e-01 + 6.328000000000e-10 2.061296412053e-01 + 6.428000000000e-10 5.261608296359e-02 + 6.528000000000e-10 -1.069794898843e-01 + 6.628000000000e-10 -2.730503720825e-01 + 6.728000000000e-10 -4.231934075288e-01 + 6.828000000000e-10 -5.124136353084e-01 + 6.928000000000e-10 -5.095785569986e-01 + 7.028000000000e-10 -4.234260154720e-01 + 7.128000000000e-10 -2.870921093466e-01 + 7.228000000000e-10 -1.356399571892e-01 + 7.328000000000e-10 1.994586721238e-02 + 7.428000000000e-10 1.835653494556e-01 + 7.528000000000e-10 3.466515630325e-01 + 7.628000000000e-10 4.747178407660e-01 + 7.728000000000e-10 5.227707225181e-01 + 7.828000000000e-10 4.785566684900e-01 + 7.928000000000e-10 3.642543025781e-01 + 8.028000000000e-10 2.178048074733e-01 + 8.128000000000e-10 6.456648208830e-02 + 8.228000000000e-10 -9.438288801709e-02 + 8.328000000000e-10 -2.603879663713e-01 + 8.428000000000e-10 -4.131715855760e-01 + 8.528000000000e-10 -5.086601982059e-01 + 8.628000000000e-10 -5.130504205797e-01 + 8.728000000000e-10 -4.323341026072e-01 + 8.828000000000e-10 -2.984457952852e-01 + 8.928000000000e-10 -1.474159969866e-01 + 9.028000000000e-10 7.721087988347e-03 + 9.128000000000e-10 1.707348336950e-01 + 9.228000000000e-10 3.347409452624e-01 + 9.328000000000e-10 4.672737333583e-01 + 9.428000000000e-10 5.224691058784e-01 + 9.528000000000e-10 4.848897255043e-01 + 9.628000000000e-10 3.746840785486e-01 + 9.728000000000e-10 2.294653719965e-01 + 9.828000000000e-10 7.645843789077e-02 + 9.928000000000e-10 -8.182784111963e-02 + 1.000000000000e-09 -2.014421894108e-01 diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_25/CML_divider.sym b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_25/CML_divider.sym new file mode 100644 index 00000000..e46eb233 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_25/CML_divider.sym @@ -0,0 +1,30 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 -120 -20 -100 -20 {} +L 4 -120 20 -100 20 {} +L 4 100 -20 120 -20 {} +L 4 100 20 120 20 {} +L 7 0 -60 0 -40 {} +L 7 0 40 0 60 {} +B 5 -122.5 -22.5 -117.5 -17.5 {name=Vo+ dir=out} +B 5 -122.5 17.5 -117.5 22.5 {name=Vo- dir=out} +B 5 117.5 -22.5 122.5 -17.5 {name=Vi+ dir=in} +B 5 117.5 17.5 122.5 22.5 {name=Vi- dir=in} +B 5 -2.5 -62.5 2.5 -57.5 {name=vdd dir=inout} +B 5 -2.5 57.5 2.5 62.5 {name=gnd dir=inout} +P 4 5 100 -40 -100 -40 -100 40 100 40 100 -40 {} +T {@symname} -44 -6 0 0 0.3 0.3 {} +T {@name} 45 -52 0 0 0.2 0.2 {} +T {Vo+} -95 -24 0 0 0.2 0.2 {} +T {Vo-} -95 16 0 0 0.2 0.2 {} +T {Vi+} 95 -16 2 0 0.2 0.2 {} +T {Vi-} 95 24 2 0 0.2 0.2 {} +T {vdd} 10 -39 0 1 0.2 0.2 {} +T {gnd} -10 34 2 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_25/conditions.yaml b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_25/conditions.yaml new file mode 100644 index 00000000..5feb9da2 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_25/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice +N: 25 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: ff +filename: CML_core_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_25 +temperature: '80' +vdd: '1.6' diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_26/.spiceinit b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_26/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_26/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_26/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_26/CML_core_tb.sch new file mode 100644 index 00000000..b257137a --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_26/CML_core_tb.sch @@ -0,0 +1,73 @@ +v {xschem version=3.4.8RC file_version=1.3} +G {} +K {} +V {} +S {} +F {} +E {} +N 740 -940 740 -920 {lab=GND} +N 740 -1090 740 -1060 {lab=VDD} +N 600 -1020 620 -1020 {lab=Vinplus} +N 600 -980 620 -980 {lab=Vinminus} +N 860 -1020 880 -1020 {lab=Voplus} +N 860 -980 880 -980 {lab=Vominus} +N 1150 -850 1150 -820 {lab=VDD} +N 1150 -760 1150 -730 {lab=GND} +N 930 -850 930 -820 {lab=Vinminus} +N 930 -760 930 -730 {lab=GND} +N 720 -850 720 -820 {lab=Vinplus} +N 720 -760 720 -730 {lab=GND} +C {code_shown.sym} 10 -1220 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.param A=0 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write CML_core_tb.raw +set appendwrite +tran 10p 1n 160p + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_26/CML_core_tb_26.data vo_diff +quit + +.endc +"} +C {opin.sym} 880 -1020 2 1 {name=p6 lab=Voplus} +C {opin.sym} 880 -980 0 0 {name=p9 lab=Vominus} +C {devices/code_shown.sym} 10 -620 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_ss + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice + +.temp 80 +" +} +C {iopin.sym} 740 -1090 0 1 {name=p2 lab=VDD} +C {ipin.sym} 600 -1020 2 1 {name=p4 lab=Vinplus} +C {ipin.sym} 600 -980 2 1 {name=p1 lab=Vinminus} +C {CML_divider.sym} 740 -1000 0 1 {name=x1} +C {vsource.sym} 1150 -790 0 0 {name=V1 value=1.6 savecurrent=false} +C {gnd.sym} 1150 -730 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1150 -850 0 0 {name=p5 sig_type=std_logic lab=VDD} +C {gnd.sym} 930 -730 0 0 {name=l1 lab=GND} +C {lab_pin.sym} 930 -850 0 0 {name=p8 sig_type=std_logic lab=Vinminus} +C {vsource.sym} 720 -790 0 0 {name=V3 value="SIN(0.6 A 10G 0 0 0)" savecurrent=false} +C {gnd.sym} 720 -730 0 0 {name=l4 lab=GND +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {lab_pin.sym} 720 -850 0 0 {name=p10 sig_type=std_logic lab=Vinplus +value="dc 0 ac 0 SIN(0.6 0.3 12.7k 0 0 0)"} +C {vsource.sym} 930 -790 0 0 {name=V2 value="SIN(0.6 A 10G 0 0 180)" savecurrent=false} +C {gnd.sym} 740 -920 0 0 {name=l3 lab=GND} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_26/CML_core_tb_26.data b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_26/CML_core_tb_26.data new file mode 100644 index 00000000..f50fb91c --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_26/CML_core_tb_26.data @@ -0,0 +1,85 @@ + 1.628000000000e-10 -4.323817786181e-01 + 1.728000000000e-10 -5.218197731172e-01 + 1.828000000000e-10 -5.130055457506e-01 + 1.928000000000e-10 -4.161806120260e-01 + 2.028000000000e-10 -2.707614247853e-01 + 2.128000000000e-10 -1.119567587354e-01 + 2.228000000000e-10 5.136762599758e-02 + 2.328000000000e-10 2.215286991565e-01 + 2.428000000000e-10 3.860326290053e-01 + 2.528000000000e-10 5.068500219960e-01 + 2.628000000000e-10 5.377768628838e-01 + 2.728000000000e-10 4.721051539524e-01 + 2.828000000000e-10 3.402635220541e-01 + 2.928000000000e-10 1.841583768191e-01 + 3.028000000000e-10 2.301269990977e-02 + 3.128000000000e-10 -1.440620364153e-01 + 3.228000000000e-10 -3.141964231002e-01 + 3.328000000000e-10 -4.612191139012e-01 + 3.428000000000e-10 -5.367771990781e-01 + 3.528000000000e-10 -5.127750466140e-01 + 3.628000000000e-10 -4.056871368496e-01 + 3.728000000000e-10 -2.562682158482e-01 + 3.828000000000e-10 -9.672900675225e-02 + 3.928000000000e-10 6.713808807349e-02 + 4.028000000000e-10 2.375373509974e-01 + 4.128000000000e-10 4.000093780223e-01 + 4.228000000000e-10 5.140628089507e-01 + 4.328000000000e-10 5.356814484820e-01 + 4.428000000000e-10 4.622754301517e-01 + 4.528000000000e-10 3.266573796267e-01 + 4.628000000000e-10 1.696986500434e-01 + 4.728000000000e-10 8.224133790347e-03 + 4.828000000000e-10 -1.595501346883e-01 + 4.928000000000e-10 -3.290121653328e-01 + 5.028000000000e-10 -4.717216871818e-01 + 5.128000000000e-10 -5.386966497187e-01 + 5.228000000000e-10 -5.060218758391e-01 + 5.328000000000e-10 -3.932361292887e-01 + 5.428000000000e-10 -2.420585407817e-01 + 5.528000000000e-10 -8.215190368253e-02 + 5.628000000000e-10 8.228124773791e-02 + 5.728000000000e-10 2.529751404914e-01 + 5.828000000000e-10 4.131313439142e-01 + 5.928000000000e-10 5.202699684622e-01 + 6.028000000000e-10 5.326658673636e-01 + 6.128000000000e-10 4.519586245162e-01 + 6.228000000000e-10 3.128850848163e-01 + 6.328000000000e-10 1.552673526240e-01 + 6.428000000000e-10 -6.618031234040e-03 + 6.528000000000e-10 -1.750036732844e-01 + 6.628000000000e-10 -3.436243240549e-01 + 6.728000000000e-10 -4.815176030347e-01 + 6.828000000000e-10 -5.397683152546e-01 + 6.928000000000e-10 -4.985592512398e-01 + 7.028000000000e-10 -3.805077765022e-01 + 7.128000000000e-10 -2.277734449826e-01 + 7.228000000000e-10 -6.758418108638e-02 + 7.328000000000e-10 9.750342024286e-02 + 7.428000000000e-10 2.682954130339e-01 + 7.528000000000e-10 4.258393021470e-01 + 7.628000000000e-10 5.256345626853e-01 + 7.728000000000e-10 5.289060292912e-01 + 7.828000000000e-10 4.411430993719e-01 + 7.928000000000e-10 2.990145992376e-01 + 8.028000000000e-10 1.407841701293e-01 + 8.128000000000e-10 -2.148551411031e-02 + 8.228000000000e-10 -1.904941552057e-01 + 8.328000000000e-10 -3.579942758686e-01 + 8.428000000000e-10 -4.907023738119e-01 + 8.528000000000e-10 -5.400209406036e-01 + 8.628000000000e-10 -4.904872044524e-01 + 8.728000000000e-10 -3.674750163499e-01 + 8.828000000000e-10 -2.134433797210e-01 + 8.928000000000e-10 -5.293556734921e-02 + 9.028000000000e-10 1.127840525322e-01 + 9.128000000000e-10 2.835604325687e-01 + 9.228000000000e-10 4.380556116504e-01 + 9.328000000000e-10 5.301928903803e-01 + 9.428000000000e-10 5.243535525106e-01 + 9.528000000000e-10 4.298886927263e-01 + 9.628000000000e-10 2.850186727532e-01 + 9.728000000000e-10 1.263001165080e-01 + 9.828000000000e-10 -3.646027271135e-02 + 9.928000000000e-10 -2.059993087376e-01 + 1.000000000000e-09 -3.287656823991e-01 diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_26/CML_divider.sym b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_26/CML_divider.sym new file mode 100644 index 00000000..e46eb233 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_26/CML_divider.sym @@ -0,0 +1,30 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 -120 -20 -100 -20 {} +L 4 -120 20 -100 20 {} +L 4 100 -20 120 -20 {} +L 4 100 20 120 20 {} +L 7 0 -60 0 -40 {} +L 7 0 40 0 60 {} +B 5 -122.5 -22.5 -117.5 -17.5 {name=Vo+ dir=out} +B 5 -122.5 17.5 -117.5 22.5 {name=Vo- dir=out} +B 5 117.5 -22.5 122.5 -17.5 {name=Vi+ dir=in} +B 5 117.5 17.5 122.5 22.5 {name=Vi- dir=in} +B 5 -2.5 -62.5 2.5 -57.5 {name=vdd dir=inout} +B 5 -2.5 57.5 2.5 62.5 {name=gnd dir=inout} +P 4 5 100 -40 -100 -40 -100 40 100 40 100 -40 {} +T {@symname} -44 -6 0 0 0.3 0.3 {} +T {@name} 45 -52 0 0 0.2 0.2 {} +T {Vo+} -95 -24 0 0 0.2 0.2 {} +T {Vo-} -95 16 0 0 0.2 0.2 {} +T {Vi+} 95 -16 2 0 0.2 0.2 {} +T {Vi-} 95 24 2 0 0.2 0.2 {} +T {vdd} 10 -39 0 1 0.2 0.2 {} +T {gnd} -10 34 2 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_26/conditions.yaml b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_26/conditions.yaml new file mode 100644 index 00000000..dc34a5cc --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_26/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/xschem/simulations/schematic/CML_divider.spice +N: 26 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: ss +filename: CML_core_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/run_26 +temperature: '80' +vdd: '1.6' diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/simulation_summary.csv b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/simulation_summary.csv new file mode 100644 index 00000000..b3ff8851 --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/simulation_summary.csv @@ -0,0 +1,28 @@ +run,corner,temperature,vdd,time,vo_diff,frequency,amplitude,voltage_swing +run_00,tt,-40,0.8,"[1.628e-10, 1.728e-10, 1.828e-10, …]","[0.417, 0.566, 0.643, …]",5.902e+09,0.652,1.304 +run_01,ff,-40,0.8,"[1.628e-10, 1.728e-10, 1.828e-10, …]","[0.388, 0.541, 0.624, …]",5.902e+09,0.636,1.273 +run_02,ss,-40,0.8,"[1.628e-10, 1.728e-10, 1.828e-10, …]","[0.437, 0.584, 0.658, …]",5.902e+09,0.666,1.331 +run_03,tt,27,0.8,"[1.628e-10, 1.728e-10, 1.828e-10, …]","[0.379, 0.531, 0.612, …]",5.902e+09,0.623,1.246 +run_04,ff,27,0.8,"[1.628e-10, 1.728e-10, 1.828e-10, …]","[0.353, 0.507, 0.592, …]",5.902e+09,0.606,1.211 +run_05,ss,27,0.8,"[1.628e-10, 1.728e-10, 1.828e-10, …]","[0.390, 0.545, 0.627, …]",5.902e+09,0.638,1.277 +run_06,tt,80,0.8,"[1.628e-10, 1.728e-10, 1.828e-10, …]","[0.327, 0.482, 0.573, …]",5.902e+09,0.591,1.182 +run_07,ff,80,0.8,"[1.628e-10, 1.728e-10, 1.828e-10, …]","[0.305, 0.459, 0.552, …]",5.902e+09,0.573,1.145 +run_08,ss,80,0.8,"[1.628e-10, 1.728e-10, 1.828e-10, …]","[0.333, 0.492, 0.587, …]",5.902e+09,0.609,1.217 +run_09,tt,-40,1.2,"[1.628e-10, 1.728e-10, 1.828e-10, …]","[0.567, 0.586, 0.501, …]",5.902e+09,0.592,1.184 +run_10,ff,-40,1.2,"[1.628e-10, 1.728e-10, 1.828e-10, …]","[0.543, 0.589, 0.533, …]",5.902e+09,0.589,1.178 +run_11,ss,-40,1.2,"[1.628e-10, 1.728e-10, 1.828e-10, …]","[0.583, 0.581, 0.475, …]",5.902e+09,0.592,1.183 +run_12,tt,27,1.2,"[1.628e-10, 1.728e-10, 1.828e-10, …]","[0.556, 0.565, 0.480, …]",5.902e+09,0.574,1.148 +run_13,ff,27,1.2,"[1.628e-10, 1.728e-10, 1.828e-10, …]","[0.537, 0.567, 0.503, …]",5.902e+09,0.568,1.136 +run_14,ss,27,1.2,"[1.628e-10, 1.728e-10, 1.828e-10, …]","[0.569, 0.568, 0.470, …]",5.902e+09,0.582,1.163 +run_15,tt,80,1.2,"[1.628e-10, 1.728e-10, 1.828e-10, …]","[0.534, 0.545, 0.467, …]",5.902e+09,0.553,1.105 +run_16,ff,80,1.2,"[1.628e-10, 1.728e-10, 1.828e-10, …]","[0.518, 0.543, 0.480, …]",5.902e+09,0.544,1.089 +run_17,ss,80,1.2,"[1.628e-10, 1.728e-10, 1.828e-10, …]","[0.546, 0.554, 0.470, …]",5.902e+09,0.564,1.127 +run_18,tt,-40,1.6,"[1.628e-10, 1.728e-10, 1.828e-10, …]","[-5.311e-01, -5.593e-01, -4.797e-01, …]",5.902e+09,0.563,1.127 +run_19,ff,-40,1.6,"[1.628e-10, 1.728e-10, 1.828e-10, …]","[-5.156e-01, -5.591e-01, -4.970e-01, …]",5.902e+09,0.562,1.124 +run_20,ss,-40,1.6,"[1.628e-10, 1.728e-10, 1.828e-10, …]","[-5.458e-01, -5.643e-01, -4.724e-01, …]",5.902e+09,0.572,1.144 +run_21,tt,27,1.6,"[1.628e-10, 1.728e-10, 1.828e-10, …]","[-4.968e-01, -5.441e-01, -4.869e-01, …]",5.902e+09,0.547,1.094 +run_22,ff,27,1.6,"[1.628e-10, 1.728e-10, 1.828e-10, …]","[-4.848e-01, -5.392e-01, -4.922e-01, …]",5.902e+09,0.544,1.087 +run_23,ss,27,1.6,"[1.628e-10, 1.728e-10, 1.828e-10, …]","[-5.032e-01, -5.559e-01, -4.999e-01, …]",5.902e+09,0.558,1.116 +run_24,tt,80,1.6,"[1.628e-10, 1.728e-10, 1.828e-10, …]","[-4.328e-01, -5.105e-01, -4.919e-01, …]",5.902e+09,0.527,1.054 +run_25,ff,80,1.6,"[1.628e-10, 1.728e-10, 1.828e-10, …]","[-4.235e-01, -5.023e-01, -4.882e-01, …]",5.902e+09,0.520,1.041 +run_26,ss,80,1.6,"[1.628e-10, 1.728e-10, 1.828e-10, …]","[-4.324e-01, -5.218e-01, -5.130e-01, …]",5.902e+09,0.539,1.078 diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/simulation_summary.md b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/simulation_summary.md new file mode 100644 index 00000000..eb3c339b --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/simulation_summary.md @@ -0,0 +1,31 @@ +# Simulation Summary for CML divider frequency response + +| run | corner | temperature | vdd | time | vo_diff | frequency | amplitude | voltage_swing | +| :-- | -----: | ----------: | --: | ---: | ------: | --------: | --------: | ------------: | +| run_00 | tt | -40 | 0.8 | [1.628e-10, 1.728e-10, 1.828e-10, …] | [0.417, 0.566, 0.643, …] | 5.902e+09 | 0.652 | 1.304 | +| run_01 | ff | -40 | 0.8 | [1.628e-10, 1.728e-10, 1.828e-10, …] | [0.388, 0.541, 0.624, …] | 5.902e+09 | 0.636 | 1.273 | +| run_02 | ss | -40 | 0.8 | [1.628e-10, 1.728e-10, 1.828e-10, …] | [0.437, 0.584, 0.658, …] | 5.902e+09 | 0.666 | 1.331 | +| run_03 | tt | 27 | 0.8 | [1.628e-10, 1.728e-10, 1.828e-10, …] | [0.379, 0.531, 0.612, …] | 5.902e+09 | 0.623 | 1.246 | +| run_04 | ff | 27 | 0.8 | [1.628e-10, 1.728e-10, 1.828e-10, …] | [0.353, 0.507, 0.592, …] | 5.902e+09 | 0.606 | 1.211 | +| run_05 | ss | 27 | 0.8 | [1.628e-10, 1.728e-10, 1.828e-10, …] | [0.390, 0.545, 0.627, …] | 5.902e+09 | 0.638 | 1.277 | +| run_06 | tt | 80 | 0.8 | [1.628e-10, 1.728e-10, 1.828e-10, …] | [0.327, 0.482, 0.573, …] | 5.902e+09 | 0.591 | 1.182 | +| run_07 | ff | 80 | 0.8 | [1.628e-10, 1.728e-10, 1.828e-10, …] | [0.305, 0.459, 0.552, …] | 5.902e+09 | 0.573 | 1.145 | +| run_08 | ss | 80 | 0.8 | [1.628e-10, 1.728e-10, 1.828e-10, …] | [0.333, 0.492, 0.587, …] | 5.902e+09 | 0.609 | 1.217 | +| run_09 | tt | -40 | 1.2 | [1.628e-10, 1.728e-10, 1.828e-10, …] | [0.567, 0.586, 0.501, …] | 5.902e+09 | 0.592 | 1.184 | +| run_10 | ff | -40 | 1.2 | [1.628e-10, 1.728e-10, 1.828e-10, …] | [0.543, 0.589, 0.533, …] | 5.902e+09 | 0.589 | 1.178 | +| run_11 | ss | -40 | 1.2 | [1.628e-10, 1.728e-10, 1.828e-10, …] | [0.583, 0.581, 0.475, …] | 5.902e+09 | 0.592 | 1.183 | +| run_12 | tt | 27 | 1.2 | [1.628e-10, 1.728e-10, 1.828e-10, …] | [0.556, 0.565, 0.480, …] | 5.902e+09 | 0.574 | 1.148 | +| run_13 | ff | 27 | 1.2 | [1.628e-10, 1.728e-10, 1.828e-10, …] | [0.537, 0.567, 0.503, …] | 5.902e+09 | 0.568 | 1.136 | +| run_14 | ss | 27 | 1.2 | [1.628e-10, 1.728e-10, 1.828e-10, …] | [0.569, 0.568, 0.470, …] | 5.902e+09 | 0.582 | 1.163 | +| run_15 | tt | 80 | 1.2 | [1.628e-10, 1.728e-10, 1.828e-10, …] | [0.534, 0.545, 0.467, …] | 5.902e+09 | 0.553 | 1.105 | +| run_16 | ff | 80 | 1.2 | [1.628e-10, 1.728e-10, 1.828e-10, …] | [0.518, 0.543, 0.480, …] | 5.902e+09 | 0.544 | 1.089 | +| run_17 | ss | 80 | 1.2 | [1.628e-10, 1.728e-10, 1.828e-10, …] | [0.546, 0.554, 0.470, …] | 5.902e+09 | 0.564 | 1.127 | +| run_18 | tt | -40 | 1.6 | [1.628e-10, 1.728e-10, 1.828e-10, …] | [-5.311e-01, -5.593e-01, -4.797e-01, …] | 5.902e+09 | 0.563 | 1.127 | +| run_19 | ff | -40 | 1.6 | [1.628e-10, 1.728e-10, 1.828e-10, …] | [-5.156e-01, -5.591e-01, -4.970e-01, …] | 5.902e+09 | 0.562 | 1.124 | +| run_20 | ss | -40 | 1.6 | [1.628e-10, 1.728e-10, 1.828e-10, …] | [-5.458e-01, -5.643e-01, -4.724e-01, …] | 5.902e+09 | 0.572 | 1.144 | +| run_21 | tt | 27 | 1.6 | [1.628e-10, 1.728e-10, 1.828e-10, …] | [-4.968e-01, -5.441e-01, -4.869e-01, …] | 5.902e+09 | 0.547 | 1.094 | +| run_22 | ff | 27 | 1.6 | [1.628e-10, 1.728e-10, 1.828e-10, …] | [-4.848e-01, -5.392e-01, -4.922e-01, …] | 5.902e+09 | 0.544 | 1.087 | +| run_23 | ss | 27 | 1.6 | [1.628e-10, 1.728e-10, 1.828e-10, …] | [-5.032e-01, -5.559e-01, -4.999e-01, …] | 5.902e+09 | 0.558 | 1.116 | +| run_24 | tt | 80 | 1.6 | [1.628e-10, 1.728e-10, 1.828e-10, …] | [-4.328e-01, -5.105e-01, -4.919e-01, …] | 5.902e+09 | 0.527 | 1.054 | +| run_25 | ff | 80 | 1.6 | [1.628e-10, 1.728e-10, 1.828e-10, …] | [-4.235e-01, -5.023e-01, -4.882e-01, …] | 5.902e+09 | 0.520 | 1.041 | +| run_26 | ss | 80 | 1.6 | [1.628e-10, 1.728e-10, 1.828e-10, …] | [-4.324e-01, -5.218e-01, -5.130e-01, …] | 5.902e+09 | 0.539 | 1.078 | diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/vo_diff_vs_time.png b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/vo_diff_vs_time.png new file mode 100644 index 00000000..926b1f5c Binary files /dev/null and b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/parameters/ac_params/vo_diff_vs_time.png differ diff --git a/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/summary.md b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/summary.md new file mode 100644 index 00000000..10bb6ebe --- /dev/null +++ b/modules/module_4_type_2_PLL/CML_divider/runs/RUN_2025-11-17_08-43-29/summary.md @@ -0,0 +1,11 @@ + +# CACE Summary for CML_divider + +**netlist source**: schematic + +| Parameter | Tool | Result | Min Limit | Min Value | Typ Target | Typ Value | Max Limit | Max Value | Status | +| :------------------- | :------------------- | :-------------- | ---------: | -----------: | ---------: | -----------: | ---------: | -----------: | :------: | +| Frequency | ngspice | frequency | 4.3 GHz | 5.902 GHz | 5.0 GHz | 5.902 GHz | 5.2 GHz | 5.902 GHz | Fail ❌ | +| Amplitude | ngspice | amplitude | 0.2 V | 0.520 V | 0.4 V | 0.573 V | 0.6 V | 0.666 V | Fail ❌ | +| Voltage swing | ngspice | voltage_swing | 0.4 V | 1.041 V | 0.8 V | 1.145 V | 1.2 V | 1.331 V | Fail ❌ | + diff --git a/modules/module_4_type_2_PLL/CML_divider/testbench/CML_core_tb.sch b/modules/module_4_type_2_PLL/CML_divider/testbench/CML_core_tb.sch index 0fc8ac25..52af1de9 100644 --- a/modules/module_4_type_2_PLL/CML_divider/testbench/CML_core_tb.sch +++ b/modules/module_4_type_2_PLL/CML_divider/testbench/CML_core_tb.sch @@ -1,19 +1,20 @@ -v {xschem version=3.4.6 file_version=1.2} +v {xschem version=3.4.8RC file_version=1.3} G {} K {} V {} S {} +F {} E {} B 2 1110 -700 1910 -300 {flags=graph -y1=0.72 -y2=1.2 +y1=0.29 +y2=1.1 ypos1=0 ypos2=2 divy=5 subdivy=1 unity=1 -x1=2.9974739e-10 -x2=5.9578291e-10 +x1=1.628e-10 +x2=1e-09 divx=5 subdivx=1 xlabmag=1.0 @@ -26,15 +27,15 @@ color="4 7" node="vo_m vo_p"} B 2 1110 -1120 1910 -720 {flags=graph -y1=0.17956962 -y2=0.4801486 +y1=0.3 +y2=0.9 ypos1=0 ypos2=2 divy=5 subdivy=1 unity=1 -x1=2.9974739e-10 -x2=5.9578291e-10 +x1=1.628e-10 +x2=1e-09 divx=5 subdivx=1 xlabmag=1.0 @@ -48,15 +49,15 @@ node="vinplus vinminus" } B 2 1930 -1120 2730 -720 {flags=graph -y1=-0.41 -y2=0.41 +y1=-0.79 +y2=0.79 ypos1=0 ypos2=2 divy=5 subdivy=1 unity=1 -x1=2.9974739e-10 -x2=5.9578291e-10 +x1=1.628e-10 +x2=1e-09 divx=5 subdivx=1 xlabmag=1.0 @@ -83,7 +84,7 @@ C {code_shown.sym} 10 -1150 0 0 {name=transient_tb only_toplevel=false value=" .include CML_core_tb.save .param temp=100 -.param A = 0.3 +.param A = 0 .ic V(Voplus)=1.2 .control set noaskquit diff --git a/modules/module_4_type_2_PLL/CML_divider/xschem/CML_divider.sch b/modules/module_4_type_2_PLL/CML_divider/xschem/CML_divider.sch index ad08aabc..30f06097 100644 --- a/modules/module_4_type_2_PLL/CML_divider/xschem/CML_divider.sch +++ b/modules/module_4_type_2_PLL/CML_divider/xschem/CML_divider.sch @@ -1,8 +1,9 @@ -v {xschem version=3.4.6 file_version=1.2} +v {xschem version=3.4.8RC file_version=1.3} G {} K {} V {} S {} +F {} E {} N 310 -500 310 -440 {lab=#net1} N 420 -440 530 -440 {lab=#net1} @@ -135,7 +136,7 @@ m=1 model=sg13_lv_nmos spiceprefix=X } -C {isource.sym} 730 -250 0 0 {name=I0 value=200u} +C {isource.sym} 730 -250 0 0 {name=I0 value=400u} C {sg13g2_pr/sg13_lv_nmos.sym} 1060 -380 0 1 {name=M4 l=0.2u w=2u @@ -210,7 +211,7 @@ m=1 model=sg13_lv_nmos spiceprefix=X } -C {isource.sym} 1690 -250 0 0 {name=I1 value=200u} +C {isource.sym} 1690 -250 0 0 {name=I1 value=400u} C {sg13g2_pr/sg13_lv_nmos.sym} 2020 -380 0 1 {name=M10 l=0.2u w=2u diff --git a/modules/module_4_type_2_PLL/LC_Oscillator/cace/LC_Oscillator.yaml b/modules/module_4_type_2_PLL/LC_Oscillator/cace/LC_Oscillator.yaml new file mode 100644 index 00000000..cd625789 --- /dev/null +++ b/modules/module_4_type_2_PLL/LC_Oscillator/cace/LC_Oscillator.yaml @@ -0,0 +1,115 @@ +#-------------------------------------------------------------- +# CACE circuit characterization file +#-------------------------------------------------------------- + +name: LC_Oscillator +description: LC based voltage controlled oscillator +PDK: ihp-sg13g2 + +cace_format: 5.2 + +authorship: + designer: Phillip F. Baade-Pedersen + company: IHP + creation_date: + license: Apache 2.0 + +paths: + root: .. + schematic: xschem/ + netlist: xschem/simulations + documentation: docs + +pins: + VDD: + description: Positive analog power supply + type: power + direction: inout + Vmin: 0.8 + Vmax: 1.6 + Vinplus: + description: Positive Input + type: signal + direction: input + Vinminus: + description: Negative Input + type: signal + direction: input + +default_conditions: + vdd: + description: Analog power supply voltage + display: Vdd + unit: V + typical: 1.2 + corner: + description: Process corner + display: Corner + typical: tt + temperature: + description: Ambient temperature + display: Temp + unit: °C + typical: 27 + +parameters: + ac_params: + description: Frequency characterization of the LC-VCO + display: VCO Control Voltage Repsonse + spec: + frequency: + display: Frequency + description: Output frequency of the VCO + unit: GHz + minimum: + value: 4.3 + typical: + value: 5.0 + maximum: + value: 5.2 + amplitude: + display: Amplitude + description: Differential output amplitude (half swing) + unit: V + minimum: + value: 0.2 + typical: + value: 0.4 + maximum: + value: 0.6 + voltage_swing: + display: Voltage swing + description: Differential peak-to-peak output swing + unit: V + minimum: + value: 0.4 + typical: + value: 0.8 + maximum: + value: 1.2 + tool: + ngspice: + template: LC_Oscillator_tb.sch + format: ascii + suffix: .data + variables: [time, vo_diff] + script: freq.py + script_variables: [frequency, amplitude, voltage_swing] + plot: + vo_diff_vs_time: + type: xyplot + xaxis: time + yaxis: vo_diff + conditions: + vdd: + minimum: 0.8 + typical: 1.2 + maximum: 1.6 + corner: + enumerate: [tt, ff, ss] + temperature: + minimum: -40 + typical: 27 + maximum: 80 + + diff --git a/modules/module_4_type_2_PLL/LC_Oscillator/cace/scripts/__pycache__/freq.cpython-310.pyc b/modules/module_4_type_2_PLL/LC_Oscillator/cace/scripts/__pycache__/freq.cpython-310.pyc new file mode 100644 index 00000000..6523f1ed Binary files /dev/null and b/modules/module_4_type_2_PLL/LC_Oscillator/cace/scripts/__pycache__/freq.cpython-310.pyc differ diff --git a/modules/module_4_type_2_PLL/LC_Oscillator/cace/scripts/freq.py b/modules/module_4_type_2_PLL/LC_Oscillator/cace/scripts/freq.py new file mode 100644 index 00000000..3c457ffe --- /dev/null +++ b/modules/module_4_type_2_PLL/LC_Oscillator/cace/scripts/freq.py @@ -0,0 +1,41 @@ +from typing import Any +import numpy as np + +def postprocess(results: dict[str, list], conditions: dict[str, Any]) -> dict[str, list]: + # Extract waveform + t = np.array(results['time']) + v = np.array(results['vo_diff']) + + if len(t) < 2 or len(v) == 0: + return { + 'frequency': [0.0], + 'amplitude': [0.0], + 'voltage_swing': [0.0] + } + + # --- Compute sampling frequency --- + dt = np.mean(np.diff(t)) + fs = 1.0 / dt + + # --- FFT to find main tone --- + Y = np.fft.fft(v - np.mean(v)) # remove DC + freqs = np.fft.fftfreq(len(Y), d=dt) + + # Use positive frequencies only + mask = freqs > 0 + freqs = freqs[mask] + Y = np.abs(Y[mask]) + + freq_peak = freqs[np.argmax(Y)] + + # --- Compute amplitude and voltage swing --- + v_max = np.max(v) + v_min = np.min(v) + voltage_swing = v_max - v_min + amplitude = voltage_swing / 2.0 + + return { + 'frequency': [freq_peak], + 'amplitude': [amplitude], + 'voltage_swing': [voltage_swing] + } diff --git a/modules/module_4_type_2_PLL/LC_Oscillator/cace/templates/LC_Oscillator_tb.sch b/modules/module_4_type_2_PLL/LC_Oscillator/cace/templates/LC_Oscillator_tb.sch new file mode 100644 index 00000000..adca2361 --- /dev/null +++ b/modules/module_4_type_2_PLL/LC_Oscillator/cace/templates/LC_Oscillator_tb.sch @@ -0,0 +1,57 @@ +v {xschem version=3.4.8RC file_version=1.3} +G {} +K {} +V {} +S {} +F {} +E {} +N 1570 -1060 1570 -1030 {lab=VDD} +N 1570 -970 1570 -940 {lab=GND} +N 1270 -1050 1270 -1030 {lab=GND} +N 1230 -1060 1230 -1030 {lab=VDD} +N 1140 -920 1160 -920 {lab=Voplus} +N 1140 -960 1160 -960 {lab=Vominus} +C {code_shown.sym} 440 -1140 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write LC_Oscillator_tb.raw +set appendwrite +tran 10p 10n 160p +save all + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata CACE\{simpath\}/CACE\{filename\}_CACE\{N\}.data vo_diff +quit + +.endc +"} +C {vsource.sym} 1570 -1000 0 0 {name=V1 value=CACE\{vdd\} savecurrent=false} +C {gnd.sym} 1570 -940 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1570 -1060 0 0 {name=p2 sig_type=std_logic lab=VDD} +C {opin.sym} 1140 -920 2 0 {name=p6 lab=Voplus} +C {gnd.sym} 1270 -1050 2 0 {name=l3 lab=GND} +C {opin.sym} 1140 -960 0 1 {name=p9 lab=Vominus} +C {LC_Oscillator.sym} 1250 -940 2 0 {name=x1} +C {devices/code_shown.sym} 450 -640 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib CACE\{PDK_ROOT\}/CACE\{PDK\}/libs.tech/ngspice/models/cornerMOSlv.lib mos_CACE\{corner\} + +.include CACE\{DUT_path\} + +.temp CACE\{temperature\} +" +} +C {iopin.sym} 1230 -1060 2 0 {name=p1 lab=VDD} diff --git a/modules/module_4_type_2_PLL/LC_Oscillator/cace/templates/xschemrc b/modules/module_4_type_2_PLL/LC_Oscillator/cace/templates/xschemrc new file mode 100644 index 00000000..36e35c71 --- /dev/null +++ b/modules/module_4_type_2_PLL/LC_Oscillator/cace/templates/xschemrc @@ -0,0 +1 @@ +source [file dirname [info script]]/../../xschem/xschemrc diff --git a/modules/module_4_type_2_PLL/LC_Oscillator/docs/CML_divider.md b/modules/module_4_type_2_PLL/LC_Oscillator/docs/CML_divider.md new file mode 100644 index 00000000..06216088 --- /dev/null +++ b/modules/module_4_type_2_PLL/LC_Oscillator/docs/CML_divider.md @@ -0,0 +1,54 @@ +# CML_divider + +- Description: Current mode logic divider +- PDK: ihp-sg13g2 + +## Authorship + +- Designer: Phillip F. Baade-Pedersen +- Company: IHP +- Created: None +- License: Apache 2.0 +- Last modified: None + +## Pins + +- VDD + + Description: Positive analog power supply + + Type: power + + Direction: inout + + Vmin: 0.8 + + Vmax: 1.6 +- Vinplus + + Description: Positive Input + + Type: signal + + Direction: input +- Vinminus + + Description: Negative Input + + Type: signal + + Direction: input + +## Default Conditions + +- vdd + + Description: Analog power supply voltage + + Display: Vdd + + Unit: V + + Typical: 1.2 +- corner + + Description: Process corner + + Display: Corner + + Typical: tt +- temperature + + Description: Ambient temperature + + Display: Temp + + Unit: °C + + Typical: 27 + +## Symbol + +![Symbol of CML_divider](CML_divider_symbol.svg) + +## Schematic + +![Schematic of CML_divider](CML_divider_schematic.svg) diff --git a/modules/module_4_type_2_PLL/LC_Oscillator/docs/CML_divider/schematic/frequency.png b/modules/module_4_type_2_PLL/LC_Oscillator/docs/CML_divider/schematic/frequency.png new file mode 100644 index 00000000..e4b0a21a Binary files /dev/null and b/modules/module_4_type_2_PLL/LC_Oscillator/docs/CML_divider/schematic/frequency.png differ diff --git a/modules/module_4_type_2_PLL/LC_Oscillator/docs/CML_divider/schematic/vo_diff_vs_time.png b/modules/module_4_type_2_PLL/LC_Oscillator/docs/CML_divider/schematic/vo_diff_vs_time.png new file mode 100644 index 00000000..b3049fae Binary files /dev/null and b/modules/module_4_type_2_PLL/LC_Oscillator/docs/CML_divider/schematic/vo_diff_vs_time.png differ diff --git a/modules/module_4_type_2_PLL/LC_Oscillator/docs/CML_divider_schematic.md b/modules/module_4_type_2_PLL/LC_Oscillator/docs/CML_divider_schematic.md new file mode 100644 index 00000000..51ae9078 --- /dev/null +++ b/modules/module_4_type_2_PLL/LC_Oscillator/docs/CML_divider_schematic.md @@ -0,0 +1,17 @@ + +# CACE Summary for CML_divider + +**netlist source**: schematic + +| Parameter | Tool | Result | Min Limit | Min Value | Typ Target | Typ Value | Max Limit | Max Value | Status | +| :------------------- | :------------------- | :-------------- | ---------: | -----------: | ---------: | -----------: | ---------: | -----------: | :------: | +| Frequency | ngspice | frequency | 4.3 GHz | 4.722 GHz | 5.0 GHz | 4.722 GHz | 5.2 GHz | 4.722 GHz | Pass ✅ | +| Amplitude | ngspice | amplitude | 0.2 V | 0.315 V | 0.4 V | 0.382 V | 0.6 V | 0.429 V | Pass ✅ | +| Voltage swing | ngspice | voltage_swing | 0.4 V | 0.629 V | 0.8 V | 0.763 V | 1.2 V | 0.857 V | Pass ✅ | + + +## Plots + +## vo_diff_vs_time + +![vo_diff_vs_time](./CML_divider/schematic/vo_diff_vs_time.png) diff --git a/modules/module_4_type_2_PLL/LC_Oscillator/docs/CML_divider_schematic.svg b/modules/module_4_type_2_PLL/LC_Oscillator/docs/CML_divider_schematic.svg new file mode 100644 index 00000000..5de9a6fa --- /dev/null +++ b/modules/module_4_type_2_PLL/LC_Oscillator/docs/CML_divider_schematic.svg @@ -0,0 +1,160 @@ + + + + diff --git a/modules/module_4_type_2_PLL/LC_Oscillator/docs/CML_divider_symbol.svg b/modules/module_4_type_2_PLL/LC_Oscillator/docs/CML_divider_symbol.svg new file mode 100644 index 00000000..5de9a6fa --- /dev/null +++ b/modules/module_4_type_2_PLL/LC_Oscillator/docs/CML_divider_symbol.svg @@ -0,0 +1,160 @@ + + + + diff --git a/modules/module_4_type_2_PLL/LC_Oscillator/docs/LC VCO.md b/modules/module_4_type_2_PLL/LC_Oscillator/docs/LC VCO.md new file mode 100644 index 00000000..66d1484a --- /dev/null +++ b/modules/module_4_type_2_PLL/LC_Oscillator/docs/LC VCO.md @@ -0,0 +1,54 @@ +# LC VCO + +- Description: LC based voltage controlled oscillator +- PDK: ihp-sg13g2 + +## Authorship + +- Designer: Phillip F. Baade-Pedersen +- Company: IHP +- Created: None +- License: Apache 2.0 +- Last modified: None + +## Pins + +- VDD + + Description: Positive analog power supply + + Type: power + + Direction: inout + + Vmin: 0.8 + + Vmax: 1.6 +- Vinplus + + Description: Positive Input + + Type: signal + + Direction: input +- Vinminus + + Description: Negative Input + + Type: signal + + Direction: input + +## Default Conditions + +- vdd + + Description: Analog power supply voltage + + Display: Vdd + + Unit: V + + Typical: 1.2 +- corner + + Description: Process corner + + Display: Corner + + Typical: tt +- temperature + + Description: Ambient temperature + + Display: Temp + + Unit: °C + + Typical: 27 + +## Symbol + +![Symbol of LC VCO](LC VCO_symbol.svg) + +## Schematic + +![Schematic of LC VCO](LC VCO_schematic.svg) diff --git a/modules/module_4_type_2_PLL/LC_Oscillator/docs/LC VCO_schematic.md b/modules/module_4_type_2_PLL/LC_Oscillator/docs/LC VCO_schematic.md new file mode 100644 index 00000000..0ab01435 --- /dev/null +++ b/modules/module_4_type_2_PLL/LC_Oscillator/docs/LC VCO_schematic.md @@ -0,0 +1,13 @@ + +# CACE Summary for LC VCO + +**netlist source**: schematic + +| Parameter | Tool | Result | Min Limit | Min Value | Typ Target | Typ Value | Max Limit | Max Value | Status | +| :------------------- | :------------------- | :-------------- | ---------: | -----------: | ---------: | -----------: | ---------: | -----------: | :------: | +| Frequency | ngspice | frequency | 4.3 GHz | ​ | 5.0 GHz | ​ | 5.2 GHz | ​ | Skip 🟧 | +| Amplitude | ngspice | amplitude | 0.2 V | ​ | 0.4 V | ​ | 0.6 V | ​ | Skip 🟧 | +| Voltage swing | ngspice | voltage_swing | 0.4 V | ​ | 0.8 V | ​ | 1.2 V | ​ | Skip 🟧 | + + +## Plots diff --git a/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/LC_Oscillator_tb.sch b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/LC_Oscillator_tb.sch new file mode 100644 index 00000000..adca2361 --- /dev/null +++ b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/LC_Oscillator_tb.sch @@ -0,0 +1,57 @@ +v {xschem version=3.4.8RC file_version=1.3} +G {} +K {} +V {} +S {} +F {} +E {} +N 1570 -1060 1570 -1030 {lab=VDD} +N 1570 -970 1570 -940 {lab=GND} +N 1270 -1050 1270 -1030 {lab=GND} +N 1230 -1060 1230 -1030 {lab=VDD} +N 1140 -920 1160 -920 {lab=Voplus} +N 1140 -960 1160 -960 {lab=Vominus} +C {code_shown.sym} 440 -1140 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write LC_Oscillator_tb.raw +set appendwrite +tran 10p 10n 160p +save all + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata CACE\{simpath\}/CACE\{filename\}_CACE\{N\}.data vo_diff +quit + +.endc +"} +C {vsource.sym} 1570 -1000 0 0 {name=V1 value=CACE\{vdd\} savecurrent=false} +C {gnd.sym} 1570 -940 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1570 -1060 0 0 {name=p2 sig_type=std_logic lab=VDD} +C {opin.sym} 1140 -920 2 0 {name=p6 lab=Voplus} +C {gnd.sym} 1270 -1050 2 0 {name=l3 lab=GND} +C {opin.sym} 1140 -960 0 1 {name=p9 lab=Vominus} +C {LC_Oscillator.sym} 1250 -940 2 0 {name=x1} +C {devices/code_shown.sym} 450 -640 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib CACE\{PDK_ROOT\}/CACE\{PDK\}/libs.tech/ngspice/models/cornerMOSlv.lib mos_CACE\{corner\} + +.include CACE\{DUT_path\} + +.temp CACE\{temperature\} +" +} +C {iopin.sym} 1230 -1060 2 0 {name=p1 lab=VDD} diff --git a/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_00/.spiceinit b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_00/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_00/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_00/LC_Oscillator.sym b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_00/LC_Oscillator.sym new file mode 100644 index 00000000..e632b156 --- /dev/null +++ b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_00/LC_Oscillator.sym @@ -0,0 +1,27 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 70 -20 90 -20 {} +L 4 70 20 90 20 {} +L 7 20 70 20 90 {} +L 7 -20 70 -20 90 {} +B 5 87.5 -22.5 92.5 -17.5 {name=Voplus dir=out} +B 5 17.5 87.5 22.5 92.5 {name=vdd dir=inout} +B 5 -22.5 87.5 -17.5 92.5 {name=gnd dir=inout} +B 5 87.5 17.5 92.5 22.5 {name=Vominus dir=out} +A 4 -1.666666666666714 1.666666666666714 71.68604389202189 287.5924245621816 360 {} +A 4 -30 27.5 40.69705149024927 42.51044707800085 94.97910584399833 {} +A 4 30 -27.5 40.69705149024927 222.5104470780009 94.97910584399833 {} +T {@symname} -40.5 -56 0 0 0.1 0.1 {} +T {@name} -40 -47 0 0 0.1 0.1 { +} +T {Voplus} 65 -24 0 1 0.2 0.2 {} +T {vdd} 5 64 2 1 0.2 0.2 {} +T {gnd} -35 64 2 1 0.2 0.2 {} +T {Vominus} 65 16 0 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_00/LC_Oscillator_tb.sch b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_00/LC_Oscillator_tb.sch new file mode 100644 index 00000000..f2c9ddb3 --- /dev/null +++ b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_00/LC_Oscillator_tb.sch @@ -0,0 +1,57 @@ +v {xschem version=3.4.8RC file_version=1.3} +G {} +K {} +V {} +S {} +F {} +E {} +N 1570 -1060 1570 -1030 {lab=VDD} +N 1570 -970 1570 -940 {lab=GND} +N 1270 -1050 1270 -1030 {lab=GND} +N 1230 -1060 1230 -1030 {lab=VDD} +N 1140 -920 1160 -920 {lab=Voplus} +N 1140 -960 1160 -960 {lab=Vominus} +C {code_shown.sym} 440 -1140 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write LC_Oscillator_tb.raw +set appendwrite +tran 10p 10n 160p +save all + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_00/LC_Oscillator_tb_0.data vo_diff +quit + +.endc +"} +C {vsource.sym} 1570 -1000 0 0 {name=V1 value=0.8 savecurrent=false} +C {gnd.sym} 1570 -940 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1570 -1060 0 0 {name=p2 sig_type=std_logic lab=VDD} +C {opin.sym} 1140 -920 2 0 {name=p6 lab=Voplus} +C {gnd.sym} 1270 -1050 2 0 {name=l3 lab=GND} +C {opin.sym} 1140 -960 0 1 {name=p9 lab=Vominus} +C {LC_Oscillator.sym} 1250 -940 2 0 {name=x1} +C {devices/code_shown.sym} 450 -640 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_tt + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/LC_Oscillator/xschem/simulations/schematic/LC_Oscillator.spice + +.temp -40 +" +} +C {iopin.sym} 1230 -1060 2 0 {name=p1 lab=VDD} diff --git a/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_00/conditions.yaml b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_00/conditions.yaml new file mode 100644 index 00000000..367b2deb --- /dev/null +++ b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_00/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/LC_Oscillator/xschem/simulations/schematic/LC_Oscillator.spice +N: 0 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: tt +filename: LC_Oscillator_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_00 +temperature: '-40' +vdd: '0.8' diff --git a/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_01/.spiceinit b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_01/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_01/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_01/LC_Oscillator.sym b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_01/LC_Oscillator.sym new file mode 100644 index 00000000..e632b156 --- /dev/null +++ b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_01/LC_Oscillator.sym @@ -0,0 +1,27 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 70 -20 90 -20 {} +L 4 70 20 90 20 {} +L 7 20 70 20 90 {} +L 7 -20 70 -20 90 {} +B 5 87.5 -22.5 92.5 -17.5 {name=Voplus dir=out} +B 5 17.5 87.5 22.5 92.5 {name=vdd dir=inout} +B 5 -22.5 87.5 -17.5 92.5 {name=gnd dir=inout} +B 5 87.5 17.5 92.5 22.5 {name=Vominus dir=out} +A 4 -1.666666666666714 1.666666666666714 71.68604389202189 287.5924245621816 360 {} +A 4 -30 27.5 40.69705149024927 42.51044707800085 94.97910584399833 {} +A 4 30 -27.5 40.69705149024927 222.5104470780009 94.97910584399833 {} +T {@symname} -40.5 -56 0 0 0.1 0.1 {} +T {@name} -40 -47 0 0 0.1 0.1 { +} +T {Voplus} 65 -24 0 1 0.2 0.2 {} +T {vdd} 5 64 2 1 0.2 0.2 {} +T {gnd} -35 64 2 1 0.2 0.2 {} +T {Vominus} 65 16 0 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_01/LC_Oscillator_tb.sch b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_01/LC_Oscillator_tb.sch new file mode 100644 index 00000000..99a2d4a7 --- /dev/null +++ b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_01/LC_Oscillator_tb.sch @@ -0,0 +1,57 @@ +v {xschem version=3.4.8RC file_version=1.3} +G {} +K {} +V {} +S {} +F {} +E {} +N 1570 -1060 1570 -1030 {lab=VDD} +N 1570 -970 1570 -940 {lab=GND} +N 1270 -1050 1270 -1030 {lab=GND} +N 1230 -1060 1230 -1030 {lab=VDD} +N 1140 -920 1160 -920 {lab=Voplus} +N 1140 -960 1160 -960 {lab=Vominus} +C {code_shown.sym} 440 -1140 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write LC_Oscillator_tb.raw +set appendwrite +tran 10p 10n 160p +save all + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_01/LC_Oscillator_tb_1.data vo_diff +quit + +.endc +"} +C {vsource.sym} 1570 -1000 0 0 {name=V1 value=1.2 savecurrent=false} +C {gnd.sym} 1570 -940 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1570 -1060 0 0 {name=p2 sig_type=std_logic lab=VDD} +C {opin.sym} 1140 -920 2 0 {name=p6 lab=Voplus} +C {gnd.sym} 1270 -1050 2 0 {name=l3 lab=GND} +C {opin.sym} 1140 -960 0 1 {name=p9 lab=Vominus} +C {LC_Oscillator.sym} 1250 -940 2 0 {name=x1} +C {devices/code_shown.sym} 450 -640 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_tt + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/LC_Oscillator/xschem/simulations/schematic/LC_Oscillator.spice + +.temp -40 +" +} +C {iopin.sym} 1230 -1060 2 0 {name=p1 lab=VDD} diff --git a/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_01/LC_Oscillator_tb_1.data b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_01/LC_Oscillator_tb_1.data new file mode 100644 index 00000000..4770777e --- /dev/null +++ b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_01/LC_Oscillator_tb_1.data @@ -0,0 +1,985 @@ + 1.628000000000e-10 8.565847765148e-03 + 1.728000000000e-10 -6.623891474136e-03 + 1.828000000000e-10 -2.149900452262e-02 + 1.928000000000e-10 -3.395630969603e-02 + 2.028000000000e-10 -4.214225425156e-02 + 2.128000000000e-10 -4.473303828337e-02 + 2.228000000000e-10 -4.114646211559e-02 + 2.328000000000e-10 -3.164780138673e-02 + 2.428000000000e-10 -1.733493719066e-02 + 2.528000000000e-10 -1.475902708514e-05 + 2.628000000000e-10 1.801229056757e-02 + 2.728000000000e-10 3.424177589497e-02 + 2.828000000000e-10 4.630842904386e-02 + 2.928000000000e-10 5.233854800642e-02 + 3.028000000000e-10 5.124830570286e-02 + 3.128000000000e-10 4.292499959640e-02 + 3.228000000000e-10 2.826279486373e-02 + 3.328000000000e-10 9.061328259784e-03 + 3.428000000000e-10 -1.218446227620e-02 + 3.528000000000e-10 -3.258407773430e-02 + 3.628000000000e-10 -4.922711402870e-02 + 3.728000000000e-10 -5.960412956689e-02 + 3.828000000000e-10 -6.200216373737e-02 + 3.928000000000e-10 -5.578779277007e-02 + 4.028000000000e-10 -4.151822253240e-02 + 4.128000000000e-10 -2.087977319278e-02 + 4.228000000000e-10 3.509538925168e-03 + 4.328000000000e-10 2.840051879831e-02 + 4.428000000000e-10 5.031045098685e-02 + 4.528000000000e-10 6.600621989769e-02 + 4.628000000000e-10 7.301026491956e-02 + 4.728000000000e-10 7.001348113487e-02 + 4.828000000000e-10 5.708793198415e-02 + 4.928000000000e-10 3.568931903424e-02 + 5.028000000000e-10 8.468468856595e-03 + 5.128000000000e-10 -2.103839002910e-02 + 5.228000000000e-10 -4.879745780418e-02 + 5.328000000000e-10 -7.079799197054e-02 + 5.428000000000e-10 -8.366402612507e-02 + 5.528000000000e-10 -8.522467190017e-02 + 5.628000000000e-10 -7.488213568832e-02 + 5.728000000000e-10 -5.369274103188e-02 + 5.828000000000e-10 -2.420558417064e-02 + 5.928000000000e-10 9.838250210788e-03 + 6.028000000000e-10 4.389786137865e-02 + 6.128000000000e-10 7.313612196732e-02 + 6.228000000000e-10 9.317029381508e-02 + 6.328000000000e-10 1.008048636013e-01 + 6.428000000000e-10 9.453797659594e-02 + 6.528000000000e-10 7.483018560343e-02 + 6.628000000000e-10 4.398985582914e-02 + 6.728000000000e-10 5.816660175979e-03 + 6.828000000000e-10 -3.471277835159e-02 + 6.928000000000e-10 -7.196764451569e-02 + 7.028000000000e-10 -1.005123794459e-01 + 7.128000000000e-10 -1.159090211734e-01 + 7.228000000000e-10 -1.154865796847e-01 + 7.328000000000e-10 -9.886473682816e-02 + 7.428000000000e-10 -6.792628487378e-02 + 7.528000000000e-10 -2.639734963927e-02 + 7.628000000000e-10 2.046243705070e-02 + 7.728000000000e-10 6.630959146633e-02 + 7.828000000000e-10 1.045518775622e-01 + 7.928000000000e-10 1.293821610824e-01 + 8.028000000000e-10 1.367642385318e-01 + 8.128000000000e-10 1.251543282211e-01 + 8.228000000000e-10 9.576163056961e-02 + 8.328000000000e-10 5.209178012908e-02 + 8.428000000000e-10 -4.716536260219e-04 + 8.528000000000e-10 -5.503568951117e-02 + 8.628000000000e-10 -1.039481915095e-01 + 8.728000000000e-10 -1.398621887364e-01 + 8.828000000000e-10 -1.571023681366e-01 + 8.928000000000e-10 -1.527074493028e-01 + 9.028000000000e-10 -1.268841473858e-01 + 9.128000000000e-10 -8.271620952443e-02 + 9.228000000000e-10 -2.557497283731e-02 + 9.328000000000e-10 3.730076356702e-02 + 9.428000000000e-10 9.737305611173e-02 + 9.528000000000e-10 1.457918680082e-01 + 9.628000000000e-10 1.750145185305e-01 + 9.728000000000e-10 1.802461947543e-01 + 9.828000000000e-10 1.603197408994e-01 + 9.928000000000e-10 1.176824119846e-01 + 1.002800000000e-09 5.756980044695e-02 + 1.012800000000e-09 -1.263233340685e-02 + 1.022800000000e-09 -8.376839157059e-02 + 1.032800000000e-09 -1.456472567414e-01 + 1.042800000000e-09 -1.886636295923e-01 + 1.052800000000e-09 -2.058960621597e-01 + 1.062800000000e-09 -1.944877494144e-01 + 1.072800000000e-09 -1.558485614831e-01 + 1.082800000000e-09 -9.489134263772e-02 + 1.092800000000e-09 -1.902197000496e-02 + 1.102800000000e-09 6.229009031031e-02 + 1.112800000000e-09 1.378489952403e-01 + 1.122800000000e-09 1.961211712824e-01 + 1.132800000000e-09 2.277675427041e-01 + 1.142800000000e-09 2.276792690371e-01 + 1.152800000000e-09 1.957996236798e-01 + 1.162800000000e-09 1.365033947536e-01 + 1.172800000000e-09 5.710999759203e-02 + 1.182800000000e-09 -3.281557852986e-02 + 1.192800000000e-09 -1.215027536798e-01 + 1.202800000000e-09 -1.958065523494e-01 + 1.212800000000e-09 -2.437702073058e-01 + 1.222800000000e-09 -2.576465834890e-01 + 1.232800000000e-09 -2.354650174880e-01 + 1.242800000000e-09 -1.806372456341e-01 + 1.252800000000e-09 -1.003377740586e-01 + 1.262800000000e-09 -4.126861861743e-03 + 1.272800000000e-09 9.611425108892e-02 + 1.282800000000e-09 1.861956072748e-01 + 1.292800000000e-09 2.517905222458e-01 + 1.302800000000e-09 2.821769778638e-01 + 1.312800000000e-09 2.727859287957e-01 + 1.322800000000e-09 2.254968734748e-01 + 1.332800000000e-09 1.471439457690e-01 + 1.342800000000e-09 4.734420155532e-02 + 1.352800000000e-09 -6.217085627007e-02 + 1.362800000000e-09 -1.668425131519e-01 + 1.372800000000e-09 -2.504703767335e-01 + 1.382800000000e-09 -2.992061368173e-01 + 1.392800000000e-09 -3.053740860997e-01 + 1.402800000000e-09 -2.688571666281e-01 + 1.412800000000e-09 -1.956392857484e-01 + 1.422800000000e-09 -9.526820760645e-02 + 1.432800000000e-09 2.064423377160e-02 + 1.442800000000e-09 1.377441586155e-01 + 1.452800000000e-09 2.387487692491e-01 + 1.462800000000e-09 3.069885276481e-01 + 1.472800000000e-09 3.312940016123e-01 + 1.482800000000e-09 3.087332460370e-01 + 1.492800000000e-09 2.438003425051e-01 + 1.502800000000e-09 1.459228782210e-01 + 1.512800000000e-09 2.675528154954e-02 + 1.522800000000e-09 -9.989323254924e-02 + 1.532800000000e-09 -2.165669171724e-01 + 1.542800000000e-09 -3.044094152250e-01 + 1.552800000000e-09 -3.485960235307e-01 + 1.562800000000e-09 -3.427607575271e-01 + 1.572800000000e-09 -2.894065015153e-01 + 1.582800000000e-09 -1.972625556750e-01 + 1.592800000000e-09 -7.810211478713e-02 + 1.602800000000e-09 5.472825060320e-02 + 1.612800000000e-09 1.843966116536e-01 + 1.622800000000e-09 2.908095559772e-01 + 1.632800000000e-09 3.558590888161e-01 + 1.642800000000e-09 3.692442316508e-01 + 1.652800000000e-09 3.307223350896e-01 + 1.662800000000e-09 2.475868121857e-01 + 1.672800000000e-09 1.315745105428e-01 + 1.682800000000e-09 -4.079222825593e-03 + 1.692800000000e-09 -1.435429995432e-01 + 1.702800000000e-09 -2.665813122457e-01 + 1.712800000000e-09 -3.525130357787e-01 + 1.722800000000e-09 -3.869480154763e-01 + 1.732800000000e-09 -3.660777008945e-01 + 1.742800000000e-09 -2.951075954925e-01 + 1.752800000000e-09 -1.852697962593e-01 + 1.762800000000e-09 -5.003961644183e-02 + 1.772800000000e-09 9.570838775550e-02 + 1.782800000000e-09 2.325870018499e-01 + 1.792800000000e-09 3.383589237856e-01 + 1.802800000000e-09 3.947155694288e-01 + 1.812800000000e-09 3.937033119961e-01 + 1.822800000000e-09 3.380452287662e-01 + 1.832800000000e-09 2.375835586000e-01 + 1.842800000000e-09 1.058771022711e-01 + 1.852800000000e-09 -4.263709142904e-02 + 1.862800000000e-09 -1.900030812380e-01 + 1.872800000000e-09 -3.136174772286e-01 + 1.882800000000e-09 -3.920351657100e-01 + 1.892800000000e-09 -4.127475496018e-01 + 1.902800000000e-09 -3.750956063842e-01 + 1.912800000000e-09 -2.869666643123e-01 + 1.922800000000e-09 -1.616297384997e-01 + 1.932800000000e-09 -1.361936686049e-02 + 1.942800000000e-09 1.406172908134e-01 + 1.952800000000e-09 2.792550977877e-01 + 1.962800000000e-09 3.787902254899e-01 + 1.972800000000e-09 4.222752019079e-01 + 1.982800000000e-09 4.049636745954e-01 + 1.992800000000e-09 3.322404542947e-01 + 2.002800000000e-09 2.161669656339e-01 + 2.012800000000e-09 7.155597417732e-02 + 2.022800000000e-09 -8.609695822051e-02 + 2.032800000000e-09 -2.365608931503e-01 + 2.042800000000e-09 -3.555005072039e-01 + 2.052800000000e-09 -4.220083679648e-01 + 2.062800000000e-09 -4.266839455959e-01 + 2.072800000000e-09 -3.718713557942e-01 + 2.082800000000e-09 -2.678107467016e-01 + 2.092800000000e-09 -1.293389822449e-01 + 2.102800000000e-09 2.833059759397e-02 + 2.112800000000e-09 1.869316309130e-01 + 2.122800000000e-09 3.225548631596e-01 + 2.132800000000e-09 4.114580730440e-01 + 2.142800000000e-09 4.392996189887e-01 + 2.152800000000e-09 4.046990788426e-01 + 2.162800000000e-09 3.155287259736e-01 + 2.172800000000e-09 1.857669328139e-01 + 2.182800000000e-09 3.100609329061e-02 + 2.192800000000e-09 -1.321357735721e-01 + 2.202800000000e-09 -2.812168735149e-01 + 2.212800000000e-09 -3.909783649353e-01 + 2.222800000000e-09 -4.424317039182e-01 + 2.232800000000e-09 -4.297962552407e-01 + 2.242800000000e-09 -3.581672876146e-01 + 2.252800000000e-09 -2.398314541407e-01 + 2.262800000000e-09 -9.060415921491e-02 + 2.272800000000e-09 7.370156232135e-02 + 2.282800000000e-09 2.327406642123e-01 + 2.292800000000e-09 3.610812402931e-01 + 2.302800000000e-09 4.359613021736e-01 + 2.312800000000e-09 4.465932936766e-01 + 2.322800000000e-09 3.946758460222e-01 + 2.332800000000e-09 2.903633413539e-01 + 2.342800000000e-09 1.490814320965e-01 + 2.352800000000e-09 -1.333288892615e-02 + 2.362800000000e-09 -1.786941067316e-01 + 2.372800000000e-09 -3.225940541688e-01 + 2.382800000000e-09 -4.198004357210e-01 + 2.392800000000e-09 -4.543826061232e-01 + 2.402800000000e-09 -4.240642183875e-01 + 2.412800000000e-09 -3.364619230030e-01 + 2.422800000000e-09 -2.056261310073e-01 + 2.432800000000e-09 -4.773390668730e-02 + 2.442800000000e-09 1.205103020653e-01 + 2.452800000000e-09 2.765989735636e-01 + 2.462800000000e-09 3.942780198243e-01 + 2.472800000000e-09 4.530256200664e-01 + 2.482800000000e-09 4.458454361230e-01 + 2.492800000000e-09 3.771089597392e-01 + 2.502800000000e-09 2.590322560292e-01 + 2.512800000000e-09 1.080243658844e-01 + 2.522800000000e-09 -5.985674037922e-02 + 2.532800000000e-09 -2.244886384860e-01 + 2.542800000000e-09 -3.599549763928e-01 + 2.552800000000e-09 -4.421185539775e-01 + 2.562800000000e-09 -4.588122144071e-01 + 2.572800000000e-09 -4.109453959140e-01 + 2.582800000000e-09 -3.083210663626e-01 + 2.592800000000e-09 -1.665340021254e-01 + 2.602800000000e-09 -1.918960245398e-03 + 2.612800000000e-09 1.675875769713e-01 + 2.622800000000e-09 3.175414250831e-01 + 2.632800000000e-09 4.217363825489e-01 + 2.642800000000e-09 4.627955001612e-01 + 2.652800000000e-09 4.374378080077e-01 + 2.662800000000e-09 3.527037087818e-01 + 2.672800000000e-09 2.225282328465e-01 + 2.682800000000e-09 6.361477386471e-02 + 2.692800000000e-09 -1.074134056266e-01 + 2.702800000000e-09 -2.683293174503e-01 + 2.712800000000e-09 -3.923708888313e-01 + 2.722800000000e-09 -4.577157265511e-01 + 2.732800000000e-09 -4.561433383224e-01 + 2.742800000000e-09 -3.912820300801e-01 + 2.752800000000e-09 -2.750324972595e-01 + 2.762800000000e-09 -1.240259515575e-01 + 2.772800000000e-09 4.546874544153e-02 + 2.782800000000e-09 2.137198549189e-01 + 2.792800000000e-09 3.547230737872e-01 + 2.802800000000e-09 4.433262911118e-01 + 2.812800000000e-09 4.660118939978e-01 + 2.822800000000e-09 4.228178430882e-01 + 2.832800000000e-09 3.231988957707e-01 + 2.842800000000e-09 1.825239554937e-01 + 2.852800000000e-09 1.727661570061e-02 + 2.862800000000e-09 -1.547743143133e-01 + 2.872800000000e-09 -3.093893720213e-01 + 2.882800000000e-09 -4.197404386452e-01 + 2.892800000000e-09 -4.671075240980e-01 + 2.902800000000e-09 -4.471244698056e-01 + 2.912800000000e-09 -3.661465754023e-01 + 2.922800000000e-09 -2.378192597947e-01 + 2.932800000000e-09 -7.914736082213e-02 + 2.942800000000e-09 9.331378294460e-02 + 2.952800000000e-09 2.577867008033e-01 + 2.962800000000e-09 3.873034187893e-01 + 2.972800000000e-09 4.589364882447e-01 + 2.982800000000e-09 4.631805908471e-01 + 2.992800000000e-09 4.028270250116e-01 + 3.002800000000e-09 2.893363123088e-01 + 3.012800000000e-09 1.393597470328e-01 + 3.022800000000e-09 -3.063556880097e-02 + 3.032800000000e-09 -2.013814052113e-01 + 3.042800000000e-09 -3.470226276845e-01 + 3.052800000000e-09 -4.416260499703e-01 + 3.062800000000e-09 -4.703310480236e-01 + 3.072800000000e-09 -4.322310417489e-01 + 3.082800000000e-09 -3.361540356479e-01 + 3.092800000000e-09 -1.972404253456e-01 + 3.102800000000e-09 -3.231555310905e-02 + 3.112800000000e-09 1.411799563874e-01 + 3.122800000000e-09 2.994223650651e-01 + 3.132800000000e-09 4.152221791762e-01 + 3.142800000000e-09 4.685998370601e-01 + 3.152800000000e-09 4.540939134812e-01 + 3.162800000000e-09 3.773785356728e-01 + 3.172800000000e-09 2.516679605498e-01 + 3.182800000000e-09 9.407885516327e-02 + 3.192800000000e-09 -7.887416464771e-02 + 3.202800000000e-09 -2.459478717170e-01 + 3.212800000000e-09 -3.801896018949e-01 + 3.222800000000e-09 -4.576067346946e-01 + 3.232800000000e-09 -4.675033846747e-01 + 3.242800000000e-09 -4.120188059455e-01 + 3.252800000000e-09 -3.019928515940e-01 + 3.262800000000e-09 -1.538556841242e-01 + 3.272800000000e-09 1.574221587344e-02 + 3.282800000000e-09 1.880273575048e-01 + 3.292800000000e-09 3.374731560090e-01 + 3.302800000000e-09 4.375927824630e-01 + 3.312800000000e-09 4.722276160387e-01 + 3.322800000000e-09 4.394728179656e-01 + 3.332800000000e-09 3.474679258640e-01 + 3.342800000000e-09 2.110086369028e-01 + 3.352800000000e-09 4.714137951617e-02 + 3.362800000000e-09 -1.269894630117e-01 + 3.372800000000e-09 -2.880867264094e-01 + 3.382800000000e-09 -4.088031944697e-01 + 3.392800000000e-09 -4.680988870807e-01 + 3.402800000000e-09 -4.592921241222e-01 + 3.412800000000e-09 -3.871978285746e-01 + 3.422800000000e-09 -2.645956971867e-01 + 3.432800000000e-09 -1.086192007355e-01 + 3.442800000000e-09 6.422771174779e-02 + 3.452800000000e-09 2.332753985508e-01 + 3.462800000000e-09 3.717351258273e-01 + 3.472800000000e-09 4.548095059111e-01 + 3.482800000000e-09 4.705087702614e-01 + 3.492800000000e-09 4.200936052323e-01 + 3.502800000000e-09 3.138151971609e-01 + 3.512800000000e-09 1.678570834827e-01 + 3.522800000000e-09 -9.579372347908e-04 + 3.532800000000e-09 -1.743244822223e-01 + 3.542800000000e-09 -3.271309629627e-01 + 3.552800000000e-09 -4.324794853007e-01 + 3.562800000000e-09 -4.729631803739e-01 + 3.572800000000e-09 -4.456403714768e-01 + 3.582800000000e-09 -3.579322491441e-01 + 3.592800000000e-09 -2.242351632985e-01 + 3.602800000000e-09 -6.174301902098e-02 + 3.612800000000e-09 1.126368717887e-01 + 3.622800000000e-09 2.761780887100e-01 + 3.632800000000e-09 4.014954393735e-01 + 3.642800000000e-09 4.665433122351e-01 + 3.652800000000e-09 4.634231147494e-01 + 3.662800000000e-09 3.961193938497e-01 + 3.672800000000e-09 2.769067659845e-01 + 3.682800000000e-09 1.228353245717e-01 + 3.692800000000e-09 -4.955744212608e-02 + 3.702800000000e-09 -2.201785923467e-01 + 3.712800000000e-09 -3.625009693756e-01 + 3.722800000000e-09 -4.510435187990e-01 + 3.732800000000e-09 -4.725240343663e-01 + 3.742800000000e-09 -4.272935759713e-01 + 3.752800000000e-09 -3.251349761767e-01 + 3.762800000000e-09 -1.817816988896e-01 + 3.772800000000e-09 -1.399929677941e-02 + 3.782800000000e-09 1.601934204406e-01 + 3.792800000000e-09 3.161306635674e-01 + 3.802800000000e-09 4.266066932948e-01 + 3.812800000000e-09 4.729940673219e-01 + 3.822800000000e-09 4.512575108576e-01 + 3.832800000000e-09 3.680617087705e-01 + 3.842800000000e-09 2.373645464036e-01 + 3.852800000000e-09 7.644846640062e-02 + 3.862800000000e-09 -9.795067289430e-02 + 3.872800000000e-09 -2.637087038063e-01 + 3.882800000000e-09 -3.934887886897e-01 + 3.892800000000e-09 -4.643111521684e-01 + 3.902800000000e-09 -4.670057284135e-01 + 3.912800000000e-09 -4.046800401979e-01 + 3.922800000000e-09 -2.890703064379e-01 + 3.932800000000e-09 -1.370846966255e-01 + 3.942800000000e-09 3.465969810963e-02 + 3.952800000000e-09 2.066352067046e-01 + 3.962800000000e-09 3.526476939046e-01 + 3.972800000000e-09 4.466203079955e-01 + 3.982800000000e-09 4.739661877248e-01 + 3.992800000000e-09 4.340790150692e-01 + 4.002800000000e-09 3.360577526346e-01 + 4.012800000000e-09 1.952929872287e-01 + 4.022800000000e-09 2.875607565439e-02 + 4.032800000000e-09 -1.459344999421e-01 + 4.042800000000e-09 -3.046493678996e-01 + 4.052800000000e-09 -4.199902890985e-01 + 4.062800000000e-09 -4.721456560185e-01 + 4.072800000000e-09 -4.559838665905e-01 + 4.082800000000e-09 -3.774451190249e-01 + 4.092800000000e-09 -2.499818754192e-01 + 4.102800000000e-09 -9.087893717463e-02 + 4.112800000000e-09 8.323982893517e-02 + 4.122800000000e-09 2.508660796846e-01 + 4.132800000000e-09 3.848097443252e-01 + 4.142800000000e-09 4.612668658649e-01 + 4.152800000000e-09 4.697760488018e-01 + 4.162800000000e-09 4.125281636231e-01 + 4.172800000000e-09 3.006969751536e-01 + 4.182800000000e-09 1.509887464708e-01 + 4.192800000000e-09 -1.987179515385e-02 + 4.202800000000e-09 -1.928956714792e-01 + 4.212800000000e-09 -3.422872952982e-01 + 4.222800000000e-09 -4.414912449693e-01 + 4.232800000000e-09 -4.746452361276e-01 + 4.242800000000e-09 -4.401548815867e-01 + 4.252800000000e-09 -3.464145908319e-01 + 4.262800000000e-09 -2.084288560753e-01 + 4.272800000000e-09 -4.333172742228e-02 + 4.282800000000e-09 1.315940736929e-01 + 4.292800000000e-09 2.927910195776e-01 + 4.302800000000e-09 4.127675569662e-01 + 4.312800000000e-09 4.706789700956e-01 + 4.322800000000e-09 4.601927145820e-01 + 4.332800000000e-09 3.863943372810e-01 + 4.342800000000e-09 2.622720978871e-01 + 4.352800000000e-09 1.050822334031e-01 + 4.362800000000e-09 -6.860376592355e-02 + 4.372800000000e-09 -2.378844368567e-01 + 4.382800000000e-09 -3.757822787491e-01 + 4.392800000000e-09 -4.575905442447e-01 + 4.402800000000e-09 -4.716763254174e-01 + 4.412800000000e-09 -4.195768515197e-01 + 4.422800000000e-09 -3.117637124862e-01 + 4.432800000000e-09 -1.645809069339e-01 + 4.442800000000e-09 5.115103349040e-03 + 4.452800000000e-09 1.788468425873e-01 + 4.462800000000e-09 3.312865176307e-01 + 4.472800000000e-09 4.355206693674e-01 + 4.482800000000e-09 4.744509211811e-01 + 4.492800000000e-09 4.454510006000e-01 + 4.502800000000e-09 3.561830472421e-01 + 4.512800000000e-09 2.212198360573e-01 + 4.522800000000e-09 5.780113762664e-02 + 4.532800000000e-09 -1.170674128273e-01 + 4.542800000000e-09 -2.804349169052e-01 + 4.552800000000e-09 -4.048183152457e-01 + 4.562800000000e-09 -4.683848084627e-01 + 4.572800000000e-09 -4.635939063375e-01 + 4.582800000000e-09 -3.946956894196e-01 + 4.592800000000e-09 -2.741521351817e-01 + 4.602800000000e-09 -1.191064393987e-01 + 4.612800000000e-09 5.387485396358e-02 + 4.622800000000e-09 2.244979979662e-01 + 4.632800000000e-09 3.660810740072e-01 + 4.642800000000e-09 4.532550875399e-01 + 4.652800000000e-09 4.730999036855e-01 + 4.662800000000e-09 4.262449129937e-01 + 4.672800000000e-09 3.226896490576e-01 + 4.682800000000e-09 1.783022178503e-01 + 4.692800000000e-09 9.838296857974e-03 + 4.702800000000e-09 -1.645353582805e-01 + 4.712800000000e-09 -3.199587214992e-01 + 4.722800000000e-09 -4.292293008043e-01 + 4.732800000000e-09 -4.740280425164e-01 + 4.742800000000e-09 -4.506425555136e-01 + 4.752800000000e-09 -3.659729577984e-01 + 4.762800000000e-09 -2.341388038166e-01 + 4.772800000000e-09 -7.245221035558e-02 + 4.782800000000e-09 1.022845417253e-01 + 4.792800000000e-09 2.677426310905e-01 + 4.802800000000e-09 3.965038035874e-01 + 4.812800000000e-09 4.658004581856e-01 + 4.822800000000e-09 4.668279312006e-01 + 4.832800000000e-09 4.029611099853e-01 + 4.842800000000e-09 2.861138397854e-01 + 4.852800000000e-09 1.332768542746e-01 + 4.862800000000e-09 -3.893129834670e-02 + 4.872800000000e-09 -2.108040910926e-01 + 4.882800000000e-09 -3.560051302283e-01 + 4.892800000000e-09 -4.485698098559e-01 + 4.902800000000e-09 -4.742726054249e-01 + 4.912800000000e-09 -4.327903311673e-01 + 4.922800000000e-09 -3.334339933896e-01 + 4.932800000000e-09 -1.917221189869e-01 + 4.942800000000e-09 -2.460305884562e-02 + 4.952800000000e-09 1.501836581240e-01 + 4.962800000000e-09 3.083246301974e-01 + 4.972800000000e-09 4.224263057872e-01 + 4.982800000000e-09 4.730147753422e-01 + 4.992800000000e-09 4.552555595324e-01 + 5.002800000000e-09 3.752703329085e-01 + 5.012800000000e-09 2.467002234326e-01 + 5.022800000000e-09 8.687410099858e-02 + 5.032800000000e-09 -8.754355118003e-02 + 5.042800000000e-09 -2.548484149851e-01 + 5.052800000000e-09 -3.877650550252e-01 + 5.062800000000e-09 -4.626862501264e-01 + 5.072800000000e-09 -4.695229769423e-01 + 5.082800000000e-09 -4.107421319896e-01 + 5.092800000000e-09 -2.976942205378e-01 + 5.102800000000e-09 -1.471696511119e-01 + 5.112800000000e-09 2.412143939182e-02 + 5.122800000000e-09 1.970272273367e-01 + 5.132800000000e-09 3.456078902411e-01 + 5.142800000000e-09 4.434054596104e-01 + 5.152800000000e-09 4.749137143451e-01 + 5.162800000000e-09 4.388300870660e-01 + 5.172800000000e-09 3.437624600744e-01 + 5.182800000000e-09 2.048452480459e-01 + 5.192800000000e-09 3.919018718436e-02 + 5.202800000000e-09 -1.358216564581e-01 + 5.212800000000e-09 -2.964496640181e-01 + 5.222800000000e-09 -4.151953185653e-01 + 5.232800000000e-09 -4.714539884979e-01 + 5.242800000000e-09 -4.592779849991e-01 + 5.252800000000e-09 -3.840593294788e-01 + 5.262800000000e-09 -2.589011364918e-01 + 5.272800000000e-09 -1.010736249809e-01 + 5.282800000000e-09 7.283353409179e-02 + 5.292800000000e-09 2.417384561984e-01 + 5.302800000000e-09 3.785820233063e-01 + 5.312800000000e-09 4.588562995259e-01 + 5.322800000000e-09 4.712954828909e-01 + 5.332800000000e-09 4.176930150512e-01 + 5.342800000000e-09 3.087007794761e-01 + 5.352800000000e-09 1.607551554706e-01 + 5.362800000000e-09 -9.318966073580e-03 + 5.372800000000e-09 -1.829010391211e-01 + 5.382800000000e-09 -3.345208199769e-01 + 5.392800000000e-09 -4.373511375540e-01 + 5.402800000000e-09 -4.746403928746e-01 + 5.412800000000e-09 -4.440615944149e-01 + 5.422800000000e-09 -3.534898096378e-01 + 5.432800000000e-09 -2.176267692740e-01 + 5.442800000000e-09 -5.369083698243e-02 + 5.452800000000e-09 1.212383949646e-01 + 5.462800000000e-09 2.840320668661e-01 + 5.472800000000e-09 4.071920020820e-01 + 5.482800000000e-09 4.691563769682e-01 + 5.492800000000e-09 4.627337230041e-01 + 5.502800000000e-09 3.924167805893e-01 + 5.512800000000e-09 2.708218029078e-01 + 5.522800000000e-09 1.151325703666e-01 + 5.532800000000e-09 -5.808604409659e-02 + 5.542800000000e-09 -2.283668346156e-01 + 5.552800000000e-09 -3.689338506287e-01 + 5.562800000000e-09 -4.545944114773e-01 + 5.572800000000e-09 -4.727956223372e-01 + 5.582800000000e-09 -4.244298465829e-01 + 5.592800000000e-09 -3.195193275972e-01 + 5.602800000000e-09 -1.741778534261e-01 + 5.612800000000e-09 -5.358366924951e-03 + 5.622800000000e-09 1.687933165768e-01 + 5.632800000000e-09 3.233026003791e-01 + 5.642800000000e-09 4.310517889594e-01 + 5.652800000000e-09 4.740864689953e-01 + 5.662800000000e-09 4.490218121806e-01 + 5.672800000000e-09 3.629873663565e-01 + 5.682800000000e-09 2.302354097758e-01 + 5.692800000000e-09 6.805690093617e-02 + 5.702800000000e-09 -1.066966219157e-01 + 5.712800000000e-09 -2.715119446656e-01 + 5.722800000000e-09 -3.989522881566e-01 + 5.732800000000e-09 -4.665254863655e-01 + 5.742800000000e-09 -4.658095418967e-01 + 5.752800000000e-09 -4.004422715597e-01 + 5.762800000000e-09 -2.825015838173e-01 + 5.772800000000e-09 -1.290234075158e-01 + 5.782800000000e-09 4.339682016018e-02 + 5.792800000000e-09 2.148831804687e-01 + 5.802800000000e-09 3.589945727159e-01 + 5.812800000000e-09 4.499415092275e-01 + 5.822800000000e-09 4.738883904946e-01 + 5.832800000000e-09 4.308003606745e-01 + 5.842800000000e-09 3.301936966910e-01 + 5.852800000000e-09 1.876929001866e-01 + 5.862800000000e-09 2.018600177563e-02 + 5.872800000000e-09 -1.544675648521e-01 + 5.882800000000e-09 -3.117918152553e-01 + 5.892800000000e-09 -4.244460935844e-01 + 5.902800000000e-09 -4.732989916592e-01 + 5.912800000000e-09 -4.538551715275e-01 + 5.922800000000e-09 -3.724707197969e-01 + 5.932800000000e-09 -2.429293930070e-01 + 5.942800000000e-09 -8.255753872722e-02 + 5.952800000000e-09 9.194835307785e-02 + 5.962800000000e-09 2.586988629088e-01 + 5.972800000000e-09 3.903732859135e-01 + 5.982800000000e-09 4.636092982994e-01 + 5.992800000000e-09 4.687053227866e-01 + 6.002800000000e-09 4.084027490221e-01 + 6.012800000000e-09 2.942212446980e-01 + 6.022800000000e-09 1.430125040608e-01 + 6.032800000000e-09 -2.854632169854e-02 + 6.042800000000e-09 -2.011429939245e-01 + 6.052800000000e-09 -3.487167427034e-01 + 6.062800000000e-09 -4.449512923493e-01 + 6.072800000000e-09 -4.747217614837e-01 + 6.082800000000e-09 -4.370219810782e-01 + 6.092800000000e-09 -3.406707431978e-01 + 6.102800000000e-09 -2.009190734339e-01 + 6.112800000000e-09 -3.483039496099e-02 + 6.122800000000e-09 1.401149295526e-01 + 6.132800000000e-09 3.000046663157e-01 + 6.142800000000e-09 4.173662516033e-01 + 6.152800000000e-09 4.719186723503e-01 + 6.162800000000e-09 4.580601076316e-01 + 6.172800000000e-09 3.814166126838e-01 + 6.182800000000e-09 2.552438607025e-01 + 6.192800000000e-09 9.682909699965e-02 + 6.202800000000e-09 -7.722362060396e-02 + 6.212800000000e-09 -2.456491354280e-01 + 6.222800000000e-09 -3.813211202293e-01 + 6.232800000000e-09 -4.599582708496e-01 + 6.242800000000e-09 -4.706777413223e-01 + 6.252800000000e-09 -4.155356321955e-01 + 6.262800000000e-09 -3.053653191959e-01 + 6.272800000000e-09 -1.566879170227e-01 + 6.282800000000e-09 1.371085740630e-02 + 6.292800000000e-09 1.870612586314e-01 + 6.302800000000e-09 3.377566073318e-01 + 6.312800000000e-09 4.390789711742e-01 + 6.322800000000e-09 4.746456163415e-01 + 6.332800000000e-09 4.424366831788e-01 + 6.342800000000e-09 3.505443090925e-01 + 6.352800000000e-09 2.137969205601e-01 + 6.362800000000e-09 4.937909817654e-02 + 6.372800000000e-09 -1.255499536179e-01 + 6.382800000000e-09 -2.876826670580e-01 + 6.392800000000e-09 -4.095207289710e-01 + 6.402800000000e-09 -4.697973288731e-01 + 6.412800000000e-09 -4.616809805366e-01 + 6.422800000000e-09 -3.899125057551e-01 + 6.432800000000e-09 -2.672636303499e-01 + 6.442800000000e-09 -1.109503029327e-01 + 6.452800000000e-09 6.246383288399e-02 + 6.462800000000e-09 2.323325258173e-01 + 6.472800000000e-09 3.717934722252e-01 + 6.482800000000e-09 4.558521722737e-01 + 6.492800000000e-09 4.723391088429e-01 + 6.502800000000e-09 4.224167520594e-01 + 6.512800000000e-09 3.162952943994e-01 + 6.522800000000e-09 1.701860640694e-01 + 6.532800000000e-09 1.000477967367e-03 + 6.542800000000e-09 -1.729810717500e-01 + 6.552800000000e-09 -3.266355645455e-01 + 6.562800000000e-09 -4.329259684052e-01 + 6.572800000000e-09 -4.742519127223e-01 + 6.582800000000e-09 -4.475467448575e-01 + 6.592800000000e-09 -3.601627907113e-01 + 6.602800000000e-09 -2.264866563705e-01 + 6.612800000000e-09 -6.379017160263e-02 + 6.622800000000e-09 1.110155637962e-01 + 6.632800000000e-09 2.752350046292e-01 + 6.642800000000e-09 4.014087265439e-01 + 6.652800000000e-09 4.673148546842e-01 + 6.662800000000e-09 4.649004614592e-01 + 6.672800000000e-09 3.980600329821e-01 + 6.682800000000e-09 2.790321210295e-01 + 6.692800000000e-09 1.248995369545e-01 + 6.702800000000e-09 -4.775761376258e-02 + 6.712800000000e-09 -2.188913987365e-01 + 6.722800000000e-09 -3.619578933878e-01 + 6.732800000000e-09 -4.513379357395e-01 + 6.742800000000e-09 -4.735767036704e-01 + 6.752800000000e-09 -4.289177472422e-01 + 6.762800000000e-09 -3.270792720198e-01 + 6.772800000000e-09 -1.837891138026e-01 + 6.782800000000e-09 -1.588063220561e-02 + 6.792800000000e-09 1.586628233663e-01 + 6.802800000000e-09 3.152040608694e-01 + 6.812800000000e-09 4.264555535234e-01 + 6.822800000000e-09 4.736211185569e-01 + 6.832800000000e-09 4.525338445846e-01 + 6.842800000000e-09 3.697775198292e-01 + 6.852800000000e-09 2.392766418386e-01 + 6.862800000000e-09 7.835426776512e-02 + 6.872800000000e-09 -9.625333402000e-02 + 6.882800000000e-09 -2.624739722823e-01 + 6.892800000000e-09 -3.929428925867e-01 + 6.902800000000e-09 -4.645406277227e-01 + 6.912800000000e-09 -4.679407790726e-01 + 6.922800000000e-09 -4.061506714192e-01 + 6.932800000000e-09 -2.908549498372e-01 + 6.942800000000e-09 -1.389652565318e-01 + 6.952800000000e-09 3.286816907369e-02 + 6.962800000000e-09 2.051712260444e-01 + 6.972800000000e-09 3.517659527209e-01 + 6.982800000000e-09 4.464775550294e-01 + 6.992800000000e-09 4.745545249943e-01 + 7.002800000000e-09 4.352771209666e-01 + 7.012800000000e-09 3.376699569210e-01 + 7.022800000000e-09 1.970971349632e-01 + 7.032800000000e-09 3.057545777721e-02 + 7.042800000000e-09 -1.443109453580e-01 + 7.052800000000e-09 -3.034816773329e-01 + 7.062800000000e-09 -4.194927868430e-01 + 7.072800000000e-09 -4.723820442461e-01 + 7.082800000000e-09 -4.568824625256e-01 + 7.092800000000e-09 -3.788475933070e-01 + 7.102800000000e-09 -2.516820325120e-01 + 7.112800000000e-09 -9.268712680832e-02 + 7.122800000000e-09 8.151209524791e-02 + 7.132800000000e-09 2.494695531010e-01 + 7.142800000000e-09 3.839956138423e-01 + 7.152800000000e-09 4.611737821072e-01 + 7.162800000000e-09 4.703851325923e-01 + 7.172800000000e-09 4.137125917880e-01 + 7.182800000000e-09 3.022693307072e-01 + 7.192800000000e-09 1.527479248670e-01 + 7.202800000000e-09 -1.809929548498e-02 + 7.212800000000e-09 -1.913383544872e-01 + 7.222800000000e-09 -3.412094024588e-01 + 7.232800000000e-09 -4.410868393714e-01 + 7.242800000000e-09 -4.749516312112e-01 + 7.252800000000e-09 -4.410909822616e-01 + 7.262800000000e-09 -3.478189916534e-01 + 7.272800000000e-09 -2.101013876511e-01 + 7.282800000000e-09 -4.510235019386e-02 + 7.292800000000e-09 1.299253977771e-01 + 7.302800000000e-09 2.914845600347e-01 + 7.312800000000e-09 4.120616682106e-01 + 7.322800000000e-09 4.706787147807e-01 + 7.332800000000e-09 4.608620978397e-01 + 7.342800000000e-09 3.876036751466e-01 + 7.352800000000e-09 2.638374740977e-01 + 7.362800000000e-09 1.068210554762e-01 + 7.372800000000e-09 -6.687000044466e-02 + 7.382800000000e-09 -2.364003702191e-01 + 7.392800000000e-09 -3.748108644234e-01 + 7.402800000000e-09 -4.572976813842e-01 + 7.412800000000e-09 -4.720734801543e-01 + 7.422800000000e-09 -4.205712591755e-01 + 7.432800000000e-09 -3.131934542431e-01 + 7.442800000000e-09 -1.662554351338e-01 + 7.452800000000e-09 3.362078591334e-03 + 7.462800000000e-09 1.772344659818e-01 + 7.472800000000e-09 3.300822975106e-01 + 7.482800000000e-09 4.349428027832e-01 + 7.492800000000e-09 4.745689466133e-01 + 7.502800000000e-09 4.462110869897e-01 + 7.512800000000e-09 3.574466585827e-01 + 7.522800000000e-09 2.228017580891e-01 + 7.532800000000e-09 5.953451258630e-02 + 7.542800000000e-09 -1.153737073076e-01 + 7.552800000000e-09 -2.790387245777e-01 + 7.562800000000e-09 -4.039727376582e-01 + 7.572800000000e-09 -4.682237229421e-01 + 7.582800000000e-09 -4.641062188637e-01 + 7.592800000000e-09 -3.957719710120e-01 + 7.602800000000e-09 -2.756236169881e-01 + 7.612800000000e-09 -1.207944204032e-01 + 7.622800000000e-09 5.214154529606e-02 + 7.632800000000e-09 2.229572650225e-01 + 7.642800000000e-09 3.650018343726e-01 + 7.652800000000e-09 4.528257247543e-01 + 7.662800000000e-09 4.733554050676e-01 + 7.672800000000e-09 4.271122510333e-01 + 7.682800000000e-09 3.240186390719e-01 + 7.692800000000e-09 1.799080569477e-01 + 7.702800000000e-09 1.156396165785e-02 + 7.712800000000e-09 -1.628978383933e-01 + 7.722800000000e-09 -3.186752855182e-01 + 7.732800000000e-09 -4.285332245252e-01 + 7.742800000000e-09 -4.740129549462e-01 + 7.752800000000e-09 -4.512743763487e-01 + 7.762800000000e-09 -3.671298785255e-01 + 7.772800000000e-09 -2.356471175821e-01 + 7.782800000000e-09 -7.414686057647e-02 + 7.792800000000e-09 1.005862088749e-01 + 7.802800000000e-09 2.662930371615e-01 + 7.812800000000e-09 3.955638632692e-01 + 7.822800000000e-09 4.655253901029e-01 + 7.832800000000e-09 4.672253597262e-01 + 7.842800000000e-09 4.039362057204e-01 + 7.852800000000e-09 2.875091045666e-01 + 7.862800000000e-09 1.349164722422e-01 + 7.872800000000e-09 -3.721205311042e-02 + 7.882800000000e-09 -2.092346121642e-01 + 7.892800000000e-09 -3.548550449829e-01 + 7.902800000000e-09 -4.480430557238e-01 + 7.912800000000e-09 -4.744225883963e-01 + 7.922800000000e-09 -4.335591521118e-01 + 7.932800000000e-09 -3.346841485691e-01 + 7.942800000000e-09 -1.932753134533e-01 + 7.952800000000e-09 -2.630396132149e-02 + 7.962800000000e-09 1.485343115213e-01 + 7.972800000000e-09 3.069892415430e-01 + 7.982800000000e-09 4.216477116045e-01 + 7.992800000000e-09 4.728702585346e-01 + 8.002800000000e-09 4.557232401713e-01 + 8.012800000000e-09 3.762881772866e-01 + 8.022800000000e-09 2.481194886286e-01 + 8.032800000000e-09 8.853106428805e-02 + 8.042800000000e-09 -8.582393141835e-02 + 8.052800000000e-09 -2.533152569581e-01 + 8.062800000000e-09 -3.866914138870e-01 + 8.072800000000e-09 -4.622558207343e-01 + 8.082800000000e-09 -4.697688746084e-01 + 8.092800000000e-09 -4.115886187123e-01 + 8.102800000000e-09 -2.989980714899e-01 + 8.112800000000e-09 -1.487599918270e-01 + 8.122800000000e-09 2.240414183855e-02 + 8.132800000000e-09 1.954055199189e-01 + 8.142800000000e-09 3.443552001071e-01 + 8.152800000000e-09 4.427463670226e-01 + 8.162800000000e-09 4.749261945068e-01 + 8.172800000000e-09 4.394758060526e-01 + 8.182800000000e-09 3.449195026343e-01 + 8.192800000000e-09 2.063439121537e-01 + 8.202800000000e-09 4.087599756883e-02 + 8.212800000000e-09 -1.341410090845e-01 + 8.222800000000e-09 -2.950357913485e-01 + 8.232800000000e-09 -4.143046390550e-01 + 8.242800000000e-09 -4.712206916280e-01 + 8.252800000000e-09 -4.597006365364e-01 + 8.262800000000e-09 -3.850445606437e-01 + 8.272800000000e-09 -2.602943890551e-01 + 8.282800000000e-09 -1.027104187955e-01 + 8.292800000000e-09 7.112315283271e-02 + 8.302800000000e-09 2.401965119711e-01 + 8.312800000000e-09 3.774806041106e-01 + 8.322800000000e-09 4.583835764264e-01 + 8.332800000000e-09 4.714907765348e-01 + 8.342800000000e-09 4.184924468259e-01 + 8.352800000000e-09 3.099686075230e-01 + 8.362800000000e-09 1.623201243326e-01 + 8.372800000000e-09 -7.613825411722e-03 + 8.382800000000e-09 -1.812704069480e-01 + 8.392800000000e-09 -3.332349363132e-01 + 8.402800000000e-09 -4.366421565884e-01 + 8.412800000000e-09 -4.745986707762e-01 + 8.422800000000e-09 -4.446569429567e-01 + 8.432800000000e-09 -3.546065371207e-01 + 8.442800000000e-09 -2.190983212356e-01 + 8.452800000000e-09 -5.536126962348e-02 + 8.462800000000e-09 1.195549184502e-01 + 8.472800000000e-09 2.825923048430e-01 + 8.482800000000e-09 4.062562225692e-01 + 8.492800000000e-09 4.688730969708e-01 + 8.502800000000e-09 4.631104868282e-01 + 8.512800000000e-09 3.933635998169e-01 + 8.522800000000e-09 2.721870789832e-01 + 8.532800000000e-09 1.167499416076e-01 + 8.542800000000e-09 -5.638196955604e-02 + 8.552800000000e-09 -2.268112149334e-01 + 8.562800000000e-09 -3.677980708712e-01 + 8.572800000000e-09 -4.540761454032e-01 + 8.582800000000e-09 -4.729436182328e-01 + 8.592800000000e-09 -4.251868570138e-01 + 8.602800000000e-09 -3.207540438367e-01 + 8.612800000000e-09 -1.757193094519e-01 + 8.622800000000e-09 -7.051028071431e-03 + 8.632800000000e-09 1.671564851030e-01 + 8.642800000000e-09 3.219880303847e-01 + 8.652800000000e-09 4.302978217420e-01 + 8.662800000000e-09 4.739953643084e-01 + 8.672800000000e-09 4.495709711196e-01 + 8.682800000000e-09 3.640667109922e-01 + 8.692800000000e-09 2.316815367625e-01 + 8.702800000000e-09 6.971189047814e-02 + 8.712800000000e-09 -1.050126109129e-01 + 8.722800000000e-09 -2.700504144539e-01 + 8.732800000000e-09 -3.979761284175e-01 + 8.742800000000e-09 -4.661950695379e-01 + 8.752800000000e-09 -4.661408570960e-01 + 8.762800000000e-09 -4.013504459573e-01 + 8.772800000000e-09 -2.838384525463e-01 + 8.782800000000e-09 -1.306209322973e-01 + 8.792800000000e-09 4.170011600994e-02 + 8.802800000000e-09 2.133153427600e-01 + 8.812800000000e-09 3.578255374043e-01 + 8.822800000000e-09 4.493777986227e-01 + 8.832800000000e-09 4.739887747192e-01 + 8.842800000000e-09 4.315143982636e-01 + 8.852800000000e-09 3.313917620330e-01 + 8.862800000000e-09 1.892038776100e-01 + 8.872800000000e-09 2.185909083850e-02 + 8.882800000000e-09 -1.528300951299e-01 + 8.892800000000e-09 -3.104515068882e-01 + 8.902800000000e-09 -4.236463961325e-01 + 8.912800000000e-09 -4.731545405718e-01 + 8.922800000000e-09 -4.543517724566e-01 + 8.932800000000e-09 -3.735048686574e-01 + 8.942800000000e-09 -2.443420736462e-01 + 8.952800000000e-09 -8.418938130572e-02 + 8.962800000000e-09 9.027087799323e-02 + 8.972800000000e-09 2.572206813225e-01 + 8.982800000000e-09 3.893584732367e-01 + 8.992800000000e-09 4.632298697608e-01 + 9.002800000000e-09 4.689866550207e-01 + 9.012800000000e-09 4.092656789911e-01 + 9.022800000000e-09 2.955218062106e-01 + 9.032800000000e-09 1.445822119896e-01 + 9.042800000000e-09 -2.686495159047e-02 + 9.052800000000e-09 -1.995697369395e-01 + 9.062800000000e-09 -3.475183876848e-01 + 9.072800000000e-09 -4.443420504350e-01 + 9.082800000000e-09 -4.747711594458e-01 + 9.092800000000e-09 -4.376871679957e-01 + 9.102800000000e-09 -3.418282382604e-01 + 9.112800000000e-09 -2.024004468846e-01 + 9.122800000000e-09 -3.648439602198e-02 + 9.132800000000e-09 1.384784950754e-01 + 9.142800000000e-09 2.986421666329e-01 + 9.152800000000e-09 4.165250479668e-01 + 9.162800000000e-09 4.717236198520e-01 + 9.172800000000e-09 4.585048257160e-01 + 9.182800000000e-09 3.824056744264e-01 + 9.192800000000e-09 2.566232741498e-01 + 9.202800000000e-09 9.843789561041e-02 + 9.212800000000e-09 -7.555326317816e-02 + 9.222800000000e-09 -2.441554104755e-01 + 9.232800000000e-09 -3.802685152522e-01 + 9.242800000000e-09 -4.595254273568e-01 + 9.252800000000e-09 -4.708980436339e-01 + 9.262800000000e-09 -4.163426325433e-01 + 9.272800000000e-09 -3.066233790089e-01 + 9.282800000000e-09 -1.582287590700e-01 + 9.292800000000e-09 1.204158483739e-02 + 9.302800000000e-09 1.854755615929e-01 + 9.312800000000e-09 3.365187856105e-01 + 9.322800000000e-09 4.384121015246e-01 + 9.332800000000e-09 4.746325438472e-01 + 9.342800000000e-09 4.430438328376e-01 + 9.352800000000e-09 3.516554423001e-01 + 9.362800000000e-09 2.152473815735e-01 + 9.372800000000e-09 5.101666211968e-02 + 9.382800000000e-09 -1.239088110897e-01 + 9.392800000000e-09 -2.862898538942e-01 + 9.402800000000e-09 -4.086283865924e-01 + 9.412800000000e-09 -4.695453664284e-01 + 9.422800000000e-09 -4.620727802601e-01 + 9.432800000000e-09 -3.908572400200e-01 + 9.442800000000e-09 -2.686111439183e-01 + 9.452800000000e-09 -1.125381264041e-01 + 9.462800000000e-09 6.079870306913e-02 + 9.472800000000e-09 2.308216899808e-01 + 9.482800000000e-09 3.707015176506e-01 + 9.492800000000e-09 4.553681422057e-01 + 9.502800000000e-09 4.725064407028e-01 + 9.512800000000e-09 4.231763569955e-01 + 9.522800000000e-09 3.175166157190e-01 + 9.532800000000e-09 1.717013832461e-01 + 9.542800000000e-09 2.657335955213e-03 + 9.552800000000e-09 -1.713870925589e-01 + 9.562800000000e-09 -3.253654144422e-01 + 9.572800000000e-09 -4.322097206151e-01 + 9.582800000000e-09 -4.741848054597e-01 + 9.592800000000e-09 -4.481034122689e-01 + 9.602800000000e-09 -3.612331987207e-01 + 9.612800000000e-09 -2.279096366069e-01 + 9.622800000000e-09 -6.541185777728e-02 + 9.632800000000e-09 1.093725922642e-01 + 9.642800000000e-09 2.738177273356e-01 + 9.652800000000e-09 4.004725473997e-01 + 9.662800000000e-09 4.670119955316e-01 + 9.672800000000e-09 4.652431338827e-01 + 9.682800000000e-09 3.989630884507e-01 + 9.692800000000e-09 2.803492903980e-01 + 9.702800000000e-09 1.264668581205e-01 + 9.712800000000e-09 -4.609901262979e-02 + 9.722800000000e-09 -2.173662583407e-01 + 9.732800000000e-09 -3.608299222224e-01 + 9.742800000000e-09 -4.508055807148e-01 + 9.752800000000e-09 -4.736936144943e-01 + 9.762800000000e-09 -4.296319777317e-01 + 9.772800000000e-09 -3.282621309804e-01 + 9.782800000000e-09 -1.852727462566e-01 + 9.792800000000e-09 -1.751785697417e-02 + 9.802800000000e-09 1.570670899042e-01 + 9.812800000000e-09 3.139061628357e-01 + 9.822800000000e-09 4.256911863098e-01 + 9.832800000000e-09 4.734981197836e-01 + 9.842800000000e-09 4.530355607929e-01 + 9.852800000000e-09 3.708008431751e-01 + 9.862800000000e-09 2.406649872183e-01 + 9.872800000000e-09 7.995256048710e-02 + 9.882800000000e-09 -9.461609584678e-02 + 9.892800000000e-09 -2.610384551620e-01 + 9.902800000000e-09 -3.919661505565e-01 + 9.912800000000e-09 -4.641867401380e-01 + 9.922800000000e-09 -4.682314424888e-01 + 9.932800000000e-09 -4.070067908672e-01 + 9.942800000000e-09 -2.921347567102e-01 + 9.952800000000e-09 -1.405043945224e-01 + 9.962800000000e-09 3.122434420400e-02 + 9.972800000000e-09 2.036393764277e-01 + 9.982800000000e-09 3.506070576859e-01 + 9.992800000000e-09 4.458981402800e-01 + 1.000000000000e-08 4.734856603609e-01 diff --git a/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_01/conditions.yaml b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_01/conditions.yaml new file mode 100644 index 00000000..a047ec8a --- /dev/null +++ b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_01/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/LC_Oscillator/xschem/simulations/schematic/LC_Oscillator.spice +N: 1 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: tt +filename: LC_Oscillator_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_01 +temperature: '-40' +vdd: '1.2' diff --git a/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_02/.spiceinit b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_02/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_02/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_02/LC_Oscillator.sym b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_02/LC_Oscillator.sym new file mode 100644 index 00000000..e632b156 --- /dev/null +++ b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_02/LC_Oscillator.sym @@ -0,0 +1,27 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 70 -20 90 -20 {} +L 4 70 20 90 20 {} +L 7 20 70 20 90 {} +L 7 -20 70 -20 90 {} +B 5 87.5 -22.5 92.5 -17.5 {name=Voplus dir=out} +B 5 17.5 87.5 22.5 92.5 {name=vdd dir=inout} +B 5 -22.5 87.5 -17.5 92.5 {name=gnd dir=inout} +B 5 87.5 17.5 92.5 22.5 {name=Vominus dir=out} +A 4 -1.666666666666714 1.666666666666714 71.68604389202189 287.5924245621816 360 {} +A 4 -30 27.5 40.69705149024927 42.51044707800085 94.97910584399833 {} +A 4 30 -27.5 40.69705149024927 222.5104470780009 94.97910584399833 {} +T {@symname} -40.5 -56 0 0 0.1 0.1 {} +T {@name} -40 -47 0 0 0.1 0.1 { +} +T {Voplus} 65 -24 0 1 0.2 0.2 {} +T {vdd} 5 64 2 1 0.2 0.2 {} +T {gnd} -35 64 2 1 0.2 0.2 {} +T {Vominus} 65 16 0 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_02/LC_Oscillator_tb.sch b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_02/LC_Oscillator_tb.sch new file mode 100644 index 00000000..37f086ac --- /dev/null +++ b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_02/LC_Oscillator_tb.sch @@ -0,0 +1,57 @@ +v {xschem version=3.4.8RC file_version=1.3} +G {} +K {} +V {} +S {} +F {} +E {} +N 1570 -1060 1570 -1030 {lab=VDD} +N 1570 -970 1570 -940 {lab=GND} +N 1270 -1050 1270 -1030 {lab=GND} +N 1230 -1060 1230 -1030 {lab=VDD} +N 1140 -920 1160 -920 {lab=Voplus} +N 1140 -960 1160 -960 {lab=Vominus} +C {code_shown.sym} 440 -1140 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write LC_Oscillator_tb.raw +set appendwrite +tran 10p 10n 160p +save all + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_02/LC_Oscillator_tb_2.data vo_diff +quit + +.endc +"} +C {vsource.sym} 1570 -1000 0 0 {name=V1 value=1.6 savecurrent=false} +C {gnd.sym} 1570 -940 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1570 -1060 0 0 {name=p2 sig_type=std_logic lab=VDD} +C {opin.sym} 1140 -920 2 0 {name=p6 lab=Voplus} +C {gnd.sym} 1270 -1050 2 0 {name=l3 lab=GND} +C {opin.sym} 1140 -960 0 1 {name=p9 lab=Vominus} +C {LC_Oscillator.sym} 1250 -940 2 0 {name=x1} +C {devices/code_shown.sym} 450 -640 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_tt + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/LC_Oscillator/xschem/simulations/schematic/LC_Oscillator.spice + +.temp -40 +" +} +C {iopin.sym} 1230 -1060 2 0 {name=p1 lab=VDD} diff --git a/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_02/conditions.yaml b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_02/conditions.yaml new file mode 100644 index 00000000..f01f6d74 --- /dev/null +++ b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_02/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/LC_Oscillator/xschem/simulations/schematic/LC_Oscillator.spice +N: 2 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: tt +filename: LC_Oscillator_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_02 +temperature: '-40' +vdd: '1.6' diff --git a/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_03/.spiceinit b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_03/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_03/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_03/LC_Oscillator.sym b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_03/LC_Oscillator.sym new file mode 100644 index 00000000..e632b156 --- /dev/null +++ b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_03/LC_Oscillator.sym @@ -0,0 +1,27 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 70 -20 90 -20 {} +L 4 70 20 90 20 {} +L 7 20 70 20 90 {} +L 7 -20 70 -20 90 {} +B 5 87.5 -22.5 92.5 -17.5 {name=Voplus dir=out} +B 5 17.5 87.5 22.5 92.5 {name=vdd dir=inout} +B 5 -22.5 87.5 -17.5 92.5 {name=gnd dir=inout} +B 5 87.5 17.5 92.5 22.5 {name=Vominus dir=out} +A 4 -1.666666666666714 1.666666666666714 71.68604389202189 287.5924245621816 360 {} +A 4 -30 27.5 40.69705149024927 42.51044707800085 94.97910584399833 {} +A 4 30 -27.5 40.69705149024927 222.5104470780009 94.97910584399833 {} +T {@symname} -40.5 -56 0 0 0.1 0.1 {} +T {@name} -40 -47 0 0 0.1 0.1 { +} +T {Voplus} 65 -24 0 1 0.2 0.2 {} +T {vdd} 5 64 2 1 0.2 0.2 {} +T {gnd} -35 64 2 1 0.2 0.2 {} +T {Vominus} 65 16 0 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_03/LC_Oscillator_tb.sch b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_03/LC_Oscillator_tb.sch new file mode 100644 index 00000000..24f72f1e --- /dev/null +++ b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_03/LC_Oscillator_tb.sch @@ -0,0 +1,57 @@ +v {xschem version=3.4.8RC file_version=1.3} +G {} +K {} +V {} +S {} +F {} +E {} +N 1570 -1060 1570 -1030 {lab=VDD} +N 1570 -970 1570 -940 {lab=GND} +N 1270 -1050 1270 -1030 {lab=GND} +N 1230 -1060 1230 -1030 {lab=VDD} +N 1140 -920 1160 -920 {lab=Voplus} +N 1140 -960 1160 -960 {lab=Vominus} +C {code_shown.sym} 440 -1140 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write LC_Oscillator_tb.raw +set appendwrite +tran 10p 10n 160p +save all + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_03/LC_Oscillator_tb_3.data vo_diff +quit + +.endc +"} +C {vsource.sym} 1570 -1000 0 0 {name=V1 value=0.8 savecurrent=false} +C {gnd.sym} 1570 -940 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1570 -1060 0 0 {name=p2 sig_type=std_logic lab=VDD} +C {opin.sym} 1140 -920 2 0 {name=p6 lab=Voplus} +C {gnd.sym} 1270 -1050 2 0 {name=l3 lab=GND} +C {opin.sym} 1140 -960 0 1 {name=p9 lab=Vominus} +C {LC_Oscillator.sym} 1250 -940 2 0 {name=x1} +C {devices/code_shown.sym} 450 -640 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_ff + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/LC_Oscillator/xschem/simulations/schematic/LC_Oscillator.spice + +.temp -40 +" +} +C {iopin.sym} 1230 -1060 2 0 {name=p1 lab=VDD} diff --git a/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_03/conditions.yaml b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_03/conditions.yaml new file mode 100644 index 00000000..b514bdcd --- /dev/null +++ b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_03/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/LC_Oscillator/xschem/simulations/schematic/LC_Oscillator.spice +N: 3 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: ff +filename: LC_Oscillator_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_03 +temperature: '-40' +vdd: '0.8' diff --git a/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_04/.spiceinit b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_04/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_04/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_04/LC_Oscillator.sym b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_04/LC_Oscillator.sym new file mode 100644 index 00000000..e632b156 --- /dev/null +++ b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_04/LC_Oscillator.sym @@ -0,0 +1,27 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 70 -20 90 -20 {} +L 4 70 20 90 20 {} +L 7 20 70 20 90 {} +L 7 -20 70 -20 90 {} +B 5 87.5 -22.5 92.5 -17.5 {name=Voplus dir=out} +B 5 17.5 87.5 22.5 92.5 {name=vdd dir=inout} +B 5 -22.5 87.5 -17.5 92.5 {name=gnd dir=inout} +B 5 87.5 17.5 92.5 22.5 {name=Vominus dir=out} +A 4 -1.666666666666714 1.666666666666714 71.68604389202189 287.5924245621816 360 {} +A 4 -30 27.5 40.69705149024927 42.51044707800085 94.97910584399833 {} +A 4 30 -27.5 40.69705149024927 222.5104470780009 94.97910584399833 {} +T {@symname} -40.5 -56 0 0 0.1 0.1 {} +T {@name} -40 -47 0 0 0.1 0.1 { +} +T {Voplus} 65 -24 0 1 0.2 0.2 {} +T {vdd} 5 64 2 1 0.2 0.2 {} +T {gnd} -35 64 2 1 0.2 0.2 {} +T {Vominus} 65 16 0 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_04/LC_Oscillator_tb.sch b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_04/LC_Oscillator_tb.sch new file mode 100644 index 00000000..fe098a0e --- /dev/null +++ b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_04/LC_Oscillator_tb.sch @@ -0,0 +1,57 @@ +v {xschem version=3.4.8RC file_version=1.3} +G {} +K {} +V {} +S {} +F {} +E {} +N 1570 -1060 1570 -1030 {lab=VDD} +N 1570 -970 1570 -940 {lab=GND} +N 1270 -1050 1270 -1030 {lab=GND} +N 1230 -1060 1230 -1030 {lab=VDD} +N 1140 -920 1160 -920 {lab=Voplus} +N 1140 -960 1160 -960 {lab=Vominus} +C {code_shown.sym} 440 -1140 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write LC_Oscillator_tb.raw +set appendwrite +tran 10p 10n 160p +save all + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_04/LC_Oscillator_tb_4.data vo_diff +quit + +.endc +"} +C {vsource.sym} 1570 -1000 0 0 {name=V1 value=1.2 savecurrent=false} +C {gnd.sym} 1570 -940 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1570 -1060 0 0 {name=p2 sig_type=std_logic lab=VDD} +C {opin.sym} 1140 -920 2 0 {name=p6 lab=Voplus} +C {gnd.sym} 1270 -1050 2 0 {name=l3 lab=GND} +C {opin.sym} 1140 -960 0 1 {name=p9 lab=Vominus} +C {LC_Oscillator.sym} 1250 -940 2 0 {name=x1} +C {devices/code_shown.sym} 450 -640 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_ff + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/LC_Oscillator/xschem/simulations/schematic/LC_Oscillator.spice + +.temp -40 +" +} +C {iopin.sym} 1230 -1060 2 0 {name=p1 lab=VDD} diff --git a/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_04/LC_Oscillator_tb_4.data b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_04/LC_Oscillator_tb_4.data new file mode 100644 index 00000000..19009f58 --- /dev/null +++ b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_04/LC_Oscillator_tb_4.data @@ -0,0 +1,985 @@ + 1.628000000000e-10 8.921994627659e-03 + 1.728000000000e-10 -6.250808440754e-03 + 1.828000000000e-10 -2.116804767766e-02 + 1.928000000000e-10 -3.372846155594e-02 + 2.028000000000e-10 -4.207000227283e-02 + 2.128000000000e-10 -4.485044885753e-02 + 2.228000000000e-10 -4.146155897630e-02 + 2.328000000000e-10 -3.213851726985e-02 + 2.428000000000e-10 -1.794904402856e-02 + 2.528000000000e-10 -6.740515719510e-04 + 2.628000000000e-10 1.740337941421e-02 + 2.728000000000e-10 3.378321602764e-02 + 2.828000000000e-10 4.608874413608e-02 + 2.928000000000e-10 5.241893360409e-02 + 3.028000000000e-10 5.165015136617e-02 + 3.128000000000e-10 4.362313304756e-02 + 3.228000000000e-10 2.918518855169e-02 + 3.328000000000e-10 1.009495160689e-02 + 3.428000000000e-10 -1.118175750834e-02 + 3.528000000000e-10 -3.176558968677e-02 + 3.628000000000e-10 -4.873433358115e-02 + 3.728000000000e-10 -5.954255433562e-02 + 3.828000000000e-10 -6.242134423960e-02 + 3.928000000000e-10 -5.667002718705e-02 + 4.028000000000e-10 -4.277710392370e-02 + 4.128000000000e-10 -2.236733489352e-02 + 4.228000000000e-10 1.988354771792e-03 + 4.328000000000e-10 2.706248547920e-02 + 4.428000000000e-10 4.936670909158e-02 + 4.528000000000e-10 6.563449908759e-02 + 4.628000000000e-10 7.331743160663e-02 + 4.728000000000e-10 7.100908996647e-02 + 4.828000000000e-10 5.868298839128e-02 + 4.928000000000e-10 3.770339657785e-02 + 5.028000000000e-10 1.064747017608e-02 + 5.128000000000e-10 -1.899517863991e-02 + 5.228000000000e-10 -4.720038524516e-02 + 5.328000000000e-10 -6.991903857100e-02 + 5.428000000000e-10 -8.368777271167e-02 + 5.528000000000e-10 -8.621232681665e-02 + 5.628000000000e-10 -7.675853709417e-02 + 5.728000000000e-10 -5.625437182350e-02 + 5.828000000000e-10 -2.714209092355e-02 + 5.928000000000e-10 6.914493850628e-03 + 6.028000000000e-10 4.141002012865e-02 + 6.128000000000e-10 7.150566836107e-02 + 6.228000000000e-10 9.270929130215e-02 + 6.328000000000e-10 1.016352170926e-01 + 6.428000000000e-10 9.661044960707e-02 + 6.528000000000e-10 7.792996715380e-02 + 6.628000000000e-10 4.775195316774e-02 + 6.728000000000e-10 9.761935560826e-03 + 6.828000000000e-10 -3.113327384765e-02 + 6.928000000000e-10 -6.930043890945e-02 + 7.028000000000e-10 -9.921284591060e-02 + 7.128000000000e-10 -1.162558680250e-01 + 7.228000000000e-10 -1.175227238189e-01 + 7.328000000000e-10 -1.023912549938e-01 + 7.428000000000e-10 -7.253916421377e-02 + 7.528000000000e-10 -3.153166054773e-02 + 7.628000000000e-10 1.548849238805e-02 + 7.728000000000e-10 6.222231353547e-02 + 7.828000000000e-10 1.020102611965e-01 + 7.928000000000e-10 1.288575859551e-01 + 8.028000000000e-10 1.384426505669e-01 + 8.128000000000e-10 1.288976095327e-01 + 8.228000000000e-10 1.011463962497e-01 + 8.328000000000e-10 5.847847385186e-02 + 8.428000000000e-10 6.108600629801e-03 + 8.528000000000e-10 -4.917845777647e-02 + 8.628000000000e-10 -9.971737969867e-02 + 8.728000000000e-10 -1.379824764087e-01 + 8.828000000000e-10 -1.579723987019e-01 + 8.928000000000e-10 -1.563186320242e-01 + 9.028000000000e-10 -1.328336956928e-01 + 9.128000000000e-10 -9.030689177497e-02 + 9.228000000000e-10 -3.388766220079e-02 + 9.328000000000e-10 2.936447519655e-02 + 9.428000000000e-10 9.098324672890e-02 + 9.528000000000e-10 1.419948085473e-01 + 9.628000000000e-10 1.745151474406e-01 + 9.728000000000e-10 1.832481868698e-01 + 9.828000000000e-10 1.664953737483e-01 + 9.928000000000e-10 1.262987251441e-01 + 1.002800000000e-09 6.761241259028e-02 + 1.012800000000e-09 -2.418684924749e-03 + 1.022800000000e-09 -7.481185217514e-02 + 1.032800000000e-09 -1.393577864768e-01 + 1.042800000000e-09 -1.861297522272e-01 + 1.052800000000e-09 -2.076382899597e-01 + 1.062800000000e-09 -2.003623473869e-01 + 1.072800000000e-09 -1.651819516889e-01 + 1.082800000000e-09 -1.065964610032e-01 + 1.092800000000e-09 -3.166009633409e-02 + 1.102800000000e-09 5.039213235322e-02 + 1.112800000000e-09 1.284796890952e-01 + 1.122800000000e-09 1.908498174133e-01 + 1.132800000000e-09 2.275652715078e-01 + 1.142800000000e-09 2.326910039080e-01 + 1.152800000000e-09 2.053663291324e-01 + 1.162800000000e-09 1.494426366223e-01 + 1.172800000000e-09 7.193057220656e-02 + 1.182800000000e-09 -1.792758245217e-02 + 1.192800000000e-09 -1.086570322314e-01 + 1.202800000000e-09 -1.870864655464e-01 + 1.212800000000e-09 -2.406967153409e-01 + 1.222800000000e-09 -2.608055727329e-01 + 1.232800000000e-09 -2.444468472138e-01 + 1.242800000000e-09 -1.942608476892e-01 + 1.252800000000e-09 -1.169980746105e-01 + 1.262800000000e-09 -2.190058620565e-02 + 1.272800000000e-09 7.956249782048e-02 + 1.282800000000e-09 1.734352131179e-01 + 1.292800000000e-09 2.450054166458e-01 + 1.302800000000e-09 2.825743353158e-01 + 1.312800000000e-09 2.803454085579e-01 + 1.322800000000e-09 2.391651231399e-01 + 1.332800000000e-09 1.652292078880e-01 + 1.342800000000e-09 6.776444727939e-02 + 1.352800000000e-09 -4.190987202742e-02 + 1.362800000000e-09 -1.496920269615e-01 + 1.372800000000e-09 -2.393029670321e-01 + 1.382800000000e-09 -2.959604106075e-01 + 1.392800000000e-09 -3.105789904966e-01 + 1.402800000000e-09 -2.816900231698e-01 + 1.412800000000e-09 -2.143385700721e-01 + 1.422800000000e-09 -1.176719919293e-01 + 1.432800000000e-09 -2.948068161086e-03 + 1.442800000000e-09 1.161254689452e-01 + 1.452800000000e-09 2.225924265623e-01 + 1.462800000000e-09 2.990992079698e-01 + 1.472800000000e-09 3.329916975252e-01 + 1.482800000000e-09 3.196543043894e-01 + 1.492800000000e-09 2.622822708717e-01 + 1.502800000000e-09 1.696470758988e-01 + 1.512800000000e-09 5.313433641967e-02 + 1.522800000000e-09 -7.406871108000e-02 + 1.532800000000e-09 -1.952262237003e-01 + 1.542800000000e-09 -2.912206491799e-01 + 1.552800000000e-09 -3.458067478473e-01 + 1.562800000000e-09 -3.506595440929e-01 + 1.572800000000e-09 -3.067197000923e-01 + 1.582800000000e-09 -2.216247412189e-01 + 1.592800000000e-09 -1.067007281746e-01 + 1.602800000000e-09 2.510843771076e-02 + 1.612800000000e-09 1.578919358611e-01 + 1.622800000000e-09 2.718570651088e-01 + 1.632800000000e-09 3.477711179388e-01 + 1.642800000000e-09 3.732137824146e-01 + 1.652800000000e-09 3.458649997465e-01 + 1.662800000000e-09 2.715717618435e-01 + 1.672800000000e-09 1.614584010114e-01 + 1.682800000000e-09 2.853599196156e-02 + 1.692800000000e-09 -1.123017860849e-01 + 1.702800000000e-09 -2.416947098647e-01 + 1.712800000000e-09 -3.383573619805e-01 + 1.722800000000e-09 -3.857550101288e-01 + 1.732800000000e-09 -3.776340034606e-01 + 1.742800000000e-09 -3.176135214662e-01 + 1.752800000000e-09 -2.157122008236e-01 + 1.762800000000e-09 -8.500432499227e-02 + 1.772800000000e-09 6.021258031861e-02 + 1.782800000000e-09 2.018012160835e-01 + 1.792800000000e-09 3.176104285963e-01 + 1.802800000000e-09 3.875747165972e-01 + 1.812800000000e-09 4.009383861108e-01 + 1.822800000000e-09 3.581582283391e-01 + 1.832800000000e-09 2.675288769078e-01 + 1.842800000000e-09 1.421184055722e-01 + 1.852800000000e-09 -3.901509251237e-03 + 1.862800000000e-09 -1.539366822210e-01 + 1.872800000000e-09 -2.862205949025e-01 + 1.882800000000e-09 -3.781668462419e-01 + 1.892800000000e-09 -4.144214651565e-01 + 1.902800000000e-09 -3.915491840032e-01 + 1.912800000000e-09 -3.155956469369e-01 + 1.922800000000e-09 -1.986422460254e-01 + 1.932800000000e-09 -5.500034010946e-02 + 1.942800000000e-09 9.981449357150e-02 + 1.952800000000e-09 2.454024209467e-01 + 1.962800000000e-09 3.579056910055e-01 + 1.972800000000e-09 4.176943093436e-01 + 1.982800000000e-09 4.167742454749e-01 + 1.992800000000e-09 3.582592144858e-01 + 2.002800000000e-09 2.525833399567e-01 + 2.012800000000e-09 1.142978561212e-01 + 2.022800000000e-09 -4.159301784655e-02 + 2.032800000000e-09 -1.966429426895e-01 + 2.042800000000e-09 -3.270817166028e-01 + 2.052800000000e-09 -4.100385249536e-01 + 2.062800000000e-09 -4.325117044248e-01 + 2.072800000000e-09 -3.940123852562e-01 + 2.082800000000e-09 -3.027400653538e-01 + 2.092800000000e-09 -1.726041809664e-01 + 2.102800000000e-09 -1.885519826214e-02 + 2.112800000000e-09 1.418246072692e-01 + 2.122800000000e-09 2.869359449510e-01 + 2.132800000000e-09 3.917117969030e-01 + 2.142800000000e-09 4.383235969801e-01 + 2.152800000000e-09 4.219259348302e-01 + 2.162800000000e-09 3.479959069502e-01 + 2.172800000000e-09 2.288697224962e-01 + 2.182800000000e-09 8.006737798443e-02 + 2.192800000000e-09 -8.266467947510e-02 + 2.202800000000e-09 -2.388643542497e-01 + 2.212800000000e-09 -3.633025207845e-01 + 2.222800000000e-09 -4.339852653313e-01 + 2.232800000000e-09 -4.411048141661e-01 + 2.242800000000e-09 -3.868823222763e-01 + 2.252800000000e-09 -2.815570163898e-01 + 2.262800000000e-09 -1.403884170706e-01 + 2.272800000000e-09 2.099480119986e-02 + 2.282800000000e-09 1.843559307938e-01 + 2.292800000000e-09 3.253407535663e-01 + 2.302800000000e-09 4.191680183483e-01 + 2.312800000000e-09 4.507381846417e-01 + 2.322800000000e-09 4.183393833576e-01 + 2.332800000000e-09 3.297751826446e-01 + 2.342800000000e-09 1.989521059959e-01 + 2.352800000000e-09 4.176395877447e-02 + 2.362800000000e-09 -1.250923521218e-01 + 2.372800000000e-09 -2.791274601792e-01 + 2.382800000000e-09 -3.943138385417e-01 + 2.392800000000e-09 -4.506324123643e-01 + 2.402800000000e-09 -4.416995472468e-01 + 2.412800000000e-09 -3.722208987518e-01 + 2.422800000000e-09 -2.542306958715e-01 + 2.432800000000e-09 -1.038652736393e-01 + 2.442800000000e-09 6.291172212762e-02 + 2.452800000000e-09 2.260486056548e-01 + 2.462800000000e-09 3.597725597509e-01 + 2.472800000000e-09 4.402818384856e-01 + 2.482800000000e-09 4.558679769751e-01 + 2.492800000000e-09 4.076481076217e-01 + 2.502800000000e-09 3.053014017551e-01 + 2.512800000000e-09 1.642107173059e-01 + 2.522800000000e-09 5.671515369448e-04 + 2.532800000000e-09 -1.678196854010e-01 + 2.542800000000e-09 -3.166564149620e-01 + 2.552800000000e-09 -4.199147703135e-01 + 2.562800000000e-09 -4.605033484456e-01 + 2.572800000000e-09 -4.352905918033e-01 + 2.582800000000e-09 -3.512387167325e-01 + 2.592800000000e-09 -2.220027888455e-01 + 2.602800000000e-09 -6.408877715887e-02 + 2.612800000000e-09 1.059779299059e-01 + 2.622800000000e-09 2.661962371749e-01 + 2.632800000000e-09 3.899438617947e-01 + 2.642800000000e-09 4.555083155741e-01 + 2.652800000000e-09 4.546918031364e-01 + 2.662800000000e-09 3.910200666679e-01 + 2.672800000000e-09 2.760898290895e-01 + 2.682800000000e-09 1.262790538554e-01 + 2.692800000000e-09 -4.221009789778e-02 + 2.702800000000e-09 -2.099324509407e-01 + 2.712800000000e-09 -3.510942988630e-01 + 2.722800000000e-09 -4.405344134422e-01 + 2.732800000000e-09 -4.646346045347e-01 + 2.742800000000e-09 -4.232645692404e-01 + 2.752800000000e-09 -3.255397533868e-01 + 2.762800000000e-09 -1.864509325663e-01 + 2.772800000000e-09 -2.241169486077e-02 + 2.782800000000e-09 1.490455107885e-01 + 2.792800000000e-09 3.040335022258e-01 + 2.802800000000e-09 4.157477114685e-01 + 2.812800000000e-09 4.651753084844e-01 + 2.822800000000e-09 4.476787031850e-01 + 2.832800000000e-09 3.692946733017e-01 + 2.842800000000e-09 2.431531487035e-01 + 2.852800000000e-09 8.607496287730e-02 + 2.862800000000e-09 -8.550570604083e-02 + 2.872800000000e-09 -2.502876457362e-01 + 2.882800000000e-09 -3.814782019869e-01 + 2.892800000000e-09 -4.558661454137e-01 + 2.902800000000e-09 -4.634059767151e-01 + 2.912800000000e-09 -4.063986482226e-01 + 2.922800000000e-09 -2.957821712642e-01 + 2.932800000000e-09 -1.478738003041e-01 + 2.942800000000e-09 2.086294715543e-02 + 2.952800000000e-09 1.916563949557e-01 + 2.962800000000e-09 3.390338111768e-01 + 2.972800000000e-09 4.368295448345e-01 + 2.982800000000e-09 4.695165362290e-01 + 2.992800000000e-09 4.355905542618e-01 + 3.002800000000e-09 3.432563752922e-01 + 3.012800000000e-09 2.070987869421e-01 + 3.022800000000e-09 4.393288895437e-02 + 3.032800000000e-09 -1.291288499820e-01 + 3.042800000000e-09 -2.888743630168e-01 + 3.052800000000e-09 -4.081109436161e-01 + 3.062800000000e-09 -4.661142599300e-01 + 3.072800000000e-09 -4.566083238403e-01 + 3.082800000000e-09 -3.845804641094e-01 + 3.092800000000e-09 -2.625257997302e-01 + 3.102800000000e-09 -1.073334765858e-01 + 3.112800000000e-09 6.456512253068e-02 + 3.122800000000e-09 2.326589081955e-01 + 3.132800000000e-09 3.703006655202e-01 + 3.142800000000e-09 4.528586138424e-01 + 3.152800000000e-09 4.685664616132e-01 + 3.162800000000e-09 4.187380479215e-01 + 3.172800000000e-09 3.136005825752e-01 + 3.182800000000e-09 1.688667961361e-01 + 3.192800000000e-09 9.733615405871e-04 + 3.202800000000e-09 -1.717642854068e-01 + 3.212800000000e-09 -3.244081174794e-01 + 3.222800000000e-09 -4.301069871010e-01 + 3.232800000000e-09 -4.714594277117e-01 + 3.242800000000e-09 -4.454561626519e-01 + 3.252800000000e-09 -3.592880284839e-01 + 3.262800000000e-09 -2.269832643950e-01 + 3.272800000000e-09 -6.559043446264e-02 + 3.282800000000e-09 1.080934692085e-01 + 3.292800000000e-09 2.716780820259e-01 + 3.302800000000e-09 3.978727676700e-01 + 3.312800000000e-09 4.645002145836e-01 + 3.322800000000e-09 4.634120857435e-01 + 3.332800000000e-09 3.983174281598e-01 + 3.342800000000e-09 2.810702994589e-01 + 3.352800000000e-09 1.284583075515e-01 + 3.362800000000e-09 -4.300149698164e-02 + 3.372800000000e-09 -2.136164383732e-01 + 3.382800000000e-09 -3.571082366090e-01 + 3.392800000000e-09 -4.478049278643e-01 + 3.402800000000e-09 -4.720302129109e-01 + 3.412800000000e-09 -4.297707213783e-01 + 3.422800000000e-09 -3.303256611329e-01 + 3.432800000000e-09 -1.889792421143e-01 + 3.442800000000e-09 -2.250261986662e-02 + 3.452800000000e-09 1.513991276841e-01 + 3.462800000000e-09 3.085110454873e-01 + 3.472800000000e-09 4.215659335673e-01 + 3.482800000000e-09 4.713628921550e-01 + 3.492800000000e-09 4.533587901538e-01 + 3.502800000000e-09 3.737313297403e-01 + 3.512800000000e-09 2.458170804436e-01 + 3.522800000000e-09 8.674325671948e-02 + 3.532800000000e-09 -8.688222895823e-02 + 3.542800000000e-09 -2.535404479030e-01 + 3.552800000000e-09 -3.860697503614e-01 + 3.562800000000e-09 -4.609840679314e-01 + 3.572800000000e-09 -4.682823451065e-01 + 3.582800000000e-09 -4.104027260808e-01 + 3.592800000000e-09 -2.984305839203e-01 + 3.602800000000e-09 -1.488965131335e-01 + 3.612800000000e-09 2.153067125047e-02 + 3.622800000000e-09 1.939395321978e-01 + 3.632800000000e-09 3.425879510211e-01 + 3.642800000000e-09 4.410203685950e-01 + 3.652800000000e-09 4.736836707245e-01 + 3.662800000000e-09 4.391649814867e-01 + 3.672800000000e-09 3.457882238040e-01 + 3.682800000000e-09 2.083045637322e-01 + 3.692800000000e-09 4.373289914739e-02 + 3.702800000000e-09 -1.307056804697e-01 + 3.712800000000e-09 -2.916118155640e-01 + 3.722800000000e-09 -4.115337855708e-01 + 3.732800000000e-09 -4.696439109073e-01 + 3.742800000000e-09 -4.597469432446e-01 + 3.752800000000e-09 -3.869279422469e-01 + 3.762800000000e-09 -2.638060821614e-01 + 3.772800000000e-09 -1.074421302892e-01 + 3.782800000000e-09 6.562307109516e-02 + 3.792800000000e-09 2.347495607656e-01 + 3.802800000000e-09 3.730820709844e-01 + 3.812800000000e-09 4.558386905224e-01 + 3.822800000000e-09 4.713042465502e-01 + 3.832800000000e-09 4.208768875657e-01 + 3.842800000000e-09 3.148820557592e-01 + 3.852800000000e-09 1.691643273111e-01 + 3.862800000000e-09 2.829386904943e-04 + 3.872800000000e-09 -1.733586281059e-01 + 3.882800000000e-09 -3.266668644367e-01 + 3.892800000000e-09 -4.326277125095e-01 + 3.902800000000e-09 -4.738404147601e-01 + 3.912800000000e-09 -4.473770320676e-01 + 3.922800000000e-09 -3.605157090959e-01 + 3.932800000000e-09 -2.273866643799e-01 + 3.942800000000e-09 -6.515361349030e-02 + 3.952800000000e-09 1.093170532062e-01 + 3.962800000000e-09 2.735185943241e-01 + 3.972800000000e-09 4.000125402027e-01 + 3.982800000000e-09 4.665714642395e-01 + 3.992800000000e-09 4.651243190541e-01 + 4.002800000000e-09 3.994631589069e-01 + 4.012800000000e-09 2.815248154703e-01 + 4.022800000000e-09 1.281933706433e-01 + 4.032800000000e-09 -4.394739061428e-02 + 4.042800000000e-09 -2.151221907104e-01 + 4.052800000000e-09 -3.589289516718e-01 + 4.062800000000e-09 -4.496167225687e-01 + 4.072800000000e-09 -4.735657157348e-01 + 4.082800000000e-09 -4.308368783964e-01 + 4.092800000000e-09 -3.308029140452e-01 + 4.102800000000e-09 -1.888298145487e-01 + 4.112800000000e-09 -2.175716621820e-02 + 4.122800000000e-09 1.526518643747e-01 + 4.132800000000e-09 3.100828836229e-01 + 4.142800000000e-09 4.231771449789e-01 + 4.152800000000e-09 4.727547739386e-01 + 4.162800000000e-09 4.543506967264e-01 + 4.172800000000e-09 3.742117454177e-01 + 4.182800000000e-09 2.457439415578e-01 + 4.192800000000e-09 8.614177780489e-02 + 4.202800000000e-09 -8.794394483725e-02 + 4.212800000000e-09 -2.549149229177e-01 + 4.222800000000e-09 -3.875205872007e-01 + 4.232800000000e-09 -4.622580274916e-01 + 4.242800000000e-09 -4.692042087824e-01 + 4.252800000000e-09 -4.108715136736e-01 + 4.262800000000e-09 -2.984067137502e-01 + 4.272800000000e-09 -1.484001251954e-01 + 4.282800000000e-09 2.244180062553e-02 + 4.292800000000e-09 1.951502745586e-01 + 4.302800000000e-09 3.439025126611e-01 + 4.312800000000e-09 4.422036576329e-01 + 4.322800000000e-09 4.745616072385e-01 + 4.332800000000e-09 4.396346376939e-01 + 4.342800000000e-09 3.458080034430e-01 + 4.352800000000e-09 2.078896432033e-01 + 4.362800000000e-09 4.293587942445e-02 + 4.372800000000e-09 -1.317933532978e-01 + 4.382800000000e-09 -2.928275806171e-01 + 4.392800000000e-09 -4.126613480749e-01 + 4.402800000000e-09 -4.705004677170e-01 + 4.412800000000e-09 -4.602275549369e-01 + 4.422800000000e-09 -3.869887610318e-01 + 4.432800000000e-09 -2.634566161830e-01 + 4.442800000000e-09 -1.067342012463e-01 + 4.452800000000e-09 6.661325683136e-02 + 4.462800000000e-09 2.358864408292e-01 + 4.472800000000e-09 3.741709705060e-01 + 4.482800000000e-09 4.568953273597e-01 + 4.492800000000e-09 4.722437434658e-01 + 4.502800000000e-09 4.213646257723e-01 + 4.512800000000e-09 3.148077473449e-01 + 4.522800000000e-09 1.685706542989e-01 + 4.532800000000e-09 -7.651596677591e-04 + 4.542800000000e-09 -1.747330700286e-01 + 4.552800000000e-09 -3.281499924725e-01 + 4.562800000000e-09 -4.339538589992e-01 + 4.572800000000e-09 -4.748080938550e-01 + 4.582800000000e-09 -4.478731627364e-01 + 4.592800000000e-09 -3.604989698281e-01 + 4.602800000000e-09 -2.268803164459e-01 + 4.612800000000e-09 -6.422299724315e-02 + 4.622800000000e-09 1.105678958497e-01 + 4.632800000000e-09 2.749076086023e-01 + 4.642800000000e-09 4.012942281260e-01 + 4.652800000000e-09 4.675306858113e-01 + 4.662800000000e-09 4.656412141460e-01 + 4.672800000000e-09 3.994955566370e-01 + 4.682800000000e-09 2.810905230765e-01 + 4.692800000000e-09 1.273579319141e-01 + 4.702800000000e-09 -4.509532717215e-02 + 4.712800000000e-09 -2.164303176781e-01 + 4.722800000000e-09 -3.601773315364e-01 + 4.732800000000e-09 -4.505842241570e-01 + 4.742800000000e-09 -4.741219797391e-01 + 4.752800000000e-09 -4.309293860112e-01 + 4.762800000000e-09 -3.304432928346e-01 + 4.772800000000e-09 -1.880806116897e-01 + 4.782800000000e-09 -2.069958202730e-02 + 4.792800000000e-09 1.538931433705e-01 + 4.802800000000e-09 3.113139840135e-01 + 4.812800000000e-09 4.241767051763e-01 + 4.822800000000e-09 4.734158341239e-01 + 4.832800000000e-09 4.545995714633e-01 + 4.842800000000e-09 3.739914181026e-01 + 4.852800000000e-09 2.451034881635e-01 + 4.862800000000e-09 8.516127580212e-02 + 4.872800000000e-09 -8.915874824276e-02 + 4.882800000000e-09 -2.561908091088e-01 + 4.892800000000e-09 -3.886335688705e-01 + 4.902800000000e-09 -4.630164702780e-01 + 4.912800000000e-09 -4.695157597566e-01 + 4.922800000000e-09 -4.107228212142e-01 + 4.932800000000e-09 -2.978399695944e-01 + 4.942800000000e-09 -1.474970000778e-01 + 4.952800000000e-09 2.358731398575e-02 + 4.962800000000e-09 1.963912534580e-01 + 4.972800000000e-09 3.450333277823e-01 + 4.982800000000e-09 4.430219367099e-01 + 4.992800000000e-09 4.749559116142e-01 + 5.002800000000e-09 4.395747521071e-01 + 5.012800000000e-09 3.453261277554e-01 + 5.022800000000e-09 2.070641307093e-01 + 5.032800000000e-09 4.185660405175e-02 + 5.042800000000e-09 -1.330037743139e-01 + 5.052800000000e-09 -2.939840477710e-01 + 5.062800000000e-09 -4.135559186122e-01 + 5.072800000000e-09 -4.709929512517e-01 + 5.082800000000e-09 -4.602708164376e-01 + 5.092800000000e-09 -3.866015950148e-01 + 5.102800000000e-09 -2.627080497222e-01 + 5.112800000000e-09 -1.057178776598e-01 + 5.122800000000e-09 6.779121120354e-02 + 5.132800000000e-09 2.370624100016e-01 + 5.142800000000e-09 3.751402346198e-01 + 5.152800000000e-09 4.574865017811e-01 + 5.162800000000e-09 4.723865396267e-01 + 5.172800000000e-09 4.210695463150e-01 + 5.182800000000e-09 3.141394718327e-01 + 5.192800000000e-09 1.676250222324e-01 + 5.202800000000e-09 -1.893567871449e-03 + 5.212800000000e-09 -1.759056745189e-01 + 5.222800000000e-09 -3.291759542458e-01 + 5.232800000000e-09 -4.346480215161e-01 + 5.242800000000e-09 -4.750738316095e-01 + 5.252800000000e-09 -4.476975604131e-01 + 5.262800000000e-09 -3.599296907806e-01 + 5.272800000000e-09 -2.260071158686e-01 + 5.282800000000e-09 -6.314278374685e-02 + 5.292800000000e-09 1.117368152039e-01 + 5.302800000000e-09 2.759907885790e-01 + 5.312800000000e-09 4.020973709050e-01 + 5.322800000000e-09 4.679225179291e-01 + 5.332800000000e-09 4.655871578271e-01 + 5.342800000000e-09 3.990297552070e-01 + 5.352800000000e-09 2.802932379138e-01 + 5.362800000000e-09 1.263310747026e-01 + 5.372800000000e-09 -4.624705151399e-02 + 5.382800000000e-09 -2.175522564699e-01 + 5.392800000000e-09 -3.610768156466e-01 + 5.402800000000e-09 -4.511029572012e-01 + 5.412800000000e-09 -4.742001739690e-01 + 5.422800000000e-09 -4.305812705505e-01 + 5.432800000000e-09 -3.297378238057e-01 + 5.442800000000e-09 -1.871204958541e-01 + 5.452800000000e-09 -1.958209949485e-02 + 5.462800000000e-09 1.550362180770e-01 + 5.472800000000e-09 3.123008687635e-01 + 5.482800000000e-09 4.248285533615e-01 + 5.492800000000e-09 4.736378179562e-01 + 5.502800000000e-09 4.543842110300e-01 + 5.512800000000e-09 3.733921736459e-01 + 5.522800000000e-09 2.442146615801e-01 + 5.532800000000e-09 8.408494027472e-02 + 5.542800000000e-09 -9.030848600058e-02 + 5.552800000000e-09 -2.572473578524e-01 + 5.562800000000e-09 -3.894088164732e-01 + 5.572800000000e-09 -4.633788743673e-01 + 5.582800000000e-09 -4.694330098105e-01 + 5.592800000000e-09 -4.102340046607e-01 + 5.602800000000e-09 -2.970295877087e-01 + 5.612800000000e-09 -1.464718517950e-01 + 5.622800000000e-09 2.472394900496e-02 + 5.632800000000e-09 1.974925386302e-01 + 5.642800000000e-09 3.459137819305e-01 + 5.652800000000e-09 4.435241069265e-01 + 5.662800000000e-09 4.750188446031e-01 + 5.672800000000e-09 4.392144174707e-01 + 5.682800000000e-09 3.446134640946e-01 + 5.692800000000e-09 2.061043539537e-01 + 5.702800000000e-09 4.074968783448e-02 + 5.712800000000e-09 -1.341323271673e-01 + 5.722800000000e-09 -2.949594179372e-01 + 5.732800000000e-09 -4.142013456325e-01 + 5.742800000000e-09 -4.712110012441e-01 + 5.752800000000e-09 -4.600539110552e-01 + 5.762800000000e-09 -3.860026769341e-01 + 5.772800000000e-09 -2.618219618434e-01 + 5.782800000000e-09 -1.046506404501e-01 + 5.792800000000e-09 6.892945435888e-02 + 5.802800000000e-09 2.381121768711e-01 + 5.812800000000e-09 3.759169099421e-01 + 5.822800000000e-09 4.578534644463e-01 + 5.832800000000e-09 4.723080115626e-01 + 5.842800000000e-09 4.205853003269e-01 + 5.852800000000e-09 3.133376124304e-01 + 5.862800000000e-09 1.666157937244e-01 + 5.872800000000e-09 -3.011438398817e-03 + 5.882800000000e-09 -1.769945970476e-01 + 5.892800000000e-09 -3.300568654908e-01 + 5.902800000000e-09 -4.351616491558e-01 + 5.912800000000e-09 -4.751529980297e-01 + 5.922800000000e-09 -4.473553956259e-01 + 5.932800000000e-09 -3.592351067647e-01 + 5.942800000000e-09 -2.250644169344e-01 + 5.952800000000e-09 -6.205398129327e-02 + 5.962800000000e-09 1.128527272200e-01 + 5.972800000000e-09 2.769660080806e-01 + 5.982800000000e-09 4.027559156229e-01 + 5.992800000000e-09 4.681584410967e-01 + 6.002800000000e-09 4.653885956488e-01 + 6.012800000000e-09 3.984494643980e-01 + 6.022800000000e-09 2.794251089873e-01 + 6.032800000000e-09 1.252834074848e-01 + 6.042800000000e-09 -4.736830932679e-02 + 6.052800000000e-09 -2.185957676920e-01 + 6.062800000000e-09 -3.618621388760e-01 + 6.072800000000e-09 -4.514923122388e-01 + 6.082800000000e-09 -4.741536604854e-01 + 6.092800000000e-09 -4.301297743724e-01 + 6.102800000000e-09 -3.289631360056e-01 + 6.112800000000e-09 -1.861326459236e-01 + 6.122800000000e-09 -1.847977239638e-02 + 6.132800000000e-09 1.561228633589e-01 + 6.142800000000e-09 3.131978969901e-01 + 6.152800000000e-09 4.253730300088e-01 + 6.162800000000e-09 4.737527994173e-01 + 6.172800000000e-09 4.540770725745e-01 + 6.182800000000e-09 3.727277960554e-01 + 6.192800000000e-09 2.432946987902e-01 + 6.202800000000e-09 8.301343849234e-02 + 6.212800000000e-09 -9.141812088599e-02 + 6.222800000000e-09 -2.582335829207e-01 + 6.232800000000e-09 -3.900952881195e-01 + 6.242800000000e-09 -4.636499073123e-01 + 6.252800000000e-09 -4.692696610234e-01 + 6.262800000000e-09 -4.096854012518e-01 + 6.272800000000e-09 -2.961870275969e-01 + 6.282800000000e-09 -1.454447797529e-01 + 6.292800000000e-09 2.583267691745e-02 + 6.302800000000e-09 1.985391989423e-01 + 6.312800000000e-09 3.467212589319e-01 + 6.322800000000e-09 4.439481011219e-01 + 6.332800000000e-09 4.750105925649e-01 + 6.342800000000e-09 4.387992257750e-01 + 6.352800000000e-09 3.438687754268e-01 + 6.362800000000e-09 2.051385125058e-01 + 6.372800000000e-09 3.966235980499e-02 + 6.382800000000e-09 -1.352177297072e-01 + 6.392800000000e-09 -2.958740506851e-01 + 6.402800000000e-09 -4.147791240383e-01 + 6.412800000000e-09 -4.713659407564e-01 + 6.422800000000e-09 -4.597870099747e-01 + 6.432800000000e-09 -3.853728427213e-01 + 6.442800000000e-09 -2.609272788819e-01 + 6.452800000000e-09 -1.035971018674e-01 + 6.462800000000e-09 7.003325247877e-02 + 6.472800000000e-09 2.391110623893e-01 + 6.482800000000e-09 3.766346716993e-01 + 6.492800000000e-09 4.581642162527e-01 + 6.502800000000e-09 4.721842475265e-01 + 6.512800000000e-09 4.200720522133e-01 + 6.522800000000e-09 3.125258739116e-01 + 6.532800000000e-09 1.656162171473e-01 + 6.542800000000e-09 -4.101565251238e-03 + 6.552800000000e-09 -1.780407994483e-01 + 6.562800000000e-09 -3.308865270871e-01 + 6.572800000000e-09 -4.356247401792e-01 + 6.582800000000e-09 -4.751903625282e-01 + 6.592800000000e-09 -4.469854481218e-01 + 6.602800000000e-09 -3.585297030204e-01 + 6.612800000000e-09 -2.241285188885e-01 + 6.622800000000e-09 -6.098819473744e-02 + 6.632800000000e-09 1.139318125234e-01 + 6.642800000000e-09 2.778956461170e-01 + 6.652800000000e-09 4.033680717374e-01 + 6.662800000000e-09 4.683552507659e-01 + 6.672800000000e-09 4.651634260349e-01 + 6.682800000000e-09 3.978578316763e-01 + 6.692800000000e-09 2.785616367438e-01 + 6.702800000000e-09 1.242551180056e-01 + 6.712800000000e-09 -4.845753585481e-02 + 6.722800000000e-09 -2.195985235262e-01 + 6.732800000000e-09 -3.626046206166e-01 + 6.742800000000e-09 -4.518444767662e-01 + 6.752800000000e-09 -4.740809680108e-01 + 6.762800000000e-09 -4.296660441547e-01 + 6.772800000000e-09 -3.281910708526e-01 + 6.782800000000e-09 -1.851612686760e-01 + 6.792800000000e-09 -1.740573341372e-02 + 6.802800000000e-09 1.571724984386e-01 + 6.812800000000e-09 3.140546881788e-01 + 6.822800000000e-09 4.258812834062e-01 + 6.832800000000e-09 4.738414589468e-01 + 6.842800000000e-09 4.537566539097e-01 + 6.852800000000e-09 3.720641979526e-01 + 6.862800000000e-09 2.423888380726e-01 + 6.872800000000e-09 8.196725981161e-02 + 6.882800000000e-09 -9.249379793095e-02 + 6.892800000000e-09 -2.591817856482e-01 + 6.902800000000e-09 -3.907462343651e-01 + 6.912800000000e-09 -4.638942717642e-01 + 6.922800000000e-09 -4.690920029795e-01 + 6.932800000000e-09 -4.091359274803e-01 + 6.942800000000e-09 -2.953564183406e-01 + 6.952800000000e-09 -1.444404430849e-01 + 6.962800000000e-09 2.691026696538e-02 + 6.972800000000e-09 1.995500208960e-01 + 6.982800000000e-09 3.474939241121e-01 + 6.992800000000e-09 4.443446395705e-01 + 7.002800000000e-09 4.749862586126e-01 + 7.012800000000e-09 4.383808953813e-01 + 7.022800000000e-09 3.431336072748e-01 + 7.032800000000e-09 2.041930538090e-01 + 7.042800000000e-09 3.860383894511e-02 + 7.052800000000e-09 -1.362689581225e-01 + 7.062800000000e-09 -2.967541171234e-01 + 7.072800000000e-09 -4.153281346461e-01 + 7.082800000000e-09 -4.715026678129e-01 + 7.092800000000e-09 -4.595144522147e-01 + 7.102800000000e-09 -3.847499593822e-01 + 7.112800000000e-09 -2.600506751530e-01 + 7.122800000000e-09 -1.025702225937e-01 + 7.132800000000e-09 7.110448640387e-02 + 7.142800000000e-09 2.400757299797e-01 + 7.152800000000e-09 3.773223792182e-01 + 7.162800000000e-09 4.584546052916e-01 + 7.172800000000e-09 4.720525015111e-01 + 7.182800000000e-09 4.195633982345e-01 + 7.192800000000e-09 3.117299147950e-01 + 7.202800000000e-09 1.646411276352e-01 + 7.212800000000e-09 -5.161039097261e-03 + 7.222800000000e-09 -1.790536862020e-01 + 7.232800000000e-09 -3.316854144100e-01 + 7.242800000000e-09 -4.360652072394e-01 + 7.252800000000e-09 -4.752166704094e-01 + 7.262800000000e-09 -4.466169102477e-01 + 7.272800000000e-09 -3.578372811604e-01 + 7.282800000000e-09 -2.232149678243e-01 + 7.292800000000e-09 -5.995141451143e-02 + 7.302800000000e-09 1.149782254260e-01 + 7.312800000000e-09 2.787935796428e-01 + 7.322800000000e-09 4.039551204642e-01 + 7.332800000000e-09 4.685378923459e-01 + 7.342800000000e-09 4.649365331667e-01 + 7.352800000000e-09 3.972763577699e-01 + 7.362800000000e-09 2.777182658313e-01 + 7.372800000000e-09 1.232540598684e-01 + 7.382800000000e-09 -4.951511219396e-02 + 7.392800000000e-09 -2.205691911061e-01 + 7.402800000000e-09 -3.633199246793e-01 + 7.412800000000e-09 -4.521792946842e-01 + 7.422800000000e-09 -4.740030026091e-01 + 7.432800000000e-09 -4.292091504183e-01 + 7.442800000000e-09 -3.274363876557e-01 + 7.452800000000e-09 -1.842151195254e-01 + 7.462800000000e-09 -1.636207908478e-02 + 7.472800000000e-09 1.581899392828e-01 + 7.482800000000e-09 3.148823737174e-01 + 7.492800000000e-09 4.263688108291e-01 + 7.502800000000e-09 4.739210414447e-01 + 7.512800000000e-09 4.534394592006e-01 + 7.522800000000e-09 3.714149720879e-01 + 7.532800000000e-09 2.415061105286e-01 + 7.542800000000e-09 8.095008936837e-02 + 7.552800000000e-09 -9.353751812068e-02 + 7.562800000000e-09 -2.600994703389e-01 + 7.572800000000e-09 -3.913734459131e-01 + 7.582800000000e-09 -4.641259334052e-01 + 7.592800000000e-09 -4.689140539086e-01 + 7.602800000000e-09 -4.085977826616e-01 + 7.612800000000e-09 -2.945466239484e-01 + 7.622800000000e-09 -1.434634565774e-01 + 7.632800000000e-09 2.795670975379e-02 + 7.642800000000e-09 2.005296575054e-01 + 7.652800000000e-09 3.482404344091e-01 + 7.662800000000e-09 4.447248280863e-01 + 7.672800000000e-09 4.749576095877e-01 + 7.682800000000e-09 4.379702095616e-01 + 7.692800000000e-09 3.424163607885e-01 + 7.702800000000e-09 2.032730182620e-01 + 7.712800000000e-09 3.757542631316e-02 + 7.722800000000e-09 -1.372885979838e-01 + 7.732800000000e-09 -2.976057869227e-01 + 7.742800000000e-09 -4.158570695952e-01 + 7.752800000000e-09 -4.716308960513e-01 + 7.762800000000e-09 -4.592455639971e-01 + 7.772800000000e-09 -3.841417375387e-01 + 7.782800000000e-09 -2.591973001521e-01 + 7.792800000000e-09 -1.015721327385e-01 + 7.802800000000e-09 7.214422877077e-02 + 7.812800000000e-09 2.410103677704e-01 + 7.822800000000e-09 3.779866808324e-01 + 7.832800000000e-09 4.587325294057e-01 + 7.842800000000e-09 4.719206939081e-01 + 7.852800000000e-09 4.190662270437e-01 + 7.862800000000e-09 3.109547342056e-01 + 7.872800000000e-09 1.636930937070e-01 + 7.882800000000e-09 -6.189893137636e-03 + 7.892800000000e-09 -1.800359125821e-01 + 7.902800000000e-09 -3.324584472924e-01 + 7.912800000000e-09 -4.364893560947e-01 + 7.922800000000e-09 -4.752385710400e-01 + 7.932800000000e-09 -4.462558398640e-01 + 7.942800000000e-09 -3.571625280082e-01 + 7.952800000000e-09 -2.223265311913e-01 + 7.962800000000e-09 -5.894428530680e-02 + 7.972800000000e-09 1.159935138078e-01 + 7.982800000000e-09 2.796633756902e-01 + 7.992800000000e-09 4.045220478586e-01 + 8.002800000000e-09 4.687118860166e-01 + 8.012800000000e-09 4.647131567104e-01 + 8.022800000000e-09 3.967093215780e-01 + 8.032800000000e-09 2.768978003204e-01 + 8.042800000000e-09 1.222813100937e-01 + 8.052800000000e-09 -5.054176955126e-02 + 8.062800000000e-09 -2.215102523483e-01 + 8.072800000000e-09 -3.640119101125e-01 + 8.082800000000e-09 -4.525013022850e-01 + 8.092800000000e-09 -4.739242681687e-01 + 8.102800000000e-09 -4.287629550407e-01 + 8.112800000000e-09 -3.267018200055e-01 + 8.122800000000e-09 -1.832955094722e-01 + 8.132800000000e-09 -1.534862323570e-02 + 8.142800000000e-09 1.591768648725e-01 + 8.152800000000e-09 3.156839087936e-01 + 8.162800000000e-09 4.268393215903e-01 + 8.172800000000e-09 4.739953788447e-01 + 8.182800000000e-09 4.531289024867e-01 + 8.192800000000e-09 3.707826827383e-01 + 8.202800000000e-09 2.406479350063e-01 + 8.212800000000e-09 7.996210601300e-02 + 8.222800000000e-09 -9.455036108959e-02 + 8.232800000000e-09 -2.609888582590e-01 + 8.242800000000e-09 -3.919799218048e-01 + 8.252800000000e-09 -4.643481220436e-01 + 8.262800000000e-09 -4.687387900253e-01 + 8.272800000000e-09 -4.080733124051e-01 + 8.282800000000e-09 -2.937590870246e-01 + 8.292800000000e-09 -1.425142352874e-01 + 8.302800000000e-09 2.897263701370e-02 + 8.312800000000e-09 2.014797360792e-01 + 8.322800000000e-09 3.489631778949e-01 + 8.332800000000e-09 4.450913812836e-01 + 8.342800000000e-09 4.749272494988e-01 + 8.352800000000e-09 4.375693113287e-01 + 8.362800000000e-09 3.417184556468e-01 + 8.372800000000e-09 2.023789541406e-01 + 8.382800000000e-09 3.657678476710e-02 + 8.392800000000e-09 -1.382778477462e-01 + 8.402800000000e-09 -2.984309701800e-01 + 8.412800000000e-09 -4.163682181519e-01 + 8.422800000000e-09 -4.717528941997e-01 + 8.432800000000e-09 -4.589822762073e-01 + 8.442800000000e-09 -3.835495312736e-01 + 8.452800000000e-09 -2.583677798614e-01 + 8.462800000000e-09 -1.006027036240e-01 + 8.472800000000e-09 7.315334912653e-02 + 8.482800000000e-09 2.419164953594e-01 + 8.492800000000e-09 3.786295050504e-01 + 8.502800000000e-09 4.589999646750e-01 + 8.512800000000e-09 4.717905441024e-01 + 8.522800000000e-09 4.185817932699e-01 + 8.532800000000e-09 3.102009855836e-01 + 8.542800000000e-09 1.627721178290e-01 + 8.552800000000e-09 -7.188753107588e-03 + 8.562800000000e-09 -1.809886776543e-01 + 8.572800000000e-09 -3.332072315661e-01 + 8.582800000000e-09 -4.368989084043e-01 + 8.592800000000e-09 -4.752576147492e-01 + 8.602800000000e-09 -4.459034105088e-01 + 8.612800000000e-09 -3.565061054176e-01 + 8.622800000000e-09 -2.214632980491e-01 + 8.632800000000e-09 -5.796634781083e-02 + 8.642800000000e-09 1.169786467988e-01 + 8.652800000000e-09 2.805063955936e-01 + 8.662800000000e-09 4.050703751487e-01 + 8.672800000000e-09 4.688786355596e-01 + 8.682800000000e-09 4.644943846068e-01 + 8.692800000000e-09 3.961573725589e-01 + 8.702800000000e-09 2.761003910130e-01 + 8.712800000000e-09 1.213365361636e-01 + 8.722800000000e-09 -5.153828810958e-02 + 8.732800000000e-09 -2.224228563487e-01 + 8.742800000000e-09 -3.646819188955e-01 + 8.752800000000e-09 -4.528117860280e-01 + 8.762800000000e-09 -4.738457972672e-01 + 8.772800000000e-09 -4.283281105398e-01 + 8.782800000000e-09 -3.259875734726e-01 + 8.792800000000e-09 -1.824021957242e-01 + 8.802800000000e-09 -1.436472012693e-02 + 8.812800000000e-09 1.601342665905e-01 + 8.822800000000e-09 3.164604971745e-01 + 8.832800000000e-09 4.272940159130e-01 + 8.842800000000e-09 4.740654594224e-01 + 8.852800000000e-09 4.528256320820e-01 + 8.862800000000e-09 3.701675730450e-01 + 8.872800000000e-09 2.398141382327e-01 + 8.882800000000e-09 7.900276799010e-02 + 8.892800000000e-09 -9.553318893173e-02 + 8.902800000000e-09 -2.618510310670e-01 + 8.912800000000e-09 -3.925667833725e-01 + 8.922800000000e-09 -4.645617864454e-01 + 8.932800000000e-09 -4.685668510319e-01 + 8.942800000000e-09 -4.075627858079e-01 + 8.952800000000e-09 -2.929936949125e-01 + 8.962800000000e-09 -1.415923245157e-01 + 8.972800000000e-09 2.995879538227e-02 + 8.982800000000e-09 2.024012224116e-01 + 8.992800000000e-09 3.496631972269e-01 + 9.002800000000e-09 4.454452252897e-01 + 9.012800000000e-09 4.748958389535e-01 + 9.022800000000e-09 4.371785193807e-01 + 9.032800000000e-09 3.410398456534e-01 + 9.042800000000e-09 2.015104759426e-01 + 9.052800000000e-09 3.560724990779e-02 + 9.062800000000e-09 -1.392375916003e-01 + 9.072800000000e-09 -2.992306557216e-01 + 9.082800000000e-09 -4.168624991331e-01 + 9.092800000000e-09 -4.718693474070e-01 + 9.102800000000e-09 -4.587249549050e-01 + 9.112800000000e-09 -3.829733573589e-01 + 9.122800000000e-09 -2.575617970342e-01 + 9.132800000000e-09 -9.966134601027e-02 + 9.142800000000e-09 7.413265450908e-02 + 9.152800000000e-09 2.427950475487e-01 + 9.162800000000e-09 3.792517638854e-01 + 9.172800000000e-09 4.592576225583e-01 + 9.182800000000e-09 4.716624560228e-01 + 9.192800000000e-09 4.181101639976e-01 + 9.202800000000e-09 3.092265329602e-01 + 9.212800000000e-09 1.613826760635e-01 + 9.222800000000e-09 -8.591362378177e-03 + 9.232800000000e-09 -1.821948797593e-01 + 9.242800000000e-09 -3.340150894862e-01 + 9.252800000000e-09 -4.371621210986e-01 + 9.262800000000e-09 -4.749554282351e-01 + 9.272800000000e-09 -4.451076323293e-01 + 9.282800000000e-09 -3.553515682906e-01 + 9.292800000000e-09 -2.201127094289e-01 + 9.302800000000e-09 -5.656081616114e-02 + 9.312800000000e-09 1.182861505677e-01 + 9.322800000000e-09 2.815142984545e-01 + 9.332800000000e-09 4.055953487096e-01 + 9.342800000000e-09 4.688405149588e-01 + 9.352800000000e-09 4.639282574056e-01 + 9.362800000000e-09 3.951697954098e-01 + 9.372800000000e-09 2.748410208718e-01 + 9.382800000000e-09 1.199553529026e-01 + 9.392800000000e-09 -5.290213319449e-02 + 9.402800000000e-09 -2.235831261205e-01 + 9.412800000000e-09 -3.654339231997e-01 + 9.422800000000e-09 -4.530258550273e-01 + 9.432800000000e-09 -4.735141556152e-01 + 9.442800000000e-09 -4.275270401763e-01 + 9.452800000000e-09 -3.248487299410e-01 + 9.462800000000e-09 -1.810818003189e-01 + 9.472800000000e-09 -1.299077535256e-02 + 9.482800000000e-09 1.613974715264e-01 + 9.492800000000e-09 3.174079009097e-01 + 9.502800000000e-09 4.277524528595e-01 + 9.512800000000e-09 4.739771135621e-01 + 9.522800000000e-09 4.522321956163e-01 + 9.532800000000e-09 3.691771378048e-01 + 9.542800000000e-09 2.385719436969e-01 + 9.552800000000e-09 7.764528823620e-02 + 9.562800000000e-09 -9.686221532971e-02 + 9.572800000000e-09 -2.629550288587e-01 + 9.582800000000e-09 -3.932467336316e-01 + 9.592800000000e-09 -4.647055554736e-01 + 9.602800000000e-09 -4.681803379887e-01 + 9.612800000000e-09 -4.067303902511e-01 + 9.622800000000e-09 -2.918469601552e-01 + 9.632800000000e-09 -1.402757453327e-01 + 9.642800000000e-09 3.131421333503e-02 + 9.652800000000e-09 2.036177559532e-01 + 9.662800000000e-09 3.505322257024e-01 + 9.672800000000e-09 4.458123436490e-01 + 9.682800000000e-09 4.747262934582e-01 + 9.692800000000e-09 4.365256422635e-01 + 9.702800000000e-09 3.400168603682e-01 + 9.712800000000e-09 2.002625637283e-01 + 9.722800000000e-09 3.426034245284e-02 + 9.732800000000e-09 -1.405291730806e-01 + 9.742800000000e-09 -3.002636586864e-01 + 9.752800000000e-09 -4.174484725967e-01 + 9.762800000000e-09 -4.719250075856e-01 + 9.772800000000e-09 -4.582708742877e-01 + 9.782800000000e-09 -3.820983680033e-01 + 9.792800000000e-09 -2.563983408258e-01 + 9.802800000000e-09 -9.834411992492e-02 + 9.812800000000e-09 7.546768052518e-02 + 9.822800000000e-09 2.439578803486e-01 + 9.832800000000e-09 3.800357419997e-01 + 9.842800000000e-09 4.595268514096e-01 + 9.852800000000e-09 4.714010914262e-01 + 9.862800000000e-09 4.173874847971e-01 + 9.872800000000e-09 3.081621115291e-01 + 9.882800000000e-09 1.601168816176e-01 + 9.892800000000e-09 -9.932484823151e-03 + 9.902800000000e-09 -1.834427530536e-01 + 9.912800000000e-09 -3.349615688487e-01 + 9.922800000000e-09 -4.376364193680e-01 + 9.932800000000e-09 -4.749013873935e-01 + 9.942800000000e-09 -4.445619952081e-01 + 9.952800000000e-09 -3.544142263967e-01 + 9.962800000000e-09 -2.189205271704e-01 + 9.972800000000e-09 -5.523950154618e-02 + 9.982800000000e-09 1.195908539713e-01 + 9.992800000000e-09 2.826034683724e-01 + 1.000000000000e-08 3.777061594093e-01 diff --git a/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_04/conditions.yaml b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_04/conditions.yaml new file mode 100644 index 00000000..3f88ef7f --- /dev/null +++ b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_04/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/LC_Oscillator/xschem/simulations/schematic/LC_Oscillator.spice +N: 4 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: ff +filename: LC_Oscillator_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_04 +temperature: '-40' +vdd: '1.2' diff --git a/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_05/.spiceinit b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_05/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_05/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_05/LC_Oscillator.sym b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_05/LC_Oscillator.sym new file mode 100644 index 00000000..e632b156 --- /dev/null +++ b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_05/LC_Oscillator.sym @@ -0,0 +1,27 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 70 -20 90 -20 {} +L 4 70 20 90 20 {} +L 7 20 70 20 90 {} +L 7 -20 70 -20 90 {} +B 5 87.5 -22.5 92.5 -17.5 {name=Voplus dir=out} +B 5 17.5 87.5 22.5 92.5 {name=vdd dir=inout} +B 5 -22.5 87.5 -17.5 92.5 {name=gnd dir=inout} +B 5 87.5 17.5 92.5 22.5 {name=Vominus dir=out} +A 4 -1.666666666666714 1.666666666666714 71.68604389202189 287.5924245621816 360 {} +A 4 -30 27.5 40.69705149024927 42.51044707800085 94.97910584399833 {} +A 4 30 -27.5 40.69705149024927 222.5104470780009 94.97910584399833 {} +T {@symname} -40.5 -56 0 0 0.1 0.1 {} +T {@name} -40 -47 0 0 0.1 0.1 { +} +T {Voplus} 65 -24 0 1 0.2 0.2 {} +T {vdd} 5 64 2 1 0.2 0.2 {} +T {gnd} -35 64 2 1 0.2 0.2 {} +T {Vominus} 65 16 0 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_05/LC_Oscillator_tb.sch b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_05/LC_Oscillator_tb.sch new file mode 100644 index 00000000..5ce5e08c --- /dev/null +++ b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_05/LC_Oscillator_tb.sch @@ -0,0 +1,57 @@ +v {xschem version=3.4.8RC file_version=1.3} +G {} +K {} +V {} +S {} +F {} +E {} +N 1570 -1060 1570 -1030 {lab=VDD} +N 1570 -970 1570 -940 {lab=GND} +N 1270 -1050 1270 -1030 {lab=GND} +N 1230 -1060 1230 -1030 {lab=VDD} +N 1140 -920 1160 -920 {lab=Voplus} +N 1140 -960 1160 -960 {lab=Vominus} +C {code_shown.sym} 440 -1140 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write LC_Oscillator_tb.raw +set appendwrite +tran 10p 10n 160p +save all + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_05/LC_Oscillator_tb_5.data vo_diff +quit + +.endc +"} +C {vsource.sym} 1570 -1000 0 0 {name=V1 value=1.6 savecurrent=false} +C {gnd.sym} 1570 -940 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1570 -1060 0 0 {name=p2 sig_type=std_logic lab=VDD} +C {opin.sym} 1140 -920 2 0 {name=p6 lab=Voplus} +C {gnd.sym} 1270 -1050 2 0 {name=l3 lab=GND} +C {opin.sym} 1140 -960 0 1 {name=p9 lab=Vominus} +C {LC_Oscillator.sym} 1250 -940 2 0 {name=x1} +C {devices/code_shown.sym} 450 -640 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_ff + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/LC_Oscillator/xschem/simulations/schematic/LC_Oscillator.spice + +.temp -40 +" +} +C {iopin.sym} 1230 -1060 2 0 {name=p1 lab=VDD} diff --git a/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_05/conditions.yaml b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_05/conditions.yaml new file mode 100644 index 00000000..4b006409 --- /dev/null +++ b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_05/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/LC_Oscillator/xschem/simulations/schematic/LC_Oscillator.spice +N: 5 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: ff +filename: LC_Oscillator_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_05 +temperature: '-40' +vdd: '1.6' diff --git a/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_06/.spiceinit b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_06/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_06/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_06/LC_Oscillator.sym b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_06/LC_Oscillator.sym new file mode 100644 index 00000000..e632b156 --- /dev/null +++ b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_06/LC_Oscillator.sym @@ -0,0 +1,27 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 70 -20 90 -20 {} +L 4 70 20 90 20 {} +L 7 20 70 20 90 {} +L 7 -20 70 -20 90 {} +B 5 87.5 -22.5 92.5 -17.5 {name=Voplus dir=out} +B 5 17.5 87.5 22.5 92.5 {name=vdd dir=inout} +B 5 -22.5 87.5 -17.5 92.5 {name=gnd dir=inout} +B 5 87.5 17.5 92.5 22.5 {name=Vominus dir=out} +A 4 -1.666666666666714 1.666666666666714 71.68604389202189 287.5924245621816 360 {} +A 4 -30 27.5 40.69705149024927 42.51044707800085 94.97910584399833 {} +A 4 30 -27.5 40.69705149024927 222.5104470780009 94.97910584399833 {} +T {@symname} -40.5 -56 0 0 0.1 0.1 {} +T {@name} -40 -47 0 0 0.1 0.1 { +} +T {Voplus} 65 -24 0 1 0.2 0.2 {} +T {vdd} 5 64 2 1 0.2 0.2 {} +T {gnd} -35 64 2 1 0.2 0.2 {} +T {Vominus} 65 16 0 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_06/LC_Oscillator_tb.sch b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_06/LC_Oscillator_tb.sch new file mode 100644 index 00000000..c846cb86 --- /dev/null +++ b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_06/LC_Oscillator_tb.sch @@ -0,0 +1,57 @@ +v {xschem version=3.4.8RC file_version=1.3} +G {} +K {} +V {} +S {} +F {} +E {} +N 1570 -1060 1570 -1030 {lab=VDD} +N 1570 -970 1570 -940 {lab=GND} +N 1270 -1050 1270 -1030 {lab=GND} +N 1230 -1060 1230 -1030 {lab=VDD} +N 1140 -920 1160 -920 {lab=Voplus} +N 1140 -960 1160 -960 {lab=Vominus} +C {code_shown.sym} 440 -1140 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write LC_Oscillator_tb.raw +set appendwrite +tran 10p 10n 160p +save all + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_06/LC_Oscillator_tb_6.data vo_diff +quit + +.endc +"} +C {vsource.sym} 1570 -1000 0 0 {name=V1 value=0.8 savecurrent=false} +C {gnd.sym} 1570 -940 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1570 -1060 0 0 {name=p2 sig_type=std_logic lab=VDD} +C {opin.sym} 1140 -920 2 0 {name=p6 lab=Voplus} +C {gnd.sym} 1270 -1050 2 0 {name=l3 lab=GND} +C {opin.sym} 1140 -960 0 1 {name=p9 lab=Vominus} +C {LC_Oscillator.sym} 1250 -940 2 0 {name=x1} +C {devices/code_shown.sym} 450 -640 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_ss + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/LC_Oscillator/xschem/simulations/schematic/LC_Oscillator.spice + +.temp -40 +" +} +C {iopin.sym} 1230 -1060 2 0 {name=p1 lab=VDD} diff --git a/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_06/conditions.yaml b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_06/conditions.yaml new file mode 100644 index 00000000..32678e67 --- /dev/null +++ b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_06/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/LC_Oscillator/xschem/simulations/schematic/LC_Oscillator.spice +N: 6 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: ss +filename: LC_Oscillator_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_06 +temperature: '-40' +vdd: '0.8' diff --git a/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_07/.spiceinit b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_07/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_07/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_07/LC_Oscillator.sym b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_07/LC_Oscillator.sym new file mode 100644 index 00000000..e632b156 --- /dev/null +++ b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_07/LC_Oscillator.sym @@ -0,0 +1,27 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 70 -20 90 -20 {} +L 4 70 20 90 20 {} +L 7 20 70 20 90 {} +L 7 -20 70 -20 90 {} +B 5 87.5 -22.5 92.5 -17.5 {name=Voplus dir=out} +B 5 17.5 87.5 22.5 92.5 {name=vdd dir=inout} +B 5 -22.5 87.5 -17.5 92.5 {name=gnd dir=inout} +B 5 87.5 17.5 92.5 22.5 {name=Vominus dir=out} +A 4 -1.666666666666714 1.666666666666714 71.68604389202189 287.5924245621816 360 {} +A 4 -30 27.5 40.69705149024927 42.51044707800085 94.97910584399833 {} +A 4 30 -27.5 40.69705149024927 222.5104470780009 94.97910584399833 {} +T {@symname} -40.5 -56 0 0 0.1 0.1 {} +T {@name} -40 -47 0 0 0.1 0.1 { +} +T {Voplus} 65 -24 0 1 0.2 0.2 {} +T {vdd} 5 64 2 1 0.2 0.2 {} +T {gnd} -35 64 2 1 0.2 0.2 {} +T {Vominus} 65 16 0 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_07/LC_Oscillator_tb.sch b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_07/LC_Oscillator_tb.sch new file mode 100644 index 00000000..21baf117 --- /dev/null +++ b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_07/LC_Oscillator_tb.sch @@ -0,0 +1,57 @@ +v {xschem version=3.4.8RC file_version=1.3} +G {} +K {} +V {} +S {} +F {} +E {} +N 1570 -1060 1570 -1030 {lab=VDD} +N 1570 -970 1570 -940 {lab=GND} +N 1270 -1050 1270 -1030 {lab=GND} +N 1230 -1060 1230 -1030 {lab=VDD} +N 1140 -920 1160 -920 {lab=Voplus} +N 1140 -960 1160 -960 {lab=Vominus} +C {code_shown.sym} 440 -1140 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write LC_Oscillator_tb.raw +set appendwrite +tran 10p 10n 160p +save all + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_07/LC_Oscillator_tb_7.data vo_diff +quit + +.endc +"} +C {vsource.sym} 1570 -1000 0 0 {name=V1 value=1.2 savecurrent=false} +C {gnd.sym} 1570 -940 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1570 -1060 0 0 {name=p2 sig_type=std_logic lab=VDD} +C {opin.sym} 1140 -920 2 0 {name=p6 lab=Voplus} +C {gnd.sym} 1270 -1050 2 0 {name=l3 lab=GND} +C {opin.sym} 1140 -960 0 1 {name=p9 lab=Vominus} +C {LC_Oscillator.sym} 1250 -940 2 0 {name=x1} +C {devices/code_shown.sym} 450 -640 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_ss + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/LC_Oscillator/xschem/simulations/schematic/LC_Oscillator.spice + +.temp -40 +" +} +C {iopin.sym} 1230 -1060 2 0 {name=p1 lab=VDD} diff --git a/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_07/LC_Oscillator_tb_7.data b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_07/LC_Oscillator_tb_7.data new file mode 100644 index 00000000..ad238f94 --- /dev/null +++ b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_07/LC_Oscillator_tb_7.data @@ -0,0 +1,985 @@ + 1.628000000000e-10 8.466139813278e-03 + 1.728000000000e-10 -6.989764545663e-03 + 1.828000000000e-10 -2.211384336733e-02 + 1.928000000000e-10 -3.476199246532e-02 + 2.028000000000e-10 -4.304137789423e-02 + 2.128000000000e-10 -4.559970872536e-02 + 2.228000000000e-10 -4.184348474317e-02 + 2.328000000000e-10 -3.204685309230e-02 + 2.428000000000e-10 -1.733723205359e-02 + 2.528000000000e-10 4.303944679023e-04 + 2.628000000000e-10 1.889333321150e-02 + 2.728000000000e-10 3.547830745135e-02 + 2.828000000000e-10 4.775513119003e-02 + 2.928000000000e-10 5.380112818945e-02 + 3.028000000000e-10 5.250953109056e-02 + 3.128000000000e-10 4.377624879079e-02 + 3.228000000000e-10 2.853565001972e-02 + 3.328000000000e-10 8.655457124699e-03 + 3.428000000000e-10 -1.327969731390e-02 + 3.528000000000e-10 -3.427735200553e-02 + 3.628000000000e-10 -5.132690805429e-02 + 3.728000000000e-10 -6.183800886884e-02 + 3.828000000000e-10 -6.405258370227e-02 + 3.928000000000e-10 -5.733769961496e-02 + 4.028000000000e-10 -4.229750097009e-02 + 4.128000000000e-10 -2.069916677185e-02 + 4.228000000000e-10 4.711284927248e-03 + 4.328000000000e-10 3.053386013499e-02 + 4.428000000000e-10 5.314690810909e-02 + 4.528000000000e-10 6.918917963707e-02 + 4.628000000000e-10 7.609939053053e-02 + 4.728000000000e-10 7.255015258786e-02 + 4.828000000000e-10 5.866649319868e-02 + 4.928000000000e-10 3.600881759449e-02 + 5.028000000000e-10 7.376234974355e-03 + 5.128000000000e-10 -2.350373526855e-02 + 5.228000000000e-10 -5.239138589360e-02 + 5.328000000000e-10 -7.508361413270e-02 + 5.428000000000e-10 -8.806281423305e-02 + 5.528000000000e-10 -8.910158685147e-02 + 5.628000000000e-10 -7.764249945861e-02 + 5.728000000000e-10 -5.486688582529e-02 + 5.828000000000e-10 -2.351209371064e-02 + 5.928000000000e-10 1.245191353547e-02 + 6.028000000000e-10 4.818680767640e-02 + 6.128000000000e-10 7.860335472599e-02 + 6.228000000000e-10 9.912261037184e-02 + 6.328000000000e-10 1.063880526397e-01 + 6.428000000000e-10 9.891116957065e-02 + 6.528000000000e-10 7.730282696693e-02 + 6.628000000000e-10 4.409533474647e-02 + 6.728000000000e-10 3.372731748605e-03 + 6.828000000000e-10 -3.954512314516e-02 + 6.928000000000e-10 -7.865333197232e-02 + 7.028000000000e-10 -1.081937317105e-01 + 7.128000000000e-10 -1.235163259529e-01 + 7.228000000000e-10 -1.219048436906e-01 + 7.328000000000e-10 -1.031190792809e-01 + 7.428000000000e-10 -6.931095685739e-02 + 7.528000000000e-10 -2.453879442551e-02 + 7.628000000000e-10 2.552929073880e-02 + 7.728000000000e-10 7.407148496569e-02 + 7.828000000000e-10 1.140358860996e-01 + 7.928000000000e-10 1.392792795913e-01 + 8.028000000000e-10 1.456389048407e-01 + 8.128000000000e-10 1.316857938071e-01 + 8.228000000000e-10 9.894433759839e-02 + 8.328000000000e-10 5.131248576436e-02 + 8.428000000000e-10 -5.358847182381e-03 + 8.528000000000e-10 -6.360439334869e-02 + 8.628000000000e-10 -1.151693300350e-01 + 8.728000000000e-10 -1.521976935050e-01 + 8.828000000000e-10 -1.687585975713e-01 + 8.928000000000e-10 -1.619616918764e-01 + 9.028000000000e-10 -1.323664149588e-01 + 9.128000000000e-10 -8.352936591315e-02 + 9.228000000000e-10 -2.135282415633e-02 + 9.328000000000e-10 4.628086258094e-02 + 9.428000000000e-10 1.100989443702e-01 + 9.528000000000e-10 1.605478047932e-01 + 9.628000000000e-10 1.896462439023e-01 + 9.728000000000e-10 1.925702503435e-01 + 9.828000000000e-10 1.685263276057e-01 + 9.928000000000e-10 1.205488998475e-01 + 1.002800000000e-09 5.449574894669e-02 + 1.012800000000e-09 -2.155796518877e-02 + 1.022800000000e-09 -9.762801796948e-02 + 1.032800000000e-09 -1.626265512104e-01 + 1.042800000000e-09 -2.062702568865e-01 + 1.052800000000e-09 -2.214542197751e-01 + 1.062800000000e-09 -2.056913513097e-01 + 1.072800000000e-09 -1.611050525126e-01 + 1.082800000000e-09 -9.336703872958e-02 + 1.092800000000e-09 -1.061720602163e-02 + 1.102800000000e-09 7.681080719049e-02 + 1.112800000000e-09 1.566723821773e-01 + 1.122800000000e-09 2.164982231637e-01 + 1.132800000000e-09 2.465448999219e-01 + 1.142800000000e-09 2.420026709856e-01 + 1.152800000000e-09 2.036160440623e-01 + 1.162800000000e-09 1.367299362288e-01 + 1.172800000000e-09 4.953318443319e-02 + 1.182800000000e-09 -4.757680257613e-02 + 1.192800000000e-09 -1.417261588456e-01 + 1.202800000000e-09 -2.185923016248e-01 + 1.212800000000e-09 -2.655522626421e-01 + 1.222800000000e-09 -2.750103865102e-01 + 1.232800000000e-09 -2.458943395528e-01 + 1.242800000000e-09 -1.828059434037e-01 + 1.252800000000e-09 -9.389402413968e-02 + 1.262800000000e-09 1.045751031358e-02 + 1.272800000000e-09 1.172736856871e-01 + 1.282800000000e-09 2.110056930002e-01 + 1.292800000000e-09 2.763578111715e-01 + 1.302800000000e-09 3.025386031491e-01 + 1.312800000000e-09 2.858704579490e-01 + 1.322800000000e-09 2.296325291215e-01 + 1.332800000000e-09 1.419074289003e-01 + 1.342800000000e-09 3.316992042992e-02 + 1.352800000000e-09 -8.388044866598e-02 + 1.362800000000e-09 -1.932562695278e-01 + 1.372800000000e-09 -2.774871132734e-01 + 1.382800000000e-09 -3.223780566378e-01 + 1.392800000000e-09 -3.210388786384e-01 + 1.402800000000e-09 -2.748900041793e-01 + 1.412800000000e-09 -1.914986746518e-01 + 1.422800000000e-09 -8.149991087129e-02 + 1.432800000000e-09 4.270361021551e-02 + 1.442800000000e-09 1.654373376734e-01 + 1.452800000000e-09 2.678894497884e-01 + 1.462800000000e-09 3.327285903944e-01 + 1.472800000000e-09 3.493769879676e-01 + 1.482800000000e-09 3.166274602608e-01 + 1.492800000000e-09 2.408120410241e-01 + 1.502800000000e-09 1.326694748108e-01 + 1.512800000000e-09 4.559994348836e-03 + 1.522800000000e-09 -1.285808451592e-01 + 1.532800000000e-09 -2.476156377920e-01 + 1.542800000000e-09 -3.326770493974e-01 + 1.552800000000e-09 -3.692677257119e-01 + 1.562800000000e-09 -3.527790337499e-01 + 1.572800000000e-09 -2.877386960688e-01 + 1.582800000000e-09 -1.845642103220e-01 + 1.592800000000e-09 -5.585498905103e-02 + 1.602800000000e-09 8.423770813714e-02 + 1.612800000000e-09 2.172230888271e-01 + 1.622800000000e-09 3.216305140932e-01 + 1.632800000000e-09 3.793200081802e-01 + 1.642800000000e-09 3.816575817800e-01 + 1.652800000000e-09 3.306744528029e-01 + 1.662800000000e-09 2.356167608227e-01 + 1.672800000000e-09 1.093849130849e-01 + 1.682800000000e-09 -3.424811960080e-02 + 1.692800000000e-09 -1.780292689347e-01 + 1.702800000000e-09 -3.000094283801e-01 + 1.712800000000e-09 -3.790547845963e-01 + 1.722800000000e-09 -4.021625609396e-01 + 1.732800000000e-09 -3.680613987977e-01 + 1.742800000000e-09 -2.841630955072e-01 + 1.752800000000e-09 -1.632830293936e-01 + 1.762800000000e-09 -1.937509270894e-02 + 1.772800000000e-09 1.316812223706e-01 + 1.782800000000e-09 2.686010377709e-01 + 1.792800000000e-09 3.682172692356e-01 + 1.802800000000e-09 4.132987677366e-01 + 1.812800000000e-09 3.985512450192e-01 + 1.822800000000e-09 3.289587064992e-01 + 1.832800000000e-09 2.163065908104e-01 + 1.842800000000e-09 7.502947693200e-02 + 1.852800000000e-09 -7.990405891181e-02 + 1.862800000000e-09 -2.287060480024e-01 + 1.872800000000e-09 -3.473140267261e-01 + 1.882800000000e-09 -4.147306069316e-01 + 1.892800000000e-09 -4.210768315507e-01 + 1.902800000000e-09 -3.684083344391e-01 + 1.912800000000e-09 -2.667937231795e-01 + 1.922800000000e-09 -1.308757715911e-01 + 1.932800000000e-09 2.458718836226e-02 + 1.942800000000e-09 1.816993375366e-01 + 1.952800000000e-09 3.167355318502e-01 + 1.962800000000e-09 4.059791159530e-01 + 1.972800000000e-09 4.347218061084e-01 + 1.982800000000e-09 4.013744125492e-01 + 1.992800000000e-09 3.137217430464e-01 + 2.002800000000e-09 1.856967600762e-01 + 2.012800000000e-09 3.258994811420e-02 + 2.022800000000e-09 -1.293338004401e-01 + 2.032800000000e-09 -2.777513251262e-01 + 2.042800000000e-09 -3.874198526342e-01 + 2.052800000000e-09 -4.391252423722e-01 + 2.062800000000e-09 -4.269341888354e-01 + 2.072800000000e-09 -3.559124884989e-01 + 2.082800000000e-09 -2.384361755451e-01 + 2.092800000000e-09 -9.026491116925e-02 + 2.102800000000e-09 7.316848133267e-02 + 2.112800000000e-09 2.316131160024e-01 + 2.122800000000e-09 3.595637305914e-01 + 2.132800000000e-09 4.341431816790e-01 + 2.142800000000e-09 4.444691258232e-01 + 2.152800000000e-09 3.923194864196e-01 + 2.162800000000e-09 2.880130541319e-01 + 2.172800000000e-09 1.471074503876e-01 + 2.182800000000e-09 -1.486480588787e-02 + 2.192800000000e-09 -1.798385967885e-01 + 2.202800000000e-09 -3.232377500798e-01 + 2.212800000000e-09 -4.197337742534e-01 + 2.222800000000e-09 -4.533447559595e-01 + 2.232800000000e-09 -4.219933380368e-01 + 2.242800000000e-09 -3.335147840304e-01 + 2.252800000000e-09 -2.022524095992e-01 + 2.262800000000e-09 -4.431159067591e-02 + 2.272800000000e-09 1.238405564056e-01 + 2.282800000000e-09 2.794809180091e-01 + 2.292800000000e-09 3.961695871127e-01 + 2.302800000000e-09 4.533549186274e-01 + 2.312800000000e-09 4.443648364834e-01 + 2.322800000000e-09 3.739215677309e-01 + 2.332800000000e-09 2.545997632806e-01 + 2.342800000000e-09 1.029721003714e-01 + 2.352800000000e-09 -6.519899449665e-02 + 2.362800000000e-09 -2.296000110886e-01 + 2.372800000000e-09 -3.639811575946e-01 + 2.382800000000e-09 -4.441864068486e-01 + 2.392800000000e-09 -4.584115852263e-01 + 2.402800000000e-09 -4.080160649881e-01 + 2.412800000000e-09 -3.032676948905e-01 + 2.422800000000e-09 -1.601412790287e-01 + 2.432800000000e-09 5.251962647117e-03 + 2.442800000000e-09 1.749031095668e-01 + 2.452800000000e-09 3.239080249012e-01 + 2.462800000000e-09 4.259246070814e-01 + 2.472800000000e-09 4.639146984263e-01 + 2.482800000000e-09 4.352261783007e-01 + 2.492800000000e-09 3.474474807024e-01 + 2.502800000000e-09 2.150578918144e-01 + 2.512800000000e-09 5.480659346689e-02 + 2.522800000000e-09 -1.168253653714e-01 + 2.532800000000e-09 -2.771009760446e-01 + 2.542800000000e-09 -3.989201473998e-01 + 2.552800000000e-09 -4.606923726105e-01 + 2.562800000000e-09 -4.550120427969e-01 + 2.572800000000e-09 -3.862269692701e-01 + 2.582800000000e-09 -2.668535894327e-01 + 2.592800000000e-09 -1.138588993645e-01 + 2.602800000000e-09 5.675441709923e-02 + 2.612800000000e-09 2.248204631246e-01 + 2.622800000000e-09 3.637734406674e-01 + 2.632800000000e-09 4.485709877067e-01 + 2.642800000000e-09 4.665412537078e-01 + 2.652800000000e-09 4.185581580288e-01 + 2.662800000000e-09 3.146773534458e-01 + 2.672800000000e-09 1.710002474767e-01 + 2.682800000000e-09 4.047806431867e-03 + 2.692800000000e-09 -1.683320588814e-01 + 2.702800000000e-09 -3.212083323794e-01 + 2.712800000000e-09 -4.276118799342e-01 + 2.722800000000e-09 -4.695916842881e-01 + 2.732800000000e-09 -4.438832211121e-01 + 2.742800000000e-09 -3.577318472782e-01 + 2.752800000000e-09 -2.255571298340e-01 + 2.762800000000e-09 -6.449380898856e-02 + 2.772800000000e-09 1.090045938277e-01 + 2.782800000000e-09 2.723763322301e-01 + 2.792800000000e-09 3.981848781019e-01 + 2.802800000000e-09 4.640164290864e-01 + 2.812800000000e-09 4.617186627229e-01 + 2.822800000000e-09 3.951987540893e-01 + 2.832800000000e-09 2.767861972704e-01 + 2.842800000000e-09 1.236178604328e-01 + 2.852800000000e-09 -4.812460673360e-02 + 2.862800000000e-09 -2.185275826952e-01 + 2.872800000000e-09 -3.609548753329e-01 + 2.882800000000e-09 -4.497203671813e-01 + 2.892800000000e-09 -4.713174550646e-01 + 2.902800000000e-09 -4.260983579490e-01 + 2.912800000000e-09 -3.239291873884e-01 + 2.922800000000e-09 -1.807853621365e-01 + 2.932800000000e-09 -1.331311632460e-02 + 2.942800000000e-09 1.607455013966e-01 + 2.952800000000e-09 3.165719656036e-01 + 2.962800000000e-09 4.267896770044e-01 + 2.972800000000e-09 4.726057617794e-01 + 2.982800000000e-09 4.501063281125e-01 + 2.992800000000e-09 3.661315040334e-01 + 3.002800000000e-09 2.349343767897e-01 + 3.012800000000e-09 7.388416317358e-02 + 3.022800000000e-09 -1.006048354406e-01 + 3.032800000000e-09 -2.662518120143e-01 + 3.042800000000e-09 -3.954651858862e-01 + 3.052800000000e-09 -4.651286367795e-01 + 3.062800000000e-09 -4.663150363018e-01 + 3.072800000000e-09 -4.024431617829e-01 + 3.082800000000e-09 -2.855793986349e-01 + 3.092800000000e-09 -1.329052805520e-01 + 3.102800000000e-09 3.924852498510e-02 + 3.112800000000e-09 2.112734009248e-01 + 3.122800000000e-09 3.566043651541e-01 + 3.132800000000e-09 4.490491589415e-01 + 3.142800000000e-09 4.742713548499e-01 + 3.152800000000e-09 4.320662315472e-01 + 3.162800000000e-09 3.319308732453e-01 + 3.172800000000e-09 1.897206912988e-01 + 3.182800000000e-09 2.233835206417e-02 + 3.192800000000e-09 -1.527028002678e-01 + 3.202800000000e-09 -3.108294934257e-01 + 3.212800000000e-09 -4.244095105846e-01 + 3.222800000000e-09 -4.738811249070e-01 + 3.232800000000e-09 -4.546636813110e-01 + 3.242800000000e-09 -3.731627809948e-01 + 3.252800000000e-09 -2.434006859041e-01 + 3.262800000000e-09 -8.287741968615e-02 + 3.272800000000e-09 9.203264769826e-02 + 3.282800000000e-09 2.593829531702e-01 + 3.292800000000e-09 3.915509066388e-01 + 3.302800000000e-09 4.648190271045e-01 + 3.312800000000e-09 4.694814285780e-01 + 3.322800000000e-09 4.084421898142e-01 + 3.332800000000e-09 2.934641035178e-01 + 3.342800000000e-09 1.416907367557e-01 + 3.352800000000e-09 -3.041662304960e-02 + 3.362800000000e-09 -2.035739552230e-01 + 3.372800000000e-09 -3.513753389878e-01 + 3.382800000000e-09 -4.472322356084e-01 + 3.392800000000e-09 -4.760009502568e-01 + 3.402800000000e-09 -4.369057561626e-01 + 3.412800000000e-09 -3.390494381695e-01 + 3.422800000000e-09 -1.981098690340e-01 + 3.432800000000e-09 -3.118481118679e-02 + 3.442800000000e-09 1.444303124881e-01 + 3.452800000000e-09 3.044629268034e-01 + 3.462800000000e-09 4.211216195391e-01 + 3.472800000000e-09 4.741093252734e-01 + 3.482800000000e-09 4.581799324185e-01 + 3.492800000000e-09 3.793231058787e-01 + 3.502800000000e-09 2.512793480194e-01 + 3.512800000000e-09 9.159667092441e-02 + 3.522800000000e-09 -8.338002993409e-02 + 3.532800000000e-09 -2.520675535009e-01 + 3.542800000000e-09 -3.868931258099e-01 + 3.552800000000e-09 -4.636148800139e-01 + 3.562800000000e-09 -4.717487403617e-01 + 3.572800000000e-09 -4.136495415777e-01 + 3.582800000000e-09 -3.007557096774e-01 + 3.592800000000e-09 -1.501336050778e-01 + 3.602800000000e-09 2.164393821360e-02 + 3.612800000000e-09 1.956193556042e-01 + 3.622800000000e-09 3.456026192388e-01 + 3.632800000000e-09 4.446878243237e-01 + 3.642800000000e-09 4.769450424446e-01 + 3.652800000000e-09 4.410145727453e-01 + 3.662800000000e-09 3.455888713645e-01 + 3.672800000000e-09 2.061314283902e-01 + 3.682800000000e-09 3.989194098803e-02 + 3.692800000000e-09 -1.360347924182e-01 + 3.702800000000e-09 -2.977106506365e-01 + 3.712800000000e-09 -4.172525563496e-01 + 3.722800000000e-09 -4.737163678312e-01 + 3.732800000000e-09 -4.611466549167e-01 + 3.742800000000e-09 -3.850298251877e-01 + 3.752800000000e-09 -2.588319704609e-01 + 3.762800000000e-09 -1.001326809534e-01 + 3.772800000000e-09 7.473812872463e-02 + 3.782800000000e-09 2.445685035634e-01 + 3.792800000000e-09 3.818810515303e-01 + 3.802800000000e-09 4.618495653957e-01 + 3.812800000000e-09 4.732758813551e-01 + 3.822800000000e-09 4.181821540207e-01 + 3.832800000000e-09 3.075886005860e-01 + 3.842800000000e-09 1.583398974582e-01 + 3.852800000000e-09 -1.286142282478e-02 + 3.862800000000e-09 -1.873875968758e-01 + 3.872800000000e-09 -3.393146053252e-01 + 3.882800000000e-09 -4.414880224909e-01 + 3.892800000000e-09 -4.772098699021e-01 + 3.902800000000e-09 -4.445167108017e-01 + 3.912800000000e-09 -3.516731171757e-01 + 3.922800000000e-09 -2.138950579202e-01 + 3.932800000000e-09 -4.854479614909e-02 + 3.942800000000e-09 1.274676899440e-01 + 3.952800000000e-09 2.905682944747e-01 + 3.962800000000e-09 4.128420511819e-01 + 3.972800000000e-09 4.727154592925e-01 + 3.982800000000e-09 4.635204705676e-01 + 3.992800000000e-09 3.902597564221e-01 + 4.002800000000e-09 2.660889177421e-01 + 4.012800000000e-09 1.085604808583e-01 + 4.022800000000e-09 -6.599659067807e-02 + 4.032800000000e-09 -2.367554728027e-01 + 4.042800000000e-09 -3.763851225831e-01 + 4.052800000000e-09 -4.596223108533e-01 + 4.062800000000e-09 -4.744860630735e-01 + 4.072800000000e-09 -4.224705146052e-01 + 4.082800000000e-09 -3.142241002925e-01 + 4.092800000000e-09 -1.664201078869e-01 + 4.102800000000e-09 4.125050196675e-03 + 4.112800000000e-09 1.790956973466e-01 + 4.122800000000e-09 3.328549591598e-01 + 4.132800000000e-09 4.380405475600e-01 + 4.142800000000e-09 4.772041503683e-01 + 4.152800000000e-09 4.477655978477e-01 + 4.162800000000e-09 3.575540779602e-01 + 4.172800000000e-09 2.215245610048e-01 + 4.182800000000e-09 5.713048588447e-02 + 4.192800000000e-09 -1.188774093696e-01 + 4.202800000000e-09 -2.832993216564e-01 + 4.212800000000e-09 -4.082210019730e-01 + 4.222800000000e-09 -4.714715088490e-01 + 4.232800000000e-09 -4.656574935981e-01 + 4.242800000000e-09 -3.952892180809e-01 + 4.252800000000e-09 -2.732031958405e-01 + 4.262800000000e-09 -1.169006230138e-01 + 4.272800000000e-09 5.726993253497e-02 + 4.282800000000e-09 2.288629049266e-01 + 4.292800000000e-09 3.707198117451e-01 + 4.302800000000e-09 4.571768783685e-01 + 4.312800000000e-09 4.754695944617e-01 + 4.322800000000e-09 4.265553603994e-01 + 4.332800000000e-09 3.208219159625e-01 + 4.342800000000e-09 1.746542471985e-01 + 4.352800000000e-09 4.802120491386e-03 + 4.362800000000e-09 -1.706074385717e-01 + 4.372800000000e-09 -3.262108806456e-01 + 4.382800000000e-09 -4.344581267006e-01 + 4.392800000000e-09 -4.771451680179e-01 + 4.402800000000e-09 -4.510480969579e-01 + 4.412800000000e-09 -3.635440038363e-01 + 4.422800000000e-09 -2.293171442323e-01 + 4.432800000000e-09 -6.590084671053e-02 + 4.442800000000e-09 1.100845607684e-01 + 4.452800000000e-09 2.758258588352e-01 + 4.462800000000e-09 4.034269243422e-01 + 4.472800000000e-09 4.701302614642e-01 + 4.482800000000e-09 4.677855971396e-01 + 4.492800000000e-09 4.003923821779e-01 + 4.502800000000e-09 2.804556477047e-01 + 4.512800000000e-09 1.254099469774e-01 + 4.522800000000e-09 -4.835166565084e-02 + 4.532800000000e-09 -2.207626993989e-01 + 4.542800000000e-09 -3.648587246303e-01 + 4.552800000000e-09 -4.545918482823e-01 + 4.562800000000e-09 -4.763955506546e-01 + 4.572800000000e-09 -4.306676311464e-01 + 4.582800000000e-09 -3.273876605705e-01 + 4.592800000000e-09 -1.827434539071e-01 + 4.602800000000e-09 -1.363788571176e-02 + 4.612800000000e-09 1.620927189990e-01 + 4.622800000000e-09 3.194111211814e-01 + 4.632800000000e-09 4.306209628650e-01 + 4.642800000000e-09 4.767900742715e-01 + 4.652800000000e-09 4.540375318351e-01 + 4.662800000000e-09 3.692834881328e-01 + 4.672800000000e-09 2.369280875122e-01 + 4.682800000000e-09 7.455966942192e-02 + 4.692800000000e-09 -1.013073815294e-01 + 4.702800000000e-09 -2.682509253907e-01 + 4.712800000000e-09 -3.984278421241e-01 + 4.722800000000e-09 -4.685316943221e-01 + 4.732800000000e-09 -4.696479350674e-01 + 4.742800000000e-09 -4.052549028970e-01 + 4.752800000000e-09 -2.875196588931e-01 + 4.762800000000e-09 -1.337856747937e-01 + 4.772800000000e-09 3.949190623014e-02 + 4.782800000000e-09 2.126175683181e-01 + 4.792800000000e-09 3.588446454857e-01 + 4.802800000000e-09 4.517831117713e-01 + 4.812800000000e-09 4.770713907739e-01 + 4.822800000000e-09 4.345401996538e-01 + 4.832800000000e-09 3.337555060048e-01 + 4.842800000000e-09 1.906913623553e-01 + 4.852800000000e-09 2.239234812557e-02 + 4.862800000000e-09 -1.535704079347e-01 + 4.872800000000e-09 -3.125002392849e-01 + 4.882800000000e-09 -4.265897124991e-01 + 4.892800000000e-09 -4.762059300145e-01 + 4.902800000000e-09 -4.567984003440e-01 + 4.912800000000e-09 -3.748249224706e-01 + 4.922800000000e-09 -2.443925187766e-01 + 4.932800000000e-09 -8.312115009272e-02 + 4.942800000000e-09 9.255474633847e-02 + 4.952800000000e-09 2.606058933136e-01 + 4.962800000000e-09 3.932708694081e-01 + 4.972800000000e-09 4.667308932730e-01 + 4.982800000000e-09 4.712999521588e-01 + 4.992800000000e-09 4.099249449583e-01 + 5.002800000000e-09 2.944294131218e-01 + 5.012800000000e-09 1.420463159022e-01 + 5.022800000000e-09 -3.069156734404e-02 + 5.032800000000e-09 -2.044477886824e-01 + 5.042800000000e-09 -3.527136062233e-01 + 5.052800000000e-09 -4.487944534799e-01 + 5.062800000000e-09 -4.775434288295e-01 + 5.072800000000e-09 -4.382152742605e-01 + 5.082800000000e-09 -3.399581636226e-01 + 5.092800000000e-09 -1.985184857667e-01 + 5.102800000000e-09 -3.107120244623e-02 + 5.112800000000e-09 1.450515767240e-01 + 5.122800000000e-09 3.055043067152e-01 + 5.132800000000e-09 4.223999342451e-01 + 5.142800000000e-09 4.754109291761e-01 + 5.152800000000e-09 4.593204972537e-01 + 5.162800000000e-09 3.801546889977e-01 + 5.172800000000e-09 2.517057137597e-01 + 5.182800000000e-09 9.158801302282e-02 + 5.192800000000e-09 -8.381782429189e-02 + 5.202800000000e-09 -2.528769742020e-01 + 5.212800000000e-09 -3.879385101571e-01 + 5.222800000000e-09 -4.647100111230e-01 + 5.232800000000e-09 -4.727322188524e-01 + 5.242800000000e-09 -4.143942994523e-01 + 5.252800000000e-09 -3.011741752533e-01 + 5.262800000000e-09 -1.501891252249e-01 + 5.272800000000e-09 2.194829564394e-02 + 5.282800000000e-09 1.962463034631e-01 + 5.292800000000e-09 3.464541297304e-01 + 5.302800000000e-09 4.456107218955e-01 + 5.312800000000e-09 4.777964949045e-01 + 5.322800000000e-09 4.416800288519e-01 + 5.332800000000e-09 3.459867236821e-01 + 5.342800000000e-09 2.062219802150e-01 + 5.352800000000e-09 3.967660151698e-02 + 5.362800000000e-09 -1.365304243349e-01 + 5.372800000000e-09 -2.984146410074e-01 + 5.382800000000e-09 -4.180406497683e-01 + 5.392800000000e-09 -4.744567271423e-01 + 5.402800000000e-09 -4.617371116238e-01 + 5.412800000000e-09 -3.853979400223e-01 + 5.422800000000e-09 -2.589392772755e-01 + 5.432800000000e-09 -9.997734755715e-02 + 5.442800000000e-09 7.513706514536e-02 + 5.452800000000e-09 2.451570094540e-01 + 5.462800000000e-09 3.825595621222e-01 + 5.472800000000e-09 4.624984168790e-01 + 5.482800000000e-09 4.738027946703e-01 + 5.492800000000e-09 4.185212724050e-01 + 5.502800000000e-09 3.077030632441e-01 + 5.512800000000e-09 1.582251826602e-01 + 5.522800000000e-09 -1.318905683136e-02 + 5.532800000000e-09 -1.878874450171e-01 + 5.542800000000e-09 -3.399072841509e-01 + 5.552800000000e-09 -4.420666737440e-01 + 5.562800000000e-09 -4.776861298338e-01 + 5.572800000000e-09 -4.448297850357e-01 + 5.582800000000e-09 -3.517887326296e-01 + 5.592800000000e-09 -2.138069264691e-01 + 5.602800000000e-09 -4.826804758506e-02 + 5.612800000000e-09 1.279013082333e-01 + 5.622800000000e-09 2.910946044862e-01 + 5.632800000000e-09 4.133676515130e-01 + 5.642800000000e-09 4.731526340500e-01 + 5.652800000000e-09 4.638117913056e-01 + 5.662800000000e-09 3.903737011204e-01 + 5.672800000000e-09 2.660187194753e-01 + 5.682800000000e-09 1.083206557955e-01 + 5.692800000000e-09 -6.637982070487e-02 + 5.702800000000e-09 -2.372296346854e-01 + 5.712800000000e-09 -3.768692624037e-01 + 5.722800000000e-09 -4.600308904011e-01 + 5.732800000000e-09 -4.747632431584e-01 + 5.742800000000e-09 -4.225853728223e-01 + 5.752800000000e-09 -3.141689661470e-01 + 5.762800000000e-09 -1.662088197856e-01 + 5.772800000000e-09 4.468820534805e-03 + 5.782800000000e-09 1.795294267627e-01 + 5.792800000000e-09 3.333090355624e-01 + 5.802800000000e-09 4.384328096014e-01 + 5.812800000000e-09 4.774757046058e-01 + 5.822800000000e-09 4.478850790557e-01 + 5.832800000000e-09 3.575133073738e-01 + 5.842800000000e-09 2.213360225655e-01 + 5.852800000000e-09 5.681743531260e-02 + 5.862800000000e-09 -1.192799823371e-01 + 5.872800000000e-09 -2.837313282315e-01 + 5.882800000000e-09 -4.086053505701e-01 + 5.892800000000e-09 -4.717441117828e-01 + 5.902800000000e-09 -4.657852498153e-01 + 5.912800000000e-09 -3.952630762155e-01 + 5.922800000000e-09 -2.730340302391e-01 + 5.932800000000e-09 -1.166125913657e-01 + 5.942800000000e-09 5.764676738210e-02 + 5.952800000000e-09 2.292770271142e-01 + 5.962800000000e-09 3.711000896944e-01 + 5.972800000000e-09 4.574558876103e-01 + 5.982800000000e-09 4.756110983940e-01 + 5.992800000000e-09 4.265474821653e-01 + 6.002800000000e-09 3.206735475821e-01 + 6.012800000000e-09 1.743898497004e-01 + 6.022800000000e-09 4.448916495225e-03 + 6.032800000000e-09 -1.710064114036e-01 + 6.042800000000e-09 -3.265913626529e-01 + 6.052800000000e-09 -4.347509898033e-01 + 6.062800000000e-09 -4.773070591371e-01 + 6.072800000000e-09 -4.510634346157e-01 + 6.082800000000e-09 -3.634186898934e-01 + 6.092800000000e-09 -2.290739559560e-01 + 6.102800000000e-09 -6.556783475352e-02 + 6.112800000000e-09 1.104709710745e-01 + 6.122800000000e-09 2.762080312971e-01 + 6.132800000000e-09 4.037363976918e-01 + 6.142800000000e-09 4.703152504397e-01 + 6.152800000000e-09 4.678259027023e-01 + 6.162800000000e-09 4.002910459757e-01 + 6.172800000000e-09 2.802331290685e-01 + 6.182800000000e-09 1.250960204722e-01 + 6.192800000000e-09 -4.872509513337e-02 + 6.202800000000e-09 -2.211450503981e-01 + 6.212800000000e-09 -3.651842217791e-01 + 6.222800000000e-09 -4.548024644098e-01 + 6.232800000000e-09 -4.764652454278e-01 + 6.242800000000e-09 -4.305946177071e-01 + 6.252800000000e-09 -3.271894874756e-01 + 6.262800000000e-09 -1.824504834952e-01 + 6.272800000000e-09 -1.327957858391e-02 + 6.282800000000e-09 1.624734377412e-01 + 6.292800000000e-09 3.197530518999e-01 + 6.302800000000e-09 4.308617720119e-01 + 6.312800000000e-09 4.768943044729e-01 + 6.322800000000e-09 4.539978905406e-01 + 6.332800000000e-09 3.691133505818e-01 + 6.342800000000e-09 2.366557828440e-01 + 6.352800000000e-09 7.421615083890e-02 + 6.362800000000e-09 -1.016852396175e-01 + 6.372800000000e-09 -2.686071210685e-01 + 6.382800000000e-09 -3.986984802544e-01 + 6.392800000000e-09 -4.686710957586e-01 + 6.402800000000e-09 -4.696425267464e-01 + 6.412800000000e-09 -4.051141216648e-01 + 6.422800000000e-09 -2.872691059898e-01 + 6.432800000000e-09 -1.334584184195e-01 + 6.442800000000e-09 3.986316666413e-02 + 6.452800000000e-09 2.129832070320e-01 + 6.462800000000e-09 3.591419067990e-01 + 6.472800000000e-09 4.519586678999e-01 + 6.482800000000e-09 4.771042276463e-01 + 6.492800000000e-09 4.344337029007e-01 + 6.502800000000e-09 3.335316931896e-01 + 6.512800000000e-09 1.903838056087e-01 + 6.522800000000e-09 2.203183607233e-02 + 6.532800000000e-09 -1.539414341544e-01 + 6.542800000000e-09 -3.128224877673e-01 + 6.552800000000e-09 -4.268043088633e-01 + 6.562800000000e-09 -4.762811039202e-01 + 6.572800000000e-09 -4.567310023978e-01 + 6.582800000000e-09 -3.746321381175e-01 + 6.592800000000e-09 -2.441055516640e-01 + 6.602800000000e-09 -8.277276232589e-02 + 6.612800000000e-09 9.292777843222e-02 + 6.622800000000e-09 2.609488265047e-01 + 6.632800000000e-09 3.935222457883e-01 + 6.642800000000e-09 4.668477501341e-01 + 6.652800000000e-09 4.712718639171e-01 + 6.662800000000e-09 4.097646013993e-01 + 6.672800000000e-09 2.941650805410e-01 + 6.682800000000e-09 1.417129879197e-01 + 6.692800000000e-09 -3.106095135127e-02 + 6.702800000000e-09 -2.048046118808e-01 + 6.712800000000e-09 -3.529969421756e-01 + 6.722800000000e-09 -4.489531583373e-01 + 6.732800000000e-09 -4.775586503813e-01 + 6.742800000000e-09 -4.380928484099e-01 + 6.752800000000e-09 -3.397222487124e-01 + 6.762800000000e-09 -1.982043110850e-01 + 6.772800000000e-09 -3.071038608927e-02 + 6.782800000000e-09 1.454172910402e-01 + 6.792800000000e-09 3.058169614656e-01 + 6.802800000000e-09 4.226023559295e-01 + 6.812800000000e-09 4.754729369498e-01 + 6.822800000000e-09 4.592408245964e-01 + 6.832800000000e-09 3.799520144132e-01 + 6.842800000000e-09 2.514124911435e-01 + 6.852800000000e-09 9.123816606774e-02 + 6.862800000000e-09 -8.418791592592e-02 + 6.872800000000e-09 -2.532136521620e-01 + 6.882800000000e-09 -3.881816102370e-01 + 6.892800000000e-09 -4.648173688836e-01 + 6.902800000000e-09 -4.726945652972e-01 + 6.912800000000e-09 -4.142257944162e-01 + 6.922800000000e-09 -3.009043159731e-01 + 6.932800000000e-09 -1.498539895534e-01 + 6.942800000000e-09 2.231580510659e-02 + 6.952800000000e-09 1.965986180984e-01 + 6.962800000000e-09 3.467315287456e-01 + 6.972800000000e-09 4.457628617478e-01 + 6.982800000000e-09 4.778050372802e-01 + 6.992800000000e-09 4.415517018843e-01 + 7.002800000000e-09 3.457464972810e-01 + 7.012800000000e-09 2.059058157726e-01 + 7.022800000000e-09 3.931667260556e-02 + 7.032800000000e-09 -1.368931822236e-01 + 7.042800000000e-09 -2.987233040296e-01 + 7.052800000000e-09 -4.182387909151e-01 + 7.062800000000e-09 -4.745140282773e-01 + 7.072800000000e-09 -4.616528300485e-01 + 7.082800000000e-09 -3.851916756618e-01 + 7.092800000000e-09 -2.586441056717e-01 + 7.102800000000e-09 -9.962798039283e-02 + 7.112800000000e-09 7.550478869192e-02 + 7.122800000000e-09 2.454904850622e-01 + 7.132800000000e-09 3.827994434710e-01 + 7.142800000000e-09 4.626034017599e-01 + 7.152800000000e-09 4.737641733398e-01 + 7.162800000000e-09 4.183524109321e-01 + 7.172800000000e-09 3.074331171173e-01 + 7.182800000000e-09 1.578908395540e-01 + 7.192800000000e-09 -1.355506726442e-02 + 7.202800000000e-09 -1.882385727441e-01 + 7.212800000000e-09 -3.401845445382e-01 + 7.222800000000e-09 -4.422195373183e-01 + 7.232800000000e-09 -4.776955714157e-01 + 7.242800000000e-09 -4.447023493228e-01 + 7.252800000000e-09 -3.515493106693e-01 + 7.262800000000e-09 -2.134915967458e-01 + 7.272800000000e-09 -4.790939384136e-02 + 7.282800000000e-09 1.282631642341e-01 + 7.292800000000e-09 2.914035117420e-01 + 7.302800000000e-09 4.135672232198e-01 + 7.312800000000e-09 4.732116550678e-01 + 7.322800000000e-09 4.637291481888e-01 + 7.332800000000e-09 3.901688625588e-01 + 7.342800000000e-09 2.657247114820e-01 + 7.352800000000e-09 1.079727319264e-01 + 7.362800000000e-09 -6.674639374281e-02 + 7.372800000000e-09 -2.375631806078e-01 + 7.382800000000e-09 -3.771107558749e-01 + 7.392800000000e-09 -4.601382593739e-01 + 7.402800000000e-09 -4.747271420590e-01 + 7.412800000000e-09 -4.224188163651e-01 + 7.422800000000e-09 -3.139009311784e-01 + 7.432800000000e-09 -1.658762698801e-01 + 7.442800000000e-09 4.833309578931e-03 + 7.452800000000e-09 1.798803203712e-01 + 7.462800000000e-09 3.335879669447e-01 + 7.472800000000e-09 4.385887870407e-01 + 7.482800000000e-09 4.774886068971e-01 + 7.492800000000e-09 4.477608938282e-01 + 7.502800000000e-09 3.572765392053e-01 + 7.512800000000e-09 2.210226207003e-01 + 7.522800000000e-09 5.646035718955e-02 + 7.532800000000e-09 -1.196414289430e-01 + 7.542800000000e-09 -2.840417111952e-01 + 7.552800000000e-09 -4.088081431133e-01 + 7.562800000000e-09 -4.718068979663e-01 + 7.572800000000e-09 -4.657062253992e-01 + 7.582800000000e-09 -3.950613186004e-01 + 7.592800000000e-09 -2.727423241357e-01 + 7.602800000000e-09 -1.162666205891e-01 + 7.612800000000e-09 5.801230408689e-02 + 7.622800000000e-09 2.296113885286e-01 + 7.632800000000e-09 3.713444859236e-01 + 7.642800000000e-09 4.575672834577e-01 + 7.652800000000e-09 4.755792178117e-01 + 7.662800000000e-09 4.263847442086e-01 + 7.672800000000e-09 3.204092041404e-01 + 7.682800000000e-09 1.740612329676e-01 + 7.692800000000e-09 4.087529447587e-03 + 7.702800000000e-09 -1.713564811844e-01 + 7.712800000000e-09 -3.268725058010e-01 + 7.722800000000e-09 -4.349117012973e-01 + 7.732800000000e-09 -4.773258039171e-01 + 7.742800000000e-09 -4.509452717666e-01 + 7.752800000000e-09 -3.631873316681e-01 + 7.762800000000e-09 -2.287648515919e-01 + 7.772800000000e-09 -6.521414107180e-02 + 7.782800000000e-09 1.108309277049e-01 + 7.792800000000e-09 2.765197523039e-01 + 7.802800000000e-09 4.039432789773e-01 + 7.812800000000e-09 4.703835108704e-01 + 7.822800000000e-09 4.677527296412e-01 + 7.832800000000e-09 4.000948080107e-01 + 7.842800000000e-09 2.799460485425e-01 + 7.852800000000e-09 1.247539657070e-01 + 7.862800000000e-09 -4.908814413599e-02 + 7.872800000000e-09 -2.214795187659e-01 + 7.882800000000e-09 -3.654317407213e-01 + 7.892800000000e-09 -4.549190199048e-01 + 7.902800000000e-09 -4.764393812900e-01 + 7.912800000000e-09 -4.304378595616e-01 + 7.922800000000e-09 -3.269302969602e-01 + 7.932800000000e-09 -1.821259556415e-01 + 7.942800000000e-09 -1.292114756039e-02 + 7.952800000000e-09 1.628228259919e-01 + 7.962800000000e-09 3.200365272312e-01 + 7.972800000000e-09 4.310273494099e-01 + 7.982800000000e-09 4.769190023559e-01 + 7.992800000000e-09 4.538858106705e-01 + 8.002800000000e-09 3.688874206665e-01 + 8.012800000000e-09 2.363509181399e-01 + 8.022800000000e-09 7.386574101900e-02 + 8.032800000000e-09 -1.020437968743e-01 + 8.042800000000e-09 -2.689202457647e-01 + 8.052800000000e-09 -3.989095216433e-01 + 8.062800000000e-09 -4.687448904292e-01 + 8.072800000000e-09 -4.695752181126e-01 + 8.082800000000e-09 -4.049233786267e-01 + 8.092800000000e-09 -2.869866137251e-01 + 8.102800000000e-09 -1.331201891712e-01 + 8.112800000000e-09 4.022378807474e-02 + 8.122800000000e-09 2.133178050623e-01 + 8.132800000000e-09 3.593925596107e-01 + 8.142800000000e-09 4.520804335776e-01 + 8.152800000000e-09 4.770844101920e-01 + 8.162800000000e-09 4.342829256391e-01 + 8.172800000000e-09 3.332776278686e-01 + 8.182800000000e-09 1.900632657547e-01 + 8.192800000000e-09 2.167625561841e-02 + 8.202800000000e-09 -1.542901972038e-01 + 8.212800000000e-09 -3.131082983988e-01 + 8.222800000000e-09 -4.269747426681e-01 + 8.232800000000e-09 -4.763117303201e-01 + 8.242800000000e-09 -4.566249614477e-01 + 8.252800000000e-09 -3.744115867695e-01 + 8.262800000000e-09 -2.438048584906e-01 + 8.272800000000e-09 -8.242556976626e-02 + 8.282800000000e-09 9.328494803525e-02 + 8.292800000000e-09 2.612633157748e-01 + 8.302800000000e-09 3.937374002606e-01 + 8.312800000000e-09 4.669270315583e-01 + 8.322800000000e-09 4.712103424563e-01 + 8.332800000000e-09 4.095792714057e-01 + 8.342800000000e-09 2.938871193716e-01 + 8.352800000000e-09 1.413785114537e-01 + 8.362800000000e-09 -3.141915349502e-02 + 8.372800000000e-09 -2.051392760944e-01 + 8.382800000000e-09 -3.532506346727e-01 + 8.392800000000e-09 -4.490800779400e-01 + 8.402800000000e-09 -4.775448225675e-01 + 8.412800000000e-09 -4.379479927183e-01 + 8.422800000000e-09 -3.394732583322e-01 + 8.432800000000e-09 -1.978876772335e-01 + 8.442800000000e-09 -3.035760356896e-02 + 8.452800000000e-09 1.457654073660e-01 + 8.462800000000e-09 3.061050144214e-01 + 8.472800000000e-09 4.227775370985e-01 + 8.482800000000e-09 4.755095795536e-01 + 8.492800000000e-09 4.591411330509e-01 + 8.502800000000e-09 3.797371241634e-01 + 8.512800000000e-09 2.511161183445e-01 + 8.522800000000e-09 9.089420700442e-02 + 8.532800000000e-09 -8.454376699587e-02 + 8.542800000000e-09 -2.535296621264e-01 + 8.552800000000e-09 -3.884011306166e-01 + 8.562800000000e-09 -4.649024424250e-01 + 8.572800000000e-09 -4.726391089479e-01 + 8.582800000000e-09 -4.140461093665e-01 + 8.592800000000e-09 -3.006310459559e-01 + 8.602800000000e-09 -1.495232861054e-01 + 8.612800000000e-09 2.267163010245e-02 + 8.622800000000e-09 1.969334355376e-01 + 8.632800000000e-09 3.469884101696e-01 + 8.642800000000e-09 4.458951716816e-01 + 8.652800000000e-09 4.777974404816e-01 + 8.662800000000e-09 4.414129699938e-01 + 8.672800000000e-09 3.455027239087e-01 + 8.682800000000e-09 2.055931104810e-01 + 8.692800000000e-09 3.896663892318e-02 + 8.702800000000e-09 -1.372407278583e-01 + 8.712800000000e-09 -2.990136907898e-01 + 8.722800000000e-09 -4.184188484211e-01 + 8.732800000000e-09 -4.745564410371e-01 + 8.742800000000e-09 -4.615587968332e-01 + 8.752800000000e-09 -3.849818381228e-01 + 8.762800000000e-09 -2.583517201230e-01 + 8.772800000000e-09 -9.928720090367e-02 + 8.782800000000e-09 7.585904367118e-02 + 8.792800000000e-09 2.458074515076e-01 + 8.802800000000e-09 3.830226046356e-01 + 8.812800000000e-09 4.628050478379e-01 + 8.822800000000e-09 4.739728452864e-01 + 8.832800000000e-09 4.184216115660e-01 + 8.842800000000e-09 3.073025172153e-01 + 8.852800000000e-09 1.575938724208e-01 + 8.862800000000e-09 -1.398846935309e-02 + 8.872800000000e-09 -1.887539587450e-01 + 8.882800000000e-09 -3.406974227049e-01 + 8.892800000000e-09 -4.426373277054e-01 + 8.902800000000e-09 -4.779573597295e-01 + 8.912800000000e-09 -4.447804051675e-01 + 8.922800000000e-09 -3.514425476255e-01 + 8.932800000000e-09 -2.132222649804e-01 + 8.942800000000e-09 -4.750832545387e-02 + 8.952800000000e-09 1.287504010348e-01 + 8.962800000000e-09 2.919031380023e-01 + 8.972800000000e-09 4.139892297159e-01 + 8.982800000000e-09 4.734873559923e-01 + 8.992800000000e-09 4.638268668189e-01 + 9.002800000000e-09 3.900856165077e-01 + 9.012800000000e-09 2.654799744928e-01 + 9.022800000000e-09 1.075992374466e-01 + 9.032800000000e-09 -6.720992097730e-02 + 9.042800000000e-09 -2.380520230428e-01 + 9.052800000000e-09 -3.775400924440e-01 + 9.062800000000e-09 -4.604325740844e-01 + 9.072800000000e-09 -4.748501059603e-01 + 9.082800000000e-09 -4.223629300938e-01 + 9.092800000000e-09 -3.136825974274e-01 + 9.102800000000e-09 -1.655288161755e-01 + 9.112800000000e-09 5.274154259959e-03 + 9.122800000000e-09 1.803597510211e-01 + 9.132800000000e-09 3.340274269736e-01 + 9.142800000000e-09 4.389084877726e-01 + 9.152800000000e-09 4.776428671288e-01 + 9.162800000000e-09 4.477372695807e-01 + 9.172800000000e-09 3.570878442505e-01 + 9.182800000000e-09 2.207009388304e-01 + 9.192800000000e-09 5.604123558005e-02 + 9.202800000000e-09 -1.201114629703e-01 + 9.212800000000e-09 -2.844914830667e-01 + 9.222800000000e-09 -4.091565006999e-01 + 9.232800000000e-09 -4.719968581872e-01 + 9.242800000000e-09 -4.657187870050e-01 + 9.252800000000e-09 -3.949051284963e-01 + 9.262800000000e-09 -2.724462438573e-01 + 9.272800000000e-09 -1.158687332265e-01 + 9.282800000000e-09 5.847148828301e-02 + 9.292800000000e-09 2.300684373752e-01 + 9.302800000000e-09 3.717199460025e-01 + 9.312800000000e-09 4.577947893552e-01 + 9.322800000000e-09 4.756322624723e-01 + 9.332800000000e-09 4.262657158391e-01 + 9.342800000000e-09 3.201435262257e-01 + 9.352800000000e-09 1.736882382542e-01 + 9.362800000000e-09 3.643987745229e-03 + 9.372800000000e-09 -1.718164715270e-01 + 9.382800000000e-09 -3.272739075652e-01 + 9.392800000000e-09 -4.351813143953e-01 + 9.402800000000e-09 -4.774253440387e-01 + 9.412800000000e-09 -4.508700329503e-01 + 9.422800000000e-09 -3.629571698706e-01 + 9.432800000000e-09 -2.284169523119e-01 + 9.442800000000e-09 -6.478681117813e-02 + 9.452800000000e-09 1.112911320779e-01 + 9.462800000000e-09 2.769435886212e-01 + 9.472800000000e-09 4.042542422607e-01 + 9.482800000000e-09 4.705302405925e-01 + 9.492800000000e-09 4.677224843076e-01 + 9.502800000000e-09 3.999021973771e-01 + 9.512800000000e-09 2.796247021249e-01 + 9.522800000000e-09 1.243450566914e-01 + 9.532800000000e-09 -4.954361349528e-02 + 9.542800000000e-09 -2.219194937138e-01 + 9.552800000000e-09 -3.657799234792e-01 + 9.562800000000e-09 -4.551134354832e-01 + 9.572800000000e-09 -4.764581287035e-01 + 9.582800000000e-09 -4.302881341125e-01 + 9.592800000000e-09 -3.266415720306e-01 + 9.602800000000e-09 -1.817405837255e-01 + 9.612800000000e-09 -1.247702258645e-02 + 9.622800000000e-09 1.632724462293e-01 + 9.632800000000e-09 3.204188068832e-01 + 9.642800000000e-09 4.312723940243e-01 + 9.652800000000e-09 4.769917704315e-01 + 9.662800000000e-09 4.537853612118e-01 + 9.672800000000e-09 3.686370799473e-01 + 9.682800000000e-09 2.359904520170e-01 + 9.692800000000e-09 7.343517218223e-02 + 9.702800000000e-09 -1.024983544981e-01 + 9.712800000000e-09 -2.693310663391e-01 + 9.722800000000e-09 -3.992025434055e-01 + 9.732800000000e-09 -4.688710407827e-01 + 9.742800000000e-09 -4.695245899526e-01 + 9.752800000000e-09 -4.047134989318e-01 + 9.762800000000e-09 -2.866535001364e-01 + 9.772800000000e-09 -1.327068665846e-01 + 9.782800000000e-09 4.067632729916e-02 + 9.792800000000e-09 2.137488509905e-01 + 9.802800000000e-09 3.597277481363e-01 + 9.812800000000e-09 4.522596730338e-01 + 9.822800000000e-09 4.770876261574e-01 + 9.832800000000e-09 4.341194617068e-01 + 9.842800000000e-09 3.329787897830e-01 + 9.852800000000e-09 1.896729293557e-01 + 9.862800000000e-09 2.123300606649e-02 + 9.872800000000e-09 -1.547341279350e-01 + 9.882800000000e-09 -3.134816302211e-01 + 9.892800000000e-09 -4.272091226288e-01 + 9.902800000000e-09 -4.763730816394e-01 + 9.912800000000e-09 -4.565138795470e-01 + 9.922800000000e-09 -3.741529043818e-01 + 9.932800000000e-09 -2.434394900180e-01 + 9.942800000000e-09 -8.199468845216e-02 + 9.952800000000e-09 9.373590569501e-02 + 9.962800000000e-09 2.616679459920e-01 + 9.972800000000e-09 3.940229568870e-01 + 9.982800000000e-09 4.670449336712e-01 + 9.992800000000e-09 4.711516240493e-01 + 1.000000000000e-08 4.323406262949e-01 diff --git a/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_07/conditions.yaml b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_07/conditions.yaml new file mode 100644 index 00000000..f677d6cc --- /dev/null +++ b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_07/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/LC_Oscillator/xschem/simulations/schematic/LC_Oscillator.spice +N: 7 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: ss +filename: LC_Oscillator_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_07 +temperature: '-40' +vdd: '1.2' diff --git a/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_08/.spiceinit b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_08/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_08/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_08/LC_Oscillator.sym b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_08/LC_Oscillator.sym new file mode 100644 index 00000000..e632b156 --- /dev/null +++ b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_08/LC_Oscillator.sym @@ -0,0 +1,27 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 70 -20 90 -20 {} +L 4 70 20 90 20 {} +L 7 20 70 20 90 {} +L 7 -20 70 -20 90 {} +B 5 87.5 -22.5 92.5 -17.5 {name=Voplus dir=out} +B 5 17.5 87.5 22.5 92.5 {name=vdd dir=inout} +B 5 -22.5 87.5 -17.5 92.5 {name=gnd dir=inout} +B 5 87.5 17.5 92.5 22.5 {name=Vominus dir=out} +A 4 -1.666666666666714 1.666666666666714 71.68604389202189 287.5924245621816 360 {} +A 4 -30 27.5 40.69705149024927 42.51044707800085 94.97910584399833 {} +A 4 30 -27.5 40.69705149024927 222.5104470780009 94.97910584399833 {} +T {@symname} -40.5 -56 0 0 0.1 0.1 {} +T {@name} -40 -47 0 0 0.1 0.1 { +} +T {Voplus} 65 -24 0 1 0.2 0.2 {} +T {vdd} 5 64 2 1 0.2 0.2 {} +T {gnd} -35 64 2 1 0.2 0.2 {} +T {Vominus} 65 16 0 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_08/LC_Oscillator_tb.sch b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_08/LC_Oscillator_tb.sch new file mode 100644 index 00000000..61381427 --- /dev/null +++ b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_08/LC_Oscillator_tb.sch @@ -0,0 +1,57 @@ +v {xschem version=3.4.8RC file_version=1.3} +G {} +K {} +V {} +S {} +F {} +E {} +N 1570 -1060 1570 -1030 {lab=VDD} +N 1570 -970 1570 -940 {lab=GND} +N 1270 -1050 1270 -1030 {lab=GND} +N 1230 -1060 1230 -1030 {lab=VDD} +N 1140 -920 1160 -920 {lab=Voplus} +N 1140 -960 1160 -960 {lab=Vominus} +C {code_shown.sym} 440 -1140 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write LC_Oscillator_tb.raw +set appendwrite +tran 10p 10n 160p +save all + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_08/LC_Oscillator_tb_8.data vo_diff +quit + +.endc +"} +C {vsource.sym} 1570 -1000 0 0 {name=V1 value=1.6 savecurrent=false} +C {gnd.sym} 1570 -940 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1570 -1060 0 0 {name=p2 sig_type=std_logic lab=VDD} +C {opin.sym} 1140 -920 2 0 {name=p6 lab=Voplus} +C {gnd.sym} 1270 -1050 2 0 {name=l3 lab=GND} +C {opin.sym} 1140 -960 0 1 {name=p9 lab=Vominus} +C {LC_Oscillator.sym} 1250 -940 2 0 {name=x1} +C {devices/code_shown.sym} 450 -640 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_ss + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/LC_Oscillator/xschem/simulations/schematic/LC_Oscillator.spice + +.temp -40 +" +} +C {iopin.sym} 1230 -1060 2 0 {name=p1 lab=VDD} diff --git a/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_08/conditions.yaml b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_08/conditions.yaml new file mode 100644 index 00000000..35f59447 --- /dev/null +++ b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_08/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/LC_Oscillator/xschem/simulations/schematic/LC_Oscillator.spice +N: 8 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: ss +filename: LC_Oscillator_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_08 +temperature: '-40' +vdd: '1.6' diff --git a/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_09/.spiceinit b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_09/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_09/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_09/LC_Oscillator.sym b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_09/LC_Oscillator.sym new file mode 100644 index 00000000..e632b156 --- /dev/null +++ b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_09/LC_Oscillator.sym @@ -0,0 +1,27 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 70 -20 90 -20 {} +L 4 70 20 90 20 {} +L 7 20 70 20 90 {} +L 7 -20 70 -20 90 {} +B 5 87.5 -22.5 92.5 -17.5 {name=Voplus dir=out} +B 5 17.5 87.5 22.5 92.5 {name=vdd dir=inout} +B 5 -22.5 87.5 -17.5 92.5 {name=gnd dir=inout} +B 5 87.5 17.5 92.5 22.5 {name=Vominus dir=out} +A 4 -1.666666666666714 1.666666666666714 71.68604389202189 287.5924245621816 360 {} +A 4 -30 27.5 40.69705149024927 42.51044707800085 94.97910584399833 {} +A 4 30 -27.5 40.69705149024927 222.5104470780009 94.97910584399833 {} +T {@symname} -40.5 -56 0 0 0.1 0.1 {} +T {@name} -40 -47 0 0 0.1 0.1 { +} +T {Voplus} 65 -24 0 1 0.2 0.2 {} +T {vdd} 5 64 2 1 0.2 0.2 {} +T {gnd} -35 64 2 1 0.2 0.2 {} +T {Vominus} 65 16 0 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_09/LC_Oscillator_tb.sch b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_09/LC_Oscillator_tb.sch new file mode 100644 index 00000000..127bee86 --- /dev/null +++ b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_09/LC_Oscillator_tb.sch @@ -0,0 +1,57 @@ +v {xschem version=3.4.8RC file_version=1.3} +G {} +K {} +V {} +S {} +F {} +E {} +N 1570 -1060 1570 -1030 {lab=VDD} +N 1570 -970 1570 -940 {lab=GND} +N 1270 -1050 1270 -1030 {lab=GND} +N 1230 -1060 1230 -1030 {lab=VDD} +N 1140 -920 1160 -920 {lab=Voplus} +N 1140 -960 1160 -960 {lab=Vominus} +C {code_shown.sym} 440 -1140 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write LC_Oscillator_tb.raw +set appendwrite +tran 10p 10n 160p +save all + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_09/LC_Oscillator_tb_9.data vo_diff +quit + +.endc +"} +C {vsource.sym} 1570 -1000 0 0 {name=V1 value=0.8 savecurrent=false} +C {gnd.sym} 1570 -940 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1570 -1060 0 0 {name=p2 sig_type=std_logic lab=VDD} +C {opin.sym} 1140 -920 2 0 {name=p6 lab=Voplus} +C {gnd.sym} 1270 -1050 2 0 {name=l3 lab=GND} +C {opin.sym} 1140 -960 0 1 {name=p9 lab=Vominus} +C {LC_Oscillator.sym} 1250 -940 2 0 {name=x1} +C {devices/code_shown.sym} 450 -640 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_tt + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/LC_Oscillator/xschem/simulations/schematic/LC_Oscillator.spice + +.temp 27 +" +} +C {iopin.sym} 1230 -1060 2 0 {name=p1 lab=VDD} diff --git a/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_09/conditions.yaml b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_09/conditions.yaml new file mode 100644 index 00000000..7574932f --- /dev/null +++ b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_09/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/LC_Oscillator/xschem/simulations/schematic/LC_Oscillator.spice +N: 9 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: tt +filename: LC_Oscillator_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_09 +temperature: '27' +vdd: '0.8' diff --git a/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_10/.spiceinit b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_10/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_10/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_10/LC_Oscillator.sym b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_10/LC_Oscillator.sym new file mode 100644 index 00000000..e632b156 --- /dev/null +++ b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_10/LC_Oscillator.sym @@ -0,0 +1,27 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 70 -20 90 -20 {} +L 4 70 20 90 20 {} +L 7 20 70 20 90 {} +L 7 -20 70 -20 90 {} +B 5 87.5 -22.5 92.5 -17.5 {name=Voplus dir=out} +B 5 17.5 87.5 22.5 92.5 {name=vdd dir=inout} +B 5 -22.5 87.5 -17.5 92.5 {name=gnd dir=inout} +B 5 87.5 17.5 92.5 22.5 {name=Vominus dir=out} +A 4 -1.666666666666714 1.666666666666714 71.68604389202189 287.5924245621816 360 {} +A 4 -30 27.5 40.69705149024927 42.51044707800085 94.97910584399833 {} +A 4 30 -27.5 40.69705149024927 222.5104470780009 94.97910584399833 {} +T {@symname} -40.5 -56 0 0 0.1 0.1 {} +T {@name} -40 -47 0 0 0.1 0.1 { +} +T {Voplus} 65 -24 0 1 0.2 0.2 {} +T {vdd} 5 64 2 1 0.2 0.2 {} +T {gnd} -35 64 2 1 0.2 0.2 {} +T {Vominus} 65 16 0 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_10/LC_Oscillator_tb.sch b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_10/LC_Oscillator_tb.sch new file mode 100644 index 00000000..286e4f0c --- /dev/null +++ b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_10/LC_Oscillator_tb.sch @@ -0,0 +1,57 @@ +v {xschem version=3.4.8RC file_version=1.3} +G {} +K {} +V {} +S {} +F {} +E {} +N 1570 -1060 1570 -1030 {lab=VDD} +N 1570 -970 1570 -940 {lab=GND} +N 1270 -1050 1270 -1030 {lab=GND} +N 1230 -1060 1230 -1030 {lab=VDD} +N 1140 -920 1160 -920 {lab=Voplus} +N 1140 -960 1160 -960 {lab=Vominus} +C {code_shown.sym} 440 -1140 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write LC_Oscillator_tb.raw +set appendwrite +tran 10p 10n 160p +save all + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_10/LC_Oscillator_tb_10.data vo_diff +quit + +.endc +"} +C {vsource.sym} 1570 -1000 0 0 {name=V1 value=1.2 savecurrent=false} +C {gnd.sym} 1570 -940 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1570 -1060 0 0 {name=p2 sig_type=std_logic lab=VDD} +C {opin.sym} 1140 -920 2 0 {name=p6 lab=Voplus} +C {gnd.sym} 1270 -1050 2 0 {name=l3 lab=GND} +C {opin.sym} 1140 -960 0 1 {name=p9 lab=Vominus} +C {LC_Oscillator.sym} 1250 -940 2 0 {name=x1} +C {devices/code_shown.sym} 450 -640 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_tt + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/LC_Oscillator/xschem/simulations/schematic/LC_Oscillator.spice + +.temp 27 +" +} +C {iopin.sym} 1230 -1060 2 0 {name=p1 lab=VDD} diff --git a/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_10/LC_Oscillator_tb_10.data b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_10/LC_Oscillator_tb_10.data new file mode 100644 index 00000000..b7f86069 --- /dev/null +++ b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_10/LC_Oscillator_tb_10.data @@ -0,0 +1,985 @@ + 1.628000000000e-10 7.784089647675e-03 + 1.728000000000e-10 -6.659867527503e-03 + 1.828000000000e-10 -2.065836564882e-02 + 1.928000000000e-10 -3.223183497866e-02 + 2.028000000000e-10 -3.967063809564e-02 + 2.128000000000e-10 -4.179084703358e-02 + 2.228000000000e-10 -3.812078754614e-02 + 2.328000000000e-10 -2.898703649634e-02 + 2.428000000000e-10 -1.548756892133e-02 + 2.528000000000e-10 6.375687295537e-04 + 2.628000000000e-10 1.722177212335e-02 + 2.728000000000e-10 3.195248709933e-02 + 2.828000000000e-10 4.269136137453e-02 + 2.928000000000e-10 4.779016992350e-02 + 3.028000000000e-10 4.634832244203e-02 + 3.128000000000e-10 3.836165802964e-02 + 3.228000000000e-10 2.474052176555e-02 + 3.328000000000e-10 7.202795888793e-03 + 3.428000000000e-10 -1.193518862712e-02 + 3.528000000000e-10 -3.004917466656e-02 + 3.628000000000e-10 -4.455651087068e-02 + 3.728000000000e-10 -5.328857165539e-02 + 3.828000000000e-10 -5.482486386471e-02 + 3.928000000000e-10 -4.872252714300e-02 + 4.028000000000e-10 -3.559778133135e-02 + 4.128000000000e-10 -1.705752539469e-02 + 4.228000000000e-10 4.494514684145e-03 + 4.328000000000e-10 2.614990918727e-02 + 4.428000000000e-10 4.486858984942e-02 + 4.528000000000e-10 5.790499680702e-02 + 4.628000000000e-10 6.322761536228e-02 + 4.728000000000e-10 5.984554126646e-02 + 4.828000000000e-10 4.797198577690e-02 + 4.928000000000e-10 2.900503894818e-02 + 5.028000000000e-10 5.354576688624e-03 + 5.128000000000e-10 -1.984566286256e-02 + 5.228000000000e-10 -4.312025347072e-02 + 5.328000000000e-10 -6.111668946312e-02 + 5.428000000000e-10 -7.110590788686e-02 + 5.528000000000e-10 -7.142203495109e-02 + 5.628000000000e-10 -6.173530049101e-02 + 5.728000000000e-10 -4.310134196595e-02 + 5.828000000000e-10 -1.783859548906e-02 + 5.928000000000e-10 1.075961503623e-02 + 6.028000000000e-10 3.882583046492e-02 + 6.128000000000e-10 6.238623562187e-02 + 6.228000000000e-10 7.793696325367e-02 + 6.328000000000e-10 8.301116327128e-02 + 6.428000000000e-10 7.658901562543e-02 + 6.528000000000e-10 5.925537503877e-02 + 6.628000000000e-10 3.310547039510e-02 + 6.728000000000e-10 1.475565202656e-03 + 6.828000000000e-10 -3.143628246095e-02 + 6.928000000000e-10 -6.105869531550e-02 + 7.028000000000e-10 -8.306545944817e-02 + 7.128000000000e-10 -9.406086743390e-02 + 7.228000000000e-10 -9.216062921479e-02 + 7.328000000000e-10 -7.729185188302e-02 + 7.428000000000e-10 -5.118768714920e-02 + 7.528000000000e-10 -1.712523584952e-02 + 7.628000000000e-10 2.047047781981e-02 + 7.728000000000e-10 5.648855402944e-02 + 7.828000000000e-10 8.574056972983e-02 + 7.928000000000e-10 1.038101477910e-01 + 8.028000000000e-10 1.078060471304e-01 + 8.128000000000e-10 9.679553692925e-02 + 8.228000000000e-10 7.195903105367e-02 + 8.328000000000e-10 3.636541105657e-02 + 8.428000000000e-10 -5.463976843783e-03 + 8.528000000000e-10 -4.794552017313e-02 + 8.628000000000e-10 -8.510161379414e-02 + 8.728000000000e-10 -1.114516353823e-01 + 8.828000000000e-10 -1.228469522842e-01 + 8.928000000000e-10 -1.172662109428e-01 + 9.028000000000e-10 -9.514637917753e-02 + 9.128000000000e-10 -5.918133055417e-02 + 9.228000000000e-10 -1.385862264427e-02 + 9.328000000000e-10 3.491713431321e-02 + 9.428000000000e-10 8.039772010753e-02 + 9.528000000000e-10 1.159989414826e-01 + 9.628000000000e-10 1.362728766964e-01 + 9.728000000000e-10 1.378609481665e-01 + 9.828000000000e-10 1.201654675877e-01 + 9.928000000000e-10 8.531845800935e-02 + 1.002800000000e-09 3.762175912380e-02 + 1.012800000000e-09 -1.685664100816e-02 + 1.022800000000e-09 -7.076872562088e-02 + 1.032800000000e-09 -1.164143387352e-01 + 1.042800000000e-09 -1.469386398655e-01 + 1.052800000000e-09 -1.575081369809e-01 + 1.062800000000e-09 -1.461809922494e-01 + 1.072800000000e-09 -1.142388546131e-01 + 1.082800000000e-09 -6.564521610040e-02 + 1.092800000000e-09 -6.477028338857e-03 + 1.102800000000e-09 5.551055899345e-02 + 1.112800000000e-09 1.116757578142e-01 + 1.122800000000e-09 1.536617521164e-01 + 1.132800000000e-09 1.749454695942e-01 + 1.142800000000e-09 1.720483324045e-01 + 1.152800000000e-09 1.450719574156e-01 + 1.162800000000e-09 9.740616623873e-02 + 1.172800000000e-09 3.499844305237e-02 + 1.182800000000e-09 -3.419951466736e-02 + 1.192800000000e-09 -1.008328088904e-01 + 1.202800000000e-09 -1.551785296701e-01 + 1.212800000000e-09 -1.888856529531e-01 + 1.222800000000e-09 -1.965705933516e-01 + 1.232800000000e-09 -1.768002414982e-01 + 1.242800000000e-09 -1.321419091464e-01 + 1.252800000000e-09 -6.827389201366e-02 + 1.262800000000e-09 6.827702466584e-03 + 1.272800000000e-09 8.336025885241e-02 + 1.282800000000e-09 1.504593031496e-01 + 1.292800000000e-09 1.978603910187e-01 + 1.302800000000e-09 2.180818567316e-01 + 1.312800000000e-09 2.079052450326e-01 + 1.322800000000e-09 1.687064524759e-01 + 1.332800000000e-09 1.056178667003e-01 + 1.342800000000e-09 2.645093149787e-02 + 1.352800000000e-09 -5.878344866897e-02 + 1.362800000000e-09 -1.384073626212e-01 + 1.372800000000e-09 -2.004578366494e-01 + 1.382800000000e-09 -2.351719689609e-01 + 1.392800000000e-09 -2.370664505839e-01 + 1.402800000000e-09 -2.058292150192e-01 + 1.412800000000e-09 -1.458438935471e-01 + 1.422800000000e-09 -6.475716165821e-02 + 1.432800000000e-09 2.744164779056e-02 + 1.442800000000e-09 1.186677467126e-01 + 1.452800000000e-09 1.956043873574e-01 + 1.462800000000e-09 2.461346489277e-01 + 1.472800000000e-09 2.622474799613e-01 + 1.482800000000e-09 2.416352030673e-01 + 1.492800000000e-09 1.874639466145e-01 + 1.502800000000e-09 1.069845739780e-01 + 1.512800000000e-09 1.009520608409e-02 + 1.522800000000e-09 -9.106408139084e-02 + 1.532800000000e-09 -1.823274741956e-01 + 1.542800000000e-09 -2.495165532310e-01 + 1.552800000000e-09 -2.818828040775e-01 + 1.562800000000e-09 -2.745581207843e-01 + 1.572800000000e-09 -2.289962194531e-01 + 1.582800000000e-09 -1.517946716251e-01 + 1.592800000000e-09 -5.273212621184e-02 + 1.602800000000e-09 5.618995023295e-02 + 1.612800000000e-09 1.604972711969e-01 + 1.622800000000e-09 2.444161671126e-01 + 1.632800000000e-09 2.943962014625e-01 + 1.642800000000e-09 3.026512636799e-01 + 1.652800000000e-09 2.685672940552e-01 + 1.662800000000e-09 1.975937651808e-01 + 1.672800000000e-09 9.915618588642e-02 + 1.682800000000e-09 -1.489027129124e-02 + 1.692800000000e-09 -1.302005676574e-01 + 1.702800000000e-09 -2.300668810611e-01 + 1.712800000000e-09 -2.984666266787e-01 + 1.722800000000e-09 -3.244277600467e-01 + 1.732800000000e-09 -3.045745987982e-01 + 1.742800000000e-09 -2.426927806087e-01 + 1.752800000000e-09 -1.477216196967e-01 + 1.762800000000e-09 -3.139676254756e-02 + 1.772800000000e-09 9.232691310211e-02 + 1.782800000000e-09 2.065220425914e-01 + 1.792800000000e-09 2.932599629582e-01 + 1.802800000000e-09 3.382935040035e-01 + 1.812800000000e-09 3.350299473546e-01 + 1.822800000000e-09 2.851798716137e-01 + 1.832800000000e-09 1.966887736117e-01 + 1.842800000000e-09 8.108943403843e-02 + 1.852800000000e-09 -4.803738359387e-02 + 1.862800000000e-09 -1.741533489436e-01 + 1.872800000000e-09 -2.782175427887e-01 + 1.882800000000e-09 -3.430632454928e-01 + 1.892800000000e-09 -3.585195638344e-01 + 1.902800000000e-09 -3.235686388709e-01 + 1.912800000000e-09 -2.445803840568e-01 + 1.922800000000e-09 -1.326504675920e-01 + 1.932800000000e-09 -1.161369150663e-03 + 1.942800000000e-09 1.340350508802e-01 + 1.952800000000e-09 2.536568075272e-01 + 1.962800000000e-09 3.382368790699e-01 + 1.972800000000e-09 3.739572232827e-01 + 1.982800000000e-09 3.563858698632e-01 + 1.992800000000e-09 2.897470720799e-01 + 2.002800000000e-09 1.843747531456e-01 + 2.012800000000e-09 5.355673147228e-02 + 2.022800000000e-09 -8.756785206581e-02 + 2.032800000000e-09 -2.202412903868e-01 + 2.042800000000e-09 -3.235651345994e-01 + 2.052800000000e-09 -3.801973248936e-01 + 2.062800000000e-09 -3.819058381622e-01 + 2.072800000000e-09 -3.304777237958e-01 + 2.082800000000e-09 -2.347590586909e-01 + 2.092800000000e-09 -1.076349684809e-01 + 2.102800000000e-09 3.615656008761e-02 + 2.112800000000e-09 1.788395910068e-01 + 2.122800000000e-09 2.990754445312e-01 + 2.132800000000e-09 3.766999684906e-01 + 2.142800000000e-09 3.994054837080e-01 + 2.152800000000e-09 3.656344975690e-01 + 2.162800000000e-09 2.822758836089e-01 + 2.172800000000e-09 1.616598406643e-01 + 2.182800000000e-09 1.832930249153e-02 + 2.192800000000e-09 -1.310497621301e-01 + 2.202800000000e-09 -2.656171151081e-01 + 2.212800000000e-09 -3.633167820065e-01 + 2.222800000000e-09 -4.079268224947e-01 + 2.232800000000e-09 -3.939643447081e-01 + 2.242800000000e-09 -3.257168286326e-01 + 2.252800000000e-09 -2.143483923546e-01 + 2.262800000000e-09 -7.434239809691e-02 + 2.272800000000e-09 7.846683795038e-02 + 2.282800000000e-09 2.243660398535e-01 + 2.292800000000e-09 3.404626412950e-01 + 2.302800000000e-09 4.069796514891e-01 + 2.312800000000e-09 4.142045273947e-01 + 2.322800000000e-09 3.635765112493e-01 + 2.332800000000e-09 2.643669189659e-01 + 2.342800000000e-09 1.305063704248e-01 + 2.352800000000e-09 -2.251360669008e-02 + 2.362800000000e-09 -1.763889433776e-01 + 2.372800000000e-09 -3.084397271067e-01 + 2.382800000000e-09 -3.963276425257e-01 + 2.392800000000e-09 -4.259528481910e-01 + 2.402800000000e-09 -3.950370554860e-01 + 2.412800000000e-09 -3.105222442364e-01 + 2.422800000000e-09 -1.854052395825e-01 + 2.432800000000e-09 -3.509179383709e-02 + 2.442800000000e-09 1.233864114973e-01 + 2.452800000000e-09 2.684037392958e-01 + 2.462800000000e-09 3.761954567272e-01 + 2.472800000000e-09 4.285328194067e-01 + 2.482800000000e-09 4.189333712574e-01 + 2.492800000000e-09 3.516629841554e-01 + 2.502800000000e-09 2.380432042435e-01 + 2.512800000000e-09 9.314062099093e-02 + 2.522800000000e-09 -6.671581036802e-02 + 2.532800000000e-09 -2.214484888113e-01 + 2.542800000000e-09 -3.470161294258e-01 + 2.552800000000e-09 -4.218394295557e-01 + 2.562800000000e-09 -4.348364634641e-01 + 2.572800000000e-09 -3.868412735930e-01 + 2.582800000000e-09 -2.871193433810e-01 + 2.592800000000e-09 -1.501420903318e-01 + 2.602800000000e-09 8.063297121841e-03 + 2.612800000000e-09 1.690689949570e-01 + 2.622800000000e-09 3.095616643207e-01 + 2.632800000000e-09 4.057282015950e-01 + 2.642800000000e-09 4.419357774049e-01 + 2.652800000000e-09 4.150352824089e-01 + 2.662800000000e-09 3.316759993386e-01 + 2.672800000000e-09 2.050752787361e-01 + 2.682800000000e-09 5.122065668030e-02 + 2.692800000000e-09 -1.127330077779e-01 + 2.702800000000e-09 -2.649322249861e-01 + 2.712800000000e-09 -3.805821719951e-01 + 2.722800000000e-09 -4.399305823462e-01 + 2.732800000000e-09 -4.353849935071e-01 + 2.742800000000e-09 -3.706659017489e-01 + 2.752800000000e-09 -2.570498965088e-01 + 2.762800000000e-09 -1.100674197876e-01 + 2.772800000000e-09 5.371372715236e-02 + 2.782800000000e-09 2.142405466398e-01 + 2.792800000000e-09 3.469029563600e-01 + 2.802800000000e-09 4.288049497323e-01 + 2.812800000000e-09 4.475754527741e-01 + 2.822800000000e-09 4.032982397379e-01 + 2.832800000000e-09 3.049606660745e-01 + 2.842800000000e-09 1.672121284256e-01 + 2.852800000000e-09 6.450097651431e-03 + 2.862800000000e-09 -1.589791713108e-01 + 2.872800000000e-09 -3.055795872043e-01 + 2.882800000000e-09 -4.085709642949e-01 + 2.892800000000e-09 -4.509872697262e-01 + 2.902800000000e-09 -4.287200001321e-01 + 2.912800000000e-09 -3.480542072781e-01 + 2.922800000000e-09 -2.220219917981e-01 + 2.932800000000e-09 -6.677635946007e-02 + 2.942800000000e-09 1.003946153395e-01 + 2.952800000000e-09 2.576936990537e-01 + 2.962800000000e-09 3.797480517140e-01 + 2.972800000000e-09 4.455492824081e-01 + 2.982800000000e-09 4.463599195047e-01 + 2.992800000000e-09 3.852178566768e-01 + 3.002800000000e-09 2.731396395150e-01 + 3.012800000000e-09 1.258412005484e-01 + 3.022800000000e-09 -3.994800195094e-02 + 3.032800000000e-09 -2.043868820749e-01 + 3.042800000000e-09 -3.426615187531e-01 + 3.052800000000e-09 -4.308874750838e-01 + 3.062800000000e-09 -4.554462644072e-01 + 3.072800000000e-09 -4.155712221552e-01 + 3.082800000000e-09 -3.198023065937e-01 + 3.092800000000e-09 -1.827375836516e-01 + 3.102800000000e-09 -2.102333061567e-02 + 3.112800000000e-09 1.471704802241e-01 + 3.122800000000e-09 2.984356907304e-01 + 3.132800000000e-09 4.073607614246e-01 + 3.142800000000e-09 4.557116379003e-01 + 3.152800000000e-09 4.384054498170e-01 + 3.162800000000e-09 3.611839198038e-01 + 3.172800000000e-09 2.368023815305e-01 + 3.182800000000e-09 8.159145489484e-02 + 3.192800000000e-09 -8.721294249676e-02 + 3.202800000000e-09 -2.480918736884e-01 + 3.212800000000e-09 -3.754167083369e-01 + 3.222800000000e-09 -4.471540577074e-01 + 3.232800000000e-09 -4.534131237490e-01 + 3.242800000000e-09 -3.964676514103e-01 + 3.252800000000e-09 -2.869335133494e-01 + 3.262800000000e-09 -1.405118892420e-01 + 3.272800000000e-09 2.596537456314e-02 + 3.282800000000e-09 1.929661181239e-01 + 3.292800000000e-09 3.357223275059e-01 + 3.302800000000e-09 4.296254937819e-01 + 3.312800000000e-09 4.598706383866e-01 + 3.322800000000e-09 4.247775242581e-01 + 3.332800000000e-09 3.323319718407e-01 + 3.342800000000e-09 1.969265328565e-01 + 3.352800000000e-09 3.535188779061e-02 + 3.362800000000e-09 -1.344365262098e-01 + 3.372800000000e-09 -2.892894859737e-01 + 3.382800000000e-09 -4.034199682007e-01 + 3.392800000000e-09 -4.575036969558e-01 + 3.402800000000e-09 -4.454027720159e-01 + 3.412800000000e-09 -3.721623806589e-01 + 3.422800000000e-09 -2.501876608071e-01 + 3.432800000000e-09 -9.586614060034e-02 + 3.442800000000e-09 7.363109857073e-02 + 3.452800000000e-09 2.371555785352e-01 + 3.462800000000e-09 3.690248221087e-01 + 3.472800000000e-09 4.463480107618e-01 + 3.482800000000e-09 4.580808549052e-01 + 3.492800000000e-09 4.056803813512e-01 + 3.502800000000e-09 2.992775673600e-01 + 3.512800000000e-09 1.544337174143e-01 + 3.522800000000e-09 -1.194963863457e-02 + 3.532800000000e-09 -1.806848192460e-01 + 3.542800000000e-09 -3.271987993084e-01 + 3.552800000000e-09 -4.263446139565e-01 + 3.562800000000e-09 -4.621856138910e-01 + 3.572800000000e-09 -4.320830827961e-01 + 3.582800000000e-09 -3.435596744799e-01 + 3.592800000000e-09 -2.105590330172e-01 + 3.602800000000e-09 -4.972831586786e-02 + 3.612800000000e-09 1.210412452503e-01 + 3.622800000000e-09 2.789245098132e-01 + 3.632800000000e-09 3.979134926577e-01 + 3.642800000000e-09 4.576669863947e-01 + 3.652800000000e-09 4.509476670886e-01 + 3.662800000000e-09 3.820489553515e-01 + 3.672800000000e-09 2.629563914800e-01 + 3.682800000000e-09 1.100197191913e-01 + 3.692800000000e-09 -5.964101586349e-02 + 3.702800000000e-09 -2.252936903691e-01 + 3.712800000000e-09 -3.613261671017e-01 + 3.722800000000e-09 -4.441003574480e-01 + 3.732800000000e-09 -4.614026594595e-01 + 3.742800000000e-09 -4.138220967260e-01 + 3.752800000000e-09 -3.109425776687e-01 + 3.762800000000e-09 -1.681059074830e-01 + 3.772800000000e-09 -2.268994852485e-03 + 3.782800000000e-09 1.677290200395e-01 + 3.792800000000e-09 3.176028300025e-01 + 3.802800000000e-09 4.217905579717e-01 + 3.812800000000e-09 4.632551732332e-01 + 3.822800000000e-09 4.383464477259e-01 + 3.832800000000e-09 3.538867460325e-01 + 3.842800000000e-09 2.234772407893e-01 + 3.852800000000e-09 6.382569407611e-02 + 3.862800000000e-09 -1.073899475357e-01 + 3.872800000000e-09 -2.677651336316e-01 + 3.882800000000e-09 -3.912047521925e-01 + 3.892800000000e-09 -4.565883441923e-01 + 3.902800000000e-09 -4.554460097973e-01 + 3.912800000000e-09 -3.910699889117e-01 + 3.922800000000e-09 -2.750837118446e-01 + 3.932800000000e-09 -1.237975183305e-01 + 3.942800000000e-09 4.570595162128e-02 + 3.952800000000e-09 2.131139740323e-01 + 3.962800000000e-09 3.529672859645e-01 + 3.972800000000e-09 4.409841058878e-01 + 3.982800000000e-09 4.638015683590e-01 + 3.992800000000e-09 4.211166369263e-01 + 4.002800000000e-09 3.219343462406e-01 + 4.012800000000e-09 1.813277681250e-01 + 4.022800000000e-09 1.630147871208e-02 + 4.032800000000e-09 -1.546302210530e-01 + 4.042800000000e-09 -3.075214032216e-01 + 4.052800000000e-09 -4.165004619146e-01 + 4.062800000000e-09 -4.634872611642e-01 + 4.072800000000e-09 -4.437983815862e-01 + 4.082800000000e-09 -3.635308177919e-01 + 4.092800000000e-09 -2.359092887993e-01 + 4.102800000000e-09 -7.765390782437e-02 + 4.112800000000e-09 9.373201772503e-02 + 4.122800000000e-09 2.562844770479e-01 + 4.132800000000e-09 3.839057318863e-01 + 4.142800000000e-09 4.544992132053e-01 + 4.152800000000e-09 4.585889463925e-01 + 4.162800000000e-09 3.988814150345e-01 + 4.172800000000e-09 2.863903243241e-01 + 4.182800000000e-09 1.371781067508e-01 + 4.192800000000e-09 -3.169282604538e-02 + 4.202800000000e-09 -2.003463810105e-01 + 4.212800000000e-09 -3.435783771702e-01 + 4.222800000000e-09 -4.365916971653e-01 + 4.232800000000e-09 -4.649007707332e-01 + 4.242800000000e-09 -4.272702176886e-01 + 4.252800000000e-09 -3.320787404687e-01 + 4.262800000000e-09 -1.940663570380e-01 + 4.272800000000e-09 -3.024978038692e-02 + 4.282800000000e-09 1.411680845784e-01 + 4.292800000000e-09 2.966457751739e-01 + 4.302800000000e-09 4.101263253141e-01 + 4.312800000000e-09 4.624796470527e-01 + 4.322800000000e-09 4.480226856046e-01 + 4.332800000000e-09 3.721961972599e-01 + 4.342800000000e-09 2.477375423560e-01 + 4.352800000000e-09 9.127619301935e-02 + 4.362800000000e-09 -7.983691314818e-02 + 4.372800000000e-09 -2.441153187182e-01 + 4.382800000000e-09 -3.755682116318e-01 + 4.392800000000e-09 -4.513626234966e-01 + 4.402800000000e-09 -4.608893159701e-01 + 4.412800000000e-09 -4.060144085357e-01 + 4.422800000000e-09 -2.972045339829e-01 + 4.432800000000e-09 -1.502843389782e-01 + 4.442800000000e-09 1.770383036498e-02 + 4.452800000000e-09 1.873078026921e-01 + 4.462800000000e-09 3.336366657319e-01 + 4.472800000000e-09 4.314751892973e-01 + 4.482800000000e-09 4.652451969038e-01 + 4.492800000000e-09 4.327480744676e-01 + 4.502800000000e-09 3.418704235141e-01 + 4.512800000000e-09 2.068223219818e-01 + 4.522800000000e-09 4.438308912178e-02 + 4.532800000000e-09 -1.273657548724e-01 + 4.542800000000e-09 -2.852891197506e-01 + 4.552800000000e-09 -4.032140797853e-01 + 4.562800000000e-09 -4.610485028832e-01 + 4.572800000000e-09 -4.520156525292e-01 + 4.582800000000e-09 -3.807817570123e-01 + 4.592800000000e-09 -2.596162652910e-01 + 4.602800000000e-09 -1.050440708772e-01 + 4.612800000000e-09 6.569646982077e-02 + 4.622800000000e-09 2.315971140706e-01 + 4.632800000000e-09 3.668203641221e-01 + 4.642800000000e-09 4.478469676290e-01 + 4.652800000000e-09 4.629110177392e-01 + 4.662800000000e-09 4.130026515692e-01 + 4.672800000000e-09 3.080111872749e-01 + 4.682800000000e-09 1.634915141478e-01 + 4.692800000000e-09 -3.514613028456e-03 + 4.702800000000e-09 -1.739547178593e-01 + 4.712800000000e-09 -3.232867101363e-01 + 4.722800000000e-09 -4.259386501435e-01 + 4.732800000000e-09 -4.652503916860e-01 + 4.742800000000e-09 -4.380148814762e-01 + 4.752800000000e-09 -3.514016128612e-01 + 4.762800000000e-09 -2.192420193746e-01 + 4.772800000000e-09 -5.833140437924e-02 + 4.782800000000e-09 1.135091211298e-01 + 4.792800000000e-09 2.736098032151e-01 + 4.802800000000e-09 3.957615610476e-01 + 4.812800000000e-09 4.591035531904e-01 + 4.822800000000e-09 4.556424751340e-01 + 4.832800000000e-09 3.890598815876e-01 + 4.842800000000e-09 2.712310689991e-01 + 4.852800000000e-09 1.185981022732e-01 + 4.862800000000e-09 -5.168059484053e-02 + 4.872800000000e-09 -2.190558727968e-01 + 4.882800000000e-09 -3.578853984433e-01 + 4.892800000000e-09 -4.440330700439e-01 + 4.902800000000e-09 -4.645899554968e-01 + 4.912800000000e-09 -4.196538314181e-01 + 4.922800000000e-09 -3.185213727509e-01 + 4.932800000000e-09 -1.764530460088e-01 + 4.942800000000e-09 -1.050354171419e-02 + 4.952800000000e-09 1.606366765616e-01 + 4.962800000000e-09 3.127967482944e-01 + 4.972800000000e-09 4.201196199331e-01 + 4.982800000000e-09 4.649069628538e-01 + 4.992800000000e-09 4.429246681300e-01 + 5.002800000000e-09 3.606104980742e-01 + 5.012800000000e-09 2.314012175641e-01 + 5.022800000000e-09 7.208279377563e-02 + 5.032800000000e-09 -9.973459200862e-02 + 5.042800000000e-09 -2.618483990651e-01 + 5.052800000000e-09 -3.880687793830e-01 + 5.062800000000e-09 -4.567353524356e-01 + 5.072800000000e-09 -4.587150118203e-01 + 5.082800000000e-09 -3.968295952444e-01 + 5.092800000000e-09 -2.824659174998e-01 + 5.102800000000e-09 -1.319068920268e-01 + 5.112800000000e-09 3.773654873434e-02 + 5.122800000000e-09 2.063617780017e-01 + 5.132800000000e-09 3.485733937318e-01 + 5.142800000000e-09 4.397014730782e-01 + 5.152800000000e-09 4.657138917902e-01 + 5.162800000000e-09 4.257929326783e-01 + 5.172800000000e-09 3.286191875664e-01 + 5.182800000000e-09 1.891271672882e-01 + 5.192800000000e-09 2.438066949749e-02 + 5.202800000000e-09 -1.472579817434e-01 + 5.212800000000e-09 -3.020185678262e-01 + 5.222800000000e-09 -4.138394249242e-01 + 5.232800000000e-09 -4.639696140297e-01 + 5.242800000000e-09 -4.471858694252e-01 + 5.252800000000e-09 -3.692699362302e-01 + 5.262800000000e-09 -2.431840763376e-01 + 5.272800000000e-09 -8.563740000533e-02 + 5.282800000000e-09 8.593084283218e-02 + 5.292800000000e-09 2.497967938743e-01 + 5.302800000000e-09 3.798616425212e-01 + 5.312800000000e-09 4.535531012553e-01 + 5.322800000000e-09 4.607447230406e-01 + 5.332800000000e-09 4.036788676121e-01 + 5.342800000000e-09 2.930831825917e-01 + 5.352800000000e-09 1.449231216967e-01 + 5.362800000000e-09 -2.372353537968e-02 + 5.372800000000e-09 -1.932038939551e-01 + 5.382800000000e-09 -3.384475414681e-01 + 5.392800000000e-09 -4.343627497127e-01 + 5.402800000000e-09 -4.658215804235e-01 + 5.412800000000e-09 -4.310508762143e-01 + 5.422800000000e-09 -3.382509926020e-01 + 5.432800000000e-09 -2.018114384953e-01 + 5.442800000000e-09 -3.852936604479e-02 + 5.452800000000e-09 1.333723457116e-01 + 5.462800000000e-09 2.905369529892e-01 + 5.472800000000e-09 4.067830470489e-01 + 5.482800000000e-09 4.623867532741e-01 + 5.492800000000e-09 4.510381155635e-01 + 5.502800000000e-09 3.777447310967e-01 + 5.512800000000e-09 2.549987312790e-01 + 5.522800000000e-09 9.940457087836e-02 + 5.532800000000e-09 -7.173604174221e-02 + 5.542800000000e-09 -2.371927570430e-01 + 5.552800000000e-09 -3.710181605127e-01 + 5.562800000000e-09 -4.499392846619e-01 + 5.572800000000e-09 -4.626725410626e-01 + 5.582800000000e-09 -4.105897135743e-01 + 5.592800000000e-09 -3.038420782660e-01 + 5.602800000000e-09 -1.581266529284e-01 + 5.612800000000e-09 9.494886388667e-03 + 5.622800000000e-09 1.797897987550e-01 + 5.632800000000e-09 3.280377424125e-01 + 5.642800000000e-09 4.287737330298e-01 + 5.652800000000e-09 4.657772226903e-01 + 5.662800000000e-09 4.362752922691e-01 + 5.672800000000e-09 3.477545809179e-01 + 5.682800000000e-09 2.142265526081e-01 + 5.692800000000e-09 5.250507665738e-02 + 5.702800000000e-09 -1.194724435416e-01 + 5.712800000000e-09 -2.788196833148e-01 + 5.722800000000e-09 -3.993068205250e-01 + 5.732800000000e-09 -4.604121620007e-01 + 5.742800000000e-09 -4.546242889022e-01 + 5.752800000000e-09 -3.859908289306e-01 + 5.762800000000e-09 -2.666033491956e-01 + 5.772800000000e-09 -1.129812260285e-01 + 5.782800000000e-09 5.767402241059e-02 + 5.792800000000e-09 2.246046276940e-01 + 5.802800000000e-09 3.620521952619e-01 + 5.812800000000e-09 4.461073304719e-01 + 5.822800000000e-09 4.643401252579e-01 + 5.832800000000e-09 4.172366815637e-01 + 5.842800000000e-09 3.143592846029e-01 + 5.852800000000e-09 1.711143068783e-01 + 5.862800000000e-09 4.566670750442e-03 + 5.872800000000e-09 -1.664327401516e-01 + 5.882800000000e-09 -3.175329113221e-01 + 5.892800000000e-09 -4.229637669331e-01 + 5.902800000000e-09 -4.654521247406e-01 + 5.912800000000e-09 -4.412069648268e-01 + 5.922800000000e-09 -3.569880314517e-01 + 5.932800000000e-09 -2.264147157086e-01 + 5.942800000000e-09 -6.629670865894e-02 + 5.952800000000e-09 1.056625360072e-01 + 5.962800000000e-09 2.670482269645e-01 + 5.972800000000e-09 3.916347879650e-01 + 5.982800000000e-09 4.580786662907e-01 + 5.992800000000e-09 4.577337466718e-01 + 6.002800000000e-09 3.937973205459e-01 + 6.012800000000e-09 2.778753135488e-01 + 6.022800000000e-09 1.263343489293e-01 + 6.032800000000e-09 -4.368826615545e-02 + 6.042800000000e-09 -2.118938277747e-01 + 6.052800000000e-09 -3.527616182583e-01 + 6.062800000000e-09 -4.418243122917e-01 + 6.072800000000e-09 -4.655221633647e-01 + 6.082800000000e-09 -4.234337772518e-01 + 6.092800000000e-09 -3.245111353770e-01 + 6.102800000000e-09 -1.838402790935e-01 + 6.112800000000e-09 -1.849128672026e-02 + 6.122800000000e-09 1.530323117181e-01 + 6.132800000000e-09 3.067763803488e-01 + 6.142800000000e-09 4.167434530420e-01 + 6.152800000000e-09 4.646561805620e-01 + 6.162800000000e-09 4.456827416393e-01 + 6.172800000000e-09 3.658357298385e-01 + 6.182800000000e-09 2.383219487326e-01 + 6.192800000000e-09 7.991420565154e-02 + 6.202800000000e-09 -9.187426196225e-02 + 6.212800000000e-09 -2.551048138521e-01 + 6.222800000000e-09 -3.836160383702e-01 + 6.232800000000e-09 -4.551368232752e-01 + 6.242800000000e-09 -4.600203503978e-01 + 6.252800000000e-09 -4.008687286054e-01 + 6.262800000000e-09 -2.886484962333e-01 + 6.272800000000e-09 -1.394366238604e-01 + 6.282800000000e-09 2.967038226358e-02 + 6.292800000000e-09 1.988301258599e-01 + 6.302800000000e-09 3.428266320266e-01 + 6.312800000000e-09 4.367338153881e-01 + 6.322800000000e-09 4.658848119220e-01 + 6.332800000000e-09 4.289160492320e-01 + 6.342800000000e-09 3.343235983005e-01 + 6.352800000000e-09 1.966532743133e-01 + 6.362800000000e-09 3.269656159853e-02 + 6.372800000000e-09 -1.391874311830e-01 + 6.382800000000e-09 -2.954426087855e-01 + 6.392800000000e-09 -4.099168518298e-01 + 6.402800000000e-09 -4.632750747741e-01 + 6.412800000000e-09 -4.496623515138e-01 + 6.422800000000e-09 -3.744121039550e-01 + 6.432800000000e-09 -2.502208573721e-01 + 6.442800000000e-09 -9.374844109163e-02 + 6.452800000000e-09 7.764521429026e-02 + 6.462800000000e-09 2.425208620912e-01 + 6.472800000000e-09 3.748509191156e-01 + 6.482800000000e-09 4.516362491880e-01 + 6.492800000000e-09 4.620714809045e-01 + 6.502800000000e-09 4.078953353029e-01 + 6.512800000000e-09 2.995045182133e-01 + 6.522800000000e-09 1.527183020330e-01 + 6.532800000000e-09 -1.539186023077e-02 + 6.542800000000e-09 -1.854179327746e-01 + 6.552800000000e-09 -3.324836142119e-01 + 6.562800000000e-09 -4.312600110220e-01 + 6.572800000000e-09 -4.659730641156e-01 + 6.582800000000e-09 -4.342690398898e-01 + 6.592800000000e-09 -3.439367874791e-01 + 6.602800000000e-09 -2.091517597943e-01 + 6.612800000000e-09 -4.673005759543e-02 + 6.622800000000e-09 1.252752702108e-01 + 6.632800000000e-09 2.837758598315e-01 + 6.642800000000e-09 4.025470729359e-01 + 6.652800000000e-09 4.613208021475e-01 + 6.662800000000e-09 4.531442782792e-01 + 6.672800000000e-09 3.825675108871e-01 + 6.682800000000e-09 2.618002847241e-01 + 6.692800000000e-09 1.073717703404e-01 + 6.702800000000e-09 -6.347728391370e-02 + 6.712800000000e-09 -2.297978810519e-01 + 6.722800000000e-09 -3.657513998192e-01 + 6.732800000000e-09 -4.476863754557e-01 + 6.742800000000e-09 -4.636463541381e-01 + 6.752800000000e-09 -4.144855799428e-01 + 6.762800000000e-09 -3.100108736820e-01 + 6.772800000000e-09 -1.657500180306e-01 + 6.782800000000e-09 1.236610810712e-03 + 6.792800000000e-09 1.719457732083e-01 + 6.802800000000e-09 3.218730014659e-01 + 6.812800000000e-09 4.253686710342e-01 + 6.822800000000e-09 4.655911916829e-01 + 6.832800000000e-09 4.391730818514e-01 + 6.842800000000e-09 3.531759726955e-01 + 6.852800000000e-09 2.213821812303e-01 + 6.862800000000e-09 6.060450868195e-02 + 6.872800000000e-09 -1.113635969234e-01 + 6.882800000000e-09 -2.719133830028e-01 + 6.892800000000e-09 -3.948131386516e-01 + 6.902800000000e-09 -4.590530776998e-01 + 6.912800000000e-09 -4.564579328037e-01 + 6.922800000000e-09 -3.905791322604e-01 + 6.932800000000e-09 -2.732242419119e-01 + 6.942800000000e-09 -1.208249375369e-01 + 6.952800000000e-09 4.945996165515e-02 + 6.962800000000e-09 2.171453683631e-01 + 6.972800000000e-09 3.566094649225e-01 + 6.982800000000e-09 4.436088957834e-01 + 6.992800000000e-09 4.650494912821e-01 + 7.002800000000e-09 4.208873096450e-01 + 7.012800000000e-09 3.203283025437e-01 + 7.022800000000e-09 1.785926420292e-01 + 7.032800000000e-09 1.274687035518e-02 + 7.042800000000e-09 -1.585672865284e-01 + 7.052800000000e-09 -3.112303746417e-01 + 7.062800000000e-09 -4.193324003696e-01 + 7.072800000000e-09 -4.650063465996e-01 + 7.082800000000e-09 -4.438532578744e-01 + 7.092800000000e-09 -3.621964551318e-01 + 7.102800000000e-09 -2.334145263154e-01 + 7.112800000000e-09 -7.429798863601e-02 + 7.122800000000e-09 9.756733276303e-02 + 7.132800000000e-09 2.600469438093e-01 + 7.142800000000e-09 3.869480060546e-01 + 7.152800000000e-09 4.564797941152e-01 + 7.162800000000e-09 4.593258998739e-01 + 7.172800000000e-09 3.981714422719e-01 + 7.182800000000e-09 2.843285302663e-01 + 7.192800000000e-09 1.340588748922e-01 + 7.202800000000e-09 -3.552601495374e-02 + 7.212800000000e-09 -2.043882498534e-01 + 7.222800000000e-09 -3.471670301578e-01 + 7.232800000000e-09 -4.391048797555e-01 + 7.242800000000e-09 -4.659898744892e-01 + 7.252800000000e-09 -4.268579405105e-01 + 7.262800000000e-09 -3.302929315019e-01 + 7.272800000000e-09 -1.911805151426e-01 + 7.282800000000e-09 -2.659126376788e-02 + 7.292800000000e-09 1.451578269673e-01 + 7.302800000000e-09 3.003564990672e-01 + 7.312800000000e-09 4.129085934664e-01 + 7.322800000000e-09 4.639033290898e-01 + 7.332800000000e-09 4.479514464838e-01 + 7.342800000000e-09 3.707194448343e-01 + 7.352800000000e-09 2.451029934353e-01 + 7.362800000000e-09 8.780469473559e-02 + 7.372800000000e-09 -8.375619502576e-02 + 7.382800000000e-09 -2.479271823497e-01 + 7.392800000000e-09 -3.786210589747e-01 + 7.402800000000e-09 -4.531450374871e-01 + 7.412800000000e-09 -4.611933444704e-01 + 7.422800000000e-09 -4.048770906574e-01 + 7.432800000000e-09 -2.948400812273e-01 + 7.442800000000e-09 -1.470136314130e-01 + 7.452800000000e-09 2.152331413455e-02 + 7.462800000000e-09 1.911814760690e-01 + 7.472800000000e-09 3.369359178029e-01 + 7.482800000000e-09 4.336250422195e-01 + 7.492800000000e-09 4.659473103904e-01 + 7.502800000000e-09 4.319783490924e-01 + 7.512800000000e-09 3.398120387672e-01 + 7.522800000000e-09 2.037851675773e-01 + 7.532800000000e-09 4.070365964183e-02 + 7.542800000000e-09 -1.312539424045e-01 + 7.552800000000e-09 -2.887986342595e-01 + 7.562800000000e-09 -4.057308654510e-01 + 7.572800000000e-09 -4.621789165484e-01 + 7.582800000000e-09 -4.516639884160e-01 + 7.592800000000e-09 -3.790749206440e-01 + 7.602800000000e-09 -2.568318179419e-01 + 7.612800000000e-09 -1.015234141122e-01 + 7.622800000000e-09 6.956430657438e-02 + 7.632800000000e-09 2.352734619948e-01 + 7.642800000000e-09 3.696805653539e-01 + 7.652800000000e-09 4.494072507897e-01 + 7.662800000000e-09 4.629920373066e-01 + 7.672800000000e-09 4.116716606159e-01 + 7.682800000000e-09 3.055088300078e-01 + 7.692800000000e-09 1.601588999707e-01 + 7.702800000000e-09 -7.315119512075e-03 + 7.712800000000e-09 -1.777409030436e-01 + 7.722800000000e-09 -3.264515447034e-01 + 7.732800000000e-09 -4.279280469845e-01 + 7.742800000000e-09 -4.657835990355e-01 + 7.752800000000e-09 -4.370900010157e-01 + 7.762800000000e-09 -3.492234737568e-01 + 7.772800000000e-09 -2.161374075578e-01 + 7.782800000000e-09 -5.464813817248e-02 + 7.792800000000e-09 1.173452409870e-01 + 7.802800000000e-09 2.770277870905e-01 + 7.812800000000e-09 3.981646126383e-01 + 7.822800000000e-09 4.601016700009e-01 + 7.832800000000e-09 4.551532277799e-01 + 7.842800000000e-09 3.872379375610e-01 + 7.852800000000e-09 2.683741506261e-01 + 7.862800000000e-09 1.150607278364e-01 + 7.872800000000e-09 -5.551211477228e-02 + 7.882800000000e-09 -2.226578842400e-01 + 7.892800000000e-09 -3.606509574066e-01 + 7.902800000000e-09 -4.454896803287e-01 + 7.912800000000e-09 -4.645684378747e-01 + 7.922800000000e-09 -4.182348964174e-01 + 7.932800000000e-09 -3.159590261432e-01 + 7.942800000000e-09 -1.731001612585e-01 + 7.952800000000e-09 -6.724745105632e-03 + 7.962800000000e-09 1.643719535288e-01 + 7.972800000000e-09 3.158977523504e-01 + 7.982800000000e-09 4.220416898166e-01 + 7.992800000000e-09 4.653718934877e-01 + 8.002800000000e-09 4.419383690975e-01 + 8.012800000000e-09 3.583871677680e-01 + 8.022800000000e-09 2.282757839670e-01 + 8.032800000000e-09 6.841092304402e-02 + 8.042800000000e-09 -1.035357400170e-01 + 8.052800000000e-09 -2.652223125241e-01 + 8.062800000000e-09 -3.904285749981e-01 + 8.072800000000e-09 -4.576899775146e-01 + 8.082800000000e-09 -4.581843107413e-01 + 8.092800000000e-09 -3.949754711062e-01 + 8.102800000000e-09 -2.795931905434e-01 + 8.112800000000e-09 -1.283782517288e-01 + 8.122800000000e-09 4.153908513751e-02 + 8.132800000000e-09 2.099289133955e-01 + 8.142800000000e-09 3.513103785885e-01 + 8.152800000000e-09 4.411362730501e-01 + 8.162800000000e-09 4.656742557393e-01 + 8.172800000000e-09 4.243611029473e-01 + 8.182800000000e-09 3.260530566428e-01 + 8.192800000000e-09 1.857848130623e-01 + 8.202800000000e-09 2.062742197559e-02 + 8.212800000000e-09 -1.509656002326e-01 + 8.222800000000e-09 -3.051029391416e-01 + 8.232800000000e-09 -4.157579612180e-01 + 8.242800000000e-09 -4.644410051084e-01 + 8.252800000000e-09 -4.462141436171e-01 + 8.262800000000e-09 -3.670633436100e-01 + 8.272800000000e-09 -2.400765847501e-01 + 8.282800000000e-09 -8.198979024144e-02 + 8.292800000000e-09 8.971049739905e-02 + 8.302800000000e-09 2.531649891753e-01 + 8.312800000000e-09 3.822359374469e-01 + 8.322800000000e-09 4.545428953193e-01 + 8.332800000000e-09 4.602650644385e-01 + 8.342800000000e-09 4.018737933680e-01 + 8.352800000000e-09 2.902485297620e-01 + 8.362800000000e-09 1.414251485740e-01 + 8.372800000000e-09 -2.750794874843e-02 + 8.382800000000e-09 -1.967785659775e-01 + 8.392800000000e-09 -3.412242432682e-01 + 8.402800000000e-09 -4.358587938602e-01 + 8.412800000000e-09 -4.658476682341e-01 + 8.422800000000e-09 -4.296788280156e-01 + 8.432800000000e-09 -3.357407146107e-01 + 8.442800000000e-09 -1.985220337517e-01 + 8.452800000000e-09 -3.481568794989e-02 + 8.462800000000e-09 1.370701348803e-01 + 8.472800000000e-09 2.936524555797e-01 + 8.482800000000e-09 4.087685315317e-01 + 8.492800000000e-09 4.629417567097e-01 + 8.502800000000e-09 4.501521656433e-01 + 8.512800000000e-09 3.756148124522e-01 + 8.522800000000e-09 2.519517033636e-01 + 8.532800000000e-09 9.580243921001e-02 + 8.542800000000e-09 -7.549555227423e-02 + 8.552800000000e-09 -2.405796919331e-01 + 8.562800000000e-09 -3.734516592895e-01 + 8.572800000000e-09 -4.510123054497e-01 + 8.582800000000e-09 -4.622825723256e-01 + 8.592800000000e-09 -4.088680447616e-01 + 8.602800000000e-09 -3.010762665481e-01 + 8.612800000000e-09 -1.546820084910e-01 + 8.622800000000e-09 1.324764662253e-02 + 8.632800000000e-09 1.833694258867e-01 + 8.642800000000e-09 3.308638443427e-01 + 8.652800000000e-09 4.303519949622e-01 + 8.662800000000e-09 4.658971588524e-01 + 8.672800000000e-09 4.349937144381e-01 + 8.682800000000e-09 3.453207882528e-01 + 8.692800000000e-09 2.109942175722e-01 + 8.702800000000e-09 4.882919702486e-02 + 8.712800000000e-09 -1.231644715299e-01 + 8.722800000000e-09 -2.819721785942e-01 + 8.732800000000e-09 -4.013669442831e-01 + 8.742800000000e-09 -4.609471142108e-01 + 8.752800000000e-09 -4.535925733981e-01 + 8.762800000000e-09 -3.837329838364e-01 + 8.772800000000e-09 -2.635015426741e-01 + 8.782800000000e-09 -1.094026524439e-01 + 8.792800000000e-09 6.133911851039e-02 + 8.802800000000e-09 2.278489301402e-01 + 8.812800000000e-09 3.643232226631e-01 + 8.822800000000e-09 4.470206584862e-01 + 8.832800000000e-09 4.638123012098e-01 + 8.842800000000e-09 4.154163657328e-01 + 8.852800000000e-09 3.115479076455e-01 + 8.862800000000e-09 1.676866254357e-01 + 8.872800000000e-09 8.906808820122e-04 + 8.882800000000e-09 -1.698958405567e-01 + 8.892800000000e-09 -3.202286354128e-01 + 8.902800000000e-09 -4.244184361064e-01 + 8.912800000000e-09 -4.654670138850e-01 + 8.922800000000e-09 -4.398513575101e-01 + 8.932800000000e-09 -3.545208098977e-01 + 8.942800000000e-09 -2.231954925540e-01 + 8.952800000000e-09 -6.268384627991e-02 + 8.962800000000e-09 1.092566421112e-01 + 8.972800000000e-09 2.700913693337e-01 + 8.982800000000e-09 3.935945055867e-01 + 8.992800000000e-09 4.586360787693e-01 + 9.002800000000e-09 4.568682226341e-01 + 9.012800000000e-09 3.917116397645e-01 + 9.022800000000e-09 2.748980863720e-01 + 9.032800000000e-09 1.228330459995e-01 + 9.042800000000e-09 -4.733543371486e-02 + 9.052800000000e-09 -2.151930116187e-01 + 9.062800000000e-09 -3.551578508464e-01 + 9.072800000000e-09 -4.429066325595e-01 + 9.082800000000e-09 -4.651748199707e-01 + 9.092800000000e-09 -4.217795294709e-01 + 9.102800000000e-09 -3.218324324715e-01 + 9.112800000000e-09 -1.805026281001e-01 + 9.122800000000e-09 -1.485569366440e-02 + 9.132800000000e-09 1.565196046300e-01 + 9.142800000000e-09 3.095665782616e-01 + 9.152800000000e-09 4.183452010810e-01 + 9.162800000000e-09 4.648384822366e-01 + 9.172800000000e-09 4.444885859803e-01 + 9.182800000000e-09 3.635040294619e-01 + 9.192800000000e-09 2.351990414366e-01 + 9.202800000000e-09 7.635606664153e-02 + 9.212800000000e-09 -9.546785208762e-02 + 9.222800000000e-09 -2.582118732041e-01 + 9.232800000000e-09 -3.856963922463e-01 + 9.242800000000e-09 -4.558526024219e-01 + 9.252800000000e-09 -4.593272327195e-01 + 9.262800000000e-09 -3.989366824841e-01 + 9.272800000000e-09 -2.857852305482e-01 + 9.282800000000e-09 -1.360054709359e-01 + 9.292800000000e-09 3.330050172351e-02 + 9.302800000000e-09 2.021784404858e-01 + 9.312800000000e-09 3.453376604514e-01 + 9.322800000000e-09 4.379725932482e-01 + 9.332800000000e-09 4.657042185510e-01 + 9.342800000000e-09 4.274144755104e-01 + 9.352800000000e-09 3.315766736420e-01 + 9.362800000000e-09 1.930050357455e-01 + 9.372800000000e-09 2.875375385395e-02 + 9.382800000000e-09 -1.429186262233e-01 + 9.392800000000e-09 -2.983852992978e-01 + 9.402800000000e-09 -4.115514641635e-01 + 9.412800000000e-09 -4.633659311023e-01 + 9.422800000000e-09 -4.482703694550e-01 + 9.432800000000e-09 -3.718057205708e-01 + 9.442800000000e-09 -2.467854144256e-01 + 9.452800000000e-09 -8.988297401063e-02 + 9.462800000000e-09 8.151404967106e-02 + 9.472800000000e-09 2.458403928294e-01 + 9.482800000000e-09 3.770479460035e-01 + 9.492800000000e-09 4.523476265408e-01 + 9.502800000000e-09 4.612556180294e-01 + 9.512800000000e-09 4.057447961718e-01 + 9.522800000000e-09 2.963629765236e-01 + 9.532800000000e-09 1.489900797691e-01 + 9.542800000000e-09 -1.930759076695e-02 + 9.552800000000e-09 -1.890141488124e-01 + 9.562800000000e-09 -3.351705364224e-01 + 9.572800000000e-09 -4.325691596133e-01 + 9.582800000000e-09 -4.657426265792e-01 + 9.592800000000e-09 -4.326098808504e-01 + 9.602800000000e-09 -3.411496065201e-01 + 9.612800000000e-09 -2.056326732975e-01 + 9.622800000000e-09 -4.285889153263e-02 + 9.632800000000e-09 1.290449138607e-01 + 9.642800000000e-09 2.868709681360e-01 + 9.652800000000e-09 4.044226441116e-01 + 9.662800000000e-09 4.616923589764e-01 + 9.672800000000e-09 4.520295451842e-01 + 9.682800000000e-09 3.801974456021e-01 + 9.692800000000e-09 2.585344401990e-01 + 9.702800000000e-09 1.036001194999e-01 + 9.712800000000e-09 -6.734237900509e-02 + 9.722800000000e-09 -2.332167424265e-01 + 9.732800000000e-09 -3.681396593132e-01 + 9.742800000000e-09 -4.486419805133e-01 + 9.752800000000e-09 -4.630845706588e-01 + 9.762800000000e-09 -4.125638176617e-01 + 9.772800000000e-09 -3.070460872634e-01 + 9.782800000000e-09 -1.621346275889e-01 + 9.792800000000e-09 5.114602884473e-03 + 9.802800000000e-09 1.755953103032e-01 + 9.812800000000e-09 3.247060753281e-01 + 9.822800000000e-09 4.268883663454e-01 + 9.832800000000e-09 4.655935476313e-01 + 9.842800000000e-09 4.377336225167e-01 + 9.852800000000e-09 3.505682171311e-01 + 9.862800000000e-09 2.179845523073e-01 + 9.872800000000e-09 5.679231329547e-02 + 9.882800000000e-09 -1.151519233912e-01 + 9.892800000000e-09 -2.751127298994e-01 + 9.902800000000e-09 -3.968627871110e-01 + 9.912800000000e-09 -4.596231585185e-01 + 9.922800000000e-09 -4.555307752008e-01 + 9.932800000000e-09 -3.883695919340e-01 + 9.942800000000e-09 -2.700784914521e-01 + 9.952800000000e-09 -1.171279413116e-01 + 9.962800000000e-09 5.330739378300e-02 + 9.972800000000e-09 2.206176409949e-01 + 9.982800000000e-09 3.591197913484e-01 + 9.992800000000e-09 4.447287668034e-01 + 1.000000000000e-08 4.658065634617e-01 diff --git a/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_10/conditions.yaml b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_10/conditions.yaml new file mode 100644 index 00000000..bbc20751 --- /dev/null +++ b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_10/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/LC_Oscillator/xschem/simulations/schematic/LC_Oscillator.spice +N: 10 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: tt +filename: LC_Oscillator_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_10 +temperature: '27' +vdd: '1.2' diff --git a/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_11/.spiceinit b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_11/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_11/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_11/LC_Oscillator.sym b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_11/LC_Oscillator.sym new file mode 100644 index 00000000..e632b156 --- /dev/null +++ b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_11/LC_Oscillator.sym @@ -0,0 +1,27 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 70 -20 90 -20 {} +L 4 70 20 90 20 {} +L 7 20 70 20 90 {} +L 7 -20 70 -20 90 {} +B 5 87.5 -22.5 92.5 -17.5 {name=Voplus dir=out} +B 5 17.5 87.5 22.5 92.5 {name=vdd dir=inout} +B 5 -22.5 87.5 -17.5 92.5 {name=gnd dir=inout} +B 5 87.5 17.5 92.5 22.5 {name=Vominus dir=out} +A 4 -1.666666666666714 1.666666666666714 71.68604389202189 287.5924245621816 360 {} +A 4 -30 27.5 40.69705149024927 42.51044707800085 94.97910584399833 {} +A 4 30 -27.5 40.69705149024927 222.5104470780009 94.97910584399833 {} +T {@symname} -40.5 -56 0 0 0.1 0.1 {} +T {@name} -40 -47 0 0 0.1 0.1 { +} +T {Voplus} 65 -24 0 1 0.2 0.2 {} +T {vdd} 5 64 2 1 0.2 0.2 {} +T {gnd} -35 64 2 1 0.2 0.2 {} +T {Vominus} 65 16 0 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_11/LC_Oscillator_tb.sch b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_11/LC_Oscillator_tb.sch new file mode 100644 index 00000000..6b4e889e --- /dev/null +++ b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_11/LC_Oscillator_tb.sch @@ -0,0 +1,57 @@ +v {xschem version=3.4.8RC file_version=1.3} +G {} +K {} +V {} +S {} +F {} +E {} +N 1570 -1060 1570 -1030 {lab=VDD} +N 1570 -970 1570 -940 {lab=GND} +N 1270 -1050 1270 -1030 {lab=GND} +N 1230 -1060 1230 -1030 {lab=VDD} +N 1140 -920 1160 -920 {lab=Voplus} +N 1140 -960 1160 -960 {lab=Vominus} +C {code_shown.sym} 440 -1140 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write LC_Oscillator_tb.raw +set appendwrite +tran 10p 10n 160p +save all + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_11/LC_Oscillator_tb_11.data vo_diff +quit + +.endc +"} +C {vsource.sym} 1570 -1000 0 0 {name=V1 value=1.6 savecurrent=false} +C {gnd.sym} 1570 -940 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1570 -1060 0 0 {name=p2 sig_type=std_logic lab=VDD} +C {opin.sym} 1140 -920 2 0 {name=p6 lab=Voplus} +C {gnd.sym} 1270 -1050 2 0 {name=l3 lab=GND} +C {opin.sym} 1140 -960 0 1 {name=p9 lab=Vominus} +C {LC_Oscillator.sym} 1250 -940 2 0 {name=x1} +C {devices/code_shown.sym} 450 -640 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_tt + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/LC_Oscillator/xschem/simulations/schematic/LC_Oscillator.spice + +.temp 27 +" +} +C {iopin.sym} 1230 -1060 2 0 {name=p1 lab=VDD} diff --git a/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_11/conditions.yaml b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_11/conditions.yaml new file mode 100644 index 00000000..293acdd4 --- /dev/null +++ b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_11/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/LC_Oscillator/xschem/simulations/schematic/LC_Oscillator.spice +N: 11 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: tt +filename: LC_Oscillator_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_11 +temperature: '27' +vdd: '1.6' diff --git a/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_12/.spiceinit b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_12/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_12/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_12/LC_Oscillator.sym b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_12/LC_Oscillator.sym new file mode 100644 index 00000000..e632b156 --- /dev/null +++ b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_12/LC_Oscillator.sym @@ -0,0 +1,27 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 70 -20 90 -20 {} +L 4 70 20 90 20 {} +L 7 20 70 20 90 {} +L 7 -20 70 -20 90 {} +B 5 87.5 -22.5 92.5 -17.5 {name=Voplus dir=out} +B 5 17.5 87.5 22.5 92.5 {name=vdd dir=inout} +B 5 -22.5 87.5 -17.5 92.5 {name=gnd dir=inout} +B 5 87.5 17.5 92.5 22.5 {name=Vominus dir=out} +A 4 -1.666666666666714 1.666666666666714 71.68604389202189 287.5924245621816 360 {} +A 4 -30 27.5 40.69705149024927 42.51044707800085 94.97910584399833 {} +A 4 30 -27.5 40.69705149024927 222.5104470780009 94.97910584399833 {} +T {@symname} -40.5 -56 0 0 0.1 0.1 {} +T {@name} -40 -47 0 0 0.1 0.1 { +} +T {Voplus} 65 -24 0 1 0.2 0.2 {} +T {vdd} 5 64 2 1 0.2 0.2 {} +T {gnd} -35 64 2 1 0.2 0.2 {} +T {Vominus} 65 16 0 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_12/LC_Oscillator_tb.sch b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_12/LC_Oscillator_tb.sch new file mode 100644 index 00000000..b32ccf22 --- /dev/null +++ b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_12/LC_Oscillator_tb.sch @@ -0,0 +1,57 @@ +v {xschem version=3.4.8RC file_version=1.3} +G {} +K {} +V {} +S {} +F {} +E {} +N 1570 -1060 1570 -1030 {lab=VDD} +N 1570 -970 1570 -940 {lab=GND} +N 1270 -1050 1270 -1030 {lab=GND} +N 1230 -1060 1230 -1030 {lab=VDD} +N 1140 -920 1160 -920 {lab=Voplus} +N 1140 -960 1160 -960 {lab=Vominus} +C {code_shown.sym} 440 -1140 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write LC_Oscillator_tb.raw +set appendwrite +tran 10p 10n 160p +save all + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_12/LC_Oscillator_tb_12.data vo_diff +quit + +.endc +"} +C {vsource.sym} 1570 -1000 0 0 {name=V1 value=0.8 savecurrent=false} +C {gnd.sym} 1570 -940 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1570 -1060 0 0 {name=p2 sig_type=std_logic lab=VDD} +C {opin.sym} 1140 -920 2 0 {name=p6 lab=Voplus} +C {gnd.sym} 1270 -1050 2 0 {name=l3 lab=GND} +C {opin.sym} 1140 -960 0 1 {name=p9 lab=Vominus} +C {LC_Oscillator.sym} 1250 -940 2 0 {name=x1} +C {devices/code_shown.sym} 450 -640 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_ff + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/LC_Oscillator/xschem/simulations/schematic/LC_Oscillator.spice + +.temp 27 +" +} +C {iopin.sym} 1230 -1060 2 0 {name=p1 lab=VDD} diff --git a/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_12/conditions.yaml b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_12/conditions.yaml new file mode 100644 index 00000000..0c069899 --- /dev/null +++ b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_12/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/LC_Oscillator/xschem/simulations/schematic/LC_Oscillator.spice +N: 12 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: ff +filename: LC_Oscillator_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_12 +temperature: '27' +vdd: '0.8' diff --git a/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_13/.spiceinit b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_13/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_13/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_13/LC_Oscillator.sym b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_13/LC_Oscillator.sym new file mode 100644 index 00000000..e632b156 --- /dev/null +++ b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_13/LC_Oscillator.sym @@ -0,0 +1,27 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 70 -20 90 -20 {} +L 4 70 20 90 20 {} +L 7 20 70 20 90 {} +L 7 -20 70 -20 90 {} +B 5 87.5 -22.5 92.5 -17.5 {name=Voplus dir=out} +B 5 17.5 87.5 22.5 92.5 {name=vdd dir=inout} +B 5 -22.5 87.5 -17.5 92.5 {name=gnd dir=inout} +B 5 87.5 17.5 92.5 22.5 {name=Vominus dir=out} +A 4 -1.666666666666714 1.666666666666714 71.68604389202189 287.5924245621816 360 {} +A 4 -30 27.5 40.69705149024927 42.51044707800085 94.97910584399833 {} +A 4 30 -27.5 40.69705149024927 222.5104470780009 94.97910584399833 {} +T {@symname} -40.5 -56 0 0 0.1 0.1 {} +T {@name} -40 -47 0 0 0.1 0.1 { +} +T {Voplus} 65 -24 0 1 0.2 0.2 {} +T {vdd} 5 64 2 1 0.2 0.2 {} +T {gnd} -35 64 2 1 0.2 0.2 {} +T {Vominus} 65 16 0 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_13/LC_Oscillator_tb.sch b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_13/LC_Oscillator_tb.sch new file mode 100644 index 00000000..74d02ed3 --- /dev/null +++ b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_13/LC_Oscillator_tb.sch @@ -0,0 +1,57 @@ +v {xschem version=3.4.8RC file_version=1.3} +G {} +K {} +V {} +S {} +F {} +E {} +N 1570 -1060 1570 -1030 {lab=VDD} +N 1570 -970 1570 -940 {lab=GND} +N 1270 -1050 1270 -1030 {lab=GND} +N 1230 -1060 1230 -1030 {lab=VDD} +N 1140 -920 1160 -920 {lab=Voplus} +N 1140 -960 1160 -960 {lab=Vominus} +C {code_shown.sym} 440 -1140 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write LC_Oscillator_tb.raw +set appendwrite +tran 10p 10n 160p +save all + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_13/LC_Oscillator_tb_13.data vo_diff +quit + +.endc +"} +C {vsource.sym} 1570 -1000 0 0 {name=V1 value=1.2 savecurrent=false} +C {gnd.sym} 1570 -940 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1570 -1060 0 0 {name=p2 sig_type=std_logic lab=VDD} +C {opin.sym} 1140 -920 2 0 {name=p6 lab=Voplus} +C {gnd.sym} 1270 -1050 2 0 {name=l3 lab=GND} +C {opin.sym} 1140 -960 0 1 {name=p9 lab=Vominus} +C {LC_Oscillator.sym} 1250 -940 2 0 {name=x1} +C {devices/code_shown.sym} 450 -640 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_ff + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/LC_Oscillator/xschem/simulations/schematic/LC_Oscillator.spice + +.temp 27 +" +} +C {iopin.sym} 1230 -1060 2 0 {name=p1 lab=VDD} diff --git a/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_13/LC_Oscillator_tb_13.data b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_13/LC_Oscillator_tb_13.data new file mode 100644 index 00000000..67e81b75 --- /dev/null +++ b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_13/LC_Oscillator_tb_13.data @@ -0,0 +1,985 @@ + 1.628000000000e-10 8.118333159888e-03 + 1.728000000000e-10 -6.329880087169e-03 + 1.828000000000e-10 -2.038793042648e-02 + 1.928000000000e-10 -3.207435952431e-02 + 2.028000000000e-10 -3.966808522856e-02 + 2.128000000000e-10 -4.196532154741e-02 + 2.228000000000e-10 -3.846876423700e-02 + 2.328000000000e-10 -2.947722603866e-02 + 2.428000000000e-10 -1.606265062070e-02 + 2.528000000000e-10 5.522883945974e-05 + 2.628000000000e-10 1.672059021555e-02 + 2.728000000000e-10 3.161888249487e-02 + 2.828000000000e-10 4.259548573610e-02 + 2.928000000000e-10 4.797276826952e-02 + 3.028000000000e-10 4.681150216804e-02 + 3.128000000000e-10 3.906521496404e-02 + 3.228000000000e-10 2.560427717806e-02 + 3.328000000000e-10 8.114579241002e-03 + 3.428000000000e-10 -1.110628299341e-02 + 3.528000000000e-10 -2.943495558178e-02 + 3.628000000000e-10 -4.426910369524e-02 + 3.728000000000e-10 -5.340070968539e-02 + 3.828000000000e-10 -5.535530628813e-02 + 3.928000000000e-10 -4.962959255005e-02 + 4.028000000000e-10 -3.678155954440e-02 + 4.128000000000e-10 -1.836978656083e-02 + 4.228000000000e-10 3.233781828361e-03 + 4.328000000000e-10 2.512978998091e-02 + 4.428000000000e-10 4.425963300747e-02 + 4.528000000000e-10 5.783059459081e-02 + 4.628000000000e-10 6.374067346046e-02 + 4.728000000000e-10 6.091597005686e-02 + 4.828000000000e-10 4.948696039717e-02 + 4.928000000000e-10 3.078044739555e-02 + 5.028000000000e-10 7.155216598295e-03 + 5.128000000000e-10 -1.827820678648e-02 + 5.228000000000e-10 -4.203240526396e-02 + 5.328000000000e-10 -6.070358413016e-02 + 5.428000000000e-10 -7.147598537560e-02 + 5.528000000000e-10 -7.257483778110e-02 + 5.628000000000e-10 -6.355725231376e-02 + 5.728000000000e-10 -4.537788426842e-02 + 5.828000000000e-10 -2.027778215589e-02 + 5.928000000000e-10 8.494442877233e-03 + 6.028000000000e-10 3.707400757461e-02 + 6.128000000000e-10 6.143925452483e-02 + 6.228000000000e-10 7.798712884381e-02 + 6.328000000000e-10 8.411385694924e-02 + 6.428000000000e-10 7.864904811785e-02 + 6.528000000000e-10 6.203775923011e-02 + 6.628000000000e-10 3.626320211173e-02 + 6.728000000000e-10 4.587556015235e-03 + 6.828000000000e-10 -2.881734371817e-02 + 6.928000000000e-10 -5.934532499629e-02 + 7.028000000000e-10 -8.256603450632e-02 + 7.128000000000e-10 -9.492002737809e-02 + 7.228000000000e-10 -9.432918822386e-02 + 7.328000000000e-10 -8.053689460766e-02 + 7.428000000000e-10 -5.511567428599e-02 + 7.528000000000e-10 -2.122337584007e-02 + 7.628000000000e-10 1.676947183595e-02 + 7.728000000000e-10 5.374110262062e-02 + 7.828000000000e-10 8.442972102290e-02 + 7.928000000000e-10 1.042185919051e-01 + 8.028000000000e-10 1.099392754611e-01 + 8.128000000000e-10 1.004252736436e-01 + 8.228000000000e-10 7.665382783078e-02 + 8.328000000000e-10 4.153080614375e-02 + 8.428000000000e-10 -5.207639454321e-04 + 8.528000000000e-10 -4.394067010580e-02 + 8.628000000000e-10 -8.266995463503e-02 + 8.728000000000e-10 -1.110371637933e-01 + 8.828000000000e-10 -1.246112647038e-01 + 8.928000000000e-10 -1.210506685526e-01 + 9.028000000000e-10 -1.005063955054e-01 + 9.128000000000e-10 -6.545430944823e-02 + 9.228000000000e-10 -2.023209722296e-02 + 9.328000000000e-10 2.933038222068e-02 + 9.428000000000e-10 7.644528334888e-02 + 9.528000000000e-10 1.143487890617e-01 + 9.628000000000e-10 1.372814966351e-01 + 9.728000000000e-10 1.414916696159e-01 + 9.828000000000e-10 1.260001266767e-01 + 9.928000000000e-10 9.264193540934e-02 + 1.002800000000e-09 4.551151506458e-02 + 1.012800000000e-09 -9.454170453994e-03 + 1.022800000000e-09 -6.493078911725e-02 + 1.032800000000e-09 -1.130750739555e-01 + 1.042800000000e-09 -1.466692519551e-01 + 1.052800000000e-09 -1.604566539052e-01 + 1.062800000000e-09 -1.520775271232e-01 + 1.072800000000e-09 -1.223781799979e-01 + 1.082800000000e-09 -7.501648728838e-02 + 1.092800000000e-09 -1.587951346879e-02 + 1.102800000000e-09 4.738449534648e-02 + 1.112800000000e-09 1.060709887452e-01 + 1.122800000000e-09 1.515274335088e-01 + 1.132800000000e-09 1.767360923952e-01 + 1.142800000000e-09 1.776277363422e-01 + 1.152800000000e-09 1.537544732604e-01 + 1.162800000000e-09 1.081178565516e-01 + 1.172800000000e-09 4.640802770048e-02 + 1.182800000000e-09 -2.360630266324e-02 + 1.192800000000e-09 -9.260951697163e-02 + 1.202800000000e-09 -1.506591688898e-01 + 1.212800000000e-09 -1.888366375907e-01 + 1.222800000000e-09 -2.011069133707e-01 + 1.232800000000e-09 -1.854353984296e-01 + 1.242800000000e-09 -1.438751784911e-01 + 1.252800000000e-09 -8.167803193011e-02 + 1.262800000000e-09 -6.491650819830e-03 + 1.272800000000e-09 7.199645640080e-02 + 1.282800000000e-09 1.428210702599e-01 + 1.292800000000e-09 1.952503068067e-01 + 1.302800000000e-09 2.210383591419e-01 + 1.312800000000e-09 2.161053858967e-01 + 1.322800000000e-09 1.810824519961e-01 + 1.332800000000e-09 1.206357215445e-01 + 1.342800000000e-09 4.228189281548e-02 + 1.352800000000e-09 -4.422696190055e-02 + 1.362800000000e-09 -1.272941136502e-01 + 1.372800000000e-09 -1.946206408677e-01 + 1.382800000000e-09 -2.355959178338e-01 + 1.392800000000e-09 -2.437640791397e-01 + 1.402800000000e-09 -2.179758037362e-01 + 1.412800000000e-09 -1.619214107266e-01 + 1.422800000000e-09 -8.282152409986e-02 + 1.432800000000e-09 9.643941640021e-03 + 1.442800000000e-09 1.036448152011e-01 + 1.452800000000e-09 1.857503968156e-01 + 1.462800000000e-09 2.431331277952e-01 + 1.472800000000e-09 2.666701248207e-01 + 1.482800000000e-09 2.528898813064e-01 + 1.492800000000e-09 2.040446972701e-01 + 1.502800000000e-09 1.268548961360e-01 + 1.512800000000e-09 3.087522185073e-02 + 1.522800000000e-09 -7.212167205012e-02 + 1.532800000000e-09 -1.681151545107e-01 + 1.542800000000e-09 -2.424134302561e-01 + 1.552800000000e-09 -2.831334740968e-01 + 1.562800000000e-09 -2.840196710190e-01 + 1.572800000000e-09 -2.453535488572e-01 + 1.582800000000e-09 -1.729640283560e-01 + 1.592800000000e-09 -7.616996910053e-02 + 1.602800000000e-09 3.340643323040e-02 + 1.612800000000e-09 1.416532408371e-01 + 1.622800000000e-09 2.325923328299e-01 + 1.632800000000e-09 2.916005393809e-01 + 1.642800000000e-09 3.093450353758e-01 + 1.652800000000e-09 2.837361654433e-01 + 1.662800000000e-09 2.191668825782e-01 + 1.672800000000e-09 1.245343155859e-01 + 1.682800000000e-09 1.131167659439e-02 + 1.692800000000e-09 -1.066963176945e-01 + 1.702800000000e-09 -2.129640497678e-01 + 1.712800000000e-09 -2.906582639549e-01 + 1.722800000000e-09 -3.272075425720e-01 + 1.732800000000e-09 -3.174494508733e-01 + 1.742800000000e-09 -2.637647814897e-01 + 1.752800000000e-09 -1.743055240699e-01 + 1.762800000000e-09 -6.042760327623e-02 + 1.772800000000e-09 6.446565691211e-02 + 1.782800000000e-09 1.839894278309e-01 + 1.792800000000e-09 2.798215509124e-01 + 1.802800000000e-09 3.361844416978e-01 + 1.812800000000e-09 3.444671254267e-01 + 1.822800000000e-09 3.047172979617e-01 + 1.832800000000e-09 2.236890609449e-01 + 1.842800000000e-09 1.123069911143e-01 + 1.852800000000e-09 -1.627008928154e-02 + 1.862800000000e-09 -1.462445923459e-01 + 1.872800000000e-09 -2.587062409495e-01 + 1.882800000000e-09 -3.352579308068e-01 + 1.892800000000e-09 -3.635848856536e-01 + 1.902800000000e-09 -3.405221523104e-01 + 1.912800000000e-09 -2.709016077932e-01 + 1.922800000000e-09 -1.650600701246e-01 + 1.932800000000e-09 -3.600540334472e-02 + 1.942800000000e-09 1.012073529594e-01 + 1.952800000000e-09 2.279408673934e-01 + 1.962800000000e-09 3.240089749085e-01 + 1.972800000000e-09 3.734060817495e-01 + 1.982800000000e-09 3.692692247948e-01 + 1.992800000000e-09 3.141744722065e-01 + 2.002800000000e-09 2.171376545412e-01 + 2.012800000000e-09 9.078127575214e-02 + 2.022800000000e-09 -5.030383196161e-02 + 2.032800000000e-09 -1.883417259332e-01 + 2.042800000000e-09 -3.023702214815e-01 + 2.052800000000e-09 -3.732533268466e-01 + 2.062800000000e-09 -3.900332845996e-01 + 2.072800000000e-09 -3.521123022363e-01 + 2.082800000000e-09 -2.667206779093e-01 + 2.092800000000e-09 -1.460681676105e-01 + 2.102800000000e-09 -4.458802488335e-03 + 2.112800000000e-09 1.414577224901e-01 + 2.122800000000e-09 2.709546007001e-01 + 2.132800000000e-09 3.626618306851e-01 + 2.142800000000e-09 4.015454764630e-01 + 2.152800000000e-09 3.831990840382e-01 + 2.162800000000e-09 3.124252409049e-01 + 2.172800000000e-09 2.004121313527e-01 + 2.182800000000e-09 6.137175054528e-02 + 2.192800000000e-09 -8.896242812385e-02 + 2.202800000000e-09 -2.308893526109e-01 + 2.212800000000e-09 -3.419026653314e-01 + 2.222800000000e-09 -4.031714378733e-01 + 2.232800000000e-09 -4.060771008908e-01 + 2.242800000000e-09 -3.526975228895e-01 + 2.252800000000e-09 -2.524091617817e-01 + 2.262800000000e-09 -1.189305147869e-01 + 2.272800000000e-09 3.241396735371e-02 + 2.282800000000e-09 1.833248621638e-01 + 2.292800000000e-09 3.112947165559e-01 + 2.302800000000e-09 3.946250134851e-01 + 2.312800000000e-09 4.202054691252e-01 + 2.322800000000e-09 3.864827655205e-01 + 2.332800000000e-09 3.006167611216e-01 + 2.342800000000e-09 1.754959797360e-01 + 2.352800000000e-09 2.629365844288e-02 + 2.362800000000e-09 -1.300248492494e-01 + 2.372800000000e-09 -2.719001696978e-01 + 2.382800000000e-09 -3.759402532125e-01 + 2.392800000000e-09 -4.247015148067e-01 + 2.402800000000e-09 -4.124585425180e-01 + 2.412800000000e-09 -3.438144170811e-01 + 2.422800000000e-09 -2.299997971873e-01 + 2.432800000000e-09 -8.582903732498e-02 + 2.442800000000e-09 7.247111492238e-02 + 2.452800000000e-09 2.248780042397e-01 + 2.462800000000e-09 3.475453276696e-01 + 2.472800000000e-09 4.194241681801e-01 + 2.482800000000e-09 4.301288544802e-01 + 2.492800000000e-09 3.808824169464e-01 + 2.502800000000e-09 2.809130703503e-01 + 2.512800000000e-09 1.444881125297e-01 + 2.522800000000e-09 -1.253107404764e-02 + 2.532800000000e-09 -1.718136371814e-01 + 2.542800000000e-09 -3.101711430307e-01 + 2.552800000000e-09 -4.040995956319e-01 + 2.562800000000e-09 -4.385091423663e-01 + 2.572800000000e-09 -4.106414144299e-01 + 2.582800000000e-09 -3.273628242038e-01 + 2.592800000000e-09 -2.015201499732e-01 + 2.602800000000e-09 -4.862981685419e-02 + 2.612800000000e-09 1.141055787451e-01 + 2.622800000000e-09 2.649300200356e-01 + 2.632800000000e-09 3.792064786424e-01 + 2.642800000000e-09 4.374865540866e-01 + 2.652800000000e-09 4.325059930459e-01 + 2.662800000000e-09 3.680573160250e-01 + 2.672800000000e-09 2.551745750266e-01 + 2.682800000000e-09 1.091526125364e-01 + 2.692800000000e-09 -5.355546829550e-02 + 2.702800000000e-09 -2.130861126566e-01 + 2.712800000000e-09 -3.449651596758e-01 + 2.722800000000e-09 -4.264347529644e-01 + 2.732800000000e-09 -4.453246873631e-01 + 2.742800000000e-09 -4.017703881649e-01 + 2.752800000000e-09 -3.045133473877e-01 + 2.762800000000e-09 -1.679324619323e-01 + 2.772800000000e-09 -8.285473917623e-03 + 2.782800000000e-09 1.562980215830e-01 + 2.792800000000e-09 3.025223359820e-01 + 2.802800000000e-09 4.056694288413e-01 + 2.812800000000e-09 4.488189593091e-01 + 2.822800000000e-09 4.278238297910e-01 + 2.832800000000e-09 3.487548987603e-01 + 2.842800000000e-09 2.242725875071e-01 + 2.852800000000e-09 7.032176828239e-02 + 2.862800000000e-09 -9.596326524693e-02 + 2.872800000000e-09 -2.530861487432e-01 + 2.882800000000e-09 -3.757688997666e-01 + 2.892800000000e-09 -4.430851625781e-01 + 2.902800000000e-09 -4.459871235921e-01 + 2.912800000000e-09 -3.869977109299e-01 + 2.922800000000e-09 -2.768445362651e-01 + 2.932800000000e-09 -1.310371492313e-01 + 2.942800000000e-09 3.380326263983e-02 + 2.952800000000e-09 1.981731247287e-01 + 2.962800000000e-09 3.374436612182e-01 + 2.972800000000e-09 4.275702968466e-01 + 2.982800000000e-09 4.546398656723e-01 + 2.992800000000e-09 4.175656358904e-01 + 3.002800000000e-09 3.246498271808e-01 + 3.012800000000e-09 1.898601853114e-01 + 3.022800000000e-09 2.941777533130e-02 + 3.032800000000e-09 -1.385872560314e-01 + 3.042800000000e-09 -2.910543834608e-01 + 3.052800000000e-09 -4.024756392776e-01 + 3.062800000000e-09 -4.541407828005e-01 + 3.072800000000e-09 -4.404859793210e-01 + 3.082800000000e-09 -3.667502422999e-01 + 3.092800000000e-09 -2.451126864370e-01 + 3.102800000000e-09 -9.169112840623e-02 + 3.112800000000e-09 7.644296819031e-02 + 3.122800000000e-09 2.382598453738e-01 + 3.132800000000e-09 3.682321395545e-01 + 3.142800000000e-09 4.438327127081e-01 + 3.152800000000e-09 4.544971555775e-01 + 3.162800000000e-09 4.019036812626e-01 + 3.172800000000e-09 2.959880137235e-01 + 3.182800000000e-09 1.520506025881e-01 + 3.192800000000e-09 -1.315519910156e-02 + 3.202800000000e-09 -1.806039929181e-01 + 3.212800000000e-09 -3.258740389523e-01 + 3.222800000000e-09 -4.240022196462e-01 + 3.232800000000e-09 -4.593665771975e-01 + 3.242800000000e-09 -4.295062528378e-01 + 3.252800000000e-09 -3.418340584706e-01 + 3.262800000000e-09 -2.099495221168e-01 + 3.272800000000e-09 -5.028016519775e-02 + 3.282800000000e-09 1.194061255892e-01 + 3.292800000000e-09 2.765061996897e-01 + 3.302800000000e-09 3.951294510824e-01 + 3.312800000000e-09 4.550423057885e-01 + 3.322800000000e-09 4.491100297740e-01 + 3.332800000000e-09 3.815336042676e-01 + 3.342800000000e-09 2.639074487548e-01 + 3.352800000000e-09 1.123085093664e-01 + 3.362800000000e-09 -5.625278034606e-02 + 3.372800000000e-09 -2.213316966911e-01 + 3.382800000000e-09 -3.574779324160e-01 + 3.392800000000e-09 -4.410358796373e-01 + 3.402800000000e-09 -4.597454536682e-01 + 3.412800000000e-09 -4.140555472770e-01 + 3.422800000000e-09 -3.131435745935e-01 + 3.432800000000e-09 -1.719981304477e-01 + 3.442800000000e-09 -7.456347188642e-03 + 3.452800000000e-09 1.619384444144e-01 + 3.462800000000e-09 3.121755973591e-01 + 3.472800000000e-09 4.176715471907e-01 + 3.482800000000e-09 4.611913340066e-01 + 3.492800000000e-09 4.388165552092e-01 + 3.502800000000e-09 3.569807819634e-01 + 3.512800000000e-09 2.287947345495e-01 + 3.522800000000e-09 7.075549543791e-02 + 3.532800000000e-09 -9.963983866421e-02 + 3.542800000000e-09 -2.603980993236e-01 + 3.552800000000e-09 -3.855076746848e-01 + 3.562800000000e-09 -4.535695748161e-01 + 3.572800000000e-09 -4.556556129987e-01 + 3.582800000000e-09 -3.946059920447e-01 + 3.592800000000e-09 -2.815021053120e-01 + 3.602800000000e-09 -1.322991860343e-01 + 3.612800000000e-09 3.601808641551e-02 + 3.622800000000e-09 2.035990719556e-01 + 3.632800000000e-09 3.452455022615e-01 + 3.642800000000e-09 4.363867750363e-01 + 3.652800000000e-09 4.630914134452e-01 + 3.662800000000e-09 4.245140308492e-01 + 3.672800000000e-09 3.292511388972e-01 + 3.682800000000e-09 1.916257681554e-01 + 3.692800000000e-09 2.822946085214e-02 + 3.702800000000e-09 -1.425823562409e-01 + 3.712800000000e-09 -2.972905787763e-01 + 3.722800000000e-09 -4.098819992646e-01 + 3.732800000000e-09 -4.614890618223e-01 + 3.742800000000e-09 -4.467473736716e-01 + 3.752800000000e-09 -3.711476731439e-01 + 3.762800000000e-09 -2.471518178539e-01 + 3.772800000000e-09 -9.121597851664e-02 + 3.782800000000e-09 7.935581494084e-02 + 3.792800000000e-09 2.432276793441e-01 + 3.802800000000e-09 3.744398520853e-01 + 3.812800000000e-09 4.504460355719e-01 + 3.822800000000e-09 4.605978322721e-01 + 3.832800000000e-09 4.064517126209e-01 + 3.842800000000e-09 2.983854674100e-01 + 3.852800000000e-09 1.520974657290e-01 + 3.862800000000e-09 -1.542197163856e-02 + 3.872800000000e-09 -1.849058045193e-01 + 3.882800000000e-09 -3.315523322791e-01 + 3.892800000000e-09 -4.300668075557e-01 + 3.902800000000e-09 -4.648618749959e-01 + 3.912800000000e-09 -4.337042390616e-01 + 3.922800000000e-09 -3.442461467300e-01 + 3.932800000000e-09 -2.103375026730e-01 + 3.942800000000e-09 -4.865237496286e-02 + 3.952800000000e-09 1.228517406447e-01 + 3.962800000000e-09 2.812812443106e-01 + 3.972800000000e-09 4.004170080205e-01 + 3.982800000000e-09 4.599602468471e-01 + 3.992800000000e-09 4.529787401664e-01 + 4.002800000000e-09 3.838930720043e-01 + 4.012800000000e-09 2.645113156922e-01 + 4.022800000000e-09 1.111413933258e-01 + 4.032800000000e-09 -5.904369625906e-02 + 4.042800000000e-09 -2.253780865912e-01 + 4.052800000000e-09 -3.621204181117e-01 + 4.062800000000e-09 -4.454702871460e-01 + 4.072800000000e-09 -4.633211212436e-01 + 4.082800000000e-09 -4.163339354597e-01 + 4.092800000000e-09 -3.138828283629e-01 + 4.102800000000e-09 -1.711617011204e-01 + 4.112800000000e-09 -5.164966849806e-03 + 4.122800000000e-09 1.654039270449e-01 + 4.132800000000e-09 3.162875187871e-01 + 4.142800000000e-09 4.217131510606e-01 + 4.152800000000e-09 4.645221221178e-01 + 4.162800000000e-09 4.410092636363e-01 + 4.172800000000e-09 3.578068388630e-01 + 4.182800000000e-09 2.282013674734e-01 + 4.192800000000e-09 6.884224994401e-02 + 4.202800000000e-09 -1.026484494940e-01 + 4.212800000000e-09 -2.640768493746e-01 + 4.222800000000e-09 -3.892297273708e-01 + 4.232800000000e-09 -4.567030651034e-01 + 4.242800000000e-09 -4.577720680306e-01 + 4.252800000000e-09 -3.954853391064e-01 + 4.262800000000e-09 -2.810865251218e-01 + 4.272800000000e-09 -1.306757065043e-01 + 4.282800000000e-09 3.865986007792e-02 + 4.292800000000e-09 2.069139383978e-01 + 4.302800000000e-09 3.486967401475e-01 + 4.312800000000e-09 4.393744821236e-01 + 4.322800000000e-09 4.651800546095e-01 + 4.332800000000e-09 4.254666247556e-01 + 4.342800000000e-09 3.290005218314e-01 + 4.352800000000e-09 1.902451970352e-01 + 4.362800000000e-09 2.588436539890e-02 + 4.372800000000e-09 -1.456096748375e-01 + 4.382800000000e-09 -3.005432042722e-01 + 4.392800000000e-09 -4.127928517400e-01 + 4.402800000000e-09 -4.635971684159e-01 + 4.412800000000e-09 -4.477982209741e-01 + 4.422800000000e-09 -3.710575970817e-01 + 4.432800000000e-09 -2.459758808486e-01 + 4.442800000000e-09 -8.911228571392e-02 + 4.452800000000e-09 8.214805330871e-02 + 4.462800000000e-09 2.463187122203e-01 + 4.472800000000e-09 3.773055761320e-01 + 4.482800000000e-09 4.525934808350e-01 + 4.492800000000e-09 4.617396586560e-01 + 4.502800000000e-09 4.064985469685e-01 + 4.512800000000e-09 2.973843830534e-01 + 4.522800000000e-09 1.501994802996e-01 + 4.532800000000e-09 -1.800290177413e-02 + 4.542800000000e-09 -1.878395686477e-01 + 4.552800000000e-09 -3.343687574671e-01 + 4.562800000000e-09 -4.322741189919e-01 + 4.572800000000e-09 -4.661384606847e-01 + 4.582800000000e-09 -4.339235055172e-01 + 4.592800000000e-09 -3.434358049598e-01 + 4.602800000000e-09 -2.086371583929e-01 + 4.612800000000e-09 -4.625937216720e-02 + 4.622800000000e-09 1.256572140803e-01 + 4.632800000000e-09 2.840816915916e-01 + 4.642800000000e-09 4.027245906015e-01 + 4.652800000000e-09 4.614061781875e-01 + 4.662800000000e-09 4.534007521510e-01 + 4.672800000000e-09 3.832900237663e-01 + 4.682800000000e-09 2.630017213252e-01 + 4.692800000000e-09 1.089205519723e-01 + 4.702800000000e-09 -6.172936557681e-02 + 4.712800000000e-09 -2.281613217844e-01 + 4.722800000000e-09 -3.645330909071e-01 + 4.732800000000e-09 -4.471007140221e-01 + 4.742800000000e-09 -4.639599776723e-01 + 4.752800000000e-09 -4.159485880480e-01 + 4.762800000000e-09 -3.125696922621e-01 + 4.772800000000e-09 -1.691105238657e-01 + 4.782800000000e-09 -2.603684691393e-03 + 4.792800000000e-09 1.681565785648e-01 + 4.802800000000e-09 3.187971992124e-01 + 4.812800000000e-09 4.235398875513e-01 + 4.822800000000e-09 4.653959670138e-01 + 4.832800000000e-09 4.408578641000e-01 + 4.842800000000e-09 3.567071498920e-01 + 4.852800000000e-09 2.263293305346e-01 + 4.862800000000e-09 6.641573344862e-02 + 4.872800000000e-09 -1.053527253629e-01 + 4.882800000000e-09 -2.666644619863e-01 + 4.892800000000e-09 -3.912516361012e-01 + 4.902800000000e-09 -4.578243819878e-01 + 4.912800000000e-09 -4.578712038233e-01 + 4.922800000000e-09 -3.946115597014e-01 + 4.932800000000e-09 -2.793969223462e-01 + 4.942800000000e-09 -1.283886851856e-01 + 4.952800000000e-09 4.129468878808e-02 + 4.962800000000e-09 2.095455727262e-01 + 4.972800000000e-09 3.508880546119e-01 + 4.982800000000e-09 4.407474295700e-01 + 4.992800000000e-09 4.655580392828e-01 + 5.002800000000e-09 4.248516107926e-01 + 5.012800000000e-09 3.275258318163e-01 + 5.022800000000e-09 1.881241751544e-01 + 5.032800000000e-09 2.334640539983e-02 + 5.042800000000e-09 -1.482594569894e-01 + 5.052800000000e-09 -3.028947855418e-01 + 5.062800000000e-09 -4.144329506743e-01 + 5.072800000000e-09 -4.642807432812e-01 + 5.082800000000e-09 -4.474781784948e-01 + 5.092800000000e-09 -3.698298860047e-01 + 5.102800000000e-09 -2.440329656709e-01 + 5.112800000000e-09 -8.668465228179e-02 + 5.122800000000e-09 8.478990663520e-02 + 5.132800000000e-09 2.487989655326e-01 + 5.142800000000e-09 3.791969853372e-01 + 5.152800000000e-09 4.535749055313e-01 + 5.162800000000e-09 4.617046939254e-01 + 5.172800000000e-09 4.055158563968e-01 + 5.182800000000e-09 2.956275486451e-01 + 5.192800000000e-09 1.478994149070e-01 + 5.202800000000e-09 -2.059728565443e-02 + 5.212800000000e-09 -1.903929305617e-01 + 5.222800000000e-09 -3.364642025147e-01 + 5.232800000000e-09 -4.335463782432e-01 + 5.242800000000e-09 -4.664188322976e-01 + 5.252800000000e-09 -4.332259315072e-01 + 5.262800000000e-09 -3.419053965202e-01 + 5.272800000000e-09 -2.064968458796e-01 + 5.282800000000e-09 -4.374455410251e-02 + 5.292800000000e-09 1.282529225505e-01 + 5.302800000000e-09 2.863656497143e-01 + 5.312800000000e-09 4.042957296256e-01 + 5.322800000000e-09 4.620226668407e-01 + 5.332800000000e-09 4.530225055951e-01 + 5.342800000000e-09 3.820210122439e-01 + 5.352800000000e-09 2.610412745402e-01 + 5.362800000000e-09 1.065072388411e-01 + 5.372800000000e-09 -6.433154158614e-02 + 5.382800000000e-09 -2.305923568364e-01 + 5.392800000000e-09 -3.663790185107e-01 + 5.402800000000e-09 -4.480499659093e-01 + 5.412800000000e-09 -4.639096199779e-01 + 5.422800000000e-09 -4.149597505314e-01 + 5.432800000000e-09 -3.108141933420e-01 + 5.442800000000e-09 -1.668253123199e-01 + 5.452800000000e-09 -3.618506917058e-05 + 5.462800000000e-09 1.706848746162e-01 + 5.472800000000e-09 3.208821592183e-01 + 5.482800000000e-09 4.248155012115e-01 + 5.492800000000e-09 4.656842586728e-01 + 5.502800000000e-09 4.401698595632e-01 + 5.512800000000e-09 3.551882433268e-01 + 5.522800000000e-09 2.242040299216e-01 + 5.532800000000e-09 6.392364495261e-02 + 5.542800000000e-09 -1.079281184276e-01 + 5.552800000000e-09 -2.689434840618e-01 + 5.562800000000e-09 -3.928360615698e-01 + 5.572800000000e-09 -4.584561441852e-01 + 5.582800000000e-09 -4.575024640068e-01 + 5.592800000000e-09 -3.933524099047e-01 + 5.602800000000e-09 -2.774502739918e-01 + 5.612800000000e-09 -1.259978089761e-01 + 5.622800000000e-09 4.387146236667e-02 + 5.632800000000e-09 2.119623366055e-01 + 5.642800000000e-09 3.527396510213e-01 + 5.652800000000e-09 4.417159722361e-01 + 5.662800000000e-09 4.655312934773e-01 + 5.672800000000e-09 4.238868057698e-01 + 5.682800000000e-09 3.257997045121e-01 + 5.692800000000e-09 1.858774400811e-01 + 5.702800000000e-09 2.081792963996e-02 + 5.712800000000e-09 -1.507648601345e-01 + 5.722800000000e-09 -3.049859138563e-01 + 5.732800000000e-09 -4.157414205873e-01 + 5.742800000000e-09 -4.646177672856e-01 + 5.752800000000e-09 -4.468460561784e-01 + 5.762800000000e-09 -3.683641495695e-01 + 5.772800000000e-09 -2.419536530265e-01 + 5.782800000000e-09 -8.423338895786e-02 + 5.792800000000e-09 8.734051009756e-02 + 5.802800000000e-09 2.510833651151e-01 + 5.812800000000e-09 3.808194458453e-01 + 5.822800000000e-09 4.542622083011e-01 + 5.832800000000e-09 4.613954514501e-01 + 5.842800000000e-09 4.043139536734e-01 + 5.852800000000e-09 2.937320090099e-01 + 5.862800000000e-09 1.455542382256e-01 + 5.872800000000e-09 -2.314020417758e-02 + 5.882800000000e-09 -1.928030453336e-01 + 5.892800000000e-09 -3.383452689609e-01 + 5.902800000000e-09 -4.345710650730e-01 + 5.912800000000e-09 -4.664586764265e-01 + 5.922800000000e-09 -4.323276804977e-01 + 5.932800000000e-09 -3.402385095793e-01 + 5.942800000000e-09 -2.042987193448e-01 + 5.952800000000e-09 -4.125400619105e-02 + 5.962800000000e-09 1.307444825352e-01 + 5.972800000000e-09 2.884788387204e-01 + 5.982800000000e-09 4.056585396031e-01 + 5.992800000000e-09 4.624292109601e-01 + 6.002800000000e-09 4.524626910091e-01 + 6.012800000000e-09 3.806213948167e-01 + 6.022800000000e-09 2.590158523765e-01 + 6.032800000000e-09 1.040990492803e-01 + 6.042800000000e-09 -6.685943597889e-02 + 6.052800000000e-09 -2.328882320460e-01 + 6.062800000000e-09 -3.680501055686e-01 + 6.072800000000e-09 -4.488158122305e-01 + 6.082800000000e-09 -4.636953739880e-01 + 6.092800000000e-09 -4.138476555227e-01 + 6.102800000000e-09 -3.089902030416e-01 + 6.112800000000e-09 -1.645320957257e-01 + 6.122800000000e-09 2.479430073602e-03 + 6.132800000000e-09 1.731064449962e-01 + 6.142800000000e-09 3.228204962359e-01 + 6.152800000000e-09 4.259304233965e-01 + 6.162800000000e-09 4.658245537500e-01 + 6.172800000000e-09 4.393666149908e-01 + 6.182800000000e-09 3.536001685615e-01 + 6.192800000000e-09 2.220623325123e-01 + 6.202800000000e-09 6.146754863650e-02 + 6.212800000000e-09 -1.104187102753e-01 + 6.222800000000e-09 -2.710994753613e-01 + 6.232800000000e-09 -3.942798137135e-01 + 6.242800000000e-09 -4.589546082066e-01 + 6.252800000000e-09 -4.570271858163e-01 + 6.262800000000e-09 -3.920258117712e-01 + 6.272800000000e-09 -2.754818645304e-01 + 6.282800000000e-09 -1.236311778869e-01 + 6.292800000000e-09 4.638093308446e-02 + 6.302800000000e-09 2.142761424956e-01 + 6.312800000000e-09 3.544683418697e-01 + 6.322800000000e-09 4.425636581446e-01 + 6.332800000000e-09 4.654046036130e-01 + 6.342800000000e-09 4.228555110850e-01 + 6.352800000000e-09 3.240474581992e-01 + 6.362800000000e-09 1.836462881643e-01 + 6.372800000000e-09 1.834379254607e-02 + 6.382800000000e-09 -1.531826480454e-01 + 6.392800000000e-09 -3.069681187252e-01 + 6.402800000000e-09 -4.169386978419e-01 + 6.412800000000e-09 -4.648601385627e-01 + 6.422800000000e-09 -4.461483781397e-01 + 6.432800000000e-09 -3.668690236288e-01 + 6.442800000000e-09 -2.398832576331e-01 + 6.452800000000e-09 -8.182651028951e-02 + 6.462800000000e-09 8.981578726653e-02 + 6.472800000000e-09 2.532706959222e-01 + 6.482800000000e-09 3.823390043543e-01 + 6.492800000000e-09 4.548594696647e-01 + 6.502800000000e-09 4.610222990239e-01 + 6.512800000000e-09 4.030809581009e-01 + 6.522800000000e-09 2.918402478760e-01 + 6.532800000000e-09 1.432454570748e-01 + 6.542800000000e-09 -2.561838176677e-02 + 6.552800000000e-09 -1.951270715808e-01 + 6.562800000000e-09 -3.401316661950e-01 + 6.572800000000e-09 -4.355094657575e-01 + 6.582800000000e-09 -4.664344412479e-01 + 6.592800000000e-09 -4.313952806947e-01 + 6.602800000000e-09 -3.385701641342e-01 + 6.612800000000e-09 -2.021304161624e-01 + 6.622800000000e-09 -3.882013596530e-02 + 6.632800000000e-09 1.331582369472e-01 + 6.642800000000e-09 2.905034651529e-01 + 6.652800000000e-09 4.069373290773e-01 + 6.662800000000e-09 4.627707890205e-01 + 6.672800000000e-09 4.518654250433e-01 + 6.682800000000e-09 3.792152609748e-01 + 6.692800000000e-09 2.570142276227e-01 + 6.702800000000e-09 1.017406186295e-01 + 6.712800000000e-09 -6.931675006813e-02 + 6.722800000000e-09 -2.351010976841e-01 + 6.732800000000e-09 -3.696390292449e-01 + 6.742800000000e-09 -4.495151037922e-01 + 6.752800000000e-09 -4.634399001437e-01 + 6.762800000000e-09 -4.127238575279e-01 + 6.772800000000e-09 -3.071839890543e-01 + 6.782800000000e-09 -1.622823550779e-01 + 6.792800000000e-09 4.930992643047e-03 + 6.802800000000e-09 1.754501732209e-01 + 6.812800000000e-09 3.246784121238e-01 + 6.822800000000e-09 4.269766906034e-01 + 6.832800000000e-09 4.659193307984e-01 + 6.842800000000e-09 4.385462590716e-01 + 6.852800000000e-09 3.520239117253e-01 + 6.862800000000e-09 2.199584430111e-01 + 6.872800000000e-09 5.906989544285e-02 + 6.882800000000e-09 -1.128361296039e-01 + 6.892800000000e-09 -2.731770556609e-01 + 6.902800000000e-09 -3.956532286312e-01 + 6.912800000000e-09 -4.594035096339e-01 + 6.922800000000e-09 -4.565297345580e-01 + 6.932800000000e-09 -3.907054931626e-01 + 6.942800000000e-09 -2.735457413010e-01 + 6.952800000000e-09 -1.213176025072e-01 + 6.962800000000e-09 4.882214803332e-02 + 6.972800000000e-09 2.165143613615e-01 + 6.982800000000e-09 3.561258670933e-01 + 6.992800000000e-09 4.433574595115e-01 + 7.002800000000e-09 4.652494141579e-01 + 7.012800000000e-09 4.218236582066e-01 + 7.022800000000e-09 3.223210559759e-01 + 7.032800000000e-09 1.814627588526e-01 + 7.042800000000e-09 1.593336129655e-02 + 7.052800000000e-09 -1.555272738532e-01 + 7.062800000000e-09 -3.088779556240e-01 + 7.072800000000e-09 -4.180771919395e-01 + 7.082800000000e-09 -4.651388409780e-01 + 7.092800000000e-09 -4.455763669783e-01 + 7.102800000000e-09 -3.654951698942e-01 + 7.112800000000e-09 -2.379101041011e-01 + 7.122800000000e-09 -7.948288991030e-02 + 7.132800000000e-09 9.226781858122e-02 + 7.142800000000e-09 2.554775822718e-01 + 7.152800000000e-09 3.839176733943e-01 + 7.162800000000e-09 4.555458785912e-01 + 7.172800000000e-09 4.607545558630e-01 + 7.182800000000e-09 4.019543655584e-01 + 7.192800000000e-09 2.900415527409e-01 + 7.202800000000e-09 1.410052811994e-01 + 7.212800000000e-09 -2.805902059700e-02 + 7.222800000000e-09 -1.974484979302e-01 + 7.232800000000e-09 -3.419506141139e-01 + 7.242800000000e-09 -4.365102070688e-01 + 7.252800000000e-09 -4.664926036495e-01 + 7.262800000000e-09 -4.305530853915e-01 + 7.272800000000e-09 -3.369872720877e-01 + 7.282800000000e-09 -2.000318255417e-01 + 7.292800000000e-09 -3.643289668601e-02 + 7.302800000000e-09 1.355528654940e-01 + 7.312800000000e-09 2.925387784549e-01 + 7.322800000000e-09 4.082549611902e-01 + 7.332800000000e-09 4.631732041512e-01 + 7.342800000000e-09 4.513416096651e-01 + 7.352800000000e-09 3.778846238545e-01 + 7.362800000000e-09 2.550800646235e-01 + 7.372800000000e-09 9.943358429974e-02 + 7.382800000000e-09 -7.174354259143e-02 + 7.392800000000e-09 -2.373076722811e-01 + 7.402800000000e-09 -3.712467618758e-01 + 7.412800000000e-09 -4.502554937389e-01 + 7.422800000000e-09 -4.632413789284e-01 + 7.432800000000e-09 -4.116643425653e-01 + 7.442800000000e-09 -3.054403320481e-01 + 7.452800000000e-09 -1.600853975466e-01 + 7.462800000000e-09 7.344882945771e-03 + 7.472800000000e-09 1.777750000275e-01 + 7.482800000000e-09 3.265386357026e-01 + 7.492800000000e-09 4.280463642810e-01 + 7.502800000000e-09 4.660552091904e-01 + 7.512800000000e-09 4.377782503164e-01 + 7.522800000000e-09 3.505034949327e-01 + 7.532800000000e-09 2.179063197448e-01 + 7.542800000000e-09 5.671394239587e-02 + 7.552800000000e-09 -1.152257628057e-01 + 7.562800000000e-09 -2.752440240978e-01 + 7.572800000000e-09 -3.970350346697e-01 + 7.582800000000e-09 -4.597372952697e-01 + 7.592800000000e-09 -4.557940216728e-01 + 7.602800000000e-09 -3.892065106878e-01 + 7.612800000000e-09 -2.715340400066e-01 + 7.622800000000e-09 -1.190322689766e-01 + 7.632800000000e-09 5.113494307809e-02 + 7.642800000000e-09 2.185392055905e-01 + 7.652800000000e-09 3.575188411831e-01 + 7.662800000000e-09 4.438820315032e-01 + 7.672800000000e-09 4.648614802257e-01 + 7.682800000000e-09 4.206250712968e-01 + 7.692800000000e-09 3.205126428852e-01 + 7.702800000000e-09 1.792885468332e-01 + 7.712800000000e-09 1.362045032823e-02 + 7.722800000000e-09 -1.576971873349e-01 + 7.732800000000e-09 -3.105608573277e-01 + 7.742800000000e-09 -4.189762813448e-01 + 7.752800000000e-09 -4.651302150631e-01 + 7.762800000000e-09 -4.447074553290e-01 + 7.772800000000e-09 -3.639298551199e-01 + 7.782800000000e-09 -2.358756628647e-01 + 7.792800000000e-09 -7.720970476313e-02 + 7.802800000000e-09 9.452585497623e-02 + 7.812800000000e-09 2.573922491217e-01 + 7.822800000000e-09 3.851545137962e-01 + 7.832800000000e-09 4.559006938369e-01 + 7.842800000000e-09 4.602138824713e-01 + 7.852800000000e-09 4.006461146698e-01 + 7.862800000000e-09 2.881714243932e-01 + 7.872800000000e-09 1.388081578262e-01 + 7.882800000000e-09 -3.034849936682e-02 + 7.892800000000e-09 -1.995286506554e-01 + 7.902800000000e-09 -3.434754355493e-01 + 7.912800000000e-09 -4.372157702973e-01 + 7.922800000000e-09 -4.663003904868e-01 + 7.932800000000e-09 -4.295372306231e-01 + 7.942800000000e-09 -3.353263104314e-01 + 7.952800000000e-09 -1.979567382298e-01 + 7.962800000000e-09 -3.416546522731e-02 + 7.972800000000e-09 1.377449058153e-01 + 7.982800000000e-09 2.943173352715e-01 + 7.992800000000e-09 4.093061094118e-01 + 8.002800000000e-09 4.633437696143e-01 + 8.012800000000e-09 4.506516182935e-01 + 8.022800000000e-09 3.764720018691e-01 + 8.032800000000e-09 2.531552317982e-01 + 8.042800000000e-09 9.722278857999e-02 + 8.052800000000e-09 -7.399807211244e-02 + 8.062800000000e-09 -2.392882377709e-01 + 8.072800000000e-09 -3.726118629890e-01 + 8.082800000000e-09 -4.507789345186e-01 + 8.092800000000e-09 -4.628827360892e-01 + 8.102800000000e-09 -4.105200179923e-01 + 8.112800000000e-09 -3.036947824373e-01 + 8.122800000000e-09 -1.579663313152e-01 + 8.132800000000e-09 9.610802490023e-03 + 8.142800000000e-09 1.798991918369e-01 + 8.152800000000e-09 3.281760299330e-01 + 8.162800000000e-09 4.289102527833e-01 + 8.172800000000e-09 4.660347838355e-01 + 8.182800000000e-09 4.369225450229e-01 + 8.192800000000e-09 3.489717481980e-01 + 8.202800000000e-09 2.159175089225e-01 + 8.212800000000e-09 5.448684232874e-02 + 8.222800000000e-09 -1.174353185928e-01 + 8.232800000000e-09 -2.771047745347e-01 + 8.242800000000e-09 -3.982198825161e-01 + 8.252800000000e-09 -4.600636000710e-01 + 8.262800000000e-09 -4.552568248015e-01 + 8.272800000000e-09 -3.879242229076e-01 + 8.282800000000e-09 -2.697030590792e-01 + 8.292800000000e-09 -1.168758525617e-01 + 8.302800000000e-09 5.338366944069e-02 + 8.312800000000e-09 2.205732795323e-01 + 8.322800000000e-09 3.589933183607e-01 + 8.332800000000e-09 4.445464460845e-01 + 8.342800000000e-09 4.646488983863e-01 + 8.352800000000e-09 4.196117780131e-01 + 8.362800000000e-09 3.188740682032e-01 + 8.372800000000e-09 1.772479122049e-01 + 8.382800000000e-09 1.139172259245e-02 + 8.392800000000e-09 -1.598413962457e-01 + 8.402800000000e-09 -3.122809413855e-01 + 8.412800000000e-09 -4.199692433012e-01 + 8.422800000000e-09 -4.652565250693e-01 + 8.432800000000e-09 -4.439936852692e-01 + 8.442800000000e-09 -3.625180526793e-01 + 8.452800000000e-09 -2.339731723419e-01 + 8.462800000000e-09 -7.503276446744e-02 + 8.472800000000e-09 9.673315187073e-02 + 8.482800000000e-09 2.593086444088e-01 + 8.492800000000e-09 3.864457691449e-01 + 8.502800000000e-09 4.563534630504e-01 + 8.512800000000e-09 4.597989997198e-01 + 8.522800000000e-09 3.994727095963e-01 + 8.532800000000e-09 2.864269749325e-01 + 8.542800000000e-09 1.367125154605e-01 + 8.552800000000e-09 -3.257061101665e-02 + 8.562800000000e-09 -2.015837054158e-01 + 8.572800000000e-09 -3.450215936952e-01 + 8.582800000000e-09 -4.379856864374e-01 + 8.592800000000e-09 -4.662047667963e-01 + 8.602800000000e-09 -4.286353841505e-01 + 8.612800000000e-09 -3.337805201738e-01 + 8.622800000000e-09 -1.959831765058e-01 + 8.632800000000e-09 -3.197535139364e-02 + 8.642800000000e-09 1.398919612761e-01 + 8.652800000000e-09 2.960898915869e-01 + 8.662800000000e-09 4.103915652083e-01 + 8.672800000000e-09 4.635831044197e-01 + 8.682800000000e-09 4.500536232522e-01 + 8.692800000000e-09 3.751610580261e-01 + 8.702800000000e-09 2.513280001238e-01 + 8.712800000000e-09 9.509424816947e-02 + 8.722800000000e-09 -7.619394690571e-02 + 8.732800000000e-09 -2.412413011971e-01 + 8.742800000000e-09 -3.739853967845e-01 + 8.752800000000e-09 -4.515924565928e-01 + 8.762800000000e-09 -4.631105045002e-01 + 8.772800000000e-09 -4.099078657425e-01 + 8.782800000000e-09 -3.022881356787e-01 + 8.792800000000e-09 -1.559709657708e-01 + 8.802800000000e-09 1.197871883668e-02 + 8.812800000000e-09 1.823383802375e-01 + 8.822800000000e-09 3.302931896988e-01 + 8.832800000000e-09 4.303354813804e-01 + 8.842800000000e-09 4.665677644958e-01 + 8.852800000000e-09 4.365369125085e-01 + 8.862800000000e-09 3.477682608091e-01 + 8.872800000000e-09 2.140787916860e-01 + 8.882800000000e-09 5.221959121681e-02 + 8.892800000000e-09 -1.198684724487e-01 + 8.902800000000e-09 -2.793413534399e-01 + 8.912800000000e-09 -3.998684941136e-01 + 8.922800000000e-09 -4.608641619409e-01 + 8.932800000000e-09 -4.551366954360e-01 + 8.942800000000e-09 -3.869494452863e-01 + 8.952800000000e-09 -2.680339955728e-01 + 8.962800000000e-09 -1.147213970221e-01 + 8.972800000000e-09 5.578828565161e-02 + 8.982800000000e-09 2.229000091014e-01 + 8.992800000000e-09 3.608499333585e-01 + 9.002800000000e-09 4.456161876907e-01 + 9.012800000000e-09 4.648043193361e-01 + 9.022800000000e-09 4.188812100313e-01 + 9.032800000000e-09 3.173997609688e-01 + 9.042800000000e-09 1.752362948116e-01 + 9.052800000000e-09 9.056465681611e-03 + 9.062800000000e-09 -1.622137306944e-01 + 9.072800000000e-09 -3.143159311894e-01 + 9.082800000000e-09 -4.213093287170e-01 + 9.092800000000e-09 -4.657067244379e-01 + 9.102800000000e-09 -4.435369681284e-01 + 9.112800000000e-09 -3.612657466889e-01 + 9.122800000000e-09 -2.321158296734e-01 + 9.132800000000e-09 -7.278408062904e-02 + 9.142800000000e-09 9.911940647607e-02 + 9.152800000000e-09 2.614857464959e-01 + 9.162800000000e-09 3.880351399399e-01 + 9.172800000000e-09 4.570914792723e-01 + 9.182800000000e-09 4.596160099208e-01 + 9.192800000000e-09 3.984500789332e-01 + 9.202800000000e-09 2.847359344551e-01 + 9.212800000000e-09 1.345691520248e-01 + 9.222800000000e-09 -3.493477546788e-02 + 9.232800000000e-09 -2.038558675102e-01 + 9.242800000000e-09 -3.468247587920e-01 + 9.252800000000e-09 -4.390079871600e-01 + 9.262800000000e-09 -4.663194600172e-01 + 9.272800000000e-09 -4.278753653082e-01 + 9.282800000000e-09 -3.322927220008e-01 + 9.292800000000e-09 -1.939790513442e-01 + 9.302800000000e-09 -2.967083863064e-02 + 9.312800000000e-09 1.422226170142e-01 + 9.322800000000e-09 2.980872016207e-01 + 9.332800000000e-09 4.117039503009e-01 + 9.342800000000e-09 4.640154495192e-01 + 9.352800000000e-09 4.495896153609e-01 + 9.362800000000e-09 3.739102894832e-01 + 9.372800000000e-09 2.494820017508e-01 + 9.382800000000e-09 9.287158089721e-02 + 9.392800000000e-09 -7.854774721359e-02 + 9.402800000000e-09 -2.433934935986e-01 + 9.412800000000e-09 -3.755654262564e-01 + 9.422800000000e-09 -4.523306020081e-01 + 9.432800000000e-09 -4.629318121162e-01 + 9.442800000000e-09 -4.088944681154e-01 + 9.452800000000e-09 -3.006131399513e-01 + 9.462800000000e-09 -1.538538033887e-01 + 9.472800000000e-09 1.431016572078e-02 + 9.482800000000e-09 1.845853524582e-01 + 9.492800000000e-09 3.320901068328e-01 + 9.502800000000e-09 4.313682685653e-01 + 9.512800000000e-09 4.667007219230e-01 + 9.522800000000e-09 4.357990527528e-01 + 9.532800000000e-09 3.463047619787e-01 + 9.542800000000e-09 2.121011810256e-01 + 9.552800000000e-09 4.994574015244e-02 + 9.562800000000e-09 -1.221755250572e-01 + 9.572800000000e-09 -2.813345390121e-01 + 9.582800000000e-09 -4.011976939691e-01 + 9.592800000000e-09 -4.613241613861e-01 + 9.602800000000e-09 -4.547046959353e-01 + 9.612800000000e-09 -3.857312315368e-01 + 9.622800000000e-09 -2.662188447241e-01 + 9.632800000000e-09 -1.125308418547e-01 + 9.642800000000e-09 5.811613266870e-02 + 9.652800000000e-09 2.250456324980e-01 + 9.662800000000e-09 3.624489148595e-01 + 9.672800000000e-09 4.463975513791e-01 + 9.682800000000e-09 4.646852332412e-01 + 9.692800000000e-09 4.179266651016e-01 + 9.702800000000e-09 3.154839613510e-01 + 9.712800000000e-09 1.725777900289e-01 + 9.722800000000e-09 6.253628647848e-03 + 9.732800000000e-09 -1.647794164684e-01 + 9.742800000000e-09 -3.162350021308e-01 + 9.752800000000e-09 -4.222435254205e-01 + 9.762800000000e-09 -4.655351629575e-01 + 9.772800000000e-09 -4.423393851837e-01 + 9.782800000000e-09 -3.592595442771e-01 + 9.792800000000e-09 -2.295868870697e-01 + 9.802800000000e-09 -7.001555229933e-02 + 9.812800000000e-09 1.018172202550e-01 + 9.822800000000e-09 2.637151159726e-01 + 9.832800000000e-09 3.894058063411e-01 + 9.842800000000e-09 4.573804246669e-01 + 9.852800000000e-09 4.588302271332e-01 + 9.862800000000e-09 3.967598241271e-01 + 9.872800000000e-09 2.824022778434e-01 + 9.882800000000e-09 1.318801482237e-01 + 9.892800000000e-09 -3.769121150598e-02 + 9.902800000000e-09 -2.063128036268e-01 + 9.912800000000e-09 -3.485693523865e-01 + 9.922800000000e-09 -4.397407193722e-01 + 9.932800000000e-09 -4.659661993700e-01 + 9.942800000000e-09 -4.265430171005e-01 + 9.952800000000e-09 -3.302090287242e-01 + 9.962800000000e-09 -1.914306825298e-01 + 9.972800000000e-09 -2.692694651887e-02 + 9.982800000000e-09 1.448342393448e-01 + 9.992800000000e-09 3.001601116225e-01 + 1.000000000000e-08 3.874460036265e-01 diff --git a/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_13/conditions.yaml b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_13/conditions.yaml new file mode 100644 index 00000000..57678b46 --- /dev/null +++ b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_13/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/LC_Oscillator/xschem/simulations/schematic/LC_Oscillator.spice +N: 13 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: ff +filename: LC_Oscillator_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_13 +temperature: '27' +vdd: '1.2' diff --git a/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_14/.spiceinit b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_14/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_14/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_14/LC_Oscillator.sym b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_14/LC_Oscillator.sym new file mode 100644 index 00000000..e632b156 --- /dev/null +++ b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_14/LC_Oscillator.sym @@ -0,0 +1,27 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 70 -20 90 -20 {} +L 4 70 20 90 20 {} +L 7 20 70 20 90 {} +L 7 -20 70 -20 90 {} +B 5 87.5 -22.5 92.5 -17.5 {name=Voplus dir=out} +B 5 17.5 87.5 22.5 92.5 {name=vdd dir=inout} +B 5 -22.5 87.5 -17.5 92.5 {name=gnd dir=inout} +B 5 87.5 17.5 92.5 22.5 {name=Vominus dir=out} +A 4 -1.666666666666714 1.666666666666714 71.68604389202189 287.5924245621816 360 {} +A 4 -30 27.5 40.69705149024927 42.51044707800085 94.97910584399833 {} +A 4 30 -27.5 40.69705149024927 222.5104470780009 94.97910584399833 {} +T {@symname} -40.5 -56 0 0 0.1 0.1 {} +T {@name} -40 -47 0 0 0.1 0.1 { +} +T {Voplus} 65 -24 0 1 0.2 0.2 {} +T {vdd} 5 64 2 1 0.2 0.2 {} +T {gnd} -35 64 2 1 0.2 0.2 {} +T {Vominus} 65 16 0 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_14/LC_Oscillator_tb.sch b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_14/LC_Oscillator_tb.sch new file mode 100644 index 00000000..e2272eb3 --- /dev/null +++ b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_14/LC_Oscillator_tb.sch @@ -0,0 +1,57 @@ +v {xschem version=3.4.8RC file_version=1.3} +G {} +K {} +V {} +S {} +F {} +E {} +N 1570 -1060 1570 -1030 {lab=VDD} +N 1570 -970 1570 -940 {lab=GND} +N 1270 -1050 1270 -1030 {lab=GND} +N 1230 -1060 1230 -1030 {lab=VDD} +N 1140 -920 1160 -920 {lab=Voplus} +N 1140 -960 1160 -960 {lab=Vominus} +C {code_shown.sym} 440 -1140 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write LC_Oscillator_tb.raw +set appendwrite +tran 10p 10n 160p +save all + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_14/LC_Oscillator_tb_14.data vo_diff +quit + +.endc +"} +C {vsource.sym} 1570 -1000 0 0 {name=V1 value=1.6 savecurrent=false} +C {gnd.sym} 1570 -940 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1570 -1060 0 0 {name=p2 sig_type=std_logic lab=VDD} +C {opin.sym} 1140 -920 2 0 {name=p6 lab=Voplus} +C {gnd.sym} 1270 -1050 2 0 {name=l3 lab=GND} +C {opin.sym} 1140 -960 0 1 {name=p9 lab=Vominus} +C {LC_Oscillator.sym} 1250 -940 2 0 {name=x1} +C {devices/code_shown.sym} 450 -640 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_ff + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/LC_Oscillator/xschem/simulations/schematic/LC_Oscillator.spice + +.temp 27 +" +} +C {iopin.sym} 1230 -1060 2 0 {name=p1 lab=VDD} diff --git a/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_14/conditions.yaml b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_14/conditions.yaml new file mode 100644 index 00000000..044497be --- /dev/null +++ b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_14/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/LC_Oscillator/xschem/simulations/schematic/LC_Oscillator.spice +N: 14 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: ff +filename: LC_Oscillator_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_14 +temperature: '27' +vdd: '1.6' diff --git a/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_15/.spiceinit b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_15/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_15/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_15/LC_Oscillator.sym b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_15/LC_Oscillator.sym new file mode 100644 index 00000000..e632b156 --- /dev/null +++ b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_15/LC_Oscillator.sym @@ -0,0 +1,27 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 70 -20 90 -20 {} +L 4 70 20 90 20 {} +L 7 20 70 20 90 {} +L 7 -20 70 -20 90 {} +B 5 87.5 -22.5 92.5 -17.5 {name=Voplus dir=out} +B 5 17.5 87.5 22.5 92.5 {name=vdd dir=inout} +B 5 -22.5 87.5 -17.5 92.5 {name=gnd dir=inout} +B 5 87.5 17.5 92.5 22.5 {name=Vominus dir=out} +A 4 -1.666666666666714 1.666666666666714 71.68604389202189 287.5924245621816 360 {} +A 4 -30 27.5 40.69705149024927 42.51044707800085 94.97910584399833 {} +A 4 30 -27.5 40.69705149024927 222.5104470780009 94.97910584399833 {} +T {@symname} -40.5 -56 0 0 0.1 0.1 {} +T {@name} -40 -47 0 0 0.1 0.1 { +} +T {Voplus} 65 -24 0 1 0.2 0.2 {} +T {vdd} 5 64 2 1 0.2 0.2 {} +T {gnd} -35 64 2 1 0.2 0.2 {} +T {Vominus} 65 16 0 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_15/LC_Oscillator_tb.sch b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_15/LC_Oscillator_tb.sch new file mode 100644 index 00000000..782eef46 --- /dev/null +++ b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_15/LC_Oscillator_tb.sch @@ -0,0 +1,57 @@ +v {xschem version=3.4.8RC file_version=1.3} +G {} +K {} +V {} +S {} +F {} +E {} +N 1570 -1060 1570 -1030 {lab=VDD} +N 1570 -970 1570 -940 {lab=GND} +N 1270 -1050 1270 -1030 {lab=GND} +N 1230 -1060 1230 -1030 {lab=VDD} +N 1140 -920 1160 -920 {lab=Voplus} +N 1140 -960 1160 -960 {lab=Vominus} +C {code_shown.sym} 440 -1140 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write LC_Oscillator_tb.raw +set appendwrite +tran 10p 10n 160p +save all + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_15/LC_Oscillator_tb_15.data vo_diff +quit + +.endc +"} +C {vsource.sym} 1570 -1000 0 0 {name=V1 value=0.8 savecurrent=false} +C {gnd.sym} 1570 -940 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1570 -1060 0 0 {name=p2 sig_type=std_logic lab=VDD} +C {opin.sym} 1140 -920 2 0 {name=p6 lab=Voplus} +C {gnd.sym} 1270 -1050 2 0 {name=l3 lab=GND} +C {opin.sym} 1140 -960 0 1 {name=p9 lab=Vominus} +C {LC_Oscillator.sym} 1250 -940 2 0 {name=x1} +C {devices/code_shown.sym} 450 -640 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_ss + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/LC_Oscillator/xschem/simulations/schematic/LC_Oscillator.spice + +.temp 27 +" +} +C {iopin.sym} 1230 -1060 2 0 {name=p1 lab=VDD} diff --git a/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_15/conditions.yaml b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_15/conditions.yaml new file mode 100644 index 00000000..bd8fcce6 --- /dev/null +++ b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_15/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/LC_Oscillator/xschem/simulations/schematic/LC_Oscillator.spice +N: 15 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: ss +filename: LC_Oscillator_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_15 +temperature: '27' +vdd: '0.8' diff --git a/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_16/.spiceinit b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_16/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_16/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_16/LC_Oscillator.sym b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_16/LC_Oscillator.sym new file mode 100644 index 00000000..e632b156 --- /dev/null +++ b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_16/LC_Oscillator.sym @@ -0,0 +1,27 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 70 -20 90 -20 {} +L 4 70 20 90 20 {} +L 7 20 70 20 90 {} +L 7 -20 70 -20 90 {} +B 5 87.5 -22.5 92.5 -17.5 {name=Voplus dir=out} +B 5 17.5 87.5 22.5 92.5 {name=vdd dir=inout} +B 5 -22.5 87.5 -17.5 92.5 {name=gnd dir=inout} +B 5 87.5 17.5 92.5 22.5 {name=Vominus dir=out} +A 4 -1.666666666666714 1.666666666666714 71.68604389202189 287.5924245621816 360 {} +A 4 -30 27.5 40.69705149024927 42.51044707800085 94.97910584399833 {} +A 4 30 -27.5 40.69705149024927 222.5104470780009 94.97910584399833 {} +T {@symname} -40.5 -56 0 0 0.1 0.1 {} +T {@name} -40 -47 0 0 0.1 0.1 { +} +T {Voplus} 65 -24 0 1 0.2 0.2 {} +T {vdd} 5 64 2 1 0.2 0.2 {} +T {gnd} -35 64 2 1 0.2 0.2 {} +T {Vominus} 65 16 0 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_16/LC_Oscillator_tb.sch b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_16/LC_Oscillator_tb.sch new file mode 100644 index 00000000..cff378d0 --- /dev/null +++ b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_16/LC_Oscillator_tb.sch @@ -0,0 +1,57 @@ +v {xschem version=3.4.8RC file_version=1.3} +G {} +K {} +V {} +S {} +F {} +E {} +N 1570 -1060 1570 -1030 {lab=VDD} +N 1570 -970 1570 -940 {lab=GND} +N 1270 -1050 1270 -1030 {lab=GND} +N 1230 -1060 1230 -1030 {lab=VDD} +N 1140 -920 1160 -920 {lab=Voplus} +N 1140 -960 1160 -960 {lab=Vominus} +C {code_shown.sym} 440 -1140 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write LC_Oscillator_tb.raw +set appendwrite +tran 10p 10n 160p +save all + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_16/LC_Oscillator_tb_16.data vo_diff +quit + +.endc +"} +C {vsource.sym} 1570 -1000 0 0 {name=V1 value=1.2 savecurrent=false} +C {gnd.sym} 1570 -940 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1570 -1060 0 0 {name=p2 sig_type=std_logic lab=VDD} +C {opin.sym} 1140 -920 2 0 {name=p6 lab=Voplus} +C {gnd.sym} 1270 -1050 2 0 {name=l3 lab=GND} +C {opin.sym} 1140 -960 0 1 {name=p9 lab=Vominus} +C {LC_Oscillator.sym} 1250 -940 2 0 {name=x1} +C {devices/code_shown.sym} 450 -640 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_ss + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/LC_Oscillator/xschem/simulations/schematic/LC_Oscillator.spice + +.temp 27 +" +} +C {iopin.sym} 1230 -1060 2 0 {name=p1 lab=VDD} diff --git a/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_16/LC_Oscillator_tb_16.data b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_16/LC_Oscillator_tb_16.data new file mode 100644 index 00000000..5e709abb --- /dev/null +++ b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_16/LC_Oscillator_tb_16.data @@ -0,0 +1,985 @@ + 1.628000000000e-10 7.664266602321e-03 + 1.728000000000e-10 -6.974544317808e-03 + 1.828000000000e-10 -2.114756544424e-02 + 1.928000000000e-10 -3.284406071824e-02 + 2.028000000000e-10 -4.032773586307e-02 + 2.128000000000e-10 -4.239749434108e-02 + 2.228000000000e-10 -3.857776873058e-02 + 2.328000000000e-10 -2.920629589559e-02 + 2.428000000000e-10 -1.540702159534e-02 + 2.528000000000e-10 1.041489081761e-03 + 2.628000000000e-10 1.792575498155e-02 + 2.728000000000e-10 3.288429795724e-02 + 2.828000000000e-10 4.373560897033e-02 + 2.928000000000e-10 4.880204848639e-02 + 3.028000000000e-10 4.717348869070e-02 + 3.128000000000e-10 3.885903693432e-02 + 3.228000000000e-10 2.480445762043e-02 + 3.328000000000e-10 6.781733187206e-03 + 3.428000000000e-10 -1.282614909074e-02 + 3.528000000000e-10 -3.132174567024e-02 + 3.628000000000e-10 -4.605713095944e-02 + 3.728000000000e-10 -5.481746903823e-02 + 3.828000000000e-10 -5.615982047639e-02 + 3.928000000000e-10 -4.965188382529e-02 + 4.028000000000e-10 -3.595215720792e-02 + 4.128000000000e-10 -1.673691971372e-02 + 4.228000000000e-10 5.500696985542e-03 + 4.328000000000e-10 2.775268286082e-02 + 4.428000000000e-10 4.688247109391e-02 + 4.528000000000e-10 6.006744662961e-02 + 4.628000000000e-10 6.523356378563e-02 + 4.728000000000e-10 6.139139325967e-02 + 4.828000000000e-10 4.880039629003e-02 + 4.928000000000e-10 2.894364073750e-02 + 5.028000000000e-10 4.345050716460e-03 + 5.128000000000e-10 -2.172983093548e-02 + 5.228000000000e-10 -4.567150116468e-02 + 5.328000000000e-10 -6.401176797791e-02 + 5.428000000000e-10 -7.394670918179e-02 + 5.528000000000e-10 -7.379265490690e-02 + 5.628000000000e-10 -6.326356189785e-02 + 5.728000000000e-10 -4.351880784432e-02 + 5.828000000000e-10 -1.701020498036e-02 + 5.928000000000e-10 1.281021226036e-02 + 6.028000000000e-10 4.188974078105e-02 + 6.128000000000e-10 6.608721197710e-02 + 6.228000000000e-10 8.177702060135e-02 + 6.328000000000e-10 8.644051155215e-02 + 6.428000000000e-10 7.908925464962e-02 + 6.528000000000e-10 6.041535027894e-02 + 6.628000000000e-10 3.267884173800e-02 + 6.728000000000e-10 -5.798664902144e-04 + 6.828000000000e-10 -3.493547918858e-02 + 6.928000000000e-10 -6.559099235606e-02 + 7.028000000000e-10 -8.803481909377e-02 + 7.128000000000e-10 -9.876817336701e-02 + 7.228000000000e-10 -9.591140350770e-02 + 7.328000000000e-10 -7.950578518610e-02 + 7.428000000000e-10 -5.147009152942e-02 + 7.528000000000e-10 -1.531684173757e-02 + 7.628000000000e-10 2.424811957827e-02 + 7.728000000000e-10 6.179110201947e-02 + 7.828000000000e-10 9.187469174175e-02 + 7.928000000000e-10 1.099516053685e-01 + 8.028000000000e-10 1.130739487372e-01 + 8.128000000000e-10 1.003962549740e-01 + 8.228000000000e-10 7.330798518648e-02 + 8.328000000000e-10 3.512423867735e-02 + 8.428000000000e-10 -9.274625875989e-03 + 8.528000000000e-10 -5.390697141546e-02 + 8.628000000000e-10 -9.244789408516e-02 + 8.728000000000e-10 -1.191674535876e-01 + 8.828000000000e-10 -1.298510044272e-01 + 8.928000000000e-10 -1.225344169196e-01 + 9.028000000000e-10 -9.786275760819e-02 + 9.128000000000e-10 -5.881616105577e-02 + 9.228000000000e-10 -1.029207547875e-02 + 9.328000000000e-10 4.132897369431e-02 + 9.428000000000e-10 8.888651327740e-02 + 9.528000000000e-10 1.253889724911e-01 + 9.628000000000e-10 1.452093609654e-01 + 9.728000000000e-10 1.450682052188e-01 + 9.828000000000e-10 1.245781704535e-01 + 9.928000000000e-10 8.617600784123e-02 + 1.002800000000e-09 3.463202806769e-02 + 1.012800000000e-09 -2.344510579714e-02 + 1.022800000000e-09 -8.020764363171e-02 + 1.032800000000e-09 -1.274658508810e-01 + 1.042800000000e-09 -1.580404244940e-01 + 1.052800000000e-09 -1.670300971805e-01 + 1.062800000000e-09 -1.527069844375e-01 + 1.072800000000e-09 -1.167804640828e-01 + 1.082800000000e-09 -6.370309413465e-02 + 1.092800000000e-09 -8.920953624081e-05 + 1.102800000000e-09 6.568216528916e-02 + 1.112800000000e-09 1.243418998840e-01 + 1.122800000000e-09 1.670422612764e-01 + 1.132800000000e-09 1.870694724273e-01 + 1.142800000000e-09 1.811158310476e-01 + 1.152800000000e-09 1.497497435913e-01 + 1.162800000000e-09 9.693741157335e-02 + 1.172800000000e-09 2.922969866950e-02 + 1.182800000000e-09 -4.473844788247e-02 + 1.192800000000e-09 -1.148677792510e-01 + 1.202800000000e-09 -1.707679977764e-01 + 1.212800000000e-09 -2.037283948173e-01 + 1.222800000000e-09 -2.084426151566e-01 + 1.232800000000e-09 -1.839595240519e-01 + 1.242800000000e-09 -1.335312401679e-01 + 1.252800000000e-09 -6.353355561581e-02 + 1.262800000000e-09 1.733064411967e-02 + 1.272800000000e-09 9.843321332346e-02 + 1.282800000000e-09 1.680706361495e-01 + 1.292800000000e-09 2.154092918623e-01 + 1.302800000000e-09 2.329029047876e-01 + 1.312800000000e-09 2.178001862749e-01 + 1.322800000000e-09 1.722265042865e-01 + 1.332800000000e-09 1.021734355209e-01 + 1.342800000000e-09 1.629843635529e-02 + 1.352800000000e-09 -7.455684506767e-02 + 1.362800000000e-09 -1.577576228446e-01 + 1.372800000000e-09 -2.205495839327e-01 + 1.382800000000e-09 -2.529161809240e-01 + 1.392800000000e-09 -2.497775003305e-01 + 1.402800000000e-09 -2.117131876971e-01 + 1.412800000000e-09 -1.440955086652e-01 + 1.422800000000e-09 -5.542154472344e-02 + 1.432800000000e-09 4.345076476820e-02 + 1.442800000000e-09 1.393839360236e-01 + 1.452800000000e-09 2.180496048963e-01 + 1.462800000000e-09 2.668397184268e-01 + 1.472800000000e-09 2.780066242598e-01 + 1.482800000000e-09 2.501641977977e-01 + 1.492800000000e-09 1.876561957236e-01 + 1.502800000000e-09 9.875006011794e-02 + 1.512800000000e-09 -5.784532915443e-03 + 1.522800000000e-09 -1.127606803276e-01 + 1.532800000000e-09 -2.068242434734e-01 + 1.542800000000e-09 -2.730320121326e-01 + 1.552800000000e-09 -3.006975387053e-01 + 1.562800000000e-09 -2.858568178283e-01 + 1.572800000000e-09 -2.313000787818e-01 + 1.582800000000e-09 -1.448704090382e-01 + 1.592800000000e-09 -3.727941563281e-02 + 1.602800000000e-09 7.849587750230e-02 + 1.612800000000e-09 1.867055607283e-01 + 1.622800000000e-09 2.705299317491e-01 + 1.632800000000e-09 3.162286206003e-01 + 1.642800000000e-09 3.168171516729e-01 + 1.652800000000e-09 2.731101042104e-01 + 1.662800000000e-09 1.920723516103e-01 + 1.672800000000e-09 8.428100970002e-02 + 1.682800000000e-09 -3.753673335121e-02 + 1.692800000000e-09 -1.578099622917e-01 + 1.702800000000e-09 -2.585369979336e-01 + 1.712800000000e-09 -3.232027324066e-01 + 1.722800000000e-09 -3.414591046118e-01 + 1.732800000000e-09 -3.114930350654e-01 + 1.742800000000e-09 -2.388176747508e-01 + 1.752800000000e-09 -1.336964090077e-01 + 1.762800000000e-09 -8.733483456430e-03 + 1.772800000000e-09 1.210033381107e-01 + 1.782800000000e-09 2.371327506751e-01 + 1.792800000000e-09 3.208920476278e-01 + 1.802800000000e-09 3.584092949943e-01 + 1.812800000000e-09 3.446391005727e-01 + 1.822800000000e-09 2.832016365155e-01 + 1.832800000000e-09 1.836883050945e-01 + 1.842800000000e-09 5.862426064238e-02 + 1.852800000000e-09 -7.750082053694e-02 + 1.862800000000e-09 -2.066774971787e-01 + 1.872800000000e-09 -3.086857481854e-01 + 1.882800000000e-09 -3.663914903807e-01 + 1.892800000000e-09 -3.710558466007e-01 + 1.902800000000e-09 -3.237924309806e-01 + 1.912800000000e-09 -2.328813386425e-01 + 1.922800000000e-09 -1.106381337489e-01 + 1.932800000000e-09 2.878548575196e-02 + 1.942800000000e-09 1.682086866608e-01 + 1.952800000000e-09 2.868728145995e-01 + 1.962800000000e-09 3.649358996569e-01 + 1.972800000000e-09 3.897572147684e-01 + 1.982800000000e-09 3.591861155467e-01 + 1.992800000000e-09 2.796352916362e-01 + 2.002800000000e-09 1.630170370466e-01 + 2.012800000000e-09 2.337676217078e-02 + 2.022800000000e-09 -1.231036509093e-01 + 2.032800000000e-09 -2.560309418385e-01 + 2.042800000000e-09 -3.536903114402e-01 + 2.052800000000e-09 -3.996020287209e-01 + 2.062800000000e-09 -3.878314304887e-01 + 2.072800000000e-09 -3.224535388574e-01 + 2.082800000000e-09 -2.142870553244e-01 + 2.092800000000e-09 -7.737119699997e-02 + 2.102800000000e-09 7.287682892676e-02 + 2.112800000000e-09 2.171249553235e-01 + 2.122800000000e-09 3.327777596836e-01 + 2.132800000000e-09 4.000610008765e-01 + 2.142800000000e-09 4.088456594564e-01 + 2.152800000000e-09 3.602345539433e-01 + 2.162800000000e-09 2.633195865932e-01 + 2.172800000000e-09 1.318307185607e-01 + 2.182800000000e-09 -1.912070909136e-02 + 2.192800000000e-09 -1.715400835152e-01 + 2.202800000000e-09 -3.029500586447e-01 + 2.212800000000e-09 -3.911015042984e-01 + 2.222800000000e-09 -4.216049696389e-01 + 2.232800000000e-09 -3.919070066363e-01 + 2.242800000000e-09 -3.088411752976e-01 + 2.252800000000e-09 -1.853441272068e-01 + 2.262800000000e-09 -3.656214986606e-02 + 2.272800000000e-09 1.207511756771e-01 + 2.282800000000e-09 2.650950743176e-01 + 2.292800000000e-09 3.727807105463e-01 + 2.302800000000e-09 4.254246312199e-01 + 2.312800000000e-09 4.163184157729e-01 + 2.322800000000e-09 3.496649503580e-01 + 2.332800000000e-09 2.368645519684e-01 + 2.342800000000e-09 9.291994465891e-02 + 2.352800000000e-09 -6.612811890161e-02 + 2.362800000000e-09 -2.202857443065e-01 + 2.372800000000e-09 -3.455061869126e-01 + 2.382800000000e-09 -4.201535242629e-01 + 2.392800000000e-09 -4.329865849042e-01 + 2.402800000000e-09 -3.848495066174e-01 + 2.412800000000e-09 -2.851617245890e-01 + 2.422800000000e-09 -1.485014539146e-01 + 2.432800000000e-09 9.324769976178e-03 + 2.442800000000e-09 1.699782736860e-01 + 2.452800000000e-09 3.100451579339e-01 + 2.462800000000e-09 4.056736387126e-01 + 2.472800000000e-09 4.411426430852e-01 + 2.482800000000e-09 4.133919248179e-01 + 2.492800000000e-09 3.292952328390e-01 + 2.502800000000e-09 2.022993783505e-01 + 2.512800000000e-09 4.833020548908e-02 + 2.522800000000e-09 -1.155888851000e-01 + 2.532800000000e-09 -2.674485143838e-01 + 2.542800000000e-09 -3.823404871336e-01 + 2.552800000000e-09 -4.404964157852e-01 + 2.562800000000e-09 -4.344628836688e-01 + 2.572800000000e-09 -3.682243644064e-01 + 2.582800000000e-09 -2.534237131145e-01 + 2.592800000000e-09 -1.057595251374e-01 + 2.602800000000e-09 5.838261382967e-02 + 2.612800000000e-09 2.187978784978e-01 + 2.622800000000e-09 3.506394600823e-01 + 2.632800000000e-09 4.310000029342e-01 + 2.642800000000e-09 4.476945622936e-01 + 2.652800000000e-09 4.011687573087e-01 + 2.662800000000e-09 3.008573660759e-01 + 2.672800000000e-09 1.617585012236e-01 + 2.682800000000e-09 1.611849622618e-04 + 2.692800000000e-09 -1.655098486753e-01 + 2.702800000000e-09 -3.114104966265e-01 + 2.712800000000e-09 -4.126659337419e-01 + 2.722800000000e-09 -4.525049113337e-01 + 2.732800000000e-09 -4.272972047406e-01 + 2.742800000000e-09 -3.438442734766e-01 + 2.752800000000e-09 -2.156819288947e-01 + 2.762800000000e-09 -5.906555644004e-02 + 2.772800000000e-09 1.087763002158e-01 + 2.782800000000e-09 2.656499907499e-01 + 2.792800000000e-09 3.859312869327e-01 + 2.802800000000e-09 4.488001286004e-01 + 2.812800000000e-09 4.460621523562e-01 + 2.822800000000e-09 3.813460165413e-01 + 2.832800000000e-09 2.662910556080e-01 + 2.842800000000e-09 1.169671943001e-01 + 2.852800000000e-09 -5.001392069462e-02 + 2.862800000000e-09 -2.144646846525e-01 + 2.872800000000e-09 -3.511395890654e-01 + 2.882800000000e-09 -4.362317904681e-01 + 2.892800000000e-09 -4.566927898993e-01 + 2.902800000000e-09 -4.124833675778e-01 + 2.912800000000e-09 -3.128692252496e-01 + 2.922800000000e-09 -1.730045366281e-01 + 2.932800000000e-09 -9.505140230597e-03 + 2.942800000000e-09 1.592535155313e-01 + 2.952800000000e-09 3.092971242634e-01 + 2.962800000000e-09 4.150891438795e-01 + 2.972800000000e-09 4.589689589988e-01 + 2.982800000000e-09 4.366863947835e-01 + 2.992800000000e-09 3.547147651727e-01 + 3.002800000000e-09 2.265824912242e-01 + 3.012800000000e-09 6.887583057600e-02 + 3.022800000000e-09 -1.011638219780e-01 + 3.032800000000e-09 -2.614034489871e-01 + 3.042800000000e-09 -3.858292553354e-01 + 3.052800000000e-09 -4.528064415839e-01 + 3.062800000000e-09 -4.534109357767e-01 + 3.072800000000e-09 -3.908458440891e-01 + 3.082800000000e-09 -2.765999577696e-01 + 3.092800000000e-09 -1.269020842694e-01 + 3.102800000000e-09 4.149314397079e-02 + 3.112800000000e-09 2.085376363002e-01 + 3.122800000000e-09 3.488415841470e-01 + 3.132800000000e-09 4.379544107666e-01 + 3.142800000000e-09 4.620317252590e-01 + 3.152800000000e-09 4.205054483539e-01 + 3.162800000000e-09 3.223689526791e-01 + 3.172800000000e-09 1.827689108086e-01 + 3.182800000000e-09 1.853345284365e-02 + 3.192800000000e-09 -1.520797304567e-01 + 3.202800000000e-09 -3.051442690347e-01 + 3.212800000000e-09 -4.147052910464e-01 + 3.222800000000e-09 -4.623335988615e-01 + 3.232800000000e-09 -4.431393275110e-01 + 3.242800000000e-09 -3.632010234414e-01 + 3.252800000000e-09 -2.359223026521e-01 + 3.262800000000e-09 -7.807049691850e-02 + 3.272800000000e-09 9.313914251019e-02 + 3.282800000000e-09 2.557467957936e-01 + 3.292800000000e-09 3.835492530672e-01 + 3.302800000000e-09 4.542504604591e-01 + 3.312800000000e-09 4.582045173692e-01 + 3.322800000000e-09 3.981483291691e-01 + 3.332800000000e-09 2.853354312558e-01 + 3.342800000000e-09 1.360234927873e-01 + 3.352800000000e-09 -3.294019005911e-02 + 3.362800000000e-09 -2.017100778923e-01 + 3.372800000000e-09 -3.449030071487e-01 + 3.382800000000e-09 -4.375891602828e-01 + 3.392800000000e-09 -4.651743116581e-01 + 3.402800000000e-09 -4.265346037418e-01 + 3.412800000000e-09 -3.303309767562e-01 + 3.422800000000e-09 -1.916061062695e-01 + 3.432800000000e-09 -2.732465644289e-02 + 3.442800000000e-09 1.444035893214e-01 + 3.452800000000e-09 2.998033828982e-01 + 3.462800000000e-09 4.126541133823e-01 + 3.472800000000e-09 4.637876124191e-01 + 3.482800000000e-09 4.477002380637e-01 + 3.492800000000e-09 3.701243619657e-01 + 3.502800000000e-09 2.442324974382e-01 + 3.512800000000e-09 8.684260108371e-02 + 3.522800000000e-09 -8.487364566079e-02 + 3.532800000000e-09 -2.491966099119e-01 + 3.542800000000e-09 -3.798657226946e-01 + 3.552800000000e-09 -4.540323660650e-01 + 3.562800000000e-09 -4.613343744426e-01 + 3.572800000000e-09 -4.040144321454e-01 + 3.582800000000e-09 -2.930362781147e-01 + 3.592800000000e-09 -1.446006136325e-01 + 3.602800000000e-09 2.438587753254e-02 + 3.612800000000e-09 1.943139820106e-01 + 3.622800000000e-09 3.399043623507e-01 + 3.632800000000e-09 4.358634065484e-01 + 3.642800000000e-09 4.668816726500e-01 + 3.652800000000e-09 4.312588863977e-01 + 3.662800000000e-09 3.372833117607e-01 + 3.672800000000e-09 1.998312839179e-01 + 3.682800000000e-09 3.594997946511e-02 + 3.692800000000e-09 -1.364106268276e-01 + 3.702800000000e-09 -2.936916332386e-01 + 3.712800000000e-09 -4.095109241493e-01 + 3.722800000000e-09 -4.640662654368e-01 + 3.732800000000e-09 -4.511958137075e-01 + 3.742800000000e-09 -3.761846317735e-01 + 3.752800000000e-09 -2.519595393049e-01 + 3.762800000000e-09 -9.535406533175e-02 + 3.772800000000e-09 7.651004765035e-02 + 3.782800000000e-09 2.421843070969e-01 + 3.792800000000e-09 3.754261881126e-01 + 3.802800000000e-09 4.529041102811e-01 + 3.812800000000e-09 4.635441226783e-01 + 3.822800000000e-09 4.090778439774e-01 + 3.832800000000e-09 3.001486485868e-01 + 3.842800000000e-09 1.528511819675e-01 + 3.852800000000e-09 -1.586324157163e-02 + 3.862800000000e-09 -1.866320197702e-01 + 3.872800000000e-09 -3.343341500939e-01 + 3.882800000000e-09 -4.333850221745e-01 + 3.892800000000e-09 -4.677859670417e-01 + 3.902800000000e-09 -4.352457792003e-01 + 3.912800000000e-09 -3.437799350642e-01 + 3.922800000000e-09 -2.079551509251e-01 + 3.932800000000e-09 -4.468825070859e-02 + 3.942800000000e-09 1.281161217310e-01 + 3.952800000000e-09 2.871187079470e-01 + 3.962800000000e-09 4.058269541111e-01 + 3.972800000000e-09 4.638234490004e-01 + 3.982800000000e-09 4.542652737270e-01 + 3.992800000000e-09 3.819660578109e-01 + 4.002800000000e-09 2.595816254746e-01 + 4.012800000000e-09 1.039265569504e-01 + 4.022800000000e-09 -6.791758892401e-02 + 4.032800000000e-09 -2.347914757526e-01 + 4.042800000000e-09 -3.705114479017e-01 + 4.052800000000e-09 -4.512965576676e-01 + 4.062800000000e-09 -4.653460992128e-01 + 4.072800000000e-09 -4.138580365691e-01 + 4.082800000000e-09 -3.071299223111e-01 + 4.092800000000e-09 -1.611213287244e-01 + 4.102800000000e-09 7.173297645594e-03 + 4.112800000000e-09 1.786392332344e-01 + 4.122800000000e-09 3.283477267047e-01 + 4.132800000000e-09 4.304615590181e-01 + 4.142800000000e-09 4.682964590505e-01 + 4.152800000000e-09 4.389439124752e-01 + 4.162800000000e-09 3.499867364351e-01 + 4.172800000000e-09 2.157750921258e-01 + 4.182800000000e-09 5.328439761921e-02 + 4.192800000000e-09 -1.197403061708e-01 + 4.202800000000e-09 -2.802382298159e-01 + 4.212800000000e-09 -4.016597574593e-01 + 4.222800000000e-09 -4.631024539093e-01 + 4.232800000000e-09 -4.569703440817e-01 + 4.242800000000e-09 -3.874490503155e-01 + 4.252800000000e-09 -2.669635893864e-01 + 4.262800000000e-09 -1.123347304930e-01 + 4.272800000000e-09 5.938966192370e-02 + 4.282800000000e-09 2.273374185002e-01 + 4.292800000000e-09 3.654122994943e-01 + 4.302800000000e-09 4.494212444884e-01 + 4.312800000000e-09 4.668462653350e-01 + 4.322800000000e-09 4.183460001664e-01 + 4.332800000000e-09 3.138634623558e-01 + 4.342800000000e-09 1.692051650577e-01 + 4.352800000000e-09 1.410593859758e-03 + 4.362800000000e-09 -1.706423959182e-01 + 4.372800000000e-09 -3.222345887895e-01 + 4.382800000000e-09 -4.273141183177e-01 + 4.392800000000e-09 -4.685336525990e-01 + 4.402800000000e-09 -4.423622873729e-01 + 4.412800000000e-09 -3.559440647968e-01 + 4.422800000000e-09 -2.234012093258e-01 + 4.432800000000e-09 -6.175074711390e-02 + 4.442800000000e-09 1.114030993082e-01 + 4.452800000000e-09 2.732849561085e-01 + 4.462800000000e-09 3.973180263371e-01 + 4.472800000000e-09 4.620730586685e-01 + 4.482800000000e-09 4.592557153682e-01 + 4.492800000000e-09 3.925398442030e-01 + 4.502800000000e-09 2.740591801748e-01 + 4.512800000000e-09 1.205738242570e-01 + 4.522800000000e-09 -5.088958059287e-02 + 4.532800000000e-09 -2.197490777766e-01 + 4.542800000000e-09 -3.600298394982e-01 + 4.552800000000e-09 -4.471701732014e-01 + 4.562800000000e-09 -4.679450003513e-01 + 4.572800000000e-09 -4.224643005053e-01 + 4.582800000000e-09 -3.203036431719e-01 + 4.592800000000e-09 -1.770945530035e-01 + 4.602800000000e-09 -9.916003813214e-03 + 4.612800000000e-09 1.625825298936e-01 + 4.622800000000e-09 3.159129452110e-01 + 4.632800000000e-09 4.238513555783e-01 + 4.642800000000e-09 4.684120524954e-01 + 4.652800000000e-09 4.454333162902e-01 + 4.662800000000e-09 3.616104976461e-01 + 4.672800000000e-09 2.308230728837e-01 + 4.682800000000e-09 7.010770432388e-02 + 4.692800000000e-09 -1.030570995747e-01 + 4.702800000000e-09 -2.661910901479e-01 + 4.712800000000e-09 -3.927241236810e-01 + 4.722800000000e-09 -4.607353062860e-01 + 4.732800000000e-09 -4.612285216158e-01 + 4.742800000000e-09 -3.973544705198e-01 + 4.752800000000e-09 -2.809446907664e-01 + 4.762800000000e-09 -1.286787295534e-01 + 4.772800000000e-09 4.242899432680e-02 + 4.782800000000e-09 2.120839524621e-01 + 4.792800000000e-09 3.544573401597e-01 + 4.802800000000e-09 4.446555424287e-01 + 4.812800000000e-09 4.687567022316e-01 + 4.822800000000e-09 4.263139694892e-01 + 4.832800000000e-09 3.265253785796e-01 + 4.842800000000e-09 1.848316550113e-01 + 4.852800000000e-09 1.834724854228e-02 + 4.862800000000e-09 -1.544945489318e-01 + 4.872800000000e-09 -3.094519149607e-01 + 4.882800000000e-09 -4.201635483021e-01 + 4.892800000000e-09 -4.680287519248e-01 + 4.902800000000e-09 -4.482471740598e-01 + 4.912800000000e-09 -3.670574210263e-01 + 4.922800000000e-09 -2.380854203554e-01 + 4.932800000000e-09 -7.836948417301e-02 + 4.942800000000e-09 9.472131605117e-02 + 4.952800000000e-09 2.590064515875e-01 + 4.962800000000e-09 3.879495005266e-01 + 4.972800000000e-09 4.590293432641e-01 + 4.982800000000e-09 4.626467938185e-01 + 4.992800000000e-09 4.016591241874e-01 + 5.002800000000e-09 2.874933270737e-01 + 5.012800000000e-09 1.366314627342e-01 + 5.022800000000e-09 -3.391719605281e-02 + 5.032800000000e-09 -2.041539920187e-01 + 5.042800000000e-09 -3.484380303835e-01 + 5.052800000000e-09 -4.415959514326e-01 + 5.062800000000e-09 -4.690205298607e-01 + 5.072800000000e-09 -4.296903092295e-01 + 5.082800000000e-09 -3.324053680881e-01 + 5.092800000000e-09 -1.923873982378e-01 + 5.102800000000e-09 -2.676867692164e-02 + 5.112800000000e-09 1.462295826053e-01 + 5.122800000000e-09 3.026393297007e-01 + 5.132800000000e-09 4.160112005670e-01 + 5.142800000000e-09 4.671069540852e-01 + 5.152800000000e-09 4.505104841539e-01 + 5.162800000000e-09 3.720677643271e-01 + 5.172800000000e-09 2.450943950505e-01 + 5.182800000000e-09 8.656814023140e-02 + 5.192800000000e-09 -8.624320803601e-02 + 5.202800000000e-09 -2.514784043799e-01 + 5.212800000000e-09 -3.826822979672e-01 + 5.222800000000e-09 -4.568964753157e-01 + 5.232800000000e-09 -4.638231190379e-01 + 5.242800000000e-09 -4.058041153178e-01 + 5.252800000000e-09 -2.939218767771e-01 + 5.262800000000e-09 -1.445135907223e-01 + 5.272800000000e-09 2.541781775865e-02 + 5.282800000000e-09 1.961612078016e-01 + 5.292800000000e-09 3.422796793935e-01 + 5.302800000000e-09 4.383506324078e-01 + 5.312800000000e-09 4.690913983257e-01 + 5.322800000000e-09 4.328953571456e-01 + 5.332800000000e-09 3.382927715816e-01 + 5.342800000000e-09 2.001561159803e-01 + 5.352800000000e-09 3.542422391298e-02 + 5.362800000000e-09 -1.377545536658e-01 + 5.372800000000e-09 -2.956597486021e-01 + 5.382800000000e-09 -4.117649039312e-01 + 5.392800000000e-09 -4.662293147622e-01 + 5.402800000000e-09 -4.529637698973e-01 + 5.412800000000e-09 -3.773355266407e-01 + 5.422800000000e-09 -2.523711029840e-01 + 5.432800000000e-09 -9.500683125120e-02 + 5.442800000000e-09 7.756932841411e-02 + 5.452800000000e-09 2.438142072883e-01 + 5.462800000000e-09 3.773568564909e-01 + 5.472800000000e-09 4.548015667943e-01 + 5.482800000000e-09 4.651287927709e-01 + 5.492800000000e-09 4.101477164177e-01 + 5.502800000000e-09 3.005849979850e-01 + 5.512800000000e-09 1.526276345283e-01 + 5.522800000000e-09 -1.671068086496e-02 + 5.532800000000e-09 -1.879962664823e-01 + 5.542800000000e-09 -3.360038064272e-01 + 5.552800000000e-09 -4.350670404128e-01 + 5.562800000000e-09 -4.692171357610e-01 + 5.572800000000e-09 -4.362371600768e-01 + 5.582800000000e-09 -3.442205734381e-01 + 5.592800000000e-09 -2.078120603889e-01 + 5.602800000000e-09 -4.399361871475e-02 + 5.612800000000e-09 1.292794167594e-01 + 5.622800000000e-09 2.885811030032e-01 + 5.632800000000e-09 4.073363110215e-01 + 5.642800000000e-09 4.651286994211e-01 + 5.652800000000e-09 4.551891177608e-01 + 5.662800000000e-09 3.824020391996e-01 + 5.672800000000e-09 2.594944076480e-01 + 5.682800000000e-09 1.033438491830e-01 + 5.692800000000e-09 -6.892714700509e-02 + 5.702800000000e-09 -2.360907735767e-01 + 5.712800000000e-09 -3.718843822518e-01 + 5.722800000000e-09 -4.525056320354e-01 + 5.732800000000e-09 -4.662179080721e-01 + 5.742800000000e-09 -4.142899160792e-01 + 5.752800000000e-09 -3.070848842695e-01 + 5.762800000000e-09 -1.606236187967e-01 + 5.772800000000e-09 8.063294413724e-03 + 5.782800000000e-09 1.798092027416e-01 + 5.792800000000e-09 3.296144723505e-01 + 5.802800000000e-09 4.316026024095e-01 + 5.812800000000e-09 4.691352602748e-01 + 5.822800000000e-09 4.393772828167e-01 + 5.832800000000e-09 3.499779099653e-01 + 5.842800000000e-09 2.153439570460e-01 + 5.852800000000e-09 5.248772291422e-02 + 5.862800000000e-09 -1.208092298411e-01 + 5.872800000000e-09 -2.814224335561e-01 + 5.882800000000e-09 -4.027542007684e-01 + 5.892800000000e-09 -4.639238314122e-01 + 5.902800000000e-09 -4.574119512254e-01 + 5.912800000000e-09 -3.874729348324e-01 + 5.922800000000e-09 -2.665865318224e-01 + 5.932800000000e-09 -1.116124924994e-01 + 5.942800000000e-09 6.037589281750e-02 + 5.952800000000e-09 2.284532173010e-01 + 5.962800000000e-09 3.664713305262e-01 + 5.972800000000e-09 4.502401512919e-01 + 5.982800000000e-09 4.673117572575e-01 + 5.992800000000e-09 4.184122700938e-01 + 6.002800000000e-09 3.135407382749e-01 + 6.012800000000e-09 1.685478314385e-01 + 6.022800000000e-09 4.930169171302e-04 + 6.032800000000e-09 -1.717053644180e-01 + 6.042800000000e-09 -3.232757122754e-01 + 6.052800000000e-09 -4.281501715882e-01 + 6.062800000000e-09 -4.690368391453e-01 + 6.072800000000e-09 -4.424779840291e-01 + 6.082800000000e-09 -3.556779928680e-01 + 6.092800000000e-09 -2.228038732050e-01 + 6.102800000000e-09 -6.089377325164e-02 + 6.112800000000e-09 1.124210199175e-01 + 6.122800000000e-09 2.743141743718e-01 + 6.132800000000e-09 3.981797456550e-01 + 6.142800000000e-09 4.626228538294e-01 + 6.152800000000e-09 4.594272131113e-01 + 6.162800000000e-09 3.923322355857e-01 + 6.172800000000e-09 2.735180465714e-01 + 6.182800000000e-09 1.197717126998e-01 + 6.192800000000e-09 -5.186472013402e-02 + 6.202800000000e-09 -2.207649238640e-01 + 6.212800000000e-09 -3.609165159668e-01 + 6.222800000000e-09 -4.477738391192e-01 + 6.232800000000e-09 -4.681852222922e-01 + 6.242800000000e-09 -4.223268843341e-01 + 6.252800000000e-09 -3.198253536388e-01 + 6.262800000000e-09 -1.763473102731e-01 + 6.272800000000e-09 -8.982039437124e-03 + 6.282800000000e-09 1.635876126806e-01 + 6.292800000000e-09 3.168310622333e-01 + 6.302800000000e-09 4.245205520260e-01 + 6.312800000000e-09 4.687307903454e-01 + 6.322800000000e-09 4.453736360192e-01 + 6.332800000000e-09 3.612017290043e-01 + 6.342800000000e-09 2.301330182353e-01 + 6.352800000000e-09 6.921688292670e-02 + 6.362800000000e-09 -1.040475870182e-01 + 6.372800000000e-09 -2.671361986136e-01 + 6.382800000000e-09 -3.934594426785e-01 + 6.392800000000e-09 -4.611370230412e-01 + 6.402800000000e-09 -4.612520577930e-01 + 6.412800000000e-09 -3.970195016399e-01 + 6.422800000000e-09 -2.803129698450e-01 + 6.432800000000e-09 -1.278327136914e-01 + 6.442800000000e-09 4.339793621030e-02 + 6.452800000000e-09 2.130454869379e-01 + 6.462800000000e-09 3.552509220557e-01 + 6.472800000000e-09 4.451430134717e-01 + 6.482800000000e-09 4.688749870171e-01 + 6.492800000000e-09 4.260659728975e-01 + 6.502800000000e-09 3.259624909572e-01 + 6.512800000000e-09 1.840358047712e-01 + 6.522800000000e-09 1.740504195152e-02 + 6.532800000000e-09 -1.554679584984e-01 + 6.542800000000e-09 -3.103040454563e-01 + 6.552800000000e-09 -4.207437921098e-01 + 6.562800000000e-09 -4.682490523525e-01 + 6.572800000000e-09 -4.480936775650e-01 + 6.582800000000e-09 -3.665722058255e-01 + 6.592800000000e-09 -2.373457850655e-01 + 6.602800000000e-09 -7.746130210985e-02 + 6.612800000000e-09 9.569628305997e-02 + 6.622800000000e-09 2.599064530008e-01 + 6.632800000000e-09 3.886180524625e-01 + 6.642800000000e-09 4.593555398608e-01 + 6.652800000000e-09 4.625982413789e-01 + 6.662800000000e-09 4.012627299847e-01 + 6.672800000000e-09 2.868173569801e-01 + 6.682800000000e-09 1.357640831716e-01 + 6.692800000000e-09 -3.488320500924e-02 + 6.702800000000e-09 -2.050901619048e-01 + 6.712800000000e-09 -3.491887541055e-01 + 6.722800000000e-09 -4.420300161588e-01 + 6.732800000000e-09 -4.690822358330e-01 + 6.742800000000e-09 -4.293904431265e-01 + 6.752800000000e-09 -3.318023913763e-01 + 6.762800000000e-09 -1.915684299403e-01 + 6.772800000000e-09 -2.582266991708e-02 + 6.782800000000e-09 1.471885101963e-01 + 6.792800000000e-09 3.034620065971e-01 + 6.802800000000e-09 4.165520945543e-01 + 6.812800000000e-09 4.672843237133e-01 + 6.822800000000e-09 4.503168576248e-01 + 6.832800000000e-09 3.715496269309e-01 + 6.842800000000e-09 2.443329238081e-01 + 6.852800000000e-09 8.565233716324e-02 + 6.862800000000e-09 -8.721185001892e-02 + 6.872800000000e-09 -2.523604048396e-01 + 6.882800000000e-09 -3.833247194281e-01 + 6.892800000000e-09 -4.571919489730e-01 + 6.902800000000e-09 -4.637433214291e-01 + 6.912800000000e-09 -4.053802592406e-01 + 6.922800000000e-09 -2.932260265956e-01 + 6.932800000000e-09 -1.436370246939e-01 + 6.942800000000e-09 2.638186911296e-02 + 6.952800000000e-09 1.970861474685e-01 + 6.962800000000e-09 3.430127479307e-01 + 6.972800000000e-09 4.387632027596e-01 + 6.982800000000e-09 4.691300448494e-01 + 6.992800000000e-09 4.325739818738e-01 + 7.002800000000e-09 3.376746611685e-01 + 7.012800000000e-09 1.993314748888e-01 + 7.022800000000e-09 3.448096661822e-02 + 7.032800000000e-09 -1.387046797470e-01 + 7.042800000000e-09 -2.964702339618e-01 + 7.052800000000e-09 -4.122923879720e-01 + 7.062800000000e-09 -4.663930385262e-01 + 7.072800000000e-09 -4.527579407483e-01 + 7.082800000000e-09 -3.768082699232e-01 + 7.092800000000e-09 -2.516050079864e-01 + 7.102800000000e-09 -9.409246456133e-02 + 7.112800000000e-09 7.853162635772e-02 + 7.122800000000e-09 2.446874452655e-01 + 7.132800000000e-09 3.779902192601e-01 + 7.142800000000e-09 4.550882958425e-01 + 7.152800000000e-09 4.650411547424e-01 + 7.162800000000e-09 4.097179332496e-01 + 7.172800000000e-09 2.998861881111e-01 + 7.182800000000e-09 1.517524509766e-01 + 7.192800000000e-09 -1.766946826208e-02 + 7.202800000000e-09 -1.889144668742e-01 + 7.212800000000e-09 -3.367309678536e-01 + 7.222800000000e-09 -4.354751102968e-01 + 7.232800000000e-09 -4.692521503196e-01 + 7.242800000000e-09 -4.359132759345e-01 + 7.252800000000e-09 -3.436015388899e-01 + 7.262800000000e-09 -2.069887352862e-01 + 7.272800000000e-09 -4.305460321032e-02 + 7.282800000000e-09 1.302243182732e-01 + 7.292800000000e-09 2.893875876708e-01 + 7.302800000000e-09 4.078618696239e-01 + 7.312800000000e-09 4.652916678570e-01 + 7.322800000000e-09 4.549834438218e-01 + 7.332800000000e-09 3.818758289910e-01 + 7.342800000000e-09 2.587304169940e-01 + 7.352800000000e-09 1.024336339501e-01 + 7.362800000000e-09 -6.988457824246e-02 + 7.372800000000e-09 -2.369607605323e-01 + 7.382800000000e-09 -3.725174328127e-01 + 7.392800000000e-09 -4.527941312946e-01 + 7.402800000000e-09 -4.661330393578e-01 + 7.412800000000e-09 -4.138634119000e-01 + 7.422800000000e-09 -3.063897708511e-01 + 7.432800000000e-09 -1.597531764729e-01 + 7.442800000000e-09 9.016902070073e-03 + 7.452800000000e-09 1.807241786377e-01 + 7.462800000000e-09 3.303421804470e-01 + 7.472800000000e-09 4.320145305794e-01 + 7.482800000000e-09 4.691755145675e-01 + 7.492800000000e-09 4.390589917734e-01 + 7.502800000000e-09 3.493642170673e-01 + 7.512800000000e-09 2.145256124731e-01 + 7.522800000000e-09 5.155379687803e-02 + 7.532800000000e-09 -1.217508745935e-01 + 7.542800000000e-09 -2.822294607375e-01 + 7.552800000000e-09 -4.032842550779e-01 + 7.562800000000e-09 -4.640916914801e-01 + 7.572800000000e-09 -4.572097037402e-01 + 7.582800000000e-09 -3.869500281334e-01 + 7.592800000000e-09 -2.658264577248e-01 + 7.602800000000e-09 -1.107075125337e-01 + 7.612800000000e-09 6.132811648014e-02 + 7.622800000000e-09 2.293204102570e-01 + 7.632800000000e-09 3.671053168434e-01 + 7.642800000000e-09 4.505323117389e-01 + 7.652800000000e-09 4.672318501112e-01 + 7.662800000000e-09 4.179912006221e-01 + 7.672800000000e-09 3.128511619973e-01 + 7.682800000000e-09 1.676833870172e-01 + 7.692800000000e-09 -4.547319851387e-04 + 7.702800000000e-09 -1.726170694705e-01 + 7.712800000000e-09 -3.240045724004e-01 + 7.722800000000e-09 -4.285671943201e-01 + 7.732800000000e-09 -4.690839889224e-01 + 7.742800000000e-09 -4.421670997174e-01 + 7.752800000000e-09 -3.550713562528e-01 + 7.762800000000e-09 -2.219918689915e-01 + 7.772800000000e-09 -5.996587769395e-02 + 7.782800000000e-09 1.133589037792e-01 + 7.792800000000e-09 2.751217633628e-01 + 7.802800000000e-09 3.987149042172e-01 + 7.812800000000e-09 4.627981449510e-01 + 7.822800000000e-09 4.592330207458e-01 + 7.832800000000e-09 3.918171385163e-01 + 7.842800000000e-09 2.727650179179e-01 + 7.852800000000e-09 1.188734966965e-01 + 7.862800000000e-09 -5.281185931337e-02 + 7.872800000000e-09 -2.216310983036e-01 + 7.882800000000e-09 -3.615546641648e-01 + 7.892800000000e-09 -4.480738459771e-01 + 7.902800000000e-09 -4.681146909231e-01 + 7.912800000000e-09 -4.219152472552e-01 + 7.922800000000e-09 -3.191443707776e-01 + 7.932800000000e-09 -1.754905686412e-01 + 7.942800000000e-09 -8.040492577127e-03 + 7.952800000000e-09 1.644970549667e-01 + 7.962800000000e-09 3.175633142728e-01 + 7.972800000000e-09 4.249458362164e-01 + 7.982800000000e-09 4.687883885322e-01 + 7.992800000000e-09 4.450735522371e-01 + 8.002800000000e-09 3.606049350847e-01 + 8.012800000000e-09 2.293291593857e-01 + 8.022800000000e-09 6.829573741024e-02 + 8.032800000000e-09 -1.049820570284e-01 + 8.042800000000e-09 -2.679457347695e-01 + 8.052800000000e-09 -3.940019828902e-01 + 8.062800000000e-09 -4.613225420525e-01 + 8.072800000000e-09 -4.610687439028e-01 + 8.082800000000e-09 -3.965146838192e-01 + 8.092800000000e-09 -2.795688157061e-01 + 8.102800000000e-09 -1.269422295447e-01 + 8.112800000000e-09 4.433986217445e-02 + 8.122800000000e-09 2.139113728231e-01 + 8.132800000000e-09 3.558947791059e-01 + 8.142800000000e-09 4.454530364826e-01 + 8.152800000000e-09 4.688162086721e-01 + 8.162800000000e-09 4.256659903447e-01 + 8.172800000000e-09 3.252918647774e-01 + 8.182800000000e-09 1.831877919673e-01 + 8.192800000000e-09 1.647002802967e-02 + 8.202800000000e-09 -1.563754783600e-01 + 8.212800000000e-09 -3.110406697016e-01 + 8.222800000000e-09 -4.211788717107e-01 + 8.232800000000e-09 -4.683189204053e-01 + 8.242800000000e-09 -4.478062044189e-01 + 8.252800000000e-09 -3.659868137152e-01 + 8.262800000000e-09 -2.365511577981e-01 + 8.272800000000e-09 -7.654745729663e-02 + 8.282800000000e-09 9.662728626489e-02 + 8.292800000000e-09 2.607184036677e-01 + 8.302800000000e-09 3.891689696379e-01 + 8.312800000000e-09 4.595549824596e-01 + 8.322800000000e-09 4.624327742735e-01 + 8.332800000000e-09 4.007748494939e-01 + 8.342800000000e-09 2.860862296845e-01 + 8.352800000000e-09 1.348827207646e-01 + 8.362800000000e-09 -3.582128126017e-02 + 8.372800000000e-09 -2.059597102743e-01 + 8.382800000000e-09 -3.498443393635e-01 + 8.392800000000e-09 -4.423571724603e-01 + 8.402800000000e-09 -4.690421901879e-01 + 8.412800000000e-09 -4.290079589075e-01 + 8.422800000000e-09 -3.311460755638e-01 + 8.432800000000e-09 -1.907307083396e-01 + 8.442800000000e-09 -2.489339670075e-02 + 8.452800000000e-09 1.480970777988e-01 + 8.462800000000e-09 3.042077598377e-01 + 8.472800000000e-09 4.170027846721e-01 + 8.482800000000e-09 4.673733227014e-01 + 8.492800000000e-09 4.500492154599e-01 + 8.502800000000e-09 3.709811916254e-01 + 8.512800000000e-09 2.435503358873e-01 + 8.522800000000e-09 8.474572058405e-02 + 8.532800000000e-09 -8.814220320326e-02 + 8.542800000000e-09 -2.531799828584e-01 + 8.552800000000e-09 -3.838908777649e-01 + 8.562800000000e-09 -4.574106056723e-01 + 8.572800000000e-09 -4.635975130975e-01 + 8.582800000000e-09 -4.049097350188e-01 + 8.592800000000e-09 -2.925081089459e-01 + 8.602800000000e-09 -1.427644960264e-01 + 8.612800000000e-09 2.731666536515e-02 + 8.622800000000e-09 1.979601194150e-01 + 8.632800000000e-09 3.436809635643e-01 + 8.642800000000e-09 4.391084582379e-01 + 8.652800000000e-09 4.691095376366e-01 + 8.662800000000e-09 4.322095061829e-01 + 8.672800000000e-09 3.368928985927e-01 + 8.682800000000e-09 1.982044632161e-01 + 8.692800000000e-09 3.328748292720e-02 + 8.702800000000e-09 -1.397907460972e-01 + 8.712800000000e-09 -2.972809960802e-01 + 8.722800000000e-09 -4.126827903971e-01 + 8.732800000000e-09 -4.663084092799e-01 + 8.742800000000e-09 -4.522326114772e-01 + 8.752800000000e-09 -3.759388122305e-01 + 8.762800000000e-09 -2.505187248281e-01 + 8.772800000000e-09 -9.291412254591e-02 + 8.782800000000e-09 7.967445192077e-02 + 8.792800000000e-09 2.456298544672e-01 + 8.802800000000e-09 3.785684083142e-01 + 8.812800000000e-09 4.552056136132e-01 + 8.822800000000e-09 4.647002980707e-01 + 8.832800000000e-09 4.089901158564e-01 + 8.842800000000e-09 2.988866803157e-01 + 8.852800000000e-09 1.506087014056e-01 + 8.862800000000e-09 -1.883745866191e-02 + 8.872800000000e-09 -1.899552286123e-01 + 8.882800000000e-09 -3.374716666082e-01 + 8.892800000000e-09 -4.357856583871e-01 + 8.902800000000e-09 -4.690969613895e-01 + 8.912800000000e-09 -4.353384238061e-01 + 8.922800000000e-09 -3.427079186954e-01 + 8.932800000000e-09 -2.059032714601e-01 + 8.942800000000e-09 -4.189128493875e-02 + 8.952800000000e-09 1.313291507323e-01 + 8.962800000000e-09 2.902642081555e-01 + 8.972800000000e-09 4.083542326391e-01 + 8.982800000000e-09 4.653259728819e-01 + 8.992800000000e-09 4.545764243838e-01 + 9.002800000000e-09 3.811073673562e-01 + 9.012800000000e-09 2.577163969282e-01 + 9.022800000000e-09 1.012931365515e-01 + 9.032800000000e-09 -7.102831138895e-02 + 9.042800000000e-09 -2.379457193960e-01 + 9.052800000000e-09 -3.731734936642e-01 + 9.062800000000e-09 -4.530102686784e-01 + 9.072800000000e-09 -4.658953807172e-01 + 9.082800000000e-09 -4.132289783744e-01 + 9.092800000000e-09 -3.054620612447e-01 + 9.102800000000e-09 -1.586537832549e-01 + 9.112800000000e-09 1.017248035994e-02 + 9.122800000000e-09 1.817880774797e-01 + 9.132800000000e-09 3.311403052398e-01 + 9.142800000000e-09 4.324059501558e-01 + 9.152800000000e-09 4.691102262035e-01 + 9.162800000000e-09 4.385694488727e-01 + 9.172800000000e-09 3.485404045662e-01 + 9.182800000000e-09 2.134867177560e-01 + 9.192800000000e-09 5.041125749658e-02 + 9.202800000000e-09 -1.228649815627e-01 + 9.212800000000e-09 -2.831459884459e-01 + 9.222800000000e-09 -4.038408722570e-01 + 9.232800000000e-09 -4.642001988832e-01 + 9.242800000000e-09 -4.568746514943e-01 + 9.252800000000e-09 -3.862433936164e-01 + 9.262800000000e-09 -2.648579868420e-01 + 9.272800000000e-09 -1.095932317512e-01 + 9.282800000000e-09 6.246838319782e-02 + 9.292800000000e-09 2.303276041376e-01 + 9.302800000000e-09 3.678067006841e-01 + 9.312800000000e-09 4.508080420641e-01 + 9.322800000000e-09 4.670576116587e-01 + 9.332800000000e-09 4.174150955840e-01 + 9.342800000000e-09 3.119694816487e-01 + 9.352800000000e-09 1.666141498285e-01 + 9.362800000000e-09 -1.598897540464e-03 + 9.372800000000e-09 -1.736917974346e-01 + 9.382800000000e-09 -3.248360374444e-01 + 9.392800000000e-09 -4.290081867973e-01 + 9.402800000000e-09 -4.690748916597e-01 + 9.412800000000e-09 -4.417318027890e-01 + 9.422800000000e-09 -3.542928349449e-01 + 9.432800000000e-09 -2.209845197832e-01 + 9.442800000000e-09 -5.883968416087e-02 + 9.452800000000e-09 1.144753238926e-01 + 9.462800000000e-09 2.760608941454e-01 + 9.472800000000e-09 3.993110606018e-01 + 9.482800000000e-09 4.629546341337e-01 + 9.492800000000e-09 4.589465431600e-01 + 9.502800000000e-09 3.911532442510e-01 + 9.512800000000e-09 2.718288005794e-01 + 9.522800000000e-09 1.177792588363e-01 + 9.532800000000e-09 -5.394705682948e-02 + 9.542800000000e-09 -2.226511266769e-01 + 9.552800000000e-09 -3.622858772814e-01 + 9.562800000000e-09 -4.483902653613e-01 + 9.572800000000e-09 -4.679845008891e-01 + 9.582800000000e-09 -4.213801997220e-01 + 9.592800000000e-09 -3.182958389839e-01 + 9.602800000000e-09 -1.744441153284e-01 + 9.612800000000e-09 -6.906786421147e-03 + 9.622800000000e-09 1.655769906234e-01 + 9.632800000000e-09 3.184166837392e-01 + 9.642800000000e-09 4.254213267503e-01 + 9.652800000000e-09 4.688191408308e-01 + 9.662800000000e-09 4.446772345709e-01 + 9.672800000000e-09 3.598595000617e-01 + 9.682800000000e-09 2.283455819428e-01 + 9.692800000000e-09 6.718320212138e-02 + 9.702800000000e-09 -1.060978991889e-01 + 9.712800000000e-09 -2.688993892690e-01 + 9.722800000000e-09 -3.946258281187e-01 + 9.732800000000e-09 -4.615134996907e-01 + 9.742800000000e-09 -4.608175455040e-01 + 9.752800000000e-09 -3.958823318708e-01 + 9.762800000000e-09 -2.786570833923e-01 + 9.772800000000e-09 -1.258643950722e-01 + 9.782800000000e-09 4.546905829843e-02 + 9.792800000000e-09 2.149387568206e-01 + 9.802800000000e-09 3.566467864510e-01 + 9.812800000000e-09 4.457992136378e-01 + 9.822800000000e-09 4.687188497086e-01 + 9.832800000000e-09 4.251620141211e-01 + 9.842800000000e-09 3.244689829017e-01 + 9.852800000000e-09 1.821597652597e-01 + 9.862800000000e-09 1.534612931094e-02 + 9.872800000000e-09 -1.574573869663e-01 + 9.882800000000e-09 -3.119092570766e-01 + 9.892800000000e-09 -4.216800259422e-01 + 9.902800000000e-09 -4.683799397995e-01 + 9.912800000000e-09 -4.474399205894e-01 + 9.922800000000e-09 -3.652673258168e-01 + 9.932800000000e-09 -2.355868305983e-01 + 9.942800000000e-09 -7.544705922058e-02 + 9.952800000000e-09 9.774076485998e-02 + 9.962800000000e-09 2.616817305570e-01 + 9.972800000000e-09 3.898134970001e-01 + 9.982800000000e-09 4.597752069390e-01 + 9.992800000000e-09 4.622155396903e-01 + 1.000000000000e-08 4.230865375912e-01 diff --git a/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_16/conditions.yaml b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_16/conditions.yaml new file mode 100644 index 00000000..739a2d27 --- /dev/null +++ b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_16/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/LC_Oscillator/xschem/simulations/schematic/LC_Oscillator.spice +N: 16 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: ss +filename: LC_Oscillator_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_16 +temperature: '27' +vdd: '1.2' diff --git a/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_17/.spiceinit b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_17/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_17/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_17/LC_Oscillator.sym b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_17/LC_Oscillator.sym new file mode 100644 index 00000000..e632b156 --- /dev/null +++ b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_17/LC_Oscillator.sym @@ -0,0 +1,27 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 70 -20 90 -20 {} +L 4 70 20 90 20 {} +L 7 20 70 20 90 {} +L 7 -20 70 -20 90 {} +B 5 87.5 -22.5 92.5 -17.5 {name=Voplus dir=out} +B 5 17.5 87.5 22.5 92.5 {name=vdd dir=inout} +B 5 -22.5 87.5 -17.5 92.5 {name=gnd dir=inout} +B 5 87.5 17.5 92.5 22.5 {name=Vominus dir=out} +A 4 -1.666666666666714 1.666666666666714 71.68604389202189 287.5924245621816 360 {} +A 4 -30 27.5 40.69705149024927 42.51044707800085 94.97910584399833 {} +A 4 30 -27.5 40.69705149024927 222.5104470780009 94.97910584399833 {} +T {@symname} -40.5 -56 0 0 0.1 0.1 {} +T {@name} -40 -47 0 0 0.1 0.1 { +} +T {Voplus} 65 -24 0 1 0.2 0.2 {} +T {vdd} 5 64 2 1 0.2 0.2 {} +T {gnd} -35 64 2 1 0.2 0.2 {} +T {Vominus} 65 16 0 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_17/LC_Oscillator_tb.sch b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_17/LC_Oscillator_tb.sch new file mode 100644 index 00000000..0d420f2f --- /dev/null +++ b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_17/LC_Oscillator_tb.sch @@ -0,0 +1,57 @@ +v {xschem version=3.4.8RC file_version=1.3} +G {} +K {} +V {} +S {} +F {} +E {} +N 1570 -1060 1570 -1030 {lab=VDD} +N 1570 -970 1570 -940 {lab=GND} +N 1270 -1050 1270 -1030 {lab=GND} +N 1230 -1060 1230 -1030 {lab=VDD} +N 1140 -920 1160 -920 {lab=Voplus} +N 1140 -960 1160 -960 {lab=Vominus} +C {code_shown.sym} 440 -1140 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write LC_Oscillator_tb.raw +set appendwrite +tran 10p 10n 160p +save all + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_17/LC_Oscillator_tb_17.data vo_diff +quit + +.endc +"} +C {vsource.sym} 1570 -1000 0 0 {name=V1 value=1.6 savecurrent=false} +C {gnd.sym} 1570 -940 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1570 -1060 0 0 {name=p2 sig_type=std_logic lab=VDD} +C {opin.sym} 1140 -920 2 0 {name=p6 lab=Voplus} +C {gnd.sym} 1270 -1050 2 0 {name=l3 lab=GND} +C {opin.sym} 1140 -960 0 1 {name=p9 lab=Vominus} +C {LC_Oscillator.sym} 1250 -940 2 0 {name=x1} +C {devices/code_shown.sym} 450 -640 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_ss + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/LC_Oscillator/xschem/simulations/schematic/LC_Oscillator.spice + +.temp 27 +" +} +C {iopin.sym} 1230 -1060 2 0 {name=p1 lab=VDD} diff --git a/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_17/conditions.yaml b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_17/conditions.yaml new file mode 100644 index 00000000..2502cf4b --- /dev/null +++ b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_17/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/LC_Oscillator/xschem/simulations/schematic/LC_Oscillator.spice +N: 17 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: ss +filename: LC_Oscillator_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_17 +temperature: '27' +vdd: '1.6' diff --git a/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_18/.spiceinit b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_18/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_18/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_18/LC_Oscillator.sym b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_18/LC_Oscillator.sym new file mode 100644 index 00000000..e632b156 --- /dev/null +++ b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_18/LC_Oscillator.sym @@ -0,0 +1,27 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 70 -20 90 -20 {} +L 4 70 20 90 20 {} +L 7 20 70 20 90 {} +L 7 -20 70 -20 90 {} +B 5 87.5 -22.5 92.5 -17.5 {name=Voplus dir=out} +B 5 17.5 87.5 22.5 92.5 {name=vdd dir=inout} +B 5 -22.5 87.5 -17.5 92.5 {name=gnd dir=inout} +B 5 87.5 17.5 92.5 22.5 {name=Vominus dir=out} +A 4 -1.666666666666714 1.666666666666714 71.68604389202189 287.5924245621816 360 {} +A 4 -30 27.5 40.69705149024927 42.51044707800085 94.97910584399833 {} +A 4 30 -27.5 40.69705149024927 222.5104470780009 94.97910584399833 {} +T {@symname} -40.5 -56 0 0 0.1 0.1 {} +T {@name} -40 -47 0 0 0.1 0.1 { +} +T {Voplus} 65 -24 0 1 0.2 0.2 {} +T {vdd} 5 64 2 1 0.2 0.2 {} +T {gnd} -35 64 2 1 0.2 0.2 {} +T {Vominus} 65 16 0 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_18/LC_Oscillator_tb.sch b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_18/LC_Oscillator_tb.sch new file mode 100644 index 00000000..6dc2ee70 --- /dev/null +++ b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_18/LC_Oscillator_tb.sch @@ -0,0 +1,57 @@ +v {xschem version=3.4.8RC file_version=1.3} +G {} +K {} +V {} +S {} +F {} +E {} +N 1570 -1060 1570 -1030 {lab=VDD} +N 1570 -970 1570 -940 {lab=GND} +N 1270 -1050 1270 -1030 {lab=GND} +N 1230 -1060 1230 -1030 {lab=VDD} +N 1140 -920 1160 -920 {lab=Voplus} +N 1140 -960 1160 -960 {lab=Vominus} +C {code_shown.sym} 440 -1140 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write LC_Oscillator_tb.raw +set appendwrite +tran 10p 10n 160p +save all + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_18/LC_Oscillator_tb_18.data vo_diff +quit + +.endc +"} +C {vsource.sym} 1570 -1000 0 0 {name=V1 value=0.8 savecurrent=false} +C {gnd.sym} 1570 -940 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1570 -1060 0 0 {name=p2 sig_type=std_logic lab=VDD} +C {opin.sym} 1140 -920 2 0 {name=p6 lab=Voplus} +C {gnd.sym} 1270 -1050 2 0 {name=l3 lab=GND} +C {opin.sym} 1140 -960 0 1 {name=p9 lab=Vominus} +C {LC_Oscillator.sym} 1250 -940 2 0 {name=x1} +C {devices/code_shown.sym} 450 -640 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_tt + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/LC_Oscillator/xschem/simulations/schematic/LC_Oscillator.spice + +.temp 80 +" +} +C {iopin.sym} 1230 -1060 2 0 {name=p1 lab=VDD} diff --git a/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_18/conditions.yaml b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_18/conditions.yaml new file mode 100644 index 00000000..55193bf9 --- /dev/null +++ b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_18/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/LC_Oscillator/xschem/simulations/schematic/LC_Oscillator.spice +N: 18 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: tt +filename: LC_Oscillator_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_18 +temperature: '80' +vdd: '0.8' diff --git a/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_19/.spiceinit b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_19/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_19/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_19/LC_Oscillator.sym b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_19/LC_Oscillator.sym new file mode 100644 index 00000000..e632b156 --- /dev/null +++ b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_19/LC_Oscillator.sym @@ -0,0 +1,27 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 70 -20 90 -20 {} +L 4 70 20 90 20 {} +L 7 20 70 20 90 {} +L 7 -20 70 -20 90 {} +B 5 87.5 -22.5 92.5 -17.5 {name=Voplus dir=out} +B 5 17.5 87.5 22.5 92.5 {name=vdd dir=inout} +B 5 -22.5 87.5 -17.5 92.5 {name=gnd dir=inout} +B 5 87.5 17.5 92.5 22.5 {name=Vominus dir=out} +A 4 -1.666666666666714 1.666666666666714 71.68604389202189 287.5924245621816 360 {} +A 4 -30 27.5 40.69705149024927 42.51044707800085 94.97910584399833 {} +A 4 30 -27.5 40.69705149024927 222.5104470780009 94.97910584399833 {} +T {@symname} -40.5 -56 0 0 0.1 0.1 {} +T {@name} -40 -47 0 0 0.1 0.1 { +} +T {Voplus} 65 -24 0 1 0.2 0.2 {} +T {vdd} 5 64 2 1 0.2 0.2 {} +T {gnd} -35 64 2 1 0.2 0.2 {} +T {Vominus} 65 16 0 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_19/LC_Oscillator_tb.sch b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_19/LC_Oscillator_tb.sch new file mode 100644 index 00000000..12f93083 --- /dev/null +++ b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_19/LC_Oscillator_tb.sch @@ -0,0 +1,57 @@ +v {xschem version=3.4.8RC file_version=1.3} +G {} +K {} +V {} +S {} +F {} +E {} +N 1570 -1060 1570 -1030 {lab=VDD} +N 1570 -970 1570 -940 {lab=GND} +N 1270 -1050 1270 -1030 {lab=GND} +N 1230 -1060 1230 -1030 {lab=VDD} +N 1140 -920 1160 -920 {lab=Voplus} +N 1140 -960 1160 -960 {lab=Vominus} +C {code_shown.sym} 440 -1140 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write LC_Oscillator_tb.raw +set appendwrite +tran 10p 10n 160p +save all + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_19/LC_Oscillator_tb_19.data vo_diff +quit + +.endc +"} +C {vsource.sym} 1570 -1000 0 0 {name=V1 value=1.2 savecurrent=false} +C {gnd.sym} 1570 -940 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1570 -1060 0 0 {name=p2 sig_type=std_logic lab=VDD} +C {opin.sym} 1140 -920 2 0 {name=p6 lab=Voplus} +C {gnd.sym} 1270 -1050 2 0 {name=l3 lab=GND} +C {opin.sym} 1140 -960 0 1 {name=p9 lab=Vominus} +C {LC_Oscillator.sym} 1250 -940 2 0 {name=x1} +C {devices/code_shown.sym} 450 -640 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_tt + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/LC_Oscillator/xschem/simulations/schematic/LC_Oscillator.spice + +.temp 80 +" +} +C {iopin.sym} 1230 -1060 2 0 {name=p1 lab=VDD} diff --git a/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_19/LC_Oscillator_tb_19.data b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_19/LC_Oscillator_tb_19.data new file mode 100644 index 00000000..04e15afb --- /dev/null +++ b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_19/LC_Oscillator_tb_19.data @@ -0,0 +1,985 @@ + 1.628000000000e-10 7.148700138490e-03 + 1.728000000000e-10 -6.556248283308e-03 + 1.828000000000e-10 -1.971437135227e-02 + 1.928000000000e-10 -3.046832510057e-02 + 2.028000000000e-10 -3.724484206798e-02 + 2.128000000000e-10 -3.898722404017e-02 + 2.228000000000e-10 -3.531874717656e-02 + 2.328000000000e-10 -2.661104433390e-02 + 2.428000000000e-10 -1.394722371181e-02 + 2.528000000000e-10 1.010890375025e-03 + 2.628000000000e-10 1.623518558993e-02 + 2.728000000000e-10 2.959972790204e-02 + 2.828000000000e-10 3.917676561508e-02 + 2.928000000000e-10 4.351854183212e-02 + 3.028000000000e-10 4.187897998930e-02 + 3.128000000000e-10 3.433491833145e-02 + 3.228000000000e-10 2.178964009036e-02 + 3.328000000000e-10 5.862674403261e-03 + 3.428000000000e-10 -1.131445345393e-02 + 3.528000000000e-10 -2.737440631426e-02 + 3.628000000000e-10 -4.003447001271e-02 + 3.728000000000e-10 -4.742374767739e-02 + 3.828000000000e-10 -4.836506885182e-02 + 3.928000000000e-10 -4.256093597883e-02 + 4.028000000000e-10 -3.065096603476e-02 + 4.128000000000e-10 -1.413831435399e-02 + 4.228000000000e-10 4.797692448234e-03 + 4.328000000000e-10 2.357802655500e-02 + 4.428000000000e-10 3.956516961760e-02 + 4.528000000000e-10 5.043395269242e-02 + 4.628000000000e-10 5.451894284417e-02 + 4.728000000000e-10 5.107393783219e-02 + 4.828000000000e-10 4.039477807846e-02 + 4.928000000000e-10 2.378773582336e-02 + 5.028000000000e-10 3.413561417878e-03 + 5.128000000000e-10 -1.798715588926e-02 + 5.228000000000e-10 -3.745223885697e-02 + 5.328000000000e-10 -5.219304612990e-02 + 5.428000000000e-10 -6.000529045762e-02 + 5.528000000000e-10 -5.961153530135e-02 + 5.628000000000e-10 -5.086480313709e-02 + 5.728000000000e-10 -3.478185641254e-02 + 5.828000000000e-10 -1.341169371011e-02 + 5.928000000000e-10 1.040945866726e-02 + 6.028000000000e-10 3.341949825708e-02 + 6.128000000000e-10 5.236916475376e-02 + 6.228000000000e-10 6.447462396568e-02 + 6.328000000000e-10 6.785013248012e-02 + 6.428000000000e-10 6.180915454835e-02 + 6.528000000000e-10 4.697450683375e-02 + 6.628000000000e-10 2.519746679797e-02 + 6.728000000000e-10 -6.776776351147e-04 + 6.828000000000e-10 -2.716208434665e-02 + 6.928000000000e-10 -5.056367134551e-02 + 7.028000000000e-10 -6.749672582915e-02 + 7.128000000000e-10 -7.539559216107e-02 + 7.228000000000e-10 -7.292479233089e-02 + 7.328000000000e-10 -6.019185889536e-02 + 7.428000000000e-10 -3.873280044736e-02 + 7.528000000000e-10 -1.130779870607e-02 + 7.628000000000e-10 1.843768499398e-02 + 7.728000000000e-10 4.641599263197e-02 + 7.828000000000e-10 6.863616257149e-02 + 7.928000000000e-10 8.179396300279e-02 + 8.028000000000e-10 8.380193448312e-02 + 8.128000000000e-10 7.412652679349e-02 + 8.228000000000e-10 5.386352623579e-02 + 8.328000000000e-10 2.557596790521e-02 + 8.428000000000e-10 -7.030899690316e-03 + 8.528000000000e-10 -3.954688119292e-02 + 8.628000000000e-10 -6.739251915773e-02 + 8.728000000000e-10 -8.649559268171e-02 + 8.828000000000e-10 -9.393416573073e-02 + 8.928000000000e-10 -8.838791787859e-02 + 9.028000000000e-10 -7.035847201347e-02 + 9.128000000000e-10 -4.208134290242e-02 + 9.228000000000e-10 -7.209932410129e-03 + 9.328000000000e-10 2.961392813569e-02 + 9.428000000000e-10 6.330095111983e-02 + 9.528000000000e-10 8.899032817750e-02 + 9.628000000000e-10 1.028055993739e-01 + 9.728000000000e-10 1.025103411192e-01 + 9.828000000000e-10 8.786720591515e-02 + 9.928000000000e-10 6.063594554746e-02 + 1.002800000000e-09 2.429231581003e-02 + 1.012800000000e-09 -1.640725204041e-02 + 1.022800000000e-09 -5.592731109875e-02 + 1.032800000000e-09 -8.865561721934e-02 + 1.042800000000e-09 -1.097431255659e-01 + 1.052800000000e-09 -1.158862907220e-01 + 1.062800000000e-09 -1.059221446957e-01 + 1.072800000000e-09 -8.096333148560e-02 + 1.082800000000e-09 -4.416377846535e-02 + 1.092800000000e-09 -2.658805670344e-04 + 1.102800000000e-09 4.485683762439e-02 + 1.112800000000e-09 8.489574096964e-02 + 1.122800000000e-09 1.140298593979e-01 + 1.132800000000e-09 1.277941551577e-01 + 1.142800000000e-09 1.238991423665e-01 + 1.152800000000e-09 1.026147696876e-01 + 1.162800000000e-09 6.660558568785e-02 + 1.172800000000e-09 2.045707725809e-02 + 1.182800000000e-09 -2.977040382182e-02 + 1.192800000000e-09 -7.715799040877e-02 + 1.202800000000e-09 -1.149245187352e-01 + 1.212800000000e-09 -1.374116372868e-01 + 1.222800000000e-09 -1.410361906765e-01 + 1.232800000000e-09 -1.249774939878e-01 + 1.242800000000e-09 -9.121657356521e-02 + 1.252800000000e-09 -4.402957513171e-02 + 1.262800000000e-09 1.048639543592e-02 + 1.272800000000e-09 6.497276354141e-02 + 1.282800000000e-09 1.117276895535e-01 + 1.292800000000e-09 1.438573561656e-01 + 1.302800000000e-09 1.564112839747e-01 + 1.312800000000e-09 1.472444164192e-01 + 1.322800000000e-09 1.173904520081e-01 + 1.332800000000e-09 7.064630499838e-02 + 1.342800000000e-09 1.298851375611e-02 + 1.352800000000e-09 -4.796590495619e-02 + 1.362800000000e-09 -1.037738506580e-01 + 1.372800000000e-09 -1.462838567932e-01 + 1.382800000000e-09 -1.690469648080e-01 + 1.392800000000e-09 -1.684589187758e-01 + 1.402800000000e-09 -1.443307853150e-01 + 1.412800000000e-09 -9.974170663916e-02 + 1.422800000000e-09 -4.039423500355e-02 + 1.432800000000e-09 2.602020404264e-02 + 1.442800000000e-09 9.051891950498e-02 + 1.452800000000e-09 1.438453665716e-01 + 1.462800000000e-09 1.779999435746e-01 + 1.472800000000e-09 1.876679852542e-01 + 1.482800000000e-09 1.711644043150e-01 + 1.492800000000e-09 1.306516256143e-01 + 1.502800000000e-09 7.135015911371e-02 + 1.512800000000e-09 7.956327021845e-04 + 1.522800000000e-09 -7.167424360659e-02 + 1.532800000000e-09 -1.358854828244e-01 + 1.542800000000e-09 -1.822694385988e-01 + 1.552800000000e-09 -2.036931671261e-01 + 1.562800000000e-09 -1.967898467271e-01 + 1.572800000000e-09 -1.624014513528e-01 + 1.582800000000e-09 -1.050598207809e-01 + 1.592800000000e-09 -3.207327467436e-02 + 1.602800000000e-09 4.713294477471e-02 + 1.612800000000e-09 1.217469234933e-01 + 1.622800000000e-09 1.808393320889e-01 + 1.632800000000e-09 2.153821990715e-01 + 1.642800000000e-09 2.200025335940e-01 + 1.652800000000e-09 1.938916561667e-01 + 1.662800000000e-09 1.406366438872e-01 + 1.672800000000e-09 6.716207549639e-02 + 1.682800000000e-09 -1.719516702157e-02 + 1.692800000000e-09 -1.012741747911e-01 + 1.702800000000e-09 -1.730554267322e-01 + 1.712800000000e-09 -2.216048287376e-01 + 1.722800000000e-09 -2.393973127106e-01 + 1.732800000000e-09 -2.237503440226e-01 + 1.742800000000e-09 -1.769173085615e-01 + 1.752800000000e-09 -1.051814588075e-01 + 1.762800000000e-09 -1.766078446920e-02 + 1.772800000000e-09 7.440307377995e-02 + 1.782800000000e-09 1.582616177664e-01 + 1.792800000000e-09 2.213276907858e-01 + 1.802800000000e-09 2.538171424413e-01 + 1.812800000000e-09 2.507767745020e-01 + 1.822800000000e-09 2.127681399725e-01 + 1.832800000000e-09 1.451586894143e-01 + 1.842800000000e-09 5.667012824847e-02 + 1.852800000000e-09 -4.154856627854e-02 + 1.862800000000e-09 -1.363787066297e-01 + 1.872800000000e-09 -2.139238658971e-01 + 1.882800000000e-09 -2.621247503047e-01 + 1.892800000000e-09 -2.735421173292e-01 + 1.902800000000e-09 -2.467114619458e-01 + 1.912800000000e-09 -1.857012223731e-01 + 1.922800000000e-09 -9.868333479581e-02 + 1.932800000000e-09 3.422216277006e-03 + 1.942800000000e-09 1.074824256018e-01 + 1.952800000000e-09 1.987566180838e-01 + 1.962800000000e-09 2.631919442829e-01 + 1.972800000000e-09 2.907163946638e-01 + 1.982800000000e-09 2.773803318602e-01 + 1.992800000000e-09 2.255222603737e-01 + 2.002800000000e-09 1.425137686338e-01 + 2.012800000000e-09 3.896421212897e-02 + 2.022800000000e-09 -7.219349468508e-02 + 2.032800000000e-09 -1.758637825119e-01 + 2.042800000000e-09 -2.564151818236e-01 + 2.052800000000e-09 -3.011190007746e-01 + 2.062800000000e-09 -3.032508857680e-01 + 2.072800000000e-09 -2.631141437102e-01 + 2.082800000000e-09 -1.868443968754e-01 + 2.092800000000e-09 -8.449104035527e-02 + 2.102800000000e-09 3.128188250133e-02 + 2.112800000000e-09 1.454282993861e-01 + 2.122800000000e-09 2.413002992226e-01 + 2.132800000000e-09 3.037884198607e-01 + 2.142800000000e-09 3.231821041828e-01 + 2.152800000000e-09 2.971704310716e-01 + 2.162800000000e-09 2.302255938592e-01 + 2.172800000000e-09 1.317293079600e-01 + 2.182800000000e-09 1.401633510291e-02 + 2.192800000000e-09 -1.082173826294e-01 + 2.202800000000e-09 -2.179172364091e-01 + 2.212800000000e-09 -2.980594054383e-01 + 2.222800000000e-09 -3.359507712982e-01 + 2.232800000000e-09 -3.262521456316e-01 + 2.242800000000e-09 -2.712644014697e-01 + 2.252800000000e-09 -1.793305661427e-01 + 2.262800000000e-09 -6.240746237994e-02 + 2.272800000000e-09 6.524620183146e-02 + 2.282800000000e-09 1.867115388883e-01 + 2.292800000000e-09 2.836817423597e-01 + 2.302800000000e-09 3.405920534211e-01 + 2.312800000000e-09 3.488563324357e-01 + 2.322800000000e-09 3.083679804650e-01 + 2.332800000000e-09 2.258653773592e-01 + 2.342800000000e-09 1.125792171780e-01 + 2.352800000000e-09 -1.760508630673e-02 + 2.362800000000e-09 -1.482510567441e-01 + 2.372800000000e-09 -2.604995925893e-01 + 2.382800000000e-09 -3.364632566419e-01 + 2.392800000000e-09 -3.641874700021e-01 + 2.402800000000e-09 -3.404387828583e-01 + 2.412800000000e-09 -2.699172030902e-01 + 2.422800000000e-09 -1.629947399732e-01 + 2.432800000000e-09 -3.316150693893e-02 + 2.442800000000e-09 1.037975206654e-01 + 2.452800000000e-09 2.291431356829e-01 + 2.462800000000e-09 3.233578151894e-01 + 2.472800000000e-09 3.711917109186e-01 + 2.482800000000e-09 3.659591826516e-01 + 2.492800000000e-09 3.099687304721e-01 + 2.502800000000e-09 2.122024988077e-01 + 2.512800000000e-09 8.561512425561e-02 + 2.522800000000e-09 -5.459606428701e-02 + 2.532800000000e-09 -1.903194940107e-01 + 2.542800000000e-09 -3.012178023833e-01 + 2.552800000000e-09 -3.692569685188e-01 + 2.562800000000e-09 -3.840694207960e-01 + 2.572800000000e-09 -3.449920942662e-01 + 2.582800000000e-09 -2.590898711929e-01 + 2.592800000000e-09 -1.384869769108e-01 + 2.602800000000e-09 2.048874826807e-03 + 2.612800000000e-09 1.452390308013e-01 + 2.622800000000e-09 2.707131119232e-01 + 2.632800000000e-09 3.583479502921e-01 + 2.642800000000e-09 3.941649286666e-01 + 2.652800000000e-09 3.739364679171e-01 + 2.662800000000e-09 3.023289525811e-01 + 2.672800000000e-09 1.903511757031e-01 + 2.682800000000e-09 5.234751706855e-02 + 2.692800000000e-09 -9.523535196489e-02 + 2.702800000000e-09 -2.326331900274e-01 + 2.712800000000e-09 -3.384915022605e-01 + 2.722800000000e-09 -3.954476343935e-01 + 2.732800000000e-09 -3.954635278762e-01 + 2.742800000000e-09 -3.405864023401e-01 + 2.752800000000e-09 -2.400414613364e-01 + 2.762800000000e-09 -1.073822622810e-01 + 2.772800000000e-09 4.150886108833e-02 + 2.782800000000e-09 1.878356108149e-01 + 2.792800000000e-09 3.098996526972e-01 + 2.802800000000e-09 3.876851778252e-01 + 2.812800000000e-09 4.091864879724e-01 + 2.822800000000e-09 3.730116305614e-01 + 2.832800000000e-09 2.862387815883e-01 + 2.842800000000e-09 1.615399061279e-01 + 2.852800000000e-09 1.429949387993e-02 + 2.862800000000e-09 -1.377718240006e-01 + 2.872800000000e-09 -2.734104276057e-01 + 2.882800000000e-09 -3.708389529822e-01 + 2.892800000000e-09 -4.143280005550e-01 + 2.902800000000e-09 -3.985830553671e-01 + 2.912800000000e-09 -3.279611141443e-01 + 2.922800000000e-09 -2.137506193658e-01 + 2.932800000000e-09 -7.088140529828e-02 + 2.942800000000e-09 8.383155584913e-02 + 2.952800000000e-09 2.301126537707e-01 + 2.962800000000e-09 3.453744099013e-01 + 2.972800000000e-09 4.105361931211e-01 + 2.982800000000e-09 4.162425531004e-01 + 2.992800000000e-09 3.639558813817e-01 + 3.002800000000e-09 2.629029125712e-01 + 3.012800000000e-09 1.270995026131e-01 + 3.022800000000e-09 -2.719291589066e-02 + 3.032800000000e-09 -1.809203370349e-01 + 3.042800000000e-09 -3.115907576558e-01 + 3.052800000000e-09 -3.977041004153e-01 + 3.062800000000e-09 -4.257831376299e-01 + 3.072800000000e-09 -3.935742468913e-01 + 3.082800000000e-09 -3.078952416981e-01 + 3.092800000000e-09 -1.816394011369e-01 + 3.102800000000e-09 -3.059579160053e-02 + 3.112800000000e-09 1.273597191001e-01 + 3.122800000000e-09 2.705441670977e-01 + 3.132800000000e-09 3.760484564013e-01 + 3.142800000000e-09 4.265486444738e-01 + 3.152800000000e-09 4.157289179505e-01 + 3.162800000000e-09 3.477458376719e-01 + 3.172800000000e-09 2.336790781647e-01 + 3.182800000000e-09 8.853881898550e-02 + 3.192800000000e-09 -7.056518593147e-02 + 3.202800000000e-09 -2.231789432522e-01 + 3.212800000000e-09 -3.459807468487e-01 + 3.222800000000e-09 -4.185276194298e-01 + 3.232800000000e-09 -4.301823716164e-01 + 3.242800000000e-09 -3.816512696214e-01 + 3.252800000000e-09 -2.819123727269e-01 + 3.262800000000e-09 -1.451618865825e-01 + 3.272800000000e-09 1.211424434142e-02 + 3.282800000000e-09 1.708533900892e-01 + 3.292800000000e-09 3.081886012680e-01 + 3.302800000000e-09 4.015423298995e-01 + 3.312800000000e-09 4.360991422248e-01 + 3.322800000000e-09 4.086339662461e-01 + 3.332800000000e-09 3.254912783119e-01 + 3.342800000000e-09 1.995309697241e-01 + 3.352800000000e-09 4.677353324670e-02 + 3.362800000000e-09 -1.148989549350e-01 + 3.372800000000e-09 -2.637105684554e-01 + 3.382800000000e-09 -3.760215960330e-01 + 3.392800000000e-09 -4.332315189045e-01 + 3.402800000000e-09 -4.278880002964e-01 + 3.412800000000e-09 -3.634729823184e-01 + 3.422800000000e-09 -2.508347204023e-01 + 3.432800000000e-09 -1.051490163853e-01 + 3.442800000000e-09 5.642111967785e-02 + 3.452800000000e-09 2.135062591801e-01 + 3.462800000000e-09 3.424039579032e-01 + 3.472800000000e-09 4.216061231566e-01 + 3.482800000000e-09 4.392439009265e-01 + 3.492800000000e-09 3.951648797999e-01 + 3.502800000000e-09 2.979284288406e-01 + 3.512800000000e-09 1.617038729252e-01 + 3.522800000000e-09 3.094406264446e-03 + 3.532800000000e-09 -1.589639631847e-01 + 3.542800000000e-09 -3.015127026753e-01 + 3.552800000000e-09 -4.012118749243e-01 + 3.562800000000e-09 -4.420392036281e-01 + 3.572800000000e-09 -4.197340828683e-01 + 3.582800000000e-09 -3.400302595468e-01 + 3.592800000000e-09 -2.155815496487e-01 + 3.602800000000e-09 -6.250732511425e-02 + 3.612800000000e-09 1.013863584631e-01 + 3.622800000000e-09 2.544326524613e-01 + 3.632800000000e-09 3.725556128024e-01 + 3.642800000000e-09 4.360684993020e-01 + 3.652800000000e-09 4.363722865961e-01 + 3.662800000000e-09 3.761769816303e-01 + 3.672800000000e-09 2.659607738525e-01 + 3.682800000000e-09 1.209022932249e-01 + 3.692800000000e-09 -4.184245833596e-02 + 3.702800000000e-09 -2.021147489527e-01 + 3.712800000000e-09 -3.360741465119e-01 + 3.722800000000e-09 -4.213766501735e-01 + 3.732800000000e-09 -4.449720124966e-01 + 3.742800000000e-09 -4.057782947501e-01 + 3.752800000000e-09 -3.118206707814e-01 + 3.762800000000e-09 -1.770969985886e-01 + 3.772800000000e-09 -1.825180588927e-02 + 3.782800000000e-09 1.459741071650e-01 + 3.792800000000e-09 2.927138819686e-01 + 3.802800000000e-09 3.980981908841e-01 + 3.812800000000e-09 4.449162722959e-01 + 3.822800000000e-09 4.279069945588e-01 + 3.832800000000e-09 3.523939747505e-01 + 3.842800000000e-09 2.304948648088e-01 + 3.852800000000e-09 7.806858961289e-02 + 3.862800000000e-09 -8.705373884443e-02 + 3.872800000000e-09 -2.434126417664e-01 + 3.882800000000e-09 -3.667031627096e-01 + 3.892800000000e-09 -4.362916349468e-01 + 3.902800000000e-09 -4.424154161085e-01 + 3.912800000000e-09 -3.869309646048e-01 + 3.922800000000e-09 -2.798446345973e-01 + 3.932800000000e-09 -1.362158039085e-01 + 3.942800000000e-09 2.684030268943e-02 + 3.952800000000e-09 1.894474697250e-01 + 3.962800000000e-09 3.277914979301e-01 + 3.972800000000e-09 4.188614643566e-01 + 3.982800000000e-09 4.484580123404e-01 + 3.992800000000e-09 4.145031315586e-01 + 4.002800000000e-09 3.243953444562e-01 + 4.012800000000e-09 1.918579412469e-01 + 4.022800000000e-09 3.351987347420e-02 + 4.032800000000e-09 -1.321041421442e-01 + 4.042800000000e-09 -2.823608026371e-01 + 4.052800000000e-09 -3.930187530303e-01 + 4.062800000000e-09 -4.458303316835e-01 + 4.072800000000e-09 -4.344302042391e-01 + 4.082800000000e-09 -3.633699593281e-01 + 4.092800000000e-09 -2.443591503268e-01 + 4.102800000000e-09 -9.320218954166e-02 + 4.112800000000e-09 7.241823590303e-02 + 4.122800000000e-09 2.313604515469e-01 + 4.132800000000e-09 3.592426659465e-01 + 4.142800000000e-09 4.346215599414e-01 + 4.152800000000e-09 4.465826608248e-01 + 4.162800000000e-09 3.960804614218e-01 + 4.172800000000e-09 2.925783535359e-01 + 4.182800000000e-09 1.509275659802e-01 + 4.192800000000e-09 -1.182037376398e-02 + 4.202800000000e-09 -1.761014444495e-01 + 4.212800000000e-09 -3.182457116187e-01 + 4.222800000000e-09 -4.147234091036e-01 + 4.232800000000e-09 -4.502443861846e-01 + 4.242800000000e-09 -4.216953104870e-01 + 4.252800000000e-09 -3.357864506240e-01 + 4.262800000000e-09 -2.058942068049e-01 + 4.272800000000e-09 -4.858679705157e-02 + 4.282800000000e-09 1.178524954807e-01 + 4.292800000000e-09 2.710610567089e-01 + 4.302800000000e-09 3.865836270775e-01 + 4.312800000000e-09 4.452265969897e-01 + 4.322800000000e-09 4.395062868883e-01 + 4.332800000000e-09 3.731571253711e-01 + 4.342800000000e-09 2.574215751877e-01 + 4.352800000000e-09 1.079772567998e-01 + 4.362800000000e-09 -5.763880726732e-02 + 4.372800000000e-09 -2.186405831505e-01 + 4.382800000000e-09 -3.506797463517e-01 + 4.392800000000e-09 -4.316187371044e-01 + 4.402800000000e-09 -4.494103896830e-01 + 4.412800000000e-09 -4.040682854076e-01 + 4.422800000000e-09 -3.044597969385e-01 + 4.432800000000e-09 -1.651628025086e-01 + 4.442800000000e-09 -3.151005009160e-03 + 4.452800000000e-09 1.623299471195e-01 + 4.462800000000e-09 3.078346913894e-01 + 4.472800000000e-09 4.094342698254e-01 + 4.482800000000e-09 4.508056471657e-01 + 4.492800000000e-09 4.277695176214e-01 + 4.502800000000e-09 3.464754759972e-01 + 4.512800000000e-09 2.197351894046e-01 + 4.522800000000e-09 6.377451979619e-02 + 4.532800000000e-09 -1.031789201592e-01 + 4.542800000000e-09 -2.590613479212e-01 + 4.552800000000e-09 -3.792818416463e-01 + 4.562800000000e-09 -4.437538409464e-01 + 4.572800000000e-09 -4.438478644656e-01 + 4.582800000000e-09 -3.824340874877e-01 + 4.592800000000e-09 -2.702434040912e-01 + 4.602800000000e-09 -1.227760926410e-01 + 4.612800000000e-09 4.255957006791e-02 + 4.622800000000e-09 2.053469797291e-01 + 4.632800000000e-09 3.413399298812e-01 + 4.642800000000e-09 4.277829578033e-01 + 4.652800000000e-09 4.514961040063e-01 + 4.662800000000e-09 4.115053677173e-01 + 4.672800000000e-09 3.160333583063e-01 + 4.682800000000e-09 1.793392706242e-01 + 4.692800000000e-09 1.831471168221e-02 + 4.702800000000e-09 -1.481022872447e-01 + 4.712800000000e-09 -2.967423528805e-01 + 4.722800000000e-09 -4.033577943192e-01 + 4.732800000000e-09 -4.505353421439e-01 + 4.742800000000e-09 -4.330646939644e-01 + 4.752800000000e-09 -3.564206992869e-01 + 4.762800000000e-09 -2.329235320056e-01 + 4.772800000000e-09 -7.867056750310e-02 + 4.782800000000e-09 8.833703701769e-02 + 4.792800000000e-09 2.464194557553e-01 + 4.802800000000e-09 3.709576766856e-01 + 4.812800000000e-09 4.410728138436e-01 + 4.822800000000e-09 4.469925130856e-01 + 4.832800000000e-09 3.906873535991e-01 + 4.842800000000e-09 2.823280405418e-01 + 4.852800000000e-09 1.371764027989e-01 + 4.862800000000e-09 -2.748809763935e-02 + 4.872800000000e-09 -1.916279789479e-01 + 4.882800000000e-09 -3.311820964222e-01 + 4.892800000000e-09 -4.228883965678e-01 + 4.902800000000e-09 -4.524749665361e-01 + 4.912800000000e-09 -4.179469588790e-01 + 4.922800000000e-09 -3.268375012521e-01 + 4.932800000000e-09 -1.930362269311e-01 + 4.942800000000e-09 -3.333190640457e-02 + 4.952800000000e-09 1.336351275887e-01 + 4.962800000000e-09 2.850243389742e-01 + 4.972800000000e-09 3.963750379220e-01 + 4.982800000000e-09 4.493213773298e-01 + 4.992800000000e-09 4.375462491890e-01 + 5.002800000000e-09 3.657094634544e-01 + 5.012800000000e-09 2.456540061969e-01 + 5.022800000000e-09 9.333551717566e-02 + 5.032800000000e-09 -7.345189170439e-02 + 5.042800000000e-09 -2.334277955384e-01 + 5.052800000000e-09 -3.620185196221e-01 + 5.062800000000e-09 -4.376356743324e-01 + 5.072800000000e-09 -4.493733383532e-01 + 5.082800000000e-09 -3.982745749729e-01 + 5.092800000000e-09 -2.939157477925e-01 + 5.102800000000e-09 -1.512781481447e-01 + 5.112800000000e-09 1.247935907657e-02 + 5.122800000000e-09 1.776888349322e-01 + 5.132800000000e-09 3.205270437796e-01 + 5.142800000000e-09 4.173137839880e-01 + 5.152800000000e-09 4.527266476960e-01 + 5.162800000000e-09 4.237235060298e-01 + 5.172800000000e-09 3.371129892632e-01 + 5.182800000000e-09 2.063816216319e-01 + 5.192800000000e-09 4.820123453350e-02 + 5.202800000000e-09 -1.190627133892e-01 + 5.212800000000e-09 -2.729280772878e-01 + 5.222800000000e-09 -3.888006633784e-01 + 5.232800000000e-09 -4.474247144904e-01 + 5.242800000000e-09 -4.413661284824e-01 + 5.252800000000e-09 -3.744436368231e-01 + 5.262800000000e-09 -2.579925491708e-01 + 5.272800000000e-09 -1.077883034052e-01 + 5.282800000000e-09 5.855820359311e-02 + 5.292800000000e-09 2.201699217775e-01 + 5.302800000000e-09 3.525793225546e-01 + 5.312800000000e-09 4.335671920830e-01 + 5.322800000000e-09 4.511095701252e-01 + 5.332800000000e-09 4.052950583099e-01 + 5.342800000000e-09 3.050743963154e-01 + 5.352800000000e-09 1.651124085734e-01 + 5.362800000000e-09 2.453406883355e-03 + 5.372800000000e-09 -1.635874072246e-01 + 5.382800000000e-09 -3.094660799040e-01 + 5.392800000000e-09 -4.111651170660e-01 + 5.402800000000e-09 -4.523567448826e-01 + 5.412800000000e-09 -4.289277900293e-01 + 5.422800000000e-09 -3.471071645222e-01 + 5.432800000000e-09 -2.197814536101e-01 + 5.442800000000e-09 -6.324398612689e-02 + 5.452800000000e-09 1.042204038601e-01 + 5.462800000000e-09 2.604685273157e-01 + 5.472800000000e-09 3.808242547212e-01 + 5.482800000000e-09 4.451748873662e-01 + 5.492800000000e-09 4.449433602630e-01 + 5.502800000000e-09 3.830711531518e-01 + 5.512800000000e-09 2.703585424667e-01 + 5.522800000000e-09 1.223716801552e-01 + 5.532800000000e-09 -4.343152127598e-02 + 5.542800000000e-09 -2.065716438055e-01 + 5.552800000000e-09 -3.427257951236e-01 + 5.562800000000e-09 -4.290958478040e-01 + 5.572800000000e-09 -4.525359066652e-01 + 5.582800000000e-09 -4.121402236532e-01 + 5.592800000000e-09 -3.161981038449e-01 + 5.602800000000e-09 -1.790304235564e-01 + 5.612800000000e-09 -1.757599494896e-02 + 5.622800000000e-09 1.491786199266e-01 + 5.632800000000e-09 2.979971258897e-01 + 5.642800000000e-09 4.045803087305e-01 + 5.652800000000e-09 4.515297208669e-01 + 5.662800000000e-09 4.336987038356e-01 + 5.672800000000e-09 3.566272526616e-01 + 5.682800000000e-09 2.326927119262e-01 + 5.692800000000e-09 7.803903677108e-02 + 5.702800000000e-09 -8.929279535557e-02 + 5.712800000000e-09 -2.475661837267e-01 + 5.722800000000e-09 -3.721080937986e-01 + 5.732800000000e-09 -4.420356039653e-01 + 5.742800000000e-09 -4.476316030416e-01 + 5.752800000000e-09 -3.909313268800e-01 + 5.762800000000e-09 -2.821617554345e-01 + 5.772800000000e-09 -1.366320418911e-01 + 5.782800000000e-09 2.834432294743e-02 + 5.792800000000e-09 1.926838745143e-01 + 5.802800000000e-09 3.322730500098e-01 + 5.812800000000e-09 4.238301631456e-01 + 5.822800000000e-09 4.531246455905e-01 + 5.832800000000e-09 4.182270087871e-01 + 5.842800000000e-09 3.267281222976e-01 + 5.852800000000e-09 1.925649055690e-01 + 5.862800000000e-09 3.255872128929e-02 + 5.872800000000e-09 -1.346146639370e-01 + 5.882800000000e-09 -2.860658576396e-01 + 5.892800000000e-09 -3.973039070802e-01 + 5.902800000000e-09 -4.499889190912e-01 + 5.912800000000e-09 -4.378672938782e-01 + 5.922800000000e-09 -3.656580869349e-01 + 5.932800000000e-09 -2.452512222201e-01 + 5.942800000000e-09 -9.263589885403e-02 + 5.952800000000e-09 7.436522049121e-02 + 5.962800000000e-09 2.344283045648e-01 + 5.972800000000e-09 3.629433615632e-01 + 5.982800000000e-09 4.383309082897e-01 + 5.992800000000e-09 4.497425449808e-01 + 6.002800000000e-09 3.982829151160e-01 + 6.012800000000e-09 2.935775837171e-01 + 6.022800000000e-09 1.506446452819e-01 + 6.032800000000e-09 -1.333310888113e-02 + 6.042800000000e-09 -1.786522004354e-01 + 6.052800000000e-09 -3.214506252573e-01 + 6.062800000000e-09 -4.180415406940e-01 + 6.072800000000e-09 -4.531483429842e-01 + 6.082800000000e-09 -4.237934241428e-01 + 6.092800000000e-09 -3.368386752578e-01 + 6.102800000000e-09 -2.058098565868e-01 + 6.112800000000e-09 -4.740247032705e-02 + 6.122800000000e-09 1.199911591083e-01 + 6.132800000000e-09 2.738503733411e-01 + 6.142800000000e-09 3.895624310380e-01 + 6.152800000000e-09 4.479038287138e-01 + 6.162800000000e-09 4.415044550403e-01 + 6.172800000000e-09 3.742394859462e-01 + 6.182800000000e-09 2.574856932616e-01 + 6.192800000000e-09 1.070448037276e-01 + 6.202800000000e-09 -5.945129415316e-02 + 6.212800000000e-09 -2.210902476148e-01 + 6.222800000000e-09 -3.533778429436e-01 + 6.232800000000e-09 -4.341106359302e-01 + 6.242800000000e-09 -4.513236412508e-01 + 6.252800000000e-09 -4.051660174368e-01 + 6.262800000000e-09 -3.046342192661e-01 + 6.272800000000e-09 -1.644241824532e-01 + 6.282800000000e-09 -1.597687104830e-03 + 6.292800000000e-09 1.645013262186e-01 + 6.302800000000e-09 3.102975938827e-01 + 6.312800000000e-09 4.117736296715e-01 + 6.322800000000e-09 4.526496809116e-01 + 6.332800000000e-09 4.288773116639e-01 + 6.342800000000e-09 3.467384945714e-01 + 6.352800000000e-09 2.191532900740e-01 + 6.362800000000e-09 6.243116668248e-02 + 6.372800000000e-09 -1.051205706633e-01 + 6.382800000000e-09 -2.613258061701e-01 + 6.392800000000e-09 -3.814955608889e-01 + 6.402800000000e-09 -4.455519965392e-01 + 6.412800000000e-09 -4.449824384864e-01 + 6.422800000000e-09 -3.827837072787e-01 + 6.432800000000e-09 -2.697949113003e-01 + 6.442800000000e-09 -1.216048446404e-01 + 6.452800000000e-09 4.431272990907e-02 + 6.462800000000e-09 2.074482717505e-01 + 6.472800000000e-09 3.434569154053e-01 + 6.482800000000e-09 4.295589302343e-01 + 6.492800000000e-09 4.526677323571e-01 + 6.502800000000e-09 4.119381484774e-01 + 6.512800000000e-09 3.157037971491e-01 + 6.522800000000e-09 1.783138790857e-01 + 6.532800000000e-09 1.672070461295e-02 + 6.542800000000e-09 -1.500651785273e-01 + 6.552800000000e-09 -2.987800270015e-01 + 6.562800000000e-09 -4.051271152203e-01 + 6.572800000000e-09 -4.517576970242e-01 + 6.582800000000e-09 -4.335892375834e-01 + 6.592800000000e-09 -3.562119702528e-01 + 6.602800000000e-09 -2.320358295781e-01 + 6.612800000000e-09 -7.721932382598e-02 + 6.622800000000e-09 9.017852369161e-02 + 6.632800000000e-09 2.483915429759e-01 + 6.642800000000e-09 3.727359980060e-01 + 6.652800000000e-09 4.423639703294e-01 + 6.662800000000e-09 4.476228769375e-01 + 6.672800000000e-09 3.906033473837e-01 + 6.682800000000e-09 2.815703297821e-01 + 6.692800000000e-09 1.358542224595e-01 + 6.702800000000e-09 -2.921905543934e-02 + 6.712800000000e-09 -1.935393867442e-01 + 6.722800000000e-09 -3.329731407507e-01 + 6.732800000000e-09 -4.242569877345e-01 + 6.742800000000e-09 -4.532191334792e-01 + 6.752800000000e-09 -4.179913503037e-01 + 6.762800000000e-09 -3.262087975954e-01 + 6.772800000000e-09 -1.918356638224e-01 + 6.782800000000e-09 -3.170465554624e-02 + 6.792800000000e-09 1.354879795326e-01 + 6.802800000000e-09 2.868272173136e-01 + 6.812800000000e-09 3.978246369545e-01 + 6.822800000000e-09 4.501891374374e-01 + 6.832800000000e-09 4.377317720538e-01 + 6.842800000000e-09 3.652219350369e-01 + 6.852800000000e-09 2.445816952961e-01 + 6.862800000000e-09 9.181417442116e-02 + 6.872800000000e-09 -7.524320241308e-02 + 6.882800000000e-09 -2.352392066114e-01 + 6.892800000000e-09 -3.635534079937e-01 + 6.902800000000e-09 -4.386399758076e-01 + 6.912800000000e-09 -4.497148284065e-01 + 6.922800000000e-09 -3.979386785893e-01 + 6.932800000000e-09 -2.929751890382e-01 + 6.942800000000e-09 -1.498635038181e-01 + 6.952800000000e-09 1.420345890372e-02 + 6.962800000000e-09 1.794982142068e-01 + 6.972800000000e-09 3.221391512618e-01 + 6.982800000000e-09 4.184562565203e-01 + 6.992800000000e-09 4.532304753875e-01 + 7.002800000000e-09 4.235464462256e-01 + 7.012800000000e-09 3.363110845818e-01 + 7.022800000000e-09 2.050772806964e-01 + 7.032800000000e-09 4.655087830826e-02 + 7.042800000000e-09 -1.208581519926e-01 + 7.052800000000e-09 -2.746043652828e-01 + 7.062800000000e-09 -3.900763135214e-01 + 7.072800000000e-09 -4.480974792065e-01 + 7.082800000000e-09 -4.413628553731e-01 + 7.092800000000e-09 -3.737985800655e-01 + 7.102800000000e-09 -2.568138667525e-01 + 7.112800000000e-09 -1.062247036159e-01 + 7.122800000000e-09 6.032481086846e-02 + 7.132800000000e-09 2.218965196501e-01 + 7.142800000000e-09 3.539849918828e-01 + 7.152800000000e-09 4.344180933327e-01 + 7.162800000000e-09 4.512945383319e-01 + 7.172800000000e-09 4.048205989524e-01 + 7.182800000000e-09 3.040315720209e-01 + 7.192800000000e-09 1.636449243428e-01 + 7.202800000000e-09 7.310997426349e-04 + 7.212800000000e-09 -1.653441829344e-01 + 7.222800000000e-09 -3.109857585534e-01 + 7.232800000000e-09 -4.121905650896e-01 + 7.242800000000e-09 -4.527345878258e-01 + 7.252800000000e-09 -4.286327234880e-01 + 7.262800000000e-09 -3.462148146484e-01 + 7.272800000000e-09 -2.184271262887e-01 + 7.282800000000e-09 -6.158668581548e-02 + 7.292800000000e-09 1.059825748726e-01 + 7.302800000000e-09 2.620796529042e-01 + 7.312800000000e-09 3.820147090838e-01 + 7.322800000000e-09 4.457541018708e-01 + 7.332800000000e-09 4.448503265094e-01 + 7.342800000000e-09 3.823519830960e-01 + 7.352800000000e-09 2.691313908070e-01 + 7.362800000000e-09 1.207925821351e-01 + 7.372800000000e-09 -4.518044806513e-02 + 7.382800000000e-09 -2.082537425182e-01 + 7.392800000000e-09 -3.440697336480e-01 + 7.402800000000e-09 -4.298767486274e-01 + 7.412800000000e-09 -4.526505931314e-01 + 7.422800000000e-09 -4.116043288987e-01 + 7.432800000000e-09 -3.151114799416e-01 + 7.442800000000e-09 -1.775436699036e-01 + 7.452800000000e-09 -1.586108401901e-02 + 7.462800000000e-09 1.509060016887e-01 + 7.472800000000e-09 2.994732552628e-01 + 7.482800000000e-09 4.055552446561e-01 + 7.492800000000e-09 4.518577755664e-01 + 7.502800000000e-09 4.333613685931e-01 + 7.512800000000e-09 3.557031954498e-01 + 7.522800000000e-09 2.313212265592e-01 + 7.532800000000e-09 7.638306707386e-02 + 7.542800000000e-09 -9.103790894707e-02 + 7.552800000000e-09 -2.491508297629e-01 + 7.562800000000e-09 -3.732685310033e-01 + 7.572800000000e-09 -4.425839241033e-01 + 7.582800000000e-09 -4.475093395178e-01 + 7.592800000000e-09 -3.901883110754e-01 + 7.602800000000e-09 -2.809201118140e-01 + 7.612800000000e-09 -1.350517639326e-01 + 7.622800000000e-09 3.008200039167e-02 + 7.632800000000e-09 1.943479060390e-01 + 7.642800000000e-09 3.335978834820e-01 + 7.652800000000e-09 4.245929249058e-01 + 7.662800000000e-09 4.532218782474e-01 + 7.672800000000e-09 4.176760083879e-01 + 7.682800000000e-09 3.256317822098e-01 + 7.692800000000e-09 1.910769229022e-01 + 7.702800000000e-09 3.085187663860e-02 + 7.712800000000e-09 -1.363292828189e-01 + 7.722800000000e-09 -2.875301070108e-01 + 7.732800000000e-09 -3.982700946290e-01 + 7.742800000000e-09 -4.503098978561e-01 + 7.752800000000e-09 -4.375242704341e-01 + 7.762800000000e-09 -3.647306057776e-01 + 7.772800000000e-09 -2.438801411396e-01 + 7.782800000000e-09 -9.098645929918e-02 + 7.792800000000e-09 7.610062103479e-02 + 7.802800000000e-09 2.360054926400e-01 + 7.812800000000e-09 3.641017446377e-01 + 7.822800000000e-09 4.388807689593e-01 + 7.832800000000e-09 4.496228216452e-01 + 7.842800000000e-09 3.975427835286e-01 + 7.852800000000e-09 2.923399216838e-01 + 7.862800000000e-09 1.490714714847e-01 + 7.872800000000e-09 -1.506186328175e-02 + 7.882800000000e-09 -1.803107819833e-01 + 7.892800000000e-09 -3.227775586578e-01 + 7.902800000000e-09 -4.188126725671e-01 + 7.912800000000e-09 -4.532556221154e-01 + 7.922800000000e-09 -4.232518061215e-01 + 7.932800000000e-09 -3.357510021860e-01 + 7.942800000000e-09 -2.043307717794e-01 + 7.952800000000e-09 -4.570496696407e-02 + 7.962800000000e-09 1.217004827930e-01 + 7.972800000000e-09 2.753180020773e-01 + 7.982800000000e-09 3.905407570148e-01 + 7.992800000000e-09 4.482409267913e-01 + 8.002800000000e-09 4.411776601887e-01 + 8.012800000000e-09 3.733262552326e-01 + 8.022800000000e-09 2.561263095202e-01 + 8.032800000000e-09 1.054058229458e-01 + 8.042800000000e-09 -6.118043076191e-02 + 8.052800000000e-09 -2.226704240164e-01 + 8.062800000000e-09 -3.545502986493e-01 + 8.072800000000e-09 -4.346813731784e-01 + 8.082800000000e-09 -4.512257838136e-01 + 8.092800000000e-09 -4.044453279617e-01 + 8.102800000000e-09 -3.034123134946e-01 + 8.112800000000e-09 -1.628637659678e-01 + 8.122800000000e-09 1.227403854043e-04 + 8.132800000000e-09 1.661611212644e-01 + 8.142800000000e-09 3.116385510449e-01 + 8.152800000000e-09 4.125686421349e-01 + 8.162800000000e-09 4.527835271671e-01 + 8.172800000000e-09 4.283600783758e-01 + 8.182800000000e-09 3.456742908771e-01 + 8.192800000000e-09 2.176969643918e-01 + 8.202800000000e-09 6.075113117837e-02 + 8.212800000000e-09 -1.068237739657e-01 + 8.222800000000e-09 -2.628035899010e-01 + 8.232800000000e-09 -3.824997032154e-01 + 8.242800000000e-09 -4.459235737529e-01 + 8.252800000000e-09 -4.446918798180e-01 + 8.262800000000e-09 -3.819034904249e-01 + 8.272800000000e-09 -2.684624086510e-01 + 8.282800000000e-09 -1.199863799953e-01 + 8.292800000000e-09 4.603137612030e-02 + 8.302800000000e-09 2.090337758211e-01 + 8.312800000000e-09 3.446523580322e-01 + 8.322800000000e-09 4.301647660121e-01 + 8.332800000000e-09 4.526086953756e-01 + 8.342800000000e-09 4.112540123518e-01 + 8.352800000000e-09 3.145126892591e-01 + 8.362800000000e-09 1.767773800346e-01 + 8.372800000000e-09 1.501511692795e-02 + 8.382800000000e-09 -1.517250350381e-01 + 8.392800000000e-09 -3.001396658121e-01 + 8.402800000000e-09 -4.059560327283e-01 + 8.412800000000e-09 -4.520205631328e-01 + 8.422800000000e-09 -4.333013889991e-01 + 8.432800000000e-09 -3.553501134873e-01 + 8.442800000000e-09 -2.307017917929e-01 + 8.452800000000e-09 -7.557691179721e-02 + 8.462800000000e-09 9.193544079149e-02 + 8.472800000000e-09 2.500118267419e-01 + 8.482800000000e-09 3.739500525906e-01 + 8.492800000000e-09 4.429749828217e-01 + 8.502800000000e-09 4.475628116676e-01 + 8.512800000000e-09 3.899136556992e-01 + 8.522800000000e-09 2.803664639685e-01 + 8.532800000000e-09 1.342921979718e-01 + 8.542800000000e-09 -3.095980481447e-02 + 8.552800000000e-09 -1.952272295913e-01 + 8.562800000000e-09 -3.343389203470e-01 + 8.572800000000e-09 -4.250708604665e-01 + 8.582800000000e-09 -4.533696663363e-01 + 8.592800000000e-09 -4.174882844728e-01 + 8.602800000000e-09 -3.251489451374e-01 + 8.612800000000e-09 -1.903685195829e-01 + 8.622800000000e-09 -3.000103383995e-02 + 8.632800000000e-09 1.372172585006e-01 + 8.642800000000e-09 2.883217905722e-01 + 8.652800000000e-09 3.988318116407e-01 + 8.662800000000e-09 4.505550418705e-01 + 8.672800000000e-09 4.374310982897e-01 + 8.682800000000e-09 3.643286108290e-01 + 8.692800000000e-09 2.432325104502e-01 + 8.702800000000e-09 9.017208092605e-02 + 8.712800000000e-09 -7.698638669816e-02 + 8.722800000000e-09 -2.368381648259e-01 + 8.732800000000e-09 -3.647439781147e-01 + 8.742800000000e-09 -4.392271095061e-01 + 8.752800000000e-09 -4.496318190528e-01 + 8.762800000000e-09 -3.972297454706e-01 + 8.772800000000e-09 -2.917592971055e-01 + 8.782800000000e-09 -1.483002995478e-01 + 8.792800000000e-09 1.593497814495e-02 + 8.802800000000e-09 1.811717426943e-01 + 8.812800000000e-09 3.234908782015e-01 + 8.822800000000e-09 4.192578535185e-01 + 8.832800000000e-09 4.533691567007e-01 + 8.842800000000e-09 4.230327410595e-01 + 8.852800000000e-09 3.352442492525e-01 + 8.862800000000e-09 2.036095302049e-01 + 8.872800000000e-09 4.485411613014e-02 + 8.882800000000e-09 -1.225772356004e-01 + 8.892800000000e-09 -2.760907078269e-01 + 8.902800000000e-09 -3.910792039687e-01 + 8.912800000000e-09 -4.484610142738e-01 + 8.922800000000e-09 -4.410605637271e-01 + 8.932800000000e-09 -3.729046886868e-01 + 8.942800000000e-09 -2.554663339083e-01 + 8.952800000000e-09 -1.045887957783e-01 + 8.962800000000e-09 6.205981505962e-02 + 8.972800000000e-09 2.234905463095e-01 + 8.982800000000e-09 3.551769795941e-01 + 8.992800000000e-09 4.350108318704e-01 + 9.002800000000e-09 4.512178790282e-01 + 9.012800000000e-09 4.041174506079e-01 + 9.022800000000e-09 3.028213425265e-01 + 9.032800000000e-09 1.620889968087e-01 + 9.042800000000e-09 -9.924088109476e-04 + 9.052800000000e-09 -1.670140235930e-01 + 9.062800000000e-09 -3.123420802246e-01 + 9.072800000000e-09 -4.130036886060e-01 + 9.082800000000e-09 -4.528865389636e-01 + 9.092800000000e-09 -4.281310782305e-01 + 9.102800000000e-09 -3.451616986157e-01 + 9.112800000000e-09 -2.169760700597e-01 + 9.122800000000e-09 -5.990554642082e-02 + 9.132800000000e-09 1.076929419654e-01 + 9.142800000000e-09 2.635694599151e-01 + 9.152800000000e-09 3.830337087674e-01 + 9.162800000000e-09 4.461410144829e-01 + 9.172800000000e-09 4.445734193731e-01 + 9.182800000000e-09 3.814819626487e-01 + 9.192800000000e-09 2.678043947074e-01 + 9.202800000000e-09 1.191742902063e-01 + 9.212800000000e-09 -4.690413962261e-02 + 9.222800000000e-09 -2.098486274487e-01 + 9.232800000000e-09 -3.452772829161e-01 + 9.242800000000e-09 -4.304954499246e-01 + 9.252800000000e-09 -4.526033413583e-01 + 9.262800000000e-09 -4.109293493119e-01 + 9.272800000000e-09 -3.139257444767e-01 + 9.282800000000e-09 -1.760081177959e-01 + 9.292800000000e-09 -1.415196561556e-02 + 9.302800000000e-09 1.525732116921e-01 + 9.312800000000e-09 3.008427992731e-01 + 9.322800000000e-09 4.063949573273e-01 + 9.332800000000e-09 4.521293740465e-01 + 9.342800000000e-09 4.330785923072e-01 + 9.352800000000e-09 3.548436621013e-01 + 9.362800000000e-09 2.299870281050e-01 + 9.372800000000e-09 7.473788162702e-02 + 9.382800000000e-09 -9.279973807112e-02 + 9.392800000000e-09 -2.507772460749e-01 + 9.402800000000e-09 -3.744888347925e-01 + 9.412800000000e-09 -4.432003893128e-01 + 9.422800000000e-09 -4.474532871830e-01 + 9.432800000000e-09 -3.895007293034e-01 + 9.442800000000e-09 -2.797162000302e-01 + 9.452800000000e-09 -1.334874635932e-01 + 9.462800000000e-09 3.182693263112e-02 + 9.472800000000e-09 1.960410584103e-01 + 9.482800000000e-09 3.349690861408e-01 + 9.492800000000e-09 4.254114804469e-01 + 9.502800000000e-09 4.533758279939e-01 + 9.512800000000e-09 4.171747267070e-01 + 9.522800000000e-09 3.245718547999e-01 + 9.532800000000e-09 1.896078083623e-01 + 9.542800000000e-09 2.914458686168e-02 + 9.552800000000e-09 -1.380632740455e-01 + 9.562800000000e-09 -2.890295264146e-01 + 9.572800000000e-09 -3.992814056422e-01 + 9.582800000000e-09 -4.506787354590e-01 + 9.592800000000e-09 -4.372250333377e-01 + 9.602800000000e-09 -3.638370987793e-01 + 9.612800000000e-09 -2.425291719588e-01 + 9.622800000000e-09 -8.934108102947e-02 + 9.632800000000e-09 7.784809038302e-02 + 9.642800000000e-09 2.376089032823e-01 + 9.652800000000e-09 3.652960855145e-01 + 9.662800000000e-09 4.394704812004e-01 + 9.672800000000e-09 4.495409940984e-01 + 9.682800000000e-09 3.968335606967e-01 + 9.692800000000e-09 2.911223051032e-01 + 9.702800000000e-09 1.475052155362e-01 + 9.712800000000e-09 -1.679738560355e-02 + 9.722800000000e-09 -1.819885123124e-01 + 9.732800000000e-09 -3.241328388856e-01 + 9.742800000000e-09 -4.196166178959e-01 + 9.752800000000e-09 -4.533952907688e-01 + 9.762800000000e-09 -4.227377063925e-01 + 9.772800000000e-09 -3.346824428589e-01 + 9.782800000000e-09 -2.028601212935e-01 + 9.792800000000e-09 -4.400439860500e-02 + 9.802800000000e-09 1.234236306485e-01 + 9.812800000000e-09 2.768078469650e-01 + 9.822800000000e-09 3.915459502709e-01 + 9.832800000000e-09 4.486053590697e-01 + 9.842800000000e-09 4.408748739016e-01 + 9.852800000000e-09 3.724306116446e-01 + 9.862800000000e-09 2.547759754158e-01 + 9.872800000000e-09 1.037662637715e-01 + 9.882800000000e-09 -6.291942160305e-02 + 9.892800000000e-09 -2.242679826661e-01 + 9.902800000000e-09 -3.557446468578e-01 + 9.912800000000e-09 -4.352750113677e-01 + 9.922800000000e-09 -4.511486238742e-01 + 9.932800000000e-09 -4.037404398857e-01 + 9.942800000000e-09 -3.021993202790e-01 + 9.952800000000e-09 -1.613042783594e-01 + 9.962800000000e-09 1.850204572038e-03 + 9.972800000000e-09 1.678345791808e-01 + 9.982800000000e-09 3.129973889485e-01 + 9.992800000000e-09 4.133827788063e-01 + 1.000000000000e-08 4.484478536981e-01 diff --git a/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_19/conditions.yaml b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_19/conditions.yaml new file mode 100644 index 00000000..6b58f300 --- /dev/null +++ b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_19/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/LC_Oscillator/xschem/simulations/schematic/LC_Oscillator.spice +N: 19 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: tt +filename: LC_Oscillator_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_19 +temperature: '80' +vdd: '1.2' diff --git a/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_20/.spiceinit b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_20/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_20/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_20/LC_Oscillator.sym b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_20/LC_Oscillator.sym new file mode 100644 index 00000000..e632b156 --- /dev/null +++ b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_20/LC_Oscillator.sym @@ -0,0 +1,27 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 70 -20 90 -20 {} +L 4 70 20 90 20 {} +L 7 20 70 20 90 {} +L 7 -20 70 -20 90 {} +B 5 87.5 -22.5 92.5 -17.5 {name=Voplus dir=out} +B 5 17.5 87.5 22.5 92.5 {name=vdd dir=inout} +B 5 -22.5 87.5 -17.5 92.5 {name=gnd dir=inout} +B 5 87.5 17.5 92.5 22.5 {name=Vominus dir=out} +A 4 -1.666666666666714 1.666666666666714 71.68604389202189 287.5924245621816 360 {} +A 4 -30 27.5 40.69705149024927 42.51044707800085 94.97910584399833 {} +A 4 30 -27.5 40.69705149024927 222.5104470780009 94.97910584399833 {} +T {@symname} -40.5 -56 0 0 0.1 0.1 {} +T {@name} -40 -47 0 0 0.1 0.1 { +} +T {Voplus} 65 -24 0 1 0.2 0.2 {} +T {vdd} 5 64 2 1 0.2 0.2 {} +T {gnd} -35 64 2 1 0.2 0.2 {} +T {Vominus} 65 16 0 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_20/LC_Oscillator_tb.sch b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_20/LC_Oscillator_tb.sch new file mode 100644 index 00000000..f4413a3d --- /dev/null +++ b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_20/LC_Oscillator_tb.sch @@ -0,0 +1,57 @@ +v {xschem version=3.4.8RC file_version=1.3} +G {} +K {} +V {} +S {} +F {} +E {} +N 1570 -1060 1570 -1030 {lab=VDD} +N 1570 -970 1570 -940 {lab=GND} +N 1270 -1050 1270 -1030 {lab=GND} +N 1230 -1060 1230 -1030 {lab=VDD} +N 1140 -920 1160 -920 {lab=Voplus} +N 1140 -960 1160 -960 {lab=Vominus} +C {code_shown.sym} 440 -1140 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write LC_Oscillator_tb.raw +set appendwrite +tran 10p 10n 160p +save all + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_20/LC_Oscillator_tb_20.data vo_diff +quit + +.endc +"} +C {vsource.sym} 1570 -1000 0 0 {name=V1 value=1.6 savecurrent=false} +C {gnd.sym} 1570 -940 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1570 -1060 0 0 {name=p2 sig_type=std_logic lab=VDD} +C {opin.sym} 1140 -920 2 0 {name=p6 lab=Voplus} +C {gnd.sym} 1270 -1050 2 0 {name=l3 lab=GND} +C {opin.sym} 1140 -960 0 1 {name=p9 lab=Vominus} +C {LC_Oscillator.sym} 1250 -940 2 0 {name=x1} +C {devices/code_shown.sym} 450 -640 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_tt + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/LC_Oscillator/xschem/simulations/schematic/LC_Oscillator.spice + +.temp 80 +" +} +C {iopin.sym} 1230 -1060 2 0 {name=p1 lab=VDD} diff --git a/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_20/conditions.yaml b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_20/conditions.yaml new file mode 100644 index 00000000..a736c299 --- /dev/null +++ b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_20/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/LC_Oscillator/xschem/simulations/schematic/LC_Oscillator.spice +N: 20 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: tt +filename: LC_Oscillator_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_20 +temperature: '80' +vdd: '1.6' diff --git a/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_21/.spiceinit b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_21/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_21/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_21/LC_Oscillator.sym b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_21/LC_Oscillator.sym new file mode 100644 index 00000000..e632b156 --- /dev/null +++ b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_21/LC_Oscillator.sym @@ -0,0 +1,27 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 70 -20 90 -20 {} +L 4 70 20 90 20 {} +L 7 20 70 20 90 {} +L 7 -20 70 -20 90 {} +B 5 87.5 -22.5 92.5 -17.5 {name=Voplus dir=out} +B 5 17.5 87.5 22.5 92.5 {name=vdd dir=inout} +B 5 -22.5 87.5 -17.5 92.5 {name=gnd dir=inout} +B 5 87.5 17.5 92.5 22.5 {name=Vominus dir=out} +A 4 -1.666666666666714 1.666666666666714 71.68604389202189 287.5924245621816 360 {} +A 4 -30 27.5 40.69705149024927 42.51044707800085 94.97910584399833 {} +A 4 30 -27.5 40.69705149024927 222.5104470780009 94.97910584399833 {} +T {@symname} -40.5 -56 0 0 0.1 0.1 {} +T {@name} -40 -47 0 0 0.1 0.1 { +} +T {Voplus} 65 -24 0 1 0.2 0.2 {} +T {vdd} 5 64 2 1 0.2 0.2 {} +T {gnd} -35 64 2 1 0.2 0.2 {} +T {Vominus} 65 16 0 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_21/LC_Oscillator_tb.sch b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_21/LC_Oscillator_tb.sch new file mode 100644 index 00000000..f5b0c8d4 --- /dev/null +++ b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_21/LC_Oscillator_tb.sch @@ -0,0 +1,57 @@ +v {xschem version=3.4.8RC file_version=1.3} +G {} +K {} +V {} +S {} +F {} +E {} +N 1570 -1060 1570 -1030 {lab=VDD} +N 1570 -970 1570 -940 {lab=GND} +N 1270 -1050 1270 -1030 {lab=GND} +N 1230 -1060 1230 -1030 {lab=VDD} +N 1140 -920 1160 -920 {lab=Voplus} +N 1140 -960 1160 -960 {lab=Vominus} +C {code_shown.sym} 440 -1140 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write LC_Oscillator_tb.raw +set appendwrite +tran 10p 10n 160p +save all + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_21/LC_Oscillator_tb_21.data vo_diff +quit + +.endc +"} +C {vsource.sym} 1570 -1000 0 0 {name=V1 value=0.8 savecurrent=false} +C {gnd.sym} 1570 -940 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1570 -1060 0 0 {name=p2 sig_type=std_logic lab=VDD} +C {opin.sym} 1140 -920 2 0 {name=p6 lab=Voplus} +C {gnd.sym} 1270 -1050 2 0 {name=l3 lab=GND} +C {opin.sym} 1140 -960 0 1 {name=p9 lab=Vominus} +C {LC_Oscillator.sym} 1250 -940 2 0 {name=x1} +C {devices/code_shown.sym} 450 -640 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_ff + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/LC_Oscillator/xschem/simulations/schematic/LC_Oscillator.spice + +.temp 80 +" +} +C {iopin.sym} 1230 -1060 2 0 {name=p1 lab=VDD} diff --git a/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_21/conditions.yaml b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_21/conditions.yaml new file mode 100644 index 00000000..ce71a314 --- /dev/null +++ b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_21/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/LC_Oscillator/xschem/simulations/schematic/LC_Oscillator.spice +N: 21 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: ff +filename: LC_Oscillator_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_21 +temperature: '80' +vdd: '0.8' diff --git a/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_22/.spiceinit b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_22/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_22/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_22/LC_Oscillator.sym b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_22/LC_Oscillator.sym new file mode 100644 index 00000000..e632b156 --- /dev/null +++ b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_22/LC_Oscillator.sym @@ -0,0 +1,27 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 70 -20 90 -20 {} +L 4 70 20 90 20 {} +L 7 20 70 20 90 {} +L 7 -20 70 -20 90 {} +B 5 87.5 -22.5 92.5 -17.5 {name=Voplus dir=out} +B 5 17.5 87.5 22.5 92.5 {name=vdd dir=inout} +B 5 -22.5 87.5 -17.5 92.5 {name=gnd dir=inout} +B 5 87.5 17.5 92.5 22.5 {name=Vominus dir=out} +A 4 -1.666666666666714 1.666666666666714 71.68604389202189 287.5924245621816 360 {} +A 4 -30 27.5 40.69705149024927 42.51044707800085 94.97910584399833 {} +A 4 30 -27.5 40.69705149024927 222.5104470780009 94.97910584399833 {} +T {@symname} -40.5 -56 0 0 0.1 0.1 {} +T {@name} -40 -47 0 0 0.1 0.1 { +} +T {Voplus} 65 -24 0 1 0.2 0.2 {} +T {vdd} 5 64 2 1 0.2 0.2 {} +T {gnd} -35 64 2 1 0.2 0.2 {} +T {Vominus} 65 16 0 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_22/LC_Oscillator_tb.sch b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_22/LC_Oscillator_tb.sch new file mode 100644 index 00000000..ff1fd492 --- /dev/null +++ b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_22/LC_Oscillator_tb.sch @@ -0,0 +1,57 @@ +v {xschem version=3.4.8RC file_version=1.3} +G {} +K {} +V {} +S {} +F {} +E {} +N 1570 -1060 1570 -1030 {lab=VDD} +N 1570 -970 1570 -940 {lab=GND} +N 1270 -1050 1270 -1030 {lab=GND} +N 1230 -1060 1230 -1030 {lab=VDD} +N 1140 -920 1160 -920 {lab=Voplus} +N 1140 -960 1160 -960 {lab=Vominus} +C {code_shown.sym} 440 -1140 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write LC_Oscillator_tb.raw +set appendwrite +tran 10p 10n 160p +save all + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_22/LC_Oscillator_tb_22.data vo_diff +quit + +.endc +"} +C {vsource.sym} 1570 -1000 0 0 {name=V1 value=1.2 savecurrent=false} +C {gnd.sym} 1570 -940 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1570 -1060 0 0 {name=p2 sig_type=std_logic lab=VDD} +C {opin.sym} 1140 -920 2 0 {name=p6 lab=Voplus} +C {gnd.sym} 1270 -1050 2 0 {name=l3 lab=GND} +C {opin.sym} 1140 -960 0 1 {name=p9 lab=Vominus} +C {LC_Oscillator.sym} 1250 -940 2 0 {name=x1} +C {devices/code_shown.sym} 450 -640 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_ff + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/LC_Oscillator/xschem/simulations/schematic/LC_Oscillator.spice + +.temp 80 +" +} +C {iopin.sym} 1230 -1060 2 0 {name=p1 lab=VDD} diff --git a/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_22/LC_Oscillator_tb_22.data b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_22/LC_Oscillator_tb_22.data new file mode 100644 index 00000000..3bcfec59 --- /dev/null +++ b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_22/LC_Oscillator_tb_22.data @@ -0,0 +1,985 @@ + 1.628000000000e-10 7.462015324670e-03 + 1.728000000000e-10 -6.256359287127e-03 + 1.828000000000e-10 -1.947939464126e-02 + 1.928000000000e-10 -3.034608665676e-02 + 2.028000000000e-10 -3.727079390626e-02 + 2.128000000000e-10 -3.917713039254e-02 + 2.228000000000e-10 -3.566402772378e-02 + 2.328000000000e-10 -2.707763600809e-02 + 2.428000000000e-10 -1.447813124100e-02 + 2.528000000000e-10 4.893286847443e-04 + 2.628000000000e-10 1.580373551747e-02 + 2.728000000000e-10 2.933423360913e-02 + 2.828000000000e-10 3.913545495466e-02 + 2.928000000000e-10 4.373093390651e-02 + 3.028000000000e-10 4.233865012378e-02 + 3.128000000000e-10 3.499740504213e-02 + 3.228000000000e-10 2.257588627703e-02 + 3.328000000000e-10 6.667647601252e-03 + 3.428000000000e-10 -1.060854651401e-02 + 3.528000000000e-10 -2.688147204474e-02 + 3.628000000000e-10 -3.984650084814e-02 + 3.728000000000e-10 -4.759459078779e-02 + 3.828000000000e-10 -4.889923297470e-02 + 3.928000000000e-10 -4.340960680427e-02 + 4.028000000000e-10 -3.171564611244e-02 + 4.128000000000e-10 -1.528141085475e-02 + 4.228000000000e-10 3.736367483853e-03 + 4.328000000000e-10 2.275994025390e-02 + 4.428000000000e-10 3.912897403376e-02 + 4.528000000000e-10 5.047226151644e-02 + 4.628000000000e-10 5.506070810499e-02 + 4.728000000000e-10 5.207617346251e-02 + 4.828000000000e-10 4.174493772919e-02 + 4.928000000000e-10 2.531567528440e-02 + 5.028000000000e-10 4.911723956107e-03 + 5.128000000000e-10 -1.673757535376e-02 + 5.228000000000e-10 -3.664841605540e-02 + 5.328000000000e-10 -5.198143089124e-02 + 5.428000000000e-10 -6.045703787421e-02 + 5.528000000000e-10 -6.070345153897e-02 + 5.628000000000e-10 -5.247997862317e-02 + 5.728000000000e-10 -3.672223292437e-02 + 5.828000000000e-10 -1.542077171418e-02 + 5.928000000000e-10 8.614774586663e-03 + 6.028000000000e-10 3.211102099655e-02 + 6.128000000000e-10 5.176683473586e-02 + 6.228000000000e-10 6.470866636109e-02 + 6.328000000000e-10 6.893549128004e-02 + 6.428000000000e-10 6.363851994286e-02 + 6.528000000000e-10 4.932951175817e-02 + 6.628000000000e-10 2.777449238700e-02 + 6.728000000000e-10 1.768559576540e-03 + 6.828000000000e-10 -2.520396944487e-02 + 6.928000000000e-10 -4.940453912813e-02 + 7.028000000000e-10 -6.734986991857e-02 + 7.128000000000e-10 -7.633734398201e-02 + 7.228000000000e-10 -7.487697893714e-02 + 7.328000000000e-10 -6.292918840577e-02 + 7.428000000000e-10 -4.191025305346e-02 + 7.528000000000e-10 -1.450157143681e-02 + 7.628000000000e-10 1.567936075059e-02 + 7.728000000000e-10 4.451254050313e-02 + 7.828000000000e-10 6.790927766425e-02 + 7.928000000000e-10 8.240991634168e-02 + 8.028000000000e-10 8.573801967081e-02 + 8.128000000000e-10 7.716987257538e-02 + 8.228000000000e-10 5.763855877903e-02 + 8.328000000000e-10 2.959033352585e-02 + 8.428000000000e-10 -3.328969675841e-03 + 8.528000000000e-10 -3.670029431796e-02 + 8.628000000000e-10 -6.586749096797e-02 + 8.728000000000e-10 -8.658456907611e-02 + 8.828000000000e-10 -9.568791924153e-02 + 8.928000000000e-10 -9.162366398835e-02 + 9.028000000000e-10 -7.468602174666e-02 + 9.128000000000e-10 -4.694677766078e-02 + 9.228000000000e-10 -1.196144888915e-02 + 9.328000000000e-10 2.565107287183e-02 + 9.428000000000e-10 6.073447681596e-02 + 9.528000000000e-10 8.826085073530e-02 + 9.628000000000e-10 1.041023277672e-01 + 9.728000000000e-10 1.057312283824e-01 + 9.828000000000e-10 9.263379059812e-02 + 9.928000000000e-10 6.634796759795e-02 + 1.002800000000e-09 3.020162460443e-02 + 1.012800000000e-09 -1.110879011600e-02 + 1.022800000000e-09 -5.202925280837e-02 + 1.032800000000e-09 -8.679865122132e-02 + 1.042800000000e-09 -1.102800593840e-01 + 1.052800000000e-09 -1.188335204989e-01 + 1.062800000000e-09 -1.109486788865e-01 + 1.072800000000e-09 -8.744437602796e-02 + 1.082800000000e-09 -5.126552030946e-02 + 1.092800000000e-09 -7.033286149749e-03 + 1.102800000000e-09 3.939255309838e-02 + 1.112800000000e-09 8.155671434407e-02 + 1.122800000000e-09 1.133549575170e-01 + 1.132800000000e-09 1.299984918510e-01 + 1.142800000000e-09 1.288083705108e-01 + 1.152800000000e-09 1.096376067759e-01 + 1.162800000000e-09 7.484854679885e-02 + 1.172800000000e-09 2.884004915010e-02 + 1.182800000000e-09 -2.240810172925e-02 + 1.192800000000e-09 -7.190966934979e-02 + 1.202800000000e-09 -1.126431360758e-01 + 1.212800000000e-09 -1.385484303909e-01 + 1.222800000000e-09 -1.455410736411e-01 + 1.232800000000e-09 -1.323095643591e-01 + 1.242800000000e-09 -1.004494263485e-01 + 1.252800000000e-09 -5.397485658337e-02 + 1.262800000000e-09 1.163151823916e-03 + 1.272800000000e-09 5.761026789043e-02 + 1.282800000000e-09 1.074705253488e-01 + 1.292800000000e-09 1.434136966323e-01 + 1.302800000000e-09 1.599589000088e-01 + 1.312800000000e-09 1.544239373438e-01 + 1.322800000000e-09 1.273119872972e-01 + 1.332800000000e-09 8.204355266655e-02 + 1.342800000000e-09 2.437528289482e-02 + 1.352800000000e-09 -3.816758544726e-02 + 1.362800000000e-09 -9.703299953333e-02 + 1.372800000000e-09 -1.437033223974e-01 + 1.382800000000e-09 -1.711448362067e-01 + 1.392800000000e-09 -1.750592166422e-01 + 1.402800000000e-09 -1.546040461286e-01 + 1.412800000000e-09 -1.124265193069e-01 + 1.422800000000e-09 -5.387980000143e-02 + 1.432800000000e-09 1.358751979042e-02 + 1.442800000000e-09 8.094481862007e-02 + 1.452800000000e-09 1.386381018355e-01 + 1.462800000000e-09 1.780283777447e-01 + 1.472800000000e-09 1.930455851535e-01 + 1.482800000000e-09 1.812795304609e-01 + 1.492800000000e-09 1.442214159806e-01 + 1.502800000000e-09 8.665025987117e-02 + 1.512800000000e-09 1.584846254613e-02 + 1.522800000000e-09 -5.896130453386e-02 + 1.532800000000e-09 -1.274441358957e-01 + 1.542800000000e-09 -1.794946786279e-01 + 1.552800000000e-09 -2.071466383415e-01 + 1.562800000000e-09 -2.060908858808e-01 + 1.572800000000e-09 -1.763343973120e-01 + 1.582800000000e-09 -1.218466477637e-01 + 1.592800000000e-09 -4.959288242863e-02 + 1.602800000000e-09 3.121946440027e-02 + 1.612800000000e-09 1.097677926793e-01 + 1.622800000000e-09 1.747088604498e-01 + 1.632800000000e-09 2.161239630882e-01 + 1.642800000000e-09 2.276080174630e-01 + 1.652800000000e-09 2.074169997431e-01 + 1.662800000000e-09 1.583531880793e-01 + 1.672800000000e-09 8.684251201688e-02 + 1.682800000000e-09 1.919505546404e-03 + 1.692800000000e-09 -8.540323345021e-02 + 1.702800000000e-09 -1.628818222294e-01 + 1.712800000000e-09 -2.188200899005e-01 + 1.722800000000e-09 -2.445539128617e-01 + 1.732800000000e-09 -2.361880339380e-01 + 1.742800000000e-09 -1.950173636171e-01 + 1.752800000000e-09 -1.266663951914e-01 + 1.762800000000e-09 -3.980034594598e-02 + 1.772800000000e-09 5.458475279066e-02 + 1.782800000000e-09 1.437142935328e-01 + 1.792800000000e-09 2.144082062127e-01 + 1.802800000000e-09 2.556717037898e-01 + 1.812800000000e-09 2.611883817907e-01 + 1.822800000000e-09 2.303567520905e-01 + 1.832800000000e-09 1.676626350947e-01 + 1.842800000000e-09 8.130183852979e-02 + 1.852800000000e-09 -1.793550455136e-02 + 1.862800000000e-09 -1.171415290016e-01 + 1.872800000000e-09 -2.020948564490e-01 + 1.882800000000e-09 -2.596684206308e-01 + 1.892800000000e-09 -2.809160416971e-01 + 1.902800000000e-09 -2.628779358057e-01 + 1.912800000000e-09 -2.084778922011e-01 + 1.922800000000e-09 -1.252175816419e-01 + 1.932800000000e-09 -2.359097293111e-02 + 1.942800000000e-09 8.363531959636e-02 + 1.952800000000e-09 1.817063926684e-01 + 1.962800000000e-09 2.557277514004e-01 + 1.972800000000e-09 2.940976497452e-01 + 1.982800000000e-09 2.911218774919e-01 + 1.992800000000e-09 2.477198146681e-01 + 2.002800000000e-09 1.703154883659e-01 + 2.012800000000e-09 6.892834946402e-02 + 2.022800000000e-09 -4.392355947660e-02 + 2.032800000000e-09 -1.533982419258e-01 + 2.042800000000e-09 -2.433634862187e-01 + 2.052800000000e-09 -2.996241108343e-01 + 2.062800000000e-09 -3.135402131516e-01 + 2.072800000000e-09 -2.836584677660e-01 + 2.082800000000e-09 -2.148632168332e-01 + 2.092800000000e-09 -1.165373172112e-01 + 2.102800000000e-09 -8.663765029182e-04 + 2.112800000000e-09 1.175999085806e-01 + 2.122800000000e-09 2.221354008321e-01 + 2.132800000000e-09 2.964353227525e-01 + 2.142800000000e-09 3.288060180409e-01 + 2.152800000000e-09 3.148518135591e-01 + 2.162800000000e-09 2.574290466385e-01 + 2.172800000000e-09 1.649880551228e-01 + 2.182800000000e-09 4.933809661673e-02 + 2.192800000000e-09 -7.540857220757e-02 + 2.202800000000e-09 -1.925311575827e-01 + 2.212800000000e-09 -2.842361456745e-01 + 2.222800000000e-09 -3.358313722986e-01 + 2.232800000000e-09 -3.396883920803e-01 + 2.242800000000e-09 -2.963576228637e-01 + 2.252800000000e-09 -2.127956224083e-01 + 2.262800000000e-09 -1.001219128361e-01 + 2.272800000000e-09 2.793854213991e-02 + 2.282800000000e-09 1.550871327990e-01 + 2.292800000000e-09 2.627946128184e-01 + 2.302800000000e-09 3.338545356402e-01 + 2.312800000000e-09 3.572119675117e-01 + 2.322800000000e-09 3.303804827310e-01 + 2.332800000000e-09 2.583850240712e-01 + 2.342800000000e-09 1.515547925787e-01 + 2.352800000000e-09 2.320067493512e-02 + 2.362800000000e-09 -1.110304449510e-01 + 2.372800000000e-09 -2.326037090250e-01 + 2.382800000000e-09 -3.224855615732e-01 + 2.392800000000e-09 -3.662069661257e-01 + 2.402800000000e-09 -3.578566537553e-01 + 2.412800000000e-09 -3.002584072799e-01 + 2.422800000000e-09 -2.023384448783e-01 + 2.432800000000e-09 -7.670461462409e-02 + 2.442800000000e-09 6.151420094831e-02 + 2.452800000000e-09 1.943113194789e-01 + 2.462800000000e-09 3.016596311708e-01 + 2.472800000000e-09 3.661065448805e-01 + 2.482800000000e-09 3.780019713225e-01 + 2.492800000000e-09 3.371661805738e-01 + 2.502800000000e-09 2.507556787464e-01 + 2.512800000000e-09 1.307421854877e-01 + 2.522800000000e-09 -8.279988820111e-03 + 2.532800000000e-09 -1.491757570182e-01 + 2.542800000000e-09 -2.717798672688e-01 + 2.552800000000e-09 -3.563740290940e-01 + 2.562800000000e-09 -3.895796460499e-01 + 2.572800000000e-09 -3.676808726853e-01 + 2.582800000000e-09 -2.955051757839e-01 + 2.592800000000e-09 -1.839479390486e-01 + 2.602800000000e-09 -4.714850335233e-02 + 2.612800000000e-09 9.861320020618e-02 + 2.622800000000e-09 2.337425844083e-01 + 2.632800000000e-09 3.371550256486e-01 + 2.642800000000e-09 3.919399112071e-01 + 2.652800000000e-09 3.905408750952e-01 + 2.662800000000e-09 3.352191236868e-01 + 2.672800000000e-09 2.350815543513e-01 + 2.682800000000e-09 1.034613938740e-01 + 2.692800000000e-09 -4.392957839007e-02 + 2.702800000000e-09 -1.884751996038e-01 + 2.712800000000e-09 -3.086781823149e-01 + 2.722800000000e-09 -3.848177432188e-01 + 2.732800000000e-09 -4.052770325861e-01 + 2.742800000000e-09 -3.688903832450e-01 + 2.752800000000e-09 -2.826469865554e-01 + 2.762800000000e-09 -1.589910288887e-01 + 2.772800000000e-09 -1.310656017793e-02 + 2.782800000000e-09 1.374985765475e-01 + 2.792800000000e-09 2.717558981183e-01 + 2.802800000000e-09 3.680770346546e-01 + 2.812800000000e-09 4.109892185984e-01 + 2.822800000000e-09 3.953834524767e-01 + 2.832800000000e-09 3.257221099879e-01 + 2.842800000000e-09 2.128988148455e-01 + 2.852800000000e-09 7.136277380161e-02 + 2.862800000000e-09 -8.212843364505e-02 + 2.872800000000e-09 -2.274875200417e-01 + 2.882800000000e-09 -3.422678534944e-01 + 2.892800000000e-09 -4.074840287057e-01 + 2.902800000000e-09 -4.138740233348e-01 + 2.912800000000e-09 -3.628339161672e-01 + 2.922800000000e-09 -2.632971311498e-01 + 2.932800000000e-09 -1.289935748665e-01 + 2.942800000000e-09 2.401138978887e-02 + 2.952800000000e-09 1.769330568668e-01 + 2.962800000000e-09 3.074608382415e-01 + 2.972800000000e-09 3.941200247530e-01 + 2.982800000000e-09 4.234112932095e-01 + 2.992800000000e-09 3.929591993068e-01 + 3.002800000000e-09 3.092586232899e-01 + 3.012800000000e-09 1.848561033716e-01 + 3.022800000000e-09 3.531319171037e-02 + 3.032800000000e-09 -1.217686007578e-01 + 3.042800000000e-09 -2.649725386839e-01 + 3.052800000000e-09 -3.714243926463e-01 + 3.062800000000e-09 -4.236571315630e-01 + 3.072800000000e-09 -4.151513676835e-01 + 3.082800000000e-09 -3.497378633974e-01 + 3.092800000000e-09 -2.380269687405e-01 + 3.102800000000e-09 -9.473564872018e-02 + 3.112800000000e-09 6.325311369660e-02 + 3.122800000000e-09 2.158407262002e-01 + 3.132800000000e-09 3.398312512854e-01 + 3.142800000000e-09 4.145871194830e-01 + 3.152800000000e-09 4.291493830004e-01 + 3.162800000000e-09 3.838307091415e-01 + 3.172800000000e-09 2.870785194120e-01 + 3.182800000000e-09 1.526842518029e-01 + 3.192800000000e-09 -3.086401263805e-03 + 3.202800000000e-09 -1.615512105084e-01 + 3.212800000000e-09 -3.001079182985e-01 + 3.222800000000e-09 -3.960315826203e-01 + 3.232800000000e-09 -4.340839575044e-01 + 3.242800000000e-09 -4.105187752114e-01 + 3.252800000000e-09 -3.313025894301e-01 + 3.262800000000e-09 -2.085671658456e-01 + 3.272800000000e-09 -5.777003434120e-02 + 3.282800000000e-09 1.033406906678e-01 + 3.292800000000e-09 2.533529154631e-01 + 3.302800000000e-09 3.685970975572e-01 + 3.312800000000e-09 4.299468579347e-01 + 3.322800000000e-09 4.292908683357e-01 + 3.332800000000e-09 3.694587106589e-01 + 3.342800000000e-09 2.606120557851e-01 + 3.352800000000e-09 1.175388997555e-01 + 3.362800000000e-09 -4.284791449985e-02 + 3.372800000000e-09 -2.006767456204e-01 + 3.382800000000e-09 -3.324221649637e-01 + 3.392800000000e-09 -4.161244402863e-01 + 3.402800000000e-09 -4.391257248088e-01 + 3.412800000000e-09 -4.004847836899e-01 + 3.422800000000e-09 -3.079666817782e-01 + 3.432800000000e-09 -1.751824604729e-01 + 3.442800000000e-09 -1.848620035360e-02 + 3.452800000000e-09 1.436660179708e-01 + 3.462800000000e-09 2.887156632051e-01 + 3.472800000000e-09 3.930627580816e-01 + 3.482800000000e-09 4.397439903497e-01 + 3.492800000000e-09 4.236125864869e-01 + 3.502800000000e-09 3.498182731277e-01 + 3.512800000000e-09 2.300133928158e-01 + 3.522800000000e-09 7.970348984654e-02 + 3.532800000000e-09 -8.351407457858e-02 + 3.542800000000e-09 -2.385271595482e-01 + 3.552800000000e-09 -3.612722036652e-01 + 3.562800000000e-09 -4.312330235614e-01 + 3.572800000000e-09 -4.386741133417e-01 + 3.582800000000e-09 -3.852817703581e-01 + 3.592800000000e-09 -2.805930173234e-01 + 3.602800000000e-09 -1.392492323537e-01 + 3.612800000000e-09 2.187267390091e-02 + 3.622800000000e-09 1.832602139013e-01 + 3.632800000000e-09 3.213879650557e-01 + 3.642800000000e-09 4.133060483218e-01 + 3.652800000000e-09 4.447285195204e-01 + 3.662800000000e-09 4.133411845036e-01 + 3.672800000000e-09 3.263370193384e-01 + 3.682800000000e-09 1.966963969928e-01 + 3.692800000000e-09 4.041698105671e-02 + 3.702800000000e-09 -1.240715943946e-01 + 3.712800000000e-09 -2.744455804227e-01 + 3.722800000000e-09 -3.865403560434e-01 + 3.732800000000e-09 -4.418627149772e-01 + 3.742800000000e-09 -4.336992002029e-01 + 3.752800000000e-09 -3.661407422863e-01 + 3.762800000000e-09 -2.502784187060e-01 + 3.772800000000e-09 -1.015415485635e-01 + 3.782800000000e-09 6.263438983338e-02 + 3.792800000000e-09 2.215636138317e-01 + 3.802800000000e-09 3.510497956146e-01 + 3.812800000000e-09 4.293870021118e-01 + 3.822800000000e-09 4.451805536572e-01 + 3.832800000000e-09 3.988505052006e-01 + 3.842800000000e-09 2.991815051632e-01 + 3.852800000000e-09 1.605176921695e-01 + 3.862800000000e-09 -3.308201557359e-04 + 3.872800000000e-09 -1.642553115919e-01 + 3.882800000000e-09 -3.079367241379e-01 + 3.892800000000e-09 -4.076746367692e-01 + 3.902800000000e-09 -4.476096604950e-01 + 3.912800000000e-09 -4.239405278391e-01 + 3.922800000000e-09 -3.428590344590e-01 + 3.932800000000e-09 -2.168801065447e-01 + 3.942800000000e-09 -6.198192633654e-02 + 3.952800000000e-09 1.037172026643e-01 + 3.962800000000e-09 2.583243277960e-01 + 3.972800000000e-09 3.773802249945e-01 + 3.982800000000e-09 4.410405928968e-01 + 3.992800000000e-09 4.409872988773e-01 + 4.002800000000e-09 3.801622320931e-01 + 4.012800000000e-09 2.689882675407e-01 + 4.022800000000e-09 1.226823512533e-01 + 4.032800000000e-09 -4.148250726558e-02 + 4.042800000000e-09 -2.033078096625e-01 + 4.052800000000e-09 -3.386842361109e-01 + 4.062800000000e-09 -4.249465482161e-01 + 4.072800000000e-09 -4.490785609795e-01 + 4.082800000000e-09 -4.101478767932e-01 + 4.092800000000e-09 -3.160921650425e-01 + 4.102800000000e-09 -1.808366855365e-01 + 4.112800000000e-09 -2.108833287035e-02 + 4.122800000000e-09 1.444500830596e-01 + 4.132800000000e-09 2.928171409096e-01 + 4.142800000000e-09 3.998044121999e-01 + 4.152800000000e-09 4.479858949706e-01 + 4.162800000000e-09 4.321215430464e-01 + 4.172800000000e-09 3.574566369184e-01 + 4.182800000000e-09 2.358452048656e-01 + 4.192800000000e-09 8.311678955327e-02 + 4.202800000000e-09 -8.290017368713e-02 + 4.212800000000e-09 -2.408334825385e-01 + 4.222800000000e-09 -3.661510927449e-01 + 4.232800000000e-09 -4.378429334788e-01 + 4.242800000000e-09 -4.459730768778e-01 + 4.252800000000e-09 -3.922523844803e-01 + 4.262800000000e-09 -2.863486590549e-01 + 4.272800000000e-09 -1.431486361008e-01 + 4.282800000000e-09 2.023816490822e-02 + 4.292800000000e-09 1.841211292244e-01 + 4.302800000000e-09 3.246453549655e-01 + 4.312800000000e-09 4.184048154300e-01 + 4.322800000000e-09 4.508241659956e-01 + 4.332800000000e-09 4.195417553641e-01 + 4.342800000000e-09 3.318248664914e-01 + 4.352800000000e-09 2.008149945655e-01 + 4.362800000000e-09 4.274003754521e-02 + 4.372800000000e-09 -1.238216995455e-01 + 4.382800000000e-09 -2.763355938118e-01 + 4.392800000000e-09 -3.902670850684e-01 + 4.402800000000e-09 -4.467847568546e-01 + 4.412800000000e-09 -4.390600501523e-01 + 4.422800000000e-09 -3.712065246265e-01 + 4.432800000000e-09 -2.544133522428e-01 + 4.442800000000e-09 -1.042989672064e-01 + 4.452800000000e-09 6.155565553917e-02 + 4.462800000000e-09 2.223303189103e-01 + 4.472800000000e-09 3.535605934191e-01 + 4.482800000000e-09 4.332056265551e-01 + 4.492800000000e-09 4.496878200993e-01 + 4.502800000000e-09 4.034005304561e-01 + 4.512800000000e-09 3.031817742142e-01 + 4.522800000000e-09 1.635070368672e-01 + 4.532800000000e-09 1.334076201758e-03 + 4.542800000000e-09 -1.641341238164e-01 + 4.552800000000e-09 -3.094012322916e-01 + 4.562800000000e-09 -4.104786148660e-01 + 4.572800000000e-09 -4.512770006404e-01 + 4.582800000000e-09 -4.279175062997e-01 + 4.592800000000e-09 -3.466056238476e-01 + 4.602800000000e-09 -2.199347127522e-01 + 4.612800000000e-09 -6.402153848648e-02 + 4.622800000000e-09 1.029285535225e-01 + 4.632800000000e-09 2.589180063860e-01 + 4.642800000000e-09 3.792695256596e-01 + 4.652800000000e-09 4.438937741354e-01 + 4.662800000000e-09 4.443504179283e-01 + 4.672800000000e-09 3.835604173805e-01 + 4.682800000000e-09 2.719835233788e-01 + 4.692800000000e-09 1.249392832254e-01 + 4.702800000000e-09 -4.020816092475e-02 + 4.712800000000e-09 -2.031964043529e-01 + 4.722800000000e-09 -3.397700465010e-01 + 4.732800000000e-09 -4.270397443884e-01 + 4.742800000000e-09 -4.518273936627e-01 + 4.752800000000e-09 -4.131437624953e-01 + 4.762800000000e-09 -3.189332076933e-01 + 4.772800000000e-09 -1.831832553144e-01 + 4.782800000000e-09 -2.269107328470e-02 + 4.792800000000e-09 1.437926679782e-01 + 4.802800000000e-09 2.932190181989e-01 + 4.812800000000e-09 4.012017475335e-01 + 4.822800000000e-09 4.501314750210e-01 + 4.832800000000e-09 4.346785406972e-01 + 4.842800000000e-09 3.600667546293e-01 + 4.852800000000e-09 2.381755475469e-01 + 4.862800000000e-09 8.491317691633e-02 + 4.872800000000e-09 -8.184144725846e-02 + 4.882800000000e-09 -2.406717440516e-01 + 4.892800000000e-09 -3.669229068086e-01 + 4.902800000000e-09 -4.394082548251e-01 + 4.912800000000e-09 -4.480704788466e-01 + 4.922800000000e-09 -3.945730274337e-01 + 4.932800000000e-09 -2.885836949321e-01 + 4.942800000000e-09 -1.450376786931e-01 + 4.952800000000e-09 1.889977492198e-02 + 4.962800000000e-09 1.835129210017e-01 + 4.972800000000e-09 3.248743375039e-01 + 4.982800000000e-09 4.194302558928e-01 + 4.992800000000e-09 4.524643689689e-01 + 5.002800000000e-09 4.215402841296e-01 + 5.012800000000e-09 3.339012004110e-01 + 5.022800000000e-09 2.027084709408e-01 + 5.032800000000e-09 4.424742932894e-02 + 5.042800000000e-09 -1.228812898237e-01 + 5.052800000000e-09 -2.761102938549e-01 + 5.062800000000e-09 -3.907994253022e-01 + 5.072800000000e-09 -4.479732353779e-01 + 5.082800000000e-09 -4.407061090075e-01 + 5.092800000000e-09 -3.730685846100e-01 + 5.102800000000e-09 -2.562455275981e-01 + 5.112800000000e-09 -1.058937677955e-01 + 5.122800000000e-09 6.037692713935e-02 + 5.132800000000e-09 2.217353003923e-01 + 5.142800000000e-09 3.536538298667e-01 + 5.152800000000e-09 4.339652669328e-01 + 5.162800000000e-09 4.509763905258e-01 + 5.172800000000e-09 4.050168831178e-01 + 5.182800000000e-09 3.049021449703e-01 + 5.192800000000e-09 1.651224948042e-01 + 5.202800000000e-09 2.668133800534e-03 + 5.212800000000e-09 -1.632533691990e-01 + 5.222800000000e-09 -3.091172895127e-01 + 5.232800000000e-09 -4.108400517921e-01 + 5.242800000000e-09 -4.522113534387e-01 + 5.252800000000e-09 -4.292673800455e-01 + 5.262800000000e-09 -3.481710272181e-01 + 5.272800000000e-09 -2.215114697290e-01 + 5.282800000000e-09 -6.543557239292e-02 + 5.292800000000e-09 1.018429801566e-01 + 5.302800000000e-09 2.583233085219e-01 + 5.312800000000e-09 3.792693287098e-01 + 5.322800000000e-09 4.444786078132e-01 + 5.332800000000e-09 4.454112823771e-01 + 5.342800000000e-09 3.849315628274e-01 + 5.352800000000e-09 2.734767382586e-01 + 5.362800000000e-09 1.263785713760e-01 + 5.372800000000e-09 -3.898327347647e-02 + 5.382800000000e-09 -2.023530806617e-01 + 5.392800000000e-09 -3.394492329988e-01 + 5.402800000000e-09 -4.272926481102e-01 + 5.412800000000e-09 -4.525972813791e-01 + 5.422800000000e-09 -4.142998375999e-01 + 5.432800000000e-09 -3.203074728379e-01 + 5.442800000000e-09 -1.846018309120e-01 + 5.452800000000e-09 -2.399660414951e-02 + 5.462800000000e-09 1.427630297033e-01 + 5.472800000000e-09 2.926259682112e-01 + 5.482800000000e-09 4.011471536318e-01 + 5.492800000000e-09 4.506115959493e-01 + 5.502800000000e-09 4.356013603009e-01 + 5.512800000000e-09 3.612881385049e-01 + 5.522800000000e-09 2.395299350598e-01 + 5.532800000000e-09 8.624604509789e-02 + 5.542800000000e-09 -8.068374022449e-02 + 5.552800000000e-09 -2.398558663776e-01 + 5.562800000000e-09 -3.665874082761e-01 + 5.572800000000e-09 -4.396030681021e-01 + 5.582800000000e-09 -4.487465251575e-01 + 5.592800000000e-09 -3.956151184440e-01 + 5.602800000000e-09 -2.898423999707e-01 + 5.612800000000e-09 -1.463586429191e-01 + 5.622800000000e-09 1.766399707648e-02 + 5.632800000000e-09 1.825252764379e-01 + 5.642800000000e-09 3.242946146325e-01 + 5.652800000000e-09 4.193556482310e-01 + 5.662800000000e-09 4.528926625215e-01 + 5.672800000000e-09 4.223881255488e-01 + 5.682800000000e-09 3.350355621075e-01 + 5.692800000000e-09 2.039786012435e-01 + 5.702800000000e-09 4.551234148100e-02 + 5.712800000000e-09 -1.217740032552e-01 + 5.722800000000e-09 -2.753277184669e-01 + 5.732800000000e-09 -3.904752792584e-01 + 5.742800000000e-09 -4.481513755592e-01 + 5.752800000000e-09 -4.413392311360e-01 + 5.762800000000e-09 -3.740496173843e-01 + 5.772800000000e-09 -2.574362397083e-01 + 5.782800000000e-09 -1.071535010810e-01 + 5.792800000000e-09 5.919172309922e-02 + 5.802800000000e-09 2.207895861459e-01 + 5.812800000000e-09 3.531049318313e-01 + 5.822800000000e-09 4.339018253606e-01 + 5.832800000000e-09 4.513909522210e-01 + 5.842800000000e-09 4.058293392676e-01 + 5.852800000000e-09 3.059901414346e-01 + 5.862800000000e-09 1.663474033931e-01 + 5.872800000000e-09 3.892405490392e-03 + 5.882800000000e-09 -1.621862503236e-01 + 5.892800000000e-09 -3.083751895666e-01 + 5.902800000000e-09 -4.105489510149e-01 + 5.912800000000e-09 -4.524070576142e-01 + 5.922800000000e-09 -4.298999702907e-01 + 5.932800000000e-09 -3.491336986608e-01 + 5.942800000000e-09 -2.226715501100e-01 + 5.952800000000e-09 -6.666104858820e-02 + 5.962800000000e-09 1.006966486220e-01 + 5.972800000000e-09 2.574239692665e-01 + 5.982800000000e-09 3.787692657377e-01 + 5.992800000000e-09 4.444539892124e-01 + 6.002800000000e-09 4.458461665572e-01 + 6.012800000000e-09 3.857445719464e-01 + 6.022800000000e-09 2.745487562866e-01 + 6.032800000000e-09 1.275785291017e-01 + 6.042800000000e-09 -3.779124162230e-02 + 6.052800000000e-09 -2.013298434073e-01 + 6.062800000000e-09 -3.387615671455e-01 + 6.072800000000e-09 -4.270548248038e-01 + 6.082800000000e-09 -4.528316504836e-01 + 6.092800000000e-09 -4.149511231624e-01 + 6.102800000000e-09 -3.215754509165e-01 + 6.112800000000e-09 -1.863588455889e-01 + 6.122800000000e-09 -2.571903025745e-02 + 6.132800000000e-09 1.413243069826e-01 + 6.142800000000e-09 2.916918350870e-01 + 6.152800000000e-09 4.008776523019e-01 + 6.162800000000e-09 4.510341246735e-01 + 6.172800000000e-09 4.366256595648e-01 + 6.182800000000e-09 3.627477618191e-01 + 6.192800000000e-09 2.412248352376e-01 + 6.202800000000e-09 8.798028459747e-02 + 6.212800000000e-09 -7.910949318896e-02 + 6.222800000000e-09 -2.386677044752e-01 + 6.232800000000e-09 -3.659850930454e-01 + 6.242800000000e-09 -4.396804591425e-01 + 6.252800000000e-09 -4.494656643469e-01 + 6.262800000000e-09 -3.968474175724e-01 + 6.272800000000e-09 -2.914072941152e-01 + 6.282800000000e-09 -1.480626521476e-01 + 6.292800000000e-09 1.601235442179e-02 + 6.302800000000e-09 1.811424744992e-01 + 6.312800000000e-09 3.234035091745e-01 + 6.322800000000e-09 4.191056303664e-01 + 6.332800000000e-09 4.533057348560e-01 + 6.342800000000e-09 4.233749574421e-01 + 6.352800000000e-09 3.364371247841e-01 + 6.362800000000e-09 2.056060265843e-01 + 6.372800000000e-09 4.718425253130e-02 + 6.382800000000e-09 -1.202591956077e-01 + 6.392800000000e-09 -2.741970823906e-01 + 6.402800000000e-09 -3.899217736505e-01 + 6.412800000000e-09 -4.482538149114e-01 + 6.422800000000e-09 -4.420547819027e-01 + 6.432800000000e-09 -3.752519638906e-01 + 6.442800000000e-09 -2.589538602245e-01 + 6.452800000000e-09 -1.088054465341e-01 + 6.462800000000e-09 5.759370470562e-02 + 6.472800000000e-09 2.194673179871e-01 + 6.482800000000e-09 3.522772559136e-01 + 6.492800000000e-09 4.337037118850e-01 + 6.502800000000e-09 4.518300934051e-01 + 6.512800000000e-09 4.068144911391e-01 + 6.522800000000e-09 3.073699569542e-01 + 6.532800000000e-09 1.679446242911e-01 + 6.542800000000e-09 5.526838446955e-03 + 6.552800000000e-09 -1.607228509449e-01 + 6.562800000000e-09 -3.073122411546e-01 + 6.572800000000e-09 -4.100667805393e-01 + 6.582800000000e-09 -4.525691830756e-01 + 6.592800000000e-09 -4.306538258897e-01 + 6.602800000000e-09 -3.503481996235e-01 + 6.612800000000e-09 -2.241774883034e-01 + 6.622800000000e-09 -6.828625255023e-02 + 6.632800000000e-09 9.914388262770e-02 + 6.642800000000e-09 2.561700915267e-01 + 6.652800000000e-09 3.780262355150e-01 + 6.662800000000e-09 4.443363946136e-01 + 6.672800000000e-09 4.463456063247e-01 + 6.682800000000e-09 3.867629279581e-01 + 6.692800000000e-09 2.759350505849e-01 + 6.702800000000e-09 1.291620657668e-01 + 6.712800000000e-09 -3.618992318691e-02 + 6.722800000000e-09 -1.999263122513e-01 + 6.732800000000e-09 -3.377838244914e-01 + 6.742800000000e-09 -4.266658318374e-01 + 6.752800000000e-09 -4.530727100001e-01 + 6.762800000000e-09 -4.157583593248e-01 + 6.772800000000e-09 -3.228146506988e-01 + 6.782800000000e-09 -1.878636391066e-01 + 6.792800000000e-09 -2.732202592791e-02 + 6.802800000000e-09 1.398206913734e-01 + 6.812800000000e-09 2.905172888879e-01 + 6.822800000000e-09 4.002319365478e-01 + 6.832800000000e-09 4.510090923528e-01 + 6.842800000000e-09 4.371967316474e-01 + 6.852800000000e-09 3.638094799843e-01 + 6.862800000000e-09 2.426247896568e-01 + 6.872800000000e-09 8.955378387009e-02 + 6.882800000000e-09 -7.754494614658e-02 + 6.892800000000e-09 -2.373338840856e-01 + 6.902800000000e-09 -3.651047391107e-01 + 6.912800000000e-09 -4.393949423923e-01 + 6.922800000000e-09 -4.497946678553e-01 + 6.932800000000e-09 -3.977155859444e-01 + 6.942800000000e-09 -2.926805361231e-01 + 6.952800000000e-09 -1.495789874633e-01 + 6.962800000000e-09 1.442458391662e-02 + 6.972800000000e-09 1.796908110624e-01 + 6.982800000000e-09 3.223188654730e-01 + 6.992800000000e-09 4.185710554106e-01 + 7.002800000000e-09 4.533899428186e-01 + 7.012800000000e-09 4.240367787828e-01 + 7.022800000000e-09 3.375594121023e-01 + 7.032800000000e-09 2.070333612352e-01 + 7.042800000000e-09 4.875510373476e-02 + 7.052800000000e-09 -1.187338649369e-01 + 7.062800000000e-09 -2.729443831640e-01 + 7.072800000000e-09 -3.891540645123e-01 + 7.082800000000e-09 -4.480871694944e-01 + 7.092800000000e-09 -4.424871165811e-01 + 7.102800000000e-09 -3.761954918703e-01 + 7.112800000000e-09 -2.602688915345e-01 + 7.122800000000e-09 -1.103326960467e-01 + 7.132800000000e-09 5.602927857493e-02 + 7.142800000000e-09 2.180813390525e-01 + 7.152800000000e-09 3.512977426176e-01 + 7.162800000000e-09 4.332918666835e-01 + 7.172800000000e-09 4.520283506027e-01 + 7.182800000000e-09 4.075654569222e-01 + 7.192800000000e-09 3.085525245878e-01 + 7.202800000000e-09 1.694036577856e-01 + 7.212800000000e-09 7.096490294215e-03 + 7.222800000000e-09 -1.592421019505e-01 + 7.232800000000e-09 -3.061507829333e-01 + 7.242800000000e-09 -4.094217537103e-01 + 7.252800000000e-09 -4.525316570934e-01 + 7.262800000000e-09 -4.312011369918e-01 + 7.272800000000e-09 -3.513766067663e-01 + 7.282800000000e-09 -2.255404024417e-01 + 7.292800000000e-09 -6.982608698537e-02 + 7.302800000000e-09 9.760874234269e-02 + 7.312800000000e-09 2.548624066386e-01 + 7.322800000000e-09 3.771660681607e-01 + 7.332800000000e-09 4.440590034156e-01 + 7.342800000000e-09 4.466676311783e-01 + 7.352800000000e-09 3.876109196287e-01 + 7.362800000000e-09 2.771794857804e-01 + 7.372800000000e-09 1.306477697913e-01 + 7.382800000000e-09 -3.463203927452e-02 + 7.392800000000e-09 -1.985050679973e-01 + 7.402800000000e-09 -3.367290247939e-01 + 7.412800000000e-09 -4.261538465409e-01 + 7.422800000000e-09 -4.531654409191e-01 + 7.432800000000e-09 -4.164134766722e-01 + 7.442800000000e-09 -3.239179457956e-01 + 7.452800000000e-09 -1.892647097285e-01 + 7.462800000000e-09 -2.886415632839e-02 + 7.472800000000e-09 1.383273308172e-01 + 7.482800000000e-09 2.892996871398e-01 + 7.492800000000e-09 3.994969639101e-01 + 7.502800000000e-09 4.508642198716e-01 + 7.512800000000e-09 4.376358532282e-01 + 7.522800000000e-09 3.647450909605e-01 + 7.532800000000e-09 2.439202325978e-01 + 7.542800000000e-09 9.105531360494e-02 + 7.552800000000e-09 -7.601157547902e-02 + 7.562800000000e-09 -2.359852246064e-01 + 7.572800000000e-09 -3.641652613357e-01 + 7.582800000000e-09 -4.390166510620e-01 + 7.592800000000e-09 -4.500124126457e-01 + 7.602800000000e-09 -3.984699414612e-01 + 7.612800000000e-09 -2.938521011684e-01 + 7.622800000000e-09 -1.510172347868e-01 + 7.632800000000e-09 1.288302938935e-02 + 7.642800000000e-09 1.782468448679e-01 + 7.652800000000e-09 3.212013477427e-01 + 7.662800000000e-09 4.179687503294e-01 + 7.672800000000e-09 4.533834024321e-01 + 7.682800000000e-09 4.245985525103e-01 + 7.692800000000e-09 3.385858944672e-01 + 7.702800000000e-09 2.083807485766e-01 + 7.712800000000e-09 5.027015698453e-02 + 7.722800000000e-09 -1.172332960898e-01 + 7.732800000000e-09 -2.716809260340e-01 + 7.742800000000e-09 -3.883416009487e-01 + 7.752800000000e-09 -4.478499582326e-01 + 7.762800000000e-09 -4.428344446694e-01 + 7.772800000000e-09 -3.770515517301e-01 + 7.782800000000e-09 -2.615051838720e-01 + 7.792800000000e-09 -1.117984505488e-01 + 7.802800000000e-09 5.450217991098e-02 + 7.812800000000e-09 2.167027600402e-01 + 7.822800000000e-09 3.502938781560e-01 + 7.832800000000e-09 4.328284672606e-01 + 7.842800000000e-09 4.521567774284e-01 + 7.852800000000e-09 4.082387428202e-01 + 7.862800000000e-09 3.096598745900e-01 + 7.872800000000e-09 1.707986921107e-01 + 7.882800000000e-09 8.620172569311e-03 + 7.892800000000e-09 -1.577830063807e-01 + 7.902800000000e-09 -3.049826374819e-01 + 7.912800000000e-09 -4.087428309903e-01 + 7.922800000000e-09 -4.524393452273e-01 + 7.932800000000e-09 -4.316815101044e-01 + 7.942800000000e-09 -3.523353175295e-01 + 7.952800000000e-09 -2.268395793936e-01 + 7.962800000000e-09 -7.131487485781e-02 + 7.972800000000e-09 9.610581379293e-02 + 7.982800000000e-09 2.535628101336e-01 + 7.992800000000e-09 3.762881864197e-01 + 8.002800000000e-09 4.437416390019e-01 + 8.012800000000e-09 4.469343179278e-01 + 8.022800000000e-09 3.883963646699e-01 + 8.032800000000e-09 2.783623962624e-01 + 8.042800000000e-09 1.320798527952e-01 + 8.052800000000e-09 -3.311390645816e-02 + 8.062800000000e-09 -1.971038773968e-01 + 8.072800000000e-09 -3.356708244784e-01 + 8.082800000000e-09 -4.256158336428e-01 + 8.092800000000e-09 -4.532144667852e-01 + 8.102800000000e-09 -4.170141159650e-01 + 8.112800000000e-09 -3.249635603903e-01 + 8.122800000000e-09 -1.906119369434e-01 + 8.132800000000e-09 -3.036194317104e-02 + 8.142800000000e-09 1.368630445857e-01 + 8.152800000000e-09 2.880909304380e-01 + 8.162800000000e-09 3.987490122466e-01 + 8.172800000000e-09 4.506873806062e-01 + 8.182800000000e-09 4.380294980889e-01 + 8.192800000000e-09 3.656283733840e-01 + 8.202800000000e-09 2.451632848626e-01 + 8.212800000000e-09 9.251005554693e-02 + 8.222800000000e-09 -7.451388261828e-02 + 8.232800000000e-09 -2.346555868590e-01 + 8.242800000000e-09 -3.632246557922e-01 + 8.252800000000e-09 -4.386177026190e-01 + 8.262800000000e-09 -4.501939643815e-01 + 8.272800000000e-09 -3.991782307031e-01 + 8.282800000000e-09 -2.949739838361e-01 + 8.292800000000e-09 -1.524079476743e-01 + 8.302800000000e-09 1.138161461266e-02 + 8.312800000000e-09 1.768299703984e-01 + 8.322800000000e-09 3.200931233939e-01 + 8.332800000000e-09 4.173564809096e-01 + 8.342800000000e-09 4.533499916252e-01 + 8.352800000000e-09 4.251211506737e-01 + 8.362800000000e-09 3.395665974700e-01 + 8.372800000000e-09 2.096815372195e-01 + 8.382800000000e-09 5.174274127787e-02 + 8.392800000000e-09 -1.157657190317e-01 + 8.402800000000e-09 -2.704356165358e-01 + 8.412800000000e-09 -3.875292235338e-01 + 8.422800000000e-09 -4.475953335291e-01 + 8.432800000000e-09 -4.431502402700e-01 + 8.442800000000e-09 -3.778668425139e-01 + 8.452800000000e-09 -2.626969325458e-01 + 8.462800000000e-09 -1.132208472776e-01 + 8.472800000000e-09 5.301224307938e-02 + 8.482800000000e-09 2.153495940818e-01 + 8.492800000000e-09 3.492991763846e-01 + 8.502800000000e-09 4.323567328409e-01 + 8.512800000000e-09 4.522614575248e-01 + 8.522800000000e-09 4.088768891609e-01 + 8.532800000000e-09 3.107256414182e-01 + 8.542800000000e-09 1.721507006670e-01 + 8.552800000000e-09 1.010411990704e-02 + 8.562800000000e-09 -1.563549513642e-01 + 8.572800000000e-09 -3.038316030612e-01 + 8.582800000000e-09 -4.080642061816e-01 + 8.592800000000e-09 -4.523311320066e-01 + 8.602800000000e-09 -4.321328530176e-01 + 8.612800000000e-09 -3.532563267463e-01 + 8.622800000000e-09 -2.280973056251e-01 + 8.632800000000e-09 -7.276293942902e-02 + 8.642800000000e-09 9.463789558236e-02 + 8.652800000000e-09 2.522870140042e-01 + 8.662800000000e-09 3.754187092405e-01 + 8.672800000000e-09 4.434163402641e-01 + 8.682800000000e-09 4.471787092513e-01 + 8.692800000000e-09 3.891488534365e-01 + 8.702800000000e-09 2.795062469926e-01 + 8.712800000000e-09 1.334712625982e-01 + 8.722800000000e-09 -3.163343142058e-02 + 8.732800000000e-09 -1.957318882626e-01 + 8.742800000000e-09 -3.346283213648e-01 + 8.752800000000e-09 -4.250775464201e-01 + 8.762800000000e-09 -4.532480283500e-01 + 8.772800000000e-09 -4.175870103221e-01 + 8.782800000000e-09 -3.259733161790e-01 + 8.792800000000e-09 -1.919197135388e-01 + 8.802800000000e-09 -3.182091541278e-02 + 8.812800000000e-09 1.354318691175e-01 + 8.822800000000e-09 2.869041667598e-01 + 8.832800000000e-09 3.980081561830e-01 + 8.842800000000e-09 4.505021677847e-01 + 8.852800000000e-09 4.384012808011e-01 + 8.862800000000e-09 3.664798440551e-01 + 8.872800000000e-09 2.463688773813e-01 + 8.882800000000e-09 9.392582327628e-02 + 8.892800000000e-09 -7.305202608030e-02 + 8.902800000000e-09 -2.333531951716e-01 + 8.912800000000e-09 -3.622979525889e-01 + 8.922800000000e-09 -4.382173287130e-01 + 8.932800000000e-09 -4.503597405701e-01 + 8.942800000000e-09 -3.998592516753e-01 + 8.952800000000e-09 -2.960610022145e-01 + 8.962800000000e-09 -1.537603460750e-01 + 8.972800000000e-09 9.917658135956e-03 + 8.982800000000e-09 1.754444577473e-01 + 8.992800000000e-09 3.190048626354e-01 + 9.002800000000e-09 4.167494868982e-01 + 9.012800000000e-09 4.533069968880e-01 + 9.022800000000e-09 4.256214087006e-01 + 9.032800000000e-09 3.405157290623e-01 + 9.042800000000e-09 2.109456368989e-01 + 9.052800000000e-09 5.317747545113e-02 + 9.062800000000e-09 -1.143323651434e-01 + 9.072800000000e-09 -2.692154568507e-01 + 9.082800000000e-09 -3.867285689919e-01 + 9.092800000000e-09 -4.473375609935e-01 + 9.102800000000e-09 -4.434492327994e-01 + 9.112800000000e-09 -3.786545807898e-01 + 9.122800000000e-09 -2.638542129423e-01 + 9.132800000000e-09 -1.146057654528e-01 + 9.142800000000e-09 5.155841744751e-02 + 9.152800000000e-09 2.140258361192e-01 + 9.162800000000e-09 3.483221038618e-01 + 9.172800000000e-09 4.318881267061e-01 + 9.182800000000e-09 4.523550063090e-01 + 9.192800000000e-09 4.094918937189e-01 + 9.202800000000e-09 3.117596780726e-01 + 9.212800000000e-09 1.734662900911e-01 + 9.222800000000e-09 1.155102157897e-02 + 9.232800000000e-09 -1.549595462786e-01 + 9.242800000000e-09 -3.027034233065e-01 + 9.252800000000e-09 -4.073947834745e-01 + 9.262800000000e-09 -4.522175723624e-01 + 9.272800000000e-09 -4.325658094666e-01 + 9.282800000000e-09 -3.541489664453e-01 + 9.292800000000e-09 -2.293204845041e-01 + 9.302800000000e-09 -7.417405465882e-02 + 9.312800000000e-09 9.320478651195e-02 + 9.322800000000e-09 2.510384881099e-01 + 9.332800000000e-09 3.745642376476e-01 + 9.342800000000e-09 4.433246588189e-01 + 9.352800000000e-09 4.478937360742e-01 + 9.362800000000e-09 3.902940459792e-01 + 9.372800000000e-09 2.808530270468e-01 + 9.382800000000e-09 1.348676419628e-01 + 9.392800000000e-09 -3.034463723182e-02 + 9.402800000000e-09 -1.947238870252e-01 + 9.412800000000e-09 -3.340658672346e-01 + 9.422800000000e-09 -4.250541255921e-01 + 9.432800000000e-09 -4.537507770786e-01 + 9.442800000000e-09 -4.185214018191e-01 + 9.452800000000e-09 -3.271947900137e-01 + 9.462800000000e-09 -1.932681902573e-01 + 9.472800000000e-09 -3.314769230310e-02 + 9.482800000000e-09 1.342887191779e-01 + 9.492800000000e-09 2.861199900574e-01 + 9.502800000000e-09 3.977168385702e-01 + 9.512800000000e-09 4.507402217909e-01 + 9.522800000000e-09 4.391110351565e-01 + 9.532800000000e-09 3.675437714408e-01 + 9.542800000000e-09 2.476385608832e-01 + 9.552800000000e-09 9.525356388976e-02 + 9.562800000000e-09 -7.181887626715e-02 + 9.572800000000e-09 -2.323889796051e-01 + 9.582800000000e-09 -3.617645976228e-01 + 9.592800000000e-09 -4.381991115127e-01 + 9.602800000000e-09 -4.508403569257e-01 + 9.612800000000e-09 -4.007485824978e-01 + 9.622800000000e-09 -2.972271731241e-01 + 9.632800000000e-09 -1.550568018439e-01 + 9.642800000000e-09 8.636202324294e-03 + 9.652800000000e-09 1.743446652303e-01 + 9.662800000000e-09 3.182618735244e-01 + 9.672800000000e-09 4.164889465397e-01 + 9.682800000000e-09 4.535572878800e-01 + 9.692800000000e-09 4.263236462633e-01 + 9.702800000000e-09 3.415536856094e-01 + 9.712800000000e-09 2.121781311737e-01 + 9.722800000000e-09 5.446571726142e-02 + 9.732800000000e-09 -1.131421009652e-01 + 9.742800000000e-09 -2.683001893320e-01 + 9.752800000000e-09 -3.862438201445e-01 + 9.762800000000e-09 -4.473550172008e-01 + 9.772800000000e-09 -4.439449184184e-01 + 9.782800000000e-09 -3.795383301655e-01 + 9.792800000000e-09 -2.649981277889e-01 + 9.802800000000e-09 -1.158721210561e-01 + 9.812800000000e-09 5.031372300316e-02 + 9.822800000000e-09 2.129735066346e-01 + 9.832800000000e-09 3.476354406006e-01 + 9.842800000000e-09 4.316799545378e-01 + 9.852800000000e-09 4.526408185429e-01 + 9.862800000000e-09 4.102081755019e-01 + 9.872800000000e-09 3.127946687819e-01 + 9.882800000000e-09 1.746852880125e-01 + 9.892800000000e-09 1.281626765136e-02 + 9.902800000000e-09 -1.538078553024e-01 + 9.912800000000e-09 -3.018441271548e-01 + 9.922800000000e-09 -4.069740187264e-01 + 9.932800000000e-09 -4.521973532026e-01 + 9.942800000000e-09 -4.329168386702e-01 + 9.952800000000e-09 -3.549020207436e-01 + 9.962800000000e-09 -2.303806136131e-01 + 9.972800000000e-09 -7.541460414883e-02 + 9.982800000000e-09 9.192950911472e-02 + 9.992800000000e-09 2.499117932946e-01 + 1.000000000000e-08 3.444880261518e-01 diff --git a/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_22/conditions.yaml b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_22/conditions.yaml new file mode 100644 index 00000000..960ceeec --- /dev/null +++ b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_22/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/LC_Oscillator/xschem/simulations/schematic/LC_Oscillator.spice +N: 22 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: ff +filename: LC_Oscillator_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_22 +temperature: '80' +vdd: '1.2' diff --git a/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_23/.spiceinit b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_23/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_23/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_23/LC_Oscillator.sym b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_23/LC_Oscillator.sym new file mode 100644 index 00000000..e632b156 --- /dev/null +++ b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_23/LC_Oscillator.sym @@ -0,0 +1,27 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 70 -20 90 -20 {} +L 4 70 20 90 20 {} +L 7 20 70 20 90 {} +L 7 -20 70 -20 90 {} +B 5 87.5 -22.5 92.5 -17.5 {name=Voplus dir=out} +B 5 17.5 87.5 22.5 92.5 {name=vdd dir=inout} +B 5 -22.5 87.5 -17.5 92.5 {name=gnd dir=inout} +B 5 87.5 17.5 92.5 22.5 {name=Vominus dir=out} +A 4 -1.666666666666714 1.666666666666714 71.68604389202189 287.5924245621816 360 {} +A 4 -30 27.5 40.69705149024927 42.51044707800085 94.97910584399833 {} +A 4 30 -27.5 40.69705149024927 222.5104470780009 94.97910584399833 {} +T {@symname} -40.5 -56 0 0 0.1 0.1 {} +T {@name} -40 -47 0 0 0.1 0.1 { +} +T {Voplus} 65 -24 0 1 0.2 0.2 {} +T {vdd} 5 64 2 1 0.2 0.2 {} +T {gnd} -35 64 2 1 0.2 0.2 {} +T {Vominus} 65 16 0 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_23/LC_Oscillator_tb.sch b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_23/LC_Oscillator_tb.sch new file mode 100644 index 00000000..dd8ef299 --- /dev/null +++ b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_23/LC_Oscillator_tb.sch @@ -0,0 +1,57 @@ +v {xschem version=3.4.8RC file_version=1.3} +G {} +K {} +V {} +S {} +F {} +E {} +N 1570 -1060 1570 -1030 {lab=VDD} +N 1570 -970 1570 -940 {lab=GND} +N 1270 -1050 1270 -1030 {lab=GND} +N 1230 -1060 1230 -1030 {lab=VDD} +N 1140 -920 1160 -920 {lab=Voplus} +N 1140 -960 1160 -960 {lab=Vominus} +C {code_shown.sym} 440 -1140 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write LC_Oscillator_tb.raw +set appendwrite +tran 10p 10n 160p +save all + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_23/LC_Oscillator_tb_23.data vo_diff +quit + +.endc +"} +C {vsource.sym} 1570 -1000 0 0 {name=V1 value=1.6 savecurrent=false} +C {gnd.sym} 1570 -940 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1570 -1060 0 0 {name=p2 sig_type=std_logic lab=VDD} +C {opin.sym} 1140 -920 2 0 {name=p6 lab=Voplus} +C {gnd.sym} 1270 -1050 2 0 {name=l3 lab=GND} +C {opin.sym} 1140 -960 0 1 {name=p9 lab=Vominus} +C {LC_Oscillator.sym} 1250 -940 2 0 {name=x1} +C {devices/code_shown.sym} 450 -640 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_ff + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/LC_Oscillator/xschem/simulations/schematic/LC_Oscillator.spice + +.temp 80 +" +} +C {iopin.sym} 1230 -1060 2 0 {name=p1 lab=VDD} diff --git a/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_23/conditions.yaml b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_23/conditions.yaml new file mode 100644 index 00000000..7353f256 --- /dev/null +++ b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_23/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/LC_Oscillator/xschem/simulations/schematic/LC_Oscillator.spice +N: 23 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: ff +filename: LC_Oscillator_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_23 +temperature: '80' +vdd: '1.6' diff --git a/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_24/.spiceinit b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_24/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_24/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_24/LC_Oscillator.sym b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_24/LC_Oscillator.sym new file mode 100644 index 00000000..e632b156 --- /dev/null +++ b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_24/LC_Oscillator.sym @@ -0,0 +1,27 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 70 -20 90 -20 {} +L 4 70 20 90 20 {} +L 7 20 70 20 90 {} +L 7 -20 70 -20 90 {} +B 5 87.5 -22.5 92.5 -17.5 {name=Voplus dir=out} +B 5 17.5 87.5 22.5 92.5 {name=vdd dir=inout} +B 5 -22.5 87.5 -17.5 92.5 {name=gnd dir=inout} +B 5 87.5 17.5 92.5 22.5 {name=Vominus dir=out} +A 4 -1.666666666666714 1.666666666666714 71.68604389202189 287.5924245621816 360 {} +A 4 -30 27.5 40.69705149024927 42.51044707800085 94.97910584399833 {} +A 4 30 -27.5 40.69705149024927 222.5104470780009 94.97910584399833 {} +T {@symname} -40.5 -56 0 0 0.1 0.1 {} +T {@name} -40 -47 0 0 0.1 0.1 { +} +T {Voplus} 65 -24 0 1 0.2 0.2 {} +T {vdd} 5 64 2 1 0.2 0.2 {} +T {gnd} -35 64 2 1 0.2 0.2 {} +T {Vominus} 65 16 0 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_24/LC_Oscillator_tb.sch b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_24/LC_Oscillator_tb.sch new file mode 100644 index 00000000..a82a85b1 --- /dev/null +++ b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_24/LC_Oscillator_tb.sch @@ -0,0 +1,57 @@ +v {xschem version=3.4.8RC file_version=1.3} +G {} +K {} +V {} +S {} +F {} +E {} +N 1570 -1060 1570 -1030 {lab=VDD} +N 1570 -970 1570 -940 {lab=GND} +N 1270 -1050 1270 -1030 {lab=GND} +N 1230 -1060 1230 -1030 {lab=VDD} +N 1140 -920 1160 -920 {lab=Voplus} +N 1140 -960 1160 -960 {lab=Vominus} +C {code_shown.sym} 440 -1140 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write LC_Oscillator_tb.raw +set appendwrite +tran 10p 10n 160p +save all + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_24/LC_Oscillator_tb_24.data vo_diff +quit + +.endc +"} +C {vsource.sym} 1570 -1000 0 0 {name=V1 value=0.8 savecurrent=false} +C {gnd.sym} 1570 -940 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1570 -1060 0 0 {name=p2 sig_type=std_logic lab=VDD} +C {opin.sym} 1140 -920 2 0 {name=p6 lab=Voplus} +C {gnd.sym} 1270 -1050 2 0 {name=l3 lab=GND} +C {opin.sym} 1140 -960 0 1 {name=p9 lab=Vominus} +C {LC_Oscillator.sym} 1250 -940 2 0 {name=x1} +C {devices/code_shown.sym} 450 -640 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_ss + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/LC_Oscillator/xschem/simulations/schematic/LC_Oscillator.spice + +.temp 80 +" +} +C {iopin.sym} 1230 -1060 2 0 {name=p1 lab=VDD} diff --git a/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_24/conditions.yaml b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_24/conditions.yaml new file mode 100644 index 00000000..4ade0832 --- /dev/null +++ b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_24/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/LC_Oscillator/xschem/simulations/schematic/LC_Oscillator.spice +N: 24 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: ss +filename: LC_Oscillator_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_24 +temperature: '80' +vdd: '0.8' diff --git a/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_25/.spiceinit b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_25/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_25/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_25/LC_Oscillator.sym b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_25/LC_Oscillator.sym new file mode 100644 index 00000000..e632b156 --- /dev/null +++ b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_25/LC_Oscillator.sym @@ -0,0 +1,27 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 70 -20 90 -20 {} +L 4 70 20 90 20 {} +L 7 20 70 20 90 {} +L 7 -20 70 -20 90 {} +B 5 87.5 -22.5 92.5 -17.5 {name=Voplus dir=out} +B 5 17.5 87.5 22.5 92.5 {name=vdd dir=inout} +B 5 -22.5 87.5 -17.5 92.5 {name=gnd dir=inout} +B 5 87.5 17.5 92.5 22.5 {name=Vominus dir=out} +A 4 -1.666666666666714 1.666666666666714 71.68604389202189 287.5924245621816 360 {} +A 4 -30 27.5 40.69705149024927 42.51044707800085 94.97910584399833 {} +A 4 30 -27.5 40.69705149024927 222.5104470780009 94.97910584399833 {} +T {@symname} -40.5 -56 0 0 0.1 0.1 {} +T {@name} -40 -47 0 0 0.1 0.1 { +} +T {Voplus} 65 -24 0 1 0.2 0.2 {} +T {vdd} 5 64 2 1 0.2 0.2 {} +T {gnd} -35 64 2 1 0.2 0.2 {} +T {Vominus} 65 16 0 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_25/LC_Oscillator_tb.sch b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_25/LC_Oscillator_tb.sch new file mode 100644 index 00000000..25127dae --- /dev/null +++ b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_25/LC_Oscillator_tb.sch @@ -0,0 +1,57 @@ +v {xschem version=3.4.8RC file_version=1.3} +G {} +K {} +V {} +S {} +F {} +E {} +N 1570 -1060 1570 -1030 {lab=VDD} +N 1570 -970 1570 -940 {lab=GND} +N 1270 -1050 1270 -1030 {lab=GND} +N 1230 -1060 1230 -1030 {lab=VDD} +N 1140 -920 1160 -920 {lab=Voplus} +N 1140 -960 1160 -960 {lab=Vominus} +C {code_shown.sym} 440 -1140 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write LC_Oscillator_tb.raw +set appendwrite +tran 10p 10n 160p +save all + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_25/LC_Oscillator_tb_25.data vo_diff +quit + +.endc +"} +C {vsource.sym} 1570 -1000 0 0 {name=V1 value=1.2 savecurrent=false} +C {gnd.sym} 1570 -940 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1570 -1060 0 0 {name=p2 sig_type=std_logic lab=VDD} +C {opin.sym} 1140 -920 2 0 {name=p6 lab=Voplus} +C {gnd.sym} 1270 -1050 2 0 {name=l3 lab=GND} +C {opin.sym} 1140 -960 0 1 {name=p9 lab=Vominus} +C {LC_Oscillator.sym} 1250 -940 2 0 {name=x1} +C {devices/code_shown.sym} 450 -640 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_ss + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/LC_Oscillator/xschem/simulations/schematic/LC_Oscillator.spice + +.temp 80 +" +} +C {iopin.sym} 1230 -1060 2 0 {name=p1 lab=VDD} diff --git a/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_25/LC_Oscillator_tb_25.data b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_25/LC_Oscillator_tb_25.data new file mode 100644 index 00000000..f4494484 --- /dev/null +++ b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_25/LC_Oscillator_tb_25.data @@ -0,0 +1,985 @@ + 1.628000000000e-10 7.012500893491e-03 + 1.728000000000e-10 -6.836696403637e-03 + 1.828000000000e-10 -2.011528675689e-02 + 1.928000000000e-10 -3.094331869685e-02 + 2.028000000000e-10 -3.772988363464e-02 + 2.128000000000e-10 -3.940899430028e-02 + 2.228000000000e-10 -3.560528539533e-02 + 2.328000000000e-10 -2.670308854840e-02 + 2.428000000000e-10 -1.380871573983e-02 + 2.528000000000e-10 1.384720182743e-03 + 2.628000000000e-10 1.681355381072e-02 + 2.728000000000e-10 3.031718551774e-02 + 2.828000000000e-10 3.993982046217e-02 + 2.928000000000e-10 4.421759274955e-02 + 3.028000000000e-10 4.240385363324e-02 + 3.128000000000e-10 3.459162539838e-02 + 3.228000000000e-10 2.171578096832e-02 + 3.328000000000e-10 5.439399067936e-03 + 3.428000000000e-10 -1.205572970074e-02 + 3.528000000000e-10 -2.835205319523e-02 + 3.628000000000e-10 -4.112451441024e-02 + 3.728000000000e-10 -4.847523368438e-02 + 3.828000000000e-10 -4.922090470354e-02 + 3.928000000000e-10 -4.308088834640e-02 + 4.028000000000e-10 -3.073328076104e-02 + 4.128000000000e-10 -1.373706297121e-02 + 4.228000000000e-10 5.661631813816e-03 + 4.328000000000e-10 2.481430819218e-02 + 4.428000000000e-10 4.102139517877e-02 + 4.528000000000e-10 5.191369080649e-02 + 4.628000000000e-10 5.580838812438e-02 + 4.728000000000e-10 5.197290855834e-02 + 4.828000000000e-10 4.074678226654e-02 + 4.928000000000e-10 2.350727746293e-02 + 5.028000000000e-10 2.497638925153e-03 + 5.128000000000e-10 -1.945266555981e-02 + 5.228000000000e-10 -3.929096866200e-02 + 5.328000000000e-10 -5.416275721466e-02 + 5.428000000000e-10 -6.183067859078e-02 + 5.528000000000e-10 -6.102007239963e-02 + 5.628000000000e-10 -5.162850051946e-02 + 5.728000000000e-10 -3.475168009852e-02 + 5.828000000000e-10 -1.254566687995e-02 + 5.928000000000e-10 1.204054952866e-02 + 6.028000000000e-10 3.563334801579e-02 + 6.128000000000e-10 5.488109410972e-02 + 6.228000000000e-10 6.693842655668e-02 + 6.328000000000e-10 6.990750485103e-02 + 6.428000000000e-10 6.314204883460e-02 + 6.528000000000e-10 4.735235746841e-02 + 6.628000000000e-10 2.451228042044e-02 + 6.728000000000e-10 -2.390285025873e-03 + 6.828000000000e-10 -2.971774615179e-02 + 6.928000000000e-10 -5.364377104422e-02 + 7.028000000000e-10 -7.068603683687e-02 + 7.128000000000e-10 -7.823990704720e-02 + 7.228000000000e-10 -7.499815988276e-02 + 7.328000000000e-10 -6.115960722561e-02 + 7.428000000000e-10 -3.840037073668e-02 + 7.528000000000e-10 -9.651955475471e-03 + 7.628000000000e-10 2.125526909825e-02 + 7.728000000000e-10 5.005649211818e-02 + 7.828000000000e-10 7.261911420983e-02 + 7.928000000000e-10 8.556166198228e-02 + 8.028000000000e-10 8.680217826941e-02 + 8.128000000000e-10 7.589565084462e-02 + 8.228000000000e-10 5.409327396672e-02 + 8.328000000000e-10 2.415769963832e-02 + 8.428000000000e-10 -9.983087632906e-03 + 8.528000000000e-10 -4.369464056225e-02 + 8.628000000000e-10 -7.220066680051e-02 + 8.728000000000e-10 -9.130174652829e-02 + 8.828000000000e-10 -9.804669610562e-02 + 8.928000000000e-10 -9.118903960770e-02 + 9.028000000000e-10 -7.139579755086e-02 + 9.128000000000e-10 -4.112975754243e-02 + 9.228000000000e-10 -4.305977482059e-03 + 9.328000000000e-10 3.415988646659e-02 + 9.428000000000e-10 6.892223177298e-02 + 9.528000000000e-10 9.492651214302e-02 + 9.628000000000e-10 1.082112665671e-01 + 9.728000000000e-10 1.065872934127e-01 + 9.828000000000e-10 8.998576579917e-02 + 9.928000000000e-10 6.042053813011e-02 + 1.002800000000e-09 2.166924549360e-02 + 1.012800000000e-09 -2.118645003863e-02 + 1.022800000000e-09 -6.227469252170e-02 + 1.032800000000e-09 -9.571983255510e-02 + 1.042800000000e-09 -1.165451142895e-01 + 1.052800000000e-09 -1.214458377803e-01 + 1.062800000000e-09 -1.094018913909e-01 + 1.072800000000e-09 -8.180162782567e-02 + 1.082800000000e-09 -4.211208313372e-02 + 1.092800000000e-09 4.523122698114e-03 + 1.102800000000e-09 5.180827669305e-02 + 1.112800000000e-09 9.308778082418e-02 + 1.122800000000e-09 1.223130431454e-01 + 1.132800000000e-09 1.349939037125e-01 + 1.142800000000e-09 1.289620586504e-01 + 1.152800000000e-09 1.047595241504e-01 + 1.162800000000e-09 6.543651522291e-02 + 1.172800000000e-09 1.599606783403e-02 + 1.182800000000e-09 -3.705183027249e-02 + 1.192800000000e-09 -8.634471097591e-02 + 1.202800000000e-09 -1.247675202665e-01 + 1.212800000000e-09 -1.465022469320e-01 + 1.222800000000e-09 -1.480332594903e-01 + 1.232800000000e-09 -1.288300398910e-01 + 1.242800000000e-09 -9.130204562503e-02 + 1.252800000000e-09 -4.019697851506e-02 + 1.262800000000e-09 1.787829180432e-02 + 1.272800000000e-09 7.503285743474e-02 + 1.282800000000e-09 1.231096012517e-01 + 1.292800000000e-09 1.549449832993e-01 + 1.302800000000e-09 1.655797018635e-01 + 1.312800000000e-09 1.531316485348e-01 + 1.322800000000e-09 1.191009187016e-01 + 1.332800000000e-09 6.781849987804e-02 + 1.342800000000e-09 5.829400432077e-03 + 1.352800000000e-09 -5.863842211583e-02 + 1.362800000000e-09 -1.165694703736e-01 + 1.372800000000e-09 -1.594013467915e-01 + 1.382800000000e-09 -1.805659654448e-01 + 1.392800000000e-09 -1.766742610014e-01 + 1.402800000000e-09 -1.480253374586e-01 + 1.412800000000e-09 -9.830308342524e-02 + 1.422800000000e-09 -3.384507780962e-02 + 1.432800000000e-09 3.698106646200e-02 + 1.442800000000e-09 1.045131463012e-01 + 1.452800000000e-09 1.589333912827e-01 + 1.462800000000e-09 1.919780610738e-01 + 1.472800000000e-09 1.984598178079e-01 + 1.482800000000e-09 1.771796036898e-01 + 1.492800000000e-09 1.309399066994e-01 + 1.502800000000e-09 6.571427492601e-02 + 1.512800000000e-09 -1.016621024455e-02 + 1.522800000000e-09 -8.663238635637e-02 + 1.532800000000e-09 -1.528128308249e-01 + 1.542800000000e-09 -1.987038966807e-01 + 1.552800000000e-09 -2.171788174341e-01 + 1.562800000000e-09 -2.053301148575e-01 + 1.572800000000e-09 -1.647652258778e-01 + 1.582800000000e-09 -1.008264129874e-01 + 1.592800000000e-09 -2.160208398576e-02 + 1.602800000000e-09 6.264603892234e-02 + 1.612800000000e-09 1.402656163881e-01 + 1.622800000000e-09 1.996984021290e-01 + 1.632800000000e-09 2.317506516808e-01 + 1.642800000000e-09 2.314313866818e-01 + 1.652800000000e-09 1.987349257620e-01 + 1.662800000000e-09 1.381831348590e-01 + 1.672800000000e-09 5.757695588839e-02 + 1.682800000000e-09 -3.287004678254e-02 + 1.692800000000e-09 -1.210640629826e-01 + 1.702800000000e-09 -1.941646802863e-01 + 1.712800000000e-09 -2.408659512901e-01 + 1.722800000000e-09 -2.538923983480e-01 + 1.732800000000e-09 -2.313612477906e-01 + 1.742800000000e-09 -1.765849054938e-01 + 1.752800000000e-09 -9.685870660329e-02 + 1.762800000000e-09 -2.223907425844e-03 + 1.772800000000e-09 9.509769054805e-02 + 1.782800000000e-09 1.813733885017e-01 + 1.792800000000e-09 2.434062763232e-01 + 1.802800000000e-09 2.714788385630e-01 + 1.812800000000e-09 2.613918158139e-01 + 1.822800000000e-09 2.148396961293e-01 + 1.832800000000e-09 1.383808732240e-01 + 1.842800000000e-09 4.179508856863e-02 + 1.852800000000e-09 -6.279341382031e-02 + 1.862800000000e-09 -1.611899004507e-01 + 1.872800000000e-09 -2.386466920350e-01 + 1.882800000000e-09 -2.829513032859e-01 + 1.892800000000e-09 -2.873083815734e-01 + 1.902800000000e-09 -2.514782298854e-01 + 1.912800000000e-09 -1.808839351528e-01 + 1.922800000000e-09 -8.482698296201e-02 + 1.932800000000e-09 2.476814038955e-02 + 1.942800000000e-09 1.336309580637e-01 + 1.952800000000e-09 2.259489580115e-01 + 1.962800000000e-09 2.872357837251e-01 + 1.972800000000e-09 3.078857401593e-01 + 1.982800000000e-09 2.851833420475e-01 + 1.992800000000e-09 2.229888725606e-01 + 2.002800000000e-09 1.300084003987e-01 + 2.012800000000e-09 1.790357040717e-02 + 2.022800000000e-09 -9.928387103407e-02 + 2.032800000000e-09 -2.052295187783e-01 + 2.042800000000e-09 -2.835642075903e-01 + 2.052800000000e-09 -3.217911211773e-01 + 2.062800000000e-09 -3.143525374407e-01 + 2.072800000000e-09 -2.631559162486e-01 + 2.082800000000e-09 -1.759338701478e-01 + 2.092800000000e-09 -6.399004569620e-02 + 2.102800000000e-09 5.898077984231e-02 + 2.112800000000e-09 1.766685874951e-01 + 2.122800000000e-09 2.713906690470e-01 + 2.132800000000e-09 3.279681161332e-01 + 2.142800000000e-09 3.377135539208e-01 + 2.152800000000e-09 3.000848927823e-01 + 2.162800000000e-09 2.213549561772e-01 + 2.172800000000e-09 1.122622276025e-01 + 2.182800000000e-09 -1.381768919877e-02 + 2.192800000000e-09 -1.409373022935e-01 + 2.202800000000e-09 -2.507635641362e-01 + 2.212800000000e-09 -3.258408286833e-01 + 2.222800000000e-09 -3.542579480953e-01 + 2.232800000000e-09 -3.324667333214e-01 + 2.242800000000e-09 -2.647902576716e-01 + 2.252800000000e-09 -1.612179678666e-01 + 2.262800000000e-09 -3.481176984312e-02 + 2.272800000000e-09 9.904092526392e-02 + 2.282800000000e-09 2.220079939417e-01 + 2.292800000000e-09 3.149716432288e-01 + 2.302800000000e-09 3.628437331222e-01 + 2.312800000000e-09 3.587379421814e-01 + 2.322800000000e-09 3.046776528851e-01 + 2.332800000000e-09 2.093861847798e-01 + 2.342800000000e-09 8.549139830320e-02 + 2.352800000000e-09 -5.214616541902e-02 + 2.362800000000e-09 -1.857136052348e-01 + 2.372800000000e-09 -2.951836906321e-01 + 2.382800000000e-09 -3.627498977307e-01 + 2.392800000000e-09 -3.779628144437e-01 + 2.402800000000e-09 -3.399517258398e-01 + 2.412800000000e-09 -2.556356131873e-01 + 2.422800000000e-09 -1.369537998920e-01 + 2.432800000000e-09 1.612466350873e-03 + 2.442800000000e-09 1.430072276497e-01 + 2.452800000000e-09 2.670578904749e-01 + 2.462800000000e-09 3.538632119017e-01 + 2.472800000000e-09 3.894674448545e-01 + 2.482800000000e-09 3.695259862192e-01 + 2.492800000000e-09 2.986433530310e-01 + 2.502800000000e-09 1.877780086939e-01 + 2.512800000000e-09 5.108743364179e-02 + 2.522800000000e-09 -9.516580544778e-02 + 2.532800000000e-09 -2.313167628551e-01 + 2.542800000000e-09 -3.361555459255e-01 + 2.552800000000e-09 -3.924183096696e-01 + 2.562800000000e-09 -3.920251100203e-01 + 2.572800000000e-09 -3.370364339153e-01 + 2.582800000000e-09 -2.367706500422e-01 + 2.592800000000e-09 -1.047353985464e-01 + 2.602800000000e-09 4.335803805257e-02 + 2.612800000000e-09 1.887476946692e-01 + 2.622800000000e-09 3.097641486437e-01 + 2.632800000000e-09 3.865078010286e-01 + 2.642800000000e-09 4.070090475308e-01 + 2.652800000000e-09 3.699656427826e-01 + 2.662800000000e-09 2.826420677388e-01 + 2.672800000000e-09 1.578272950910e-01 + 2.682800000000e-09 1.079866678167e-02 + 2.692800000000e-09 -1.407536969898e-01 + 2.702800000000e-09 -2.754837849999e-01 + 2.712800000000e-09 -3.716731512010e-01 + 2.722800000000e-09 -4.136838859718e-01 + 2.732800000000e-09 -3.963885753120e-01 + 2.742800000000e-09 -3.244153332164e-01 + 2.752800000000e-09 -2.093040013472e-01 + 2.762800000000e-09 -6.601158752832e-02 + 2.772800000000e-09 8.868042451014e-02 + 2.782800000000e-09 2.343454001442e-01 + 2.792800000000e-09 3.483346375629e-01 + 2.802800000000e-09 4.116875635654e-01 + 2.812800000000e-09 4.152563263790e-01 + 2.822800000000e-09 3.608389719936e-01 + 2.832800000000e-09 2.580617771223e-01 + 2.842800000000e-09 1.211470523220e-01 + 2.852800000000e-09 -3.368655674602e-02 + 2.862800000000e-09 -1.872171894152e-01 + 2.872800000000e-09 -3.167520237587e-01 + 2.882800000000e-09 -4.008606786603e-01 + 2.892800000000e-09 -4.263083216249e-01 + 2.902800000000e-09 -3.912624525408e-01 + 2.912800000000e-09 -3.030399893151e-01 + 2.922800000000e-09 -1.749146063497e-01 + 2.932800000000e-09 -2.271473658697e-02 + 2.942800000000e-09 1.355583441369e-01 + 2.952800000000e-09 2.779107028144e-01 + 2.962800000000e-09 3.813794379184e-01 + 2.972800000000e-09 4.288982286630e-01 + 2.982800000000e-09 4.146277164688e-01 + 2.992800000000e-09 3.431710326487e-01 + 3.002800000000e-09 2.262614542574e-01 + 3.012800000000e-09 7.930965313933e-02 + 3.022800000000e-09 -8.062071333404e-02 + 3.032800000000e-09 -2.327575296953e-01 + 3.042800000000e-09 -3.535640991561e-01 + 3.052800000000e-09 -4.228195532204e-01 + 3.062800000000e-09 -4.304161720372e-01 + 3.072800000000e-09 -3.777339960190e-01 + 3.082800000000e-09 -2.744293275873e-01 + 3.092800000000e-09 -1.351215005206e-01 + 3.102800000000e-09 2.365656647316e-02 + 3.112800000000e-09 1.825190362100e-01 + 3.122800000000e-09 3.182146799873e-01 + 3.132800000000e-09 4.082454113266e-01 + 3.142800000000e-09 4.383138622509e-01 + 3.152800000000e-09 4.059804944163e-01 + 3.162800000000e-09 3.183923840090e-01 + 3.172800000000e-09 1.890170817553e-01 + 3.182800000000e-09 3.403487511833e-02 + 3.192800000000e-09 -1.284442874109e-01 + 3.202800000000e-09 -2.761433817562e-01 + 3.212800000000e-09 -3.852967424611e-01 + 3.222800000000e-09 -4.377743745261e-01 + 3.232800000000e-09 -4.269681667087e-01 + 3.242800000000e-09 -3.572429809969e-01 + 3.252800000000e-09 -2.402523061418e-01 + 3.262800000000e-09 -9.154378582370e-02 + 3.272800000000e-09 7.159336541688e-02 + 3.282800000000e-09 2.282598025823e-01 + 3.292800000000e-09 3.543921465552e-01 + 3.302800000000e-09 4.288001587648e-01 + 3.312800000000e-09 4.404747333900e-01 + 3.322800000000e-09 3.902762483537e-01 + 3.332800000000e-09 2.877112694723e-01 + 3.342800000000e-09 1.475735918470e-01 + 3.352800000000e-09 -1.340681113335e-02 + 3.362800000000e-09 -1.758470957664e-01 + 3.372800000000e-09 -3.162271684543e-01 + 3.382800000000e-09 -4.112854116550e-01 + 3.392800000000e-09 -4.457861931281e-01 + 3.402800000000e-09 -4.166259810235e-01 + 3.412800000000e-09 -3.306390725454e-01 + 3.422800000000e-09 -2.013011019605e-01 + 3.432800000000e-09 -4.500748509382e-02 + 3.442800000000e-09 1.201319262067e-01 + 3.452800000000e-09 2.717759998538e-01 + 3.462800000000e-09 3.856382544818e-01 + 3.472800000000e-09 4.427005153268e-01 + 3.482800000000e-09 4.355740425711e-01 + 3.492800000000e-09 3.681676344657e-01 + 3.502800000000e-09 2.520001256141e-01 + 3.512800000000e-09 1.027856034602e-01 + 3.522800000000e-09 -6.214113809726e-02 + 3.532800000000e-09 -2.219463700922e-01 + 3.542800000000e-09 -3.522897832528e-01 + 3.552800000000e-09 -4.312383931619e-01 + 3.562800000000e-09 -4.469367873869e-01 + 3.572800000000e-09 -3.996681777827e-01 + 3.582800000000e-09 -2.986702839071e-01 + 3.592800000000e-09 -1.587548020618e-01 + 3.602800000000e-09 3.237638204246e-03 + 3.612800000000e-09 1.680235195193e-01 + 3.622800000000e-09 3.120096250445e-01 + 3.632800000000e-09 4.113959545959e-01 + 3.642800000000e-09 4.501157411319e-01 + 3.652800000000e-09 4.243711515050e-01 + 3.662800000000e-09 3.405944310626e-01 + 3.672800000000e-09 2.121446795577e-01 + 3.682800000000e-09 5.552915672272e-02 + 3.692800000000e-09 -1.112045016544e-01 + 3.702800000000e-09 -2.657894653782e-01 + 3.712800000000e-09 -3.836206433927e-01 + 3.722800000000e-09 -4.449314467059e-01 + 3.732800000000e-09 -4.415576853142e-01 + 3.742800000000e-09 -3.768949090902e-01 + 3.752800000000e-09 -2.622309979378e-01 + 3.762800000000e-09 -1.133257329850e-01 + 3.772800000000e-09 5.248730703407e-02 + 3.782800000000e-09 2.145285109870e-01 + 3.792800000000e-09 3.483433294042e-01 + 3.802800000000e-09 4.314133052594e-01 + 3.812800000000e-09 4.510788878032e-01 + 3.822800000000e-09 4.070087095695e-01 + 3.832800000000e-09 3.080959535192e-01 + 3.842800000000e-09 1.690677352797e-01 + 3.852800000000e-09 6.818480607102e-03 + 3.862800000000e-09 -1.595191743271e-01 + 3.872800000000e-09 -3.064013747144e-01 + 3.882800000000e-09 -4.096431291412e-01 + 3.892800000000e-09 -4.524251951373e-01 + 3.902800000000e-09 -4.302358559973e-01 + 3.912800000000e-09 -3.490473717621e-01 + 3.922800000000e-09 -2.220233085267e-01 + 3.932800000000e-09 -6.571106493433e-02 + 3.942800000000e-09 1.019348362650e-01 + 3.952800000000e-09 2.588052332425e-01 + 3.962800000000e-09 3.801100102009e-01 + 3.972800000000e-09 4.454345752669e-01 + 3.982800000000e-09 4.458448372487e-01 + 3.992800000000e-09 3.841866119438e-01 + 4.002800000000e-09 2.714548123789e-01 + 4.012800000000e-09 1.233734878221e-01 + 4.022800000000e-09 -4.275078804767e-02 + 4.032800000000e-09 -2.064412675856e-01 + 4.042800000000e-09 -3.432344881406e-01 + 4.052800000000e-09 -4.301371948133e-01 + 4.062800000000e-09 -4.537194751721e-01 + 4.072800000000e-09 -4.130098032542e-01 + 4.082800000000e-09 -3.165071950029e-01 + 4.092800000000e-09 -1.787873532722e-01 + 4.102800000000e-09 -1.676127568579e-02 + 4.112800000000e-09 1.506139813398e-01 + 4.122800000000e-09 2.999208836457e-01 + 4.132800000000e-09 4.066952303749e-01 + 4.142800000000e-09 4.534251929116e-01 + 4.152800000000e-09 4.348718573410e-01 + 4.162800000000e-09 3.566308602093e-01 + 4.172800000000e-09 2.315136991667e-01 + 4.182800000000e-09 7.587492936502e-02 + 4.192800000000e-09 -9.232737370602e-02 + 4.202800000000e-09 -2.511548962980e-01 + 4.212800000000e-09 -3.757107007400e-01 + 4.222800000000e-09 -4.449840901434e-01 + 4.232800000000e-09 -4.492617168676e-01 + 4.242800000000e-09 -3.908055845927e-01 + 4.252800000000e-09 -2.802769682433e-01 + 4.262800000000e-09 -1.333136465527e-01 + 4.272800000000e-09 3.281119905088e-02 + 4.282800000000e-09 1.978483415435e-01 + 4.292800000000e-09 3.373856919794e-01 + 4.302800000000e-09 4.280187299201e-01 + 4.312800000000e-09 4.555564942366e-01 + 4.322800000000e-09 4.183582920564e-01 + 4.332800000000e-09 3.244901654317e-01 + 4.342800000000e-09 1.883349868840e-01 + 4.352800000000e-09 2.680107063408e-02 + 4.362800000000e-09 -1.413372168621e-01 + 4.372800000000e-09 -2.928350431632e-01 + 4.382800000000e-09 -4.030105817831e-01 + 4.392800000000e-09 -4.535989112926e-01 + 4.402800000000e-09 -4.386764611952e-01 + 4.412800000000e-09 -3.634428025566e-01 + 4.422800000000e-09 -2.403778766300e-01 + 4.432800000000e-09 -8.575991803266e-02 + 4.442800000000e-09 8.257350530298e-02 + 4.452800000000e-09 2.429350180587e-01 + 4.462800000000e-09 3.704039860416e-01 + 4.472800000000e-09 4.434515936339e-01 + 4.482800000000e-09 4.515950854441e-01 + 4.492800000000e-09 3.964896001786e-01 + 4.502800000000e-09 2.884224738017e-01 + 4.512800000000e-09 1.428922570505e-01 + 4.522800000000e-09 -2.287742016526e-02 + 4.532800000000e-09 -1.888844173081e-01 + 4.542800000000e-09 -3.308332931147e-01 + 4.552800000000e-09 -4.249883675813e-01 + 4.562800000000e-09 -4.564314121828e-01 + 4.572800000000e-09 -4.228339982982e-01 + 4.582800000000e-09 -3.317964504948e-01 + 4.592800000000e-09 -1.974663632890e-01 + 4.602800000000e-09 -3.672212795716e-02 + 4.612800000000e-09 1.318510939135e-01 + 4.622800000000e-09 2.852251051259e-01 + 4.632800000000e-09 3.985739609122e-01 + 4.642800000000e-09 4.530046819013e-01 + 4.652800000000e-09 4.418474089549e-01 + 4.662800000000e-09 3.697541710055e-01 + 4.672800000000e-09 2.488913470622e-01 + 4.682800000000e-09 9.547172872491e-02 + 4.692800000000e-09 -7.278650963224e-02 + 4.702800000000e-09 -2.344625532303e-01 + 4.712800000000e-09 -3.646581254238e-01 + 4.722800000000e-09 -4.413764332431e-01 + 4.732800000000e-09 -4.533743551379e-01 + 4.742800000000e-09 -4.016860684396e-01 + 4.752800000000e-09 -2.962028145055e-01 + 4.762800000000e-09 -1.522546642246e-01 + 4.772800000000e-09 1.298606104156e-02 + 4.782800000000e-09 1.797653486688e-01 + 4.792800000000e-09 3.239391263904e-01 + 4.802800000000e-09 4.214911919939e-01 + 4.812800000000e-09 4.568021199504e-01 + 4.822800000000e-09 4.268435093478e-01 + 4.832800000000e-09 3.387303282580e-01 + 4.842800000000e-09 2.063519474741e-01 + 4.852800000000e-09 4.654379769846e-02 + 4.862800000000e-09 -1.222914580115e-01 + 4.872800000000e-09 -2.773634650403e-01 + 4.882800000000e-09 -3.937473691287e-01 + 4.892800000000e-09 -4.519577958831e-01 + 4.902800000000e-09 -4.445756364778e-01 + 4.912800000000e-09 -3.756920651713e-01 + 4.922800000000e-09 -2.571408103806e-01 + 4.932800000000e-09 -1.050437011816e-01 + 4.942800000000e-09 6.299158173080e-02 + 4.952800000000e-09 2.258180588286e-01 + 4.962800000000e-09 3.585950650416e-01 + 4.972800000000e-09 4.389003765825e-01 + 4.982800000000e-09 4.547405702547e-01 + 4.992800000000e-09 4.065163775812e-01 + 5.002800000000e-09 3.037051458814e-01 + 5.012800000000e-09 1.614456966064e-01 + 5.022800000000e-09 -3.140541353410e-03 + 5.032800000000e-09 -1.705434720448e-01 + 5.042800000000e-09 -3.167959493642e-01 + 5.052800000000e-09 -4.176436581108e-01 + 5.062800000000e-09 -4.567904783134e-01 + 5.072800000000e-09 -4.304974756175e-01 + 5.082800000000e-09 -3.453772575060e-01 + 5.092800000000e-09 -2.150436248025e-01 + 5.102800000000e-09 -5.627814637501e-02 + 5.112800000000e-09 1.126887346862e-01 + 5.122800000000e-09 2.693188370361e-01 + 5.132800000000e-09 3.886250465491e-01 + 5.142800000000e-09 4.505620779568e-01 + 5.152800000000e-09 4.469599727796e-01 + 5.162800000000e-09 3.813375821020e-01 + 5.172800000000e-09 2.651804097085e-01 + 5.182800000000e-09 1.144979323371e-01 + 5.192800000000e-09 -5.320249220978e-02 + 5.202800000000e-09 -2.170495801291e-01 + 5.212800000000e-09 -3.522885439484e-01 + 5.222800000000e-09 -4.361094619590e-01 + 5.232800000000e-09 -4.557797826345e-01 + 5.242800000000e-09 -4.110550829724e-01 + 5.252800000000e-09 -3.109835045712e-01 + 5.262800000000e-09 -1.704940153492e-01 + 5.272800000000e-09 -6.658261407769e-03 + 5.282800000000e-09 1.612499204857e-01 + 5.292800000000e-09 3.094600753540e-01 + 5.302800000000e-09 4.135166703401e-01 + 5.312800000000e-09 4.564708695076e-01 + 5.322800000000e-09 4.338637375563e-01 + 5.332800000000e-09 3.517900964280e-01 + 5.342800000000e-09 2.235741216924e-01 + 5.352800000000e-09 6.593362598765e-02 + 5.362800000000e-09 -1.030609522330e-01 + 5.372800000000e-09 -2.611331951545e-01 + 5.382800000000e-09 -3.832647757224e-01 + 5.392800000000e-09 -4.488810836550e-01 + 5.402800000000e-09 -4.490610448444e-01 + 5.412800000000e-09 -3.867406866619e-01 + 5.422800000000e-09 -2.730437032369e-01 + 5.432800000000e-09 -1.238484983962e-01 + 5.442800000000e-09 4.342741315033e-02 + 5.452800000000e-09 2.081866330621e-01 + 5.462800000000e-09 3.457839035824e-01 + 5.472800000000e-09 4.330563271577e-01 + 5.482800000000e-09 4.565445731179e-01 + 5.492800000000e-09 4.153478649151e-01 + 5.502800000000e-09 3.180711206356e-01 + 5.512800000000e-09 1.794176558320e-01 + 5.522800000000e-09 1.641011396593e-02 + 5.532800000000e-09 -1.519039268062e-01 + 5.542800000000e-09 -3.019665647326e-01 + 5.552800000000e-09 -4.091541747618e-01 + 5.562800000000e-09 -4.558891498636e-01 + 5.572800000000e-09 -4.369840984805e-01 + 5.582800000000e-09 -3.581241392102e-01 + 5.592800000000e-09 -2.322249004909e-01 + 5.602800000000e-09 -7.574916364461e-02 + 5.612800000000e-09 9.326948142052e-02 + 5.622800000000e-09 2.527873070870e-01 + 5.632800000000e-09 3.777705045672e-01 + 5.642800000000e-09 4.471223895313e-01 + 5.652800000000e-09 4.511566588213e-01 + 5.662800000000e-09 3.922073702103e-01 + 5.672800000000e-09 2.810244279511e-01 + 5.682800000000e-09 1.333432196458e-01 + 5.692800000000e-09 -3.349195237676e-02 + 5.702800000000e-09 -1.991528178789e-01 + 5.712800000000e-09 -3.391151005923e-01 + 5.722800000000e-09 -4.298789096644e-01 + 5.732800000000e-09 -4.572528772801e-01 + 5.742800000000e-09 -4.196589632083e-01 + 5.752800000000e-09 -3.252410010138e-01 + 5.762800000000e-09 -1.884658202129e-01 + 5.772800000000e-09 -2.631231855801e-02 + 5.782800000000e-09 1.423850296428e-01 + 5.792800000000e-09 2.942912422347e-01 + 5.802800000000e-09 4.046316028654e-01 + 5.812800000000e-09 4.551176666134e-01 + 5.822800000000e-09 4.398775692260e-01 + 5.832800000000e-09 3.641786589355e-01 + 5.842800000000e-09 2.405735750661e-01 + 5.852800000000e-09 8.541020413752e-02 + 5.862800000000e-09 -8.342375580303e-02 + 5.872800000000e-09 -2.441700751645e-01 + 5.882800000000e-09 -3.718246619929e-01 + 5.892800000000e-09 -4.448177542406e-01 + 5.902800000000e-09 -4.527035205187e-01 + 5.912800000000e-09 -3.971994060655e-01 + 5.922800000000e-09 -2.886584501893e-01 + 5.932800000000e-09 -1.426436261292e-01 + 5.942800000000e-09 2.357534207914e-02 + 5.952800000000e-09 1.899416354280e-01 + 5.962800000000e-09 3.320877856471e-01 + 5.972800000000e-09 4.262270244494e-01 + 5.982800000000e-09 4.574592611578e-01 + 5.992800000000e-09 4.235149847031e-01 + 6.002800000000e-09 3.320565446906e-01 + 6.012800000000e-09 1.972902796990e-01 + 6.022800000000e-09 3.613985959442e-02 + 6.032800000000e-09 -1.327677722468e-01 + 6.042800000000e-09 -2.863431360123e-01 + 6.052800000000e-09 -3.997063143408e-01 + 6.062800000000e-09 -4.539655483493e-01 + 6.072800000000e-09 -4.425042696287e-01 + 6.082800000000e-09 -3.700327074384e-01 + 6.092800000000e-09 -2.487715382814e-01 + 6.102800000000e-09 -9.497914083079e-02 + 6.112800000000e-09 7.359209422332e-02 + 6.122800000000e-09 2.354706523905e-01 + 6.132800000000e-09 3.657058283905e-01 + 6.142800000000e-09 4.422869934945e-01 + 6.152800000000e-09 4.540147535675e-01 + 6.162800000000e-09 4.019805174515e-01 + 6.172800000000e-09 2.961282031802e-01 + 6.182800000000e-09 1.518330336106e-01 + 6.192800000000e-09 -1.370239553125e-02 + 6.202800000000e-09 -1.806839606530e-01 + 6.212800000000e-09 -3.249186645848e-01 + 6.222800000000e-09 -4.223653236709e-01 + 6.232800000000e-09 -4.574343042586e-01 + 6.242800000000e-09 -4.271546593769e-01 + 6.252800000000e-09 -3.386946470531e-01 + 6.262800000000e-09 -2.059878675733e-01 + 6.272800000000e-09 -4.589953893972e-02 + 6.282800000000e-09 1.231372739742e-01 + 6.292800000000e-09 2.782875793903e-01 + 6.302800000000e-09 3.945950758032e-01 + 6.312800000000e-09 4.525905539119e-01 + 6.322800000000e-09 4.449097729916e-01 + 6.332800000000e-09 3.756969538976e-01 + 6.342800000000e-09 2.568296698588e-01 + 6.352800000000e-09 1.044613262396e-01 + 6.362800000000e-09 -6.377641166974e-02 + 6.372800000000e-09 -2.266977186311e-01 + 6.382800000000e-09 -3.594272422115e-01 + 6.392800000000e-09 -4.395448112929e-01 + 6.402800000000e-09 -4.551052070147e-01 + 6.412800000000e-09 -4.065639532775e-01 + 6.422800000000e-09 -3.034438545933e-01 + 6.432800000000e-09 -1.609178849037e-01 + 6.442800000000e-09 3.872236648679e-03 + 6.452800000000e-09 1.713852064685e-01 + 6.462800000000e-09 3.176180728990e-01 + 6.472800000000e-09 4.183065123932e-01 + 6.482800000000e-09 4.571912190991e-01 + 6.492800000000e-09 4.305904108119e-01 + 6.502800000000e-09 3.451653585563e-01 + 6.512800000000e-09 2.145658635140e-01 + 6.522800000000e-09 5.559396789825e-02 + 6.532800000000e-09 -1.134967732320e-01 + 6.542800000000e-09 -2.701331054662e-01 + 6.552800000000e-09 -3.893091698675e-01 + 6.562800000000e-09 -4.510045019899e-01 + 6.572800000000e-09 -4.471053245698e-01 + 6.582800000000e-09 -3.811809229815e-01 + 6.592800000000e-09 -2.647548608446e-01 + 6.602800000000e-09 -1.138602690642e-01 + 6.612800000000e-09 5.397821083808e-02 + 6.622800000000e-09 2.178575335210e-01 + 6.632800000000e-09 3.529981184518e-01 + 6.642800000000e-09 4.366009970541e-01 + 6.652800000000e-09 4.559845691576e-01 + 6.662800000000e-09 4.109582498353e-01 + 6.672800000000e-09 3.106118205570e-01 + 6.682800000000e-09 1.699022954565e-01 + 6.692800000000e-09 5.915339283626e-03 + 6.702800000000e-09 -1.620496385137e-01 + 6.712800000000e-09 -3.101936837238e-01 + 6.722800000000e-09 -4.140594543730e-01 + 6.732800000000e-09 -4.567388467348e-01 + 6.742800000000e-09 -4.338303386975e-01 + 6.752800000000e-09 -3.514751821141e-01 + 6.762800000000e-09 -2.230290152209e-01 + 6.772800000000e-09 -6.522467657079e-02 + 6.782800000000e-09 1.038491420042e-01 + 6.792800000000e-09 2.618864395567e-01 + 6.802800000000e-09 3.838569947529e-01 + 6.812800000000e-09 4.492156537145e-01 + 6.822800000000e-09 4.490984904524e-01 + 6.832800000000e-09 3.864908118470e-01 + 6.842800000000e-09 2.725513338594e-01 + 6.852800000000e-09 1.231778490931e-01 + 6.862800000000e-09 -4.419932330591e-02 + 6.872800000000e-09 -2.089553852736e-01 + 6.882800000000e-09 -3.464255737525e-01 + 6.892800000000e-09 -4.334625129567e-01 + 6.902800000000e-09 -4.566593039761e-01 + 6.912800000000e-09 -4.151688766379e-01 + 6.922800000000e-09 -3.176359676292e-01 + 6.932800000000e-09 -1.787887070926e-01 + 6.942800000000e-09 -1.565986702155e-02 + 6.952800000000e-09 1.526811561401e-01 + 6.962800000000e-09 3.026519061957e-01 + 6.972800000000e-09 4.096310544442e-01 + 6.982800000000e-09 4.560835735468e-01 + 6.992800000000e-09 4.368799795502e-01 + 7.002800000000e-09 3.577521174019e-01 + 7.012800000000e-09 2.316437766720e-01 + 7.022800000000e-09 7.502797073367e-02 + 7.032800000000e-09 -9.404586390258e-02 + 7.042800000000e-09 -2.535072599361e-01 + 7.052800000000e-09 -3.783137597561e-01 + 7.062800000000e-09 -4.473999874089e-01 + 7.072800000000e-09 -4.511372706600e-01 + 7.082800000000e-09 -3.919085390613e-01 + 7.092800000000e-09 -2.804973088209e-01 + 7.102800000000e-09 -1.326563240509e-01 + 7.112800000000e-09 3.426034226867e-02 + 7.122800000000e-09 1.998998645695e-01 + 7.132800000000e-09 3.397209531622e-01 + 7.142800000000e-09 4.302409589481e-01 + 7.152800000000e-09 4.573213180723e-01 + 7.162800000000e-09 4.194379227055e-01 + 7.172800000000e-09 3.247737275567e-01 + 7.182800000000e-09 1.878188619365e-01 + 7.192800000000e-09 2.556003022406e-02 + 7.202800000000e-09 -1.431491643082e-01 + 7.212800000000e-09 -2.949511788207e-01 + 7.222800000000e-09 -4.050750848511e-01 + 7.232800000000e-09 -4.552765862658e-01 + 7.242800000000e-09 -4.397412508267e-01 + 7.252800000000e-09 -3.637807839581e-01 + 7.262800000000e-09 -2.399757437995e-01 + 7.272800000000e-09 -8.468383609971e-02 + 7.282800000000e-09 8.419397478455e-02 + 7.292800000000e-09 2.448744643025e-01 + 7.302800000000e-09 3.723459718917e-01 + 7.312800000000e-09 4.450701446380e-01 + 7.322800000000e-09 4.526588922797e-01 + 7.332800000000e-09 3.968786986951e-01 + 7.342800000000e-09 2.881158358805e-01 + 7.352800000000e-09 1.419499990279e-01 + 7.362800000000e-09 -2.434131542561e-02 + 7.372800000000e-09 -1.906786305153e-01 + 7.382800000000e-09 -3.326783320432e-01 + 7.392800000000e-09 -4.265708523871e-01 + 7.402800000000e-09 -4.575085610948e-01 + 7.412800000000e-09 -4.232763841685e-01 + 7.422800000000e-09 -3.315758763597e-01 + 7.432800000000e-09 -1.966362048871e-01 + 7.442800000000e-09 -3.538765638313e-02 + 7.452800000000e-09 1.335257044583e-01 + 7.462800000000e-09 2.869926688408e-01 + 7.472800000000e-09 4.001370684553e-01 + 7.482800000000e-09 4.541107274656e-01 + 7.492800000000e-09 4.423548581964e-01 + 7.502800000000e-09 3.696241572554e-01 + 7.512800000000e-09 2.481670551637e-01 + 7.522800000000e-09 9.425155184401e-02 + 7.532800000000e-09 -7.435865300821e-02 + 7.542800000000e-09 -2.361681740350e-01 + 7.552800000000e-09 -3.662187473256e-01 + 7.562800000000e-09 -4.425303282172e-01 + 7.572800000000e-09 -4.539611054760e-01 + 7.582800000000e-09 -4.016519706394e-01 + 7.592800000000e-09 -2.955802256295e-01 + 7.602800000000e-09 -1.511378670319e-01 + 7.612800000000e-09 1.446613451159e-02 + 7.622800000000e-09 1.814164653912e-01 + 7.632800000000e-09 3.255040554074e-01 + 7.642800000000e-09 4.227039945777e-01 + 7.652800000000e-09 4.574783247255e-01 + 7.662800000000e-09 4.269111495236e-01 + 7.672800000000e-09 3.382104011380e-01 + 7.682800000000e-09 2.053325486453e-01 + 7.692800000000e-09 4.514887676998e-02 + 7.702800000000e-09 -1.238921003380e-01 + 7.712800000000e-09 -2.789339676933e-01 + 7.722800000000e-09 -3.950233798475e-01 + 7.732800000000e-09 -4.527336023696e-01 + 7.742800000000e-09 -4.447584484382e-01 + 7.752800000000e-09 -3.752869644627e-01 + 7.762800000000e-09 -2.562247182867e-01 + 7.772800000000e-09 -1.037350878127e-01 + 7.782800000000e-09 6.454054908677e-02 + 7.792800000000e-09 2.273933018400e-01 + 7.802800000000e-09 3.599396699227e-01 + 7.812800000000e-09 4.397886637993e-01 + 7.822800000000e-09 4.550522525048e-01 + 7.832800000000e-09 4.062360518396e-01 + 7.842800000000e-09 3.028967215974e-01 + 7.852800000000e-09 1.602244477917e-01 + 7.862800000000e-09 -4.633643315572e-03 + 7.872800000000e-09 -1.721163056546e-01 + 7.882800000000e-09 -3.182041574777e-01 + 7.892800000000e-09 -4.186477066591e-01 + 7.902800000000e-09 -4.572382129244e-01 + 7.912800000000e-09 -4.303495969231e-01 + 7.922800000000e-09 -3.446835043061e-01 + 7.932800000000e-09 -2.139129341642e-01 + 7.942800000000e-09 -5.484588096414e-02 + 7.952800000000e-09 1.142501240266e-01 + 7.962800000000e-09 2.707804532346e-01 + 7.972800000000e-09 3.897409935255e-01 + 7.982800000000e-09 4.511522853932e-01 + 7.992800000000e-09 4.469587751220e-01 + 8.002800000000e-09 3.807750841138e-01 + 8.012800000000e-09 2.641532527874e-01 + 8.022800000000e-09 1.131370626504e-01 + 8.032800000000e-09 -5.474047159237e-02 + 8.042800000000e-09 -2.185539038492e-01 + 8.052800000000e-09 -3.535145954607e-01 + 8.062800000000e-09 -4.368510012280e-01 + 8.072800000000e-09 -4.559381041599e-01 + 8.082800000000e-09 -4.106361172960e-01 + 8.092800000000e-09 -3.100693436521e-01 + 8.102800000000e-09 -1.692126554893e-01 + 8.112800000000e-09 -5.156479891790e-03 + 8.122800000000e-09 1.627809764937e-01 + 8.132800000000e-09 3.107837590049e-01 + 8.142800000000e-09 4.144076284002e-01 + 8.152800000000e-09 4.567936922044e-01 + 8.162800000000e-09 4.335967757070e-01 + 8.172800000000e-09 3.509993475504e-01 + 8.182800000000e-09 2.223807334068e-01 + 8.192800000000e-09 6.447991072666e-02 + 8.202800000000e-09 -1.046018020382e-01 + 8.212800000000e-09 -2.625369838934e-01 + 8.222800000000e-09 -3.842957342556e-01 + 8.232800000000e-09 -4.493721898847e-01 + 8.242800000000e-09 -4.489606968910e-01 + 8.252800000000e-09 -3.860925048904e-01 + 8.262800000000e-09 -2.719554353137e-01 + 8.272800000000e-09 -1.224587955729e-01 + 8.282800000000e-09 4.495986394447e-02 + 8.292800000000e-09 2.096539696275e-01 + 8.302800000000e-09 3.469486346114e-01 + 8.312800000000e-09 4.337219348301e-01 + 8.322800000000e-09 4.566227620903e-01 + 8.332800000000e-09 4.148556028750e-01 + 8.342800000000e-09 3.171005007185e-01 + 8.352800000000e-09 1.781041913683e-01 + 8.362800000000e-09 1.490381994536e-02 + 8.372800000000e-09 -1.534135281773e-01 + 8.382800000000e-09 -3.032477427536e-01 + 8.392800000000e-09 -4.099887242698e-01 + 8.402800000000e-09 -4.561491135714e-01 + 8.412800000000e-09 -4.366563781684e-01 + 8.422800000000e-09 -3.572856950757e-01 + 8.432800000000e-09 -2.310042182547e-01 + 8.442800000000e-09 -7.428956173148e-02 + 8.452800000000e-09 9.479648358896e-02 + 8.462800000000e-09 2.541615754495e-01 + 8.472800000000e-09 3.787619109501e-01 + 8.482800000000e-09 4.475692795345e-01 + 8.492800000000e-09 4.510130544794e-01 + 8.502800000000e-09 3.915226739696e-01 + 8.512800000000e-09 2.799114931833e-01 + 8.522800000000e-09 1.319447861779e-01 + 8.532800000000e-09 -3.501709342708e-02 + 8.542800000000e-09 -2.006002098238e-01 + 8.552800000000e-09 -3.402519042333e-01 + 8.562800000000e-09 -4.305126946542e-01 + 8.572800000000e-09 -4.572986424165e-01 + 8.582800000000e-09 -4.191378775483e-01 + 8.592800000000e-09 -3.242494680969e-01 + 8.602800000000e-09 -1.871429767940e-01 + 8.612800000000e-09 -2.480932822869e-02 + 8.622800000000e-09 1.438813030247e-01 + 8.632800000000e-09 2.955530303162e-01 + 8.642800000000e-09 4.054440486110e-01 + 8.652800000000e-09 4.553570560956e-01 + 8.662800000000e-09 4.395340917390e-01 + 8.672800000000e-09 3.633289461111e-01 + 8.682800000000e-09 2.393470027611e-01 + 8.692800000000e-09 8.395224342853e-02 + 8.702800000000e-09 -8.494329814688e-02 + 8.712800000000e-09 -2.455344323774e-01 + 8.722800000000e-09 -3.728063451540e-01 + 8.732800000000e-09 -4.452555056606e-01 + 8.742800000000e-09 -4.525511105202e-01 + 8.752800000000e-09 -3.965005760303e-01 + 8.762800000000e-09 -2.875296863623e-01 + 8.772800000000e-09 -1.412379258072e-01 + 8.782800000000e-09 2.509952542677e-02 + 8.792800000000e-09 1.913823932870e-01 + 8.802800000000e-09 3.332149893990e-01 + 8.812800000000e-09 4.268493083217e-01 + 8.822800000000e-09 4.574916815829e-01 + 8.832800000000e-09 4.229802250232e-01 + 8.842800000000e-09 3.310535160711e-01 + 8.852800000000e-09 1.959607448488e-01 + 8.862800000000e-09 3.463617063542e-02 + 8.872800000000e-09 -1.342608483658e-01 + 8.882800000000e-09 -2.876003622843e-01 + 8.892800000000e-09 -4.005138448171e-01 + 8.902800000000e-09 -4.541988967781e-01 + 8.912800000000e-09 -4.421538492749e-01 + 8.922800000000e-09 -3.691761939542e-01 + 8.932800000000e-09 -2.475398701918e-01 + 8.942800000000e-09 -9.351989674424e-02 + 8.952800000000e-09 7.511030877907e-02 + 8.962800000000e-09 2.368336364526e-01 + 8.972800000000e-09 3.666874445392e-01 + 8.982800000000e-09 4.427248625602e-01 + 8.992800000000e-09 4.538616628698e-01 + 9.002800000000e-09 4.012868663474e-01 + 9.012800000000e-09 2.950092829548e-01 + 9.022800000000e-09 1.504354779232e-01 + 9.032800000000e-09 -1.522083886979e-02 + 9.042800000000e-09 -1.821246867391e-01 + 9.052800000000e-09 -3.260534289613e-01 + 9.062800000000e-09 -4.230010361631e-01 + 9.072800000000e-09 -4.574819250309e-01 + 9.082800000000e-09 -4.266341467266e-01 + 9.092800000000e-09 -3.377037062220e-01 + 9.102800000000e-09 -2.046681095849e-01 + 9.112800000000e-09 -4.440303608496e-02 + 9.122800000000e-09 1.246287002690e-01 + 9.132800000000e-09 2.795511673692e-01 + 9.142800000000e-09 3.954163352746e-01 + 9.152800000000e-09 4.528411156012e-01 + 9.162800000000e-09 4.445766359386e-01 + 9.172800000000e-09 3.748554535543e-01 + 9.182800000000e-09 2.556095848476e-01 + 9.192800000000e-09 1.030107161471e-01 + 9.202800000000e-09 -6.529107139897e-02 + 9.212800000000e-09 -2.280652163207e-01 + 9.222800000000e-09 -3.604220526785e-01 + 9.232800000000e-09 -4.400012452690e-01 + 9.242800000000e-09 -4.549716602829e-01 + 9.252800000000e-09 -4.058878333485e-01 + 9.262800000000e-09 -3.023389079958e-01 + 9.272800000000e-09 -1.595308197971e-01 + 9.282800000000e-09 5.384929558007e-03 + 9.292800000000e-09 1.728281494761e-01 + 9.302800000000e-09 3.187646429455e-01 + 9.312800000000e-09 4.189613005522e-01 + 9.322800000000e-09 4.572601437115e-01 + 9.332800000000e-09 4.300897500582e-01 + 9.342800000000e-09 3.441908770190e-01 + 9.352800000000e-09 2.132584496946e-01 + 9.362800000000e-09 5.410533824395e-02 + 9.372800000000e-09 -1.149876929226e-01 + 9.382800000000e-09 -2.714059159798e-01 + 9.392800000000e-09 -3.901484181965e-01 + 9.402800000000e-09 -4.512772851245e-01 + 9.412800000000e-09 -4.467943747281e-01 + 9.422800000000e-09 -3.803585301931e-01 + 9.432800000000e-09 -2.635491229601e-01 + 9.442800000000e-09 -1.124194789253e-01 + 9.452800000000e-09 5.548965876861e-02 + 9.462800000000e-09 2.192313941248e-01 + 9.472800000000e-09 3.540093126089e-01 + 9.482800000000e-09 4.370800953943e-01 + 9.492800000000e-09 4.558748211187e-01 + 9.502800000000e-09 4.103034272265e-01 + 9.512800000000e-09 3.095236488893e-01 + 9.522800000000e-09 1.685271908823e-01 + 9.532800000000e-09 4.408579125989e-03 + 9.542800000000e-09 -1.634958630938e-01 + 9.552800000000e-09 -3.113542784744e-01 + 9.562800000000e-09 -4.147364551555e-01 + 9.572800000000e-09 -4.568325907999e-01 + 9.582800000000e-09 -4.333528339900e-01 + 9.592800000000e-09 -3.505197924672e-01 + 9.602800000000e-09 -2.217355346453e-01 + 9.612800000000e-09 -6.374445814550e-02 + 9.622800000000e-09 1.053399816166e-01 + 9.632800000000e-09 2.631698454271e-01 + 9.642800000000e-09 3.847164806463e-01 + 9.652800000000e-09 4.495134710944e-01 + 9.662800000000e-09 4.488125730529e-01 + 9.672800000000e-09 3.856899690950e-01 + 9.682800000000e-09 2.713616711647e-01 + 9.692800000000e-09 1.217477182770e-01 + 9.702800000000e-09 -4.570752293318e-02 + 9.712800000000e-09 -2.103363904966e-01 + 9.722800000000e-09 -3.474547498002e-01 + 9.732800000000e-09 -4.339665331075e-01 + 9.742800000000e-09 -4.565758115479e-01 + 9.752800000000e-09 -4.145375997852e-01 + 9.762800000000e-09 -3.165663180274e-01 + 9.772800000000e-09 -1.774265341271e-01 + 9.782800000000e-09 -1.415932932735e-02 + 9.792800000000e-09 1.541310073286e-01 + 9.802800000000e-09 3.038275101279e-01 + 9.812800000000e-09 4.103318667908e-01 + 9.822800000000e-09 4.562040760414e-01 + 9.832800000000e-09 4.364275353842e-01 + 9.842800000000e-09 3.568197691808e-01 + 9.852800000000e-09 2.303705483209e-01 + 9.862800000000e-09 7.356158594636e-02 + 9.872800000000e-09 -9.553331270725e-02 + 9.882800000000e-09 -2.548006108581e-01 + 9.892800000000e-09 -3.791957833635e-01 + 9.902800000000e-09 -4.477277173052e-01 + 9.912800000000e-09 -4.508829351266e-01 + 9.922800000000e-09 -3.911364277534e-01 + 9.932800000000e-09 -2.793306025269e-01 + 9.942800000000e-09 -1.312426668226e-01 + 9.952800000000e-09 3.576101654395e-02 + 9.962800000000e-09 2.012859275441e-01 + 9.972800000000e-09 3.407686816304e-01 + 9.982800000000e-09 4.307731403463e-01 + 9.992800000000e-09 4.572693054677e-01 + 1.000000000000e-08 4.354906013278e-01 diff --git a/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_25/conditions.yaml b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_25/conditions.yaml new file mode 100644 index 00000000..5eec55cb --- /dev/null +++ b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_25/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/LC_Oscillator/xschem/simulations/schematic/LC_Oscillator.spice +N: 25 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: ss +filename: LC_Oscillator_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_25 +temperature: '80' +vdd: '1.2' diff --git a/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_26/.spiceinit b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_26/.spiceinit new file mode 100644 index 00000000..02b902fb --- /dev/null +++ b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_26/.spiceinit @@ -0,0 +1,30 @@ +* a custom spiceinit file for IHP-Open-PDK + +* export PDK_ROOT and PDK environmental variables first and add it to your .bashrc +* export PDK_ROOT= installation_specific_directory/IHP-Open-PDK +* export PDK=ihp-sg13g2 + +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_stdcell/spice ) +setcs sourcepath = ( $sourcepath $PDK_ROOT/$PDK/libs.tech/ngspice/models $PDK_ROOT/ihp-sg13g2/libs.ref/sg13g2_io/spice ) +*echo $sourcepath + +*option tnom=28 +*option list + +* KLU solver still do not work correctly for every simulation +*option klu + +*option node +*option opts +*option warn=1 +*option maxwarns=10 +*option savecurrents + +*set ngbehavior=hsa +*set noinit + +* add OSDI +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/psp103_nqs.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/r3_cmc.osdi' +osdi '$PDK_ROOT/$PDK/libs.tech/ngspice/osdi/mosvar.osdi' + diff --git a/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_26/LC_Oscillator.sym b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_26/LC_Oscillator.sym new file mode 100644 index 00000000..e632b156 --- /dev/null +++ b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_26/LC_Oscillator.sym @@ -0,0 +1,27 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=primitive +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 70 -20 90 -20 {} +L 4 70 20 90 20 {} +L 7 20 70 20 90 {} +L 7 -20 70 -20 90 {} +B 5 87.5 -22.5 92.5 -17.5 {name=Voplus dir=out} +B 5 17.5 87.5 22.5 92.5 {name=vdd dir=inout} +B 5 -22.5 87.5 -17.5 92.5 {name=gnd dir=inout} +B 5 87.5 17.5 92.5 22.5 {name=Vominus dir=out} +A 4 -1.666666666666714 1.666666666666714 71.68604389202189 287.5924245621816 360 {} +A 4 -30 27.5 40.69705149024927 42.51044707800085 94.97910584399833 {} +A 4 30 -27.5 40.69705149024927 222.5104470780009 94.97910584399833 {} +T {@symname} -40.5 -56 0 0 0.1 0.1 {} +T {@name} -40 -47 0 0 0.1 0.1 { +} +T {Voplus} 65 -24 0 1 0.2 0.2 {} +T {vdd} 5 64 2 1 0.2 0.2 {} +T {gnd} -35 64 2 1 0.2 0.2 {} +T {Vominus} 65 16 0 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_26/LC_Oscillator_tb.sch b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_26/LC_Oscillator_tb.sch new file mode 100644 index 00000000..c1df500e --- /dev/null +++ b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_26/LC_Oscillator_tb.sch @@ -0,0 +1,57 @@ +v {xschem version=3.4.8RC file_version=1.3} +G {} +K {} +V {} +S {} +F {} +E {} +N 1570 -1060 1570 -1030 {lab=VDD} +N 1570 -970 1570 -940 {lab=GND} +N 1270 -1050 1270 -1030 {lab=GND} +N 1230 -1060 1230 -1030 {lab=VDD} +N 1140 -920 1160 -920 {lab=Voplus} +N 1140 -960 1160 -960 {lab=Vominus} +C {code_shown.sym} 440 -1140 0 0 {name=transient_tb only_toplevel=false +value=" +.ic V(Voplus)=1.2 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write LC_Oscillator_tb.raw +set appendwrite +tran 10p 10n 160p +save all + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m + +set wr_singlescale +wrdata /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_26/LC_Oscillator_tb_26.data vo_diff +quit + +.endc +"} +C {vsource.sym} 1570 -1000 0 0 {name=V1 value=1.6 savecurrent=false} +C {gnd.sym} 1570 -940 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1570 -1060 0 0 {name=p2 sig_type=std_logic lab=VDD} +C {opin.sym} 1140 -920 2 0 {name=p6 lab=Voplus} +C {gnd.sym} 1270 -1050 2 0 {name=l3 lab=GND} +C {opin.sym} 1140 -960 0 1 {name=p9 lab=Vominus} +C {LC_Oscillator.sym} 1250 -940 2 0 {name=x1} +C {devices/code_shown.sym} 450 -640 0 0 {name=SETUP only_toplevel=true +format="tcleval( @value )" +value=" +.lib /home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_ss + +.include /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/LC_Oscillator/xschem/simulations/schematic/LC_Oscillator.spice + +.temp 80 +" +} +C {iopin.sym} 1230 -1060 2 0 {name=p1 lab=VDD} diff --git a/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_26/conditions.yaml b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_26/conditions.yaml new file mode 100644 index 00000000..dda699ee --- /dev/null +++ b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_26/conditions.yaml @@ -0,0 +1,9 @@ +DUT_path: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/LC_Oscillator/xschem/simulations/schematic/LC_Oscillator.spice +N: 26 +PDK: ihp-sg13g2 +PDK_ROOT: /home/pedersen/IHP-Open-PDK +corner: ss +filename: LC_Oscillator_tb +simpath: /home/pedersen/projects/IHP-AnalogAcademy/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/parameters/ac_params/run_26 +temperature: '80' +vdd: '1.6' diff --git a/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/summary.md b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/summary.md new file mode 100644 index 00000000..314e0775 --- /dev/null +++ b/modules/module_4_type_2_PLL/LC_Oscillator/runs/RUN_2025-11-17_09-25-51/summary.md @@ -0,0 +1,11 @@ + +# CACE Summary for LC_Oscillator + +**netlist source**: schematic + +| Parameter | Tool | Result | Min Limit | Min Value | Typ Target | Typ Value | Max Limit | Max Value | Status | +| :------------------- | :------------------- | :-------------- | ---------: | -----------: | ---------: | -----------: | ---------: | -----------: | :------: | +| Frequency | ngspice | frequency | 4.3 GHz | ​ | 5.0 GHz | ​ | 5.2 GHz | ​ | Error ❗ | +| Amplitude | ngspice | amplitude | 0.2 V | ​ | 0.4 V | ​ | 0.6 V | ​ | Error ❗ | +| Voltage swing | ngspice | voltage_swing | 0.4 V | ​ | 0.8 V | ​ | 1.2 V | ​ | Error ❗ | + diff --git a/modules/module_4_type_2_PLL/LC_Oscillator/testbench/LC_Oscillator_tb.sch b/modules/module_4_type_2_PLL/LC_Oscillator/testbench/LC_Oscillator_tb.sch new file mode 100644 index 00000000..8a9049fd --- /dev/null +++ b/modules/module_4_type_2_PLL/LC_Oscillator/testbench/LC_Oscillator_tb.sch @@ -0,0 +1,132 @@ +v {xschem version=3.4.8RC file_version=1.3} +G {} +K {} +V {} +S {} +F {} +E {} +B 2 1120 -1110 1920 -710 {flags=graph +y1=1.1 +y2=1.3 +ypos1=0 +ypos2=2 +divy=5 +subdivy=1 +unity=1 +x1=1.628e-10 +x2=1e-09 +divx=5 +subdivx=1 +xlabmag=1.0 +ylabmag=1.0 +dataset=-1 +unitx=1 +logx=0 +logy=0 +color="4 7" +node="vo_m +vo_p"} +B 2 1930 -1120 2730 -720 {flags=graph +y1=-0.41 +y2=0.41 +ypos1=0 +ypos2=2 +divy=5 +subdivy=1 +unity=1 +x1=1.628e-10 +x2=1e-09 +divx=5 +subdivx=1 +xlabmag=1.0 +ylabmag=1.0 +dataset=-1 +unitx=1 +logx=0 +logy=0 +color=4 +node=vo_diff} +N 1040 -530 1040 -500 {lab=vdd} +N 1040 -440 1040 -410 {lab=GND} +N 740 -520 740 -500 {lab=GND} +N 700 -530 700 -500 {lab=vdd} +N 610 -390 630 -390 {lab=Voplus} +N 610 -430 630 -430 {lab=Vominus} +C {code_shown.sym} 440 -1140 0 0 {name=transient_tb only_toplevel=false +value=" +.include LC_Oscillator_tb.save +.param temp=27 +.ic V(Voplus)=1.2 +.control +set noaskquit +set numdgt=12 + +* Save & simulate +save all +op +write LC_Oscillator_tb.raw +set appendwrite +tran 10p 10n 160p +save all + +* Explicit vectors +let vo_p = v(Voplus) +let vo_m = v(Vominus) +let vo_diff = vo_p - vo_m +* --- Main output (mimic CACE naming, just to compare) --- +set wr_singlescale +wrdata differential_output.txt vo_diff + +* --- Extra debug (like we did for CACE) --- +set wr_vecnames +wrdata manual_debug.dat time vo_p vo_m vo_diff +unset wr_vecnames + +write LC_Oscillator_tb.raw +.endc +"} +C {devices/code_shown.sym} 810 -1130 0 0 {name=MODEL only_toplevel=true +format="tcleval( @value )" +value=".lib cornerMOSlv.lib mos_tt +" +} +C {devices/launcher.sym} 1190 -250 0 0 {name=h1 +descr="OP annotate" +tclcommand="xschem annotate_op" +} +C {launcher.sym} 1190 -170 0 0 {name=h5 +descr="load waves" +tclcommand="xschem raw_read $netlist_dir/LC_Oscillator_tb.raw tran" +} +C {vsource.sym} 1040 -470 0 0 {name=V1 value=1.2 savecurrent=false} +C {gnd.sym} 1040 -410 0 0 {name=l2 lab=GND} +C {lab_pin.sym} 1040 -530 0 0 {name=p2 sig_type=std_logic lab=vdd} +C {opin.sym} 610 -390 2 0 {name=p6 lab=Voplus} +C {gnd.sym} 740 -520 2 0 {name=l3 lab=GND} +C {lab_pin.sym} 700 -530 2 1 {name=p7 sig_type=std_logic lab=vdd} +C {launcher.sym} 1190 -210 0 0 {name=h2 +descr=SimulateNGSPICE +tclcommand=" +# Setup the default simulation commands if not already set up +# for example by already launched simulations. +set_sim_defaults +puts $sim(spice,1,cmd) + +# Change the Xyce command. In the spice category there are currently +# 5 commands (0, 1, 2, 3, 4). Command 3 is the Xyce batch +# you can get the number by querying $sim(spice,n) +set sim(spice,1,cmd) \{ngspice \\"$N\\" -a\} + +# change the simulator to be used (Xyce) +set sim(spice,default) 0 + +# Create FET and BIP .save file +mkdir -p $netlist_dir +write_data [save_params] $netlist_dir/[file rootname [file tail [xschem get current_name]]].save + +# run netlist and simulation +xschem netlist +simulate +"} +C {opin.sym} 610 -430 0 1 {name=p9 lab=Vominus} +C {LC_Oscillator.sym} 720 -410 2 0 {name=x1} diff --git a/modules/module_4_type_2_PLL/LC_Oscillator/testbench/simulations/LC_Oscillator_tb.save b/modules/module_4_type_2_PLL/LC_Oscillator/testbench/simulations/LC_Oscillator_tb.save new file mode 100644 index 00000000..85bf3b74 --- /dev/null +++ b/modules/module_4_type_2_PLL/LC_Oscillator/testbench/simulations/LC_Oscillator_tb.save @@ -0,0 +1,22 @@ +* Place this .save file with a .include line in your testbench + +.save @n.x1.xm1.nsg13_lv_nmos[ids] +.save @n.x1.xm1.nsg13_lv_nmos[gm] +.save @n.x1.xm1.nsg13_lv_nmos[gds] +.save @n.x1.xm1.nsg13_lv_nmos[vth] +.save @n.x1.xm1.nsg13_lv_nmos[vgs] +.save @n.x1.xm1.nsg13_lv_nmos[vdss] +.save @n.x1.xm1.nsg13_lv_nmos[vds] +.save @n.x1.xm1.nsg13_lv_nmos[cgg] +.save @n.x1.xm1.nsg13_lv_nmos[cgsol] +.save @n.x1.xm1.nsg13_lv_nmos[cgdol] +.save @n.x1.xm2.nsg13_lv_nmos[ids] +.save @n.x1.xm2.nsg13_lv_nmos[gm] +.save @n.x1.xm2.nsg13_lv_nmos[gds] +.save @n.x1.xm2.nsg13_lv_nmos[vth] +.save @n.x1.xm2.nsg13_lv_nmos[vgs] +.save @n.x1.xm2.nsg13_lv_nmos[vdss] +.save @n.x1.xm2.nsg13_lv_nmos[vds] +.save @n.x1.xm2.nsg13_lv_nmos[cgg] +.save @n.x1.xm2.nsg13_lv_nmos[cgsol] +.save @n.x1.xm2.nsg13_lv_nmos[cgdol] diff --git a/modules/module_4_type_2_PLL/LC_Oscillator/testbench/xschemrc b/modules/module_4_type_2_PLL/LC_Oscillator/testbench/xschemrc new file mode 100644 index 00000000..34b6db6d --- /dev/null +++ b/modules/module_4_type_2_PLL/LC_Oscillator/testbench/xschemrc @@ -0,0 +1,18 @@ +# xschemrc - Custom configuration file for xschem +# This file sources another xschemrc file from a known location + +# Source the base configuration from a known location +source $::env(PDK_ROOT)/$::env(PDK)/libs.tech/xschem/xschemrc + +# (Optional) Add any custom overrides or extensions below +# set xschem_library_path /home/user/my_libs +# set xschem_gui_font "Monospace 10" + +#### include skywater libraries. Here I use [pwd]. This works if I start xschem from here. +###only if you dont have this setup already ### +###append XSCHEM_LIBRARY_PATH :[file dirname [info script]] + + +#### Add custom libraries (directories with .lib files) +append XSCHEM_LIBRARY_PATH :../xschem/ + diff --git a/modules/module_4_type_2_PLL/LC_Oscillator/xschem/LC_Oscillator.sch b/modules/module_4_type_2_PLL/LC_Oscillator/xschem/LC_Oscillator.sch new file mode 100644 index 00000000..5e278143 --- /dev/null +++ b/modules/module_4_type_2_PLL/LC_Oscillator/xschem/LC_Oscillator.sch @@ -0,0 +1,105 @@ +v {xschem version=3.4.8RC file_version=1.3} +G {} +K {} +V {} +S {} +F {} +E {} +N 310 -500 310 -440 {lab=#net1} +N 420 -440 530 -440 {lab=#net1} +N 530 -500 530 -440 {lab=#net1} +N 310 -720 310 -690 {lab=vdd} +N 420 -720 530 -720 {lab=vdd} +N 530 -720 530 -690 {lab=vdd} +N 310 -440 420 -440 {lab=#net1} +N 530 -600 530 -560 {lab=Vominus} +N 420 -330 420 -290 {lab=gnd} +N 420 -740 420 -720 {lab=vdd} +N 310 -720 420 -720 {lab=vdd} +N 530 -530 580 -530 {lab=gnd} +N 250 -530 310 -530 {lab=gnd} +N 420 -440 420 -390 {lab=#net1} +N 460 -530 490 -530 {lab=Voplus} +N 310 -590 310 -560 {lab=Voplus} +N 350 -530 380 -530 {lab=Vominus} +N 380 -530 530 -630 {lab=Vominus} +N 310 -630 460 -530 {lab=Voplus} +N 530 -690 600 -690 {lab=vdd} +N 530 -630 600 -630 {lab=Vominus} +N 240 -690 310 -690 {lab=vdd} +N 240 -630 310 -630 {lab=Voplus} +N 170 -590 310 -590 {lab=Voplus} +N 310 -630 310 -590 {lab=Voplus} +N 530 -600 670 -600 {lab=Vominus} +N 530 -630 530 -600 {lab=Vominus} +N 170 -590 170 -580 {lab=Voplus} +N 170 -520 170 -490 {lab=gnd} +N 670 -600 670 -590 {lab=Vominus} +N 670 -530 670 -500 {lab=gnd} +C {sg13g2_pr/sg13_lv_nmos.sym} 330 -530 0 1 {name=M1 +l=0.13u +w=16u +ng=4 +m=1 +model=sg13_lv_nmos +spiceprefix=X +} +C {sg13g2_pr/sg13_lv_nmos.sym} 510 -530 0 0 {name=M2 +l=0.13u +w=16u +ng=4 +m=1 +model=sg13_lv_nmos +spiceprefix=X +} +C {res.sym} 600 -660 0 0 {name=R2 +value=393 +footprint=1206 +device=resistor +m=1} +C {isource.sym} 420 -360 0 0 {name=I0 value=1m} +C {lab_pin.sym} 420 -290 2 0 {name=p3 sig_type=std_logic lab=gnd +} +C {lab_pin.sym} 420 -740 2 0 {name=p9 sig_type=std_logic lab=vdd +} +C {iopin.sym} 230 -370 2 0 {name=p24 lab=vdd} +C {iopin.sym} 230 -350 2 0 {name=p25 lab=gnd} +C {ind.sym} 530 -660 0 0 {name=L1 +m=1 +value=1.56n +footprint=1206 +device=inductor} +C {lab_pin.sym} 580 -530 2 0 {name=p1 sig_type=std_logic lab=gnd +} +C {lab_pin.sym} 250 -530 0 0 {name=p5 sig_type=std_logic lab=gnd +} +C {res.sym} 240 -660 0 1 {name=R1 +value=393 +footprint=1206 +device=resistor +m=1} +C {ind.sym} 310 -660 0 1 {name=L2 +m=1 +value=1.56n +footprint=1206 +device=inductor} +C {capa.sym} 170 -550 0 0 {name=C1 +m=1 +value=400f +footprint=1206 +device="ceramic capacitor"} +C {lab_pin.sym} 170 -490 0 0 {name=p2 sig_type=std_logic lab=gnd +} +C {capa.sym} 670 -560 0 1 {name=C2 +m=1 +value=400f +footprint=1206 +device="ceramic capacitor"} +C {lab_pin.sym} 670 -500 0 1 {name=p4 sig_type=std_logic lab=gnd +} +C {lab_pin.sym} 670 -600 2 0 {name=p6 sig_type=std_logic lab=Vominus +} +C {lab_pin.sym} 170 -590 0 0 {name=p7 sig_type=std_logic lab=Voplus +} +C {opin.sym} 230 -330 2 0 {name=p8 lab=Voplus} +C {opin.sym} 230 -310 2 0 {name=p10 lab=Vominus} diff --git a/modules/module_4_type_2_PLL/LC_Oscillator/xschem/LC_Oscillator.sym b/modules/module_4_type_2_PLL/LC_Oscillator/xschem/LC_Oscillator.sym new file mode 100644 index 00000000..b9399769 --- /dev/null +++ b/modules/module_4_type_2_PLL/LC_Oscillator/xschem/LC_Oscillator.sym @@ -0,0 +1,27 @@ +v {xschem version=3.4.6 file_version=1.2} +G {} +K {type=subcircuit +format="@name @pinlist @symname" +template="name=x1" +} +V {} +S {} +E {} +L 4 70 -20 90 -20 {} +L 4 70 20 90 20 {} +L 7 20 70 20 90 {} +L 7 -20 70 -20 90 {} +B 5 87.5 -22.5 92.5 -17.5 {name=Voplus dir=out} +B 5 17.5 87.5 22.5 92.5 {name=vdd dir=inout} +B 5 -22.5 87.5 -17.5 92.5 {name=gnd dir=inout} +B 5 87.5 17.5 92.5 22.5 {name=Vominus dir=out} +A 4 -1.666666666666714 1.666666666666714 71.68604389202189 287.5924245621816 360 {} +A 4 -30 27.5 40.69705149024927 42.51044707800085 94.97910584399833 {} +A 4 30 -27.5 40.69705149024927 222.5104470780009 94.97910584399833 {} +T {@symname} -40.5 -56 0 0 0.1 0.1 {} +T {@name} -40 -47 0 0 0.1 0.1 { +} +T {Voplus} 65 -24 0 1 0.2 0.2 {} +T {vdd} 5 64 2 1 0.2 0.2 {} +T {gnd} -35 64 2 1 0.2 0.2 {} +T {Vominus} 65 16 0 1 0.2 0.2 {} diff --git a/modules/module_4_type_2_PLL/LC_Oscillator/xschem/xschemrc b/modules/module_4_type_2_PLL/LC_Oscillator/xschem/xschemrc new file mode 100644 index 00000000..14a1e9f2 --- /dev/null +++ b/modules/module_4_type_2_PLL/LC_Oscillator/xschem/xschemrc @@ -0,0 +1,12 @@ +# Source the base configuration from a known location +source $::env(PDK_ROOT)/$::env(PDK)/libs.tech/xschem/xschemrc + +# Add current directory to xschem library path +append XSCHEM_LIBRARY_PATH :[file dirname [info script]] + +# Source the dependencies xschemrc files +foreach rcfile [glob -nocomplain ../ip/*/xschem/xschemrc] { + puts "sourcing $rcfile" + source $rcfile +} +