草庐IT

Xilinx - FPGA平台以太网接口(三)IP核配置及接口介绍

子墨祭 2023-07-18 原文

汇总篇:

Xilinx FPGA平台以太网接口(汇总篇)_子墨祭的博客-CSDN博客_fpga实现以太网接口


目录

一、IP核配置

二、接口介绍

三、补充说明


一、IP核配置

        在有了本系列(一)(二)的基础之后,我们开始进入实操。插句题外话,FPGA只是工具,会用就行了,更多的知识在FPGA之外;什么叫会用,直接用IP来搬砖轻轻松松。

        Xilinx为我们提供了一个叫做“Tri-Mode Ethernet MAC”的IP核,三种模式的以太网介质访问控制层器,支持全双工半双工的千兆、百兆、十兆和2.5G的传输速率,支持MII、GMII、RGMII、SGMII和TBI接口。文档为PG051

        首先输入 ETH 找到三速以太网IP:

 第一页:传输速率

         设置最大的通讯速率,1Gb/s支持高达1Gb/s的以太网速度。支持四种类型的物理接口,即GMII,MII,RGMII和内部接口均可用。2.5 Gb / s 只适用于物理接口为“内部”,所有其他类型均被禁用。

第二页:接口配置

 物理接口:

Internal/MII/GMII/RGMII可选,配置与MAC接口的类型,接口类型,可以回顾系列(二)中的MAC层接口说明:

Xilinx - FPGA平台以太网接口(二)系统架构及MAC层接口介绍

  • MII支持10 Mb/s和100 Mb / s;
  • GMII支持10 Mb/s,100 Mb / s和1Gb/s;
  • RGMII是双沿采样,支持10Mb/s,100Mb/s和1Gb/s。
  • Internal是生成内核时,没有物理接口可用于连接到内部PHY,例如以太网1G / 2.5G PCS / PMA或SGMII LogiCORE。

我们这里选择RGMII,使用时根据具体情况而定。

PS : RGMII也可以使用原语完成设计(IDDR、ODDR、IDELAYE2、ODELAYE2、IDELAYCTRL)

MAC Speed

        三速以太网IP可支持2.5Gb/s和1Gb/s速度运行,10Mb/s和100Mb/s速度运行以及全三速运行(10Mb/s,100Mb/s和1000Mb/s)。可用于速度支持选择的选择取决于所选的物理接口:

  • 当MAC数据速率设置为2.5 Gb / s时,仅内部模式可用。
  • 如果MAC数据速率设置为1 Gb / s,并且选择了GMII,RGMII或Internal,则可以选择三速操作和1 Gb / s操作。
  • 若MAC数据速率设置为1Gb/s并且选择了MII,则仅10Mb/s和100Mb/s的操作可用。

我们这里选择三速模式,可以通过接口改动传输速率。

管理类型

        选择“ AXI4-Lite”选项以包括用于IP配置的可选管理接口。如果未选择AXI4-Lite管理界面,则AVB选项不可用。默认设置是选择AXI4-Lite管理接口。

        启用管理接口后,选择“管理数据输入/输出接口(MDIO)”选项以包括可选的MDIO接口。如果未选择此选项,则生成的内核不具有管理物理层中的对象所需的MDIO逻辑。

        如果启用了MDIO,请选择“为MDIO接口端口添加IO缓冲区”选项以为MDIO接口端口插入I / O缓冲区。这将创建双向I / O总线mdio,并为mdc插入输出缓冲区。如果未选择此选项,则将使用mdio_i,mdio_o和mdio_t端口生成内核。

AXI4-Lite频率

        指定AXI4-Lite接口的频率。

第三页:共享逻辑

        选择放入example design。

第四页:特性

 MAC选项

        选择是否启用半双工逻辑。默认是全双工模式。

AVB选件

        Audio Video Bridging,AVB用于增强以太网的实时音视频性能,同时保持了向后兼容传统以太网。如果选择此选项,则除了三模式以太网MAC license外,还需要收费的以太网AVB端点许可证来启用内核生成。

帧过滤器选项

        可以使用帧过滤器生成内核,从而阻止接收与此MAC不匹配的帧。。

