欢迎光临专业集成电路测试网~~欢迎加入IC测试QQ群:111938408

专业IC测试网

当前位置: 网站主页 > 经验分享 > 优化经验 >

MTM(multifunctional trimming module)

时间:2014-05-24 21:54来源:www.ictest8.com 作者:Vince Wei/Jerry Gao 点击:
MTMmultifunctional trimming module)
                            Dynamic Adjustment and Re-trim Solution
TE: Vince Wei/Jerry Gao
We always need to trim the fuse to adjust some parameter to a target value when chip probing(CP) . The processes of a common trimming module (CTM) are as following:
  1. Make a trim table, relate the fuse status with parameter.
  2. Measure the parameter which need adjusting.
  3. Trim the fuses according to the trim table.
  4. Measure the parameter again.
 
The common trimming module is widely used for its easy development.  But it has some limitation because the wafer can’t be re-trimed/re-test and the trim table is a theoretic result then it always did not match the actual adjustment.
 
A multifunctional trimming module (MTM) is developed for ASL-1000 tester to meet the especial demand.
The new characteristics of  the MTM are as following:
1) Dynamic adjustment. The trim table is updated dynamic according the actual adjustment.
2) Re-trim function. The wafer can be retested after trimming and also can re-trim to another target value.
3) Multi-site compatible. The program for single site and multi-site is the same.
4) Connection alarm. Alarm When the trimming source(LZB) connected abnormally to avoid a wrong trimming.
5) Modular code. All code encapsulated into a class and easily to debug .
 
  1. Program Development with MTM (A0175 dual site as example)
  1. Trim circuit

 
  1. make the trim table.
       static       TRIM_COND  p_fuse_cond [TR_MAX_COND]= //a051
       {
              //min_cond,max_cond,fuse0,fuse1,fuse2,adjust_target,-1
              {0.400f, 0.570f, 1,1,1, 48,  -1},//when 0.4<ilim<0.57 trim f0,f1,f2
              {0.570f, 0.630f, 0,1,1, 36,  -1},//when 0.57<ilim<0.63 trim f1,f2
              {0.630f, 0.690f, 1,0,1, 24,  -1},
              {0.690f, 0.775f, 0,0,1, 12,  -1},
              {0.775f, 0.880f, 0,0,0, 0,   -1},//when 0.775<ilim<0.88 no trim
              {0.880f, 1.000f, 1,0,0, -12, -1},
              {1.000f, 1.200f, 0,1,0, -24, -1},
              {1.200f, 1.500f, 1,1,0, -36, -1},
              END_TRIM_TABLE,
       };
 
  1. Setting trim config
TRIM_CONFIG     tr_cfg;
       tr_cfg.para_type=P_ILIM;
       tr_cfg.trim_vclamp=6.4f;//trim voltage clamp
       tr_cfg.trim_iclamp=0.8f;//trim current clamp
       tr_cfg.trim_v=5.0f;//trim voltage
       tr_cfg.trim_i=0.5f;//trim current
       tr_cfg.trim_delay=10;//trim time
       tr_cfg.meas_delay=5;//measure time
       tr_cfg.target_value=0.825f;// anticipant value after trim
       tr_cfg.total_adj_num=16;//for dynamic adjust
       tr_cfg.b_auto_adj=true;//dynamic adjust activate
       tr_cfg.b_cond_mode=PCT;//percentage mode
       tr_cfg.fuse_mask=0x00;//0: all fuses activate
       FOR_EACH_SITE
              tr_cfg.value_bf_trim[site]=tr_val_store[tr_cfg.para_type][TR_BEFORE][site];
      
       tr_cfg.trim_cond=p_fuse_cond;
       tr_cfg.update_adj(tr_adj_store[tr_cfg.para_type][PREVIOUS]);//dynamic update
////////////////////////////set LZB channel//////////////////////////////////////////////////
       if(CSC_MAX_SITE>0)
       {
              tr_cfg.trim_channel[0][0]=LZB_MUX_OUT_10;
              tr_cfg.trim_channel[1][0]=LZB_MUX_OUT_11;
              tr_cfg.trim_channel[2][0]=LZB_MUX_OUT_12;
       }
       if(CSC_MAX_SITE>1)
       {
              tr_cfg.trim_channel[0][0]=LZB_MUX_OUT_20;
              tr_cfg.trim_channel[1][0]=LZB_MUX_OUT_21;
              tr_cfg.trim_channel[2][0]=LZB_MUX_OUT_28;
       }
 
  1. trimming
tr_cfg.trim_init();
tr_cfg.measure_fuse();//measure resistors of the fuses
tr_cfg.check_fuse_connection();//check the connection between LZB and fuse
tr_cfg.get_value_no_trim();//calculate the value just like that the fuse is intact
tr_cfg.get_trim_flag();//get trim_flag for trimming according to the trim table
tr_cfg.store_adj(tr_adj_store[tr_cfg.para_type][CURRENT]);//store for dynamic update
tr_cfg.trim_fuse();//trim fuse
       system_init();
 
  1. datalog
data_log(func, testnum++,tr_cfg.fuse_meas_oct, POWER_UNIT, ours->fail_bin);
tr_cfg.fuse_meas_oct :  display the fuse status before trimming
tr_cfg.fuse_connection_oct : display the LZB connection
tr_cfg.trim_flag_oct :  display the fuses which need  trimming
tr_cfg.trim_achieve_oct:  display trimming result.
tr_cfg.adjust_target:  display the theoretic adjustment
 
顶一下
(3)
100%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
用户名: 验证码: 点击我更换图片