基于FPGA的SPI4.2接口设计

上传人:龙*** 文档编号:20368748 上传时间:2017-11-22 格式:DOCX 页数:9 大小:568.79KB
返回 下载 相关 举报
基于FPGA的SPI4.2接口设计_第1页
第1页 / 共9页
基于FPGA的SPI4.2接口设计_第2页
第2页 / 共9页
基于FPGA的SPI4.2接口设计_第3页
第3页 / 共9页
基于FPGA的SPI4.2接口设计_第4页
第4页 / 共9页
基于FPGA的SPI4.2接口设计_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《基于FPGA的SPI4.2接口设计》由会员分享,可在线阅读,更多相关《基于FPGA的SPI4.2接口设计(9页珍藏版)》请在金锄头文库上搜索。

1、基于 FPGA 的 SPI4.2 接口设计摘要:本文介绍了一种 FPGA 和 IPX2805 之间的 SPI4.2 接口模块设计的方法,对硬件设计进行了说明,着重阐述了 FPGA 内部 SPI4.2 接口模块设计。该设计简单、高效,解决了商用芯片不能满足高速转发的系统要求的问题。方案在 Altera 的 Stratix II 器件上得到了验证。1引言SPI-4.2(System Packet Interface)是 OIF(Optical Internetworking Forum)定义的局部高速总线标准,用于 PHY 层芯片到链路层芯片的 10Gbps 信号传输。主要应用有 OC-192 A

2、TM、Packet over SONET/SDH(POS)、10Gbps以太网等。SPI4.2 接口分为数据通道和状态通道。数据通道最多分成 256 个逻辑通道,16bit 位宽,采用 LVDS 信号电平,按照 cell 格式传送数据,cell 的长度为 16 字节的整数倍,可随意配置,根据网上流量的分析,一般配置成 128 字节。每个 cell 都是以控制字开始的,控制字一共 16bit,包含逻辑端口号、报文起始标志位、报文结束标志位、控制字交验等信息。状态通道传输对端反馈的逻辑通道接收 FIFO 的状态,2bit 位宽,LVTTL 或者 LVDS 信号电平,一般采用 LVTTL 信号电平。

3、状态通道的数据结构为 Calendar0:n,n 最大为 256,长度一般与逻辑通道数对应,Calendarn表示逻辑通道 n 的接收 FIFO 状态。数据通道根据状态通道提供的信息控制数据的发送过程。状态通道有四种状态信息,如表 1 所示:在实际的系统设计中,商用芯片不一定能够满足需要,因此需要使用 FPGA(Field Programmable Gate Array)。本设计采用 Altera 的 Stratix II 系列 FPGA 和 RMI 公司的多核处理器 XLR732,Intel 公司的网络处理器 2805 实现 SPI4.2 接口。22805 简介 2805 是 Intel 推

4、出的高端 NP(Network Prosser),能够处理 10Gbps 线速转发的以太网、POS、ATM 等数据流量,能够实现分类、NAT、ACL、多播、流量管理等功能。 2805 内部集成一个 32-bit、RISC 内核、高性能的 XScale 处理器,用于系统的配置管理和路由表项的维护,最高工作主频 750MHz;16 个可编程的、有 8K 代码空间的微引擎,每个微引擎含有多个硬件线程,用来处理通信系统中的数据转发,最高工作主频 1.5GHz。外部集成了 PCI 接口,可以工作在 64bit/66MHz 模式;SPI4.2 接口,工作频率为 311MHz500MHz;3 个 LA-1

5、接口,工作频率为 250MHz;4 个 RDRAM 接口,工作频率为 800MHz1200MHz。3FPGA 和 2805 之间的 SPI4.2 接口电路设计图 1 描述了 FPGA 和 2805 之间的 SPI4.2 接口的硬件连接框图,信号定义以 2805 为参考点。其中 TX_DATA15:0 、TX_CTL、TX_CLK 和 RX_DATA15:0 、RX_CTL、RX_CLK 是 LVDS 信号电平,工作在 350MHz;TX_SDATA1:0 、TX_SCLK 和 RX_SDATA15:0 、 RX_SCLK 是 LVTTL 信号电平,工作在 87.5MHz,四分之一于数据通道时钟

