EthernetIP核的设计和FPGA实现Word文档格式.docx

上传人:b****3 文档编号:6757469 上传时间:2023-05-07 格式:DOCX 页数:29 大小:608.85KB
下载 相关 举报
EthernetIP核的设计和FPGA实现Word文档格式.docx_第1页
第1页 / 共29页
EthernetIP核的设计和FPGA实现Word文档格式.docx_第2页
第2页 / 共29页
EthernetIP核的设计和FPGA实现Word文档格式.docx_第3页
第3页 / 共29页
EthernetIP核的设计和FPGA实现Word文档格式.docx_第4页
第4页 / 共29页
EthernetIP核的设计和FPGA实现Word文档格式.docx_第5页
第5页 / 共29页
EthernetIP核的设计和FPGA实现Word文档格式.docx_第6页
第6页 / 共29页
EthernetIP核的设计和FPGA实现Word文档格式.docx_第7页
第7页 / 共29页
EthernetIP核的设计和FPGA实现Word文档格式.docx_第8页
第8页 / 共29页
EthernetIP核的设计和FPGA实现Word文档格式.docx_第9页
第9页 / 共29页
EthernetIP核的设计和FPGA实现Word文档格式.docx_第10页
第10页 / 共29页
EthernetIP核的设计和FPGA实现Word文档格式.docx_第11页
第11页 / 共29页
EthernetIP核的设计和FPGA实现Word文档格式.docx_第12页
第12页 / 共29页
EthernetIP核的设计和FPGA实现Word文档格式.docx_第13页
第13页 / 共29页
EthernetIP核的设计和FPGA实现Word文档格式.docx_第14页
第14页 / 共29页
EthernetIP核的设计和FPGA实现Word文档格式.docx_第15页
第15页 / 共29页
EthernetIP核的设计和FPGA实现Word文档格式.docx_第16页
第16页 / 共29页
EthernetIP核的设计和FPGA实现Word文档格式.docx_第17页
第17页 / 共29页
EthernetIP核的设计和FPGA实现Word文档格式.docx_第18页
第18页 / 共29页
EthernetIP核的设计和FPGA实现Word文档格式.docx_第19页
第19页 / 共29页
EthernetIP核的设计和FPGA实现Word文档格式.docx_第20页
第20页 / 共29页
亲,该文档总共29页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

EthernetIP核的设计和FPGA实现Word文档格式.docx

《EthernetIP核的设计和FPGA实现Word文档格式.docx》由会员分享,可在线阅读,更多相关《EthernetIP核的设计和FPGA实现Word文档格式.docx(29页珍藏版)》请在冰点文库上搜索。

EthernetIP核的设计和FPGA实现Word文档格式.docx

第一章Ethernet的介绍及其IP核简介

1.1Ethernet的介绍

1以太网(Ethernet)指的是由Xerox公司创建并由Xerox、Intel和DEC公司联合开发的基带局域网规范,是当今现有局域网采用中最通用的通信协议标准。

以太网络采用CSMA/CD(载波监听多路访问及冲突检测)技术,并且可以以10M/S的速率运行在多种类型的电缆上。

以太网包括标准的以太网(10Mbit/s)、快速以太网(100Mbit/s)和10G(10Gbit/s)以太网。

它们都符合IEEE802.3的相关协议要求。

以太网通信通常采用双绞线或者光纤作为传输介质。

光纤因为其抗干扰性好,主要用于主干网络的远距离传输。

而双绞线则主要用于短距离的布线,或者用来组建内部局域网。

1.1.1IEEE802.3系列标准

2IEEE802.3标准描述的是在多种媒体上从1MB/S-10MB/S的局域网解决方案。

IEEE802.3标准描述了物理层(PHY层)和数据链路层的MAC子层的实现方法,以及在多种物理媒体上以多种速率采用CSMA/CD的方式访问的方法。

当然,对于快速以太网该标准说明的实现方法有所扩展。

IEEE802.3标准的帧结构如下图1.1所示。

它的每一帧包含有8个域:

前导码(preamble)包含7个字节(octet),每一帧以一7个字节的前导字段开头;

帧起始定界符(SFD)包含1个字节,表示帧本身的开始;

目的地址(DA)包含6个字节;

源地址(SA)包含6个字节;

类型域包含2个字节;

数据域和填充段共包含46-1500字节;

帧校验序列(FCS)包含4个字节;

扩展段包含在帧校验序列部分之中。

图1.1IEEE802.3标准的帧结构

1.1.2CSMA/CD访问方式

3CSMA/CD(CarrierSenseMultipleAccesswithCollisionDetection)即带冲突检测的载波监听多路访问技术。

