WikiPatents - Community Patent Review
Create Free Account  |  License or Sell Your Patent  |  WikiPatents Marketplace  |  WikiPatents Blog
Username:  Password:  
    
Advanced Search
Logic circuits systems, and methods having individually testable logic modules    
United States Patent5173904   
Link to this pagehttp://www.wikipatents.com/5173904.html
Inventor(s)Daniels; Martin D. (Houston, TX); Roskell; Derek (Northants, GB2)
AbstractA modular logic circuit is disclosed, where each of the modules may be selected for testing by means of a scan path within the module made up of serial register latches (SRLs), each SRL being connected to predetermined nodes in the module functional circuitry. Each of the modules has a test port, which is independent from the system bus interconnections in the logic circuit, and which has an SRL for receiving serial data for selection of the scan path within the module. Responsive to the logic state stored in a module's selection SRL, the scan path within the module will either be enabled or disabled. After selection of a module or modules for testing, serial data is scanned into the SRLs in the scan path for setting the associated predetermined functional circuitry nodes; after exercise of the functional circuitry, the SRLs in the scan path store the results of the exercise at the predetermined nodes. An additional SRL is contained within each test port, and in the scan path, for storing a logic state corresponding to whether the functional circuitry in the module is to be connected to or disconnected from the system bus during the test sequence. A configuration is further disclosed which has global SRLs in the modules; such global SRLs are always in the scan path, regardless of whether or not the module containing them is selected. Multiplexing of the scan data and the configuration data is also disclosed.
   














 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 5173904
Logic circuits systems, and methods having individually testable logic

     modules - US Patent 5173904 Drawing
Logic circuits systems, and methods having individually testable logic modules
Inventor     Daniels; Martin D. (Houston, TX); Roskell; Derek (Northants, GB2)
Owner/Assignee     Texas Instruments Incorporated (Dallas, TX)
Patent assignment
All assignments
Publication Date     December 22, 1992
Application Number     07/717,170
PAIR File History     Application Data   Transaction History
Image File Wrapper   Patent Term   Fees
Litigation
Filing Date     June 17, 1991
US Classification     714/729
Int'l Classification     G06F 011/00
Examiner     Beausoliel; Robert W.
Assistant Examiner    
Attorney/Law Firm     Holland; Robby T. Grossman; Rene E. , Donaldson; Richard L. ,
Address
Parent Case     This application is a continuation of application Ser. No. 07/639,738, filed Jan. 11, 1991 now abandoned; which is a continuation of Ser. No. 07/377,878 filed Jul. 12, 1989 now abandoned; which is a continuation of Ser. No. 07/057,078 filed on Jun. 2, 1987 now U.S. Pat. No. 4,860,290.
Priority Data    
USPTO Field of Search     371/22.3 371/22.6 371/22.1 371/25.1 371/15.1
Patent Tags     logic circuits systems, methods individually testable logic modules
   
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
4897837
Ishihara
714/726
Jan,1990

[0 after 0 votes]
4872169
Whetsel, Jr.
714/727
Oct,1989

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

[0 after 0 votes]
4710933
Powell
714/730
Dec,1987

