Xilinx 千兆以太网TEMAC IP核用户接口信号

用户接口包括AX14-Stream发送接口和AX14-Stream接收接口,下文简称为用户发送接口和用户接收接口,数据案度可以是易位或16位,其中,8位接口主要针对标准的以太网应用,它利用一个125MHz的时钟产生1Gbps的数据率;当使用16位宽时,可以在不提高时钟频率的条件下将用户接口的数据率提高到2Gbps。

1 用户发送接口功能和信号介绍

(1)用户发送接口信号描述

Vintex-6 FPGA的 TEMAC使用AX14-Stream接口与用户进行数据交互,AXI4-Stream标准的详细信息请参考ARM*AMBA* AXI4-Stream Protocol Specification v1.0。用户通过 AX14-Stream发送接口将数据发送到TEMAC核。需要注意的是,未单独声明的信号都是高电平有效。发送接口全部信号的简要说明如下表1所示。

表1 发送接口情号及描述

(2)用户发送接口信号时序

1)8位宽的用户接口时序

发送时,将数据帧置于tx axis mac_tdata数据接口总线上,并将tw_axis_mac_tvalid置为有效,用户侧等待,直到tx_axis_mac_tready信号有效时发送数据。如果tx_axis_mac_ tready信号一直有效,用户侧持续发送后续字节。

8位案的数据帧的正常发送时序如图1所示,其中,DA为6字节的目的地址:SA为6字节的源地址:L/T为2字节的长度/类型域;FCS为4字节的帧校验序列。所有信号和时钟_mac_ack同步,发送时首先将数据的首字节送入x_axis_mac_tdats总线,同时将w axis mac tvalid置为有效,维持信号的当前状态,等待MAC核发送的tx axis mac tready 信号变为有效。当to axis m_tready 信号有效时,表示MAC可以接收数据,此时用户接口陆续输入后续字节:当xaxis mac tready信号无效时,用户接口停止输入字节,继续等待txaxis mac tready信号变为有效。在图1中,用户接口在tx_axis_mac_tready信号为“1”时,先发送两个字节,等待x_axis_mac_tready信号再次为“1”时,发送后续的字节,帧传输完成的标志是在帧发送到最后一个字节时,t_axis_mac_tlast 置为有效。

图1 数据帧的正常发送时序(8位接口)

2)16位宽的用户接口时序

当选用16位宽的用户接口时,数据帧发送过程与8位宽接口时序基本一致,区别在于选用16位宽接口时增加了tu_axis_mac_tkeep[1:0]总线,用于指示toaxis mac tdata[15:0]总线两字节中有效的字节(16位时每个时钟周期发送两个字节数据),该指示位只对帧尾信号有作用。需要注意的是,tx_axis_mac_tdata[7:0]用于发送16位数据的高字节,tx_axis_ mac_tdata[15=8]用于发送16位数据的低字节,例如,图2中的DA地址为AA-BB-CC-DD EE-FF,tx_axis_mae_tdata[15:0]总线发送的数据时序依次为“BBAA”、“DDCC”和“FFEE”。在正常的帧发送过程中,tx_axis_mac_tkeep[1:0]一直置为“11”,表示tu_axis mac tdata [15:0]总线的两字节都有效:当发送数据帧尾时,tx axis mac tlast置为高,此时xxis mac_tkeep[1:0]合法值可取“11”或“01”,分别表示tx_axis_mac_tdata[15:0]总线的两字节都有效或只有高字节有效。

图2 数据帧的正常发送时序(16位楼口)

(3)IFG和统计功能

用户发送接口除了发送数据信号外,还包括帧间隔控制和发送统计矢量信号,帧间间隔调整和发送统计的相关附属信号如表2所示,

2 帧间间隔调整和发送统计的相关附属信号

1)帧间间隔调整

