首页> 中国专利> 一种过采样数据时钟恢复的FPGA实现系统及方法

一种过采样数据时钟恢复的FPGA实现系统及方法

摘要

本发明公开了一种过采样数据时钟恢复的FPGA实现系统及方法,它包括设置在FPGA内的差分信号转换模块、可编程输入延时单元、输入串并转换模块及固定模式时钟管理模块,所述差分信号转换模块连接可编程输入延时单元,所述可编程输入延时单元连接输入串并转换模块,所述输入串并转换模块连接固定模式时钟管理模块;通过差分信号转换模块将外部送入FPGA的输入差分信号进行缓存处理分成差分的2个FPGA内部的差分信号;针对FPGA芯片上不能提供充足的GE口专用管脚问题,设计出一种通过普通IO也能实现数据时钟恢复的方法;利用普通IO做数据恢复,可以灵活满足各种需求,在实现数量上不再局限于芯片自带的专用管脚。

著录项

  • 公开/公告号CN106021025A

    专利类型发明专利

  • 公开/公告日2016-10-12

    原文格式PDF

  • 申请/专利权人 成都欧飞凌通讯技术有限公司;

    申请/专利号CN201610349260.9

  • 发明设计人 邱建刚;

    申请日2016-05-24

  • 分类号G06F11/14;

  • 代理机构成都君合集专利代理事务所(普通合伙);

  • 代理人张鸣洁

  • 地址 610000 四川省成都市高新区云华路333号3栋3层

  • 入库时间 2023-06-19 00:39:52

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-03-29

    授权

    授权

  • 2016-11-09

    实质审查的生效 IPC(主分类):G06F11/14 申请日:20160524

    实质审查的生效

  • 2016-10-12

    公开

    公开

说明书

技术领域

本发明涉及通信设备上FPGA芯片中GE口串行数据恢复的相关技术领域,具体的说,是一种过采样数据时钟恢复的FPGA实现系统及方法。

背景技术

目前FPGA芯片上GE接口数据恢复首先是要给处理模块内部送入一个参考时钟,然后借助参考时钟结合接收到的串行数据,将对端发送数据的时钟恢复出来,然后将恢复出来的时钟上全局时钟网络后,再去采集数据,并作串并转化。

该功能是通过硬核IP的方式放入FPGA芯片内部的,并对应有专用的管脚,由于芯片型号不同所支持专用管脚的个数也不同。对接口数量要求大时就要选一些高端芯片,由于功能上却不需要太高端的芯片,导致成本过高没有竞争力。

发明内容

本发明的目的在于提供一种过采样数据时钟恢复的FPGA实现系统及方法,针对FPGA芯片上不能提供充足的GE口专用管脚问题,设计出一种通过普通IO也能实现数据时钟恢复的方法;利用普通IO做数据恢复,可以灵活满足各种需求,在实现数量上不再局限于芯片自带的专用管脚。

本发明通过下述技术方案实现:一种过采样数据时钟恢复的FPGA实现系统,它包括设置在FPGA内的差分信号转换模块、可编程输入延时单元、输入串并转换模块及固定模式时钟管理模块,所述差分信号转换模块连接可编程输入延时单元,所述可编程输入延时单元连接输入串并转换模块,所述输入串并转换模块连接固定模式时钟管理模块。

进一步的为更好的实现本发明所述系统,特别采用下述设置方式:还包括数据恢复单元,所述数据恢复单元连接输入串并转换模块,所述固定模式时钟管理模块亦连接数据恢复单元。

进一步的为更好的实现本发明所述系统,特别采用下述设置方式:所述可编程输入延时单元为两个且两个可编程输入延时单元之间输出的信号存在45°相位差,两个所述可编程输入延时单元皆与差分信号转换模块和输入串并转换模块相连接。

进一步的为更好的实现本发明所述系统,特别采用下述设置方式:所述输入串并转换模块为两个且分别与两个可编程输入延时单元相连接;所述两个输入串并转换模块皆与固定模式时钟管理模块和数据恢复单元相连接。

进一步的为更好的实现本发明所述系统,特别采用下述设置方式:所述差分信号转换模块,接收外部送入FPGA的输入差分信号进行缓存并将通过缓存后的输入差分信号转换为FPGA内部的差分信号;

两个所述可编程输入延时单元,将所述FPGA内部的差分信号进行延时处理,使两个可编程输入延时单元输出的信号相位相差45°;

