基于FPGA实现DSP与Rapid IO网络互联系统
扫描二维码
随时随地手机看文章
1 引言
随着通讯系统的数据处理量日益增大,过去总线形式的体系结构逐渐成为约束处理能力进一步提升的瓶颈。本文首先简单介绍了嵌入式设计中总线结构的演化过程,从而引出新一代点对点串行交换结构RapidIO。
在密集型实时信号处理应用中,DSP 由于其本身结构特点具有不可替代的位置。但是遗憾的是目前很多DSP不具有RapidIO 接口,而且也没有ASIC 能够为这些DSP提供RapidIO接口。为了在RapidIO 网络中充分利用DSP 数据处理的优势,我们采用FPGA 做一个转接桥逻辑,将DSP 的总线连接到一个RapidIO 的IP 核,从而实现DSP 和RapidIO 网络的互联。
2 总线结构概述
2.1 总线结构的演化
高速通信和超快速计算的需求日益增大,使得多处理器以及各种外部设备协同工作才能满足实时快速的要求。传统的系统中,这些处理器、处理器簇、外设之间的数据交互是基于并行的共享总线方式进行。从单分段总线到级联的多分段总线,这些基于共享总线的体系结构中,所有的设备通讯竞争带宽,这样交互数据成为了整体系统性能的瓶颈。不仅如此,并行总线所需要的大量IO 引脚也给系统的电器性能和机械性能带来相当的考验。因此,提高系统性能就迫切需要一种新的体系结构。
目前新型的体系结构是基于点对点串行交换结构的体系。相比传统的并行共享总线结构,串行交换结构中的两个端点交互数据不影响其他端点之间的数据交互,从而大大提高了系统带宽,除此之外,串行交换结构所需要的引脚也大大减少了,而且串行结构采用的差分线连接也提高了信号传输的距离和可靠性。当前流行的串行交换结构主要有PCI-Express,InfiniBand,RapidIO 等。这些总线结构的应用范围既有交叉有各有侧重。
2.2 RapidIO 交换结构
RapidIO 互连架构,它的设计与最流行的集成通信处理器、主机处理器以及网络数字信号处理器相兼容,是高性能包交换互连技术。它满足了高性能嵌入式系统行业对内部系统互连的需求,包括可靠性、高带宽和更快的总线速率。相比PCI、PCI-X、PCIE 和Infiniband来说,RapidIO 主要特性是具有极低的延迟性和高带宽,并很容易实现和PCI、PCI-X、PCIE、FPDP、以太网等的桥接,适合用于芯片与芯片、板与板、系统与系统之间的高速数据传输。
3 系统设计
3.1 工程背景
多片 DSP 形成处理器簇,共同完成快速实时的运算已经成为现代信号处理机一种流行的方式。但是目前大多数DSP 都不具备RapidIO 接口,所以我们采用FPGA,将DSP 的总线与一个RapidIO IP 核总线相连接,实现DSP 与RapidIO 网络的通信。
3.2 芯片选型
我们选用 Analog 的TigerShark101(以下简称TS101) DSP, ADSP-TS101S 是TigerSHARC 处理器系列中的首款器件。FPGA 选用Altera 的Stratix II GX 60 芯片。
Altera 的RapidIO 的IP 核兼容于2005 年2 月发布的RapidIO 互连标准1.3,实现了3种标准速度1.25G、2.5G、3.125G 下1x/4x 的物理层协议。同时,Altera 公司的SOPC 工具提供了大量的成熟的IP 核和可裁剪的Avalon 总线,方便的帮助用户实现模块化设计。
3.3 系统结构
将 TS101 的总线桥接到FPGA 的Avalon 总线上。其中,DSP 芯片是用来做大量的数据处理,FPGA 是DSP 和RapidIO 之间通讯的桥梁。FPGA 内的RapidIO 接口有成熟的IP 核,将DSP 和RapidIO 的IP 核连接的关键在于实现DSP 外部总线到IP 核Avalon 总线的转换。
TS101 内部有一个寄存器SYSCON,用来控制外部端口、主机接口、多处理器接口的数据位宽、插入的等待周期、流水线深度等设置。由于这个寄存器在上电后只能修改一次,这里我们将外部端口配置位32 位的慢速协议,完成RapidIO 的维护,门铃等事务;将主机接口配置位64 位的流水线协议,完成高速的IO 事务。通过转接桥逻辑的转换。
4 转接桥设计
4.1 转接桥总体结构
转接桥逻辑为 TS101 总线接口与Avalon 总线接口转换器,由四个模块及辅助电路构成。
图1 转接桥总体结构
4.2 总线模式控制电路
总线模式控制电路完成根据系统请求情况切换 TS101 总线端地址、数据以及相应的控制信号的输入输出方向、功能及状态。其中需要控制的部分包括:数据总线的输入输出方向连接及模式控制,地址总线的输入输出方向连接及模式控制,TS101 的读控制信号的输入输出方向连接及模式控制,TS101 的写控制信号的输入输出方向连接及模式控制,TS101 的ACK 信号的输入输出方向连接及模式控制。另外,该模块中还完成一些控制信号的连接。
4.3 Host Master 模块
图2 Host Master模块设计
Host_Master 模块完成在系统工作于TS101 侧控制模式时对Avalon 总线进行读写的总线时钟切换和相关部分工作时的控制。它大致可分为四部分完成:
1. 数据读写控制产生电路在数据写时根据输入管脚中的片选信号、写信号,将DSP 要写入Avalon 总线的地址及数据写入host_address_fifo 中。当是数据读时,根据输入管脚中的片选信号、读信号,将DSP 要写入Avalon 总线的地址写入host_addrfifo 中,同时产生数据读等待信号,当从host_readdata_fifo 总线读到数据后,该电路撤销读等待信号,并将得到的数据送入TS101 的数据总线。
2. host_address_fifo 模块完成在TS101 控制系统总线时,DSP 接口时钟到Avalon 总线地址及写入数据的换时钟控制。
3. host_readdata_fifo 模块完成在TS101 控制系统总线时,Avalon 总线到DSP 接口总线的读入数据的换时钟控制。
4. 数据读控制状态机电路部分完成TS101 的读控制信号的产生,以及读到的数据信号的存储控制。
4.4 Avalon Master 模块
Avalon_Master 模块设计一个状态机控制电路,完成在Avalon 总线上的地址、Byteenable、读写控制信号、读数据信号和写数据信号的产生与控制处理。同时还有等待读数据到来以及读数据确认工作。
4.5 Avalon Slave 模块
图3 Avalon Slave 模块
Avalon_Slave 模块是一个Avalon 总线的从设备,它可接收Avalon 总线上其它主设备发送过来的数据写请求、数据读请求,同时将从通过Host 接口读到的数据按相应的总线规则送到数据总线上,同时产生数据有效信号。由于这里的设计采用可变读等待设计,同时还需要完成对TS101 数据读取换钟转换。该模块主要由以下三部分构成:
1. ts101_slave_address_fifo 模块模块完成在Avalon 总线上的主设备控制系统总线时,Avalon 总线到DSP 总线的地址及写入数据的换时钟控制。
2. ts101_slave_readdata_fifo 模块模块完成在Avalon 总线上的主设备控制系统总线时,DSP 总线到Avalon 总线的读入数据的换时钟控制。
3. 数据读控制电路部分完成读数据的确认以及读值有效信号的产生。
4.6 Host Slave 模块
Host_Slave 模块为一个控制状态机电路,它根据Avalon_Slave 模块提供的信号完成对DSP 的主总线控制请求,带发送信号的组织,发送和接收信号的确认接收,包括产生HBRN信号,并根据HBGN 信号的状态产生读写控制信号、读写地址信号、写数据信号以及从DSP中读回待接收的读数据信号。
5 功能测试
目前,Altera 的RapidIO IP 核支持的RapidIO 事务有:读操作NREAD 请求和响应,写操作NWRITE 请求,带响应的写操作NWRITE_R 请求和响应,流写(SWRITE)请求,维护(MAINTENANCE)读请求和相应,维护(MAINTENANCE)写请求和响应,维护(MAINTENANCE)端口写请求,门铃(DOORBELL)请求和相应。在实际的测试中,将这个电路板和Mercury 公司Ensemble MPQ-101 同时安装在Silicontkx 的串行RapidIO 开发平台上,结果证实DSP 通过转接桥逻辑控制RapidIO IP 核,已经实现了所有的这些事务。
6 总结和展望
RapidIO 作为下一代嵌入式互联技术,在国内的信号处理平台上的运用越来越广泛。但是目前很多处理芯片不具有RapidIO 的接口。利用FPGA可以方便快速定制一个合适的接口,为RapidIO 网络增添各种丰富的节点。同时,本文给出了实现这个转接桥的思路做了详细讨论,这样不同的DSP,甚至CPU 都可以利用这种思路来接入RapidIO 网络。
在目前的设计中,一个 FPGA 为一个DSP 提供转接桥逻辑,过于浪费FPGA 的资源。在紧接下来的设计中,我们将4 片DSP 组成一簇接入FPGA,从而提高单板的处理能力,同时提高了FPGA 的利用率。