1、背景
根据dft的相关测试流程:
1、dft owner做完mbist insertion、edt insertion和occ insertion等test design插入操作;
2、dft owner接着需要将此时的dft rtl数据交付给负责综合的owner;
3、dft owner在收到综合网表后,开始执行scan insertion操作,而scan insertion操作可能会fail,原因可能是dft在rtl阶段的某些控制逻辑存在缺陷。这时就只能重新修改dft rtl insertion方案并重新交付综合;
4、在上一步scan insertion操作成功的基础上,dft owner需要跑atpg pattern gen和simulation,而atpg drc check也可能会fail,原因可能是dft在rtl阶段的某些控制逻辑存在缺陷。这时就只能重新修改dft rtl insertion方案并重新交付综合和scan;
综上所述,dft owner进行综合操作的必要性如下:
1、为了减少迭代时间,提高dft代码的质量和可信赖度,dft owner在正式交付给综合owner前,最好在local进行一次成功的综合,并完成scan insertion和atpg验证工作;
2、可以让dft owner准确知道当前harden的规模,便于更好的规划EDT config;
3、可以与综合owner统计的纯function数据进行对比,了解dft网表相对与function网表的增量,从而控制增量以满足设定阈值。
2、综合流程介绍
2.1 read lib and set some variable
source -e -v ./lib.setup.tcl
set_host_options -max_cores 16
set_app_var hdlin_shorten_long_module_name true
set_app_var uniquify_naming_style \”$harden_name_%s_u%d\”
set_app_var verilogout_no_tri true
set_app_var hdlin_infer_multibit default_all
set_app_var power_cg_cell_naming_style \”$harden_name__CLOCKGATING_INSTANCE__%c_u%d\”
set_app_var power_cg_module_naming_style \”$harden_name__CLOCKGATING_MODULE__%p_u%d\”
set_app_var target_library \”$vars(CCSDB_WCL_LIBS)\”
set_app_var synthetic_library \”/Tool/EDA/synopsys/syn/U-2022.12/libraries/syn/dw_foundation.sldb\”
set_app_var link_library \”* $target_library $synthetic_library\”
2.2 read rtl filelist
source -e -v ./2.insert_edt_occ/for_dc_synthesis.tcl
elaborate $harden_name
link
current_design $harden_name
2.3 according to dft sdc, set some feafure for tessent design
2.3.1 read dft sdc
source ./tsdb/dft_inserted_designs/$harden_name_occedt.dft_inserted_design/$harden_name.sdc
2.3.2 source proc_tessent_set_default_variables
set tessent_hierarchy_separator /
tessent_set_default_variables
2.3.3 source proc_tessent_get_preserve_instances
set preserve_instances_add_core_instances [tessent_get_preserve_instances add_core_instances] set preserve



