DFT Compiler 是Synopsys的Scan Test工具
DFT Compiler的一些特点:
使用synthesis flow为DFT的实现更加透明
可以在RTL比较早的阶段开展DFT工作
在Scan的过程中也可以将时序、功耗、信号完整性等因素考虑进去
dc_shell command help
history
!!---重复上一个命令
sh <UNIX_command> ---执行Linux命令
man<command_name> ---获得命令介绍
DFT compiler命令命名传统:
set_* ---指定相关设置
report_* ---打印显示相关设置
reset_* ---复位之前设置
remove_* ---删除之前设置
3 steps:Synthesis=translation+Logic Optimization+Gate Mapping
Top-Down:
对整个design执行Scan inseriton
Bottom-Up:
block-level完成scan insertion,并集成到top-level
Unmapped Flow:
从unmapped(RTL)开始scan insertion工作
Mapped Flow:
从gate-level开始scan-insertion工作
DFT Compiler执行scan cell替换和串scan chain
Read Design:
指定library
Read design(read_ddc,read_verilog)
Create Test Protocol:
Test Protocol描述了Scan测试的一个行为
通过set_dft_signal命令声明的dft信号会被集成到test protocol中
使用create_test_protocol命令创建
创建test protocol的步骤:
定义scan信号,clock,reset,constants等
使用set_dft_signal命令
创建或读入一个test protocol
使用create_test_protocol
或者使用read_test_protocol
定义DFT信号:
set_dft_signal命令是用来定义在test protocol中用到的信号的,常用的语法格式:
set_dft_signal -view<existing_dft|spec> -timing<clock/reset timing>
-type<signal_type> -port<port_list>
-active_state<0/1> -hookup_pin<pin_path>
识别design中存在的用于scan的port:
scan常用的port ScanEnable,ScanIn,ScanOut,Clock等
可以避免工具直接修改design的IO list
用set_dft_signal命令识别并复用function ports
命令: set_dft_signal “-view” 选项
-view spec: 指定的DFT信号用于 dft logic 的插入,即命令insert_dft会使用相关的dft 信号
-view existing_dft: 用于 drc check,即dft_drc命令会使用相关dft信号
默认的选项是:-view spec
命令:report_dft_signal 会默认显示所有的 spec 和existing_dft 对应的信号
-view 选项可以支持简写:-view spec→ -view s → -v s
-view existing_dft →-view exist → -v e
指定dft clock
使用set_dft_signal命令指定dft用到的clock,如下所示:
set test_default_period 100
set_dft_signal -view existing_dft \
-type ScanClock \
-port clock -timing [list 45 55]
ScanClock是关键字,对于MUX类型Scan Cell这是常用的指定方式。当用report_dft_signal命令时,会显示clock即是ScanMasterClock又是MasterClock
set_dft_signal -timing
-timing选项是用与描述clock或者reset的时序信息
-timing选项接受两个数值的list作为上升沿时刻与下降沿时刻
teturn to zero(RTZ) waveform -timing {45 55}
reture to one(RTO) waveform -timing [list 60 50]