[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 logic device, comprising:

functional circuitry, divisible into functional blocks;

a system bus interconnected said functional blocks;

serially interconnected test ports, each of said test ports

associated with one of said functional blocks and comprising:

a first scan path for module enable and control bits, and comprising a module enable latch;

a second separate scan path for data latch bits, and comprising serially interconnected data latches connected to predetermined locations in said functional blocks;

a selector circuit with inputs connected to said first and second scan paths and with control circuitry connected to a first control line; and

a buffer connected between said functional circuitry and said system bus and configurable to disconnect said functional circuitry from said system bus, said logic also device also comprising a test bus comprising said first control line for controlling said selector circuitry, additional control lines for configuring said buffer to disconnect said functional circuitry from said system bus, and clock signal lines.

2. The system of claim 1 wherein:

said second data path additionally comprises global data latches.

3. The system of claim 1 further comprising:

parallel register latches connected to predetermined locations of said functional circuitry.

4. A test port for use in testing a logical circuit, wherein said logical circuit comprises functional blocks and a system bus interconnecting said functional blocks, and wherein said test port is operable for use with another test port, comprising:

a scan data input;

a first scan path for module enable and control bits and comprising a module enable latch;

a second scan path for data latch bits and comprising serially interconnected data latches, wherein one of said serially interconnected data latches is connected to said scan data input;

buffer circuitry connected between said system bus and one of said functional blocks and operable to disconnect said system bus from said functional blocks; and

a test bus; and

control circuitry connected to said test bus for control of said test port.

5. The test port of claim 4 further comprising a selector circuit with inputs fed by said first and second scan paths, and with an output feeding a scan data input of said another test port.

6. A system for testing a circuit, comprising:

the circuit, said circuit functionally divisible into logical blocks;

a system bus interconnecting said logical blocks;

a test bus;

a test port for use with another test port, comprising:

a scan data input;

logic circuits;

a first scan for module, enable and control bits path fed by said scan data input and comprising a module enable latch;

a second separate scan path for data latch bits fed by said scan data input and comprising serially interconnected data latches connected to predetermined locations of said circuit under test, wherein one of said serially interconnected data latches is connected to said scan data inputs;

a selector circuit with control circuitry connected to said test bus, and fed by said first and second scan paths; and

a scan data output fed by said selector circuit and feeding a scan data input of said another test port; and

a buffer interconnected between said circuit under test and said system bus, wherein said buffer has a first state connecting said circuit under test to said system bus and a second state disconnecting said circuit under test from said system bus;

wherein said test bus comprises control lines feeding said selector circuit and logic circuits in said test port, and clock lines feeding said interconnected data latches.

7. The system of claim 6, wherein said control lines comprise:

a first control line connected to said selector circuit for selecting whether said first or second scan path is connected to said scan data output;

a second control line connected to said logic circuits for unconditionally configuring said buffer to disconnect said circuit under test from said system bus; and

a third control line connected to said logic circuits for configuring said buffer to disconnect said circuit under test from said system bus depending on the state of one of said interconnected data latches.

8. A method for testing a circuit comprising the steps of:

selecting a control mode for a selector circuit;

scanning control bits through a first series of scan paths, wherein each of said scan paths of said first series is associated with a test port and comprises a module enable latch;

selecting which test ports are selected by respectively latching said control bits into corresponding module enable latches for each of said test ports;

selecting a data mode for said selector circuit;

scanning data bits through a second series of scan paths, wherein each of said scan paths of said second series is associated with a test port and comprises serially interconnected data latches connected to predetermined locations of said circuit;

latching respectively said data bits into corresponding interconnected data latches;

exercising said circuit;

latching respectively the state of predetermined nodes of said circuit into said corresponding interconnected data latches; and

retrieving output bits from said second series of scan paths, said output bits representing the state of said nodes of said circuit latched into said interconnected data latches; and

comparing said output bits to prestored output bits.

9. The method of claim 8 wherein:

said selecting step is initiated by a signal carried on a control line of a test bus connected to each of said test ports.

10. The method of claim 9 comprising the further step of:

disconnecting portions of said circuit from a system bus in response to a signal carried on a control line of a test bus.
 Description Submit all comments and votes
 


This application is in the field of electronic digital logic circuits, and specifically is directed to circuits which enhance the testability of such logic circuits.

As the technology for manufacturing integrated circuits advances, more and more logic functions may be included in a single integrated circuit device. Modern integrated circuit devices include over 100,000 transistors on a single semiconductor chip, with these transistors interconnected so as to perform multiple and complex functions such as those in a general-purpose microprocessor. The manufacture of such circuits incorporating such Very Large Scale Integration (VLSI) requires, however, that no errors exist in the design of the circuit, and that no manufacturing defect was generated during its manufacture, which preclude it from performing all of the functions that it is intended to perform. This requires verification of the designed circuit prior to its manufacture and also electrical testing of each manufactured circuit.

However, as the complexity of the circuit increases, so does the cost and difficulty of verifying and electrically testing each of the devices in the circuit. From an electrical test standpoint, in order to totally verify that each of the transistors in the VLSI circuit properly function, one must theoretically be able to exercise each of the transistors not only individually (in the digital sense, determining that it is neither stuck-open or stuck-closed), but also in conjunction with the other transistors in the circuit in all possible combinations of operation. In addition, specific circuit configurations in the VLSI circuit may have some of its transistors inaccessible for all but a special combination, thereby hiding a fault unless a very specific pattern of signals is presented. However, the cost of performing such testing on 100% of the manufactured circuits is staggering, considering the high cost of the test equipment required to exercise each circuit in conjunction with the long time required to present each possible combination to each transistor. This has in the past forced integrated circuit manufacturers to test less than all of the active devices in a chip, with the quality levels of the product becoming less than optimal.

Circuit designers have used stuck-fault modeling techniques in improving the efficiency of the testing of such VLSI circuits. Stuck-fault modeling is directed not to stuck-open or stuck-closed defects in individual transistors, but to the effect of such defective transistors (and defective interconnections) resulting stuck-high and stuck-low outputs of the logic circuit. Minimum test patterns are then derived for the exercising of the logic circuit, such test patterns being inputs to the circuit designed to cause stuck-high and stuck-low outputs if defects are present. Such techniques have been successful in improving the test efficiency of VLSI circuits.

In conjunction with the stuck-fault modeling and associated pattern generation, cooperative circuitry may be included in the VLSI circuit specifically directed to improving its testability. One configuration of this cooperative circuitry is a scan path in the logic circuit. The scan path consists of a series of synchronously clocked master/slave latches, each of which is connected to a particular node in the logic circuit. These latches can be loaded with a serial data stream ("scan in") and can present their contents to the nodes in the logic circuit, presetting the logic circuit nodes to a predetermined state. The logic circuit then can be exercised in normal fashion, with the result of the operation at the latch nodes stored in the latches. By serially unloading the contents of the latches ("scan out"), the result of the operation at the associated nodes is read. Repetition of this operation with a number of different data patterns effectively tests all necessary combinations of the logic circuit, at reduced test time and cost. Techniques for scanning such data are discussed by E. J. McCluskey in "A Survey of Design for Testability Scan Techniques", VLSI Design (Vol. 5, No. 12, pp. 38-61, December 1984).

Also as this technology is advancing, users of integrated circuits are desiring specially designed and constructed integrated circuits, for performing functions specific for the user's application. The genre of such integrated circuits has been termed Application Specific Integrated Circuits (ASIC). For an ASIC device to be cost-competitive with general purpose microcomputers which may have the special function software programmable, and cost-competitive with a board design made up of smaller scale integrated circuits, the design time of the ASIC circuit must be short and the ASIC circuit must be manufacturable at a low cost. Accordingly, it is useful for such circuits to be modular in design, with each of the modules performing a certain function, so that a new circuit may be constructed for a specific purpose by the combining of previously-designed circuit modules. Such an approach can also be used for non-ASIC microcomputers and microprocessors. Regardless of the end product, the use of a modular approach allows the designer to use logic which has previously been verified, and already been proven as manufacturable. However, if logic modules which utilize a single scan path in their original placement in an integrated circuit, are placed into a new circuit application, new test patterns will be required for the new device, thereby lengthening the design/manufacture cycle time. In addition, the destruction of the original scan path may reduce the effectiveness of the scan path in the new device.

As described in copending U.S. applications Ser. Nos. 790,569, 790,543, 790,541 and 790,598, all filed Oct. 23, 1985 and all assigned to Texas Instruments Incorporated, a modular approach to utilizing scan paths and other testability circuits has been used and provides thorough coverage of all possible faults in an efficient manner. However, the described approach utilizes system buses to set up and operate the scan test, so that even though each of the modules is tested independently, the test pattern designed for a given module depends upon the operation of other modules in the logic circuit for purposes of bus control and module selection. This results in the testability of a particular module depending upon the fault-free operation of other modules. In addition, the test equipment computer program which sets the conditions for test of a given module depends upon the position of the module relative to other modules, and upon the operating features of such other modules. While reduced test time and cost are thus achieved by such modularity, the use of system buses to load and unload the scan paths in the individual modules not only may affect the operation of the particular module, but is likely to also preclude "porting" of the test pattern and program for a given module from one logic circuit to another.

It is therefore an object of this invention to provide a test port for a logic module, so that the test data and enabling of a scan path within the module may be made independent of the functional architecture of the logic circuit containing the module.

It is a further object of this invention to provide such a test port which provides isolation of the particular logic module from other modules during the test operation.

It is a further object of this invention to provide such a test port which allows enabling of the module's scan path without requiring the operation of other modules in the logic circuit.

It is a further object of this invention to provide such a test port which can allow enabling of the scan path within a module while other module scan paths are enabled.

It is a further object of this invention to provide such a test port which uses a single clock to load the scan paths in all modules having the port.

Other objects and advantages of this invention will be apparent to those of ordinary skill in this field, with reference to the following specification and accompanying drawings.

SUMMARY OF THE INVENTION

The invention may be incorporated into a logic circuit which is organized in a plurality of functional modules, and where communication among the modules occurs via a system bus. Testing of a functional module occurs through a scan path comprised of a series of data latches, each of the latches connected to a node in the functional circuitry. The scan paths of the modules are connected in a series among each other, so that a single dynamically configurable scan path exists in the logic circuit. Data is "scanned", or shifted, into the data latches for application to said functional circuitry nodes; after the operation of the functional circuitry, the latch data is scanned out for analysis of the results. The modules further comprise a module enable latch which, when loaded with a particular logic state, enables the scan path in the module. When the module is not selected, the scan path is bypassed, so that data may be scanned through the module to the selected module, without passing through the scan paths of the unselected modules. The module enable latches may themselves be interconnected into a scan path, separate from the data scan path, so that the function of enabling the modules may be done externally from the logic chip through a minimum of device pins, thereby not requiring intervention of other portions of the logic circuit (e.g., the CPU) in the selection of a module or modules for test. The module enable scan path may have a separate input and output from the data scan path, or it may be multiplexed with the data scan input and output of the device. During the testing of a given module, the test port can also be operable to disable the system bus from the functional circuitry in the module, so that control of the system bus by the CPU or another module is not required for performing the test function and so that the operation of unselected modules does not interfere with a module under test.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of a modular logic circuit according to the prior art.

FIG. 2 is a block diagram of two of the modules in the logic circuit of FIG. 1.

FIG. 3 is a schematic diagram of a serial register latch.

FIG. 3a is a timing diagram for clock signals used in operation of the serial register latch of FIG. 3.

FIG. 4 is a block diagram of a modular logic circuit constructed according to the invention.

FIG. 5 is a block diagram of two of the logic modules of FIG. 4 constructed according to a first embodiment of the invention.

FIG. 6 is an electrical diagram, in schematic form, of one of the modules shown in FIG. 5.

FIG. 6a is an electrical diagram, in schematic form, of another embodiment of the module of FIG. 6.

FIG. 7 is a timing diagram illustrating the operation of the test function of the first embodiment of the invention.

FIG. 8 is a block diagram of two logic modules constructed according to a second embodiment of the invention.

FIG. 9 is an electrical diagram, in schematic form, of one of the modules shown in FIG. 8.

FIG. 10 is a timing diagram illustrating the operation of the test function of the second embodiment of the invention.

FIG. 11 is an electrical diagram, in schematic form, of another embodiment of a module according to the invention.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

Referring to FIG. 1, logic circuit 10 is shown according to the prior art. Logic circuit 10 of FIG. 1 is a microcomputer, having on-board memory consisting of read-only memory (ROM) 7 and random access memory (RAM) 9. Certain logic functions, such as timing, peripheral and communication interfacing, and analog/digital conversion, is performed by logic modules 26a through 26c, each of which are connected to control bus 12, address bus 16, and data input/output bus 20. Of course, any number of logic modules 26 may be included in logic circuit 10 and connected to buses 12, 16 and 20; three such modules 26 are illustrated in FIG. 1 by way of example. Access to buses 12, 16 and 20 is controlled by bus/system controller 13, which itself is under the control of central processing unit (CPU) 15. CPU 15 is a central processing unit for the execution of programming instructions, as is well known in the art. CPU 15 is controlled by control ROM 17, which is used to decode instructions received from ROM 7 or RAM 9 via memory bus 11. CPU 15 is responsive to the output of control ROM 17 to perform the desired operations according to the decoded program instruction, including control of system/bus controller 13 so that the necessary access to address bus 16 and data input/output bus 20 by modules 26 occurs, via the appropriate signals on control bus 12. External interface to logic circuit 10 is done by way of terminals 18 shown in FIG. 1 as connected to modules 26 and system/bus controller 13; external connection of course may also be made by way of terminals 18 connected to the other portions of logic circuit 10, depending upon the function to be carried out by logic circuit 10.

Logic circuit 10 of FIG. 1 has scan paths and associated circuitry incorporated into modules 26 for facilitation of electrical test. The data path into these scan paths is shown in FIG. 1 by the line SDI entering module 26a, lines SDM serially interconnecting modules 26a, 26b and 26c, and line SDO exiting module 26c. As disclosed in said copending U.S. Ser. Nos. 790,569, 790,543, 790,541 and 790,598, lines SDI and SDO may instead be configured as buses, by interconnection to each of modules 26 in logic circuit 10; the arrangement shown in FIG. 1 is by way of example only.

A schematic diagram of an example of a scan path and associated circuitry is shown in FIG. 2, in the context of two modules 26a and 26b. As disclosed in said copending U.S. Ser. Nos. 790,569, 790,543, 790,541 and 790,598, each of the modules 26 are addressable for test purposes via address bus 16, by way of address decoder/selector 52. Each of the modules further include scan register latches (SRLs) 34a through 34n, the output of each being connected to predetermined nodes in functional circuitry 31 of each of the modules 26. In module 26a, the input of SRL 34a is connected to scan data in line SDI via buffer 48, and the output of SRL 34n is connected to scan data line SDM via buffer 50; similarly, in module 26b the input of SRL 34a is connected to scan data line SDM via its buffer 48, while the output of SRL 34n is connected to scan data out line SDO via its buffer 50. In each module 26, buffers 48 and 50 are controlled by address decoder/selector 52, which receives signals on address bus 16 and control bus 12. Buffer 51 in module 26a is connected between line SDI and line SDM, and is controlled by address decoder/selector with the same signal as which controls buffers 48 and 50, after inversion by inverter 49. Similarly, buffer 51 in module 26b is connected between line SDM and line SDO and is controlled by the inverted signal controlling buffers 48 and 50. It should be noted that functional circuitry 31 is also connected to address bus 16 and control bus 12 for use in the normal operating mode of module 26, although such connection is not shown in FIG. 2 for the sake of clarity. Functional circuitry 31 is of course connected to data input/output bus 20.

Within each module 26, SRLs 34 are serially interconnected so that data can be shifted from buffer 48 through SRLs 34 to buffer 50, responsive to shift clock signals appearing on line 54 shown in FIG. 2. Line 54 carries one or more clock signals required for the serial communication of data among SRLs 34, said clock signals generated from the system clock of logic circuit 10. While a single line 54 is shown in FIG. 2 for the sake of clarity, more than one line may bring in said clock signals, depending upon the number of stages in each of SRLs 34. For example, if each of SRLs 34 are master/slave latches, two clock signals carried on two lines are necessary. Line 54 may be one of the lines in control bus 12, or may be otherwise brought in to modules 26.

In operation of the test sequence, control signals on control bus 12 will be generated by system/bus controller 13, for receipt by address decoder/selector 52 to indicate that logic circuit 10 is to be placed in test mode. Address decoder/selector 52 in each module 26 will then decode the the logic state of the lines of address bus 16 to determine if its module 26 is being addressed. If its module 26 is being addressed, address decoder/selector 52 will enable buffers 48 and 50 and, because of inverter 49, disable buffer 51. As an example, if module 26a were addressed with module 26b not addressed in test mode, buffers 48 and 50 in module 26a would be enabled (and buffer 51 in module 26a disabled) so that SRLs 34a through 34n would be connected between line SDI and line SDM. Buffers 48 and 50 in module 26b would be disabled and buffer 51 enabled therein, module 26b not being addressed, so that SRLs 34a through 34n in modules 26b are effectively removed from the scan chain. The data on line SDM from SRL 34n in module 26a would then appear on line SDO via buffer 51 of module 26b. In this example, as described in said copending U.S. application Ser. Nos. 790,569, 790,543, 790,541 and 790,598, module 26a can be tested by the scan chain of SRLs 34 therein, without requiring the scanning of data through SRLs 34 in module 26b.

Each of SRLs 34 can be constructed in any of a number of well-known forms for latches. It is preferable, however, to use two-stage latches for SRLs 34 for purposes of data integrity. Examples of latches useful as SRLs 34 are described in U.S. Pat. No. 4,667,339, issued on May 19, 1987 and assigned to Texas Instruments Incorporated, and also in said copending U.S. application Ser. Nos. 790,569, 790,543, 790,541 and 790,598.

By way of example, one preferred construction of an SRL 34 is schematically shown in FIG. 3. SRL 34 shown in FIG. 3 is a static master/slave latch, having two inputs SCANIN and IN, connected via pass gates 100 and 103 to a master stage of SRL 34. Pass gate 100 is controlled by a clock signal MSTR, while pass gate 103 is controlled by a clock signal CLK. Clock signal MSTR is generated during the scan operation, and clock signal CLK is generated during the functional operation of the logic circuit. The master stage of SRL 34 consists of inverters 102 and 104, with the output of inverter 104 connected to the input of inverter 102 and with the input of inverter 104 connected to the output of inverter 102. A pass gate 101 connects the output of inverter 102 to the slave stage of SRL 34; pass gate 101 is controlled by clock signal SHF which, as discussed above, is the data shift signal utilized in modules 26 of the logic circuit. The slave stage is similarly constructed by way of inverters 106 and 108, with the output of one connected to the input of the other. Any of a number of well known configurations of logic inverters may be used for inverters 102, 104, 106, and 108; the actual construction is likely to depend upon the technology used in the construction of the functional circuitry 31 in the logic circuit. It is useful, however, for the transistors comprising inverters 104 and 108 to have less drive capability than the transistors comprising inverters 102 and 106, so that if a logic state is driven at the input of inverters 102 and 106 which is opposite that of the state stored by the stages of SRL 34, inverters 102 and 106 will change state responsive to the input (rather than having inverters 104 and 108 control the state of the latch stage regardless of the input). Such design considerations can easily be incorporated by one of ordinary skill in the art.

In operation, clock signals MSTR, CLK and SHF are derived from a system clock which is externally presented to the logic circuit, or may be generated by the logic circuit itself having reference to a crystal oscillator connected externally thereto. Clock signals MSTR and CLK are signals substantially in phase with one another, except that clock signal MSTR is generated only during scan operations and that clock signal CLK is generated only during functional operations. Clock signal SHF is generated during each system clock cycle in such a manner that it does not overlap clock signals MSTR or CLK. FIG. 3a illustrates the timing relationship among clock signals MSTR, CLK and SHF in both scan and functional cycles. The two-phase non-overlapping clocks controlling SRL 34 prevents both pass gates 100 (or 103) and 101 from being conductive at the same time. Clock signals MSTR, CLK and SHF can generated from a system clock signal in a manner well known in the art; as will be described below, the generation of clock signal MSTR can be gated by an external signal for enabling the scanning in and out of data through the scan chain. SRL 34 of FIG. 3 therefore operates in such a fashion that the master stage of inverters 102 and 104 is loaded responsive to either line MSTR or line CLK going to a "1" logic state, and so that the slave stage of inverters 104 and 106 are loaded responsive to line SHF going to a "1" logic state.

Since clock signal MSTR is operative during scan operations, the connection of a series of SRLs 34 with line OUT connected to line SCANIN of the next succeeding SRL 34 allows the shifting of data through the series of SRLs 34 as the scan chain. During functional operation, however, clock signal MSTR is held to a low, inactive, logic level which effectively disables the scan chain. With the activation of clock signal CLK during functional cycles (pass gate 100 non-conductive), the logic state on line IN will be loaded into the master stage of SRL 34, and with the next pulse of clock signal SHF loaded into the slave stage of SRL 34. Line IN of SRL 34 is connected to a node in the functional circuitry so that the logic state of the node is effected by SRL 34 upon pass gate 103 connecting the node to the input of inverter 102 during functional operation. It should also be noted that line OUT of SRL 34 may also be connected to a node of the functional circuitry so that the state of the node may be set by inverter 106. The node to which line OUT is connected may be the same node as that connected to line IN, for control and observation of the same point in the functional circuitry with a single SRL 34.

In the operation of logic circuit 10 of FIGS. 1 and 2 in its test mode, a module 26 is addressed by way of an address signal presented on address bus 16 by bus/system controller 13, in conjunction with control signals on control bus 12 which tells each of the modules that the signals on address bus 16 is a module address for test purposes. The modules 26 are assigned a unique module address. Address decoder/selector 52 in the module 26 corresponding to the module address signal on address bus 16 will enable buffers 48 and 50, so that a serial path exists from line SDI to line SDO, through SRLs 34a through 34n in the selected module. Address decoder/selector 52 in the unselected ones of modules 26 will not have their buffers 48 and 50 enabled, and accordingly the signals appearing on line SDI will be of no effect to the SRLs 34 in the unselected modules, and also line SDO will be unaffected by the contents of SRL 34n in the unselected modules. A test data pattern is then serially scanned into SRLs 34 of the selected module by the application of digital data to line SDI and generation of the clock signals on lines MSTR and SHF. The test data pattern is the series of digital data stored in the SRLs 34 at the end of the scan operation, and which will be applied to the nodes of the functional circuitry of the module connected to line OUT of each of the SRLs 34. After the desired test data pattern is loaded into the SRLs 34, the functional circuitry of the selected one of modules 26 is exercised by CPU 15 via control bus 12 in a predetermined manner corresponding to the desired test of the module with the scanned test pattern, during which a high level of clock signal CLK occurs. As discussed above relative to FIG. 3, the pulse of clock signal CLK will load the master stage of SRLs 34 with the logic state of line IN, corresponding to the logic state of the functional circuitry node. The contents of SRLs 34 in the selected module are then scanned out onto line SDO by way of a series of clock signals on lines MSTR and SHF. By sensing the serial data on line SDO and comparing it to the expected serial data for a perfect module presented with that particular test data pattern and exercise, the user (via automatic test equipment) can determine whether or not the selected module 26 has a defect and, in many cases, the location of the defect in the functional circuitry. A number of different test data patterns may be utilized for the same one of modules 26 for a thorough test sequence.

The addressability of the individual modules 26 provides the advantage that the scan data for a given module need not be scanned through intervening modules. Accordingly, the overall test time for logic circuit 10 is merely the sum of the test times for each individual module, since the scanning in and out of data need not be done through all intervening modules. However, it is apparent from FIG. 1 that a user may test modules 26 only by so instructing CPU 15, which in turn directs the operation of system/bus controller 13. Accordingly, CPU 15 and system/bus controller 13 must also be operable for the test of modules 26 to be valid.

FIGS. 1 and 2 illustrates that data input/output bus 20 is connected to functional circuitry 31 in each of the modules 26, for access to and from registers therein. Some of these registers may be parallel register latches (PRLs) as disclosed in said copending U.S. application Ser. Nos. 790,569, 790,543, 790,541 and 790,598, which can further improve the testability of the modules in such a configuration. However, the use of data input/output bus 20 for the loading and unloading of test data also presents certain problems, if done without control of the interface to data input/output bus 20 being coupled to the selection of the module as described with respect to the preferred embodiments of the invention hereinbelow. For example, the unselected ones of modules 26 must not present data on data input/output bus 20 which conflicts with the loading and unloading of data into the selected one of modules 26. Conversely, the loading and unloading of data into selected one of modules 26 via data input/output bus 20 may also disturb the contents of registers in the unselected ones of modules 26. Such problems reduce the ability to use a previously generated module test algorithm in a new logic circuit.

In addition, it is also desired to use the benefits of modular scan paths in testing CPU 15 and system/bus controller 13. However, the implementation of the modular scan paths in these modules of the microcomputer necessarily requires the bus arrangement for addressing the modules and for scanning data which is different from that for modules 26. Such special test interface circuitry will similarly reduce the portability of a module test algorithm from one logic circuit realization to another realization using the same module.

Referring now to FIG. 4, logic circuit 10' is shown which incorporates the present invention. Each of the blocks in logic circuit 10' correspond to similar blocks in logic circuit 10 of FIG. 1, with the addition of test port 28 in each of CPU 15, system/bus controller 13 and modules 26a through 26c. Test bus 64 interconnects each of the test ports 28 among the modules, and is controlled by decoder 65 which interprets signals from external terminals 67. The other external terminals 18 of logic circuit 10 are omitted from FIG. 4 for the sake of clarity. As will be explained in greater detail below, test bus 64 provides control signals to test ports 28 to enable, and to operate, the test mode of the logic circuit. Decoder 65 provides simple combinational logic for interpretation of the inputs at the external terminals; of course, if the user wished to directly control test ports 28 from external to logic circuit 10', decoder 65 would not be required.

External terminals are shown connected to lines SDI and SDO, as in FIG. 1. In addition, line MSENB is connected to test port 28 of CPU 15 of logic circuit 10', and may be connected to an external terminal or internally generated. Lines MSENBI serially interconnect test port 28 of CPU 15 to the other of test ports 28. Lines MSENB and MSENBI are used in the selection of one (or more) of modules 26 (or CPU 15 or system/bus controller 13) for test mode; this selection, as will be discussed below, is done by the scanning in of a module select pattern in a fashion similar to that of the data scan path. The ability to scan in the module enable information via lines MSENB and MSENBI removes the necessity in each of the modules 26 for a decoder connected to address bus 16, and also allows the inclusion of CPU 15 and system/bus controller 13 into the same scan path system despite the dissimilar functional bus interconnections of these functions. As is evident from FIG. 4, the use of test bus 64 is not dependent upon the architecture of the logic circuit relative to its functional buses. As will be further described hereinbelow, this provides for easy portability of the test pattern for a module from a first logic circuit realization to another, with minimum customization required because of the functional system bus architecture.

It should be noted that, while FIG. 4 illustrates that logic circuit 10' has a microcomputer architecture, the utilization of the subject invention is independent of the function and architecture of logic circuit 10'. As is well known in the art, the use of scan paths for test of a logic circuit is not dependent upon, and does not require consideration of, the functional application of the logic circuit under test. Accordingly, the instant invention is applicable to any type of logic circuit which can be divided into modules for test purposes. In addition, while FIG. 4 shows functional blocks of circuitry as the testable modules, the test boundaries need not correspond to the functional boundaries of the various modules; for example, CPU 28 may have a plurality of selectable test modules therein. Of course, the full benefit of the instant invention in allowing portability of the test patterns can be achieved only when the ported functional modules contain complete test modules.

Referring now to FIG. 5, two modules 26a and 26b of the logic circuit of FIG. 4, constructed according to a first embodiment of the invention, are shown in block diagram form. It is of course understood that any number of modules may be used in the practice of the subject invention, as illustrated in FIG. 4, with the further interconnection among said modules done similarly to the interconnection shown in FIG. 5. FIG. 5 is limited to illustrating two modules for the sake of clarity. System bus 60 is shown as connecting to each of modules 26a and 26b. System bus 60 represents any or all of the buses of FIG. 4, i.e., address bus 16, data input/output bus 20 and control bus 12. As will become apparent from the description hereinbelow, the functions of address bus 16, data input/output bus 20, and control bus 12 are independent from the test function; accordingly, it is accurate from a descriptive standpoint to consider system bus 60 as performing any or all of said functions. System bus 60 is bidirectionally connected to functional circuitry 31 of modules 26a and 26 b via buffer 62. As discussed above, functional circuitry 31 may contain PRLs to further assist the test operation of the module; any such PRLs may be loaded and unloaded to and from system bus 60 via buffer 62. Buffer 62 is under the control of signal BUSENB, coming from test ports 28a and 28b as will be explained below.

Besides functional circuitry 31, modules 26a and 26b each contain SRLs 34. The number of SRLs 34 contained in each of modules 26a and 26b are not dependent upon the construction of neighboring modules, but depend upon the number of points in functional circuitry 31 of each module which the designer wishes to observe and/or control in test mode. By way of example, module 26a contains three SRLs 34a through 34c, while module 26b contains two SRLs 34a and 34b. Each of said SRLs are connected to a predetermined point in functional circuitry 31 of the respective module 26a and 26b.

Test ports 28a and 28b comprise the interface between each of the modules for purposes of loading and unloading the scan data. The input to first SRL 34a in each of modules 26a and 26b comes from test port 28a and 28b, respectively; the output of the last SRL (34c in module 26a and 34b in module 26b) is connected to test port 28 of the respective module 26a and 26b. As will be discussed in greater detail below, SRLs 34 will, when their respective module 26a or 26b is enabled, comprise a scan path from line SDI to line SDO, with data shifting therethrough responsive to the clock signals on line MSTR. Of course, as described above, line SHF is also necessary for the shifting of data through SRLs 34, but is not shown in FIG. 5 for purposes of clarity. As discussed above, clock signal CLK controls the loading of SRLs 34 from functional circuitry 31; clock signal CLK may also be utilized for other clock functions within functional circuitry 31. As discussed above, the signals on lines MSTR (and CLK, as the case may be) do not overlap with the clock signals on line SHF. Test ports 28a and 28b are serially interconnected via line SDM, so that the scan data can come from a single source and proceed to a single output. As shown in FIG. 4, lines SDI and SDO may connect to external terminals of the logic device, for direct access by the user and by automatic test equipment.

Test bus 64 presents a select shift signal on line MSMSTR, a test enable signal on lines TEST and a scan enable signal on lines SCAN. The test enable signal on line TEST enables control of signal BUSENB during test mode only; during normal functional operation of the logic circuit containing modules 26a and 26b, the test enable signal on line TEST unconditionally enables buffer 62 in each of the modules so that communication via system bus 60 is controlled as per normal operation. The scan enable signal on line SCAN enables data to be scanned through the SRLs 34 of the enabled module 26a or 26b without interference by or to system bus 60.

Test ports 28a and 28b further serve the purpose of enabling the desired module 26a or 26b (and as will be discussed later, possibly both modules 26a and 26b). A module enable signal is received on line MSENB by test port 28a of module 26a, and is shifted to module 26b via line MSENBI. As will be described below, a latch is contained in each of test ports 28a and 28b which is loaded with the state of line MSENB responsive to a select shift signal on line MSMSTR. Thus, a serial data stream on line MSENB will configure the scan paths in the series of modules 26 so that one or more of said scan paths are enabled. For example, a "1" logic state stored by test port 28a will enable the scan path in module 26a while a "0" logic state stored in test port 28a will cause the scan path in module 26a to not be enabled. Line MSENB therefore allows the addressing and selection of an individual module in logic circuit 10' without using system bus 60. Accordingly, as shown in FIG. 4, the test function may be invoked, and data scanned into SRLs 34, of modules 26 without the intervention of CPU 15 and system/bus controller 13; in addition, CPU 15 and system/bus controller 13 may themselves by tested using the modular scan path technique, even if not connected to system bus 60. It will be apparent that pulses on line MSMSTR should occur only during such time as the configuration data is being loaded into test ports 28.

Line SCAN may also be used to gate the generation of the clock signal on line MSTR,