DFT Compiler
DFT Compiler
概念解析
定义与起源
术语定义:DFT Compiler是Synopsys的DFT综合工具——在RTL综合阶段自动插入扫描链、测试压缩逻辑、边界扫描等DFT结构。它与Design Compiler共享综合引擎,可以在综合的同时完成DFT插入——不需要单独的DFT插入步骤。
DFT Compiler的前身是BSD Compiler(1990s)。2000年代随着SoC复杂度爆炸,独立的DFT插入流程成为瓶颈——综合和DFT分离意味着两个工具维护两份网表、两次时序收敛。DFT Compiler将DFT插入融合进综合流程,在单次综合中同时完成功能逻辑综合和DFT结构插入。
核心要义
第一,DFT Compiler=综合+DFT一步到位。 传统流程:综合→导出网表→DFT插入→重新综合ECO。DFT Compiler的融合流程:综合时同步插入扫描链——扫描触发器替换、扫描链连接、压缩逻辑插入在一次综合中完成。关键好处:时序在综合时就把扫描链的MUX延迟考虑进去了,不会出现"DFT插入后时序恶化"的经典问题。
第二,自适应压缩(Adaptive Compression)是DFT Compiler的核心技术。 不是所有扫描链都需要相同的压缩比。DFT Compiler分析每条扫描链的长度、翻转率、测试时间约束——对长链用高压缩比(100x),对短链用低压缩比(10x),对关键路径上的链不压缩。自适应压缩比固定压缩节省30-50%的测试数据量。
第三,DFT Compiler与TetraMAX ATPG深度耦合。 DFT Compiler插入的扫描结构信息直接传给TetraMAX——不需要网表导出再导入。TetraMAX在生成ATPG向量时可以利用DFT Compiler的物理信息(扫描链走线长度、buffer位置)优化测试功耗和速度。
实践应用
* scan configuration是核心配置:每条扫描链多长、包含哪些触发器、压缩结构类型——在DFT Compiler中用TCL脚本配置。 * test point insertion需手动决策:DFT Compiler可以自动建议测试点位置,但最终插不插、插多少——需要DFT工程师判断。 * 与SpyGlass DFT协同:先用SpyGlass DFT做RTL级DFT检查→修复DFT违规→DFT Compiler做门级DFT插入——两个工具互补。
实战案例
某GPU的DFT Compiler自适应压缩:传统固定压缩比100x导致短扫描链上压缩逻辑面积浪费。改用自适应压缩后,短链10x、长链100x——总面积节省15%,测试数据量仅增加5%。
DFT Compiler融合流程救回2周schedule:某5G芯片综合→DFT→ECO循环跑了5轮还没收敛。改用DFT Compiler融合流程——综合+DFT一步完成,时序在插入扫描链时就被考虑了——2轮收敛,省了2周。
TetraMAX+DFT Compiler联合优化测试功耗:某AI芯片测试时shift功耗过大(扫描链移位时280%功能功耗)。DFT Compiler重新配置扫描链——把高翻转率触发器分散到不同链、关键链加gating——测试功耗降到120%功能功耗。
常见误区
误区一:DFT Compiler=Design Compiler的DFT版本。 DFT Compiler与DC共享引擎但不是同一个工具。DC做功能综合,DFT Compiler在DC综合的基础上叠加DFT结构。如果已经用了DC,加DFT Compiler几乎不需要额外学习成本。
误区二:DFT Compiler自动配置就是最优配置。 自适应算法给的是"默认最优"——不是"全局最优"。不同芯片的测试需求不同(汽车芯片需要更高覆盖率、手机芯片需要更低功耗)。DFT工程师需要在自动配置基础上手动调优。
误区三:DFT Compiler只在tape-out前跑一次。 DFT插入后每次ECO都会影响扫描链——需要增量DFT Compiler重跑。好的DFT Compiler flow支持增量更新——只重跑变化的module。