在对FPGA内部的差分信号进行延时处理时,对FPGA内部的差分信号内数据进行delay时设置为31个单位tap值的延时时间。

一种过采样数据时钟恢复的FPGA实现系统的实现方法,包括以下具体步骤:

1)通过差分信号转换模块将外部送入FPGA的输入差分信号进行缓存处理分成差分的2个FPGA内部的差分信号;

2)将2个FPGA内部的差分信号分别送入可编程输入延时单元,其中一个可编程输入延时单元对输入的FPGA内部的差分信号不做任何操作,另一个可编程输入延时单元对FPGA内部的差分信号进行45°的偏移;

3)经步骤2)后,将相位相差45°的两组FPGA内部的差分信号分别输入到两组输入串并转换模块,分别利用输入串并转换模块内部的2个采样时钟进行采样得到4个采集数据;

进一步的为更好的实现本发明所述方法,特别采用下述设置方式:还包括下述步骤:

4)经步骤3)后,将两个输入串并转换模块所得到的4个bit数据进行缓存,得到8组4bit缓存数据,共计32bit数据,然后将32bit数据进行1bit右移操作,右移1bit后与未缓存的4个bit数据按bit做异或,获得32bit异或值;

5)经步骤4)后,将异或后的32bit异或值分为8组,得8个4bit异或值,而后将8个4bit异或值再次按bit进行或操作,得8个4bit数据,而后提出其中一组4bit数据进行关注。

进一步的为更好的实现本发明所述方法,特别采用下述设置方式:所述步骤5)中,提出其中一个4bit数据进行关注的具体步骤包括:

5-1)如果4bit数据中只有1个bit为1,则从4bit数据里选择准确数据要远离跳变沿的方向,如果之前采集的数据在跳变沿附近,则要远离跳变沿获取准确数据;如果已经不在跳变沿附近,则保持原有采集位置不变获取准确数据;

5-2)如果4bit数据中有2个或3个bit为1,则根据4bit数据中值为1的位置来判断,并选择远离跳变沿的位置获取准确数据;

5-3)如果4bit数据中有4个bit为1,则保持原有采集位置不变获取准确数据;

5-4)如果4bit数据中没有bit为1,则保持原有采集位置不变获取准确数据。

进一步的为更好的实现本发明所述方法,特别采用下述设置方式:还包括下述步骤:

6)获取到准确数据后送入下级模块做解码工作。

进一步的为更好的实现本发明所述方法,特别采用下述设置方式:步骤3)中,所述2个采样时钟进行采样得到4个采集数据具体为:根据配置固定模式时钟管理模块产生时钟频率相同、相位相差90度的2个采样时钟,2个采样时钟为再次取反,又产生出2个时钟,得到共计4个时钟,且4个时钟频率相同、相位相差90度,并通过上下沿采集后得到4个采集数据,且每个采集数据为1bit,4个采集信号共计4bit数据;若FPGA内的ISERDES模块对输入差分信号设置模式为SDR时,一个信号每周期采样8次;若设置模式为DDR时,一个信号每周期采样4次”。

本发明与现有技术相比,具有以下优点及有益效果:

(1)本发明针对FPGA芯片上不能提供充足的GE口专用管脚问题,设计出一种通过普通IO也能实现数据时钟恢复的方法;利用普通IO做数据恢复,可以灵活满足各种需求,在实现数量上不再局限于芯片自带的专用管脚。

(2)本发明通过普通IO可以实现GE接口的数据恢复,在设备需求多个GE口时,完全不局限于芯片上的专用管脚的数量。

(3)由于传统的GE接口使用FPGA自带的IP核生成后接到对应的专用管脚上使用,对于接口数量大的设备FPGA芯片自带的专用管脚不能满足要求;而在FPGA(xilinx)芯片上每个普通的物理管脚都配有1对IDELAY/IOSERDES,再结合本发明的数据恢复功能,这样芯片上任何一个普通IO管脚都可以做GE接口使用。对于需要大量GE口的设备来说,用FPGA方案时在选芯片过程中不需要考虑芯片支持GE口的数量,可以达到降成本的效果。

(4)本发明通过高速时钟对串行的数据进行4倍采样,并对采样到的数据进行跳变沿判断和分析,获得最佳、最准确的数值从而将串行数据恢复出来。

(5)本发明在对采集到的数据进行分析和判断时,结合前次获取数据的位置和当前跳变沿的位置进行动态调整,从而准确的恢复出线路上的数据。

