hsyoo125
Newbie level 3
Hi, I am trying to make a test protocol with DC.
This is the script.
set_scan_configuration -style multiplexed_flip_flop \
-chain_count 13 \
-clock_mixing mix_clocks \
-add_lockup true \
-internal_clocks multi \
-replace false \
-test_mode all
set_dft_drc_configuration -clock_gating_init_cycles 1
set_dft_drc_configuration -internal_pins enable
set_dft_insertion_configuration -preserve_design_name true
set_dft_insertion_configuration -synthesis_optimization none
set test_scan_enable_port_naming_style i_SCAN_EN%s
set_dft_signal -view existing_dft -type TestMode -test_mode all -active 1 -hookup_pin [get_pins -h U_dont_scan_tmode/Y]
set_dft_signal -view spec -type TestMode -test_mode all -active 1 -hookup_pin [get_pins -h U_dont_scan_tmode/Y]
set_dft_signal -view existing_dft -type ScanClock -port PA0[2] -test_mode all -timing {45 50} -hookup_pin [get_pins -h U_dont_scan_sclk1/Y]
set_dft_signal -view existing_dft -type ScanClock -port PA0[1] -test_mode all -timing {45 50} -hookup_pin [get_pins -h U_dont_scan_sclk2/Y]
set_dft_signal -view existing_dft -type ScanClock -port PA0[0] -test_mode all -timing {45 50} -hookup_pin [get_pins -h U_dont_scan_sclk3/Y]
set_dft_signal -view existing_dft -type Reset -port PA1[14] -test_mode all -active 0 -hookup_pin [get_pins -h U_dont_scan_nrst/Y]
set_dft_signal -view existing_dft -type ScanEnable -port PA1[15] -test_mode all -active 1 -hookup_pin [get_pins -h U_dont_scan_se/Y]
set_dft_signal -view spec -type ScanEnable -port PA1[15] -test_mode all -active 1 -hookup_pin [get_pins -h U_dont_scan_se/Y]
set_dft_signal -view existing_dft -type Constant -port PnRESET -test_mode all -active 1
set_dft_signal -view existing_dft -type Constant -port PMODE -test_mode all -active 1
set_dft_signal -view existing_dft -type ScanDataIn -port PA0[3] -test_mode all -hookup_pin [get_pins -h pPA003/Y]
...
set_dft_signal -view spec -type ScanDataIn -port PA0[3] -test_mode all -hookup_pin [get_pins -h pPA003/Y]
...
set_dft_signal -view existing_dft -type ScanDataOut -port PA1[0] -test_mode all -hookup_pin [get_pins -h pPA100/A]
...
set_dft_signal -view spec -type ScanDataOut -port PA1[0] -test_mode all -hookup_pin [get_pins -h pPA100/A]
...
set_dft_signal -view existing_dft -type TestMode -port PA1[13] -test_mode all -hookup_pin [get_pins -h U_dont_scan_comp/Y]
set_dft_signal -view spec -type TestMode -port PA1[13] -test_mode all -hookup_pin [get_pins -h U_dont_scan_comp/Y]
define_test_mode Internal_scan -usage scan \
-encoding {PA1[13] 0}
define_test_mode ScanCompression_mode -usage scan_compression \
-encoding {PA1[13] 1}
set_dft_configuration -fix_bus disable \
-observe_points enable \
-control_points enable \
-scan_compression enable
set_scan_compression_configuration -integration true \
-xtolerance high \
-max_length 300
set_scan_compression_configuration -base_mode Internal_scan \
-test_mode ScanCompression_mode
current_test_mode Internal_scan
create_test_protocol
As you can see, three scan clocks are used.
(This is the first time for me to use multiple scan clocks.)
PAx ports are bidirectional ports.
The create_test_protocol generates this message.
Information: Generating Multi-clock protocol. The default value of '-capture_procedure' has changed to 'multi_clock'.
In mode: all_dft...
Information: Starting test protocol creation. (TEST-219)
...reading user specified clock signals...
Information: Identified system/test clock port PA0[2] (45.0,50.0). (TEST-265)
Information: Identified system/test clock port PA0[1] (45.0,50.0). (TEST-265)
Information: Identified system/test clock port PA0[0] (45.0,50.0). (TEST-265)
...reading user specified asynchronous signals...
Information: Identified active low asynchronous control port PA1[14]. (TEST-266)
Warning: The bidirectional port strobe for the mode is '40.000000'.
The bidirectional port strobe inferred from the waveform table '_default_WFT_' is -1.000000.
The bidirectional port strobe will be updated
After 'create_protocol' command, the 'dft_drc' command doesn't work.
Information: Starting test design rule checking. (TEST-222)
Loading test protocol
...basic checks...
...basic sequential cell checks...
...checking for scan equivalents...
...checking vector rules...
...checking pre-dft rules...
Error: Could not perform design rule checking. (TEST-1311)
0
I can't find any reason why DC can't perform dft_drc command.
I think it is related with the message "the bidirectional port strobe inferred from _default_WFT_ is -1.", but can't understand why the tool says like that.
Please help me. It is really serious for me...
Thank you, in advance.
This is the script.
set_scan_configuration -style multiplexed_flip_flop \
-chain_count 13 \
-clock_mixing mix_clocks \
-add_lockup true \
-internal_clocks multi \
-replace false \
-test_mode all
set_dft_drc_configuration -clock_gating_init_cycles 1
set_dft_drc_configuration -internal_pins enable
set_dft_insertion_configuration -preserve_design_name true
set_dft_insertion_configuration -synthesis_optimization none
set test_scan_enable_port_naming_style i_SCAN_EN%s
set_dft_signal -view existing_dft -type TestMode -test_mode all -active 1 -hookup_pin [get_pins -h U_dont_scan_tmode/Y]
set_dft_signal -view spec -type TestMode -test_mode all -active 1 -hookup_pin [get_pins -h U_dont_scan_tmode/Y]
set_dft_signal -view existing_dft -type ScanClock -port PA0[2] -test_mode all -timing {45 50} -hookup_pin [get_pins -h U_dont_scan_sclk1/Y]
set_dft_signal -view existing_dft -type ScanClock -port PA0[1] -test_mode all -timing {45 50} -hookup_pin [get_pins -h U_dont_scan_sclk2/Y]
set_dft_signal -view existing_dft -type ScanClock -port PA0[0] -test_mode all -timing {45 50} -hookup_pin [get_pins -h U_dont_scan_sclk3/Y]
set_dft_signal -view existing_dft -type Reset -port PA1[14] -test_mode all -active 0 -hookup_pin [get_pins -h U_dont_scan_nrst/Y]
set_dft_signal -view existing_dft -type ScanEnable -port PA1[15] -test_mode all -active 1 -hookup_pin [get_pins -h U_dont_scan_se/Y]
set_dft_signal -view spec -type ScanEnable -port PA1[15] -test_mode all -active 1 -hookup_pin [get_pins -h U_dont_scan_se/Y]
set_dft_signal -view existing_dft -type Constant -port PnRESET -test_mode all -active 1
set_dft_signal -view existing_dft -type Constant -port PMODE -test_mode all -active 1
set_dft_signal -view existing_dft -type ScanDataIn -port PA0[3] -test_mode all -hookup_pin [get_pins -h pPA003/Y]
...
set_dft_signal -view spec -type ScanDataIn -port PA0[3] -test_mode all -hookup_pin [get_pins -h pPA003/Y]
...
set_dft_signal -view existing_dft -type ScanDataOut -port PA1[0] -test_mode all -hookup_pin [get_pins -h pPA100/A]
...
set_dft_signal -view spec -type ScanDataOut -port PA1[0] -test_mode all -hookup_pin [get_pins -h pPA100/A]
...
set_dft_signal -view existing_dft -type TestMode -port PA1[13] -test_mode all -hookup_pin [get_pins -h U_dont_scan_comp/Y]
set_dft_signal -view spec -type TestMode -port PA1[13] -test_mode all -hookup_pin [get_pins -h U_dont_scan_comp/Y]
define_test_mode Internal_scan -usage scan \
-encoding {PA1[13] 0}
define_test_mode ScanCompression_mode -usage scan_compression \
-encoding {PA1[13] 1}
set_dft_configuration -fix_bus disable \
-observe_points enable \
-control_points enable \
-scan_compression enable
set_scan_compression_configuration -integration true \
-xtolerance high \
-max_length 300
set_scan_compression_configuration -base_mode Internal_scan \
-test_mode ScanCompression_mode
current_test_mode Internal_scan
create_test_protocol
As you can see, three scan clocks are used.
(This is the first time for me to use multiple scan clocks.)
PAx ports are bidirectional ports.
The create_test_protocol generates this message.
Information: Generating Multi-clock protocol. The default value of '-capture_procedure' has changed to 'multi_clock'.
In mode: all_dft...
Information: Starting test protocol creation. (TEST-219)
...reading user specified clock signals...
Information: Identified system/test clock port PA0[2] (45.0,50.0). (TEST-265)
Information: Identified system/test clock port PA0[1] (45.0,50.0). (TEST-265)
Information: Identified system/test clock port PA0[0] (45.0,50.0). (TEST-265)
...reading user specified asynchronous signals...
Information: Identified active low asynchronous control port PA1[14]. (TEST-266)
Warning: The bidirectional port strobe for the mode is '40.000000'.
The bidirectional port strobe inferred from the waveform table '_default_WFT_' is -1.000000.
The bidirectional port strobe will be updated
After 'create_protocol' command, the 'dft_drc' command doesn't work.
Information: Starting test design rule checking. (TEST-222)
Loading test protocol
...basic checks...
...basic sequential cell checks...
...checking for scan equivalents...
...checking vector rules...
...checking pre-dft rules...
Error: Could not perform design rule checking. (TEST-1311)
0
I can't find any reason why DC can't perform dft_drc command.
I think it is related with the message "the bidirectional port strobe inferred from _default_WFT_ is -1.", but can't understand why the tool says like that.
Please help me. It is really serious for me...
Thank you, in advance.
Last edited: