System for generating a test pattern to detect and isolate stuck faults for an interface using transition coding

Information

  • Patent Grant
  • 9852806
  • Patent Number
    9,852,806
  • Date Filed
    Monday, June 22, 2015
    9 years ago
  • Date Issued
    Tuesday, December 26, 2017
    7 years ago
Abstract
Conventional methods using signal test patterns to identify wiring errors are difficult to apply to interfaces encoding information as signal state transitions rather than directly as signal states. A system utilizing excitation of wires with selected transition coded patterns and evaluation of received results is described to identify failed wire connections. This approach may be advantageously used to provide fault detection and redundant path selection in systems incorporating stacked chip interconnections using Through Silicon Vias.
Description
REFERENCES

The following materials are herein incorporated by reference in their entirety for all purposes:


US Publication 2015/0092532 of U.S. patent application Ser. No. 14/498,957, filed on Sep. 26, 2014 by Amin Shokrollahi and Roger Ulrich, entitled “Fault Tolerant Chip-to-Chip Communication with Advanced Voltage Regulator” (hereinafter Shokrollahi I).


BACKGROUND

This disclosure is relevant to interfaces which encode and decode data values as transitions on the interconnect medium and have redundant resources to bypass faulty connections. Examples of such codes are described in Shokrollahi I, including the FTTL4 code utilized as a descriptive example herein. Efficient hardware-based identification of faulty connections is desired to facilitate automated reconfiguration of the redundant resources. The disclosed invention is relevant generally to any interface using transition codes, but is of particular interest to interfaces of 3D chip stacks where the interconnect is composed of stacked Thru-Silicon Vias (TSVs).



FIG. 1 provides a model of the general case, where the transmission of data across an interface is characterized by the number of wires (n) and the number of allowed electrical states on each wire (s). The term “wire” is used within this disclosure to refer generally to one element of the interconnect medium, without limitation to e.g. metallic electrical connection for such medium.) For a state based code, data values of m bits width are encoded into corresponding codewords represented by a unique combination of states on the n wires. The state levels of the wires are detected at the receive end of the interface and decoded to reproduce the original data value.


Note that in the general case m and n are not necessarily equal. If the number of possible electrical states s of each wire is greater than 2 (i.e. multi-level signaling is employed), then it is possible to encode m data bits into n wires where n<m.


Another method of encoding data bits onto the wires of the interface is to define codewords based on whether or not a transition occurs on each wire rather than the actual state of the wire. The current state of the wire is irrelevant to a transition code; the receiver detects whether transitions occur on each wire and decodes the codeword accordingly.


If s>2, then it is possible to define more than one type of transition. The receiver can differentiate between types of transitions based on the origin and terminal states of the wire. This expands the available code space such that transition codes where n<m are possible.


Transition codes are one type of code that can be used on interfaces between chips of a three dimensional (3D) chip stack. The 3D chip stack for a typical application is shown in FIG. 2 where a controller chip on the bottom of the stack connects to multiple DRAM chips. In one such embodiment, write data is broadcast by the controller chip to DRAM chips (egress path), and DRAM chips respond on a tri-state bus to the controller chip (ingress path). The interconnections between chips are composed of Thru-Silicon Vias (TSVs) which provide a high density of I/O for a given chip area. However, TSV yield is a significant factor in the manufacturing process for 3D chip stacks, and interconnect redundancy is desirable to mitigate yield impacts.



FIG. 3 illustrates an embodiment of the data transmission path of FIG. 1 with data steering stages added to support an interconnect that has one redundant wire available. Since the codeword requires n wires, and n+1 wires are available, then a fault on any one wire can be bypassed. Other embodiments may include more than one redundant wire, and thus may support correction of additional faults.


It is desirable to transmit a test pattern over the interface in FIG. 3 and check the pattern at the receive end to determine if the n wires being used are free from faults. Such test patterns may be implemented as a Built-In-Self-Test (BIST) feature of the interface, or may be generated external to the chip and applied by manufacturing test equipment to test the interface as part of a manufacturing or assembly process. If a fault is detected, it is desirable for the Pattern Checker to isolate which wire contains the fault based on the received test pattern. The data steering can be reconfigured based on this detection to bypass the wire with the fault. Known techniques exist for detecting and isolating stuck faults on wires using binary state-based codes. However, these techniques do not work with transition codes where the mapping between data bits and wires is not one-for-one.


Furthermore, it is desirable to minimize the required test circuitry incorporated into the DRAM chips shown in the application in FIG. 2. Toward this end, the DRAM is simplified to loopback the egress path to the ingress path with minimal processing as shown for the Data Loopback 420 in the loopback path of FIG. 4. The Pattern Generator 410 and Pattern Checker 430 are both located on the controller chip. This architecture places the additional burden on the test pattern, in that faults on the egress path must be distinguishable from faults on the ingress path.


BRIEF DESCRIPTION

Given an arbitrary transition code meeting the disclosed requirements, an embodiment comprises:


A system for constructing a test pattern to be transmitted by the Pattern Generator 410 as shown in FIG. 4;


A system for a Pattern Checker 430 as shown in FIG. 4 to determine whether faults exist, and if faults exist then isolate which wire contains the fault, based on the codewords received in the test pattern;


A system for Data Loopback logic 420 in the test path as shown in FIG. 4 to loopback data from the egress path to the ingress path such that the Pattern Checker can differentiate between faults on the egress path and faults on the ingress path.


At least one embodiment disclosed herein is a Pattern Generator and Pattern Checker for a single interconnect segment as shown in FIG. 3. Another embodiment is a Pattern Generator, Data Loopback, and Pattern Checker used to test cascaded interconnect segments as shown in FIG. 4. A further embodiment allowing cascading of the interconnect segments can also be applied to a bidirectional data bus between the controller and DRAM chips of FIG. 2 by segmenting the bus during test modes such half of the data bus is used as an egress path, and half of the data bus is used as an ingress path.


Embodiments in accordance with the disclosure may be implemented by Built-In-Self-Test (BIST) circuits on the chip, or by external test equipment interfacing to the chip being tested.


At least one embodiment uses the FTTL4 transition code described in Shokrollahi I. No limitation is implied, however, as other embodiments may in general use any transition code that meets the requirements described.





BRIEF DESCRIPTION OF FIGURES


FIG. 1 illustrates an interface where data is encoded for transmission across an interconnection consisting of an arbitrary number of wires to a receiver where the codewords on the interface are decoded to reproduce the original data.



FIG. 2 illustrates a three dimensional (3D) stack consisting of a controller chip and DRAM chips, and illustrating an egress datapath from the controller to the DRAM chips, and an ingress datapath from the DRAM chips back to the controller chip.



FIG. 3 illustrates the interface of FIG. 1 with the addition of a redundant wire and data steering stages to utilize the redundant wire to bypass a fault on any of the interconnect wires.



FIG. 4 illustrates an embodiment in which the interface of FIG. 3 has been cascaded for the egress and the ingress data path segments of FIG. 2, illustrating the placement of Pattern Generator 410 and Pattern Checker 430 on the controller chip, and the placement of Data Loopback 420 in the test path on the DRAM chip.



FIG. 5 illustrates an embodiment of Pattern Generator 410 in FIG. 4 for an FTTL4 code.



FIG. 6 illustrates an embodiment of Data Loopback 420 in FIG. 4 for an FTTL4 code.



FIG. 7 illustrates an embodiment of Pattern Checker 430 in FIG. 4 for an FTTL4 code.



FIG. 8 illustrates another embodiment of a Pattern Checker for an FTTL4 code.



FIG. 9 illustrates an example System Management Interface circuit for an FTTL4 code.



FIG. 10 illustrates an example embodiment of a Data Steering Circuit for an FTTL4 code.



FIG. 11 illustrates a method in accordance with at least one embodiment.





DETAILED DESCRIPTION

The disclosed embodiments describe a system of constructing a test pattern for an arbitrary transmission code that can quickly identify whether a wire on the interface failed, and identify which wire failed using a simple detection circuit so that the interface can use spare resources to bypass the failed wire. One embodiment of the disclosed systems and methods includes constructing a Pattern Generator, Pattern Checker, and Data Loopback function that can be used with the FTTL4 transition code in a 3D chip stack application. The dominant failure mechanism for such interfaces is stuck faults due to open connections at TSVs.


