1,建立 一个测试项的函数。比如IC trim函数。int Trim_Dc_Meas_Test()
2,函数中 首先要对IC供电进行 配置vdd1_power.Vsim(volt_vddlv),vdd4_power.Vsim(volt_vsp); //volt_vsp,vdd5_power.Vsim(volt_vsn); //volt_vsn。
3,对数字IO进行 VOH,VOL,VIL,和VOH进行配置。IO_Level_set(dp_in_set,volt_io_vih[1],volt_io_vil[1],volt_io_voh[1],volt_io_vol[1]);。
4,设置测试的rate 。 Rate(1, period); 对使用到的pattern中的IO PIN 。还要设置PIN condition 。可以用到 SIGNAL_LEVEL 或者 SIGNAL_TIMING。
SIGNAL_TIMING LPM_DATA0_N_timing;
LPM_DATA0_N_timing.pinlist( LPM_DATA0_N );
LPM_DATA0_N_timing.kind( IO );
LPM_DATA0_N_timing.option( HINIT );
LPM_DATA0_N_timing.wavekind( 0, NRZ );
LPM_DATA0_N_timing.timing( 1, T1, 20nS );
LPM_DATA0_N_timing.timing( 1, T2, 20nS );
LPM_DATA0_N_timing.timing( 1, STBL, period*0.9 );
LPM_DATA0_N_timing.timing( 1, DRET, period*0.9 );
LPM_DATA0_N_timing.Load();
如果是 数字IO口有进行到驱动和比较的(写和读)。的IO PIN的kind要注意 设置为IO
采样点STBL和DREL和,DRET。也要进行配置。否则不会进行比较。
5,IC 某些特殊的数字IO口,要做好配置。dp_bs0_set.Kind(IN); dp_bs0_set.Wave(FIXL); dp_bs0_set.Load()。用到ADG936的 IC进行mipi 高低速切换,也要注意确认对应关系。
6,
分bin的方法。
int_CurrentDut=TESTDUT.Get_Dut(CURRENT);
int_FailDut=TESTDUT.Get_FailDut(CURRENT);
if(int_FailDut!=0)
{
category.Num(int_CategoryNumber);
category.dut(int_FailDut);
category.PostExec();
if(0==(int_FunctionKey & 0x0004))//FK3 fail dut no reject
CONTACT.Off(int_FailDut,REJECT,REF_OFF);//fail dut reject
}
if(int_CurrentDut==0)
exit.branch(1);//all dut fail
else if((int_CurrentDut-int_FailDut)==0)
exit.branch(1);//all dut fail
else
exit.branch(0);//pass & fail
hvdc_set.Isvm(0uA, R800UA, M8V); //R800UA M8V
hvdc_set.LimitSet(1.96V,1.5V);
hvdc_set.SetMeasVM(VREF,seq_vm);
hvdc_set.ExecMeasVM();
if(exit.branch()!=0) return 0;
在测试fail后,exit.branch 会进行分支操作。如果不进进行判断跳转终止函数,测试项会把所有的测试项测完。
7.STPS pattern中加入 STPS,可以最后保持pattern运行后的状态不会跑掉。如果同接口,同环境 pattern存在FAIl的差异,要考虑。ND2的这种格式。