基于Xilinx FPGA的千兆以太网控制器的开发(3)
 
- UID
- 1029342
- 性别
- 男
|

基于Xilinx FPGA的千兆以太网控制器的开发(3)
1)发送引擎 发送引擎通过客户发送端口接收以太网的数据帧,并在帧头添加帧引导区域,甚至在帧长小于最短要求时,添加一定的冗余比特。同时,该模块还会在连续的数据帧之间插入以太网协议所规定的最小延时,将用户数据转化成标准的GMII数据帧,并送至GMII模块。在应用时,面向用户的操作就是将用户数据读入GEMAC核内部
该模块接口信号的简要信息如表10-10所列。
表10-10 发送引擎接口信号列表 
发送引擎的时序如图10-38所示。当客户端有数据发送时,将tx_data_valid拉高,同时将数据的第一个字节置于tx_data端口;当GEMAC将第一字节数据读入后,会将tx_ack信号拉高,用户端逻辑检测到tx_ack为高时,要在下一个时钟上升沿将其余的数据发送到数据端口上,当数据发送完毕后,将x_data_valid拉低。

图10-38 发送引擎的时序图 2)接收引擎
接收引擎接收来自GMII模块的数据,去掉帧头的引导区域,包括为了增加帧长的冗余比特。此外,该模块还能根据数据帧中的检验序列区域、接收到的GMII错误码字以及帧长信息完成错误检测,主要接口信号的简要说明如表10-11所列。
表10-11 接收引擎接口信号列表 
接收引擎的时序如图10-39所示。客户端逻辑必须在任何时候都准备好接收数据,因为在GEMAC核中没有接收缓存,有时延就会丢失数据,因此用户可自己添加缓冲逻辑。rx_data_valid为高时立即开始接收连续数据,在检测到rx_data_valid变低后,判断rx_good_frame信号的电平,如果为高则继续处理该帧数据,否则直接丢弃。

图10-39 接收引擎的时序图 3)流控制
流控制模块是根据IEEE 802.3-2002标准的31项条款设计的,在发送时附带暂停帧,接收时也需要对其处理。在GEMAC核中,它是自动配置的,同时,也提供了用户自定义的配置端口,如表10-12所列。
表10-12 流控制接口信号 
4)可选的管理接口
管理接口是一个独立的可选端口,其地址、数据和控制信号相对于其他模块是独立的,提供了和CoreConnec总线的交互能力,可挂在MicroBlaze软核或PowerPC硬核处理器,可用于配置GEMAC核以及通过MDIO接口直接读写外部PHY芯片的内部配置寄存器。该模块包括用户管理的接口和MDIO接口两部分,后者直接与PHY芯片相连,全部接口信号的简要说明如10-13所列。
表10-13 管理模块的接口信号 
5)复位操作
管理模块具备自己独立的软件复位信号,但当管理接口模块被旁路掉,其相应的配置信号被作为configuration_vector[64:0]输入信号使用。此外,GEMAC核提供了硬件复位信号,如表10-14所列。
表10-14 复位信号列表 
6)GMII模块
GMII模块的接收信号一般都是直接连到PHY芯片上,负责和PHY芯片的数据交互,其信号和PHY芯片的接口是一一对应的,如表10-15所列。
表10-15 GMII模块接口信号列表 
配置完成后,可在工程管理区选中GEMAC核,在过程管理区,点击“View HDL Instantiation Template”命令,查看其例化代码,它在代码中的例化方法和一般IP Core的方法是一样的。
10.5 本章小结
高速串行传输技术是FPGA未来的三大应用领域之一,本章主要介绍了Xilinx公司的Rocket I/O解决方案。首先给出高速传输的背景,指出串行方式是吉比特以及更高速率链路的必然选择。其次,给出了吉比特串行传输的通用架构,为后文做好铺垫。接着重点介绍了Xilinx公司Rocket I/O的系统组成、相关协议、时钟设计方案、开发要素以及Rocket I/O的使用方法。最后说明了千兆以太网MAC控制器IP Core的使用方法。读者需要注意的是Rocket I/O是Xilinx高端FPGA中的内嵌组件,和DCM、硬核乘法器、块RAM等的使用方法是一样的,可通过IP Core调用。高速传输是一种新技术,开发难度较大,本章只是介绍了其中的主要核心部分和基本原理,还需要读者阅读大量的文献和实际操作才能熟练开发相关系统。
3_20110717194300199SM
3_2011071719434318kxc |
|
|
|
|
|