For descriptive purposes and without implying limitation, assumptions are made that:


1. The interface contains at most one fault. Test pattern errors will occur if multiple faults exist, but aliasing may occur such that the failing path cannot be properly identified. Known pattern generation techniques capable of distinguishing multiple errors without aliasing may be combined with the described systems and methods.


2. Failures can be adequately modeled using the stuck-fault model prevalently used in Design-For-Test strategies. This assumption is generally valid for the target application (TSVs of a 3D chip stack) since the dominant circuit fault is an open connection. Other known failure modeling methods may also be applied to address other failure modes.


This disclosure develops a mathematical description of an arbitrary transition code, and describes properties of the codewords of the arbitrary code. The disclosed system utilizes these properties to group codewords into sets of codewords transmitted by the Pattern Generator and sets of codewords detected by the Pattern Checker and utilized for fault isolation. The detection and processing that may be implemented by the Data Loopback function is also defined. One embodiment is described for the FTTL4 transition code as described in Shokrollahi I.


Transition Functions and Properties of Codewords


Assume a transition code with n wires and s states per wire, where the states of a wire represent signal levels on the transmission media. The data being transmitted on the interface is coded based on which wires make transitions, and the origin and terminal wire states of those transitions. Assume a transition function:

W0=Ti(W−1)  [Eqn. 1]


The function (Ti) describes the new state of the wire (W0) based on the previous state of the wire (W−1). This function is applied to specific wires when encoding specific data values. A transition code may define several possible transition functions that are applied to the n wires based on the data value being encoded. The number of wires and the number of uniquely identifiable transition functions determines the number of data bits that can be coded on n wires. The greater the number of wire states s, the greater the number of transition functions that can be defined and uniquely identified at the receiver.


Assume a transition code has defined f transition functions {T0, T1, . . . Tf-1}. The definition of the T0 function is reserved and is defined as the null function where the wire does not change state:

W0=T0(W−1)=W−1  [Eqn. 2]


All other transition functions involve a change of state for wire i.


The transition code maps data values to codewords that are constructed by defining a transition function for each of n wires: (Ti1, Ti2, . . . Tin), where each Tij∈{T0, T1, . . . Tf-1}.


Note that some transition functions can be aliases of other transition functions. A transition function defines the new state of a wire W0 based on the previous state of a wire W−1. The transition function is defined by the transitions of wire states (W−1, W0) for all s possible values of wire state W−1. Given two transition functions, if there exists a transition (W−1, W0) where the state values of W−1 and W0 are the same for both functions, then the transition functions are aliases of each other.


Now define a property called transition count (TC) of a given codeword of a transition code as the total number of the n wires for which Tij∈{T1, . . . Tf-1} and Tij∉{T0}. The transition count represents the total number of wires that are making state transitions for a given codeword.


Sets of Codewords


Given the definition of the property TC, codewords of the transition code can be grouped into sets with similar values of TC. A transition code can contain codewords with any TC in the range 0≦TC≦n. Let:


GROUP(c)←set of valid transition codewords of the transition code for which TC=c, where 2≦c≦n.


GROUP(c−1)←set of valid transition codewords of the transition code for which TC=c−1.


Valid values of c are restricted to ensure that the codewords of GROUP(c−1) contain at least one transition. This is necessary to allow identification of the bad wire. For completeness, the following set is defined:


GROUP(TC>c|TC<c−1)←egress-fault identification codewords that are not members of GROUP (c) or GROUP (c−1).


Next define:


FAULT(c, w)←set of codewords that result from a stuck fault on a codeword from GROUP(c).


The FAULT(c, w) set is constructed for each wire associated with wire index w in the range 1≦w≦n by taking each member of GROUP(c), and changing the transition function for wire associated with wire index w to T0, and adding the resulting codeword to FAULT(c, w) using the following rules:

    • 1. If the codeword is the same as the original codeword (transition function for wire associated with wire index w was already T0), then do not include the resulting codeword in set FAULT(c, w).
    • 2. If the codeword is not the same as the original codeword then add the codeword to FAULT(c, w).
    • 3. If the codeword in step 2 contains transition functions that can be aliased by other transition functions, then add additional codewords to FAULT(c, w) for every possible permutation of a transition function being replaced by its alias function.


The following algorithm provides a formalized description of the construction of the FAULT(c, w) sets:














for each wire index w do /* construct sets FAULT(c, w) */


  FAULT(c, w) := { };


  for each codeword ∈ GROUP(c) for which TC = c do


    new_codeword ← codeword modified by changing Tiw := T0;


    if codeword ≠ new_codeword then


      add new_codeword to set FAULT(c, w);


      for each wire index v where v ≠ w do


        add aliases of new_codeword to set FAULT(c, w);


      end for;


    end if;


  end for;


  end for;









All of the codewords in FAULT(c, w) have the property that TC=c−1. The number of elements in FAULT(c, w) can be larger than the number of elements in GROUP(c) if some transition functions can alias other transition functions.


The OVERLAP(c, w) set for each wire w is defined as:


OVERLAP(c, w)←FAULT(c, w)∩GROUP(c−1)


This set determines valid reduced-transition codewords that will be decoded at the receiver in the presence of stuck faults, and can be used to detect the fault and identify a wire index associated with the wire on which the stuck fault has occurred.


The GENERATE(c) set is defined as the valid transition codewords in GROUP(c) which, when a stuck fault occurs on wire associated with wire index w, result in a codeword that is contained in one of the sets OVERLAP(c, w). This set determines the codewords that may be transmitted in the constructed test pattern.


Finally, the function DATA(S) is introduced for notation purposes, and is defined as the decoded data values corresponding to codeword(s) of argument S. Likewise, the function CODE(S) is defined as the set of encoded codewords corresponding to the data value(s) of argument S.


Test Pattern Construction


In order to construct a test pattern for the Pattern Generator, it is necessary that the definition of the transition code meet the following requirements:


1. There is a value c in the range 2≦c≦n for which GROUP(c)≠{ } and GROUP(c−1)≠{ }.


2. For each wire associated with wire index w in the range 1≦w≦n, OVERLAP(c, w)≠{ }. (OVERLAP sets are not empty.)


3. For each wire index w1 in the range 1≦w1≦n, and wire index w2 in the range 1≦w2≦n, w1≠w2: OVERLAP(c, w1)≠OVERLAP(c, w2). (OVERLAP sets are unique.)


4. If the test pattern must propagate through cascaded segments of the interface, then:


GROUP(TC>c|TC<c−1)≠{ }.


Given a transition code that meets the above requirements the Pattern Generator is constructed by sending random data values∈DATA(GENERATE(c)) to generate valid transition codewords∈GENERATE(c).


If there are no stuck faults on the interface, the Pattern Checker only receives valid transition codewords∈GROUP(c). If a stuck fault exists, then valid reduced-transition codewords∈OVERLAP(c, w) where w corresponds to a wire index associated with the wire with the fault are also received. Additionally, invalid codewords may be received. The Pattern Checker can therefore be constructed such that it detects data words where:


rx_dataword∈DATA(OVERLAP(c, 0)∪OVERLAP(c, 1)∪ . . . ∪OVERLAP(c, n))


The Pattern Checker determines which wire contains a fault based upon which of the above codewords (or data values) are detected. This is based upon the behavior that in the presence of a single stuck fault on the wire associated with wire index w, at least some of the codewords received match elements in set OVERLAP(c, w) and will be decoded successfully. Given a test pattern that exercises all possible transitions of wire states on all wires, the Pattern Checker will eventually detect all of the valid reduced-transition codewords in set OVERLAP(c, w). While some of these codewords may also exist in other OVERLAP sets, in general at least some elements of other sets will not have been encountered by the Pattern Checker.


A special case exists if the OVERLAP set for one wire is a subset of the OVERLAP set for another wire. Transition code requirements do not exclude this case. In this case, the Pattern Checker may encounter all valid reduced-transition codewords of the OVERLAP sets for both wires; indicating that the wire with the stuck fault is the wire represented by the OVERLAP set with the most elements. If the fault were on the wire corresponding to the smaller set, then some valid reduced-transition codewords in the larger set would not have been encountered.


Pattern Checker implements data processing that is specified by the following algorithm:














/* initialize */


