精华内容
下载资源
问答
  • Xilinx SerDes调试方案

    2021-01-20 04:47:51
     [导读] FPGA SERDES的应用需要考虑到板级硬件,SERDES参数和使用,应用协议等方面。由于这种复杂性,SERDES的调试工作对很多工程师来说是一个挑战。  关键词:SerDesXilinx  FPGA SERDES的应用需要考虑到板级...
  • xilinx serdes时钟纠正clock correction

    千次阅读 2017-08-29 21:27:16
    xilinx serdes时钟纠正clock correction

    1、时钟纠正原理
    时钟纠正比较简单,下面一个图就能说清楚。
    首先为什么要使用时钟纠正,是因为CDR恢复的用户时钟user_clk和硬核时钟XCLK虽然频率一样,但是会有略微的不同,正是这样导致内部的FIFO有可能读空和写满,这样就会导致传输错误。与其传输出错误,不如我们就发送一个特定的序列让它去“出错”。在FIFO快满的时丢弃这个序列,在FIFO快读空时加入这个序列。由于收发双方约定好了这个序列是什么,这样可以避免出错。
    这里写图片描述
    2、设置buff大小
    即设置最小延迟和最大延迟,buff中的内容在小于或大于这两个值时就会插入或删除特定的CC序列。设置最小延迟要求如下表。(IP核里面不用设置这个,因为提供了PPM offset核CC序列发送的周期,IP核会自己计算出来,真是智能!)
    这里写图片描述
    3、设置序列长度,跟上面一样,和comma码的长度有关。
    这里写图片描述

    4、IP核设置
    这里写图片描述

    展开全文
  • xilinx serdes通道绑定channel bonding

    千次阅读 2017-08-29 21:04:46
    xilinx serdes通道绑定channel bonding,通道对齐,消除延时 把多根serdes通道绑定成一根逻辑上的通道

    1、通道绑定原理

    通道绑定只支持8b10b编码协议,通道绑定利用内部的FIFO来抵消通道间的延时差,原理如下图
    这里写图片描述
    master channel 和slave channel都有特定的字节,可以是K码。当master 检测到K码时,进行一个计数,slave检测到K码同样会计数。等master 计数到sequence max_skew时,通过移动指针消除前面的延时。

    2、通道间的级联

    下面是两个级联的例子
    这里写图片描述
    其中的level是为了满足时序,在master和slave间加入的流水线级数。(如果全部直接相连的话,会因为收发器之间离得太远而无法满足时序要求)。可以看出bondlevel是在收到CB信号后等几级流水延迟才开始进行通道绑定。

    3、FIFO内数据流动

    这里写图片描述
    sequence max_skew的作用,可以防止slave通道延迟的情况。注意max_skew根据通道间的时延设置尽量大一点,但不要超过最近两个通道绑定K码的一半。(这样就分不清到底是哪一次绑定了)

    4、IP核设置

    由于使用的是K码,不会和数据冲突,所以sequence length设置为1就行了。如果不使用K码,sequence length最好设置为4,这样有64bit的序列,和数据重复的概率很小很小。下面的时钟纠正就是这样设置的。
    这里写图片描述

    5、上板调试

    最后生成好bit实验,通道绑定成功。
    这里写图片描述
    可以看到,comma码和通道绑定的K码都是对齐的,并且comma码是用的组合commaNP码即tx_data=0x0504BCBC–>tx_isk=11,然后comma码用的K28.1即0x3C,tx_isk=01。实验成功

    展开全文
  • Xilinx官方指南,本指南详细介绍了Xilinx的Spartan6系列的serdes模块,用于连接高速ADC/DAC,包含了具体的实例,非常详细,使用serdes前必读
  •  [导读] FPGA SERDES的应用需要考虑到板级硬件,SERDES参数和使用,应用协议等方面。由于这种复杂性,SERDES的调试工作对很多工程师来说是一个挑战。  关键词:SerDesXilinx  FPGA SERDES的应用需要考虑到板级...
  • xilinx IP核配置,一步一步验证Xilinx Serdes GTX最高8.0Gbps

    万次阅读 多人点赞 2017-08-28 22:34:07
    一步一步验证Xilinx Serdes高速收发器 GTX 最高线速 8.0Gbps 手把手IP核配置,理解每个配置选项的原理

    之前用serdes一直都是跑的比较低速的应用,3.125Gbps,按照官方文档一步一步来都没出过什么问题,这次想验证一下K7系列GTX最高线速8Gbps,看看xilinx的FPGA是不是如官方文档所说。

    GTX速度到底可以跑到多少

    关于器件速度的问题首先找到 ds182->Kintex-7 FPGAs Data Sheet:DC and AC Switching Characteristics,可以自己对应的器件去找,不过这个在设计电路板器件选型的时候就应该考虑到,除非是买的开发部学习用。这里面包括所有的FPGA各个器件能跑到的最高频率和器件延时,建立时间,保持时间等,对高速设计有很大的参考价值。
    找到GTX Transceiver Switching Characteristics
    这里写图片描述

    可以看到,虽然K7系列GTX最高可以跑到12.5Gbps,但这跟速度等级和封装都有关系,是在-3的速度等级,FF封装下才有的最高速度12.5Gbps。而现在手头的芯片型号是K7480TFFG901-1,所以最高支持8.0Gbps。其实这在配置IP核的时候就会发现了,线速范围是(0.5-8.0)。所以IP核都是严格和工程的器件相关联的,这点Vivado越做越好了。

    一步一步配置IP核

    下面一步步配置IP核,可以作为初学者参考。(第一次用的话,会被生成的一大堆文件和巨多的IO口吓到的。)包括怎么查找手册和原理图,走一遍流程,发现其实xilinx的IP核都是一个套路。

    1

    首先在IP核搜索GT,选择7 Series FPGAs TransceiversWizard,
    这里写图片描述

    没得选的,取个名字。顺便提一下,下面的shared logic选项,最好选include shared logic in example design。在有些特殊资源需要共享时,曾经遇到过这里的问题。当然不是GTX模块,是以太网的RGMII的模块,其中的IDELAY要用到IODELAY_CTRL,一个IOB就一个,同一个IOB其它地方要用到的时候必须选下面一个选项。所以最好都选下面一个,没毛病。

    2

    接下来就比较重要了
    这里写图片描述
    首先是协议,最简单的strat from cratch,就是没有协议。然后是线速,可以看到范围是(0.5-8.0)。参考时钟,这个可以根据需要选个合适的。软件都根据你的线速把参考时钟的可选项计算好了。接收端同样设置,当然可以不一样的。这是全双工,收发链路没有什么关系,也可以关掉其中一个Tx off 或Rx off。然后是PLL选择,到底选哪个呢?我们回到刚开始提到的ds182,同样一个表格下部分
    这里写图片描述
    其实线速决定了没得选,已经变成灰色了。
    然后是比较重要的,选择用哪个收发器,这当然不是拍脑袋决定的,跟设计有关,可以查找原理图。
    这里写图片描述
    比如说这样的,然后去查手册UG476-> 7 Series FPGAsGTX/GTH Transceivers 找到 Placement Information by Package如下
    这里写图片描述
    这样就知道用的是X0Y8,输入时钟在上面的原理图可以找到,是同一组的clk0。
    最后,把vivado lab tools勾上,这样才可以生产example工程可以参考。

    3

    继续
    这里写图片描述
    之前一直用的是8b10b,这次尝试一下64b66b,后者本来就是高带宽下的一个编码协议,效率更高。为什么要用8b10b,64b66b包括后面的扰码一句话概括就是增加频率分量有利于CDR(时钟数据恢复)和减少直流,两个是不同的原因。具体的可以百度。最下面的可选端口为了简单,全部去掉。

    4

    这里写图片描述
    由于没有选择8b10b,这一页也没什么可选的,依然把下面的可选端口全部去掉。

    5

    这里写图片描述
    好了,pcie留着下次研究,太复杂了。可选端口其实有的挺有用的,增加了可控性,比如说环回控制,LOOPBACK。顺便说一下内部环回有四种,
    1.“000”:正常模式不环回
    2.“001”:近端PCS环回
    3.“010”:近端PMA环回
    4.“100”:远端PMA环回
    5.“110”:远端PCS环回)

    6

    接下来是通道绑定和时钟校正
    这里写图片描述
    通道绑定的作用是把多个物理通道对齐,绑定成一个的逻辑通道。其实就是用FIFO消除通道间的延时不确定性。由于只有一个通道,没有绑定可言。

    6

    最后看一下确定对不对,注意收发时钟是250M。可以算一下,8000M/32=250M。
    这里写图片描述

    到这里完成一大半了。

    利用IP核生成example工程

    接下来生成example工程
    这里写图片描述
    把刚刚配置的IP右键,如图选择。
    生成好后稍微改一下约束文件XDC,把DRC时钟的输入时钟约束一下。其他的不用管。

    ## LOC constrain for DRP_CLK_P/N 
    set_property LOC G27 [get_ports  DRP_CLK_IN_P]
    set_property LOC F27 [get_ports  DRP_CLK_IN_N]
    set_property IOSTANDARD LVDS_25 [get_ports  DRP_CLK_IN_P]
    set_property IOSTANDARD LVDS_25 [get_ports  DRP_CLK_IN_N]

    可以发现直接在这儿可以改具体使用的哪个收发器。注意:在这里改的效果和上面第2步里面设置的效果一样。

    set_property LOC GTXE2_CHANNEL_X0Y4 [get_cells gtx_8g_support_i/gtx_8g_init_i/inst/gtx_8g_i/gt0_gtx_8g_i/gtxe2_i]

    要改的话,当然同时GTX的时钟也得改

    set_property LOC AD5 [get_ports  Q1_CLK0_GTREFCLK_PAD_N_IN ] 
    set_property LOC AD6 [get_ports  Q1_CLK0_GTREFCLK_PAD_P_IN ]

    再修改一个地方,原来的ILA核抓的是解扰码前的数据,替换成解扰码后的数据可以更清楚的看到接收到的数据。

    上板调试验证

    好了,生成bit下进去,可以用连接线接上连个serdes的一收一发换回,或者设置内部环回,或者在两片FPGA上做实验。
    这里写图片描述

    可以看到error_count一直是0,说明收发正确,很稳定。
    收到的数据依次是00000fb,3020100,7060504…依次递增,打开发送文件如下,和发送的一样。

    00000000000000fb0100
    00000000030201000000
    00000000070605040000
    000000000b0a09080000

    实验成功证明了GTX可以跑到最高8.0Gbps。
    生成的example工程可以好好研究学习一下,里面有加扰码和解扰码的过程,自己修改一下把解扰码后的数据抓出来对比一下,可以很清楚的看到收到了什么数据。包括校验模块是怎么校验的,还是值得一学的。

    展开全文
  • 赛灵思中国SystemIO专家FAE 杨宁FPGA SERDES的应用需要考虑到板级硬件,SERDES参数和使用,应用协议等方面。由于这种复杂性,SERDES的调试工作对很多工程师来说是一个挑战。本文将描述SERDES的一般调试方法,便于...

    赛灵思中国SystemIO专家FAE 杨宁

    FPGA SERDES的应用需要考虑到板级硬件,SERDES参数和使用,应用协议等方面。由于这种复杂性,SERDES的调试工作对很多工程师来说是一个挑战。本文将描述SERDES的一般调试方法,便于工程师准确快速定位和解决问题。

    1. 硬件检测

    硬件检测可以分为原理图/PCB检查和板上硬件检查。这一部分的工作相对简单,但是很多时候问题是由这些看起来很不起眼的地方导致的。

    a) 原理图/PCB检查

    根据SERDES应用手册要求检查原理图和PCB设计。例如对于Xilinx 7系列GTX/GTH SERDES,可以参考UG476的Board Design Guidelines检查原理图和PCB设计。

    b) 板上硬件检查

    使用示波器/万用表等仪器设备实际测量板上硬件,确认提供给SERDES的工作环境正常。

    i. 检查电源的电压/精度/纹波/上电顺序是否符合数据手册的要求。例如对于Xilinx 7系列GTX SERDES,需要对照DS182检查。

    ii. 检查SERDES参考时钟频率/摆幅是否符合数据手册的要求,以及参考时钟的管脚位置是否正确。

    iii. 物理通道的检查,例如确认AC耦合电容的容值是否正确,光模块是否兼容,焊接是否正常。

    2. 使用IBERT

    IBERT是一个强有力的调试工具,可以用于调整参数设置和确认系统余量,也可以用于故障现象判断。IBERT在CORE generator里产生工程和BIT文件。将BIT文件下载到FPGA后,使用ChipScope Analyzer连接到FPGA上,就会出现IBERT的GUI调试界面。

    a) 检查PLL是否LOCK,如果没有,需要检查时钟和电源。比如时钟频率是否正确,SERDES是否选择了正确的时钟源。

    b) 将SERDES的TX和RX设为相同的数据pattern,例如PRBS-31。设置SERDES为Near-end PMA模式。如果这一步不能工作,检查TX/RX极性是否反转;检查TXUSRCLK/TXUSRCLK2/RXUSRCLK/RXUSRCLK2上的时钟频率是否正常。通过这一步保证SERDES内部工作正常。

    c) 将SERDES设置为Far-end PMA和Far-end PCS模式,确认远端设备的SERDES是否收发正常。通过这一步排除和时钟OFFSET相关的问题。

    d) 如果这些步骤工作正常,但是误码率很高,有可能是参数设置有问题。需要通过调整TX/RX的参数设置来解决。也可以通过EYE SCAN功能来得到最佳设置和判断系统余量。

    3. 通用的调试步骤

    通常会使用一定的调试步骤来定位问题,避免重复工作。一开始,一般不进行整个工程的测试,而是基于SERDES的Wrappers工程,以方便定位问题。一般可以使用CORE generator里的Transceivers Wizard产生的Example Design。在Core generator里产生Transceivers Wizard的Example Design后,会输出源文件和scripts。利用scripts可以直接产生运行结果。Example Design里的数据产生和检测都是基于BRAM,可以很方便的修改数据。在工程里面,Chipscope VIOs and ILAs必须被加入到工程里面,进行控制和调试分析。

    a) 进行Near-end PCS测试。

    i. 启动SERDES复位(VIO)。

    ii. 确认复位结束(VIO)。

    iii. 检查SERDES状态信号(VIO)。

    iv. 使用计数器确认时钟频率(VIO)。

    b) 进行Near-end PMA测试。

    i. 确认CDR工作正常,检测CDR产生的恢复时钟(VIO)。

    ii. Comma alignment和8B/10B状态检查(ILA)。

    c) 正常操作检测

    i. 确认clock correction电路状态(ILA)。

    ii. 确认Channel bonding电路状态(ILA)。

    iii. 链路通讯检查(ILA和VIO)。

    (责任编辑:ioter)

    展开全文
  • 因为摄像头输出的LVDS信号速率会达到600Mbps,我们将不能够通过FPGA的I/O接口直接去读取这么高速率的信号。因此,需要使用Xilinx FPGA内的SerDes去实现高速数据的串并转换。
  • FPGASERDES的应用需要考虑到板级硬件,SERDES参数和使用,应用协议等方面。由于这种复杂性,SERDES的调试工作对很多工程师来说是一个挑战。本文将描述SERDES的一般
  • xilinx IP核配置,一步一步验证Xilinx Serdes GTX最高8.0Gbps 之前用serdes一直都是跑的比较低速的应用,3.125Gbps,按照官方文档一步一步来都没出过什么问题,这次想验证一下K7系列GTX最高线速8Gbps,看看xilinx的...
  • xilinx 高速收发器Serdes深入研究

    万次阅读 多人点赞 2017-08-29 20:50:51
    xilinx 高速收发器Serdes深入研究原理 8b10b 环回设置
  • xilinx 7系列 serdes GTP的仿真文件,本人仿真与实际验证通过,对做高速串行的朋友可以借鉴
  • Xilinx 7系列SERDES应用

    千次阅读 2017-10-06 19:14:06
    SERDES是英文SERializer(串行器)/DESerializer(解串器)的简称。它是一种主流的时分多路复用(TDM)、点对点(P2P)的串行通信技术。即在发送端多路低速并行信号被转换成高速串行信号,经过传输媒体(光缆或铜线),最后在...
  • 因此,需要使用Xilinx FPGA内的SerDes去实现高速数据的串并转换。熊猫君的文章“Zynq高速串行CMOS接口的设计与实现”,都已经说清楚了,大神~~参考文档ug953,ug471,我们为了捕获OV7251摄像头LVDS的数据信号,将会...
  • 1、时钟纠正原理 时钟纠正比较简单,下面一个图就能说清楚。 首先为什么要使用时钟纠正,是因为CDR恢复的用户时钟user_clk和硬核时钟XCLK虽然频率一样,但是会有略微的不同,正是这样导致内部的FIFO有可能...
  • 此篇文章深入浅出介绍了关于高速串行收发器的几个重要概念和注意事项,为方便知识点复习总结和后续查阅特此转载,原文标题及链接为:xilinx 高速收发器Serdes深入研究 - CSDN博客 ... 一、为什么要用Serdes ...
  • 1、通道绑定原理通道绑定只支持8b10b编码协议,通道绑定利用内部的FIFO来抵消通道间的延时差,原理如下图 master channel 和slave channel都有特定的字节,可以是K码。当master 检测到K码时,进行一个计数,slave...
  • 、为什么要用Serdes 传统的源同步传输,时钟和数据分离。在速率比较低时(<1000M),没有问题。 在速率越来越高时,这样会有问题 由于传输线的时延不一致和抖动存在,接收端不能正确的采样数据,对不准眼图中点。...

空空如也

空空如也

1 2 3 4 5 6
收藏数 103
精华内容 41
关键字:

serdesxilinx