0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

LVDS高速ADC接口, xilinx FPGA实现

ZYNQ 来源:ZYNQ 2023-04-03 10:28 次阅读

LVDS

即Low-Voltage Differential Signaling。FPGA的selecteIO非常强大,支持各种IO接口标准,电压电流都可以配置。其接口速率可以达到几百M甚至上千M。使用lvds来接收高速ADC产生的数据会很方便。像ISERDES,IDDR,IDELAY,OSERDES,ODDR这种资源在FPGA的IOB中多得是(每个IO都对应有,最后具体介绍),根本不担心使用。最近刚在项目中用到,提供一个思路,具体的器件使用参考FPGA手册。

使用的AD芯片ADI的AD9653,125M16bit高精度高速ADC,用到的采样速率是80M。其SPI配置会单独开一篇来讲,SPI配置里面有个大坑,本来以为调好了的,后来又发现了问题,调了三天才定位到问题在哪,这就是硬件的魅力(坑爹)所在了吧。这里主要介绍FPGA的接收部分。

接收ADC数据的时序图,

b650af8c-d1c4-11ed-bfe3-dac502259ad0.jpg

有几点需要注意:

0 , 可以看出分成三种信号,数据采样时钟DCLK,帧同步信号FCLK,和输入数据DATA

1,输入数据采样时钟默认是已经对齐了输入数据的中点,但帧时钟是和数据字节边缘对齐的。

2,使用Iserdes接收数据,Idelay调整时钟延迟。

1,对数据采样时钟的处理如下

通过控制延时,使得CLK和经过IBUFDS的BitClk对齐,从而消除IBUFIO和BUFR还有net的延时。这样所有的输入信号都只经过了一个IBUFDS,延时相等。对Idelay的控制,可以手动调节,也可以用自动算法。(参考xapp524)

b667bab0-d1c4-11ed-bfe3-dac502259ad0.png

b67b0246-d1c4-11ed-bfe3-dac502259ad0.png

b69b1176-d1c4-11ed-bfe3-dac502259ad0.jpg

b6b5b6de-d1c4-11ed-bfe3-dac502259ad0.jpg

b6d0cd34-d1c4-11ed-bfe3-dac502259ad0.jpg

1.1手动调节对齐

首先来看看手动调节算法,用vivado的vio可以很方便的输入输出,可手动在线修改观察现象,对后面的自动训练算法也有一定的启发作用。 默认R_delay_cnt=0时,可以看到输入的正弦波形很乱

b6e5ea8e-d1c4-11ed-bfe3-dac502259ad0.png

b6f84b34-d1c4-11ed-bfe3-dac502259ad0.png

慢慢的增加R_delay_cnt,当R_delay_cnt=12时,开始出现稳定的正弦波,实验发现R_delay_cnt=14,15,16时恰好采到时钟的边缘,也就是跟输入的原始时钟对齐了,可以看到采到边缘是allign_word一直在跳变,有的是0,有的是1。一直到R_delay_cnt=18,正弦波都很稳定。有效窗口可以准确计算出来,200M的Idelay参考时钟,78ps/tap。7tap*78ps=546ps。说明数据的有效窗口很小,毕竟是320M的DDR,半个周期都才1.56ns.

b7152358-d1c4-11ed-bfe3-dac502259ad0.png

b7344fe4-d1c4-11ed-bfe3-dac502259ad0.png

b74aaadc-d1c4-11ed-bfe3-dac502259ad0.png

b759fc08-d1c4-11ed-bfe3-dac502259ad0.png

最后取R_delay_cnt=15,可以在代码里面写死。

1.2自动训练算法

既然有了手动调节的算法,为什么还要用自动训练对齐的算法呢?在高低温测试的时候,器件的延迟会受温度的影响发生变化,特别是在时钟频率很高,数据有效窗口很小的时候,这时候就需要能够动态的改变R_delay_cnt的值去自适应delay的变化,增加了鲁棒性。

有了上面的手动调节算法,自动训练的思路也很简单了。上电复位后R_delay_cnt一直自加,记下最后一个全0和第一个全1的值,取中点。这里只考虑了一种情况,还可能是从全1到全0的情况。代码如下

