DFT Compiler的学习-----part3 Pre-scan的test DRC
关于pre-scan的test DRC问题
1.test DRC的流程
很简单,只要注意到只有在创建test_protocol之后才可能test DRC检查。
2.test DRC后时序单元的分类
分为两类,一类是有违例的,一类是没有违例的,需要对违例的时序单元进行违例排除。
3.模型的违例
黑盒违例:在链接库中找不到该cell。需要查看链接库是不是没有给全。DFTC会将黑盒看成一个时序单元。latch违例:DFTC找不到带扫描链的latch,就会把latch当成黑盒来处理。
4.设置时序的属性
两种strobe协议:一种是strobe_after_clock,一种是strobe_before_clock。默认是 strobe_after_clock的。几个时序属性:test_default_period:定义测试周期,如果测试仪和被测芯片允许,可以设更小的值,默认是100ns。test_default_delay:定义输入延时,缺省值为5。test_default_bidir_delay:定义双向端口的时序。test_default_strobe:定义探测点的位置test_default_strobe_width:定义探测的宽度,默认为 0。
5.创建测试协议
使用的命令就是create_test_protocol的方法。
6.屏蔽DRC错误
DRC 错误按照严重程度可以分为:error,warning,ignore。可以使用set_dft_drc_rules来对某种错误进行降低或者升级处理,使用的方法就是set_dft_drc_rules -error XXX -cells YYY如果要恢复到默认的等级,可以使用reset_dft_drc_rules。如果要查看DRC错误的等级,可以使用 report_dft_drc_rules。
DFT Compiler的学习-----part2 scan replacement
今天着重分析下扫描单元替换(scan replacement)的内容。所谓scan replacement,顾名思意就是在设计中用扫描单元替代非扫描单元。如果设计是以RTL形式给出的,则在RTL综合成门级网表的过程中自动插入扫描单元。如果设计是以门级网表给出来的,则专门做一次扫描替换。
流程:1.选择扫描链的策略---> 2.test DRC检查---> 3.带扫描链的综合
在做扫描链之前,还需要考虑下面问题:
1 .根据目前设计的格式,选择插入扫描链的流程。
如果是RTL或者未优化的门级设计,则采用test-ready Compile,如果是优化的门级设计,采用constraint-optimized 插入方式。test-ready Compile包括逻辑优化和扫描链插入。采用的命令就是 compile -scan。优点就是流程简单,能够得到更好时序和面积。注意test-ready Compile只是将单元替代,并没有将扫描单元连接起来。
2.找出扫描替代的障碍。
障碍有很多种啊,比如本身工艺库就不提供扫描单元,或者某些寄存器找不到相对应的扫描单元,或者设计本身有dont_touch属性或者scan_element属性为false等等。
(set_scan_element truefalse [get_cells ADA])
扫描链类型本身有带mux的寄存器,LSSD,clocked SD。具体选择那一个要考虑到工艺库和本身的设计,一般采用带mux的寄存器。有两种方式来设置扫描链的类型,一种就是设计 test_default_scan_style变量。设置的方法跟tcl设置变量的方法一样,默认的是multiplexed_flip_flop。另一种设置的方式是set_scan_configuration -style来设置。
(tips:如何查看typical库中是否有扫描单元呢。
get_pins typical/*/* -filter "signal_type==test_scan_in")
在插入扫描链的过程中,可以指定扫描单元。使用的命令是set_scan_register_type。选项有- exact和-type,如果使用了exact选项,则在后面的优化过程中(compile -increment)仍然会保留只使用type列表中的扫描单元。(注意DC命令中类似的命令就是set_register_type)。
下面说说constraint-optimized的扫描链插入流程。包括插入扫描链,根据约束优化扫描逻辑,修正DRC错误。对于这种流程,输入可以是优化后的门级网表,可以不包含扫描单元,也可以包含扫描单元。这里需要用到的命令有:
set_drc_configuration
preview_dft.
这些命令以后再深入学习把。
专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们
相关推荐
DS-SS接收机全数字AGC的FPGA实现
S32J以太网交换机为恩智浦CoreRide平台带来安全、可靠的网络连接
波导S1000手机维修 图一
EDA历史与未来---神话时代、英雄时代和人性时代的轮回
分析FPGA收发器的互操作性和信号完整性
车载支付和 ETC 市场回顾
自动驾驶域控制器和中央控制单元行业回顾
FPGA芯片APA150及其应用
东信EL610手机维修 图一
整车功能架构 --- 智能座舱
用Botspot虚拟机在Raspberry Pi 5上运行Windows 11
FPGA器件的在线配置方法
CPLD在IGBT驱动设计中的应用
中兴ZTE289手机维修 图一
爱立信新总裁首次访华 强调在华长期承诺
车知识大扫盲:激光雷达和纯视觉方案,两种差别有哪些?
哈工大(SoC)设计平台在SPARC芯片设计中成功应用
Interfacing High-Speed ADCs to FPGAs with Embedded Transceivers
美干预中国芯片产业 焦点对准18号政策文件
TLV320AIC3254 社区视频
中国独立主机厂的 ADAS 和自动驾驶评估
海尔GD268E手机维修 图二
如何将RFID阅读器与Raspberry Pi Pico一起使用
Gartner:2002年CRM市场萎缩 销售额降25%
基于Raspberry Pi的智能LED世界地图风靡全球
EDA实验指导
在FPGA上开发嵌入式系统软件
中兴ZTE289手机维修 图二
输出接口电路
分析FPGA收发器的互操作性和信号完整性