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

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

3天内不再提示

基于FPGA的Aurora 8b10b光通信测试方案

CHANBAEK 来源:FPGA Zone 作者:FPGA Zone 2023-10-01 09:48 次阅读

概述

本文开源一个FPGA高速串行通信项目:Aurora 8b10b光通信。7 Series FPGAs Transceivers Wizard IP是Xilinx官方7系列FPGA的高速串行收发器,本工程主要是围绕该IP核采用Vivado提供的例程创建。

下面主要介绍一下7 Series FPGAs Transceivers Wizard IP核的参数配置以及如何建立该项目Vivado工程。

硬件平台

软件平台 :Vitis 2019.2;

硬件平台 :XC7Z035FFG676-2;

IP核参数配置

GT Selection

图片

GT Selection相关参数配置保持默认即可;

Line Rate, RefClk Selection

图片

Protocol :此选项下有多种协议可供选择,这里选择 Aurora 8b10b single lane 4bytes,对外接口也就是32位;

TX & RX :收发器是独立的,可以选择不同的编码和速度,对于GTX收发器最大是10.3125Gbps,这里选择5Gbps。参考时钟必须和FPGA板卡上的时钟一致,为125MHz。

图片

Transceiver Selection :该项目采用的FPGA型号为MK7325,有两个SFP接口,分别连接到GTX_X0Y12和GTX_X0Y13;

Encoding and Clocking

图片

TX & RX :内部数据宽度设置为20(16bit数据利用8b10b编码为20bits),两个内部数据拼接为1个32bit外部数据,编码方式采用8b10b编码,这种编码方式最主要的目的是保持 直流平衡,根据特定的编码表实现数据传输过程中0和1的数量基本一致,减少连续0或1的情况。DRP/System Clock是动态重配置/系统工作时钟,通过DPR可以根据所配置线速率和协议实时调整收发器参数。DRP时钟频率设置为100MHz,可以通过外部PLL产生,利用DRP时钟初始化一些GTX控制器信号或者参数;

图片

Synchronization and Clocking :TXUSERCLK,和 RXUSERCLK 时钟的选择一般TXUSERCLK可以直接选择TXOUTCLK作为用户时钟,而RXUSERCLK可以选择TXOUTCLK也可以选择RXUSERCLK,还可以选择RXPLLREFCLK作为用户时钟。这里就涉及到一个同步的概念,如果时钟不一致必须设置TX和RX的 BUFFER,默认都是设置的。另外输入TX的发送时钟和RX的恢复时钟差异交大,可能会导致RX BUFFER的溢出或者读空,而导致数据出错。比较好的解决办法就是设置RXUSERCLK为RXOUTCLK,就是利用恢复时钟作为用户时钟,这样就很好的解决了同步的问题了。

Comma Alignment and Equalization

图片

Comma Value :设置K码为K28.5,K码用于修正数据对齐,其它选项保持默认配置即可;

PCIe SATA PRBS

图片

保持默认配置即可;

CB and CC Sequence

图片

Clock correction :选择支持时钟校准,设置每5000个字节发送一组CC Seq,因为从数据流中恢复出来的时钟和本地产生的FIFO读侧的时钟的频率不可能完全一致,所以才要进行CC处理。这个周期是根据发送侧和接收侧的时钟差算出来,然后再根据实际调试结果进行一定的修正。

Summary

图片

根据上图可以看出,TXUSRCLK和RXUSRCLK频率为250M,TXUSRCLK2和 RXUSRCLK2为125M,也就是我们写代码要使用的时钟。

Vivado工程创建

右击IP核,选择 open IP example design;

图片

其中,gt aurora GT FRAME GEN模块功能是产生要发送的测试数据,gt aurora GT FRAME CHECK模块检查回环收到的数据是否正确;

由于开发板的SFP屏蔽笼的tx_disable引脚都默认接了上拉电阻。要使收发回环测试可以正常进行,必须要将tx_disable引脚拉低。因此,在example design的顶层模块,添加2个sfp_tx_disable引脚,且均置为0即可;

将drp_clk直接连入sysclk,官方例程这个时钟是引脚进来的加了bufg,该工程用PLL产生;

接下来我们将在硬件上实现回环传输测试数据的功能,首先我们需要从外部给出一个自由时钟,hb_gtwiz_reset_all_in复信号是高电平有效,用户直接拉低即可。由于开发板的SFP屏蔽笼的tx_disable引脚都默认接了上拉电阻。要使收发回环测试可以正常进行,必须要将tx_disable引脚拉低;

最后在示例工程里添加必要的ILA,去抓取对应的信号。

功能测试

本工程实现功能为光纤信号8b10b回环传输,FPGA板上测试结果如下图所示,可以看到gt0_error_count_i信号保持为0,也就是说8b10b光通信传输正常。

