WikiPatents - Community Patent Review
Create Free Account  |  License or Sell Your Patent  |  WikiPatents Marketplace  |  WikiPatents Blog
Username:  Password:  
    
Advanced Search
Logic circuit having individually testable logic modules    
United States Patent4860290   
Link to this pagehttp://www.wikipatents.com/4860290.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 if 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 4860290
Logic circuit having individually testable logic modules - US Patent 4860290 Drawing
Logic circuit 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     August 22, 1989
Application Number     07/057,078
PAIR File History     Application Data   Transaction History
Image File Wrapper   Patent Term   Fees
Litigation
Filing Date     June 2, 1987
US Classification     714/726
Int'l Classification     G01R 031/28
Examiner     Smith; Jerry
Assistant Examiner     Beausoliel; Robert W.
Attorney/Law Firm     Bassuk; Lawrence J. DeMond; Thomas W. , Sharp; Melvin ,
Address
Parent Case    
Priority Data    
USPTO Field of Search     371/25 371/15 324/73 R 324/73 AT
Patent Tags     logic circuit 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
4710933
Powell
714/730
Dec,1987

[0 after 0 votes]
4710931
Bellay
714/730
Dec,1987

[0 after 0 votes]
4701921
Powell
714/727
Oct,1987

[0 after 0 votes]
4698588
Hwang
324/73.1
Oct,1987

[0 after 0 votes]
4597042
d'Angeac
714/30
Jun,1986

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

a system bus; and

a plurality of logic modules, at least one of said modules comprising:

functional circuitry connected to said system bus;

a shift input for receiving a shift signal;

a plurality of data latches, each of said data latches connected to a predetermined location in said functional circuitry, and said plurality of data latches serially interconnected so that the data stored in said data latches shift in series responsive to said shift signal;

a scan data input, connected to a first one of said plurality of data latches;

a scan data output;

a module enable latch for storing a first logic state corresponding to its module being enable, and for storing a second logic state corresponding to its module not being enabled;

bypass means, connected to said module enable latch, to said scan data output, and to a second one of said plurality of data latches for connecting said second one of said plurality of data latches to said scan data output responsive to said module enable latch storing said first logic state, and for disconnnecting said second one of said plurality of data latches from said scan data output responsive to said module enable latch storing said second logic state; and

bus control means, connected to said scan data input and to said functional circuitry, for disconnecting said functional circuitry from said system bus responsive to data received at said scan data input.

2. The logic circuit of claim 1, wherein said bus control means comprises:

a bus control latch, connected to said scan data input, for storing a logic state; and

buffer means, connected between said functional circuitry and said system bus, and connected to said bus control latch so that said functional circuitry is connected to, or disconnected from, said system bus responsive to the data stored in said bus control latch.

3. The logic circuit of claim 1, wherein said bypass means is further connected to said scan data input, and is for connecting said scan data input to said scan data output responsive to said module enable latch storing its second logic state.

4. The logic circuit of claim 1, wherein said one of said modules further comprises:

an enable signal input, connected to said module enable latch, for receiving a module enable signal indicating whether or not its module is to be enabled; and

an enable signal output, connected to said module enable latch for outputting the logic state stored by said module enable latch.

5. The logic circuit of claim 4, wherein the enable signal output of a first one of said modules is connected to the enable signal input of a second one of said modules.

6. The logic circuit of claim 5, wherein said one of said modules further comprises:

an enable shift input for receiving an enable shift signal, said enable shift input connected to said module enable latch;

and wherein each module enable latch is loaded with the logic state corresponding to its enable signal input responsive to said enable shift signal.

7. The logic circuit of claim 6, wherein said bypass means comprises:

a bypass latch having an output connected to said scan output; and

control logic having a first input connected to said module enable latch, having a second input connected to said second data latch, having a third input connected to said scan input and having an output coupled to said bypass latch so that said bypass latch stores data corresponding to said second data latch responsive to said module enable latch storing said first logic state, and corresponding to said scan data input responsive to said module enable latch storing said second logic state.

8. The logic circuit of claim 7, wherein said bus control means comprises:

