US20080163019A1 - Scanning Latches Using Selecting Array - Google Patents

Scanning Latches Using Selecting Array Download PDF

Info

Publication number
US20080163019A1
US20080163019A1 US12041144 US4114408A US2008163019A1 US 20080163019 A1 US20080163019 A1 US 20080163019A1 US 12041144 US12041144 US 12041144 US 4114408 A US4114408 A US 4114408A US 2008163019 A1 US2008163019 A1 US 2008163019A1
Authority
US
Grant status
Application
Patent type
Prior art keywords
data
latch
latches
line
read
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
US12041144
Inventor
Andrew Kenneth Martin
Chandler Todd McDowell
Robert Kevin Montoye
Jun Sawada
Original Assignee
Andrew Kenneth Martin
Mcdowell Chandler Todd
Robert Kevin Montoye
Jun Sawada
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/18Address generation devices; Devices for accessing memories, e.g. details of addressing circuits
    • G11C29/30Accessing single arrays
    • G11C29/32Serial access; Scan testing
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/3185Reconfiguring for testing, e.g. LSSD, partitioning
    • G01R31/318533Reconfiguring for testing, e.g. LSSD, partitioning using scanning techniques, e.g. LSSD, Boundary Scan, JTAG
    • G01R31/318572Input/Output interfaces
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/41Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming static cells with positive feedback, i.e. cells not needing refreshing or charge regeneration, e.g. bistable multivibrator or Schmitt trigger
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/18Address generation devices; Devices for accessing memories, e.g. details of addressing circuits
    • G11C29/30Accessing single arrays
    • G11C2029/3202Scan chain

Abstract

A method and system for scanning data from a specific latch in a matrix array of latches. The matrix array is made up of vertical selector lines and horizontal data lines. Each latch is coupled at an intersection of a selector line and a data line by a transistor. By turning on the transistor, the contents of the latch can be selectively read or written to.

