karthik_hr
Newbie level 3
Hi all,
I am a beginner in DFT. I am new to Testkompress tool of Mentor Graphics.
I have a sample testproc file. Below is the file which I am referring to.
Can anyone explain how "timeplate" is merged with the various "procedures" and how is it executed by the tool?
Please explain anyone of the procedures.
// EDT_SCAN_DUAL_EDT_TEMPLATE_START
set time scale 1.000000 ps;
timeplate VKS_scan =
force_pi 0;
measure_po 16000 ;
pulse CLK100M_2_PB 4000 4000 ;
pulse CLK200M_2_PB 4000 4000 ;
pulse VKSI_SMS_CLOCK[0] 4000 4000 ;
pulse vl_sms_WRCK 4000 4000 ;
pulse VKSI_SCAN_RESETN 4000 4000 ;
pulse VKSI_SCAN_SETRESETN 4000 4000 ;
pulse VKSI_EDT_CLOCK 4000 4000 ;
period 20000 ;
end;
procedure test_setup =
timeplate VKS_scan ;
cycle =
force VKSI_CORE_SCAN_ENABLE 0 ;
force VKSI_BLOCK_SELECT 1 ;
force VKSI_BLOCK_SELECT_ENABLE 1 ;
force VKSI_MBIST_SCAN_MODE 1 ;
force VKSI_SCAN_MODE 1 ;
force VKSI_VL_DM2 1 ;
force VKSI_EDT_BYPASS_N 0 ;
force VKSI_EXTEST_MODE 0 ;
force VKSI_FLAT_ATPG_MODE 0 ;
force VKSI_LBRAM_CRAM_MODE 0 ;
force VKSI_LBRAM_PLL_SCAN_ENABLE_SELECT 0 ;
force VKSI_LBRAM_SCAN_MODE 0 ;
force VKSI_VL_DM1 0 ;
force VKSI_EDT_BYPASS_N 0 ;
force VKSI_EDT_CLOCK 0 ;
force VKSI_EDT_UPDATE 1 ;
force CLK100M_2_PB 0 ;
force CLK200M_2_PB 0 ;
force VKSI_SMS_CLOCK[0] 0 ;
force vl_sms_WRCK 0 ;
force VKSI_SCAN_RESETN 1 ;
force VKSI_SCAN_SETRESETN 1 ;
force VKSI_EDT_SHIFT_CONST_EN 0 ;
end;
end;
procedure shift =
scan_group group1;
timeplate VKS_scan ;
cycle =
force_sci;
force VKSI_EDT_UPDATE 0 ;
pulse VKSI_EDT_CLOCK ;
pulse CLK100M_2_PB ;
pulse CLK200M_2_PB ;
pulse VKSI_SMS_CLOCK[0] ;
pulse vl_sms_WRCK ;
measure_sco;
end;
end;
procedure load_unload =
scan_group group1;
timeplate VKS_scan ;
cycle =
force VKSI_EDT_SHIFT_CONST_EN 0 ;
force VKSI_BLOCK_SELECT 1 ;
force VKSI_BLOCK_SELECT_ENABLE 1 ;
force VKSI_MBIST_SCAN_MODE 1 ;
force VKSI_SCAN_MODE 1 ;
force VKSI_VL_DM2 1 ;
force VKSI_EDT_BYPASS_N 0 ;
force VKSI_EXTEST_MODE 0 ;
force VKSI_FLAT_ATPG_MODE 0 ;
force VKSI_LBRAM_CRAM_MODE 0 ;
force VKSI_LBRAM_PLL_SCAN_ENABLE_SELECT 0 ;
force VKSI_LBRAM_SCAN_MODE 0 ;
force VKSI_VL_DM1 0 ;
force VKSI_CORE_SCAN_ENABLE 0 ;
force VKSI_EDT_CLOCK 0 ;
force VKSI_EDT_UPDATE 1 ;
force VKSI_EDT_BYPASS_N 0 ;
force CLK100M_2_PB 0 ;
force CLK200M_2_PB 0 ;
force VKSI_SMS_CLOCK[0] 0 ;
force vl_sms_WRCK 0 ;
force VKSI_SCAN_RESETN 1 ;
force VKSI_SCAN_SETRESETN 1 ;
pulse VKSI_EDT_CLOCK ;
end ;
cycle =
force VKSI_CORE_SCAN_ENABLE 1 ;
force VKSI_PART_IN_SCAN_ENABLE 1 ;
force VKSI_PART_OUT_SCAN_ENABLE 1 ;
measure_sco;
end;
apply shift 10000 ;
cycle =
force VKSI_CORE_SCAN_ENABLE 0 ;
force VKSI_PART_IN_SCAN_ENABLE 1 ;
force VKSI_PART_OUT_SCAN_ENABLE 0 ;
end;
end;
procedure clock_sequential =
timeplate VKS_scan ;
cycle =
force_pi;
end;
cycle =
pulse_capture_clock;
end;
end;
procedure capture =
timeplate VKS_scan ;
cycle =
force_pi;
measure_po;
end;
cycle =
pulse_capture_clock;
end;
end;
I am a beginner in DFT. I am new to Testkompress tool of Mentor Graphics.
I have a sample testproc file. Below is the file which I am referring to.
Can anyone explain how "timeplate" is merged with the various "procedures" and how is it executed by the tool?
Please explain anyone of the procedures.
// EDT_SCAN_DUAL_EDT_TEMPLATE_START
set time scale 1.000000 ps;
timeplate VKS_scan =
force_pi 0;
measure_po 16000 ;
pulse CLK100M_2_PB 4000 4000 ;
pulse CLK200M_2_PB 4000 4000 ;
pulse VKSI_SMS_CLOCK[0] 4000 4000 ;
pulse vl_sms_WRCK 4000 4000 ;
pulse VKSI_SCAN_RESETN 4000 4000 ;
pulse VKSI_SCAN_SETRESETN 4000 4000 ;
pulse VKSI_EDT_CLOCK 4000 4000 ;
period 20000 ;
end;
procedure test_setup =
timeplate VKS_scan ;
cycle =
force VKSI_CORE_SCAN_ENABLE 0 ;
force VKSI_BLOCK_SELECT 1 ;
force VKSI_BLOCK_SELECT_ENABLE 1 ;
force VKSI_MBIST_SCAN_MODE 1 ;
force VKSI_SCAN_MODE 1 ;
force VKSI_VL_DM2 1 ;
force VKSI_EDT_BYPASS_N 0 ;
force VKSI_EXTEST_MODE 0 ;
force VKSI_FLAT_ATPG_MODE 0 ;
force VKSI_LBRAM_CRAM_MODE 0 ;
force VKSI_LBRAM_PLL_SCAN_ENABLE_SELECT 0 ;
force VKSI_LBRAM_SCAN_MODE 0 ;
force VKSI_VL_DM1 0 ;
force VKSI_EDT_BYPASS_N 0 ;
force VKSI_EDT_CLOCK 0 ;
force VKSI_EDT_UPDATE 1 ;
force CLK100M_2_PB 0 ;
force CLK200M_2_PB 0 ;
force VKSI_SMS_CLOCK[0] 0 ;
force vl_sms_WRCK 0 ;
force VKSI_SCAN_RESETN 1 ;
force VKSI_SCAN_SETRESETN 1 ;
force VKSI_EDT_SHIFT_CONST_EN 0 ;
end;
end;
procedure shift =
scan_group group1;
timeplate VKS_scan ;
cycle =
force_sci;
force VKSI_EDT_UPDATE 0 ;
pulse VKSI_EDT_CLOCK ;
pulse CLK100M_2_PB ;
pulse CLK200M_2_PB ;
pulse VKSI_SMS_CLOCK[0] ;
pulse vl_sms_WRCK ;
measure_sco;
end;
end;
procedure load_unload =
scan_group group1;
timeplate VKS_scan ;
cycle =
force VKSI_EDT_SHIFT_CONST_EN 0 ;
force VKSI_BLOCK_SELECT 1 ;
force VKSI_BLOCK_SELECT_ENABLE 1 ;
force VKSI_MBIST_SCAN_MODE 1 ;
force VKSI_SCAN_MODE 1 ;
force VKSI_VL_DM2 1 ;
force VKSI_EDT_BYPASS_N 0 ;
force VKSI_EXTEST_MODE 0 ;
force VKSI_FLAT_ATPG_MODE 0 ;
force VKSI_LBRAM_CRAM_MODE 0 ;
force VKSI_LBRAM_PLL_SCAN_ENABLE_SELECT 0 ;
force VKSI_LBRAM_SCAN_MODE 0 ;
force VKSI_VL_DM1 0 ;
force VKSI_CORE_SCAN_ENABLE 0 ;
force VKSI_EDT_CLOCK 0 ;
force VKSI_EDT_UPDATE 1 ;
force VKSI_EDT_BYPASS_N 0 ;
force CLK100M_2_PB 0 ;
force CLK200M_2_PB 0 ;
force VKSI_SMS_CLOCK[0] 0 ;
force vl_sms_WRCK 0 ;
force VKSI_SCAN_RESETN 1 ;
force VKSI_SCAN_SETRESETN 1 ;
pulse VKSI_EDT_CLOCK ;
end ;
cycle =
force VKSI_CORE_SCAN_ENABLE 1 ;
force VKSI_PART_IN_SCAN_ENABLE 1 ;
force VKSI_PART_OUT_SCAN_ENABLE 1 ;
measure_sco;
end;
apply shift 10000 ;
cycle =
force VKSI_CORE_SCAN_ENABLE 0 ;
force VKSI_PART_IN_SCAN_ENABLE 1 ;
force VKSI_PART_OUT_SCAN_ENABLE 0 ;
end;
end;
procedure clock_sequential =
timeplate VKS_scan ;
cycle =
force_pi;
end;
cycle =
pulse_capture_clock;
end;
end;
procedure capture =
timeplate VKS_scan ;
cycle =
force_pi;
measure_po;
end;
cycle =
pulse_capture_clock;
end;
end;