wire_fault := none;


set_size := 0;


segment := ingress; /* if data propagates through a loopback, determine


segment that failed */


for each element i ∈ OVERLAP(c, w) for any w do


  cw_hit(w, i) := false;


end for;


/* run test */


for each rx_dataword received in the test pattern do


  codeword := CODE(rx_dataword);


  if codeword ∈ OVERLAP(c, w) for any w then cw_hit


  (w, codeword) := true;


  if codeword ∈ GROUP(TC > c | TC < c−1) then segment := egress;


  if codeword is an invalid codeword then ignore it;


end for;


/* post processing */


for each wire w do


  if all cw_hit(w, i) = 1 for set OVERLAP(c, w) then


    this_set_size := number of elements in set OVERLAP(c, w);


    if this_set_size > set_size then


      wire_fault := w; /* fault is on wire w */


      set_size := this_set_size;


    end if;


  end if;


end for; /* stuck fault is on wire w of segment */









The Pattern Checker described by the above algorithm also identifies whether the stuck fault was in an egress or an ingress segment as described in the next section.


Data Loopback


It is desirable in the 3D chip stack configuration shown in FIG. 2 to minimize test logic on the DRAM chip by looping test data from the egress data path onto the ingress datapath as shown in FIG. 4, and performing both pattern generation and pattern checking on the controller chip. The Data Loopback function in FIG. 4 must do some minimal checking of the test pattern received from the egress interface and some minimal modification of the test pattern sent on the ingress interface; the purpose of this is to provide a means for the Pattern Checker to distinguish between faults on the egress versus ingress paths.


The Data Loopback implements data processing that is specified by the following algorithm:














/* initialize */


for each element i ∈ OVERLAP(c, w)


  for any w do


    cw_toggle(w, i) := 0;


  end for;


/* run test */


for each rx_dataword received in test pattern do


  codeword := CODE(rx_dataword);


  if codeword ∈ OVERLAP(c, w) for any w


    then cw_toggle(w, i) := (cw_toggle(w, i) + 1) mod 2;


    if cw_toggle(w, i) ≠ 0 then


      /* alternate insertion of egress-fault indication codeword to


      indicate fault is on egress */


      tx_dataword := any i ∈ DATA(GROUP


      (TC > c | TC < c−1));


    else /* alternate propagation of valid reduced-transition


    codeword */


      tx_dataword := rx_dataword;


    end if;


  else if codeword is an invalid codeword then


      /* suppress propagation of invalid codewords */


      tx_dataword := any i ∈ DATA(GROUP(c));


    else


      tx_dataword := rx_dataword;


    end if;


end for;









As described above, the Data Loopback propagates valid transition codewords (including valid reduced-transition codewords from the OVERLAP(c, w) sets) through the loopback path. However, if codewords from the OVERLAP(c, w) sets are detected then the propagation of these codewords is alternated with the propagation of one or more egress-fault indication codewords from the GROUP(TC>c|TC<c−1) set. The presence or absence of codewords from GROUP(TC>c|TC<c−1) is used by the Pattern Checker at the controller to determine whether the stuck fault is on the controller to DRAM (egress) path or on the DRAM to controller (ingress) path. This detection is supported by the algorithm implemented by the Pattern Checker presented previously.


The Data Loopback also suppresses any invalid codewords that are received from the egress path and substitutes a valid codeword on the return path. This is to avoid any unpredictable behavior.


Embodiment Using FTTL4 Transition Code


Referring to Shokrollahi I, the FTTL4 code defines n=3 wires with s=3 states (0, 1, 2). The following transition functions are defined:

TNULL Function:W0=TNULLTNULL(W−1)=W−1
TINC Function:W0=TINC(W−1)=(W−1+1)mod 3
TDEC Function:W0=TDEC(W−1)=(W−1−1)mod 3
TMID Function:W0=TMID(W−1)=(W−1−1) if W−1=1,2
(W−1+1) if W−1=0


Table I is a truth table for the code:









TABLE I







truth table for FTTL4 code










Data
Code







0000
TNULL, TINC, TINC



1000
TINC, TINC, TNULL



0001
TNULL, TINC, TDEC



1001
TINC, TDEC, TNULL



0010
TNULL, TDEC, TINC



1010
TDEC, TINC, TNULL



0011
TNULL, TDEC, TDEC



1011
TDEC, TDEC, TNULL



0100
TINC, TNULL, TINC



1100
TMID, TNULL, TNULL



0101
TINC, TNULL, TDEC



1101
TNULL, TNULL, TMID



0110
TDEC, TNULL, TINC



1110
TNULL, TMID, TNULL



0111
TDEC, TNULL, TDEC



1111
TNULL, TNULL, TNULL










This contains the following sets of valid transition codewords for c=2:


GROUP(TC=2)=






    • {(TNULL, TINC, TINC), (TNULL, TINC, TDEC), (TNULL, TDEC, TINC), (TNULL, TDEC, TDEC), (TINC, TNULL, TINC), (TINC, TNULL, TDEC), (TDEC, TNULL, TINC), (TDEC, TNULL, TDEC), (TINC, TINC, TNULL), (TINC, TDEC, TNULL), (TDEC, TINC, TNULL), (TDEC, TDEC, TNULL)}


      GROUP(TC=1)=

    • {(TMID, TNULL, TNULL), (TNULL, TNULL, TMID), (TNULL, TMID, TNULL)}


      GROUP(TC>2|TC<1)={(TNULL, TNULL, TNULL)}





The TINC and TDEC can alias as TMID at the receiver. The fault sets including aliasing, assuming c=2 are:


FAULT(c=2, w=1)=






    • {(TNULL, TNULL, TINC), (TNULL, TNULL, TDEC), (TNULL, TNULL, TMID), (TNULL, TINC, TNULL), (TNULL, TDEC, TNULL), (TNULL, TMID, TNULL)}


      FAULT(c=2, w=2)=

    • {(TNULL, TNULL, TINC), (TNULL, TNULL, TDEC), (TNULL, TNULL, TMID), (TINC, TNULL, TNULL), (TDEC, TNULL, TNULL), (TMID, TNULL, TNULL)}


      FAULT(c=2, w=3)=

    • {(TNULL, TINC, TNULL), (TNULL, TDEC, TNULL), (TNULL, TMID, TNULL), (TINC, TNULL, TNULL), (TDEC, TNULL, TNULL), (TMID, TNULL, TNULL)}


      and the intersection of the FAULT sets and SET(TC=1) are:


      OVERLAP(c=2, w=1)={(TNULL, TNULL, TMID), (TNULL, TMID, TNULL)}


      OVERLAP(c=2, w=2)={(TNULL, TNULL, TMID), (TMID, TNULL, TNULL)}


      OVERLAP(c=2, w=3)={(TNULL, TMID, TNULL), (TMID, TNULL, TNULL)}





The Data Loopback circuit on the DRAM will alternate the insertion of the codeword: GROUP(TC>2|TC<1)={(TNULL, TNULL, TNULL)}


This set corresponds to the set of data words:


DATA(GROUP(TC>2|TC<1))={b1111}


The Pattern Checker on the controller may interpret the codewords received for data values as wire faults as shown in Table II.









TABLE II







Error condition decode to wire faults








Wire with fault
Codewords received for data values





Egress wire #1
b1101, b1110, b1111 all occur


Egress wire #2
b1100, b1101, b1111 all occur


Egress wire #3
b1100, b1110, b1111 all occur


Ingress wire #1
b1101 and b1110 both occur, b1111 does not occur


Ingress wire #2
b1100 and b1101 both occur, b1111 does not occur


Ingress wire #3
b1100 and b1110 both occur, b1111 does not occur


No faults
Never occur: b1100, b1101, b1110, b1111


Multiple Faults
b1100, b1101, b1110 all occur









The FAULT sets correspond to the following GENERATE set, which is equivalent to SET(TC=2) for this code:


GENERATE(2)=






    • {(TNULL, TINC, TINC), (TNULL, TINC, TDEC), (TNULL, TDEC, TINC), (TNULL, TDEC, TDEC), (TINC, TNULL, TINC), (TINC, TNULL, TDEC), (TDEC, TNULL, TINC), (TDEC, TNULL, TDEC), (TINC, TINC, TNULL), (TINC, TDEC, TNULL), (TDEC, TINC, TNULL), (TDEC, TDEC, TNULL)}





