CN113054995A - 时钟数据恢复方法及装置 - Google Patents
时钟数据恢复方法及装置 Download PDFInfo
- Publication number
- CN113054995A CN113054995A CN202110335743.4A CN202110335743A CN113054995A CN 113054995 A CN113054995 A CN 113054995A CN 202110335743 A CN202110335743 A CN 202110335743A CN 113054995 A CN113054995 A CN 113054995A
- Authority
- CN
- China
- Prior art keywords
- data
- edge
- clock
- sampling
- edges
- 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
- 238000011084 recovery Methods 0.000 title claims abstract description 84
- 238000000034 method Methods 0.000 title claims abstract description 45
- 238000005070 sampling Methods 0.000 claims abstract description 168
- 230000003111 delayed effect Effects 0.000 claims abstract description 64
- 230000005540 biological transmission Effects 0.000 claims abstract description 39
- 238000004364 calculation method Methods 0.000 claims abstract description 23
- 238000000605 extraction Methods 0.000 claims description 7
- 238000010586 diagram Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 6
- 101100129590 Schizosaccharomyces pombe (strain 972 / ATCC 24843) mcp5 gene Proteins 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 2
- 238000005206 flow analysis Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000010363 phase shift Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03L—AUTOMATIC CONTROL, STARTING, SYNCHRONISATION OR STABILISATION OF GENERATORS OF ELECTRONIC OSCILLATIONS OR PULSES
- H03L7/00—Automatic control of frequency or phase; Synchronisation
- H03L7/06—Automatic control of frequency or phase; Synchronisation using a reference signal applied to a frequency- or phase-locked loop
- H03L7/08—Details of the phase-locked loop
Landscapes
- Synchronisation In Digital Transmission Systems (AREA)
Abstract
本申请涉及一种时钟数据恢复方法及装置,首先对接收到的时钟数据进行过采样,得到采样数据,然后将当前采样数据与上一个时钟周期过采样得到的采样数据的最低位进行拼接,得到拼接数据,接着获取拼接数据的边沿信息,计算得到边沿数量,再基于采样数据进行延迟,得到延迟后的数据,根据延迟后的数据和边沿数量,获取不同边沿数量对应的采样值,然后从各采样值中选择一路输出作为恢复后的时钟数据输出。本时钟数据恢复方法能够在时钟数据恢复工作频率等于数据传输速率的情况下,从掺杂着一定程度时钟抖动的异步串行数据中恢复出发送端发送数据时的时钟和数据,工作时钟频率要求低,使用可靠。
Description
技术领域
本申请涉及数据处理技术领域,特别是涉及一种时钟数据恢复方法及装置。
背景技术
在当前多种多样的硬件设计中,单板之间甚至是芯片与芯片之间都需要进行大量的数据交换。基本的数据传输方式包含并行和串行两种传输方式。串行传输时数据被一位一位地进行传输,一般而言,串行发送端会有编码器和并串转换器,而接收端有时钟数据恢复电路、串并转换器和解码器。串行传输时为了减少信号线的数量,一般只发送数据信号,在这种情况下数据的接收端就需要正确的恢复出发送端的数据与时钟,这个工作就需要时钟数据恢复电路来完成。
传统的时钟数据恢复电路使用较多的方式是鉴相编码,鉴相编码的实现方式为:使用时钟频率是异步传输速率的N倍的时钟对过采样得到的采样值进行编码,然后选择编码值最靠近中心的值对应的采样值作为最佳的采样值进行输出。然而,随着串行传输速率提高,时钟数据恢复电路的工作时钟的频率也会随之提高,过高的时钟频率在可编程器件内部是无法产生的,导致时钟数据恢复失败,传统的时钟数据恢复使用不可靠。
发明内容
基于此,有必要针对传统的时钟数据恢复使用不可靠问题,提供一种时钟数据恢复方法及装置。
一种时钟数据恢复方法,包括以下步骤:
对接收到的时钟数据进行过采样,得到采样数据;
将当前采样数据与上一个时钟周期过采样得到的采样数据的最低位进行拼接,得到拼接数据;
获取所述拼接数据的边沿信息,计算得到边沿数量;
基于所述采样数据进行延迟,得到延迟后的数据;
根据所述延迟后的数据和所述边沿数量,获取不同边沿数量对应的采样值;
从各所述采样值中选择一路输出作为恢复后的时钟数据输出。
一种时钟数据恢复装置,包括:
采样模块,用于对接收到的时钟数据进行过采样,得到采样数据;
数据拼接模块,用于将当前采样数据与上一个时钟周期过采样得到的采样数据的最低位进行拼接,得到拼接数据;
数据边沿提取模块,用于获取所述拼接数据的边沿信息,计算得到边沿数量;
数据延迟模块,用于基于所述采样数据进行延迟,得到延迟后的数据;
采样判决模块,用于根据所述延迟后的数据和所述边沿数量,获取不同边沿数量对应的采样值;
时钟数据恢复输出选择模块,用于从各所述采样值中选择一路输出作为恢复后的时钟数据输出。
上述时钟数据恢复方法及装置,首先对接收到的时钟数据进行过采样,得到采样数据,然后将当前采样数据与上一个时钟周期过采样得到的采样数据的最低位进行拼接,得到拼接数据,接着获取拼接数据的边沿信息,计算得到边沿数量,再基于采样数据进行延迟,得到延迟后的数据,根据延迟后的数据和边沿数量,获取不同边沿数量对应的采样值,然后从各采样值中选择一路输出作为恢复后的时钟数据输出。基于过采样得到的采样数据,得到延迟后的数据、数据的边沿信息和边沿数量,从而确定不同边沿数量对应的采样值,从各采样值中选择一路输出作为恢复后的时钟数据输出,从而完成时钟数据在接收端的数据恢复。本时钟数据恢复方法能够在时钟数据恢复工作频率等于数据传输速率的情况下,从掺杂着一定程度时钟抖动的异步串行数据中恢复出发送端发送数据时的时钟和数据,工作时钟频率要求低,使用可靠。
在其中一个实施例中,所述对接收到的时钟数据进行过采样,得到采样数据,包括:
对接收到的时钟数据进行8倍过采样,得到采样数据。
在其中一个实施例中,所述获取所述拼接数据的边沿信息,计算得到边沿数量,包括:
对所述拼接数据中相邻的两位进行异或计算,得到边沿信息;
对所述边沿信息中各个位对应的数值进行累加,计算得到边沿数量。
在其中一个实施例中,所述基于所述采样数据进行延迟,得到延迟后的数据,包括:
将所述采样数据延迟一个时钟周期后赋值给第一延迟数据,将所述第一延迟数据延迟一个时钟周期,得到延迟后的数据。
在其中一个实施例中,所述根据所述延迟后的数据和所述边沿数量,获取不同边沿数量对应的采样值,包括:
当所述边沿数量为0时,根据所述边沿信息确定数据的遗留边沿标志和遗留边沿数据位置锁存;
根据所述数据的遗留边沿标志、所述遗留边沿数据位置锁存、所述边沿数量和所述延迟后的数据得到当所述边沿数量为0时对应的采样值。
在其中一个实施例中,所述根据所述延迟后的数据和所述边沿数量,获取不同边沿数量对应的采样值,包括:
当所述边沿数量为1时,根据所述边沿信息确定数据的遗留边沿标志;
将所述边沿信息延迟一个时钟周期,得到边沿延迟数据;
根据所述数据的遗留边沿标志、所述边沿延迟数据、所述边沿数量和所述延迟后的数据得到当所述边沿数量为1时对应的采样值。
在其中一个实施例中,所述根据所述延迟后的数据和所述边沿数量,获取不同边沿数量对应的采样值,包括:
当所述边沿数量为2时,根据所述边沿信息确定遗留边沿数据位置锁存;
将所述边沿信息延迟一个时钟周期,得到边沿延迟数据;
根据所述遗留边沿数据位置锁存、所述边沿延迟数据、所述边沿数量和所述延迟后的数据得到当所述边沿数量为2时对应的采样值。
在其中一个实施例中,所述采样值包括最佳数据、最佳数据的有效标志和最佳数据采样位置锁存,所述从各所述采样值中选择一路输出作为恢复后的时钟数据输出,包括:
根据所述边沿延迟数据从各所述最佳数据中选择一个作为恢复后的时钟数据输出,从各所述最佳数据的有效标志中选择一个作为恢复后的时钟数据输出;
根据所述边沿数量从各所述最佳数据采样位置锁存中选择一个作为上一时刻的最佳采样位置的锁存值。
在其中一个实施例中,所述时钟数据的传输速率为125Mbps。
附图说明
图1为一个实施例中时钟数据恢复方法的流程图;
图2为另一个实施例中时钟数据恢复方法的流程图;
图3为一个实施例中时钟数据恢复方法的原理框图;
图4为一个实施例中串行发送端的时钟与数据的关系图;
图5为一个实施例中时钟数据恢复方法的工作过程示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下通过实施例,并结合附图,对本申请进行更加全面的描述。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。
在一个实施中,提供一种时钟数据恢复方法,该方法可通过可编程器件实现,该方法主要用于在接收端对异步串行传输的时钟数据进行恢复。串行传输时,数据被一位一位地进行传输。一般而言,串行发送端会有编码器和并串转换器,而接收端有时钟数据恢复电路、串并转换器和解码器。串行传输主要的优点包括:异步串行传输方式最少只需要一对传输线,降低了板级布线的复杂程度,由于传输的媒介减少,并行传输中的信号串扰问题将得到改善,从而可以提升整体的传输速率,串行传输时为了减少信号线的数量,一般只发送数据信号,在这种情况下数据的接收端就需要正确的恢复出发送端的数据与时钟,这个工作可通过时钟数据恢复方法来完成。请参见图1,CDR(Clock data recover,时钟数据恢复)方法包括以下步骤:
步骤S100:对接收到的时钟数据进行过采样,得到采样数据。
对接收到的时钟数据进行过采样是指在当前时钟周期内对时钟数据进行过采样。由于时钟数据在发送过程中可能会发生时钟抖动,且时钟数据是异步传输的,因此在接收端接收到的时钟数据会存在相移以及码元宽度变长或是变短的现象。时钟数据传输速率并不是唯一的,在本实施例中,以时钟数据的传输速率为125Mbps为例,时钟数据恢复电路在接收端的工作频率为125Mhz,在125Mbps的传输实例中发送端发出的数据与发送时钟的关系如图4所示,可以看到一个标准的码元周期是8ns。但是由于是异步传输并且还伴随着数据发送过程中的时钟抖动,在接收端接收时收到的数据会存在相移以及码元宽度变长或是变短的现象,如图5所示。从图5中可以看出在tick1时刻对应的地方,接收到的时钟数据pi_data相对于图4对应的发送的时钟数据po_data有明显的信号变化,该变化导致了第一个码元宽度变窄,第二个码元宽度变宽。
对接收到的时钟数据进行过采样的采样率并不是唯一的,在本实施例中,对接收到的时钟数据进行过采样的采样率为8倍,后续实施例中大部分也使用x8采样率的过采样(通过PLL(Phase Locked Loop,锁相环)生成不同相位时钟实现)情况下进行实际的时钟数据恢复流程分析。在选择过采样率时,可以考虑大规模可编程器件的PLL性能,也就是一个PLL能输出的同频不同相位的数据个数,以及时钟数据恢复的可靠性。时钟数据恢复时是对一个码元的过采样数据中选择一个最靠近中心的数据输出。原理上采样率愈高,则对单个码元得到的采样值越多,则愈能从采样值中选择处真正靠近采样中心的值。但是采样率又受到可编程器器件的PLL的性能制约,因此在选择采样率时只能在考虑PLL性能的同时,选择尽可能高的采样率。可以理解,在其他实施例中,采样率也可以为其他,如x4,x16等,只要本领域技术人员认为可以实现即可。
步骤S200:将当前采样数据与上一个时钟周期过采样得到的采样数据的最低位进行拼接,得到拼接数据。
得到采样数据后,将当前采样数据与上一个时钟周期过采样得到的采样数据的最低位进行拼接,得到拼接数据,可以便于后续对数据进行计算得到边沿跳变信息。具体地,请参见图5,将filter_data_temp[0]与filter_data[7:0]进行拼接得到filter_data_temp[8:0]。在如图5中的tick2对应时刻,将上一个时刻(即tick1时刻)的filter_data_temp的最低位的“0”和tick1时刻的filter_data的“8'b1111_1110”进行了拼接,则filter_data_temp等于了9'b0_1111_1110。
由于可以将8倍过采样的到的数据进行两两相邻的bit位的异或计算得到边沿跳变信息。假设一次x8过采样值位8'b0000_0011,此时两两bit异或运算只能得到低7bit的异或计算结果,而最高位(bit7)的异或计算则需要与上一次过采样的最低位(bit0)进行异或计算才能得到。因此会将上一次过采样值的最低位与此次8bit采样值进行拼接得到9bit的数据,然后再两两bit异或,从而得到8bit的异或计算值(也就是8bit的边沿信息)。例如此次的x8过采样值为8'b0000_0011,上一次的采样值为8'b0000_0001,则拼接后为9'b1_0000_0011。
步骤S300:获取拼接数据的边沿信息,计算得到边沿数量。
得到拼接数据后,可以获取拼接数据的边沿信息,并进一步计算边沿数量。具体地,拼接数据的边沿位置是指拼接数据中,由高电平变到低电平的位置,或是由低电平变到高电平的位置,边沿数量是指拼接数据中,高低电平发生切换的次数。因此,可通过对拼接数据中的高低电平进行分析,获取拼接数据的边沿信息,计算得到边沿数量。
步骤S400:基于采样数据进行延迟,得到延迟后的数据。
基于采样数据进行延迟的方式并不是唯一的,可以是直接对采样数据进行延迟后得到延迟后的新数据,也可以是将采样数据先赋值给另外一个数据,再对另外一个数据进行延迟。延迟的具体时间也不是唯一的,一般以一个时钟周期为单位,方便对数据进行后续的处理,例如将数据延迟一个时钟周期或两个时钟周期等,具体可根据实际情况调整,只要本领域技术人员认为可以实现即可。
步骤S500:根据延迟后的数据和边沿数量,获取不同边沿数量对应的采样值。
得到了延迟后的数据和边沿数量,可获得不同边沿数量对应的采样值,可以理解,边沿数量的数量为两个以上,每一个边沿数量对应一个采样值,则采样值的数量也为两个以上,且与边沿数量的数量相等,应当注意的是不同的采样值可能会出现相同的情况,这种情况并不排除在外。
边沿数量并不是唯一的,在本实施例中,边沿数量可以为0、1或2,则边沿数量为0、1或2时分别有对应的采样值。以时钟数据的传输速率为125Mbps为例,每个码元周期的的码元宽度最大为1/(125MHz-125MHz*0.005%)=8.0004ns,而最小码元宽度为1/(125Mhz+125Mhz*0.005%)=7.9996ns。而在一次过采样周期中要出现三个边沿则需要码元宽度8/3=2.667ns,因此该情况下边沿数量不会为3。可以理解,在其他实施例中,边沿数量也有可能为其他,可根据具体情况判断。
步骤S600:从各采样值中选择一路输出作为恢复后的时钟数据输出。
获取到两个以上的采样值后,从各采样值中选择一路输出作为时钟数据恢复后的输出。具体可由可编程器件的CDR数据恢复输出选择单元从不同边沿数量对应的采样值中选择一路作为时钟数据恢复后的输出。可以理解,当采样值种包括两个以上不同类型的数据时,最后选择的输出可以为不同的边沿数量对应的不同类型的采样值的组合,具体可根据实际情况调整,只要本领域技术人员认为可以实现即可。
在一个实施例中,请参见图2,步骤S100包括步骤S110。
步骤S110:对接收到的时钟数据进行8倍过采样,得到采样数据。
对接收到的时钟数据进行过采样的采样率并不是唯一的,在本实施例中,对接收到的时钟数据进行过采样的采样率为8倍。在选择过采样率时,可以考虑大规模可编程器件的PLL性能,也就是一个PLL能输出的同频不同相位的数据个数,以及时钟数据恢复的可靠性。时钟数据恢复时是对一个码元的过采样数据中选择一个最靠近中心的数据输出。原理上采样率愈高,则对单个码元得到的采样值越多,则愈能从采样值中选择处真正靠近采样中心的值。但是采样率又受到可编程器器件的PLL的性能制约,因此在选择采样率时只能在考虑PLL性能的同时,选择尽可能高的采样率。可以理解,在其他实施例中,采样率也可以为其他,如x4,x16等,只要本领域技术人员认为可以实现即可。
在一个实施例中,请参见图2,步骤S300包括步骤S310和步骤S320。
步骤S310:对拼接数据中相邻的两位进行异或计算,得到边沿信息。
一般来说,拼接数据中的“0”代表该位置处为低电平,拼接数据中的“1”代表该位置为高电平。对拼接数据中相邻的两位进行异或计算,若相邻的两位为0和1,则异或计算的结果为“1”,表示该处出现了拼接数据的边沿,边沿信息包括异或计算的结果数据,包括边沿位置信息。此外,由于拼接数据是将当前采样数据与上一个时钟周期过采样得到的采样数据的最低位进行拼接得到,因此当前采样数据中的最高位处是否存在边沿也可以由拼接数据的最高位与次高位进行异或计算的结果判断。举例来说,对filter_data_temp两两相邻的2bit位进行异或计算从而出采样值对应的边沿信息[7:0]edge_info。如图5所示:在tick3时刻,将tick2时候的filter_data_temp=9'b0_1111_1110,从左到右对每相邻的2bit进行进行异或计算,并且将计算结果从高到底排列得到8'b1000_0001,该值即为所求的edge_info值。
步骤S320:对边沿信息中各个位对应的数值进行累加,计算得到边沿数量。
边沿信息包括异或计算的结果数据,结果数据为1处表示出现了数据边沿,结果数据为0出表示未出现数据边沿。因此,将边沿信息中各个位对应的数值进行累加,可以得到为“1”的位置数量,该数量即为边沿数量。例如,将edge_info的8个bit位对应的数值进行累加从而计算出采样值中包含的边沿数量[1:0]edge_num。如图5所示,在tick4时刻,将tick3时刻的edge_info的8'h1000_0001进行累加得到2'd2即为所求的edge_num值。
在一个实施例中,请参见图2,步骤S400包括步骤S410。
步骤S410:将采样数据延迟一个时钟周期后赋值给第一延迟数据,将第一延迟数据延迟一个时钟周期,得到延迟后的数据。
进行延迟的方式并不是唯一的,延迟的具体时间也不是唯一的,在本实施例中,将采样数据延迟一个时钟周期后赋值给第一延迟数据,将第一延迟数据延迟一个时钟周期得到延迟后的数据。具体地,将采样数据延迟一个时钟周期后得到数据filter_data_temp[7:0],将filter_data_temp[7:0]赋值给第一延迟数据filter_data_dly1[7:0]。如图5中tick3时刻,将filter_data_temp的低8位赋值给了filter_data_dly1,使得filter_data_dly1等于了8'b1111_1110。将filter_data_dly1延迟一拍得到延迟后的数据[7:0]filter_data_dly2。如图5所示,进行延迟操作后,在tick4时刻,filter_data_dly2=8'b1111_1110。
在一个实施例中,请参见图2,步骤S500包括步骤S510和步骤S512。
步骤S510:当边沿数量为0时,根据边沿信息确定数据的遗留边沿标志和遗留边沿数据位置锁存。
根据边沿信息确定数据的遗留边沿标志的具体过程包括:当边沿信息的位置+4>8时,说明当前采样周期有数据没有被完全恢复,需要遗留到下一个采样周期进行恢复,此时通过拉高数据的遗留边沿标志get_before_data_en进行标记,同时会将遗留的待下一周期进行恢复的数据的位置锁存到不同边沿个数对应的data_position_latch_num中。根据边沿信息确定遗留边沿数据位置锁存data_position_latch_dly1的过程包括:data_position_latch_dly1是根据上一次采样值的边沿情况计算得到的,计算公式为当上一次边沿位置+4>8时,则遗留下来的数据位置为:当前边沿信息位置+4-8,例如上一次边沿位置为5,则遗留到下一次恢复的数据的位置应该为5+4-8=1,也就是在采样值的从左往右的第一位。
步骤S512:根据数据的遗留边沿标志、遗留边沿数据位置锁存、边沿数量和延迟后的数据得到当边沿数量为0时对应的采样值。
确定数据的遗留边沿标志和遗留边沿数据位置锁存后,根据数据的遗留边沿标志get_before_data_en、遗留边沿数据位置锁存data_position_latch_dly1、边沿数量edge_num和延迟后的数据filter_data_dly2得到当边沿数量为0时对应的采样值。采样值可包括第一最佳数据、第一最佳数据的有效标志和第一最佳数据采样位置锁存。具体地,根据edge_num、get_before_data_en、filter_data_dly2和data_position_latch_dly1得到当edge_num=0的情况下的时钟数据恢复出的第一最佳数据[1:0]edge_num0_data,以及当edge_num=0的情况下的时钟数据恢复出的第一最佳数据的有效标志[1:0]edge_num0_valid,以及当edge_num=0的情况下的CDR恢复出的第一最佳数据采样位置锁存[2:0]data_position_latch_num0。在tick6到来的时刻,edge_num=0,get_before_data_en=1'b1,filter_data_dly2=8'h0000_0000,data_position_latch_dly1=3'd4。edge_num=0则说明当初采样周期无新的数据恢复,get_before_data_en=1'b1,data_position_latch_dly1=3'd4说明当前周期需要恢复上一周期遗留的数据,并且位置在filter_data_dly2从左到右的第4位。所以在tick6进行输出时,edge_num0_data=2'b00,edge_num0_valid=2'b01,data_position_latch_dly0=3'd4。
在一个实施例中,请参见图2,步骤S500包括步骤S520至步骤S524。
步骤S520:当边沿数量为1时,根据边沿信息确定数据的遗留边沿标志。
根据边沿信息确定数据的遗留边沿标志的具体过程包括:当边沿信息的位置+4>8时,说明当前采样周期有数据没有被完全恢复,需要遗留到下一个采样周期进行恢复,此时通过拉高数据的遗留边沿标志get_before_data_en进行标记,同时会将遗留的待下一周期进行恢复的数据的位置锁存到不同边沿个数对应的data_position_latch_num中。
步骤S522:将边沿信息延迟一个时钟周期,得到边沿延迟数据。
将边沿信息edge_info延迟一拍得到边沿延迟数据[7:0]edge_info_dly1。如图5所示,进行延迟操作后,在tick4时刻,edge_info_dly1=8'b1000_0001。
步骤S524:根据数据的遗留边沿标志、边沿延迟数据、边沿数量和延迟后的数据得到当边沿数量为1时对应的采样值。
采样值包括第二最佳数据、第二最佳数据的有效标志和第二最佳数据采样位置锁存。根据边沿数量edge_num、边沿延迟数据edge_info_dly1、数据的遗留边沿标志get_before_data_en以及延迟后的数据filter_data_dly2得到当edge_num=1的情况下的CDR恢复出的第二最佳数据[1:0]edge_num1_data,以及当edge_num=1的情况下的CDR恢复出的第二最佳数据的有效标志[1:0]edge_num1_valid,以及当edge_num=1的情况下的CDR恢复出的第二最佳数据采样位置锁存[2:0]data_position_latch_num1。如图5所示,在tick7到来时,edge_num=1,get_before_data_en=1'b0,filter_data_dly2=1111_1111,说明在此次采样周期只恢复出一个数据,并且位置在filter_data_dly2从左到右的第2(边沿位置)+4位。因此在tick7时刻的输出中edge_num1_data=2'b01,edge_num1_valid=2'b01,data_position_latch_num1=3'd6。
在一个实施例中,请参见图2,步骤S500包括步骤S530至步骤S534。
步骤S530:当边沿数量为2时,根据边沿信息确定遗留边沿数据位置锁存。
根据边沿信息确定遗留边沿数据位置锁存data_position_latch_dly1的过程包括:data_position_latch_dly1是根据上一次采样值的边沿情况计算得到的,计算公式为当上一次边沿位置+4>8时,则遗留下来的数据位置为:当前边沿信息位置+4-8,例如上一次边沿位置为5,则遗留到下一次恢复的数据的位置应该为5+4-8=1,也就是在采样值的从左往右的第一位。
步骤S532:将边沿信息延迟一个时钟周期,得到边沿延迟数据。
将边沿信息edge_info延迟一拍得到边沿延迟数据[7:0]edge_info_dly1。如图5所示,进行延迟操作后,在tick4时刻,edge_info_dly1=8'b1000_0001。
步骤S534:根据遗留边沿数据位置锁存、边沿延迟数据、边沿数量和延迟后的数据得到当边沿数量为2时对应的采样值。
采样值包括最佳数据、最佳数据的有效标志和最佳数据采样位置锁存。根据遗留边沿数据位置锁存、边沿延迟数据、边沿数量和延迟后的数据得到当边沿数量为2时对应的采样值包括:根据边沿数量edge_num、遗留边沿数据位置锁存data_position_latch_dly1、延迟后的数据filter_data_dly2和边沿延迟数据edge_info_dly1得到当edge_num=2的情况下的CDR恢复出的最佳数据[1:0]edge_num2_data,以及当edge_num=2的情况下的CDR恢复出的最佳数据的有效标志[1:0]edge_num2_valid,以及当edge_num=0的情况下的CDR恢复出的最佳数据采样位置锁存[2:0]data_position_latch_num2。如图5所示:在tick5到来的时刻,edge_num=2,get_before_data_en=1'b0,filter_data_dly2=8'h1111_1110,edge_info_dly1=8'b1000_0001。
通过上述分析可知,在边沿信息为1的bit位置的后面的第4位对应的采样值即为最佳采样值。所以当edge_info_dly1=8'b1000_0001时,第一个边沿对应的最佳的采样值位置为filter_data_dly2中的从左往右的第1(第一个边沿信息为1的位置)+4位,即为1。同时由于在tick5时刻到来时,get_before_data_en等于1'b0,则说明在tick5进行数据恢复提取时只输出1bit的数据,因此数据输出有效标志等于2'b01,也即是只有bit0位置输出有效数据,bit1位置输出无效。
第二个边沿对应的最佳的采样值位置为filter_data_dly2中从左往右数的第8(第二个边沿信息为1的位置)+4位。可以发现8+4=12,此时12已经超过了filter_data_dly2的8bit位宽。因此当边沿信息为1的位置+4>8时,说明当前采样周期有数据没有被完全恢复,需要遗留到下一个采样周期进行恢复。此时通过拉高get_before_data_en进行标记,同时会将遗留的待下一周期进行恢复的数据的位置锁存到data_position_latch_num2中。因此在tick5的时刻,get_before_data_en=1'b1,data_position_latch_num2=3'd4,edge_num1_data=2'b01。
在一个实施例中,请参见图2,步骤S600包括步骤S610和步骤S620。
步骤S610:根据边沿延迟数据从各最佳数据中选择一个作为时钟数据恢复后的数据输出,从各最佳数据的有效标志中选择一个作为恢复后的时钟数据输出。
根据边沿延迟数据edge_info_dly1从edge_num0_data,edge_num1_data,edge_num2_data中选择一个作为CDR的恢复数据输出[1:0]dout,从edge_num0_valid,edge_num1_valid,edge_num2_valid中选择一个作为CDR恢复数据有效标志的输出[1:0]dout。如图5所示,在tick6到来的时刻,edge_num_dly1=2。则选择2个边沿最佳采样判决单元的输出作为CDR的输出。也即是dout=2’b01,dout_valid=2’b01。
步骤S620:根据边沿数量从各最佳数据采样位置锁存中选择一个作为上一时刻的最佳采样位置的锁存值。
根据边沿数量edge_num从edge_num0_position_latch_num0、edge_num0_position_latch_num1和edge_num0_position_latch_num2中选择一个作为上一时刻的最佳采样位置的锁存值data_position_latch。如图5所示,在tick6到来的时刻,data_position_latch=3’d6。
在一个实施例中,时钟数据的传输速率为125Mbps。时钟数据的传输速率为125Mbps时,CDR在接收端的工作频率为125Mhz,且该传输速率对应的时钟抖动较小,有利于提高时钟数据恢复的准确性。
为了更好地理解上述实施例,以下结合一个具体的实施例进行详细的解释说明。在一个实施例中,时钟数据恢复方法为一种基于遗留边沿的时钟数据恢复方法,用于125Mbps异步串行数据传输的全数字化的CDR。本CDR技术能够在CDR工作频率等于数据传输速率的情况下,从掺杂着一定程度时钟抖动的异步串行数据中恢复出发送端发送数据时的时钟和数据的特点。其主要方法是利用6级流水线的工作流程,通过判别一个过采样周期输出的数据的边沿位置(edge_info)、数据的边沿数量(edge_num)、数据的遗留边沿标志(get_before_data_en)以及遗留边沿数据位置锁存器(data_position_latch_dly1)来确定当前过采样周期中待恢复的最佳的0bit、1bit或是2bit数据的位置。然后根据数据位置从当前过采样周期采得的数据中提取出0bit,1bit或是2bit的数据来做为CDR电路恢复出的数据。同时将CDR工作的本地工作时钟作为CDR电路恢复出的时钟。从而完成异步串行传输在接收端的数据与时钟恢复。本时钟数据恢复方法具有全数字化,抗时钟抖动能力强,CDR电路工作时钟频率要求低,数据鉴相响应速度快的优点。通过使用时钟数据恢复方法,使得CDR的工作时钟频率从数据传输速率的N倍降低到了1倍。这种方法的提出解决了在不具有高速收发器的FPGA FPGA(Field Programmable Gate Array,现场可编程逻辑门阵列)器件上无法实现高速异步串行数据接收端中CDR的问题,使得可以在普通的FPGA器件上实现CDR,从而使进行高速异步串行传输成为了可能。
时钟数据恢复方法可由CDR电路实现,CDR电路所兼容的串行传输速率为125Mbps,具体的设计原理图如图3所示。原理图包括数据延迟单元、数据边沿提取单元、数据边沿个数计算单元、0个边沿最佳采样判决、1个边沿最佳采样判决、2个边沿最佳采样判决、CDR数据恢复输出选择单元以及遗留边沿使能计算单元。tick1~tick6为6级寄存器流水处理结构。数据拼接单元用于将两个数据中指定的bit进行拼接得到新的数据,数据延迟单元用于对数据进行延时,数据边沿提取单元用于提取过采样数据的边沿信息,数据边沿个数计数单元用于计算每次过采样值中的边沿的个数,0个边沿最佳采样判决用于计算当采样值中的边沿个数为0的情况下的最佳采样数据,最佳采样数据有效标志以及最佳采样位置锁存,1个边沿最佳采样判决用于计算,当采样值中的边沿个数为1的情况下的最佳采样数据,最佳采样数据有效标志以及最佳采样位置锁存,2个边沿最佳采样判决用于计算,当采样值中的边沿个数为2的情况下的最佳采样数据,最佳采样数据有效标志以及最佳采样位置锁存,CDR数据恢复输出选择单元用于从0个边沿最佳采样判决单元、1个边沿最佳采样判决单元或是2个边沿最佳采样判决单元的输出中选择一路输出作为整个CDR电路的输出,遗留边沿使能计算单元用于计算当前采样周期中是否还有未被恢复并且需要在下一采样周期恢复的数据,当遗留边沿使能拉高时表明当前周期还有存在未被恢复的数据,需要在下一采样周期进行恢复。
具体过程包括:在125Mbps的传输实例中发送端发出的数据与发送时钟的关系如图4所示,可以看到一个标准的码元周期是8ns。但是由于是异步传输并且还伴随着数据发送过程中的时钟抖动,在接收端接收时收到的数据会存在相移以及码元宽度变长或是变短的现象,如图5所示。从图5中可以看出在tick1时刻对应的地方,pi_data相对于图4对应的po_data有明显的信号变化,该变化导致了第一个码元宽度变窄,第二个码元宽度变宽。基于图5中pi_data的,在使用x8采样率的过采样(通过PLL生成不同相位时钟实现)情况下进行实际的时钟数据恢复流程分析。
S1、进行第一级流水:
1、得到x8过采样电路输出的8bit采样值[7:0]filter_data。如图5中tick1~tick3对应的filter_data即为pi_data在前三个过采样周期中的采样值。
S2、进行第二级流水:
1、将filter_data_temp[0]与filter_data[7:0]进行拼接得到filter_data_temp[8:0]。在如图5中的tick2对应刻时,将上一个时刻(即是tick1时刻)的filter_data_temp的最低位的“0”和tick1时刻的filter_data的“8’b1111_1110”进行了拼接,则filter_data_temp等于了9’b0_1111_1110。该步骤对应图3中的⑴。
S3、进行第三级流水:
1、将filter_data_temp[7:0]赋值给filter_data_dly1[7:0]。如图4中tick3时刻,将filter_data_temp的低8位赋值给了filter_data_dly1,使得filter_data_dly1等于了8’b1111_1110。此步骤对应图3中的⑶。
2、对filter_data_temp两两相邻的2bit位进行异或计算从而出采样值对应的边沿信息[7:0]edge_info。如图5所示:在tick3时刻,将tick2时候的filter_data_temp=9’b0_1111_1110,从左到右对每相邻的2bit进行异或计算,并且将计算结果从高到底排列得到8’b1000_0001,该值即为所求的edge_info值。此步骤对应图3中的⑵。
S4、进行第四级流水:
1、将filter_data_dly1延迟一拍得到[7:0]filter_data_dly2。如图5所示,进行延迟操作后,在tick4时刻,filter_data_dly2=8’b1111_1110。此步骤对应图3中的⑹。
2、将edge_info延迟一拍得到[7:0]edge_info_dly1。如图5所示,进行延迟操作后,在tick4时刻,edge_info_dly1=8’b1000_0001。此步骤对应图3中的⑸。
3、将edge_info的8个bit位对应的数值进行累加从而计算出采样值中包含的边沿数量[1:0]edge_num。如图5所示在tick4时刻,将tick3时刻的edge_info的8’h1000_0001进行累加得到2’d2即为所求的edge_num值。此步骤对应图3中的⑷。
S5、进行第五级流水:
1、根据edge_num,get_before_data_en,filter_data_dly2,data_position_latch_dly1得到当edge_num=0的情况下的CDR恢复出的最佳数据[1:0]edge_num0_data以及当edge_num=0的情况下的CDR恢复出的最佳数据的有效标志[1:0]edge_num0_valid。在tick6到来的时刻,edge_num=0;get_before_data_en=1’b1;filter_data_dly2=8’h0000_0000;data_position_latch_dly1=3’d4;edge_num=0则说明当初采样周期无新的数据恢复;get_before_data_en=1’b1,data_position_latch_dly1=3’d4说明当前周期需要恢复上一周期遗留的数据,并且位置在filter_data_dly2从左到右的第4位。所以在tick6进行输出时,edge_num0_data=2’b00,edge_num0_valid=2’b01;data_position_latch_dly0=3’d4;此步骤对应于图3的⑻。
2、根据edge_num,edge_info_dly1,get_before_data_en以及filter_data_dly2得到当edge_num=1的情况下的CDR恢复出的最佳数据[1:0]edge_num1_data以及当edge_num=1的情况下的CDR恢复出的最佳数据的有效标志[1:0]edge_num1_valid,以及当edge_num=1的情况下的CDR恢复出的最佳数据采样位置锁存[2:0]data_position_latch_num1。如图5所示,在tick7到来时:edge_num=1;get_before_data_en=1’b0;filter_data_dly2=1111_1111;说明在此次采样周期只恢复出一个数据,并且位置在filter_data_dly2从左到右的第2(边沿位置)+4位因此在tick7时刻的输出中edge_num1_data=2’b01,edge_num1_valid=2’b01,data_position_latch_num1=3’d6;此步骤对应于图3中的⑼。
3、根据edge_num,data_position_latch_dly1,filter_data_dly2,edge_info_dly1得到当edge_num=2的情况下的CDR恢复出的最佳数据[1:0]edge_num2_data以及当edge_num=2的情况下的CDR恢复出的最佳数据的有效标志[1:0]edge_num2_valid,以及当edge_num=0的情况下的CDR恢复出的最佳数据采样位置锁存[2:0]data_position_latch_num2。如图5所示:在tick5到来的时刻,edge_num=2;get_before_data_en=1’b0;filter_data_dly2=8’h1111_1110;edge_info_dly1=8’b1000_0001。
根据此时钟数据恢复方法,认为在边沿信息为1的bit位置的后面的第4位对应的采样值即为最佳采样值。所以当edge_info_dly1=8’b1000_0001时,第一个边沿对应的最佳的采样值位置为filter_data_dly2中的从左往右的第1(第一个边沿信息为1的位置)+4位,即为1;同时由于在tick5时刻到来时,遗留边沿使能(get_before_data_en)等于1’b0,则说明在tick5进行数据恢复提取时只输出1bit的数据,因此数据输出有效标志等于2’b01,也即是只有bit0位置输出有效数据,bit1位置输出无效。
第二个边沿对应的最佳的采样值位置为filter_data_dly2中从左往右数的第8(第二个边沿信息为1的位置)+4位。可以发现8+4=12,此时12已经超过了filter_data_dly2的8bit位宽。因此当边沿信息为1的位置+4>8时,说明当前采样周期有数据没有被完全恢复,需要遗留到下一个采样周期进行恢复,此时通过拉高get_before_data_en进行标记,同时会将遗留的待下一周期进行恢复的数据的位置锁存到data_position_latch_num2中。因此在tick5的时刻,get_before_data_en=1’b1;data_position_latch_num2=3’d4;edge_num1_data=2’b01,S2-3的处理步骤对应于图3的⑻。
S6、进行第六级流水
1、根据edge_info_dly1从edge_num0_data,edge_num1_data,edge_num2_data中选择一个作为CDR电路的恢复数据输出[1:0]dout;从edge_num0_valid,edge_num1_valid,edge_num2_valid中选择一个作为CDR电路恢复数据有效标志的输出[1:0]dout。如图5所示,在tick6到来的时刻,edge_num_dly1=2。则选择2个边沿最佳采样判决单元的输出作为CDR的输出。也即是dout=2’b01,dout_valid=2’b01。此步骤对应于图3的⒀。
2、根据edge_num从edge_num0_position_latch_num0,edge_num0_position_latch_num1,edge_num0_position_latch_num2中选择一个作为上一时刻的最佳采样位置的锁存值data_position_latch。如图5所示,在tick6到来的时刻,data_position_latch=3’d6。此步骤对应于图3的⒀。
上述时钟数据恢复方法,首先对接收到的时钟数据进行过采样,得到采样数据,然后将当前采样数据与上一个时钟周期过采样得到的采样数据的最低位进行拼接,得到拼接数据,接着获取拼接数据的边沿信息,计算得到边沿数量,再基于采样数据进行延迟,得到延迟后的数据,根据延迟后的数据和边沿数量,获取不同边沿数量对应的采样值,然后从各采样值中选择一路输出作为恢复后的时钟数据输出。基于过采样得到的采样数据,得到延迟后的数据、数据的边沿信息和边沿数量,从而确定不同边沿数量对应的采样值,从各采样值中选择一路输出作为恢复后的时钟数据输出,从而完成时钟数据在接收端的数据恢复。本时钟数据恢复方法能够在时钟数据恢复工作频率等于数据传输速率的情况下,从掺杂着一定程度时钟抖动的异步串行数据中恢复出发送端发送数据时的时钟和数据,工作时钟频率要求低,使用可靠。
在一个实施例中,提供一种时钟数据恢复装置,包括采样模块、数据拼接模块、数据边沿提取模块、数据延迟模块、采样判决模块和时钟数据恢复输出选择模块,采样模块用于对接收到的时钟数据进行过采样,得到采样数据,数据拼接模块用于将当前采样数据与上一个时钟周期过采样得到的采样数据的最低位进行拼接,得到拼接数据,数据边沿提取模块用于获取拼接数据的边沿信息,计算得到边沿数量,数据延迟模块用于基于采样数据进行延迟,得到延迟后的数据,采样判决模块用于根据延迟后的数据和边沿数量,获取不同边沿数量对应的采样值,时钟数据恢复输出选择模块用于从各采样值中选择一路输出作为恢复后的时钟数据输出。
关于时钟数据恢复装置的具体限定可以参见上文中对于时钟数据恢复方法的限定,在此不再赘述。上述时钟数据恢复装置,首先对接收到的时钟数据进行过采样,得到采样数据,然后将当前采样数据与上一个时钟周期过采样得到的采样数据的最低位进行拼接,得到拼接数据,接着获取拼接数据的边沿信息,计算得到边沿数量,再基于采样数据进行延迟,得到延迟后的数据,根据延迟后的数据和边沿数量,获取不同边沿数量对应的采样值,然后从各采样值中选择一路输出作为恢复后的时钟数据输出。基于过采样得到的采样数据,得到延迟后的数据、数据的边沿信息和边沿数量,从而确定不同边沿数量对应的采样值,从各采样值中选择一路输出作为恢复后的时钟数据输出,从而完成时钟数据在接收端的数据恢复。本时钟数据恢复方法能够在时钟数据恢复工作频率等于数据传输速率的情况下,从掺杂着一定程度时钟抖动的异步串行数据中恢复出发送端发送数据时的时钟和数据,工作时钟频率要求低,使用可靠。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种时钟数据恢复方法,其特征在于,包括以下步骤:
对接收到的时钟数据进行过采样,得到采样数据;
将当前采样数据与上一个时钟周期过采样得到的采样数据的最低位进行拼接,得到拼接数据;
获取所述拼接数据的边沿信息,计算得到边沿数量;
基于所述采样数据进行延迟,得到延迟后的数据;
根据所述延迟后的数据和所述边沿数量,获取不同边沿数量对应的采样值;
从各所述采样值中选择一路输出作为恢复后的时钟数据输出。
2.根据权利要求1所述的时钟数据恢复方法,其特征在于,所述对接收到的时钟数据进行过采样,得到采样数据,包括:
对接收到的时钟数据进行8倍过采样,得到采样数据。
3.根据权利要求1所述的时钟数据恢复方法,其特征在于,所述获取所述拼接数据的边沿信息,计算得到边沿数量,包括:
对所述拼接数据中相邻的两位进行异或计算,得到边沿信息;
对所述边沿信息中各个位对应的数值进行累加,计算得到边沿数量。
4.根据权利要求1所述的时钟数据恢复方法,其特征在于,所述基于所述采样数据进行延迟,得到延迟后的数据,包括:
将所述采样数据延迟一个时钟周期后赋值给第一延迟数据,将所述第一延迟数据延迟一个时钟周期,得到延迟后的数据。
5.根据权利要求1所述的时钟数据恢复方法,其特征在于,所述根据所述延迟后的数据和所述边沿数量,获取不同边沿数量对应的采样值,包括:
当所述边沿数量为0时,根据所述边沿信息确定数据的遗留边沿标志和遗留边沿数据位置锁存;
根据所述数据的遗留边沿标志、所述遗留边沿数据位置锁存、所述边沿数量和所述延迟后的数据得到当所述边沿数量为0时对应的采样值。
6.根据权利要求1所述的时钟数据恢复方法,其特征在于,所述根据所述延迟后的数据和所述边沿数量,获取不同边沿数量对应的采样值,包括:
当所述边沿数量为1时,根据所述边沿信息确定数据的遗留边沿标志;
将所述边沿信息延迟一个时钟周期,得到边沿延迟数据;
根据所述数据的遗留边沿标志、所述边沿延迟数据、所述边沿数量和所述延迟后的数据得到当所述边沿数量为1时对应的采样值。
7.根据权利要求1所述的时钟数据恢复方法,其特征在于,所述根据所述延迟后的数据和所述边沿数量,获取不同边沿数量对应的采样值,包括:
当所述边沿数量为2时,根据所述边沿信息确定遗留边沿数据位置锁存;
将所述边沿信息延迟一个时钟周期,得到边沿延迟数据;
根据所述遗留边沿数据位置锁存、所述边沿延迟数据、所述边沿数量和所述延迟后的数据得到当所述边沿数量为2时对应的采样值。
8.根据权利要求7所述的时钟数据恢复方法,其特征在于,所述采样值包括最佳数据、最佳数据的有效标志和最佳数据采样位置锁存,所述从各所述采样值中选择一路输出作为恢复后的时钟数据输出,包括:
根据所述边沿延迟数据从各所述最佳数据中选择一个作为恢复后的时钟数据输出,从各所述最佳数据的有效标志中选择一个作为恢复后的时钟数据输出;
根据所述边沿数量从各所述最佳数据采样位置锁存中选择一个作为上一时刻的最佳采样位置的锁存值。
9.根据权利要求1所述的时钟数据恢复方法,其特征在于,所述时钟数据的传输速率为125Mbps。
10.一种时钟数据恢复装置,其特征在于,包括:
采样模块,用于对接收到的时钟数据进行过采样,得到采样数据;
数据拼接模块,用于将当前采样数据与上一个时钟周期过采样得到的采样数据的最低位进行拼接,得到拼接数据;
数据边沿提取模块,用于获取所述拼接数据的边沿信息,计算得到边沿数量;
数据延迟模块,用于基于所述采样数据进行延迟,得到延迟后的数据;
采样判决模块,用于根据所述延迟后的数据和所述边沿数量,获取不同边沿数量对应的采样值;
时钟数据恢复输出选择模块,用于从各所述采样值中选择一路输出作为恢复后的时钟数据输出。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110335743.4A CN113054995B (zh) | 2021-03-29 | 2021-03-29 | 时钟数据恢复方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110335743.4A CN113054995B (zh) | 2021-03-29 | 2021-03-29 | 时钟数据恢复方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113054995A true CN113054995A (zh) | 2021-06-29 |
CN113054995B CN113054995B (zh) | 2023-01-20 |
Family
ID=76516120
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110335743.4A Active CN113054995B (zh) | 2021-03-29 | 2021-03-29 | 时钟数据恢复方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113054995B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117056269A (zh) * | 2023-10-11 | 2023-11-14 | 芯耀辉科技有限公司 | 用于并行接口连接的数据对齐方法、计算机设备及介质 |
CN117573597A (zh) * | 2024-01-15 | 2024-02-20 | 广东高云半导体科技股份有限公司 | 一种数据恢复电路及方法 |
CN113886315B (zh) * | 2021-09-23 | 2024-05-03 | 珠海一微半导体股份有限公司 | 一种时钟数据恢复系统、芯片及时钟数据恢复方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102608600A (zh) * | 2012-04-09 | 2012-07-25 | 西安电子科技大学 | 基于fpga的步进频率像拼接的实现方法 |
CN104219015A (zh) * | 2013-06-03 | 2014-12-17 | 中兴通讯股份有限公司 | 一种sdh中支路信号的时钟数据恢复方法及装置 |
US20150280898A1 (en) * | 2014-03-31 | 2015-10-01 | Stmicroelectronics International N.V. | Oversampling cdr which compensates frequency difference without elasticity buffer |
CN205545202U (zh) * | 2016-04-29 | 2016-08-31 | 福建先创通信有限公司 | 一种数字集群通信设备时钟数据恢复电路 |
EP3214554A1 (en) * | 2016-01-25 | 2017-09-06 | MediaTek Inc. | Transition enforcing coding receiver for sampling vector signals without using clock and data recovery |
CN107395198A (zh) * | 2017-07-28 | 2017-11-24 | 北京集创北方科技股份有限公司 | 一种时钟数据恢复装置和方法 |
CN206993091U (zh) * | 2017-07-28 | 2018-02-09 | 北京集创北方科技股份有限公司 | 一种时钟数据恢复装置 |
-
2021
- 2021-03-29 CN CN202110335743.4A patent/CN113054995B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102608600A (zh) * | 2012-04-09 | 2012-07-25 | 西安电子科技大学 | 基于fpga的步进频率像拼接的实现方法 |
CN104219015A (zh) * | 2013-06-03 | 2014-12-17 | 中兴通讯股份有限公司 | 一种sdh中支路信号的时钟数据恢复方法及装置 |
US20150280898A1 (en) * | 2014-03-31 | 2015-10-01 | Stmicroelectronics International N.V. | Oversampling cdr which compensates frequency difference without elasticity buffer |
EP3214554A1 (en) * | 2016-01-25 | 2017-09-06 | MediaTek Inc. | Transition enforcing coding receiver for sampling vector signals without using clock and data recovery |
CN205545202U (zh) * | 2016-04-29 | 2016-08-31 | 福建先创通信有限公司 | 一种数字集群通信设备时钟数据恢复电路 |
CN107395198A (zh) * | 2017-07-28 | 2017-11-24 | 北京集创北方科技股份有限公司 | 一种时钟数据恢复装置和方法 |
CN206993091U (zh) * | 2017-07-28 | 2018-02-09 | 北京集创北方科技股份有限公司 | 一种时钟数据恢复装置 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113886315B (zh) * | 2021-09-23 | 2024-05-03 | 珠海一微半导体股份有限公司 | 一种时钟数据恢复系统、芯片及时钟数据恢复方法 |
CN117056269A (zh) * | 2023-10-11 | 2023-11-14 | 芯耀辉科技有限公司 | 用于并行接口连接的数据对齐方法、计算机设备及介质 |
CN117056269B (zh) * | 2023-10-11 | 2024-02-09 | 芯耀辉科技有限公司 | 用于并行接口连接的数据对齐方法、计算机设备及介质 |
CN117573597A (zh) * | 2024-01-15 | 2024-02-20 | 广东高云半导体科技股份有限公司 | 一种数据恢复电路及方法 |
CN117573597B (zh) * | 2024-01-15 | 2024-05-14 | 广东高云半导体科技股份有限公司 | 一种数据恢复电路及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN113054995B (zh) | 2023-01-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113054995B (zh) | 时钟数据恢复方法及装置 | |
JP3772197B2 (ja) | Nrz/nrziデータを再生するためのデジタルアーキテクチャ | |
KR102384609B1 (ko) | 멀티 레인 데이터 수신기의 클럭 데이터 복구 | |
CN100568738C (zh) | 带同步时钟的脉宽调制式光纤通信编码解码方法及电路 | |
US6947493B2 (en) | Dual phase pulse modulation decoder circuit | |
EP1589682A1 (en) | Demultiplexer circuit | |
WO2005077034A2 (en) | High speed serializer-deserializer | |
US8077063B2 (en) | Method and system for determining bit stream zone statistics | |
CN103475362A (zh) | 基于过采样的无需时钟恢复的数据恢复电路 | |
CN107329915A (zh) | 通过高速SerDes接口恢复低速数据的方法及系统 | |
JP3504119B2 (ja) | 復調装置、クロック再生装置、復調方法及びクロック再生方法 | |
US20030061564A1 (en) | Serial data extraction using two cycles of edge information | |
US6933866B1 (en) | Variable data rate receiver | |
US7113560B1 (en) | Serial link scheme based on delay lock loop | |
JP2003304225A (ja) | データリカバリ回路 | |
JP5291395B2 (ja) | 伝送システム、送信装置、受信装置、及び、伝送方法 | |
Park et al. | A single-data-bit blind oversampling data-recovery circuit with an add-drop FIFO for USB2. 0 high-speed interface | |
US7079577B2 (en) | Wide window decoder circuit for dual phase pulse modulation | |
JP4623216B2 (ja) | 信号処理装置、及び信号処理方法 | |
KR100899781B1 (ko) | 클록 정보와 함께 데이터를 전송하는 방법 및 장치 | |
JP2007300291A (ja) | ジッタ補正方法及び回路 | |
US7321647B2 (en) | Clock extracting circuit and clock extracting method | |
KR101985082B1 (ko) | 위상 고정 루프 회로를 이용하지 않는 순수 디지털 클록 데이터 복원 장치 | |
JP2010028615A (ja) | クロック・データ・リカバリ回路 | |
US11677464B2 (en) | Optical transceiver and method for controlling optical transceiver |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |