WikiPatents - Community Patent Review
Create Free Account  |  License or Sell Your Patent  |  WikiPatents Marketplace  |  WikiPatents Blog
Username:  Password:  
    
Advanced Search
Serial scan chain architecture for a data processing system and method of operation    
United States Patent5592493   
Link to this pagehttp://www.wikipatents.com/5592493.html
Inventor(s)Crouch; Alfred L. (Austin, TX); Pressly; Matthew D. (Austin, TX); Circello; Joseph C. (Phoenix, AZ); Duerden; Richard (Scottsdale, AZ)
AbstractA scan chain architecture which has a controller (10), and a multiplexer (24) is used to route test data through functional units (12, 14, 16, 18, 20, and 22). The controller (10) receives as input a serial data stream from an STDI terminal and demultiplexes this data stream to one of the functional units (six functional units are illustrated in FIG. 1). Each of the functional units is considered as one scan chain and therefore FIG. 1 has six scan chains (one for each functional unit). In addition, a seventh scan chain couples all output flip-flops in each of the functional units together between an output of the MUX (24) and the STDO terminal/pin. Therefore, a serial scan of a data stream can be done through one functional unit, the multiplexer (24) and into the output flip-flops of each function unit to make testing easier to set-up. In addition, various new scan chain cells and low power methods are used herein.
   














 Title Information Submit all comments and votes
 
Patent Text Patent PDF Print Page Summary File History
Plain text PDF images Print Summary File History
Drawing from US Patent 5592493
Serial scan chain architecture for a data processing system and method

     of operation - US Patent 5592493 Drawing
Serial scan chain architecture for a data processing system and method of operation
Inventor     Crouch; Alfred L. (Austin, TX); Pressly; Matthew D. (Austin, TX); Circello; Joseph C. (Phoenix, AZ); Duerden; Richard (Scottsdale, AZ)
Owner/Assignee     Motorola Inc. (Schaumburg, IL)
Patent assignment
All assignments
Publication Date     January 7, 1997
Application Number     08/304,968
PAIR File History     Application Data   Transaction History
Image File Wrapper   Patent Term   Fees
Litigation
Filing Date     September 13, 1994
US Classification     714/729 324/73.1 714/724 714/733 714/736
Int'l Classification     G01R 031/28
Examiner     Nguyen; Hoa T.
Assistant Examiner     Iqbal; Nadeem
Attorney/Law Firm     Witek; Keith E.
Address
Parent Case    
Priority Data    
USPTO Field of Search     371/25 371/22.3 371/22.1 371/22.4 371/21.1 371/25.1 371/22.5 371/22.6 324/73 R
Patent Tags     serial scan chain architecture data processing method operation
   
Enter a comma (,) or semicolon (;) between multiple tag words/phrases.
Describe this patent:
 Amusing   
 Clever   
 Complex   
 Efficient   
 Historic   
 Important   
 Innovative   
 Interesting   
 Practical   
 Simple   
[no votes]
Patent WIKI

Share information and news about this patent, including information and news about the technology, inventors, company, ligation and licensing.

 References Submit all comments and votes
 
*references marked with an asterisk below are user-added references
 U.S. References
 
Add a new US reference:  
ReferenceRelevancyCommentsReferenceRelevancyComments
5428622
Kuban
714/729
Jun,1995

[0 after 0 votes]
5325367
Dekker
714/718
Jun,1994

[0 after 0 votes]
5285153
Ahanin
324/73.1
Feb,1994

[0 after 0 votes]
5260950
Simpson
714/727
Nov,1993

[0 after 0 votes]
5260949
Hashizume
714/731
Nov,1993

[0 after 0 votes]
5260948
Simpson
714/727
Nov,1993

[0 after 0 votes]
5260947
Posse
714/727
Nov,1993

[0 after 0 votes]
5260649
Parker
714/727
Nov,1993

[0 after 0 votes]
5258986
Zerbe
714/719
Nov,1993

[0 after 0 votes]
5230000
Mozingo
714/732
Jul,1993

[0 after 0 votes]
5229657
Rackley
326/26
Jul,1993