流控

        启用基于优先级的流控支持。一般不用。若勾选,则包括在发送时生成PFC帧并在接收时解释PFC帧的电路。

统计宽度

        使用内置的统计计数器生成内核。统计信息计数器可以是32位或64位宽。

统计复位:

        当包括统计计数器时,可以包括逻辑以确保在硬件复位时将计数器清除为零。默认选择。

二、接口介绍

重点关注标色的几部分:

浅绿色:表示接收部分

这是什么色:表示发送部分

蓝色:表示与PHY之间的接口

黄色:表示配置接口

颜色,同时也表示同一时钟域。

        PS:而在下一篇example design中,你讲会发现,example design在外围又封装了一层FIFO接口,tx/rx_axis_fifo_*

gtx_clk

IN

1

核的全局时钟,1Gbps是125M,2.5Gbps是312.5M

gtx_clk_out

OUT

1

该时钟相对于gtx_clk输入具有0°相移,并用于RGMII数据传输。

gtx_clk90_out

OUT

1

该时钟相对于gtx_clk输入具有90°相移,用于RGMII发送器时钟转发。

refclk

IN

1

仅适用于GMII或RGMI,空闲控制需要,200M到300M,

对于UltraScale需要到300至1333M

rx_mac_aclk

Out

1

用于在物理接口上接收数据的时钟,该时钟应用于为物理接口接收电路和RX AXI4-Stream接收电路提供时钟。

312.5MHz对应2.5 Gb/s

125MHz对应1 Gb/s

25MHz对应100 Mb/s

2.5MHz对应10Mb/s

rx_reset

Out

1

高电平有效 RX部分的软复位

rx_axis_mac_tdata

Out

8

核收到的用户数据

rx_axis_mac_tvalid

Out

1

rx_axis_mac_tdata的数据有效信号

rx_axis_mac_tlast

Out

1

rx_axis_mac_tdata端口的控制信号。

表示帧中的最后一个字节。

rx_axis_mac_tuser

Out

1

rx_axis_mac_tdata的控制信号。

在帧接收结束时置位,表示帧有错误。

rx_axis_filter_tuser

Out

X+1

每帧滤波器调谐器输出。可用于仅发送特定帧过滤器传递的数据。有关详细信息,请参阅帧过滤器

tx_enable

Out

1

对于RGMII,

若为1Gbps,则一直高电平;

若为100Mbps,则十个周期中1个周期为高电平

若为10Mbps,则一百个周期中1个周期为高电平

tx_ifg_delay

IN

8

用于可配置帧间间隙的控制信号

tx_statistics_vector

Out

32

状态收集统计

tx_statistics_valid

Out

1

tx_statistics_vector数据的有效信号

tx_mac_aclk

Out

1

用于在物理接口上传输数据的时钟,该时钟应用于为物理接口发送电路和TX AXI4-Stream发送电路提供时钟。

312.5MHz对应2.5 Gb/s

125MHz对应1 Gb/s

25MHz对应100 Mb/s

2.5MHz对应10Mb/s

tx_reset

Out

1

高有效,发送端模块的复位信号

tx_axis_mac_tdata

IN

8

要传输的帧数据

tx_axis_mac_tvalid

IN

1

tx_axis_mac_tdata的数据有效信号,高电平有效

tx_axis_mac_tlast

IN

1

tx_axis_mac_tdata的最后一个有效数据高电平

tx_axis_mac_tuser

IN

1

tx_axis_mac_tdata端口的控制信号。表示允许MAC向PHY发送错误的帧中的错误情况,例如FIFO欠载。

tx_axis_mac_tready

OUT

1

握手信号。当tx_axis_mac_tdata上的当前数据已被接受且tx_axis_mac_tvalid为High时,置位。在10/100 Mb / s时,这用于以正确的速率将数据计量到核心。

pause_req

IN

1

暂停请求:根据请求,MAC在当前数据包完成时发送暂停帧

pause_val

IN

16

暂停值:插入到传输的暂停帧的参数字段中。

speedis100

OUT

1

