在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 7538|回复: 13

[求助] DFTcompiler DFT插入partition问题

[复制链接]
发表于 2018-8-23 22:38:16 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
我现在用synopsys 的DFTC插入DFT电路,采用partition的方式。
出现了以下不理解的地方,望哪个大神指导指导,谢谢!
--针对PG0问题--------------------------------------------------
问题1:
本来想实现的是PG0在Internal_scan模式时,有4条scan chain,即4组SCANIN/OUT组,
但是最后却做出来有5条scan chain,另外1组是test_si1/test_so1,不知道怎么回事??
问题2:
另外,test_si1/test_so1这条chain中包含的是inst3,inst4中所有的REG。
本来我的设计意图是,PG0中只包含inst1,inst2中的REG,不包含inst3,inst4中的REG,
是不是我哪条commond没有设定,才会出现这种情况??
  ※PG1也会出现以上问题!!!
--针对insert_dft出现的test mode问题-----------------------------
问题3:
本来设定的test mode是以下关系,
PG0_ScanCompression_mode_0的base_mode是PG0_Internal_scan
PG0_ScanCompression_mode_1的base_mode是PG0_Internal_scan
PG1_ScanCompression_mode的base_mode是PG1_Internal_scan
却在insert_dft时出现了以下信息。
  scan compression mode PG0_ScanCompression_mode_0 with base mode Internal_scan and partition default_dft_partiton
  ...
  scan compression mode PG0_ScanCompression_mode_0 with base mode PG1_Internal_scan and partition PG1
  ....
  1,我没有设定Intetnal_scan模式,为什么会有?
     我知道Internal_scan是default test mode,但是我的PG0_Internal_scan/PG1_Internal_scan本来就是scan test mode啊,

为什么还给我定义一个Internal_scan?

※也默认定义了一个ScanCompression_mode
  2, 为什么会出现PG0_ScanCompression_mode_0 with base mode PG1_Internal_scan and partition PG1?
     PG0_ScanCompression_mode_0和PG1_Internal_scan根本就不在一个partition中,Why?


项目描述:
design name:DUT
DUT中包含以下instance:inst1、inst2、inst3、inst4
                      DUT当前阶层下无其他REG和Cell、无inst5
SCAN IN/OUT 共4组:DFT_IN1、DFT_IN2、DFT_IN3、DFT_IN4
                   DFT_OUT1、DFT_OUT2、DFT_OUT3、DFT_OUT4
TestMode signals :TM1、TM2、TM3
Scan Enable signals:SE

   
想实现以下功能:
Partition 0:
a),name:PG0
b),PG0包含inst1、inst2两个instance
c),PG0中共包含三种DFTMAX回路(test_mode):
     PG0_Internal_scan(4 scan in/4 scan out)

PG0_ScanCompression_mode_0(以PG0_Internal_scan为base_mode,4 scan in/4 scan out,压缩倍数25倍,即4 chain->100 chain)

PG0_ScanCompression_mode_1(以PG0_Internal_scan为base_mode,4 scan in/4 scan out,压缩倍数10倍,即4 chain->40 chain)

Partition 1:
a),name:PG1
b),PG1包含inst3、inst4两个instance
c),PG1中共包含两种DFTMAX回路(test_mode):
     PG1_Internal_scan(4 scan in/4 scan out)

PG1_ScanCompression_mode(以PG1_Internal_scan为base_mode,4 scan in/4 scan out,压缩倍数10倍,即4 chain->40 chain)

