XILINX FPGA lvds 解串方案

这篇具有很好参考价值的文章主要介绍了XILINX FPGA lvds 解串方案。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一 概述:

iserdese2,fpga开发

7 Series ISERDESE2 and OSERDESE2

        ISERDESE2input serial-to-parallel converters

         OSERDESE2output parallel-to-serial converters

         xilinx 7系列FPGAISERDESE2OSERDESE2支持非常高的I/O数据速率,对于ISERDESE2存在bitslip信号来重新对齐串行数据以获得正确的字节数据;

iserdese2,fpga开发

         上图为OSERDESE2并转串输出到ISERDESE2串转并输入的字节序变化。

iserdese2,fpga开发

         上表列出了ISERDESE2以及OSERDESE2可以实现的串并转换的并行数据的位宽,其中1014位位宽需要两个ISERDESE2级联或两个OSERDESE2级联获得。

iserdese2,fpga开发

         注意级联时,当需要获取10位位宽时,使用下面一个ISERDESE2Q3Q4来作为Data Internal[8:9];当需要获取14位位宽时,使用下面一个ISERDESE2Q3~Q8来作为Data Internal[8:13]

         对于ISERDESE2而言,串行输入可以直接来自IOB也可以来自IDELAY2单元(串行信号经过IDELAY2后进行了延时),这就需要通过IOBDELAY Value来设置,具体参数设计以及ISERDESE2实际使用的输入如下表所示:

iserdese2,fpga开发

、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、

  二 :详细说明     

        无论是HiSPi、LVDS还是MIPI,其核心思想就是要实现将高速串行信号恢复成并行数据。这将会用到XilinxFPGA IOB上的一个重要的资源——ISERDES。

        实现串行信号的并行化,光有ISERDES还不行,还需要用到IOBANK上的延时模块IDELAYCTRL和IOB上的IODELAYE以及相关的相位训练算法。

1 Xilinx的IO资源

        本节对用到的IO资源作简要的介绍。

1.1IDELAYCTR资源

         在电压、温度等因素变化时,可能会影响到系统的时序,此时IDELAYCTRL模块就可以连续补偿时钟域内所有个体的delay taps (IDELAY/ODELAY)。如果使用了IOB上的IDELAY或ODELAY资源,那么就必须使用IDELAYCTRL资源。请注意,整个IO BANK里面只有一个IDELAYCTRL。

IDELAYCTRL很重要的一个输入项就是参考时钟REFCLK,补偿时钟域内所有模块的时序参考,这个时钟必须由BUFG或BUFH驱动。REFCLK必须保证在FIDELAYCTRL_REF+IDELAYCTRL_REF_PRECISION(MHz)ppm才能保证IDELAY/ODELAY的延时分辨率:

(TIDELAYRESOLUTION=1/(32x 2 x FREF))

(TIDELAYRESOLUTION=1/(32x 2 x FREF))

vivado,data_delay 可调tap范围0~31,clock_delay可调范围0~31;

即 data_delay 和clock_delay各占用ref_clock的半个周期。clock_delay即相当于data 前置,与data_delay是相反方向的相位设置。

ex,ref_clock = 200MHz, ref_clock_period = 1/ 200MHz = 0.5 ns = 5000ps

则data_delay 1个tap = 5000ps / 2  / 32 = 78ps

同样的,clock_delay 1个tap也是78ps。

1.2  IDELAYE2逻辑

       IDELAYE2逻辑是一个31抽头的循环延时补偿模块,对输入的信号进行指定分辨率的延时,FPGA可以直接访问。Tap延时分辨率由IDELAYCTRL的参考时钟提供持续补偿。图(1)是IDELAYE2接口示意图,表(1)是对这些接口的描述,表(2)是对逻辑参数的描述。

iserdese2,fpga开发

表(1)IDELAYE2接口描述

端口名

方向

位宽

描述

表(2)IDELAYE2逻辑参数描述

参数名

值域

默认值

描述

   以下以VAR_LOAD模式为例说明延时的时序动作,如图(2)所示。

iserdese2,fpga开发

a) Clock Event 0

在LD有效前,CNTVALUEOUT输出为未知值;

b) Clock Event 1

在C的上升沿采样到LD有效,此时DATAOUT延时CNTVALUEIN指定的延时Taps,改变tap Setting到Tap2,CNTVALUEOUT更新到新的Tap值;

c)Clock Event 2

INC和CE有效,此时指定了增量操作,Tap值加1,DATAOUT输出从Tap2更新到Tap3,CNTVALUEOUT更新到新的Tap值;

d)Clock Event 3

LD有效,DATAOUT输出延时更新到Tap10,CNTVALUEOUT更新到新的Tap值。