6、频率。具体信号定义如下所示:TX_DATA15:0:发送数据, 16bit 位宽, burst 方式传输数据, DDR 工作模式(时钟上升沿和下降沿都采样);TX_CTL:传输控制信号,高电平表示 TX_DATA15:0传输的是控制信息,低电平表示 TX_DATA15:0传输的是数据;TX_CLK:发送时钟,随路,是发送数据的参考时钟。接受方向的信号定义与发送方向的信号定义完全相同,但是方向相反。4FPGA 的 SPI4.2 接口模块设计Stratix II 器件具有 152 个接收器和 156 个发送器通道,支持源同步信号进行高达 1 Gbps 的数据传送。它的内部含有 DPA 电路,能够不

7、断地将输入数据和采样时钟对齐,消除了时钟至通道和通道至通道偏移要求。它还集成了丰富的存储器资源、先进的锁相环( PLL)技术和双数据率( DDR)I/O 等特性,结合先进的差分 I/O 能力,使其满足 SPI4.2 规范的物理信号定义。图 2 为 FPGA 的接收通道逻辑框图,上半部分是数据通道,下半部分是状态通道。由于 SPI4.2 接口的数据传输是 DDR 模式的,rdclk 经过 FPGA 内部的 PLL 模块做倍频处理,然后送给 Rx_data_phy 模块,该模块根据时钟采样 rdat 15:0上的数据。Rx_data_proc 模块将接收的数据按照 cell 头中的逻辑端口号,分别

8、放入不同的 Rx_fifo 中。一个 Rx_fifo 对应一个逻辑通道,每个 Rx_fifo 都会生成一个状态信号,标示其“空”状态或者“满”状态, Rx_stat_calc 模块根据各个 Rx_fifo 的状态信号生成 Calendar 信息,由状态通路发送出去,用来流控 2805 的发送过程。Calendar 也可以由软件设置,通过 Rx_stat_proc_ref 下发给 Rx_stat_calc。发送模块与接收模块不同,如图 3 所示,发送模块的 Tx_fifo 只有一个,即所有的逻辑通道公用一个发送缓存区。这主要是由于 FPGA 内部的布线资源和 RAM 资源有限,同时这种发送端共享

9、 FIFO、接收端分通道 FIFO 模式不影响使用,能够实现分端口的反压。发送端通过 Tx_stat_phy 模块接收 Calender 信息,经过 Tx_stat_proc模块和 Tx_stat_proc_sync 模块处理,送给 Tx_sched 调度模块,Tx_sched 解析出各个逻辑通道的反压情况,然后将各个通道的数据发送到 Tx_fifo 中,然后经过 Tx_data_proc 模块和 Tx_data_phy 模块发送出去。5结果 本设计在 Altera 的 Stratix II 系列 FPGA,EPM2S90 上得到验证,与 Intel 的 2805 配合共同完成某通信设备的高速

10、转发单板的设计。6结束语本文介绍了 SPI4.2 接口在可编程逻辑器件 FPGA 上的实现方法,并通过实际电路验证 FPGA 与 IPX2805 之间通过 SPI4.2 接口互通的功能。由于商业芯片的限制,有时只有 FPGA 才能满足系统设计的要求。相对于开发 ASIC,使用 FPGA 使整个设计电路简单、灵活、成本低、方便调试和修改, 大大缩短开发周期。当电信运营商和有线电视业务提供商开始向客户推出决定性的举措和 VoD 服务时,原始设备制造商正全力开发基于 IP(Internet 协议)的系统,包括PON、CMTS、IP DSLAM 以及其他的接入和最后一英里设备。普通的基础物理层对此使用

11、的是无处不在的以太网技术,目前与高级的 QoS 覆盖结合在一起。工程师正投入更多的努力把交换以太网背板连接到系统线卡,特别是网络处理器。系统设计师常选择以太网交换机和有独立特性的网络处理器,而很少考虑把这两者互联所带来的挑战。工程师仅需要面临开发桥、整合解决方案和节约成本实现设计的挑战。由于接口以很高的速率运行,所以还必须关注功耗。典型的基于以太网的系统结构由以太网交换机所组成,依次由几个连接到一连串的基于网络处理器的线卡的 10Gbps 链路组成。参见图 1。在交换 10Gpbs 系统,以太网交换机结构提供一系列 XAUI 端口。每个 XAUI 端口有 4 个 3.125Gbps 的 SER

