E8—Aurora 64/66B ip实现GTX与GTY的40G通信2023-08-12

这篇具有很好参考价值的文章主要介绍了E8—Aurora 64/66B ip实现GTX与GTY的40G通信2023-08-12。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1. 场景

要在贴有K7系列FPGA芯片的板子和贴有KU系列FPGA芯片的板子之间通过光模块+光纤+QSFP+实现40G的高速通信。可以选择的方式有多种,但本质的方案就一种,即实现4路GTX与GTY之间的通信。可以选择8B/10B编码通过GT IP核实现,而不能通过Aurora 8/10BIP,因为KU系列中没有Aurora 8B/10B IP。由于8/10B编码方式要比64/66B编码方式传输效率低,所以这里选择64/66B编码方式。如果使用GT IP核实现64/66B编码的二者通信,打开example design会发现KU系列的例程只发送了PRBS序列进行验证,因此换成自己的数据做通信并不方便。此外GT IP核的侧重点是协议灵活,操作灵活,可以更多配置串行收发器“底层”的东西,而Aurora 64/66B对于没有太多特殊需求的用户显然是更友好的,将数据接口进行了封装,还可实现更高的传输效率,使用起来更为方便。由此最终选择Aurora 64/66BIP实现二者之间高达40G的传输。实际传输速度为10.3125Gbps*4=41.25Gbps。由于实现二者之间的通信并不太容易,因此此处构建一个简单的场景先进行原理验证,具体是是,在链路初始化完成之后,GTX向GTY发送0-1000的数字,GTY接收后检错并通过led表示;同时GTY也向GTX发送0-1000的数字,也是接收后检错并通过led表示。对应例程链接本次工程用到的是自己设计的板卡,连接方式如下图所示:

E8—Aurora 64/66B ip实现GTX与GTY的40G通信2023-08-12,FPGA积累——基础篇,fpga开发,aurora,serdes,光纤通信

2.结构

其内部模块以及通道模型与Aurora基本一致。

 E8—Aurora 64/66B ip实现GTX与GTY的40G通信2023-08-12,FPGA积累——基础篇,fpga开发,aurora,serdes,光纤通信

E8—Aurora 64/66B ip实现GTX与GTY的40G通信2023-08-12,FPGA积累——基础篇,fpga开发,aurora,serdes,光纤通信

3.IP配置

        Aurora 64/66B IP核的配置与Aurora 8B/10B IP的配置基本一致,请参考Aurora 8/10Bip核实现。需要说明,此处GTX与GTY的IP核应配置成一样的速率,并选择同样的接口形式,为了区别于Aurora 8B/10B,此处选择streaming接口,同样都勾选小端模式,符合习惯。具体配置如下:

 E8—Aurora 64/66B ip实现GTX与GTY的40G通信2023-08-12,FPGA积累——基础篇,fpga开发,aurora,serdes,光纤通信

4.注意事项

①该IP核对复位逻辑有着较为严格的要求,如果工程需要复位,需要查看手册并按照时序要求配置相关信号;如果没有太多要求,可直接使用example design中的复位逻辑。

②用户时钟的计算,每路带宽10.3125Gbps,一共思路,因此总带宽是10.3125G*4=41.25Gbps,结合编码方式应该乘64,除66,然每一个周期发送的数据位宽是256bit,因此user_clk_i=41.25Gbps*(64/66)/256bit=156.25Mhz。

③GTX和GTY生成的例程略有不同,还要注意约束文件的修改。

④提供的例程源码是对example design做了一定的整理,仅仅为了美观。 

5.部分源码设计

发送端源码设计

module GTY_Xfer(
    input user_clk_i,
    input system_reset_i, //高电平复位
    input channel_up_i,
    input  tx_tready_i,
    output reg[255:0]tx_tdata_i,
    output reg tx_tvalid_i
    );

wire local_rst;
assign local_rst = system_reset_i | !channel_up_i;
always @(posedge user_clk_i or posedge local_rst) begin
    if(local_rst == 1)begin
        tx_tvalid_i <= 0;
    end else begin
        tx_tvalid_i <= 1;
    end
end
always @(posedge user_clk_i or posedge local_rst) begin
    if(local_rst == 1)begin
        tx_tdata_i <= 0;
    end else if(tx_tready_i)begin
        tx_tdata_i <= tx_tdata_i + 1;
        if(tx_tdata_i == 1000)begin
            tx_tdata_i <= 0;    
        end 
    end
end
endmodule

接收check源码

module GTY_Recv(
    input user_clk_i,
    input system_reset_i, //高电平复位
    input channel_up_i, 
    input [255:0] rx_tdata_i,
    input rx_tvalid_i,
    output reg  led4,
    output error 
    );

wire local_rst;
assign local_rst = system_reset_i | !channel_up_i;
reg [255:0]rd_cnt;
always @(posedge user_clk_i or posedge local_rst) begin
    if(local_rst == 1)begin
        rd_cnt <= 0;
    end else if(rx_tvalid_i)begin
        rd_cnt <= rd_cnt + 1;
        if(rd_cnt == 1000)begin
            rd_cnt <= 0;
        end
    end
end
assign error = rx_tvalid_i & (rd_cnt != rx_tdata_i);
always @(posedge user_clk_i or posedge local_rst) begin
    if(local_rst == 1)begin
        led4 <= 0;
    end else if(error)begin
        led4 <= 1;
    end
end 
endmodule

6.效果

在两端均可抓取到正确的数据信号,并且无error产生。