DFT insert TCL:




  1. define_dft_partition PG0 -default false -include {inst1 inst2}
  2. define_dft_partition PG1 -default false -include {inst3 inst4}
  3. set_dft_signal  -type ScanClock ....
  4. set_dft_signal  -type Reset ....
  5. set_dft_signal  -type TestMode -port TM1 ....
  6. set_dft_signal  -type TestMode -port TM2 ....
  7. set_dft_signal  -type TestMode -port TM3 ....
  8. set_dft_signal  -type ScanEnable -port SE ....
  9. define_test_mode PG0_Internal_scan -usage  scan -encoding {TM1 0 TM2 0 TM3 1}
  10. define_test_mode PG0_ScanCompression_mode_0 -usage  scan_compression  {TM1 0 TM2 1 TM3 0}
  11. define_test_mode PG0_ScanCompression_mode_1
  12. define_test_mode PG1_Internal_scan
  13. define_test_mode PG1_ScanCompression_mode
  14. current_dft_partition PG0
  15. set_dft_signal  -type ScanDataIn -port DFT_IN1/2/3/4 ...
  16. set_scan_path -scandatain DFT_IN1 -scandataout DFT_OUT1
  17. ...
  18. set_scan_configuration -chain_count 4 -test_mode PG0_Internal_scan ...
  19. scan compression enable...(命令搞忘了)
  20. set_scan_compression_configuration -test_mode PG0_ScanCompression_mode_0 -base_mode PG0_Internal_scan -chain_count 100
  21. set_scan_configuration -test_mode PG0_ScanCompression_mode_0 ...(scan chain config设定)
  22. set_scan_compression_configuration -test_mode PG0_ScanCompression_mode_1 -base_mode PG0_Internal_scan -chain_count 40
  23. set_scan_configuration -test_mode PG0_ScanCompression_mode_1 ...(scan chain config设定)

  24. current_dft_partition PG1
  25. set_dft_signal  -type ScanDataIn -port DFT_IN1/2/3/4 ...
  26. set_scan_path -scandatain DFT_IN1 -scandataout DFT_OUT1
  27. ...
  28. set_scan_configuration -chain_count 4 -test_mode PG1_Internal_scan ...
  29. scan compression enable...(命令搞忘了)
  30. set_scan_compression_configuration -test_mode PG1_ScanCompression_mode -base_mode PG1_Internal_scan -chain_count 40
  31. set_scan_configuration -test_mode PG1_ScanCompression_mode ...(scan chain config设定)

  32. dft_drc (没有任何DRC问题)
  33. preview_dft(结果有问题)
  34. insert_dft
  35. ...
  36. ...



复制代码
 楼主| 发表于 2018-8-23 22:39:13 | 显示全部楼层
望大神帮帮忙,谢谢。
发表于 2018-8-28 17:56:01 | 显示全部楼层
回复 1# YouHKH


   set_scan_configuration -test_mode PG0_ScanCompression_mode_0 ...(scan chain config设定)是不是这里的test_mode 后应该是PG0_Internal_scan啊,23行也是?
 楼主| 发表于 2018-8-28 22:56:29 | 显示全部楼层
回复 3# 马奎高

多谢回复。
其实在18 line已经把-test_mode PG0_Internal_scan 的scan config已经设定好了。18 line:set_scan_configuration -chain_count 4 -test_mode PG0_Internal_scan ...
   