图片

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

    关注

    1601

    文章

    21288

    浏览量

    592930
  • Xilinx
    +关注

    关注

    70

    文章

    2118

    浏览量

    119351
  • 串行通信
    +关注

    关注

    4

    文章

    534

    浏览量

    35004
  • 光通信
    +关注

    关注

    19

    文章

    768

    浏览量

    33643
  • Vivado
    +关注

    关注

    18

    文章

    787

    浏览量

    65090
收藏 人收藏

    评论

    相关推荐

    把握光通信行业演变脉动 CIOE2012光通信展即将起航!

    下一代PON,100G相干光通信、PTN/OTN等热门技术的开发中,可以预计其成熟度和性价比将进一步改善。 随着“宽带中国”上升到国家战略,中国得天独厚的优势将使光通信制造企业必然有一个更加良好
    发表于 08-16 09:43

    Aurora 8b/10b IP核问题

    小弟最近在调用Aurora 8b/10b IP模块时,在用modelsim功能仿真时,一切正常。 但是直接使用了例化后的example,并将Tx和Rx形成了回路下到FPGA板子上
    发表于 03-09 10:58

    FPGA光通信中的应用

    求问,FPGA光通信的切合点多么?我研究生是做光通信的,想自学FPGA,想把两者结合起来。希望大神可以举出几个例子或者方向,详细点,比如FPGA
    发表于 11-05 09:53

    可见光通信

    有没有搞可见光通信的,讨论一下方案
    发表于 08-06 19:26

    浅析紫外光通信技术

    紫外光通信系统是一种新型的通信手段,与常规的通信系统相比,有很多优势。由于紫外线主要以散射方式传播,并且传播路径有限,采用紫外光通信系统具有一定的绕过障碍物的能力,非常适用于近距离抗干
    发表于 06-18 08:00

    Aurora IP 8b10b如何生成bitfile?

    我开发了一个应用程序,包括Userapp,Aurora IP 8b10b v8.3,两个FIFO(Tx和Rx)和sram模块。我使用ISim模拟了总应用程序。我得到了所需的结果。现在,我的疑问
    发表于 03-30 08:49

    极光8b10b链接起伏怎么回事

    (不知何故)和GTPE2_CHANNEL的TxOutClkLock = 1和aurora_8b10b_v8_3_CLOCK_MODULE的PLL_NOT_LOCKED为0。在没有GTREFCLK
    发表于 06-18 11:25

    用于26Km光缆的Aurora IP v11.0通道上行/上行故障的解决办法?

    8b / 10b IP的问题。此IP中使用即时NFC。光通信应该在50公里处工作。使用15公里光纤电缆进行数据通信是成功的。但是,当连接26 km光缆时,通道向上和向上通道不稳定。它
    发表于 08-06 09:34

    如何使用Aurora 8B / 10B建立仅传输?

    你好,我正在尝试使用Aurora 8B / 10B建立仅传输(流媒体)。现在使用Vivado 2014.4进行模拟阶段。我知道GTXE2_COMMON原语需要在设计中使用以包含一个QUAD PLL
    发表于 08-14 08:49

    怎么禁用Aurora IP Core 8B / 10B中的时钟补偿功能?

    大家好,我使用的是Vivado 2016.4和Virtex 7 XC7VX485T FPGA。我需要知道是否有一个选项可以禁用Aurora IP Core 8B / 10B中的时钟补偿
    发表于 08-18 09:43

    如何在KC705-kintex 7中实现极光8b10b

    嗨,我正在KC705-kintex 7中实现极光8b10b通过SMA电缆在J7和J8引脚上提供外部时钟源(ML505-virtex5)的参考信号。 clcok源工作正常。但在我的设计中PLL没有被锁定。这是否意味着我没有得到时钟?谢谢,Abinaya
    发表于 08-20 14:05

    可见光通信原理及硬件方案 精选资料分享

    可见光通信基本原理在正常照明前提下,将信息调制到LED灯发出的可见光中,接收端利用光电检测器(PD)将可见光并转换为电信号,并从中解调出相应的调制信息。基于可见光通信,太速硬件以高速
    发表于 07-23 07:41

    可见光通信 调制解调技术 家庭机器人 可见光通信应用 原理及硬件方案 精选资料分享

    可见光通信原理及硬件方案可见光通信基本原理在正常照明前提下,将信息调制到LED灯发出的可见光中,接收端利用光电检测器(PD)将可见光并转换为电信号,并从中解调出相应的调制信息。基于可见光通信
    发表于 07-27 06:10

    看得见的无线通信技术—可见光通信

    深圳市市民中心一楼的展厅进行了公开展示,实现了帧率 60 FPS 的 8 K 视频在线直播演示,既激发了大众科技创新的热情,也推动了可见光通信技术的科普宣传。   为了测试不同速率等级可见光收发模块
    发表于 05-17 15:21

    无线光通信是什么意思,它的应用有哪些?

    无线光通信是什么意思,它的应用有哪些? 光通信分为有线光通信和无线光通信两种。其中,有线光通信
    发表于 03-13 09:49 8365次阅读
    无线<b class='flag-5'>光通信</b>是什么意思,它的应用有哪些?