用NanDigits GOF来做网表的DFT DRC的检查

文摘   2024-09-14 18:19   上海  

GOF DFT DRC介绍

GOF ECO内置了便快捷的DFT DRC(Design Rule Check方案,让芯片设计工程做芯片功能ECO不需要因DFT问题而考虑折GOF DFT DRC工具可以检查扫描链中的问题,或者手工ECO造成误操作,如shift enable pin误接0。

GOF DFT DRC主要包含以下规则:

  • 扫描链断裂 (ERROR_MULTI_PATHS)
  • 扫描链末尾是常量 (ERROR_END_CONST)
  • 扫描链末尾不是flop或者不是EDT逻辑 (ERROR_END_AT_INST)
  • DFT测试点由不可控的信号驱动 (ERROR_DFT_TESTPOINT_DRIVEN)
  • DFT测试点有多条有效路径,可能引起glitch (ERROR_DFT_TESTPOINT_GLITCH)
  • Flop由普通时钟驱动,非DFT定义的时钟驱动 (ERROR_CLOCK_UNDEFINED)
  • Flop的复位pin有多条有效路径,可能引起glitch (ERROR_RESET_GLITCH, ERROR_SET_GLITCH)

GOF DFT DRC的一个例子

读lib库、网表,设置扫描链的scan mode=1、scan enable=1,再设置扫描链的起点和终点port。并指定scan clockscan reset。最后调用dft_drc() api函数。Perl脚本如下:

# File: dft_drc_check.pluse strict;
setup_eco("dft_drc");
read_library("stdlib.lib");read_library("sram256x11.lib");read_library("sram256x96.lib");
read_design("-imp""digital_top_dft.v");set_top("digital_top");
set_pin_constant("P2D_TEST"1);set_pin_constant("P2D_SCEN", 1);
set_scan_pairs("P2D_SCIN[0]", "D2P_SCOUT[0]");set_scan_pairs("P2D_SCIN[1]", "D2P_SCOUT[1]");set_scan_pairs("P2D_SCIN[2]", "D2P_SCOUT[2]");set_scan_pairs("P2D_SCIN[3]", "D2P_SCOUT[3]");
create_clock("P2D_SCLK"10);create_reset("P2D_RSTN"1);
my $err = dft_drc();

在Terminal里,运行GOF脚本,如下:

gof -run dft_drc_check.pl

如果运行结果显示clean,则扫描链是没有问题的。如果报错,可以用start_gui() api在GOF Debug里进行调试,和用gof eco api来fix。

# Analyzing IMP Database ...INFO! Flops in scan chain percentage : 99.49%INFO! DFT DRC is clean

关于NanDigits Design Automation

Nandigits Design Automation于2007年成立,公司总部位于美国硅谷圣何塞(San Jose)。2016年10月在中国大陆成立销售和技术支持部门。我们是完整的芯片网表解决方案提供商,主要产品有网表功能ECO工具GOF ECO、逻辑等价性检查工具GOF LEC,网表调试工具GOF Debug、汽车电子功能安全验证的GOF Formal。到目前,我们已经帮助全球数十家芯片设计公司Tapeout超过100个项目。

欢迎评估试用

中国大陆

技术支持:support@nandigits.cn

美国总部
技术支持:support@nandigits.co

官方网站

https://nandigits.co

联系评估和试用

方式1、线上提交申请:https://nandigits.co/supports.php?type=license
方式2、发送email到support@nandigits.co
方式3、添加下方企业微信申请


欢迎关注NanDigits
完整的芯片网表解决方案提供商

NanDigits
专注芯片功能ECO、逻辑等价性检查、网表调试、形式验证等技术的研究,及其设计自动化的实现。