21 line和23 line其实是在设定压缩模式的scan config,所以是PG0_ScanCompression_mode_0/PG0_ScanCompression_mode_1。
20 line :set_scan_compression_configuration -test_mode PG0_ScanCompression_mode_0 -base_mode PG0_Internal_scan -chain_count 100
21 line:set_scan_configuration -test_mode PG0_ScanCompression_mode_0 -base_mode ...(scan chain config设定)
22 line : set_scan_compression_configuration -test_mode PG0_ScanCompression_mode_1 -base_mode PG0_Internal_scan -chain_count 40
23 line :
set_scan_configuration -test_mode PG0_ScanCompression_mode_1 ...(scan chain config设定)
发表于 2018-8-29 09:27:19 | 显示全部楼层
回复 4# YouHKH


   应该有点问题,你看看这例子对照下:



  1. ## Define the scan in and scan out pins, which will be used in
  2. ## all test modes.
  3. ## These modes are my_base1, my_base2, scan_compression1,
  4. ## scan_compression2, and burn_in.
  5. for {set i 1} {$i <= 13 } { incr i 1} {
  6.   create_port -direction in test_si[$i]
  7.   create_port -direction out test_so[$i]
  8.   set_dft_signal -type ScanDataIn -view spec \
  9.     -port test_si[$i] -test_mode all
  10.   set_dft_signal -type ScanDataOut -view spec \
  11.     -port test_so[$i] -test_mode all
  12. }
  13. # Define Test Clocks
  14. set_dft_signal -view existing_dft -type TestClock -timing {45 55} \
  15.   -port clk_st
  16. # Define TestMode signals to be used
  17. set_dft_signal -view spec -type TestMode \
  18.   -port [list i_trdy_de i_trdy_dd i_cs]
  19. # Define the test modes and usage
  20. define_test_mode my_base1 -usage scan \
  21.   -encoding {i_trdy_de 0 i_trdy_dd 0 i_cs 1}
  22. define_test_mode my_base2 -usage scan \
  23.   -encoding {i_trdy_de 0 i_trdy_dd 1 i_cs 0}
  24. define_test_mode burn_in  -usage scan \
  25.   -encoding {i_trdy_de 0 i_trdy_dd 1 i_cs 1}
  26. define_test_mode scan_compression1 -usage scan_compression \
  27.   -encoding {i_trdy_de 1 i_trdy_dd 0 i_cs 0}
  28. define_test_mode scan_compression2 -usage scan_compression \
  29.   -encoding {i_trdy_de 1 i_trdy_dd 0 i_cs 1}
  30. # Enable DFTMAX compression
  31. set_dft_configuration -scan_compression enable
  32. # Configure DFTMAX compression
  33. set_scan_compression_configuration -base_mode my_base1 -chain_count 32  \
  34.   -test_mode scan_compression1 -xtolerance high
  35. set_scan_compression_configuration -base_mode my_base2 -chain_count 256 \
  36.   -test_mode scan_compression2 -xtolerance high
  37. # Configure the basic scan modes
  38. set_scan_configuration -chain_count 4 -test_mode my_base1
  39. set_scan_configuration -chain_count 8 -test_mode my_base2
  40. set_scan_configuration -chain_count 1 -clock_mixing mix_clocks \
  41.   -test_mode burn_in
  42. set_dft_insertion_configuration -synthesis_optimization none
  43. ## Give a chain spec to be applied in my_base1
  44. ## This will also define the scan ports for scan_compression1
  45. set_scan_path chain1 -view spec -scan_data_in test_si[1] \
  46.   -scan_data_out test_so[1] -test_mode my_base1
  47. set_scan_path chain2 -view spec -scan_data_in test_si[2] \
  48.   -scan_data_out test_so[2] -test_mode my_base1
  49. set_scan_path chain3 -view spec -scan_data_in test_si[3] \
  50.   -scan_data_out test_so[3] -test_mode my_base1
  51. set_scan_path chain4 -view spec -scan_data_in test_si[4] \
  52.   -scan_data_out test_so[4] -test_mode my_base1
  53. ## Give a chain spec to be applied in my_base2
  54. ## Give a chain spec to be applied in my_base2
  55. ## This will also define the scan ports for scan_compression2
  56. set_scan_path chain5 -view spec -scan_data_in test_si[5] \
  57.   -scan_data_out test_so[5] -test_mode my_base2
  58. set_scan_path chain6 -view spec -scan_data_in test_si[6] \
  59.   -scan_data_out test_so[6] -test_mode my_base2
  60. set_scan_path chain7 -view spec -scan_data_in test_si[7] \
  61.   -scan_data_out test_so[7] -test_mode my_base2
  62. set_scan_path chain8 -view spec -scan_data_in test_si[8] \
  63.   -scan_data_out test_so[8] -test_mode my_base2
  64. set_scan_path chain9 -view spec -scan_data_in test_si[9] \
  65.   -scan_data_out test_so[9] -test_mode my_base2
  66. set_scan_path chain10 -view spec -scan_data_in test_si[10] \
  67.   -scan_data_out test_so[10] -test_mode my_base2
  68. set_scan_path chain11 -view spec -scan_data_in test_si[11] \
  69.   -scan_data_out test_so[11] -test_mode my_base2
  70. set_scan_path chain12 -view spec -scan_data_in test_si[12] \
  71.   -scan_data_out test_so[12] -test_mode my_base2
  72. ## Give a chain spec to be applied in burn_in
  73. set_scan_path chain4 -view spec -scan_data_in test_si[13] \
  74.   -scan_data_out test_so[13] -test_mode burn_in
  75. ## Create test protocol
  76. create_test_protocol
  77. ## Run pre-DFT DRC
  78. dft_drc
  79. ## Preview test structures to be inserted
  80. preview_dft -show all
  81. ## Run test insertion
  82. insert_dft
  83. current_test_mode scan_compression1
  84. report_dft_signal
  85. dft_drc -verbose
  86. current_test_mode scan_compression2
  87. report_dft_signal
  88. dft_drc -verbose
  89. current_test_mode my_base1
  90. report_dft_signal
  91. dft_drc -verbose
  92. current_test_mode my_base2
  93. report_dft_signal
  94. dft_drc -verbose
  95. current_test_mode burn_in
  96. report_dft_signal
  97. dft_drc -verbose
  98. change_names -rules verilog -hierarchy
  99. write -format verilog -hierarchy -output vg/top_scan_mm.v
  100. write_test_protocol -test_mode scan_compression1 \
  101.   -output stil/scan_compression1.stil -names verilog
  102. write_test_protocol -test_mode scan_compression2 \
  103.   -output stil/scan_compression2.stil -names verilog
  104. write_test_protocol -test_mode my_base1 -output stil/my_base1.stil \
  105.   -names verilog
  106. write_test_protocol -test_mode my_base2 -output stil/my_base2.stil \
  107.   -names verilog
  108. write_test_protocol -test_mode burn_in -output stil/burn_in.stil \
  109.   -names verilog