b77511b4-d1c4-11ed-bfe3-dac502259ad0.png

b78abcee-d1c4-11ed-bfe3-dac502259ad0.png

b7a543ca-d1c4-11ed-bfe3-dac502259ad0.png

2,对帧同步信号和数据的处理

用上面产生的数据采样时钟同时去采样FCLK和DATA,使用Iserdes可以1:8进行串并转换。但是我们不知道字节的边界在哪里,所以要使用一个bit_slip对串转并的结果进行移位,移位的同时检测FCLK转换的输出,当输出是8’b11110000的时候就停止移位。

b7b845ce-d1c4-11ed-bfe3-dac502259ad0.png

b7c8d632-d1c4-11ed-bfe3-dac502259ad0.png

b7e33a36-d1c4-11ed-bfe3-dac502259ad0.jpg

b7f6dcda-d1c4-11ed-bfe3-dac502259ad0.jpg

b80a5224-d1c4-11ed-bfe3-dac502259ad0.png

b8216752-d1c4-11ed-bfe3-dac502259ad0.jpg

b83ed1de-d1c4-11ed-bfe3-dac502259ad0.jpg

当数据率不是很高的IDDR数据,使用DDR替代Iserdes接收。IDDR和Iserdes使用的资源相同(待验证)

b8539146-d1c4-11ed-bfe3-dac502259ad0.png

HR Bank真实的器件如下,一对IOB,可单独使用,可差分使用。后面的资源从上到下依次是ISERDES(ILOGIC),IDELAY,OLOGIC(OSERDES),ILOGIC,IDELAY,OLOGIC。(ILOGIC可作为IDDR,OLOGIC可作为ODDR)。左上角的是一个clock region(如X0Y2)的中间分布的四个BUFIO和BUGR(局部时钟驱动,局部时钟分频,二者延时相等)。后面是一个IDELAYCTRL。

b869d172-d1c4-11ed-bfe3-dac502259ad0.png

下面分别详细介绍: IDEALY, 经过IDELAY必须要经过ISERDES,可直通。 ISERDES, ISERDES和ILOGIC使用相同的资源,可互换 ILOGIC,

b87b4e02-d1c4-11ed-bfe3-dac502259ad0.png

b890bd8c-d1c4-11ed-bfe3-dac502259ad0.png

OSERDES,和OLOGIC使用相同的资源,可互换

功能描述

• Edge triggered D type flip-flop(FF)

• DDR mode (SAME_EDGE or OPPOSITE_EDGE)

• Level sensitive latch(Latch)

• Asynchronous/combinatorial(直通)

审核编辑 :李倩

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1602

    文章

    21322

    浏览量

    593213
  • lvds
    +关注

    关注

    2

    文章

    848

    浏览量

    64617
  • AD芯片
    +关注

    关注

    2

    文章

    24

    浏览量

    18276

原文标题:LVDS高速ADC接口, xilinx FPGA实现