在半双工工作模式下,MAC核在向物理层传输数据之前,首先进行截波侦听,如是物理链路上有载该,说明有数据正在线路上传输,本端数据必须先等待;当信听到载波消失后,本端数据可以准备发送。CSMA/CD协议规定两帧数据之间必须存在间隔,即InterFrame Gsp(IFG),其间隔时间用于链路上的设备恢复状态,以便顺利接收下一帧数据。在全观工模式下,两端收发接口直接互连,不存在接收和发送信号冲突,此时不需要进行链路的载波侦听,MAC核只需要控制自身的发送接口,在以太网相邻两帧之间插入一定的空闲周期实现InterFrame Gap,MAC核的下一帧数据在空闲周期结束后再发送。

IPG空闲周期数由 tx_ifg_delay的值决定,最小值为IEEE802.3规定的12个发送时钟周期,当帧间间隔调整使能信号Interframe Gap Adjust Enable 置为0或 tx_ifg_delay的值小于12时,IFG的 x_ifg_delay都默认为12。在用户发送接口实现帧阒间隔调整功能的过程如图3所示。MAC核可以通过延迟将x_axis_mae tready信号延迟置为高。使得用户楼口的t_axis_mac_tdana 信号延缓发送数据,达到IFG规定的周期后,将 txaxis mae_trendy信号置为高,发送接口可以继续发送数据帧。

帧间间隔调整功能示例

2)发送统计失量时序

发送数据帧的信息统计由tx_statistics_vector内部的比特位完成,tx_statistics_vaid是其有效的指示信号,发送时序如图4 所示,tostatistics vector[31:0]在最后一帧给出统计矢量,u_statistics_valid为高时有效。

图4 经计矢量的发送时序

统计矢量的比特位定义。VLAN帧发送,帧发送的FCS等内容详见Xilinx LogiCORE IP Virtex-6FPGA Embedded Tri-Mode Ethemet MAC Wrapper v2.3(即UG800).

2 用户接收接口功能和信号介绍

(1)用户接收接口信号描述

AX14-Scream主要面向高速数据流传输,TEMAC核的用户侧采用AX14-Stream 楼口。用户接收接口信号及描述如表3所示。

表3  用户接收接口信号及描述

(2)用户接收接口信号时序

8位宽的接收接口数据帧正常传输时序如图5所示,所有信号和时钟emae_aelk同步。当收到一个数据帧时,对每个有效字节置rx_axis_mac_tvalid为高电平。在接收帧的最后一个字节时,_exis_mat_tlast有效。

图5  接收接口数据帧正常的输时序(8位)

16位宽接口的数据帧接收过程与8位宽时大致相同,区别在于16位宽接收接口增加了xaxis mae tkeep[1:0]总线。用于指示每个时钟周期所接收到的2字节数据是否有效。如图6所示为16位宽的接收接口信号时序图,正常接收过程中,rx_axis_mac tkeep(1:0]一直为*11”,直到rx axis mae tlast 置为高。此时rx axis mae tkeep置为“11”或“01”,图中 DA的顺序为AA-BB-CC-DD-EE-FF.L/T为0x00FE。此处需要注意的是, rn axis mac idata[7:0]接收的是高字节,nxaxis mac tdata[15:8]为低字节,字节内的比特位顺序不变。

图6 16位宽的接收接口信号时序

当rx_axis_mac_tlast 和 rx_axis_mac_tuser都置为有效时表示当前帧中包含错误,如图7所示。

图7 接收错误数据帧的口信号时序

TEMAC核接收到错误帧时,将x_axis_mac_taser 信号置高,接收帧错误的原国包括: FCS错误:

● 帧长度小于64字节的最小值限制:

● 接收到了Jumbo帧,但是Jumbo帧功能未选;

● 接收到了1519~1522字节长的VLAN帧,但是VLAN帧功能未选:

● 需要填充至最小帧长度但未填充;

● 帧接收时的物理搓口指示错误:

● 设定了帧过滤功能,检测到不匹配的数据帧:

● 在1000BASE-X或SGMII模式时,8BVIOB编码错误,

(3)接收统计矢量信号和时序

接收接口的统计矢量信号如表4所示,接收数据帧的信息统计由r_statistics ectar内部的比特位完成,r statistics valid是其有效的指示信号。