当内核以100Mb/s运行时,此输出有效。它来自MAC速度配置寄存器的位[13:12]。如果不存在可选的管理接口,则这是从配置向量位[13:12]派生的。

speedis10100

OUT

1

当内核以10 Mb / s或100 Mb / s运行时,此输出有效。它来自MAC速度配置寄存器的位[13:12]。如果管理接口不存在,则从配置向量位[13:12]导出

rgmii_txd

OUT

4

传输数据到PHY,与PHY接口数据

rgmii_tx_ctl

OUT

1

到PHY的控制信号

rgmii_txc

OUT

1

到PHY的时钟信号

rgmii_rxd

IN

4

接收PHY的数据

rgmii_rx_ctl

IN

1

来自PHY的控制信号

rgmii_rxc

IN

1

来自PHY的时钟

inband_link_status

OUT

1

来自PHY的链路状态

inband_clock_speed

OUT

2

来自PHY的链路速度,这个是PHY硬件配置的

mdio

INOUT

1

用于与PHY配置和状态通信的数据信号。若未使用则绑定高。输出数据信号,用于与PHY配置和状态进行通信

mdc

OUT

1

MDIO管理时钟:使用可选的管理接口时,根据提供的配置数据从s_axi_aclk派生。

三、补充说明

对上面接口的进一步说明。

 

下一篇,我们将继续Example Design的介绍,重点查看仿真内容。