文章出处:【微信号:ZYNQ,微信公众号:ZYNQ】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    基于FPGA高速LVDS数据传输

    高速LVDS数据传输方案和协议基于FPGA高速LVDS数据传输本人在北京工作6年,从事FPGA
    发表于 03-01 18:47

    如何寻找使用XILINX FPGA高速ADC评估套件?

    嗨,我正在寻找使用XILINX FPGA高速ADC(分辨率8到14位,速度从50MSPS到200MSPS)评估套件。这将是伟大的如果我可以使用ISE webpack软件运行板。如果有
    发表于 08-30 09:10

    双通道14位、500 MSPS采样率的AD9684 高速并行LVDS ADC接口介绍

    工程,已经使用Xilinx kintex-7实现这个ADC接口数据接收驱动与后续信号处理。 由于AD9684需要外部触发时钟输入,需要板卡上的外部基准时钟输入,通过
    发表于 12-06 15:33

    如何将高速ADC与串行LVDS输出连接到virtex 7 fpga

    亲爱的大家,我希望将高速ADC与串行LVDS输出连接到virtex 7 fpga。我使用的ADC评估板是AD9635_125EBZ。我想知道
    发表于 07-26 18:27

    利用FPGA 实现与TS201 的LinkPort 高速数据

    随着技术的发展, 往往需要在不同的系统之间实现高速通信, 现介绍了一种基于LVDS高速数据传输的接口LinkPort , 给出了在
    发表于 09-22 08:26 98次下载

    基于FPGALVDS接口应用

    介绍了LVDS技术的原理,对LVDS接口高速数据传输系统中的应用做了简要的分析,着重介绍了基于FPGA
    发表于 01-11 10:46 99次下载
    基于<b class='flag-5'>FPGA</b>的<b class='flag-5'>LVDS</b><b class='flag-5'>接口</b>应用

    XilinxFPGALVDS差分高速传输的实现

    XilinxFPGALVDS差分高速传输的实现
    发表于 03-01 13:12 64次下载

    基于FPGALVDS过采样技术研究并用Xilinx评估板进行验证

    针对LVDS接口,研究并实现了一种基于FPGALVDS过采样技术,重点对LVDS过采样技术中系
    发表于 11-18 05:13 6972次阅读
    基于<b class='flag-5'>FPGA</b>的<b class='flag-5'>LVDS</b>过采样技术研究并用<b class='flag-5'>Xilinx</b>评估板进行验证

    LVDS高速ADC接口_Xilinx FPGA实现

    上千M。使用lvds来接收高速ADC产生的数据会很方便。像ISERDES,IDDR,IDELAY,OSERDES,ODDR这种资源在FPGA的IOB中多得是(每个IO都对应有,最后具体
    的头像 发表于 06-30 10:23 2.2w次阅读
    <b class='flag-5'>LVDS</b><b class='flag-5'>高速</b><b class='flag-5'>ADC</b><b class='flag-5'>接口</b>_<b class='flag-5'>Xilinx</b> <b class='flag-5'>FPGA</b><b class='flag-5'>实现</b>

    Xilinx FPGA的SerDes接口详细说明

    因为摄像头输出的LVDS信号速率会达到600Mbps,我们将不能够通过FPGA的I/O接口直接去读取这么高速率的信号。因此,需要使用Xilinx
    发表于 12-30 17:24 39次下载
    <b class='flag-5'>Xilinx</b> <b class='flag-5'>FPGA</b>的SerDes<b class='flag-5'>接口</b>详细说明

    如何使用XilinxFPGA高速PCB信号实现优化设计

    本文档的主要内容详细介绍的是如何使用XilinxFPGA高速PCB信号实现优化设计。
    发表于 01-13 17:00 25次下载
    如何使用<b class='flag-5'>Xilinx</b>的<b class='flag-5'>FPGA</b>对<b class='flag-5'>高速</b>PCB信号<b class='flag-5'>实现</b>优化设计

    具有LVDS输出的LTM9011 ADC的AN147-Altera Stratix IV FPGA接口

    具有LVDS输出的LTM9011 ADC的AN147-Altera Stratix IV FPGA接口
    发表于 05-09 21:19 14次下载
    具有<b class='flag-5'>LVDS</b>输出的LTM9011 <b class='flag-5'>ADC</b>的AN147-Altera Stratix IV <b class='flag-5'>FPGA</b><b class='flag-5'>接口</b>

    wp02-将凌力尔特公司的DDR LVDS ADC与Altera Stratix IV FPGA接口

    wp02-将凌力尔特公司的DDR LVDS ADC与Altera Stratix IV FPGA接口
    发表于 05-23 11:13 1次下载
    wp02-将凌力尔特公司的DDR <b class='flag-5'>LVDS</b> <b class='flag-5'>ADC</b>与Altera Stratix IV <b class='flag-5'>FPGA</b><b class='flag-5'>接口</b>

    设计参考书籍-Xilinx FPGA伴你玩转USB3.0与LVDS(3)

    设计参考书籍-Xilinx FPGA伴你玩转USB3.0与LVDS(3)
    发表于 11-18 15:51 0次下载

    设计参考书籍-Xilinx FPGA伴你玩转USB3.0与LVDS(9)

    设计参考书籍-Xilinx FPGA伴你玩转USB3.0与LVDS(9)
    发表于 11-18 16:18 0次下载