Description

    PRIORITY CLAIM
  • The present application is a continuation of U.S. patent application Ser. No. 10/896,505 (Atty. Docket No. AUS920040243US1), filed on Jul. 22, 2004, and entitled, “Scanning Latches Using Selecting Array,” which is incorporated herein by reference.
  • CROSS-REFERENCE TO RELATED APPLICATIONS
  • The parent application is related to U.S. Pat. No. 7,047,468, application Ser. No. 10/670,832, issued on May 16, 2006, and incorporated herein by reference in its entirety.
  • TECHNICAL FIELD
  • The present invention relates in general to the field of computers, and in particular to the observation and manipulation of data in state holding elements. Still more particularly, the present invention relates to a method and system for reading and writing latch data by selecting a specific latch through the use of a line selector.
  • DESCRIPTION OF THE RELATED ART
  • Computing processor logic is typically made up of multiple clusters of combinatorial logic (hereinafter referred to as “logic”) and data latches. The logic executes machine instructions to manipulate data, and the data latches store data, including input data being input into logic as well as output data being output from the logic after manipulation. A typical collection of logic and latches is shown in FIG. 1 a as logic/latch array 100.
  • Logic/latch array 100 is made up of multiple state holding elements 102 (typically latches) and logics 104. Data bits are input into the top state holding elements 102 where the data bits are latched, and at a subsequent clock cycle are applied to one or more logics 104. The results of the operations of the logics 104 are then outputted to one or more other state holding elements 102, and so on until the final results are outputted at the bottom of the logic/latch array 100. A chip is composed of many such blocks of logic and latches.
  • A common desire when a chip is manufactured is to test whether there are any defects in the manufacturing process that may cause the chip to function differently from that which would result from defect free manufacturing. A test program of data bits (“test vectors”) inputted into the top of logic/latch array 100 will output known predicted results (“result vectors”) from the bottom of the logic/latch array 100 after a known number of clock cycles if the logic/latch array 100 is working properly. However, for a large block of logic, a prohibitively large number of vectors may be required to determine if the logic/latch block is suitably free from defects. Additionally, the existence of feedback and jumps of data as shown by the arrows in FIG. 1 a may increase the number of vectors required to detect all manufacturing defects, or may make it impossible to detect certain detects. One solution to the problem of having a large number of vectors is to independently check smaller portions of the logic block. This can be accomplished by setting the state of the internal latches, clocking the system, and reading the results from the latches. By checking the subfunctions between the latches, much smaller numbers of test vectors can be used to gain higher coverage of the faults.
  • Thus, to check the accuracy of the operation of logic/latch array 100, interim contents, resulting from operations performed by logics 102, of state holding elements 102 are scanned out and inspected. Checking such intermediate operations and their results utilizes techniques such as Level-Sensitive Scan Design (LSSD) tests, Generalized Scan Design (GSD) tests, or other scan design test techniques that enable testing at all levels of VLSI circuit packaging. The principles of the LSSD technique are described, for example, in U.S. Pat. No. 3,783,254, U.S. Pat. No. 3,784,907 and U.S. Pat. No. 3,961,252, all to Eichelberger and incorporated by reference in their entirety.
  • FIG. 1 b illustrates latch pairs 106, analogous to the state holding elements 102 shown in FIG. 1 a, that are used for scanning data out of a latch array 101. Latch pairs 106 hold intermediate results of operations performed by logics 104 as described above. (For purposes of clarity, FIG. 1 b omits representations of logics 104 shown and described in FIG. 1 a.) To facilitate trustworthy scans, each latch pair 106 illustrated in FIG. 1 b includes a master latch M106 and a slave latch S106. The slave latches S106 are necessary to ensure that data is not lost through timing mishaps that could occur if data bits were to be passed directly from a first master latch to a second master latch.
  • During a scan-out process, a data bit in a first master latch is first moved to a first slave latch, which then passes the data bit to a second master latch, which then passes the data bit to a second slave latch, and so on until the data bit safely passes through the entire latch array 101. As depicted in FIG. 1 b, the latch array 101 of master latches M106 and slave latches S106 is under the clocking control of a first clock (A_clk) for the master latches M106 and a second clock (B_clk) for the slave latches S106. Thus, when a scan-out operation is performed, the data bits are scanned out in a serial manner as depicted, wherein the data bit in master latch M106-1 moves to slave latch S106-1, which passes the data bit to master latch M106-2, which passes the data bit to slave latch S106-2, and so on until the data bit is finally read out of latch array 101 through/from slave latch S106-x.
  • Referring now to FIG. 2, there is a block diagram of four master/slave latch pairs being scanned. Assume in FIG. 2 that instead of twenty master/slave latch pairs M106/S106, as depicted in FIG. 1 b, there are only four master/slave latch pairs M106-1/S106-1 through M106-4/S106-4 in a First-In First Out (FIFO) 206, as depicted. At initial time “T1”, input queue 208 holds data elements “w, x, y, z,” each master latch M106 holds a significant data bit (such as a result of an intermediate operations performed by some piece of logic), each slave latch S106 is empty or in a “don't care” state, and the output queue 210 is empty (or in a “don't care state). At time “T2”, all the data bits are shifted into the available slave latches. Thus, data bit “A” moves from master latch M106-1 to slave latch S106-1, data bit “B” moves from master latch M106-2 to slave latch S106-2, data bit “C” moves from master latch M106-3 to slave latch S106-3, and data bit “D” moves from master latch M106-4 to slave latch S106-4.
  • Moving on to time “T3”, the data bits are shifted into the master latches either from slave latches or from the external queue. In addition a data bit will be shifted to the output queue. So, data bit “z” from input queue 208 shifts into master latch M106-1, data bit “A” advances from slave latch S106-1 into master latch M106-2, data bit “B” advances from slave latch S106-2 into master latch M106-3, data bit “C” advances from slave latch S106-3 into master latch M106-4, and data bit “D” advances from slave latch S106-4 into output queue 210. (Note that input queue 208 and output queue 210 may also have master/slave latch pairs (not shown) as depicted for FIFO 206.)
  • Continuing along the time line in FIG. 2, significant data bits are continued to be scanned out of FIFO 206 until time “T9”, at which time all of the leading data bits (w, x, y, z) originally in input queue 208 are scanned into FIFO 206, and all of the significant data bits (A, B, C, D) are scanned out of FIFO 206 into output queue 210.
  • One significant limitation of the traditional scan chain described in FIGS. 1 a-b and FIG. 2 is that all data in the scan chain must be scanned out in a serial manner. Thus, to view a specific scan chain latch, the entire scan chain must be scanned out, and the contents of a specific scan chain latch must be “picked out” as it enters the output queue 210 shown in FIG. 2.
  • Another limitation of traditional scan chains is that they require the additional slave latches S106 to ensure accurate serial movement through the serial pathway shown in FIG. 1 b. Although additional latches are not needed when a logic/latch block stores internal states in master-slave flip-flips, which themselves are pairs of master and slave latches, slave latches S106 are necessary if mid-cycle latches scheme is used, in which data is latched into a first latch on a clock signal rise, and then latched into a second latch on the same clock signal's fall.
  • Thus, it would be a useful improvement of the prior art to have a system that allows a specific latch to be directly accessed, allowing the examination of the contents of only that specific latch, without adding additional storage elements to the system.
  • SUMMARY OF THE INVENTION
  • The present invention is therefore directed to a method and system for directly accessing internal data from a specific latch in a matrix array of latches. The matrix array includes vertical selector lines and horizontal data lines. Each latch is coupled at an intersection of a selector line and a data line by a transistor. By turning on the transistor, the contents of each latch can be selectively accessed.
  • Each latch in a single column selected by a selector line puts a high or low signal (binary data) on one of the data lines. The data on each of the data lines is then amplified by a sense-amplifier that senses whether the data on each data line is high or low. The data on the data lines is sent to an output buffer, and then to a computer, where the data (i.e., contents of the latches) can be examined.
  • Alternatively, each latch in a column can be individually accessed using a “write transistor” to write data from a data line to a latch, and a different “read transistor” to read data to the data line from the same latch.
  • Alternatively, data can be read from particular latches by pre-charging the data lines, and then reading the contents of a column of latches by coupling each latch in the column to a respective data line.
  • The above, as well as additional objectives, features, and advantages of the present invention will become apparent in the following detailed written description.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • The novel features believed characteristic of the invention are set forth in the appended claims. The invention itself, however, as well as a preferred mode of use, further objects and advantages thereof, will best be understood by reference to the following detailed description of an illustrative embodiment when read in conjunction with the accompanying drawings, where:
  • FIG. 1 a depicts a prior art logic/latch array of state holding elements and processing logic;
  • FIG. 1 b illustrates a prior art array of state holding elements having data sequentially scanned out;
  • FIG. 2 depicts a single row of state holding elements having data scanned out using prior art master/slave latch pairs;
  • FIG. 3 a illustrates a 2×2 matrix of latches that can be read from or written to using a line selector and an input/output (I/O) buffer;
  • FIG. 3 b depicts a decoder used by the circuit illustrated in FIG. 3 a and FIG. 5 to place a signal on a specified select line;
  • FIG. 4 a illustrates a 2×2 matrix of latches that can read and write data to the latches using separate read and write select lines;
  • FIG. 4 b depicts a decoder used by the circuit illustrated in FIG. 4 a to place a signal on a specified select line; and
  • FIG. 5 illustrates a 2×2 matrix of latches that can read data from latches using data line pre-chargers.
  • DETAILED DESCRIPTION OF A PREFERRED EMBODIMENT
  • With reference now to FIG. 3 a, there is depicted a preferred embodiment of the present invention for reading and writing data from latches. Depicted is a matrix 300, which is a 2×2 matrix of four state holding elements shown in exemplary form as latches 302-1 to 4. Only a 2×2 matrix is shown for purposes of clarity, but it is understood that scan matrix 300 may contain hundreds, thousands, or more latches 302.
  • Each latch 302 is coupled to a data line 304 via an NFET (N-type Field Effect Transistor). For example, latch 302-1 is coupled to data line 304-a via NFET 306-1. Data lines 304 are coupled to an output scan storage unit shown as an Input/Output (I/O) buffer 308, which is a data buffer for data being written to or read from the latches 302. Consider as an example of usage of the present invention the steps taken to read data from exemplary latch 302-1.
  • First a read/write block 310-a is switched to a “Read mode” to allow data on data line 304-a to be sensed, and then to amplify that data for transmission to and storage in a specific latch (not shown) in I/O buffer 308. Also, a “Read Signal” is set high in the I/O buffer 308, allowing data from data line 304-a to be stored in a specific latch (not shown) in I/O buffer 308. Additionally, a line selecting signal is received in a line selector 312, which using circuitry shown in detail in FIG. 3 b, causes a select line 314-a to go high (positive voltage representing a logic 1), thus turning on NFET 306-1. If latch 302-1 is holding a “0”, then a “0” (low voltage) is put on data line 304-a. Conversely, if latch 302-1 is holding a “1”, then NFET 306-1 allows a positive voltage charge to be put on data line 304-a. The content of data line 304-a (high or low: “1” or “0”) is then sensed and amplified by read/write block 310-a, and that data is then stored in I/O buffer 308.
  • The latch data copied to the I/O buffer 308 can be read using a normal LSSD scanning technique. That is, by alternatively setting “A Clk” and “B Clk” to high, the data stored in the I/O buffer is read sequentially from the “Output” port of I/O buffer 308. The internal structure of I/O buffer 308 is clear to those skilled in the art of LSSD scan technique.
  • In order to read all the data stored in all the latches, data can be read column by column. For example, all the latch contents in FIG. 3 a can be read by first setting the selector signal 314-a to copy the latch values of latch 302-1 and latch 302-3 into the I/O buffer 308, then transferring the contents of the I/O buffer using the above mentioned technique to an external device such as a computer, then setting the selector signal 314-b to copy the latch values of latch 302-2 and latch 302-4 into the I/O buffer, and then transferring those values from the I/O buffer 308 to the external device.
  • With reference now to FIG. 3 b, additional detail is shown for preferred circuitry used to select a particular select line 314. A decoder 316 in line selector 312 (shown in FIG. 3 a) receives a line selecting signal. Decoder 316 is able to take the line selector signal input on “n” input lines to cause one of 2n select lines 314-a, b, x or n to ultimately go high. (Select lines 314 x and n are for other columns of latches 302 that are not shown in FIG. 3 a).
  • Assume that the line selecting signal shown in FIG. 3 b is input on two lines (n=2). Using binary math, this allows four binary values (00, 01, 10, 11) to be input and decoded. If the input on the two lines is 01bin, then output line “01” being input into an AND gate 318-a will be high. If the clock signal is also high, then the output of AND gate 318-a and only 318-a will be high, making select line 314-a the only high select line. (Note that voltage control components 324 are optional, and may be used to control the slew rate of NFETs 306 in a manner described below. If voltage control components 324 are not present, then select lines 314 are output directly from AND gates 318.)
  • Next, consider steps taken when writing data to exemplary latch 302-1 as shown in FIG. 3 a.
  • First, data to be written is shifted into the I/O buffer by the LSSD scan technique, toggling the A Clk and B Clk. Then, the read/write block 310-a is switched to a “Write mode” to allow the stored data from a latch (not shown) in I/O buffer 308 to be put on data line 304-a. Then, a line selecting signal is received in line selector 312, which using circuitry shown in FIG. 3 b, causes select line 314-a to go high (positive voltage representing a logic 1), thus turning on NFET 306-1. The content of data line 304-a is then stored in latch 302-1.
  • In order to use to use the same NFET 306 to either read or write data to a latch 302, different methods can be used. For the purpose of example, consider reading or writing data to latch 302-1. One method of selectively reading or writing this data is to vary the slew rate of NFET 306-1. By having a slow slew rate (gradually turning NFET 306-1), then the content of latch 302-1 will be allowed to be slowly put on data line 304-a, preventing the charge in the data line 304-a from disturbing the value in the latch 302-1. Alternatively, by having an high slew rate (quickly turning on NFET 306-1), the charge stored in the data-line suddenly rushes into the latch 302-1, overwriting the data-stored in the latch. The slew rate is controlled by voltage control components 324 shown in FIG. 3 b in a manner understood by those skilled in the art of electronics.
  • Similarly, a threshold voltage level of NFET 306-1 can be manipulated to allow data to be read or written to latch 302-1. If a control voltage on NFET 306-1 is maintained in a middle range (such that NFET 306-1 is only partially turned on), the data in the latch slowly changes the value in the data-line 304-a, resulting in a read operation. Conversely, if the control voltage of NFET 306-1 is such that NFET 306-1 is turned fully on, then the contents of data line 304-a are forced into latch 302-1, resulting in a write operation.
  • Alternatively, a voltage difference in latch 302-1 and data line 304-a can result in NFET 306-1 being used to permit a write operation to latch 302-1. Thus, using latch 302-1 as an example, assume that the transistors in latch 302-1 are tied to a supply voltage identified as V1. Putting on data line 304-a a voltage V2 that is positively higher that V1 represents a “1” on data line 304-a. Since V1 is much greater (more positive) than V2, then the “1” on data line 304-a will be forced into (written to) latch 302-1. Similarly, putting a voltage V3 on data line 304-a that is much less (more negative) than V1 represents a “0” on data line 304-a. Since V3 is much more negative than V1, then any charge in latch 302-1 will be pushed onto data line 304-a, resulting in a “0” being written to latch 302-1.
  • The steps for reading or writing to other latches 302 shown in FIG. 3 a are the same as described above with respect to latch 302-1.
  • With reference now to FIG. 4 a, there is illustrated an alternate preferred embodiment of the latch read/write circuitry shown in FIG. 3 a. The difference in FIG. 4 a is that instead of a same select line 314 regardless of whether data is to be read or written to a latch 302, each column of latches 302 have different read select lines 402 and write select lines 404 that are selected by a line selector 402 having a decoder 408. The read select lines 402 and write select lines 404 are coupled to separate Field Effect Transistors (FETs), identified as Read FETs (RFETs) and Write FETs (WFETs). Thus, the function of the single FETs 306 shown in FIG. 3 a is broken out into separate RFETs and WFETs.
  • The choice of whether a read or write operation is to be performed depends on the value of the Read/Write signal coming into line selector 402. Note that the function of read/write blocks 310 and I/O buffer 308 is similar to that described above for FIG. 3 a, and will not be reiterated here.
  • Preferably, RFETs are small transistors similar to those used in inverter 322-1 small, and the WFETs are large transistors similar to those found in inverters 322-2 large, both inverters making up latch 302-1. Thus, when a WFET is turned on, its brute power allows it to overcome any push-back from inverter 322-1 small, resulting in a write operation to the latch 302-1. Similarly, when an RFET is turned on, it offers little resistance to inverter 322-2 large, resulting in data passing from latch 302-1 to data line 304 for a read operation.
  • Referring now to FIG. 4 b, the selection of a read or write select line depends on the input of the line selecting signal as well as the Read/Write signal coming into the decoder 408. Consider as an example the events that occur if data is to be read from latch 302-1. Assume that line selecting signal is on a single line (n=1). Assume also that a signal of “0” on the Read/Write signal means “read,” and a signal of “1” on the Read/Write signal means “write.” To put read select line 402-a high, then the input on the single line selecting signal is “1,” and the input on the read/write signal is “0.” These inputs cause the line corresponding to the “10” output to go high. The line from the “10” output is logically ANDed with a high clock signal in AND gate 406-2 to produce a high signal on read select line 402-a. Similarly, if data is to be written from latch 302-1, then a signal of “1” is input as the line selecting signal, and a signal of “1” is input as the Read/Write signal, thus causing the line from the output labeled “11” to go high. When this line is logically ANDed with a high clock signal in AND gate 406-1, then write select line 404-a goes high.
  • While terms such as “high” and “low” have been used in an exemplary manner to describe logical “1” and “0” respectively, it is understood that alternate logical values may be used by altering circuitry (such as substituting PFETs for NFETs) to achieve a same logical result. Likewise, the AND gates 318 and 406, shown respectively in FIGS. 3 b and 4 b, may be NAND, OR, NOR or other logical units with minimal alteration of the circuitry.
  • Referring now to FIG. 5, a matrix 500 is depicted that is similar to matrix 300 depicted in FIG. 3 a, except that matrix 500 can only read data from latches 302. Data is read from pre-charged data lines 304, which are pre-charged using pre-chargers 502. Steps taken to read data from latches 302 shown in FIG. 5 are as follows. First, data lines 304 are pre-charged with a “1” signal upon a low clock signal being input into line selector 302 and a PFET in each pre-charger 502. The low signal turns on each PFET, allowing each data line 304 to be coupled to Vdd. Since line selector 312 uses the same decoder 304 and circuitry described in FIG. 3 b, none of the read select lines 314 have a read signal (high) on the line.
  • When the clock signal then goes high, the PFETs in the pre-chargers 502 are turned off, thus isolating the data lines 304 from Vdd. After turning on a select line 314, data latched in selected latches 302 is then sensed on a data line 304 and amplified by read blocks 504. The data is then sent to an Output buffer 506.
  • Consider an example of reading a “0” from latch 302-1. After pre-charging data line 304-a using pre-charger 502-a, a high Read signal “1” is put on select line 314-a. This high signal turns NFET-1 a on. Since latch 302-1 is outputting a “0,” then NFET-1 b (acting as a discharge switch to data line 304-a) is turned off, thus blocking a pathway from data line 304-a to ground. Therefore, data line 304-a will still have a charge, indicative of a “1,” which is the inverse of the true content of latch 302-1. Therefore, an inverter 508-a is located between read block 504-a and Output buffer 506, resulting in a correct value of “0” being stored in Output buffer 506. (To rectify the value read out of latch 302-1, the value can alternately be inverted using software.)
  • Now consider reading a “1” from latch 302-1. After pre-charging data line 304-a using pre-charger 502-a, a high Read signal “1” is put on select line 314-a. As before, this high signal turns NFET-1 a on, but now, since latch 302-1 is outputting a “1,”, then NFET-1 b is turned on, thus allowing NFET-1 b to act as a discharge switch to discharge data line 304-a. As data line 304-a now has no charge, indicative of a “0,” then inverter 508-a (or alternatively, software) inverts this value to a “1,” thus representing the true content of latch 302-1.
  • An advantage of the system shown in FIG. 5 is that there is no “bounce” on data lines 304, and thus the length of data lines 304 is of little or no consequence in the operation of the scan system. A disadvantage of the system shown in FIG. 5, however, is that the charge on data lines 304 must be captured by Output buffer 506 before the charge on the data lines 314 bleeds off from errant pathways. Another, and perhaps more significant, disadvantage is that data can only be read from, and not written to, the latches 302.
  • While the line selectors 312 in the preceding figures have been depicted using a multiplexer (MUX) decoder 304, alternatively select lines can be set high (or low) using a shift register (not shown). That is, each external scan clock signal going into scan clock generator can result in a different individual select line going high, usually in a sequential manner. Thus, in FIG. 3 b, a first external scan clock signal causes select line 314-b to go high, a second external scan clock signal causes select line 314-a to go high, and so on for other select lines 314-x and then 314-n.
  • Whichever method is used to cause a select line to go high, preferably only a single select line can be set high while all other select lines remain low. This allows a specific column of latches to be selected. When a specific column of latches is selected by a read signal on a select line, the contents of some or all of those latches can be captured by the output buffer.
  • For purposes of clarity, each state holding element has been described as a latch. Note however that these state holding elements may be any holding element capable of holding scan data. Such state holding elements may be flip-flops, registers, or any other similar state holding element. Further, the state holding elements may simply be a wire, capacitor, or other physical device charged or discharged to reflect a logic state.
  • Note also that for purposes of clarity, the latches 302 are depicted in 2×2 matrices of horizontal rows and vertical columns. While this orientation is referenced in the specification and associated claims, it is understood that the orientation is not limited by Cartesian directions such as horizontal and vertical or rows and column. Thus, a reference to a “horizontal” array or a “row” is only to distinguish an array of latches 302 in their coupling to a single data line when compared to latches in a “vertical” array or “column” coupled to a single select line. Note also that the 2×2 size of the matrices is for purposes of illustration only, as it is understood that the size of the matrices is preferably much larger than 2×2.
  • While individual switches are depicted as various FETs (NFETs and PFETs), it is understood that any similar switching device may be used, including BJTs and other similar switches, so long as signal are adjusted accordingly to turn the switches on and off in the manner described above.
  • The present invention, as described in its preferred embodiment, is thus able to scan data out of latches with greatly increased granularity, including immediately selecting a single latch within a latch matrix (array). Furthermore, since each latch can be directly accessed, the data jam shown in FIG. 2 is also avoided. Note that this data jam can be avoided both in the scan direction as well as the data flow direction, as is also the case of the system and method described in co-pending U.S. patent application Ser. No. 10/670,832.
  • It should be understood that at least some aspects of the present invention may be implemented in a program product. Programs defining functions on the present invention can be delivered to a data storage system or a computer system via a variety of signal-bearing media, which include, without limitation, non-writable storage media (e.g., CD-ROM), writable storage media (e.g., a floppy diskette, hard disk drive, read/write CD ROM, optical media), and communication media, such as computer and telephone networks including Ethernet. It should be understood, therefore in such single-bearing media when carrying or encoding computer readable instructions that direct method functions in the present invention, represent alternative embodiments of the present invention. Further, it is understood that the present invention may be implemented by a system having means in the form of hardware, software, or a combination of software and hardware as described herein or their equivalent.
  • While the invention has been particularly shown and described with reference to a preferred embodiment, it will be understood by those skilled in the art that various changes in form and detail may be made therein without departing from the spirit and scope of the invention.