附图说明

图1为本发明所述过采样数据时钟恢复的FPGA实现系统图。

图2为本发明所述方法具体采样的波形原理示意图。

图3为使用本发明方法而得8组采集出来的数据共32bit的示意图。

图4为本发明所述方法的整体流程图。

图5为每隔4bit数据产生的跳变沿只有1次的操作流程。

图6为每4bit数据产生的跳变沿有2次的操作流程图。

图7为每4bit数据产生的跳变沿有3次的操作流程图。

具体实施方式

下面结合实施例对本发明作进一步地详细说明,但本发明的实施方式不限于此。

实施例1:

一种过采样数据时钟恢复的FPGA实现系统,如图1所示,它包括设置在FPGA内的差分信号转换模块、可编程输入延时单元、输入串并转换模块及固定模式时钟管理模块,所述差分信号转换模块连接可编程输入延时单元,所述可编程输入延时单元连接输入串并转换模块,所述输入串并转换模块连接固定模式时钟管理模块。

所述差分信号转换模块,将外部送入FPGA的输入差分信号进行缓存处理分成差分的2个FPGA内部的差分信号;

所述可编程输入延时单元,将所述FPGA内部的差分信号进行延时处理;

所述输入串并转换模块,将可编程输入延时单元内输出的信号利用输入串并转换模块内部的2个采样时钟进行采样得到4个采集数据;

所述固定模式时钟管理模块,为数据恢复提供恢复时钟。

实施例2:

本实施例是在上述实施例的基础上进一步优化,如图1所示,进一步的为更好的实现本发明所述系统,能够将将输入串并转换模块内所采集的数据进行恢复,特别采用下述设置方式:还包括数据恢复单元,所述数据恢复单元连接输入串并转换模块,所述固定模式时钟管理模块亦连接数据恢复单元。

实施例3:

本实施例是在上述实施例的基础上进一步优化,如图1所示,进一步的为更好的实现本发明所述系统,特别采用下述设置方式:所述可编程输入延时单元为两个且两个可编程输入延时单元之间输出的信号存在45°相位差,两个所述可编程输入延时单元皆与差分信号转换模块和输入串并转换模块相连接。

实施例4:

本实施例是在上述实施例的基础上进一步优化,如图1所示,进一步的为更好的实现本发明所述系统,特别采用下述设置方式:所述输入串并转换模块为两个且分别与两个可编程输入延时单元相连接;所述两个输入串并转换模块皆与固定模式时钟管理模块和数据恢复单元相连接。

实施例5:

本实施例是在上述任一实施例的基础上进一步优化,进一步的为更好的实现本发明所述系统,特别采用下述设置方式:所述差分信号转换模块,接收外部送入FPGA的输入差分信号进行缓存并将通过缓存后的输入差分信号转换为FPGA内部的差分信号;

两个所述可编程输入延时单元,将所述FPGA内部的差分信号进行延时处理,使两个可编程输入延时单元输出的信号相位相差45°;

在对FPGA内部的差分信号进行延时处理时,对FPGA内部的差分信号内数据进行delay时设置为31个单位tap值的延时时间。

实施例6:

本实施例是在上述任一实施例的基础上进一步优化,一种过采样数据时钟恢复的FPGA实现系统的实现方法,包括以下具体步骤:

1)通过差分信号转换模块将外部送入FPGA的输入差分信号进行缓存处理分成差分的2个FPGA内部的差分信号;

2)将2个FPGA内部的差分信号分别送入可编程输入延时单元,其中一个可编程输入延时单元对输入的FPGA内部的差分信号不做任何操作,另一个可编程输入延时单元对FPGA内部的差分信号进行45°的偏移;

3)经步骤2)后,将相位相差45°的两组FPGA内部的差分信号分别输入到两组输入串并转换模块,分别利用输入串并转换模块内部的2个采样时钟进行采样得到4个采集数据;

实施例7:

本实施例是在上述实施例的基础上进一步优化,进一步的为更好的实现本发明所述方法,特别采用下述设置方式:还包括下述步骤:

4)经步骤3)后,将两个输入串并转换模块所得到的4个bit数据进行缓存,得到8组4bit缓存数据,共计32bit数据,然后将32bit数据进行1bit右移操作,右移1bit后与未缓存的4个bit数据按bit做异或,获得32bit异或值;

