blob: 276f009ddd9b98dcac08114edbbe7b54029cd946 [file] [log] [blame]
**.subckt tb_freq_div_pex_c
VSS vss GND {vss}
VDD vdd vss {vdd}
Vref net9 vss PULSE(0 {vin} 0 1p 1p {Tref/2} {Tref}) DC {vin} AC 0
VMC S1 vss PULSE(0 {vin} 0 1p 1p 400n 800n) DC {vin} AC 0
x4 vdd net10 net9 vss inverter_min_x2_pex_c
x5 vdd CLK net10 vss inverter_min_x4_pex_c
VMC1 S0 vss PULSE(0 {vin} 0 1p 1p 200n 400n) DC {vin} AC 0
VMC2 MC vss PULSE(0 {vin} 0 1p 1p 100n 200n) DC {vin} AC 0
x1 s1n s0n S0 S1 MC clk_0 clk_pre vss vdd clk_out_mux21 clk_d n_clk_0 f_div clk_2 clk_5 clk_2_f
+ nclk_2 clk_1 n_clk_1 freq_div_pex_c
x2 nclk_2 vss CLK vdd clk_2 net1 net2 net3 net4 div_by_2_pex_c
x3 vss vdd net7 net6 f_div net8 net5 PFD_pex_c
**** begin user architecture code
* Parameters
.param kp = 1.0
.param vdd = kp*1.8
.param vss = 0.0
.param vin = vdd
.param fref = 1e9
.param Tref = 1/fref
.options TEMP = 100.0
.options RSHUNT = 1e20
.options GMIN = 1e-10
* Models
.lib ~/skywater/skywater-pdk/libraries/sky130_fd_pr_ngspice/latest/models/corners/sky130.lib SS
.include ~/caravel_analog_fulgor/xschem/simulations/inverter_min_x2_pex_c.spice
.include ~/caravel_analog_fulgor/xschem/simulations/inverter_min_x4_pex_c.spice
.include ~/caravel_analog_fulgor/xschem/simulations/div_by_2_pex_c.spice
.include ~/caravel_analog_fulgor/xschem/simulations/PFD_pex_c.spice
.include ~/caravel_analog_fulgor/xschem/simulations/freq_div_pex_c.spice
* Data to save
.save all
.ic v(CLK) = 0.0
.ic v(MC) = 0.0
.ic v(clk_2) = 0.0
.ic v(nclk_2) = 0.0
.ic v(f_div) = 0.0
.ic v(S0) = 0.0
.ic v(S1) = 0.0
.ic v(clk_0) = 0.0
.ic v(n_clk_0) = 0.0
.ic v(clk_1) = 0.0
.ic v(n_clk_1) = 0.0
.ic v(clk_pre) = 0.0
.ic v(clk_5) = 0.0
.ic v(clk_d) = 0.0
.ic v(clk_2_f) = 0.0
.ic v(s1n) = 0.0
.ic v(s0n) = 0.0
* Simulation
.control
save v(CLK) v(clk_2) v(S1) v(S0) v(MC) v(clk_0) v(clk_1) v(clk_pre) v(clk_5) v(clk_d) v(clk_2_f)
+ v(f_div)
tran 0.01ns 800ns
write tb_freq_div_tran.raw
plot v(CLK) v(clk_2)+2 v(S1)+4 v(S0)+6 v(MC)+8 v(clk_0)+10 v(clk_1)+12 v(clk_pre)+14 v(clk_5)+16
+ v(clk_d)+18 v(clk_2_f)+20 v(f_div)+22
.endc
**** end user architecture code
**.ends
.GLOBAL GND
**** begin user architecture code
**** end user architecture code
** flattened .save nodes
.end