本发明涉及高速数据采集技术,更具体的涉及一种基于FPGA的多通道高速输入信号自动de-skew算法。

背景技术:

随着对精度和速率要求越来越高,目前数据采集系统向着多通道和超高速两个方向发展。多通道高速输入信号通常存在一个关键性的问题,即各路高速信号之间同步性差,通常会存在较大的偏差(skew)。在低速应用场景中,由于每个数据位持续时间长,这种skew不会造成数据锁存问题,但在高速/超高速应用场景下,每个数据位持续时间非常短,如果通道之间skew较大,则有效锁存窗口将大大缩小,基本无法进行正确的数据锁存,而且随着通道数量增大,由于不确定性大大增加,各通道之间的差异将会扩大,即有效数据锁存窗口会继续恶化,则可以想见,要达到对多通道的同时正确的锁存是非常困难的。

针对高速数据采集系统中多通道高速输入信号存在的skew问题,目前较为常见的解决方法是采用源同步方式,即发送端同时发送数据和锁存数据用的触发(时钟)信号,但即便如此,多路数据通道之间以及数据通道和触发信号通道之间依然会存在或大或小的skew。另一种常见的方法是在PCB走线上保持严格的等长关系并通过增加各通道之间走线间距尽量减小串扰,然而在一些条件下,特别在PCB尺寸受限应用场合,严格的等长走线或者较大的走线间隔很难执行。即使在保持PCB走线严格等长的情况下,由于接收端各通道之间负载(寄生)电容的差异,各通道之间依然会存在skew,在速率较高的场合,即便可以在某个工作条件下进行锁存,但是锁存窗口非常小,在长时间工作情况下或者大批量复制时,温度变化或者个体差异也会造成数据锁存可能出现误码,造成数据中有亮点或者暗点产生,这在某些应用场合如工业检测领域将是无法容忍的。综合而言,无论采用以上所述的何种外界手段,都很难完全消除多通道输入信号之间的skew。

技术实现要素:

本发明所要解决的技术问题在于提供一种基于FPGA的多通道高速输入信号自动de-skew算法,该算法解决了多通道高速输入信号中各通道之间skew较大,有效锁存窗口大大缩小,基本无法进行正确的数据锁存的问题,拟为高速/超高速数据采集系统提供一种可靠的、有效的数据锁存方法。

本发明所要解决的技术问题采用以下技术方案来实现。

一种基于FPGA的多通道高速输入信号自动de-skew算法,具体包括以下步骤:

步骤(1)检测并计算各数据通道间相对skew值;

步骤(2)补偿各数据通道的skew使得各数据通道对齐;

步骤(3)将数据锁存触发信号对齐到锁存窗口的中心。

进一步地,所述步骤(1)中各数据通道间相对skew值的计算方法具体为:

配置前端AD系统发送训练序列,使用FPGA内部锁相环(PLL)产生锁存时钟,在锁存时钟的初始相位采集各数据通道数据,并将数据保存,然后动态调整锁存时钟的相位,每次移动一个步长,每移动一次采集一次各数据通道的数据并进行保存,锁存时钟的相位移动360度内可获得各数据通道边沿位置信息。在获取到各通道扫描结果后,以边沿最靠后通道作为参考通道,计算其他通道边沿相对于该通道边沿的差异,即可获得各通道相对skew值。

进一步地,所述步骤(2)中对各通道进行延迟补偿(de-skew)的过程具体为:

将步骤(1)中计算得到的skew值换算为延迟步长,即可得到延迟单元数N(delay),对N(delay)取整,采用动态延迟技术,在工作过程中动态的设置各数据通道在锁存之前的延迟,使得各通道边沿完全对齐。

进一步地,所述各数据通道所采用的延迟补偿是PVT修正的,所述PVT修正是根据工艺,电压和温度进行修正的。

进一步地,所述步骤(3)中将数据锁存触发信号对齐到锁存窗口中心的方法为:

以锁存时钟当前位置作为起点,每次移动一个步长进行扫描,选择任意一个通道作为采集通道,采集该通道在当前相位下的值,直到采集到的值发生跳变停止扫描过程。根据数据率计算将锁存触发时钟对齐到窗口中心所需移动的步长,将锁存触发时钟对齐到窗口中心。

