US2004255212A1PendingUtilityA1

Scan stream sequencing for testing integrated circuits

37
Priority: Oct 24, 2000Filed: Jun 4, 2004Published: Dec 16, 2004
Est. expiryOct 24, 2020(expired)· nominal 20-yr term from priority
G01R 31/318586G01R 31/31919G01R 31/318547G01R 31/31921G11C 29/56G01R 31/28
37
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

A system and method for processing scan data for integrated circuit testing. Scan data is divided into three groups of scan data segments: scan-in data segments, scan-out data segments and scan-mask data segments. The sequence of scan data segments in each group constitutes the operative test data in a scan stream. Each scan stream is represented by a table having a row corresponding to each scan data segment in the stream. Each row has four fields: a start address, a segment length, a start pad length and an end pad length. The start address is a pointer to the scan data segment in memory where the scan data segment is stored in a contiguous portion of memory. Scan data segment length is the length in bits of the segment. Start pad length is a delay value measured in number of scan clock cycles that must elapse before processing the respective segment in the scan stream. End pad length is a delay value measured in number of scan clock cycles that must elapse before processing the next start pad length and scan data segment in the scan stream. Scan streams consist of the bit sequence of segment data interposed by dummy data corresponding in length to the start pad and end pad lengths. Scan streams are interleaved by using the pad lengths to time the processing of scan data segments.

Claims

exact text as granted — not AI-modified
We claim:  
     
         1 . A method of processing a scan test data sequence for testing a circuit device, comprising the acts of: 
 separating the scan test data sequence into at least two scan streams, wherein each scan stream includes a sequence of scan data segments; and    for each scan stream:    storing the scan data segments non-contiguously in a memory;    providing processing information associated with each scan data segment; and    testing the circuit device by applying thereto the sequence of scan data segments;    
     
     
         2 . The method of  claim 1 , further comprising the act of providing a pointer to each scan data segment in the processing information associated with the scan data segment.  
     
     
         3 . The method of  claim 2 , further comprising the act of sequencing the pointers in the same order as the sequence of scan data segments.  
     
     
         4 . The method of  claim 2 , further comprising the act of providing each pointer with the start address in the memory of the scan data segment associated with the pointer.  
     
     
         5 . The method of  claim 3 , further comprising the act of providing each pointer with a scan data segment length for the scan data segment associated with the pointer.  
     
     
         6 . The method of  claim 2 , further comprising the act of separating the scan test data sequence into at least a scan-in stream and a scan-out stream, the scan-in stream including a sequence of scan-in data segments, and the scan-out stream including a sequence of scan-out data segments.  
     
     
         7 . The method of  claim 5 , further comprising the act of separating the scan test data sequence into at least a scan-in stream and a scan-out stream, the scan-in stream including a sequence of scan-in data segments, and the scan-out stream including a sequence of scan-out data documents.  
     
     
         8 . The method of  claim 7 , further comprising the act of separating the scan test data sequence into a scan-mast stream including a sequence of scan-mask data segments.  
     
     
         9 . The method of  claim 2 , further comprising the acts of: 
 determining whether the processing information associated with the scan data segment equals one or more first pre-determined values; and    if the processing information associated with the scan data segment equals the first pre- determined value, then processing the scan stream sequentially from a continuous block of the memory starting at a location in the memory indicated by the pointer associated with the scan data segment.    
     
     
         10 . The method of  claim 9 , further comprising the acts of: 
 determining whether the scan data segment length, the start pad length and the end pad length for the scan data segment equal one or more first pre-determined values; and    if the scan data segment length, the start pad length and the end pad length for a scan data segment equal the first pre-determined value, then processing the scan stream sequentially from a contiguous block of the memory starting at a location in the memory indicated by the pointer associated with the scan data segment.    
     
     
         11 . The method of  claim 1 , further comprising the acts of: 
 associating a first indicator with each scan data segment;    determining whether the first indicator equals a second pre-determined value;    if the first indicator equals the second pre-determined value, then processing the scan data segment from information included in the processing information associated with the scan data segment.    
     
     
         12 . The method of  claim 1 , further comprising the acts of: 
 associating a first indicator and a second indicator with each scan data segment;    determining whether the first indicator equals a second pre-determined value;    if the first indicator equals the second pre-determined value, then:    determining whether the second indicator equals a third pre-determined value;    if the second indicator equals the third pre-determined value, then:    retrieving a repeat number from information included in the processing information associated with the scan data segment; and    processing the scan data segment from information included in the processing information associated with the scan data segment consecutively a number of times equal to the repeat number before processing a next scan data segment in the sequence of scan data segments.    
     
     
         13 . A scan sequencing module for an integrated circuit tester, the scan sequencing module comprising: 
 at least one memory which stores scan stream data, wherein the scan stream data includes a plurality of sequences of scan data segments not contiguously located in the at least one memory and associated link table data;    at least one memory controller coupled to the memory, whereby the plurality of scan data segments are retrieved from the memory as determined by the link table data; and    at least one stream controller coupled to the memory controller, whereby scan data segment bits or dummy data bits are transmitted to a device under test as determined by the link table data.    
     
     
         14 . The scan sequencing module of  claim 13 , wherein at least one data buffer is coupled between the stream controller and the scan memory controller.  
     
     
         15 . The scan sequencing module of  claim 13 , further comprising a global sequencer coupled to the stream controllers, whereby scan data is transmitted by the stream controllers in response to each scan increment signal received from the global sequencer.  
     
     
         16 . A method of processing a scan test data sequence for testing a circuit device, comprising the acts of: 
 separating the scan test data sequence into at least two scan streams, wherein each scan stream includes a sequence of scan data segments; and    for each scan stream:    storing the scan data segments in a memory;    providing processing information associated with each scan data segment;    testing the circuit device by applying thereto the sequence of scan data segments;    providing a pointer to each scan data segment in the processing information associated with the scan data segment;    sequencing the pointers in the same order as the sequence of scan data segments;    providing each pointer with a scan data segment length for the scan data segment associated with the pointer;    separating the scan test data sequence into at least a scan-in stream and a scan-out stream, the scan-in stream including a sequence of scan-in data segments, and the scan-out stream including a sequence of scan-out data documents;    separating the scan test data sequence into a scan-mast stream including a sequence of scan-mask data segments;    for each scan data segment, calculating at least one processing delay value;    interleaving the scan data segments in accordance with the at least one processing delay value of each scan data segment;    assigning the processing delay value calculated for each scan-out data segment in the sequence of scan-out data segments to each corresponding scan-mask data segment in the sequence of scan-mask data segments;    calculating the processing delay value for a scan data segment in a current scan interval by aligning the next scan-in data segment so that it is fully scanned on the last scan clock cycle of the current scan interval, and aligning the start of the current scan-out data on the first scan clock cycle of the current scan interval, the current scan interval length being the greater of the next scan-in data length and the current scan-out data length;    associating a start pad length and an end pad length to each processing delay value;    determining whether the scan data segment length, the start pad length and the end pad length for the scan data segment equal one or more first pre-determined values; and    if the scan data segment length, the start pad length and the end pad length for a scan data segment equal the first pre-determined value, then processing the scan stream sequentially from a contiguous block of the memory starting at a location in the memory indicated by the pointer associated with the scan data segment.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.