在传统的共享以太网中,所有的节点共享传输介质。

如何保证传输介质有序、高效地为许多节点提供传输服务而避免因发生冲突导致介质传输效率降低,就成了以太网的介质访问控制协议所要解决的问题。

4CSMA/CD的工作原理是:

发送数据前先侦听信道是否空闲,如果信道空闲,则立即发送数据。

如果信道忙碌,则等待一段时间至信道中的信息传输结束后再发送数据;

如果在上一段信息发送结束后,同时有两个或两个以上的节点都提出发送请求,则判定为冲突。

如果侦听到冲突,则立即停止发送数据,等待一段随机的时间之后,再重新尝试数据发送。

5其原理简单地总结为:

先听后发,边发边听,冲突停发,随机延迟后重发。

CSMA/CD采用的是IEEE802.3标准。

6采用CSMA/CD的主要目的是:

CSMA/CD访问方式提供了寻址和媒体存取的控制方式,使得不同的设备或网络节点可以在多点的网络上通信而不发生冲突。

7CSMA/CD控制方式的优点是:

8原理比较简单,技术上容易实现,而且在网络中的各个工作站地位平等,不需要集中控制,更无优先级控制。

但是当在网络负载增大的时候,发送时间会增长,发送效率也会急剧下降。

1.2EthernetIP核的简介

1.2.1EthernetIP核的结构

9

EthernetIP核实际上就是一个10/100MAC(Mediaaccesscontroller),即媒体存取控制器。

它在一边连接着以太网PHY(物理层的接收器)芯片,在另一边连接着WISHBONE总线。

EthernetIP核被设计为运行根据IEEE802.3和IEEE802.3u标准定义的10Mbps和100Mbps以太网标准,能够分别工作在10Mbps和100Mbps的速度,分别使用于普通以太网和快速以太网。

EthernetIP核包含了以下七大部分:

WISHBONE总线接口模块,发送模块,接收模块,控制模块,状态机模块,寄存器模块,媒体独立接口管理模块。

EthernetIP核的体系结构图如下图1.2所示。

10WISHBONE总线接口模块:

WISHBONE总线接口模块包含了主动机接口和从动机接口,连接着核和WISHBONE总线。

主动机接口用于存储接收到的数据帧以及加载需要从内存传送到以太网核心的数据。

11发送模块:

发送模块用于执行所有与传输相关的操作,如:

前导码生成,填充,循环冗余码校验,等等。

12接收模块:

接收模块用于执行所有与接收相关的操作,如:

前导码的去除,循环冗余码校验,等等。

13控制模块:

控制模块用于执行所有相关的操作流程控制以太网工作于全双工模式。

14状态机模块:

状态机模块用于记录数据接收和发送过程中系统所处的不同的状态,以及编写了相关的缓冲区描述符或用于其他的一些模块。

15寄存器模块:

寄存器模块包含了用于以太网MAC操作的所有寄存器。

16媒体独立接口管理模块:

媒体独立接口管理模块提供了一种媒体独立接口到外部的以太网PHY芯片。

WISHBONE从动接口

WISHBONE

主动接口

Rx状态

Rx信号(数据和控制信号)

Tx信号(数据和控制信号)

寄存器的配置信号

Tx状态

MIIM信号Tx信号

图1.2EthernetIP核的体系结构图

1.2.2EthernetIP核的特征

17EthernetIP核的特征如下所列:

18.执行MAC层功能IEEE802.3以太网;

19.自动的32位CRC生成和检查;

20.CRC延迟生成;

21.前导码的产生和清除;

22.自动填充短帧传输;

23.检测数据包太长或者太短(长度的限制);

24.可以传输比标准传输数据包更大的数据包;

25.全双工支持;

26.支持10和100Mbps的传输速率;

27.过度的延迟和过小的帧间间隙都会使数据帧组装失败;

28.流量控制和全双工模式下的控制框架自动生成(IEEE802.3X);

29.在半双工模式下的冲突检测和冲突之后的自动重发(CSMA/CD协议);

30.TX/RX数据包状态的完善;

31.IEEE802.3媒体独立接口(MII);

32.内部内存包含有128个TX/RX缓冲描述符;

33.各种事件中断生成。

第二章FPGA概述

2.1FPGA简介

34FPGA(Field-ProgrammableGateArray)是现场可编程门阵列的缩写,是近年来快速发展的大规模可编程逻辑器件。

随着微电子技术及其制造工艺的发展,可编程逻辑器件的逻辑门密度越来越高,具有百万逻辑门的FPGA已经出现。

