Abstract:
A scannable logic unit includes one or more storage registers that maintain copies of data communicated from the scannable unit to registers in a nonscannable unit. When the scannable unit is subjected to a scan test, the registers will contain state information respecting that transfer to the nonscannable unit. When the scannable and nonscannable units are placed in a run condition, the registers supply to the nonscannable unit state information for continuing operation.

Description:
BACKGROUND OF THE INVENTION 
     The present invention is directed generally to digital apparatus, and more particularly, to apparatus that incorporates in the scan chain of a scannable circuit the state information conveyed to a nonscannable unit. 
     Today&#39;s state of the art in digital design often will require the incorporation of features that will allow the design to be tested--both during production and when in the field in the hands of the end user. One of the more popular test techniques used in digital designs for test implementation is what is termed a &#34;scan based design.&#34; This involves adding logic to the design of conventional digital circuitry so that, in response to test signals, the elemental storage units (e.g., latches, register stages, flip flops, and the like) of the digital circuitry can be configured into one or more extended shift registers (&#34;scan chains&#34;). Test patterns (&#34;vectors&#34;) may then be introduced (&#34;scanned&#34;) into the scan chains so formed, and the digital circuitry returned to its standard configuration and allowed to run normally for one or more of its operating cycles. The scan chains are then reformed so that the resultant registered state of the digital system can be removed and examined. 
     Alternatively, the digital circuit under test can be allowed to run normally until it reaches a point in time when the scan test halts normal operation of the circuit. The scan chain configurations are then formed, and the registered state of the circuitry is removed, observed, reinstated, and the unit allowed to proceed after being returned to its standard configuration. 
     Scan designs provide an effective and efficient method of establishing controllability and observability over the &#34;registered state&#34; of the digital circuitry (i.e., the states assumed by the elemental memory units at any moment in time) in that operation of the unit or circuit under test can be stopped at any point in time, the unit reconfigured to its scan configuration, and that state retrieved, observed, and replaced. The circuit under test may then be returned to the normal operating mode and continue until it is again stopped and its registered state observed as described. 
     Often, designs of digital units in the current art will combine such scannable components with standard, off-the-shelf components (e.g., microprocessors, random access memories (RAMs), and the like) that are not designed to be scannable. Thus, the registered state of these standard components are, therefore, outside the controllable and observable domains of a scan test procedure. This combination of scannable components with nonscannnable components can significantly limit the testability of the overall combination. 
     Since such nonscannable parts cannot be included in any scan string, any initial registered state values they may hold after a scan test (Or an initialization) of a scannable part must be considered indeterminate. This indeterminate state will tend to propagate indeterminism elsewhere, forcing use of one of several remedies: (1) add extra logic to block the formation and propagation of such indeterminate state (and accept large untestable areas of circuitry); (2) add complicated test sequences following the scan to functionally eliminate the indeterminate state; or, (3) some combination of the foregoing. 
     It can be seen, therefore, that a need exists for the registered state of non-scannable circuitry to co-exist with scannable circuitry for testing purposes. 
     SUMMARY OF THE INVENTION 
     The present invention recognizes that certain of the registered state of a nonscannable component originates with, and will be transferred from the scannable unit. According to the present invention, therefore, the registered state transferred by the scannable component is replicated and stored in scannable registers contained in the scannable circuitry. Thus, scan testing the scannable component will also permit observation of the defect-free registered state of the nonscannable element. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     FIG. 1 is a diagrammatic illustration of a scannable component, incorporating the invention, coupled to a nonscannable component; 
     FIG. 2 is a timing diagram illustrating operation of the invention; and 
     FIG. 3 is a flow chart illustrating use of the invention to switch between run modes of operation and scan modes of operation. 
    
    
     DESCRIPTION OF THE PREFERRED EMBODIMENT 
     Referring now to the figures, and for the moment specifically FIG. 1, there is illustrated a portion of a digital system, designated with the reference numeral 10, that includes two system components 12 and 14. The component 12, which may be an application specific integrated circuit (ASIC), and the component 14 is a synchronous random access memory (RAM). As FIG. 1 shows, the component 12 includes functional logic 20 which symbolically represents most of the digital circuitry of the component 12, coupled to an output register 22. The content of the output register, via a multiplexer 24, supplies multi-bit addresses to an address bus 28 which communicates the addresses to an address register 30 of the synchronous RAM 14. Data is accessed from a memory array 32 of the synchronous RAM 14 in response to the addresses received by the address register 30, and communicated to the component 12 by the data bus 34. 
     The output of the multiplexer 24 is also coupled to a shadow register 26 to receive the addresses communicated to the address register 30. 
     The component 12 is designed to be scannable in the sense discussed above, i.e., its elemental memory units (e.g., flip flops, registers, latches, and the like), including those that may make up the functional logic 20 and output and shadow registers 22, 26, are configurable to operate in one of the three modes of &#34;run&#34; (the element operates normally, and the SCAN and HOLD signals are de-asserted), &#34;hold&#34; (the element holds its state), and &#34;scan&#34; (all the elements configured to form one or more scan chains). For this purpose the component 12 is coupled to a test bus 36 for receiving test signals SCAN and HOLD from a test control device (not shown). In addition, the test bus 36 includes a scan data in (SDI) line for serially communicating test vectors (data strings) or to replace the previously removed registered state of the component 12. Of course the component must be placed in the scan mode by assertion of the SCAN test signal to receive data on the SDI line. 
     The registered state of the component 12 is serially removed, again when in scan mode, via the scan data out (SDO) output line. 
     When operating normally (i.e., during run mode), the HOLD test signal is not asserted. And, it is the non-asserted state of HOLD that operates the multiplexer 24 to select and pass the content of the output register 22 to the address bus 28, and to the shadow and address registers 26, 30 (all under the synchronous control of the system clock, S --  CLK). During run mode, from time to time, addresses will be communicated to the synchronous RAM 14 for addressing memory locations of the memory array 32 from which data is to be accessed, or at which data will be written. The addresses are received and temporarily held in address register 30 of the synchronous RAM 14 to address the memory array 32. Thus, the synchronous RAM 14 is an example of a commercial element having non-scannable registered elements (unless designed to be scannable--which in the context of this discussion it is not). 
     Referring now to FIGS. 2 and 3, operation of the present invention to include the registered state (i.e., the content of register 30) in the scan chain will now be described. At some point in time during run mode (e.g., step 40 of FIG. 3) it is decided to enter scan mode for the purpose of removing for examination the registered state of the system 10. How the decision is made is not important to the present invention; it could be made programmatically (as by the test unit (not shown) that supplies the test signals) or by a user who may manually commands the test unit to replace the registered state of the system 10. 
     Before continuing, consider for the moment FIG. 2 which illustrates the contents of the registers 22, 26, and 30. Prior to leaving the run mode (step 40, FIG. 3), at time t 0 , the output register receives address A. At the next cycle of the system clock, S --  CLK, time t 1 , the output register receives address B, and the prior content of the output register 22 (address A) is transferred to the address register 30 and the shadow register 26. The next cycle (time t 2 ) finds address B in the shadow and address registers 26, 30, while the output register 22 has received address C. 
     Now, prior to time t 3 , the decision is made to remove the registered state of the system 10 (i.e., component 12) so that, at time t 3 , the run mode of step 40 (FIG. 3) is departed in favor of step 42 in which the HOLD test signal is asserted. The HOLD signal will, as explained above, freeze the registered state of the component 12 while asserted. However, since the synchronous RAM 14 is non-scannable, the HOLD signal will have no effect on it or its registered state (i.e., address register 30). The SCAN signal would then be asserted to reconfigure the scannable registers into one or more scan chains, and the state of the component 12 serially removed, using S --  CLK, via the scan data out (SDO) signal line where it can be observed. 
     Assertion of the SCAN signal will operate to block the write enable to the synchronous RAM 14 to ensure that no spurious write operations are performed during the scan of the component 12. 
     The S --  CLK signal, which is also applied to the synchronous RAM 14, and during extraction of the state of the component, the address register 30 of the synchronous RAM will continually be clocked by S --  CLK to receive whatever content the output register 22 (which, of course, is part of the scan chain) contains at the time. Thus, at the completion of the scan it is not known what the content of the address register 30 will be, i.e., its content is indeterminant. When, after observation, the removed state is returned to the component 12 (via the scan data in SDI signal line), and the component returned to its normal, operating state, the content of the indeterminate content of the address register 30 can be propagated by the data that may be written to, or accessed from the memory array 32 when operation is resumed. It is this propagation of indeterminate state to which the invention directed. 
     The problem of propagation of indeterminate states as a result of scanning the component 12 is obviated by addition of the multiplexer 24 and the shadow register 26. As will also be seen, use of the multiplexer 24 and shadow register 26 provides an effective technique for including the fault-free registered state (i.e., address register 30) of what is essentially a non-scannable part in the scan string of the component 12. 
     During normal operation the HOLD signal that is applied to the control input of the multiplexer 24 is not asserted so that the content of the output register 22 is selected and passed by the multiplexer 24 to the address register 30. However, each time the state (i.e., address) of the output register 22 is so transferred, it is also communicated to and stored in the shadow register 26. 
     At time t 3 , the test control unit responds to programmatic or user input to assert the HOLD test signal and the run mode step 40 is left via step 42 in favor of step 44 (FIG. 3). At time t 4 , with the HOLD signal asserted, the output register 22 and shadow register 26 will disregard S --  CLK and retain their content (i.e., addresses D and C, respectively). However, address register 30 is not affected by the HOLD signal, and will therefore receive the address C applied to it by register 26 (via the MUX 24). The SCAN signal is asserted in step 44 (FIG. 3) at time t 4 , and the HOLD signal deasserted. Then, during step 46 (which will last many S --  CLK cycles), the state of the component 12 is removed and replaced, during which time the address register 30 becomes indeterminate. As noted above, the SCAN signal will operate to block write enable to the synchronous RAM 14. Thus, while SCAN is asserted, the synchronous RAM 14 is prevented from performing write operations, and the various indeterminate states assumed by the component 12 during scan testing will not affect the content of the memory array 32 of the synchronous RAM 14. 
     After the appropriate number (n-1) of S --  CLK pulses, the scan is completed, and the state of the component 12 restored. That restoration will place the component 12 in the state it had entered before leaving the run mode n favor of being scanned, i.e, the state it held just before time t 3 . Before the system 10 is returned to the run mode (step 40--FIG. 3), however the indeterminate state of the address register 30 must be replaced; if not, this indeterminacy will be propagated through the system (e.g., back into the component 12) by data that will be read from (or written to) a memory location of the memory array 32 that will have no meaning in the ongoing scheme of operation. 
     In order to restore the address register 30 to a proper state, the HOLD is asserted for one or more clock periods of S --  CLK. During the clock period beginning at time t n-1 , the address scanned into the shadow register will be selected by the multiplexer 24 and placed on the address bus 28 by the HOLD signal, and loaded in the address register 30. At time t n  the system 10 is returned to the run mode (step 40--FIG. 3), by de-asserting the SCAN and HOLD signals, where operation resumes from the point just before steps 42, 44 were entered, and with the address register 30 containing the proper address C. Note that when operation is resumed, the content of the address register 30 is no longer unknown, i.e, indeterminate but, rather, contains the quantity that it should, address C. Note also that the information state that would have been contained in the address register 30 when scan test was initiated was, in fact, included in the scan test by it being stored in the shadow register 26. 
     Thus, it should now be apparent to those skilled in this art that the invention allows a scan of a scannable device to be followed by normal operation without elaborate procedures to remove any indeterminate states. In addition, the invention is capable of including the defect-free state of a nonscannable part (i.e., address register 30 of the synchronous RAM 14) in the scan. 
     The invention has been described in the context of a limited &#34;pipeline&#34; architecture that includes the output register 26 and address register 30, permitting at least some parallel processing with communication of addresses to the synchronous RAM 14. The pipeline shown here has only the address register 30 as its non-scannable part. However, the non-scannable element e.g., synchronous RAM 14 could add more to the pipeline such as, for example, having a data register (shown in phantom in FIG. 1 as the data register 36) for communicating data between the memory array 32 of the synchronous RAM 14 and the component 12. Since during a scan of the component 12 it will be unknown what will be the content the data register 36, another indeterminacy is added. Those skilled in this art will recognize, therefore, that the concepts of this invention can be extended to cover pipeline architecture having more of that pipeline in the nonscannable registers.