Claims (7)

  1. 1. A system for accessing data from multiple latches, the system comprising:
    multiple data flow paths composed of multiple latches having intervening logic circuits, the latches functionally composed of holding devices for logic circuit data;
    selective interconnects coupling latches in different data flow paths of the multiple data flow paths; and
    a data accessing matrix coupled to two or more latches in two or more data flow paths by switching devices, the switching devices being activated by a line selector that activates the switching devices along a column of the data accessing matrix, wherein the contents of all latches in the column are output to multiple data lines along rows of the data accessing matrix.
  2. 2. The system of claim 1, further comprising:
    means for selecting one of the data line rows of the data accessing matrix.
  3. 3. The system of claim 1, further comprising:
    an input/output (I/O) buffer coupled to the data lines, wherein data read from the latches is transmitted via the data lines to the I/O buffer.
  4. 4. The system of claim 1, wherein each of the latches is composed of feedback coupled inverters.
  5. 5. The system of claim 1, wherein the switching devices are transistors.
  6. 6. The system of claim 1, further comprising:
    a pre-charger coupled to each data line; and
    a separate discharge switch coupling each of the latches to ground, wherein if a latch holds a first logical value, then the data line that is coupled to that latch is discharged, and wherein if that latch holds a second logical value, then the data line coupled to that latch remains charged.
  7. 7. The system of claim 1, further comprising:
    at least one read select line and at least one write select line coupled to a line selector;
    a read switch controlled by one of the read select lines, the read switch coupling one of the latches to one of the data lines; and
    a write switch controlled by one of the write select lines, the write switch coupling the same one of the latches to the same one of the data lines, wherein data is read from the latch to the data line by closing the read switch while the write switch is open, and wherein data is written from the data line to the latch by closing the write switch while the read switch is open.