复制代码
发表于 2018-8-29 15:14:48 | 显示全部楼层




   另外,你的IO共享了吗,set_app_var test_enable_codec_sharing true,或者



  1. set_scan_compression_configuration
  2.    -shared_inputs M
  3.    -shared_outputs N


复制代码
 楼主| 发表于 2018-8-29 22:02:36 | 显示全部楼层
回复 6# 马奎高


   谢谢回答。你上面给的例子是没有进行partition,这个能够正确插入DFT电路。



另外,你的IO共享了吗,set_app_var test_enable_codec_sharing true,或者



对于IO共享问题,我对PG0/PG1单独设置scan in/out之后还是不行。

详细见下面两楼,这是完整的tcl和Error Log,麻烦再帮看看,谢谢。
 楼主| 发表于 2018-8-29 22:04:36 | 显示全部楼层
回复 6# 马奎高

是根据你给的tcl例子改的,谢谢。



  1. ## Define the scan in and scan out pins, which will be used in
  2. ## all test modes.
  3. ## These modes are my_base1, my_base2, scan_compression1,
  4. ## scan_compression2, and burn_in.
  5. set_dft_insertion_configuration -synthesis_optimization none
  6. create_port -direction in {i_trdy_de i_trdy_dd i_cs }
  7. # Define Test Clocks
  8. set_dft_signal -view existing_dft -type ScanClock -timing {45 55} -port clk
  9. set_dft_signal -view existing_dft -type Reset -active_state 0 -port rst_in_n
  10. # Define TestMode signals to be used
  11. set_dft_signal -view spec -type TestMode -port [list i_trdy_de i_trdy_dd i_cs]
  12. # Define the test modes and usage
  13. define_test_mode my_base1 -usage scan -encoding {i_trdy_de 0 i_trdy_dd 0 i_cs 1}
  14. define_test_mode my_base2 -usage scan -encoding {i_trdy_de 0 i_trdy_dd 1 i_cs 0}
  15. #define_test_mode burn_in  -usage scan -encoding {i_trdy_de 0 i_trdy_dd 1 i_cs 1}
  16. define_test_mode scan_compression1 -usage scan_compression -encoding {i_trdy_de 1 i_trdy_dd 0 i_cs 0}
  17. define_test_mode scan_compression2 -usage scan_compression -encoding {i_trdy_de 1 i_trdy_dd 0 i_cs 1}

  18. # Define Partition
  19. source -e -v pg0_cell.tcl
  20. source -e -v pg1_cell.tcl
  21. # PG0
  22. current_dft_partition PG0
  23. for {set i 1} {$i <= 4 } { incr i 1} {
  24.   create_port -direction in test_si[$i]
  25.   create_port -direction out test_so[$i]
  26.   set_dft_signal -type ScanDataIn -view spec -port test_si[$i]  -test_mode my_base1
  27.   set_dft_signal -type ScanDataOut -view spec -port test_so[$i] -test_mode my_base1
  28. }
  29. # Configure the basic scan modes
  30. set_scan_configuration -chain_count 4 -test_mode my_base1
  31. # Enable DFTMAX compression
  32. set_dft_configuration -scan_compression enable
  33. # Configure DFTMAX compression
  34. set_scan_compression_configuration -base_mode my_base1 -chain_count 32  -test_mode scan_compression1 -xtolerance high
  35. ## Give a chain spec to be applied in my_base1
  36. ## This will also define the scan ports for scan_compression1
  37. set_scan_path chain1 -view spec -scan_data_in test_si[1] -scan_data_out test_so[1] -test_mode my_base1
  38. set_scan_path chain2 -view spec -scan_data_in test_si[2] -scan_data_out test_so[2] -test_mode my_base1
  39. set_scan_path chain3 -view spec -scan_data_in test_si[3] -scan_data_out test_so[3] -test_mode my_base1
  40. set_scan_path chain4 -view spec -scan_data_in test_si[4] -scan_data_out test_so[4] -test_mode my_base1
  41. # PG1
  42. current_dft_partition PG1
  43. for {set i 5} {$i <= 12 } { incr i 1} {
  44.   create_port -direction in test_si[$i]
  45.   create_port -direction out test_so[$i]
  46.   set_dft_signal -type ScanDataIn -view spec -port test_si[$i]  -test_mode my_base2
  47.   set_dft_signal -type ScanDataOut -view spec -port test_so[$i] -test_mode my_base2
  48. }
  49. # Configure the basic scan modes
  50. set_scan_configuration -chain_count 8 -test_mode my_base2
  51. # Configure DFTMAX compression
  52. set_scan_compression_configuration -base_mode my_base2 -chain_count 256 -test_mode scan_compression2 -xtolerance high
  53. ## Give a chain spec to be applied in my_base2
  54. ## This will also define the scan ports for scan_compression2
  55. set_scan_path chain5 -view spec -scan_data_in test_si[5] -scan_data_out test_so[5] -test_mode my_base2
  56. set_scan_path chain6 -view spec -scan_data_in test_si[6] -scan_data_out test_so[6] -test_mode my_base2
  57. set_scan_path chain7 -view spec -scan_data_in test_si[7] -scan_data_out test_so[7] -test_mode my_base2
  58. set_scan_path chain8 -view spec -scan_data_in test_si[8] -scan_data_out test_so[8] -test_mode my_base2
  59. set_scan_path chain9 -view spec -scan_data_in test_si[9] -scan_data_out test_so[9] -test_mode my_base2
  60. set_scan_path chain10 -view spec -scan_data_in test_si[10] -scan_data_out test_so[10] -test_mode my_base2
  61. set_scan_path chain11 -view spec -scan_data_in test_si[11] -scan_data_out test_so[11] -test_mode my_base2
  62. set_scan_path chain12 -view spec -scan_data_in test_si[12] -scan_data_out test_so[12] -test_mode my_base2
  63. ## Create test protocol
  64. create_test_protocol
  65. ## Run pre-DFT DRC
  66. dft_drc
  67. ## Preview test structures to be inserted
  68. preview_dft -show all
  69. ## Run test insertion
  70. insert_dft
  71. current_test_mode scan_compression1
  72. report_dft_signal
  73. dft_drc -verbose
  74. current_test_mode scan_compression2
  75. report_dft_signal
  76. dft_drc -verbose
  77. current_test_mode my_base1
  78. report_dft_signal
  79. dft_drc -verbose
  80. current_test_mode my_base2
  81. report_dft_signal
  82. dft_drc -verbose
  83. change_names -rules verilog -hierarchy
  84. write -format verilog -hierarchy -output vg/top_scan_mm.v
  85. write_test_protocol -test_mode scan_compression1 -output stil/scan_compression1.stil -names verilog
  86. write_test_protocol -test_mode scan_compression2 -output stil/scan_compression2.stil -names verilog
  87. write_test_protocol -test_mode my_base1 -output stil/my_base1.stil -names verilog
  88. write_test_protocol -test_mode my_base2 -output stil/my_base2.stil -names verilog
  89. #write_test_protocol -test_mode burn_in -output stil/burn_in.stil \
  90. #  -names verilog


