基于PM3388和FPGA的网络接口设计
理子模块是千兆线路接口卡设计的核心,选用PMC-Sierra公司的PM3388芯片为MAC层处理芯片, PM3388芯片是目前市场上唯一支持十接口的千兆以太网控制器,其功能特性如下:
十路千兆以太网控制器(同时完成PHY层和MAC层功能);
通过内部十个SERDES接口直接与光电转换模块相连。每个SERDES接口兼容IEEE 802.3-2000 PMA(PhysICal Medium Attachment)物理层规范;
从网络上接收8B/10B格式码流,完成数据及时钟恢复;
每个接口提供多播地址过滤及8个单播地址过滤;
提供标准的IEEE 802.3 以太网帧格式完整性检验,并具有过滤功能;
内部提供224K字节接收FIFO和64K发送FIFO,可在十路接口上灵活配置;
提供SATURN标准的PL4(POS-PHY Level 4)标准16位LVDS总线接口,速率可达700Mbps;
提供标准IEEE 1149.1 JTAG测试端口;
提供微处理器接口;
提供线路侧环回和系统侧环回的系统级调试功能;
提供丰富的配置及统计寄存器。
PM3388工作流程包括接收处理和发送处理两部分。1.接收通路:PM3388从光电转换子模块接收串行差分电信号,经过串/并转换、8B/10B解码后,进行以太网帧完整性检验和地址过滤,
如果该以太网帧无误,则写入为该接口分配的PL4模块中的FIFO,否则丢弃。为了充分利用带宽,PL4接口把MAC帧划分为数据片(以64字节或MAC帧尾之前数据为一片)调度输出,并采用带内控制字的形式指示帧头、数据、帧尾、线路接口号、填充字节数、空闲控制字等信息。接收通道还通过两位的信号指示接收设备的缓存状态(空、满、半满)。2.发送通路:发送通道的PL4接口与接收通道的工作模式相同,数据从PL4接口进入PM3388后,经过8B/10B编码,并/串变换等处理步骤,以串行差分信号的形式输出到光电转换子模块。
为了保证PL4接口达到十路1Gbps的速率,PM3388的参考时钟引脚接160MHz时钟晶振,输入输出接口的采样时钟通过将该时钟倍频获得320MHz时钟,输入输出数据分别在时钟双沿采样,可以获得640Mbps的数据数率,总带宽达10.24Gbps,可以满足0丢包率性能对带宽的要求。
此外,输入处理FPGA是千兆以太网线路接口卡模块设计的重点之一,主要的功能是将各种标准的MAC帧数据格式转换为网络层统一的数据格式,为网络层处理屏蔽掉底层物理接口。
输入处理FPGA采用Altera公司Stratix GX系列的EP1SGX25F芯片,该芯片具有25660个逻辑单元,16个高速收发器通道,39个源同步IO和总数为1944576比特的RAM,可以满足实现输出处理功能对资源的要求。
输入处理子模块主要完成输入处理和配置统计两大功能:第一、接收MAC层处理子模块发送过来的数据片,完成MAC帧重组和十路数据合路处理,再根据MAC帧封装的三层协议类型实现数据包的分类处理,按照不同的处理要求把数据包分别送B接口、F接口或者同时送两个接口。送往B口的数据包经过MAC帧格式拆封和B口格式封装后输出到转发模块,送往F口的数据经过数据宽度和时钟频率的变换后输出到协议FIFO。第二、线路接口卡上电初始化时,输入FPGA通过板级处理机获取本线路接口卡所在的机架号和端口号等信息,并把这些信息插入到送往转发处理模块的数据包的B口格式字中。输入处理FPGA还要实现大量的统计功能,统计项包括每个接口接收到的总帧数、错误帧数、丢弃帧数、IPv4单组播包数、IPv6单组播包数、MPLS单播包数、送往B口包数和送往协议FIFO包数等,并根据命令把统计信息送往板级处理机。
4 系统调试
FPGA的调试包括输入FPGA和输出FPGA两部分,主要检查FPGA的焊接、时钟和程序下载等是否正确,调试方法是用VHDL编写一个计数器的程序,用JTAG下载到FPGA中,利用SignalTap软件和指示灯测试FPGA是否工作正常。实现系统输入输出处理功能的大规模VHDL程序的调试放在整个线路接口卡的调试中进行。
PM3388芯片是千兆线路接口卡完成MAC层控制功能的芯片,其调试是整个千兆线路接口卡调试的重点。PM3388芯片的调试需要板级处理机软件、板级处理机、输入输出FPGA和网络测试仪配合,调试内容依次为寄存器配置、PL4系统侧环回、SERDES系统侧环回、SERDES线路侧环回、PL4线路侧环回。
PM3388芯片寄存器配置的调试过程为:首先往一个可读写寄存器(选择地址为0x6的寄存器)中写入一个数,再读出来比较是否正确,如果不正确,通过SignalTap软件分别抓输出FPGA与PM3388芯片的微处理机接口的读写控制信号,确定错误是发生在写操作还是读操作上,排除错误。单个寄存器的配置调试通过后,再进行多个寄存器的连续配置,调试方法是配置PM3388进入不同工作模式,通过检查状态寄存器的值判断是否配置成功,如果不成功,检查
FPGA 相关文章:
- 基于FPGA的短波通信接收机(11-19)
- FPGA的低功耗设计(07-06)
- EDA环境衔接测量软件(06-25)
- Altera 28nm FPGA助力NEC提升LTE基站性能(11-19)
- 基于FPGA的BPSK信号载频估计单元设计(09-02)
- FPGA推动5G异构无线网络(09-28)