FPGA是在PAL、GAL、CPLD等可编程器件的基础上进一步发展而来的产物。

它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。

由于FPGA具有高密度,速度快,功耗小,使用方便灵活等特点,越来越来受到开发者的重视,尤其是在嵌入式系统开发中得到了广泛的应用。

35FPGA与ASIC(专用集成电路)相比而言,一般来说比ASIC的运行速度要慢,实现同样的功能也比ASIC电路所需要的面积要大一些,而且在同等情况下的功耗更高。

但是FPGA可以快速成品,可以被设计者通过修改程序来改正其中的错误,而且FPGA具有更便宜的造价。

芯片设计者的开发初期通常是在普通的FPGA上完成的,在验证成功之后才将设计转移到一个类似于ASIC的专用FPGA芯片上。

2.2FPGA的工作原理

36FPGA采用了逻辑单元阵列LCA(LogicCellArray)这样一个概念,内部包括可配置逻辑模块CLB(ConfigurableLogicBlock)、输入输出模块IOB(InputOutputBlock)和内部连线(Interconnect)三个部分。

现场可编程门阵列(FPGA)是可编程器件,与传统逻辑电路和门阵列(如PAL,GAL及CPLD器件)相比,FPGA具有不同的结构。

FPGA利用小型查找表(16×

1RAM)来实现组合逻辑,每个查找表连接到一个D触发器的输入端,触发器再来驱动其他逻辑电路或驱动I/O,由此构成了既可实现组合逻辑功能又可实现时序逻辑功能的基本逻辑单元模块,这些模块间利用金属连线互相连接或连接到I/O模块。

FPGA的逻辑是通过向内部静态存储单元加载编程数据来实现的,存储在存储器单元中的值决定了逻辑单元的逻辑功能以及各模块之间或模块与I/O间的联接方式,并最终决定了FPGA所能实现的功能,FPGA允许无限次的编程。

2.3FPGA的特点及优势

使用FPGA进行数字电路的设计时,能够使设计流程简化,而且还能够减小产品的体积,降低设计成本,提高系统设计的稳定性。

这也就使设计开发者可以避开传统的集成电路设计流程,降低开发的投资风险。

使用FPGA进行电路设计开发的主要特点和优势如下:

.设计灵活,不受标准系列器件在逻辑功能上的限制,对逻辑的更改可以设计和使用的过程中进行,且只需通过对所用的FPGA重新编程即可实现。

.集成度高,提高功能密度,减少其他集成芯片的使用和印制电路板的制作。

.提高设计系统的稳定性,运行的速度快。

.缩短设计开发的周期,降低产品的成本。

.使用FPGA进行开发还能够提高产品的保密性。

.FPGA采用高速CMOS工艺,功耗低,能够与TTL,CMOS电平兼容,可以很好的移植。

2.4FPGA的开发流程

FPGA的开发流程针对Altrea公司的FPGA来说就是利用QuartusII软件和Modelsim工具软件对FPGA芯片进行开发。

对于任何一个FPGA的开发项目来说,都要提前从设计需求开始分析。

只有在把功能定义弄清楚了,才能更好的进行下一步的可行性分析。

在分析之后,设计师会把一个大的工程划分成很多的功能模块。

功能块的划分最基本的原则还是以功能为主,有时是按着数据流来划分的。

在模块划分完成之后就要进行底层的设计输入工作。

设计输入可以是原理图输入,代码输入或者搭建SOPC平台。

在代码设计完成之后,最好先使用开发工具进行语法检查。

语法没问题了,进行综合,再然后进行功能仿真。

功能仿真又称为前仿,这个仿真是不涉及任何时序上的延时,只是单纯地验证代码所实现的功能是否符合要求。

在功能仿真之后一般进行一次全编译,然后使用开发软件提供的时序编辑器进行时序约束。

在添加完时序约束之后,开发者就要进行实现,

然后查看时序报告。

如果有足够的时序余量,那么就可以继续往后进行布局布线。

在进行完实现之后就可以下载到配置的开发板上进行板级的调试和仿真验证。

一个FPGA项目的开发流程图如下图2.1所示。

图2.1FPGA的开发流程

第三章EthernetIP核的程序设计和实现

下面将注重介绍所设计的EthernetIP核的顶层模块以及其他部分子模块,包含:

媒体独立接口管理模块,接收模块,发送模块,控制模块,寄存器模块。

EthernetIP核的顶层模块eth_top.v包含一下子模块:

eth_miil.v,eth_rxethmac.v,eth_txethmac.v,eth_maccontrol.v,eth_registers.v,eth_wishbone.v,eth_macstatus.v以及一些用于同步,复用和输出寄存的逻辑。