US12041144 2004-07-22 2008-03-03 Scanning Latches Using Selecting Array Abandoned US20080163019A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US10896505 US7383480B2 (en) 2004-07-22 2004-07-22 Scanning latches using selecting array
US12041144 US20080163019A1 (en) 2004-07-22 2008-03-03 Scanning Latches Using Selecting Array

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US12041144 US20080163019A1 (en) 2004-07-22 2008-03-03 Scanning Latches Using Selecting Array

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US10896505 Continuation US7383480B2 (en) 2004-07-22 2004-07-22 Scanning latches using selecting array

Publications (1)

Publication Number Publication Date
US20080163019A1 true true US20080163019A1 (en) 2008-07-03

Family

ID=35658672

Family Applications (3)

Application Number Title Priority Date Filing Date
US10896505 Expired - Fee Related US7383480B2 (en) 2004-07-22 2004-07-22 Scanning latches using selecting array
US12041158 Abandoned US20080144400A1 (en) 2004-07-22 2008-03-03 Scanning Latches Using Selecting Array
US12041144 Abandoned US20080163019A1 (en) 2004-07-22 2008-03-03 Scanning Latches Using Selecting Array

Family Applications Before (2)

Application Number Title Priority Date Filing Date
US10896505 Expired - Fee Related US7383480B2 (en) 2004-07-22 2004-07-22 Scanning latches using selecting array
US12041158 Abandoned US20080144400A1 (en) 2004-07-22 2008-03-03 Scanning Latches Using Selecting Array

