A system 400 and method 1200 is disclosed for a fast locking (e.g., within 1.5 sync bit times or the first data transition) clock and data recovery (CDR) system used in high speed data communications applications (e.g., ASIC and microprocessor chips). The CDR circuit takes multiple (e.g., 8) phases of the local clock, which are offset (e.g., by 45 degrees), and uses the multiple phases to latch the state of data at multiple times, and uses the latched data to determine which of the multiple phases captured a data transition. The CDR circuit compares the indicated phase to the phase used to capture a previous data transition and uses such information to, produce a stable selection of a clock phase. The selected clock phase is then employed to provide a recovered clock and data signals (CLK_OUT, and DATA_OUT), in association with the incoming serial data stream independent of jitter and free of metastable conditions.
1. A system for producing recovered clock and data signals for serial data communications operations, comprising: a 1stlogic system operable to receive a decoded single ended serial data stream, and a plurality of clock phases, which are evenly spaced and offset between successive phases derived from the local clock signal, wherein the 1stlogic system is configured to detect whether a transition of the data stream took place corresponding with one of the plurality of clock phases and independent of an event caused by metastability, to generate one of a corresponding plurality of data transition detections based upon the serial data stream, and the plurality of clock phases; a 2ndlogic system operable to receive a plurality of data transition detections, a plurality of clock phases, and a plurality of previous clock phase selections, to determine which phases corresponded to a data stream transition, to compare the new data transition to a last phase selection transition, and to generate a plurality of phase determinations based upon the comparisons; a 3rdlogic system operable to receive the plurality of phase determinations, to apply amplification, hysteresis and feedback, and to generate a plurality of processed phase selections based upon the plurality of phase determinations, and an elimination of metastable conditions and multiple phase selections; and a phase selection logic operable receive the plurality of clock phase signals, and to receive and to use the plurality of processed phase selections to make a best phase selection which is used to securely latch and recover the clock and data signals, whereby the recovered clock and data signals are free of metastable conditions and multiple phase selections, and independent of jitter and wander. 2. The system of a 1stlatch, comprising a plurality of FFs individually adapted to receive the decoded single ended serial data stream, and one of a plurality of clock phase signals, and generate one of a corresponding plurality of data state indications, whereby the 1stlatch FFs are individually triggered by one of the plurality of clock phases, to latch a logical state of the data stream at a transition of the one of the plurality of clock phase signals corresponding therewith; and a 1stlogic component, comprising a plurality of XOR gates and OR gates, individually adapted to receive one of the plurality of data state indications from the 1stlatch, and generate one of a corresponding plurality of data transition detections. 3. The system of a 2ndlatch, comprising a plurality of FFs individually adapted to receive one of the plurality of data transition detections, and the one of the corresponding plurality of clock phase signals, and generate one of a corresponding plurality of latched transition detections, whereby the 2ndlatch FFs are individually triggered and latched by the one of the plurality of clock phase signals corresponding therewith; and a 2ndlogic component, comprising a plurality of AND gates operable to receive the plurality of latched transition detections from the 2ndlatch, and a plurality of previous clock phase selections in the form of feedback, to determine which phases detected a data stream transition, to select a new phase associated with the transition detections, and to compare the new data transition to a last phase selection, and generate a plurality of phase determinations based upon the comparisons. 4. The system of a 3rdlatch, comprising a plurality of FFs individually adapted to receive one of the plurality of phase determinations, and the one of the corresponding plurality of clock phase signals, and generate one of a corresponding plurality of latched phase determinations, whereby the 3rdlatch FFs are individually triggered and latched by the one of the plurality of clock phase signals corresponding therewith; and a 3rdlogic component, comprising a plurality of AND gates and FFs individually adapted to receive one of the plurality of latched phase determinations, to eliminate metastable conditions and multiple phase selections by the amplification, hysteresis and feedback of the selections, and to generate a plurality of processed phase selections based upon, the plurality of latched phase determinations, and the elimination of metastable conditions and multiple phase selections. 5. The system of 6. A system for producing recovered clock and data signals for serial data communications operations, comprising: a 1stlogic system operable to receive a decoded single ended serial data stream, and a plurality of clock phases, which are evenly spaced and offset between successive phases derived from the local clock signal, wherein the 1stlogic system is configured to detect whether a transition of the data stream took place corresponding with one of the plurality of clock phases and to generate one of a corresponding plurality of data transition detections based upon the serial data stream, and the plurality of clock phases; a 2ndlogic system operable to receive a plurality of data transition detections, a plurality of clock phases, and a plurality of previous clock phase selections, to determine which phases corresponded to a data stream transition, to compare the new data transition to a last phase selection transition, which produce a plurality of phase determinations based upon the comparisons, and to generate a plurality of phase selections based upon the plurality of data transition detections, the plurality of clock phases, and the plurality of previous clock phase selections; and a phase selection logic operable receive the plurality of clock phase signals, and to receive and to use the plurality of phase selections to make a best phase selection which is used to securely latch and recover the clock and data signals, whereby the recovered clock and data signals are free of metastable conditions and multiple phase selections, and independent of jitter and wander. 7. The system of a 1stlatch, comprising a plurality of FFs individually adapted to receive the decoded single ended serial data stream, and one of a plurality of clock phase signals, and generate one of a corresponding plurality of data state indications, whereby the 1stlatch FFs are individually triggered by one of the plurality of clock phases, to latch a logical state of the data stream at a transition of the one of the plurality of clock phase signals corresponding therewith; and a 1stlogic component, comprising a plurality of XOR gates and OR gates, individually adapted to receive one of the plurality of data state indications from the 1stlatch, and generate one of a corresponding plurality of data transition detections. 8. The system of a 2ndlatch, comprising a plurality of FFs individually adapted to receive one of the plurality of data transition detections, and the one of the corresponding plurality of clock phase signals, and generate one of a corresponding plurality of latched transition detections, whereby the 2ndlatch FFs are individually triggered and latched by the one of the plurality of clock phase signals corresponding therewith; a 2ndlogic component, comprising a plurality of AND gates operable to receive the plurality of latched transition detections from the 2ndlatch, and a plurality of previous clock phase selections in the form of feedback, to determine which phases detected a data stream transition, to select a new phase associated with the transition detections, and to compare the new data transition to a last phase selection, and to generate a plurality of phase determinations based upon the determinations and comparisons; and a 3rdlatch, comprising a plurality of FFs individually adapted to receive one of the plurality of phase determinations, and the one of the corresponding plurality of clock phase signals, and generate one of the corresponding plurality of phase selections, whereby the 3rdlatch FFs are individually triggered and latched by the one of the plurality of clock phase signals corresponding therewith. 9. A method of fast locking and recovery of a clock and data signal from a serial data stream in a communications device which has a high jitter tolerance and requires a small gate count implementation, while eliminating the effects of metastability, comprising the step of: receiving a decoded single-ended serial communications data stream into a 1stlogic system; receiving a plurality of clock phases which are evenly spaced and offset between successive clock phases; latching the logical state of the data stream into a 1stlogic system, corresponding in time to each phase of the plurality of clock phases, thereby recording a plurality of logical states of the data stream, individually corresponding with one of the plurality of clock phase transitions; detecting whether there was a data transition corresponding to one of the plurality of clock phases, by examining whether there was a change of state of the data stream recorded between successive phases; latching in a 2ndlogic system, the results of the data transition detections at a clock phase which is offset by +3 clock phases, thereby offsetting the phase selection to about the middle of the data waveform to avoid the effects of jitter or metastability; determining the quantity of phases which were detected and which phases of the plurality of clock phases which have detected a new data transition; comparing the results of the new data transition determinations to a last phase selections, thereby producing a plurality of phase determination results; latching in a 3rdlogic system the comparison phase determination results at a clock phase which is offset by +4 clock phases, thereby offsetting the phase selection to about the middle of the data waveform to avoid the effect of jitter or metastability, and compensate for calculation time to provide a plurality of latched phase determinations; processing the plurality of latched phase determination results through a plurality of logic circuits individually adapted to eliminate the effects of metastable conditions and multiple phase selections, thereby producing a plurality of acceptable phase selections; selecting a single phase of the plurality of acceptable phase selections to latch the data and synchronize the clock; latching the data stream data and synchronizing the clock with the single phase selection; and outputting a recovered clock and data signal within one clock data cycle, which is free of metastable conditions and independent of jitter and wander, while maintaining a small and simple CDR design. 10. The method of a) resetting a phase counter and a data transitions counter to zero count; b) determining if a data transition occurred before a current phase, by comparing the last state of the data stream detected and the current state; c) outputting a logical “1” state, which is to be latched at a clock phase (N+3), if the determination indicated that a transition was detected; d) incrementing the data transition counter; e) otherwise, outputting a logical “0” state, which is to be latched at the clock phase (N+3), if the determination indicated that a transition was not detected; f) determining if the current phase count is at a maximum count of 8; g) incrementing the phase counter if the phase count is not at a maximum count of 8; and repeating steps (b) thru (f) until the phase count is equal to 8; and h) ending the data transition detection operation when the maximum phase count is achieved. 11. The method of determining if there any data transitions were detected; selecting the previous phase if it is determined that there were no data transitions detected, and ending the quantity determination operation; otherwise, determining if 1 data transition was detected; selecting the 1 phase indicated if it is determined that one data transition was detected, and ending the quantity determination operation; otherwise, determining if 2 data transitions were detected; selecting the first of the 2 phases indicated if it is determined that 2 data transitions were detected, and ending the quantity determination operation; otherwise, determining if 3 data transitions were detected; selecting the center phase of the 3 phases indicated if it is determined that 3 data transitions were detected, and ending the quantity determination operation; and otherwise, selecting the previous phase if >3 data transitions were detected, and ending the quantity determination operation. 12. The method of a) comparing the new data transition which was detected to the last phase selected; b) determining if there was a phase change of >2 phases between the new data transition and the last phase selected, if the result of the comparison step (a) indicated a case “B” situation, in which the data transition was later than the transition of the last phase; c) outputting a logic comparison result for a new phase selection if it is determined in step (b) that there was not >2 phase changes between the new data transition and the last phase selected, and ending the phase comparison operation; d) outputting a logic comparison result for a last phase selection if it is determined in step (b) that there was >2 phase changes between the new data transition and the last phase selected, and ending the phase comparison operation; e) determining if there was a phase change of >−1 phases between the last phase selected and the new data transition, if the result of the comparison step (a) indicated a case “C” situation, in which the data transition was earlier than the transition of the last phase; f) outputting a logic comparison result for a new phase selection if it is determined in step (e) that there was not >−1 phase changes between the last phase selected and the new data transition, and ending the phase comparison operation; g) processing the transition detections thru a logic circuit which eliminates phase change indications of >−1 phase changes, if it is determined in step (e) that there was >−1 phase changes between the last phase selected and the new data transition, and outputting a logic comparison result for a last phase selection, and ending the phase comparison operation; and h) otherwise, outputting a logic comparison result for a new phase selection, when the result of the comparison step (a) indicates a case “A” situation, in which the data transition about the same time as the transition of the last phase selection, and ending the phase comparison operation. 13. The method of amplifying and applying hysteresis to the PHT(N) logic results output which may contain the effects of metastable conditions; determining if a PHT(N) phase determination result input has an amplitude greater than the logic gate switching threshold voltage; outputting a logical “1” state, which is to be latched at a clock phase (N+4), if the determination indicated that the logic gate switching threshold voltage was achieved, thereby indicating that the current phase being processed was acceptable as a potential phase selection; otherwise, outputting a logical “0” state, which is to be latched at the clock phase (N+4), if the determination indicated that the logic gate switching threshold voltage was not achieved, thereby indicating that the current phase being processed was unacceptable as a potential phase selection; continuing to amplify the logic results thru additional gates; applying feedback to the logic gates to hold the state of the acceptable phase selection; disabling the next phase PH(N+1) with the feedback and logic, to eliminate the possibility of multiple phase selections; and latch the final phase selection result with the PH(N+2) clock phase.
The present invention relates generally to serial data communication and transmission applications in the manufacture of integrated circuits needed as physical interface to any type of serial bus (in this example USB). More particularly, the present invention relates to clock and data recovery logic for a serial data stream, which supplies a sync lock within 1.5 bit times, insuring clock and data information is recovered in these applications. The CDR function is implemented as a plesiochronous technique with no feedback to a PLL. It also has no lock detection, nor loss of lock detection, nor loss of sync detection. In the intended application, those functions are integrated into the logic coupled to the recovered CLK and DATA. With the recent increased speed of computers and the need for high performance peripherals, the use of high speed serial data communications applications in integrated circuits built to physically interface to any given bus has increased correspondingly. USB (Universal Serial Bus) 1.1, has been the de facto external connectivity standard between computers and their peripherals in serial communications up to 12 Mbps (Million bits per second). As the need for faster communications and higher performance peripherals has grown, computer and peripheral manufacturers have responded with a new higher speed standard: USB 2.0. USB 2.0 increases the device data throughput up to 480 Mbps, 40 times faster than USB 1.1 devices while maintaining or improving on other USB 1.1 specifications such as the Microsoft Plug and Play feature, and numerous other technical specifications, some of which will be discussed in relation to the present invention. USB 2.0 even challenges FireWire (IEEE 1394) currently at 400 Mbps, as the serial interface of the future. Three speed modes are available under the new USB 2.0 standard: high-speed (480 Mbps), full-speed (12 Mbps), and low-speed (1.5 Mbps). Conventionally, an incoming serial data stream may be NRZI (Non-Return-to-Zero Inverted) encoded and bit stuffed. NRZI is a data transmission method in which the polarity of the bit is reversed whenever a 0 bit is encountered, and a static voltage level is transmitted whenever a 1 bit is encountered as illustrated in The structure of the data stream follows a specific communications protocol, which defines the rules for sending a block of data (each known as a Protocol Data Unit (PDU)) (e.g., 150 of Packet switching refers to protocols in which a longer message (the data) exceeding a network-defined maximum length is divided into short message packets before they are transmitted. Each packet, with an associated header with information for routing the packet from origination to destination, is then transmitted individually and can even follow different routes to its destination. Once all the packets forming a message arrive at the destination, they are recompiled into the original message. Most modern Wide Area Network (WAN) protocols, including the successful TCP/IP protocol, as well as X.25, and Frame Relay, are based on packet-switching technologies. A fundamental difference between packet communication and conventional, continuous-type communication is that the data is formed into packets as described above. When there is no data to be sent, the bus is put into an ideal state that shows no change in voltage levels. Continuous-type protocols is would fill the idle time within a frame with well-known “idle” patterns which are used to occupy the link when there is no data to be communicated. A packet network equipment discards the “idle” patterns between packets and processes the entire packet as one piece of data. The equipment examines the packet header information (PCI) and then either removes the header (in an end system) or forwards the packet to another system. If the out-going link is not available, then the packet is placed in a queue until the link becomes free. A packet network is formed by links which connect packet network equipment. In the packet switching used in USB 2.0 at 480 Mbps, one portion of the packet header 160 will contain at least 12 sync bits indicated by an alternating pattern, intended to allow the sending and receiving clocks time to synchronize. The packet payload 170 will contain up to 1024 bits, while the end-of-packet 180 contains 8 bits. The incoming data stream is assumed to be sent with a clock of the same frequency as the local clock used in the receiving system, but shows all jitter components of an electrical transmission over a bandwidth limited media (e.g., data dependant cycle to cycle jitter). A conventional linear clock and data recovery (CDR) circuit attempts to recover the original transmitting clock by utilizing a phase detector (PD) or alternatively a phase-frequency detector (PFD), and source a charge pump followed by a VCO of an analog PLL. The resulting change in phase and frequency is sourced back to the PD/PFD to be compared to the next data. These conventional linear techniques use an analog PLL, which need an undefined number of transitions, are dependant on the PLLs bandwidth, the data-rate to VCO frequency ratio and more. In addition, data derived by these conventional linear techniques cannot be guaranteed by the USB synch packet (typically N×10e3 needed vs 6 available in USB FS mode). The capture range of a PLL is typically narrow, and usually requires the help of a frequency acquisition aid and special training sequences which have the disadvantage of limited availability. Other conventional plesiochronous techniques to minimize the effect of metastable readings give unreliable phase information. To do so, most of these techniques try to average the results before selecting a new phase. This also requires a continuous bitstream that is not available in USB applications. The analog types require many special analog components, including rectifier component(s), differentiator component(s), etc. These components are difficult to implement in ASIC devices, and when not carefully designed may not function properly under all conditions. The digital implementations have at most +/−50% usable frequency range, but are often narrower depending on the implementation and the statistics of the input data. For a number of reasons such as bus turn around timing (the time measured at the USB host controller, from the sending of a request to the farthest bus subscriber, until receipt of an acknowledge package), a USB HUB is allowed to strip-off a defined number of sync bits during the HS repeater mode which results in a minimum sync pattern of 12 alternating bits at the receiver of a subscriber. Under FS conditions the sync field consists of 6 bits from the start. This is not enough sync bits for conventional CDR techniques. Another prior art CDR methodology is illustrated in FIG. 3 and designated at reference numeral 200. The CDR 200 uses a crystal oscillator 220 to drive a PLL along with frequency dividers 230 to produce two phases of a local clock (CLK, and CLK(NOT)) 235 which enter the CDR circuit 210. The serial data stream is decoded from a USB transmitter/receiver 240 to a single ended signal DATA 245 which also enters the CDR circuit 210. Two 4-bit shift registers 260, 270 are incorporated to store 8 bits of the serial data. A voting logic circuit 290 is employed to select one of the clock phases, while averaging sample points 280, 285 of the 8 data bits to minimize the effects of metastable conditions in the CDR circuit 210. The selected phase 291 from the voting logic 290 then provides feedback 291 to control the PLL clock frequency 230 and is then used by gate logic 295, to gate the data stream to recover the clock and the data 297. The disadvantage of this scheme is that there is an 8 bit time-delay while the bits fill both shift registers before the clock frequency and phase can be established. In addition, and as described above, after a number of rerouting operations there may not be enough sync bits remaining to provide lock and may cause a loss of data. Here again, jitter in the data stream or isolated bit errors may also cause the PLL to lose lock, as the PLL frequency and lock is dependant on the feedback loop from the voting logic 290. Accordingly, considering the substantially higher data rates used in the new USB 2.0 at 480 Mbps, the new 350 ps cycle to cycle jitter specification under HS conditions (1 bit=2.08 ns ), and the increased use of hubs and routers, there is a need for a CDR circuit which is able to quickly lock to a serial data stream, have a high jitter tolerance, and yet eliminate the effects of metastable conditions inherent in CDR circuits used in high speed serial data communications applications of ASIC and microprocessor chips. The following presents a simplified summary of the invention in order to provide a basic understanding of some aspects of the invention. This summary is not an extensive overview of the invention. It is intended neither to identify key or critical elements of the invention nor to delineate the scope of the invention. Its primary purpose is to present some concepts of the invention in a simplified form as a prelude to the more detailed description that is presented later. The invention is directed to a quick locking (e.g., within two sync bit times) clock and data recovery (CDR) circuit used in high speed data communications applications (e.g., ASIC and microprocessor chips). The CDR circuit takes multiple (e.g., 8) phases of the local clock, which are offset (e.g., by 45 degrees), and uses the multiple phases to latch the state of data at multiple times, and uses the latched data to determine which of the multiple phases captured a data transition. The CDR circuit compares the indicated phase to the phase used to capture a previous data transition and uses such information to, produce a stable selection of a clock phase. The selected clock phase is then employed to provide a recovered clock and data signal in association with the incoming serial data stream independent of jitter and free of metastable conditions. In accordance with the present invention, a CDR circuit for a serial data stream is disclosed. The CDR circuit requires only one data transition on the incoming data stream in order to pick one of the 8 clock phases for accurate data recovery. In one exemplary aspect of the invention, for every transition, there is a decision made as to the phase to be selected, in order to enable subsequent related logic to securely latch the data to produce a recovered clock and data signal. Thus, a feature of the present invention is that nearly “instant lock” is provided, as only the first bit of the incoming data stream is lost to achieve pattern lock, while other designs need much more pattern or bits to lock. The CDR circuit of this invention, therefore, provides recovered clock and data signals with a quasi-fixed phase relationship even though the serial data jitters. Also, as there is no feedback to the VCO or a PLL, the CDR system of the present invention avoids the usual PLL feedback loop problems previously discussed. The present invention utilizes a plurality of input phases (e.g., 8) of the local clock running at approximately the same nominal frequency of the transmitting clock. The phase offset between successive phases when the number of phases is eight is about 45 degrees. Therefore, the CDR circuit of the current invention may be used in any application where multiple phases offset from one another (e.g., about 45 degrees) of the receiving/sending clock are available (e.g., from a local VCO). The CDR circuit of the present invention also provides about 2 phase differences (e.g., about 2×260 ps=520 ps) of cycle to cycle jitter tolerance at 480 MHz, which is substantially greater than the 350 ps cycle to cycle jitter tolerance required by USB 2.0, and permits standard ASIC FFs (Flip-Flops) to be used. According to one exemplary aspect of the invention, the incoming data stream may experience frequency wander far greater than specified without causing loss of lock or loss of data. Thus no loss of lock or loss of data circuitry is required. However, if two different frequencies are used in such an exemplary case, a periodic phase shift on the recovered CLOCK_OUT will result. This, in principal, would add to the jitter transfer function of a CDR circuit. However, in any application that provides a deserializer function (serial to parallel conversion), this figure of merit is irrelevant as the deserializer can handle those events using FIFOs. An advantage of the present invention is that the CDR does not average sample points of the data as most other CDR circuits do. Averaging in CDR circuits is done to avoid the effect of metastable conditions which cannot be avoided in CDRs. The CDR described in accordance with the present invention has an alternative way to handle and eliminate the metastable conditions which avoids averaging and allows fast locking. Another advantage of the present invention, is that the CDR integrated circuit implementation may be small (e.g., about 300 gates). Still another advantage of the present invention, is that the CDR solution works well at low and high frequencies of over 480 MHz (multifrequency CDR). To the accomplishment of the foregoing and related ends, the invention comprises the features hereinafter fully described and particularly pointed out in the claims. The following description and the annexed drawings set forth in detail certain illustrative embodiments of the invention. These embodiments are indicative, however, of but a few of the various ways in which the principles of the invention may be employed. Other objects, advantages and novel features of the invention will become apparent from the following detailed description of the invention when considered in conjunction with the drawings. The present invention will now be described with reference to the drawings, wherein like reference numerals are used to refer to like elements throughout. The present invention relates to a fast locking clock and data recovery system in which a plurality of clock phases and a first logic system are used to detect the particular time within the clock cycle in which a data transition occurs (Phase detection). The CDR system also uses a 2ndlogic system to determine which of the phases from the 1stlogic system detected data transition (as more than one phase may have detected a transition, in the case of a metastable condition). The second logic system selects one of the phases, and compares the phase to a previous phase selection associated with a previous data transition, and may change the selected phase in response to the comparison based on predetermined criteria. The CDR system also makes use of a 3rdlogic system to eliminate metastable conditions of the data transition detections and multiple phase selections. The CDR system also uses a phase selection logic to select one of the plurality of clock phases which is used to securely latch and output a recovered clock and data signal (CLK_OUT, and DATA_OUT). Thus, the present invention provides a fast locking CDR system for producing recovered clock and data signals which are free of metastable conditions with high jitter tolerance for the serial data stream. As this detection and the selection of a valid phase which ideally is centered in the eye of an incoming data stream, takes exactly 1.5 bit times, the first bit is lost while it is available to the second bit on an incoming serial datastream latched at it's eye center. As previously discussed in regard to Switching transition time and metastable conditions can not be avoided in CDR systems. The present invention, however, avoids the delay limitation of conventional CDR systems with a method of forcing more (e.g., 8 bits more) information out of each bit cycle, and providing a method of selecting a stable clock phase on the first data transition. Essentially, according to one exemplary aspect of the present invention, the method breaks up a bit cycle into a plurality of smaller time periods with a plurality of clock phases. The clock phases are offset from each other by (1/N)360° of the individual clock phase. Clock phase offsetting is also found in prior art plesiochronous CDR techniques. However, the main difference lies in the combined phase detection which, according to the present invention, is made resistant to the metastable conditions and voting (phase selection), which does not require multiple bit readings to select a valid output clock phase. Within each of these smaller time periods, a decision is made as to the current state of the serial data stream, wherein the rising edge of each clock phase signal of the plurality of clock phases serves as the trigger-point for the data state decision. The first phase which records a change of state of the data stream, therefore, has recorded a transition which took place in the data stream, and unless a metastable condition is detected, this first phase is used to determine the proper clock phase to lock the data until the next transition occurs. In this way, the determination as to the actual point in time at which the transition took place, is narrowed to within the time period of the offset of a clock phase. According to one aspect of the current invention, 8 clock phases are used, offset by: (1/N)2π=(⅛)2π=π/4 Therefore, according to one aspect of the current invention, the 8 clock phases also resolve the data stream transition to within ⅛ th of the clock cycle and data rate period at 480 Mbps, this is: (1/N)Period=(⅛)(1/480 Mbps)=260 ps. This means that the data transition may be resolved to within 260 ps even at the USB 2.0 HS (High Speed) data rate of 480 Mbps, and provides a lock on the clock and data occurring 8 times sooner than with the conventional fast locking CDR system illustrated in FIG. 3. Even though 8 phases have been used in this example, it will be apparent to anyone skilled in the art, that any number of phases could be used which may be evenly spaced and offset by (1/N)×360° between successive phases. According to the present invention, 8 phases works sufficiently with the 350 ps cycle to cycle jitter requirement of USB 2.0. Alternately, 16 phases offset by π/8 could be used to locate the data transition nearly twice as accurately generating less jitter transfer. However, jitter transfer is not a figure of merit (cannot be measured) for deserializer circuits, as long as integrated serial to parallel conversion accounts for local jitter on the clock signal by holding sufficient FIFO to compensate for singular duty cycle distortions. The 8 clock phases 328 of the example, together with the single ended data stream 317 are input to the CDR circuit 320 which is operable to detect a 10 data stream transition to within ⅛ th of a clock cycle time, select a phase associated with the transition detection, compare the initially selected phase to a previous phase selection associated with a previous data transition, and make a final phase selection determination based upon the comparison. The phase selection is then used to securely latch and recover the clock and data signals CLOCK & DATA 330, free of metastable conditions and multiple phase selections, and independent of input jitter, as will be discussed in greater detail below. The 4 stage VCO comprises a plurality (e.g., 4) of VCO stages 360 individually adapted to receive the CLK & CLK(NOT) signals 345 & 350 respectively, and produce a CLK & CLK(NOT) (inverted CLK) for each of the individual VCO stages 360. In one exemplary aspect of the present invention, the CDR circuit comprises: a 1stlogic system 430 which is operable to receive the single ended serial data stream 405, and the plurality of clock phases 410, and detect whether a transition of the data stream took place corresponding with one or between two of the plurality of clock phases 410. The 1stlogic system is further operable to generate a plurality of data signals (each separated by PHI/4 in the time domain) corresponding to the data transition detection 427 based upon the serial data stream 405. The CDR circuit 400 further comprises a 2ndlogic system 450 which is operable to receive the plurality of data transition detections 427, a plurality of clock phases 410, and a plurality of previous clock phase selections 465, to determine which phase corresponds to the current data transition. The 2ndlogic system 450 is further operable to compare the new data transition to the clock phase selection associated with the previous data transition, and generate a plurality of phase determinations 447 based upon the comparison. The CDR circuit 400 of Lastly, the CDR circuit 400 comprises a phase selection logic circuit 485 operable receive the plurality of clock phase signals 410, and to select one of the plurality of clock phase signals 410 based on the plurality of processed phase selections 475, as the best phase selection 490. The best phase selection 490 is then used to securely latch 492 and recover the data signal DATA_OUT 495, whereby the recovered clock and data signals are free of metastable conditions and multiple phase selections. In another aspect of the present invention, the 1stlogic system 430 of the CDR circuit of The 1stlogic system 430 further comprises a 1stlogic component 425(525 & 527), comprising a plurality of exclusive-OR (EX-OR) gates 525 and OR gates 527 adapted to receive the plurality of data state indications 420(520) from the 1stlatch 415(515), and generate a plurality of data transition determinations 440(540). The EX-OR gates compare the outputs of 2 D-FFs. In case there was a data transition at a time at, or between two adjacent phases latching the data, the output of the EX-OR would be logic HIGH. To avoid the impact of metastable conditions of one (there can be only one at a time) of the D-FFs, not only DPH(N) is compared to DPH(N+1) and DPH(N−1) but also to DPH(N+2) and DPH(N−2). When OR'ing the results of the EX-ORs, there is always a valid result at the outputs of the OR gates. This result can be either a single logic one, or up to 3 logic ones (adjacent) at the time the outputs of the OR gates get latched into the second column of D-FFs 535. This would cause a multiphase selection which is taken care of later. Thus, it becomes apparent from The plurality of transition detection signals, SELPH4 thru SELPH3 (540) are latched by triggering the 2ndlatch FFs 535 with the plurality of clock phase signals Φ3 thru Φ2 (510). So, in the same way as the 1stlatch 515, the 2ndlatch 535 is continuously updated with new transition detection signals 540 for the phase selection process which continuously yields recovered clock signals. Referring back to Statistically the offset between the detected data transition and the mid-point of the data waveform would be 4 phase offsets, however, as it takes a while to calculate which phase should be used, the offset can not be set too short. The shorter the time to calculate the right phase, the better, as there could be a jitter event anytime. If the clock is not adjusted before this occurs, a bit may be lost. In order to keep the time to calculate the resulting clock phase short, it was decided by the inventor, to use a shorter 3 phase offset between the first two latches, and the 4 phase offset between the second pair of latches, to account for the calculation time. The clock phase chosen needs to be close enough to the data transition to keep the time short, but close enough to the middle of the waveform to be independent of jitter. With this method, the CDR system of the present invention, does not need multiple transitions of DATAIN 710 to select a clock phase, providing a nearly “instant lock”, with recovered CLK_OUT, and DATA_OUT signals that have a fixed phase relationship with the local clock even though DATAIN jitters. Returning briefly to Case A of Case B of Case C of The present invention resolves the above problem with another exemplary circuit, as illustrated in The output of the exemplary 3rdlogic component “hold and disable next phase” circuit 1105, is the CLK_OUT_PH3 signal 1198. The CLK_OUT_PH3 signal 1198 output of this circuit is processed for the elimination of metastable conditions on PHT3 for the selection of phase 3 (PH3), and the disabling of the “next phase” phase 4 (PH4) and subsequent multiple phase selections. When 8 of the individual circuits 1105, are OR'ed together as shown, for example, by OR gate 1097 and the plurality of inputs 1096 of In operation of the circuit 1105 of FIG. 16 and the timing of Thus, the present invention avoids the effects of metastable conditions of conventional CDR systems with an exemplary CDR 3rdlogic component containing a plurality of “hold and disable next phase” circuits 1105 similar to that of FIG. 16. Other variations of the exemplary “hold and disable next phase” circuit are contemplated as falling within the scope of the present invention, whereby the use of amplification, hysteresis, or feedback to latch the selected phase and disable the next phase, avoids the effects of metastable conditions in a CDR system. One advantage of the present invention, is that all the functions of the exemplary CDR system discussed above may be accomplished, with a relatively small implementation of about 300 gates, for example. Still another advantage of the present invention is that unlike the conventional CDR systems, the present invention does not use the selected phase as feedback to the local oscillator or VCO. In the conventional CDR system, if bit errors or metastable conditions occur, phase lock may also be lost, causing the local oscillator to wander without controlled feedback and additional bits may be lost. By not using phase lock feedback, the present invention has the advantage of keeping the frequency of the VCO fixed, at a more stable frequency, while providing independence from the clock. The data rate however, does maintain a quasi-fixed phase relationship to the local clock, as the plurality of clock phases are derived from the local clock. A CDR circuit is used to recover a clock and data signal from a stream of serial data communications decoded from a receiver circuit of an ASIC or microprocessor device. Sample point averaging of multiple data bits, along with voting logic methods are used typically in the CDR circuit because they eliminate the effect of inevitable metastable conditions of the FFs which latch the data steam bits and yet make a simple system. Other conventional plesiochronous CDR circuits, however, must wait until, for example, 8 bits are stored in a shift register before voting on the best phase choice to provide phase lock (while there is no guarantee there was a transition at all within those 8 data bits, continuous phase update and thus the ability to follow a frequency offset can not be calculated. Also, an instant lock—mandatory for a burst traffic bus—is not an option at all). Because of this long delay before phase lock, or even because of jitter, conventional CDR systems may lose many bits before achieving phase lock, yet must still resolve any metastable conditions long after these events actually take place. The increasing use of higher speed serial data communications devices, such as those used in computers, peripherals, repeaters, routers and hubs, together with the standards set forth in the new USB 2.0 initiative, illustrates the need for a faster locking local clock oscillator as used in a CDR system to recover clock and data signals which are free of metastabilities and jitter, while maintaining a small and simple circuit design. By contrast, the present invention identifies and resolves every data transition (rather than just one in 8 bits) to within the narrow window of time provided by a plurality (e.g., 8) of phase offsets (e.g., about 260 ps), providing a much faster phase acquisition and lock than that attained by a conventional CDR system. In an alternate implementation of the present invention, some or all of the circuits and system functions described herein may be accomplished via high speed software techniques, whereby a plurality of clock phases which are evenly spaced and offset between successive phases are used to identify a transition of a serial communications data stream to select a phase for the fast locking of a CDR circuit, and for the elimination of multiple phase selections and metastable conditions of the data, to recover clock and data signals which are free from data jitter and frequency wander. The system 400 therefore receives a decoded serial communications data stream into a plurality of FFs comprising a 1stlatch, and a plurality of clock phases which are evenly spaced and offset from each other. The 1stlatch FFs are individually adapted to be triggered by a clock phase of the plurality of clock phases, and latch a plurality of states of the data stream as each clock phase to the 1stlatch goes high in succession. The plurality of states of the data stream identifies a data transition point from the “0” states transition to a “1” state as detected by a 1stlogic component, comprising, for example, a plurality of XOR and OR gates adapted to receive the plurality of data states from the 1stlatch and generate a plurality of data transition determinations. The data transition determinations are received and latched by a 2ndlatch, which is coupled to a 2ndlogic component operable to determine how many and which phases have detected a data stream transition. The 2ndlogic component then compares these resulting latched data transition determinations to a last or previous phase selection and generates a plurality of phase determinations based upon the comparison. The plurality of phase determinations are latched by a 3rdlatch which supplies the 2ndlogic component with the last phase selections and produces a plurality of latched phase determination choices to a 3rdlogic component. The 3rdlogic component is operable to eliminate metastabilities by amplification, hysteresis, and feedback of the selections, and is further operable to eliminate multiple phase selections via a plurality of AND gate and FFs circuits which also disable the next phase selections for a period of time, and generates a plurality of processed phase selections. A single new phase selection is then made, which is used to latch and recover a clock and data signal which is free of metastable conditions and independent of data jitter and frequency wander. Another aspect of the present invention provides a methodology for fast locking of the clock and data recovery operation in data communication and transmission applications in the manufacture of ASIC and microprocessor chips illustrated and described herein, as well as with other such devices. Referring now to The method 1200 comprises receiving from a differential receiver, for example, a decoded single-ended serial communications data stream and a plurality of clock phases which are, for example, evenly spaced and offset from each other into a plurality of FFs forming a latch. The latch FFs are triggered in succession with an associated clock phase to latch a plurality of states of the data stream, wherein the plurality of states are used to detect whether there was a transition in the data. The plurality of data transition detections are then latched and used to, determine the quantity of phases which indicate a transition. The transition indications are then compared with a last or previous phase selection, and the results are latched which indicate a plurality of latched phase determinations. The logical results are processed, for example, through a plurality of gates and FF logic to amplify and latch the selection to eliminate any metastable conditions or multiple phase selections. A single phase is then selected to latch the data and synchronize the clock, thus recovering the data signal which is free of metastable conditions and jitter, while maintaining a small and simple CDR design. The fast locking clock and data recovery operation method begins at step 1205. At 1210 a decoded single-ended serial communications data stream is received, for example, as an output of a differential receiver into a 1stlatch comprising a plurality of D-FFs. At 1215 a plurality of clock phases which are, for example, evenly spaced and offset from each other are received from a clock phase generator coupled to a VCO local oscillator and also input to the 1stlatch. The 1stlatch records the states of the data stream as each of the FFs are triggered in succession by the plurality of clock phases at 1220. The states of the data in the latch are examined at step 1230 for data transitions between each data detection associated with a phase. The results of the data transition detections are latched at 1240. A determination is made at 1250, as to the quantity of phases and which phases have detected a data transition. At 1260 the results of the new data transition detections are compared to the last phase selection. At 1268 the logic results are latched to indicate which phases selections are determined to be acceptable choices. The results are also processed at 1270, through a plurality of logic circuits individually adapted to eliminate metastable conditions in the data and to eliminate multiple phase selections. A single phase is selected from the plurality of processed phase selections at 1280. At 1285 the selected single phase is used to latch the data steam and synchronize the clock. Thereafter at step 1290, a clock and data signal, which is free of metastable conditions and jitter, is recovered from a serial data stream of a communications receiver device used in the manufacture of ASIC and microprocessor chips in a fast locking clock and data recovery circuit, while maintaining a small and simple CDR design. At step 1290, a determination may also be made whether the fast locking CDR operation is still enabled. If the operation is still enabled, the fast locking CDR operation continues at 1210, otherwise the operation thereafter ends at 1295, and the method 1200 may be repeated for subsequent fast locking CDR operations of a communications device. A determination is made at step 1232, whether a data transition has taken place at or before the current phase tested (Note, as this is actually a continuous process, the last state for a data transition determination will be known at all times). If a data transition has taken place, a “1” state is output from the 1stlogic component at step 1233, and is latched into SELPH(N+4), at phase PH(N+3). At step 1234 the “data transitions counter” is incremented and continues to step 1236. If a data transition has not taken place at step 1232, then a “0” state is output from the 1stlogic component at step 1235, and is latched into SELPH(N+4), at phase PH(N+3). In either case, the method continues at step 1236 with a check on the present count of the clock phase counter. If the present count is not equal to the maximum phase count of N, then the phase counter is incremented at step 1237 and the method continues to step 1232. Otherwise the maximum phase count of N (e.g., 8 phases) has been achieved, the next data transition is awaited, and the method continues to step 1240 where the data transition detections are latched by the 2ndlatch. Otherwise, if there were transitions detected (e.g., count >0), the data transition count is again examined whether there was one transition detected at step 1253. If one transition was detected, the indicated phase is selected at step 1254, and the method continues to FIG. 17 and step 1260. Otherwise, if there was greater than 1 transition detected, the data transition count is again examined whether there was 2 transitions detected at step 1255. If 2 transitions were detected at step 1255, the first of the 2 phases is selected at step 1256, and the method continues to FIG. 17 and step 1260. Otherwise, if there was greater than 2 transitions detected, the data transition count is again examined whether there was 3 transitions detected at step 1257. If 3 transitions were detected at step 1257, the center of the 3 phases is selected at step 1258, and the method continues to FIG. 17 and step 1260. Otherwise, if there were greater than 3 transitions detected, too many data transitions were detected, and the previous (last) phase which was selected is used at step 1259, and the method continues to FIG. 17 and step 1260. If the new data transition occurred later than (e.g., <, case “B”) the last selected phase transition, then another determination is made at step 1262, whether there was more than 2 phase jumps (e.g., 2 phase changes, or a time difference of 2 phase offsets) between the new data transition and the last phase selection. If there was not more than 2 phase jumps, then the 2ndlogic component outputs a logic result which indicates the new phase should be selected at step 1264, and the method continues back to FIG. 17 and step 1268. Otherwise, if there were more than 2 phase jumps between the new data transition and the last phase selection, then the 2ndlogic component outputs a logic result which indicates the last phase should be selected at step 1266. If the new data transition occurred at the same time as (e.g., =, case “A”) the last selected phase transition, then the 2ndlogic component outputs a logic result which indicates the new phase should be selected at step 1264, and the method continues to FIG. 17 and step 1268. If the new data transition occurred earlier than (e.g., >, case “C”) the last selected phase transition, then another determination is made at step 1263, whether there was more than a −1 phase jump between the new data transition and the last phase selection. If there was not more than a −1 phase jump then the 2ndlogic component outputs a logic result which indicates the new phase should be selected at step 1264, and the method continues to FIG. 17 and step 1268. Otherwise, if there was more than a −1 phase jump between the new data transition and the last phase selection, then the data is processed thru a special logic circuit (not shown) which prohibits phase jumps of greater than −1 jumps at step 1265, and the 2ndlogic component outputs a logic result which indicates the last phase should be selected at step 1266, and the method continues to FIG. 17 and step 1268. A determination is made at step 1272, whether the PHT(N) input is greater than the gate input switching threshold voltage. If the PHT(N) input is greater than the gate input threshold voltage, a “1” state is output from the 3rdlogic component at step 1273 to be latched, and the method continues to step 1275. Otherwise, a “0” state is output from the 3rdlogic component at step 1274 to be latched. At step 1275, additional amplification is applied to the phase selection PHT(N). The current phase output result is held with feedback at step 1276. At step 1277, the next phase PH(N+1), is disabled by the gating the PH(N) selection signal with the next phase PH(N+1) signal. Finally, the result of the elimination Of metastables and multi-phase selections operations of step 1270 is latched at step 1278, with phase PH(N+2), and the method continues to FIG. 17 and step 1280. The methodology 1200 thus provides for a fast locking clock and data recovery system used in data communications applications of ASIC and microprocessor devices, in which the CDR circuit uses a plurality of clock phases evenly spaced and offset between successive phases to identify a data transition point of the data stream within one data transition time period, and a metastable and multi-phase elimination circuit to provide a plurality of processed phase selections, and a phase selection circuit to provide a single best clock phase selection, wherein the single best clock phase selection is used to latch and produce a recovered clock and data signal which is free of metastable conditions and independent of data jitter and frequency wander. Other variants of methodologies may be provided in accordance with the present invention, whereby fast locking clock and data recovery is accomplished employing a plurality of clock phase signals which are evenly spaced and offset between successive phases, and are used to identify the data transition within one data transition time period and provide a quasi-fixed phase relationship to the local clock in a CDR circuit, and a metastable and multi-phase elimination circuit. Although the invention has been shown and described with respect to one or more implementations, equivalent alterations and modifications will occur to others skilled in the art upon the reading and understanding of this specification and the annexed drawings. In particular regard to the various functions performed by the above described components (assemblies, devices, circuits, etc.), the terms (including a reference to a “means”) used to describe such components are intended to correspond, unless otherwise indicated, to any component which performs the specified function of the described component (i.e., that is functionally equivalent), even though not structurally equivalent to the disclosed structure which performs the function in the herein illustrated exemplary implementations of the invention. In addition, while a particular feature of the invention may have been disclosed with respect to only one of several implementations, such feature may be combined with one or more other features of the other implementations as may be desired and advantageous for any given or particular application. Furthermore, to the extent that the terms “includes”, “having”, “has”, “with”, or variants thereof are used in either the detailed description or the claims, such terms are intended to be inclusive in a manner similar to the term “comprising.”TECHNICAL FIELD OF INVENTION
BACKGROUND OF THE INVENTION
SUMMARY OF THE INVENTION
BRIEF DESCRIPTION OF THE DRAWINGS
DETAILED DESCRIPTION OF THE INVENTION