一种快速DFT DRC检查的功能介绍

描述

介绍

在芯片做功能ECO时,DFT部分的逻辑常常被破坏,这是由于正常工作模式下修改设计的原因。在功能ECO时,DFT的控制信号被设为无效,ECO工具意识不到DFT逻辑被更改,并且形式验证也验证不出来。我们发现,当ECO过的网表送给DFT工具,DFT工具需要运行很长时间来识别网表是否存在问题。

NanDigits GOF提供了一种快速DFT DRC检查的功能,来检查DFT逻辑中的问题。DFT中最基本的DRC检查就是确认扫描链是否完整,就是说,GOF可以捕获和输出测试进行中的测试pattern。另外,在测试模式下,DFT的时钟和复位必须是要受控的,以便来使能合适的测试pattern。

下图是DFT模式使能后的示意图,TEST_MODE=1,TEST_CLOCK被送到每个DFF的时钟端。

ECO

示例

下面是GOF做DFT DRC检查的脚本,先读入lib库和网表,再设置使能DFT模式,并创建时钟、复位、si/so扫描链对,最后运行dft_drc()命令来执行DFT DRC的检查。

 

# dft_drc.pl
set_log_file("dft_drc.log"); # 设计log
read_library("art.5nm.lib"); # 读入lib库
read_design('-imp', 'dft_top.v'); # 读入带有DFT的网表
set_top("DFT_TOP");               # 设置顶层


set_pin_constant("test_scan_shift", 1); # 设scan shift为1
set_pin_constant("all_test_reg/Q", 1);  # 设TDR all_test寄存器输出Q为1
set_pin_constant("test_mode_reg/Q", 1);  # 设TDR test_mode寄存器输出Q为1


create_clock("occ_add_1_inst/U0/Z", 10); # 创建时钟,周期10ns, 可能有多个
create_clock("occ_add_2_inst/U0/Z", 10);
create_reset("power_on_reset", 0);       # 创建reset


set_top("DESIGN_TOP");                   # pin_si/pin_so是DFT_TOP的内部pin
set_scan_pairs("pin_si[0]", "pin_so[0]"); # 添加扫描链对
set_scan_pairs("pin_si[1]", "pin_so[1]");


set_top("DFT_TOP"); # 回到顶层
my $err = dft_drc; # 运行DFT DRC检查
if($err){
  gprint("DFT DRC found $err errors
");
}
运行DFT DRC检查:
gof -run dft_drc.pl
 

 

结语

NanDigits GOF提供了快速DFT DRC的检查和修复,来保证功能ECO不会影响到DFT扫描链,缩短功能ECO后的DFT修复和验证的时间,帮助客户更快的Tapeout。最新版GOF10.4支持此功能,欢迎试用评估。




审核编辑:刘清

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分