Professional Documents
Culture Documents
1 Introduction
Generation to generation, there are high demands for electronic products to provide
more functionalities and higher performance with less power consumption. SOC design
consisting of a number of embedded cores is the solution to satisfy this market demand.
Since embedded cores in a core-based SOC are not easily accessible via chip input and
output pins, a special test infrastructure must be included in the chip to test them.
According to IEEE 1500 in [1], the basic SOC test infrastructure of an embedded core
is composed of - (1) test access mechanism (TAM) and (2) wrapper. Testing of a core
can be described as follows-first, the test stimuli are sent to the particular core, and the
test response is sent out. Then the test response is compared with the predefined correct
response. Hence, TAM provides the way to transport test stimuli from the test pattern
source to the core and core to the test response sink. Wrappers are also important
components of the test access infrastructure in a core-based SOC. Detail of the wrapper
design is discussed in Sect. 2.
2 Wrapper Architecture
The striking feature of the 1500 standard is the provision of a wrapper on each core.
A test wrapper is basically a layer of design-for-test (DFT) logic that connects a TAM
to a core for the purpose of testing. According IEEE 1500 standard each wrapper
consists of input, output and scan chain. Further, scan chain itself is the combination of
scan-in and scan-out. In a wrapper chain at first, all the inputs are present either in one
layer or in multiple layers. After input, scan-out follows scan-in. Scan chain is also
distributed either in one layer or multiple layers depending upon the architecture. Same
arrangement is followed in case of output. The element wise processing sequence of
wrapper chain is first inputs then scan-in, which is followed by scan-out and finally
output is achieved. The number of clock cycles depends on the length of the wrapper
chain. Therefore to minimize the time, we must optimize the length of the longest
wrapper chain.
312 T. Kaibartta and D. K. Das
The number of wrapper chain depends on the TAM width. The values of each cell
indicate the layer number.
Table 1. Initial stage of wrapper design of the given example as mentioned in [9]
W1 W2 W3 W4
I Sc O I Sc O I Sc O I Sc O
2 2 3 2
3 Motivational Example
Consider, a core with 10 functional inputs, 10 functional outputs and 5 internal scan
chains each of length 8, number of maximum available TSVmax 14, TAM width 4 and
total number of layers 3. Objective is to distribute the wrapper elements over three
layers of 3D SOC for a number of wrapper chains and interconnect the core elements
using TSVmax such that the length of the longest wrapper chain is minimized. As the
number of wrapper chains is equal to TAM width, 25 wrapper elements (i.e.
10 + 10 + 5) are to be distributed among 4 wrapper chains. A motivational example
depicting solution for wrapper optimization problem is presented in Table 1 which is
taken from [9]. W1, W2, W3 and W4 indicate four wrapper chains. For each wrapper
chain I, SC and O indicate input, output and scan chain respectively. The value of each
cell in Table 1 indicates the layer number.
According to [9], initially the wrapper elements are chosen randomly. That means
chosen element can be of any type i.e. input, output or scan type. If the element type is
scan type, no requirement check is needed and it can be placed at any wrapper,
otherwise requirement check has to be performed because input and output affects the
number of TSVs. According to [9], the input and output requirement over 4 wrapper
chains W1, W2, W3 and W4 for the given problem is 3, 3, 2 and 2 and 2, 2, 3 and 3
respectively.
Based on this approach, suppose an element chosen randomly is of scan chain type
and is placed randomly at layer 2 of wrapper chain W1 as shown in Table 1. TSV
requirement in this case is 2. Suppose, the next element is of input type, so it will be
placed in the next wrapper i.e. W2 and in the same way, the wrapper elements are
assigned to the other two wrapper chains W3 and W4. At this point, each wrapper chain
contains exactly one wrapper element as shown in Table 1, and the total number of
Optimization of Test Wrapper Length for TSV Based 3D SOCs 313
TSVs required up to this stage is 10 (i.e. 2 + 2 + 4 + 2). This is the completion of first
cycle of assigning wrapper elements to every wrapper chains and in the next clock
cycle, the next element will be assigned to the wrapper chain W1. In this way, we obtain
the final stage as shown in Table 2 in [9].
4 Problem to be Solved
Wrapper length optimization problem for TSV based 3D SOC core can be stated as
follows - Given a 3D SOC core consisting of varying functional parameters such as
number of functional inputs, number of functional outputs, set of scan chains, the length
of each scan chains, TAM width and maximum number of available TSVs (TSVmax), we
have to distribute the core elements over several layers of 3D SOC and interconnect the
core elements using TSVmax such that length of the longest wrapper chain is minimized.
This approach can be termed as wrapper design with available number of TSVs.
From the above discussion, it is clear that for a given TSVs (i.e. TSVmax) and given
TAM width T, the goal of the proposed heuristic algorithm is to create some balanced
wrapper chains whose maximum length is minimum. As the chip pins are at the lowest
layer, so we assume the wrapper chain begins and ends at lowest layer and layer
number starts from bottom to top and top to bottom (i.e. bottom layer number is 1, next
layer number is 2 and so on). We also assume that TSVs internal to the scan chains are
not considered for TSV calculation.
5 Our Algorithm
5.1 Data Structure
For a given core, wrapper elements are described as E = E1, E2, …, En, TAM width T
and maximum number of available TSVs (TSVmax). The proposed algorithm uses
element and wrapper data structures.
The data structure of element is presented in Table 1. It contains the information
about each core wrapper element Ei of the list E. The information includes the type of
element (i.e. Input wrapper (I/P), Output wrapper (O/P) and Scan chain), layer number
indicates in which it is placed and the length of the wrapper element. The wrapper data
structure maintains three different lists using five variables corresponding to each type
of wrapper element Ei. Information about the number of TSVs required at any instant
of time, specifically before insertion of a wrapper element into the wrapper chain, is
stored in the no_of_tsv.
The variables, length and no_of_elements are used to hold the length of the wrapper
chain and the number of different types of wrapper elements contained by the wrapper
chain respectively. Before starting of the algorithm, the length of wrapper chains are
initialized with 0. The variable no_of_input and no_of_output indicate the total number
of input and total number of output of the wrapper chain, respectively (Tables 3 and 4).
314 T. Kaibartta and D. K. Das
If I/Ps are connected with scan-in in the same layer then the TSV requirement is 0.
Hence the value of no_of_tsv is zero but if they are in different layers, the no-of-tsv
holds a non-zero value. If scan-in is connected with scan-out either in same layer or
different layers then the value of no_of_tsv is 0 as the internal TSVs are not counted. If
scan-out is connected with other scan-in or with O/P in the same layer then the value of
no_of_tsv is zero but if they are in different layers then no_of_tsv is considered. Hence,
the no_of_tsv is some non-zero value. If O/P is connected with different O/P in the
same layer, then TSV requirement is zero (i.e. no_of_tsv is 0) but if they are in different
layers then TSV is considered (i.e. the value of tsv is some non-zero value).
four scan chains are placed in four wrapper as shown in Table 5. According to Table 6
and Fig. 1, W1 which spans across two layers, contains one input element, two scan
chain elements and one output element and they are placed in layers 1, 2 and 1
respectively. Hence, the TSV requirement for W1 is 2 and wrapper chain length is 18.
Similarly, W2 which spans across three layers, contains three input element, two scan
chain elements and three output elements. Two input elements are placed at layer 1 and
one input element is placed at layer 2, scan chain is placed at layer 2, two output
elements are placed at layer 1 and one output element is placed at layer 2. Hence, the
wrapper length is 14 and TSV requirement is 2.
Similarly W3 which spans across three layers, contains three input elements, one
scan chain element and three output elements. Two input elements are placed at layer 2
and one input element is placed at layer 3, scan chain element is placed at layer 3, three
output elements are placed at layer 1. Hence, wrapper length is 14 and TSV require-
ment is 4.
Finally, W4 which spans across three layers contains three input elements, one scan
chain element and three output elements. Two input elements are placed at layer 2, one
input element is placed at layer 1, one scan chain element is placed at layer 2, two
output elements are placed at layer 2 and one output element is placed at layer 1.
Hence, the wrapper length is 14 and TSV requirement is 2. Hence, the maximum
wrapper length is 18 and TSV requirement is 10 (i.e. 2 + 2 + 4 + 2).
Figure 1 shows the conceptual design of the given problem where 25 core elements
are distributed on wrapper chains W1, W2, W3 and W4 over three layers. I, O written
square boxes indicate input and output respectively and filled square box indicates scan
chain.
6 Experimental Result
The proposed heuristics based algorithm is coded in C++ language and executed on a
Intel Core 2 Duo processor having 1 GB RAM. Cores from ITC02 SOC test bench-
marks are used for experiment. For experimental results, we have used cores 7, 5 and 4
of SOCs d281, h953 and p93791 respectively. We have restricted the number of layers
to 3 for each simulation. The experimental result is presented in Tables 7, 8, and 9.
Columns 1, 2, 3, 4, 5 and 6 indicate TAM width, maximum TSV, longest wrapper
length obtained in [9], CPU time mentioned in [9], longest wrapper length in proposed
method and CPU time in proposed method respectively. In these tables TAM width,
maximum TSV, longest wrapper length and CPU time are abbreviated as TAM,
TSVmax, LWL and Time respectively.
According to Table 7, we have achieved good results in 4 instances among 23
instances in all respect that is longest wrapper length wise and CPU time wise, though in
remaining 19 instances our wrapper length is same as the wrapper length mentioned in [9].
Experimental result of core 5 of SOC Benchmark h953 is shown in Table 8.
Compared to [9], our algorithm shows better result in 18 instances among 28 instances
in all respect that is longest wrapper length wise and CPU time wise.
According Table 9, for core 4 of SOC Benchmark p93791, our algorithm performs
better in 27 cases.
Optimization of Test Wrapper Length for TSV Based 3D SOCs 317
318 T. Kaibartta and D. K. Das
Table 7. (continued)
TAM TSVmax LWL [9] Time [9] LWL Time
5 16 426 0.1 426 0.001
18 426 0.11 426 0.003
22 426 0.11 426 0.003
12 355 0.11 355 0.002
14 355 0.1 355 0.015
6 16 355 0.1 355 0.003
18 355 0.08 355 0.002
22 355 0.11 355 0.003
7 Conclusion
We have presented an optimization technique for minimizing the wrapper length for 3D
core-based SOCs under constraints on the number of TSVs and the TAM width. We
have carried out a series of simulations for three ITC02 SOC test benchmarks by
considering three layer in 3D IC. Simulation results show that the proposed method
leads to lower wrapper length compared to the earlier work in [9]. We have also
demonstrated a conceptual design to show the distribution of wrapper elements i.e.
input, output and scan chain. This work is expected to pave the way for core-based
testing of emerging 3D SOCs.
References
1. IEEE Std.1500: IEEE Standard Testability Method for Embedded Core based Integrated
Circuits. IEEE, New York (2005)
2. Puttuswamy, K., Loh, G.H.: The impact of 3-dimensional integration on the design of
arithmetic units. In: IEEE International Symposium on Circuits and Systems, pp. 4951–4954.
IEEE, Greece (2006)
3. Iyengar, V., Chakrabarty, K., Marinissen, E.J.: Test wrapper and test access mechanism co-
optimization for system-on-chip. J. Electron. Test. Theory Appl. 18, 213–230 (2002)
4. Goel, S.K., Marinissen, E.J.: SOC test architecture design for efficient utilization of test
bandwidth. ACM Trans. Des. Autom. Electron. Syst. 8(4), 399–429 (2003)
5. Giri, C., Sarkar, S., Chattopadhyaya, S.: A genetic algorithm based heuristic technique for
power constrained test scheduling in core-based SOCs. In: IEEE Proceedings of IFIP
International Conference on Very Large Scale Integration, USA, pp. 320–323 (2007)
6. Wu, X., Chen, Y., Chakrabarty, K., Xie, Y.: Test-access mechanism optimization for core-
based three-dimensional SOCs. Microelectron. J. 41, 601–615 (2010)
7. Kaibartta, T., Das, D.K.: Testing of 3D IC with minimum power using genetic algorithm. In:
10th International Design and Test Symposium (IDT), pp. 112–117. IEEE, Jordon (2015)
8. Noia, B., Chakrabarty, K., Xie, Y.: Test-wrapper optimization for embedded cores in TSV-
based three-dimensional SOCs. In: IEEE International Conference on Computer Design,
pp. 70–77 (2009)
9. Roy, S.K., Giri, C., Rahaman, H.: Optimization of test wrapper for TSV based 3D SOCs.
J. Elctron. Test. 32, 511–529 (2016)