[0 after 0 votes]
5220281
Matsuki, Koji (Kamakura, JP)
714/727
Jun,1993

[0 after 0 votes]
5202978
Nozuyama
714/30
Apr,1993

[0 after 0 votes]
5181191
Farwell
368/113
Jan,1993

[0 after 0 votes]
5119202
Hashimoto
348/302
Jun,1992

[0 after 0 votes]
5107501
Zorian

Apr,1992

[0 after 0 votes]
5097206
Perner
714/733
Mar,1992

[0 after 0 votes]
5054024
Whetsel
714/726
Oct,1991

[0 after 0 votes]
5047710
Mahoney
324/537
Sep,1991

[0 after 0 votes]
5041742
Carbonaro
326/97
Aug,1991

[0 after 0 votes]
4947395
Bullinger
714/730
Aug,1990

[0 after 0 votes]
4860290
Daniels
714/726
Aug,1989

[0 after 0 votes]
4905142
Matsubara
711/163
Dec,1969

[0 after 0 votes]
 Foreign References
 Other References
 Market Review Submit all comments and votes
   
Market Size
Estimate the gross annual revenues of the relevant market sector:
> $10B
$5B - $10B
$2B - $5B
$500M - $2B
$100M - $500M
$10M - $100M
$1M - $10M
$500K - $1M
$100K - $500K
< $100K
[No votes]
$0
 
$0   $2.5B   $5B   $7.5B   $10B
Market Share
Estimate the percentage of the relevant market sector this invention will capture:
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Reasonable Royalty
What percentage of gross sales should the inventor or assignee be paid?
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Public's "Guesstimation" of Royalty Value
Market SizeN/A[No votes]
xMarket ShareN/A[No votes]
xReasonable RoyaltyN/A[No votes]

N/A

License Availablity
If you are NOT the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
License Availablity
If you ARE the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
Competitive Advantage
Does this invention have a significant competitive advantage over similar technologies?
Yes

No



[No votes]
Most helpful competitive advantage comment
[No comments]

Commercial Alternatives
Are there viable commercial alternatives for this invention?
Yes

No



[No votes]
Most helpful commercial alternative comment
[No comments]

 Technical Review Submit all comments and votes
 Claims Submit all comments and votes
 


What is claimed is:

1. A data processor having a scan chain architecture, the scan chain architecture comprising:

a plurality of scan chains wherein each scan chain in the plurality of scan chains has a plurality of serially connected storage elements, each scan chain having a first storage element which has a scan input and a last storage element which has a scan output;

a multiplexer having a plurality of inputs wherein each input in the plurality of inputs is coupled to one scan output from the plurality of scan chains, the multiplexer having a multiplexer output wherein the multiplexer output is selectively coupled to one of the inputs in the plurality of inputs via the multiplexer;

a demultiplexer having a plurality of outputs wherein each output in the plurality of outputs is coupled to one scan input from the plurality of scan chains, the demultiplexer having a demultiplexer input wherein the demultiplexer input is selectively coupled to one output in the plurality of outputs via the demultiplexer; and

an output scan chain having an input coupled to the output of the multiplexer and an output coupled to an output terminal of the data processor, the multiplexer serially coupling the output scan chain to a selected one of the plurality of scan chains to form a total scan chain comprising the selected one of the plurality of scan chains and the output scan chain.

2. The data processor of claim 1 wherein one of the scan chains in the plurality of scan chains is used to serially scan binary data for a circuit module selected from a group consisting of: an operand cache unit, and instruction cache unit, a bus interface unit, an integer processing unit, and a floating point unit.

3. The data processor of claim 1 wherein the demultiplexer is part of a test controller which receives a plurality of test address signals wherein the plurality of test address signals selects one scan chain in the plurality of scan chains to receive a serial bit stream via a serial data input coupled to the demultiplexer input.

4. A data processor comprising:

a plurality of circuit modules;

a plurality of internal storage elements in each circuit module, the plurality of internal storage elements in each circuit module being connected in a serial manner to form an internal scan chain in each circuit module, each internal scan chain having an input and an output wherein the input of each internal scan chain is coupled to a test controller and the output of each internal scan chain is coupled to a multiplexer; and