The corresponding set of data values for the Pattern Generator are:


DATA(GENERATE(2))=






    • {b0000, b0001, b0010, b0011, b0100, b0101, b0110, b0111, b1000, b1001, b1010, b1011}





The Pattern Generator randomly generates data words from this set. The Data Loopback can substitute any of these data words on the ingress interface when an invalid codeword is detected on the egress interface.


The preferred embodiments of the Pattern Generator 410, Data Loopback 420, and Pattern Checker 430 in FIG. 4 for an FTTL4 transition code are shown in FIGS. 5, 6, and 7 respectively. Those skilled in the art will understand that other logic representations and implementation variations are possible to implement the specified behavior described for the disclosed systems and methods.


An embodiment of the Pattern Generator 410 in FIG. 4 for an FTTL4 transition code is shown in FIG. 5. The circuit shown includes a Pseudo-Random Bit Sequence (PRBS) Generator 510 with a four bit output, and combinatorial encoder logic 520. The PRBS Generator produces pseudo-random data in the range {b0000 . . . b1111}. The encoder logic detects codes in the range {b1100 . . . b1111} which are not members of the DATA(GENERATE(2)) set, and substitutes a member of this set by forcing either bit 3 or bit 2 to “0”. The bit to be forced is randomly determined by another bit of the PRBS generator output. Implementations are also possible using fewer logic gates, which remove the randomization and always force either bit 3 or bit 2.


An embodiment of the Data Loopback 420 in FIG. 4 for an FTTL4 transition code is shown in FIG. 6. The decoded data from the decoder on the egress path of FIG. 4 is presumed to have a 4-bit data output and an “Invalid decode” signal, which indicates the codeword received was not valid. The Data Loopback detects valid reduced-transition codewords that are members of the OVERLAP sets using AND gates 610. When one of these gates detects a valid reduced-transition codeword in an OVERLAP set, it asserts the T input of toggle flip-flops 620 such that the flip-flop inverts its state value on the next clock edge. If the current state of the flip-flop is “0”, then the Data Loopback does not alter the data in the loopback path. If the current state of the flip-flop is “1”, then AND gates 630, OR gate 640, and OR gates 650 force bits 1:0 to “11” such that the data on the loopback path is b1111. (Bits 3:2 must already be “11” for the data to be part of an OVERLAP set.) The insertion of b1111 (an egress-fault indication codeword of the DATA(GROUP(TC>2|TC<1)) set) indicates that the fault exists before the Data Loopback circuit.



FIG. 6 also illustrates using the “Invalid decode” condition to force the loopback data to be a valid codeword. This is done by forcing bit 3 to “0” such that the resulting data must be in the range {b0000 . . . b0111}, all values of which are members of the DATA(GENERATE(2)) set.


An embodiment of the Pattern Checker 430 in FIG. 4 for an FTTL4 transition code is shown in FIG. 7. The decoded data is applied to the inputs of AND gates 710 which detect valid reduced-transition codewords that are members of the OVERLAP sets and egress-fault indication codewords that are part of the DATA(GROUP(TC>2|TC<1)) set. When a codeword is detected, the AND gate output is applied to the corresponding Set input of flip-flops 720. These flip-flops are reset before the start of the test sequence; when Set is asserted they transition to a set state and hold this state for the remainder of the test. The output of flip-flops 720 is decoded by gates 730 to determine the wire index associated with the location of the fault according to the truth table presented earlier in this section. The condition where multiple faults exist is decoded by gate 740.


It should be noted that certain embodiments may not be configured to detect the location of the fault in only the pattern checker. In some embodiments, pattern checking could occur on both the transmit side and receive side, in which case an egress-fault indication codeword is not necessary. A more general case of identifying the location of the fault is given in FIG. 8. Similarly to FIG. 7, decoded data is applied to AND gates 810, which detect codewords that are members of the OVERLAP sets. When a codeword is detected, the AND gate output is applied to the corresponding Set input of flip-flops 820. These flip-flops are reset before the start of the test sequence; when Set is asserted they transition to a set state and hold this state for the remainder of the test. The output of flip-flops 820 is decoded by gates 830 to determine the wire index of the wire fault. The condition where multiple faults exist is decoded by gate 840. Note that the example circuit given in FIG. 8 differs in that it is determining the wire index only, rather than determining an egress or ingress path associated with the fault. This simplified circuit allows embodiments to check faults on the egress and ingress paths independently, allowing detection of more potential wire faults.


Data Steering Circuit


In at least one embodiment, outputs of AND gates 730 or AND gates 830 are input into a System Management Interface 910, as shown in FIG. 9. FIG. 9 shows the inputs 905 representing signals corresponding to wire faults identified on wires 1, 2, or 3. It should be known that any subset of inputs comprising outputs of AND gates 730 or AND gates 830 can be used. System Management Interface 910 is configured to generate control signals 915 A, B, C, D, and E based on inputs 905. In at least one embodiment, a data steering circuit configured to bypass a wire affected by a fault uses these control signals.


An example embodiment of a data steering circuit is shown in FIG. 10. Encoder 1010 receives Transmit Data 1005, and encodes the data into information to be sent on wires w1, w2, and w3. In at least one embodiment, a data steering circuit comprises transmit multiplexers 1015 and receive multiplexers 1040, each multiplexer accepting a control signal 915 from the System Management Interface 910. The multiplexers 1015 are configured to bypass an affected wire based on control signals A and B. A portion of Drivers 1020 and receivers 1025 are activated based on control signals 915 to transmit data on the selected wires. Decoder 1030 receives outputs of multiplexers 1040, based on control signals C, D, and E. Table III below shows an example of possible control signals 915 generated according to inputs 905, and which wires are utilized in each case:

















TABLE III





Fault on
Fault on
Fault on








Wire 1
Wire 2
Wire 3
A
B
C
D
E
Wire being used:







0
0
0
0
0
0
0
0
{w1, w2, w3}


1
0
0
0
0
1
0
0
{w_spare, w2, w3}


0
1
0
1
0
1
1
0
{w_spare, w1, w3}


0
0
1
1
1
1
1
1
{w_spare, w1, w2}









The examples illustrate the use of transitions codes in the fault detection of integrated circuit interconnections. At least one embodiment uses the FTTL4 transition code described in Shokrollahi I. At least one embodiment addresses Through-Silicon-Via interconnection faults between stacked integrated circuit devices. No limitation is implied, however, as other embodiments may in general use any transition code and/or interconnection means satisfying the basic requirements described herein. The methods disclosed in this application may be equally applicable to other encoding methods, and to communication media including optical and wireless communications. Thus, descriptive terms such as “voltage” or “signal level” should be considered to include both electrical equivalents such as “current”, and also equivalents in other measurement systems, such as “optical intensity”, “RF modulation”, etc. Specific examples provided herein are for purposes of description, and do not imply a limitation.


As used herein, “physical signal” includes any suitable behavior and/or attribute of a physical phenomenon capable of conveying information. In accordance with at least one embodiment, physical signals may be tangible and non-transitory.


Embodiments


In at least one embodiment, a system comprises: a decoder configured to decode a sequence of received transition codewords of a transition code into a plurality of sets of m data bits, each codeword corresponding to one set of m data bits, the received transition codewords corresponding to test codewords having been transmitted via an egress path, each test codeword comprising n elements and having c transitions, and wherein any set of c−1 transitions of the c transitions corresponds to a valid reduced-transition codeword, wherein n and c, and m are an integers greater than or equal to 2; a data loopback circuit configured to receive the plurality of sets of m data bits and to determine, for each set, if the m data bits correspond to a reduced-transition codeword, and responsively generate a plurality of sets of m response bits based on the determinations. In at least one embodiment, the data loopback circuit generates at least one set of m response bits corresponding to an egress-fault indication codeword in response to receiving data bits corresponding to a reduced-transition codeword. In at least one embodiment, the egress-fault indication codeword is an error-signaling transition codeword having TC number of transitions, wherein TC is an integer according to: c<TC or TC<c−1. In at least one embodiment, the data loopback circuit generates a subset of the plurality of sets of m response bits by retransmitting a subset of the received plurality of sets of m data bits. In at least one embodiment, the data loopback circuit is configured to generate a listing of received reduced-transition codewords, and to responsively determine a wire index of a wire fault.