有关Xilinx - FPGA平台以太网接口(三)IP核配置及接口介绍的更多相关文章

  1. ruby - 从 Ruby 中的主机名获取 IP 地址 - 2

    我有一个存储主机名的Ruby数组server_names。如果我打印出来,它看起来像这样:["hostname.abc.com","hostname2.abc.com","hostname3.abc.com"]相当标准。我想要做的是获取这些服务器的IP(可能将它们存储在另一个变量中)。看起来IPSocket类可以做到这一点,但我不确定如何使用IPSocket类遍历它。如果它只是尝试像这样打印出IP:server_names.eachdo|name|IPSocket::getaddress(name)pnameend它提示我没有提供服务器名称。这是语法问题还是我没有正确使用类?输出:ge

  2. Unity 热更新技术 | (三) Lua语言基本介绍及下载安装 - 2

    ?博客主页:https://xiaoy.blog.csdn.net?本文由呆呆敲代码的小Y原创,首发于CSDN??学习专栏推荐:Unity系统学习专栏?游戏制作专栏推荐:游戏制作?Unity实战100例专栏推荐:Unity实战100例教程?欢迎点赞?收藏⭐留言?如有错误敬请指正!?未来很长,值得我们全力奔赴更美好的生活✨------------------❤️分割线❤️-------------------------

  3. postman接口测试工具-基础使用教程 - 2

    1.postman介绍Postman一款非常流行的API调试工具。其实,开发人员用的更多。因为测试人员做接口测试会有更多选择,例如Jmeter、soapUI等。不过,对于开发过程中去调试接口,Postman确实足够的简单方便,而且功能强大。2.下载安装官网地址:https://www.postman.com/下载完成后双击安装吧,安装过程极其简单,无需任何操作3.使用教程这里以百度为例,工具使用简单,填写URL地址即可发送请求,在下方查看响应结果和响应状态码常用方法都有支持请求方法:getpostputdeleteGet、Post、Put与Delete的作用get:请求方法一般是用于数据查询,

  4. ruby - 在 TCPServer (Ruby) 中,我如何从客户端获取 IP/MAC? - 2

    我想在Ruby的TCPServer中获取客户端的IP地址。以及(如果可能的话)MAC地址。例如,Ruby中的时间服务器,请参阅评论。tcpserver=TCPServer.new("",80)iftcpserverputs"Listening"loopdosocket=tcpserver.acceptifsocketThread.newdoputs"Connectedfrom"+#HERE!HowcanigettheIPAddressfromtheclient?socket.write(Time.now.to_s)socket.closeendendendend非常感谢!

  5. 玩以太坊链上项目的必备技能(初识智能合约语言-Solidity之旅一) - 2

    前面一篇关于智能合约翻译文讲到了,是一种计算机程序,既然是程序,那就可以使用程序语言去编写智能合约了。而若想玩区块链上的项目,大部分区块链项目都是开源的,能看得懂智能合约代码,或找出其中的漏洞,那么,学习Solidity这门高级的智能合约语言是有必要的,当然,这都得在公链``````以太坊上,毕竟国内的联盟链有些是不兼容Solidity。Solidity是一种面向对象的高级语言,用于实现智能合约。智能合约是管理以太坊状态下的账户行为的程序。Solidity是运行在以太坊(Ethereum)虚拟机(EVM)上,其语法受到了c++、python、javascript影响。Solidity是静态类型

  6. H2数据库配置及相关使用方式一站式介绍(极为详细并整理官方文档) - 2

    目录H2数据库入门以及实际开发时的使用1.H2数据库的初识1.1H2数据库介绍1.2为什么要使用嵌入式数据库?1.3嵌入式数据库对比1.3.1性能对比1.4技术选型思考2.H2数据库实战2.1H2数据库下载搭建以及部署2.1.1H2数据库的下载2.1.2数据库启动2.1.2.1windows系统可以在bin目录下执行h2.bat2.1.2.2同理可以通过cmd直接使用命令进行启动:2.1.2.3启动后控制台页面:2.1.3spring整合H2数据库2.1.3.1引入依赖文件2.1.4数据库通过file模式实际保存数据的位置2.2H2数据库操作2.2.1Mysql兼容模式2.2.2Mysql模式

  7. ruby - 没有 nginx 的 Puma - 同一 IP 上的多个 ruby​​ 应用程序 :PORT - 2

    Nginx在生产中的重要性通常基于它为慢速客户端提供服务的能力;在RESTfulAPI的设置中,它似乎是生产堆栈的一个不必要的层,尤其是Puma(不像广泛使用的unicorn可以处理nginx工作)。Pumacanallowmultipleslowclientstoconnectwithoutrequiringaworkertobeblockedontherequesttransaction.Becauseofthis,Pumahandlesslowclientsgracefully.HerokurecommendsPumaforuseinscenarioswhereyouexpect

  8. ruby-on-rails - 如何在 RubyOnRails 中使用 'acts as nested set' 创建一个可排序的接口(interface) - 2

    我一直在为使用acts_as_list的模型实现一些不错的交互界面,这些界面可以对我的mRails应用程序中的列表进行排序。我有一个排序函数,在每次拖放之后使用sortable_elementscript.aculo.us函数调用并设置每条记录的位置。这是在拖放完成后处理排序的Controller操作示例:defsortparams[:documents].each_with_indexdo|id,index|Document.update_all(['position=?',index+1],['id=?',id])endend现在我正在尝试对嵌套集模型(acts_as_nested

  9. Java IP归属地查询(离线方式+在线方式,内附查询IP方法) - 2

    一、离线方式1.1.下载ip2region.xdbGitHub项目地址:https://github.com/lionsoul2014/ip2region我们首先需要下载一个ip2region.xdb的文件下载地址:https://github.com/lionsoul2014/ip2region/blob/master/data/ip2region.xdb打开后点击如图的Download图标即可下载。下载完成后,需要将该文件放到我们的项目中。ps:我是直接放到服务器的,因为放在项目的资源文件夹下,当我们调试的时候使用JavaSpring自带的工具去获取该文件的绝对路径时,没有任何问题,能够正

  10. IP数据报格式 - 2

    1、报文格式前几篇总结过较多网络层的知识,ARP,ip地址、子网掩码等等。这次总结一下IP数据报的报文格式IP数据报的格式能够说明IP协议都具有什么功能。在TCP/IP的标准中,各种数据格式常常以32位(4字节)为单位来描述的。wireshark中IP数据报文呈现一个IP数据报文由首部和数据两部分组成。首部的前一部分是固定长度,共20字节。是所有IP数据报文必须具有的。在首部的固定部分的后面是一些可选字段,其长度可变。2、首部个字段意义  1、版本占4位,指IP协议的版本。通信双方使用的IP协议的版本必须一致。目前广泛使用的IP协议版本号为4(即IPv4)。版本号为6(即IPv6)  2、首部

随机推荐