Final Exam Review Homework Notes • Pay attention to significant digits • Should not have more significant digits in answer than in problem • Example: HW1 #1.1 • 90% yield (1 significant digit), 80% fault coverage (1 significant digit), DPM = 20,000 or maybe 21,000, not 20,851.638! • Provide answers, not data dumps • Answers in HW3 problems 1 and 2 were far longer than necessary, correct, but unnecessary • Example: • Question: Explain how SCOAP metrics are related to combinational and sequential testability. • Key part of answer: Combinational SCOAP is roughly related to the number of necessary assignments for the test, and sequential scope is related to the number of time frames to sensitize and propagate the fault. A data dump on all SCOAP detail is not necessary. Homework Notes • Pay attention to what question is asked • Example: HW3 #3 • Question: What is the drawback of time-domain expansion for sequential ATPG of deeply sequential circuits? • The question is not asking about the difficulty of testing deeply sequential circuits (that is hard), or whether they are acyclic or cyclic, or have a reset state, but of using time-frame expansion for sequential test. • Obvious issues: 1) large numbers of time frames and large amounts of memory are required; 2) large state space to search; 3) large number of inputs (inputs in each time frame); 4) need to avoid fault site when sensitizing and propagating. • Many missed the issue of the size of the circuit representation. Remember my example of a testing a SA0 on the MSB of a 32bit counter. Homework Notes • Problem 1.11: How many mandatory and optional pins are required for IEEE 1500? • 8 mandatory – WSI, WSO, WRCK, WRSTN, SelectWIR, CaptureWR, ShiftWR • Optional – TransferDR, AUXCKn, WPI, WPC, WPO • It is IEEE 1149.1 that has 4 required pins – TCK, TMS, TDI, TDO, and optional TRST* Homework Notes • Question 2.18(c): How many errors can be detected by the X-compactor? • Solution: Theorem 2.2 • Errors from 1, 2, or odd # of scan chains at the same scan-out cycle are guaranteed to produce errors if every row of the matrix is non-zero, distinct and contains an odd number of 1s. • True for this matrix • Total errors = C(8,1)+C(8,2)+C(8,3)+C(8,5)+C(8,7) = 156 • Looking at columns in matrix gets 8x3 = 24, but ignores combinations • At most 7 faulty scan chains can be detected in one cycle • Over multiple cycles, an infinite number of faults can be detected Final Exam 2013 • More up-to-date on coverage than practice exams Question 1 • In a regular SOC, a TAM is used to deliver test patterns and collect test results from the cores. Suppose you have a TAM that has 10 data lines, and all cores have MISRs so that test results do not have to be read while the test patterns are delivered. We will ignore the time to read back the MISRs. Consider an SOC with 4 cores. Core 1 has test patterns that can be delivered on 3 lines in 10000 cycles with 400 mW power dissipation, 6 lines in 5000 cycles and 750 mW, or 10 lines in 3000 cycles and 1000 mW. Core 2 has test patterns that can be delivered on 3 lines in 20000 cycles and 300 mW, 4 lines in 15000 cycles and 400 mW or 5 lines in 12000 cycles and 500 mW. Cores 3 and 4 each have test patterns that can be delivered on 2 lines in 20000 cycles and 300 mW or 4 lines in 10000 cycles and 600 mW. Question 1(a) • (10 pts) Draw the shortest test schedule you can find. What is the maximum power dissipation during this schedule? • Solution 1: Test core 1 with 6 lines in 5k cycles, then core 2 with 5 lines in 12k cycles, so 17k cycles total. At the same time test core 3 and core 4 with 2 lines in 20k cycles, so the total time is 20k cycles. So using initially 9 lines for 5k cycles, then 9 lines for 12k cycles, then 4 lines for 3k cycles. This uses a peak power of 750mW + 300mW + 300mW = 1350mW, which drops to 500mW + 300mW + 300mW = 1100mW. • Solution 2: Test core 1 with 3 lines in 10k cycles, core 2 with 3 lines in 20k cycles, core 3 and 4 with 2 lines each and 20k cycles. So total time is 20k cycles, with peak power of 400mW+300mW+300mW+300mW = 1600mW. • Note that we are assuming that you cannot vary the number of TAM wires used by a core during the test, since not enough information has been given to assume the transitions between the number of TAM wires (e.g. is the total number of bits conserved). Question 1(b) • (10 pts) Draw the shortest test schedule you can find that dissipates no more than 1000 mW. • Solution 1: Test core 1 with 10 lines for 3k cycles @ 1000 mW, then core 2 with 3 lines and 20k cycles @ 300mW, and cores 3 and 4 with 2 lines and 20k cycles @ 300 mW. So total time is 23k cycles. Power is 1000 mW for the first 3k cycles, then 300mW+300mW+300mW = 900mW for the next 20k cycles. • Solution 2: Test core 3 with 4 lines and 10k cycles @ 600mW and then core 4 with 4 lines and 10k cycles @ 600mW, while at the same time test core 2 with 3 lines and 20k cycles @ 300mW. Then test core 1 with 10 lines and 3k cycles @ 1000mW. So total time is 23k cycles. The power is 900mW for the first 20k cycles, then 1000mW for the last 3k cycles. • There are other 23k cycle schedules. Question 2(a) • (10 pts) In the figure below, show the test for a SA0 on the output of gate 11 that will be generated by the PODEM algorithm. Write on the figure and explain the sequence of decisions. • Combinational controllability values shown on relevant parts of the circuit. To set 1 on G11, set 1 on G9 since has lower CC1, then set 1 on inputs of G9, set 0 on input of G8, which propagates a 1 on G7, which is consistent. Therefore C=0 and the test is generated. Question 2(b) • (5 pts) List the stuck-at faults (e.g. gate 1 SA0, gate 2 SA1,…) that are fortuitously detected by the resulting test. Assume an X value does not sensitize or propagate a fault. • The output of G6 is an X. Normally that means the output of G10 is an X, so SA1 on C, SA0 on G7, SA0 on G8, and SA0 on G9 cannot be detected, using the D algebra. However, if there is a SA0 on G7, then both G9 and G10 will be 0, so G11 will be 0, in contrast to the fault-free value of 1. So the SA0 on G7 will be detected. (4,2) (1,1) (5,5) (5,5) (2,3) (1,1) (6,8) (7,2) SA0 (7,2) (1,1) (1,1) 1 1 (4,2) 1 (1,1) (2,2) 0 (1,1) (3,5) 1 (10,6) Question 3 • (15 pts) For the circuit below, FFs 7 and 8 are connected together in a scan chain (the scan chain is from 7 to 8). Their D inputs can be directly observed as PPOs. FF outputs Q1 and Q2 are PPIs. You wish to generate a launch-on-capture test to detect a slow-to-rise (STR) transition fault on Z. We assume Z can be directly observed by a tester. What scan pattern (each bit is 0, 1, or X) and value on R (0, 1, X, the value is not allowed to change) will detect the TF? Draw on the diagram as necessary to explain your answer. For example, you can show 0 → 1 for a 0 to 1 transition on a line. If the STR fault on Z is untestable, explain where the conflict is located. Extra copies of the circuit are attached to work out your solution. 0 0 1→0 0→1 0→1 0→1 STR 0→1 0→1 1 1 0→1 0 0 1→0 1→0 0→1 1 Detecting a STR on Z requires a 0 → 1 on G5. Working backwards, this requires R=0, Q1=0 and Q2=1. Question 4 • (5 pts) What is the basic idea of testing a source synchronous high-speed I/O? • In a source synchronous I/O, the signal and clock both come from the output, and then drive a flipflop at the receiver. To test it, the clock can be skewed early or late relative to the data, to verify that the flip-flop setup and hold times will be met given jitter between the clock and data. Question 5 • (10 pts) In time frame expansion in sequential testing, we “unroll” the circuit in time. Show this for the circuit in Problem 3, for 2 time frames. Assume there is a SA0 fault on the output of gate 1. SA0 SA0 Question 6 • (10 pts) Consider an embedded core with 8 functional inputs a[0:7], 11 functional outputs z[0:10], 9 internal scan chains of lengths 12, 12, 8, 8, 8, 6, 6, 6 and 6 scan cells each, and a scan enable SE. The test wrapper for the core will be connected to two TAMs – a 4-bit TAM and a 6-bit TAM. A signal c selects between them. Present a table for each TAM. In each table, for each wrapper scan chain, list the scan chains (# scan cells), wrapper input cells (# cells), wrapper output cells (# cells) that are included, along with its scan-in length (excludes wrapper outputs), and scan-out length (excludes wrapper inputs). What is the speedup in test time by using the 6-bit TAM instead of the 4-bit TAM? • Using TAM4, in the worst case we need 20+21 = 41 cycles to scan in the input and scan out the results. Using TAM6, in the worst case we need 14+14 = 28 cycles to scan in the input and scan out the results. The speedup by using TAM6 is 41/28 = 1.46x. Scan chains # input cells 1 12+8 =20 0 TAM4 2 3 12+8 8+6 =20 =14 0 6 4 6+6+6 =18 2 1 12 2 12 0 0 TAM6 3 4 8+6 8+6 =14 =14 0 0 5 8+6 =14 0 6 6 8 # output cells 0 1 7 3 2 1 0 0 0 8 Scan-in length 20 20 20 20 12 12 14 14 14 14 Scan-out length 20 21 21 21 14 13 14 14 14 14 Question 7 • (5 pts) How can one assign values to don’t care (X) bits in a scan pattern to reduce power dissipation during scan testing? • If we copy the previous bit in the chain, known as adjacent filling, then the scan chain shift will only produce transitions where bits are changing from 0 to 1 or 1 to 0. Since the typical pattern has only about 1% care bits, then only about 1% of the scan cells will generate an input transition on each shift. • Example: 101XXXX0110XXX 10111110110000 – 5 transitions per shift • For capture cycles, we can attempt to fill the X bits so that they have the same value on launch and capture. Question 8 • (5 pts) Why is it easier to detect bridging faults with IDDQ test instead of detecting erroneous logic values? • IDDQ provides 100% observability if the bridged fault has a 0-1 or 1-0 across it. There is no need to propagate the value to an output, so no need to set necessary assignments for observability. It is only necessary to set the 0-1 or 1-0 sensitization. This means that more faults can be detected per pattern. • Another interpretation is that it can detect bridges that do not cause a logic fault. These might be delay faults or IDDQ-only failures. Question 9 • (5 pts) What is the key assumption we usually make about failures when building fault-tolerant systems? • We assume a single fault in the system. For example, triple modular redundancy will always correct any single fault, but cannot handle more than one. • We also assume that the faults are independent. Question 10 • (5 pts) How do X values on a circuit output cause problems in logic BIST? • If using a MISR on the output, each captured X means the MISR could be in two possible states, so for n X outputs, the MISR could be in 2n states, and one of those states could alias to the fault-free state. Question 11 • (5 pts) What is the basic idea in using BIST to test reconfigurable FPGAs? • We can have the FPGA test itself. Some logic blocks can be configured as LFSRs and others as MISRs, to test the logic or the interconnect in between. The configuration is changed to move the LFSRs and MISRs around and their connectivity to test everything.