复制代码
 楼主| 发表于 2018-8-29 22:08:40 | 显示全部楼层
Error Log详细:
## Define the scan in and scan out pins, which will be used in
## all test modes.
## These modes are my_base1, my_base2, scan_compression1,
## scan_compression2, and burn_in.
set_dft_insertion_configuration -synthesis_optimization none
Accepted insert_dft configuration specification.
1
create_port -direction in {i_trdy_de i_trdy_dd i_cs }
Creating port 'i_trdy_de' in design 'DW8051_core'.
Creating port 'i_trdy_dd' in design 'DW8051_core'.
Creating port 'i_cs' in design 'DW8051_core'.
1
# Define Test Clocks
set_dft_signal -view existing_dft -type ScanClock -timing {45 55} -port clk
Accepted dft signal specification for modes: all_dft
1
set_dft_signal -view existing_dft -type Reset -active_state 0 -port rst_in_n
Accepted dft signal specification for modes: all_dft
1
# Define TestMode signals to be used
set_dft_signal -view spec -type TestMode -port [list i_trdy_de i_trdy_dd i_cs]
Accepted dft signal specification for modes: all_dft
1
# Define the test modes and usage
define_test_mode my_base1 -usage scan -encoding {i_trdy_de 0 i_trdy_dd 0 i_cs 1}
Defining test mode my_base1 in view existing_dft
Defining test mode my_base1 in view spec
Current test mode is 'my_base1'.
1
define_test_mode my_base2 -usage scan -encoding {i_trdy_de 0 i_trdy_dd 1 i_cs 0}
Defining test mode my_base2 in view existing_dft
Defining test mode my_base2 in view spec
Current test mode is 'my_base2'.
1
#define_test_mode burn_in  -usage scan -encoding {i_trdy_de 0 i_trdy_dd 1 i_cs 1}
define_test_mode scan_compression1 -usage scan_compression -encoding {i_trdy_de 1 i_trdy_dd 0 i_cs 0}
Defining test mode scan_compression1 in view existing_dft
Defining test mode scan_compression1 in view spec
Current test mode is 'scan_compression1'.
1
define_test_mode scan_compression2 -usage scan_compression -encoding {i_trdy_de 1 i_trdy_dd 0 i_cs 1}
Defining test mode scan_compression2 in view existing_dft
Defining test mode scan_compression2 in view spec
Current test mode is 'scan_compression2'.
1
# Define Partition
source -e -v pg0_cell.tcl

