news 2026/6/10 23:48:52

基于3D-DFT架构下的ICL文件生成(DFT)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
基于3D-DFT架构下的ICL文件生成(DFT)

1、背景

1.1 项目情况简述

        该项目是一个采用3D堆叠技术的AI芯片,由logic die、buffer die和dram die三种不同的芯片组成。

        其中,dram die是从外部公司采购的IP,该IP提前预留了BIST测试方案,因此此die不需要DFT去定义测试方案。

        剩下的logic die和buffer die是需要DFT去定义测试方案的,为了让两个die能够尽可能的独立测试,采用的测试方案如下:

        (1)将logic die的top层电路定义为tessent工具识别的chip level,于是整个die的ijtag network将挂在产生的TAP下;

        (2)logic die作为此款芯片的主die,die的底部连接了基板,因此所有的IO PAD仅存在于logic die中;

        (3)将buffer die的top层电路也定义为tessent工具识别的chip level,于是整个die的ijtag network也将挂在其产生的TAP下;

        (4)buffer die的所有DFT port信号通过TSV与logic die产生交互,一部分会被挂载到logic die中的IO PAD下,另一部分会直接参与logicdie中一些gating逻辑的控制,这些TSV信号包括:edt channels in、edt channels out、ijtag signals、scan_en、edt_update、test_clock、retargeting mode tdr signals、global dft mode signal等等;

1.2 项目关键难点定位

        按照1.1节中的测试方案可以顺利的将DFT instrument加入到design中,接下来将分别在logicdie top和bufferdie top层次完成stuck和transition模式下的pattern generation和simulation;

        此时,buffer die的可控点和可观点均停留在自身边界上,因此针对于buffer die的测试方案需要通过TSV将可控点和可观点扩展到logic die中的IO PAD上。

        为了联合logic die和buffer die进行buffer die的测试验证,前端会准备一个更高的代码层(multidie_wrapper.v),该wrapper下会同时例化logic die和buffer die,验证组在multidie_wrapper层级下将完成对buffer die的验证。

        DFT需要提前准备logic die与buffer die的TSV mapping list,让前端按照这个mapping list去修改multidie_wrapper.v,更新logic die与buffer die之间的例化关系。

        因此,产生multi die层次的ICL文件是很关键的第一步,接下来就将描述不同层次下的ICL手动抽取方法。

2、基于harden的ICL抽取

2.1 ICL抽取流程介绍

        这里以测试SOC中某个harden为例,该harden对应一个子系统中的模块。流程如下:

        (1)定义整个flow的context类型为IJTAG mode,同时定义读取的design类型为rtl或no_rtl:

set_context patterns -ijtag -no_rtl

        (2)使用read_verilog命令去读取网表文件:

read_verilog harden.vg

       (3)使用read_cell_library命令读取库文件:

read_cell_library /DATA53/TSMCHOME/digital/Front_End/mentor_dft/tcbn28hpcplusbwp7t30p140opp_110a/tcbn28hpcplusbwp7t30p140opp.mdt read_cell_library /DATA53/TSMCHOME/digital/Front_End/mentor_dft/tcbn28hpcplusbwp7t30p140opphvt_110a/tcbn28hpcplusbwp7t30p140opphvt.mdt read_cell_library /DATA53/TSMCHOME/digital/Front_End/mentor_dft/tcbn28hpcplusbwp7t30p140opplvt_110a/tcbn28hpcplusbwp7t30p140opplvt.mdt read_cell_library /DATA53/TSMCHOME/digital/Front_End/mentor_dft/tcbn28hpcplusbwp7t30p140oppuhvt_150a/tcbn28hpcplusbwp7t30p140oppuhvt.mdt

        (4)使用read_icl命令读取每个tsdb instrument的ICL文件:

read_icl *_pre_occedt_tessent_sib_sri.icl read_icl *_pre_occedt_tessent_tdr_sri_ctrl.icl read_icl *_pre_occedt_tessent_sib_sri_ctrl.icl

        (5)将每个instrument的ICL匹配到具体design时,使用set_module_matching_options命令去定义合适的前缀和后缀:

set_module_matching_options -prefix_pattern_list ${PART}_ -suffix_pattern_list {_u[0-9]+} -regexp

        (6)report每个ICL和design的匹配信息:

report_module_matching -icl > $RPT_DIR/$PART.matched_module.rpt report_icl_module -all > $RPT_DIR/$PART.icl_module.rpt

        (7)使用set_current_design命令去设置design的top-level:

set_design_level physical_block

        (8)定义ICL client interface:

add_icl_scan_interface {client_interface} set_icl_scan_interface_ports -name client_interface -ports {ijtag_tck ijtag_si ijtag_ce ijtag_se ijtag_ue ijtag_reset ijtag_so}

        (9)使用set_system_mode命令将system mode切换到analysis模式同时运行ICL extraction:

set_system_mode analysis

        (10)使用write_icl命令将抽出的ICL结果写入到一个外部文件:

write_icl $RESULT_DIR/$PART.full_instrument.icl -replace write_icl $RESULT_DIR/$PART.no_instrument.icl -replace -create