在完成de-skew之后,重新配置前端AD系统,退出训练模式,进入到正常工作状态,完成数据的正常采集工作。

本发明的有益效果为:本发明基于FPGA中动态相位调整技术以及动态延迟技术,针对每个通道进行de-skew,从而使得各通道数据在接收端进行锁存时达到完全的同步性,增大了数据有效锁存窗口,提高了数据锁存的正确性,为高速/超高速数据采集系统提供了一种可靠且行之有效的数据锁存方法;本发明采用动态延迟技术,每次上电时根据实际运行环境计算出的各通道skew值并进行动态延迟,而不是每次采用相同的延迟补偿值,这使得算法有效性和灵活性大大增加;本发明中所采用的延迟补偿技术是PVT修正的,具有高稳定性,不会因为工艺,电压,温度差异造成较大误差,从而使得本算法具有极大的可操作性和实用性。

附图说明

图1为FPGA内de-skew算法实施流程图;

图 2为本发明基本思路;

图 3检测边沿位置信息原理示意图;

图 4 动态延迟技术实现原理示意图;

图5 设置数据锁存触发时刻为窗口中心点原理示意图。

具体实施方式

为了使本发明的技术手段、创作特征、达成目的与功效易于明白了解,下面结合具体图示,进一步阐述本发明。

图1、图2所示,FPGA上电初始化后,使用其内部PLL产生数据锁存时钟,使能动态相位调整,并将步长设置为78.125ps。为使步长精度达到78.125ps,需要手工设置PLL的乘法和除法系数,使得PLL输出VCO频率达到最大值。完成锁存时钟准备后,下一步配置前端AD系统使产生0x55训练序列,也即产生一个时钟数据,便于边沿检测。在完成训练序列产生后,配置PLL参数使得锁存时钟相位移动一个步长,即78.125ps,移动完成后,采集各数据通道值并保存;继续移动锁存时钟相位,采集各通道数据并保存,直到完成指定次数的移动,(如图3所示)。指定次数根据实际数据率计算得到,保证在指定次数内一定能检测到数据跳变。在完成数据通道扫描后,根据保存的扫描序列计算各通道的skew值差异,通常以边沿最靠后的通道作为参考通道计算其他通道相对于该通道的skew值,在得到各通道相对skew值后,根据延迟步长值,转化为各通道需要延迟的单元数。这些单元数将被动态延迟补偿模块(如图4所示)使用对各个通道做相应的延迟,使得各通道边沿完全对齐,以增大数据锁存窗口。在完成各数据通道对齐之后,需要重新调整锁存时钟相位使得锁存时刻位于窗口中心,这通过继续移动锁存时钟相位检测边沿来完成,在检测到边沿后,继续移动半个数据位宽即可将锁存时刻固定在窗口中心位置,(如图5所示),从而使得锁存时刻达到最大冗余度,充分保证数据锁存的正确性。在完成de-skew之后,重新配置前端AD系统使退出训练模式,进入到正常工作状态,完成数据的正常采集工作。

以上显示和描述了本发明的基本原理、主要特征和优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。

