## testing TL with non-linear junction capacitance ## # test 1: Cj=Cmin # test 2: Cj=Cmax # test 3: non-linear Cj=[Cmin cmax] # The load voltage of test 3 should be bounded by tests 1 and 2 ## clear; closeall; switchtodesign; ## Cmin=34e-12; Cmax=40e-12; ################### Test 1: Cj_min ################### switchtodesign; select("TWOMM_1"); set("junction capacitance type", "constant"); set("constant junction capacitance", Cmin); run; ## # read input signal myr=getresult("OSC_1","signal"); source_time=myr.getparameter(myr.getparameter); source=myr.getattribute(myr.getattribute); #read TWOMM modulator optical signal myr=getresult("OOSC_1","sum/signal"); TWOMM_optical_time_Cj_min=myr.getparameter(myr.getparameter); TWOMM_optical_voltage_Cj_min=myr.getattribute(myr.getattribute); ################### Test 2: Cj_max ################### switchtodesign; select("TWOMM_1"); set("junction capacitance type", "constant"); set("constant junction capacitance", Cmax); run; ## # read input signal myr=getresult("TWOMM_1","load voltage waveform"); Load_time_Cj_max=myr.getparameter(myr.getparameter); Load_Voltage_Cj_max=myr.getattribute(myr.getattribute); #read TWOMM modulator optical signal myr=getresult("OOSC_1","sum/signal"); TWOMM_optical_time_Cj_max=myr.getparameter(myr.getparameter); TWOMM_optical_voltage_Cj_max=myr.getattribute(myr.getattribute); ################### Test 3: Cj_nonlinear ################### switchtodesign; select("TWOMM_1"); set("junction capacitance type", "table"); set("fit polynomial order", 3); run; ## # read input signal myr=getresult("TWOMM_1","load voltage waveform"); Load_time_Cj_nonlinear=myr.getparameter(myr.getparameter); Load_Voltage_Cj_nonlinear=myr.getattribute(myr.getattribute); #read TWOMM modulator optical signal myr=getresult("OOSC_1","sum/signal"); TWOMM_optical_time_Cj_nonlinear=myr.getparameter(myr.getparameter); TWOMM_optical_voltage_Cj_nonlinear=myr.getattribute(myr.getattribute); # Plot results ## plot(TWOMM_optical_time_Cj_min*1e9,TWOMM_optical_voltage_Cj_min); holdon; plot(TWOMM_optical_time_Cj_max*1e9,TWOMM_optical_voltage_Cj_max); plot(TWOMM_optical_time_Cj_nonlinear*1e9,TWOMM_optical_voltage_Cj_nonlinear); setplot("x min",1.8); setplot("x max",2); setplot("y max",0.0009992); setplot("y min",0.000997); setplot("x label","time (ns)"); setplot("y label", "amplitude (a.u.)"); legend("Cj_min","Cj_max","Cj_nonlinear"); holdoff;