buffer means, connected between said functional circuitry and said system bus, and connected to said bypass latch so that said functional circuitry is connected to, or disconnected from, said system bus responsive to the data stored in said bus control latch.

9. The logic circuit of claim 8, wherein said one of said modules further comprises:

a scan enable input for receiving a scan enable signal indicating whether or not said logic circuit is in a scan mode, said scan mode corresponding to data being scanned from module to module in said logic circuit;

and wherein said bypass means further comprises:

buffer control logic, having a first input connected to said bypass latch, having a second input connected to said scan enable input, and having an output connected to said buffer means, so that said buffer means also disconnects said functional circuitry from said system bus responsive to said scan enable signal indicating that said logic circuit is in said scan mode.

10. The logic circuit of claim 8, wherein said one of said modules further comprises:

a test control input for receiving a test control signal indicating whether said logic circuit is in a normal operating mode or in a test mode;

and wherein said bus control means further comprises:

buffer control logic, having a first input connected to said bypass latch, having a second input connected to said test control input, and having an output connected to said buffer means, so that said buffer means disconnects said functional circuitry from said system bus responsive to said test control signal indicating that said logic circuit is in said test mode, depending upon the data stored in said bypass latch.

11. The logic circuit of claim 7, said bypass means further comprises:

a gate, having inputs connected to said module enable latch and to said shift signal, and having its output connected to each of said plurality of latches, for disabling said shift signal from causing the data in said data latches from shifting in series therethrough responsive to said module enable latch storing said second logic state.

12. A logic circuit comprised of a plurality of modules, at least one of said modules comprising:

functional circuitry for performing a predetermined logic function;

a shift input for receiving a shift signal;

a scan data input;

a scan data output;

a global data latch, connected to a predetermined location in said functional circuitry;

a local data latch, connected to a predetermined location in said functional circuitry, and connected in series with said global data latch, said scan data input and said scan data output so that the data stored in said global and local data latches shift in series from said scan data input to said scan data output responsive to said shift signal;

a module enable latch for storing a first logic state corresponding to its module being enabled, and for storing a second logic state corresponding to its module not being enabled; and

bypass means, connected to said module enable latch and connected to said local data latch, for disconnecting said local data latch from said series responsive to said module enable latch storing its second data state, so that data shifts from said scan data input through said global data latch to said scan data output responsive to said shift signal.

13. The logic circuit of claim 12, wheren said global data latch is connected to said scan data input;

and wherein said local data latch is connected in series between said global data latch and said scan data output.

14. A logic circuit comprised of a plurality of modules, at least one of said modules comprising:

functional circuitry for performing a predetermined logic function;

a shift input for receiving a shift signal;

a scan data input;

a scan data output;

a plurality of global data latches, each global data latch connected to a predetermined location in said functional circuitry, said plurality of global data latches connected in series so that data shifts therethrough responsive to said shift signal;

a plurality of local data latches, each local data latch connected to a predetermined location in said functional circuitry, said plurality of local data latches connected in series with said plurality of global data latches, with said scan data input and with said scan data output so that the data stored in said global and local data latches shift in series from said scan data input to said scan data output responsive to said shift signal;

a module enable latch for storing a first logic state corresponding to its module being enabled, and for storing a second logic state corresponding to its module not being enabled; and

bypass means, connected to said module enable latch and connected to said plurality of local data latches, for disconnecting said local data latches from said series responsive to said module enable latch storing its second data state, so that data shifts from said scan data input through said plurality of global data latches to said scan data output responsive said shift signal.

15. The logic circuit of claim 14, wherein the first of said global data latches in said series is connected to said scan data input;

wherein the last of said global data latches in said series is connected to said first of said local data latches in said series;

and wherein said bypass means is connected to said last of said global data latches in said series, to the last of said local data latches in said series, and to said scan data output, said bypass means for connecting said last of said global data latches to said scan data output responsive to said module enable latch storing its second data state, and for connecting said last of said local data latches to said scan data output responsive to said module enable latch storing its first data state.