skew算法_一种基于FPGA的多通道高速输入信号自动de‑skew算法的制作方法相关推荐

  1. 什么是陀螺仪的dr算法_一种基于DR/GPS/MM的组合定位系统数据融合算法

    摘 要: 针对盲区中使用INS惯性导航系统进行定位存在误差积累的问题,提出一种基于DR航位推算.GPS全球定位系统和MM地图匹配的组合定位系统数据融合算法.该算法利用GPS和MM中得到的位置信息,一方 ...

  2. python模糊神经网络预测_一种基于模糊神经网络的化学分子生物毒性预测模型算法的制作方法...

    本发明属于化工 技术领域: ,具体是一种基于模糊神经网络的化学分子生物毒性预测模型算法. 背景技术: :近些年来,化学物质合成技术飞快发展,合成物质已经应用于社会的各行各业,随着工业的高度发展,全球化 ...

  3. java监听微信_一种基于java后台应用监控微信小程序的用户访问量的方法与流程...

    本发明涉及java应用与微信小程序应用开发技术领域,具体涉及一种基于java后台应用监控微信小程序的用户访问量的方法. 背景技术: 微信小程序,简称小程序,是一种不需要下载安装即可使用的应用,它实现了 ...

  4. python自带的对称算法_一种基于对称算法和专用加载模块的Python程序模块加密方法...

    一种基于对称算法和专用加载模块的Python程序模块加密方法 [专利说明]一种基于对称算法和专用加载模块的Python程序模块加密方法 技术领域 [0001]本发明涉及一种网络安全技术,具体涉及一种P ...

  5. 龙芯2h芯片不能进入pmon_一种基于龙芯2H芯片应用的COMe_nano核心板的制作方法

    本实用新型涉及工业自动化控制技术领域,尤其是涉及一种基于龙芯 2H芯片应用的COMe_nano核心板. 背景技术: 核心板是将PC的核心功能打包封装的一块电子主板.大多数核心板集成了CPU.存储设备和 ...

  6. android 活体检测方案,一种基于人脸识别认证的Android红外双目活体检测的制作方法...

    本发明涉及人脸识别领域,具体涉及一种基于人脸识别认证的Android红外双目活体检测. 背景技术: 在目前的利用红外线实现双目活体检测的技术中,普通红外双目,能够同时实时采集近红外和可见光两种图像,并 ...

  7. mos管的rc吸收电路计算_一种反激式开关电源中MOS管的RC吸收电路的制作方法

    本实用新型涉及一种RC吸收电路,特别是涉及一种反激式开关电源中MOS管的RC吸收电路. 背景技术: 开关电源正常工作时,开关芯片内置MOS管处在高频反复导通和关断工作状态.有多种可以解决反激式开关电源 ...

  8. python随机森林筛选变量_一种基于随机森林的改进特征筛选算法

    刘云翔 陈斌 周子宜 摘  要: 肝癌是一种我国高发的消化系统恶性肿瘤,患者死亡率高,威胁极大.而其预后情况通常只能通过医生的专业知识和经验积累来粗略判断,准确率较差.因此文中在分析随机森林算法的基本 ...

  9. 一种基于FPGA 的1080p 高清多摄像头全景视频拼接的泊车(机)

    < > 一种基于FPGA 的1080p 高清多摄像头全景视频拼接的泊车(机)实时影像系统 一.本发明要解决的实际问题 1. 汽车左右反光镜及后视镜的视角有限,导致车身周围存在盲区,在特殊驾 ...

最新文章

  1. 基于xilinx异构平台上视频采集分析
  2. .NET Core Tools转向使用MSBuild项目格式
  3. python正则表达式操作指南_第二篇详细Python正则表达式操作指南(re使用)
  4. testng 定时构建_10自动化测试_持续集成篇
  5. HDU2571 命运【动态规划DP】
  6. mongodb、mysql、redis的性能对比
  7. 正确的理解MySQL的MVCC及实现原理
  8. poj 2485 Highways 超级大水题 kruscal
  9. 用什么软件测试电视分辨率,4k电视分辨率测试图
  10. python idle是什么_idle是什么意思
  11. JS下载文件、图片,JS打包下载
  12. 禁用迅雷极速版自动升级为迅雷x
  13. Arithmetic Progressions
  14. Python实现统一社会信用代码合法性校验
  15. 使用pytorch自己从头搭建一个Lenet分类器网络及其训练、检测脚本
  16. 双模 5G 拍照最强?— X30 Pro 评测
  17. 甲骨文oracle的ocp和ocm认证难不难考?
  18. 获取和清除cookie
  19. mysql squid_Linux 实现 squid+mysql认证
  20. 微信机器人java-wechaty

热门文章

  1. Python 数据分析实战之电商用户行为分析(万字干货)
  2. Windows Docs
  3. 后话:PipeLine支撑运维自动化
  4. SIP订阅,通知和发布
  5. vivos9解锁密码关闭(图文教程分享)
  6. Codeforces 144D: Missile Silos
  7. 【Web前端】CSS-盒子模型
  8. python的ols模型_pythonstatsmodels中缺少OLS回归模型的截取
  9. UE 虚幻引擎项目启动快捷键
  10. Java语言简介及开发环境安装