a plurality of output storage elements in each circuit module, the plurality of output storage elements in each circuit module being different from the plurality of internal storage elements in each circuit module, the plurality of output storage elements in each circuit module being connected in a serial manner to form an output scan chain which is continuous through each circuit module, the output scan chain in each circuit module having an input and an output wherein the inputs and outputs of each of the output scan chains are coupled so that all the output scan chains in the circuit modules are coupled in a serial manner wherein the multiplexer selectively couples one internal scan chain and at least one output scan chain together in a serial manner to a scan data output terminal.

5. The data processor of claim 4 wherein the output scan chain comprises both output storage elements from the circuit modules and storage elements which are coupled to input and output terminals of the data processor.

6. The data processor of claim 4 wherein the test controller has a demultiplexer which is used to direct a serial bit stream from a serial input to one internal scan chain in the data processor.

7. The data processor of claim 6 wherein other internal scan chains which are different from the one internal scan chain in the data processor receive deasserted signals while the one internal scan chain in the data processor receives the serial bit stream, the deasserted signals being used in order to reduce power consumption in the data processor.

8. The data processor of claim 6 wherein other internal scan chains are kept in a serial shift mode to keep deasserted signals shifting through the other internal scan chains while the one internal scan chain in the data processor is functioning in a mode other than the serial shift mode.

9. The data processor of claim 4 wherein the test controller receives as input a serial data stream from an input terminal of an integrated circuit package which contains the data processor.

10. The data processor of claim 4 wherein the test controller receives as input a serial data stream from an the internal scan chains and routes the serial data stream to a terminal of an integrated circuit package which contains the data processor.

11. The data processor of claim 10 wherein the serial data stream is logically altered by a logic circuitry coupled to the multiplexer.

12. The data processor of claim 4 wherein the test controller receives as input an address which is used to select one internal scan chain among internal scan chains as a destination for a serial stream of input data.

13. The data processor of claim 4 wherein the output storage elements of a selected circuit module are time-sequential last storage elements in the circuit module which communicate signals external to the circuit module.

14. The data processor of claim 4 wherein the output storage elements of a selected circuit module are a set of last storage elements encountered within the selected circuit module before a signal exits the selected circuit module.

15. The data processor of claim 4 wherein a storage element in one of either the internal scan chains or the output scan chains comprises:

a local storage element having a clock input for receiving a clock signal, a data input, and a data output;

a first multiplexer having a first input coupled to receive a serial stream of data, a second input, a select input for receiving a select control signal, and an output coupled to the data input of the local storage element;

a second multiplexer having a first input coupled to the output of the local storage element, a second input coupled to a data input, a select input, and an output coupled to the first input of the first multiplexer; and

a logic gate having a first input for receiving an enable signal, a second input for receiving a speed path control signal, and an output coupled to the select input of the second multiplexer.

16. The data processor of claim 4 wherein a storage element in one of either the internal scan chains or the output scan chains comprises:

a local storage element having a clock input for receiving a clock signal, a data input, and a data output; and

a multiplexer having a first input coupled to receive a serial stream of data, a second input coupled to receive data signals, a select input for receiving a select control signal, and an output coupled to the data input of the local storage element.

17. The data processor of claim 4 wherein a storage element in one of either the internal scan chains or the output scan chains comprises:

a local storage element having a clock input for receiving a clock signal, a data input, and a data output;

a first multiplexer having a first input coupled to receive an enable signal, a second input, a select input for receiving a select control signal, and an output coupled to the data input of the local storage element; and

a second multiplexer having a first input coupled to the data output of the local storage element, a second input coupled to a data input, a select input coupled to a serial data input, and an output coupled to the first input of the first multiplexer.

18. The data processor of claim 4 wherein a storage element in one of either the internal scan chains or the output scan chains comprises:

a local storage element having a clock input for receiving a clock signal, a data input, and a data output; and

a logic gate for clearing a value stored in the local storage element.

