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

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

3天内不再提示

Xilinx Ten Giga Sub System IP生成详细步骤

电子设计 来源:CSDN博主 作者:蜀黍设计验证 2020-12-30 12:56 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

IP核描述

10 Giga Ethernet Sub System , 参考文档PG157:

https://www.xilinx.com/support/documentation/ip_documentation/axi_10g_et...

IP核提供一个MAC模块和一个PCS/PMA模块,PCS/PMA模块支持10GBASE-R/10GBASE-KR。客户端接口协议为AXI4 Stream,有32bits和64bits两种位宽,对于10GBASE-R,32bits位宽接口有着低延迟和低资源消耗的优势。AXI4-lite为可选接口,用于配置IP核内部寄存器。IP核支持DIC机制,支持Vlan和jumbo帧,支持客户定制Preamble。支持BASE-R上的1588时钟机制(onestep & two step)。

IP核总体框架如下图所示:

pIYBAF9uJ-CAYT4BAAFDg3-F1I0510.png

IP核生成

按如下步骤生成IP核:

o4YBAF9uJ-KASLRvAAGEwmzpCi4295.png

pIYBAF9uJ-SAGzlGAAFBUrQSxwg317.png

pIYBAF9uJ-WAEjWmAADTgNDFZpo920.png

o4YBAF9uJ-eAPVWdAAEcSyGVKK0053.png

o4YBAF9uJ-mAX0xtAAEeVwG5lC4356.png

pIYBAF9uJ-uAe8n2AAFSG7cBrrg470.png

在生成IP核过程中有如下几个注意点:

1. MAC option模块中去除了AXI4-lite选项。此接口是连接至CPU接口的配置接口,这里去除是因为不知道CPU配置接口支持什么协议,在去除了这组接口后,IP核会将配置寄存器全部作为一组vector呈现在IP核端口上。

2. KCU105模块两个XG口的Transeiver绑定的x0y9和x0y10,所以选择其中之一即可(根据板子的具体情况去选择)。

3. Shared Logic在Core和example中的区别就是GTHCHANNLE3在Core外面还是Core里边。如果不是做级联只用1个Core,那么就放在core里。

IP核仿真

这个IP核的仿真网表文件(axi_10g_ethernet_0_sim_netlist.v)是坏的,不能用来进行仿真,仿真现象是Core接口上很多输出是高阻。如果要仿真,则必须使用如下文件:

Sync目录下的axi_10g_ethernet_0.v;

bd_0文件夹中的内容。

Example设计中提供了一套验证环境,验证顶层文件为: axi_10g_ethernet_0_demo_tb.v。

这里需要注意的是:

pIYBAF9uJ-2Ab9gzAAGdYLy3-9A158.png

时间单位是1ps,精度也是1ps,serdes上是按66bits块串行打码流,那么比特周期就是6400/66,由于除不尽,就用了98这个整数,那么ref_clk就不能是6400了,所以这里的ref_clk是66*98.。如果不按这种处理,IP核在仿真时就不能link上,从RxGMII接口上看就是一直有link fault,码流是坏的。

仿真平台框图如下图所示:

o4YBAF9uJ--AX5StAAFDMTi5p0Y556.png

Bench支持两种模式:

1. DEMO模式,这种模式下必须开启address swap功能,激励是从rx串行端口灌进去的,在PktGen模块中通过Axi4-Stream环回。

2. BIST模式,激励从Xgmii TX端口灌进去,在串行端口环回。

接口解析

以64bits位宽为例

1. client Tx Interface

pIYBAF9uJ_GAI_bcAACJYjVxiV4519.png

1.1. TX Normal

pIYBAF9uJ_OAHLqUAAHD0J1UY4k154.png

信号在tready为高时才能传输,当tready为低时数据必须保持到tready为高时发出,DA的第一个字节必须在数据通道0上,tlast表示传输的最后一片,有效字节靠tkeep来标识。

1.2.TX In band FCS padding

Core可以配置成in-band FCSpassing,意思是在包的尾部跟CRC,32个比特。当Core没有配置成这个模式时,如果client发了小于46Byte的payload,Core能自动padding,将包长度padding成符合以太网最小包长的包。如果配置了in-band FCS padding,则client需要保证最小包长,如果没有提供符合要求长度的包,则core在FCS后padding,并表示这是个无效包。

o4YBAF9uJ_WAd5PYAAHEqtUKm-4622.png

1.3. TX Abording Transmissio

假如要终止一次传输该怎么做?

在client interface处终止一个包的传输操作称为underrun,这种情况发生时由于在整包传输完成前发送端口处FIFO空了,有两种情况:

a. 在txvalid有效的情况下将tx_tuser置起。断包必须要有DA,SA,L/T域。