define_dft_partition PG0 -include { cell list1}
source -e -v pg1_cell.tcl
define_dft_partition PG0 -include { cell list2}
DFT Partition PG1 has been correctly updated.
1
1
current_dft_partition PG0
Current DFT Partition is set to 'PG0'.
1
for {set i 1} {$i <= 4 } { incr i 1} {
  create_port -direction in test_si[$i]
  create_port -direction out test_so[$i]
  set_dft_signal -type ScanDataIn -view spec -port test_si[$i]  -test_mode my_base1
  set_dft_signal -type ScanDataOut -view spec -port test_so[$i] -test_mode my_base1
}
Creating port 'test_si[1]' in design 'DW8051_core'.
Creating port 'test_so[1]' in design 'DW8051_core'.
Accepted dft signal specification for partition 'PG0' and modes: my_base1
Accepted dft signal specification for partition 'PG0' and modes: my_base1
Creating port 'test_si[2]' in design 'DW8051_core'.
Creating port 'test_so[2]' in design 'DW8051_core'.
Accepted dft signal specification for partition 'PG0' and modes: my_base1
Accepted dft signal specification for partition 'PG0' and modes: my_base1
Creating port 'test_si[3]' in design 'DW8051_core'.
Creating port 'test_so[3]' in design 'DW8051_core'.
Accepted dft signal specification for partition 'PG0' and modes: my_base1
Accepted dft signal specification for partition 'PG0' and modes: my_base1
Creating port 'test_si[4]' in design 'DW8051_core'.
Creating port 'test_so[4]' in design 'DW8051_core'.
Accepted dft signal specification for partition 'PG0' and modes: my_base1
Accepted dft signal specification for partition 'PG0' and modes: my_base1
# Configure the basic scan modes
set_scan_configuration -chain_count 4 -test_mode my_base1
Accepted scan configuration in partition 'PG0' for modes: my_base1
1
# Enable DFTMAX compression
set_dft_configuration -scan_compression enable
Accepted dft configuration specification.
1
# Configure DFTMAX compression
set_scan_compression_configuration -base_mode my_base1 -chain_count 32  -test_mode scan_compression1 -xtolerance high
Accepted scan compression specification for design 'DW8051_core' in partition 'PG0'.
1
## Give a chain spec to be applied in my_base1
## This will also define the scan ports for scan_compression1
set_scan_path chain1 -view spec -scan_data_in test_si[1] -scan_data_out test_so[1] -test_mode my_base1
Accepted scan path specification for partition 'PG0' and mode 'my_base1'
1
set_scan_path chain2 -view spec -scan_data_in test_si[2] -scan_data_out test_so[2] -test_mode my_base1
Accepted scan path specification for partition 'PG0' and mode 'my_base1'
1
set_scan_path chain3 -view spec -scan_data_in test_si[3] -scan_data_out test_so[3] -test_mode my_base1
Accepted scan path specification for partition 'PG0' and mode 'my_base1'
1
set_scan_path chain4 -view spec -scan_data_in test_si[4] -scan_data_out test_so[4] -test_mode my_base1
Accepted scan path specification for partition 'PG0' and mode 'my_base1'
1
current_dft_partition PG1
Current DFT Partition is set to 'PG1'.
1
for {set i 5} {$i <= 12 } { incr i 1} {
  create_port -direction in test_si[$i]
  create_port -direction out test_so[$i]
  set_dft_signal -type ScanDataIn -view spec -port test_si[$i]  -test_mode my_base2
  set_dft_signal -type ScanDataOut -view spec -port test_so[$i] -test_mode my_base2
}
Creating port 'test_si[5]' in design 'DW8051_core'.
Creating port 'test_so[5]' in design 'DW8051_core'.
Accepted dft signal specification for partition 'PG1' and modes: my_base2
Accepted dft signal specification for partition 'PG1' and modes: my_base2
Creating port 'test_si[6]' in design 'DW8051_core'.
Creating port 'test_so[6]' in design 'DW8051_core'.
Accepted dft signal specification for partition 'PG1' and modes: my_base2
Accepted dft signal specification for partition 'PG1' and modes: my_base2
Creating port 'test_si[7]' in design 'DW8051_core'.
Creating port 'test_so[7]' in design 'DW8051_core'.
Accepted dft signal specification for partition 'PG1' and modes: my_base2
Accepted dft signal specification for partition 'PG1' and modes: my_base2
Creating port 'test_si[8]' in design 'DW8051_core'.
Creating port 'test_so[8]' in design 'DW8051_core'.
Accepted dft signal specification for partition 'PG1' and modes: my_base2
Accepted dft signal specification for partition 'PG1' and modes: my_base2
Creating port 'test_si[9]' in design 'DW8051_core'.
Creating port 'test_so[9]' in design 'DW8051_core'.
Accepted dft signal specification for partition 'PG1' and modes: my_base2
Accepted dft signal specification for partition 'PG1' and modes: my_base2
Creating port 'test_si[10]' in design 'DW8051_core'.
Creating port 'test_so[10]' in design 'DW8051_core'.
Accepted dft signal specification for partition 'PG1' and modes: my_base2
Accepted dft signal specification for partition 'PG1' and modes: my_base2
Creating port 'test_si[11]' in design 'DW8051_core'.
Creating port 'test_so[11]' in design 'DW8051_core'.
Accepted dft signal specification for partition 'PG1' and modes: my_base2
Accepted dft signal specification for partition 'PG1' and modes: my_base2
Creating port 'test_si[12]' in design 'DW8051_core'.
Creating port 'test_so[12]' in design 'DW8051_core'.
Accepted dft signal specification for partition 'PG1' and modes: my_base2
Accepted dft signal specification for partition 'PG1' and modes: my_base2
# Configure the basic scan modes
set_scan_configuration -chain_count 8 -test_mode my_base2
Accepted scan configuration in partition 'PG1' for modes: my_base2
1
# Configure DFTMAX compression
set_scan_compression_configuration -base_mode my_base2 -chain_count 256 -test_mode scan_compression2 -xtolerance high
Accepted scan compression specification for design 'DW8051_core' in partition 'PG1'.
1
#set_scan_configuration -chain_count 1 -clock_mixing mix_clocks #  -test_mode burn_in
## Give a chain spec to be applied in my_base2
## Give a chain spec to be applied in my_base2
## This will also define the scan ports for scan_compression2
set_scan_path chain5 -view spec -scan_data_in test_si[5] -scan_data_out test_so[5] -test_mode my_base2
Accepted scan path specification for partition 'PG1' and mode 'my_base2'
1
set_scan_path chain6 -view spec -scan_data_in test_si[6] -scan_data_out test_so[6] -test_mode my_base2
Accepted scan path specification for partition 'PG1' and mode 'my_base2'
1
set_scan_path chain7 -view spec -scan_data_in test_si[7] -scan_data_out test_so[7] -test_mode my_base2
Accepted scan path specification for partition 'PG1' and mode 'my_base2'
1
set_scan_path chain8 -view spec -scan_data_in test_si[8] -scan_data_out test_so[8] -test_mode my_base2
Accepted scan path specification for partition 'PG1' and mode 'my_base2'
1
set_scan_path chain9 -view spec -scan_data_in test_si[9] -scan_data_out test_so[9] -test_mode my_base2
Accepted scan path specification for partition 'PG1' and mode 'my_base2'
1
set_scan_path chain10 -view spec -scan_data_in test_si[10] -scan_data_out test_so[10] -test_mode my_base2
Accepted scan path specification for partition 'PG1' and mode 'my_base2'
1
set_scan_path chain11 -view spec -scan_data_in test_si[11] -scan_data_out test_so[11] -test_mode my_base2
Accepted scan path specification for partition 'PG1' and mode 'my_base2'
1
set_scan_path chain12 -view spec -scan_data_in test_si[12] -scan_data_out test_so[12] -test_mode my_base2
Accepted scan path specification for partition 'PG1' and mode 'my_base2'
1
### Give a chain spec to be applied in burn_in
#set_scan_path chain4 -view spec -scan_data_in test_si[13] #  -scan_data_out test_so[13] -test_mode burn_in
## Create test protocol
create_test_protocol
In mode: all_dft...