19. The data processor of claim 4 wherein a storage element in one of either the internal scan chains or the output scan chains comprises:

a local storage element having a clock input for receiving a clock signal, a data input, and a data output;

a first multiplexer having a first input coupled to receive a serial stream of data, a second input, a select input for receiving a select control signal, and an output coupled to the data input of the local storage element;

a second multiplexer having a first input coupled to the output of the local storage element, a second input coupled to a data input, a select input coupled to a control signal, and an output coupled to provide output data; and

a third multiplexer having a first input coupled to the data input, a second input coupled to the data output of the storage element, a select input for receiving an output control signal, and an output coupled to the second input of the first multiplexer.

20. The data processor of claim 4 wherein a storage element in one of either the internal scan chains or the output scan chains comprises:

a local storage element having a clock input for receiving a clock signal, a data input, and a data output;

a first multiplexer having a first input coupled to receive a serial stream of data, a second input coupled to the data output of the local storage element, a select input for receiving a select control signal, and an output coupled to the data input of the local storage element; and

a second multiplexer having a first input coupled to a data input, a second input coupled to the output of the storage element, a select input for receiving an output control signal, and an output.

21. The data processor of claim 4 wherein a circuit module contains a memory wherein the memory has memory outputs, the memory outputs being coupled to memory storage elements wherein the memory storage elements are coupled in series and coupled within one output scan chain.

22. A data processor comprising:

a scan chain having a plurality of serially connected storage cells, each serially connected storage cell comprising:

a storage element having a clock input for receiving a clock signal, a data input, and a data output;

a first multiplexer having a first input coupled to receive a serial stream of data, a second input, a select input for receiving a select control signal, and an output coupled to the data input of the storage element;

a second multiplexer having a first input coupled to the output of the storage element, a second input coupled to a data input, a select input, and an output coupled to the first input of the first multiplexer; and

a logic gate having a first input for receiving an enable signal, a second input for receiving a speed path control signal, and an output coupled to the select input of the second multiplexer.

23. A method for providing a serial data stream to a data processor, the method comprising the steps of:

providing an address to a test controller, the address coupling one serial scan chain from a plurality of scan chains internal to the data processor to an input terminal, each scan chain in the plurality of scan chains having a plurality of serially connected storage elements, the serially connected storage elements of each scan chain defining a circuit module boundary wherein all the serially connected storage elements of each scan chain are within the circuit module boundary;

using the address to couple the one serial scan chain selectively to an output scan chain wherein the output scan chain is a serially connected plurality of storage elements from a plurality of different circuit modules defined by the circuit module boundaries; and

serially shifting the serial data stream into both the output scan chain and the one serial scan chain via the input terminal.

24. The method of claim 23 wherein the step of serially shifting comprises:

serially shifting deasserted values into an unselected serial scan chain, which is different from the one serial scan chain, while the serial data stream is being shifted into the one serial scan chain.

25. The method of claim 23 further comprising the step of:

placing the data processor into a serial shift mode to perform the step of serially shifting.

26. The method of claim 25 further comprising the step of:

placing the data processor into a parallel normal mode of operation after the step of serially shifting to alter a state of the data processor.

27. The method of claim 26 wherein the step of placing comprises:

serially shifting deasserted values into an unselected serial scan chain, which is different from the one serial scan chain, while the serial data stream is being shifted into the one serial scan chain; and

continuing to serially shift deasserted values into the unselected serial scan chain during a time that the one serial scan chain is operating in the parallel normal mode of operation.

28. The method of claim 23 wherein the step of serially shifting comprises:

reducing logic transitions in other serial scan chains which are not selected by the step of providing an address.
 Description Submit all comments and votes
 


FIELD OF THE INVENTION

The present invention relates generally to data processing systems, and more particularly, to serial scan chains in a data processing system.

BACKGROUND OF THE INVENTION