表4  接收接口的统计矢量信号

接收接口的统计矢量信号时序如图8所示,x_statistics_vector[27:0]在最后一帧给出统计矢量,当rx_statisties_valid信号置高时有效。

图8 接收接口的统计欠量信号时序

(4)流控功能和接口信号

在全双工模式下,TEMAC核可以通过暂停控制帧的发送和响应来实现流量控制功能。流量控制的需求示例如图9所示,图中右侧TEMAC核的参考时钟比标准的125MHz稍快,左侧TEMAC核的参考时钟比标准的125MHz稍慢,左侧TEMAC栋的接收速率无法匹配上右侧TEMAC核的发送速率,如果没有流量控制机制,将造成左侧 TEMAC核的接收 FIFO溢出。通过引入流控机制,在左侧的FIFO溢出前,通知右侧 TEMAC核停止发送数据,这样可以避免数据帧丢失或损坏。

图9 流量控制的需求示例

1)流量控制的基本原理与暂停控制帧格式

流量控制的基本原理是通过TEMAC核接收端向发送斕发送暂停控制帧,使得数据线路在特定的时间段内停止传输数据。以图9为例,当左侧TEMAC核中的FIFO接近饱和时,左侧TEMAC核可以发送暂停请求来控制流量,当右侧TEMAC核接收到左侧TEMAC核发送的暂停控制帧时,将会在暂师控制帧设定的暂停时间内停止发送数据。暂停控制帧格式如图10所示,在一个有效的暂停控制帧中,其长度为以太网的最小帧长度64字节;其目的地址为保留的组播地址Ox0180C2000001;源地址为发送暂停控制帧端口的48位MAC地址:MAC控制类型域为0x8808,表明该帧为暂停控制帧:暂停控制帧操作码为0x0001(即进行PAUSE操作);暂停时间长度为2字节,它是暂停发送方请求对方停止发送数据的时间长度,时间单位是pause_quantem(为当前速率下传输512位数据所用的时间,如1Gbps时为512ms),Pwuse Time 的范围值为0x0000-0xFFFF,通常设为0xFFFF:剩余字段填克为0(填充以达到最小帧长度),随后接FCS 域。

图10 暂停控制帧格式

2)流控制接口信号

表5描述了流控接口信号。

表5流控口信号及描述

3)流量控制的进行机制

(1)暂停控制帧的发送。当TEMAC核被配置为支持流控帧传输时,pause val总线用于传输暂停值,用户通过将pause rtq信号置为高来启动流擦帧的发送,暂停请求时序如图11所示。当对TEMAC核发出暂停请求时,若当前发送接口处于空闲状态,即未发送数据帧时,暂停控制帧立即被发送,反之,如果发送端在发送暂停请求的时刻处于发送忙状态,必须在当前帧发送完成后,暂停控制帧才被允许发送。

图23暂修请求时序

