Abstract:
Scan-based reset utilizes already existing design-for-test scan chains to reset control and logic circuitry upon reset conditions, such as power-up reset. Such utilization eliminates the need for expensive, high fan-out reset trees and per scan cell reset control logic, thus reducing chip area and power consumption. Additional power savings is achieved by controlling clock frequency during reset conditions. Limiting scan cell chain length and providing multiple chains reduces reset latency.

Description:
BACKGROUND OF THE INVENTION 
     1. Field of the Invention 
     Generally, the present disclosure relates to integrated circuits, and, more particularly, to the use of design-for-test elements for resetting core logic to a known state. 
     2. Description of the Related Art 
     Design-for-Testability (DFT) is a technique that enhances a microcircuit&#39;s testability by incorporating certain features into the microcircuit&#39;s design to facilitate testing of the manufactured product. The goal of such a design is to make difficult-to-test sequential circuits easier to test by replacing traditional sequential elements, such as flip flops (hereinafter called flops) with scannable sequential elements, called scan cells, and then connecting the scan cells together to form scan chains. A scan cell is a normal latch or flip-flop with an additional input, called the scan input, and an additional output, called the scan output. The scan output of one scan cell connects to the scan input of the next scan cell to form a scan chain. You can then shift data serially into and out of the scannable elements to inject test patterns into, or receive test results from, a manufactured chip during testing. The injected data appears at the outputs of the microcircuit&#39;s scannable sequential elements during operation. 
     Typically, each scannable sequential element is part of the functional core logic of the microcircuit&#39;s design, and each may need to be reset during reset conditions, such as a power-on reset condition. In a traditional microcircuit design, each scannable flop contains set or reset logic that is connected to a reset tree for setting the flop to a known state upon the reset condition. However, microcircuits may contain large numbers of such flops, resulting in reset trees and per-flop reset logic that require large amounts of area. Furthermore, because reset trees typically operate at full functional clock speeds, they also consume additional power and present timing challenges. 
     SUMMARY OF EMBODIMENTS OF THE INVENTION 
     The apparatuses, systems, and methods in accordance with the embodiments of the present invention eliminate the need for high fan-out reset trees and the per-flop set or reset circuitry in microcircuit designs. A system reset is accomplished by shifting reset data through the already existing scan circuitry upon a reset condition. A reset condition typically occurs during the powering-up of a microcircuit device but can occur during other conditions as well, such as after a built-in self-test (BIST). One example of a BIST is a memory built-in self-test (MBIST). Self-tests typically leave scan cells in a state that is not suitable for normal system operation. Reset control circuitry may be configured to sense these conditions and initiate resetting of the device to a proper state before beginning or continuing microcircuit operation. 
     Another aspect of an embodiment of the invention is controlling clock speeds when a reset condition is asserted. Scannable sequential elements configured to form a scan path are typically optimized for slower clock frequencies than the normal functional logic. When sensing a reset condition, control logic may include clock control circuitry to control the ramping down of a system clock to a proper frequency and then return the system clock to its normal frequency upon completion of the reset sequence. Conventional clock control methods can be used, such as by dividing the system clock. 
     Still another aspect of an embodiment of the invention is control of reset latency. Reset latency is the time it takes to complete a reset of the functional logic. When using scan-based reset of the present invention, scan paths having longer scan chains will take longer to reset than scan paths having shorter chains because reset data is shifted through the scan path serially. A scan chain of 500 cells, for example, needs 500 clock pulses before completing a system reset, whereas a scan chain of 300 cells needs only 300 pulses. Reset latency is managed by limiting the size of the scan chains and using multiple chains where needed. 
     In accordance with an embodiment of the invention, scan cells coupled to combinational logic are connected into one or more scan chains and are formed using any suitable method of manufacture, such as by growing or by deposition, without reset or set circuitry, or without being connected to a reset tree. The scan input of the first scannable element of each scan chain is connected to a data circuit which supplies reset data to each chain. In one embodiment, the data circuit may comprise connecting the scan input of the first scan cell of each scan chain to a logic zero or a logic 1. Control circuitry configured to sense a reset condition is coupled to the scan enable inputs of each scan cell and controls the shifting in of the reset data into each chain upon sensing the reset condition. The embodiment may include a clock control circuit configured to adjust a system clock to select an optimized clocking frequency for the reset sequence and to return the system clock to its previous speed upon completion of the reset sequence. 
     A method in accordance with another embodiment of the invention includes coupling two or more scannable sequential elements together to form a scan chain, wherein the scannable sequential elements are formed without reset or set circuitry or without being connected to a reset tree; coupling a data circuit to the scan input circuit of the first scan cell of the scan chain, the data circuit configured to supply reset data in response to a reset condition; and coupling a control circuit to the scan chain, wherein the control circuit is configured to sense a reset condition and to control the shifting in of reset data into the scan chain upon sensing the reset condition. The embodiment may further include coupling a clock control circuit to the scan chain, wherein the clock control circuit is configured to adjust the frequency of a clock supplied to the scan chain for shifting the reset data into the chain during the reset condition. 
     A method in accordance with still another embodiment of the invention includes sensing a reset condition in a semiconductor device and shifting reset data through at least one scan chain of the semiconductor device in response to the reset condition. The reset condition may be a power-on reset condition or the completion of a BIST. 
     The invention described herein may be used in any type of integrated circuit that uses scannable sequential elements, such as a microprocessor. General purpose microprocessors, for example, typically perform basic arithmetic operations, move data from one memory location to another, and make basic decisions based on the quantity of certain values contained in registers or memory. Control elements within the microprocessor determine its current state and the operations performed by the microprocessor. The microprocessor&#39;s control elements may be designed using scannable sequential elements that are configured into one or more scan chains. During a reset condition, such as a power-on reset, the control elements may be initialized to a known state automatically by shifting in reset data into the one or more scan chains. Once initialized, the microprocessor begins operation in a known state. The microprocessor&#39;s scannable sequential elements may be reset without connecting them to expansive reset trees or forming set or reset circuits in the scannable sequential elements. 
    
    
     
       BRIEF DESCRIPTION OF THE FIGURES 
       The disclosed subject matter will hereafter be described with reference to the accompanying drawings, wherein like reference numerals denote like elements, and: 
         FIG. 1  is a simplified schematic diagram of an exemplary microcircuit design utilizing scannable sequential elements in the form of mux-d flops typically found in the prior art. 
         FIG. 2  is a simplified timing diagram showing a typical reset sequence of the scannable elements of  FIG. 1  upon a reset condition, such as a power-on reset. 
         FIG. 3  is a simplified schematic diagram of a microcircuit design utilizing scannable sequential elements in the form of mux-d flops in accordance with an embodiment of the invention. 
         FIG. 4  is a block diagram of a microcircuit design in accordance with an embodiment of the invention. 
         FIG. 5  is a simplified timing diagram showing a reset sequence in accordance with the embodiment of the invention shown in  FIG. 3 . 
         FIG. 6  is a simplified timing diagram illustrating adjustment of a system clock upon assertion of a reset condition in accordance with an embodiment of the invention. 
     
    
    
     While the disclosed subject matter is susceptible to various modifications and alternative forms, specific embodiments thereof have been shown by way of example in the drawings and are herein described in detail. It should be understood, however, that the description herein of specific embodiments is not intended to limit the disclosed subject matter to the particular forms disclosed, but on the contrary, the intention is to cover all modifications, equivalents, and alternatives falling within the spirit and scope of the disclosed subject matter as defined by the appended claims. 
     DETAILED DESCRIPTION 
       FIG. 1  is a simplified schematic diagram of an exemplary microcircuit design utilizing scannable sequential elements (in the form of mux-d flops) of the kind typically found in the prior art. The microcircuit receives seven inputs, A  20 , B  30 , C  40 , SDI_IN  50 , SSE  60 , CLK  70 , and RST  80 , and sources two outputs, OUT 1   98  and SC_OUT  95 . Inputs A  20 , B  30 , and C  40  are supplied to the functional logic  15  for processing, and the intermediate results are clocked into flops  55 ,  65 , and  75  with the rising edge of CLK  70 . The scannable elements  55 ,  65 , and  75  each comprise a scan cell, having, in addition to the D input and Q output, one scan input ( 50 ,  90 , and  93 , respectively) and one scan output ( 90 ,  93 , and  95 , respectively). The scan output of one cell connects to the scan input of the next cell, forming a scan chain. The scan enable signal (SSE  60 ) supplied to each cell determines whether the input to the cell is received from the cell&#39;s D input signal or from the scan input signal, with a logic high selecting the scan input signal. When the CLK  70  is sourced, the Q ( 58 ,  68 , and  78 ) and SDO ( 90 ,  93 , and  95 ) outputs of each cell, respectively, latch to the logic value of their corresponding D or scan input lines, depending on the state of scan enable signal. 
     Such a configuration facilitates testing of the microcircuit. When the combinational logic  15  is large and complex, such as in a microprocessor design, it is desirable to have many scan cells serially connected in the manner described in  FIG. 1  to form one or more scan chains. Test patterns can then be serially shifted into the scan chains via the scan input pin of the first scan cell (e.g., SDI_IN  50 ) by activating the scan enable signal SSE  60  and cycling CLK  70 . Once the pattern has been injected into the scan chain, the functional path can be re-enabled by deactivating the scan enable signal and allowing the system clock (CLK  70 ) to cycle for the desired number of times. The results can then be shifted out of the scan chain through SC_OUT  95  in the same manner as the test pattern was shifted in. 
     Because the scan cells form part of the functional logic of the microcircuit, the scan cells typically must be reset during reset conditions, such as a power-on reset condition.  FIG. 2  illustrates a typical reset sequence for the microcircuit of  FIG. 1 . Per the figure, RST  80  is activated at time T 0    210  while CLK  70  is cycling. After one clock cycle, the corresponding outputs of each flop  58 ,  68 , and  78  reset to a known logic state, logic 0  250  in this case, as shown at T 1    220 . In other designs, the scannable elements may have a set circuit rather than a reset circuit, with the RST  80  signal connected thereto, resulting in the respective flop resetting to a logic 1 rather than 0, or they may have no set or reset circuit at all. The techniques described herein can eliminate the reset trees and the per-flop set and reset circuits altogether by utilizing the already existing scan chains to initialize the microcircuit upon a reset condition. A design in accordance with these techniques, called scan-based reset, is illustrated in  FIG. 3 . 
     In  FIG. 3 , flops  55 ,  65 , and  75  are designed without set or reset circuits and a reset control circuit  110  sources SDI_IN  50  and SSE  60  signals to the scan chain in a manner that does not interfere with the normal scan test controls. The control circuitry  110  may also contain a data control circuit (not shown) for generating reset data during a reset condition. In one embodiment, reset data may be generated by connecting SDI_IN to a logic 0 and shifting the reset data into the scan chain by normal scan shifting means during a reset condition. In other embodiments, the data control circuit may contain, or be connected to, memory elements which store the reset data that is to be shifted into the scan chain. Reset control  110  also receives CLK  70  through clock control circuit  130  via  125  and toggles scan enable (SSE  60 ) synchronously with CLK  70  during reset conditions. Once a scan-based reset is complete, normal operation may continue. 
     Flops A  55 , B  65 , and C  75  may contain further optimizations. For example, it is not necessary that each flop have both a Q output and a SDO output, as each sources the same value stored in the flop. The Q output of each of these scan flops may connect directly to the SDI input of the next flop to form the scan chain, thus eliminating the need for the SDO circuitry. Moreover, in many designs, it is desirable to reset a particular flop to a logic 1 rather than a logic 0. An inverter may be inserted between the output of one flop and the input of the next flop to invert the reset data as it is being shifted into the scan chain. On the other side of the flop, an additional inverter may be provided to invert the reset data back to its original values for the rest of the chain. In this manner, Flop A  55  can be reset to a logic 0, Flop B  65  can be reset to a logic 1, and Flop C  75  can be reset to a logic 0 when the reset data is, for example, a stream of logic zeroes and inverters are placed on either side of Flop B  65 . 
       FIG. 4  shows an exemplary embodiment of a microcircuit design that utilizes scan-based reset and further illustrates the functional aspects of scan-based reset in more detail. The microcircuit design includes core logic  525  that may comprise combinational logic, sequential logic, or any other type of logic that implements the functional aspects of the design. Scannable sequential elements are introduced into the core design at  530  and connect to reset control circuit  510 , rather than a reset tree. The scannable control elements  530  may form one or more scan chains and comprise mux-d flops or any other type of suitable flop. Reset control circuit  510  controls the scannable elements  530  by connecting to the scan input  535  of the first scan cell of each scan chain and toggling the scan enable signal  540  during a reset condition. A clock control circuit  130  provides a clock  575  to the scan chains. Clock  575  can be the system clock or a divided form of the system clock to match a slower, optimized frequency of the scan chains  530 . System control  505  sources one or more system signals  580 , such as a power-on reset or the completion of a MBIST, to notify reset control  510  that a reset condition has occurred. Reset control  510  initiates reset of the scan chains in response to the signals and may communicate a reset complete  585  signal back to system control  505  when reset is complete. 
       FIG. 5  is a simplified timing diagram showing the reset sequence of the scannable elements shown in  FIG. 3 . Once a reset condition is asserted, reset control  510  asserts SSE  60  at time T 0    310  and SDI_IN  50  at T 1    312 . As discussed above, SDI_IN  50  may connect to a logic 0 or another data control circuit to provide the reset data to the scan chain. Upon the rising edge of CLK  70  at T 2    314 , outputs of Flop A  55  (i.e., Q  58  and SDO  90  in  FIG. 3 ) transition to logic 0, as shown by  335 . Upon each successive rising edge of CLK  70 , e.g., T 3    316  and T 4    318 , each subsequent scannable flop in the scan chain transitions to its reset state, as shown by  345  and  355 , as the reset data is serially shifted through the scan chain. 
     Because scan chains are typically optimized for slower clock frequencies than the functional logic, scan-based reset may require adjustment of the system clock speeds. For large circuit designs that may have many scan chains configured for scan-based reset, it may be more efficient to control the system clock at the source of the system clock tree than it would be to divide the system clock at each scan chain. In one embodiment, clock control circuit  130  controls the frequency of the system clock that is fanned out to each scan chain. In another embodiment, clock control circuit  130  divides the system clock that is supplied to at least one scan chain. In either case, a series of handshake signals between system control  505 , reset control  510 , and clock control  130  may control the clock frequency changes. 
     Referring to  FIG. 4 , when reset control  510  senses a reset condition, such as a power-on reset or the completion of a MBIST, for example, it sends a reset request  545  to clock control circuit  130 . Clock control  130  is designed to change the system clock speed upon receipt of the request  545 . Clock control circuit  130  contains control logic to remember the current system clock frequency setting, begins ramping down the system clock speed to the appropriate target setting by, for example, dividing the current system clock, and sends an acknowledgement  550  back to reset control  510  once the target frequency has been reached. Reset control  510  may then begin scan-based reset. Once scan-based reset is complete, reset control  510  removes request  545 , and clock control circuit  130  begins ramping up the clock speed to its previous setting. When the previous setting is reached, clock control  130  de-asserts its acknowledgement  560 . Reset control  510  may then inform system control  505  that the reset sequence is complete by asserting a reset complete  585  signal to system control  505 . Normal system operation may then continue. 
     The timing and operation of the handshake signals are further described by reference to  FIG. 4  and  FIG. 6 . VDD  610  ( FIG. 6 ) represents the system voltage applied to a microcircuit. When power is applied, VDD  610  ramps up to its specified level. Once obtained, system control  505  sources PWRON_RST  620  to reset control  510 , shown at T 0    660 . PWRON_RST indicates that a power-on reset condition is present. Reset control  510  then initiates a reset sequence by requesting transition of the system clock to a reset clock frequency. This is done by asserting RESET_REQ  630 , shown at T 1    662 , to clock control  130 . Clock control begins transitioning the clock speed from the current clock speed to the reset clock speed by the means described above. The transitioning occurs between T 1    662  and T 2    664 . When the reset clock speed is reached, clock control  130  asserts ACK  640  to reset control  510 , indicated at T 2    664 , whereupon reset control  510  begins shifting reset data into the scan chain by toggling SSE  60 , shown following T 2 . Once the required number of bits have been shifted into the scan chain, reset control  510  deactivates RESET_REQ  630 , shown at T 3    666 , informing clock control  130  that scan reset is complete and that the previous system clock speed should be restored. Clock control  130  transitions the clock back to the previous clock speed, as shown between T 3    666  to T 4    668 . When the previous clock speed has been reached, clock control  130  deactivates ACK  640 , shown at T 4    668 , informing reset control  510  that the previous clock speed has been restored. Reset control then informs system control  505  that the reset sequence is complete by asserting CMPLT  650 . System control  505  may begin or return to normal system operation following receipt of CMPLT  650 . 
     The timing and control sequence for other reset conditions, such as following an MBIST, are similar. System control  505  asserts a reset signal to reset control  510 , and the sequence described above is repeated. Upon completion of the reset sequence, reset control  510  returns a corresponding handshake signal to system control  505 . System control may then return to normal operation. 
     The scannable sequential elements described herein may be formed on a semiconductor material by any known means in the art. Forming can be done, for example, by growing or deposition, or by any other means known in the art. Different kinds of hardware descriptive languages (HDL) may be used in the process of designing and manufacturing microcircuit devices. Examples include VHDL and Verilog/Verilog-XL. In one embodiment, the HDL code (e.g., register transfer level (RTL) code/data) may be used to generate GDS data, GDSII data and the like. GDSII data, for example, is a descriptive file format and may be used in different embodiments to represent a three-dimensional model of a semiconductor product or device. Such models may be used by semiconductor manufacturing facilities to create semiconductor products and/or devices. The GDSII data may be stored as a database or other program storage structure. This data may also be stored on a computer readable storage device (e.g., data storage units, RAMs, compact discs, DVDs, solid state storage and the like) and, in one embodiment, may be used to configure a manufacturing facility (e.g., through the use of mask works) to create devices capable of embodying various aspects of the instant invention. As understood by one or ordinary skill in the art, it may be programmed into a computer, processor or controller, which may then control, in whole or part, the operation of a semiconductor manufacturing facility (or fab) to create semiconductor products and devices. These tools may be used to construct the embodiments of the invention described herein. 
     The particular embodiments disclosed above are illustrative only, as the disclosed subject matter may be modified and practiced in different but equivalent manners apparent to those skilled in the art having the benefit of the teachings herein. Furthermore, no limitations are intended to the details of construction or design herein shown, other than as described in the claims below. It is therefore evident that the particular embodiments disclosed above may be altered or modified and all such variations are considered within the scope and spirit of the disclosed subject matter. Accordingly, the protection sought herein is as set forth in the claims below.