Scan Insertion
Scan Insertion
Scan Element . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Scan Chain Family. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Scan Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Unwrapped Cores Versus Wrapped Cores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Pre-Existing Scan Segments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Pre-Existing Scan Chains . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
The cell library file describes library cells to be used during RTL generation or test logic insertion, and also for test
and simulation.
# SETUP
# Set the context
>set_context dft -scan
# Read the verilog
>read_verilog ../design/cpu.v
# Read the library
>read_cell_library ../library/adk.tcelllib
>read_cell_library ../library/ram.lib
>set_current_design cpu
# Add clocks in the design
>add_clock 0 clk1
>add_clock 0 clk2
>add_clock 0 clk3
>add_clock 0 clk4
>add_clock 0 ramclk
//RUN DRC
>set_system_mode analysis
# Specify constraints to stitch up scan chains
>set_scan_insertion_options -chain_count 100
>analyze_scan_chains
>report_scan_chains
>insert_test_logic -write_in_tsdb On
>report_scan_chains
With Tessent Scan, you can analyze the design, allocate new scan chains based on design and user constraints, and
introspect the scan chain distribution and balancing before performing the actual scan insertion on the design.
set_cell_model_mapping
set_test_logic.
Scan Insertion:
2).what are the basic things that needs to taken care for Scan Insertion?
3).what are the DRC Violations that u have faced during Scan Insertion and how did you fix
those ?
4).what is test point Insertion? Can you tell and explain one TestPoint Insertion scenario?
5).Some Questions on design complexity like what was the gate and flops count of yours recent
project?
13).Take three scan flop and stitch it and explain the scan operation?
14).How you will decide the number of scan chains for your core?
19).consider two flop of .2sec and 0.3 sec latency how do you connect the flops in scan chain?
23).what all information you will ask from designer for smooth scan insertion?
25).Draw and explain the Structure of the compressor and decompressor circuit?
29).what all things you need to take care while/before inserting on chip clock controller circuit?
30).In which path we insert the lockkup latch, data or clock path?
31).How you will resolve the combinational feedback loop issue in design if present?
32).why we don't connect the capture flop's clock to the lockup latch?
35).why we need scan? or why we convert normal D flip flops to scan flops in design?
36).what work around you can do if you don't have scan equivalent for some flops in design
while scan insertion?
ATPG:
37).Did you worked on Coverage Analysis? How did you improved your Coverage?
40).what are the input files required for scan insertion and ATPG and what all output files we get
after completing scan insertion and ATPG?
42).How many faults sites are there for a 2 input AND Gate?
43).what is the difference between transition and path delay fault model?
47).For a given fault coverage the number of patterns for TFT is more than the patterns
generated for Stuck-at-faults. Why so?
52).which one is widely used in industry? which one is better LOS or LOC?
56).Have you ever seen condition statements in spf and how they work?
57).If we have cover all transition faults along a path(critical) already then should we check the
path delay also for that path?
60).what are parallel patterns how they work explain with the help of a scan chain?
61).what are the DRCs that can result in low test coverage?
63).How the test data valume and tester time reduction happens with compression?
67).How the IDDQ test vectors is different from stuck at test vectors?
Simulation:
69).How you will timing simulation debugging for uncompessed and compressed chains?
73).what violation will occur if step and hold time not maintain properly?
77).if the clock skew is more than half clock cycle then how you will avoid the hold violation?
Miscellaneous:
78).why we do MBIST Insertion and verification? Which tool you are using?
81).How you do extest using P1500 and tell what happens in its wrapper cell?
84).what is neighborhood and coupling faults how these faults are different from each other?
90).what is JTAG? why it is used? How I/O testing happens with JTAG?
93).For an INOUT port how many boundary scan cells you require?
94).Draw and explain the TAP state machine with tms values?
98).How the 'mode' signal(for boundary scan cell) gets generated in JTAG?
SDC ?
SDC stands for Synopsys Design Constraints as it was a format that was pioneered by
Synopsys for specifying timing requirements for the synthesis tool “design compiler “ and
later extended to its own and other industrial tools as well in order to have consistency.
Purpose of SDC ?
Primarily when we talk about timing in most cases its a simple question of answering what is
the minimum and maximum arrival time permitted to a data with respect to a trigger
(clock,reset).
SDCs in particular , are used to specify this timing intent for a design that when validated
against a timing tool provide the user with paths/sections of design that do not comply or
are failing.
Primary purpose of SDC is to provide common format of timing validation model. However,
often SDCs are used to exploit the timing information in order to perform power and area
optimizations.
Synthesis, placement and routing are the best example of this use case. Once a timing is
met at a node , then recovery of power and area can be initiated at that node provided
timing remains met as per SDC intent. A good analogy would be comparing timing intent as
your room temperature and your AC, a synthesis tool like DC or Genus. Once the desired
temperature is met , you can reduce your power consumption by simply stopping the AC for
some time.
A secondary use of SDC also happens to be at DFT (design for testing) and DRC checks like
IR drop and EM. Basically they use the timing intent from the SDC to import the paths,
clocks and model switching/transition estimates. This is also one of the reasons that DFT
often asks you to put multicycle paths instead of false paths as not only optimization but
DFT coverage is also dependent on the SDC specification.
So the industry moved to a design for test (DFT) approach where the design was
modified to make it easier to test. The approach that ended up dominating IC test is
called structural, or “scan,” test because it involves scanning test patterns into internal
circuits within the device under test (DUT). The design’s flip-flops are modified to allow
them to function as stimulus and observation points, or “scan cells” during test, while
performing their intended functional role during normal operation.
Lock-up Latches play an important role in fixing timing problems especially for hold timing
closure. A lock-up latch is a transparent latch used to avoid large clock skew and mitigate
the problem in closing hold timing due to large uncommon clock path. Lock-up latches are
used in between the two scan flops having large hold failure probability due to uncommon
clock path so that there is no issue in closing timing in a scan chain across domains in scan-
shift mode.
From timing perspective lock-up latches can be the best solution to avoid large uncommon
path between the clocks of two flops. But Lock-up latches are not always help; they can be
the cause for congestion issue after scan stitching in designs containing both EDT and
LBIST.
Fig.2 Lock-up Latch connecting far apart flops within same clock domain
Issues due to Lock-up Latch insertion:
Lock-up latches on the scan path act as “break points” across which flops cannot be
reordered.
Due to lock-up latch on scan path, tool is not able to improve the chain length by reordering
in an efficient manner.
Whenever there is a lock-up latch in the chain, the scan chain is broken into two smaller
segments. These segments in turn have their own start-end points which are fixed and
cannot be reordered. This results in longer scan chain wire length.
Poor Scan reordering substantially increases the length of scan chain and hence the
congestion which unnecessary increases the capacitance of scan flops outputs i.e.more
loading of Q pin which leads to more chip power dissipation.
All these issues give rise to one major issue that is Congestion.
Role of Lock-up Latches in Congestion:
Lock-up latches inserted on scan paths limit the reordering capability, so the chains which
are supposed to get short in terms of scan chain wire length get restricted due to these
“break points”. Lock-up latches between two flops which are far apart within the same scan
chain and same clock domain breaks the chain in two smaller segments. These break points
don’t allow scan reordering and efficient chain length improvement, hence the long wire
length and criss-crossing of chains results in congestion.
When there is stitching of flops with memories, tool inserts the lock-up latches in such a
way that the chain gets stitched in haphazard manner with long scan chain wire length
causing congestion issue in the design.
When there is a lock-up latch just before the last element in the chain, it breaks the chain in
two and the information for last flop doesn’t get dumped in Scan def. When scan def is read
in EDA tool just because lack of information for the last flop, reordering of scan chains
doesn’t happen correctly and Lock-up latch sits anywhere in the design.
In LBIST we keep many but small scan chains normally with scan chain length in the range
of ~50.This is to reduce the runtime of LBIST on-field run. As these many small chains are
spread apart, it may happen that these chains get stitched with flops from different clock
domains resulting in a large number of lock-up latches getting inserted. These chains are
connected to the LBIST controller whose placement is influenced by the connections it
makes to these chains. Due to lock-up latch insertion, reordering of scan chains doesn’t
happen and the start and stop elements of a chain are not allowed to sit together resulting
in sub-optimal placement of LBIST controller which in turn aggravates the design
Congestion.
Use max chain limit for scan stitching in such a way that the need of stitching any extra flop
from other clock domain to ensure the max limit requirement should not get raised.
For the reason stated above, designs using multibit flops should ensure not to use an odd
number of maximum chain length limit.
Connect scan chains with physical information so that the flops sitting far apart to each
other should not get stitched.
After using above mentioned approaches there will be no inter and intra Criss-
crossing of scan chains
Fig4.: No Criss-crossing due to absence of lock-up latches “break-points”
Conclusion:
1. Lock-up latches can be the savior in hold timing closure, but can play pivotal role in
congestion issues.
2. Congestion issue can be reduced by using physical aware scan stitching techniques and
redefining the max chain limit for scan chains.
Clock skew is a phenomenon in synchronous circuits in which the clock signal (sent from the clock
circuit or source or clock definition point) arrives at different components at different times.
due to
wire-interconnect length
temperature variations
capacitive coupling
material imperfections and
differences in input capacitance on the clock inputs
Negative skew
positive skew
Positive skew occurs when the transmitting register receives the clock tick earlier than the receiving
register.
Negative skew is occurs when the receiving register gets the clock tick earlier than the sending reg.
Zero clock skew refers to the arrival of the clock tick simultaneously at transmitting and receiving reg
When the clock travels slower than the path form the one reg to another allowing data to penetrate
two registers in the same clock tick, or maybe destroying the integrity of the latched data. this is
called hold violation because the previous data is not held long enough at the destination flop to be
properly clocked though.
if the destination flop receives the clock tick earlier than the source flop- the data signal has that
much less time to reach the destination flop before the next clock tick, if it is fails to do so,a setup
violation occurs, so called new data was not set up and stable before the next clock tick arrived.
Useful Skew
clock skew can also benefit a circuit by decreasing the clock period locally at which the circuit will
operate correctly, it means skew add more margin to meet setup. that is called useful skew
for each source register and destination register connected by a path. so, following setup and hold
inequalities must be obeyed.
for setup,
T(clock period) > = T(reg) + Path dealy(max) + J(jitter) + S(setup time) - Skew
for Hold,
Skew <= T(reg) + Path delay(min) - J(jitter) - H(hold time)
Positive skews are good for fixing setup violation, but can cause hold violation
Negative skew can help hold violation, but can cause setup violation
Figure :1
Figure 1 show a situation where clock skew can benefit a synchronous circuit
In the zero skew circuit, a long path goes form FF1 to FF2, and short path, from FF2 to FF3,
here, Path FF2 -> FF3 path is close to having a hold violation: if small amount of extra clock delay
occurs at FF3, this could destroy the data at D input of FF3 before clock arrives.
Figure 2
Figure 2 shows how the problem can be fixed
for clock skew.
A small amount of extra delay is added before FF2's clock input. with the care the extra delay relaxes
the setup constraint for the FF1->FF2
here, for FF1->FF2 operates less than what required for zero skew.
so, some intentional skew helps in proper functioning of circuit,
NOTE: in above example, circuit is closer to malfunctioning- a small amount of positive clock skew for
the FF2-> FF3 pair will cause hold violation, whereas the intentional skew(useful skew) circuit helps to
meet the setup and hold constraints
To enable a scan test for a chip design, additional test logic must be inserted; this is
called “scan insertion”.
Scan insertion consists of two steps:
1. Replace plain memory cells like flipflops or latches by scan cells.
2. Connect these together forming one or more chains.
Scan is the first step for inserting DFT(design for testability) architecture in any chip.
Thus scan insertion improves the controllability and observability of the
sequentially flops.
Majorly, in DFT, we avoid mixing different clocks in the same chain, but if there is a
constraint to I/O ports we have to stitch scan flops driven by two different clocks in one
chain