使用SpyGlass RTL DFT检查减少设计周转时间与测试ECO

SNUG India 2018 2018 21 页

使用SpyGlass RTL DFT检查减少设计周转时间与测试ECO

作者: Sanjoy Nanda, Nithin Radhakrishnan Pillai, Manivannan Ethiraj (Qualcomm India) 会议: SNUG India 2018 页数: 21 源文件: SNUG_TPC_Spyglass_Dorso_SNUG_India_2018_User_Pres_Template_paper.pdf


Page 1

Figure

使用SpyGlass RTL DFT检查减少设计周转时间与测试ECO

RTL DFT-DRC

Sanjoy Nanda (Lead Engineer, Sr.), Nithin Radhakrishnan Pillai (Engineer, Senior), Manivannan Ethiraj (Engineer, Senior) Qualcomm India Private Limited

July 11-12, 2018, SNUG India


Page 2

Figure

议程 - 动机 - SG DFT DRC设计流程 - 更广泛的目标分类 - DFT DRC目标、问题、约束(附示例) - 未来工作 - 结论 - 参考文献


Page 3

Figure

动机 - 在RTL 寄存器传输级开发期间尽早检测DFT 可测试性设计逻辑设计问题 - 设计复杂性增加,需要减少后期设计修复 - 传统上ATPG 自动测试向量生成门级仿真 GLS用于验证网表ECO - 在RTL阶段更容易引入更改 - 规则集和检查更容易增强 - 更短的验证周转时间


Page 4

Figure

SG DFT DRC在流程中的位置

(图示:展示SpyGlass在RTL开发流程中的插入点,位于综合和DFT实现之前)


Page 5

Figure

更广泛的目标分类

类别描述
DFT-Analysis测试模式下异步set/reset控制信号的检查
DFT-DSM AnalysisAt-speed时钟规则检查,频率使能分配检查
Clock Connectivity从顶层开始的时钟连接性
Memory Connectivity存储器控制引脚连接性,如slp_ret(n), clamp_mem, 访问时间控制

Page 6

Figure

RTL DFT DRC和连接性检查 — 问题、目标、约束、实时问题示例


Page 7

Figure

DFT-Analysis

目标: - 使用移位模式值约束顶层set/reset控制信号。使用SpyGlass Async_07 DFT规则检查设计中set/reset不处于非活动状态的触发器 - 使用捕获模式值约束顶层set/reset控制信号。使用SpyGlass Async_06 DFT规则检查设计中set和reset同时有效的触发器

问题: - 异步set/reset在DFT下从顶层不可控 - set/reset翻转的顶层向量,触发器set和reset连接到同一控制信号导致向量失效

约束示例:

testmode -name set_atpg_ctrl -value 0 -scanshift
testmode -name reset_atpg_ctrl -value 0 -scanshift
define_illegal_input_values -name set_atpg_ctrl reset_atpg_ctrl -value 11

Page 8

Figure

实时示例 — 测试模式下不可控的set/reset

触发器set/reset缺少测试模式控制


Page 9

Figure

DFT-DSM Analysis — At-speed时钟规则检查,频率使能分配检查

目标: - 时钟整形器在移位、静态捕获和at-speed捕获期间的可控性(Atspeed_17_shift, Atspeed_17_capture, Atspeed_17_captureatspeed规则) - 时钟传播到所有时序元件(Atspeed_10规则) - 每个频率域只有一个频率使能 - 使用one-hot分配一次启用一个频率域:[F1 F2 F3 F4] = 1000 0100 0010 0001 - at-speed测试期间不允许多时钟

问题: - 测试时钟门控或MUX的时钟单元未按预期集成;时序元件在测试模式下没有时钟 - 多个频率使能分配给单个频率域,增加TDF模式下顶层所需的控制信号数量 - 设计中频率使能位总数超过700,使跟踪变得繁琐 - 人为编程错误可能导致ATE上TDF向量失败


Page 10

Figure

DFT-DSM Analysis(续)— 约束示例

clock -name test_clk -testclock -atspeed
testmode -name test_mode -value 1
testmode -name freq_en[1:0] -value 11 -scanshift -captureStatic
testclockFrequency -name test_clk -freqList freq1 freq2 -enables freq_en[1:0] -values 01 10
expectFrequency -name u1.clk -freqList freq1
expectFrequency -name u2.clk -freqList freq2

(图示:时钟分配网络,one-hot频率使能编程)


Page 11

Figure

DFT-DSM Analysis — 实时示例:At_Speed 10

测试模式下时钟到触发器被门控


Page 12

Figure

连接性检查 — 存储器

目标:为每个测试模式创建约束集,检查非法连接以及从顶层到存储器控制引脚的路径可用性。

RAM规则规则描述SRAM引脚
1如果RAM单元有mem sleep,检查它既不是tied high也不是tied LowMem sleep
2检查RAM单元的mem test mode引脚来自顶层的memory_test_ctrl的反相信号Mem test mode
3同上或test_mode的反相Mem test mode
4mem test mode shift en引脚来自顶层atpg_shift tdr的反相Mem test mode shift en
5访问时间特性引脚由边界扫描寄存器驱动Mem access time char
6mem clamp引脚由边界扫描寄存器驱动Mem clamp
7repair en引脚由边界扫描寄存器驱动Repair en
8低电压访问时间特性引脚由边界扫描寄存器驱动Low voltage access time char

