1. 基于Netlist的DFT Insertion Flow概述
在芯片设计验证流程中,可测试性设计(DFT)是确保芯片量产良率的关键环节。当后端设计团队交付功能网表(function netlist)后,DFT工程师需要在此基础上构建完整的测试结构插入流程。这个流程的核心目标是在不改变原始电路功能的前提下,为芯片植入可观测和可控制的测试点,使芯片在封装后仍能进行全面的缺陷检测。
我处理过多个从28nm到5nm工艺节点的DFT插入项目,发现基于netlist的流程相比RTL级插入具有三大优势:首先,它直接作用于后端优化后的网表,避免了时序收敛的二次迭代;其次,能精确计算测试逻辑带来的面积和时序开销;最重要的是可以针对物理布局后的memory位置进行精准的MBIST(Memory Built-In Self Test)插入。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. DFT Insertion Flow核心模块解析
2.1 MBIST插入流程
Memory测试是DFT中最具挑战性的部分。当收到后端提供的含物理信息的网表后,我们需要按以下步骤操作:
- Memory识别与分类:使用Tcl脚本解析网表,提取所有memory实例及其类型(SRAM/ROM/Register File)。这里需要特别注意识别memory的冗余设计,例如ECC校验单元。
tcl复制set memories [get_cells -hier * -filter "ref_lib_cell_name=~*sram*"]
foreach mem $memories {
set mem_type [get_attribute $mem ref_lib_cell_name]
puts "Found memory: $mem of type $mem_type"
}
-
BIST控制器布局:根据memory的物理坐标进行区域性分组,每个BIST控制器管理8-16个同类型memory。实测显示,这种配置能在测试时间和布线拥塞之间取得最佳平衡。
-
测试接口插入:为每个memory添加多路选择器(MUX),使其能在功能模式和测试模式间切换。这里需要特别注意时序路径的保持时间约束:
关键提示:MBIST插入阶段必须保留后端提供的时序约束文件(SD
