1 DFT Coding Rules
1 DFT Coding Rules
There are more DFT rules in the DFT ruleset for the Design policy.
Most of the DFT rules are extracted from the set of rules used by the Synopsys RTL DRC
tool. Therefore, each DFT rule label in the Leda Checker tool exactly matches the
corresponding rule label prefixed with "TEST" in the RTL DRC tool. If you need more
detailed information on these DFT rules, see the RTL DRC help. Run dc_shell, and at the
prompt type:
% help TEST-rulenumber
For information about differences between the Leda DFT policy and the RTL DRC checker,
see "Using the DFT Policy" .
The Leda DFT rules are grouped into the following rulesets, each of which impose
constraints on different aspects of the applicable language:
In Leda's DFT checks, no delay is taken into account; it is always assumed that the test
clock period is 100 ns and the strobe point occurs at 95 ns (default RTL DRC values). Leda
also assumes that all test clock events occur before this strobe point.
The following RTL DRC commands (used to define the test protocol) are ignored by the
Leda Checker tool, since no signal value propagation is performed.
set_test_hold
set_test_initial
set_test_assume
set_test_isolate
The Checker tool also ignores the scan style. Leda only checks rules that are checkable
using the LSSD (Level Sensitive Scan Design). This may lead to some differences between
the Leda tests and the RTL DRC. In general, Leda's tests are more conservative.
DFT_003
Description This rule checks whether both rising and falling edge clocks exist within the
design.
Policy DFT
Ruleset DATA_CAPTURE
Language VHDL/Verilog
Type Chip-level
Severity Warning
For information on differences between Leda DFT checks and RTL DRC checks, see "Using
the DFT Policy" .
TEST_972
This rule checks if a clock signal drives both the data input and the clock
Description pin of a flip-flop.For this rule to work, you must specify a test clock. For
more information, see "Using the DFT Policy" .
Policy DFT
Ruleset DATA_CAPTURE
Language VHDL/Verilog
Type Chip-level
Severity Error
Example
For information on differences between Leda DFT checks and RTL DRC checks, see "Using
the DFT Policy" .
TEST_973
Example
For information on differences between Leda DFT checks and RTL DRC checks, see "Using
the DFT Policy" .
TEST_974
Message: Latch enabled by a clock feeds latches enabled by the same clock
The rule detects if a latch output enabled by a given clock affects the data
Description
input of latches using the same clock.
Policy DFT
Ruleset DATA_CAPTURE
Language VHDL/Verilog
Type Chip-level
Severity Error
Example
TEST_975
The rule detects if a latch output enabled by a given clock affects the data
Description
input of flip-flops using the trailing edge of the same clock.
Policy DFT
Ruleset DATA_CAPTURE
Language VHDL/Verilog
Type Chip-level
Severity Error
Example
For information on differences between Leda DFT checks and RTL DRC checks, see "Using
the DFT Policy" .
TEST_978
Message: Latch data gates clocks of flipflops. Combination of latch data
and clock signal to clock a flipflop is not allowed
Example
For information on differences between Leda DFT checks and RTL DRC checks, see "Using
the DFT Policy" .
TEST_979
For information on differences between Leda DFT checks and RTL DRC checks, see "Using
the DFT Policy" .
TEST_980
Example
TEST_981
Example
For information on differences between Leda DFT checks and RTL DRC checks, see "Using
the DFT Policy" .
TEST_994
This rule detects if a clock feeds into a clock pin and a asynchronous
Description
control of a given register.
Policy DFT
Ruleset DATA_CAPTURE
Language VHDL/Verilog
Type Chip-level
Severity Error
Example
DFT_006
Description None.
Policy DFT
Ruleset FAULT_COVERAGE
Language VHDL/Verilog
Type Block-level
Severity Error
For information on differences between Leda DFT checks and RTL DRC checks, see "Using
the DFT Policy" .
DFT_008
Description None.
Policy DFT
Ruleset FAULT_COVERAGE
Language VHDL/Verilog
Type Block-level
Severity Error
For information on differences between Leda DFT checks and RTL DRC checks, see "Using
the DFT Policy" .
DFT_009
Message: Register all outputs from the block for improved coverage: %s
For information on differences between Leda DFT checks and RTL DRC checks, see "Using
the DFT Policy" .
TEST_960
For information on differences between Leda DFT checks and RTL DRC checks, see "Using
the DFT Policy" .
TEST_970
This rule checks if a clock interacts with the data input of a flip-flop.For this
Description rule to work, you must specify a test clock. For more information, see
"Using the DFT Policy" .
Policy DFT
Ruleset FAULT_COVERAGE
Language VHDL/Verilog
Type Chip-level
Severity Error
Example
For information on differences between Leda DFT checks and RTL DRC checks, see "Using
the DFT Policy" .
TEST_971
This rule checks if a clock interacts with the data input of a latch.For this
Description rule to work, you must specify a test clock. For more information, see
"Using the DFT Policy" .
Policy DFT
Ruleset FAULT_COVERAGE
Language VHDL/Verilog
Type Chip-level
Severity Error
Example
For information on differences between Leda DFT checks and RTL DRC checks, see "Using
the DFT Policy" .
TEST_976
This rule checks if a latch can be used as a part of a scan chain. If so, a
Description latch having multiple clocks to enable data must be able to capture data
with one clock active and all others off.
Policy DFT
Ruleset FAULT_COVERAGE
Language VHDL/Verilog
Type Chip-level
Severity Error
Example
TEST_977
This rule checks if a flip-flop can be used as a part of a scan chain. If so, a
Description flip-flop having multiple clocks to clock data must be able to capture data
with one clock active and all others off.
Policy DFT
Ruleset FAULT_COVERAGE
Language VHDL/Verilog
Type Chip-level
Severity Error
Example
Informational Ruleset
The following rules are from the informational ruleset:
DFT_017
Description None.
Policy DFT
Ruleset INFORMATIONAL
Language VHDL/Verilog
Type Block-level
Severity Warning
For information on differences between Leda DFT checks and RTL DRC checks, see "Using
the DFT Policy" .
DFT_019
Description None.
Policy DFT
Ruleset INFORMATIONAL
Language VHDL/Verilog
Type Block-level
Severity Note
For information on differences between Leda DFT checks and RTL DRC checks, see "Using
the DFT Policy" .
DFT_021
For information on differences between Leda DFT checks and RTL DRC checks, see "Using
the DFT Policy" .
DFT_022
This rule fires if all the alternatives of the case statement are not covered
Description
and if there is no default clause.
Policy DFT
Ruleset INFORMATIONAL
Language Verilog
Type Block-level
Severity Error
Example
For information on differences between Leda DFT checks and RTL DRC checks, see "Using
the DFT Policy" .
DFT_002
This rule verifies that all clocks are controllable from the top level of the
design and not internally generated via a sequential block.Rationale:
Description
internally generated clocks may not be controllable from the boundary of
the chip. This reduces test coverage.
Policy DFT
Ruleset SCAN_INSERTION
Language VHDL/Verilog
Type Chip-level
Severity Error
For information on differences between Leda DFT checks and RTL DRC checks, see "Using
the DFT Policy" .
TEST_953
Message: Flipflops with clocks tied to a signal that is not driven by Test
Clock. Flipflops' clock signal is not reached by any Test Clock
This rule checks whether the flip-flop clock is uncontrollable. That case
occurs when the test clock does not reach any signal which drives the clock
Description
input pins of flip-flops.For this rule to work, you must specify a test clock.
For more information, see "Using the DFT Policy" .
Policy DFT
Ruleset SCAN_INSERTION
Language VHDL/Verilog
Type Chip-level
Severity Error
Example
For information on differences between Leda DFT checks and RTL DRC checks, see "Using
the DFT Policy" .
TEST_954
Message: Latches with clocks tied to a signal that is not driven by Test
Clock. Latch clock signal is not reached by any Test Clock
This rule checks whether the latch clock is uncontrollable. That case occurs
when the test clock does not reach any signal which drives the clock input
Description
pins of latches.For this rule to work, you must specify a test clock. For more
information, see "Using the DFT Policy" .
Policy DFT
Ruleset SCAN_INSERTION
Language VHDL/Verilog
Type Chip-level
Severity Error
Example
For information on differences between Leda DFT checks and RTL DRC checks, see "Using
the DFT Policy" .
TEST_963
This rule detects if the test clock reaches flip-flops but the flip-flop clocks
Description
cannot change state as result of test clock toggling.
Policy DFT
Ruleset SCAN_INSERTION
Language VHDL/Verilog
Type Chip-level
Severity Error
Example
For information on differences between Leda DFT checks and RTL DRC checks, see "Using
the DFT Policy" .
TEST_964
This rule detects if the test clock reaches latches but the latch clocks
Description
cannot change state as result of test clock toggling.
Policy DFT
Ruleset SCAN_INSERTION
Language VHDL/Verilog
Type Chip-level
Severity Error
Example
For information on differences between Leda DFT checks and RTL DRC checks, see "Using
the DFT Policy" .
TEST_965
Message: Latches not holding data in off-state. Test Clock reaches latch but
does not hold data in them at beginning of cycle
This rule detects if the test clock does not hold data at the beginning of the
Description
test clock cycle.
Policy DFT
Ruleset SCAN_INSERTION
Language VHDL/Verilog
Type Chip-level
Severity Error
Example
TEST_966
Example
For information on differences between Leda DFT checks and RTL DRC checks, see "Using
the DFT Policy" .
TEST_967
Example
For information on differences between Leda DFT checks and RTL DRC checks, see "Using
the DFT Policy" .
TEST_968
This rule detects if the test asynch reaches flip-flops but cannot disable
Description
their async controls.
Policy DFT
Ruleset SCAN_INSERTION
Language VHDL/Verilog
Type Chip-level
Severity Error
Example
TEST_969
This rule detects if the Test_async reaches latches but cannot disable their
Description
async controls.
Policy DFT
Ruleset SCAN_INSERTION
Language VHDL/Verilog
Type Chip-level
Severity Error
Example
For information on differences between Leda DFT checks and RTL DRC checks, see "Using
the DFT Policy" .