In modern integrated circuit design, a microprocessor is designed in functional blocks, each of which perform a certain task. Some functional blocks are, for example, a prefetch unit, a pipeline execution unit, a cache, a bus interface unit, a floating point execution unit, and the like. These functional blocks have many inputs and output which are coupled to other inputs and outputs of other functional blocks which are not accessible by external pins/terminals. Therefore, if one would want to test, for example, an operand cache unit in isolation, the task would be very complex since the inputs and outputs of the operand data cache (or any functional block for that matter) cannot be accessed readily via the integrated circuit external pins/terminals. In addition, since the external pins/terminals do not have direct access to a functional block's inputs and outputs, setting initial test conditions and reading test results or output values is extremely complicated. A method for testing functional blocks in an efficient manner is needed.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates, in a block diagram, a serial scan chain architecture in accordance with the present invention;

FIG. 2 illustrates, in a block diagram, the a data processor having a serial scan chain architecture in accordance with the present invention;

FIGS. 3-10 illustrate, in circuit diagrams, serial scan chain storage cells which are used to form the scan chains illustrated in FIGS. 1-2;

FIG. 11 illustrates, in a circuit diagram, the MUX 24 of FIG. 1;

FIG. 12 illustrates, in a timing diagram, the scan and test operation of the system of FIGS. 1-2 for speed path testing;

FIG. 13 illustrates, in a block diagram, the low power mode operation of the circuit of FIG. 1; and

FIG. 14 illustrates, in a block diagram form, a circuit which is speed path tested using the method and apparatus from FIGS. 1-13.

It will be appreciated that for simplicity and clarity of illustration, elements illustrated in the FIGURES have not necessarily been drawn to scale. For example, the dimensions of some of the elements are exaggerated relative to other elements for clarity. Further, where considered appropriate, reference numerals have been repeated among the FIGURES to indicate corresponding or analogous elements.

DESCRIPTION OF A PREFERRED EMBODIMENT

In order to understand the present invention, the next several pages will discuss scan architecture and methods in an overview manner. In addition, in the following first few paragraphs, the prior art is compared to the method taught herein in order to differential on a global scale some major differences without going into exact detail. Following these introductory paragraphs, the FIGURES are discussed in detail to specifically discuss the novel scan method and structure.

The present invention provides a scan test architecture for use with a full-scan partitioned logic design (a plurality of functional circuit blocks within a single integrated circuit) implementation that is based upon a single serial scan access port with a single scan shift control port and can conduct scan tests at or above the rated frequency of the integrated circuit in such a manner that frequency dependent faults can be detected and isolated within any targeted partition block within the integrated circuit (IC).

Generally, a FULL-SCAN TEST ARCHITECTURE can be designed into any integrated circuit that is structured so that all of the sequential elements (flip-flops or latches) in the circuit have both a normal data input for a normal mode of computational operation and a scan data input wherein all scan data inputs are coupled in series via a scan path. The serial connection of all the flip-flops or latches via a scan path forms a typically large scan shift register which may be anywhere from two flip-flops in length to thousands of flip-flops in serial length. This serial coupling of storage elements (flip-flops, latches, registers, and the like) allows the state of the integrated circuit to be set to any initial state by serially shifting data into the sequential elements. Once the state is set via the serially shifting through scan data in pins, the circuit can be run in the normal mode of operation (not the scan mode of initial state set-up) for one or more clock cycles to capture the circuits response to the previously scanned-in state.

In many integrated circuits, the scan mode is changed to the normal mode of parallel operation by transitioning a control signal that makes the sequential elements capture data from their functional inputs (normal data inputs) instead of the scan shift inputs. The application of serial state data, transitioning of the control signal or signals, and the collection of the serial response data (i.e., the output of the circuit in response to the initial state) is usually conducted by a tester external to the circuit (such as an Advantest or a Teradyne tester) although built in self test (BIST) is possible and more autonomous.

Therefore, the minimum requirements of a simple FULL-SCAN TEST ARCHITECTURE is to (1) provide the serial input to the internal serial scan shift register, (2) to provide the scan shift/sample control signal, (3) to provide the connections between sequential elements that allow the scan shift register to be constructed, and (4) to provide the serial output of the scan shift register.