In at least one embodiment, a system comprises: a pattern generator configured to generate a bit pattern comprising a plurality of sets of m data bits representing a sequence of valid transition codewords of a transition code, each valid transition codeword comprising n elements and having c transitions, wherein any set of c−1 transitions of the c transitions corresponds to a valid reduced-transition codeword, and wherein m, n, and c, are integers greater than or equal to 2; an encoder configured to generate the sequence of valid transition codewords based on the bit pattern and transmit the sequence on an egress path; a decoder configured to receive a sequence of response codewords on an ingress path and decode them into a plurality of sets of m bits; and, a pattern checker configured to receive the m bits and generate a listing of received reduced-transition codewords, and to responsively determine (i) a wire index of a wire fault and (ii) a path associated with the wire fault based on the listing. In at least one embodiment, the listing corresponds to a combination of states of state elements. In at least one embodiment, the state elements are flip-flops. In at least one embodiment, the pattern checker comprises a logic circuit configured receive the combination of states and responsively generate signals identifying the wire index and path associated with the wire fault. In at least one embodiment, the system further comprises a data steering circuit configured to receive the signals representing the wire index and path identified by the wire fault and responsively bypass a communication wire identified by the wire index on the path.


In at least one embodiment, a method 1100 as shown in FIG. 11 comprises generating, at block 1102, a plurality of sets of m data bits, each set of m data bits corresponding to a valid transition codeword of a transition code, each valid transition codeword comprising n elements and c transitions, wherein any set of c−1 transitions of the c transitions corresponds to a valid reduced-transition codeword, and wherein m, n, and c are integers greater than or equal to 2, encoding, at block 1104 the plurality of sets of m data bits into a sequence of valid transition codewords, transmitting, at block 1106, the sequence of valid transition codewords on a transmission path, decoding, at block 1108 the sequence of valid transition codewords into sets of m received bits, and, determining, at block 1110, a wire fault is present on the transmission path by determining, for each set of m received bits, if the set of m received bits corresponds to a valid reduced-transition codeword. In at least one embodiment, the method further comprises generating a plurality of sets of m response bits based on the determinations. In at least one embodiment, at least one of the sets m response bits represents a path-fault indication codeword. In at least one embodiment, the path-fault indication codeword represents a valid transition codeword having TC number of transitions, wherein TC is an integer according to: c<TC or TC<c−1. In at least one embodiment, the method further comprises identifying a set of m data bits representing a path-fault indication codeword. In at least one embodiment, the method further comprises generating a listing of valid reduced-transition codewords. In at least one embodiment, the method further comprises identifying a wire index of a wire fault based on the listing. In at least one embodiment, the listing is represented by a combination of states. In at least one embodiment, the transition code is an FTTL4 code. In at least one embodiment, the method further comprises identifying a set of m data bits representing an invalid codeword, and suppressing the invalid codeword by substituting a set of m response bits representing a valid transition codeword having c transitions.

Claims
  • 1. A system comprising: a decoder configured to decode a sequence of received transition codewords of a transition code into a plurality of sets of m data bits, each codeword having n elements and corresponding to one set of m data bits, the received transition codewords corresponding to valid transition codewords having been transmitted via n wires of an egress path having a spare wire in addition to the n wires, each valid transition codeword and having c transitions, and wherein any set of c−1 transitions of the c transitions corresponds to a valid reduced-transition codeword, wherein n and c, and m are integers greater than or equal to 2; and,a data loopback circuit configured to: receive the plurality of sets of m data bits;detect two or more sets of m data bits as corresponding to valid reduced-transition codewords indicative of an egress wire fault, the valid reduced-transition codewords collectively forming a group of valid reduced-transition codewords associated with one of the n wires of the egress path associated with the egress wire fault; andgenerate a plurality of sets of m response bits comprising (i) the detected two or more sets of m data bits and (ii) at least one set of m response bits corresponding to an egress fault indication codeword; andan encoder configured to encode the plurality of sets of m response bits into a plurality of response codewords having n elements and to responsively transmit the response codewords via n wires of an ingress path.
  • 2. The system of claim 1, wherein the egress-fault indication codeword is a transition codeword having TC number of transitions, wherein TC is an integer according to: c<TC or TC<c−1.
  • 3. A system comprising: a pattern generator configured to generate a plurality of sets of m data bits representing a sequence of valid transition codewords of a transition code, each valid transition codeword comprising n elements and having c transitions, wherein any set of c−1 transitions of the c transitions corresponds to a valid reduced-transition codeword, and wherein m, n, and c, are integers greater than or equal to 2;an encoder configured to generate the sequence of valid transition codewords based on the plurality of sets of m data bits and to transmit the sequence of codewords on n wires of an egress path, the egress path further comprising a spare wire in addition to the n wires;a decoder configured to receive a sequence of response codewords via n wires of an ingress path further comprising a spare wire in addition to the n wires, the decoder configured to decode the sequence of response codewords into a plurality of sets of m response bits;a pattern checker configured to receive the plurality of sets of m response bits and to generate a listing of received reduced-transition codewords, and to responsively determine (i) a wire index of a wire fault based on the listing of received reduced-transition codewords and (ii) a path associated with the wire fault based on the presence of an egress fault indication codeword, the pattern checker configured to responsively generate a set of wire steering control signals; andwire steering circuits connected to the egress and ingress paths, wherein one of the steering circuits is configured to reroute codeword elements from the wire on the determined path having the wire index to the spare wire of the determined path.
  • 4. The system of claim 3, wherein the listing corresponds to a combination of states of state elements.
  • 5. The system of claim 4, wherein the state elements are flip-flops.
  • 6. The system of claim 4, wherein the pattern checker comprises a logic circuit configured receive state information and to responsively generate signals identifying the wire index and path associated with the wire fault, the generated signals used to generate the set of wire steering control signals.
  • 7. A method comprising: generating a plurality of sets of m data bits, each set of m data bits corresponding to a valid transition codeword of a transition code, each valid transition codeword comprising n elements and c transitions, wherein any set of c−1 transitions of the c transitions corresponds to a valid reduced-transition codeword, and wherein m, n, and c are integers greater than or equal to 2;encoding the plurality of sets of m data bits into a sequence of valid transition codewords;transmitting the sequence of valid transition codewords on n wires of an egress path, the egress path having a spare wire in addition to the n wires;decoding the sequence of valid transition codewords into a plurality of sets of m received bits;detecting two or more sets of m received bits as corresponding to valid reduced-transition codewords indicative of an egress wire fault, the valid reduced-transition codewords collectively forming a group of valid reduced-transition codewords associated with one of the n wires of the egress path associated with the egress wire fault; andgenerating a plurality of sets of m response bits comprising (i) the detected two or more sets of m data bits and (ii) at least one set of m response bits corresponding to an egress fault indication codeword; andencoding the plurality of sets of m response bits into a plurality of response codewords having n elements and responsively transmitting the response codewords via n wires of an ingress path.
  • 8. The method of claim 7, wherein the path-fault indication codeword represents a valid transition codeword having TC number of transitions, wherein TC is an integer according to: c<TC or TC<c−1.
  • 9. The method of claim 7, further comprising decoding the plurality of response codewords.
  • 10. The method of claim 9, further comprising identifying a wire index of the egress wire fault based on the decoded plurality of response codewords.
  • 11. The method of claim 9, wherein the wire index is identified by a combination of states, each state corresponding to a respective reduced-transition codeword of the group of reduced-transition codewords.
  • 12. The method of claim 7, wherein the transition code is an FTTL4 code.
  • 13. The method of claim 7, further comprising identifying a set of m data bits representing an invalid codeword, and suppressing the invalid codeword by substituting a set of m response bits representing a valid transition codeword having c transitions.
  • 14. The system of claim 1, further comprising a steering logic circuit connected to the egress path configured to reroute codeword elements from the wire associated with the egress wire fault to the spare wire of the egress path.
  • 15. The system of claim 14, wherein the steering logic circuit comprises a plurality of multiplexers, each multiplexor connected to two wires of the egress path and configured to receive a selection control signal.
  • 16. The system of claim 14, wherein the steering logic circuit is configured to receive control signals from a system management interface.
  • 17. The system of claim 9, wherein the logic circuit comprises a plurality of AND gates, each AND gate having respective combinations of inverting and non-inverting inputs to implement a respective combination of the received state elements.
  • 18. The method of claim 11, wherein the combination of states is determined using a logic AND gate receiving state outputs from a plurality of flip-flops.
  • 19. The method of claim 7, further comprising rerouting an element of the valid transition codewords from the wire associated with the egress wire fault to the spare wire of the egress path.
  • 20. The method of claim 19, wherein the element of the valid transition codewords is rerouted using steering logic comprising multiplexers.
