好了紧接上一步 tessent edt occ insert flow introduction
做完了occ edt netlist在穿scan chain 前需要用dc合并的netlist 做一下uniquify
也简单吃进来上一步dc 存在tsdb dir 下面的合并netlist 然后用dc
uniquify -force -dont_skip_empty_designs
uniquify
change_name -rules verilog -hierarchy
让verilog 多位宽的_reg[xx] 变成_reg_xx_
然后用write -f verilog 再写出来
然后退出dc 启动tessent
set_drc_handling DFT_C9 -auto_fix off
关掉clock 不可控自动fix 功能,采用手动fix 。
set_context dft -scan -design_id gate
设置context 为穿scan 然后design_id 设置gate
set_tsdb_output_directory …/tsdb_outdir
不解释
read_cell_library xxx.mdt
与上两部相同把需要的mdt吃进来
read_design $design -design_id id2 -no_hdl -verbose
read_verilog uniquified_design_netlist.v
吃上一步edt occ 后的dft 相关信息
netlist吃合并后并uniquified 后的netlist
set_module_matching_options -suffix_pattern_list {_[0-9]+.*} -regexp
设置icl match 规则
set_current_deisgn $design
link 设计
add_nonscan -instance { inst_clock_gen/rst inst_clock_gen/cgu }
与上一部一样添加non_scan
add_nonscan -instance [get_instances -hierarchical “edt_channelpipe_reg _tessent_lockup_inst*”]
让上一步的scan chain 进来的pipe reg和lock up latch 也不要上chain ,这些都是解timing用的
set_shift_register_identification off
关闭自动换nonscan ff → scan ff
scan ff 在综合dc flow里面已经用compile_ultra -scan 换好了
add_black_boxes -auto
不解释
set_system_mode analysis
切换analysis mode
report_static_dft_singal_settings
report_dft_signals
report_clocks
report_scan_segments
做一些report准备定义scan chain
set edt_inst_col [get_instances -of_icl_instances [get_icl_instances * -filter tessent_instrument_type == mentor::edt]]
add_scan_mode edt_mode -edt_instances $edt_inst_col
用-filter抓到edt_instance 然后定义scan chain mode 让scan chain 连接点放到edt instance的接口位置
analyze_scan_chains
report_scan_chains
分析报告一下scan chain .没问题就开始缝合scan chain
insert_test_logic
stitch scan chain 然后把结果dump到 tsdb_outdir 去
report_sacn_chains
report_scan_cells
最后做一遍报告
ok 大功告成,scan chain stitch 完毕,所有dft netlist 搞定。 下来就是做atpg pattern 和 mbist pattern了。