US20170180226A1 - Memory array to generate a data eye diagram - Google Patents
Memory array to generate a data eye diagram Download PDFInfo
- Publication number
- US20170180226A1 US20170180226A1 US14/973,269 US201514973269A US2017180226A1 US 20170180226 A1 US20170180226 A1 US 20170180226A1 US 201514973269 A US201514973269 A US 201514973269A US 2017180226 A1 US2017180226 A1 US 2017180226A1
- Authority
- US
- United States
- Prior art keywords
- memory array
- sampling
- sampling circuit
- data eye
- eye diagram
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0852—Delays
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/36—Data generation devices, e.g. data inverters
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/50—Marginal testing, e.g. race, voltage or current testing
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C2029/4402—Internal storage of test result, quality data, chip identification, repair information
Definitions
- the present disclosure relates generally to a memory array to generate a data eye diagram.
- High speed serial links i.e., HSSLs or high speed serial interconnects
- HSSLs or high speed serial interconnects are utilized in many embedded system designs, ranging from consumer and mobile devices to routers and switches that power the wired Internet backbone.
- the range of designs for which a developer may desire reliable and high quality signal integrity over interconnections range, for example, from various automobile rear-view camera systems, where the data rate may be less than 1 Gb/sec (gigabit(s) per second), to high-bandwidth Internet optical routers, where data rates may be 10 Gb/sec or greater.
- a data eye (or data eye diagram) may be generated.
- the data eye enables key parameters of the electrical quality of the signal to be quickly visualized and determined.
- the data eye may be constructed from a digital waveform by “folding” the parts of a voltage signal waveform corresponding to each individual bit into a single graph with signal amplitude on one axis and time on another axis. By repeating this construction over many samples (e.g., clock cycles) of the waveform, the resultant graph or diagram represents the average statistics of the signal and resembles an eye.
- system performance may be derived by analyzing the data eye corresponding to the received data eye.
- An “open” data eye may correspond to minimal signal distortion, while a “closed” data eye may imply distortion.
- Voltage signals measured external to an electrical package may appear to have a closed eye and may undergo post-processing to determine the voltage signal that a receiver circuit may actually be obtaining.
- a voltage signal may externally appear of satisfactory quality, but may be deficient when received, for example because of the additional loss of the electrical package and the effects of the oscilloscope probing the voltage signal.
- oscilloscopes may provide a segment of the voltage signal, rather than the complete voltage signal.
- some HSSLs may have interfaces with a large number of connector lanes, it may be an arduous task to utilize an oscilloscope to determine a data eye.
- an apparatus includes a memory array to generate a data eye diagram.
- the memory array includes a plurality of rows of memory cells.
- the memory cells include a first row corresponding to a first sampling circuit of a first plurality of sampling circuits.
- the first sampling circuit is configured to compare an input voltage signal to a first reference voltage.
- the memory cells also include a second row corresponding to a second sampling circuit of the first plurality of sampling circuits.
- the second sampling circuit is configured to compare the input voltage signal to a second reference voltage.
- Each memory cell of the memory array is an incremental multi-bit counter.
- a data eye diagram diagnostic circuit includes a first sampling circuit of a first plurality of sampling circuits configured to generate a first output value at a first memory cell of a memory array. The first output value is based on a comparison of a first reference voltage to an input voltage signal.
- the data eye diagram diagnostic circuit further includes a second sampling circuit of the first plurality of sampling circuits configured to generate a second output value at a second memory cell of the memory array. The second output value is based on a comparison of a second reference voltage to the input voltage signal.
- the memory array further generates a data eye diagram.
- a method to generate a data eye diagram of a voltage waveform includes applying an input voltage signal to a first sampling circuit and second sampling circuit of a first plurality of sampling circuits. The method also includes applying a clock signal to the first sampling circuit and the second sampling circuit of the first plurality of sampling circuits. The method includes generating, by the first sampling circuit, a first output value at a first memory cell of a memory array, the first output value based on a comparison of a first reference voltage to the input voltage signal. The method also includes generating, by the second sampling circuit, a second output value at a second memory cell of the memory array, the second output value based on a comparison of a second reference voltage to the input voltage signal. The memory array corresponds to the data eye diagram.
- One advantage of the present disclosure is improved efficiency and accuracy in generating and storing an on-chip data eye diagram in real-time.
- the systems and methods of the present disclosure may enable generation of a data eye diagram using a memory array rather than an external device, such as an oscilloscope.
- FIG. 1 is a block diagram illustrating a system that may be used to generate a data eye diagram, according to one embodiment
- FIG. 2 is a particular illustrative diagram of an example voltage waveform according to an embodiment
- FIG. 3 is a block diagram illustrating a portion of a system that may be used to generate a data eye diagram, according to one embodiment
- FIG. 4 is a block diagram illustrating a system that may be used to generate a data eye diagram, according to one embodiment
- FIG. 5 is an graphical representation of example data eye diagram, according to one embodiment
- FIG. 6 is a representation of an example normalization procedure, according to one embodiment.
- FIG. 7 is a flowchart of a method of generating a data eye diagram, according one embodiment.
- Example embodiments may include a memory array and sampling circuitry to store and record a received data eye diagram on an integrated circuit (i.e., chip) over a time clock period (e.g., one or more clock cycles) without using a large amount of chip area for memory or analog circuitry. Accordingly, high speed interface design and testing, such as those used in, for example, data centers running cloud applications or the processing of mobile or social data, may be performed with greater accuracy and efficiency.
- the memory array and the sampling circuitry may dynamically measure a received waveform in real-time.
- the memory array and sampling the circuitry may easily and efficiently “collect” a data eye diagram and “see” all bits passing through the circuitry once turned “on,” and not just an occasional (or segment of a) voltage waveform.
- the example embodiments may be “continuously looking” at the voltage waveform, providing a more complete data eye diagram.
- exemplary embodiments include a plurality of sampling circuits to record and store a received data eye diagram in a one time-step interval (e.g., one time interval).
- a further advantage of the example embodiments includes the capacity of the data eye generation circuitry to be disabled on an integrated circuit chip without impacting the functionality of the other parts of the integrated circuit chip.
- FIG. 1 is a block diagram illustrating a system that may be used to generate a data eye diagram, according to one embodiment.
- FIG. 1 illustrates simplified components of a sub-circuit that may be used in an integrated circuit area efficient design system 100 (i.e., ICAED 100 ).
- the ICAED 100 may include data eye diagram circuitry 110 and a memory array 140 , and may be positioned on a voltage path downstream from a de-emphasis (e.g., equalizer or conditioning) sub-circuit 102 .
- the data eye diagram circuitry 110 may include a plurality of sampling circuits 120 (denoted in FIG. 1 as sampling circuit 1 , sampling circuit 2 . . . sampling circuit N ⁇ 1, and sampling circuit N).
- N may any integer greater than or equal to 2 and may be chosen based on design constraints, available chip area, etc.
- the sampling circuits 120 may be capture latches, each having a reference voltage input V and an output Q value corresponding to a logical “1” or “0” when the particular capture latch is sampled (e.g., strobed).
- each of the outputs Q 118 of the plurality of sampling circuits 120 may be provided to a respective inverter 130 before being stored and recorded in a memory array 140 .
- the memory array 140 may include a plurality of memory cells, where each memory cell may be an incremental multi-bit counter (i.e., an x-bit counter, where x is an integer greater than one).
- the memory array 140 may include a plurality of rows, where each row corresponds to a particular sampling circuit and an associated reference voltage (denoted in FIG. 1 as V 1 , V 2 , . . . V N-1 , V N ) received by the particular sampling circuit.
- a row 148 is shown as a representative row of memory array 140 .
- the memory array 140 may also include a plurality of columns, where each column corresponds to an interval of a clock cycle, as further described herein.
- a voltage signal 112 (i.e., an input voltage waveform), which may be a filtered digital output from the de-emphasis sub-circuit 102 , may be provided to a first sampling circuit (e.g., sampling circuit 1 ) of the plurality of sampling circuits 120 . Further, a clock signal 114 may also be provided to the first sampling circuit (e.g., sampling circuit 1 ).
- the clock signal 114 may be a second clock signal that is generated by multiplying a first clock signal by N (e.g., via an illustrative multiplier 103 ), and voltage signal 112 may be sampled at N multiplied by the rate of the first clock signal (i.e., N ⁇ CLK).
- the rate of the first clock signal may be 1 Gb/sec and N ⁇ CLK may be at least 2 Gb/sec.
- each of the N sampling circuits 120 may sample the voltage signal 112 at different reference voltages (i.e., threshold voltage levels) of a plurality of reference voltages 116 (denoted in FIG. 1 as reference voltage V 1 , reference voltage V 2 . . . reference voltage VN ⁇ 1, reference voltage VN).
- reference voltages i.e., threshold voltage levels
- the N sampling circuits 120 may incorporate features of both a flip-flop and a comparator.
- the voltage signal 112 may be compared to reference voltage V 1 .
- V volts
- V 1 may be set at 1V.
- the sampling circuit 1 may output a logical “0” value for a first time interval of the clock cycle (e.g., at a time T/N).
- the example output 118 may be sent to a respective inverter 130 , and the output of the inverter 130 may be stored in the corresponding cell of the memory array 140 .
- the appropriate memory cell of the memory array 140 in response to the output of the inverter 130 , the appropriate memory cell of the memory array 140 would increment by one count value (e.g., one integer).
- the appropriate memory cell of the memory array 140 would increment by one count value.
- the voltage signal 112 is 0.5V and the reference voltage V 1 is set at 1V.
- the output of the inverter 130 for the first sampling circuit would be a logical “1” because the input voltage signal 112 is less than the reference voltage V 1 .
- the upper left most corner memory cell of the memory array would not be incremented.
- the output 118 may be directly provided to the memory array 140 . In such instances, the inverters 130 would not be utilized.
- the time intervals (e.g., T/N to T) may be of equivalent length and the reference voltages (e.g., V 1 to VN) may be of equivalent voltage levels.
- the reference voltages e.g., V 1 to VN
- one or both of the time intervals or the reference voltages may vary.
- the data eye diagram circuitry 110 may generate output values for each of the plurality of sampling circuits 120 to populate and increment cells of the memory array 140 .
- each memory cell in the first column (e.g., column 142 ) of the memory array 140 may be incremented or remain at a (initial) zero value, based on the generated output values received from the inverters 130 .
- each memory cell in the second column of the memory array 140 may be incremented or remain at a zero value based on the generated output values.
- each memory cell of the memory array 140 may either store a “0” or a “1” value.
- the process may be repeated such that the data eye diagram circuitry 110 may again generate output values for each of the plurality of sampling circuits 120 .
- each memory cell of the memory array 140 may store a “0”, “1”, or “2” value. This procedure may continue for a particular number of cycles or until a particular event occurs (e.g., until a counter corresponding to one or more of the cells of the memory array 140 reaches a particular value, such as a maximum counter value).
- N sampling circuits 120 may be clocked at N times a clock rate to populate the memory array 140 .
- the number of times an input voltage waveform is above or below particular reference voltage over a particular time duration (of one or more clock cycles) may be collected (i.e., stored) and measured.
- the counter values stored in each memory cell of the memory array 140 may be correspond to a constructed data eye diagram for the input voltage signal 112 .
- FIG. 2 depicts how an example voltage waveform, such as the input voltage signal 112 , may be sampled.
- the vertical (Y)-axis may represent the reference voltages (e.g., V 1 to VN) and the horizontal (X)-axis may represent the time intervals of an example clock cycle (e.g., 0 to T) as the parameters for each clock cycle of the waveform (i.e., a clock time period).
- the rising edge and falling edge of the clock cycle may correspond to time “0” and time “T”.
- FIGS. 1-2 thus illustrate the sampling of a voltage signal according to integrated chip area efficient design, in which an input clock signal can be multiplied (e.g., by the multiplier 103 ) based on a desired sampling granularity (e.g., the value of N in FIG. 1 ).
- a multiplied clock e.g., N ⁇ CLK
- utilizing multiple capture latch chains in parallel i.e., a plurality of sampling circuits
- each of the capture latch chains may be delayed by a different amount to attain a desired time granularity, may provide a solution that is easier to implement in systems with high clock speeds.
- FIG. 3-4 are diagrams illustrating a system that may be used to generate a data eye diagram in such as a high clock speed system, according to one embodiment.
- FIG. 3 illustrates simplified components of a sub-circuit that may be used in an example building block ( 300 ) of a high speed design system (i.e., a HSD 400 as described with reference to FIG. 4 ).
- the example building block 300 may include a clock delay block (i.e., nT/N delay) 304 and data eye diagram circuitry 310 corresponding to one time interval (e.g., T/N) one column 342 of a memory array.
- the example building block 300 may also include additional components operating as described with reference to corresponding components of FIG. 1 , such as sampling circuits, inverters, and a de-emphasis sub-circuit.
- each column of memory cells may be linked to its own set of capture latches (e.g., its own plurality of sampling circuits).
- the HSD 400 may utilize the same clock (or in some instances, a slower clock signal) delayed by a fractional amount (n) of the clock.
- the clock may be replicated in parallel for each of the building blocks.
- the HSD 400 may include a plurality of data eye diagram circuitries (e.g., 310 , 410 , 510 ), where each data eye diagram circuitry may include a respective plurality of sampling circuits (e.g., 320 , 420 , 520 ) and correspond to particular time interval of a clock cycle.
- each of the plurality of sampling circuits may be coupled to a respective clock delay block 304 , 404 , 504 , where each of the clock delay blocks delays an input clock signal by a different amount. As shown in FIG.
- each of the data eye diagram circuitries may be to configured to output values to be stored in and increment a particular column of memory cells (e.g., columns corresponding to T/N, 2T/N, . . . T). By combining the columns of memory cells, a memory array corresponding to the received data eye diagram may be generated.
- each of the plurality of data eye diagram circuitries may generate output values for each respective plurality of sampling circuits (e.g., 320 , 420 , 520 ) to populate corresponding columns of memory cells (e.g., 342 , 344 , and 346 ) of a memory array.
- the data eye diagram circuitries may sequentially increment the columns of the memory array associated with different time intervals (e.g., T/N, 2 T/N, . . . T) based on their respective clock delay blocks (e.g., nT/N delay).
- each of the clock delay blocks delay the clock signal at a different amount.
- the columns of the memory array may be incremented or remain at an (initial) zero value based on the generated output values received from the inverters (e.g., 330 , 430 , 530 ). Accordingly, at the end of the first clock cycle (at time T) each memory cell of the columns of the memory array may either store a “0” or a “1” value.
- each of the data eye diagram circuitries 310 , 410 , 510 may again generate output values for each of the plurality of sampling circuits 320 , 420 , 520 .
- each memory cell of the columns of the memory array may store a “0”, “1”, or “2” value.
- This procedure may continue for a particular number of cycles or until a particular event occurs (e.g., until a counter corresponding to one or more of the cells of the memory array 140 reaches a particular value, such as a maximum counter value).
- the received data eye diagram may be generated.
- the columns of the memory array may be incremented or remain at an (initial) zero value based on the generated output values received from each of the plurality of sampling circuits.
- the time intervals (e.g., T/N to T) of each of the plurality of data eye diagram circuitries (e.g., 310 , 410 , 510 ) may be of equivalent length and the reference voltages (e.g., V 1 to VN) may be of equivalent voltage levels. In an alternative example, one or both of the time intervals or the reference voltages may vary.
- FIG. 5 is a graphical representation of example data eye diagram, according to one embodiment.
- a memory array 500 as populated by either the ICAED 100 (as shown in FIG. 1 ) or the HSD 400 (as shown in FIG. 4 ) is shown.
- the resultant values stored in the memory array 500 may be the same.
- the memory array 500 may keep track of “hits” to determine the data eye diagram.
- the eye height and width may be determined by looking at the number of “non-hit” cells in the memory array, where a “non-hit” cell is a cell that includes minimal or no data values.
- the eye height may be equal to 2 ⁇ V/N and the eye width may be equal to 2 ⁇ T/N.
- the center “non-hit” memory cells result in an “open” data eye diagram.
- a closed data eye diagram would be represented.
- An open data eye diagram may correspond to minimal signal distortion, while a closed data eye may imply distortion.
- FIG. 6 is a representation of an example normalization procedure that may be implemented by both the ICAED 100 and the HSD 400 , according to one embodiment.
- a normalization algorithm i.e., a normalization procedure
- Such normalization may be performed during operation of the ICAED 100 and HSD 400 . For instance, as shown in FIG. 6 at 600 , if an example memory cell is an 8-bit counter, once the particular memory cell reaches 255 , instead of overflowing, a logic circuit may halve the counter amounts in each cell of the memory array.
- example memory cells may be 8-bit or 16-bit counter.
- the normalization procedure may include dividing the value stored in every memory cell by 2. This procedure may be performed on the memory array by a bit shift by one operation. A memory cells that stores a 1 value may continue to store the 1 value in order to record the single hit by the waveform.
- the memory array may simply stop recording hits in array elements once the counter threshold 2 x ⁇ 1 is reached. It should be noted that in alternative embodiments, a mathematical operation other than dividing by two may be used. Performing normalization as shown in FIG. 6 may provide an extension of time so that a data eye diagram can be generated by collecting data for a larger time period.
- FIG. 7 is a flowchart of a method of generating a data eye diagram, according one embodiment.
- the method 700 is performed by the ICAED 100 of FIG. 1 and HSD of FIG. 4 .
- the method 700 includes applying an input voltage signal to a first sampling circuit and second sampling circuit of a first plurality of sampling circuits, at 702 .
- the data eye diagram circuitry e.g., 110 , 310 , 410 , 510
- may apply an input voltage signal e.g., 112 , 312 , 412 , 512
- a first sampling circuit and second sampling circuit of a first plurality of sampling circuits e.g., 120 , 320 , 420 , 520 .
- the method 700 includes applying a clock signal to the first sampling circuit and the second sampling circuit of the first plurality of sampling circuits, at 704 .
- the data eye diagram circuitry e.g., 110 , 310 , 410 , 510
- may apply a clock signal e.g., 114 , 314 , 414 , 514
- the first sampling circuit and the second sampling circuit of the first plurality of sampling circuits e.g., 120 , 320 , 420 , 520 .
- the method 700 includes generating, by the first sampling circuit, a first output value at a first memory cell of a memory array, the first output value based on a comparison of a first reference voltage to the input voltage signal, at 706 .
- the first sampling circuit may generate a first output value at a first memory cell of a memory array (e.g., 140 , 500 ), the first output value based on comparison of a first reference voltage (e.g., 116 , 316 , 416 , 516 ) to the input voltage signal (e.g., 112 , 312 , 412 , 512 ).
- the method includes generating, by the second sampling circuit, a second output value at a first memory cell of a memory array, the second output value based on a comparison of a second reference voltage to the input voltage signal, where the memory array corresponds to the data eye diagram, at 708 .
- the second sampling circuit may generate a second output value at a second memory cell of a memory array (e.g., 140 , 500 ), the second output value based on comparison of a second reference voltage (e.g., 116 , 316 , 416 , 516 ) to the input voltage signal (e.g., 112 , 312 , 412 , 512 ).
- the computer program product may include a computer-readable storage medium (or media) having computer-readable program instructions thereon for causing a processor to carry out aspects of the present disclosure.
- the computer-readable storage medium can be a tangible device that can retain and store instructions for use by an instruction execution device.
- the computer-readable storage medium may be, for example, but is not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing.
- a non-exhaustive list of more specific examples of the computer-readable storage medium includes the following: 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), a static random access memory (SRAM), a portable compact disc read-only memory (CD-ROM), a digital versatile disk (DVD), a memory stick, a floppy disk, a mechanically encoded device such as punch-cards or raised structures in a groove having instructions recorded thereon, and any suitable combination of the foregoing.
- RAM random access memory
- ROM read-only memory
- EPROM or Flash memory erasable programmable read-only memory
- SRAM static random access memory
- CD-ROM compact disc read-only memory
- DVD digital versatile disk
- memory stick a floppy disk
- a mechanically encoded device such as punch-cards or raised structures in a groove having instructions recorded thereon
- a computer-readable storage medium is not to be construed as being transitory signals per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide or other transmission media (e.g., light pulses passing through a fiber-optic cable), or electrical signals transmitted through a wire.
- Computer-readable program instructions described herein can be downloaded to respective computing/processing devices from a computer-readable storage medium or to an external computer or external storage device via a network, for example, the Internet, a local area network, a wide area network and/or a wireless network.
- the network may comprise copper transmission cables, optical transmission fibers, wireless transmission, routers, firewalls, switches, gateway computers and/or edge servers.
- a network adapter card or network interface in each computing/processing device receives computer-readable program instructions from the network and forwards the computer-readable program instructions for storage in a computer-readable storage medium within the respective computing/processing device.
- Computer-readable program instructions for carrying out operations of the present disclosure may be assembler instructions, instruction-set-architecture (ISA) instructions, machine instructions, machine dependent instructions, microcode, firmware instructions, state-setting data, or either source code or object code written in any combination of one or more programming languages, including an object oriented programming language such as Smalltalk, C++ or the like, and procedural programming languages, such as the “C” programming language or similar programming languages.
- the computer-readable program instructions 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 any type of network, including 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).
- electronic circuitry including, for example, programmable logic circuitry, field-programmable gate arrays (FPGA), or programmable logic arrays (PLA) may execute the computer-readable program instructions by utilizing state information of the computer-readable program instructions to personalize the electronic circuitry, in order to perform aspects of the present disclosure.
- These computer-readable program instructions may be provided to a processor of a general purpose computer, a special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus.
- the machine is an example of means for implementing the functions/acts specified in the flowchart and/or block diagrams.
- the computer-readable program instructions may also be stored in a computer-readable storage medium that can direct a computer, a programmable data processing apparatus, and/or other devices to function in a particular manner, such that the computer-readable storage medium having instructions stored therein comprises an article of manufacture including instructions which implement aspects of the functions/acts specified in the flowchart and/or block diagrams.
- the computer-readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device to cause a series of operational steps to be performed on the computer, other programmable apparatus or other device to perform a computer implemented process, such that the instructions which execute on the computer, other programmable apparatus, or other device implement the functions/acts specified in the flowchart and/or block diagrams.
- each block in the flowchart or block diagrams may represent a module, segment, or portion of instructions, which comprises one or more executable instructions for implementing the specified logical function(s).
- the functions noted in a block in a diagram may occur out of the order noted in the figures. For example, two blocks shown in succession may be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved.
- Integrated circuits or chips that may be designed and/or fabricated in accordance with the described techniques can be distributed by a fabricator in raw wafer form (that is, as a single wafer that has multiple unpackaged chips), as a bare die, or in a packaged form.
- the chip is mounted in a single chip package (such as a plastic carrier, with leads that are affixed to a motherboard or other higher level carrier) or in a multichip package (such as a ceramic carrier that has either or both surface interconnections or buried interconnections).
- the chip is then integrated with other chips, discrete circuit elements, and/or other signal processing devices as part of either (a) an intermediate product, such as a motherboard, or (b) an end product.
- the end product can be any product that includes integrated circuit chips, ranging from low-end applications to advanced computer products having a display, a keyboard or other input device, and a central processor.
Landscapes
- Engineering & Computer Science (AREA)
- Environmental & Geological Engineering (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Dc Digital Transmission (AREA)
Abstract
Description
- The present disclosure relates generally to a memory array to generate a data eye diagram.
- High speed serial links (i.e., HSSLs or high speed serial interconnects) are utilized in many embedded system designs, ranging from consumer and mobile devices to routers and switches that power the wired Internet backbone. The range of designs for which a developer may desire reliable and high quality signal integrity over interconnections range, for example, from various automobile rear-view camera systems, where the data rate may be less than 1 Gb/sec (gigabit(s) per second), to high-bandwidth Internet optical routers, where data rates may be 10 Gb/sec or greater.
- As HSSLs approach higher speeds (e.g., 12 Gb/sec (SAS (Serial Attached SCSI (Small Computer System Interface) 4)) and 16 Gb/sec (PCI-E (Peripheral Component Interconnect Express) 4.0)), measuring signal quality has become increasingly difficult. With more sophisticated methods of equalization and emphasis, an increasing amount of signal loss may now be compensated for and an error free channel may be maintained. While these methods may lead to higher data rates using existing printed circuit board manufacturing technologies, externally measuring signal quality (e.g., with the aid of an oscilloscope) has specifically become more difficult.
- To analyze and represent signal quality a high speed digital signal, a data eye (or data eye diagram) may be generated. The data eye enables key parameters of the electrical quality of the signal to be quickly visualized and determined. The data eye may be constructed from a digital waveform by “folding” the parts of a voltage signal waveform corresponding to each individual bit into a single graph with signal amplitude on one axis and time on another axis. By repeating this construction over many samples (e.g., clock cycles) of the waveform, the resultant graph or diagram represents the average statistics of the signal and resembles an eye. Because a received waveform may be degraded during transmission due to inter-symbol interference, jitter, crosstalk, noise and the like, system performance may be derived by analyzing the data eye corresponding to the received data eye. An “open” data eye may correspond to minimal signal distortion, while a “closed” data eye may imply distortion.
- Voltage signals measured external to an electrical package may appear to have a closed eye and may undergo post-processing to determine the voltage signal that a receiver circuit may actually be obtaining. With post-processing in an oscilloscope, a voltage signal may externally appear of satisfactory quality, but may be deficient when received, for example because of the additional loss of the electrical package and the effects of the oscilloscope probing the voltage signal. Further, oscilloscopes may provide a segment of the voltage signal, rather than the complete voltage signal. Moreover, because some HSSLs may have interfaces with a large number of connector lanes, it may be an arduous task to utilize an oscilloscope to determine a data eye.
- According to a particular embodiment, an apparatus includes a memory array to generate a data eye diagram. The memory array includes a plurality of rows of memory cells. The memory cells include a first row corresponding to a first sampling circuit of a first plurality of sampling circuits. The first sampling circuit is configured to compare an input voltage signal to a first reference voltage. The memory cells also include a second row corresponding to a second sampling circuit of the first plurality of sampling circuits. The second sampling circuit is configured to compare the input voltage signal to a second reference voltage. Each memory cell of the memory array is an incremental multi-bit counter.
- According to another embodiment, a data eye diagram diagnostic circuit includes a first sampling circuit of a first plurality of sampling circuits configured to generate a first output value at a first memory cell of a memory array. The first output value is based on a comparison of a first reference voltage to an input voltage signal. The data eye diagram diagnostic circuit further includes a second sampling circuit of the first plurality of sampling circuits configured to generate a second output value at a second memory cell of the memory array. The second output value is based on a comparison of a second reference voltage to the input voltage signal. The memory array further generates a data eye diagram.
- According to another embodiment, a method to generate a data eye diagram of a voltage waveform includes applying an input voltage signal to a first sampling circuit and second sampling circuit of a first plurality of sampling circuits. The method also includes applying a clock signal to the first sampling circuit and the second sampling circuit of the first plurality of sampling circuits. The method includes generating, by the first sampling circuit, a first output value at a first memory cell of a memory array, the first output value based on a comparison of a first reference voltage to the input voltage signal. The method also includes generating, by the second sampling circuit, a second output value at a second memory cell of the memory array, the second output value based on a comparison of a second reference voltage to the input voltage signal. The memory array corresponds to the data eye diagram.
- One advantage of the present disclosure is improved efficiency and accuracy in generating and storing an on-chip data eye diagram in real-time. For example, the systems and methods of the present disclosure may enable generation of a data eye diagram using a memory array rather than an external device, such as an oscilloscope. Features and other benefits that characterize embodiments are set forth in the claims annexed hereto and forming a further part hereof. However, for a better understanding of the embodiments, and of the advantages and objectives attained through their use, reference should be made to the Drawings and to the accompanying descriptive matter.
-
FIG. 1 is a block diagram illustrating a system that may be used to generate a data eye diagram, according to one embodiment; -
FIG. 2 is a particular illustrative diagram of an example voltage waveform according to an embodiment; -
FIG. 3 is a block diagram illustrating a portion of a system that may be used to generate a data eye diagram, according to one embodiment; -
FIG. 4 is a block diagram illustrating a system that may be used to generate a data eye diagram, according to one embodiment; -
FIG. 5 is an graphical representation of example data eye diagram, according to one embodiment; -
FIG. 6 is a representation of an example normalization procedure, according to one embodiment; and -
FIG. 7 is a flowchart of a method of generating a data eye diagram, according one embodiment. - Example embodiments may include a memory array and sampling circuitry to store and record a received data eye diagram on an integrated circuit (i.e., chip) over a time clock period (e.g., one or more clock cycles) without using a large amount of chip area for memory or analog circuitry. Accordingly, high speed interface design and testing, such as those used in, for example, data centers running cloud applications or the processing of mobile or social data, may be performed with greater accuracy and efficiency.
- Located after a de-emphasis (e.g., equalizer or conditioning) sub-circuit, the memory array and the sampling circuitry may dynamically measure a received waveform in real-time. The memory array and sampling the circuitry may easily and efficiently “collect” a data eye diagram and “see” all bits passing through the circuitry once turned “on,” and not just an occasional (or segment of a) voltage waveform. Thus, the example embodiments may be “continuously looking” at the voltage waveform, providing a more complete data eye diagram. Further, exemplary embodiments include a plurality of sampling circuits to record and store a received data eye diagram in a one time-step interval (e.g., one time interval). Moreover, depending on developer requirements, a particular granularity (i.e., a level of detail) may be chosen to improve a measured eye resolution and the chip area consumed. A further advantage of the example embodiments includes the capacity of the data eye generation circuitry to be disabled on an integrated circuit chip without impacting the functionality of the other parts of the integrated circuit chip.
-
FIG. 1 is a block diagram illustrating a system that may be used to generate a data eye diagram, according to one embodiment.FIG. 1 illustrates simplified components of a sub-circuit that may be used in an integrated circuit area efficient design system 100 (i.e., ICAED 100). The ICAED 100 may include dataeye diagram circuitry 110 and amemory array 140, and may be positioned on a voltage path downstream from a de-emphasis (e.g., equalizer or conditioning)sub-circuit 102. The dataeye diagram circuitry 110 may include a plurality of sampling circuits 120 (denoted inFIG. 1 assampling circuit 1,sampling circuit 2 . . . sampling circuit N−1, and sampling circuit N). N may any integer greater than or equal to 2 and may be chosen based on design constraints, available chip area, etc. - In embodiments, the
sampling circuits 120 may be capture latches, each having a reference voltage input V and an output Q value corresponding to a logical “1” or “0” when the particular capture latch is sampled (e.g., strobed). In a particular embodiment, each of theoutputs Q 118 of the plurality ofsampling circuits 120 may be provided to arespective inverter 130 before being stored and recorded in amemory array 140. Thememory array 140 may include a plurality of memory cells, where each memory cell may be an incremental multi-bit counter (i.e., an x-bit counter, where x is an integer greater than one). Thememory array 140 may include a plurality of rows, where each row corresponds to a particular sampling circuit and an associated reference voltage (denoted inFIG. 1 as V1, V2, . . . VN-1, VN) received by the particular sampling circuit. InFIG. 1 , arow 148 is shown as a representative row ofmemory array 140. Thememory array 140 may also include a plurality of columns, where each column corresponds to an interval of a clock cycle, as further described herein. - In an example operation, a voltage signal 112 (i.e., an input voltage waveform), which may be a filtered digital output from the
de-emphasis sub-circuit 102, may be provided to a first sampling circuit (e.g., sampling circuit 1) of the plurality ofsampling circuits 120. Further, aclock signal 114 may also be provided to the first sampling circuit (e.g., sampling circuit 1). Presuming an N-level of granularity (i.e., an N-level of detail of a measured eye resolution), theclock signal 114 may be a second clock signal that is generated by multiplying a first clock signal by N (e.g., via an illustrative multiplier 103), andvoltage signal 112 may be sampled at N multiplied by the rate of the first clock signal (i.e., N×CLK). In examples, the rate of the first clock signal may be 1 Gb/sec and N×CLK may be at least 2 Gb/sec. In a particular embodiment, each of theN sampling circuits 120 may sample thevoltage signal 112 at different reference voltages (i.e., threshold voltage levels) of a plurality of reference voltages 116 (denoted inFIG. 1 as reference voltage V1, reference voltage V2 . . . reference voltage VN−1, reference voltage VN). - The
N sampling circuits 120 may incorporate features of both a flip-flop and a comparator. As an example, insampling circuit 1 at a first interval of a clock cycle, thevoltage signal 112 may be compared to reference voltage V1. For instance, an example input voltage signal may be 2 volts (V) and the reference voltage V1 may be set at 1V. As theinput voltage signal 112 is greater than the reference voltage V1, thesampling circuit 1 may output a logical “0” value for a first time interval of the clock cycle (e.g., at a time T/N). Theexample output 118 may be sent to arespective inverter 130, and the output of theinverter 130 may be stored in the corresponding cell of thememory array 140. In thememory array 140, in response to the output of theinverter 130, the appropriate memory cell of thememory array 140 would increment by one count value (e.g., one integer). As this particular output of theinverter 130 corresponds to sampling circuit 1 (and reference V1) and the first time interval (T/N) of the clock cycle, the upper left most corner memory cell of thememory array 140 would increment by one count value. - In an alternative example, in
sampling circuit 1, thevoltage signal 112 is 0.5V and the reference voltage V1 is set at 1V. When sampled at a first time interval of the clock cycle (e.g., at a time T/N), the output of theinverter 130 for the first sampling circuit would be a logical “1” because theinput voltage signal 112 is less than the reference voltage V1. In this case, the upper left most corner memory cell of the memory array would not be incremented. In alternative examples, theoutput 118 may be directly provided to thememory array 140. In such instances, theinverters 130 would not be utilized. - In an example, the time intervals (e.g., T/N to T) may be of equivalent length and the reference voltages (e.g., V1 to VN) may be of equivalent voltage levels. In an alternative example, one or both of the time intervals or the reference voltages may vary.
- In this manner, the data
eye diagram circuitry 110 may generate output values for each of the plurality ofsampling circuits 120 to populate and increment cells of thememory array 140. For example, during a first clock cycle (of duration T), at time T/N, each memory cell in the first column (e.g., column 142) of thememory array 140 may be incremented or remain at a (initial) zero value, based on the generated output values received from theinverters 130. Next, attime 2T/N, each memory cell in the second column of thememory array 140 may be incremented or remain at a zero value based on the generated output values. During the first clock cycle, this process may be repeated N times, where each repetition results in selectively incrementing the cells of a different column of the memory array. Accordingly, at the end of the first clock cycle (at time T) each memory cell of thememory array 140 may either store a “0” or a “1” value. During a next (e.g., second) clock cycle, the process may be repeated such that the dataeye diagram circuitry 110 may again generate output values for each of the plurality ofsampling circuits 120. At the end of the second clock cycle, each memory cell of thememory array 140 may store a “0”, “1”, or “2” value. This procedure may continue for a particular number of cycles or until a particular event occurs (e.g., until a counter corresponding to one or more of the cells of thememory array 140 reaches a particular value, such as a maximum counter value). - Accordingly, in the data
eye diagram circuitry 110,N sampling circuits 120 may be clocked at N times a clock rate to populate thememory array 140. By incrementing the memory cells in thememory array 140, the number of times an input voltage waveform is above or below particular reference voltage over a particular time duration (of one or more clock cycles) may be collected (i.e., stored) and measured. As further described herein, the counter values stored in each memory cell of thememory array 140 may be correspond to a constructed data eye diagram for theinput voltage signal 112. - Referring to
FIG. 2 , a particular illustrative diagram of a voltage waveform according to an embodiment is disclosed and generally designated 200.FIG. 2 depicts how an example voltage waveform, such as theinput voltage signal 112, may be sampled. InFIG. 2 , the vertical (Y)-axis may represent the reference voltages (e.g., V1 to VN) and the horizontal (X)-axis may represent the time intervals of an example clock cycle (e.g., 0 to T) as the parameters for each clock cycle of the waveform (i.e., a clock time period). For example, the rising edge and falling edge of the clock cycle may correspond to time “0” and time “T”. -
FIGS. 1-2 thus illustrate the sampling of a voltage signal according to integrated chip area efficient design, in which an input clock signal can be multiplied (e.g., by the multiplier 103) based on a desired sampling granularity (e.g., the value of N inFIG. 1 ). In certain instances, a multiplied clock (e.g., N×CLK) may be difficult to implement due to already high clock speeds. Accordingly, utilizing multiple capture latch chains in parallel (i.e., a plurality of sampling circuits), where each of the capture latch chains may be delayed by a different amount to attain a desired time granularity, may provide a solution that is easier to implement in systems with high clock speeds.FIGS. 3-4 are diagrams illustrating a system that may be used to generate a data eye diagram in such as a high clock speed system, according to one embodiment. In particular,FIG. 3 illustrates simplified components of a sub-circuit that may be used in an example building block (300) of a high speed design system (i.e., aHSD 400 as described with reference toFIG. 4 ). Theexample building block 300 may include a clock delay block (i.e., nT/N delay) 304 and dataeye diagram circuitry 310 corresponding to one time interval (e.g., T/N) onecolumn 342 of a memory array. Theexample building block 300 may also include additional components operating as described with reference to corresponding components ofFIG. 1 , such as sampling circuits, inverters, and a de-emphasis sub-circuit. - In embodiments, the
clock delay block 304 may delay the clock by a fractional amount (n). In the example ofFIG. 3 , n=1. As shown inFIG. 4 , several building blocks similar to thebuilding block 300 ofFIG. 3 may be included in data eye diagram circuitry according to an embodiment. In such examples, each of the building blocks may delay the clock by a different fractional amount (e.g., n=1, n=2, . . . n=N) and may be used to selectively increment a different column of memory cells (e.g., multi-bit counters). Thus, instead of using a multiple of the clock and “hopping” sampling circuits in each different row, as shown inFIG. 1 , in theHSD 400 ofFIG. 4 , each column of memory cells may be linked to its own set of capture latches (e.g., its own plurality of sampling circuits). In doing so, theHSD 400 may utilize the same clock (or in some instances, a slower clock signal) delayed by a fractional amount (n) of the clock. As further described with reference toFIG. 4 , the clock may be replicated in parallel for each of the building blocks. - Thus, as shown in
FIG. 4 , theHSD 400 may include a plurality of data eye diagram circuitries (e.g., 310, 410, 510), where each data eye diagram circuitry may include a respective plurality of sampling circuits (e.g., 320, 420, 520) and correspond to particular time interval of a clock cycle. Moreover, in embodiments, each of the plurality of sampling circuits may be coupled to a respectiveclock delay block FIG. 4 , each of the data eye diagram circuitries (e.g., 310, 410, 510) may be to configured to output values to be stored in and increment a particular column of memory cells (e.g., columns corresponding to T/N, 2T/N, . . . T). By combining the columns of memory cells, a memory array corresponding to the received data eye diagram may be generated. - In an example operation, each of the plurality of data eye diagram circuitries (i.e., each of the building blocks) (e.g., 310, 410, 510) may generate output values for each respective plurality of sampling circuits (e.g., 320, 420, 520) to populate corresponding columns of memory cells (e.g., 342, 344, and 346) of a memory array. For example, during a first clock cycle (of duration T), the data eye diagram circuitries may sequentially increment the columns of the memory array associated with different time intervals (e.g., T/N, 2 T/N, . . . T) based on their respective clock delay blocks (e.g., nT/N delay). In examples, for each of the data diagram circuitries, each of the clock delay blocks delay the clock signal at a different amount. In doing so, for the first clock cycle, the columns of the memory array may be incremented or remain at an (initial) zero value based on the generated output values received from the inverters (e.g., 330, 430, 530). Accordingly, at the end of the first clock cycle (at time T) each memory cell of the columns of the memory array may either store a “0” or a “1” value. During a next (e.g., second) clock cycle, the process may be repeated such that each of the data
eye diagram circuitries sampling circuits memory array 140 reaches a particular value, such as a maximum counter value). After combining the columns of the memory array, the received data eye diagram may be generated. In other embodiments, for example, the columns of the memory array may be incremented or remain at an (initial) zero value based on the generated output values received from each of the plurality of sampling circuits. - In an example, the time intervals (e.g., T/N to T) of each of the plurality of data eye diagram circuitries (e.g., 310, 410, 510) may be of equivalent length and the reference voltages (e.g., V1 to VN) may be of equivalent voltage levels. In an alternative example, one or both of the time intervals or the reference voltages may vary.
-
FIG. 5 is a graphical representation of example data eye diagram, according to one embodiment. For example, inFIG. 5 , amemory array 500 as populated by either the ICAED 100 (as shown inFIG. 1 ) or the HSD 400 (as shown inFIG. 4 ) is shown. In embodiments, while theICAED 100 orHSD 400 may be implemented differently, the resultant values stored in thememory array 500 may be the same. Over a time clock period, thememory array 500 may keep track of “hits” to determine the data eye diagram. InFIG. 5 , the eye height and width may be determined by looking at the number of “non-hit” cells in the memory array, where a “non-hit” cell is a cell that includes minimal or no data values. In the illustrated embodiment, the eye height may be equal to 2×V/N and the eye width may be equal to 2×T/N. InFIG. 5 , the center “non-hit” memory cells result in an “open” data eye diagram. Alternatively, if there were “hits” in the center memory cells, a closed data eye diagram would be represented. An open data eye diagram may correspond to minimal signal distortion, while a closed data eye may imply distortion. By dynamically populating such a memory array, continuous sampling in real-time (or near real-time) may be realized. Thus, the quality of a serial link may be measured of over a significant amount of time without consuming a significant amount of memory internally. Further, bit error ratios (BERs) may also be extracted depending upon the amount of time a data eye diagram has been enabled as well as the height and width of a generated eye. -
FIG. 6 is a representation of an example normalization procedure that may be implemented by both theICAED 100 and theHSD 400, according to one embodiment. To prevent data loss due to overflow of the counter memory cells, a normalization algorithm (i.e., a normalization procedure) may be implemented to keep the relative amount of “hits” in each memory similar. Such normalization may be performed during operation of theICAED 100 andHSD 400. For instance, as shown inFIG. 6 at 600, if an example memory cell is an 8-bit counter, once the particular memory cell reaches 255, instead of overflowing, a logic circuit may halve the counter amounts in each cell of the memory array. - In embodiments, for instance, example memory cells may be 8-bit or 16-bit counter. A normalization procedure may be implemented when a counter reaches 2x−1 (where x is the number of bits stored in the memory cells, such as x=8 or x=16). In one instance, the normalization procedure may include dividing the value stored in every memory cell by 2. This procedure may be performed on the memory array by a bit shift by one operation. A memory cells that stores a 1 value may continue to store the 1 value in order to record the single hit by the waveform. In another normalization procedure, the memory array may simply stop recording hits in array elements once the
counter threshold 2x−1 is reached. It should be noted that in alternative embodiments, a mathematical operation other than dividing by two may be used. Performing normalization as shown inFIG. 6 may provide an extension of time so that a data eye diagram can be generated by collecting data for a larger time period. -
FIG. 7 is a flowchart of a method of generating a data eye diagram, according one embodiment. In an illustrative implementation, themethod 700 is performed by theICAED 100 ofFIG. 1 and HSD ofFIG. 4 . - The
method 700 includes applying an input voltage signal to a first sampling circuit and second sampling circuit of a first plurality of sampling circuits, at 702. For example, as described with reference toFIGS. 1, 3, and 4 , the data eye diagram circuitry (e.g., 110, 310, 410, 510) may apply an input voltage signal (e.g., 112, 312, 412, 512) to a first sampling circuit and second sampling circuit of a first plurality of sampling circuits (e.g., 120, 320, 420, 520). - The
method 700 includes applying a clock signal to the first sampling circuit and the second sampling circuit of the first plurality of sampling circuits, at 704. For example, as described with reference toFIGS. 1, 3, and 4 , the data eye diagram circuitry (e.g., 110, 310, 410, 510) may apply a clock signal (e.g., 114, 314, 414, 514) to the first sampling circuit and the second sampling circuit of the first plurality of sampling circuits (e.g., 120, 320, 420, 520). - The
method 700 includes generating, by the first sampling circuit, a first output value at a first memory cell of a memory array, the first output value based on a comparison of a first reference voltage to the input voltage signal, at 706. For example, as described with reference toFIGS. 1, 3, and 4 , the first sampling circuit may generate a first output value at a first memory cell of a memory array (e.g., 140, 500), the first output value based on comparison of a first reference voltage (e.g., 116, 316, 416, 516) to the input voltage signal (e.g., 112, 312, 412, 512). - The method includes generating, by the second sampling circuit, a second output value at a first memory cell of a memory array, the second output value based on a comparison of a second reference voltage to the input voltage signal, where the memory array corresponds to the data eye diagram, at 708. For example, as described with reference to
FIGS. 1, 3, and 4 , the second sampling circuit may generate a second output value at a second memory cell of a memory array (e.g., 140, 500), the second output value based on comparison of a second reference voltage (e.g., 116, 316, 416, 516) to the input voltage signal (e.g., 112, 312, 412, 512). - Aspects of the present disclosure may be incorporated in a system, a method, and/or a computer program product. The computer program product may include a computer-readable storage medium (or media) having computer-readable program instructions thereon for causing a processor to carry out aspects of the present disclosure. The computer-readable storage medium can be a tangible device that can retain and store instructions for use by an instruction execution device. The computer-readable storage medium may be, for example, but is not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing. A non-exhaustive list of more specific examples of the computer-readable storage medium includes the following: 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), a static random access memory (SRAM), a portable compact disc read-only memory (CD-ROM), a digital versatile disk (DVD), a memory stick, a floppy disk, a mechanically encoded device such as punch-cards or raised structures in a groove having instructions recorded thereon, and any suitable combination of the foregoing. A computer-readable storage medium, as used herein, is not to be construed as being transitory signals per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide or other transmission media (e.g., light pulses passing through a fiber-optic cable), or electrical signals transmitted through a wire.
- Computer-readable program instructions described herein can be downloaded to respective computing/processing devices from a computer-readable storage medium or to an external computer or external storage device via a network, for example, the Internet, a local area network, a wide area network and/or a wireless network. The network may comprise copper transmission cables, optical transmission fibers, wireless transmission, routers, firewalls, switches, gateway computers and/or edge servers. A network adapter card or network interface in each computing/processing device receives computer-readable program instructions from the network and forwards the computer-readable program instructions for storage in a computer-readable storage medium within the respective computing/processing device.
- Computer-readable program instructions for carrying out operations of the present disclosure may be assembler instructions, instruction-set-architecture (ISA) instructions, machine instructions, machine dependent instructions, microcode, firmware instructions, state-setting data, or either source code or object code written in any combination of one or more programming languages, including an object oriented programming language such as Smalltalk, C++ or the like, and procedural programming languages, such as the “C” programming language or similar programming languages. The computer-readable program instructions 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. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including 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). In some embodiments, electronic circuitry including, for example, programmable logic circuitry, field-programmable gate arrays (FPGA), or programmable logic arrays (PLA) may execute the computer-readable program instructions by utilizing state information of the computer-readable program instructions to personalize the electronic circuitry, in order to perform aspects of the present disclosure.
- Aspects of the present disclosure are described herein with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the disclosure. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer-readable program instructions.
- These computer-readable program instructions may be provided to a processor of a general purpose computer, a special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus. The machine is an example of means for implementing the functions/acts specified in the flowchart and/or block diagrams. The computer-readable program instructions may also be stored in a computer-readable storage medium that can direct a computer, a programmable data processing apparatus, and/or other devices to function in a particular manner, such that the computer-readable storage medium having instructions stored therein comprises an article of manufacture including instructions which implement aspects of the functions/acts specified in the flowchart and/or block diagrams.
- The computer-readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device to cause a series of operational steps to be performed on the computer, other programmable apparatus or other device to perform a computer implemented process, such that the instructions which execute on the computer, other programmable apparatus, or other device implement the functions/acts specified in the flowchart and/or block diagrams.
- The flowchart and block diagrams in the Figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present disclosure. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of instructions, which comprises one or more executable instructions for implementing the specified logical function(s). In some alternative implementations, the functions noted in a block in a diagram may occur out of the order noted in the figures. For example, two blocks shown in succession may be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowcharts, and combinations of blocks in the block diagrams and/or flowcharts, can be implemented by special purpose hardware-based systems that perform the specified functions or acts or carry out combinations of special purpose hardware and computer instructions.
- Integrated circuits or chips that may be designed and/or fabricated in accordance with the described techniques can be distributed by a fabricator in raw wafer form (that is, as a single wafer that has multiple unpackaged chips), as a bare die, or in a packaged form. In the latter case, the chip is mounted in a single chip package (such as a plastic carrier, with leads that are affixed to a motherboard or other higher level carrier) or in a multichip package (such as a ceramic carrier that has either or both surface interconnections or buried interconnections). In any case, the chip is then integrated with other chips, discrete circuit elements, and/or other signal processing devices as part of either (a) an intermediate product, such as a motherboard, or (b) an end product. The end product can be any product that includes integrated circuit chips, ranging from low-end applications to advanced computer products having a display, a keyboard or other input device, and a central processor.
- The descriptions of the various embodiments of the present disclosure have been presented for purposes of illustration, but are not intended to be exhaustive or limited to the embodiments disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope of the described embodiments. The terminology used herein was chosen to explain the principles of the embodiments, the practical application or technical improvement over technologies found in the marketplace, or to enable others of ordinary skill in the art to understand the embodiments disclosed herein.
- Those skilled in the art can make numerous uses and modifications of and departures from the apparatus and techniques disclosed herein without departing from the described concepts. For example, components or features illustrated or described in the present disclosure are not limited to the illustrated or described locations, settings, or contexts. Examples of apparatuses in accordance with the present disclosure can include all, fewer, or different components than those described with reference to one or more of the preceding figures. The present disclosure is therefore not to be limited to specific implementations described herein, but rather is to be accorded the broadest scope possible consistent with the appended claims, and equivalents thereof.
Claims (20)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/973,269 US9674062B1 (en) | 2015-12-17 | 2015-12-17 | Memory array to generate a data eye diagram |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/973,269 US9674062B1 (en) | 2015-12-17 | 2015-12-17 | Memory array to generate a data eye diagram |
Publications (2)
Publication Number | Publication Date |
---|---|
US9674062B1 US9674062B1 (en) | 2017-06-06 |
US20170180226A1 true US20170180226A1 (en) | 2017-06-22 |
Family
ID=58778817
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US14/973,269 Expired - Fee Related US9674062B1 (en) | 2015-12-17 | 2015-12-17 | Memory array to generate a data eye diagram |
Country Status (1)
Country | Link |
---|---|
US (1) | US9674062B1 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107769806A (en) * | 2017-10-17 | 2018-03-06 | 清华大学 | Eye pattern observation circuit on piece based on the asymmetric variable formwork of two dimension in high-speed serial communication |
TWI642063B (en) * | 2017-10-13 | 2018-11-21 | 群聯電子股份有限公司 | Equalizer tuning method, signal receiving circuit and a memory storage device |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111415701A (en) * | 2019-01-07 | 2020-07-14 | 长鑫存储技术有限公司 | Eye pattern generation device and method and memory chip test system |
US10720910B1 (en) * | 2019-05-30 | 2020-07-21 | Asmedia Technology Inc. | Eye diagram observation device |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7606297B2 (en) * | 2002-03-15 | 2009-10-20 | Synthesys Research, Inc. | Method and system for creating an eye diagram using a binary data bit decision mechanism |
US20040268190A1 (en) | 2003-05-19 | 2004-12-30 | International Business Machines Corporation | Adjusting parameters of a serial link |
US6901339B2 (en) * | 2003-07-29 | 2005-05-31 | Agilent Technologies, Inc. | Eye diagram analyzer correctly samples low dv/dt voltages |
US8005133B2 (en) * | 2006-04-27 | 2011-08-23 | Jds Uniphase Corporation | Displaying eye-diagram and digital diagnostic data using network analyzers |
US7640463B2 (en) | 2006-06-30 | 2009-12-29 | Lsi Corporation | On-chip receiver eye finder circuit for high-speed serial link |
US7684478B2 (en) * | 2006-06-30 | 2010-03-23 | International Business Machines Corporation | Generating an eye diagram of integrated circuit transmitted signals |
US8275045B2 (en) * | 2006-07-12 | 2012-09-25 | Qualcomm Incorporated | Video compression using adaptive variable length codes |
US8081723B1 (en) | 2008-04-09 | 2011-12-20 | Altera Corporation | Serial data signal eye width estimator methods and apparatus |
US8111784B1 (en) * | 2008-04-11 | 2012-02-07 | Altera Corporation | On-chip data signal eye monitoring circuitry and methods |
US20100097087A1 (en) | 2008-10-20 | 2010-04-22 | Stmicroelectronics, Inc. | Eye mapping built-in self test (bist) method and apparatus |
US8433958B2 (en) | 2010-09-17 | 2013-04-30 | Altera Corporation | Bit error rate checker receiving serial data signal from an eye viewer |
US9191245B2 (en) | 2011-03-08 | 2015-11-17 | Tektronix, Inc. | Methods and systems for providing optimum decision feedback equalization of high-speed serial data links |
US20130015837A1 (en) | 2011-07-13 | 2013-01-17 | International Business Machines Corporation | On-chip signal waveform measurement circuit |
EP2713519A1 (en) * | 2012-09-27 | 2014-04-02 | Nxp B.V. | Electronic counter in non-volatile limited endurance memory |
US9001943B2 (en) | 2013-03-14 | 2015-04-07 | Altera Corporation | Digital equalizer adaptation using on-die instrument |
US9231796B2 (en) | 2013-11-25 | 2016-01-05 | Globalfoundries Inc. | Power aware equalization in a serial communications link |
-
2015
- 2015-12-17 US US14/973,269 patent/US9674062B1/en not_active Expired - Fee Related
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI642063B (en) * | 2017-10-13 | 2018-11-21 | 群聯電子股份有限公司 | Equalizer tuning method, signal receiving circuit and a memory storage device |
CN107769806A (en) * | 2017-10-17 | 2018-03-06 | 清华大学 | Eye pattern observation circuit on piece based on the asymmetric variable formwork of two dimension in high-speed serial communication |
Also Published As
Publication number | Publication date |
---|---|
US9674062B1 (en) | 2017-06-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9674062B1 (en) | Memory array to generate a data eye diagram | |
US20110235694A1 (en) | Apparatus and Method for Generating a Waveform Test Signal Having Crest Factor Emulation of Random Jitter | |
US9460814B2 (en) | Memory tester design for soft error rate (SER) failure analysis | |
US9442136B2 (en) | Real-time oscilloscope for generating a fast real-time eye diagram | |
US20130031151A1 (en) | Incorporating noise and/or jitter into waveform generation | |
JP2001352350A (en) | Measurement system and method by statistic eye-diagram of continuous bit stream | |
Hancock | Jitter—understanding it, measuring it, eliminating it part 1: Jitter fundamentals | |
EP1897263A2 (en) | Jitter compensation and generation in testing communication devices | |
US9754062B2 (en) | Timing adjustments across transparent latches to facilitate power reduction | |
US11146307B1 (en) | Detecting distortion in spread spectrum signals | |
US20130191427A1 (en) | Pseudo-noise generator | |
US10175297B2 (en) | Measuring a slew rate on-chip | |
US7143323B2 (en) | High speed capture and averaging of serial data by asynchronous periodic sampling | |
US8891602B1 (en) | Analyzing jitter with noise from the measurement environment | |
US10739391B2 (en) | Duty cycle measurement | |
US10311966B2 (en) | On-chip diagnostic circuitry monitoring multiple cycles of signal samples | |
US7363568B2 (en) | System and method for testing differential signal crossover using undersampling | |
EP1847844A1 (en) | Digital data signal analysis by evaluating sampled values in conjuction with signal bit values | |
EP1847843B1 (en) | Digital data sampling by applying a plurality of time delayed trigger signals | |
US7251302B2 (en) | Method, system and apparatus for quantifying the contribution of inter-symbol interference jitter on timing skew budget | |
JP5410454B2 (en) | PULSE PATTERN GENERATION DEVICE, ERROR RATE MEASUREMENT SYSTEM USING THE DEVICE, AND PULSE PATTERN GENERATION METHOD | |
EP1845385B1 (en) | Time interval analysis of digital data | |
CN111371453A (en) | Signal period measuring circuit and method | |
JP5100601B2 (en) | Histogram generation in read, modify and write cycles with multiple increments | |
Kleinfelder et al. | The SST multi-G-sample/s switched capacitor array waveform recorder with flexible trigger and picosecond-level timing accuracy |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: INTERNATIONAL BUSINESS MACHINES CORPORATION, NEW Y Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:BERGE, LAYNE A.;FOX, BENJAMIN A.;MARTIN, WESLEY D.;AND OTHERS;REEL/FRAME:037320/0781 Effective date: 20151217 |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
LAPS | Lapse for failure to pay maintenance fees |
Free format text: PATENT EXPIRED FOR FAILURE TO PAY MAINTENANCE FEES (ORIGINAL EVENT CODE: EXP.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
FEPP | Fee payment procedure |
Free format text: MAINTENANCE FEE REMINDER MAILED (ORIGINAL EVENT CODE: REM.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
STCH | Information on status: patent discontinuation |
Free format text: PATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362 |
|
FP | Lapsed due to failure to pay maintenance fee |
Effective date: 20210606 |