Optimal Test Time for System-on-Chip Designs using Fuzzy Logic and Process Algebra 1

Problem statement: Test scheduling is crucially important for optimal SoC test automation to allocate the limited available test resources. In this study we introduced a fuzzy based engine to allocate test resources. The minimized test application time can be achieved by test pipelining. However the test power consumption incurred during test procedure must be controlled in order not to offend the allowed maximal power dissipation thus avoiding damaging the system under test. Approach: Process algebra is the adept to deal with concurrent behaviors, based on this, the test scheduling scheme for SoC cores concurrent test is outlined by mapping the parallel test actions into concurrent processes. The algorithm for SoC test scheduling based on process algebra under multiple constraints (test power dissipation, test resources and test priorities) and apply a fuzzy based optimum search for a solution to the scheduling problem. Results: The test application time was calculated for three ITC-02 SOC benchmark circuits and the results were compared with other approaches. Conclusion: The results showed for ITC-02 benchmarks circuits prove the effectiveness of our proposed method.


INTRODUCTION
In many of the earlier research studies of the test scheduling for the SoC(System-on-Chip) benchmark circuits, scheduling was done using functional bus as the medium for test vector transportation and buffers are inserted between each core to store the test vectors and applying it to each core as per the given constraints and obtained schedule. The buffer size is the hardware overhead and considered as a constraint in the test scheduling.
In this research study, the hardware overhead is not considered as a constraint. Since cores in a SoC are not directly accessible via chip inputs and outputs, special access mechanisms are required to test them at the system level. For each core in the SoC, a Test Access Mechanism (TAM) is built around each core and test vectors are applied through these TAMs. There is conceptual test access architecture for embedded cores with the source, sink and test access mechanism. The TAM is used to deliver test vector from the source to the cores and also to deliver responses from cores to the sink. Test scheduling for various widths of TAM and various number of partitions are carried out.
The general problem of SoC test integration includes the design and optimization of wrapper and TAM architectures and test scheduling. Test wrappers form the interface between cores and TAM. TAM transport test data between SoC pins and test wrappers. Test scheduling determines the order in which tests are applied. The focus is on wrapper and TAM co-design to minimize testing time under TAM width constraints.
Core based SoC reuses the pre-designed and preverified Intellectual Property (IP) cores to shorten design cycle and reduce design costs. In the traditional way, the designers have no access to the cores that were deeply embedded into the SoC. While the dedicated test wrappers which serve as the interfaces between the cores and SoC, facilitate the data exchange between them. In this way, complex systems can be efficiently developed. However, the complexity in the system leads to high-test data volumes. So, the design and optimization of test solution are very much important for any test. Hence the following two independent problems are considered: • Design of an infrastructure for the transportation of test data in the system Research has been going on in developing techniques for test scheduling, TAM design and testability analysis. Larsson et al. (2004) has studied wrapper design or TAM optimization as independent problems. They have not addressed the issue of sizing the TAM to minimize SoC testing time. Ravi et al. (2001); Sehgal et al. (2004) proposed an approach that combine TAM design with test scheduling do not address the problem of wrapper design and its relationship to TAM optimization. Genetic algorithm for SoC test scheduling and wrapper design is addressed in (Giri et al., 2007). Zhao et al. (2004;2005; proposed different methods to optimize SoC testing methods. Shao et al. (2008) proposed process algebra based SoC test scheduling does not achieve the least test application time for SoC p34932, when test TAM width is 56 or 64.
In this study we introduce scheduling optimization using fuzzy logic with process algebra based engine to achieve least test application time. Here resource allocation is performed using fuzzy logic. Process algebra is a well known tool for dealing with concurrent system. Therefore it is utilized to describe parallel core test and all the core-under-tests are mapped into the concurrent processes to achieve minimized test application time using the reconfigurable wrapper as proposed in (Koranne, 2002), with power consumption not exceeding the allowed maximal value and test conflicts being avoided.
The research related to our approach and various issues related to SoC testing and test scheduling techniques, test vector optimization and test scheduling framework are based on fuzzy logic with process algebra algorithm, the results for SoC benchmark circuits of ITC-02 are presented.

Basics of process algebra:
The term process is used to refer to behavior of a system. A system is anything showing behavior, in particular the execution of a system, the actions of a machine or even the actions of a human being. Behavior is the total of events or actions that a system can perform, the order in which they can be executed and maybe other aspects of this execution such as timing or probabilities.
Process algebra describes concurrent and distributed system algebraically. It offers a new way to handle concurrent processes. Up to date, process algebra has had many models developed. Here we discuss Communicating Sequential Processes (CSP), for SoC test scheduling, which tests more than two cores at a time compared to Calculus of Communicating Systems (CCS) which tests only two cores at a time (Baeten, 2005).
Since a core may interact with another core, parallel or distributed systems, or so-called reactive systems have to be described called concurrency theory. When dealing about process algebra, we usually consider it as an approach to concurrency theory, so process algebra will usually (but not necessarily) have parallel composition as a basic operator.
Thus, we can say that process algebra is the study of the behavior of parallel or distributed systems by algebraic means. It describes about basic operator || for parallel composition, + for alternative composition (choice) and; for sequential composition (sequencing): • P1; P2 denotes the sequential composition of process P2 and process P1, process P2 cannot be executed until process P1 terminates successfully • P1+P2 denotes alternative composition of process P1 and process P2, either process P1 is executed, or process P2 is executed • P1||P2 denotes the parallel composition of process P1and process P2 In this study, we investigate the SoC test scheduling for concurrently processed cores, since the scheduling problem and process algebra have concurrency in common, process algebra is employed to deal with SoC test scheduling for minimized test application time under multiple constraints.
Fuzzy based process algebra model for soc test scheduling: Assume that the given SoC has n cores embedded into it and each core is scan structured, there are a certain number of resources available for each one. And each core accesses the TAM via individual test wrapper. The test time TestTime of a certain core is determined by the length of scan input chain of its test wrapper Si and scan output chain with the greatest length So, where: where, V denotes the number of test vectors of the coreunder-test. Thus the test time of each core is known and our task is to schedule n cores that are to be tested concurrently under priorities and test power constraints. For process algebra, Labeled Transition System (LTS) is widely used for description of concurrently executed processes and our semantic model described in LTS is well elaborated on how concurrent SoC core test works.
Background and notations of process algebra: LTS for SoC test scheduling can be represented as a sixtuple <S,T,F,W,s,t>, Where S = {s ij }(i,jє{0,1,..., n-1}) is a finite set of states, where s ij is the jth state of the ith core-under-test. T = {t i }(i є {0,1,...,n-1}), is a finite set of actions, t i є{TI i j ,TT i j ,TC i j }(i,jє{0,1,...,n-1}), t i can be refined into three sub-actions, respectively: inputting the jth test pattern of the ith core-under-test, using such test pattern to test the ith core-under-test and capturing the test responses from the ith core-under-test. Each action corresponds to a weight w ij denoting the time required for the action t i to work on the ith core-under-test.
F ⊆ S×T×S is state transition function, each action in set T proceeds according to state transition function F to transfer from one state to another. W = {w ij }(i,jє{0,1,...,n-1}) is a finite set of weights, with weight w ij that the relative edges associate denoting the test time for the jth test pattern of the ith core-under-test, s represents the initial state, t is the final state. An LTS model for concurrent n-core SoC test scheduling is shown in Fig. 1.
Optimization with fuzzy rule base: Fuzzy based test scheduling is presented here. We introduce the terms fuzzy constraints, fuzzy objectives and fuzzy decision in contrast to the conventional definitions (Bellman and Zadeh, 1970;Klein and Langholz, 1998). We also introduce the framework of decision making in a fuzzy environment. Let X be a given set of possible alternatives, which contains the solution of a decision making problem under considerations. A fuzzy goal (objective) G is a fuzzy set on X characterized by:

Fig. 1: LTS model for SoC concurrent test scheduling
A fuzzy constraint C is a fuzzy set on X characterized by the membership function: In other words, in definition of the fuzzy decision, there is no difference between the fuzzy goals and the fuzzy constraints. The introduction of fuzzy constraints requires the use of mathematical operations such as aggregation and weighting. However, the weights produced are passed on to the search engine with the assumption that the same units are used. This is not the case in normal scheduling problems. We introduce a search engine that receives the pairwise comparisons in a fuzzy way and produces a solution based only on the comparisons.

Fuzzy comparison of objectives (resource allocation):
The resources available for system under test are not infinite, moreover during the test procedure two or more cores under test might contend for the same resource, or more than two tests are used to test the same core simultaneously, thus resulting in test conflicts. To make full use of the test resources available, allocate appropriate resources to each core rationally, assignment of cores based on area constraints and power constraints and to avoid test conflicts, the optimal resource allocation is done using fuzzy terminology as shown in Fig. 2.

Fig. 2: Fuzzy terminology for pairwise comparison
Fuzzy based process algebra model for SoC test scheduling: Algebraically, n tasks can be viewed as n processes which are executed concurrently. P ij m (i.e., Fig. 2: Fuzzy terminology for pairwise comparison {0,1,...,n-1}, jє{0,1,..., n j -1}, mєT) is the process that corresponds to the behavior of the jth test pattern of the ith core-under-test, where each process is divided into three sub-actions: TI i j , TT i j , TC i j respectively. For instance, if process P 12 1 is launched, then the second test vector of the first core, action TI 1 1 is input in a certain time and then when this action terminates, action TT 1 1 starts, if action TT 1 1 is accomplished, action TC 1 1 is carried out. In this way, three actions of one process are executed in a row.
Test pipelining can be implemented in due course to reduce test application time. Or rather, the three subactions of one process are executed consecutively and so are those of other processes. Sub-actions of different processes can be executed in parallel, e.g., when action TC 1 2 terminates, action TI m n can be launched in the meantime the next test vector j+1 of core i can be applied as long as there no test conflicts arise. Note that it is not the case that the more test vectors are pipelined, the better, for the test power incurred by concurrent operation might destroy the system under test.
The refined representation of LTS with fuzzy rule for SoC test scheduling from Fig. 1 is detailed in Fig. 3. One circle in the graph represents a state and an arc corresponds to each action and the time duration for completion of the action. The arrow head indicates the state arrived after action transition. The direct succession of each node means the concurrent execution of these actions. The weight that each arc associates is the test time that the corresponding action consumes.

Fig. 3: Refinement LTS model for SoC parallel optimized test scheduling
Proposed algorithm for soc test scheduling: The basic problem in test scheduling is to assign a start time for all tests. In order to minimize the test application time, tests are scheduled as concurrent as possible. However, various types of constraints must be considered. A test to be scheduled consists of a set of test vectors produced or stored at a test source. The test response from the test is evaluated at a test sink. When applying a test, a test conflict may occur, which must be considered during the scheduling process. For instance, often a testable unit is tested by several test sets. If several tests are used for a testable unit, only one test can be applied to the testable unit at a time.
The test-application time can be minimized by scheduling the execution of the test sets as concurrently as possible. The basic idea in test scheduling is to determine when each test set should be executed. The main objective is to minimize the test application time.
The Process (P) is formulated in such a way that the fuzzy logic algorithm is used to optimize the solution. In the formulation of P, Number of cores (N) in SoC and number of test Buses (B) of TAM of time w 1 , w 2 , w 3 …w n are considered. The main objective is to determine the assignment of cores to test buses of TAM such that the assignment is used for test application for SoC and the total testing time is minimized.

RESULTS AND DISCUSSION
Experimental results for the SoC benchmark circuits of ITC-02: The experiments were conducted for the ITC-02 SoC benchmark circuits. The comparison of experimental results is illustrated as Table 1. Three types of SoCs from Philip IC are (p22810, p34932, p93791) utilized for our experiment, with each core having 30cores, 21cores and 18 cores on it respectively. Column two denotes the approach under which the experiment was performed and the test time unit is cycle. Column three gives the test application times comparison of different SoCs under four methods (in [1,8,13,14] and the proposed approach) subject to maximal test TAM and maximal power values (W max /P max −1 ). Our proposed method differs from the other four in that we solved the SoC test scheduling problem shown in Fig. 4 algebraically integrated with fuzzy rule. It can be figured out from Table 1 the proposed method outperforms the classical approaches in (Larsson et al., 2004;Shao et al., 2008;Iyengar and Chakrabarty, 2002;Yoneda et al., 2007) on the whole. The approach given in (Shao et al., 2008) does not achieve the least test application time for SoC p34932, when test TAM is 56 or 64.     Our proposed method obtains the least test time instead, compared to other methods. Table 2 shows characteristics of d695 SoC.

CONCLUSION
We have presented an integrated approach for concurrent core test of SoC with minimized test application time. Process algebra model for SoC test scheduling is constructed and LTS gives the view of parallel core testing, refinement of actions on LTS is formulated for minimization of test application time. The pseudo-code of the algorithms for the test scheduling problem is described. The resource allocation for the scheduling is performed using fuzzy based rule. Experimental results using our method are analyzed in comparison with those previously published approaches. It demonstrates the efficacy of PA and fuzzy logic in dealing with SoC test scheduling under multiple constraints. Simulations using a real world scheduling problem indicate that the fuzzy approach is not only more intuitive but produces scheduling scenarios that are more appropriate.