5)经步骤4)后,将异或后的32bit异或值分为8组,得8个4bit异或值,而后将8个4bit异或值再次按bit进行或操作,得8个4bit数据,而后提出其中一组4bit数据进行关注。

实施例8:

本实施例是在上述实施例的基础上进一步优化,进一步的为更好的实现本发明所述方法,特别采用下述设置方式:所述步骤5)中,提出其中一个4bit数据进行关注的具体步骤包括:

5-1)如果4bit数据中只有1个bit为1,则从4bit数据里选择准确数据要远离跳变沿的方向,如果之前采集的数据在跳变沿附近,则要远离跳变沿获取准确数据;如果已经不在跳变沿附近,则保持原有采集位置不变获取准确数据;

5-2)如果4bit数据中有2个或3个bit为1,则根据4bit数据中值为1的位置来判断,并选择远离跳变沿的位置获取准确数据;

5-3)如果4bit数据中有4个bit为1,则保持原有采集位置不变获取准确数据;

5-4)如果4bit数据中没有bit为1,则保持原有采集位置不变获取准确数据。

实施例9:

本实施例是在上述任一实施例的基础上进一步优化,进一步的为更好的实现本发明所述方法,特别采用下述设置方式:还包括下述步骤:

6)获取到准确数据后送入下级模块做解码工作。

实施例10:

本实施例是在实施例6-9任一实施例的基础上进一步优化,进一步的为更好的实现本发明所述方法,特别采用下述设置方式:步骤3)中,所述2个采样时钟进行采样得到4个采集数据具体为:根据配置固定模式时钟管理模块产生时钟频率相同、相位相差90度的2个采样时钟,2个采样时钟为再次取反,又产生出2个时钟,得到共计4个时钟,且4个时钟频率相同、相位相差90度,并通过上下沿采集后得到4个采集数据,且每个采集数据为1bit,4个采集信号共计4bit数据;若FPGA内的ISERDES模块对输入差分信号设置模式为SDR时,一个信号每周期采样8次;若设置模式为DDR时,一个信号每周期采样4次”。

实施例11:

本实施例是在上述任一实施例的基础上进一步优化,结合图1-7所示,一种过采样数据时钟恢复的FPGA实现系统的实现方法,利用FPGA的可编程输入延时单元(IDELAY)和固定模式时钟管理模块(MMCM)输出同频多相位时钟相结合,对串行数据进行4倍的过采样。采用滑动窗口的方式来检测数据跳变沿的位置,精确的找到最佳采样点,从而采样出准确的数据。

IBUFDS_DIFF_OUT(differential signaling input buffer with differential output/差分信号输入缓存器转差分输出,亦即图1中的差分信号转换模块)主要功能包括将外部送入FPGA的输入差分信号进行缓存,并将通过缓存后的输入差分信号转换为FPGA内部的差分信号。

IDELAY(input fixed or variable delay element/输入固定或变量延时模块,即图1中的可编程输入延时单元)主要功能是对数据进行delay时设置的单位tap(共31个档位)值的延时时间,亦可以理解为IDELAY对数据延时的最小粒度。同时可以减少PVT对数据延时的影响。

ISERDES(input SERial/DESerial with bitslip/输入串并转换,即图1中的输入串并转换模块)将经过可编程输入延时单元延时处理后的FPGA内部的差分信号做串并转换,由1bit串行输入转换后以4bit并行输出。两个ISERDES模块输出8bit送入到数据恢复单元处理。

DRU(data recovery unit/数据恢复单元)是实现串并转换的关键模块,2个IDELAY设置不同的偏移值后可得到2个内容相同但相位存在一定偏差(偏差值为45°)的数据,送给2个IDELAY的2个clk分别利用上下沿进行采样,即可以采样8个点的数据;对于外部送入FPGA的输入差分信号为SDR输出的信号时,则一个信号每周期采样8次,对于外部送入FPGA的输入差分信号为DDR输出的信号时,则一个信号每周期采样4次。将采样到的信号送入数据恢复单元中做数据恢复。

MMCM(mixed mode clock manager/固定模式时钟管理模块)主要负责整个恢复数据功能的时钟部分。

由于FPGA工作频率不能太高,所以对1.25G速率的串行数据做4倍过采样,需要本地时钟跑到625M。采样所需要的IDELAY和MMCM都是芯片自带的模块,利用IDELAY模块将接收到的数据延时45°的时间,再由MMCM产生相对本地625M时钟有90°偏移的时钟,通过偏移后数据有2份,时钟2份,时钟采用上下沿进行采样,具体采样的波形原理如图2所示。