问题: - 存储器电源控制信号[sleep/clamp]连接到在测试模式下没有控制的本机触发器 - 存储器扫描控制信号未连接到预期的DFT控制信号,阻止RAM写通向量生成 - 存储器访问时间特性引脚在测试期间从顶层不可控 - 存储器修复使能引脚在测试期间不可控


Page 13

Figure

存储器连接性 — 约束

约束编码示例1:

define_tag -tag base -name test_mode -value 1
require_path -tag base -from_one_of u0.ram_pwr_ctrl -to "sram*::sleep" "rom*::sleep" \
  -path_type sensitized -constraint_message_tag "MEM_SLEEP_NOT_CONTROLLABLE"

约束编码示例2:

require_path -tag all_slp_n -from_one_of \
  {"qctlib_bd_scan_res_reg::sysout" "qctlib_bd_scan_reg::sysout" "qctlib_isds_reg::sysout"} \
  -except_from_type TIED_SGDC -to "qcsram*::slp_nret_n" "qcrf*::slp_nret_n" \
  -path_type sensitized -constraint_message_tag "MEM_SLP_NRET_N_PS"

Page 14

Figure

存储器连接性 — 实时示例

存储器电源控制引脚由功能触发器控制


Page 15

Figure

连接性检查 — 时钟

目标: - DFT连接性检查使用SpyGlass DFT连接性规则在RTL中执行DFT时钟和RAM连接性检查(核心级和顶层) - 确保时钟门控 CGC单元的test_en引脚连接到预期的顶层测试控制信号 - test_en of CGC == 1'b0:无时钟 - test_en of CGC == 1'b1:功能路径覆盖率损失,测试覆盖率下降 - 确保时钟单元的TDF 跳变延迟故障域使能引脚连接到预期的测试控制信号 - PAD → PLL参考时钟的敏化路径(应用测试约束) - PLL配置引脚在TDF期间的可控性 - 设计中控制测试期间时钟传播的关键节点的required_path和required_value

问题: - TDF模式下PLL的参考时钟被阻塞,无法从PAD访问 - PLL控制信号连接到本机触发器,阻止PLL编程 - 路径上的复杂时钟单元未正确集成以支持测试模式下的时钟传播


Page 16

Figure

时钟连接性 — 约束编码示例

define_tag -tag base1_tm1 -name test_mode -value 1
require_path -tag base -from_one_of u0.pll_ctrl -to "pll*::cfg" \
  -path_type sensitized -constraint_message_tag "PLL_CFG_NOT_CONTROLLABLE"
require_value -tag base -name u0.u1.u2.clk_en_tdf -value 1

时钟规则

描述CGC类型
1确保CGC单元的test_en既不是tied high也不是tied lowcgc with test_en
2确保seq_en或seq_clk_en不是tied lowcgc with sequence_en
3检查seq_en/seq_clk_en是否tied high;否则检查test_en是否由test_mode tdr控制cgc with sequence_en
4对于没有seq_en的CGC,检查test_en是否由tcr_cgc_atpg_ctrl(sleep-low CGC)或tap_test_mode_tdr(sleep-high CGC)控制cgc without sequence_en
5sleep_low CGC:检查test_en是否连接到tcr_cgc_atpg_ctrltest_en
6sleep_high CGC:检查test_en是否连接到tap_test_mode_tdrtest_en
7检查clk_rst在tap_test_mode_tdr=1时是否关闭到不活动值rst
8检查clk_nset在tap_test_mode_tdr=1时是否关闭到不活动值nset
require_path -tag base1_tm1_cgc -from_one_of \
  {"top.u_DONT_SCAN_jtag.tap_test_mode_tdr" "top.u_DONT_SCAN_jtag.tap_test_mode_tdr_aoss"} \
  -to "*_cgchn*::test_en" -path_type sensitized \
  -constraint_message_tag CGCHN_TEST_MODE_TDR -report_failure_as_info

Page 17

Figure

时钟连接性(续)— 实时示例

PLL配置信号在测试模式下被组合逻辑阻塞


Page 18

Figure

未来工作 - 电源开关到JTAG数据寄存器的连接检查,减少由于电源感知GLS中不可控GDSC导致的仿真失败 - 从JDR到隔离钳位的保持控制/使能检查 - 测试点分析和RTL测试覆盖率


Page 19

Figure

结论

- SpyGlass DFT DRC检查已成为RTL Signoff标准的组成部分 - RTL在进入综合、DFT、物理实现之前已完全合格 - 提高了设计中使用的IP和硬宏的质量 - 实现了设计Bug的早期检测、验证和关闭 - RTL Signoff的周转时间大大缩短,在实现周期和门级仿真期间几乎没有测试ECO的可能性 - 更好的吞吐量,减少总体人月数和计算资源使用


Page 20

Figure

参考文献 - Synopsys SpyGlass 2017.12 - Qualcomm RTL DFT DRC Rule Deck - www.circuitlab.com


Page 21

Figure

Thank You


图片索引

本文共 73 张图片,存放于 SNUG_TPC_Spyglass_Dorso_SNUG_India_2018_User_Pres_Template_paper_images/ 目录。