基于FPGA的千兆以太网控制器的设计 - 副本
- 格式:doc
- 大小:542.50 KB
- 文档页数:21
基于FPGA的高效传输速率的千兆以太网通信系统设计作者:史振国李德和尹虎来源:《中国新通信》2016年第14期【摘要】本文介绍了一种高效传输速率的千兆以太网通信系统设计方法。
该方法采用ALTERA内部的MAC核加外部PHY芯片实现,通信协议采用UDP/IP协议方式,并实现了ARP请求和应答功能可以实现大规模系统级联,而且整个通信系统都是用verilog 纯硬件语言编写实现。
经实验验证,该方法与传统软硬结合设计方法相比通信速率要高两倍以上。
【关键词】千兆以太网 UDP/IP ARP MAC核 FPGA 高效传输速率在高速数据采集领域,随着速度的增加,数据量越来越巨大,限于芯片GPIO的速度限制,传统的并行总线方式已经不能满足设备的需求。
高速以太网以其速度快、网络成熟的特点,逐渐受到数据采集设备厂商的欢迎。
但是基于Altera公司FPGA平台上,采用SOPC技术实现的千兆以太网方案,自身的操作系统耗时较多,实测速度只能达到200Mbit/s,无法满足高速采集设备的需求。
因此本文设计采用纯硬件描述语言实现千兆以太网UDP及ARP通信,在精简通信过程的基础上,提高了以太网TCP/IP协议栈的运行效率,经验证该方案能够速度能到达到800Mbit/s以上,能够满足高速数据传输的需要。
一、系统基本架构所设计的千兆网通信系统的基本架构如图1所示,采用自顶向下的设计方法将整个系统划分为如下几大功能模块:三速MAC核、MAC核的寄存器配置模块、发送和接收FIFO缓冲模块、协议解析模块、ARP请求和应答模块、UDP/IP数据打包和解析模块。
整个系统的所有功能模块都采用verilog 纯硬件语言编写实现,包括对MAC核的初始化配置和控制,以及协议判断。
而传统方法对这部分都是采用嵌入式系统进行软件控制,工作效率低下。
该系统还增加了ARP请求和应答功能,可以实现大规模系统集联,例如水听器监测系统需要进行大范围的数据采集,往往需要多个数据采集卡同时进行数据上传,即实现一台上位机对不同采集卡进行控制和数据区分。
基于FPGA的千兆以太网设计一、简介以太网是一种广泛应用于局域网(LAN)的计算机通信技术,其标准化是由IEEE 802.3委员会负责,最初的速度为10Mbps。
随着技术的进步,千兆以太网(Gigabit Ethernet)逐渐成为了主流。
基于现场可编程门阵列(FPGA)的千兆以太网设计能够实现高速数据传输和灵活性,并在计算机网络中发挥着重要作用。
二、设计原理1.物理层(PHY):物理层负责将数字数据转换为模拟信号,并通过以太网的物理介质进行传输。
常用的物理介质包括双绞线、光纤和同轴电缆。
PHY通常实现了数模转换、模数转换、时钟同步、编解码、调制解调等功能。
2. 介质访问控制层(MAC):MAC负责协调和管理数据帧在网络中的传输。
它包括数据帧的封装和解封、MAC地址的识别和过滤、数据流的调度和控制等功能。
MAC层通常基于协议进行设计,如以太网交换机的MAC层使用了以太网交换协议(Ethernet Switching Protocol)。
3.高层协议:高层协议负责定义数据帧的格式和传输规则,以及实现数据帧的路由和转发。
常见的高层协议包括网际协议(IP)、传输控制协议(TCP)和用户数据报协议(UDP)等。
设计过程中,首先需要实现PHY层的功能,包括数模转换、调制解调等。
这需要使用FPGA的模拟和数字混合信号处理能力。
接下来,设计和实现MAC层的功能,包括数据帧的封装和解封、MAC地址的识别和过滤等。
最后,根据具体应用需求,添加高层协议的功能和实现数据帧的路由和转发。
三、设计优势1.高性能:FPGA具有并行运算能力和硬件加速特性,能够实现高速数据处理和传输。
相比于软件实现,FPGA可以大大提高系统的性能和响应速度。
2.灵活性:FPGA的可重构特性使得设计可以根据需求进行定制和修改。
设计人员可以根据具体应用需求添加或删除功能模块,并通过重新编程实现更新和升级。
3.低功耗:FPGA的硬件实现相比于软件实现能够更好地利用资源,并减少功耗。
2008.563 基于FPGA的千兆以太网的设计摘要:本文简要介绍了Xilinx最新的EDK9.1i和ISE9.1i等工具的设计使用流程,最终在采用65nm工艺级别的Xilinx Virtex-5开发板ML505上同时设计实现了支持TCP/IP协议的10M/100M/1000M的三态以太网和千兆光以太网的SOPC系统,并对涉及的关键技术进行了说明。
关键词:FPGA;EDK;SOPC;嵌入式开发;EMAC;MicroBlaze0 引言目前,IP电视、视频流、网络游戏以及多媒体互动等业务逐步成为关注的焦点。
然而高清晰度的交互视频是带宽的巨大消耗者,进一步提升接入带宽已经迫在眉睫。
FPGA产品设计完善,可以直接编程。
还具备可定制的灵活性,避免了较高的NRE(不可回收)成本。
这都使得基于SOPC的嵌入式开发逐渐成为新技术发展的最前沿。
嵌入式系统不同于通用型PC,具有以下特点:①低功耗、体积小、集成度高;②严格约束,嵌入式系统的硬件和软件都必须高效率地设计;③实时性,有较短的中断响应时间,从而使内部的代码和实时内核心的执行时间减少到最低限度。
本研究采用业界最新的Xilinx 65ns工艺级别的Virtex-5LXT FPGA高级开发平台,满足了对于建造具有更高性能、更高密度、更低功耗和更低成本的可编程片上系统的需求。
Virtex-5以太网媒体接入控制器(EMAC)模块提供了专用的以太网功能,它和10/100/1000Base-T外部物理层芯片或RocketIOGTP收发器、SelectIO技术相结合,能够分别实现10M/100M/1000M的三态以太网和千兆光以太网的SOPC系统。
1 千兆以太网总体设计EDK是Xilinx 推出的基于其FPGA器件开发的嵌入式系统集成开发工具,EDK开发流程如图1所示。
图1 EDK开发设计流程EDK由多个工具包组成,并提供硬件和软件协同设计的能力。
通过MHS文件、MSS文件和MVS文件完整描述了FPGA系统的软硬件结构和仿真验证模型。
基于FPGA的高效传输速率的千兆以太网通信系统设计【摘要】本文针对基于FPGA的高效传输速率的千兆以太网通信系统设计展开研究。
引言部分介绍了研究背景、研究意义以及研究目的。
正文包括系统设计概述、硬件设计部分、软件设计部分、性能评估与实验结果以及系统优化与改进。
在对实验进行总结与分析,展望未来研究方向,并得出结论。
通过本文的研究和实验,将进一步提升千兆以太网通信系统的传输速率和效率,为通信领域的发展贡献力量。
【关键词】FPGA、高效传输速率、千兆以太网、通信系统、硬件设计、软件设计、性能评估、实验结果、系统优化、改进、实验总结、分析、未来展望、结论。
1. 引言1.1 研究背景研究背景:随着互联网的不断发展和智能设备的普及,数据传输速率需求日益增长。
传统的以太网通信系统在面对大规模数据传输时往往面临吞吐量不足、延迟较高等问题,不能很好地满足用户需求。
基于FPGA的高效传输速率的千兆以太网通信系统设计成为了当前研究的热点之一。
当前,虽然已经有一些基于FPGA的以太网通信系统设计方案,但仍存在吞吐量不高、性能不稳定等问题。
开展基于FPGA的高效传输速率的千兆以太网通信系统设计的研究具有重要意义,能够提高数据传输效率,满足用户对高速、稳定通信的需求。
1.2 研究意义基于FPGA的高效传输速率的千兆以太网通信系统设计,可以有效解决传统以太网系统在速率和性能上的瓶颈问题。
通过采用FPGA这种可编程逻辑器件,实现高度灵活性和可定制性,可以更好地满足不同应用场景下的需求。
借助FPGA强大的并行计算能力和快速数据处理能力,可以实现更高的传输速率和更低的延迟,提升系统的整体性能。
基于FPGA的高效传输速率的千兆以太网通信系统设计具有重要的研究意义。
通过这项研究,可以推动网络通信技术的发展,提升网络传输速率和通信效率,为人们的日常生活和工作带来更便利和高效的网络体验。
也能为未来网络通信技术的进一步发展奠定坚实基础。
1.3 研究目的研究目的是为了探索基于FPGA的高效传输速率的千兆以太网通信系统设计的可行性,通过优化硬件设计和软件设计,提高通信系统的传输效率和性能。
基于FPGA的千兆以太网控制器的设计摘要:网络正在成为当今社会通信的骨干力量,现代化的设备迫切需要解决如何简捷高速的接入问题,本文描述了基于FPGA的嵌入式技术。
千兆以太网(Gigabit Ethernet)技术目前被广泛应用于局域网中,千兆以太网二层(MAC层)交换芯片是千兆以太网中的关键芯片。
文章介绍了一种由FPGA实现的以太网控制器的设计方法,该控制器能支持1000 Mbps的传输速率以及半双工和全双工模式,并且给出了仿真验证结果。
结果表明,该设计方案是可行的。
关键词:千兆以太网;FPGA;以太网控制器A Design of Controller for Gigabit EthernetBased on FPGADeng Zhi(Huazhong University of Science and Technology, Department of Electronic Science and Technology, Wuhan 430074 China) Abstract: Network becomes the foundation of modern common communications, it’s urgent to solve the access to the system with the Ethernet simply and efficiently. The paper deals with the technology of embedded system based on the FPGA. Gigabit Ethernet technology is widely used in Local Area Network (LAN) recently, Layer 2 (MAC) switch chip is the key chip based on which Gigabit Ethernet technology can be used. In this paper, a method that implements Gigabit Ethernet controller on FPGA is introduced, which can support 1000Mbps transmission rate with half-duplex and full-duplex mode, and the simulation and verification results are given.Key words: Gigabit Ethernet; FPGA; Ethernet controller目录1 引言 (2)2 千兆以太网技术简介 (3)3 千兆以太网的工作原理 (4)4 千兆以太网控制器的FPGA实现 (6)5 千兆以太网的具体设计方案 (8)5.1 MAC发送模块 (8)5.2 MAC接收模块 (12)5.3 MAC的其它模块 (14)6 仿真结果 (18)7 结束语 (20)8 参考文献 (20)1 引言目前,IP电视、视频流、网络游戏以及多媒体互动等业务逐步成为关注的焦点。
基于FPGA的千兆以太网终端显示系统的设计刘鹏;胥效文;史忠科【摘要】VGA ( Video Graphics Array) is widely used as a standard display interface. Gigabit Ethernet,which has advantages of high-speed transmission,long-distance transmission,high stability and reliability,plays an important role in the current embedded systems. FP-GA has rich logic and pins resources,which is often used in high-speed data processing and embedded communication systems. Based on the above threepoints,introduce the gigabit Ethernet terminal display system design based on FPGA. Through the analysis of the system scheme,the design is divided into three modules:packet receiving and parsing module,dual port RAM cache module and VGA controller module. Introduce in detail the three module design method,and realize the three modules in this technology to work together to complete the function of the whole system,and the system simulation results and display effect is given.%VGA(视频图像阵列)作为一种标准的显示接口得到广泛应用;千兆以太网具有传输速度快、传输距离远、稳定可靠等优点,是当前嵌入式系统的应用热点;FPGA拥有丰富的逻辑和光脚资源,常用于高速数据处理和通信的嵌入式系统。
基于FPGA的千兆以太网控制器的设计摘要:网络正在成为当今社会通信的骨干力量,现代化的设备迫切需要解决如何简捷高速的接入问题,本文描述了基于FPGA的嵌入式技术。
千兆以太网(Gigabit Ethernet)技术目前被广泛应用于局域网中,千兆以太网二层(MAC层)交换芯片是千兆以太网中的关键芯片。
文章介绍了一种由FPGA实现的以太网控制器的设计方法,该控制器能支持1000 Mbps的传输速率以及半双工和全双工模式,并且给出了仿真验证结果。
结果表明,该设计方案是可行的。
关键词:千兆以太网;FPGA;以太网控制器A Design of Controller for Gigabit EthernetBased on FPGADeng Zhi(Huazhong University of Science and Technology, Department of Electronic Science and Technology, Wuhan 430074 China) Abstract: Network becomes the foundation of modern common communications, it’s urgent to solve the access to the system with the Ethernet simply and efficiently. The paper deals with the technology of embedded system based on the FPGA. Gigabit Ethernet technology is widely used in Local Area Network (LAN) recently, Layer 2 (MAC) switch chip is the key chip based on which Gigabit Ethernet technology can be used. In this paper, a method that implements Gigabit Ethernet controller on FPGA is introduced, which can support 1000Mbps transmission rate with half-duplex and full-duplex mode, and the simulation and verification results are given.Key words: Gigabit Ethernet; FPGA; Ethernet controller目录1 引言 (2)2 千兆以太网技术简介 (3)3 千兆以太网的工作原理 (4)4 千兆以太网控制器的FPGA实现 (6)5 千兆以太网的具体设计方案 (8)5.1 MAC发送模块 (8)5.2 MAC接收模块 (12)5.3 MAC的其它模块 (14)6 仿真结果 (18)7 结束语 (20)8 参考文献 (20)1 引言目前,IP电视、视频流、网络游戏以及多媒体互动等业务逐步成为关注的焦点。
然而高清晰度的交互视频是带宽的巨大消耗者,进一步提升接入带宽已经迫在眉睫。
FPGA产品设计完善,可以直接编程。
还具备可定制的灵活性,避免了较高的NRE(不可回收)成本。
这都使得基于SOPC的嵌入式开发逐渐成为新技术发展的最前沿。
嵌入式系统不同于通用型PC,具有以下特点:①低功耗、体积小、集成度高;②严格约束,嵌入式系统的硬件和软件都必须高效率地设计;③实时性,有较短的中断响应时间,从而使内部的代码和实时内核心的执行时间减少到最低限度。
目前,以太网802.3协议和TCP/IP协议是现今嵌入式系统接入Internet的首选协议。
而以太网(Ethernet)的核心思想是多用户使用共享的公共传输信道,它通过带冲突检测的载波侦听多路访问协议(CSMA/CD)来控制对介质的访问。
本文给出了完全用FPGA的控制逻辑来实现嵌入式系统Internet接入中的底层以太网控制器的设计方法。
并最终设计出符合IEEE 802.3标准的控制器,从而实现了1000 Mbps两种传输速率以及半双工和全双工两种工作模式,并可通过IEEE802.3标准定义的介质独立接口(MII)与以太网物理层芯片相连接。
2 千兆以太网技术简介以太网技术是当今应用广泛的网络技术,千兆以太网技术继承了以往以太网技术的许多优点,同时又具有诸多新特性,例如传输介质包括光纤和铜缆,使用8B/10B的编解码方案,采用载波扩展和分组突发技术等。
正是因为具有良好的继承性和许多优秀的新特性,千兆以太网已经成为目前局域网的主流解决方案[1]。
千兆以太网利用原以太网标准所规定的全部技术规范其中包括CSMA/CD协议、以太网帧、全双工、流量控制以及IEEE802.3 标准中所定义的管理对象。
千兆以太网的关键技术是千兆以太网的MAC 层和以太网接口的实现。
随着多媒体应用的普及,千兆以太网必然得到广泛应用[2]。
3 千兆以太网的工作原理本文介绍的千兆以太网交换芯片按照IEEE802.3标准实现了8个独立千兆端口之间的MAC帧交换,同时向下兼容10Mb/s 和100Mb/s的MAC帧交换。
其最基本的工作原理可概括为“学习转发”。
它包括“学习”和“转发”两个部分。
芯片中包含一个MAC地址表,地址表的每个存储单元为一条如表1所示的72比特的MAC地址索引信息。
MAC地址表一共可以存储4096条MAC地址索引信息。
表1 MAC地址索引信息结构表端口接收到MAC帧后,提取MAC帧的源地址,并在表中查找与之对应的条目,如果没有找到,就把源地址和接收到该帧的端口编号捆绑成一条新的MAC地址索引信息,存储到MAC地址索引表中,这个过程为“学习”。
通过学习,就可以知道主机的地址和端口的映射关系。
有时还需要记录VLAN和端口的对应信息,建立VLAN索引表。
从端口接收到一个要求转发的MAC帧后,提取MAC帧中的目的地址,并在MAC地址表中查找与之对应的条目,从中得到目的地址对应的端口号,将MAC帧转发到相应的端口,这个过程为“转发”。
芯片设计的关键技术在于MAC帧的帧头信息提取和MAC地址表的管理。
对于帧头信息的提取包括判断是以太网帧还是802.3 帧,提取源地址和目的地址、VLAN信息和一些IP帧头信息,计算当前帧的优先级,根据不同的帧头信息进行相应的协议处理等。
为了实现1000Mb/s的MAC帧交换,MAC地址表必须满足三个要求:必须能在几个时钟周期内查找到MAC地址相应的端口号,以满足千兆以太网需求的高吞吐量;必须及时“学习”到新MAC帧的地址索引信息;老化掉长时间没有访问到的MAC 地址索引信息。
为了达到这些要求,本芯片中采用了HASH[3]算法。
4 千兆以太网控制器的FPGA实现整个控制器的结构框图如图1所示,整个控制器由接口帧缓存、MAC帧处理模块、交换处理模块、内存管理模块、寄存器以及RS232 接口组成。
芯片内部有一个容量为108k字节的双端口SRAM,用于缓存接收到的MAC 帧,内存管理模块负责该SRAM存储空间的分配、释放和读写控制。
图1 千兆以太网控制器结构框图芯片内部核心部分工作时钟频率为125MHz,端口有可能会接在100Mb/s或10Mb/s的网段上,此时接口的工作时钟为25MHz,因此需要一个接口缓存模块来缓存数据。
该模块一般是FIFO。
RS232 接口是芯片与用户的接口,通过该接口,用户可以读取寄存器的值来了解芯片的工作状态,可以配置寄存器来调整芯片的工作模式。
交换处理模块是整个芯片的核心模块,帧头信息提取和MAC 地址表的管理都在这个模块中实现,其结构框图如图2所示。
帧头信息分析模块接收到MAC帧处理模块送来的帧头信息后,提取出目的地址、源地址、VLAN以及IP头中的优先级等信息,并将其转发到学习转发控制模块。
并根据帧头、帧尾以及帧有效信号产生帧状态指示信号发送到端口记录模块。
图2 交换处理模块结构框图5 千兆以太网的具体设计方案以太网控制器的FPGA设计工作包括以太网MAC子层的FPGA设计、MAC子层与上层协议的接口设计以及MAC与物理层(PHY)的MII接口设计。
图3为MAC接口结构框图。
图3 MAC接口结构框图5.1 MAC发送模块MAC发送模块可将上层协议提供的数据封装之后通过MII 接口发送给PHY。
发送模块可接收主机接口模块的数据帧开始和数据帧结束标志,并通过主机接口从外部存储器中读取要发送的数据,然后对数据进行封装,然后通过PHY提供的载波侦听和冲突检测信号,在信道空闲时通过MII接口将数据以4位的宽度发送给PHY,最后由PHY将数据发送到网络上[5]。
发送模块由CRC生成模块(crc_gen)、随机数生成模块(random_gen)、发送计数模块(tx_cnt)和发送状态机(tx_statem)模块等四个子模块组成。
5.1.1 CRC生成模块(crc_gen)该模块用于计算发送数据的CRC值,并将CRC值添加到数据帧的帧校验序列字段(FCS)内。
为了提高效率,并考虑到MAC 与PHY的数据通道为4位,设计时可采用4位并行CRC计算方法[4],算法中可使用一个次态函数,并通过循环迭代来模拟移位操作。
这样,发送模块就可以在边发送数据到PHY的同时,一边计算CRC,这样当数据发送完时,CRC值也计算完成了。
5.1.2 随机数生成模块(random_gen)如在发送过程中检测到冲突,发送模块就先发送拥塞码(jam),随后停止发送。
在下次重新发送之前,发送模块会先执行一个后退(backoff)操作,即发送模块等待一个半随机(生成的随机数有范围限制)的时间之后再开始发送。
该随机数就是由随机数生成模块产生的,它采用经典的截断二元指数后退算法,后退的时间是一个与发生冲突次数有关的随机数,随着冲突的次数增多,用于生成该随机数的范围也将逐渐增大,以减少冲突的概率。
5.1.3 发送计数模块(tx_cnt)发送计数模块由半字节计数器(nibcnt)、字节计数器和重试次数计数器(retrycnt)三个计数器组成。
其中重试次数计数器(retrycnt)可对发送某个帧时产生冲突次数进行计数。
当计数器的值达到最大重试次数时,它将放弃重试,并丢弃发送缓冲器内的数据。
同时,重试计数器的值还被随机数生成模块用于计算下次重试之前需要后退(backoff)的时隙的个数。
半字节计数器和字节计数器分别用于对发送过程中的半字节(bibble)和字节进行计数。
字节计算器还可用于滞后冲突(late collision)和超长帧的判断。