tessent scan flow introduction

好了紧接上一步 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了。

1 个赞