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的这种格式。