US20110175758A1 - System and method for removing glitches from a bit stream - Google Patents
System and method for removing glitches from a bit stream Download PDFInfo
- Publication number
- US20110175758A1 US20110175758A1 US12/688,907 US68890710A US2011175758A1 US 20110175758 A1 US20110175758 A1 US 20110175758A1 US 68890710 A US68890710 A US 68890710A US 2011175758 A1 US2011175758 A1 US 2011175758A1
- Authority
- US
- United States
- Prior art keywords
- data samples
- data
- bit
- sampling
- phases
- 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
- 238000000034 method Methods 0.000 title claims description 22
- 238000005070 sampling Methods 0.000 claims description 154
- 238000001914 filtration Methods 0.000 claims description 14
- 238000011084 recovery Methods 0.000 claims description 14
- 230000005540 biological transmission Effects 0.000 claims description 11
- 239000000523 sample Substances 0.000 description 81
- 230000007704 transition Effects 0.000 description 19
- 238000010586 diagram Methods 0.000 description 14
- 238000012545 processing Methods 0.000 description 13
- 238000004891 communication Methods 0.000 description 12
- 230000008569 process Effects 0.000 description 3
- 230000004075 alteration Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000001939 inductive effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 230000005236 sound signal Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K5/00—Manipulating of pulses not covered by one of the other main groups of this subclass
- H03K5/125—Discriminating pulses
- H03K5/1252—Suppression or limitation of noise or interference
Definitions
- the present invention relates generally to data processing and communication systems, and, more specifically, to a system and method for removing glitches from a bit stream of serially transmitted data.
- a data signal is transmitted serially through a transmission channel and noise from different sources adds glitches to the data signal.
- the serially transmitted data signal is received at the receiver and includes serially arranged data bits.
- Each data bit sent through the transmission channel is represented by a high or low voltage level for a predetermined time period or ‘bit duration’, resulting in logic values 1 and 0, respectively.
- the logic low signal may overshoot during a bit transition for a short duration and produce a positive glitch.
- the logic high signal may undershoot during a bit transition for a short duration and produce a negative glitch. Due to the overshoots and undershoots, the glitches occur near the bit transitions.
- glitches can occur anywhere in the bit duration due to other sources of disturbances, as mentioned above. For example, glitches can occur at the start, end or in the middle of the received bit stream.
- Glitches may result in the wrong determination of the transmitted data bits that are received at the receiver. That is, a logic high signal sent by the transmitter may be determined as logic low and a logic low signal sent by the transmitter may be determined as logic high by the receiver. Thus, the glitches result in a high bit error rate (BER), and degrade the performance of the electrical circuit. Thus, if the glitches in the data signal are not removed, the overall function of the circuit is hampered and erroneous output may be produced.
- BER bit error rate
- the glitch removal circuit 100 includes a first combinational delay circuit 104 a, a second combinational delay circuit 104 b, and first and second NAND gates 108 a and 108 b.
- the first and second NAND gates 108 a and 108 b are connected in series.
- An input bit stream 102 is provided to a first input of the first NAND gate 108 a.
- the input bit stream 102 is also provided to the first combinational delay circuit 104 a and an output 106 of the first combinational delay circuit 104 a is provided to a second input of the first NAND gate 108 a.
- An output 110 of the first NAND gate 108 a is provided to a first input of the second NAND gate 108 b and to the second combinational delay circuit 104 b.
- An output 112 of the second combinational delay circuit 104 b is provided to a second input of the second NAND gate 108 b.
- FIGS. 1B and 1C illustrate first and second timing diagrams of various signals of the conventional glitch removal circuit 100 .
- FIG. 1B shows the input bit stream 102 ; intermediate signals 106 , 110 , and 112 ; and an output signal 114 .
- the input bit stream 102 includes a transition from a logic 1 to a logic 0 that has a positive or high glitch ‘G’ in the middle of the input bit stream 102 .
- the first combinational delay circuit 104 a introduces a delay ‘d 1 ’ in the input bit stream 102 to generate the intermediate signal 106 .
- the first NAND gate 108 a performs a NAND operation on the input bit stream 102 and the intermediate signal 106 to generate the intermediate signal 110 .
- the second combinational delay circuit 104 b introduces a delay ‘d 2 ’ in the intermediate signal 110 and generates the intermediate signal 112 .
- the total delay introduced by the first and second combinational delay circuits 104 a and 104 b in the input bit stream 102 is ‘d 2 ⁇ d 1 ’.
- the second NAND gate 108 b performs a NAND operation on the intermediate signals 110 and 112 to generate the output signal 114 .
- delay ‘d 1 ’ introduced by the first combinational delay circuit 104 a needs to be greater than the duration of the glitch ‘G’, i.e., d 1 >G.
- the delay ‘d 2 ’ introduced by the second combinational delay circuit 104 b needs to be greater than the sum of the delay d 1 and the duration of the glitch ‘G’, i.e., d 2 >d 1 +G.
- the combinational delay circuits 104 a and 104 b have to be designed specifically to meet the above-mentioned requirements.
- the glitch is removed from the input bit stream 102 after performing the steps above and the output signal 114 is a glitch-free bit stream.
- the bit width L of the input bit stream 102 has been shortened to bit width L′, that is the bit width has been shortened by a width equal to ‘d 2 ⁇ d 1 ’.
- the bit width L′ is elongated by a width equal to ‘d 2 ⁇ d 1 ’ (see FIG. 1C ). This is undesirable because bit width alterations may lead to a high BER at the receiver.
- FIG. 1D is another example of a negative glitch in the input bit stream 102 .
- the glitch occurred near the middle of the input bit stream 102 while in FIG. 1D , the glitch occurs closer to a bit transition of the input bit stream 102 .
- the input bit stream 102 includes a transition from a logic 0 to a logic 1 that has a negative or low glitch ‘G’ near the beginning of the transition end in the input bit stream 102 .
- the first combinational delay circuit 104 a introduces a delay ‘d 1 ’ in the input bit stream 102 to generate the intermediate signal 106 .
- the first NAND gate 108 a performs a NAND operation on the input bit stream 102 and the intermediate signal 106 to generate the intermediate signal 110 .
- the second combinational delay circuit 104 b introduces a delay ‘d 2 ’ in the intermediate signal 110 and generates the intermediate signal 112 .
- the second NAND gate 108 b performs a NAND operation on the intermediate signals 110 and 112 to generate the output signal 114 .
- a glitch G′ occurs near the transition end in the output signal 114 .
- the glitch in the input signal occurs at a distance X from the transition end, where the value of X is less than the total delay introduced by the first and second combinational delay circuits 104 a and 104 b (i.e. X ⁇ d 1 +d 2 ).
- the glitch G has not been removed from the input bit stream 102 after performing the steps above and the output signal 114 includes the glitch G′.
- the conventional glitch removal circuit 100 cannot remove glitches that are present near the transition ends of the signal received at the receiver. Further, it is evident from FIGS. 1B and 1C that the conventional glitch removal circuit 100 alters the bit width while removing glitches present near the middle of the signal received at the receiver. Additionally, in order to remove glitches from the input bit stream there are specific design requirements in the conventional glitch removal circuits.
- FIG. 2A a block diagram illustrating another conventional glitch removal circuit 200 is shown.
- FIG. 2A includes three sequential delay circuits 204 a, 204 b, and 204 c; an XOR gate 210 ; and a multiplexer 214 (hereinafter “mux 214 ”). Additionally, a single clock input (not shown in FIG. 2A ) is connected to the three sequential delay circuits 204 a, 204 b, and 204 c.
- the three sequential delay circuits 204 a, 204 b, and 204 c; the XOR gate 210 ; and the mux 214 are connected in series.
- An input bit stream 202 is provided to an input of the first sequential delay circuit 204 a and an output 206 of the first sequential delay circuit 204 a is provided to the second sequential delay circuit 204 b.
- the output 206 is also provided to a first input of the XOR gate 210 and to a first input of the mux 214 .
- an output 208 of the second sequential delay circuit 204 b is provided to a second input of the XOR gate 210 and an output 212 of the XOR gate 210 is provided to a second input of the mux 214 .
- the second input to the mux 214 is a control signal that is provided to a select line of the mux 214 .
- An output 216 of the mux 214 is provided to the third sequential delay circuit 204 c.
- an output 218 of the third sequential delay circuit 204 c is provided to a second input of the mux 214 .
- FIG. 2B is a timing diagram illustrating various signals in the conventional glitch removal circuit 200 .
- FIG. 2B shows the input bit stream 202 ; intermediate signals 206 , 208 , and 212 ; and an output signal 218 .
- the first sequential delay circuit 204 a receives the input bit stream 202 , which is generated by oversampling an input bit stream using an oversampling unit (not shown).
- the input bit stream 202 represents the bit stream that includes a transition from a bit 0 to a bit 1 , and there is a negative glitch G near the transition end in the input bit stream 202 .
- the first and second sequential delay circuits 204 a and 204 b generate the intermediate signals 206 and 208 , respectively.
- the intermediate control signal 212 is logic low, and the intermediate signal 206 is provided as the output of the mux 214 to generate the intermediate signal 216 . However, if the intermediate signals 206 and 208 have different logic values, then the intermediate control signal 212 is logic high, and the current output signal 218 is provided as the output 216 of the mux 214 .
- the third unit delay circuit 204 c introduces a unit delay in the intermediate signal 216 to generate the output signal 218 , which is fed back to the mux 214 .
- the mux 214 holds the output at the previous logic value of the input bit stream 202 during bit transitions in the input bit stream 202 and updates the output when there is no bit transition in the input bit stream 202 .
- the sequential delay circuits 204 a, 204 b, and 204 c store previous and present values of the input bit stream 202 to be used by the mux 214 . Thus, the glitch in the input bit stream 202 is removed by maintaining the previous logic value, i.e.
- bit width L in the input bit stream 202 is shortened to bit width L′ in the output signal 216 .
- High-Speed serial interfaces such as Mobile Industry Processor Interface (MIPI), Serial AT Attachment (SATA), Universal Serial Bus (USB) 3.0, and Peripheral Component Interconnect (PCI) Express, use various clock and data recovery schemes. These clock and data recovery schemes rely on accurate detection of bit boundaries. Therefore, the clock and data recovery schemes are particularly sensitive to glitches. Additionally, for error free clock and data recovery and to maintain low BER at the receiver of the High-Speed serial interfaces, the input bit stream provided to the clock and data recovery circuit should include bits of equal widths (i.e., no shortening or elongation of bit widths) corresponding to logic low and logic high data.
- MIPI Mobile Industry Processor Interface
- SATA Serial AT Attachment
- USB Universal Serial Bus
- PCI Peripheral Component Interconnect Express
- the conventional glitch removal circuits undesirably alter the bit widths while removing glitches from the received bit stream. Consequently, the probability of recovering correct data at the receiver by the clock and data recovery circuit decreases. It is desirable that the glitch removal circuits remove glitches of variable width and glitches that occur anywhere during the bit duration. Further, the delay introduced by the delay elements in the conventional glitch removal circuits varies with process, voltage, and temperature (PVT) variations, and hence, glitch removal operation is sensitive to the operating range of the circuit. It would be advantageous to have a glitch removal circuit that is independent of PVT variations. It also would be desirable to have a glitch removal circuit that can remove variable width glitches and does not alter the bit width of the input bit stream.
- PVT process, voltage, and temperature
- FIG. 1A is a schematic block diagram of a first conventional glitch removal circuit
- FIGS. 1B , 1 C and 1 D are timing diagrams illustrating various signals of the conventional glitch removal circuit of FIG. 1 ;
- FIG. 2A is a schematic block diagram of a second conventional glitch removal circuit
- FIG. 2B is a timing diagram illustrating various signals of the second conventional glitch removal circuit shown in FIG. 2A ;
- FIG. 3 is a flowchart illustrating a method for removing glitches from a bit stream in a data processing and communication system in accordance with an embodiment of the present invention
- FIGS. 4A and 4B are flowcharts illustrating a method for removing glitches from a bit stream in a data processing and communication system in accordance with another embodiment of the present invention
- FIG. 5A depicts ideal and actual waveforms of a bit stream and oversampled data samples corresponding to the actual waveform
- FIG. 5B is a diagram illustrating data samples corresponding to a bit stream in accordance with an embodiment of the present invention.
- FIG. 6 is a schematic block diagram illustrating a glitch removal circuit in accordance with an embodiment of the present invention.
- FIG. 7 is a schematic block diagram illustrating a receiver system in accordance with an embodiment of the present invention.
- a method for removing glitches from a bit stream is provided.
- An input bit stream is over-sampled using a plurality of sampling phases of a reference clock to generate a first set of data samples.
- Each data sample in the first set of data samples is compared with a corresponding previous data sample to generate a second set of data samples.
- the second set of data samples is compared with one or more predefined bit masks to determine the location of any glitches and then one or more data samples in the first set of data samples are identified for replacement.
- a substitute data sample is selected from the first set of data samples based on a predefined criterion. Subsequently, one or more data samples in the first set of data samples are replaced with the substitute data sample.
- a system for removing glitches from a bit stream includes an oversampling unit for oversampling a bit stream using a plurality of sampling phases of a reference clock.
- the oversampling unit generates a first set of data samples.
- a bit-transition detecting unit is connected to the oversampling unit and compares each data sample in the first set of data samples with a corresponding previous data sample to generate a second set of data samples.
- the second set of data samples is used for detecting bit transitions in the first set of data samples.
- a glitch detecting unit connected to the bit-transition detecting unit compares the second set of data samples with one or more predefined bit masks to identify one or more data samples in the first set of data samples for replacement.
- a glitch filtering unit connected to the glitch detecting unit selects a substitute data sample from the first set of data samples based on a predefined criterion and replaces the one or more identified data samples in the first set of data samples with the substitute data sample.
- a receiver for recovering clock and data from a bit stream includes an oversampling unit for receiving the bit stream and oversampling the received bit stream using a plurality of phases of a reference clock signal.
- the oversampling unit generates a first set of data samples.
- a serial-to-parallel data converter converts a serial stream of the first set of data samples into a plurality of parallel streams of data samples.
- a glitch removal circuit connected to the serial-to-parallel data converter removes glitches from the bit stream.
- the glitch removal circuit includes a bit-transition detecting unit that compares each data sample in the first set of data samples with a corresponding previous data sample to generate a second set of data samples.
- a glitch detecting unit connected to the bit-transition detecting unit compares the second set of data samples with one or more predefined bit masks to identify one or more data samples in the first set of data samples for replacement.
- a glitch filtering unit connected to the glitch detecting unit selects a substitute data sample from the first set of data samples based on a predefined criterion and for replacing the one or more data samples in the first set of data samples with the substitute data sample.
- a clock and data recovery unit connected to the glitch removal circuit recovers clock and data from the plurality of parallel streams of glitch free data samples.
- Various embodiments of the present invention provide a method and system for removing glitches from a bit stream in a data processing and communication system.
- the present invention can remove the glitches without any bit width alterations as in the case of delay circuits based glitch filtering methods.
- the system and method of the present invention can be used to implement an efficient clock and data recovery system.
- the glitch filter circuit of the present invention helps to reduce the overall BER at a receiver of a serial communication system.
- the system and method can be used in a number of applications where low BER is required.
- the present invention efficiently removes glitches and is insensitive to PVT variations.
- the method and system of the present invention facilitate removal of variable width glitches and glitches that may occur anywhere during the bit duration, such as near the transition ends.
- the present invention can be used in numerous applications where glitches of variable width may occur.
- the present invention is useful in applications related to data communication, image processing, video and audio signals processing, data processing systems, and the like.
- the present invention is particularly useful in clock and data recovery applications in high speed serial data transmission-based receivers used in data processing and communication system, for example, MIPI-MPHY, USB 3.0, SATA, and PCI Express.
- FIG. 3 a flowchart illustrating a method for removing glitches from a bit stream in a data processing and communication system in accordance with an embodiment of the present invention is shown.
- a serial data transmission system includes a transmitter module, a receiver module, and a transmission channel.
- the transmitter module transmits data serially over the transmission channel.
- the transmitted data does not include a clock signal.
- the receiver module receives the serial bit stream and recovers data from the received serial bit stream.
- the receiver module also performs a serial-to-parallel conversion to obtain parallel data streams.
- the parallel data streams assist the receiver module in operating at lower frequencies than the serial data transmission rate.
- the serial bit stream that is received at the receiver module is pre-encoded by the transmitter module using one of many standard encoding schemes, for example, 8b/10b encoding.
- the encoding scheme ensures a minimum and sufficient number of transitions in the bit stream.
- the transmitter and receiver modules may be a part of a wide area network. Alternatively, these modules may comprise integrated circuits located either on a single circuit board or on different circuit boards, or may be two IP blocks within the same chip.
- the transmission channel may be a satellite communication link, a fiber optic cable, a back plane connector, a chip-to-chip interconnect, and the like.
- the bit stream is received at the receiver and includes serially arranged bits B 0 , B 1 , B 2 , B 3 , and so on.
- a first set of data samples is generated by oversampling each bit in the bit stream using a plurality of sampling phases of a reference clock. The oversampling of each serially arranged bit is performed at the receiver module. Oversampling each bit B 0 , B 1 , B 2 , B 3 . . . to generate a first set of data samples will be explained in detail in conjunction with FIGS. 5A and 5B .
- each bit of the bit stream is over-sampled using eight sampling phases (Ph 0 to Ph 7 ) of the reference clock signal.
- a bit B 1 having a binary value 1 received in the bit stream is over-sampled using eight sampling phases and a set of eight data samples . . . ⁇ 1,0,1,1,1,1,1,1 ⁇ . . . is produced.
- the data sample having a binary value 0 represents a glitch
- the set of eight data samples ⁇ 1,0,1,1,1,1,1,1 ⁇ corresponds to the first set of data samples.
- the first set of data samples is converted into a plurality of parallel streams of data samples by a serial-to-parallel data converter.
- a second set of data samples is generated by comparing each data sample of the first set of data samples with a corresponding previous data sample.
- the immediately preceding data sample is used for the comparison.
- a data sample of bit B 1 corresponding to Ph 5 is compared with a data sample of bit B 1 corresponding to Ph 4 in the first set of data samples.
- a data sample of bit B 1 corresponding to Ph 0 is compared with a data sample of bit B 0 corresponding to Ph 7 in the first set of data samples.
- the first data sample is compared with the last data sample of the immediately preceding bit from the first set of data samples.
- the second sets of data samples are compared with one or more predefined bit masks.
- a starting data sample is identified corresponding to a position where the predefined bit masks match the second set of data samples.
- one or more data samples in the first set of data samples are identified for replacement based on the comparison of the second set of data samples with the one or more predefined bit masks.
- the starting data sample in the first set of data samples corresponds to a start position where the predefined bit mask matches the second set of data samples.
- One or more data samples following the starting data sample are identified for replacement.
- the predefined bit masks may be any desired pattern that is able to remove variable width glitches.
- the predefined bit masks may be a collection of any number and pattern of bits.
- SEQ — 1 ⁇ 1,1,1,0 ⁇
- SEQ — 2 ⁇ 1,1,0,0 ⁇ .
- four data samples starting from the first data sample are identified for replacement. The criteria used to identify the one or more data samples for replacement in the first set of data samples will be explained in detail in conjunction with FIGS. 4A and 4B , and FIGS. 5A and 5B .
- the identified one or more data samples in the first set of data samples are replaced with a substitute data sample.
- a data sample that is separated from the starting data sample by a predefined number of phases is selected as the substitute data sample.
- the substitute data sample is separated from the starting data sample by a predefined number of phases, and therefore has a high probability of being in a glitch free region.
- the resultant set of data samples is free from glitches. This resultant glitch-free set of data samples is temporarily stored in a memory buffer from where it may be retrieved for subsequent processing.
- the criteria used to determine the substitute data sample will be described in more detail in conjunction with FIGS. 4A and 4B , and FIGS. 5A and 5B .
- FIGS. 4A and 4B a flowchart illustrating a method for removing glitches from a bit stream in a data processing and communication system in accordance with an another embodiment of the present invention is shown.
- a first set of data samples is generated through oversampling each bit in the bit stream using a plurality of sampling phases of a reference clock.
- the sampling phases of the reference clock are partitioned into a plurality of sets of sampling phases. Further, each of the plurality of sets of sampling phases comprises one or more sampling phases. In accordance with various embodiments of the present invention, any desired number of sampling phases may be used for oversampling the bit stream, and the sampling phases may be partitioned into any desired number of sets of sampling phases.
- a total of eight sampling phases Ph 0 , Ph 1 , Ph 2 , Ph 3 , Ph 4 , Ph 5 , Ph 6 , and Ph 7 , are used to generate eight data samples for each bit.
- a sampling set may include any combination of phases.
- an XOR operation is performed on each data sample of the first set of data samples with a previous data sample to generate a second set of data samples.
- the previous data sample used is the immediately preceding data sample.
- a first sampling phase corresponding to a starting position of at least one of the one or more predefined bit masks in the second set of data samples is identified.
- a predefined number of a second set of data samples is associated with each data sample in the first set of data samples, in accordance with the width of the predefined bit masks.
- four data samples in the second set of data samples are associated with each data sample in the first set of data samples.
- (B 1 , S 0 ), (B 1 , S 1 ), (B 1 , S 2 ), and (B 1 , S 3 ) are associated with (B 1 , F 0 ).
- (B 1 , S 6 ), (B 1 , S 7 ), (B 2 , S 0 ), and (B 2 , S 1 ) are associated with (B 1 , F 6 ).
- each data sample from the first set of data samples with a second set of data samples will be explained in more detail in conjunction with FIG. 5B .
- the associated four data samples in the second set of data samples are compared with the predefined bit masks. If the four data samples match one of the predefined bit masks, the associated data sample in the first set of data samples is identified as a first data sample and the phase corresponding to the first data sample is identified as the first sampling phase.
- one or more data samples in the first set of data samples are identified for replacement.
- the data sample corresponding to the first sampling phase and one or more sampling phases following the first sampling phase in a set of sampling phases comprising the first sampling phase are identified for replacement.
- a second sampling phase is identified and a data sample from the first set of data samples corresponding to the second sampling phase is selected as a substitute data sample for replacing the one or more data samples in the first set of data samples.
- the second sampling phase is identified from one of the sets of sampling phases, such that the second sampling phase is separated from the first sampling phase by a predefined number of phases.
- the one or more data samples in the first set of data samples are replaced with the substitute data sample.
- the data samples corresponding to each set of sampling phases are independently processed using the steps above. Further, the independently processed data samples are collated to generate parallel stream of filtered data samples.
- FIG. 5A shows waveforms 502 and 504 , and a first set of data samples 506 corresponding to the waveform 504 .
- the waveform 502 corresponds to an ideal waveform of a bit stream transmitted by a transmitter
- waveform 504 corresponds to an actual waveform of the bit stream.
- the bit stream is over-sampled using a plurality of sampling phases of a reference clock to generate the first set of data samples 506 . Further, each bit, i.e. Bits B 0 , B 1 , B 2 , etc.
- the actual waveform includes two glitches, one positive and one negative (due to overshoots and undershoots), that effect the data samples 506 .
- the first set of data samples 506 shows a negative glitch at Ph 1 of bit B 1 and a positive glitch at Ph 1 of bit B 2 .
- FIG. 5B another diagram illustrating the data samples 506 of FIG. 5A is shown.
- FIG. 5B also shows a second set of data samples 508 , and a glitch-free set of data samples 510 .
- the first set of data samples includes data samples corresponding to bits B 0 , B 1 and B 2 , indicated at 512 a - h, 514 a - h, and 516 a - h, respectively.
- a predefined bit mask in the second set of data samples 508 is indicated at 518 a - d.
- a total of eight sampling phases (Ph 0 -Ph 7 ) are used to generate eight data samples for each bit in the bit stream.
- a XOR operation is performed on each data sample of the first set of data samples 506 with a corresponding previous data sample to generate a second set of data samples 508 .
- the immediately preceding set of data samples is XORed with the current set of data samples.
- F 0 and F 7 are data samples from the first set of data samples corresponding to Ph 0 of SS_ 1 and Ph 3 of SS_ 2 respectively.
- S 0 and S 1 are data samples from the second set of data samples corresponding to F 0 and F 1 (as shown in FIG. 5B ). The following is the bit stream obtained corresponding to bit B 1 using the expression mentioned above.
- the two predefined bit masks are selected to filter glitch corresponding to the second and subsequent data sample in each of the sampling sets. For example, for sampling sets “1011”, “1110” glitch ‘0’ is identified using the two predefined bit basks.
- bit B 1 the predefined bit masks matches in the second set of data samples starting from (B 1 , S 0 ).
- data sample (B 1 , F 0 ) is identified as first data sample and the corresponding phase, i.e. Ph 0 , is selected as the first sampling phase.
- the first data sample (B 1 , F 0 ) and the following data samples in SS_ 1 namely, (B 1 , F 1 ), (B 1 , F 2 ), and (B 1 , F 3 ), are identified for replacement.
- a second sampling phase is selected from the eight sampling phases, such that the second sampling phase is separated from the first sampling phase by a predefined number of phases.
- Ph 3 which is separated by two phases from the first sampling phase, is selected as the second sampling phase.
- the data sample corresponding to Ph 3 is selected as the substitute data sample, and four data samples in the first set of data samples are replaced with the substitute data sample. Further, the four data samples include the substitute data sample. Additionally, the substitute data sample lies in the middle of the oversampled bit stream and empirically has a very low probability of being a glitched data sample.
- This method is repeated for each set of data samples corresponding to each bit received in the bit stream. For example, the steps above are repeated for each sampling set of Bit B 2 and so on.
- bit B 1 the bit masks match the second set of data samples starting from (B 1 , S 3 ).
- the corresponding phase i.e., Ph 3
- the corresponding data sample i.e., (B 1 , F 3 )
- the data sample (B 1 , F 3 ) is the last data sample in set SS_ 1 , therefore, only one data sample is identified for replacement.
- a second sampling phase is selected from the eight sampling phases. Further, phase 0 of SS_ 1 and phase 2 of SS_ 2 , which are separated by two phases from the first sampling phase, are suitable for selection as the second sampling phase.
- phase 2 of SS_ 2 is farther from the bit boundary than phase 0 of SS_ 1 , and thus, phase 2 of SS_ 2 is selected as the second sampling phase.
- the data sample corresponding to phase 2 of SS_ 2 i.e. (B 1 , F 6 ) is selected as the substitute data sample. Accordingly, the data sample selected for replacement (B 1 , F 3 ) is replaced with the substitute data sample (B 1 , F 6 ).
- the one or more sampling phases in each sampling set are independently labeled.
- the four phases in sampling set SS_ 1 namely, Ph 0 , Ph 1 , Ph 2 , and Ph 3
- Q 0 , Q 1 , Q 2 , and Q 3 are labeled as Q 0 , Q 1 , Q 2 , and Q 3 , respectively.
- the four phases in sampling set SS_ 2 namely, Ph 0 , Ph 1 , Ph 2 , and Ph 3 , are also labeled as Q 0 , Q 1 , Q 2 , and Q 3 , respectively.
- the value of Q is determined that corresponds to the first sampling phase.
- ‘4 ⁇ Q’ data samples from the first set of data samples are identified for replacement, starting from the data sample corresponding to the first sampling phase. For example, if the starting position of the one or more predefined bit masks in the second set of data samples is (SS_ 1 ; Q 1 ), the sampling phase corresponding to (SS_ 1 ; Q 1 ) is selected as the first sampling phase. Thereafter, a total of three (4 ⁇ Q) data samples starting from (SS_ 1 ; Q 1 ) are identified for replacement.
- sampling phase corresponding to (SS_ 2 ; Q 0 ) which is separated from the first sampling phase by two phases (Q+3) and lies in the middle of the oversampled bit, is selected as the second sampling phase and the data sample corresponding to (SS_ 2 ; Q 0 ) is selected as the substitute data sample.
- the glitch removal circuit 604 includes a bit-transition detecting unit 606 , a glitch detecting unit 608 , a glitch filtering unit 610 , and a memory buffer unit 612 .
- the oversampling unit 602 over samples a bit stream using a plurality of sampling phases of a reference clock and generates a first set of data samples. Each bit in the bit stream is over sampled using the plurality of sampling phases.
- the first set of data samples is converted into a plurality of parallel streams of data samples by a serial-to-parallel data converter (not shown).
- the sampling phases of the reference clock are partitioned into a plurality of sets of sampling phases and each of the plurality of sets of sampling phases includes one or more sampling phases.
- the bit-transition detecting unit 606 is connected to the over sampling unit 602 and receives data samples in the first set of data samples and compares each data sample in the first set of data samples with a corresponding previous data sample to generate a second set of data sample.
- the immediately previous data sample is used for the comparison.
- the glitch detecting unit 608 is connected to the bit-transition detecting unit 606 and compares the second set of data samples with one or more predefined bit masks to mark one or more data samples in the first set of data samples for replacement.
- the glitch detecting unit 608 identifies a first sampling phase corresponding to a starting position of at least one of the one or more predefined bit masks in the second set of data samples.
- the first sampling phase is identified from each set of sampling phases for the first set of data samples corresponding to the bit. Further, the glitch detecting unit 608 identifies for replacement one or more data samples in the first set of data samples corresponding to the first sampling phase and the one or more sampling phases, following the first sampling phase in the set of sampling phases that includes the first sampling phase.
- the glitch filtering unit 610 is connected to the glitch detecting unit 608 and selects a second sampling phase from one of the plurality of sets of sampling phases, such that the second sampling phase is separated from the first sampling phase by a predefined number of phases.
- the data sample corresponding to the second sampling phase is selected as the substitute data sample.
- the glitch filtering unit 610 replaces the one or more data samples in the first set of data samples with the substitute data sample.
- the output of the glitch filtering unit 610 is a glitch-free bit stream that is then stored in the memory buffer unit 612 .
- multiple glitch removal circuits may be arranged in parallel to process data samples corresponding to multiple sampling sets. For example, M bits in a bit stream are over-sampled using N sampling phases to obtain M sets of data samples, in which each set of data samples includes N data samples.
- Multiple glitch removal circuits 604 are arranged in parallel, such that each glitch removal circuit 604 receives data samples corresponding to a set of sampling phases for the bits in the bit stream. If the eight sampling phases are partitioned into two sets of sampling phases, there may be twenty glitch removal circuits arranged in parallel to process the eighty data samples, each glitch removal circuit processing four data samples.
- the receiver system 700 includes an oversampling unit 602 , a serial-to-parallel data converter 708 , a clock divider unit 710 , a glitch removal circuit 604 , and a clock and data recovery unit 712 .
- the oversampling unit 602 includes a sampling unit 702 , a resynchronization unit 704 , and a multiple-phase clock unit 706 .
- the sampling unit 702 receives the bit stream and over-samples each bit of the received bit stream using a plurality of phases of a reference clock signal to generate a first set of data samples.
- the multiple-phase clock unit 706 generates the plurality of phases of a reference clock signal. In accordance with one embodiment of the present invention, the multiple-phase clock unit generates eight phases of a reference clock signal. Further, the multiple-phase clock unit 706 includes a delay locked loop (DLL), a phase locked loop (PLL), an interpolator, or a combination of the DLL, the PLL, and the interpolator to generate the eight phases of a reference clock signal.
- DLL delay locked loop
- PLL phase locked loop
- interpolator or a combination of the DLL, the PLL, and the interpolator to generate the eight phases of a reference clock signal.
- the resynchronization unit 704 receives the over-sampled data samples from the sampling unit 702 and synchronizes the sampling instants of the one or more sets of data samples. For example, the resynchronization unit 704 synchronizes the sampling instants in the first and the subsequent sets of data samples. Since data samples in each set of data samples are obtained at different time instants corresponding to a clock signal of the reference clock, the resynchronization unit 704 time shifts the various obtained data samples to align them to the clock signal. As a result, the data samples that belong to one reference clock signal are aggregated in a synchronized set of data samples. Similarly, one or mores set of data samples are aggregated in synchronized sets of data samples.
- the oversampling unit 602 provides the sets of data samples to the serial-to-parallel data converter 708 .
- the serial-to-parallel data converter 708 converts a serial stream of the first set of data samples into a plurality of parallel streams of data samples, as explained in conjunction with FIG. 6 .
- the clock divider unit 710 is provided with one of the multiple phases of the reference clock signal generated by the multiple-phase clock unit 706 as a first clock signal. Thereafter, the clock divider unit 710 converts the first clock signal into a second clock signal having a lower frequency as compared with the first clock signal. In accordance with an embodiment of the present invention, a second clock signal is generated that has a frequency equal to 1/M of the first clock signal. The second clock signal is provided to the serial-to-parallel data converter 708 and the clock and data recovery unit 712 to synchronize the transfer of the M parallel streams of the sets of data samples between the serial-to-parallel data converter 708 , and the clock and data recovery unit 712 .
- the serial to parallel converter data converter 708 generates M parallel streams of sets of data samples from a serial stream of set of data samples generated by the oversampling unit 602 . Further, the M parallel streams generated out of M ⁇ N data samples are provided to the glitch removal circuit 604 , connected to the serial-to-parallel data converter 708 .
- the glitch removal circuit 604 removes glitches from the bit stream. The working of the glitch removal circuit 604 is explained in detail in conjunction with FIG. 6 .
- the clock and data recovery unit 712 connected to the glitch removal circuit 604 , recovers clock and data from the one or more parallel streams of sets of data samples.
Landscapes
- Physics & Mathematics (AREA)
- Nonlinear Science (AREA)
- Dc Digital Transmission (AREA)
Abstract
Description
- The present invention relates generally to data processing and communication systems, and, more specifically, to a system and method for removing glitches from a bit stream of serially transmitted data.
- Electrical circuits generally operate in noisy environments. There are numerous sources that may introduce noise in input or output signals of electrical circuits, for example, reflection due to impedance mismatch between a source and load circuit, inductive and capacitive coupling in the circuit, cross-talk between signal lines, ringing, inter symbol interference (ISI) and other sources of disturbances. Such sources may generate unwanted components in the input or output signals of a transmitter or receiver circuit.
- In serial communication systems, a data signal is transmitted serially through a transmission channel and noise from different sources adds glitches to the data signal. The serially transmitted data signal is received at the receiver and includes serially arranged data bits. Each data bit sent through the transmission channel is represented by a high or low voltage level for a predetermined time period or ‘bit duration’, resulting in
logic values - Glitches may result in the wrong determination of the transmitted data bits that are received at the receiver. That is, a logic high signal sent by the transmitter may be determined as logic low and a logic low signal sent by the transmitter may be determined as logic high by the receiver. Thus, the glitches result in a high bit error rate (BER), and degrade the performance of the electrical circuit. Thus, if the glitches in the data signal are not removed, the overall function of the circuit is hampered and erroneous output may be produced.
- Existing glitch removal circuits have several drawbacks. For one, they use delay-circuits to remove glitches from a bit stream. Drawbacks in such delay-circuit based glitch removal circuits will be explained in conjunction with
FIGS. 1 and 2 . - Referring now to
FIG. 1A , a circuit diagram illustrating a conventional glitch removal circuit 100 is shown. The glitch removal circuit 100 includes a firstcombinational delay circuit 104 a, a secondcombinational delay circuit 104 b, and first andsecond NAND gates second NAND gates input bit stream 102 is provided to a first input of thefirst NAND gate 108 a. Theinput bit stream 102 is also provided to the firstcombinational delay circuit 104 a and anoutput 106 of the firstcombinational delay circuit 104 a is provided to a second input of thefirst NAND gate 108 a. Anoutput 110 of thefirst NAND gate 108 a is provided to a first input of thesecond NAND gate 108 b and to the secondcombinational delay circuit 104 b. Anoutput 112 of the secondcombinational delay circuit 104 b is provided to a second input of thesecond NAND gate 108 b. -
FIGS. 1B and 1C illustrate first and second timing diagrams of various signals of the conventional glitch removal circuit 100.FIG. 1B shows theinput bit stream 102;intermediate signals output signal 114. In this example, theinput bit stream 102 includes a transition from alogic 1 to alogic 0 that has a positive or high glitch ‘G’ in the middle of theinput bit stream 102. The firstcombinational delay circuit 104 a introduces a delay ‘d1’ in theinput bit stream 102 to generate theintermediate signal 106. Thefirst NAND gate 108 a performs a NAND operation on theinput bit stream 102 and theintermediate signal 106 to generate theintermediate signal 110. The secondcombinational delay circuit 104 b introduces a delay ‘d2’ in theintermediate signal 110 and generates theintermediate signal 112. The total delay introduced by the first and secondcombinational delay circuits input bit stream 102 is ‘d2−d1’. Finally, thesecond NAND gate 108 b performs a NAND operation on theintermediate signals output signal 114. In this case, to remove the glitch from theinput bit stream 102, delay ‘d1’ introduced by the firstcombinational delay circuit 104 a needs to be greater than the duration of the glitch ‘G’, i.e., d1>G. Additionally, the delay ‘d2’ introduced by the secondcombinational delay circuit 104 b needs to be greater than the sum of the delay d1 and the duration of the glitch ‘G’, i.e., d2>d1+G. Thus, thecombinational delay circuits - The glitch is removed from the
input bit stream 102 after performing the steps above and theoutput signal 114 is a glitch-free bit stream. However, the bit width L of theinput bit stream 102 has been shortened to bit width L′, that is the bit width has been shortened by a width equal to ‘d2−d1’. Similarly, if there is a negative or low glitch in the middle of theinput bit stream 102 then the bit width L′ is elongated by a width equal to ‘d2−d1’ (seeFIG. 1C ). This is undesirable because bit width alterations may lead to a high BER at the receiver. -
FIG. 1D is another example of a negative glitch in theinput bit stream 102. InFIG. 1C , the glitch occurred near the middle of theinput bit stream 102 while inFIG. 1D , the glitch occurs closer to a bit transition of theinput bit stream 102. Referring toFIG. 1D , theinput bit stream 102 includes a transition from alogic 0 to alogic 1 that has a negative or low glitch ‘G’ near the beginning of the transition end in theinput bit stream 102. The firstcombinational delay circuit 104 a introduces a delay ‘d1’ in theinput bit stream 102 to generate theintermediate signal 106. Thefirst NAND gate 108 a performs a NAND operation on theinput bit stream 102 and theintermediate signal 106 to generate theintermediate signal 110. The secondcombinational delay circuit 104 b introduces a delay ‘d2’ in theintermediate signal 110 and generates theintermediate signal 112. Finally, thesecond NAND gate 108 b performs a NAND operation on theintermediate signals output signal 114. As shown inFIG. 1D , a glitch G′ occurs near the transition end in theoutput signal 114. The glitch in the input signal occurs at a distance X from the transition end, where the value of X is less than the total delay introduced by the first and secondcombinational delay circuits input bit stream 102 after performing the steps above and theoutput signal 114 includes the glitch G′. - It is evident from
FIG. 1D , that the conventional glitch removal circuit 100 cannot remove glitches that are present near the transition ends of the signal received at the receiver. Further, it is evident fromFIGS. 1B and 1C that the conventional glitch removal circuit 100 alters the bit width while removing glitches present near the middle of the signal received at the receiver. Additionally, in order to remove glitches from the input bit stream there are specific design requirements in the conventional glitch removal circuits. - Referring now to
FIG. 2A , a block diagram illustrating another conventionalglitch removal circuit 200 is shown.FIG. 2A includes threesequential delay circuits XOR gate 210; and a multiplexer 214 (hereinafter “mux 214”). Additionally, a single clock input (not shown inFIG. 2A ) is connected to the threesequential delay circuits sequential delay circuits XOR gate 210; and themux 214 are connected in series. Aninput bit stream 202 is provided to an input of the firstsequential delay circuit 204 a and anoutput 206 of the firstsequential delay circuit 204 a is provided to the secondsequential delay circuit 204 b. Theoutput 206 is also provided to a first input of theXOR gate 210 and to a first input of themux 214. Further, anoutput 208 of the secondsequential delay circuit 204 b is provided to a second input of theXOR gate 210 and anoutput 212 of theXOR gate 210 is provided to a second input of themux 214. The second input to themux 214 is a control signal that is provided to a select line of themux 214. Anoutput 216 of themux 214 is provided to the thirdsequential delay circuit 204 c. Lastly, anoutput 218 of the thirdsequential delay circuit 204 c is provided to a second input of themux 214. -
FIG. 2B is a timing diagram illustrating various signals in the conventionalglitch removal circuit 200.FIG. 2B shows theinput bit stream 202;intermediate signals output signal 218. The firstsequential delay circuit 204 a receives theinput bit stream 202, which is generated by oversampling an input bit stream using an oversampling unit (not shown). Theinput bit stream 202 represents the bit stream that includes a transition from abit 0 to abit 1, and there is a negative glitch G near the transition end in theinput bit stream 202. The first and secondsequential delay circuits intermediate signals - If the
intermediate signals intermediate control signal 212 is logic low, and theintermediate signal 206 is provided as the output of themux 214 to generate theintermediate signal 216. However, if theintermediate signals intermediate control signal 212 is logic high, and thecurrent output signal 218 is provided as theoutput 216 of themux 214. - The third
unit delay circuit 204 c introduces a unit delay in theintermediate signal 216 to generate theoutput signal 218, which is fed back to themux 214. Themux 214 holds the output at the previous logic value of theinput bit stream 202 during bit transitions in theinput bit stream 202 and updates the output when there is no bit transition in theinput bit stream 202. Thesequential delay circuits input bit stream 202 to be used by themux 214. Thus, the glitch in theinput bit stream 202 is removed by maintaining the previous logic value, i.e. high or low at theoutput signal 218 during the bit transitions in theinput bit stream 202 and updating the new logic value at theoutput signal 218 during the bit non-transitions in theinput bit stream 202. However, a major shortcoming of the conventionalglitch removal circuit 200 is that the bit width L in theinput bit stream 202 is shortened to bit width L′ in theoutput signal 216. - Data processing and communication systems based on serial data transmission are particularly sensitive to glitches. High-Speed serial interfaces, such as Mobile Industry Processor Interface (MIPI), Serial AT Attachment (SATA), Universal Serial Bus (USB) 3.0, and Peripheral Component Interconnect (PCI) Express, use various clock and data recovery schemes. These clock and data recovery schemes rely on accurate detection of bit boundaries. Therefore, the clock and data recovery schemes are particularly sensitive to glitches. Additionally, for error free clock and data recovery and to maintain low BER at the receiver of the High-Speed serial interfaces, the input bit stream provided to the clock and data recovery circuit should include bits of equal widths (i.e., no shortening or elongation of bit widths) corresponding to logic low and logic high data.
- The conventional glitch removal circuits undesirably alter the bit widths while removing glitches from the received bit stream. Consequently, the probability of recovering correct data at the receiver by the clock and data recovery circuit decreases. It is desirable that the glitch removal circuits remove glitches of variable width and glitches that occur anywhere during the bit duration. Further, the delay introduced by the delay elements in the conventional glitch removal circuits varies with process, voltage, and temperature (PVT) variations, and hence, glitch removal operation is sensitive to the operating range of the circuit. It would be advantageous to have a glitch removal circuit that is independent of PVT variations. It also would be desirable to have a glitch removal circuit that can remove variable width glitches and does not alter the bit width of the input bit stream.
- The following detailed description of the preferred embodiments of the present invention will be better understood when read in conjunction with the appended drawings. The present invention is illustrated by way of example, and not limited by the accompanying figures, in which like references indicate similar elements.
-
FIG. 1A is a schematic block diagram of a first conventional glitch removal circuit; -
FIGS. 1B , 1C and 1D are timing diagrams illustrating various signals of the conventional glitch removal circuit ofFIG. 1 ; -
FIG. 2A is a schematic block diagram of a second conventional glitch removal circuit; -
FIG. 2B is a timing diagram illustrating various signals of the second conventional glitch removal circuit shown inFIG. 2A ; -
FIG. 3 is a flowchart illustrating a method for removing glitches from a bit stream in a data processing and communication system in accordance with an embodiment of the present invention; -
FIGS. 4A and 4B are flowcharts illustrating a method for removing glitches from a bit stream in a data processing and communication system in accordance with another embodiment of the present invention; -
FIG. 5A depicts ideal and actual waveforms of a bit stream and oversampled data samples corresponding to the actual waveform; -
FIG. 5B is a diagram illustrating data samples corresponding to a bit stream in accordance with an embodiment of the present invention; -
FIG. 6 is a schematic block diagram illustrating a glitch removal circuit in accordance with an embodiment of the present invention; and -
FIG. 7 is a schematic block diagram illustrating a receiver system in accordance with an embodiment of the present invention. - The detailed description of the appended drawings is intended as a description of the currently preferred embodiments of the present invention, and is not intended to represent the only form in which the present invention may be practiced. It is to be understood that the same or equivalent functions may be accomplished by different embodiments that are intended to be encompassed within the spirit and scope of the present invention.
- In accordance with an embodiment of the present invention, a method for removing glitches from a bit stream is provided. An input bit stream is over-sampled using a plurality of sampling phases of a reference clock to generate a first set of data samples. Each data sample in the first set of data samples is compared with a corresponding previous data sample to generate a second set of data samples. The second set of data samples is compared with one or more predefined bit masks to determine the location of any glitches and then one or more data samples in the first set of data samples are identified for replacement. A substitute data sample is selected from the first set of data samples based on a predefined criterion. Subsequently, one or more data samples in the first set of data samples are replaced with the substitute data sample.
- In accordance with another embodiment of the present invention, a system for removing glitches from a bit stream is provided. The system includes an oversampling unit for oversampling a bit stream using a plurality of sampling phases of a reference clock. The oversampling unit generates a first set of data samples. A bit-transition detecting unit is connected to the oversampling unit and compares each data sample in the first set of data samples with a corresponding previous data sample to generate a second set of data samples. The second set of data samples is used for detecting bit transitions in the first set of data samples. A glitch detecting unit connected to the bit-transition detecting unit compares the second set of data samples with one or more predefined bit masks to identify one or more data samples in the first set of data samples for replacement. A glitch filtering unit connected to the glitch detecting unit selects a substitute data sample from the first set of data samples based on a predefined criterion and replaces the one or more identified data samples in the first set of data samples with the substitute data sample.
- In accordance with yet another embodiment of the present invention, a receiver for recovering clock and data from a bit stream is provided. The receiver includes an oversampling unit for receiving the bit stream and oversampling the received bit stream using a plurality of phases of a reference clock signal. The oversampling unit generates a first set of data samples. A serial-to-parallel data converter converts a serial stream of the first set of data samples into a plurality of parallel streams of data samples. A glitch removal circuit connected to the serial-to-parallel data converter removes glitches from the bit stream. The glitch removal circuit includes a bit-transition detecting unit that compares each data sample in the first set of data samples with a corresponding previous data sample to generate a second set of data samples. A glitch detecting unit connected to the bit-transition detecting unit compares the second set of data samples with one or more predefined bit masks to identify one or more data samples in the first set of data samples for replacement. A glitch filtering unit connected to the glitch detecting unit selects a substitute data sample from the first set of data samples based on a predefined criterion and for replacing the one or more data samples in the first set of data samples with the substitute data sample. A clock and data recovery unit connected to the glitch removal circuit recovers clock and data from the plurality of parallel streams of glitch free data samples.
- Various embodiments of the present invention provide a method and system for removing glitches from a bit stream in a data processing and communication system. The present invention can remove the glitches without any bit width alterations as in the case of delay circuits based glitch filtering methods. The system and method of the present invention can be used to implement an efficient clock and data recovery system. Further, the glitch filter circuit of the present invention helps to reduce the overall BER at a receiver of a serial communication system. Additionally, the system and method can be used in a number of applications where low BER is required. Further, the present invention efficiently removes glitches and is insensitive to PVT variations. The method and system of the present invention facilitate removal of variable width glitches and glitches that may occur anywhere during the bit duration, such as near the transition ends.
- The present invention can be used in numerous applications where glitches of variable width may occur. The present invention is useful in applications related to data communication, image processing, video and audio signals processing, data processing systems, and the like. The present invention is particularly useful in clock and data recovery applications in high speed serial data transmission-based receivers used in data processing and communication system, for example, MIPI-MPHY, USB 3.0, SATA, and PCI Express.
- Referring now to
FIG. 3 , a flowchart illustrating a method for removing glitches from a bit stream in a data processing and communication system in accordance with an embodiment of the present invention is shown. - Generally, a serial data transmission system includes a transmitter module, a receiver module, and a transmission channel. The transmitter module transmits data serially over the transmission channel. The transmitted data does not include a clock signal. The receiver module receives the serial bit stream and recovers data from the received serial bit stream. The receiver module also performs a serial-to-parallel conversion to obtain parallel data streams. The parallel data streams assist the receiver module in operating at lower frequencies than the serial data transmission rate.
- In serial data transmission, the serial bit stream that is received at the receiver module is pre-encoded by the transmitter module using one of many standard encoding schemes, for example, 8b/10b encoding. The encoding scheme ensures a minimum and sufficient number of transitions in the bit stream. In accordance with various embodiments of the present invention, the transmitter and receiver modules may be a part of a wide area network. Alternatively, these modules may comprise integrated circuits located either on a single circuit board or on different circuit boards, or may be two IP blocks within the same chip. The transmission channel may be a satellite communication link, a fiber optic cable, a back plane connector, a chip-to-chip interconnect, and the like.
- The bit stream is received at the receiver and includes serially arranged bits B0, B1, B2, B3, and so on. At
step 302, a first set of data samples is generated by oversampling each bit in the bit stream using a plurality of sampling phases of a reference clock. The oversampling of each serially arranged bit is performed at the receiver module. Oversampling each bit B0, B1, B2, B3 . . . to generate a first set of data samples will be explained in detail in conjunction withFIGS. 5A and 5B . - In one example, each bit of the bit stream is over-sampled using eight sampling phases (
Ph 0 to Ph 7) of the reference clock signal. A bit B1 having abinary value 1 received in the bit stream is over-sampled using eight sampling phases and a set of eight data samples . . . {1,0,1,1,1,1,1,1} . . . is produced. In this example, the data sample having abinary value 0 represents a glitch, and the set of eight data samples {1,0,1,1,1,1,1,1} corresponds to the first set of data samples. The first set of data samples is converted into a plurality of parallel streams of data samples by a serial-to-parallel data converter. - At
step 304, a second set of data samples is generated by comparing each data sample of the first set of data samples with a corresponding previous data sample. In a preferred embodiment of the invention, the immediately preceding data sample is used for the comparison. For example, a data sample of bit B1 corresponding toPh 5 is compared with a data sample of bit B1 corresponding toPh 4 in the first set of data samples. In another example, a data sample of bit B1 corresponding toPh 0 is compared with a data sample of bit B0 corresponding toPh 7 in the first set of data samples. In this case, the first data sample is compared with the last data sample of the immediately preceding bit from the first set of data samples. The comparison of data samples to generate the second set of data samples will be explained in more detail in conjunction withFIG. 5B . - At
step 306, the second sets of data samples are compared with one or more predefined bit masks. A starting data sample is identified corresponding to a position where the predefined bit masks match the second set of data samples. Subsequently, atstep 308, one or more data samples in the first set of data samples are identified for replacement based on the comparison of the second set of data samples with the one or more predefined bit masks. The starting data sample in the first set of data samples corresponds to a start position where the predefined bit mask matches the second set of data samples. One or more data samples following the starting data sample are identified for replacement. - In accordance with various embodiments of the present invention, the predefined bit masks may be any desired pattern that is able to remove variable width glitches. The predefined bit masks may be a collection of any number and pattern of bits. For example, the predefined bit masks include
SEQ —1={1,1,1,0} andSEQ —2={1,1,0,0}. In the example discussed earlier, in the first set of data samples corresponding to bit B1−{1,0,1,1,1,1,1,1}, four data samples starting from the first data sample are identified for replacement. The criteria used to identify the one or more data samples for replacement in the first set of data samples will be explained in detail in conjunction withFIGS. 4A and 4B , andFIGS. 5A and 5B . - At
step 310, the identified one or more data samples in the first set of data samples are replaced with a substitute data sample. In one example, a data sample that is separated from the starting data sample by a predefined number of phases is selected as the substitute data sample. The substitute data sample is separated from the starting data sample by a predefined number of phases, and therefore has a high probability of being in a glitch free region. After replacing the one or more data samples in the first set of data samples, the resultant set of data samples is free from glitches. This resultant glitch-free set of data samples is temporarily stored in a memory buffer from where it may be retrieved for subsequent processing. The criteria used to determine the substitute data sample will be described in more detail in conjunction withFIGS. 4A and 4B , andFIGS. 5A and 5B . - Referring now to
FIGS. 4A and 4B , a flowchart illustrating a method for removing glitches from a bit stream in a data processing and communication system in accordance with an another embodiment of the present invention is shown. - At
step 402, a first set of data samples is generated through oversampling each bit in the bit stream using a plurality of sampling phases of a reference clock. - In accordance with one embodiment of the present invention, the sampling phases of the reference clock are partitioned into a plurality of sets of sampling phases. Further, each of the plurality of sets of sampling phases comprises one or more sampling phases. In accordance with various embodiments of the present invention, any desired number of sampling phases may be used for oversampling the bit stream, and the sampling phases may be partitioned into any desired number of sets of sampling phases.
- In one example, a total of eight sampling phases,
Ph 0,Ph 1,Ph 2,Ph 3,Ph 4,Ph 5,Ph 6, andPh 7, are used to generate eight data samples for each bit. The eight phases are partitioned into two sampling sets, and each sampling set includes four phases SS_1={Ph 0-Ph 3} and SS_2={Ph 4-Ph 7}. However, it will be apparent to a person of ordinary skill in the art that a sampling set may include any combination of phases. For example, each sampling set may include four phases where SS_1={Ph 2-Ph 5} and SS_2={Ph 6-Ph 1}. Partitioning eight data samples to generate two sampling sets will be explained in more detail in conjunction withFIG. 5B . - At
step 404, an XOR operation is performed on each data sample of the first set of data samples with a previous data sample to generate a second set of data samples. In a preferred embodiment of the invention, the previous data sample used is the immediately preceding data sample. - At
step 406, a first sampling phase corresponding to a starting position of at least one of the one or more predefined bit masks in the second set of data samples is identified. - In accordance with an alternative embodiment of the present invention, a predefined number of a second set of data samples is associated with each data sample in the first set of data samples, in accordance with the width of the predefined bit masks. In one example, four data samples in the second set of data samples are associated with each data sample in the first set of data samples. Thus, (B1, S0), (B1, S1), (B1, S2), and (B1, S3) are associated with (B1, F0). Similarly, (B1, S6), (B1, S7), (B2, S0), and (B2, S1) are associated with (B1, F6). Associating each data sample from the first set of data samples with a second set of data samples will be explained in more detail in conjunction with
FIG. 5B . The associated four data samples in the second set of data samples are compared with the predefined bit masks. If the four data samples match one of the predefined bit masks, the associated data sample in the first set of data samples is identified as a first data sample and the phase corresponding to the first data sample is identified as the first sampling phase. - At
step 408, one or more data samples in the first set of data samples are identified for replacement. In accordance with an embodiment of the present invention, the data sample corresponding to the first sampling phase and one or more sampling phases following the first sampling phase in a set of sampling phases comprising the first sampling phase are identified for replacement. - At
step 410, a second sampling phase is identified and a data sample from the first set of data samples corresponding to the second sampling phase is selected as a substitute data sample for replacing the one or more data samples in the first set of data samples. The second sampling phase is identified from one of the sets of sampling phases, such that the second sampling phase is separated from the first sampling phase by a predefined number of phases. Atstep 412, the one or more data samples in the first set of data samples are replaced with the substitute data sample. - In accordance with various embodiments of the present invention, the data samples corresponding to each set of sampling phases are independently processed using the steps above. Further, the independently processed data samples are collated to generate parallel stream of filtered data samples.
- Referring now to
FIG. 5A , ideal and actual waveforms of a bit stream and oversampled data samples corresponding to the actual waveform are depicted in accordance with an embodiment of the present invention.FIG. 5A showswaveforms data samples 506 corresponding to thewaveform 504. Thewaveform 502 corresponds to an ideal waveform of a bit stream transmitted by a transmitter, andwaveform 504 corresponds to an actual waveform of the bit stream. The bit stream is over-sampled using a plurality of sampling phases of a reference clock to generate the first set ofdata samples 506. Further, each bit, i.e. Bits B0, B1, B2, etc. is oversampled using a plurality of sampling phases of the reference clock. Note that the actual waveform includes two glitches, one positive and one negative (due to overshoots and undershoots), that effect thedata samples 506. The first set ofdata samples 506 shows a negative glitch atPh 1 of bit B1 and a positive glitch atPh 1 of bit B2. - Referring now to
FIG. 5B , another diagram illustrating thedata samples 506 ofFIG. 5A is shown.FIG. 5B also shows a second set ofdata samples 508, and a glitch-free set ofdata samples 510. The first set of data samples includes data samples corresponding to bits B0, B1 and B2, indicated at 512 a-h, 514 a-h, and 516 a-h, respectively. A predefined bit mask in the second set ofdata samples 508 is indicated at 518 a-d. - In the example shown in
FIG. 5B , a total of eight sampling phases (Ph 0-Ph 7) are used to generate eight data samples for each bit in the bit stream. The eight phases are partitioned into two sampling sets and each sampling set includes four phases SS_1={Ph 0-Ph 3} and SS_2={Ph 4-Ph 7}. - As discussed with reference to
FIG. 4A , a XOR operation is performed on each data sample of the first set ofdata samples 506 with a corresponding previous data sample to generate a second set ofdata samples 508. In the preferred embodiment, the immediately preceding set of data samples is XORed with the current set of data samples. The XOR operation is performed using the following expression: (B1, S0)=[(B1, F0) XOR (B0, F7)]; (B1, S1)=[(B1, F1) XOR (B1, F0)]; etc. In this expression, F0 and F7 are data samples from the first set of data samples corresponding toPh 0 of SS_1 andPh 3 of SS_2 respectively. Similarly, S0 and S1 are data samples from the second set of data samples corresponding to F0 and F1 (as shown inFIG. 5B ). The following is the bit stream obtained corresponding to bit B1 using the expression mentioned above. - {Bit B0 [F7], Bit B1 [F0], Bit B1 [F1] . . . Bit B1 [F7] }=[0, 1, 0, 1, 1, 1, 1, 1, 1]
- {Bit B1 [S0], Bit B1 [S1] . . . Bit B1 [S7]}=[1, 1, 1, 0, 0, 0, 0, 0].
- The second set of data samples is compared with two predefined bit masks, namely,
SEQ —1={1,1,1,0} andSEQ —2={1,1,0,0}. The two predefined bit masks are selected to filter glitch corresponding to the second and subsequent data sample in each of the sampling sets. For example, for sampling sets “1011”, “1110” glitch ‘0’ is identified using the two predefined bit basks. For bit B1, the predefined bit masks matches in the second set of data samples starting from (B1, S0). Thus data sample (B1, F0) is identified as first data sample and the corresponding phase, i.e.Ph 0, is selected as the first sampling phase. The first data sample (B1, F0) and the following data samples in SS_1, namely, (B1, F1), (B1, F2), and (B1, F3), are identified for replacement. - A second sampling phase is selected from the eight sampling phases, such that the second sampling phase is separated from the first sampling phase by a predefined number of phases.
- As shown in
FIG. 5B ,Ph 3, which is separated by two phases from the first sampling phase, is selected as the second sampling phase. The data sample corresponding toPh 3 is selected as the substitute data sample, and four data samples in the first set of data samples are replaced with the substitute data sample. Further, the four data samples include the substitute data sample. Additionally, the substitute data sample lies in the middle of the oversampled bit stream and empirically has a very low probability of being a glitched data sample. This method is repeated for each set of data samples corresponding to each bit received in the bit stream. For example, the steps above are repeated for each sampling set of Bit B2 and so on. - In another example, for bit B1, the bit masks match the second set of data samples starting from (B1, S3). The corresponding phase, i.e.,
Ph 3, is selected as the first sampling phase and the corresponding data sample, i.e., (B1, F3), is selected for replacement. Since the data sample (B1, F3) is the last data sample in set SS_1, therefore, only one data sample is identified for replacement. Thereafter, a second sampling phase is selected from the eight sampling phases. Further,phase 0 of SS_1 andphase 2 of SS_2, which are separated by two phases from the first sampling phase, are suitable for selection as the second sampling phase. In accordance with an embodiment of the present invention, in case two sampling phases are suitable for selection as the second sampling phase, then selection of the second sampling phase depends on the distance of the second sampling phase from the bit boundary. In this example, of the two sampling phases,phase 2 of SS_2 is farther from the bit boundary thanphase 0 of SS_1, and thus,phase 2 of SS_2 is selected as the second sampling phase. The data sample corresponding tophase 2 of SS_2, i.e. (B1, F6), is selected as the substitute data sample. Accordingly, the data sample selected for replacement (B1, F3) is replaced with the substitute data sample (B1, F6). - In accordance with another embodiment of the present invention, the one or more sampling phases in each sampling set are independently labeled. For example, the four phases in sampling set SS_1, namely,
Ph 0,Ph 1,Ph 2, andPh 3, are labeled as Q0, Q1, Q2, and Q3, respectively. Similarly, the four phases in sampling set SS_2, namely,Ph 0,Ph 1,Ph 2, andPh 3, are also labeled as Q0, Q1, Q2, and Q3, respectively. The value of Q is determined that corresponds to the first sampling phase. ‘4−Q’ data samples from the first set of data samples are identified for replacement, starting from the data sample corresponding to the first sampling phase. For example, if the starting position of the one or more predefined bit masks in the second set of data samples is (SS_1; Q1), the sampling phase corresponding to (SS_1; Q1) is selected as the first sampling phase. Thereafter, a total of three (4−Q) data samples starting from (SS_1; Q1) are identified for replacement. - Further, the sampling phase corresponding to (SS_2; Q0), which is separated from the first sampling phase by two phases (Q+3) and lies in the middle of the oversampled bit, is selected as the second sampling phase and the data sample corresponding to (SS_2; Q0) is selected as the substitute data sample.
- Referring now to
FIG. 6 , a block diagram of aglitch removal system 600 including an oversampling unit 602 and aglitch removal circuit 604 in accordance with an embodiment of the present invention is shown. Theglitch removal circuit 604 includes a bit-transition detecting unit 606, aglitch detecting unit 608, aglitch filtering unit 610, and amemory buffer unit 612. - The
oversampling unit 602 over samples a bit stream using a plurality of sampling phases of a reference clock and generates a first set of data samples. Each bit in the bit stream is over sampled using the plurality of sampling phases. The first set of data samples is converted into a plurality of parallel streams of data samples by a serial-to-parallel data converter (not shown). - In accordance with one embodiment of the present invention, the sampling phases of the reference clock are partitioned into a plurality of sets of sampling phases and each of the plurality of sets of sampling phases includes one or more sampling phases.
- The bit-
transition detecting unit 606 is connected to the oversampling unit 602 and receives data samples in the first set of data samples and compares each data sample in the first set of data samples with a corresponding previous data sample to generate a second set of data sample. In the presently preferred embodiment, the immediately previous data sample is used for the comparison. - The
glitch detecting unit 608 is connected to the bit-transition detecting unit 606 and compares the second set of data samples with one or more predefined bit masks to mark one or more data samples in the first set of data samples for replacement. Theglitch detecting unit 608 identifies a first sampling phase corresponding to a starting position of at least one of the one or more predefined bit masks in the second set of data samples. The first sampling phase is identified from each set of sampling phases for the first set of data samples corresponding to the bit. Further, theglitch detecting unit 608 identifies for replacement one or more data samples in the first set of data samples corresponding to the first sampling phase and the one or more sampling phases, following the first sampling phase in the set of sampling phases that includes the first sampling phase. - The
glitch filtering unit 610 is connected to theglitch detecting unit 608 and selects a second sampling phase from one of the plurality of sets of sampling phases, such that the second sampling phase is separated from the first sampling phase by a predefined number of phases. The data sample corresponding to the second sampling phase is selected as the substitute data sample. Thereafter, theglitch filtering unit 610 replaces the one or more data samples in the first set of data samples with the substitute data sample. The output of theglitch filtering unit 610 is a glitch-free bit stream that is then stored in thememory buffer unit 612. - In accordance with an embodiment of the present invention, multiple glitch removal circuits may be arranged in parallel to process data samples corresponding to multiple sampling sets. For example, M bits in a bit stream are over-sampled using N sampling phases to obtain M sets of data samples, in which each set of data samples includes N data samples. A serial-to-parallel data converter converts the M sets of data samples into M parallel streams of N data samples, and generates an M×N matrix of data samples. In one example, M=10 and N=8; thus, the serial-to-parallel data converter generates a matrix of eighty data samples. Multiple
glitch removal circuits 604 are arranged in parallel, such that eachglitch removal circuit 604 receives data samples corresponding to a set of sampling phases for the bits in the bit stream. If the eight sampling phases are partitioned into two sets of sampling phases, there may be twenty glitch removal circuits arranged in parallel to process the eighty data samples, each glitch removal circuit processing four data samples. - Referring now to
FIG. 7 , a block diagram illustrating areceiver system 700 in accordance with an embodiment of the present invention is shown. Thereceiver system 700 includes anoversampling unit 602, a serial-to-parallel data converter 708, aclock divider unit 710, aglitch removal circuit 604, and a clock anddata recovery unit 712. Theoversampling unit 602 includes asampling unit 702, aresynchronization unit 704, and a multiple-phase clock unit 706. - The
sampling unit 702 receives the bit stream and over-samples each bit of the received bit stream using a plurality of phases of a reference clock signal to generate a first set of data samples. The multiple-phase clock unit 706 generates the plurality of phases of a reference clock signal. In accordance with one embodiment of the present invention, the multiple-phase clock unit generates eight phases of a reference clock signal. Further, the multiple-phase clock unit 706 includes a delay locked loop (DLL), a phase locked loop (PLL), an interpolator, or a combination of the DLL, the PLL, and the interpolator to generate the eight phases of a reference clock signal. - The
resynchronization unit 704 receives the over-sampled data samples from thesampling unit 702 and synchronizes the sampling instants of the one or more sets of data samples. For example, theresynchronization unit 704 synchronizes the sampling instants in the first and the subsequent sets of data samples. Since data samples in each set of data samples are obtained at different time instants corresponding to a clock signal of the reference clock, theresynchronization unit 704 time shifts the various obtained data samples to align them to the clock signal. As a result, the data samples that belong to one reference clock signal are aggregated in a synchronized set of data samples. Similarly, one or mores set of data samples are aggregated in synchronized sets of data samples. - The
oversampling unit 602 provides the sets of data samples to the serial-to-parallel data converter 708. The serial-to-parallel data converter 708 converts a serial stream of the first set of data samples into a plurality of parallel streams of data samples, as explained in conjunction withFIG. 6 . - The
clock divider unit 710 is provided with one of the multiple phases of the reference clock signal generated by the multiple-phase clock unit 706 as a first clock signal. Thereafter, theclock divider unit 710 converts the first clock signal into a second clock signal having a lower frequency as compared with the first clock signal. In accordance with an embodiment of the present invention, a second clock signal is generated that has a frequency equal to 1/M of the first clock signal. The second clock signal is provided to the serial-to-parallel data converter 708 and the clock anddata recovery unit 712 to synchronize the transfer of the M parallel streams of the sets of data samples between the serial-to-parallel data converter 708, and the clock anddata recovery unit 712. Additionally, the serial to parallelconverter data converter 708 generates M parallel streams of sets of data samples from a serial stream of set of data samples generated by theoversampling unit 602. Further, the M parallel streams generated out of M×N data samples are provided to theglitch removal circuit 604, connected to the serial-to-parallel data converter 708. Theglitch removal circuit 604 removes glitches from the bit stream. The working of theglitch removal circuit 604 is explained in detail in conjunction withFIG. 6 . Lastly, the clock anddata recovery unit 712, connected to theglitch removal circuit 604, recovers clock and data from the one or more parallel streams of sets of data samples. - While various embodiments of the present invention have been illustrated and described, it will be clear that the present invention is not limited to these embodiments only. Numerous modifications, changes, variations, substitutions, and equivalents will be apparent to those skilled in the art, without departing from the spirit and scope of the present invention, as described in the claims.
Claims (20)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/688,907 US7986252B1 (en) | 2010-01-17 | 2010-01-17 | System and method for removing glitches from a bit stream |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/688,907 US7986252B1 (en) | 2010-01-17 | 2010-01-17 | System and method for removing glitches from a bit stream |
Publications (2)
Publication Number | Publication Date |
---|---|
US20110175758A1 true US20110175758A1 (en) | 2011-07-21 |
US7986252B1 US7986252B1 (en) | 2011-07-26 |
Family
ID=44277242
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US12/688,907 Expired - Fee Related US7986252B1 (en) | 2010-01-17 | 2010-01-17 | System and method for removing glitches from a bit stream |
Country Status (1)
Country | Link |
---|---|
US (1) | US7986252B1 (en) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110199142A1 (en) * | 2010-02-18 | 2011-08-18 | Telefonaktiebolaget Lm Ericsson (Publ) | Double clipped rf clock generation with spurious tone cancellation |
US8516290B1 (en) * | 2010-02-02 | 2013-08-20 | Smsc Holdings S.A.R.L. | Clocking scheme for bridge system |
US20150100815A1 (en) * | 2013-10-04 | 2015-04-09 | Cavium, Inc. | Method and Apparatus for Aligning Signals |
WO2015167680A1 (en) * | 2014-05-02 | 2015-11-05 | Qualcomm Incorporated | Clock and data recovery with high jitter tolerance and fast phase locking |
US20150333739A1 (en) * | 2014-04-28 | 2015-11-19 | Dsp Group Ltd. | Low latency glitch-free chip interface |
US20200091901A1 (en) * | 2018-09-14 | 2020-03-19 | Nxp Usa, Inc. | Glitch-free clock generator and method for generating glitch-free clock signal |
US20230061075A1 (en) * | 2021-08-27 | 2023-03-02 | Uestc (Shenzhen) Advanced Research Institute | Method and system for detecting glitch at high sampling rate |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10726122B2 (en) | 2017-07-03 | 2020-07-28 | Nxp B.V. | Automatic reset filter deactivation during critical security processes |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5748034A (en) * | 1995-06-07 | 1998-05-05 | Cirrus Logic, Inc. | Combinational logic circuit, system and method for eliminating both positive and negative glitches |
US7180966B2 (en) * | 2001-10-26 | 2007-02-20 | International Business Machines Corporation | Transition detection, validation and memorization circuit |
US7447254B1 (en) * | 2004-03-25 | 2008-11-04 | Cypress Semiconductor Corp. | Self-correlating pseudo-noise pairing |
-
2010
- 2010-01-17 US US12/688,907 patent/US7986252B1/en not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5748034A (en) * | 1995-06-07 | 1998-05-05 | Cirrus Logic, Inc. | Combinational logic circuit, system and method for eliminating both positive and negative glitches |
US7180966B2 (en) * | 2001-10-26 | 2007-02-20 | International Business Machines Corporation | Transition detection, validation and memorization circuit |
US7447254B1 (en) * | 2004-03-25 | 2008-11-04 | Cypress Semiconductor Corp. | Self-correlating pseudo-noise pairing |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8516290B1 (en) * | 2010-02-02 | 2013-08-20 | Smsc Holdings S.A.R.L. | Clocking scheme for bridge system |
US8489040B2 (en) * | 2010-02-18 | 2013-07-16 | Telefonaktiebolaget L M Ericsson (Publ) | Double clipped RF clock generation with spurious tone cancellation |
US20110199142A1 (en) * | 2010-02-18 | 2011-08-18 | Telefonaktiebolaget Lm Ericsson (Publ) | Double clipped rf clock generation with spurious tone cancellation |
US20150100815A1 (en) * | 2013-10-04 | 2015-04-09 | Cavium, Inc. | Method and Apparatus for Aligning Signals |
US9721627B2 (en) * | 2013-10-04 | 2017-08-01 | Cavium, Inc. | Method and apparatus for aligning signals |
US9673820B2 (en) * | 2014-04-28 | 2017-06-06 | Dsp Group Ltd. | Low latency glitch-free chip interface |
US20150333739A1 (en) * | 2014-04-28 | 2015-11-19 | Dsp Group Ltd. | Low latency glitch-free chip interface |
US9281934B2 (en) | 2014-05-02 | 2016-03-08 | Qualcomm Incorporated | Clock and data recovery with high jitter tolerance and fast phase locking |
WO2015167680A1 (en) * | 2014-05-02 | 2015-11-05 | Qualcomm Incorporated | Clock and data recovery with high jitter tolerance and fast phase locking |
US20200091901A1 (en) * | 2018-09-14 | 2020-03-19 | Nxp Usa, Inc. | Glitch-free clock generator and method for generating glitch-free clock signal |
US10715124B2 (en) * | 2018-09-14 | 2020-07-14 | Nxp Usa, Inc. | Glitch-free clock generator and method for generating glitch-free clock signal |
US20230061075A1 (en) * | 2021-08-27 | 2023-03-02 | Uestc (Shenzhen) Advanced Research Institute | Method and system for detecting glitch at high sampling rate |
US11965929B2 (en) * | 2021-08-27 | 2024-04-23 | Uestc (Shenzhen) Advanced Research Institute | Method and system for detecting glitch at high sampling rate |
Also Published As
Publication number | Publication date |
---|---|
US7986252B1 (en) | 2011-07-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7986252B1 (en) | System and method for removing glitches from a bit stream | |
EP0679307B1 (en) | Delay line separator for data bus | |
US7684531B2 (en) | Data recovery method and data recovery circuit | |
US9432176B2 (en) | Circuit and method for clock and data recovery | |
CN100483946C (en) | Digital phaselocked loop circuit and method | |
US6266799B1 (en) | Multi-phase data/clock recovery circuitry and methods for implementing same | |
US8180007B2 (en) | Method for clock and data recovery | |
US8458546B2 (en) | Oversampled clock and data recovery with extended rate acquisition | |
US6374361B1 (en) | Skew-insensitive low voltage differential receiver | |
EP0705003A2 (en) | Refined timing recovery circuit | |
CN101540158B (en) | Apparatus and method for transmitting and receiving data bit | |
CN101742723B (en) | Information processing apparatus and duplex transmission method | |
US8989214B2 (en) | High-speed serial data signal receiver circuitry | |
JP6808641B2 (en) | Clock and data recovery for pulse-based multi-wire links | |
JP5086014B2 (en) | Data recovery method and data recovery circuit | |
CN108694148B (en) | Method and apparatus for Universal Serial Bus (USB) communication | |
JP5286845B2 (en) | Data recovery circuit | |
US6389090B2 (en) | Digital clock/data signal recovery method and apparatus | |
EP1009125A2 (en) | Bit synchronization circuit oversampling received data to determine content thereof | |
US8693604B2 (en) | Receiving apparatus and receiving method | |
US7505533B2 (en) | Clock data recovery circuit with phase decision circuit | |
Park et al. | A single-data-bit blind oversampling data-recovery circuit with an add-drop FIFO for USB2. 0 high-speed interface | |
JP2012205204A (en) | Communication apparatus and communication method | |
US20060098770A1 (en) | Synchronizer for passing data from a first system to a second system | |
JP2006109082A (en) | Data transmitting/receiving method and data transmitter/receiver |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: FREESCALE SEMICONDUCTOR, INC., TEXAS Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:IQBAL, ASIF;AGRAWAL, GIRRAJ K;PAL, ANKIT;REEL/FRAME:023800/0284 Effective date: 20091123 |
|
AS | Assignment |
Owner name: CITIBANK, N.A., AS NOTES COLLATERAL AGENT, NEW YOR Free format text: SECURITY AGREEMENT;ASSIGNOR:FREESCALE SEMICONDUCTOR, INC.;REEL/FRAME:024915/0777 Effective date: 20100506 Owner name: CITIBANK, N.A., AS COLLATERAL AGENT, NEW YORK Free format text: SECURITY AGREEMENT;ASSIGNOR:FREESCALE SEMICONDUCTOR, INC.;REEL/FRAME:024915/0759 Effective date: 20100506 |
|
AS | Assignment |
Owner name: CITIBANK, N.A., AS COLLATERAL AGENT, NEW YORK Free format text: SECURITY AGREEMENT;ASSIGNOR:FREESCALE SEMICONDUCTOR, INC.;REEL/FRAME:024933/0340 Effective date: 20100506 Owner name: CITIBANK, N.A., AS NOTES COLLATERAL AGENT, NEW YOR Free format text: SECURITY AGREEMENT;ASSIGNOR:FREESCALE SEMICONDUCTOR, INC.;REEL/FRAME:024933/0316 Effective date: 20100506 |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
AS | Assignment |
Owner name: CITIBANK, N.A., AS NOTES COLLATERAL AGENT, NEW YOR Free format text: SECURITY AGREEMENT;ASSIGNOR:FREESCALE SEMICONDUCTOR, INC.;REEL/FRAME:030633/0424 Effective date: 20130521 |
|
AS | Assignment |
Owner name: CITIBANK, N.A., AS NOTES COLLATERAL AGENT, NEW YOR Free format text: SECURITY AGREEMENT;ASSIGNOR:FREESCALE SEMICONDUCTOR, INC.;REEL/FRAME:031591/0266 Effective date: 20131101 |
|
FPAY | Fee payment |
Year of fee payment: 4 |
|
AS | Assignment |
Owner name: FREESCALE SEMICONDUCTOR, INC., TEXAS Free format text: PATENT RELEASE;ASSIGNOR:CITIBANK, N.A., AS COLLATERAL AGENT;REEL/FRAME:037357/0194 Effective date: 20151207 Owner name: FREESCALE SEMICONDUCTOR, INC., TEXAS Free format text: PATENT RELEASE;ASSIGNOR:CITIBANK, N.A., AS COLLATERAL AGENT;REEL/FRAME:037356/0866 Effective date: 20151207 Owner name: FREESCALE SEMICONDUCTOR, INC., TEXAS Free format text: PATENT RELEASE;ASSIGNOR:CITIBANK, N.A., AS COLLATERAL AGENT;REEL/FRAME:037356/0027 Effective date: 20151207 Owner name: FREESCALE SEMICONDUCTOR, INC., TEXAS Free format text: PATENT RELEASE;ASSIGNOR:CITIBANK, N.A., AS COLLATERAL AGENT;REEL/FRAME:037357/0120 Effective date: 20151207 |
|
AS | Assignment |
Owner name: MORGAN STANLEY SENIOR FUNDING, INC., MARYLAND Free format text: ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS;ASSIGNOR:CITIBANK, N.A.;REEL/FRAME:037486/0517 Effective date: 20151207 |
|
AS | Assignment |
Owner name: MORGAN STANLEY SENIOR FUNDING, INC., MARYLAND Free format text: ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS;ASSIGNOR:CITIBANK, N.A.;REEL/FRAME:037518/0292 Effective date: 20151207 |
|
AS | Assignment |
Owner name: MORGAN STANLEY SENIOR FUNDING, INC., MARYLAND Free format text: SECURITY AGREEMENT SUPPLEMENT;ASSIGNOR:NXP B.V.;REEL/FRAME:038017/0058 Effective date: 20160218 |
|
AS | Assignment |
Owner name: MORGAN STANLEY SENIOR FUNDING, INC., MARYLAND Free format text: SUPPLEMENT TO THE SECURITY AGREEMENT;ASSIGNOR:FREESCALE SEMICONDUCTOR, INC.;REEL/FRAME:039138/0001 Effective date: 20160525 |
|
AS | Assignment |
Owner name: MORGAN STANLEY SENIOR FUNDING, INC., MARYLAND Free format text: CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12092129 PREVIOUSLY RECORDED ON REEL 038017 FRAME 0058. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT;ASSIGNOR:NXP B.V.;REEL/FRAME:039361/0212 Effective date: 20160218 |
|
AS | Assignment |
Owner name: NXP, B.V., F/K/A FREESCALE SEMICONDUCTOR, INC., NETHERLANDS Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:MORGAN STANLEY SENIOR FUNDING, INC.;REEL/FRAME:040925/0001 Effective date: 20160912 Owner name: NXP, B.V., F/K/A FREESCALE SEMICONDUCTOR, INC., NE Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:MORGAN STANLEY SENIOR FUNDING, INC.;REEL/FRAME:040925/0001 Effective date: 20160912 |
|
AS | Assignment |
Owner name: NXP B.V., NETHERLANDS Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:MORGAN STANLEY SENIOR FUNDING, INC.;REEL/FRAME:040928/0001 Effective date: 20160622 |
|
AS | Assignment |
Owner name: NXP USA, INC., TEXAS Free format text: CHANGE OF NAME;ASSIGNOR:FREESCALE SEMICONDUCTOR, INC.;REEL/FRAME:040652/0241 Effective date: 20161107 Owner name: NXP USA, INC., TEXAS Free format text: MERGER;ASSIGNOR:FREESCALE SEMICONDUCTOR, INC.;REEL/FRAME:040652/0241 Effective date: 20161107 |
|
AS | Assignment |
Owner name: NXP USA, INC., TEXAS Free format text: CORRECTIVE ASSIGNMENT TO CORRECT THE NATURE OF CONVEYANCE PREVIOUSLY RECORDED AT REEL: 040652 FRAME: 0241. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER AND CHANGE OF NAME;ASSIGNOR:FREESCALE SEMICONDUCTOR, INC.;REEL/FRAME:041260/0850 Effective date: 20161107 |
|
AS | Assignment |
Owner name: MORGAN STANLEY SENIOR FUNDING, INC., MARYLAND Free format text: CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE PATENTS 8108266 AND 8062324 AND REPLACE THEM WITH 6108266 AND 8060324 PREVIOUSLY RECORDED ON REEL 037518 FRAME 0292. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS;ASSIGNOR:CITIBANK, N.A.;REEL/FRAME:041703/0536 Effective date: 20151207 |
|
AS | Assignment |
Owner name: MORGAN STANLEY SENIOR FUNDING, INC., MARYLAND Free format text: CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12681366 PREVIOUSLY RECORDED ON REEL 039361 FRAME 0212. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT;ASSIGNOR:NXP B.V.;REEL/FRAME:042762/0145 Effective date: 20160218 Owner name: MORGAN STANLEY SENIOR FUNDING, INC., MARYLAND Free format text: CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12681366 PREVIOUSLY RECORDED ON REEL 038017 FRAME 0058. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT;ASSIGNOR:NXP B.V.;REEL/FRAME:042985/0001 Effective date: 20160218 |
|
AS | Assignment |
Owner name: SHENZHEN XINGUODU TECHNOLOGY CO., LTD., CHINA Free format text: CORRECTIVE ASSIGNMENT TO CORRECT THE TO CORRECT THE APPLICATION NO. FROM 13,883,290 TO 13,833,290 PREVIOUSLY RECORDED ON REEL 041703 FRAME 0536. ASSIGNOR(S) HEREBY CONFIRMS THE THE ASSIGNMENT AND ASSUMPTION OF SECURITYINTEREST IN PATENTS.;ASSIGNOR:MORGAN STANLEY SENIOR FUNDING, INC.;REEL/FRAME:048734/0001 Effective date: 20190217 |
|
FEPP | Fee payment procedure |
Free format text: MAINTENANCE FEE REMINDER MAILED (ORIGINAL EVENT CODE: REM.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
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 |
|
STCH | Information on status: patent discontinuation |
Free format text: PATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362 |
|
AS | Assignment |
Owner name: NXP B.V., NETHERLANDS Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:MORGAN STANLEY SENIOR FUNDING, INC.;REEL/FRAME:050744/0097 Effective date: 20190903 Owner name: NXP B.V., NETHERLANDS Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:MORGAN STANLEY SENIOR FUNDING, INC.;REEL/FRAME:050745/0001 Effective date: 20190903 |
|
FP | Lapsed due to failure to pay maintenance fee |
Effective date: 20190726 |
|
AS | Assignment |
Owner name: MORGAN STANLEY SENIOR FUNDING, INC., MARYLAND Free format text: CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12298143 PREVIOUSLY RECORDED ON REEL 042762 FRAME 0145. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT;ASSIGNOR:NXP B.V.;REEL/FRAME:051145/0184 Effective date: 20160218 Owner name: MORGAN STANLEY SENIOR FUNDING, INC., MARYLAND Free format text: CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12298143 PREVIOUSLY RECORDED ON REEL 039361 FRAME 0212. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT;ASSIGNOR:NXP B.V.;REEL/FRAME:051029/0387 Effective date: 20160218 Owner name: MORGAN STANLEY SENIOR FUNDING, INC., MARYLAND Free format text: CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12298143 PREVIOUSLY RECORDED ON REEL 042985 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT;ASSIGNOR:NXP B.V.;REEL/FRAME:051029/0001 Effective date: 20160218 Owner name: MORGAN STANLEY SENIOR FUNDING, INC., MARYLAND Free format text: CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION12298143 PREVIOUSLY RECORDED ON REEL 039361 FRAME 0212. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT;ASSIGNOR:NXP B.V.;REEL/FRAME:051029/0387 Effective date: 20160218 Owner name: MORGAN STANLEY SENIOR FUNDING, INC., MARYLAND Free format text: CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12298143 PREVIOUSLY RECORDED ON REEL 038017 FRAME 0058. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT;ASSIGNOR:NXP B.V.;REEL/FRAME:051030/0001 Effective date: 20160218 Owner name: MORGAN STANLEY SENIOR FUNDING, INC., MARYLAND Free format text: CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION12298143 PREVIOUSLY RECORDED ON REEL 042985 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT;ASSIGNOR:NXP B.V.;REEL/FRAME:051029/0001 Effective date: 20160218 Owner name: MORGAN STANLEY SENIOR FUNDING, INC., MARYLAND Free format text: CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION12298143 PREVIOUSLY RECORDED ON REEL 042762 FRAME 0145. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT;ASSIGNOR:NXP B.V.;REEL/FRAME:051145/0184 Effective date: 20160218 |
|
AS | Assignment |
Owner name: MORGAN STANLEY SENIOR FUNDING, INC., MARYLAND Free format text: CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION11759915 AND REPLACE IT WITH APPLICATION 11759935 PREVIOUSLY RECORDED ON REEL 037486 FRAME 0517. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT AND ASSUMPTION OF SECURITYINTEREST IN PATENTS;ASSIGNOR:CITIBANK, N.A.;REEL/FRAME:053547/0421 Effective date: 20151207 |
|
AS | Assignment |
Owner name: NXP B.V., NETHERLANDS Free format text: CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVEAPPLICATION 11759915 AND REPLACE IT WITH APPLICATION11759935 PREVIOUSLY RECORDED ON REEL 040928 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE RELEASE OF SECURITYINTEREST;ASSIGNOR:MORGAN STANLEY SENIOR FUNDING, INC.;REEL/FRAME:052915/0001 Effective date: 20160622 |
|
AS | Assignment |
Owner name: NXP, B.V. F/K/A FREESCALE SEMICONDUCTOR, INC., NETHERLANDS Free format text: CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVEAPPLICATION 11759915 AND REPLACE IT WITH APPLICATION11759935 PREVIOUSLY RECORDED ON REEL 040925 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE RELEASE OF SECURITYINTEREST;ASSIGNOR:MORGAN STANLEY SENIOR FUNDING, INC.;REEL/FRAME:052917/0001 Effective date: 20160912 |