30 July 2013
Version 1.1
Organization
MSG Freescale
Project
Async Coverage
Document Title
User Guide
Author
Sandeep Jain
Revision History
Version
Number
1.0
1.1
Date
Description
Author
Initial draft.
Updated for preserving reset-mux
Sandeep Jain
Sandeep Jain
Page 1 of 8
th
30 July 2013
Version 1.1
Table of Contents
i. Reference Documents
Document
Description
Path
Scan-enable
Scan Control Register
Page 2 of 8
th
30 July 2013
1
1.1
Version 1.1
Introduction
Overview
The purpose of this architecture is to provide a robust design that can be used to test stuck-at
coverage of faults on internally generated resets/set logic.
The flow uses alternate control signals rather than a single scan-enable pin to excite the faults on
internally generated resets. This removes any possible glitches arising from reconvergent paths
which are fatal for asynchronous pins.
1.2
Features
2
2.1
Problem Statement
Coverage Loss with Test-mode Gating
In addition to a top-level reset control, a design can have reset logic generated from
combinational decoding of other sequential cells. During scan-mode, if this logic gets random
scan-data, the sink flop can get reset thus corrupting the scan shift data. To avoid this situation,
the combinational logic is gated-off with a static signal (testmode/scanmode) to feed a constant
data during shift as well as capture
Page 3 of 8
th
30 July 2013
Version 1.1
However, using a static signal blocks the observe cone of the combinationl logic, leading to
coverage loss, as seen in Figure 2-1.
2.2
Figure 2-2 Async_SE Generated with a Static Bit and an External Pin SE
The coverage loss on functional reset can be recovered, if the gating logic is enabled
only during shift. During capture, the functional values take control of the flop-reset pin.
The scan-enable signal (denoting the shift or capture phase) is gated with a static-bit, so
that this functionality is enabled only in a specific ATPG mode (when reset coverage is
targeted).
Mode
Mode-1
Mode-2
Details
ATPG without targetting reset faults
ATPG targetting reset faults
Mode-3
Configuration
SCR_bit=1, RESET=1
SCR_bit=1,
RESET=0(capture)
SCR_bit=0, RESET=X
Page 4 of 8
th
30 July 2013
Mode Entry
Load Phase
Version 1.1
Capture
Unload
Reset Pad
Scan Mode
Clock
Scan Enable
SCR Bit
Async-SE
The waveforms in Figure 2-1 shows a window after the clock pulses and before asserting SE,
where all glitches in the combinations logic has settled before the logic is made transparent for
flop reset pin.
2.3
(a)
(b)
The async-SE logic discussed earlier can still create glitches during capture, if there is
any reconvergence on SE pin, as shown in Figure 2-4(a). SE is typically used to control
various pin-muxing and other muxing logic which can get triggered simultaneously, the
moment SE is asserted.
Page 5 of 8
th
30 July 2013
Version 1.1
To avoid this issue, another qualifying signal is added which allows any transition excited
by SE-assertion to settle down, before making the functional-reset cone transparent. In
order to avoid another top-level pin for this functionality, we have reused 1 of the scan-in
pins which are unused during the capture phase.
Mode Entry
Load Phase
Capture
Unload
Reset Pad
Scan Mode
Clock
Scan Enable
Scan-In Pin
SCR Bit
Async-SE
Figure 2-5 Waveforms for Async_SE after adding Another Qualifier Pin
The waveforms in Figure 2-1 shows a 2-stage approach that allows any glitch arising from clockpulsing or SE-assertion to settle down before the logic is made transparent for flop reset pin.
2.4
Page 6 of 8
th
30 July 2013
Version 1.1
Figure 2-6 Reset-Ripples Created due to Same Async-SE controlling Cascaded Resets
Incase the output of a flop driven by async_SE feeds the functional reset cone of another flop,
there can be ripple effect when async-SE is asserted. The 1st flop would get a reset, once asyncSE is asserted. This would make the functional-reset logic of 2nd flop to be re-evaluated and
update the output of 2nd flop (this behavior was not expected though, during pattern generation).
As the ATPG tools work on a static view of the design, these issues are not detectable during
pattern generation. This can lead to simulation failures when actual timing data is applied.
Sometimes the ripple effect is seen to manifest only at silicon, while the glitch was not seen
during timing simulations.
Figure 2-7 Async-SE Split within TCU Based on 1-cold Decoded Testpoints
In order to avoid the ripple-reset scenario, the async-SE logic is split so that a unique
async-SE signal is generated for cascaded reset cases. The async-SE is gated by
testpoints which are 1-cold decoded, so that only 1 of the flops are at 0, while others
are at logic 1.
2.5
There can be cases where we get a glitch on the reset pin even after taking care of the
reconvergence in the SE and Async_SE pins. These glitches can arise due to reconvergence in the
reset-mux itself, if the logic gets broken in combinational gates during synthesis
Page 7 of 8
th
30 July 2013
Version 1.1
Figure 2-8 Reset Mux broken into Combinational Gates Resulting in Glitches
Inorder to avoid these glitches, we need to ensure that the reset mux gets preserved as
a mux and is never broken into AND-OR gates.
It is recommended that the reset muxing is always done using a mux-instantiation code
in the RTL rather than a combinational statement. The synthesis team can add-in rules
to ensure that these muxes are further preserved as mux during the entire Synthesis/BE
cycle.
dft_reset_mux
As the mux is a single library cell, there will not be any glitch inside the mux logic. There
should be no special requirement to use any balanced or glitchless muxes for reset
muxing.
Page 8 of 8