1.3  ISERDESE2逻辑

        输入串转并逻辑可以看做是OSERDESE2的逆过程,在SDR模式下可支持2-、3-、4-、5-、6-和7-的串并转换,在DDR模式下可支持2-、4-、6-、8-的串并转换,级联DDR模式下还可扩展到10-和14-。每一个ISERDESE2包括:

a)专门的串并转换器;

b) Bitslip子模块用于源同步接口;

c)专用的可支持strobe-based的存储接口。

       图(3)是ISERDESE2的结构示意图。表(3)是ISERDESE2接口描述,表(4)示ISERDESE2的参数描述。

iserdese2,fpga开发

表(3) ISERDESE2

端口名

方向

位宽

描述

表(4)ISERDESE2的参数描述

参数名

阈值

默认值

描述

(1)   时钟方案

         CLK和CLK_DIV必须是严格对齐的时钟,虽然允许使用BUFIO/BUFR,但任然有可能存在相位问题。图(5)时采用BUFIO/BUFR的方案。

iserdese2,fpga开发

          一般的,根据接口类型的差异,时钟必须满足以下的约束:

a)networking interface

n  CLK→BUFIO;CLKDIV→BUFR;

n  CLK→MMCM/PLL;CLKDIV→和CLK相同的MMCM/PLL的CLKOUT[0:6]的输出,使用MMCM时CLK和CLKDIV必须使用相同的驱动BUF;

n  CLK→BUFG;CLKDIV→BUFG。

b)MEMORY Interface Type

n  CLK→BUFIO, OCLK→BUFIO,或CLKDIV→BUFR;

n  CLK→MMCM或PLL, OCLK→MMCM,或CLKDIV由同一个MMCM/PLL的CLKOUT[0:6]驱动;

n  CLK→BUFG,CLKDIV→不同的BUFG。

         OCLK和CLKDIV的输入相位必须是严格对齐的,CLK和OCLK之间不要求相位关系。From CLK to OCLK的时钟域必须进行补偿。

其他接口类型的时钟方案参考文档UG471。

(2)   BitSlip子模块

         BitSlip用于调整并行寄存器输出串行数据的位置。在SDR模式下,每一个BitSlip脉冲让输出pattern的数据左移1bit;在DDR模式下,第一个BitSlip右移1bit,第二个BitSlip左移3bit,依次进行,移动规律如图(6)所示。BitSlip一定是和CLKDIV同步的一个脉冲

 使用bitslip信号可以修改串转并的起始位置,如下图所示,为DDR模式下使用bitslip的时序图,开始时最先采集到的串行数据转换出来的并行数据为0xCDAB,插入一个bitslip信号后采集数据变为0xBCDA,你可以通过多次插入bitslip的方法来获取正确的并行数据序。

SDR以及DDR模式下bitslip插入次数对并行数据字节序的影响如下图所示,插入8bitslip就可以将整个转换循序循环一遍。

iserdese2,fpga开发

iserdese2,fpga开发

图(6)BitSlip训练移位规律

但是在实际测试过程中发现规律为:

1 左1

2 右3

3 左1

4 右3

5 左1

6 右3

7 右1

8 左3

9 右1

不管是哪种方式,我们都是一次一次的拉高bitsilp,直到有正确的字节顺序。

          在上面所介绍的资源中,IDELAYE2是动态相位对其训练的神器,ISERDESE2实现串并转换,其Bitslip功能是实现并行化数据对齐的关键。

注意: 

Bitslip的移位并不是首尾循环

Although the repeating pattern seems to show that bitslip is a barrel shifting operation, this is not the case. A bitslip operation adds one bit to the input data stream and loses the nth bit in the input data stream. This causes the operation on repetitive patterns to appear like a barrel shifter operation.

如下图:

图1是没有使用bitsilp的情况,可以看到接受到的数据为:100111 011000 100000

再第二个时钟 使用bitsilp之后,数据变成: 100111 110001 000000 

可以看到第二拍的数据 从原来的011000 变成110001 ,而末尾的1是下一个数据的1,开始的0被丢弃

iserdese2,fpga开发

图1

iserdese2,fpga开发

图2

1.4 iddr:

IDDR三种模式:我们用的是SAME_EDGE_PIPELINED

iserdese2,fpga开发

iserdese2,fpga开发

iserdese2,fpga开发

端口:

iserdese2,fpga开发

介绍:

iserdese2,fpga开发

iserdese2,fpga开发文章来源地址https://www.toymoban.com/news/detail-722604.html