2.2 makefile文件介绍

        当前的extraction flow是基于makefile来建立的,里面涵盖了执行流程和各种输入/输出的变量定义,具体内容如下:

####################################################################################################### TESSENT = /Tool/EDA/mentor/tessent_2024.4/bin/tessent -shell TIME = $(shell date '+%Y%m%d_%H%M') DIR = . PART = harden_name design_version = 9294 local_version = 1 run_tag = $(design_version)_$(local_version) LOG_DIR = $(DIR)/log/$(PART).$(run_tag).$(TIME) RPT_DIR = $(DIR)/rpt/$(PART).$(run_tag).$(TIME) RESULT_DIR = $(DIR)/icl_gen DOFILE_EXTRACT_ICL = ./scripts/run_extract_icl.dofile EXIT = noauto ####################################################################################################### ####################################################################################################### run_extract_icl: make extract_icl_TMP make extract_icl extract_icl_TMP: test -d $(LOG_DIR) || rm -rf $(LOG_DIR) test -d $(RPT_DIR) || rm -rf $(RPT_DIR) test -d $(RESULT_DIR) || rm -rf $(RESULT_DIR) test -d $(LOG_DIR) || mkdir -p $(LOG_DIR) test -d $(RPT_DIR) || mkdir -p $(RPT_DIR) test -d $(RESULT_DIR) || mkdir -p $(RESULT_DIR) extract_icl: TIME=$(TIME) \ PART=$(PART) \ design_version=$(design_version) \ local_version=$(local_version) \ run_tag=$(run_tag) \ LOG_DIR=$(LOG_DIR) \ RPT_DIR=$(RPT_DIR) \ RESULT_DIR=$(RESULT_DIR) \ EXIT=$(EXIT) \ $(TESSENT) -logfile $(LOG_DIR)/extract_icl_${TIME}.log -dofile $(DOFILE_EXTRACT_ICL) -replace #######################################################################################################

2.3 ICL extraction脚本介绍

############################################################################################################################################################################################################ set TIME $env(TIME); set PART $env(PART); set design_version $env(design_version); set local_version $env(local_version); set run_tag $env(run_tag); set LOG_DIR $env(LOG_DIR); set RPT_DIR $env(RPT_DIR); set RESULT_DIR $env(RESULT_DIR); set EXIT $env(EXIT); puts $TIME puts $PART puts $design_version puts $local_version puts $run_tag puts $LOG_DIR puts $RPT_DIR puts $RESULT_DIR puts $EXIT ############################################################################################################################################################################################################ ############################################################################################################################################################################################################ # 1. read design and lib set_context patterns -ijtag -no_rtl source std_cell_mdt.tcl read_verilog harden.vg ############################################################################################################################################################################################################ ############################################################################################################################################################################################################ # 2. read icl for every instrument read_icl *_pre_occedt_tessent_sib_sri.icl read_icl *_pre_occedt_tessent_tdr_sri_ctrl.icl read_icl *_pre_occedt_tessent_sib_sri_ctrl.icl ############################################################################################################################################################################################################ ############################################################################################################################################################################################################ # 3. current design set_module_matching_options -prefix_pattern_list ${PART}_ -suffix_pattern_list {_u[0-9]+} -regexp set_current_design $PART -show_elaboration_warnings ############################################################################################################################################################################################################ ##############################################
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/10 23:45:59

ABB PFCL 201CE-5.0KN 枕块式张力传感器

中海德:一五3零69柒柒幺酒肆 ABB PFCL 201CE-5.0KN是一款基于Pressductor磁致弹性技术的枕块式张力传感器,源自1954年专利,通过磁场变化直接感知机械力,无物理形变,实现零迟滞、高灵敏度测量。满量程5.0kN内精度达0.1%…

作者头像 李华
网站建设 2026/6/10 23:33:41

本地运行的年会抽奖工具,改JS名单就能抽,中奖实时可见

本文还有配套的精品资源,点击获取 简介:直接双击index.html就能用的年会抽奖页面,完全跑在浏览器里,不用装服务器、不连后台、不传数据。所有参与人名字写在member.js里,打开文件删增改名就能更新名单,保…

作者头像 李华
网站建设 2026/6/10 23:33:37

如何在Windows上高效读写Btrfs分区:实用跨平台文件系统指南

如何在Windows上高效读写Btrfs分区:实用跨平台文件系统指南 【免费下载链接】btrfs WinBtrfs - an open-source btrfs driver for Windows 项目地址: https://gitcode.com/gh_mirrors/bt/btrfs 你是否需要在Windows系统中访问Linux Btrfs分区中的文件&#x…

作者头像 李华
网站建设 2026/6/10 23:30:40

如何免费获取思源宋体CN完整字体包:专业级中文排版终极指南

如何免费获取思源宋体CN完整字体包:专业级中文排版终极指南 【免费下载链接】source-han-serif-ttf Source Han Serif TTF 项目地址: https://gitcode.com/gh_mirrors/so/source-han-serif-ttf 还在为商业项目寻找高质量中文字体而支付高昂授权费&#xff1f…

作者头像 李华