So that the manner in which the above recited features, advantages and objects of the present invention are attained and can be understood in detail, a more particular description of the invention, briefly summarized above, may be had by reference to the embodiments thereof which are illustrated in the appended drawings.
It is to be noted, however, that the appended drawings illustrate only typical embodiments of this invention and are therefore not to be considered limiting of its scope, for the invention may admit to other equally effective embodiments.
FIGS. 5A1 and 5A2 illustrate an exemplary table for associating binary values with gray code values and thermometer code, according to an embodiment of the invention.
The present invention generally relates to centering a clock edge at or near the center of a data eye. Data may be sent from a first device to a second device in conjunction with a clock signal. A phase rotator operating in an external clock domain governed by the received clock at the second device may rotate the phase of the received clock signal to sample data. The data sampled in the unstable external clock domain may be transferred to a stable local clock domain for analysis. Feedback may be provided from the stable clock domain to the phase rotator to adjust the phase of the received clock signal to position an edge of the clock signal at or near the center of the data eye.
In the following, reference is made to embodiments of the invention. However, it should be understood that the invention is not limited to specific described embodiments. Instead, any combination of the following features and elements, whether related to different embodiments or not, is contemplated to implement and practice the invention. Furthermore, in various embodiments the invention provides numerous advantages over the prior art. However, although embodiments of the invention may achieve advantages over other possible solutions and/or over the prior art, whether or not a particular advantage is achieved by a given embodiment is not limiting of the invention. Thus, the following aspects, features, embodiments and advantages are merely illustrative and are not considered elements or limitations of the appended claims except where explicitly recited in a claim(s). Likewise, reference to “the invention” shall not be construed as a generalization of any inventive subject matter disclosed herein and shall not be considered to be an element or limitation of the appended claims except where explicitly recited in a claim(s).
As illustrated in
The phase shifting of clock signal 231 may be based on a control signal 226 received by phase rotator 221 from control logic 223. For example, control signal 226 may indicate the amount of shifting required to center the edge of clock signal 231 at the center of the data eye.
Weights to be applied to each phasor 302 may be specified by a weight code 304 (illustratively, a string of 32 bits). As illustrated in
The weighting function may be fairly close to linear. For example, at 45 degrees the 0 and 90 degree phasor weights are on full and the 180 and 270 weights are off. For the next phase step (e.g., about 51 degrees, assuming 64 phase steps of approx. 6 degrees each) the 0 weight would be decreased slightly from its max value, pulling the output phase toward 90.
Referring back to
In one embodiment of the invention data processing circuit 222 may receive multiple sampling clock signals from phase rotator 221 to sample data at the center and the edges of the data eye. In one embodiment, phase rotator 221 may generate multiple sampling clock signals 225 with different relative offsets to sample data at different locations in the data eye. For example, in one embodiment, the phase rotator may generate a 90 degree shifted clock signal. The 90 degree shifted clock signal may be configured to sample the data eye at an edge of the data eye. By retrieving samples of data from multiple locations in the data eye, for example, at the center and the edges of the data eye, a better analysis of the position of the clock edge with respect to the center of the data eye may be possible.
As illustrated in
Therefore, the sampling clock signal may have to be realigned at the center of the data eye. To center the edge of the of the sampling clock signal at the center of the data eye, the edge and data samples captured by data processing circuit 222 may be analyzed, and the clock signal 231 shifted based on the analysis of the sampled to generate a sampling clock signal with an edge at the center of the data eye.
To prevent the analysis of the edge and data sampled from being performed in the unstable external clock domain, embodiments of the invention transfer the edge and data samples from the unstable external clock domain to a more stable local clock domain governed by a stable and steady local clock. For example, the edge and sample may be transferred from the external clock domain 251 to a local clock domain 250. Control logic in the local clock domain may analyze the sampled data and provide feedback to the phase rotator to generate the sampling clock signal with an edge at the center of the data eye.
To transfer sampled data from the external clock domain 251 to the local clock domain 250, Data processing circuit 222 may send the sampled data and edge data 260 to buffer 224. Buffer 224 may provide an interface between two clock domains as illustrated in
In one embodiment of the invention, data processing circuit 222 may sample a plurality of bits of data received on a bit line before transferring the sampled data and edge data to buffer 224. For example, in one embodiment, data processing circuit may recover 4 bits of serial data. Data processing circuit 222 may transfer the sampled data to a front side bus for use by components in device 220. The sampled data may also be transferred to buffer 224.
One skilled in the art will recognize that the number of bits sampled is not limiting on the invention. Any reasonable number of bits may be sampled and transferred to buffer 224. The number of bits sampled may depend on the relation between the data transfer rate and the grid clock frequency. For example, in one embodiment, the grid clock frequency may be ¼th the frequency of data transfer. Therefore, 4 bits may be sampled before each transfer.
The number of bits sampled may also depend on the amount of time required to analyze the bits before adjusting the phase rotator. For example, a larger number of bits may require a greater amount of time for analysis, thereby delaying the adjusting of the phase rotator.
In one embodiment of the invention, the local grid clock in device 220 may be configured to operate at the same frequency as clock 231. The grid clock, however, may be phase asynchronous from clock 231. In other words, clock 231 and the grid clock may operate at the same frequency but may have different phase shifts. Moreover, the phase difference between the external clock domain and the grid clock domain may vary over time due to the instability of the external clock 231. For example, clock 231 may experience periodic jittering which may vary the phase of clock 231 relative to the grid clock.
One advantage of the grid clock domain is the relative stability and reliability of the grid clock relative to the external clock 231. Therefore, embodiments of the invention perform analysis of sampled data in the grid clock domain to adjust the sampling clock signal(s) 225. For example, the data (and edge data) sampled by data processing circuit 222 and written to buffer 224 may be analyzed in the grid clock domain to determine the offset for clock 231 for generating the sampling clock signal 225.
Accordingly, control logic 223 may read data 261 from data buffer 224. Data 261 may correspond to the data 260 written into buffer 224 by data processing circuit 222 in the external clock domain. As illustrated in
If data is not being sampled at or near the center of the data eye, control logic 223 may provide feedback to phase rotator 221 indicating the need to adjust the offset applied to clock 231 to generate the sampling signal 225. For example, control logic 223 may generate a control signal 226 indicating the phase shift necessary to sample data at or near the center of the data eye.
One advantage of analyzing sampled data in a separate, stable grid clock environment is that the control logic need not make unnecessary corrections to the sampling clock signal in response to short term jittering effects. For example, if the sampling clock signal is adjusted based on every bit of sampled data, the sampling clock signal may be subjected to a great amount of jitter and discontinuities. In some embodiments, control logic 223 may analyze data samples for multiple bits of data to determine a long term average shift in the clock edge from the center of the data eye. Therefore, instantaneous correction of the sampling clock signal for infrequent, short term effects on clock signal 225 may be avoided.
In one embodiment of the invention, phase rotator 221 may rotate the received clock signal 231 in 64 discrete steps to generate the sampling clock signal 225, as previously described. Accordingly, control logic 223 may include a 6-bit clock control register to indicate all possible degrees of rotation.
In one embodiment of the invention, to transfer the control data from the control logic, which operates in the grid clock domain, to the phase rotator, which operates in the external clock domain, the control data in the clock control register may be converted into 6-bit gray code. As is well known in the art, gray code is a binary numeral system wherein two successive numbers differ in only one digit.
One skilled in the art will recognize that by transferring the control data from the control logic operating in the grid clock domain to the phase rotator in the external clock domain using gray code ensures that only one bit changes each time data is sent across the bus connecting the control logic to the phase rotator. Therefore, the need to time data transferred across the bus bridging different time domains is obviated.
Phase rotator 221 may convert the 6-bit gray code into a thermometer code controlling the digital to analog (DAC) converters generating the sampling clock signal 225. For example, phase rotator 221 may include a decoder to convert the 6 bit gray code to thermometer code controlling the clock generation. As each bit of the gray code is altered, a corresponding bit of the thermometer code may also be altered, thereby shifting the clock edge.
FIGS. 5A1 and 5A2 illustrate an exemplary table 500 that may be used to associate a 6 bit binary value to a 6 bit gray code value, and the 6 bit gray code value to thermometer code. As illustrated in column 510 of table 500, the binary values represent 64 possible delays for an incoming clock signal. For example, with each increment of the binary value, the incoming clock may be shifted by approximately 6 degrees, as illustrated in the delay column 520.
Column 530 of Table 500 illustrates the gray code value associated with each binary value. As illustrated in FIG. 5Al and 5A2, each successive gray code value is derived by altering a single bit from the previous gray code value. The gray code value may be derived from the binary code based on a predetermined algorithm.
The gray code derived from a binary value may be latched to ensure there are no timing hazards over the bus connecting control logic 223 to phase rotator 221. One skilled in the art will recognize that because the path connecting the phase rotator and the control logic is an untimed path, delay over the path may not pose a problem.
As previously described, the phase rotator may convert the 6-bit gray code to thermometer code that generates sampling signal 225. Column 540 of Table 500 illustrates exemplary thermometer code that may be associated with the gray code received from the control logic. In the exemplary embodiment illustrated in Table 500, the thermometer code may be generated from 4 bits of the 6-bit gray code. For example, the thermometer code may be derived from the 4 least significant bits of the gray code. The thermometer code may control, for example, the weights associated with phasors controlling the phase rotator.
The two most significant bits of the gray code may determine the quadrant in which the phase is adjusted. For example, the two bits may determine the adjustment of phase in one of four quadrants. In one embodiment, the two-bit quadrant code may be derived directly from the two most significant bits of the gray code. The quadrant codes according to this scheme is illustrated in column 550 of Table 500.
One advantage of the scheme described above is that the phase rotator may be controlled by the use of a relatively few number of bits. For example, the control logic need only send a 6 bit gray code value across the bus connecting the control logic and the phase rotator to generate the 15 bit thermometer code and 2 bit quadrant code that controls the generation of the sampling signal. Therefore, the phase rotator may be controlled quickly, without timing concerns across the external and local clock domains, and with a minimum number of interface lines.
A further advantage is that multiple clock signals may be generated based on the same gray code value sent across the interface. For example, the gray code value sent from the control logic to the phase rotator may be used to generate sampling clock signals for sampling data at the center and the edges of the data eye.
For example,
Referring back to
In step 602, the sampled data may be transferred to a buffer, for example buffer 224 in
In step 603, the sampled data may be transferred from the buffer to control logic operating in a grid clock domain. Because the grid clock domain is governed by a local clock that is more stable and more reliable than the clock signal received from the first device, the control logic may perform more reliable analysis of the sampled data to determine, in step 604, whether the phase rotated clock signal generated by the phase rotator is sampling data at the center of the data eye.
In step 604, control logic may examine the sampled data to determine whether the incoming clock signal is aligned with the incoming clock signal. If it is determined that the phase rotated clock signal requires shifting to center the edge of the clock at or near the center of the data eye, the control logic may send a control signal indicating the required phase shift in step 605. For example, the control logic may transfer a sequence of gray code values to the phase rotator. The sequence of gray code values may smoothly shift the phase of the incoming clock signal smoothly to the center of the data eye. For example, each gray code value may be decoded to thermometer code controlling digital to analog filters that generate the phase rotated clock.
By allowing the analysis of accumulated sampled data in a stable and reliable grid clock domain, embodiments of the invention allow for more effective control of the phase rotator generating a phase rotated clock for sampling data. One skilled in the art will recognize that while a single data line 232 and associated phase rotator 221 and data capturing circuit 222 are illustrated in
While the foregoing is directed to embodiments of the present invention, other and further embodiments of the invention may be devised without departing from the basic scope thereof, and the scope thereof is determined by the claims that follow.