Information: Starting test protocol creation. (TEST-219)
  ...reading user specified clock signals...
Information: Identified system/test clock port clk (45.0,55.0). (TEST-265)
  ...reading user specified asynchronous signals...
Information: Identified active low asynchronous control port rst_in_n. (TEST-266)
Warning: The output strobe for the mode is '40.000000'.
         The output strobe inferred from the waveform table '_default_WFT_' is -1.000000.
The output strobe will be updated

1

dft_drc 没有问题

preview_dft

Warning: The following synthetic libraries should be added to

the list of link libraries:

'dw_foundation.sldb'. (UISN-26)
Warning: Design 'DW8051_core' contains 2 high-fanout nets. A fanout number of 1000 will be used for delay calculations involving these nets. (TIM-134)
  Information: Using test design rule information from previous dft_drc run.
Architecting Scan Compression structures
  Architecting Scan Chains
  Information: CODEC parameters of partition PG0 are being applied to the current partiton.
  Information: CODEC parameters of partition PG0 are being applied to the current partiton.
Architecting scan compression mode scan_compression1 with base mode my_base1 and partition PG0
Warning: The compressor generated might have lower diagnostics precision. (TEST-1603)
Architecting Load Decompressor (version 5.8)
  Number of inputs/chains/internal modes = 5/44/4
