Professional Documents
Culture Documents
GUI interface
Saved circuit states
View test patterns
Simulate and justify values
SimVision
Debugging design violations
Scan chains
Contention
Inactive logic
1
Encounter Test
Using the Schematic View for Debug
2
Debugging scan chains
Encounter Test traces scan chains both forwards from scan-in and
backwards from scan-out.
A broken scan chain normally produces two error messages
WARNING (TSV-384): Controllable scan chain beginning at {objectName} is not a
observable scan chain.
WARNING (TSV-385): Observable scan chain ending at {objectName} is not a
controllable scan chain.
3
Debugging scan chains
4
Circuit Tracing
GUI Tracing
5
First steps
6
Verify Test Structures Message Summary
7
Verify Test Structures Specific Message List
8
Instance will be displayed
The instance displayed is normally the last correct instance before the
break in the scan chain.
If the instance is top-level pin then no flops were correctly traced
If it is a flop, then this is the last working flop.
You can implode the instance to move up the hierarchy to the library
level
Left click to select the block
Click Implode
This may need to be done more than once until the library level cell is
found. The instance cell type and instance name are shown in the right
hand Information Window
9
Typical values for a correct flop
The picture on the next slide shows typical values for a correctly
functioning scan flops
The clock pin will show a defined off-state
(0 or 1 is acceptable, X is an error)
10
11
Possible errors on the initial instance
12
scan-enable at incorrect state
13
Scan-in at x state (lower case), unconnected
14
Finding the faulty instance
As described earlier the analysis of the TSV message will show the last
correct instance. You need to trace backwards from the scan-in pin to
find the cause of the fault.
Left click to select the scan-in pin
15
Circuit Tracing
GUI Tracing
The way the blocks are displayed
when tracing forward and
backward in the Circuit Display
can be customized
In the Circuit Display -> Options -
> Circuit Tracing
The tools is setup to only trace 1
level of hierarchy and stop at
latches/flip flops. These tracing
options can be modified in this
window.
The upper portion of the window
sets how many levels to trace
through and when to stop tracing.
Default is to trace only 1
block and stop at any
flop/latches
16
Analysis of the faulty instance
Implode to the library level
Place the cursor over each of the input pins and check them:
Clock pins
Does it have a defined off-state 0 or 1, an X indicates a corrupt
clock
Is the clock defined as EC (possibly SC as well)
OR
Is it defined as an SC type clock with the correct off-state
17
Correct scan clock
18
Correct asynchronous reset
19
Correct scan-enable
20
Detailed Graphical Analysis of Broken Scan Chains
The following slides show some examples of possible errors and how
they would appear in the GUI.
No scan clock
No reset clock
Invalid assign file flag
Wrong clock polarity
21
No shift clock on the flop
The logic state of the CK pin is X, no clock is defined
22
Uncontrolled reset
The reset pin is at a logic X state so the flop will be corrupted.
23
Incorrect clock type
The clock is of type SC (not EC) so will not be clocked during the
shift sequence.
24
Wrong reset clock polarity
The asynchronous reset clock has an off-state of 0 so the flop will be
reset when the clocks are held off during shift.
25
Incorrect clock type on asynchronous reset
The reset has an EC type clock so will be pulsed during shift. This will
corrupt the scan chain operation. Resets and sets should be SC.
26
Checking the detailed shift operation
If the previous checks have not identified a problem look at the simulation
of the shift sequence.
Follow menus
View > Test Data > Sequence Definition Data
Expand click blue boxes to find Define Sequence Scan_Sequence
27
Viewing the shift sequences
28
Correct scan clock
A clean pulse p is seen on the clock pin
29
Corrupt scan clock
The clock shows a * state, this indicates an unknown pulse state.
30
Summary
This presentation gives an outline of debugging scan chains in an edge-
triggered mux-scan design
Different approaches may be used for LSSD
This shows working at the library level, you can alternatively work at the
primitive level (this helps find problems in the cell library)
Sometimes tracing forwards can be useful, use the TSV-384 messages.
No single method is completely guaranteed to work in every case
Try other approaches
31