Since the inclusion of a simple FULL-SCAN TEST ARCHITECTURE in an integrated circuit design has significant circuit costs in: (1) physical substrate area; (2) transistor and/or logic element count; and (3) performance, there must be some advantage to using it as opposed to other test architectures and methodologies. The most common reasons for newer ICs being designed having a scan architecture are consistency of design and use and independence of application (i.e., any digital circuit regardless of function can be tested by a scan test methodology and tested in a consistent fashion regardless of function). The reduction of test vector generation time by the use of software automatic-test-pattern-generation tools (ATPG), and the reduction of test pattern application time on the tester (thereby reducing the cost of testing) are also advantages of a scan architecture.

There are, however, some cases and conditions that exist where the simple FULL-SCAN TEST ARCHITECTURE is not sufficient to provide the advantages stated above. For example: (1) the number of logic gates on the IC is so large that an ATPG tool cannot operate on the whole device as a single unit; (2) the placing of all sequential elements into a single scan shift register would create a serial sequential depth that exceeds the reasonable memory depth of the tester and requires a long time period to shift in the individual vectors; (3) the existence of non-standard logic constructs such as global chip distributed three-state busses or tri-state buses that can have multiple drivers "in contention" during scan testing; (4) the requirement to speed sort the device by verifying that certain "speed paths" meet their clock-edge to clockedge window; and (5) the requirement to support fault classes other than the single stuck-at fault model that is predominantly associated with scan testing (for example bridging faults, gate AC delay faults, current leakage faults, and path AC delay faults). The above criterion render many prior art scan methods less desirable.

Therefore, a true all-encompassing, widely accepted, and advantageous FULL-SCAN TEST ARCHITECTURE must provide the capability to not only scan test the device, but to provide solutions to all of the adverse conditions listed above. The scan architecture described in the FIGURES herein provides all of these capabilities in a manner wherein many functional elements are shared with scan test elements so that far fewer logical circuit elements are used than the current known state of the art scan implementations.

In overview, the system and method described herein uses a functionally partitioned, multiple selectable, scan chain architecture with a common concatentable "functional" boundary (or partitioning) scan chain, where all of the sequential elements and three-state drive devices used are from a specific restricted set of logic elements. This specific FULL-SCAN TEST ARCHITECTURE provides the capability to independently test a plurality of functional blocks from a single scan test port, one block at a time, where testing occurs at the rated device frequency (or in excess of the rated frequency) of the processor. Therefore, this method and scan architecture minimizes the pin impact of the IC and the test interface requirements to the tester while keeping the logic-under-test size reasonable for an automatic-test-pattern-generation (ATPG) software tool. In addition, the scan chain methodology taught herein incorporates various low power options not available in previous scan methods. The scan method taught herein is significantly different from scan chain architectures that are based on the LSSD methodology which requires a latched base scan chain and multiple test clocks, or clocked flip-flop based scan that relies on gated clock signals to perform the logic partitioning.

In the method/architecture taught herein, the overall IC device is partitioned into smaller disjoint functional blocks where each functional block has its own independent scan chain. All of these independent scan chains are coupled in a parallel manner as illustrated in FIG. 1 herein. Each functional block can undergo testing separately and independently and allows a level of diagnostic isolation within that block. The partitioning of the IC device into disjoint functional blocks for test purposes is problematic in itself since it now creates a set of input and output signals that are buried within the device and are not directly accessible to the external package pins. For example, a bus interface unit (BIU) may be one internal functional block while a operand cache unit (OCU) may be a different functional isolated block wherein each have their own scan chains. Each of the BIU and the OCU may have block inputs and block outputs that are not accessible by I/O pins, input pins, and/or output pins of the integrated circuit (IC) package. In order to conduct scan testing on a partitioned block, the internal sequential elements must be set to a known state by the scan shift operation while simultaneously applying logic signals to the block input signals which may come from some other functional block. This problem is solved herein by the addition of a "partitioning" block output scan chain to the architecture.

After the scan sample cycle (i.e., the testing of the IC by applying clock cycle(s) after scanning in initial data), the state of the scan chain must be shifted out while the state of the partitioned block's outputs are being observed. The problem of providing the inputs to the block was solved by unders