Patent Publication Number: US-8533546-B1

Title: Reconfigurable scan chain connectivity to enable flexible device I/O utilization

Description:
FIELD OF THE INVENTION 
     The within disclosure relates generally to testing of integrated circuits (IC). More particularly, it is applicable to any IC implementing a parallel scan test strategy, wherein there may be a desire to reduce device manufacturing costs by varying pins available for testing, but without impacting test coverage or quality. 
     BACKGROUND OF THE INVENTION 
     Integrated circuit (IC) complexity has been increasing in accordance with Moore&#39;s law for several decades, approximately doubling the number of digital gates in a device every two years or less. This exponential rise in gate counts has resulted in rapidly escalating test complexity and cost. This has, in turn, driven the industry to adopt design-for-test (DFT) approaches such as “scan test” to enable automated test pattern generation and efficient test application with lower cost production test equipment. Scan testing is an industry-standard structural test methodology that has proven to be a highly effective methodology for screening defective IC&#39;s in production. 
       FIG. 1  shows an abstracted view of an IC  100  containing both combinational logic  101 , such as “AND”, “OR” and “NOT” gates, as well as memory elements  102  such as “flip-flops”. At opposing ends of the IC are functional inputs  104  and functional outputs  106 . The resulting sequential logic circuit is more complicated to test because it can be difficult to construct an efficient sequence of input states to ensure all combinational and memory elements are fully stimulated and any defective responses are propagated to output pins. These problems are generally referred to as “controllability” and “observability”, respectively. 
       FIG. 2  shows the same abstracted IC  100  as  FIG. 1 , but with the addition of a test mode wherein all memory elements are connected into a simple serial shift register, known as a “scan chain”  200  having a scan input  202  and a scan output  204  at opposing terminals. Now the problem of controllability has been addressed, because all memory elements can be deterministically forced to any desired state, allowing control of all the inputs to the clouds of combinational logic. Also, the problem of observability has been addressed, because the value captured by all memory elements can be deterministically forced directly to the scan output pin  204 . 
     Note that while  FIG. 1  and  FIG. 2  only show a small number of logic elements and input and output paths, a typical IC may contain millions of logic elements and hundreds of I/O pins. Also, while  FIG. 2  shows separate device pins for functional and scan access, in a typical implementation, these pins will be shared using appropriate test-mode gating logic, such that a given pin may be used as a functional pin when the device is in functional mode, and the same pin may be used as a scan pin when in scan test mode. 
     Scan test data volume (i.e. stimuli and expected responses) grows with design size. In order to minimize test time and therefore test cost, scan data must either be shifted into and out of the device at higher speed, or with a higher degree of parallelism, or both. Shifting scan data at higher speeds adds design complexity, as it places tighter constraints on scan timing paths. Hence, the industry has generally adopted wider scan interfaces, with a typical deep sub-micron system-on-chip (SOC) device using dozens or even hundreds of parallel scan chains as shown conceptually in  FIG. 3 . The single scan chain  200  routed serially through every memory element in the design shown in  FIG. 2  has been replaced with two separate scan chains  300 ,  301 , each routed serially through half the memory elements  102  in the design. Each memory element  102  has the exact same degree of controllability and observability, but can be accessed with half the number of scan shift events. While the total volume of scan data has not been affected, it is being loaded and unloaded into the scan chains with twice the efficiency resulting in half the total test time and hence half the total test cost. A relatively simple IC with a parallel, full-scan design is shown in  FIG. 4   a.    
     As noted previously, this a very simple, abstracted example. In a modern SOC device with millions of memory elements and hundreds or thousands of signal pins, the test and complexity and hence test cost can be much, much higher, driving a corresponding increase in parallelism. 
     To further reduce scan data volume and test cost, it is now common to implement some sort of on-chip circuitry to enable scan data compression. There are a variety of methodologies in this regard, but all methods share a common architecture, which is shown in abstracted form in  FIG. 4   b . Each scan chain  400  is broken up into a number of smaller scan chains  402  that are driven in parallel from a single scan input pin  404 . The resulting scan chain outputs  406  are logically recombined, such as by using an XOR tree  408 , before being driven to a single scan output pin  410 .  FIG. 4   b  shows a simple 2:1 compression ratio; however, much higher ratios are possible for devices incorporating very long scan chains. 
     Highly parallel scan testing has enabled reduced production test costs and hence improved product profitability. However, escalating design complexity and cost has resulted in a new set of challenges to the traditional scan architecture. Multi-product designs, wherein one IC is intended to be used in many target products or applications, as well as multi-die packaging technology such as MCM, SIP, and 3-D or stacked-die, have resulted in devices where some I/O pins may not be accessible for application of scan data in some package variants. This means a choice between compromised test coverage on some variants (due to not being able to access some scan chains), or increased test cost on all variants (due to constraining the design to use fewer, longer scan chains). 
     In extreme cases, package variants may not even be predictable at design time, meaning a high risk of future costs due to being forced either to connect otherwise unused pins to enable full scan coverage, or to redesign the IC to use fewer scan chains. 
     In a multi-product device with some pins not required in some target markets, there may be a desire to reduce package cost by not bonding out unused pins. There may also be other reasons not to connect all pins in the package, for example, to limit functionality in certain product variants to provide different price points to customers. 
     However, failure to connect certain pins in the package limits the selection of I/O&#39;s to be used for test purposes, hence limiting the degree of scan parallelism. In effect, the design team is forced to choose between using a small set of common pins for scan testing (resulting in high test cost), or being forced always to bond out a large number of pins in all cases for efficient scan test (resulting in high package cost and poor product differentiation). 
       FIG. 5  provides a graphical representation of this issue. In the abstracted product, certain I/O pins  500  are not available in package variants and therefore cannot be allocated to scan chains  502  (dashed lines). Consequently, the total number of scan chains  502  in the design is reduced, and the overall test time is increased for all package variants, not just the reduced-pin variant. 
     This predicament can be expected to escalate in the future, with the advent of even more complex and expensive packaging technologies, in particular multi-die packages such as multi-chip modules (MCMs), system-in-package (SIPs), stacked-die, etc. It will be critical to have very high test coverage at the bare-die level to ensure only good dies are included in assembled packages This necessitates highly parallel scan testing and hence very wide scan input and output buses. However, many or even most of the pins on some of the die in a multi-die package may only be connected to other die and hence may not be accessible for final package testing, meaning either package test coverage must be compromised due to not all scan chains being accessible, or overall test cost must be increased by only allowing a reduced set of the available pins on the die to be used for scan testing. 
     There is therefore a need to address some or all of the issues described above by enabling any number of pins to be used for scan testing at any stage in the design, without any loss of test coverage or a need to regenerate scan data. 
     SUMMARY OF THE INVENTION 
     In a first aspect, the present disclosure provides a device under test (DUT) having a plurality of scan chains, a plurality of shift register elements, each associated with a respective one of the scan chains and a programmable switch matrix to configure shift register elements of a subset of the plurality of shift register elements to cause one shift register element of the subset to receive an interleaved test sequence, and to cause the interleaved test sequence to be shifted to other shift register elements in the subset, such that deinterleaved test sequences are input to scan chains associated with the subset. 
     In a second aspect, the DUT also has a plurality of device scan pins each associated with a shift register element. 
     In a further aspect, the device scan pin associated with the one shift register element provides the interleaved test sequence to the subset. 
     In yet a further aspect, the programmable switch matrix configures multiplexers in each of the shift register elements of the subset such that the one shift register element uses a parallel path to receive the interleaved test sequence from the device scan pin associated with the one shift register element; and the other shift register elements in the subset use a serial path to receive the interleaved test sequences from the one shift register element. 
     According to another aspect, the programmable switch matrix further comprises at least one configurable crossbar switch for routing the interleaved test sequence from any of the device scan pins to any of the plurality of shift register elements. 
     In still another aspect, the at least one configurable crossbar switch is configured to balance the number of shift events between a plurality of subsets. 
     In yet another aspect, the DUT can comprise a bypass path for bypassing the plurality of shift register elements. 
     In addition, the DUT can also have a second programmable switch matrix to configure a subset of shift register elements at the output of the scan chains to cause the shift register elements of the subset at the output to receive deinterleaved test sequences to be shifted to one of the shift register elements in the subset at the output, such that an interleaved output test sequence is provided to an output pin associated with the one of the shift register elements in the subset at the output. 
     Further, the programmable switch matrix configures multiplexers in each of the shift register elements of the subset at the output such that the one of the shift register elements in the subset at the output uses a parallel path to provide the interleaved output test sequence to the output pin and the register elements in the subset at the output use a serial path to provide the deinterleaved test sequences to the one of the shift register elements in the subset at the output. 
     The present disclosure also provides that the programmable switch matrix can include at least a second crossbar switch for routing interleaved test sequences from any shift register elements at the output to any output pin. 
     In another aspect, the at least a second crossbar switch is configured to balance the number of shift events between a plurality of subsets of shift register elements at the output of the scan chains. 
     In yet another aspect, the DUT can also have a bypass path for bypassing the shift register elements at the output of the scan chains. 
     The present disclosure also provides for a method of testing a device under test (DUT), the DUT having a plurality of scan chains and a plurality of shift register elements each associated with a respective scan chain, the method comprising determining a subset of the plurality of shift register elements to receive an interleaved test sequence, programmably configuring one shift register element of the subset to receive the interleaved test sequence, receiving the interleaved test sequence at the one shift register element, programmably configuring the other shift registers in the subset such that the interleaved test sequence is shifted to others in the subset and deinterleaved test sequences are input to scan chains associated with the subset, and receiving deinterleaved test sequences output from the scan chains. 
     In a further aspect, the steps of programmably configuring include programmably re-configuring. 
     In a further aspect, the present disclosure provides a DUT comprising a plurality of scan chains, a plurality of shift register elements, each associated with a respective one of the scan chains, and a programmable switch matrix to configure a subset of shift register elements at the output of the scan chains to cause the shift register elements of the subset at the output to receive deinterleaved test sequences to be shifted to one of the shift register elements in the subset at the output, such that an interleaved output test sequence is provided to an output pin associated with the one of the shift register elements in the subset at the output. 
     In yet a further aspect, the programmable switch matrix configures multiplexers in each of the shift register elements of the subset at the output such that the one of the shift register elements in the subset at the output uses a parallel path to provide the interleaved output test sequence to the output pin and the register elements in the subset at the output use a serial path to provide the deinterleaved test sequences to the one of the shift register elements in the subset at the output. 
     In still a further aspect, the programmable switch matrix may also include at least one configurable crossbar switch for routing the interleaved output test sequence from any of the shift register elements to any of a plurality of output pins. 
     In another aspect, the at least one configurable crossbar switch is configured to balance the number of shift events between a plurality of subsets. 
     Other aspects and features of the present disclosure will become apparent to those ordinarily skilled in the art upon review of the following description of example embodiments in conjunction with the accompanying figures. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       Example embodiments will now be described, by way of example only, with reference to the attached Figures, wherein: 
         FIG. 1  is an abstracted sequential logic circuit; 
         FIG. 2  is a sequential circuit with single serial scan test path; 
         FIG. 3  is a sequential circuit with a basic parallel scan test architecture; 
         FIG. 4   a  is a sequential circuit with a parallel, full-scan design; 
         FIG. 4   b  is a sequential circuit with a parallel, full-scan design with 2:1 scan compression; 
         FIG. 5  is an abstraction of a multi-product die with reduced-pin package variants; 
         FIG. 6  is a device implementing scan reconfiguration blocks with meta-scan chains; 
         FIG. 7  is a device implementing scan reconfiguration blocks with meta-scan chains and a crossbar switch matrix; 
         FIG. 8  is an example of a typical scan-tested integrated circuit; 
         FIG. 9  is an exemplary scan-tested IC implementing scan reconfiguration block(s); 
         FIG. 10  shows an exemplary scan reconfiguration cell; 
         FIG. 11  scan reconfiguration cells arranged into a meta-scan shift chain; 
         FIG. 12  shows a scan reconfiguration block with crossbar switch matrix on parallel inputs; 
         FIG. 13  is a scan reconfiguration block with crossbar switch matrix on parallel outputs; 
         FIG. 14  is a scan reconfiguration input block with multiple crossbar switch matrices of different sizes; and, 
         FIG. 15  is a further scan reconfiguration output block with multiple crossbar switch matrices of different sizes. 
     
    
    
     DETAILED DESCRIPTION 
     Generally, the current invention comprises an architecture to enable reconfigurable access to an IC implementing a parallel scan chain testing strategy. More specifically, embodiments of the present disclosure provide a reconfigurable, on-the-fly scan chain access architecture that enables any arbitrary combination of device I/O pins to be used to access any number of internal parallel scan chains, such that all chains will be fully controllable and observable regardless of which device I/O pins are available in any specific packaging variant. 
     This approach has a number of commercial advantages, including, but not limited to, the following: a design team is able to use the maximum possible number of scan chains supported by the I/O count at the die level, while a marketing team is able to retroactively define new package variants with arbitrary I/O bond-out combinations, and a production engineering team is free to migrate to reduced pin count production test equipment, without any loss of test coverage, and without the need to generate new scan test data. 
     Embodiments of the present invention are compatible with common scan architectures including, but not limited to, full-chip scan, hierarchical or macro-based scan, and various scan compression techniques such as Illinois scan. Current approaches to scan testing of digital integrated circuits are exemplified in the following documents, the disclosures of which are hereby incorporated by reference in their entirety:
     i. Navabi, Digital System Test and Testable Design, Springer, 2011;   ii. Vranken et al., Enhanced Reduced Pin-Count Test for Full-Scan Design, Proceedings of the International Test Conference, 2001, pp. 738-747; and,   iii. U.S. Pat. No. 7,124,340, Low Pin Count, High-Speed Boundary Scan Testing.   

     Embodiments disclosed herein permit scan chain design optimization independent of the number of device-under-test (DUT) I/O pins actually available for scan data insertion and observation, and further permit reconfiguration of device pin to scan chain mapping without design changes, loss of coverage, or regeneration of test data. 
     Under a proposed architecture according to certain embodiments, a DUT implemented using parallel scan techniques would also instantiate a scan pin reconfiguration block at the head (scan-in) and/or tail (scan-out) of the scan chains. The two reconfiguration blocks can be programmed to serialize the first and last cells respectively in any arbitrary group or groups of scan chains, such that they can be accessed using fewer DUT pins than was originally assumed to be available during the design development. For example, if a particular target application does not require a specific interface on the DUT, those interface pins may simply be dropped from the package, and the scan chains that would have been accessed using those pins are reconfigured to be driven from adjacent pins that are still available. Since the reconfiguration blocks still provide independent control and observability of the data shifted through every scan chain, there is no need to regenerate scan data since any given target test vector can still be realized in the DUT. The scan data or test data simply needs to be reconfigured to match the pin reconfiguration. In another example, if there is a desire to migrate the production test for a given (mature) DUT to a reduced pin count test platform, the DUT does not need to be redesigned, since pins can simply be removed from the production test and the reconfiguration blocks again used to maintain identical scan test coverage. 
     Invention Architecture 
       FIG. 6  shows an abstracted view of an exemplary device implementing “meta-scan chains” at the input and output of the normal scan chains in accordance with certain embodiments. Starting with an IC design  600  implementing a parallel scan architecture, embodiments of the present disclosure involve the addition of a scan signal reconfiguration block  601  between the device scan pins (sometimes referred to as input pins)  603  and the scan inputs  605  to the parallel scan chains  604 . Similarly, embodiments include the addition of a second scan signal reconfiguration block  602  between the device output pins  607  and the scan outputs  608  of the parallel scan chains  604 . Beyond these additional blocks  601 ,  602 , the scan architecture of the device  600  can remain unchanged, meaning the scan chains  604  may internally implement compression, hierarchical design or any other features which will be appreciated by one of ordinary skill in the art. From the perspective of test pattern generation, the reconfiguration blocks  601 ,  602  can be considered completely transparent and the high level device design and DFT flow left unchanged. 
     Each of the scan signal reconfiguration blocks  601 ,  602  implements a programmable shift register  613 ,  614  made of a number of shift register elements  606 , and, in certain embodiments, the shift registers  613 ,  614  are equal in length to the total number of device scan pins  603  or device output pins  607  routed to the block. In certain embodiments, each shift register element  606  is associated with a device scan pin  603  and a scan chain  604  and can be programmed to take its input either from a parallel-load path  610  or a serial-shift path  612 . The selection of whether to use the parallel or serial path is programmable per element  606 . 
     Each scan signal reconfiguration block  601 ,  602  also optionally implements a bypass path (not shown), to bypass the shift register entirely, in cases where all DUT pins are available for testing. 
     The scan signal reconfiguration block shift registers  613 ,  614  are referred to as “meta-scan” shift chains, as they represent a scan-style mechanism for accessing the scan chains  604 , which are themselves a mechanism for accessing the functional logic in a test mode. Shift events in the meta-scan shift chains are correspondingly referred to as meta-scan shift events, to discriminate from regular scan chain shift events. A meta-scan shift event does not, in other words, involve the transmission of test sequences through a scan chain; rather, it is the shift of a testing sequence through the meta-scan shift chains themselves. The utility of the meta-scan shift chains will be described in detail below. 
       FIG. 7  shows an abstracted view of a device implementing scan reconfiguration blocks  601 ,  602  each containing an optional crossbar switch  700 ,  701  in accordance with certain embodiments. The crossbar switches  700 ,  701  allow any scan signal input to the block  601 ,  602  to be routed to any scan signal output of the block  601 ,  602 . This is a strictly one-to-one mapping, i.e. each scan reconfiguration block input can be connected to any one scan reconfiguration block output at a time, and vice versa. The utility of the switch matrix will be described in detail below. 
     Configuration Selection and Programming 
     As noted above, the selection of whether to use the parallel or serial path is programmable. Programming or programmably configuring of each element may be carried out by a programmable shift matrix (not shown), which drives the control elements in each shift register element  606 . While the specific architecture of a shift register element  606  is discussed in greater detail below and with reference to  FIG. 10 , the programmable shift matrix generally consists of control inputs and multiplexers that directly determine the signal path each element will use. The programmable shift matrix according to certain embodiments also includes an interface for a user or tester to configure the shift register elements  606 , or a subset thereof. In certain embodiments which have a scan reconfiguration block  602  between the output of the scan chains and the device output pins, there can be a second programmable shift matrix or simply include control functionality within a single programmable shift matrix. 
     In the degenerate case where all input  603  and output  607  pins are available for testing, the scan reconfiguration blocks  601 ,  602  will be programmed to use only the parallel-load path  610 , or if implemented, the reconfiguration bypass path. In this case, the DUT input pins  603  drive the inputs to all scan chains directly, and all scan chain outputs drive DUT output pins  607  directly. 
     If one or more input pins  603  are unavailable for testing for any reason, then the input scan reconfiguration block shift register elements  606  corresponding to those pins will be configured to use the serial-shift path  612  rather than the parallel load path  610 , while the elements  606  corresponding to the pins that are available for testing will continue to use the parallel load path  610 . Meta-scan shift events will thus be interleaved in between normal scan shift events such that the reconfiguration shift register element  606  driving each normal scan chain  604  will be initialized to the same logical value that would have been applied directly from the DUT pin in the degenerate case. In this way, each scan chain  604  still receives the exact same input sequence that it would have received had all DUT pins been available for testing, and there is no overall loss in scan chain controllability. 
     Accordingly, the testing sequence input to the device scan pins  603  in a DUT will be interleaved in such a way that any subset of shift register elements  606  to which it is introduced will, by carrying out meta-scan shift events, modify the testing sequence such that deinterleaved testing sequences can be input onto the scan chains  604  with which the elements  606  are associated. 
     Likewise, where the testing sequence output from the scan chains  604  is deinterleaved and will pass through a subset of shift register elements  606  before reaching output pins  607 , the deinterleaved signals will be “re-interleaved” to form an interleaved output signal. This is because certain of the elements  606  of the subset which are not directly associated with an active output pin may be configured by the programmable shift matrix to use a serial path to provide the deinterleaved test sequences to other members of the subset which are associated with an active pin. 
     Similarly, if one or more output pins  607  are unavailable for testing for any reason, then, in between normal scan chain shift events, the output scan reconfiguration block shift register in block  602  will first be switched to parallel-load mode, to capture the output of all scan chains  608 . It will then be switched to serial-shift mode and the output data shifted as many times as is necessary to ensure all scan chain output bits have propagated to an observable output pin  607 . In this way, there is also no overall loss in scan chain observability. Again, the output scan reconfiguration block shift events will be referred to as meta-scan shift events, to discriminate from regular scan chain shift-out events. 
     Because the scan reconfiguration blocks  601 ,  602  are reprogrammable entirely electronically, without requiring design changes, it is possible to reconfigure them on-the-fly to adapt to any available set of scan input  603  and output pins  607 . Hence, there is freedom to arbitrarily remove pins from production test programs or device packaging variants with no loss of production test coverage. 
     Crossbar Switch Option 
     Under the methodology discussed above, if DUT pins are unavailable for testing, then meta-scan shift events may be interleaved between normal scan chain shift events. The number of meta-scan events per normal scan event depends on the maximum number of consecutive scan reconfiguration shift elements  606  that are connected to pins which are unavailable for testing. So, for example, if only one pin on the entire DUT is unavailable for testing, then exactly one meta-scan shift is required per normal scan shift. Likewise, if every alternate element in the scan reconfiguration shift register is connected to a pin which is unavailable for testing, then there is still only exactly one meta-scan shift per scan shift, because all the meta-scan shift chains are being loaded in parallel. However, if two consecutive elements  606  in the scan reconfiguration shift register are connected to pins which are unavailable for testing, then there will be two meta-scan shift event required for every normal scan shift event. 
     Thus, depending on the ordering of the meta-scan shift register, some combinations of DUT pins will result in significant loss of scan shift efficiency, with a corresponding increase in test time and therefore test cost. In one embodiment, the available DUT pins are distributed uniformly, or “balanced” across the scan reconfiguration shift register or between subsets of shift register elements  606 , regardless of which, and how many, DUT pins are available in any given device configuration. 
     One solution, which is considered as an optional aspect of embodiments of the current disclosure, is to include a programmable crossbar switch matrix  700  in a scan signal reconfiguration block  601 ,  602 . In this case, after the decision is made regarding which pins are to be available for testing, the crossbar  700  can be configured appropriately to distribute those pins optimally across the scan reconfiguration block shift register to minimize the number of meta-scan shift events required for each normal scan shift event. For an N-bit scan reconfiguration block register, a full N*N switch matrix will clearly provide the maximum flexibility to optimize meta-scan shift efficiency. If the extra area on the device required by such a matrix  700  may be considered detrimental to the device cost, other configurations are possible. 
     For example, a full N*N switch can be optionally included in a scan input reconfiguration block  601 , the scan output reconfiguration block  602 , both blocks, or neither. It is also possible that a number of smaller switches of identical or varying sizes could likewise be designed to allow improved flexibility within sub-groups of DUT pins. None of these options impact the ability of embodiments of the present disclosure to provide full control and observability of all scan chain elements, they only impact the efficiency of the application of scan testing for certain otherwise non-optimal combinations of available DUT pins. 
     Embodiments of the current invention do not presume any particular implementation of the crossbar switch matrix  700 , and hence include all possible variations. In one embodiment, control of the crossbar switch matrix is integrated into the programmable switch matrix discussed above. In this embodiment, the programmable switch matrix can, therefore, program routing of the interleaved or deinterleaved sequences, according to any of the above, from any of the device scan pins to any of the shift register elements  606 , from any of the shift register elements  606  to any of the scan chains  604 , from any of the scan chains to any of the shift register elements at the output end, and from any of the shift register elements at the output end to any of the device output pins. 
     Further, embodiments of the present disclosure have no specific dependency on the scan chain implementation, and hence can be used with all manner of advanced scan mechanisms, including but not limited to:
         i. transition and path delay scan testing   ii. scan compression, both public-domain (e.g. “Illinois” architecture) and proprietary means   iii. hierarchical or macro-based scan implementation       

     Exemplary Embodiment 
       FIG. 8  shows a typical IC  800  according to previous approaches, the inputs  803  to the scan chains  804  would be driven directly from device input pins  802  and the outputs  805  from the scan chains  804  would directly drive device output pins  806 . 
     According to an embodiment and as shown in  FIG. 9 , an integrated circuit (IC)  900  is designed implementing a parallel scan testing methodology on one or more logic blocks. A scan reconfiguration block  901  is inserted between the device input pins  802  and the scan chain inputs  803 , and another scan reconfiguration block  902  is inserted between the scan chain outputs  805  and the device output pins  806 . Certain embodiments may include either or both scan reconfiguration blocks  901 ,  902 , depending on which are deemed advantageous to a particular IC implementation. 
     According to certain embodiments, the scan reconfiguration block  901 ,  902  consists of a series of scan reconfiguration cells as shown in  FIG. 10 , where each cell  1000  includes a multiplexed input to select from either a parallel input path  1002  or a serial input path  1004 . Each of these inputs leads to a corresponding parallel output path  1003  and serial output path  1005 . The cell includes a multiplexer (mux)  1006  driven by a mux input control  1008 . The mux input control  1008  can be programmed independently per scan reconfiguration cell  1000 . Each cell can also contain a flip-flop or memory element  1010 , which acts as a shift register element in that particular cell. 
     An exemplary arrangement of a multitude of cells  1000  is shown to form a shift register also known as a meta-scan shift chain  1100 , as shown in  FIG. 11 . As shown, the serial output path  1005  of each cell is the serial input path  1004  of the cell adjacent to it in the chain. 
     As shown in  FIGS. 12 and 13 , an optional variation of the scan reconfiguration block according to an embodiment further includes one or more crossbar switch matrices. Matrices can be included on either the input side or the output side of each scan reconfiguration block. 
       FIG. 12  shows a complete, generalized scan input reconfiguration block  901  containing both a reconfigurable meta-scan shift chain, wherein each element  1202  can be loaded from either the parallel input or serially from the neighboring element  1204 , and also containing a full crossbar switch matrix  1200 , where the parallel input to each meta-scan chain element  1202  can be driven from any parallel input signal to the block. This block would normally be placed between DUT input pins  1201  and the inputs  1205  to the parallel scan chains within the DUT. 
       FIG. 13  shows a complete, generalized scan output reconfiguration block  902  containing both a reconfigurable meta-scan shift chain, wherein each element  1302  can be loaded from either the parallel input or serially from the neighboring element  1304 , and also containing a full crossbar switch matrix  1300 , wherein the parallel output  1306  from each meta-scan chain element  1302  can be routed to any parallel output signal from the block. This block would normally be placed between the outputs to the parallel scan chains  1003  within the DUT and the DUT output pins  1305 . 
     The matrices  1200 ,  1300  may also be connected to only some or all of the scan reconfiguration cells  1000 . It should be clear that many possible permutations of crossbar switch matrices  1200 ,  1300  are possible and different permutations may be advantageous in different designs. It is even possible that a permutation that only includes the crossbar switch(es)  1200 ,  1300  and does not include the meta-scan shift chain may be advantageous in some cases. 
       FIG. 14  shows a similar generalized scan input reconfiguration block  901  to that shown in  FIG. 12 ; however, in this embodiment, the full crossbar switch matrix  1200  has been replaced with two smaller switch matrices  1402 ,  1404 . This creates two smaller “groups” of signals which can be freely reconfigured within two subsets  1406 ,  1408  of shift register elements, but not between the two subsets  1406 ,  1408 . While this may reduce the flexibility for redistributing DUT device scan pins across meta-scan parallel inputs, it may also result in significant reduction in design complexity and cost, due to the reduced size of the two smaller crossbar switch matrices  1402 ,  1404  relative to the original full crossbar switch matrix. Other embodiments can “generalize” this concept to include any number of independent crossbar switch matrices of any number of sizes, including cases where some parallel inputs bypass the crossbar switch matrices entirely and hence cannot be rerouted to other meta-scan shift elements. 
       FIG. 15  shows an embodiment with a similar generalized scan output reconfiguration block  902  to that shown in  FIG. 13 , but with the same crossbar switch modifications as was shown in  FIG. 14  and discussed above. In particular, the single full crossbar  1300  switch has been replaced with some number of smaller crossbar switches  1502 ,  1504  of various sizes. Again, this can be generalized to any number of crossbar switch matrices, including having some number of signals bypass the crossbar switches entirely. 
     By implementing embodiments of the scan reconfiguration logic described herein, it is possible to maintain identical scan test controllability and observability even if some device pins are unavailable for testing for any reason. Such reasons might include device packaging variants such as multi-chip modules or reduced-pin packaging to lower device manufacturing cost. Reasons might also include reduced pin test equipment to lower device test cost. Regardless of the reason or reasons, embodiments of this invention provides complete flexibility to make such decisions without requiring redesign of the device or regeneration of scan test data, or any loss of test coverage. 
     This disclosure implies a wide variety of alternate embodiments, including, but not limited to, varying meta-scan shift width, crossbar switch matrix width, use of scan reconfiguration blocks only on scan inputs or only on scan outputs, use of multiple scan reconfiguration blocks, etc. The description herein is not intended to limit the scope of this disclosure, and all such alternate embodiments are implicitly included in the invention. 
     Implementing this invention in a production IC provides economic benefits to the IC vendor in the form of greatly increased flexibility in production testing and marketing of the device. Production test costs may be reduced by migrating mature tests to lower cost test equipment with reduced pin count. Packaging costs may be reduced by eliminating unused pins, particularly where a SOC device may be targeted at a wide variety of customer applications with widely varying requirements. New markets may become available with alternate packaging technology such as multi-chip module (MCM), where many device pins may only be bonded internal to the MCM and be unavailable for production testing. 
     Normally, such changes would require either a redesign of the IC in order to maintain full access to all device scan chains, or a severe compromise of device test coverage by discarding some or all scan chains testing. However, using the current invention, the scan reconfiguration block(s) enable full scan chain controllability and observability with an arbitrarily reduced set of test pins, thus requiring neither the cost of a redesign nor the compromise of reduced output device quality. 
     In the preceding description, for purposes of explanation, numerous details are set forth in order to provide a thorough understanding of the embodiments. However, it will be apparent to one skilled in the art that these specific details are not required. In other instances, well-known electrical structures and circuits are shown in block diagram form in order not to obscure the understanding. For example, specific details are not provided as to whether the embodiments described herein are implemented as a software routine, hardware circuit, firmware, or a combination thereof. 
     Embodiments of the disclosure can be represented as a computer program product stored in a machine-readable medium (also referred to as a computer-readable medium, a processor-readable medium, or a computer usable medium having a computer-readable program code embodied therein). The machine-readable medium can be any suitable tangible, non-transitory medium, including magnetic, optical, or electrical storage medium including a diskette, compact disk read only memory (CD-ROM), memory device (volatile or non-volatile), or similar storage mechanism. The machine-readable medium can contain various sets of instructions, code sequences, configuration information, or other data, which, when executed, cause a processor to perform steps in a method according to an embodiment of the disclosure. Those of ordinary skill in the art will appreciate that other instructions and operations necessary to implement the described implementations can also be stored on the machine-readable medium. The instructions stored on the machine-readable medium can be executed by a processor or other suitable processing device, and can interface with circuitry to perform the described tasks. 
     The above-described embodiments of the invention are intended to be examples only. Alterations, modifications and variations can be effected to the particular embodiments by those of skill in the art without departing from the scope of the invention, which is defined solely by the claims appended hereto.