US20180294802A1 - Recalibration of source synchronous systems - Google Patents

Recalibration of source synchronous systems Download PDF

Info

Publication number
US20180294802A1
US20180294802A1 US15/480,283 US201715480283A US2018294802A1 US 20180294802 A1 US20180294802 A1 US 20180294802A1 US 201715480283 A US201715480283 A US 201715480283A US 2018294802 A1 US2018294802 A1 US 2018294802A1
Authority
US
United States
Prior art keywords
data
strobe
data eye
margins
delay
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.)
Granted
Application number
US15/480,283
Other versions
US10103718B1 (en
Inventor
Richard W. Swanson
Terence J. Magee
Qi Zhang
Srinivas Vura
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xilinx Inc
Original Assignee
Xilinx Inc
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
Application filed by Xilinx Inc filed Critical Xilinx Inc
Priority to US15/480,283 priority Critical patent/US10103718B1/en
Assigned to XILINX, INC. reassignment XILINX, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: MAGEE, TERENCE J., SWANSON, RICHARD W., VURA, SRINIVAS, ZHANG, QI
Priority to CN201810293392.3A priority patent/CN108717401B/en
Publication of US20180294802A1 publication Critical patent/US20180294802A1/en
Application granted granted Critical
Publication of US10103718B1 publication Critical patent/US10103718B1/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4234Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
    • G06F13/4243Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus with synchronous protocol
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K5/00Manipulating of pulses not covered by one of the other main groups of this subclass
    • H03K5/01Shaping pulses
    • H03K5/04Shaping pulses by increasing duration; by decreasing duration
    • H03K5/06Shaping pulses by increasing duration; by decreasing duration by the use of delay lines or other analogue delay elements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/12Synchronisation of different clock signals provided by a plurality of clock generators
    • 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/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/4076Timing circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1078Data input circuits, e.g. write amplifiers, data input buffers, data input registers, data input level conversion circuits
    • G11C7/1093Input synchronization
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L25/00Baseband systems
    • H04L25/02Details ; arrangements for supplying electrical power along data transmission lines
    • H04L25/14Channel dividing arrangements, i.e. in which a single bit stream is divided between several baseband channels and reassembled at the receiver
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L7/00Arrangements for synchronising receiver with transmitter
    • H04L7/0008Synchronisation information channels, e.g. clock distribution lines
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L7/00Arrangements for synchronising receiver with transmitter
    • H04L7/0016Arrangements for synchronising receiver with transmitter correction of synchronization errors
    • H04L7/0033Correction by delay
    • 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/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/409Read-write [R-W] circuits 
    • G11C11/4093Input/output [I/O] data interface arrangements, e.g. data buffers
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2207/00Indexing scheme relating to arrangements for writing information into, or reading information out from, a digital store
    • G11C2207/22Control and timing of internal memory operations
    • G11C2207/2254Calibration
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1078Data input circuits, e.g. write amplifiers, data input buffers, data input registers, data input level conversion circuits
    • G11C7/1084Data input buffers, e.g. comprising level conversion circuits, circuits for adapting load
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K5/00Manipulating of pulses not covered by one of the other main groups of this subclass
    • H03K2005/00013Delay, i.e. output pulse is delayed after input pulse and pulse length of output pulse is dependent on pulse length of input pulse
    • H03K2005/00019Variable delay
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L7/00Arrangements for synchronising receiver with transmitter
    • H04L7/0016Arrangements for synchronising receiver with transmitter correction of synchronization errors
    • H04L7/0033Correction by delay
    • H04L7/0037Delay of clock signal

Definitions

  • Examples of the present disclosure generally relate to electronic circuits and, in particular, to recalibration of source synchronous systems.
  • High-speed source synchronous systems require highly accurate alignment between data bits within a data eye and highly accurate placement of the sampling clock within the center of the composite data eye to maximize performance.
  • the ideal alignment of the data bits and the ideal placement of the sampling clock are typically determined using complex training algorithms designed to induce the worst case data eye caused from non-ideal factors, such as intersymbol interference (ISI), supply noise, channel reflections, and the like.
  • ISI intersymbol interference
  • This training process often becomes highly involved and requires a significant amount of time to execute.
  • the training algorithm can only determine the ideal placement for a given voltage and temperature point at the time of calibration. Over time, this ideal positioning will change due to voltage and temperature changes, which will induce both internal and external delay changes within the system. These changing delays will cause the system timing to drift away from its ideal location and will result in performance loss.
  • the most accurate process for compensating for drift is to recalibrate the system using the complex training process.
  • using the complex training process to recalibrate the system has the adverse effect of halting the data flow during recalibration, which reduces throughput of the system. It is desirable to minimize the amount of time required to recalibrate the system in order to minimize the impact the recalibration process has on the overall system.
  • the recalibration process should maintain the accuracy of the original timing intensive (complex) training algorithm as voltage and temperature change.
  • method of calibrating a source-synchronous system includes: performing initial calibration of a source-synchronous receiver, which is configured to receive data signals and a strobe, to determine an initial strobe delay and initial data delays; setting a strobe delay circuit that delays the strobe to have the initial strobe delay and data delay circuits that delay the data signals to have the initial data delays; measuring first data eye margins of the data signals at a first time; calculating metrics for the data signals based on the first data eye margins; and measuring second data eye margins of the data signals at a second time; and updating the data delay circuits and the strobe delay circuit based on the second data eye margins and the metrics.
  • a source-synchronous receiver includes a first receiver configured to receive a strobe, the first receiver including a strobe delay circuit; second receivers configured to receive data signals referenced to the strobe, the second receivers including data delay circuits; and a calibration circuit configured to: perform initial calibration to determine an initial strobe delay for the strobe delay circuit and initial data delays for the data delay circuits; measure first data eye margins of the data signals at a first time; calculate metrics for the data signals based on the first data eye margins; measure second data eye margins of the data signals at a second time; and update the data delay circuits and the strobe delay circuit based on the second data eye margins and the metrics.
  • a system in another example, includes: a source-synchronous transmitter coupled to a source-synchronous receiver through a plurality of transmission lines, the source-synchronous receiver comprising a first receiver configured to receive a strobe, the first receiver including a strobe delay circuit, second receivers configured to receive data signals referenced to the strobe, the second receivers including data delay circuits, and a calibration circuit configured to: perform initial calibration to determine an initial strobe delay for the strobe delay circuit and initial data delays for the data delay circuits; measure first data eye margins of the data signals at a first time; calculate metrics for the data signals based on the first data eye margins; measure second data eye margins of the data signals at a second time; and update the data delay circuits and the strobe delay circuit based on the second data eye margins and the metrics.
  • FIG. 1 is a block diagram depicting a source synchronous system according to an example.
  • FIG. 2 is a block diagram depicting a source synchronous receive path according to an example.
  • FIG. 3 is a flow diagram depicting a method of calibrating a source synchronous system according to an example.
  • FIG. 4 illustrates the relationship between data eyes and data eye margins.
  • FIG. 5 illustrates the relationship between data eyes and ideal strobe locations.
  • FIG. 6 illustrates the relationship between data eyes and data delay values.
  • FIG. 7 illustrates a field programmable gate array (FPGA) in which the techniques described herein can be used.
  • FPGA field programmable gate array
  • transmitting device sends both a clock signal (referred to as a strobe), and data signals referenced to the clock signal, to a receiving device.
  • a clock signal referred to as a strobe
  • Example source synchronous systems in which the techniques described herein can be used include point-to-point interconnects (e.g., Intel® QuickPath interconnect, HyperTransport®, etc.), memories, (e.g., source-synchronous dynamic random access memory (SDRAM), graphics dynamic random access memory (GDRAM), etc.), and the like.
  • SDRAM source-synchronous dynamic random access memory
  • GDRAM graphics dynamic random access memory
  • a source synchronous receiver routes the strobe to each data capture flip-flop.
  • the strobe has an intrinsic delay due to the clock tree and an additional programmable delay.
  • the strobe programmable delay is used to center the strobe within the data eye.
  • Each data input also has a programmable delay prior to the capture flip-flop.
  • the data programmable delays are used to deskew any offset between data bits within a data byte.
  • the data programmable delays also can be used to add delay to offset the clock tree delay.
  • An initial calibration routine is used to calibrate the source synchronous receive path.
  • the initial calibration routine uses one or more complex training patterns (e.g., pseudorandom binary sequence (PRBS) patterns) to align the worst-case data eyes for each data signal to each other and then optimize the strobe location within the composite data eye to maximize margin.
  • PRBS pseudorandom binary sequence
  • Using the initial calibration routine to recalibrate the source synchronous receive path would have adverse effects on the system, as described above.
  • Using the initial calibration routine with a simple calibration pattern would not induce the worst-case data eye, causing both the data skew and the strobe alignment to appear to be sub-optimal.
  • recalibration is performed by measuring the margins using a simple calibration pattern, such as a clock pattern or the like, and then calculate a ratio (referred to as the Kfactor) that describes the relative location of the strobe within the data eye. This relative location is then maintained using a less complex recalibration routine (as compared to the initial calibration routine).
  • the recalibration routine preserves the relative location of both the strobe and the skew between data bits established by the initial calibration over voltage and temperature (VT) changes.
  • FIG. 1 is a block diagram depicting a source synchronous system 100 according to an example.
  • the source synchronous system 100 includes a first circuit 114 coupled to a second circuit 116 through transmission lines 106 .
  • the circuit 114 includes a source-synchronous transmitter 115 and a control circuit 113 .
  • the circuit 116 includes a source-synchronous receiver 118 and a calibration circuit 112 .
  • the source-synchronous transmitter 115 includes a transmitter 102 and transmitters 104 1 . . . 104 n (where n is a positive integer).
  • the source-synchronous receiver 118 includes a receiver 108 and receivers 110 1 . . . 110 n .
  • the control circuit 113 can be coupled to the calibration circuit 112 .
  • the transmitter 102 receives a clock signal (TX Clock) having a clock pattern.
  • the transmitters 104 1 . . . 104 n receive n data signals (Data[ 1 ] . . . Data[n]) each having a data pattern.
  • the transmitters 104 1 . . . 104 n also receive TX clock.
  • the transmitter 102 is coupled to the receiver 108 through a transmission line 106 1 .
  • the input of the receiver 108 is referred to as DQS.
  • the transmitters 104 1 . . . 104 n are coupled to the receivers 110 1 . . . 110 n via transmission lines 106 2 . . 106 (n+1) , respectively.
  • the inputs of the receivers 110 1 . . . 110 n are referred to as DQ[ 1 ] . . . DQ[n], respectively.
  • the calibration circuit 112 is coupled to the receiver 108 and the receivers 110 1 . . . 110 n .
  • the receivers 110 1 . . . 110 n output latched data signals (Latched_DQ[ 1 ] . . . Latched_DQ[n]).
  • the source-synchronous transmitter 115 transmits TX clock and Data[ 1 ] . . . Data[n] in parallel over transmission lines 106 to the source-synchronous receiver 118 .
  • the transmitters 104 1 . . . 104 n transmit the data signals based on TX Clock.
  • the receiver 108 receives a DQS signal (referred to as a “strobe signal” or “strobe”) from the transmission line 106 1 .
  • the receivers 110 1 . . . 110 n receive DQ[ 1 ] . . . DQ[n] signals (referred to as “data signals” or “data bits”) from the transmission lines 106 2 . . . 106 (n+1) .
  • the source-synchronous receiver 118 includes the DQS and DQ[ 1 ] . . . DQ[n] signals as input and the Latched_DQ[ 1 ] . . . Latched_DQ[n] signals as output.
  • the input signals (DQS and DQ) can be differential signals or single-ended signals, depending on the design of the transmitters 102 and the transmitters 104 1 . . . 104 n .
  • a clock buffer 120 distributes the DQS signal to the receivers 110 1 . . . 110 n .
  • the calibration circuit 112 controls programmable delay circuits in the receiver 108 and the receivers 110 1 . . . 110 n to deskew the DQ[ 1 ] . . . DQ[n] signals and to center the strobe in the composite data eye.
  • the calibration circuit 112 also implements a two-stage calibration process including initial calibration and recalibration stages, as described further below. First, the calibration circuit 112 performs an initial calibration, which can be a robust calibration routine that uses one or more complex data patterns (e.g., one or more PRBS patterns) to induce worst-case data eye.
  • the calibration circuit 112 performs a recalibration, which is less complex calibration routine that uses a less complex data pattern (e.g., a clock pattern).
  • the recalibration process preserves the relative location of both the strobe and the skew between the data bits established by the initial calibration.
  • FIG. 2 is a block diagram depicting the source-synchronous receiver 118 according to an example.
  • the source-synchronous receiver 118 includes an input buffer 202 , input buffers 205 1 . . . 205 n , a delay circuit 204 , delay circuits 207 1 . . . 207 n , the clock buffer 120 , and flip-flops (FF) 208 1 . . . 208 n .
  • the input buffer 202 and the delay circuit 204 can be part of the receiver 108 .
  • the delay circuit 204 is also referred to as the DQS delay or DQS delay circuit.
  • the delay circuits 207 1 . . . 207 n are also referred to as the DQ delays or DQ delay circuits.
  • the input buffer 202 receives the DQS signal.
  • the input buffers 205 1 through 205 n receive the DQ[ 1 ] . . . DQ[n] signals.
  • the delay circuit 204 applies a programmable delay to the DQS signal output from the input buffer 202 .
  • the clock buffer 120 distributes the DQS signal as delayed by the delay circuit 204 to the flip-flops 208 1 . . . 208 n .
  • the delay circuits 207 1 . . . 207 n each apply a programmable delay to a respective DQ signal.
  • the flip-flops 208 1 . . . 208 n sample the DQ signals as delayed by the delay circuits 207 1 . . . 207 n .
  • the flip-flops 208 1 . . . 208 n output the Latched_DQ[ 1 ] . . . Latched_DQ[n] signals.
  • the calibration circuit 112 outputs (n+1) control signals for controlling the delay circuit 204 and the delay circuits 207 1 . . . 207 n .
  • the calibration circuit 112 can increment or decrement the delay circuit 204 and the delay circuits 207 1 . . . 207 n to increase or decrease delay.
  • the calibration circuit 112 also receives the Latched_DQ[ 1 ] . . . Latched_DQ[n] signals from the flip-flops 208 1 . . . 208 n .
  • the calibration circuit 112 can also receive a calibration control signal that initiates the calibration process (e.g., from the control circuit 113 ).
  • the calibration circuit 112 performs a calibration process, as described further below.
  • FIG. 3 is a flow diagram depicting a method 300 of calibrating a source synchronous system 100 according to an example.
  • the method 300 begins at step 302 , where the source synchronous system 100 performs an initial calibration of the source-synchronous receiver 118 .
  • the calibration circuit 112 characterizes data eye margins for the DQ[ 1 ] . . . DQ[n] signals. For example, at step 308 , the calibration circuit 112 measures the left and right data eye margins for each data bit. The calibration circuit 112 can measure the data eye margins while the source-synchronous receiver 118 is receiving a simple data pattern, such as a clock pattern or similar pattern. In an example, the source-synchronous transmitter 115 can transmit the data pattern. In another example, the circuit 116 can include a pattern generator 122 configured to couple a strobe and data pattern to the source-synchronous receiver 118 .
  • the calibration circuit 112 measures the left margin (LM) for each data bit by determining the number of DQ steps (or taps) required to align the left edge of the data eye to the strobe location. That is, for the data signals DQ[ 1 ] . . . DQ[n], the calibration circuit 112 can increment the delay circuits 207 1 . . . 207 n (DQ delays) until detecting the left edge of the data eye. Alternatively, the calibration circuit 112 can decrement the delay circuit 204 (DQS delay) until detecting the left edge of the data eye. In yet another alternatively, the calibration circuit 112 can perform a combination of incrementing the delay circuits 207 1 . . . 207 n (DQ delays) and decrementing the delay circuit 204 (DQS delay) until detecting the left edge of the data eye.
  • LM left margin
  • the calibration circuit 112 measures the right margin (RM) for each data bit by determining the number of DQS steps (or taps) required to align the strobe to the right edge of the data eye. That is, for the data signals DQ[ 1 ] . . . DQ[n], the calibration circuit 112 can increment the delay circuit 204 (DQS delay) until detecting the right edge of the data eye. Alternatively, the calibration circuit 112 can decrement the delay circuits 207 1 . . . 207 n (DQ delays) until detecting the right edge of the data eye. In yet another alternative, the calibration circuit 112 can perform a combination of incrementing the delay circuit 204 (DQS delay) and decrementing the delay circuits 207 1 . . . 207 n (DQ delays) to detect the right edge of the data eye.
  • DQS delay incrementing the delay circuit 204
  • 207 n DQ delays
  • the calibration circuit 112 determines a metric for each data bit that describes the relative location of the strobe within the data eye (referred to as the kFactor).
  • the kFactor metric relates the right and left data eye margins.
  • the DQ step size step size of the delay circuits 207 1 . . . 207 n
  • FIG. 4 illustrates the relationship between the data eyes of the data signals and the data eye margins determined in step 306 .
  • Dashed lines 402 indicate the strobe location, which is aligned after the initial calibration performed in step 302 .
  • the data signals DQ[ 1 ] . . . DQ[n] includes left margins LM[ 1 ] . . . LM[n] and right margins RM[ 1 ] . . . RM[n]. Further, the data signals DQ[ 1 ] . . . DQ[n] are delayed by delays DQ ⁇ [ 1 ] . . . DQ ⁇ [n].
  • the data signals DQ[ 2 ]. . . DQ[n] include skews 404 2 . . . 404 n with respect to the data signal DQ[ 1 ].
  • the calibration circuit 112 recalibrates the source-synchronous receiver 118 .
  • the calibration circuit 112 can recalibrate the source-synchronous receiver 118 upon command, upon a detected change in VT, upon a detected change in any delay, or the like.
  • the calibration circuit 112 re-measures the left and right data eye margins for each data bit.
  • the calibration circuit 112 can re-measure the left and right data eye margins for each data bit using the techniques described above in step 306 .
  • the calibration circuit 112 calculates a current ideal DQS location for each data bit based on its kFactor.
  • the calibration circuit 112 calculates values to add to the DQ delays and the DQS delay based on the current ideal DQS locations determined in step 316 .
  • Example algorithms for calculating the values to add to the DQ delays are described below with respect to FIG. 6 .
  • the calibration circuit 112 updates the DQ delays (the delay circuits 207 1 . . . 207 n ) and the DQS delay (the delay circuit 204 ) based on the values calculated in step 318 .
  • the calibration circuit 112 can perform recalibration as needed. That is, the calibration circuit 112 can repeat step 312 for as many times as needed based on command, VT changes, delay changes, etc.
  • FIG. 5 illustrates the relationship between the data eyes of the data signals and the current ideal DQS locations.
  • the data eye for each data signal can shift right or left and/or the strobe location can shift right or left.
  • the dashed lines 402 indicate the current strobe location with the data eyes.
  • the dashed lines 502 1 through 502 n indicate the current ideal DQS locations for the data bits calculated based on the re-measured RM and LM values
  • the ideal DQS location for the xth data signal is calculated as follows:
  • DQS[x ] ( DQS taps ⁇ LM[x ])+( LM[x]+RM[x ])*kFactor[ x],
  • DQS taps is the DQS delay value (e.g., the delay value of the delay circuit 204 ).
  • the re-measured left and right margin values (step 314 ) can differ from the initially measured left and right margin values measured at step 308 after the initial calibration (e.g., due to VT changes or other delay changes).
  • FIG. 6 illustrates the relationship between the data eyes of the data signals and the data delay values calculated in step 318 .
  • the dashed lines 602 indicate the new common strobe location within the data eyes after step 320 (i.e., after the DQ delays and the DQS delay have been updated based on the values calculated at step 318 ).
  • the LM[ 1 ] . . . LM[n] and RM[ 1 ] . . . RM[n] values are now the same or similar to those calculated after initial calibration at step 308 .
  • the skew between data bits is also the same or similar as after initial calibration.
  • the DQ delays DQ ⁇ [ 1 ]′ . . . DQ ⁇ [n]′ can be different than initially calculated at step 304 depending on the values calculated at step 318 .
  • Various algorithms can be used to determine how to modify the DQ delays at step 318 .
  • the algorithm moves the DQS delay ( 402 in FIG. 4 ) to a new DQS[x]. If there are differences across the DQs, then a combination of DQS and DQ delay adjustment is required.
  • the algorithm determines the DQ delay with the smallest value. The new DQS value ( 602 in FIG.
  • Added DQ[x] New DQS ⁇ DQS[x].
  • a more robust algorithm can react if the Added DQ[x] results in a net negative DQ[x] delay by increasing the common DQS delay and repeating the equation above until all DQ[x] delays are non-negative.
  • FIG. 7 illustrates an architecture of FPGA 700 that includes a large number of different programmable tiles including multi-gigabit transceivers (“MGTs”) 1 , configurable logic blocks (“CLBs”) 2 , random access memory blocks (“BRAMs”) 3 , input/output blocks (“IOBs”) 4 , configuration and clocking logic (“CONFIG/CLOCKS”) 5 , digital signal processing blocks (“DSPs”) 6 , specialized input/output blocks (“I/O”) 7 (e.g., configuration ports and clock ports), and other programmable logic 8 such as digital clock managers, analog-to-digital converters, system monitoring logic, and so forth.
  • Some FPGAs also include dedicated processor blocks (“PROC”) 10 .
  • PROC dedicated processor blocks
  • each programmable tile can include at least one programmable interconnect element (“INT”) 11 having connections to input and output terminals 20 of a programmable logic element within the same tile, as shown by examples included at the top of FIG. 7 .
  • Each programmable interconnect element 11 can also include connections to interconnect segments 22 of adjacent programmable interconnect element(s) in the same tile or other tile(s).
  • Each programmable interconnect element 11 can also include connections to interconnect segments 24 of general routing resources between logic blocks (not shown).
  • the general routing resources can include routing channels between logic blocks (not shown) comprising tracks of interconnect segments (e.g., interconnect segments 24 ) and switch blocks (not shown) for connecting interconnect segments.
  • the interconnect segments of the general routing resources can span one or more logic blocks.
  • the programmable interconnect elements 11 taken together with the general routing resources implement a programmable interconnect structure (“programmable interconnect”) for the illustrated FPGA.
  • a CLB 2 can include a configurable logic element (“CLE”) 12 that can be programmed to implement user logic plus a single programmable interconnect element (“INT”) 11 .
  • a BRAM 3 can include a BRAM logic element (“BRL”) 13 in addition to one or more programmable interconnect elements. Typically, the number of interconnect elements included in a tile depends on the height of the tile. In the pictured example, a BRAM tile has the same height as five CLBs, but other numbers (e.g., four) can also be used.
  • a DSP tile 6 can include a DSP logic element (“DSPL”) 14 in addition to an appropriate number of programmable interconnect elements.
  • DSPL DSP logic element
  • An IOB 4 can include, for example, two instances of an input/output logic element (“IOL”) 15 in addition to one instance of the programmable interconnect element 11 .
  • IOL input/output logic element
  • the actual I/O pads connected, for example, to the I/O logic element 15 typically are not confined to the area of the input/output logic element 15 .
  • a horizontal area near the center of the die (shown in FIG. 11 ) is used for configuration, clock, and other control logic.
  • Vertical columns 9 extending from this horizontal area or column are used to distribute the clocks and configuration signals across the breadth of the FPGA.
  • Some FPGAs utilizing the architecture illustrated in FIG. 7 include additional logic blocks that disrupt the regular columnar structure making up a large part of the FPGA.
  • the additional logic blocks can be programmable blocks and/or dedicated logic.
  • processor block 10 spans several columns of CLBs and BRAMs.
  • the processor block 10 can various components ranging from a single microprocessor to a complete programmable processing system of microprocessor(s), memory controllers, peripherals, and the like.
  • FIG. 7 is intended to illustrate only an exemplary FPGA architecture.
  • the numbers of logic blocks in a row, the relative width of the rows, the number and order of rows, the types of logic blocks included in the rows, the relative sizes of the logic blocks, and the interconnect/logic implementations included at the top of FIG. 8 are purely exemplary.
  • more than one adjacent row of CLBs is typically included wherever the CLBs appear, to facilitate the efficient implementation of user logic, but the number of adjacent CLB rows varies with the overall size of the FPGA.

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Theoretical Computer Science (AREA)
  • Nonlinear Science (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Power Engineering (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Hardware Design (AREA)
  • Dc Digital Transmission (AREA)

Abstract

An example method of calibrating a source-synchronous system includes: performing initial calibration of a source-synchronous receiver, which is configured to receive data signals and a strobe, to determine an initial strobe delay and initial data delays; setting a strobe delay circuit that delays the strobe to have the initial strobe delay and data delay circuits that delay the data signals to have the initial data delays; measuring first data eye margins of the data signals at a first time; calculating metrics for the data signals based on the first data eye margins; and measuring second data eye margins of the data signals at a second time; and updating the data delay circuits and the strobe delay circuit based on the second data eye margins and the metrics.

Description

    TECHNICAL FIELD
  • Examples of the present disclosure generally relate to electronic circuits and, in particular, to recalibration of source synchronous systems.
  • BACKGROUND
  • High-speed source synchronous systems require highly accurate alignment between data bits within a data eye and highly accurate placement of the sampling clock within the center of the composite data eye to maximize performance. The ideal alignment of the data bits and the ideal placement of the sampling clock are typically determined using complex training algorithms designed to induce the worst case data eye caused from non-ideal factors, such as intersymbol interference (ISI), supply noise, channel reflections, and the like. This training process often becomes highly involved and requires a significant amount of time to execute. Furthermore, the training algorithm can only determine the ideal placement for a given voltage and temperature point at the time of calibration. Over time, this ideal positioning will change due to voltage and temperature changes, which will induce both internal and external delay changes within the system. These changing delays will cause the system timing to drift away from its ideal location and will result in performance loss.
  • The most accurate process for compensating for drift is to recalibrate the system using the complex training process. However, using the complex training process to recalibrate the system has the adverse effect of halting the data flow during recalibration, which reduces throughput of the system. It is desirable to minimize the amount of time required to recalibrate the system in order to minimize the impact the recalibration process has on the overall system. At the same time, the recalibration process should maintain the accuracy of the original timing intensive (complex) training algorithm as voltage and temperature change.
  • SUMMARY
  • In an example, method of calibrating a source-synchronous system includes: performing initial calibration of a source-synchronous receiver, which is configured to receive data signals and a strobe, to determine an initial strobe delay and initial data delays; setting a strobe delay circuit that delays the strobe to have the initial strobe delay and data delay circuits that delay the data signals to have the initial data delays; measuring first data eye margins of the data signals at a first time; calculating metrics for the data signals based on the first data eye margins; and measuring second data eye margins of the data signals at a second time; and updating the data delay circuits and the strobe delay circuit based on the second data eye margins and the metrics.
  • In another example, a source-synchronous receiver includes a first receiver configured to receive a strobe, the first receiver including a strobe delay circuit; second receivers configured to receive data signals referenced to the strobe, the second receivers including data delay circuits; and a calibration circuit configured to: perform initial calibration to determine an initial strobe delay for the strobe delay circuit and initial data delays for the data delay circuits; measure first data eye margins of the data signals at a first time; calculate metrics for the data signals based on the first data eye margins; measure second data eye margins of the data signals at a second time; and update the data delay circuits and the strobe delay circuit based on the second data eye margins and the metrics.
  • In another example, a system includes: a source-synchronous transmitter coupled to a source-synchronous receiver through a plurality of transmission lines, the source-synchronous receiver comprising a first receiver configured to receive a strobe, the first receiver including a strobe delay circuit, second receivers configured to receive data signals referenced to the strobe, the second receivers including data delay circuits, and a calibration circuit configured to: perform initial calibration to determine an initial strobe delay for the strobe delay circuit and initial data delays for the data delay circuits; measure first data eye margins of the data signals at a first time; calculate metrics for the data signals based on the first data eye margins; measure second data eye margins of the data signals at a second time; and update the data delay circuits and the strobe delay circuit based on the second data eye margins and the metrics.
  • These and other aspects may be understood with reference to the following detailed description.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • So that the manner in which the above recited features can be understood in detail, a more particular description, briefly summarized above, may be had by reference to example implementations, some of which are illustrated in the appended drawings. It is to be noted, however, that the appended drawings illustrate only typical example implementations and are therefore not to be considered limiting of its scope.
  • FIG. 1 is a block diagram depicting a source synchronous system according to an example.
  • FIG. 2 is a block diagram depicting a source synchronous receive path according to an example.
  • FIG. 3 is a flow diagram depicting a method of calibrating a source synchronous system according to an example.
  • FIG. 4 illustrates the relationship between data eyes and data eye margins.
  • FIG. 5 illustrates the relationship between data eyes and ideal strobe locations.
  • FIG. 6 illustrates the relationship between data eyes and data delay values.
  • FIG. 7 illustrates a field programmable gate array (FPGA) in which the techniques described herein can be used.
  • To facilitate understanding, identical reference numerals have been used, where possible, to designate identical elements that are common to the figures. It is contemplated that elements of one example may be beneficially incorporated in other examples.
  • DETAILED DESCRIPTION
  • Various features are described hereinafter with reference to the figures. It should be noted that the figures may or may not be drawn to scale and that the elements of similar structures or functions are represented by like reference numerals throughout the figures. It should be noted that the figures are only intended to facilitate the description of the features. They are not intended as an exhaustive description of the claimed invention or as a limitation on the scope of the claimed invention. In addition, an illustrated example need not have all the aspects or advantages shown. An aspect or an advantage described in conjunction with a particular example is not necessarily limited to that example and can be practiced in any other examples even if not so illustrated or if not so explicitly described.
  • Techniques for calibrating and recalibrating source synchronous systems are described. In a source synchronous system, transmitting device sends both a clock signal (referred to as a strobe), and data signals referenced to the clock signal, to a receiving device. Example source synchronous systems in which the techniques described herein can be used include point-to-point interconnects (e.g., Intel® QuickPath interconnect, HyperTransport®, etc.), memories, (e.g., source-synchronous dynamic random access memory (SDRAM), graphics dynamic random access memory (GDRAM), etc.), and the like.
  • In an example, a source synchronous receiver routes the strobe to each data capture flip-flop. The strobe has an intrinsic delay due to the clock tree and an additional programmable delay. The strobe programmable delay is used to center the strobe within the data eye. Each data input also has a programmable delay prior to the capture flip-flop. The data programmable delays are used to deskew any offset between data bits within a data byte. The data programmable delays also can be used to add delay to offset the clock tree delay.
  • An initial calibration routine is used to calibrate the source synchronous receive path. The initial calibration routine uses one or more complex training patterns (e.g., pseudorandom binary sequence (PRBS) patterns) to align the worst-case data eyes for each data signal to each other and then optimize the strobe location within the composite data eye to maximize margin. Using the initial calibration routine to recalibrate the source synchronous receive path would have adverse effects on the system, as described above. Using the initial calibration routine with a simple calibration pattern (relative to the initial calibration patterns) would not induce the worst-case data eye, causing both the data skew and the strobe alignment to appear to be sub-optimal.
  • Accordingly, in the techniques described herein, recalibration is performed by measuring the margins using a simple calibration pattern, such as a clock pattern or the like, and then calculate a ratio (referred to as the Kfactor) that describes the relative location of the strobe within the data eye. This relative location is then maintained using a less complex recalibration routine (as compared to the initial calibration routine). The recalibration routine preserves the relative location of both the strobe and the skew between data bits established by the initial calibration over voltage and temperature (VT) changes. These and further aspects are discussed below with respect to the drawings.
  • FIG. 1 is a block diagram depicting a source synchronous system 100 according to an example. The source synchronous system 100 includes a first circuit 114 coupled to a second circuit 116 through transmission lines 106. The circuit 114 includes a source-synchronous transmitter 115 and a control circuit 113. The circuit 116 includes a source-synchronous receiver 118 and a calibration circuit 112. The source-synchronous transmitter 115 includes a transmitter 102 and transmitters 104 1 . . . 104 n (where n is a positive integer). The source-synchronous receiver 118 includes a receiver 108 and receivers 110 1 . . . 110 n. The control circuit 113 can be coupled to the calibration circuit 112.
  • In particular, the transmitter 102 receives a clock signal (TX Clock) having a clock pattern. The transmitters 104 1 . . . 104 n receive n data signals (Data[1] . . . Data[n]) each having a data pattern. The transmitters 104 1 . . . 104 n also receive TX clock. The transmitter 102 is coupled to the receiver 108 through a transmission line 106 1. The input of the receiver 108 is referred to as DQS. The transmitters 104 1 . . . 104 n are coupled to the receivers 110 1 . . . 110 n via transmission lines 106 2 . . 106 (n+1), respectively. The inputs of the receivers 110 1 . . . 110 n are referred to as DQ[1] . . . DQ[n], respectively. The calibration circuit 112 is coupled to the receiver 108 and the receivers 110 1 . . . 110 n. The receivers 110 1 . . . 110 n output latched data signals (Latched_DQ[1] . . . Latched_DQ[n]).
  • In operation, the source-synchronous transmitter 115 transmits TX clock and Data[1] . . . Data[n] in parallel over transmission lines 106 to the source-synchronous receiver 118. The transmitters 104 1 . . . 104 n transmit the data signals based on TX Clock. The receiver 108 receives a DQS signal (referred to as a “strobe signal” or “strobe”) from the transmission line 106 1. The receivers 110 1 . . . 110 n receive DQ[1] . . . DQ[n] signals (referred to as “data signals” or “data bits”) from the transmission lines 106 2 . . . 106 (n+1). Thus, the source-synchronous receiver 118 includes the DQS and DQ[1] . . . DQ[n] signals as input and the Latched_DQ[1] . . . Latched_DQ[n] signals as output. The input signals (DQS and DQ) can be differential signals or single-ended signals, depending on the design of the transmitters 102 and the transmitters 104 1 . . . 104 n.
  • A clock buffer 120 distributes the DQS signal to the receivers 110 1 . . . 110 n. The calibration circuit 112 controls programmable delay circuits in the receiver 108 and the receivers 110 1 . . . 110 n to deskew the DQ[1] . . . DQ[n] signals and to center the strobe in the composite data eye. The calibration circuit 112 also implements a two-stage calibration process including initial calibration and recalibration stages, as described further below. First, the calibration circuit 112 performs an initial calibration, which can be a robust calibration routine that uses one or more complex data patterns (e.g., one or more PRBS patterns) to induce worst-case data eye. Then, the calibration circuit 112 performs a recalibration, which is less complex calibration routine that uses a less complex data pattern (e.g., a clock pattern). The recalibration process preserves the relative location of both the strobe and the skew between the data bits established by the initial calibration.
  • FIG. 2 is a block diagram depicting the source-synchronous receiver 118 according to an example. The source-synchronous receiver 118 includes an input buffer 202, input buffers 205 1 . . . 205 n, a delay circuit 204, delay circuits 207 1 . . . 207 n, the clock buffer 120, and flip-flops (FF) 208 1 . . . 208 n. The input buffer 202 and the delay circuit 204 can be part of the receiver 108. The input buffers 205 1 . . . 205 n, the delay circuits 207 1 . . . 207 n, and the flip-flops 208 1 . . . 208 n can be part of the receivers 110 1 . . . 110 n, respectively. The delay circuit 204 is also referred to as the DQS delay or DQS delay circuit. The delay circuits 207 1 . . . 207 n are also referred to as the DQ delays or DQ delay circuits.
  • The input buffer 202 receives the DQS signal. The input buffers 205 1 through 205 n receive the DQ[1] . . . DQ[n] signals. The delay circuit 204 applies a programmable delay to the DQS signal output from the input buffer 202. The clock buffer 120 distributes the DQS signal as delayed by the delay circuit 204 to the flip-flops 208 1 . . . 208 n. The delay circuits 207 1 . . . 207 n each apply a programmable delay to a respective DQ signal. The flip-flops 208 1 . . . 208 n sample the DQ signals as delayed by the delay circuits 207 1 . . . 207 n. The flip-flops 208 1 . . . 208 n output the Latched_DQ[1] . . . Latched_DQ[n] signals.
  • The calibration circuit 112 outputs (n+1) control signals for controlling the delay circuit 204 and the delay circuits 207 1 . . . 207 n. The calibration circuit 112 can increment or decrement the delay circuit 204 and the delay circuits 207 1 . . . 207 n to increase or decrease delay. The calibration circuit 112 also receives the Latched_DQ[1] . . . Latched_DQ[n] signals from the flip-flops 208 1 . . . 208 n. The calibration circuit 112 can also receive a calibration control signal that initiates the calibration process (e.g., from the control circuit 113). The calibration circuit 112 performs a calibration process, as described further below.
  • FIG. 3 is a flow diagram depicting a method 300 of calibrating a source synchronous system 100 according to an example. The method 300 begins at step 302, where the source synchronous system 100 performs an initial calibration of the source-synchronous receiver 118. In an example, at step 304, the calibration circuit 112 can perform a training algorithm to determine ideal DQS and DQ(x) delay values (where x=1, 2, . . . , n) and to update the delay circuits 204 and 207 1 . . . 207 n. Any known training algorithm can be used.
  • At step 306, the calibration circuit 112 characterizes data eye margins for the DQ[1] . . . DQ[n] signals. For example, at step 308, the calibration circuit 112 measures the left and right data eye margins for each data bit. The calibration circuit 112 can measure the data eye margins while the source-synchronous receiver 118 is receiving a simple data pattern, such as a clock pattern or similar pattern. In an example, the source-synchronous transmitter 115 can transmit the data pattern. In another example, the circuit 116 can include a pattern generator 122 configured to couple a strobe and data pattern to the source-synchronous receiver 118.
  • In an example, the calibration circuit 112 measures the left margin (LM) for each data bit by determining the number of DQ steps (or taps) required to align the left edge of the data eye to the strobe location. That is, for the data signals DQ[1] . . . DQ[n], the calibration circuit 112 can increment the delay circuits 207 1 . . . 207 n (DQ delays) until detecting the left edge of the data eye. Alternatively, the calibration circuit 112 can decrement the delay circuit 204 (DQS delay) until detecting the left edge of the data eye. In yet another alternatively, the calibration circuit 112 can perform a combination of incrementing the delay circuits 207 1 . . . 207 n (DQ delays) and decrementing the delay circuit 204 (DQS delay) until detecting the left edge of the data eye.
  • The calibration circuit 112 measures the right margin (RM) for each data bit by determining the number of DQS steps (or taps) required to align the strobe to the right edge of the data eye. That is, for the data signals DQ[1] . . . DQ[n], the calibration circuit 112 can increment the delay circuit 204 (DQS delay) until detecting the right edge of the data eye. Alternatively, the calibration circuit 112 can decrement the delay circuits 207 1 . . . 207 n (DQ delays) until detecting the right edge of the data eye. In yet another alternative, the calibration circuit 112 can perform a combination of incrementing the delay circuit 204 (DQS delay) and decrementing the delay circuits 207 1 . . . 207 n (DQ delays) to detect the right edge of the data eye.
  • At step 310, the calibration circuit 112 determines a metric for each data bit that describes the relative location of the strobe within the data eye (referred to as the kFactor). The kFactor metric relates the right and left data eye margins. In an example, kFactor(x)=LM(x)/(LM(x)+RM(x)), x=1, 2, . . . ,n. In the examples above, it is assumed that the DQ step size (step size of the delay circuits 207 1 . . . 207 n ) is equal to the DQS step size (step size of the delay circuit 204). The procedure can also be performed if the relationship between the DQ step size and the DQS step size is known (e.g., DQ=Z*DQS, where Z is a positive number).
  • FIG. 4 illustrates the relationship between the data eyes of the data signals and the data eye margins determined in step 306. Dashed lines 402 indicate the strobe location, which is aligned after the initial calibration performed in step 302. The data signals DQ[1] . . . DQ[n] includes left margins LM[1] . . . LM[n] and right margins RM[1] . . . RM[n]. Further, the data signals DQ[1] . . . DQ[n] are delayed by delays DQΔ[1] . . . DQΔ[n]. After the initial calibration, the data signals DQ[2]. . . DQ[n] include skews 404 2 . . . 404 n with respect to the data signal DQ[1].
  • Returning to FIG. 3, at step 312, the calibration circuit 112 recalibrates the source-synchronous receiver 118. The calibration circuit 112 can recalibrate the source-synchronous receiver 118 upon command, upon a detected change in VT, upon a detected change in any delay, or the like. In an example, at step 314, the calibration circuit 112 re-measures the left and right data eye margins for each data bit. The calibration circuit 112 can re-measure the left and right data eye margins for each data bit using the techniques described above in step 306. At step 316, the calibration circuit 112 calculates a current ideal DQS location for each data bit based on its kFactor. An example algorithm for calculating the current ideal DQS locations for the data bits is described below with respect to FIG. 5. At step 318, the calibration circuit 112 calculates values to add to the DQ delays and the DQS delay based on the current ideal DQS locations determined in step 316. Example algorithms for calculating the values to add to the DQ delays are described below with respect to FIG. 6. At step 320, the calibration circuit 112 updates the DQ delays (the delay circuits 207 1 . . . 207 n) and the DQS delay (the delay circuit 204) based on the values calculated in step 318.
  • At step 322, the calibration circuit 112 can perform recalibration as needed. That is, the calibration circuit 112 can repeat step 312 for as many times as needed based on command, VT changes, delay changes, etc.
  • FIG. 5 illustrates the relationship between the data eyes of the data signals and the current ideal DQS locations. After a time period, the data eye for each data signal can shift right or left and/or the strobe location can shift right or left. In FIG. 5, the dashed lines 402 indicate the current strobe location with the data eyes. The dashed lines 502 1 through 502 n indicate the current ideal DQS locations for the data bits calculated based on the re-measured RM and LM values In an example, the ideal DQS location for the xth data signal is calculated as follows:

  • DQS[x]=(DQS taps −LM[x])+(LM[x]+RM[x])*kFactor[x],
  • where DQStaps is the DQS delay value (e.g., the delay value of the delay circuit 204). Note that the re-measured left and right margin values (step 314) can differ from the initially measured left and right margin values measured at step 308 after the initial calibration (e.g., due to VT changes or other delay changes).
  • FIG. 6 illustrates the relationship between the data eyes of the data signals and the data delay values calculated in step 318. In FIG. 6, the dashed lines 602 indicate the new common strobe location within the data eyes after step 320 (i.e., after the DQ delays and the DQS delay have been updated based on the values calculated at step 318). The LM[1] . . . LM[n] and RM[1] . . . RM[n] values are now the same or similar to those calculated after initial calibration at step 308. Also, the skew between data bits is also the same or similar as after initial calibration. The DQ delays DQΔ[1]′ . . . DQΔ[n]′ can be different than initially calculated at step 304 depending on the values calculated at step 318.
  • Various algorithms can be used to determine how to modify the DQ delays at step 318. In an example, if each DQS[x] is the same, then the algorithm moves the DQS delay (402 in FIG. 4) to a new DQS[x]. If there are differences across the DQs, then a combination of DQS and DQ delay adjustment is required. There are various algorithms to determine the combination of DQS and DQ delay changes in order to return to the original left and right margins determined in step 306. In general, a DQ delay adjustment that would result in final negative DQ delay (which is not possible) is avoided. In an example, the algorithm determines the DQ delay with the smallest value. The new DQS value (602 in FIG. 6) is set to the DQS corresponding to the DQ delay with the smallest value. The other DQ[x] delays are adjusted based on the difference between the new DQS delay (602) and their ideal DQS[x] requirement. This is: Added DQ[x]=New DQS−DQS[x]. A more robust algorithm can react if the Added DQ[x] results in a net negative DQ[x] delay by increasing the common DQS delay and repeating the equation above until all DQ[x] delays are non-negative.
  • The circuit 116 described above can be implemented within an integrated circuit, such as a field programmable gate array (FPGA) or like type programmable circuit. FIG. 7 illustrates an architecture of FPGA 700 that includes a large number of different programmable tiles including multi-gigabit transceivers (“MGTs”) 1, configurable logic blocks (“CLBs”) 2, random access memory blocks (“BRAMs”) 3, input/output blocks (“IOBs”) 4, configuration and clocking logic (“CONFIG/CLOCKS”) 5, digital signal processing blocks (“DSPs”) 6, specialized input/output blocks (“I/O”) 7 (e.g., configuration ports and clock ports), and other programmable logic 8 such as digital clock managers, analog-to-digital converters, system monitoring logic, and so forth. Some FPGAs also include dedicated processor blocks (“PROC”) 10.
  • In some FPGAs, each programmable tile can include at least one programmable interconnect element (“INT”) 11 having connections to input and output terminals 20 of a programmable logic element within the same tile, as shown by examples included at the top of FIG. 7. Each programmable interconnect element 11 can also include connections to interconnect segments 22 of adjacent programmable interconnect element(s) in the same tile or other tile(s). Each programmable interconnect element 11 can also include connections to interconnect segments 24 of general routing resources between logic blocks (not shown). The general routing resources can include routing channels between logic blocks (not shown) comprising tracks of interconnect segments (e.g., interconnect segments 24) and switch blocks (not shown) for connecting interconnect segments. The interconnect segments of the general routing resources (e.g., interconnect segments 24) can span one or more logic blocks. The programmable interconnect elements 11 taken together with the general routing resources implement a programmable interconnect structure (“programmable interconnect”) for the illustrated FPGA.
  • In an example implementation, a CLB 2 can include a configurable logic element (“CLE”) 12 that can be programmed to implement user logic plus a single programmable interconnect element (“INT”) 11. A BRAM 3 can include a BRAM logic element (“BRL”) 13 in addition to one or more programmable interconnect elements. Typically, the number of interconnect elements included in a tile depends on the height of the tile. In the pictured example, a BRAM tile has the same height as five CLBs, but other numbers (e.g., four) can also be used. A DSP tile 6 can include a DSP logic element (“DSPL”) 14 in addition to an appropriate number of programmable interconnect elements. An IOB 4 can include, for example, two instances of an input/output logic element (“IOL”) 15 in addition to one instance of the programmable interconnect element 11. As will be clear to those of skill in the art, the actual I/O pads connected, for example, to the I/O logic element 15 typically are not confined to the area of the input/output logic element 15.
  • In the pictured example, a horizontal area near the center of the die (shown in FIG. 11) is used for configuration, clock, and other control logic. Vertical columns 9 extending from this horizontal area or column are used to distribute the clocks and configuration signals across the breadth of the FPGA.
  • Some FPGAs utilizing the architecture illustrated in FIG. 7 include additional logic blocks that disrupt the regular columnar structure making up a large part of the FPGA. The additional logic blocks can be programmable blocks and/or dedicated logic. For example, processor block 10 spans several columns of CLBs and BRAMs. The processor block 10 can various components ranging from a single microprocessor to a complete programmable processing system of microprocessor(s), memory controllers, peripherals, and the like.
  • Note that FIG. 7 is intended to illustrate only an exemplary FPGA architecture. For example, the numbers of logic blocks in a row, the relative width of the rows, the number and order of rows, the types of logic blocks included in the rows, the relative sizes of the logic blocks, and the interconnect/logic implementations included at the top of FIG. 8 are purely exemplary. For example, in an actual FPGA more than one adjacent row of CLBs is typically included wherever the CLBs appear, to facilitate the efficient implementation of user logic, but the number of adjacent CLB rows varies with the overall size of the FPGA.
  • While the foregoing is directed to specific examples, other and further examples may be devised without departing from the basic scope thereof, and the scope thereof is determined by the claims that follow.

Claims (20)

1. A method of calibrating a source-synchronous system, comprising:
performing initial calibration of a source-synchronous receiver, which is configured to receive data signals and a strobe, to determine an initial strobe delay and initial data delays;
setting a strobe delay circuit that delays the strobe to have the initial strobe delay and data delay circuits that delay the data signals to have the initial data delays;
measuring first data eye margins of the data signals at a first time;
calculating metrics for the data signals based on the first data eye margins;
measuring second data eye margins of the data signals at a second time; and
updating the data delay circuits and the strobe delay circuit based on the second data eye margins and the metrics.
2. The method of claim 1, wherein the step of measuring the first data eye margins comprises:
providing a data pattern in the data signals; and
determining left data eye margins and right data eye margins for the data signals.
3. The method of claim 2, wherein each of the metrics relates a respective one of the left data eye margins and a respective one of the right data eye margins.
4. The method of claim 3, wherein each of the metrics is the respective left data eye margin divided by the sum of the respective left data eye margin and the respective right data eye margin.
5. The method of claim 2, wherein the step of determining the left data eye margin for each of the data signals comprises incrementing the data delay circuits, decrementing the strobe delay circuit, or both incrementing the data delay circuits and decrementing the strobe delay circuit.
6. The method of claim 2, wherein the step of determining the right data eye margin for each of the data signals comprises incrementing the strobe delay circuit, decrementing the data delay circuits, or both incrementing the strobe delay circuit and decrementing the data delay circuits.
7. The method of claim 1, wherein the step of measuring the second data eye margins comprises:
providing a data pattern in the data signals;
determining a left data eye margin and a right data eye margin for each of the data signals; and
determining a respective one of the metrics for each of the data signals by relating the left data eye margin and the right data eye margin thereof.
8. A source-synchronous receiver, comprising:
a first receiver configured to receive a strobe, the first receiver including a strobe delay circuit;
second receivers configured to receive data signals referenced to the strobe, the second receivers including data delay circuits; and
a calibration circuit configured to:
perform initial calibration to determine an initial strobe delay for the strobe delay circuit and initial data delays for the data delay circuits;
measure first data eye margins of the data signals at a first time;
calculate metrics for the data signals based on the first data eye margins;
measure second data eye margins of the data signals at a second time; and
update the data delay circuits and the strobe delay circuit based on the second data eye margins and the metrics.
9. The source-synchronous receiver of claim 8, wherein the calibration circuit is configured to measure the first data eye margins by determining left data eye margins and right data eye margins for the data signals.
10. The source-synchronous receiver of claim 9, wherein each of the metrics relates a respective one of the left data eye margins and a respective one of the right data eye margins.
11. The source-synchronous receiver of claim 10, wherein each of the metrics is the respective left data eye margin divided by the sum of the respective left data eye margin and the respective right data eye margin.
12. The source-synchronous receiver of claim 9, wherein the calibration circuit is configured to determine the left data eye margin for each of the data signals by incrementing the data delay circuits, decrementing the strobe delay circuit, or both incrementing the data delay circuits and decrementing the strobe delay circuit.
13. The source-synchronous receiver of claim 9, wherein the calibration circuit is configured to determine the right data eye margin for each of the data signals by incrementing the strobe delay circuit, decrementing the data delay circuits, or both incrementing the strobe delay circuit and decrementing the data delay circuits.
14. The source-synchronous receiver of claim 8, wherein the calibration circuit is configured to measure the second data eye margins by determining a left data eye margin and a right data eye margin for each of the data signals, and determining a respective one of the metrics for each of the data signals by relating the left data eye margin and the right data eye margin thereof.
15. A system, comprising:
a source-synchronous transmitter coupled to a source-synchronous receiver through a plurality of transmission lines, the source-synchronous receiver comprising a first receiver configured to receive a strobe, the first receiver including a strobe delay circuit, second receivers configured to receive data signals referenced to the strobe, the second receivers including data delay circuits, and a calibration circuit configured to:
perform initial calibration to determine an initial strobe delay for the strobe delay circuit and initial data delays for the data delay circuits;
measure first data eye margins of the data signals at a first time;
calculate metrics for the data signals based on the first data eye margins;
measure second data eye margins of the data signals at a second time; and
update the data delay circuits and the strobe delay circuit based on the second data eye margins and the metrics.
16. The system of claim 15, wherein the calibration circuit is configured to measure the first data eye margins by determining left data eye margins and right data eye margins for the data signals.
17. The system of claim 16, wherein each of the metrics relates a respective one of the left data eye margins and a respective one of the right data eye margins.
18. The system of claim 17, wherein each of the metrics is the respective left data eye margin divided by the sum of the respective left data eye margin and the respective right data eye margin.
19. The system of claim 16, wherein the calibration circuit is configured to determine the left data eye margin for each of the data signals by incrementing the data delay circuits, decrementing the strobe delay circuit, or both incrementing the data delay circuits and decrementing the strobe delay circuit.
20. The system of claim 16, wherein the calibration circuit is configured to determine the right data eye margin for each of the data signals by incrementing the strobe delay circuit, decrementing the data delay circuits, or both incrementing the strobe delay circuit and decrementing the data delay circuits.
US15/480,283 2017-04-05 2017-04-05 Recalibration of source synchronous systems Active US10103718B1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US15/480,283 US10103718B1 (en) 2017-04-05 2017-04-05 Recalibration of source synchronous systems
CN201810293392.3A CN108717401B (en) 2017-04-05 2018-04-03 Recalibration of source synchronous system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US15/480,283 US10103718B1 (en) 2017-04-05 2017-04-05 Recalibration of source synchronous systems

Publications (2)

Publication Number Publication Date
US20180294802A1 true US20180294802A1 (en) 2018-10-11
US10103718B1 US10103718B1 (en) 2018-10-16

Family

ID=63711846

Family Applications (1)

Application Number Title Priority Date Filing Date
US15/480,283 Active US10103718B1 (en) 2017-04-05 2017-04-05 Recalibration of source synchronous systems

Country Status (2)

Country Link
US (1) US10103718B1 (en)
CN (1) CN108717401B (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11003370B2 (en) * 2018-10-30 2021-05-11 Samsung Electronics Co., Ltd. System on chip performing a plurality of trainings at the same time, operating method of system on chip, electronic device including system on chip
WO2022035812A1 (en) * 2020-08-10 2022-02-17 Teradyne, Inc. Apparatus and method for operating source synchronous devices

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11003203B2 (en) 2018-07-23 2021-05-11 Xilinx, Inc. Circuits for and methods of calibrating a circuit in an integrated circuit device
KR20220019944A (en) 2020-08-11 2022-02-18 삼성전자주식회사 Storage devices and methods of operating storage devices
US11569805B2 (en) * 2021-03-15 2023-01-31 Mediatek Inc. Minimum intrinsic timing utilization auto alignment on multi-die system

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW559694B (en) * 2002-06-21 2003-11-01 Via Tech Inc Method and system of calibrating the control delay time
US7036053B2 (en) * 2002-12-19 2006-04-25 Intel Corporation Two dimensional data eye centering for source synchronous data transfers
US7543090B2 (en) * 2007-01-29 2009-06-02 Via Technologies, Inc. Double-pumped/quad-pumped variation mechanism for source synchronous strobe lockout
KR20090026939A (en) * 2007-09-11 2009-03-16 삼성전자주식회사 Apparatus and method for controlling data strobe signal
EP2223227B1 (en) * 2007-10-22 2013-02-27 Rambus Inc. Low-power source-synchronous signaling
US8588014B1 (en) * 2011-05-31 2013-11-19 Altera Corporation Methods for memory interface calibration
JP2013232152A (en) * 2012-05-01 2013-11-14 Ps4 Luxco S A R L Control device, memory system, and memory module
KR101990974B1 (en) * 2012-12-13 2019-06-19 삼성전자 주식회사 Method for operating system-on chip and apparatuses having the same
US9007855B2 (en) * 2012-12-24 2015-04-14 Arm Limited Data signal receiver and method of calibrating a data signal receiver
US9401189B1 (en) * 2013-03-15 2016-07-26 Altera Corporation Methods and apparatus for performing runtime data eye monitoring and continuous data strobe calibration
JP2015103262A (en) * 2013-11-25 2015-06-04 ルネサスエレクトロニクス株式会社 Semiconductor device
US9355696B1 (en) * 2014-11-06 2016-05-31 Xilinx, Inc. Calibration in a control device receiving from a source synchronous interface
JP6451505B2 (en) * 2015-05-28 2019-01-16 株式会社ソシオネクスト Reception circuit, reception circuit timing adjustment method, and semiconductor device

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11003370B2 (en) * 2018-10-30 2021-05-11 Samsung Electronics Co., Ltd. System on chip performing a plurality of trainings at the same time, operating method of system on chip, electronic device including system on chip
WO2022035812A1 (en) * 2020-08-10 2022-02-17 Teradyne, Inc. Apparatus and method for operating source synchronous devices
US11514958B2 (en) 2020-08-10 2022-11-29 Teradyne, Inc. Apparatus and method for operating source synchronous devices

Also Published As

Publication number Publication date
CN108717401B (en) 2023-09-26
US10103718B1 (en) 2018-10-16
CN108717401A (en) 2018-10-30

Similar Documents

Publication Publication Date Title
US10103718B1 (en) Recalibration of source synchronous systems
US20210082534A1 (en) Methods for memory interface calibration
US7991098B2 (en) Method and apparatus for training the reference voltage level and data sample timing in a receiver
KR101653035B1 (en) Command paths, apparatuses and methods for providing a command to a data block
US7307461B2 (en) System and method for adaptive duty cycle optimization
US8565033B1 (en) Methods for calibrating memory interface circuitry
US8565034B1 (en) Variation compensation circuitry for memory interface
US8644085B2 (en) Duty cycle distortion correction
US20080129357A1 (en) Adaptive Integrated Circuit Clock Skew Correction
US20040068682A1 (en) Deskew circuit and disk array control device using the deskew circuit, and deskew method
US9401189B1 (en) Methods and apparatus for performing runtime data eye monitoring and continuous data strobe calibration
US20190020333A1 (en) Double compression avoidance
US6876186B1 (en) Measurement of circuit delay
KR20150060907A (en) Clock domain boundary crossing using an asynchronous buffer
US6772382B2 (en) Driver for integrated circuit chip tester
US9721627B2 (en) Method and apparatus for aligning signals
US6759885B2 (en) Self-calibrating clock generator for generating process and temperature independent clock signals
KR20070088205A (en) Apparatus and method for auto phase-aligning
US11750185B2 (en) Calibrated linear duty cycle correction
US11152051B1 (en) Real time memory interface variation tracking
US8957714B2 (en) Measure-based delay circuit
CN111273726B (en) Duty ratio deviation compensation circuit, method and chip
KR100948066B1 (en) On die termination device and method for calibration of same
US9684742B1 (en) Method and apparatus for performing timing analysis on calibrated paths
US20080272817A1 (en) Integrated Circuit on a Semiconductor Chip with a Phase Shift Circuit and a Method for Digital Phase Shifting

Legal Events

Date Code Title Description
AS Assignment

Owner name: XILINX, INC., CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:SWANSON, RICHARD W.;MAGEE, TERENCE J.;ZHANG, QI;AND OTHERS;SIGNING DATES FROM 20170327 TO 20170405;REEL/FRAME:041866/0891

STCF Information on status: patent grant

Free format text: PATENTED CASE

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Year of fee payment: 4