Country Status (1)

Country Link
US (3) US7383480B2 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8117579B2 (en) * 2008-01-31 2012-02-14 International Business Machines Corporation LSSD compatibility for GSD unified global clock buffers
US7908535B2 (en) * 2009-06-30 2011-03-15 Texas Instruments Incorporated Scan testable register file

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3783254A (en) * 1972-10-16 1974-01-01 Ibm Level sensitive logic system
US4493077A (en) * 1982-09-09 1985-01-08 At&T Laboratories Scan testable integrated circuit
US4503386A (en) * 1982-04-20 1985-03-05 International Business Machines Corporation Chip partitioning aid (CPA)-A structure for test pattern generation for large logic networks
US4581738A (en) * 1983-10-06 1986-04-08 Honeywell Information Systems Inc. Test and maintenance method and apparatus for a data processing system
US4613970A (en) * 1983-02-04 1986-09-23 Hitachi, Ltd. Integrated circuit device and method of diagnosing the same
US5428574A (en) * 1988-12-05 1995-06-27 Motorola, Inc. Static RAM with test features
US5671182A (en) * 1996-10-24 1997-09-23 Yin; Ronald Loh-Hwa SRAM memory circuit and method of operation therefor
US5784383A (en) * 1997-10-02 1998-07-21 International Business Machines Corporation Apparatus for identifying SMP bus transfer errors
US5914699A (en) * 1992-07-07 1999-06-22 Seiko Epson Corporation Matrix display apparatus matrix display control apparatus and matrix display drive apparatus
US6028983A (en) * 1996-09-19 2000-02-22 International Business Machines Corporation Apparatus and methods for testing a microprocessor chip using dedicated scan strings
US6262939B1 (en) * 1999-03-12 2001-07-17 Nec Corporation Semiconductor integrated circuit device
US6856308B2 (en) * 2000-06-29 2005-02-15 Hitachi, Ltd. Image display apparatus

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3783254A (en) * 1972-10-16 1974-01-01 Ibm Level sensitive logic system
US4503386A (en) * 1982-04-20 1985-03-05 International Business Machines Corporation Chip partitioning aid (CPA)-A structure for test pattern generation for large logic networks
US4493077A (en) * 1982-09-09 1985-01-08 At&T Laboratories Scan testable integrated circuit
US4613970A (en) * 1983-02-04 1986-09-23 Hitachi, Ltd. Integrated circuit device and method of diagnosing the same
US4581738A (en) * 1983-10-06 1986-04-08 Honeywell Information Systems Inc. Test and maintenance method and apparatus for a data processing system
US5428574A (en) * 1988-12-05 1995-06-27 Motorola, Inc. Static RAM with test features
US5914699A (en) * 1992-07-07 1999-06-22 Seiko Epson Corporation Matrix display apparatus matrix display control apparatus and matrix display drive apparatus
US6028983A (en) * 1996-09-19 2000-02-22 International Business Machines Corporation Apparatus and methods for testing a microprocessor chip using dedicated scan strings
US5671182A (en) * 1996-10-24 1997-09-23 Yin; Ronald Loh-Hwa SRAM memory circuit and method of operation therefor
US5784383A (en) * 1997-10-02 1998-07-21 International Business Machines Corporation Apparatus for identifying SMP bus transfer errors
US6262939B1 (en) * 1999-03-12 2001-07-17 Nec Corporation Semiconductor integrated circuit device
US6856308B2 (en) * 2000-06-29 2005-02-15 Hitachi, Ltd. Image display apparatus

