synopsys DFTMAX——Adaptive Scan
将原始的scan chain分割为更短的scan chain。较短的链条加载时间更少,并且更少的数据加载到测试仪上
1、DFTMAX &Test Mode
在典型的DFT MAX运行中,压缩和常规扫描模式是在扫描插入(insert_dft)期间自动创建的.
scancompression_mode (Compression mode)
Internal_scan (Regular scan mode)
Scan Inputs、Scan Outputs、Scan Enable由常规扫描和扫描压缩模式共享。
需要TestMode信号来区分常规扫描模式和扫描压缩模式
- 使用set_dft_signal声明现有端口
- 无法共享AutoFix使用的TestMode端口
- 使用set_autofix_configuration -control_signal标识要由AutoFix使用的特定TestMode端口
- 如果未识别现有端口,DFT编译器将创建一个新端口(名为“ test_mode”)
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
set_dft_signal -type TestMode -port tmode1 set_dft_signal -type TestMode -port tmode2 set_autofix_configuration -control_signal tmode1 #Port“ tmode2”将用作控制信号,以区分Internal_scan和scanCompression_mode
2、DFTMAX Command
- Enable Adaptive Scan (Core and Top-level)
set_dft_configuration -scan_compression enable I disable
- Control Scan Architecting ("external" chain count)
set_scan_configuration -chain_count <N>
- 使用以下三个命令选项之一,使用set_scan_compression_configuration命令指定内部压缩链的数量:
Set the scanCompression_mode chain count -chain_count <#>
Set the scancompression_mode maximum chain length -max_length <#>
Set the Compression Level -minimum_compression <N> (Default: 10)
- To specify the X-tolerance
set_scan_compression_configuration -xtolerance default l high
3、X-Tolerance
High X-tolerance结构
高X容忍架构提供以下观察模式:
- 完整(unmasked)的观察模式,等效于默认的X-tolerance模式
- 额外的X-tolerance(masked)观察模式,可以在到达XOR压缩器之前屏蔽选定链中的X值
4、脚本示例
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
set_dft_configuration -scan_compression enable set_scan_configuration -chain_count <N> set_dft_signal -type ScanClock -port clk create_test protocol -capture procedure multi dft_drc preview_dft insert_dft write -f verilog -hier -o block1.v write_test_protocol -out scan.spf -test_mode Internal_scan write_test_protocol -out scancompress.spf -test_mode ScanCompression_mode
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
#Define TestMode signals to be used set_dft_signal -view spec -type TestMode -port [list tmode1 tmode2] #Define the two modes define_test_mode Internal_scan -usage scan -view spec define_test_mode burn_in -usage scan -view spec define_test_mode ScanCompression_mode -usage scan_compression -view spec #Specify clocks and asynchs set_dft_signal -type Scanclock -port clk -timing {45 55) -view existing -test_mode all #specify chain counts set_scan_configuration -chain_count 10 -test _mode Internal_scan set_scan_configuration -chain_count 1 -test_mode burn_in set_scan_compression_configuration -chain_count 120 -base_mode Internal_scan -test_mode ScanCompression_mode #Specify clock mixing set_scan_configuration -clock_mixing mix_clocks -test_mode Internal_scan set_scan_configuration -clock_mixing mix_clocks -test_mode burn_in set_scan_configuration -clock_mixing no_mix -test_mode ScanCcampression_mode
5.bottom-up HSS flow
DFT-MAX支持带有test model的bottom-up HSS flow
压缩逻辑被插入顶层
确保在子块中创建足够的链以在压缩模式下启用平衡链
Hierarchical Adaptive Scan Synthesis (HASS)
在block里做压缩;顶层不做压缩,只做集成。
- 自适应扫描core、常规扫描core、和top level时序逻辑集成在顶层
- 自适应扫描逻辑位于core level
- 帮助减少top level拥塞
- top level命令序列与“top down”自适应扫描flow相同
- 通过以下命令启用自适应扫描核心的顶级集成:
set_scan_compression_configuration -integration_only true | false
HASS示例——multiple compressed core
- cere-based integration
set_dft_confiquration -scan_compression enable
set_scan_compression_configuration -integration_only true
HASS示例——adaptive & regular scan core
- cere-based integration
set_dft_confiquration -scan_compression enable
set_scan_compression_configuration -integration_only true
HASS示例——Hybirid flow (应用得比较多)
底层、顶层均压缩
set_dft_configuration -scan_compression enable
set_scan_compression_configuration -hybrid true
set_scan_compression_configuration -minimum_compression x
HASS Details
- CTL、CTLDDC、DDC test model必须用于自适应扫描core集成 。
- 在Internal_scan模式下,HASS在top level创建的扫描链数与所有core扫描链之和相同
- 仅需一个TestMode端口——在所有自适应扫描core之间共享、在scancompression_mode和internal_scan之间选择
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
#Read in top level with any test_ready sequential logic read verilog my_top_test_ready . v #Read CTL model for Adaptive scan inserted block read_test_model core1.ctlddc #Read CTL model for pure scan block read_test_model core2.ctlddc current design my_top link #Enable Adaptive scan and configure for integration only set_dft_configuration -scan_compression enable set_sean_compression_configuration -integration_only true #create the test protocol,run DRC,and preview create_test protocol dft_drc preview_dft -show all #Integrate the Adaptive scan and Pure scan cores insert_dft #DFT DRc in Internal_scan mode: not supported in scanCompression_mode current_test_mode Internal_scan dft_drc