16. The logic circuit of claim 15, wherein said bypass means is also for disconnecting said first of said local data latches from said last of said global data latches responsive to said module enable signal storing said second logic state.

17. The logic circuit of claim 16, wherein said bypass means is also for disabling said plurality of data latches from shifting data stored therein responsive to said module enable signal storing said second logic state.

18. A modular logic circuit, wherein at least one of said modules comprises:

functional circuitry;

a scan input;

a data shift input for receiving a data shift signal;

a plurality of data latches, a first of said data latches connected to said scan data input, each of said data latches connected to a predetermined location in said functional circuitry, and said plurality of data latches serially interconnected so that the contents of said data latches shifts in series responsive to said data shift signal;

a module enable latch, connected to said scan input and receiving a module enable load signal, for storing the logic state of said scan data input responsive to said module enable load signal, a first logic state of said scan data input corresponding to the module being selected and a second logic state of said scan data input corresponding to the module not being selected;

a scan output;

an output multiplexer having a first input connected to said module enable latch, having a second input, having an output connected to said scan output, and having a select input for receiving a scan/select signal, so that said module enable latch is connected to said scan output responsive to said scan/select signal being at a first logic state; and

bypass logic, connected between the last of said data latches in said series and the second input of said output multiplexer, and controlled by said module enable latch so that said last of said data latches is connected to said second input of said output multiplexer responsive to said module enable latch storing said first logic state, and so that said last of said data latches is disconnected from said second input of said output multiplexer responsive to said module enable latch storing said second logic state.

19. The logic circuit of claim 18, wherein the scan output of a first one of said modules is connected to the scan input of a second one of said modules.

20. The logic circuit of claim 18, wherein said bypass logic is also connected between said scan input and the first of said data latches in said series, and is for disconnecting said first data latch from said scan input responsive to said module enable signal storing said second logic state.

21. The logic circuit of claim 18, wherein said one of said modules further comprises:

a global data latch, connected to a predetermined location in said functional circuitry, and connected in series between said scan input and said series of data latches so that data shifts therethrough responsive to said shift signal;

and wherein said bypass logic is also connected to said global data latch, and is for connecting said global data latch to said second input of said output multiplexer responsive to said module enable latch storing said second logic state.

22. The logic circuit of claim 18, wherein said one of said modules further comprises:

a plurality of global data latches, each connected to a predetermined location in said functional circuitry, and connected in a series so that the data stored in said global data latches shift in series responsive to said shift signal, the first global data latch in said series connected to said scan input and the last of said global data latches connected to said first of said data latches in said series;

and wherein said bypass logic is connected to said last of said global data latches so that, responsive to said module enable latch storing said second logic state, a second global data latch of such series is connected to said second input of said output multiplexer.

23. A modular logic circuit, comprising:

a first logic module, comprising:

functional circuitry;

a module scan input;

a module scan output;

a shift input for receiving a shift signal;

a plurality of data latches, each of said data latches connected to a predetermined location in said functional circuitry, and said plurality of data latches serially interconnected so that the data stored in said data latches shift in series responsive to said shift signal, the first data latch in said series connected to said scan data input; a module enable latch for storing a first logic state corresponding to said first module being enabled, and for storing a second logic state corresponding to said first module not being enabled; and

bypass means, connected to said module enable latch, to said module scan output and to the last data latch in said series, for connecting said last data latch to said module scan output responsive to said module enable latch storing said first logic state, and for connecting said module scan input to said module scan output responsive to said module enable latch storing said second logic state; and

a second logic module, comprising:

functional circuitry;

a module scan input, connected to said module scan output of said first module;

a module scan output;

a shift input for receiving a shift signal;

a plurality of data latches, each of said data latches connected to a predetermined location in said functional circuitry, and said plurality of data latches serially interconnected so that the data stored in said data latches shift in series responsive to said shift signal, the second data latch in said series connected to said scan data input;

a module enable latch for storing a first logic state corresponding to said second module being enabled, and for storing a second logic state corresponding to said second module not being enabled; and

bypass means, connected to said module enable latch, to said module scan output and to the last data latch in said series, for connecting said last data latch to said module scan output responsive to said module enable latch storing said first logic state, and for connecting said module scan input to said module scan output responsive to said module enable latch storing said second logic state.

