工业以太网协议栈fpgaip核的实现
基于FPGA的100BASE-TX工业以太网中继器的设计与实现
基于FPGA的100BASE-TX工业以太网中继器的设计与实现周学勋【摘要】In order to improve the performance in real-time and certainty of Industrial Ethernet network,an Ethernet repeater based on FPGA is pared with traditional Ethernet repeater,the repeater uses FPGA chip for data processing,with low-latency features.The Ethernet interface of the repeater uses a professional Ethernet PHY chip,and uses FPGA for data processing,the FPGA procedures including simultaneous detection module,synchronization regeneration module,dual-port RAM and the central control unit.Experimental results show that the Ethernet repeater is compatible with standard Ethernet devices based onpared with traditional Ethernet repeater,the latency is much lower.%为了提高工业以太网的实时性和确定性,设计出一种基于FPGA的以太网中继器。
与传统的以太网中继器相比,该中继器采用FPGA芯片实现数据的处理,具有延时小的特点。
该中继器以太网接口部分采用专业的以太网PHY芯片,数据的转发则由FPGA来完成,FPGA程序包括同步检测模块、同步再生模块、双口RAM 及中央控制模块等几个模块。
FPGA开发全攻略——IP核
FPGA开发全攻略——IP核5.7 FPGA设计的IP和算法应用基于IP的设计已成为目前FPGA设计的主流方法之一,本章首先给出IP的定义,然后以FFT IP核为例,介绍赛灵思IP核的应用。
5.7.1 IP核综述IP(Intelligent Property) 核是具有知识产权核的集成电路芯核总称,是经过反复验证过的、具有特定功能的宏模块,与芯片制造工艺无关,可以移植到不同的半导体工艺中。
到了SOC 阶段,IP核设计已成为ASIC电路设计公司和FPGA提供商的重要任务,也是其实力体现。
对于FPGA 开发软件,其提供的IP核越丰富,用户的设计就越方便,其市场占用率就越高。
目前,IP核已经变成系统设计的基本单元,并作为独立设计成果被交换、转让和销售。
从IP核的提供方式上,通常将其分为软核、硬核和固核这3类。
从完成IP核所花费的成本来讲,硬核代价最大;从使用灵活性来讲,软核的可复用使用性最高。
( 这部分内容前面已经阐述,这里再重申一下)软核(Soft IP Core)软核在EDA设计领域指的是综合之前的寄存器传输级(RTL) 模型;具体在FPGA设计中指的是对电路的硬件语言描述,包括逻辑描述、网表和帮助文档等。
软核只经过功能仿真,需要经过综合以及布局布线才能使用。
其优点是灵活性高、可移植性强,允许用户自配置;缺点是对模块的预测性较低,在后续设计中存在发生错误的可能性,有一定的设计风险。
软核是IP 核应用最广泛的形式。
固核(Firm IP Core)固核在EDA设计领域指的是带有平面规划信息的网表;具体在FPGA设计中可以看做带有布局规划的软核,通常以RTL 代码和对应具体工艺网表的混合形式提供。
将RTL描述结合具体标准单元库进行综合优化设计,形成门级网表,再通过布局布线工具即可使用。
和软核相比,固核的设计灵活性稍差,但在可靠性上有较大提高。
目前,固核也是IP核的主流形式之一。
硬核(Hard IP Core)硬核在EDA 设计领域指经过验证的设计版图;具体在FPGA 设计中指布局和工艺固定、经过前端和后端验证的设计,设计人员不能对其修改。
基于FPGAIP核的FIR设计与实现
佳的频率特性和衰耗特性 , 无论通带还是阻带都
较 为平坦 , 过渡 带窄 , 好地接 近理 想滤波 器 的响 更
应。
须确 保 已 经 安 装 了 D P B i e 具 。进 入 I S ul r工 d P
( 方通 用 电子集 团有 限 公司微 电子部 苏州 256 ) 北 113 摘 要 随着数 字 电路技 术 的 高速 发展 和 高性 能 F G 的普及 , PA 为解 决二 频 机械 抖 动偏 频激 光 陀
螺 中的 因机械 抖动 带 来的信 号噪 声提 供 了新 的选择 和方 法 。FR滤 波 器可 以满足 系统对 幅度 和相 位特 I 性 的严 格要 求 , 免 模 拟 滤 波 器 的温 漂 和 随机 噪 声 等 问题 , 避 而且 具 有精 确 的线性 相 位 和稳 定 的 系统。
免费 I oe 同 时结 合 Ma w rs 司 的 MA . P C r, t ok 公 h T
数字低通滤波器是对高速采样 的数据进行滤
波, 滤除掉 机抖 陀螺 输 出信 号 中随机 抖 动 和其 他 因素 造成 的高频 噪声 。 由于二 频机抖 陀螺 的抖动 频 率一 般 在 30 z~ 0 H 左 右 , 速 采 样 频 率 0H 40 z 高 选 为 1H , 以满 足 采 样定 理 要 求 。1H k z可 k z的定 时采样信 号可 以在 F G 内对 时钟使 能 得到 。数 PA 字低通滤 波器 采用 FR中的等波纹 逼近法 进行设 I 计, 设计 指标 : 采样 频率 为 1H , k z通带下 限截止频 率为 10 z阻带 上 限截 止频 率 为 30 z且 通 带 0H, 0H , 内波 纹 小 于 0 00d 阻 带 内 幅 度 衰 减 大 于 . 0 1B,
基于FPGA的万兆以太网TCPIP协议处理架构
稿件编号:201909019
Engine)即 TCP/IP 卸 载 引 擎 ,TOE 技 术 采 用 硬 件 处
理 TCP/IP 协议,原本在网络协议栈中进行的 TCP 分
段、TCP 连接管理、检验和计算和检验等操作转移到
FPGA 中进行,以极小的硬件电路作为代价,大幅度
网 子 系 统 IP 核 将 万 兆 网 络 数 据 流 转 为 64bit AXI4-
1 系统设计
协议信息交于控制平面,由控制平面发出对各种网
CPU 处理高速网路数据流的问题。
Stream 数据流,通过包头检测与验证模块提取各层
CPU 资源占用率仅为 10%,光口有效数据吞吐率可达 9.034 Gbps。
关键词:万兆以太网;FPGA;TCP/IP 协议栈;TOE
中图分类号:TN30.14022/j.issn1674-6236.2020.09.018
文章编号:1674-6236(2020)09-0081-07
IP 协议处理架构。通过在处理架构中划分控制平面和数据平面,使各个逻辑电路模块的协同操
作,并结合高速的 I/O 处理和存储器处理,利用硬件实现了完整的 TCP/IP 协议栈,有效的解决了服
务器处理万兆网络流量的瓶颈问题。将所提出的架构应用于实际万兆以太网 TCP/IP 卸载板卡中,
其协议支持 ARP、ICMP、UDP、TCP 等,并且时延最低可达 0.288 μs,文件传输速率可达 933 MB/s,
作者简介:吴 惑(1995—),男,浙江宁波人,硕士研究生。研究方向:通信与信息系统,高数数字系统设计,网
络安全,网络协议。
- 81 -
《电子设计工程》2020 年第 9 期
FPGA DDS IP核实现_单频 线性调频
FPGA DDS IP 核实现DDS (Direct Digital Synthesizer ),即直接数字频率合成器,本文主要介绍如何调用Xilinx 的DDS IP 核生成某一频率的Sin 和Cos 信号,以及LFM 信号。
1.相关参数的介绍及求解(1)DDS 输出频率输出频率out f 是系统时钟频率clk f 、相位累加器中相位数据位宽)(n B θ和相位增量θ∆的函数。
)(2n B clk out f f θθ∆=因此,要得到输出频率out f ,要求相位增量θ∆为clk Bout f f n )(2θθ=∆如果要采用时分复用的多个通道,则降低每个通道的有效时钟效率。
对于C 个通道,要求相位增量为clk Bout f Cf n )(2θθ=∆(2)频率分辨率频率分辨率f ∆是系统时钟频率clk f 和相位累加器数据位宽)(n B θ的函数。
)(2n B clk f f θ=∆对于时分复用的多通道,频率分辨率随通道数的增加而提高,对于C 个通道:Cf f n B clk )(2θ=∆(3)相位增量相位增量值是无符号的,当相位增量值与相位位宽匹配时,也可以将其看作有符号数。
假设相位增量和相位数据位宽均为N ,如果看成无符号数,范围由0到N 2表示的是(] 3600,的角度范围;如果看成有符号数,则范围变成)1(2--N 到)1(2-N ,相位表示的是[) 180180,-的角度范围。
根据正弦信号的周期性和对称性,两种表示范围内的信号采样是一致的。
相位增量定义了综合其的输出频率。
相位增量是系统时钟频率clk f 、输出频率out f 和相位数据位宽)(n B θ的函数。
clk B out f f n )(2θθ=∆2.线性调频信号线性调频信号的时间函数表达式可表示为2,2[)],2(exp[)(20T T t Kt t f j t s -∈+=ππ其瞬时频率为]2,2[,)(21)(0T T t Kt f t dt d t f -∈+==ϕπ其中,TB K =,B 为信号调频宽度,T 为信号脉宽。
FPGA内部常用IP核
培训四. FPGA内部常用IP核
FT工作室
• 一.IP核 • FPGA器件内部的 资源,比如:PLL,RAM,MUL 等,都可以通过调用IP核的方式来使用. • 注意:不同的FPGA包含的资源在硬件特性 上可能存在差别,因而生成的IP必须和器件 的硬件特性匹配.所以今后进公司工作时,在 使用IP的同时必须清楚FPGA能够支持的特 性和不能支L(锁相环)
• 锁相环产生一个和外部输入时钟保持同步的时钟信号, 这种同步包括频率同步和相位同步两部分,锁相环产生的时 钟信号可用于内部逻辑或者作为外部时钟输出. 功能: 1.分频或倍频 2.相移(对输入时钟移相) 3.输出时钟占空比可调 4.片内时钟输出 5.片外时钟输出
FT工作室
• 六.项目实践 • 要求:1.使用容量为16个字节的ROM存储器,预存数据 为:0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15; • 2.使用两个容量为8个字节的双口RAM. • 3.从ROM里读出数据,切换着存到两个RAM里,然后再切换 把RAM里的数据读出,显示在数码管上显示看是否正确.即.往第一个 RAM里写数据的同时,读第二个RAM的数据并显示;写满或者读完了,反 过来再往第二个RAM写数据,同时读第一个RAM的数据.反复循环. • 所需知识:1.IP核:ROM,RAM的使用 • 2.分频器 • 3.同步整形电路 • 4.边沿检测电路 • 5.状态机 • 实践目的:1.锻炼如何运用前边所学知识 • 2.提高时序设计能力
• • • • •
FT工作室
• 三. ROM
FT工作室
• 四.MUL • FPGA内部的硬件乘法器可以完成高速乘 法操作,使得FPGA具有较强的数字信号处理 能力,如滤波,快速傅里叶变换,离散余弦变换 等.
FPGA_IP核设计与应用综述
摘要随着电子技术的飞速发展,在PAL、GAL、EPLD等可编程器件的基础上进一步发展的FPGA(Field Programmable Gate Array)即现场可编程门阵列有着越来越多的广发应用。
它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。
FPGA在通信、数据处理、网络、仪器、工业控制、军事和航空航天等众多领域得到了广泛应用。
如何实现快速的时序收敛、降低功耗和成本、优化时钟管理并降低FPGA 与PCB并行设计的复杂性等问题,一直是采用FPGA的系统设计工程师需要考虑的关键问题。
如今,随着FPGA向更高密度、更大容量、更低功耗和集成更多IP的方向发展,超大规模集成电路(VLS I) 工艺的进一步迅猛发展,片上系统SoC (system on a chip ) 的规模越来越大,由此片上系统的设计变得越来越复杂。
由于采用IP 核复用技术可以简化多功能芯片的设计,开发IP 核成为当前片上系统设计的重要手段。
关键词: FPGA 集成电路IP核ABSTRACTWith the rapid development of electronic technology, FPGA(Field Programmable Gate Array) based on programmable logic device such as PAL、EPLD is widely used in many aspects of our world. It occurs as part of a special integrated circuit in the field of a half custom circuit, not only solving the shortage of custom circuit, but solving the limit of the original programmable device gate number. As is known to us , FPGA is widely used in the communication, data process, network, instrument, industrial control, military, and aerospace.How to realize the fast sequential convergence、low power consumption、cost、the optimization of clock management and reduce the complexity of the design of FPGA and PCB is always the key problem for engineers . Nowadays, with the development of higher density 、greater capacity、lower power consumption FPGA, Very large scale integrated circuit develops rapidly. The scale of system on a chip is larger and larger, making it more and more complex to design SoC. Using the IP core reuse technology can simplify the design of multifunction chip. Exploiting IP core b e c o m e s i m p o r t a n t a p p r o a c h w h i l e designing the system on chip.Key words:FPGA, integrated circuit, IP core目录一、前言 (1)二、主题 (3)2.1 FPGA发展趋势 (3)2.2 FPGA的一些基本类型: (3)2.3 IP核的现状和发展趋势 (5)2.3.1 IP的主要来源 (5)2.3.2 IP核的分类 (6)2 .4 IP开发 (7)2.4.1 IP的基本特征 (7)2.4.2 IP开发流程 (7)2.4.3 IP设计的四大阶段 (8)2.5 Verilog HDL语言特点及优势 (9)三、总结 (10)参考文献 (11)一、前言随着超大规模集成电路技术的不断发展,集成电路的集成度越来越高,,片上系统(SoC) 的规模越来越大, 因此片上系统的设计变得越来越复杂。
基于FPGA的工业以太网的实现
基于FPGA的工业以太网的实现作者:张孟新来源:《电脑知识与技术》2017年第07期摘要:目前,基于以太网的组网技术在工业市场的发展中处于举足轻重的位置。
因此可以基于IEEE 802.3标准的以太网协议进行以太网的数据传输方式传输标准的网络业务和实时数据。
而基于FPGA高性价比、可随时进行处理器配置的特点,本文通过FPGA的NIOSII核实现嵌入式TCP/IP协议以及以太网MAC协议,并提供标准GMII接口,通过外接PHY实现网络连接。
关键词:FPGANIOS П;TCP/IP协议;以太网MAC中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2017)07-0069-021概述在Altera FPGA处理器上进行的解决方案和硬件配置的同时,软件设计工具也能够提供工程师设计并集成所需要的一切功能。
NiosП软核处理器可以进行以太网堆栈驱动程序的编写与集成以及实现其他功能。
还可以在需要的情况下继续配置第二个处理器进行搭配工作,这样就可以支持更多开发应用层上面的软件。
这种方案可以提供了在单—硬件上面就能很容易满足需求的变化。
不必花费大量开发时间与开发费用来实现当以太网协议导入软件堆栈后,在处理器上运行加载,而是利用现成的编程与编译工具和软件进行堆栈的处理,几乎可以支持所有的以太网标准协议。
而且,仅在FPGA的硬件平台上改动设计时或者进行协议升级时,就不需要进行对每—新协议设计新的PCB板了。
一块PCB板能够集成并支持多种工业以太网的协议,从而不但减轻了企业在开发时期投入的研发经费了,而且降低了持久拥有成本。
NIOS II中实现的工业以太网协议能够在不同的协议标准的设计中与FPGA其他系列的器件之间进行移植,所以可以在下一代产品更新使用相同的IP。
2系统实现方案在本文提到的设计中,NiosП软核处理器不仅可以支持工业以太网控制器的网络协议的配置和管理,还能运行应用层上面的数据报协议(UDP)栈、提供高效精确的时序同步功能,并支持传输层上的双路10/100 PHY收发器的PHY管理和线路诊断功能。
FPGA中IP核的生成
软核(Soft Core)
| 软核只完成RTL级的行为设计,以HDL的方式提交 使用。该HDL描述在逻辑设计上做了一定优化,必 须经过仿真验证,使用者可以用它综合出正确的门 级网表。
z 按照设计层次的不同,IP核可以分为三种: 软核(Soft Core)、固核(Firm Core) 和硬核(Hard Core)。
IP设计技术概述
| IP技术是针对可复用的设计而言的,其本 质特征是功能模块的可复用性。
| IP通常满足以下基本特征:
z 通用性好 z 正确性有100%的保证 z 可移植性好。
z IP 可复用接口设计标准; z IP 可交付使用文档规范/ 标准; z IP 保护文件/ 标准。这三方面的规范/
标准不是孤立的,而是有机地联系在一 起,共同构成IP 标准体系。
思考题
| IP核概念和种类 | Xilinx中Core的调用方法 | IP核设计流程
z 具有可配置性,以满足不同设计的需要; z 标准接口; z 遵守设计规则,可确保IP 核时序收敛,功
能正确; z 交付的数据、资料完整,便于芯片集成。
IP设计与复用(续)
| IP设计与复用对基于FPGA的嵌入式系统 设计,具有举足轻重的地位。
| 随着FPGA逻辑门密度的不断提高和设计 工具软件的不断加强与优化,FPGA能够 实现越来越多的功能。
固核(Firm Core)
| 固核比软核有更大的设计深度,己完成 了门级综合、时序仿真并经过硬件验 证,以门级网表的形式提交使用。
| 只要用户提供相同的单元库时序参数, 一般就可以正确完成物理设计。
基于FPGA的TCP IP协议设计与实现
基于FPGA的TCP/IP协议设计与实现摘要:以FPGA(现场可编程逻辑门阵列)为控制中心,实现了网络接口芯片的时序控制,进而搭建一种百兆以太网的高速数据传输平台。
实践证明,此平台具有良好的接口扩展性,更便于同计算机进行连接。
此外,此平台拥有较高的数据吞吐率,能够达到接近100Mb/s 的以太网极限吞吐率。
关键词:FPGA;以太网;TCP/IP协议;DM90000、引言随着网络通信技术的飞速发展,越来越多的测试仪器需要将大量数据传送给终端计算机进行解析处理,抑或从PC机传送大量数据给相应设备。
现在常用的数据传输方式(usb、总线)中,虽说数据传输的速率较快(可达400Mb/s),但是传输距离过短成为其不可避免的缺点。
而百兆以太网中点对点间的数据传送距离可达100m,如果借助交换机或者路由器等设备可以实现更远距离传输。
本文以FPGA 为基础,在硬件上完成简化的TCP/IP协议栈,用来获取必须的协议处理机能,实现三态以太网嵌入式系统设计。
1、系统硬件设计该系统以Altera公司的EPIC12型FPGA芯片作为中心控制单元,另外还需两片作为缓存数据用的SRAM,以太网接口芯片采用DM9000。
系统具体硬件框图如图1所示。
DM9000是一款全集成、功能强大、性价比高的快速以太网MAC控制器。
该芯片拥有一个通用处理器接口、10/1()()PHY、EEPROM 和16kB的SRAM。
DM9000支持8位、16位以及32位的接口访问内部存储器,可以支持不同型号的处理器。
该芯片的PHY协议层接口完全可以使用10MBps下的3/4/5类非屏蔽双绞线和100MBps下的5类非屏蔽双绞线,很好地对应IEEE 802.3u规范。
DM9000实现以太网媒体介质访问层(MAC)和物理层(PHY)的功能,其中包含MAC数据帧的组装/拆分与发送接收、地址的识别、CRC编码/校验、MLT-3编码器、接收噪声抑制、输出脉冲形成、超时重传、链路完整性测试、信号极性检测与纠正等。
Ethernet-IP核的设计和FPGA实现
Ethernet IP核的设计和FPGA实现随着网络通信技术和微电子技术的发展,日常生活中所遇到的设备的信息化和智能化不断加强。
而且,结构单一功能简单的设备已经不能满足使用者的需求。
这就使得设备的发展趋势朝着结构复杂化,功能多样化,高度集成化,高度智能化方向发展。
如今随着我国经济社会的发展,soc产品和嵌入式技术得到了广泛的推广和普及。
特别是随着国家提出物联网发展规划以来,Internet和消费电子的智能化迅速发展。
由此产生了嵌入式设备的联网问题。
本文就是基于这样的背景,采用Verilog HDL程序设计语言对Ethernet IP核进行编程设计,并以FPGA实现。
整个IP核的系统设计采用了Top-Down的设计思想。
在每个设计层次之上都可以把系统分为很多个功能模块,该层次的电路的硬件行为可以由这些功能模块来描述,同时下一层次的模块又描述这一层次的模块的行为。
整个设计过程使用Altera的工具软件Quartus II 13.0对Ethernet IP核各模块进行编译和综合,分析各模块的结构以及相互之间的关系,并采用ModelSim 10.1软件对部分模块进行功能仿真和功能分析,验证Ethernet IP核的功能。
在如今科学技术日新月异飞速发展的时代里,发展最快的领域当属电子科学与技术。
而在这一领域飞速发展的背后是以微电子技术为代表的半导体技术的快速发展来作为支撑和推动的。
尤其是随着微电子技术及其制造工艺的发展,使得芯片的集成度更高,设备的功能更加多样化。
这也就推动了各种消费电子,工业设备,环境监测仪器等的快速发展,如智能手机,平板电脑,车载导航仪,网络仪表,污染检测器等等。
这些设备都需要联网,也就都提出了连入网络的要求。
相对于嵌入式系统的RS232,RS485等串口通信接口相比,Ethernet技术更加普及通用,还能够连入Internet,具有明显的优势。
Ethernet极大的方便了人们的生活和生产。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
冉冉红日的博客工业以太网协议栈FPGA IP核的实现随着物联网的广泛应用,在嵌入式系统中,越来越多的设备、传感器使用工业以太网作为通信媒介,因为工业以太网有着速度与安全可靠双重优势。
在较高端设备中,由于存在如DSP、ARM之类的处理器,指令代码运行处理速度很快,再有OS进行管理,此时将以太网网卡芯片驱动程序和协议栈加入进来,比较简单方便,易于设备管理和功能更改,这种方案已经应用的非常成熟了。
在某些低端设备中,只有单片机作为处理器,如果还是像上述那样实现以太网的话,单片机的负荷势必会大大增加,对于与单片机相连的设备的实时性控制就会大大降低。
因此,在要加入以太网通信的设备中选用单片机作为处理器不是一种好方案。
除了单片机、DSP、ARM外,还有一种处理器也被广泛应用,那就是FPGA。
现在FPGA的功能越来越多,片内资源也越来越多。
像新出的ALTERA FPGA内部就已有ARM硬核,在ALTERA的所有系列中都能实现软核CPU,此CPU的运行速度相比一般的单片机来说还要更快些。
但如果用它来管理TCP/IP协议栈,我觉得也就会像单片机一样,负载过重,就像让一个10岁的小孩挑50斤的担子一样。
此外,我个人觉得,软核CPU毕竟没有单片机稳定,在FPGA系统中,让软核CPU只做管理就好了,而像以太网协议栈的这样独立性强,又比较复杂的工作就由一个IP核来实现。
虽然这样的IP核实现起来不容易,但对于实时性要求高、数据传输速度要求高、稳定性要求高的设备,采用这种方案是非常好的。
因此,我想根据嵌入式设备的特点,简化TCP/IP协议栈的内容,实现嵌入式设备需要的功能,而不需要的就剔除掉。
比如,不需要那么复杂的ARP管理,只需将缓存上一次有效的IP-MAC地址;如果只用UDP协议,那么就只需实现简易ARP、IP和UDP就可以了。
这样不仅能节约硬件资源,同时简化了程序,简化了逻辑,提高了系统的稳定性,越简单的事物,稳定性越好。
1NET_STACK IP核概述IP核功能简介1)此IP核支持TCP/IP协议栈中的ARP(简化)、IP、UDP、TCP(简化)、ICMP-Ping协议,覆盖协议栈中的网络接口层、网际层和传输层,能应用于10/100/1000Mbps网络系统中。
2)此IP核中只处理ARP应答,不发送ARP请求;只有一个MAC-IP对缓冲区,即只保存上次接收到的来自主机的ARP请求中的MAC-IP对。
3)IP协议支持IP首部长度为20,协议类型为IPV4,不支持分片、选项等功能,发送IP包中的TTL值固定为64。
4)TCP协议支持TCP首部长度为20,不支持SACK、窗等选项功能,单次传输最大净负荷数据为1460字节。
5)此IP核支持完整的UDP协议,单次传输最大净负荷数据为1472字节。
6)在IP核配置时UDP和TCP不能同时被包含,ICMP可以和他们组合包含,只需在配置文件中通过宏定义来加载、卸除组件,操作非常简单。
7)IP核中用于缓冲接收和发送的数据的缓存区大小可以独立配置。
8)应用于IP核的网络参数可以动态在线调整。
9)此IP核能应用于交换机组成的局域网络中。
IP核接口此IP核在UDP模式和在TCP模式下的顶层接口分别如下图和图所示,前缀为nat_的信号为需要设置的网络参数;前缀为L3的信号为与应用层逻辑接口的信号,它遵循Avalon Stream接口协议,其中ready信号对应的readyLatency等于0,data信号的数据模式是大端模式,此接口在SignalTapII中捕获传输奇数字节的时序图如下图所示;前缀为L1的信号为与网络芯片控制器逻辑接口的信号,它也遵循Avalon Stream接口协议。
图 NET_STACK IP核UDP模式顶层接口图 NET_STACK IP核TCP模式顶层接口图接口时序图IP核使用NET_STACK IP核使用非常简单,在应用时可以采用三种方式将此IP核集成到您的系统中:1)采用Verilog源码方式,将此IP核看做一个模块集成到您的系统中;2)采用原理图方式,将此IP的顶层模块转化为原理图符号,进而集成到您的系统中;3)采用组件方式,在SOPC Builder或Qsys中将此IP核转化为一个组件,进而集成到您的系统中。
无论采用哪种方式,在系统工程编译之前,需要做如下工作:1)设置IP核的工作模式,UDP或TCP模式,加载/卸除Ping功能组件;2)设置IP核内接收缓冲区和发送缓冲区RAM的大小;3)设置网络参数:本地物理地址nat_mac_addr、本地IP地址nat_ip_addr和本地端口号nat_port。
2NET_STACK IP核性能评估资源占用此IP核占用的资源类型只有逻辑资源和片内RAM两种,下图和图分别为IP核在UDP模式和TCP模式下在测试工程中占有的资源情况,目标器件为ALTERA公司的CycloneII系列EP2C35F484C7,开发环境为QuartusII 。
图 NET_STACK IP核UDP模式占用资源情况图 NET_STACK IP核TCP模式占用资源情况Ping功能Ping功能属于ICMP协议,它是一个非常好用且有用的TCP/IP工具,是网络维护中最重要的一个命令,它主要的功能是检测网络的连通状况和分析网络速度。
此IP核能非常方便地加载和卸除Ping功能组件,只要在文档中通过宏ICMP_INCLUDED的定义或取消来控制即可。
在ALTERA公司器件EP2C35F484中编译,综合分析优化参数设置为“Balance”,如下图所示,只占用229个逻辑单元,具体消耗的资源如下图所示。
图 QuartusII中分析综合优化参数图 PING组件占用资源在单板中运行包含Ping功能的IP核,且单板的IP设置为,在上位机中运行Ping命令,界面如下图所示:图 DOS界面下Ping测试数据处理速度测试测试环境:采用闭环LOOPBACK测试系统,即将与应用层逻辑接口的接收信号和发送信号对应短接,器件为CycloneII系列EP2C35F484C7,编译器为QuartusII ,网卡控制器为DM9000CEP,测量的时间段为NET_STACK接收到DM9000A_CTRLER(此为网络芯片控制器IP核)发送区的最后一个数据至NET_STACK向DM9000A_CTRLER发送第一个数据这段时间,下表中所有时长反映的是协议栈分析数据包的响应速度,与所用网络是10M 或100M无关。
从上述表中可以看出,采用UDP/TCP协议接收不同的用户数据,IP核内处理接收数据的时间是相同的,发送也一样,IP核内处理发送的数据的时间也不随用户数据个数的多少而改变。
由上述可知,TCP/IP协议栈IP核与外部器件不存在直接联系,因此,它的系统时钟速率不受外部器件IO访问速率的影响,只与FPGA器件的速度等级以及IP核内部结构有关,根据公式1可以计算出本文中的TCP/IP协议栈IP核的数据处理速率。
S =(M×8)/(N×Tclk)(式1)结合上述表中数据,M 取值为1024,Tclk取值为10ns(系统时钟为100MHz),N 取最大值为20,计算得到S 约为40960Mbps,远大于目前千兆网的数据传输速率。
因此,此TCP/IP协议栈IP核不仅可以适用于目前100/1000M网络系统,而且还可以适用于未来的10G网络系统。
100M网络净负荷测速测试环境:器件为CycloneII系列EP2C35F484C7,系统时钟为100MHz,网卡控制器为DM9000CEP,上位机通过发送命令控制含此IP核的单板,让单板连续发送多个数据包,同时记录发送数据包的时间,以此来测量网络的上行净负荷速率,测试结果如下表所示。
网络拓扑结构此IP核能应用于交换机组成的局域网络,测试实物图如下图所示。
图局域网络通信测试最高时钟频率在ALTERA公司的CycloneII系列EP2C35F484C7器件,QuartusII 开发环境中的TimeQuest Timing Analyzer组件下测试得到的IP核系统时钟clk最高为。
注:如果需要更高的时钟频率,可以在牺牲资源面积的前提下将系统时钟clk进一步提高。
3参数更改此IP核在应用过程中有如下参数需要修改:1)工作模式,默认值:UDP模式;2)接收和发送缓冲区RAM的大小,默认值:接收和发送RAM大小都为512×2字节;3)网络参数,默认值:MAC=0-06,IP=,PORT=1024。
更改工作模式IP核中包含三个组件:ICMP-Ping组件、UDP组件、TCP组件,在实际应用中需要使用哪些功能,则在文件中包含这个组件的宏,其中UDP 组件和TCP组件不能同时使用。
例如:要使用Ping功能和UDP通信,则在文件将代码修改为:at_ip_addr (32'hC0A8001F ),.nat_port (16'h1A90 ),.nat_mac_addr (48'h01606E11020F ),在上一篇博文中,介绍了如何在FPGA中实现UDP、ARP、IP子协议及其使用,经过调试、应用后,发现有些地方是可以改进的,比如在接收通道上,对于IP、UDP子协议的分析,首部的分析可以在网络接口层中就解析出来,然后再在IP、UDP模块中检测判断,这样不仅可以加快分析处理的速度,而且可以简化结构、逻辑编写。
在实际应用中,除了UDP被广泛使用外,TCP也常常被应用在嵌入式系统中。
开始一想到TCP的管理,就感觉很复杂,如果在FPGA中实现,肯定不容易,也就没有再细想下去。
后来静下心来,仔细阅读了TCP协议,对TCP状态跳转图进行分析,发现其实不是那么复杂,可以简化,去掉一些复杂功能,只保留最基本的结构,就可以用于一些网络结构简单的嵌入式系统中。
TCP协议之所以复杂,是因为它考虑的很全面,像分片、滑动窗、流量监控等等,它覆盖面很宽,可以满足很多情况的应用,但其最基本的也就是管理连接、发送应答、出错超时重发,重点是看重其是面向连接的,应用层不需要对数据传输进行维护,同时它分为客户端和服务器两种情况。
而对于一些网络结构简单的系统,比如PC机与单板是直连,或中间只有一个路由器,网络上的数据很“规整”,没有无用的数据传输,单板侧作为一个服务器端,接收PC机客户端的访问,然后应答相应的数据,以实现PC机对单板的监控和数据传输。
经过分析,我将TCP协议简化为:首部长度固定,只支持FIN、SYN、ACK功能选项,只作为服务器,一次只负责一个数据包的管理(即缓冲区中只保存一个数据包,只有待此包发送正确后才能接收新的数据包)。
然后,按照上述第一段中提到的结构,采用Verilog HDL语言,在FPGA 中实现了作为服务器功能的TCP传输功能。