到了这里,关于XILINX FPGA lvds 解串方案的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • FPGA高端项目:Xilinx Zynq7020 系列FPGA纯verilog图像缩放工程解决方案 提供3套工程源码和技术支持

    FPGA高端项目:Xilinx Zynq7020 系列FPGA纯verilog图像缩放工程解决方案 提供3套工程源码和技术支持 没玩过图像缩放都不好意思说自己玩儿过FPGA,这是CSDN某大佬说过的一句话,鄙人深信不疑。。。目前市面上主流的FPGA图像缩放方案如下: 1:Xilinx的HLS方案,该方案简单,易于实现

    2024年01月23日
    浏览(52)
  • 轻松实现FPGA在线升级:基于Xilinx的7系列以上支持的技术解决方案

    基于xilinx的FPGA在线升级程序,仅7系列以上支持 涉及的知识点和领域范围: 1. FPGA(现场可编程门阵列):FPGA是一种可编程的硬件设备,可以根据需要重新配置其内部电路,以实现不同的功能和任务。 2. Xilinx:Xilinx是一家知名的FPGA制造商,提供各种型号和系列的FPGA芯片。

    2024年04月27日
    浏览(49)
  • FPGA高端项目:Xilinx Artix7 系列FPGA纯verilog图像缩放工程解决方案 提供4套工程源码和技术支持

    FPGA高端项目:Xilinx Artix7 系列FPGA纯verilog图像缩放工程解决方案 提供4套工程源码和技术支持 没玩过图像缩放都不好意思说自己玩儿过FPGA,这是CSDN某大佬说过的一句话,鄙人深信不疑。。。目前市面上主流的FPGA图像缩放方案如下: 1:Xilinx的HLS方案,该方案简单,易于实现,

    2024年01月20日
    浏览(52)
  • FPGA高端项目:Xilinx Kintex7 系列FPGA纯verilog图像缩放工程解决方案 提供4套工程源码和技术支持

    FPGA高端项目:Xilinx Kintex7 系列FPGA纯verilog图像缩放工程解决方案 提供4套工程源码和技术支持 没玩过图像缩放都不好意思说自己玩儿过FPGA,这是CSDN某大佬说过的一句话,鄙人深信不疑。。。目前市面上主流的FPGA图像缩放方案如下: 1:Xilinx的HLS方案,该方案简单,易于实现

    2024年01月17日
    浏览(42)
  • Xilinx Alveo系列FPGA加速卡软件开发入门

    随着异构计算越来越火,FPGA加速卡在诸多领域的应用也越来越多。 FPGA加速卡与GPU加速卡加速原理完全不同。 GPU本质上是依靠海量的并行运算单元,提升整体的吞吐量,来吃尽内存带宽。 FPGA是通用的门阵列,按照数据结构和运算特点搭建专用运算单元,能够以更低功耗和时

    2024年02月05日
    浏览(52)
  • FPGA嵌入式开发一些Xilinx SDK库函数的理解

    最近在测试AXI Quad SPI这个IP核的端口时序,搭建BD后导出到硬件,在SDK中导入xspi_intr_example.c的源文件,在师兄的帮助下,浅浅研究了一下代码。 首先,需要修改源程序中的错误,参照CSDN文章:ZYNQ中断示例修改 做出以下修改: 此外,还要对中断驱动实例名称进行修改: 以下

    2024年02月12日
    浏览(50)
  • FPGA_ZYNQ (PS端)开发流程(Xilinx软件工具介绍)

            针对不同的应用领域,Xilinx 公司设计开发了各种逻辑资源规模和集成各 种外设功能的Zynq SOC器件,包括专为成本优化的Zynq-7000平台,面向高性 能实时计算应用领域的 Zynq UltraScale+ MPSoC,面向射频通信的 ZynqUltraScale+ RFSoC,以及具备高度可扩展特性的自适应加速平台

    2024年01月16日
    浏览(65)
  • [FPGA开发]解决正点原子Xilinx下载器无法下载、灯不亮的问题

    使用正点原子的Xilinx下载器下载时,电脑无法识别下载器,Vivado无法识别开发版。 1.检查XIlinx下载器的灯是否亮起。 亮灯 说明 解决方法 红灯亮起 下载器可以连接到PC 检查开发版是否供电正常 蓝灯亮起 下载器可以连接到PC,下载器可以连接到开发版 正常状态 灯不亮 下载器

    2024年02月13日
    浏览(51)
  • Xilinx FPGA SPIx4 配置速度50M约束语句(Vivado开发环境)

    qspi_50m.xdc文件: 等同于图形化配置方式:

    2024年02月22日
    浏览(66)
  • FPGA 高速接口(LVDS)

    LVDS(Low Voltage Differential Signalin)是一种 低振幅差分信号技术 。它使用幅度非常低的信号(约350mV)通过一对差分PCB走线或平衡电缆传输数据。大部分高速数据传输中,都会用到LVDS传输。 目前FPGA开发板资料中涉及LVDS通信的方案并不多,但是LVDS实际上有大量的应用,特别是在

    2024年02月19日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包