24. The logic circuit of claim 23, wherein said module enable latches in said first and second modules each have an input and an output, and are controlled by said shift signal;

and wherein the input of said module enable latch in said second module is connected to the output of said module enable latch in said first module, so that data shifts through said module enable latches in series responsive to said shift signal.

25. The logic circuit of claim 24, wherein said bypass means in each of said first and second modules comprises:

a bypass latch having an output connected to said module scan output; and

control logic having a first input connected to said module enable latch, having a second input connected to said last data latch in said series, having a third input connected to said scan input and having an output coupled to said bypass latch so that said bypass latch stores data corresponding to said last data latch in said series responsive to said module enable latch storing said first logic state, and stores data corresponding to said module scan input responsive to said module enable latch storing said second logic state.

26. A logic circuit including plural logic modules that each perform certain logical operations, the modules being connected together over a system bus that includes data, address and control leads, said logic circuit comprising:

a test port connected to each logic module, each test port having a serial data input lead, a serial data output lead and plural control leads, the serial data input and output leads of said plural modules being connected together in series, and a test bus of control leads separate from said system bus and connected to the control leads of every test port, control signals on said test bus control leads determining the passage of data at said test ports over said serial input and output leads.

27. The logic circuit of claim 26 in which each test port includes a module enable latch storing the state of a module enable signal.

28. The logic circuit of claim 27 in which said test bus control leads include a select shift lead, a test enable lead and a scan enable lead, the select shift lead connecting to said module enable latch and carrying a select shift signal that loads the state of said module enable signal into said module enable latch, the test enable lead carrying a test enable signal that controls connection of the logic module to the system bus and the scan enable lead carrying a scan enable signal that enables data to be scanned through serial register latches of each logic module without interference by and to said system bus.

29. The logic circuit of claim 27 in which each test port includes a module enable input lead and a module enable output lead both connected to said module enable latch, and the module enable input and output leads of said plural modules are connected together serially.

30. The logic circuit of claim 27 in which said serial data input and output leads connect to said module enable latch and carry multiplexed test pattern data and module enable data.

31. The logic circuit of claim 30 in which said test port includes a multiplexer having one output connected to said serial data output lead, said serial data input lead connecting to said module enable latch and a series of register latches, said multiplexer having one input connected to an output of said module enable latch and another input connected to an output of said series of register latches and said test bus including a scan and select lead connected to said multiplexer to control application of said one and another input to said output.

32. The logic circuit of claim 28 including a buffer connected between each logic module and said system bus for electrically isolating said logic module for said system bus and said buffer being coupled to said test enable lead and said scan enable lead by gating for control by said test enable and scan enable signals.

33. The logic of claim 27 in which each said logic module includes a series of register latches serially connected between said serial data input and output leads and a group of said serial register latches having at least an output connected to said serial data output lead when said module enable signal stored in said module enable latch disables the remainder of said serial register latches from said serial data output lead.

34. The logic circuit of claim 26 including a decoder connected to said test bus control leads and external terminals, said decoder receiving signals from said external terminals and producing signals on said test bus control leads.

35. The logic circuit of claim 26 in which said logic modules include a central processing unit, a system bus controller and an interface.
 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 Techiques", 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 patent numbers 4,710,933, 4,710,931, 4,701,921 and 4,698,588 all filed October 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 patent numbers 4,710,933, 4,710,931, 4,701,921 and 4,698,588, lines SDI and SDO may instead by 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 patent numbers 4,710,933, 4,710,931, 4,701,921 and 4,698,588, 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 SLR 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 inverter 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 lines 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 applications S.N. 790,569, S.N. 790,543, S.N. 790,541 and S.N. 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 SLRs 34 for purposes of data integrity. Examples of latches useful as SRLs 34 are described in U.S. Patent No. 4,667,339, issued on May 19, 1987 and assigned to Texas Instruments Incorporated, and also in said patent numbers 4,710,933, 4,710,931, 4,701,921 and 4,698,588.

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