顶层模块主要负责初始化,控制和协调各个调用子模块程序的工作。

顶层模块程序和其他子模块程序全部采用VerilogHDL书写,并且在QuartusII中进行编译和仿真。

3.1顶层模块

顶层模块eth_top.v程序内容简要介绍:

moduleeth_top();

括号里包含的是整个EthernetIP的输入输出端口列表;

分别涉及有eth_wishbone.v,eth_miil.v,eth_txethmac.v,eth_rxethmac.v等子模块。

eth_miimmiim1();

这是主模块调用的媒体独立接口子模块程序。

eth_registersethreg1();

这是主模块调用的寄存器子模块程序。

eth_maccontrolmaccontrol1();

这是主模块调用的MAC控制器子模块。

eth_txethmactxethmac1();

这是主模块调用的发送控制器的子模块。

eth_rxethmacrxethmac1();

这是主模块调用的接收控制器的子模块。

eth_macstatusmacstatus1();

这是主模块调用的状态子模块。

每一个调用的子模块都有各自的操作参数,其中还有始终控制模块,为各自模块的同步工作提供时钟依据。

3.2媒体独立接口模块

媒体独立接口子模块(eth_miil.v):

媒体独立接口模块(MII模块)提供了EthernetIP核与外部以太网芯片的接口。

它主要用来配置外部物理层的寄存器状态以及读取当前寄存器的状态。

MII模块是媒体独立接口的顶层模块,包含有一下几个子模块:

时钟产生模块(eth_clockgen.v),移位寄存器模块(eth_shiftreg.v),和输入输出控制模块(eth_outputcontrol.v)以及其他的逻辑。

其他的逻辑控制模块用于产生以下一些信号:

1).读(WriteDataOp),写(ReadStatusOp)和扫描(ScanStatusOp)操作的同步请求;

2).更新MIIRX_DATA寄存器(UpdataMIIRX_DATAReg)的信号;

3).计数器(BitCounter)是MII接口主要的计数器,很多操作都依赖于它。

4).数据被移出时用的字节选择信号(ByteSelect[3:

0]);

5).用于锁存输入数据的信号(LatchByte[1:

0])。

当需要从PHY芯片中读取或者写入数据时,需要执行几个操作:

1).MIIMODER寄存器需要被设置:

.时钟分频器需要被设置来提供频率合适的时钟信号Mdc(读取物理

层的信息来获得Mdc的频率值。

.前导码的产生会被禁用(如果PHY支持无前导码的传输),默认情况32位的前导码会被发送。

.MII模块可能会在使用之前被重置。

2).物理层地址(可能同时几个PHY芯片连接到MII接口上)和选定的PHY芯片的寄存器地址需要在MIIADDRESS寄存器里被设置。

3).如果有需要写数据到选定的寄存器,需要将数据写入到MIITX_DATA寄存。

4).写入合适的值到MIICOMMAND寄存器中,开始请求操作。

5).如果“读状态”或“扫描状态”操作被请求时,那么从PHY接收到的值就能从MIIRX_DATA寄存器中被读出。

MIISTATUS寄存器反映了MII模块的状态。

只有当从PHY的状态寄存器读到的返回状态是OK的,linkFail的状态才会被清除。

3.3输入输出控制模块

输入输出控制模块(eth_outputcontrol.v)执行两个主要任务:

1)产生MII连续输出信号Mdo;

2)产生Mdo的使能信号MdoEn;

由于媒体独立接口模块与外部模拟PHY芯片进行数据通信时的数据通道只有一条,所以输入输出控制模块就必须将输入,输出信号同输入,输出使能信号结合起来产生统一的信号,以此来配合硬件设备。

3.4时钟产生模块

时钟产生模块(eth_clockgen.v)主要负责产生媒体独立接口所需的时钟信号和使能信号,而且这些信号还要符合PHY芯片的要求。

3.5移位寄存器模块

移位寄存器模块(eth_shiftreg.v)主要负责将从主机向外部PHY芯片发送的数据(Mdo)串行化,同时将从外部PHY芯片接收到的数据(Mdi)并行化,并且将数据暂时存储在寄存器Prsd中。

最后,再把数据值存储到寄存器MIIRX_DATA寄存器中。

3.6接收模块

接收模块(eth_rxethmac.v)主要负责数据帧的接收。

数据接收模块在接收过程中要识别数据帧的前缀码,帧起始标致,然后再检验目的地址以判断是否要接收数据帧。

数据帧的接收流程包含地址验证,数据计数,数据检验,数据接收。