Also Published As

Publication number Publication date Type
US20060020863A1 (en) 2006-01-26 application
US20080144400A1 (en) 2008-06-19 application
US7383480B2 (en) 2008-06-03 grant

Similar Documents

Publication Publication Date Title
US7168005B2 (en) Programable multi-port memory BIST with compact microcode
US7370254B2 (en) Compressing test responses using a compactor
US4608669A (en) Self contained array timing
Nadeau-Dostie et al. Serial interfacing for embedded-memory testing
US6265894B1 (en) Reconfigurable integrated circuit with integrated debugging facilities for use in an emulation system
US5602855A (en) Integrated test circuit
US5406566A (en) Semiconductor memory device having diagnostic circuit for comparing multi-bit read-out test data signal with multi-bit write-in test data signal stored in serial-input shift register
US5761215A (en) Scan based path delay testing of integrated circuits containing embedded memory elements
US5619511A (en) Dynamic scan circuit and method for using the same
US4293919A (en) Level sensitive scan design (LSSD) system
US5973529A (en) Pulse-to-static conversion latch with a self-timed control circuit
US6560740B1 (en) Apparatus and method for programmable built-in self-test and self-repair of embedded memory
US6057706A (en) Field programmable gate array with integrated debugging facilities
US5495487A (en) Testing buffer/register
US20050240848A1 (en) Masking circuit and method of masking corrupted bits
US5166604A (en) Methods and apparatus for facilitating scan testing of asynchronous logic circuitry
US6861867B2 (en) Method and apparatus for built-in self-test of logic circuits with multiple clock domains
US7017089B1 (en) Method and apparatus for testing a content addressable memory device
US5289403A (en) Self-timed content addressable memory access mechanism with built-in margin test feature
US6128215A (en) Static random access memory circuits
US5305284A (en) Semiconductor memory device
US3783254A (en) Level sensitive logic system
US5926487A (en) High performance registers for pulsed logic
US6178534B1 (en) System and method for using LBIST to find critical paths in functional logic
US4074851A (en) Method of level sensitive testing a functional logic system with embedded array