EP3039810B1 - Offset calibration and adaptive channel data sample positioning - Google Patents
Offset calibration and adaptive channel data sample positioning Download PDFInfo
- Publication number
- EP3039810B1 EP3039810B1 EP14725850.3A EP14725850A EP3039810B1 EP 3039810 B1 EP3039810 B1 EP 3039810B1 EP 14725850 A EP14725850 A EP 14725850A EP 3039810 B1 EP3039810 B1 EP 3039810B1
- Authority
- EP
- European Patent Office
- Prior art keywords
- sample
- data
- offset
- eye scan
- sample position
- 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.)
- Active
Links
- 230000003044 adaptive effect Effects 0.000 title description 8
- 238000005070 sampling Methods 0.000 claims description 56
- 238000000034 method Methods 0.000 claims description 30
- 238000004891 communication Methods 0.000 claims description 27
- 238000009826 distribution Methods 0.000 claims description 16
- 230000001360 synchronised effect Effects 0.000 claims description 14
- 238000011084 recovery Methods 0.000 claims description 12
- 230000015654 memory Effects 0.000 description 40
- 238000010586 diagram Methods 0.000 description 32
- 230000006870 function Effects 0.000 description 14
- 238000004590 computer program Methods 0.000 description 11
- 238000012545 processing Methods 0.000 description 11
- 238000004549 pulsed laser deposition Methods 0.000 description 9
- 238000003860 storage Methods 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 5
- 230000033590 base-excision repair Effects 0.000 description 4
- 235000019800 disodium phosphate Nutrition 0.000 description 4
- 238000005259 measurement Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000001939 inductive effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 241000238876 Acari Species 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000001174 ascending effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000001066 destructive effect Effects 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000002370 liquid polymer infiltration Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000005019 pattern of movement Effects 0.000 description 1
- 229920000747 poly(lactic acid) Polymers 0.000 description 1
- 238000004171 remote diagnosis Methods 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 210000003813 thumb Anatomy 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L25/00—Baseband systems
- H04L25/02—Details ; arrangements for supplying electrical power along data transmission lines
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L7/00—Arrangements for synchronising receiver with transmitter
- H04L7/02—Speed or phase control by the received code signals, the signals containing no special synchronisation information
- H04L7/033—Speed or phase control by the received code signals, the signals containing no special synchronisation information using the transitions of the received signal to control the phase of the synchronising-signal-generating means, e.g. using a phase-locked loop
- H04L7/0334—Processing of samples having at least three levels, e.g. soft decisions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L25/00—Baseband systems
- H04L25/02—Details ; arrangements for supplying electrical power along data transmission lines
- H04L25/06—Dc level restoring means; Bias distortion correction ; Decision circuits providing symbol by symbol detection
- H04L25/069—Dc level restoring means; Bias distortion correction ; Decision circuits providing symbol by symbol detection by detecting edges or zero crossings
Definitions
- the following description relates to integrated circuit devices ("ICs"). More particularly, the following description relates to offset calibration and adaptive channel data sample positioning for an IC coupled to a communication channel.
- ICs integrated circuit devices
- a conventional clock-data recovery (“CDR") module of multi-gigabit serial data transceiver may align a clock to a median position of edges of a waveform after equalization. Data may be sampled a fixed time after this median position is aligned to a clock, such as at one-half of a bit period. However, this sample point may be less than optimal due to one or more of: (a) variations in the clock distributions between edge samplers and a data sampler may move a data sample point relative to an equalized waveform unpredictably; and (b) characteristics of a communication channel or an equalization skew of edge distributions may change unpredictably, inducing low probability bit errors on a long tail of such skewed distributions.
- CDR clock-data recovery
- Document US 2012/269305 A1 relates to an offset cancellation method for a receiver.
- the conventional method comprises counting the balance of zero edge bits versus one edge bits, integrating the difference, and applying an incremental offset correction when the integral reaches a predetermined limit.
- Document US 2006/0034394 A1 discloses a clock and data recovery circuit having an adaptive sampling edge position control.
- the conventional disclosure comprises generating one or more error signals from a received high speed data signal, and processing the generated advanced and delayed error signals to generate a phase offset control signal to adjust the sampling edge position in the clock and data recovery circuit.
- a method relates generally to sample offset adjustment.
- waveform edges associated with an asynchronous input are provided to a receiver.
- the waveform edges are densely distributed across an adjustment range.
- At least a portion of the adjustment range is scanned for samples from the dense distribution of waveform edges at a first sample position of a first type for each of a plurality of sample positions of a second type different from the first type to obtain an error count for a sample count for each of the plurality of sample positions across at least the portion of the adjustment range.
- the first sample position is fixed, and a second sample position from the plurality of sample positions is moved across at least the portion of the adjustment range.
- the scanning includes performing a plurality of sampling cycles for the sample count at each of the plurality of sample positions.
- a threshold bit error rate ("BER") is located from the scanning. An amount and a direction of a sample offset at the threshold BER from a reference location is determined. Either the first sample position or the second sample position is adjusted responsive to the amount and the direction of the sample offset to at least reduce the sample offset.
- Another method relates generally to data sample position adjustment.
- recovered data is obtained from a receiver for a synchronous input provided to the receiver. Eye edges are tracked for a selected bit error rate for the recovered data to determine a right edge position value and a left edge position value associated with a communications lane. An average value is determined as between the right edge position value and the left edge position value. A data sample position is moved responsive to the average value.
- jitter or noise associated with data provided via a communications channel or lane may affect margin for recovery of such data within a data eye.
- Eye scan may be used to determine relative position of data to such a data eye.
- an offset adjustment or adjustments may be made.
- an offset calibration flow may be used to at least reduce such offset to reduce an error rate.
- data drift even after offset calibration, may cause a data eye to not be positioned to enhance margin for data recovery.
- a channel adaptive data sample positioning flow may be used to enhance such margin.
- Having a well-controlled interval between a median edge position of a data eye and a data sample therein may be provided by having low-probability tails of data eye edge distributions determined adaptively to adjust data sample position optimally or at least to increase margin in such data eye.
- PLDs Programmable logic devices
- FPGA field programmable gate array
- programmable tiles typically include an array of programmable tiles. These programmable tiles can include, for example, input/output blocks (“IOBs”), configurable logic blocks (“CLBs”), dedicated random access memory blocks (“BRAMs”), multipliers, digital signal processing blocks (“DSPs”), processors, clock managers, delay-locked loops (“DLLs”), and so forth.
- IOBs input/output blocks
- CLBs configurable logic blocks
- BRAMs dedicated random access memory blocks
- DSPs digital signal processing blocks
- processors clock managers
- DLLs delay-locked loops
- Each programmable tile typically includes both programmable interconnect and programmable logic.
- the programmable interconnect typically includes a large number of interconnect lines of varying lengths interconnected by programmable interconnect points ("PIPs").
- PIPs programmable interconnect points
- the programmable logic implements the logic of a user design using programmable elements that can include, for example, function generators, registers, arithmetic logic, and so forth.
- the programmable interconnect and programmable logic are typically programmed by loading a stream of configuration data into internal configuration memory cells that define how the programmable elements are configured.
- the configuration data can be read from memory (e.g., from an external PROM) or written into the FPGA by an external device.
- the collective states of the individual memory cells then determine the function of the FPGA.
- a CPLD includes two or more "function blocks” connected together and to input/output ("I/O") resources by an interconnect switch matrix.
- Each function block of the CPLD includes a two-level AND/OR structure similar to those used in Programmable Logic Arrays ("PLAs”) and Programmable Array Logic (“PAL”) devices.
- PLAs Programmable Logic Arrays
- PAL Programmable Array Logic
- configuration data is typically stored on-chip in non-volatile memory.
- configuration data is stored on-chip in non-volatile memory, then downloaded to volatile memory as part of an initial configuration (programming) sequence.
- PLDs programmable logic devices
- the data bits can be stored in volatile memory (e.g., static memory cells, as in FPGAs and some CPLDs), in non-volatile memory (e.g., FLASH memory, as in some CPLDs), or in any other type of memory cell.
- volatile memory e.g., static memory cells, as in FPGAs and some CPLDs
- non-volatile memory e.g., FLASH memory, as in some CPLDs
- any other type of memory cell e.g., static memory cells, as in FPGAs and some CPLDs
- PLDs are programmed by applying a processing layer, such as a metal layer, that programmably interconnects the various elements on the device. These PLDs are known as mask programmable devices. PLDs can also be implemented in other ways, e.g., using fuse or antifuse technology.
- the terms "PLD” and "programmable logic device” include but are not limited to these exemplary devices, as well as encompassing devices that are only partially programmable. For example, one type of PLD includes a combination of hard-coded transistor logic and a programmable switch fabric that programmably interconnects the hard-coded transistor logic.
- FIG. 1 illustrates an FPGA architecture 100 that includes a large number of different programmable tiles including multi-gigabit transceivers (“MGTs") 101, configurable logic blocks (“CLBs”) 102, random access memory blocks (“BRAMs”) 103, input/output blocks (“IOBs”) 104, configuration and clocking logic (“CONFIG/CLOCKS”) 105, digital signal processing blocks (“DSPs”) 106, specialized input/output blocks (“I/O”) 107 (e.g., configuration ports and clock ports), and other programmable logic 108 such as digital clock managers, analog-to-digital converters, system monitoring logic, and so forth.
- Some FPGAs also include dedicated processor blocks (“PROC”) 110.
- PROC dedicated processor blocks
- each programmable tile includes a programmable interconnect element ("INT") 111 having standardized connections to and from a corresponding interconnect element in each adjacent tile. Therefore, the programmable interconnect elements taken together implement the programmable interconnect structure for the illustrated FPGA.
- the programmable interconnect element 111 also includes the connections to and from the programmable logic element within the same tile, as shown by the examples included at the top of FIG. 1 .
- a CLB 102 can include a configurable logic element (“CLE”) 112 that can be programmed to implement user logic plus a single programmable interconnect element (“INT") 111.
- a BRAM 103 can include a BRAM logic element (“BRL”) 113 in addition to one or more programmable interconnect elements.
- BRAM logic element BRAM logic element
- the number of interconnect elements included in a tile depends on the height of the tile. In the pictured embodiment, a BRAM tile has the same height as five CLBs, but other numbers (e.g., four) can also be used.
- a DSP tile 106 can include a DSP logic element (“DSPL”) 114 in addition to an appropriate number of programmable interconnect elements.
- An IOB 104 can include, for example, two instances of an input/output logic element ("IOL") 115 in addition to one instance of the programmable interconnect element 111.
- IOL input/output logic element
- the actual I/O pads connected, for example, to the I/O logic element 115 typically are not confined to the area of the input/output logic element 115.
- a horizontal area near the center of the die (shown in FIG. 1 ) is used for configuration, clock, and other control logic.
- Vertical columns 109 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. 1 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 110 spans several columns of CLBs and BRAMs.
- FIG. 1 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. 1 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.
- inventions described herein may be embodied as apparatus, method, system, or computer program product. Accordingly, one or more of such embodiments may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, and micro-code, among others) or an embodiment combining software and hardware, and for clarity any and all of these embodiments may generally be referred to herein as a "circuit,” “module,” “system,” or other suitable terms. Furthermore, such embodiments may be of the form of a computer program product on a computer-usable storage medium having computer-usable program code in the medium.
- the computer-usable or computer-readable medium may be, for example but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, device, or propagation medium. More specific examples (a non-exhaustive list) of the computer-readable medium would include the following: an electrical connection having one or more wires, a portable computer diskette, a hard disk, a random access memory ("RAM"), a read-only memory (“ROM”), an erasable programmable read-only memory (“EPROM” or Flash memory), an optical fiber, a portable compact disc read-only memory (“CD-ROM”), an optical storage device, a transmission media such as those supporting the Internet or an intranet, or a magnetic storage device.
- the computer-usable or computer-readable medium could even be paper or another suitable medium upon which the program is printed, as the program can be electronically captured, via, for instance, optical scanning of the paper or other medium, then compiled, interpreted, or otherwise processed in a suitable manner, if necessary, and then stored in a computer memory.
- Computer program code for carrying out operations in accordance with concepts described herein may be written in an object oriented programming language such as Java, Smalltalk, C++ or the like.
- the computer program code for carrying out such operations may be written in conventional procedural programming languages, such as the "C" programming language or similar programming languages.
- the program code may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server.
- the remote computer may be connected to the user's computer through a local area network ("LAN”) or a wide area network (“WAN”), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider).
- LAN local area network
- WAN wide area network
- Internet Service Provider for example, AT&T, MCI, Sprint, EarthLink, MSN, GTE, etc.
- Systems and methods described herein may relate to an apparatus for performing the operations associated therewith.
- This apparatus may be specially constructed for the purposes identified, or it may include a general-purpose computer selectively activated or reconfigured by a computer program stored in the computer.
- These computer program instructions may also be stored in a computer-readable memory that can direct a computer or other programmable data processing apparatus to function in a particular manner, such that the instructions stored in the computer-readable memory produce an article of manufacture including instruction means which implement the function/act specified in the flowchart and/or block diagram block or blocks.
- the computer program instructions may also be loaded onto a computer or other programmable data processing apparatus to cause a series of operational steps to be performed on the computer or other programmable apparatus to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide steps for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
- each block in the flowchart or block diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s).
- the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved.
- An apparatus relates generally to sample offset adjustment.
- a receiver includes a clock data recovery module to provide a dense distribution of waveform edges for an asynchronous input to the receiver. The waveform edges are densely distributed across an adjustment range.
- the receiver includes an eye scan circuit to obtain samples from the dense distribution of waveform edges at a first sample position and a second sample position and to provide an error count for a sample count for the samples.
- An eye scan module is coupled to the receiver and is configured to scan at least a portion of the adjustment range for the samples at the first sample position of a first type for each of a plurality of sample positions of a second type different from the first type to obtain an error count for a sample count for each of the plurality of sample positions.
- the first sample position is fixed.
- the eye scan circuit is coupled to the eye scan module to increment the second sample position from the plurality of sample positions for movement across at least the portion of the adjustment range.
- the eye scan circuit is coupled to the eye scan module to take a plurality of samples for the sample count at each of the plurality of sample positions.
- the eye scan module is further configured to: locate a threshold bit error rate (BER) from the scan; determine an amount and a direction of a sample offset at the threshold BER from a reference location; and adjust either the first sample position or the second sample position responsive to the amount and the direction of the sample offset to at least reduce the sample offset.
- BER bit error rate
- FIG. 2 is a flow diagram depicting an exemplary offset calibration flow 200.
- waveform edges associated with an asynchronous input to a receiver are obtained. Such waveform edges may be densely distributed across an adjustment range.
- An adjustment range may be a unit interval ("UI") of an input bit associated with data samples provided to such receiver.
- UI unit interval
- Such a receiver (“RX”) may have a phase interpolator, and this RX phase interpolator may have a resolution which is a fraction of a unit interval.
- an RX phase interpolator may have a 1/16 th , 1/32 nd , 1/64 th , or other smaller UI fractional resolution.
- waveform edges may be spaced-apart by a 1/16 th or smaller fraction of a UI for example to provide a dense distribution, as described below in additional detail.
- FIG. 3 is a block diagram depicting an exemplary transceiver 300.
- FIG. 4 is a signal diagram depicting a plurality of exemplary waveform signal pairs 400 for a synchronous data input 311 provided to receiver 301 of FIG. 3 .
- transceiver 300 is further described along with operations thereof.
- Transceiver 300 includes a receiver 301 and a transmitter 307.
- Receiver 301 includes a phase interpolator ("PI") 304, a clock-data-recovery (“CDR”) module 303, and an eye scan circuit 302.
- Eye scan circuit 302 may be configured to obtain data samples at a selected eye scan sample position until a set number of data samples is obtained or until stopped, to determine if an error has occurred, and to output an error count and a sample count. Eye scan circuit 302 may be configured to compare a data sample obtained at one position against another data sample obtained at another position to determine if an error has occurred for a sampling cycle.
- Transmitter (“TX”) 307 includes a PI 309.
- transceiver 300 An example of a transceiver 300 that may be implemented is described in detail in "7 Series FPGAs GTX/GTH Transceivers User Guide", UG476 (v1.9.1), dated April 22, 2013 ("UG476"). More particularly, UG476 at pages 206-210 provides information on RX margin analysis and eye scan theory, as well as RX PMA and PCS architectures to support an eye scan. For purposes of clarity by way of example and not limitation, it shall be assumed that transceiver 300 is that of an FPGA, such as described in UG476; however, other receivers or transceivers may be implemented, and this transceiver with eye scan support is merely a convenient example.
- Receiver 301 may be coupled to receive data input 311, which may be asynchronous or synchronous data and may be high-speed serial data. Receiver 301 may be configured to provide recovered data 313 and a recovered clock 315. Recovered data 313 may be tapped at node 317.
- CDR module 303 may be coupled to receive a hold control signal ("hold") 305. Such dense distribution of waveform edges obtained at 201 may be provided by asserting hold 305 so as to unlock CDR module 303 so as to prevent such CDR module 303 from locking or even attempting to lock, along with an asynchronous input provided as data input 311 to receiver 301. By asserting a hold signal for a CDR module 303 of receiver 301 to unlock such module or other clock recovery circuit, this may generally provide a repeated overlapping of waveforms, as described below in additional detail.
- Eye scan circuit 302 may effectively be for measuring or otherwise obtaining data for an eye scan.
- eye scan circuit 302 may be configured to receive one or more eye scan control signals 322.
- eye scan control signals 322 may include a horizontal offset for an eye scan position, a vertical offset for an eye scan position, and a number of samples to obtain, such as for a selected bit error rate ("BER").
- BER bit error rate
- An asynchronous input may be provided at 201 either directly as data input 311, or by inducing a fractional difference in clock frequency between a local reference clock and a reference clock used to generate a synchronous data input 311 by using a TX PI 309 to induce such parts per million fractional differences (“PPM”), or another form of providing an asynchronous input.
- PPM parts per million fractional differences
- a scan may be made across an adjustment range for samples at a first sample position of a first sample type, such as data samples at a data sample position for example, for each of a plurality of sample positions of a second sample type, such as eye scan sample positions for example, to obtain an error count for a sample count for each of the plurality of sample positions.
- a second sample type such as eye scan sample positions for example
- an error count may be determined for a number of samples or sample count. For example, if a data sample obtained at a data sample position does not equal a data sample obtained at an eye scan sample position, then this difference amounts to an error.
- an associated error count for such number of sampling cycles at such two positions may be determined.
- a sum of instances where data samples are not equal over a number of samples taken for two sampling positions is a BER for such two sampling positions.
- This sampling may be performed by holding one sampling position fixed and sequentially moving another sampling position across such an adjustment range, where an error count for a same sample count may be taken at each such position across such range. Accordingly, this information may be used to identify a second sample position of such plurality of second sample positions across an adjustment range with a minimum BER for example among such second sample positions relative to a fixed first sample position.
- a plurality of BERs namely one BER for each second sampling position across an adjustment range relative to a fixed first position, may be produced from which a minimum BER may be found. This may be done dynamically by moving such second position to minimize BER without necessarily covering each possible value in an adjustment range.
- scanning across an adjustment range may involve scanning across the entire adjustment range or just a portion thereof.
- such scanning across an adjustment range for data samples at a data sample position at each of a plurality of eye scan sample positions to obtain an error count for a sample count for each of such plurality of eye scan sample positions allows for such error count to be output, and optionally a sample count associated with such error count.
- This output of BER for each of such second positions relative to a first position may be eye scan data output 320 from eye scan circuit 302.
- Eye scan control signals 322 and eye scan data output 320 may be provided from and to eye scan hardware, software including firmware, or a combination thereof, generally indicated as eye scan module 350 in FIG. 3 .
- Such control signals 322 may be used to set a scan count for each of a plurality of eye scan sampling positions relative to a fixed data sampling position. Furthermore, such control signals 322 may be used to increment an eye scan sampling position, which may be used to scan across at least a portion of a horizontal adjustment range, namely across at least a portion of a UI.
- such scanning at 202 may be across an adjustment range for eye scan samples for each of a plurality of data sample positions to obtain an error count for a sample count for each of the plurality of data sample positions.
- an eye scan sample position may be such first sample position
- a data sample position may be such second sample position
- such plurality of sample positions may be data sample positions
- a sample offset may be a data sample position-to-eye scan sample position offset.
- an adjustment range may be a voltage amplitude range for a signal, such as a differential high-speed serial signal for example, and thus generally may be associated with a vertical voltage axis.
- an offset calibration may be performed with respect to a horizontal time axis or range and a vertical voltage axis or range together, such as for determining a location on an x- and y-grid.
- a horizontal offset such as via eye scan control signals 322 for example, in either a positive or negative direction in time or phase, may be provided for an eye scan sampling position 413 with a fixed vertical position or offset at 0 for such positional changes.
- an eye scan may have a horizontal axis 401 associated with time or phase, and a vertical axis 402 associated with amplitude, such as signal voltage amplitude.
- an eye scan sampling position or point 413 namely a position where eye scan samples are taken, is at (0, 0) of axes 401 and 402. Such sampling position may, though need not be, at (0, 0).
- a data sampling position or point 414 is horizontally spaced apart from eye scan sampling position 413 by a horizontal distance 423, such as a number of counts or ticks of a fraction of a UI, and is vertically spaced apart from eye scan sampling position 413 by a vertical distance 424, such as a voltage magnitude.
- An eye scan sampling position may or may not be centered to eye 425, which may vary from application-to-application depending on where margin, whether such as for time or voltage, is to be allocated.
- there may be a sample offset in a voltage difference in a vertical direction of an eye scan and there may be another sample offset in a time or phase difference in a horizontal direction of an eye scan.
- an adjustment range may be a voltage amplitude range or a time or phase difference adjustment range, the latter of which may be represented with counts.
- positions 413 and 414 are not at the same horizontal-coordinate on axis 401, and with reference to an error in voltage, positions 413 and 414 are not at the same vertical-coordinate on axis 402.
- two samplers such as two clocked latches for example, may be used to sample, including subsampling, sampling, or oversampling, namely one for obtaining eye scan samples and another one for obtaining data samples.
- One of such samplers effectively may be fixed as a reference, and the other of such samplers may be moved relative to such fixed sampler in order to find coincidence, as described below in additional detail.
- the following description is in terms of moving an eye scan sampling position relative to a fixed data sampling position; however, in another example, an eye scan sampling position may be a fixed reference position and a data sampling position may be moved.
- a horizontal or vertical offset for an eye scan sampling position may be set or otherwise adjusted.
- FIG. 5 is a signal diagram depicting a plurality of waveform signal pairs 500 for an asynchronous data input 311, such as previously described.
- each eye 425 may be substantially filled with a dense distribution of edges.
- eyes 425 overlap one another so as to effectively provide a "blurring" or overlapping effect for waveforms 500.
- waveform edges may be spaced-apart by a 1/16 th or smaller fraction of the unit interval.
- Positions 413 and 414 in this example may have one or more edges, such as descending edges 501 and ascending edges 502 for example, of such waveform signal pairs 500 between them.
- a threshold bit error rate (“BER") is located from scans performed at 202. Effectively scans performed at 202 are to move an eye scan sampling position relative to a fixed data sampling position reference to determine whether there is a difference between each two sampling positions at each of such respective positions. For an eye scan displayed image, this may be thought of as having eye scan vertical line pixels set to zero. In other words, an "error rate" at this juncture refers to a determined difference, if any, of data samples obtained at a data sampling position and an eye scan sampling position.
- locating a threshold BER which may be a minimum BER, may be performed by invoking a search.
- a suboptimal threshold for a threshold BER may be used, for purposes of clarity by way of example and not limitation, it shall be assumed that such threshold BER is a minimum BER.
- a search to find a minimum may be performed with by sequentially checking all positions ("brute force"), a gradient search, a simulated anneal, or other searching to find a minimum.
- synchronous data namely when CDR module 303 is locked for producing a recovered clock signal 315, no errors may be detected.
- CDR module 303 unlocked errors may be detected.
- an amount and a direction of an eye scan sample-to-data sample offset for a minimum BER located at 203 may be determined. Assuming such minimum BER located is for eye scan and data sampling positions in a horizontal direction being coincident, a count difference between such reference data sampling point and such eye scan sampling point for such minimum BER located may be obtained. This is just a horizontal or count difference between these two sampling positions.
- FIG. 6 is a graphical diagram depicting an exemplary eye scan-to-data sample horizontal offset plot 600. This plot is used to enhance understanding, as no such plot need be performed to determine a count difference between a reference sampling point and another sampling point as described above where a minimum BER is located.
- Horizontal axis 601 in this example is from minus to plus 32, which means from -32/64ths of a UI to +32/64ths of such a UI, namely a PI with a 64 "count” resolution.
- bit width of a bit e.g., a signal length for differential or single-ended signals representing a single bit
- ps picoseconds
- 100 ps may be broken up into 64 increments or counts (i.e., a count in this example is 100 ps divided by 64).
- each two counts are 1/32 of an eye 425.
- an RX PI has a minimum resolution of 64 counts; however, a coarser or finer resolution than a minimum resolution of a PI may be used.
- an RX PI need not be used, as other devices used to parse a UI may be used, including a DLL or variations of a PLL.
- discrete data points 603 associated with error counts or BERs where vertical axis 602 represents a BER or error count for each of a plurality of eye scan sample positions, which in this continued example are discrete eye scan sampling times.
- a number of sample counts for scanning for each of a plurality of sample positions may be for a BER target, such as for example an error for every 10 12 (i.e., 1 E12) bit samples or some other BER target.
- the ratio is number of differences between samples or error count divided by a total number of sampling cycles taken at two sampling positions or sample count, which may be for many sampling cycles.
- a target BER may be expressed as 1.E-12; however, another target BER may be used in other examples.
- a minimum BER is at location 604, which corresponds in this example to a horizontal count of +2 from a reference location 605.
- reference location 605 is at a center location, namely count zero; however, in other implementations, a center location need not be used.
- a count difference may be plus or minus, and may be 2 or some other integer difference in horizontal offset.
- This count difference is an eye scan sample-to-data sample offset, or more particularly for this example an eye scan sample-to-data sample horizontal offset.
- a vertical difference may also be found using the above-description, though for a positive or negative voltage offset.
- sampling margin on one side of such eye may be better than on an opposite side of such eye.
- more signal margin may be provided.
- Such sampling may thus be more immune to jitter or other types of noise for example.
- sampling position may be adjusted responsive to amount and direction of such eye scan sample-to-data sample offset to calibrate out such eye scan sample-to-data sample offset.
- eye scan horizontal sample position may be adjusted.
- a horizontal offset may be set at -2.
- other counts may be used as offset may vary.
- either a data sample position or an eye scan sample position may be adjusted for a horizontal offset or a vertical offset, as applicable.
- This adjustment at 205 may thus include adjusting a horizontal offset for an eye scan sample position to calibrate out or at least substantially reduce such eye scan sample position-to-data sample position offset.
- such sample offset may be a voltage difference in a vertical direction of an eye scan, and so a vertical offset may be adjusted to at least reduce such sample offset.
- sample offset determined may be in terms of a horizontal or vertical offset, such as in time or in amplitude, and thus such calibration to at least reduce such offset may involve adjusting either or both a horizontal offset or a vertical offset for a sample position, whether an eye scan or data sample position.
- FIG. 7 is a graphical diagram depicting an exemplary BER "bathtub" plot (“plot”) 700 for the above example before and after adjustment at 205 of FIG. 2 .
- This plot is used to enhance understanding, as no such plot need be performed to perform an offset adjustment.
- Plot 700 is horizontal axis 601 for counts, as previously described, versus BER, or more particularly an error to sample counts ratio, vertical axis 702 plot.
- Plot 700 includes a bathtub curve 703 having a left curved portion or "left edge" 703-1, a central flat portion 703-2, and a right curved portion or "right edge” 703-3 prior to horizontal offset adjustment.
- a horizontal offset adjustment of 2 counts in a negative count direction is made to bathtub curve 703, which shifts bathtub curve 703 to the left by 2 counts as generally indicated by adjusted bathtub curve 703A.
- This adjustment may be made by setting a register value in hardware or assigning a value to a variable in software, for example.
- left curved portion 703-1, central flat portion 703-2, and right curved portion 703-3 are all shifted two counts to the left as generally indicated by adjusted left curved portion 703-1A, adjusted central flat portion 703-2A, and adjusted right curved portion 703-3A.
- This shift in hardware or software may be implemented as a subtraction, whereas a shift to the right may be implemented as an addition.
- adjusted bathtub curve 703A which is depicted with a thicker black line for purposes of clarity, may extend 2 counts to the left of vertical axis 702, and this portion of bathtub curve 703A may be ignored.
- Central flat portion 703-2A is where there is a cut-off BER.
- left and right edges 703-1A and 703-3A actually may extend below central flat portion 703-2A and asymptotically approach one another.
- cut-off is generally indicated as central flat portion 703-2A.
- all subsequent eye scan samples may be offset by such an amount of offset by having a registered or otherwise set value to shifted eye scan sample position.
- a vertical offset may also be set.
- an eye scan position of (0, 0) may be aligned with a data sample position.
- eye scan position (0, 0) may not be symmetrically located in a data eye.
- an adjusted bathtub curve 703A may be misaligned, namely not centered with respect to a zero count position 605 for example. This misalignment may likewise reduce margin in a receiver.
- bathtub curve 703A may move due to a clock used to transmit synchronous data slewing with respect to a clock used to recover such synchronous data on a communication channel. Accordingly, as described below in additional detail, edges 703-1A and 703-3A of bathtub curve 703A may be tracked during operation for adaptively changing to these or other changes in a communications channel.
- any adjustment at 205 it may be determined whether another sample offset needs to be determined and adjusted for at 206.
- Such other offset may be a vertical offset for a communications channel just processed, or a horizontal offset for another communications channel. If at 206 it is determined that another offset is to be determined and adjusted, then flow 200 may be repeated for such other offset starting at 201, or optionally at 202 if there is no change in communications channel. If, however, at 206 it is determined that no other offset is to be determined and adjusted, then a channel adaptive data sample positioning flow may be invoked at 207.
- FIG. 8 is a flow diagram depicting an exemplary channel adaptive data sample positioning flow 800, which may be invoked at 207 of FIG. 2 . With additional reference to FIGS. 3 and 7 , flow 800 of FIG. 8 is further described.
- recovered data 313 may be tapped at node 317, where recovered data 313 is output from receiver 300 for a synchronous input of data, such as high-speed serial data 311.
- flow 800 may be used in real time during actual operation of receiver 300.
- high-speed serial data 311 may be real customer data which is output as recovered data 313, and such recovered data 313 may be tapped to provide to eye scan module 350.
- non-destructive tracking of left edge 703-1A and right edge 703-3A of bathtub curve 703A of recovered data 313 may be performed.
- eye edges such as left edge 703-1A and right edge 703-3A, for a selected BER, within a selected BER range inclusive, for recovered data 313 may be tracked to determine a right edge position value and a left edge position value associated with a communications lane.
- data of recovered data 313 at a left edge 703-1A position 721 and at a right edge 703-3A position 722 for a BER between high BER threshold level 713 and low BER threshold level 714 may be tracked.
- Selection of a BER for tracking may be a default predetermined value responsive to a communications standard or protocol, or optionally may be set by a user.
- such tracking at 802 may include storing running data values for each of such edges.
- some initial samples of data values may be ignored until a steady-state is reached. This is because it may take some time until measurements for a selected BER may settle to such BER.
- an average value as between a right edge position value and a left edge position value obtained from tracking may be determined. For example, suppose a left edge position value was 9 and a right edge position value was -5 for each at a BER of 1.E-12 continuing the above example, then an average of such values would be 2 (i.e., ⁇ 9 + (-5) ⁇ /2).
- adjusted bathtub curve 703A may be moved responsive to an average value determined at 803.
- a moved adjusted bathtub curve 703M is moved 2 counts to the left to generally center, subject to granularity and other limitations, to a zero count position 605.
- moved left edge 703-1M and moved right edge 703-3M, as well as moved central flat portion 703-2M are moved over two counts to the left. Effectively, this moves a data sample position by such average value determined at 803.
- a positive average value is moved to the left, and a negative average value is moved to the right.
- Timing of movement while it may take place with real data does not adjust for each bit of data at a time. For example, suppose there is a data rate of 1E10 bits per second for synchronous high-speed serial data input 311 and a BER of 1E-12 is selected, then 100 seconds may lapse to get measured or tracked values from which to determine an average; and if each edge is sequentially tracked, rather than tracked in parallel, then 200 seconds may lapse to get both values in order to determine an average.
- such right and left edge values, or an average thereof, for a communications channel may be stored for determining over more than one measurement cycle any pattern of movement or an average value of average values or whether an accumulated shift in counts is sufficiently significant to determine whether to reposition a previously moved bathtub curve 703M.
- a transmitter may send data over a channel to a receiver, and such transmitter or communications may shift a data eye of such data transmitted.
- a non-centered data eye may be caused by asymmetrical jitter distributions.
- a receiver may not have control over a transmitter to correct for such distortion, a receiver may be configured to shift a data sampling position by moving a bathtub curve to adjust for a misaligned data eye to increase signal margin for recovering data for a communications channel.
- a communications channel may be incremented, and flow 800 may proceed as a loop starting again at 801.
- flow 800 may proceed as a loop starting again at 801.
- a series of communications channels may adaptively have their receiver margin increased.
- FIG. 9 is a block diagram depicting an exemplary receiver-side communications system 900.
- a host personal computer (“PC") 901 may be coupled to an FPGA 100.
- FPGA 100 may have an embedded processor 902, an eye scan module 350, and a four channel transceiver (“transceiver quad") 907.
- Eye scan module 350 may include firmware RAM 904 having stored therein eye scan code 905, and state machines and memory 906.
- Transceiver quad 907 may include eye scan circuit 302, as previously described herein. However, it should be understood that such eye scan circuit 302 may be positioned so it does not interfere with the flow of data, namely throughput, of transceiver quad 907. Furthermore, there may be a separate eye scan circuit 302 for each transceiver, or transceivers may share an eye scan circuit 302.
- State machines and memory 906 may include transceiver/RAM access control state machines 916 respectively coupled to communication lanes 0 through 3 of transceiver quad 907 and coupled to embedded processor 902. State machines and memory 906 may include data storage RAM 917, which is coupled to transceiver/RAM access control state machines 916. Transceiver/RAM access control state machines 916 may be instantiated in programmable resources of FPGA 100.
- Firmware or other program RAM 904 which is coupled to embedded processor 902, may have stored therein eye scan code 905 for execution by embedded processor 902.
- Code 905 may be for execution of at least one of flows 200 or 800.
- Embedded processor 902 may be coupled to host PC 901 via an interface 903, such as JTAG or other bus.
- Host PC 901 may be for displaying a data eye or other diagnostics. However, some or all of code 905 may be ported to host PC 901, but this would be for a slower operation. Otherwise, host PC 901 may be programmed generally to provide maintenance and diagnostics for eye scan operation. For example, if a data eye is slowly drifting, embedded processor 902 may send an alarm to host PC 901.
- moving at 804 may be for adaptively positioning a data position for recovered data as associated with a communications channel.
- FIG. 10 is a block diagram depicting an exemplary receiver-side communications system 1000.
- a remote host PC 901 may be coupled to an FPGA 100 via the Internet 1004.
- FPGA 100 may have an embedded microprocessor 1003, eye scan module logic and memory 1001, and a four channel transceiver 907.
- Transceiver quad 907 may include eye scan circuit 302, as previously described herein.
- Firmware RAM 904 of FIG. 9 may be coupled to embedded microprocessor 1003 though not shown in this figure for purposes of clarity.
- Logic and memory 1001 may be a hard macro block, rather than instantiated logic as state machines and memory 906. Logic of logic and memory 1001 may respectively be coupled to communication lanes 0 through 3 of transceiver quad 907 and coupled to microprocessor 1003. Logic and memory 1001 may include data storage memory, which may be dual ported RAM 1002 coupled to microprocessor 1003.
- Remote host PC 901 may prompt an embedded processor, such as a microprocessor 1003, to initiate a scan and return results through Internet 1004 to such host system.
- an embedded processor such as a microprocessor 1003
- FIG. 11 is a block diagram depicting an exemplary computer system 1100.
- Computer system 1100 may include a programmed computer 1110 coupled to one or more display devices 1101, such as Cathode Ray Tube (“CRT") displays, plasma displays, Liquid Crystal Displays (“LCD”), projectors and to one or more input devices 1106, such as a keyboard and a cursor pointing device.
- display devices 1101 such as Cathode Ray Tube (“CRT") displays, plasma displays, Liquid Crystal Displays (“LCD”), projectors and to one or more input devices 1106, such as a keyboard and a cursor pointing device.
- CTR Cathode Ray Tube
- LCD Liquid Crystal Displays
- FIG. 11 is a block diagram depicting an exemplary computer system 1100.
- Computer system 1100 may include a programmed computer 1110 coupled to one or more display devices 1101, such as Cathode Ray Tube (“CRT”) displays, plasma displays, Liquid Crystal Displays (“LCD”), projectors and to one or
- Programmed computer 1110 may be programmed with a known operating system, which may be Mac OS, Java Virtual Machine, Real-Time OS Linux, Solaris, iOS, Android Linux-based OS, Unix, or a Windows operating system, among other known platforms.
- Programmed computer 1110 includes a central processing unit (CPU) 1104, memory 1105, and an input/output ("I/O") interface 1102.
- CPU 1104 may be a type of microprocessor known in the art, such as available from IBM, Intel, ARM, or Advanced Micro Devices for example.
- Support circuits (not shown) may include cache, power supplies, clock circuits, data registers, and the like.
- Memory 1105 may be directly coupled to CPU 1104 or coupled through I/O interface 1102. At least a portion of an operating system may be disposed in memory 1105.
- Memory 1105 may include one or more of the following: flash memory, random access memory including dynamic random access memory, read only memory, magneto-resistive read/write memory, optical read/write memory, cache memory, magnetic read/write memory, and the like, as well as other non-transitory signal-bearing media as described below.
- I/O interface 1102 may include chip set chips, graphics processors, and/or daughter cards, among other known circuits.
- An example of a daughter card may include a network interface card ("NIC"), a display interface card, a modem card, and a Universal Serial Bus (“USB”) interface card, among other known circuits.
- NIC network interface card
- USB Universal Serial Bus
- I/O interface 1102 may be coupled to a conventional keyboard, network, mouse, display, printer, and interface circuitry adapted to receive and transmit data, such as data files and the like.
- Programmd computer 1110 may be coupled to a number of client computers, server computers, or any combination thereof via a conventional network infrastructure, such as a company's Intranet and/or the Internet, for example, allowing distributed use for interface generation.
- Memory 1105 may store all or portions of one or more programs or data to implement processes in accordance with one or more embodiments hereof to provide program product 1120.
- programmed computer 1110 may be programmed with either or both of flows 200 and 800 in program product 1120, to convert a general-purpose computer to a special-purpose programmed computer 1110.
- a general-purpose computer may be programmed to be a logic analyzer, where either or both of flows 200 and 800 are eye scan modules thereof.
- one or more embodiments hereof may be implemented in hardware, software, or a combination of hardware and software. Such implementations may include a number of processors or processor cores independently executing various programs and dedicated hardware or programmable hardware.
- One or more program(s) of program product 1120 may define functions of embodiments hereof and can be contained on a variety of non-transitory signal-bearing media, such as computer-readable media having code, which include, but are not limited to: (i) information permanently stored on non-writable storage media (e.g., read-only memory devices within a computer such as CD-ROM or DVD-ROM disks readable by a CD-ROM drive or a DVD drive); or (ii) alterable information stored on writable storage media (e.g., floppy disks within a diskette drive or flash drive (internal hard drive or external thumb drive/memory stick) or hard-disk drive or read/writable CD or read/writable DVD).
- the above embodiments specifically include information downloaded from the Internet and other networks.
- Such non-transitory signal-bearing media when carrying computer-readable instructions that direct functions hereof, represent embodiments hereof.
- An exemplary method relates generally to sample offset adjustment.
- waveform edges associated with an asynchronous input are provided to a receiver.
- the waveform edges are densely distributed across an adjustment range.
- At least a portion of the adjustment range is scanned for samples from the dense distribution of waveform edges at a first sample position of a first type for each of a plurality of sample positions of a second type different from the first type to obtain an error count for a sample count for each of the plurality of sample positions across at least the portion of the adjustment range.
- the first sample position is fixed, and a second sample position from the plurality of sample positions is moved across at least the portion of the adjustment range.
- the scanning includes performing a plurality of sampling cycles for the sample count at each of the plurality of sample positions.
- a threshold bit error rate ("BER") is located from the scanning. An amount and a direction of a sample offset at the threshold BER from a reference location is determined. Either the first sample position or the second sample position is adjusted responsive to the amount and the direction of the sample offset to at least reduce the sample offset.
- the adjustment range can be a unit interval.
- the adjustment range can be in terms of time or phase.
- the waveform edges can be spaced-apart by a 1/16 th or smaller fraction of the unit interval.
- the fraction can be associated with a resolution of a phase interpolator of the receiver.
- the first sample position of the first type can be a data sample position; the second sample position of the second type can be an eye scan sample position; the plurality of sample positions can be eye scan sample positions; and the sample offset can be an eye scan sample position-to-data sample position offset.
- the adjusting can include adjusting a horizontal offset for the eye scan sample position to calibrate out the eye scan sample position-to-data sample position offset.
- the locating can comprise performing a search to find a minimum BER from a plurality of BERs for the plurality of sampling cycles performed at each of the plurality of sample positions.
- the plurality of sample positions can be all for an eye scan vertical position of zero.
- the sample count for the scanning for each of the plurality of sample positions can be for a BER target.
- the method can further comprise asserting a hold signal for a clock data recovery ("CDR") module of the receiver to unlock the CDR module.
- the first position of the first type can be an eye scan sample position; the second position of the second type can be a data sample position; the plurality of sample positions can be data sample positions; and the sample offset can be a data sample position-to-eye scan sample position offset.
- the sample offset can be a voltage difference in a vertical direction of an eye scan.
- the adjustment range can be a voltage amplitude range.
- the method can further comprise: obtaining recovered data from the receiver for a synchronous input provided to the receiver; tracking eye edges for a selected BER for the recovered data to determine a right edge position value and a left edge position value associated with a communications lane; determining an average value as between the right edge position value and the left edge position value; and moving the first sample position responsive to the average value.
- Another exemplary method relates generally to data sample position adjustment.
- recovered data is obtained from a receiver for a synchronous input provided to the receiver. Eye edges are tracked for a selected bit error rate for the recovered data to determine a right edge position value and a left edge position value associated with a communications lane. An average value is determined as between the right edge position value and the left edge position value. A data sample position is moved responsive to the average value.
- An exemplary apparatus relates generally to sample offset adjustment.
- a receiver includes a clock data recovery module to provide a dense distribution of waveform edges for an asynchronous input to the receiver. The waveform edges are densely distributed across an adjustment range.
- the receiver includes an eye scan circuit to obtain samples from the dense distribution of waveform edges at a first sample position and a second sample position and to provide an error count for a sample count for the samples.
- An eye scan module is coupled to the receiver and is configured to scan at least a portion of the adjustment range for the samples at the first sample position of a first type for each of a plurality of sample positions of a second type different from the first type to obtain an error count for a sample count for each of the plurality of sample positions.
- the first sample position is fixed.
- the eye scan circuit is coupled to the eye scan module to increment the second sample position from the plurality of sample positions for movement across at least the portion of the adjustment range.
- the eye scan circuit is coupled to the eye scan module to take a plurality of samples for the sample count at each of the plurality of sample positions.
- the eye scan module is further configured to: locate a threshold bit error rate (BER) from the scan; determine an amount and a direction of a sample offset at the threshold BER from a reference location; and adjust either the first sample position or the second sample position responsive to the amount and the direction of the sample offset to at least reduce the sample offset.
- BER bit error rate
- the first sample position of the first type can be a data sample position; the second sample position of the second type can be an eye scan sample position; the plurality of sample positions can be eye scan sample positions; and the sample offset can be an eye scan sample position-to-data sample position offset.
- the first position of the first type can be an eye scan sample position; the second position of the second type can be a data sample position; the plurality of sample positions can be data sample positions; and the sample offset can be a data sample position-to-eye scan sample position offset.
- the eye scan module can be coupled to the receiver to obtain recovered data therefrom for a synchronous input; and the eye scan module can be configured to: track eye edges for a selected BER for the recovered data and to determine a right edge position value and a left edge position value; determine an average value as between the right edge position value and the left edge position value; and move the first sample position responsive to the average value.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Power Engineering (AREA)
- Dc Digital Transmission (AREA)
- Synchronisation In Digital Transmission Systems (AREA)
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/013,283 US8923463B1 (en) | 2013-08-29 | 2013-08-29 | Offset calibration and adaptive channel data sample positioning |
PCT/US2014/033529 WO2015030878A1 (en) | 2013-08-29 | 2014-04-09 | Offset calibration and adaptive channel data sample positioning |
Publications (2)
Publication Number | Publication Date |
---|---|
EP3039810A1 EP3039810A1 (en) | 2016-07-06 |
EP3039810B1 true EP3039810B1 (en) | 2017-11-15 |
Family
ID=50771610
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
EP14725850.3A Active EP3039810B1 (en) | 2013-08-29 | 2014-04-09 | Offset calibration and adaptive channel data sample positioning |
Country Status (6)
Country | Link |
---|---|
US (1) | US8923463B1 (ja) |
EP (1) | EP3039810B1 (ja) |
JP (1) | JP6216888B2 (ja) |
KR (1) | KR102163388B1 (ja) |
CN (1) | CN105493434B (ja) |
WO (1) | WO2015030878A1 (ja) |
Families Citing this family (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9281971B1 (en) * | 2015-02-10 | 2016-03-08 | Oracle International Corporation | Vertical eye margin measurement using channel receiver equalizer |
US9444588B1 (en) | 2015-06-15 | 2016-09-13 | Pmc-Sierra Us, Inc. | On-chip bathtub BER measurement for high-speed serdes diagnostics |
US10115463B1 (en) | 2015-06-25 | 2018-10-30 | Xilinx, Inc. | Verification of a RAM-based TCAM |
US9356775B1 (en) | 2015-07-09 | 2016-05-31 | Xilinx, Inc. | Clock data recovery (CDR) phase walk scheme in a phase-interpolater-based transceiver system |
TWI558150B (zh) * | 2015-07-28 | 2016-11-11 | 群聯電子股份有限公司 | 眼寬偵測器、記憶體儲存裝置及資料訊號的眼寬偵測方法 |
US11038768B1 (en) | 2016-09-15 | 2021-06-15 | Xilinx, Inc. | Method and system for correlation of a behavioral model to a circuit realization for a communications system |
WO2018068824A1 (en) * | 2016-10-11 | 2018-04-19 | Huawei Technologies Co., Ltd. | Eye deskew method |
US10860044B1 (en) | 2016-12-13 | 2020-12-08 | Xilinx, Inc. | Structure and method for a microelectronic device having high and/or low voltage supply |
US10708011B2 (en) * | 2018-03-28 | 2020-07-07 | SK Hynix Inc. | Eye opening hardware offloading |
CN108535631A (zh) * | 2018-04-02 | 2018-09-14 | 郑州云海信息技术有限公司 | 一种测试芯片内部信号眼图的测试方法及系统 |
JP6672376B2 (ja) * | 2018-05-16 | 2020-03-25 | アンリツ株式会社 | 誤り率測定装置及び該装置のパラメータ探索方法 |
JP6672375B2 (ja) * | 2018-05-16 | 2020-03-25 | アンリツ株式会社 | 誤り率測定装置及び該装置のアイマージン測定方法 |
US10404445B1 (en) | 2018-07-03 | 2019-09-03 | Xilinx, Inc. | Data receiver circuit and method of receiving data |
CN109194460B (zh) * | 2018-10-26 | 2021-06-18 | 光梓信息科技(上海)有限公司 | 时钟数据恢复电路、自适应调整模块及方法 |
US10651949B1 (en) * | 2018-11-19 | 2020-05-12 | Hewlett Packard Enterprise Development Lp | Calibration for an optical communications link |
US11245554B1 (en) | 2020-06-17 | 2022-02-08 | Xilinx, Inc. | Frequency detector for clock data recovery |
US10985764B1 (en) | 2020-07-01 | 2021-04-20 | Xilinx, Inc. | Phase detector offset to resolve CDR false lock |
JP7193508B2 (ja) * | 2020-09-03 | 2022-12-20 | アンリツ株式会社 | 誤り率測定装置、及び誤り率測定方法 |
KR20220088159A (ko) | 2020-12-18 | 2022-06-27 | 삼성전자주식회사 | 집적 회로 및 이의 동작 방법 |
CN112597097B (zh) * | 2020-12-28 | 2022-11-22 | 山东浪潮科学研究院有限公司 | 一种基于adc数据采集卡的通信系统及其应用方法、介质 |
CN114840464A (zh) * | 2021-02-01 | 2022-08-02 | 武汉杰开科技有限公司 | 调整波特率的方法、电子设备及计算机存储介质 |
CN113098509B (zh) * | 2021-03-24 | 2023-04-07 | 芯思原微电子有限公司 | 采样器偏差消除方法、电路、判决反馈电路及接收装置 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3856101B2 (ja) * | 2001-09-03 | 2006-12-13 | 日本電気株式会社 | 受信波形整形機能を有する光受信装置 |
US7529329B2 (en) | 2004-08-10 | 2009-05-05 | Applied Micro Circuits Corporation | Circuit for adaptive sampling edge position control and a method therefor |
KR100674955B1 (ko) | 2005-02-07 | 2007-01-26 | 삼성전자주식회사 | 데이터 주파수에 따라 위상 옵셋을 조절하는 클럭 복원장치 및 방법 |
JP2009302852A (ja) * | 2008-06-12 | 2009-12-24 | Sumitomo Electric Ind Ltd | 光受信回路、光受信回路のタイミング設定方法および光受信装置 |
US8135100B2 (en) * | 2008-08-20 | 2012-03-13 | International Business Machines Corporation | Adaptive clock and equalization control systems and methods for data receivers in communications systems |
CN102075171B (zh) * | 2010-12-22 | 2012-05-09 | 复旦大学 | 一种校正采样时钟偏差的mos自举开关电路 |
US20120269305A1 (en) | 2011-04-21 | 2012-10-25 | Stmicroelectronics (Canada) Inc. | Bang-bang offset cancellation (autozero) |
-
2013
- 2013-08-29 US US14/013,283 patent/US8923463B1/en active Active
-
2014
- 2014-04-09 JP JP2016538909A patent/JP6216888B2/ja active Active
- 2014-04-09 KR KR1020167008199A patent/KR102163388B1/ko active IP Right Grant
- 2014-04-09 CN CN201480047940.4A patent/CN105493434B/zh active Active
- 2014-04-09 EP EP14725850.3A patent/EP3039810B1/en active Active
- 2014-04-09 WO PCT/US2014/033529 patent/WO2015030878A1/en active Application Filing
Non-Patent Citations (1)
Title |
---|
None * |
Also Published As
Publication number | Publication date |
---|---|
KR102163388B1 (ko) | 2020-10-08 |
US8923463B1 (en) | 2014-12-30 |
EP3039810A1 (en) | 2016-07-06 |
JP2016529840A (ja) | 2016-09-23 |
WO2015030878A1 (en) | 2015-03-05 |
CN105493434B (zh) | 2018-01-30 |
KR20160048185A (ko) | 2016-05-03 |
JP6216888B2 (ja) | 2017-10-18 |
CN105493434A (zh) | 2016-04-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3039810B1 (en) | Offset calibration and adaptive channel data sample positioning | |
US8917803B1 (en) | Circuits and methods for characterizing a receiver of a communication signal | |
KR102377473B1 (ko) | 버스트 모드를 위한 고속 로킹 cdr | |
Sonntag et al. | A digital clock and data recovery architecture for multi-gigabit/s binary links | |
US8995514B1 (en) | Methods of and circuits for analyzing a phase of a clock signal for receiving data | |
TWI538405B (zh) | 晶載內連線的時序校正 | |
US8934594B1 (en) | Sampling position tuning | |
US9378174B2 (en) | SERDES receiver oversampling rate | |
US9711189B1 (en) | On-die input reference voltage with self-calibrating duty cycle correction | |
US7869544B2 (en) | System for measuring an eyewidth of a data signal in an asynchronous system | |
US11356304B1 (en) | Quarter-rate data sampling with loop-unrolled decision feedback equalization | |
US9553600B1 (en) | Skew detection and correction in time-interleaved analog-to-digital converters | |
US10659215B1 (en) | Training and tracking of DDR memory interface strobe timing | |
US8415996B1 (en) | Clock phase corrector | |
US8184757B2 (en) | Pattern agnostic on-die scope | |
US10419203B1 (en) | Self-measurement of phase interpolator non-linearity in a transceiver | |
US10491367B2 (en) | Clock and data recovery (CDR) circuit | |
US10680792B1 (en) | Systems and methods for timing a signal | |
Kubíček et al. | Blind oversampling data recovery with low hardware complexity | |
KR102035112B1 (ko) | 반도체 장치 | |
Wang et al. | Fast control latency uncertainty elimination for the BESIII ETOF upgrade | |
US9882707B1 (en) | System and method for characterizing a receiver of a communication signal | |
KR102683781B1 (ko) | 아이 오프닝 모니터의 킥백 노이즈 저감이 가능한 통신회로 | |
Angeli et al. | Fast Digital Clock Calibration of a Differential 6.4 Gb/s/pin Bidirectional Asymmetric Memory Interface | |
Liu et al. | High-speed, fixed-latency serial links with Xilinx FPGAs |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PUAI | Public reference made under article 153(3) epc to a published international application that has entered the european phase |
Free format text: ORIGINAL CODE: 0009012 |
|
17P | Request for examination filed |
Effective date: 20160323 |
|
AK | Designated contracting states |
Kind code of ref document: A1 Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR |
|
AX | Request for extension of the european patent |
Extension state: BA ME |
|
DAX | Request for extension of the european patent (deleted) | ||
GRAP | Despatch of communication of intention to grant a patent |
Free format text: ORIGINAL CODE: EPIDOSNIGR1 |
|
INTG | Intention to grant announced |
Effective date: 20161221 |
|
GRAJ | Information related to disapproval of communication of intention to grant by the applicant or resumption of examination proceedings by the epo deleted |
Free format text: ORIGINAL CODE: EPIDOSDIGR1 |
|
GRAP | Despatch of communication of intention to grant a patent |
Free format text: ORIGINAL CODE: EPIDOSNIGR1 |
|
INTC | Intention to grant announced (deleted) | ||
INTG | Intention to grant announced |
Effective date: 20170607 |
|
GRAS | Grant fee paid |
Free format text: ORIGINAL CODE: EPIDOSNIGR3 |
|
GRAA | (expected) grant |
Free format text: ORIGINAL CODE: 0009210 |
|
AK | Designated contracting states |
Kind code of ref document: B1 Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR |
|
REG | Reference to a national code |
Ref country code: CH Ref legal event code: EP Ref country code: GB Ref legal event code: FG4D Ref country code: AT Ref legal event code: REF Ref document number: 947258 Country of ref document: AT Kind code of ref document: T Effective date: 20171115 |
|
REG | Reference to a national code |
Ref country code: IE Ref legal event code: FG4D |
|
REG | Reference to a national code |
Ref country code: DE Ref legal event code: R096 Ref document number: 602014017226 Country of ref document: DE |
|
REG | Reference to a national code |
Ref country code: NL Ref legal event code: MP Effective date: 20171115 |
|
REG | Reference to a national code |
Ref country code: LT Ref legal event code: MG4D |
|
REG | Reference to a national code |
Ref country code: AT Ref legal event code: MK05 Ref document number: 947258 Country of ref document: AT Kind code of ref document: T Effective date: 20171115 |
|
REG | Reference to a national code |
Ref country code: FR Ref legal event code: PLFP Year of fee payment: 5 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: FI Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20171115 Ref country code: NL Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20171115 Ref country code: SE Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20171115 Ref country code: NO Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20180215 Ref country code: LT Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20171115 Ref country code: ES Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20171115 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: BG Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20180215 Ref country code: GR Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20180216 Ref country code: AT Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20171115 Ref country code: LV Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20171115 Ref country code: RS Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20171115 Ref country code: HR Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20171115 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: DK Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20171115 Ref country code: CY Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20171115 Ref country code: EE Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20171115 Ref country code: SK Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20171115 Ref country code: CZ Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20171115 |
|
REG | Reference to a national code |
Ref country code: DE Ref legal event code: R097 Ref document number: 602014017226 Country of ref document: DE |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: SM Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20171115 Ref country code: IT Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20171115 Ref country code: RO Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20171115 Ref country code: PL Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20171115 |
|
PLBE | No opposition filed within time limit |
Free format text: ORIGINAL CODE: 0009261 |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: NO OPPOSITION FILED WITHIN TIME LIMIT |
|
26N | No opposition filed |
Effective date: 20180817 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: MC Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20171115 Ref country code: SI Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20171115 |
|
REG | Reference to a national code |
Ref country code: CH Ref legal event code: PL |
|
REG | Reference to a national code |
Ref country code: BE Ref legal event code: MM Effective date: 20180430 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: LU Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20180409 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: BE Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20180430 Ref country code: LI Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20180430 Ref country code: CH Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20180430 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: MT Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20180409 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: TR Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20171115 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: PT Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20171115 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: MK Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20171115 Ref country code: HU Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT; INVALID AB INITIO Effective date: 20140409 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: AL Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20171115 Ref country code: IS Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20180315 |
|
P01 | Opt-out of the competence of the unified patent court (upc) registered |
Effective date: 20230530 |
|
PGFP | Annual fee paid to national office [announced via postgrant information from national office to epo] |
Ref country code: IE Payment date: 20240411 Year of fee payment: 11 |
|
PGFP | Annual fee paid to national office [announced via postgrant information from national office to epo] |
Ref country code: GB Payment date: 20240430 Year of fee payment: 11 |
|
PGFP | Annual fee paid to national office [announced via postgrant information from national office to epo] |
Ref country code: DE Payment date: 20240416 Year of fee payment: 11 |
|
PGFP | Annual fee paid to national office [announced via postgrant information from national office to epo] |
Ref country code: FR Payment date: 20240427 Year of fee payment: 11 |