Architecting Unload compressor (version 5.8)
  Number of outputs/chains = 5/44
  Information: Compressor will have 100% x-tolerance
Architecting scan compression mode scan_compression1 with base mode Internal_scan and partition PG1
Error: Cannot architect compressor with 0 inputs and 0 outputs. (TEST-1100)
Info: Base mode Internal_scan has 0 chains
Architecting scan compression mode scan_compression2 with base mode Internal_scan and partition PG0
Architecting scan compression mode scan_compression2 with base mode my_base2 and partition PG1
0
dc_shell> s
发表于 2018-8-30 17:25:00 | 显示全部楼层
回复 9# YouHKH


   我试了一下,确实会发生错误,然后更改了一下,在PG0和PG1都定义所有test mode后preview就正常了,由于我的代码无法考出,给出下面的流程代码



  1. read_ddc ./design_test_ready.ddc
  2. current_design block
  3. set_dft_configuration -scan_compression enable
  4. define_test_mode my_scan_comp -usage scan_compression
  5. define_test_mode test_mode1 -usage scan
  6. define_test_mode test_mode2 -usage scan
  7. define_dft_partition partition1 -include [list inst1 inst2]
  8. define_dft_partition partition2 -include [list inst3 inst4]
  9. current_dft_partition part1
  10. set_scan_configuration -chain_count 4 -test_mode test_mode1
  11. set_scan_configuration -chain_count 8 -test_mode test_mode2
  12. set_scan_compression_configuration -location inst1 \
  13.   -test_mode my_scan_comp -base_mode test_mode1
  14. current_dft_partition part2
  15. set_scan_configuration -chain_count 8 -test_mode test_mode1
  16. set_scan_configuration -chain_count 10 -test_mode test_mode2
  17. set_scan_compression_configuration -location inst3 \
  18.   -test_mode my_scan_comp -base_mode test_mode1
  19. current_dft_partition default_partition
  20. set_scan_configuration -chain_count 2 -test_mode test_mode1
  21. set_scan_configuration -chain_count 4 -test_mode test_mode2
  22. set_scan_compression_configuration -location  inst5 \
  23.   -test_mode my_scan_comp -base_mode test_mode1
  24. create_test_protocol
  25. report_dft_partition
  26. preview_dft -show all
  27. insert_dft
  28. dft_drc
  29. write_scan_def -output ./design.scandef
  30. write -f ddc -hierarchy -output ./scan_inserted_design.ddc
  31. write_test_protocol -output scan.spf -test_mode test_mode1
  32. write_test_protocol -output ascan.spf -test_mode my_scan_comp


复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条


小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-11-22 13:59 , Processed in 0.023248 second(s), 7 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表