在暂施控制帧格式中,目的地址为IEEE802.3定义的多播地址,这样使得任何具有流控功能的TEMAC核都能响应:源地址为可配置的暂停控制帧MAC地址:paus0_req置高有效时,从pause_val[15:0]信号采样得到的数值被编码写入TEMAC控制参数段,用于选择暂停时间间隔(以pause_qeantum为单位时间》,

当TEMAC核被配置为不支持流控帧传输时,用户可以不利用TEMAC核内部自带的暂停控制帧发送功能。而采用通过用户逻辑连接到AX14-Stream发送接口实现,利用 AX14-Stream 後口直接发送暂停控制帧,任何类型的控制帧都可以通过发送端 AX14-Stream接口进行发送,其传输过程和以太网标准数据帧是一样的。

(2)暂停控制帧的接收。TEMAC核对接收到的数据帧都要进行校验,包括帧格式,帧校验及帧长度,若接收到的数据帧无法满足校验要求,则通过将naxis me tuser信号置高。指示接收的帧发生错误。当TEMAC核配置为支持暂停控制帧响应时, TEMAC核对接收到的正确数据帧执行相关帧格式解析功能,

a.目的MAC地址域是IEEE 802.3定义的控制多播地址(01-80-C2-00-00-01)或用户自配置的智停控制帧MAC地址;

b. 长度/类型城与MAC控制类型码匹配;

c. 接收帧的操作码(OPCODE)与以太网MAC控制操作码匹配。

如果以上3步匹配过程都正确,且帧长度正好是64字节,则表明该帧为暂停控制帧,其16位的MAC控制参数将作为pause_quantum的数目决定传输超迟时间,传输延迟可以通过对 AX14-Stream 楼口的t区_axis_mac_tready信号一直置为无效来实现,延缓数据渣的发送,等到暂停时段结束后再摄mas treadly置为有效。这样用户才可以再向MAC发送数据,从而达到流量控制的目的。对于上述3步匹配过程不全正确的接收帧,可以当作错误帧直接丢弃,或由用户逻辑负责解析、响应或丢弃。

当TEMAC核配置为不支持暂停控制帧响应时,可采用用户逻辑实现流控帧的识别和解析功能:对接收正确的帧进行3步匹配过程,若匹配正确,则接收到的帧为暂停控制帧,执行相应的暂停操作;若匹配不都正确,表明接收帧是非暂停控制帧,执行其他操作。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/324160.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

景联文科技:用高质量数据采集标注赋能无人机技术,引领无人机迈入新纪元!

随着无人机技术的不断发展与革新,它已成为现代社会中一个前景无限的科技领域。 无人机应用领域 边境巡逻与安防:边境管理部门利用无人机监控边境线,防止非法越境和其他安全威胁,同时也能监控地面安保人员的工作状态和行动路线。 …

Java入门基础学习笔记11——关键字和标识符

1、关键字 关键字是java中已经被赋予特定意义的,有特殊作用的一些单词,不可以把这些单词作为标识符来使用。 注意:关键字是java用了的,我们就不能用来作为:类名、变量名、否则会报错。 标识符: 标识符就是…

GAME101-Lecture06学习

前言 上节课主要讲的是三角形的光栅化。重要的思想是要利用像素的中心对三角形可见性的函数进行采样。 这节课主要就是反走样。 课程链接:Lecture 06 Rasterization 2 (Antialiasing and Z-Buffering)_哔哩哔哩_bilibili 反走样引入 ​ 通过采样,得到…

开源相机管理库Aravis例程学习(七)——chunk-parser

开源相机管理库Aravis例程学习(七)——chunk-parser 简介例程代码函数说明arv_camera_create_chunk_parserarv_camera_set_chunksarv_chunk_parser_get_integer_value 简介 本文针对官方例程中的:05-chunk-parser做简单的讲解。并介绍其中调…

Vue项目npm install certificate has expired报错解决方法

1.Vue项目 npm install 安装依赖突然报错: npm ERR! code CERT_HAS_EXPIRED npm ERR! errno CERT_HAS_EXPIRED npm ERR! request to https://registry.npm.taobao.org/zrender/download/zrender-4.3.0.tgz failed, reason: certificate has expired npm ERR! A com…

Ranger 面试题及答案整理,最新面试题

Ranger 的安全模型是如何设计的? Ranger的安全模型设计主要基于访问控制和安全策略的管理,它通过以下几个关键组件实现: 1、策略管理: Ranger 提供了一个中央管理平台,用于定义、更新和管理安全策略。这些策略根据资…

网络基础-ICMP协议

ICMP(Internet Control Message Protocol, Internet控制消息协议) ICMP协议是IP协议的辅助协议,用于在IP网络上发送控制消息,它通常被用于诊断网络故障、执行网络管理任务以及提供一些错误报告;对于收集各…

Linux 文件

文章目录 文件操作回顾(C/C)系统调用接口 管理文件认识一切皆文件C/C的文件操作函数与系统调用接口的关系……重定向与缓冲区 -- 认识重定向与缓冲区 -- 理解使用重定向缓冲区实现一个简单的Shell(加上重定向)标准输出和标准错误(在重定向下的意义) 磁盘文件磁盘存储文件操作系…

Git泄露(续)

接上一篇补充 git config --global user.name " " git config --global user.email 邮箱地址 配置用户名和邮箱 git commit 使其处于交互区,没有使用 -m,默认用vim 来编辑和提交信息 输入要提交的内容,然后按ESC建回到命令…

idea常用插件

1. 设置背景 安装插件:Background Image Plus设置背景图片: 2. Mybatis Log Plugin 详见:IntelliJ Idea 常用12款插件(提高开发效率),附优秀主题插件_idear codota插件 收费吗-CSDN博客 3. MybatisCodeHe…

HarmonyOS NEXT星河版之美团外卖点餐功能实战(下)

文章目录 一、购物车逻辑1.1 购物车及加减菜1.2 菜品的加减---方案一1.3 菜品的加减---方案二1.4 购物车View完善1.5 清空购物车1.5 购物车数量和价格 二、小结 一、购物车逻辑 1.1 购物车及加减菜 在utils目录下新建CartStore.ets文件,如下: import …

开发Web3 ETF的技术难点

开发Web3 ETF(Exchange-Traded Fund,交易所交易基金)软件时,需要注意以下几个关键问题。开发Web3 ETF软件是一个复杂的过程,涉及到金融、法律和技术多个领域的专业知识。开发团队需要综合考虑上述问题,以确…

数据库调优-数据库优化

数据库优化 如何发现复杂的SQL有问题? 一个个去explain吗?你有没有这样的困惑,开发代码运行顺畅丝滑,上生产了却卡的一逼? 哈哈,相信大家都会遇到这样的问题! sql 复制代码 # 举个栗子&…

数据库基础语法二

一、数据库 1、登陆数据库 2、创建数据库zoo 3、修改数据库zoo字符集为gbk 4、选择当前数据库为zoo 5、查看创建数据库zoo信息 6、删除数据库zoo mysql -uroot -p #登陆数据库 create database zoo; #创建数据库zoo alter database zoo character set gbk collate gbk_…

【C++】CentOS环境搭建-快速升级G++版本

【C】CentOS环境搭建-快速升级G版本 1. 安装CentOS的软件集仓库:2. 安装你想要的devtoolset版本,例如devtoolset-9:3. 启用新版本的编译器:4. 检查G版本: 在CentOS系统中升级G编译器通常涉及使用devtoolset或者SCL&…

【typescript测试 - Jest 配置与使用】

安装 npm install --save-dev types/jestnpm install --save-dev ts-jest配置 tsconfig.json {"compilerOptions": {"types": ["jest"]} }jest.config.js module.exports {preset: ts-jest,testEnvironment: node, };使用 // add.js funct…

Java 各类注解、Bean、作用域、生命周期

这里写目录标题 一、注解和Bean创建时机1. Controller:2.RestController:3.Service:4.Repository:5.Component: 二、作用域1.Singleton:2.Prototype:3.Request:4.Session: 一、注解和Bean创建时机 1. Controller: Bean生成时机: 在应用程序启动时由Spring容器创建。作用域: 默…

Dijkstra求最短路 I:图解 详细代码(图解)

文章目录 题目:Dijkstra求最短路思路伪代码:代码优化优化代码:Java代码 总结 题目:Dijkstra求最短路 给定一个 n个点 m条边的有向图,图中可能存在重边和自环,所有边权均为正值。 请你求出 1号点到 n号点的…

FonePaw Data Recovery for Mac:轻松恢复丢失数据

FonePaw Data Recovery for Mac是一款功能强大的数据恢复软件,专为Mac用户设计,帮助用户轻松恢复因各种原因丢失的数据。该软件支持从硬盘驱动器、存储卡、闪存驱动器等存储介质中恢复丢失或删除的文件,包括照片、视频、文档、电子邮件、音频…

基于Springboot的微乐校园管理系统(有报告)。Javaee项目,springboot项目。

演示视频: 基于Springboot的微乐校园管理系统(有报告)。Javaee项目,springboot项目。 项目介绍: 采用M(model)V(view)C(controller)三层体系结构…