nbhkdz.com冰点文库

基于FPGA的SPI4.2接口设计

时间:2012-11-14


基于 FPGA 的 SPI4.2 接口设计
摘要:本文介绍了一种 FPGA 和 IPX2805 之间的 SPI4.2 接口模块设计的方法,对硬件设计进行了说 明,着重阐述了 FPGA 内部 SPI4.2 接口模块设计。该设计简单、高效,解决了商用芯片不能满足高速转发 的系统要求的问题。方案在 Altera 的 Stratix II 器件上得到了验证。

广告插播信息 维库最新热卖芯片: LT1940EFE CS8333-5.0 10H116 SI6963DQ-T1 MAX275BCPP
LTC4252A-2IMS LC7216 AD9742AR ADG511ABR UPC842G2-E1
1.引言 SPI-4.2(System Packet Interface)是 OIF(Optical Internetworking Forum)定义的局部高速总 线标准,用于 PHY 层芯片到链路层芯片的 10Gbps 信号传输。主要应用有 OC-192 ATM、Packet over SONET/SDH(POS)、10Gbps 以太网等。 SPI4.2 接口分为数据通道和状态通道。数据通道最多分成 256 个逻辑通道,16bit 位宽,采用 LVDS 信号电平,按照 cell 格式传送数据,cell 的长度为 16 字节的整数倍,可随意配置,根据网上流量的分 析,一般配置成 128 字节。每个 cell 都是以控制字开始的,控制字一共 16bit,包含逻辑端口号、报文 起始标志位、报文结束标志位、控制字交验等信息。状态通道传输对端反馈的逻辑通道接收 FIFO 的状态, 2bit 位宽, LVTTL 或者 LVDS 信号电平, 一般采用 LVTTL 信号电平。 状态通道的数据结构为 Calendar[0:n], n 最大为 256,长度一般与逻辑通道数对应,Calendar[n]表示逻辑通道 n 的接收 FIFO 状态。数据通道根 据状态通道提供的信息控制数据的发送过程。状态通道有四种状态信息,如表 1 所示:

在实际的系统设计中,商用芯片不一定能够满足需要,因此需要使用 FPGA(Field Programmable Gate Array)。本设计采用 Altera 的 Stratix II 系列 FPGA 和 RMI 公司的多核处理器 XLR732,Intel 公司的 网络处理器 2805 实现 SPI4.2 接口。 2.2805 简介 2805 是 Intel 推出的高端 NP(Network Prosser),能够处理 10Gbps 线速转发的以太 网、POS、ATM 等数据流量, 能够实现分类、 NAT、 ACL、 多播、 流量管理等功能。 2805 内部集成一个 32-bit、 RISC 内核、高性能的 XScale 处理器,用于系统的配置管理和路由表项的维护,最高工作主频 750MHz;16

个可编程的、有 8K 代码空间的微引擎,每个微引擎含有多个硬件线程,用来处理通信系统中的数据转发, 最高工作主频 1.5GHz。外部集成了 PCI 接口,可以工作在 64bit/66MHz 模式;SPI4.2 接口,工作频率为 311MHz~500MHz;3 个 LA-1 接口,工作频率为 250MHz;4 个 RDRAM 接口,工作频率为 800MHz~1200MHz。 3.FPGA 和 2805 之间的 SPI4.2 接口电路设计 图 1 描述了 FPGA 和 2805 之间的 SPI4.2 接口的硬件连接框图,信号定义以 2805 为参考点。其中 TX_DATA[15:0] 、 TX_CTL、 TX_CLK 和 RX_DATA[15:0] 、 RX_CTL、 RX_CLK 是 LVDS 信号电平, 工作在 350MHz; TX_SDATA[1:0] 、TX_SCLK 和 RX_SDATA[15:0] 、 RX_SCLK 是 LVTTL 信号电平,工作在 87.5MHz,四分之 一于数据通道时钟频率。

具体信号定义如下所示: TX_DATA[15:0]:发送数据, 16bit 位宽, burst 方式传输数据, DDR 工作模式(时钟上升沿和下降 沿都采样); TX_CTL:传输控制信号,高电平表示 TX_DATA[15:0]传输的是控制信息,低电平表示 TX_DATA[15:0] 传输的是数据; TX_CLK:发送时钟,随路,是发送数据的参考时钟。 接受方向的信号定义与发送方向的信号定义完全相同,但是方向相反。 4.FPGA 的 SPI4.2 接口模块设计

Stratix II 器件具有 152 个接收器和 156 个发送器通道,支持源同步信号进行高达 1 Gbps 的数据传 送。它的内部含有 DPA 电路,能够不断地将输入数据和采样时钟对齐,消除了时钟至通道和通道至通道偏 移要求。它还集成了丰富的存储器资源、先进的锁相环( 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 头中的逻辑端口 号,分别放入不同的 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 资源有限,同时这种发送端共享 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 配合共 同完成某通信设备的高速转发单板的设计。 6.结束语 本文介绍了 SPI4.2 接口在可编程逻辑器件 FPGA 上的实现方法, 并通过实际电路验证 FPGA 与 IPX2805 之间通过 SPI4.2 接口互通的功能。由于商业芯片的限制,有时只有 FPGA 才能满足系统设计的要求。相对 于开发 ASIC,使用 FPGA 使整个设计电路简单、灵活、成本低、方便调试和修改, 大大缩短开发周期。


赞助商链接