b. 包尾处tx_tlast没有置起。

o4YBAF9uJ_eASgdFAAHnjdHeslM397.png

pIYBAF9uJ_mALEVuAAGHyUB0hmg638.png

1.4. Back to Back

o4YBAF9uJ_yAQiJbAAG6vjFPgFM674.png

1.5. 自定义Preamble

就是在DA前将8字节Preamble加上。根据IEEE802.3规定,Strat必须在第0条数据通路上。分不连续传输和连续传输两种,分别如下图所示。

o4YBAF9uJ_6AF_PmAAGu1CD6LoU454.png

pIYBAF9uKACAADD_AAG2mq5infk747.png

1.6. Vlan Tag Frame

提供Vlan Tag传输功能,客户端需提供8100tag标志。传输时序如图所示。

Vlan Tagged

pIYBAF9uKAOAV2O5AAGd2MqW4d0447.png

Q in Q Vlan Tagged

o4YBAF9uKAWAfNTJAAGdjQ961VQ103.png

1.7.Jumbo 帧传输

设计默认disable此功能,在此功能被关闭时若client传输超长帧,超长帧将被truncated,error code被插入显示此帧错误。

1.8. IPG 更改

你可以通过配置选择各种长度的IPG。通过ifg_delay_value来延迟XGMII column,Core产生反压来延迟下一帧的传送。

pIYBAF9uKAeAFVM3AAGMkmhBh1U989.png

1.9. DIC机制

发送端支持DIC机制,有FCS和无FCS两种情况下均支持。Tx_valid必须持续为高保持数据传输最大效率化。

o4YBAF9uKAqAZAJOAAMZO3-OP2g076.png

1.10. Link Fault

Core收到local/remotefault或者link interrupt时,在寄存器FaultInhibit被关闭的情况下,Core不会发送任何帧,Core中的RS层会被使能,当RS层收到LocalFault或者link interrupt ordered set,Core将发送Remote Ordered Sets.当收到Remote Fault 序列时,Core将发送IDLE。

2. RX Client Interface

pIYBAF9uKAyARDZyAACjLt0mPyY598.png

2.1.Normal Reception

rx_axis_tvalid为高表明接收数据有效,keep指示8条通路中有效的通路,这里要注意的是data是从最低为开始assign数据的,所以,最后一片数据的keep[0]一定为高。tx_usr为高持续一个时钟周期,表明收到的数据帧有效。

pIYBAF9uKA6ANOE_AAGAP78RAOc529.png

2.2. good frame or bad frame

传输的最后一片数据至少得有一个Byte有效,keep不能为0;

传输的实际帧帧长比length域显示的大,则在FCS –PASS功能没有打开的情况下,多出来的会被当做padding而被移除;

Lenth域小于46,收到实际报文不满64,如果lengthcheck没有关闭的情况下,这个帧被标记为坏帧.

2.3. Frame reception with errors

接收错误报文(runt或者不正确crc)

o4YBAF9uKBCAOm6jAAH7ECjBm3Y687.png

错误帧产生因素:

1. FCS ERROR

2. 小于64Byte 的帧

3. 在jumbo帧功能没有使能的情况下收到jumbo帧

4. 设置了MTU,收到的帧比设置的MTU大并且jumbo帧功能没有使能

5. 长度/类型字段是长度,其中长度值小于46。在这种情况下,需要padding。如果没有padding,这时这个帧就是错误帧。

6. 长度/类型字段是长度,其中长度值是46或更大,但是真实的接收帧的长度不匹配或超过长度/类型字段中的值

7. 在没有禁用控制帧长度检查功能时,收到的控制帧长度小于最小帧长度;

8. XGMII code中有ERROR

9. 有效pause帧,因为其已经被MAC逻辑使用;

2.4. Reception with FCS passing

如果FCS check failed ,则last为高时user信号为低;

pIYBAF9uKBOACDLUAAIt0uppwOU643.png

2.5. Reception with Preamble

就是preamble出现在stream接口上,同TX

pIYBAF9uKBWAczXjAAJXYk1QP5I442.png

2.6. 带Vlan Tag

Vlan Tag使能,接收端会出现Vlan域,最大包长变成1522B

2.7. 超长帧传输

设置MTU(Max TransmitUnit)的值必须大于1518,jumbo 帧功能需要打开;