12、DES。这些串行端口通过背板或者中间结构完美地连接到线卡。有些以太网交换机包括端?换、流量控制或者用于服务质量要求的地址信息,在原来的以太网标准中没有服务质量要求的内容。为了保持 10G 线速,这些XAUI 端口的运行速率要高于指定的每个通道 3.125Gbps 的速率。运行在3.75Gbps 的 Broadcom HiGig+协议就是一个例子。运行这些所有权协议时,额外的开销允许客户开发自定义的应用交换,通过网络智能地传递通信量。此外,针对基于 IP 的应用,这些交换堆栈协议具有无约束的可量测性。拥有网络处理器的线卡常用 SPI4.2 接口。SPI4.2 是流行的运行速率可以超过10Gbps

13、 的高速并行接口,用于网络处理器、通信流量管理器、媒体接入控制(MAC)等。SPI4.2 使用并行的 16 位宽的 LVDS 发送和接收源同步接口。为了处理流量控制,在状态通道有额外的电路。在 SPI4.2 链路上发送的数据作为一个包,或者猝发的多个包,并拥有控制头描述每个猝发。每个包控制头还识别与猝发数据相关的 SPI4.2 通道。这些位可用来把整个链路分割成各种通道。SPI4.2规范支持每个链路多达 256 个通道。很明显在 SPI4.2 和 XAUI 之间存在着很大的物理和协议差异。由于这个原因,SPI4.2 接口必须桥接到 XAUI 链路。图 1 :基于以太网的系统结构。 为了将 XA

14、UI(或者更快时钟的 XUAI)链路连接到 SPI4.2 接口,要构建一个能够引导数据通过 4 个主要单元的桥。针对 XAUI 至 SPI4.2 桥,主要单元为:(1)XAUI SERDES 终端;(2)10G MAC;(3)协议转换逻辑;(4)SPI4.2 接口。此外还要有微处理器接口,用来配置每个桥的单元。参见图 2。图 2:连接到 SPI4.2 接口的 XAUI(或者更快时钟的 XUAI)链路。 低功耗、完整特性的 XAUI 端口XAUI SERDES 块必须连接到 4 个 3.125Gbps 数据通道。这个逻辑只需要 4 个接收和 4 个发送信号,运行速度非常快但消耗相当大的功率。需要

15、谨慎选择每个通道消耗大约 100mW 功率的 SERDES。4 个 SERDES 通道中的每一个都要对齐,以保证跨越所有通道的数据同步,获得聚集为 10Gbps 的波特率。这由 XAUI 状态机来处理。在与 SERDES 混合的许多器件的物理编码子层(PCS)中,这个逻辑是很普通的。从 4 个通道中提取 10Gbps 的数据后,必须以 XGMII 接口格式化。这是针对 10Gbps 以 156Mhz 运行的 6?位总线,或者针对 12Gbps 以 187Mhz 运行。XGMII 是 802.3ae 标准,用于格式化源于物理层到 10G MAC 的 10Gbps 数据。利用含有 SERDES 后

16、紧跟 PCS 块的 FPGA 是理想的,采用这种结构可以直接格式化XAUI 数据至 XGMII。这样节省了逻辑并减少了功耗。低功耗、工程预制的 10GbE MAC10G MAC 逻辑接收 XGMII 数据并提取以太网的帧。首先由 10G MAC 识别 Packet SOP 的起始和 Packet EOP 头的结束。由于以太网的数据以可变大小的包发送,MAC 必须能够处理各种大小的包,包括 8K 长度的超长包。一旦恢复了数据,进行 CRC 校验保证数据的完整性。数据进入 MAC 时,在接收端做这项工作。如果CRC 校验失败,丢弃坏的帧并建立错误标志。在发送端 MAC 必须产生 CRC 码。MAC 还需要保持对数据的统计,支持管理信息数据库。此外,10G MAC 还有对接收到的包进行地址过滤的功能。可以有几个过滤选择,取决于终端用户的应用。允许通过桥的数据包,从 MAC 流出,不经过滤,写入 6?位宽的 FIFO,再送至协议转换逻辑。尽管在 FPGA 中可以实现 10G

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 毕业论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号