利用时钟对数据0/45/90/135度离散的采集4个点,后续通过这4个点的值0或1来判断跳变沿的位置,从而判断哪个采样点的数值能够真正代表真实的数据。为了避免频繁的计算,本发明采样每隔32个bit进行一次判断,如图3所示,8组采集出来的数据共32bit。

通过各个bit错位来判断跳变沿的位置,异或为1则认为有跳变。总体思想是获取的采样点要远离跳变沿的位置,整体流程如图4所示。

1、如果采集数据后,经处理后,4bit数据中的4个bit值为全0或全1说明没有跳变,那么这时采集4bit数据中的任何一个bit都可以代表真实的数据,所以获取位置保持。

如之前采的数据是第1bit,当本次产生的4bit数据跳变沿为1111,那说明3~2~1~0~3都在变,那么我们不能判断到底是哪个采样点比较准确,所以获取采样点沿用上次计算结果,仍将第1个bit作为正确采样点。

2、最理想的状态就行,每隔4bit数据产生的跳变沿只有1次,共有4种可能即1000/0100/0010/0001,结合图5所示每隔4bit数据产生的跳变沿只有1次的操作流程。

如之前采的数据是第1个bit,当本次产生的4bit数据跳变沿为1000时,那么说明数据在2~3之间发生跳变,那么我们可以认为2~1~0~3这4个采样值对应是1bit。所以比较准确的采样点应该是在中间即 1或0,上一组32bit计算出来的是将采样的第1个值作为正确的值,那么本次可以不同动还继续认为第1个采样值是正确的值,当然也可以跳到第0个,认为是正确的采样值。如果上一组采样点为第2个时,则获取的采样点要调整到第1个点。

3、但实际情况由于电气特性或其他外界干扰,不一定只有1次跳变,每4bit数据产生的跳变沿有2次即4个bit为1100/0110/0011/0101等等,如图6所示的每4bit数据产生的跳变沿有2次的操作流程。

这种情况不一定是4bit数据里跳变导致,应该是8个4bit数据里跳变不同导致,比如1100,第一组4bit数据是1000,第二组4bit数据也是1000,但第3组4bit数据是0100,其余组也为1000。这样整体8组来看就是1100了。对于这种情况,判断哪个采样点准确,要根据实际情况来处理。

如之前采的数据是第1bit,当本次产生的4bit数据跳变沿为1100,那说明3~2~1在变,而1~0~3不变,那么我们可以认为第0个采样点会比较准确,所以获取第0个bit作为正确采样点。

4、每4bit数据产生的跳变沿有3次即4bit数据为0111/1011/1101/1110,如图7所示的每4bit数据产生的跳变沿有3次的操作流程。

如之前采的数据是第1bit,当本次产生的4bit数据跳变沿为1110,那说明3~2~1~0在变,而0~3不变,那么我们可以认为第0或3个采样点会相对比较准确,但每次获取采样点只能跳变1个bit,所以只能获取第0个bit作为正确采样点。

5、在查找跳变沿和判断最佳采样点时,有时会导致少获取1个bit,或多获取一个bit。

a)少获取:如之前将采样点0作为有效数据,当本次跳变沿的值为0010时,这时我们会认为采样点0~3~2~1作为一组,根据之前的原理要远离跳变沿,那就应该将采样点3作为准确数据,3~2~1~0~3~2~1~0~3~2~1~0前一组的0~3是要采集0的,但这次直接获取3作为准确数据,这样导致中间一组的4个bit都没有被作为准确数据进行获取,导致32个采样点只获取了7个bit。

b)多获取:如之前将采样点3作为有效数据,当本次跳变沿的值为1000时,这时我们会认为采样点2~1~0~3作为一组,那个根据之前的原理要远离跳变沿,那就应该将采样点0作为准确数据,3~2~1~0~3~2~1~0 前一组的0~3是要采集3的,已经将3作为准确值获取了,但这次要将第0bit作为采样点获取,在4个bit里又获取了0,这样导致前一组的4bit异或值获取了2个采样点,导致32个采样点获取了9个bit。

以上所述,仅是本发明的较佳实施例,并非对本发明做任何形式上的限制,凡是依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化,均落入本发明的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号