E8—Aurora 64/66B ip实现GTX与GTY的40G通信2023-08-12,FPGA积累——基础篇,fpga开发,aurora,serdes,光纤通信文章来源地址https://www.toymoban.com/news/detail-696556.html

到了这里,关于E8—Aurora 64/66B ip实现GTX与GTY的40G通信2023-08-12的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • RapidIO、SelectIO、Serdes、GT、Aurora、GTX、LVDS介绍

          一些高速总线接口(RapidIO、Serdes、GTX、GTH、Aurora、PCIE、LVDS、SRIO、SelectIO)概念及功能不清晰,现在就其功能与联系分别总结如下:        串行RapidIO,高速串行通信协议,旨在链接DSP、FPGA、网络处理器等芯片,具有低延迟、高带宽(支持25Gbps、2.5Gbps、3.125Gbps的数据

    2024年02月05日
    浏览(47)
  • SFP/SFP+/QSFP/QSFP+光模块和GTP/GTX/GTH/GTZ/GTY/GTM高速收发器

    SFP( small form-factor pluggable)称为小封装热拔插光模块,应用于电信行业和光通信,它主要由光电子器件(光发射器、光接收器)、功能电路和光接口等部分组成,主要作用就是实现光纤通信中的光电转换和电光转换功能。光模块的工作原理如图 光模块工作原理图所示: SFP

    2024年01月18日
    浏览(39)
  • 600套axure可视化大数据原型元件库模板40G[收藏]

    在做产品经验的朋友,必备的就是自己手上有很多axure RP原型素材库,特别在做可视大数据原型交互,这时有40G大屏可视化大数据设计ps素材axure模板原型元件库界面ps 70+600套。 Axure是一款强大的交互设计工具,它可以帮助用户创建交互式原型,用于在早期阶段测试和验证设计

    2024年02月13日
    浏览(43)
  • FPGA GTX全网最细讲解,aurora 8b/10b协议,HDMI视频传输,提供2套工程源码和技术支持

    没玩过GT资源都不好意思说自己玩儿过FPGA,这是CSDN某大佬说过的一句话,鄙人深信不疑。。。 GT资源是Xilinx系列FPGA的重要卖点,也是做高速接口的基础,不管是PCIE、SATA、MAC等,都需要用到GT资源来做数据高速串化和解串处理,Xilinx不同的FPGA系列拥有不同的GT资源类型,低端

    2024年02月10日
    浏览(46)
  • FPGA GTX全网最细讲解,aurora 8b/10b编解码,HDMI视频传输,提供2套工程源码和技术支持

    没玩过GT资源都不好意思说自己玩儿过FPGA,这是CSDN某大佬说过的一句话,鄙人深信不疑。。。 GT资源是Xilinx系列FPGA的重要卖点,也是做高速接口的基础,不管是PCIE、SATA、MAC等,都需要用到GT资源来做数据高速串化和解串处理,Xilinx不同的FPGA系列拥有不同的GT资源类型,低端

    2024年02月09日
    浏览(41)
  • 【PCIE732】基于Kintex UltraScale系列FPGA的2路40G光纤通道适配器(5GByte/s带宽)

    PCIE732是一款基于PCIE总线架构的高性能数据传输卡,板卡具有1个PCIe x8主机接口、2个QSFP+ 40G光纤接口,可以实现2路QSFP+ 40G光纤的数据实时采集、传输。板卡采用Xilinx的高性能Kintex UltraScale系列FPGA作为实时处理器,板载2组独立的72位DDR4 SDRAM大容量缓存。板卡具有1个RJ45千兆以太

    2024年01月18日
    浏览(45)
  • 【大模型研究】(1):从零开始部署书生·浦语2-20B大模型,使用fastchat和webui部署测试,autodl申请2张显卡,占用显存40G可以运行

    https://www.bilibili.com/video/BV1pT4y1h7Af/ 【大模型研究】(1):从零开始部署书生·浦语2-20B大模型,使用fastchat和webui部署测试,autodl申请2张显卡,占用显存40G可以运行 https://modelscope.cn/models/Shanghai_AI_Laboratory/internlm2-chat-20b/summary InternLM2 开源了一个 200 亿参数的基础模型和一个针对

    2024年01月22日
    浏览(48)
  • Xilinx平台Aurora IP介绍(三)Aurora配置及接口介绍

    来咯来咯,搬砖全靠它! 汇总篇: Xilinx平台Aurora IP介绍(汇总篇) 目录 一、Aurora配置 1.1第一页配置

    2024年02月16日
    浏览(37)
  • Aurora IP简介

    本文主要以Aurora8B/10B 为例,对该IP核做以简单介绍;同时,会对调试过程中遇到的问题给出解释,最后,给出Aurora8/10B以及Aurora64/66B的调试程序及验证结果。 目录 一·Aurora基础知识 二.Aurora IP结构 三.时钟与复位 3.1时钟设计 3.2复位设计 四.Aurora IP配置及端口介绍 4.1Aurora IP配置

    2024年02月01日
    浏览(35)
  • Aurora8B10B(一) 从IP配置界面学习Aurora

    哈喽,大家好,好久没有给大家写FPGA技术的文章,是不是已经忘记我是做FPGA的啦,O(∩_∩)O哈哈~。 这里将会给大家分享我学习到的第一个高速接口Aurora8B10B,有点复杂,但不是特别复杂,对于第一次接触到高速接口的朋友来说,难点在于细节的把控上,由于资料并不是那么

    2024年01月23日
    浏览(42)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包