Parent Case Info

This application claims priority to U.S. Provisional Application 62/015,172, filed Jun. 20, 2014, entitled “System for Generating a Test Pattern to Detect and Isolate Stuck Faults for an Interface using Transition Coding,” which is herein incorporated by reference in its entirety for all purposes.

US Referenced Citations (320)
Number Name Date Kind
668687 Mayer Feb 1901 A
780883 Hinchman Jan 1905 A
3196351 Slepian Jul 1965 A
3636463 Ongkiehong Jan 1972 A
3939468 Mastin Feb 1976 A
4163258 Ebihara et al. Jul 1979 A
4181967 Nash et al. Jan 1980 A
4206316 Burnsweig et al. Jun 1980 A
4276543 Miller Jun 1981 A
4486739 Franaszek et al. Dec 1984 A
4499550 Ray et al. Feb 1985 A
4722084 Morton Jan 1988 A
4772845 Scott Sep 1988 A
4774498 Traa Sep 1988 A
4864303 Ofek Sep 1989 A
4897657 Brubaker Jan 1990 A
5017924 Guiberteau May 1991 A
5053974 Penz Oct 1991 A
5166956 Baltus et al. Nov 1992 A
5168509 Nakamura et al. Dec 1992 A
5266907 Dacus Nov 1993 A
5283761 Gillingham Feb 1994 A
5287305 Yoshida Feb 1994 A
5311516 Kuznicki May 1994 A
5331320 Cideciyan Jul 1994 A
5412689 Chan et al. May 1995 A
5449895 Hecht Sep 1995 A
5459465 Kagey Oct 1995 A
5461379 Weinman Oct 1995 A
5511119 Lechleider Apr 1996 A
5553097 Dagher Sep 1996 A
5566193 Cloonan Oct 1996 A
5599550 Kohlruss et al. Feb 1997 A
5626651 Dullien May 1997 A
5629651 Mizuno May 1997 A
5659353 Kostreski et al. Aug 1997 A
5727006 Dreyer Mar 1998 A
5748948 Yu May 1998 A
5802356 Gaskins Sep 1998 A
5825808 Hershey et al. Oct 1998 A
5856935 Moy Jan 1999 A
5875202 Venters Feb 1999 A
5945935 Kusumoto Aug 1999 A
5949060 Schattschneider Sep 1999 A
5982954 Delen Nov 1999 A
5995016 Perino Nov 1999 A
6005895 Perino et al. Dec 1999 A
6084883 Norrell et al. Jul 2000 A
6172634 Leonowich et al. Jan 2001 B1
6175230 Hamblin et al. Jan 2001 B1
6232908 Nakaigawa May 2001 B1
6278740 Nordyke Aug 2001 B1
6316987 Dally Nov 2001 B1
6346907 Dacy Feb 2002 B1
6359931 Perino et al. Mar 2002 B1
6378073 Davis Apr 2002 B1
6398359 Silverbrook Jun 2002 B1
6404820 Postol Jun 2002 B1
6417737 Moloudi et al. Jul 2002 B1
6433800 Holtz Aug 2002 B1
6452420 Wong Sep 2002 B1
6473877 Sharma Oct 2002 B1
6483828 Balachandran Nov 2002 B1
6504875 Perino et al. Jan 2003 B2
6509773 Buchwald et al. Jan 2003 B2
6522699 Anderson Feb 2003 B1
6556628 Poulton et al. Apr 2003 B1
6563382 Yang et al. May 2003 B1
6621427 Greenstreet Sep 2003 B2
6624699 Yin Sep 2003 B2
6650638 Walker et al. Nov 2003 B1
6661355 Cornelius et al. Dec 2003 B2
6664355 Kim Dec 2003 B2
6766342 Kechriotis Jul 2004 B2
6839429 Gaikwad et al. Jan 2005 B1
6865234 Agazzi Mar 2005 B1
6865236 Terry Mar 2005 B1
6876317 Sankaran Apr 2005 B2
6954492 Williams Oct 2005 B1
6972701 Jansson Dec 2005 B2
6990138 Bejjani Jan 2006 B2
6993311 Li Jan 2006 B2
6999516 Rajan Feb 2006 B1
7023817 Kuffner Apr 2006 B2
7039136 Olson May 2006 B2
7053802 Cornelius May 2006 B2
7080288 Ferraiolo Jul 2006 B2
7082557 Schauer Jul 2006 B2
7085153 Ferrant et al. Aug 2006 B2
7127003 Rajan Oct 2006 B2
7142612 Horowitz et al. Nov 2006 B2
7142865 Tsai Nov 2006 B2
7167019 Broyde et al. Jan 2007 B2
7180949 Kleveland et al. Feb 2007 B2
7184483 Rajan Feb 2007 B2
7199728 Dally Apr 2007 B2
7231558 Gentieu Jun 2007 B2
7269130 Pitio Sep 2007 B2
7335976 Chen Feb 2008 B2
7336112 Sha Feb 2008 B1
7346819 Bansal Mar 2008 B2
7356213 Cunningham et al. Apr 2008 B1
7358869 Chiarulli et al. Apr 2008 B1
7362130 Broyde et al. Apr 2008 B2
7362697 Becker Apr 2008 B2
7366942 Lee Apr 2008 B2
7372390 Yamada May 2008 B2
7389333 Moore et al. Jun 2008 B2
7397302 Bardsley Jul 2008 B2
7400276 Sotiriadis Jul 2008 B1
7428273 Foster Sep 2008 B2
7539532 Tran May 2009 B2
7570704 Nagarajan Aug 2009 B2
7620116 Bessios Nov 2009 B2
7633850 Ahn Dec 2009 B2
7643588 Visalli Jan 2010 B2
7650525 Chang Jan 2010 B1
7656321 Wang Feb 2010 B2
7697915 Behzad Apr 2010 B2
7698088 Sul Apr 2010 B2
7706524 Zerbe Apr 2010 B2
7746764 Rawlins et al. Jun 2010 B2
7787572 Scharf et al. Aug 2010 B2
7808456 Chen Oct 2010 B2
7841909 Murray Nov 2010 B2
7869497 Benvenuto Jan 2011 B2
7869546 Tsai Jan 2011 B2
7882413 Chen et al. Feb 2011 B2
7933770 Kruger et al. Apr 2011 B2
8000664 Khorram Aug 2011 B2
8030999 Chatterjee Oct 2011 B2
8064535 Wiley Nov 2011 B2
8091006 Prasad et al. Jan 2012 B2
8106806 Toyomura Jan 2012 B2
8149906 Saito Apr 2012 B2
8159375 Abbasfar Apr 2012 B2
8159376 Abbasfar Apr 2012 B2
8199849 Oh Jun 2012 B2
8233544 Bao Jul 2012 B2
8253454 Lin Aug 2012 B2
8279094 Abbasfar Oct 2012 B2
8289914 Li Oct 2012 B2
8295250 Gorokhov Oct 2012 B2
8295336 Lutz Oct 2012 B2
8310389 Chui Nov 2012 B1
8341492 Shen Dec 2012 B2
8359445 Ware Jan 2013 B2
8406315 Tsai Mar 2013 B2
8406316 Sugita Mar 2013 B2
8429492 Yoon Apr 2013 B2
8429495 Przybylski Apr 2013 B2
8437440 Zhang May 2013 B1
8442099 Sederat May 2013 B1
8442210 Zerbe May 2013 B2
8443223 Abbasfar May 2013 B2
8462891 Kizer et al. Jun 2013 B2
8498368 Husted Jul 2013 B1
8520493 Goulahsen Aug 2013 B2
8547272 Nestler et al. Oct 2013 B2
8578246 Mittelholzer Nov 2013 B2
8588280 Oh et al. Nov 2013 B2
8593305 Tajalli et al. Nov 2013 B1
8602643 Gardiner Dec 2013 B2
8604879 Mourant Dec 2013 B2
8620166 Dong Dec 2013 B2
8638241 Sudhakaran Jan 2014 B2
8643437 Chiu Feb 2014 B2
8649445 Cronie Feb 2014 B2
8649460 Ware Feb 2014 B2
8674861 Matsuno Mar 2014 B2
8687968 Nosaka Apr 2014 B2
8718184 Cronie May 2014 B1
8755426 Cronie Jun 2014 B1
8780687 Clausen Jul 2014 B2
8782578 Tell Jul 2014 B2
8831440 Yu Sep 2014 B2
8879660 Peng Nov 2014 B1
8898504 Baumgartner Nov 2014 B2
8938171 Tang Jan 2015 B2
8949693 Ordentlich Feb 2015 B2
8951072 Hashim Feb 2015 B2
8989317 Holden Mar 2015 B1
9036764 Hossain May 2015 B1
9059816 Simpson Jun 2015 B1
9069995 Cronie Jun 2015 B1
9077386 Holden Jul 2015 B1
9083576 Hormati Jul 2015 B1
9093791 Liang Jul 2015 B2
9100232 Hormati Aug 2015 B1
9148087 Tajalli Sep 2015 B1
9152495 Losh Oct 2015 B2
9178503 Hsieh Nov 2015 B2
9183085 Northcott Nov 2015 B1
9281785 Sjoland Mar 2016 B2
9288082 Ulrich Mar 2016 B1
9288089 Cronie Mar 2016 B2
9292716 Winoto Mar 2016 B2
9306621 Zhang Apr 2016 B2
9331962 Lida May 2016 B2
9362974 Fox Jun 2016 B2
9363114 Shokrollahi Jun 2016 B2
9374250 Musah Jun 2016 B1
9401828 Cronie Jul 2016 B2
9432082 Ulrich Aug 2016 B2
9432298 Smith Aug 2016 B1
9444654 Hormati Sep 2016 B2
9455744 George Sep 2016 B2
9455765 Schumacher Sep 2016 B2
9509437 Shokrollahi Nov 2016 B2
9544015 Ulrich Jan 2017 B2
20010055344 Lee et al. Dec 2001 A1
20020034191 Shattil Mar 2002 A1
20020044316 Myers Apr 2002 A1
20020057592 Robb May 2002 A1
20020154633 Shin Oct 2002 A1
20020163881 Dhong Nov 2002 A1
20020174373 Chang Nov 2002 A1
20030016770 Trans Jan 2003 A1
20030071745 Greenstreet Apr 2003 A1
20030086366 Branlund May 2003 A1
20030105908 Perino et al. Jun 2003 A1
20030146783 Brandy et al. Aug 2003 A1
20030227841 Tateishi et al. Dec 2003 A1
20040003336 Cypher Jan 2004 A1
20040003337 Cypher Jan 2004 A1
20040027185 Fiedler Feb 2004 A1
20040057525 Rajan et al. Mar 2004 A1
20040086059 Eroz et al. May 2004 A1
20040136319 Becker Jul 2004 A1
20040146117 Subramaniam Jul 2004 A1
20040156432 Hidaka Aug 2004 A1
20040161019 Raghavan Aug 2004 A1
20040169529 Afghahi Sep 2004 A1
20040216026 Ferraiolo Oct 2004 A1
20040250187 Schauer Dec 2004 A1
20050057379 Jansson Mar 2005 A1
20050063493 Foster Mar 2005 A1
20050134380 Nairn Jun 2005 A1
20050135182 Perino et al. Jun 2005 A1
20050149833 Worley Jul 2005 A1
20050152385 Cioffi Jul 2005 A1
20050174841 Ho Aug 2005 A1
20050286643 Ozawa et al. Dec 2005 A1
20060097786 Su May 2006 A1
20060103463 Lee May 2006 A1
20060107154 Bansal May 2006 A1
20060115027 Srebranig Jun 2006 A1
20060120486 Visalli Jun 2006 A1
20060126751 Bessios Jun 2006 A1
20060159005 Rawlins et al. Jul 2006 A1
20060200708 Gentieu Sep 2006 A1
20070121716 Nagarajan May 2007 A1
20070188367 Yamada Aug 2007 A1
20070204205 Niu Aug 2007 A1
20070260965 Schmidt et al. Nov 2007 A1
20070263711 Kramer et al. Nov 2007 A1
20070265533 Tran Nov 2007 A1
20070283210 Prasad et al. Dec 2007 A1
20080007367 Kim Jan 2008 A1
20080104374 Mohamed May 2008 A1
20080114562 Sul May 2008 A1
20080159448 Anim-Appiah Jul 2008 A1
20080169846 Lan et al. Jul 2008 A1
20080192621 Suehiro Aug 2008 A1
20080273623 Chung et al. Nov 2008 A1
20080284524 Kushiyama Nov 2008 A1
20080317188 Staszewski Dec 2008 A1
20090059782 Cole Mar 2009 A1
20090092196 Okunev Apr 2009 A1
20090132758 Jiang May 2009 A1
20090154500 Diab et al. Jun 2009 A1
20090163612 Lee et al. Jun 2009 A1
20090185636 Palotai et al. Jul 2009 A1
20090193159 Li Jul 2009 A1
20090195281 Tamura Aug 2009 A1
20090212861 Lim et al. Aug 2009 A1
20090228767 Oh et al. Sep 2009 A1
20090257542 Evans et al. Oct 2009 A1
20090316730 Feng Dec 2009 A1
20090323864 Tired Dec 2009 A1
20100023838 Shen Jan 2010 A1
20100180143 Ware et al. Jul 2010 A1
20100205506 Hara Aug 2010 A1
20100215087 Tsai Aug 2010 A1
20100215112 Tsai Aug 2010 A1
20100235673 Abbasfar Sep 2010 A1
20100296550 Abou Rjeily Nov 2010 A1
20100296556 Rave Nov 2010 A1
20100309964 Oh Dec 2010 A1
20110051854 Kizer et al. Mar 2011 A1
20110072330 Kolze Mar 2011 A1
20110084737 Oh et al. Apr 2011 A1
20110127990 Wilson et al. Jun 2011 A1
20110235501 Goulahsen Sep 2011 A1
20110299555 Cronie et al. Dec 2011 A1
20110302478 Cronie et al. Dec 2011 A1
20110317559 Kern et al. Dec 2011 A1
20120063291 Hsueh Mar 2012 A1
20120152901 Nagorny Jun 2012 A1
20120161945 Single Jun 2012 A1
20120213299 Cronie et al. Aug 2012 A1
20130010892 Cronie Jan 2013 A1
20130051162 Amirkhany et al. Feb 2013 A1
20130147553 Iwamoto Jun 2013 A1
20130159761 Baumgartner Jun 2013 A1
20130188656 Ferraiolo Jul 2013 A1
20130195155 Pan Aug 2013 A1
20130315501 Atanassov Nov 2013 A1
20140177645 Cronie Jun 2014 A1
20140226455 Schumacher Aug 2014 A1
20140254730 Kim et al. Sep 2014 A1
20150010044 Zhang Jan 2015 A1
20150078479 Whitby-Stevens Mar 2015 A1
20150146771 Walter May 2015 A1
20150333940 Shokrollahi Nov 2015 A1
20150380087 Mittelholzer Dec 2015 A1
20150381232 Ulrich Dec 2015 A1
20160020796 Hormati Jan 2016 A1
20160020824 Ulrich Jan 2016 A1
20160036616 Holden Feb 2016 A1
Foreign Referenced Citations (3)
Number Date Country
101478286 Jul 2009 CN
2039221 Mar 2009 EP
2011119359 Sep 2011 WO
Non-Patent Literature Citations (46)
Entry
International Search Report and Written Opinion of the International Searching Authority, dated Nov. 5, 2012, in International Patent Application S.N. PCT/EP2012/052767, 7 pages.
International Search Report and Written Opinion of the International Searching Authority, dated Jul. 14, 2011 in International Patent Application S.N. PCT/EP2011/002170, 10 pages.
Healey, A., et al., “A Comparison of 25 Gbps NRZ & PAM-4 Modulation used in Legacy & Premium Backplane Channels”, DesignCon 2012, 16 pages.
International Search Report for PCT/US2014/053563, dated Nov. 11, 2014, 2 pages.
Clayton, P., “Introduction to Electromagnetic Compatibility”, Wiley-Interscience, 2006.
She et al., “A Framework of Cross-Layer Superposition Coded Multicast for Robust IPTV Services over WiMAX,” IEEE Communications Society subject matter experts for publication in the WCNC 2008 proceedings, Mar. 31, 2008-Apr. 3, 2008, pp. 3139-3144.
Poulton, et al., “Multiwire Differential Signaling”, UNC-CH Department of Computer Science Version 1.1, Aug. 6, 2003.
Skliar et al., A Method for the Analysis of Signals: the Square-Wave Method, Mar. 2008, Revista de Matematica: Teoria y Aplicationes, pp. 09-129.
Loh, M., et al., “A 3×9 Gb/s Shared, All-Digital CDR for High-Speed, High-Density I/O”, Matthew Loh, IEEE Journal of Solid-State Circuits, Vo. 47, No. 3, Mar. 2012.
International Search Report and Written Opinion for PCT/US14/052986 dated Nov. 24, 2014.
Burr, “Spherical Codes for M-ARY Code Shift Keying”, University of York, Apr. 2, 1989, pp. 67-72, United Kingdom.
Slepian, D., “Premutation Modulation”, IEEE, vol. 52, No. 3, Mar. 1965, pp. 228-236.
Stan, M., et al., “Bus-Invert Coding for Low-Power I/O, IEEE Transactions on Very Large Scale Integration (VLSI) Systems”, vol. 3, No. 1, Mar. 1995, pp. 49-58.
Tallani, L., et al., “Transmission Time Analysis for the Parallel Asynchronous Communication Scheme”, IEEE Tranactions on Computers, vol. 52, No. 5, May 2003, pp. 558-571.
International Search Report and Written Opinion for PCT/EP2012/052767 dated May 11, 2012.
International Search Report and Written Opinion for PCT/EP2011/059279 dated Sep. 22, 2011.
International Search Report and Written Opinion for PCT/EP2011/074219 dated Jul. 4, 2012.
Notification of Transmittal of the International Search Report and the Written Opinion of the International Searching Authority, or the Declaration for PCT/EP2013/002681, dated Feb. 25, 2014, 15 pages.
Ericson, T., et al., “Spherical Codes Generated by Binary Partitions of Symmetric Pointsets”, IEEE Transactions on Information Theory, vol. 41, No. 1, Jan. 1995, pp. 107-129.
Farzan, K., et al., “Coding Schemes for Chip-to-Chip Interconnect Applications”, IEEE Transactions on Very Large Scale Integration (VLSI) Systems, vol. 14, No. 4, Apr. 2006, pp. 393-406.
Abbasfar, A., “Generalized Differential Vector Signaling”, IEEE International Conference on Communications, ICC '09, (Jun. 14, 2009), pp. 1-5.
Dasilva et al., “Multicarrier Orthogonal CDMA Signals for Quasi-Synchronous Communication Systems”, IEEE Journal on Selected Areas in Communications, vol. 12, No. 5 (Jun. 1, 1994), pp. 842-852.
Wang et al., “Applying CDMA Technique to Network-on-Chip”, IEEE Transactions on Very Large Scale Integration (VLSI) Systems, vol. 15, No. 10 (Oct. 1, 2007), pp. 1091-1100.
Cheng, W., “Memory Bus Encoding for Low Power: A Tutorial”, Quality Electronic Design, IEEE, International Symposium on Mar. 26-28, 2001, pp. 199-204, Piscataway, NJ.
Brown, L., et al., “V.92: The Last Dial-Up Modem?”, IEEE Transactions on Communications, IEEE Service Center, Piscataway, NJ., USA, vol. 52, No. 1, Jan. 1, 2004, pp. 54-61. XP011106836, ISSN: 0090-6779, DOI: 10.1109/tcomm.2003.822168, pp. 55-59.
Notification of Transmittal of International Search Report and the Written Opinion of the International Searching Authority, for PCT/US2015/018363, dated Jun. 18, 2015, 13 pages.
Counts, L., et al., “One-Chip Slide Rule Works with Logs, Antilogs for Real-Time Processing,” Analog Devices Computational Products 6, Reprinted from Electronic Design, May 2, 1985, 7 pages.
Design Brief 208 Using the Anadigm Multiplier CAM, Copyright 2002 Anadigm, 6 pages.
Grahame, J., “Vintage Analog Computer Kits,” posted on Aug. 25, 2006 in Classic Computing, 2 pages, http.//www.retrothing.com/2006/08/classic—analog—.html.
Schneider, J., et al., “ELEC301 Project: Building an Analog Computer,” Dec. 19, 1999, 8 pages, http://www.clear.rice.edu/elec301/Projects99/anIgcomp/.
Tierney, J., et al., “A digital frequency synthesizer,” Audio and Electroacoustics, IEEE Transactions, Mar. 1971, pp. 48-57, vol. 19, Issue 1, 1 page Abstract from http://ieeexplore.
“Introduction to: Analog Computers and the DSPACE System,” Course Material ECE 5230 Spring 2008, Utah State University, www.coursehero.com, 12 pages.
Notification of Transmittal of the International Search Report and the Written Opinion of the International Searching Authority, or the Declaration, for PCT/US2014/015840, dated May 20, 2014. 11 pages.
Notification of Transmittal of the International Search Report and the Written Opinion of the International Searching Authority, or the Declaration, for PCT/US2014/043965, dated Oct. 22, 2014, 10 pages.
Notification of Transmittal of the International Search Report and the Written Opinion of the International Searching Authority, or the Declaration, dated Mar. 3, 2015, for PCT/US2014/066893, 9 pages.
International Preliminary Report on Patentability for PCT/US2014/015840, dated Aug. 11, 2015, 7 pages.
Jiang, A., et al., “Rank Modulation for Flash Memories”, IEEE Transactions of Information Theory, Jun. 2006, vol. 55, No. 6, pp. 2659-2673.
Zouhair Ben-Neticha et al, “The streTched”—Golay and other codes for high—SNR finite-delay quantization of the Gaussian source at 1/2 Bit per sample, IEEE Transactions on Communications, vol. 38, No. 12 Dec. 1, 1990, pp. 2089-2093, XP000203339, ISSN: 0090-6678, DOI: 10.1109/26.64647.
Oh, et al., Pseudo-Differential Vector Signaling for Noise Reduction in Single-Ended Signaling, DesignCon 2009.
Notification of Transmittal of the International Search Report and the Written Opinion of the International Searching Authority, or the Declaration, dated Feb. 15, 2017, 10 pages.
Notification of Transmittal of the International Search Report and the Written Opinion of the International Searching Authority, or the Declaration, for PCT/US2015/039952, dated Sep. 23, 2015, 8 pages.
Notification of Transmittal of the International Search Report and the Written Opinion of the International Searching uthority, or the Declaration, for PCT/US2015/041161, dated Oct. 7, 2015, 8 pages.
Notification of Transmittal of the International Search Report and the Written Opinion of the International Searching Authority, or the Declaration., for PCT/US17/14997, dated Apr. 7, 2017.
Holden, B., “Simulation results for NRZ, ENRZ & PAM-4 on 16-wire full-sized 400GE backplanes”, IEEE 802.3 400GE Study Group, Sep. 2, 2013, 19 pages, www.ieee802.0rg/3/400GSG/publiv/13—09/holden—400—01—0913.pdf.
Holden, B., “An exploration of the technical feasibility of the major technology options for 400GE backplanes”, IEEE 802.3 400GE Study Group, Jul. 16, 2013, 18 pages, http://ieee802.org/3/400GSG/public/13—07/holden—400—01—0713.pdf.
Holden, B., “Using Ensemble NRZ Coding for 400GE Electrical Interfaces”, IEEE 802.3 400GE Study Group, May 17, 2013, 24 pages, http://www.ieee802.org/3/400GSG/public/13—05/holden—400—01—0513.pdf.
Related Publications (1)
Number Date Country
20150370676 A1 Dec 2015 US
Provisional Applications (1)
Number Date Country
62015172 Jun 2014 US