以太网的PHY芯片从物理层接收串行的数据帧信号,然后去掉数据报头,把数据和"数据有效"标志(MRxDV)一起装配成4位数据包,并且发送到接收模块(MRxD[3:

0])。

接收模块然后把4位数据装配成完整的8位数据,然后连带其他一些数据开始和结束的标志一起发送到WISHBONE总线模块。

接收模块同时也进行移除前导码和CRC检查等操作。

接收模块的结构与发送模块类似。

3.6.1接收模块的子模块

接收模块包含一下四个子模块:

1)eth_rxcrc,循环冗余码校验模块,根据接收到的数据生成相应地32位的CRC校验码,并且与接收到的CRC校验码进行对比,进而判断数据的接收是否完整,或者数据在传输过程中是否已经损坏。

2)eth_rxaddrcheck,地址识别模块,检查数据包的接收目的地址和硬件的地址是不是一致,如果不一致就修改接收计数器并丢弃刚刚接收到数据。

如果地址一致,则接着完成接下来的工作。

3)eth_rxcounters,包括接收数据包所需的各种计数器;

4)eth_rxstatem,接收模块的状态机,协调数据的计数,地址验证,CRC检查以及数据包的接收等工作的有序进行和完成。

除了以上的这四大子模块之外,接收模块还有其他的一些逻辑控制模块。

这些逻辑控制模块的作用是:

.产生在地址识别系统中要用到的CrcHash值和CrcHashGood标致。

.锁存从PHY芯片接收到的数据(RxData)。

.产生Broadcast和Multicast标致(当接收的数据包含有Broadcast和Multicast的目的地址时)。

.生成RxValid,RxStartFrm,RxEndFrm信号。

这些信号标致着有效的数据。

3.6.2EthernetIP核接收模块的状态机

EthernetIP核接收模块的状态机包含六个不同的状态:

.Idle状态

.Drop状态

.Preamble状态

.SFD(标准帧定界符)状态

.Data0状态

.Data1状态

接收状态机时接收模块的核心模块,接收状态机的各个状态之间的转换如下图3.1所示。

各个状态之间的转换关系如下:

图3.1接收模块的状态转换

1).Drop状态(丢弃状态):

在复位之后状态机就进入Drop状态。

如果在此之后MRxDv被设置为0,那么状态机就会进入Idle状态。

只要在PHY的数据线(MRxD)上有有效的值,那么PHY就会通过把MRxDv设置为1来通知接收器开始工作。

假设状态机处于在Idle状态,SFD状态或者Data0状态时,如果此时数据的接收有错误发生,那么接收模块便立即放弃本帧的接收处理工作,状态机转而进入Drop状态,直到错误的帧发送结束之后状态机再转而进入Idle状态;

2).Idle状态(空闲状态):

当数据链路上没有数据帧发送过来时,状态机便处于Idle状态。

当接收数据帧的内容是前导码时,状态机便进入SFD状态。

EthernetIP核亦可以接收没有标准7位前导码而只有SFD的数据包,所以假如数据链路上有数据帧发送过来,且数据帧的内容不为前导码时,状态机便进入Preamble状态(前导码状态)。

并且停留在此状态,直到合适的nibble被接收到之后状态机再进入SFD状态。

3).SFD状态:

状态机进入此状态后识别接收到的数据帧的帧起始标致符。

如果出现帧起始符则完成同步处理,状态机进入Data0状态。

否则就要等待发送完毕之后再回到Idle状态。

如果等待时间超过最小帧间隔时间(IFG,interframegap)但是仍未出现帧起始符,就放弃本次接收工作,状态机就进入Drop状态;

4).Data0状态(数据0状态):

如果IFGCounterEq24信号被设置成为有效的值时,状态机进入Data0状态并且开始接收一个字节的低四位,然后再进入Data1状态。

之后状态机再回到Data0状态接收下一个字节的低四位,然后再进入Data1状态,如此循环往复。

直到数据包的结束信号被检查到,数据发送完毕,状态机才进入Idle状态;

一切的接收工作又重头开始。

如果接收到的数据帧长度超过最大的帧长,那么状态机便进入Drop状态;

5).Data1状态(数据1状态):

状态机进入此状态后便开始接收一个字节的高四位数据,接收完之后再进入Data0状态;

如此循环往复。

如果此时数据帧发送完成,状态机便进入Idle状态。

如果在接收的过程中IFGCounterEq24信号被清除了,那么状态机便进入Drop状态。

直到IFGCounterEq24信号再次被设置,那么状态机进入Idle状态,一切接收工作都又重头开始。

3.7发送模块

发送模块(eth_txethmac.v)

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2