编辑:hfy

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

    关注

    31

    文章

    5589

    浏览量

    129057
  • cpu
    cpu
    +关注

    关注

    68

    文章

    11216

    浏览量

    222933
  • Xilinx
    +关注

    关注

    73

    文章

    2192

    浏览量

    129925
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    Molex EXTreme Ten60Power 混合电源连接器技术解析

    Molex EXTreme Ten60Power混合电源和信号连接器每线性英寸提供高达260A电流,响应快,易于配置,可满足个性设计要求。该系列设计用于需要高电流密度、低功率损耗以及高设计灵活性的板
    的头像 发表于 11-21 10:34 193次阅读

    求助,关于mcs文件生成的问题求解

    按照书上步骤使用 make mcsCORE=e203 FPGA_NAME=artydevkit 命令时报错: Makefile:18: recipe for target \'obj
    发表于 11-10 07:34

    win10环境下使用vivado生成.bit与.mcs文件

    在hbirdv2参考文档中使用make指令生成system.bit和system.mcs文件,但是虚拟机本身会消耗计算资源,导致运行速度变慢,对于不习惯在linux下编辑代码的人,还需要来回倒腾代码
    发表于 10-27 08:25

    E203移植genesys2(差分时钟板)生成比特流文件全过程

    System Reset和Clocking Wizard(在Flow Navigator里的IP Catalog中添加),修改相应数据如下图。 Processor System Reset的
    发表于 10-27 07:16

    FPGA利用DMA IP核实现ADC数据采集

    DMA IP核来实现高效数据传输的步骤,包括创建项目、配置ADC接口、添加和连接DMA IP核、设计控制逻辑、生成比特流、软件开发及系统集成。文章还强调了系统实现中不可或缺的
    的头像 发表于 07-29 14:12 4643次阅读

    Xilinx Shift RAM IP概述和主要功能

    Xilinx Shift RAM IP 是 AMD Xilinx 提供的一个 LogiCORE IP 核,用于在 FPGA 中实现高效的移位寄存器(Shift Register)。该
    的头像 发表于 05-14 09:36 831次阅读

    openstack搭建详细步骤

    openstack搭建详细步骤
    的头像 发表于 05-07 14:05 1611次阅读

    详解Xilinx的10G PCS PMA IP

    如果要在Xilinx的FPGA上使用万兆以太网通信,大致有三种方法构建协议栈。第一种使用GTX等Serdes作为底层的PHY,上层通过HDL实现构建MAC和IP层,这种方式难度会比较大,底层需要完成PHY层的设计,最终我想通过这种方式实现万兆以太网的搭建。
    的头像 发表于 04-18 15:16 1588次阅读
    详解<b class='flag-5'>Xilinx</b>的10G PCS PMA <b class='flag-5'>IP</b>

    TEN 20系列直流/直流转换器模块介绍

    电子发烧友网站提供《TEN 20系列直流/直流转换器模块介绍.pdf》资料免费下载
    发表于 04-02 15:20 0次下载

    Vivado FIR IP核实现

    Xilinx的FIR IP核属于收费IP,但是不需要像 Quartus那样通过修改license文件来破解。如果是个人学习,现在网络上流传的license破解文件在破解Vivado的同时也破解
    的头像 发表于 03-01 14:44 2567次阅读
    Vivado FIR <b class='flag-5'>IP</b>核实现

    美国多ip服务器租用配置步骤

    美国多IP服务器租用是一种提供多个独立IP地址的服务器租赁服务,主要用于站群建设和SEO优化。以下是关于美国多IP服务器租用的详细介绍,主机推荐小编为您整理发布美国多
    的头像 发表于 02-08 17:12 871次阅读

    新加坡共享主机怎么设置ip

    在新加坡设置共享主机的IP地址,通常涉及多个步骤,包括评估需求、选择服务商、配置网络等。以下是一个详细的设置指南,主机推荐小编为您整理发布新加坡共享主机怎么设置ip
    的头像 发表于 01-24 11:47 737次阅读

    通过安卓手机查找IP地址步骤

    我们在使用安卓手机的时候,可以在设备上通过一些方法来查到IP地址,而IP地址也分为公网IP地址和私网IP地址,具体怎么查找可以看下面步骤
    的头像 发表于 12-12 13:53 4509次阅读
    通过安卓手机查找<b class='flag-5'>IP</b>地址<b class='flag-5'>步骤</b>

    SRIO介绍及xilinx的vivado 2017.4中生成srio例程代码解释

    1. 概述 本文是用于记录srio的学习情况,以及一些对xilinx的vivado 2017.4中生成srio例程代码的解释。 2. 参考文件 《pg007_srio_gen2》 3. SRIO协议
    的头像 发表于 12-10 16:24 4464次阅读
    SRIO介绍及<b class='flag-5'>xilinx</b>的vivado 2017.4中<b class='flag-5'>生成</b>srio例程代码解释

    AFE5809怎么降低采样频率?

    请问,怎么降低采样频率,以采样200khz的信号。 我参考SONAR Receiver Path Sub-System Reference Design Using the AFE5809想通过decimation功能达到图示效果,可是并不起作用。 可以详细讲解一下具体
    发表于 12-10 07:35