Rapid IO应用系统及其验证模型的设计与测试

2011-06-09 10:14梁光胜刘倩茹姚海洋
电子设计工程 2011年23期
关键词:物理层事务端口

梁光胜,刘倩茹,姚海洋

(华北电力大学 电气与电子工程学院,北京 102206)

随着处理器性能的飞速提高,互连通信已成为制约嵌入式系统整体性能提高的瓶颈,而RapidIO技术是突破这一瓶颈的手段。目前,Rapid IO技术是世界上惟一的嵌入式系统互连国际标准。它支持芯片到芯片和背板间的互连,适用于高实时性、高可靠性的多器件嵌入式系统的互连。文中设计的Rapid IO应用系统可用于嵌入式系统内模块间的通信,提高嵌入式系统的实时性。

1 Rapid IO技术

Rapid IO互连通信协议采用3层体系结构,分别为逻辑层、传输层和物理层。RapidIO逻辑层规范位于最高层,定义全部协议和包的格式,为端点器件发起和完成事务提供必要的信息;传输层规范在中间层,定义Rapid IO地址空间和包在终端器件间传输所需的路由信息;物理层规范在分级结构底部,包括器件级接口的细节[1]。RapidIO操作是基于请求和响应事务的,过程如下:发起器件或主控器件产生一个请求事务并传送到目标器件,目标器件执行完事务后产生一个响应事务并返回至发起器件来完成这次操作[1]。

2 Rapid IO应用系统的硬件结构

文中的Rapid IO应用系统是基于Altera公司的CycloneⅡEP2C35F6芯片和Rapid IO IP核v9.0的设计。

Rapid IO IP核v9.0支持Rapid IO协议v2.1版本,有1通道(1x)和4通道(4x)串行物理层可供选择,所有4个通道支持1.25、2.5、3.125和5.0 Gbaud的串行数据传输速率。

CycloneⅡ芯片支持所有Rapid IO IP核功能和1x最高3.125 Gbaud、4x最高1.250 Gbaud的通信速率。应用系统结构图如图1所示[2]。

图1 Rapid IO应用系统结构图Fig.1 Structure diagram of rapid IO application

图1中,Rapid IO IP核连接整个系统与外界进行数据传输。Avalon端口通过将数据变成统一的数据格式,帮助系统内各模块间进行数据传输。Avalon端口分为从端口和主端口,Avalon主端口和从端口并不直接进行连接,Avalon总线交换结构负责在Avalon主端口和从端口之间传输信号[3]。Avalon总线是为可编程片上系统中连接片内处理器和片内外设而设计的一种较为简单的总线协议。它采用交换式的总线结构,在系统加入模块或接入优先权改变时,Avalon总线能简单高效地产生最佳交换架构,非常适用于Rapid IO应用系统的互连结构。直接内存存取(DMA)控制Avalon接口的数据传输。DMA在控制器下达指令后,可以控制数据直接在模块间进行交换。由于RapidIO互连通信多用于多个器件间大量的数据传输,这样可以在很大程序上减轻控制器的资源占有率,提高数据传输速率。On-Chip FIFO是一种操作简单的片内先进先出数据缓存器,由于Rapid IO IP核可进行异步数据通信,需要FIFO作为数据缓冲确保不同时钟域之间的数据传输。片内存储器(On-Chip Memory)是基于FPGA的嵌入式系统可使用的存储器中具有最高吞吐量和最低反应延时的存储器,可用于Rapid IO系统数据缓存和高速便利的FIFO存储。

采用SOPC设计该系统时,设置Rapid IO IP核物理层为1X2.5GBaud串行物理层。由于采用1X物理层,RapidIO IP核与外部通信的Atlantic接口为32 bits宽,需设置其他模块参数与之对应。

Rapid IO规范规定RapidIO器件的每个接口必须能同时处理呼入和呼出事务。RapidIO接口的呼入和呼出模块可以单独设计,也可以设计成一个模块[4]。Altera公司的Rapid IO IP核将呼入和呼出模块单独设计,基于此设计,Rapid IO应用系统的功能模块如图2所示。

图2 Rapid IO应用系统功能模块图Fig.2 Function module diagram of rapidIO application

由图2可知,时钟模块为各个模块的Avalon接口提供时钟信号,除此之外 Rapid IO内部 PLL(Phase Locked Loop,锁相环)电路利用外部时钟信号变换出适合Rapid IO工作的内部时钟信号,并利用该内部时钟信号进行数据的传输。Rapid IO控制模块控制RapidIO的工作方式。通过更改Rapid IO控制模块内部功能寄存器 (Capability registers,CARs)的值来定义和控制程序的执行。RapidIO呼出模块通过更改其内部命令和状态寄存器 (Command and status registers,CSRs)的值,向 DMA发送读写事务请求,然后 DMA控制模块进行数据传输,事务操作完成后,DMA将更改其状态寄存器的值。RapidIO呼入模块通过检查DMA控制器的状态寄存器来确定传输是否结束。当RapidIO执行流写事务时,流写事务模块直接和FIFO模块相连:当Rapid IO系统需要与外部进行大量数据交换时,流写事务呼出模块向FIFO发送事务请求,传送数据到FIFO中或从FIFO中读出数据,操作事务完成后,FIFO模块向Rapid IO呼入模块发送操作事务完成结果。

3 验证模型的设计与测试流程

ModelSim是业界最优秀的HDL语言仿真软件,仿真速度快,操作简单,故采用ModelSim仿真平台对Rapid IO应用系统进行仿真。在SOPC Builder中设置各IP核的参数,生成如上所述Rapid IO应用系统并生成其测试模型。将RapidIO应用系统作为一个终端设备进行测试。

测试模型例化一个与RapidIO应用系统中RapidIO模块完全一样的Rapid IO Sister模块[5],并通过其与RapidIO应用系统进行数据通信,测试其功能。测试模型内部结构如图3所示。

图3 测试模型内部结构图Fig.3 Internal structure diagram of the verification model

测试顶层模块内部调用了一个RapidIO BFM(Bus Function Model,总线功能模型)模块。RapidIO BFM是由RapidIO协会研发的Rapid IO总线测试标准模块,它提供了RapidIO事务测试任务函数[6]。通过调用这些任务函数,可以简单方便地更改RapidIO内部CARs和CSRs,以达到测试RapidIO系统功能的目的。由图3可知,测试信号收发模块调用Rapid IO BFM模块更改Rapid IO Sister逻辑层模块的CARs和CSRs的值,发起请求事务,通过其物理层模块传到Rapid IO模块物理层,Rapid IO应用系统模块响应后会经由其物理层更改RapidIO Sister模块CSRs的值,测试顶层模块通过调用RapidIO BFM模块读取Rapid IO Sister模块CSRs值,查看响应结果,以此来监视Rapid IO应用系统模块的功能。

Rapid IO测试模型测试Rapid IO应用系统模块作为终端设备时的读、写、流写和维护事务。测试程序流程如图4所示,图中Sister模块即为Rapid IO Sister模块。测试程序首先初始化Sister模块端口,使其可以工作。然后设置Sister模块为维护读写工作状态,读取其内部寄存器的值,确认其工作模式设置是否正确。之后设置Sister模块与RapidIO应用系统内部的RapidIO模块,使它们可以互相通信。Rapid IO模块的设置完成之后,向DMA模块发出读写指令,测试RapidIO应用系统的读写功能。最后Sister模块向Rapid IO应用系统发起流写事务,测试Rapid IO系统的流写功能。

图4 测试程序流程Fig.4 Flow chart of test program

4 仿真结果分析

图5为仿真监视的部分结果,由图可知,2 012 ns,测试程序完成了Rapid IO Sister模块的初始化;31 108 ns,测试程序完成了Rapid IO Sister模块设置任务,并读取其内部寄存器进行验证;36 052 ns,完成了DMA模块的读操作;38 289 ns,完成了DMA模块的写操作并验证所写结果正确;39 544 ns,完成了流写事务的检验任务。由测试结果可知,该测试系统可完成RapidIO应用系统的正常测试工作。

5 结束语

在工业控制的特定领域,需要高实时性的复杂嵌入式系统。文中设计的Rapid IO应用系统及其验证模型易于实现、操作简单,对提高复杂嵌入式系统的实时性有一定作用,同时对未来彻底解决嵌入式系统内互连通信也有借鉴意义。

图5 测试模型仿真结果Fig.5 The simulation results of the verification model

[1]Fullert S.Rapid IO嵌入式系统互连[M].王勇,林粤伟,吴冰冰,译.北京:电子工业出版社,2006.

[2]Altera Corporation.Rapid IO MegaCoer Function User Guide(V10.1)[EB/OL].[2011-08-20].http://www.altera.com.cn/literature/ug/ug_rapidio.pdf.

[3]李兰英.NiosII嵌入式软核SOPC设计原理及应用 [M].北京:北京航空航天大学出版社,2006.

[4]Fullert S.Rapid IO嵌入式系统互连[M].王勇,林粤伟,吴冰冰等,译.北京:电子工业出版社,2006.

[5]谢智勇,罗明,蒋俊.串行RapidIO验证模型[J].计算机工程,2008,34(增刊):16-21.XIE Zhi-yong,LUO Ming,JIANG Jun.Verification model of serial rapid IO[J].Computer Engineering,2008,34 (Supplementary Issue):16-21.

[6]Fuller S,Salieva M.An introduction to the rapidIO Bus functional models[EB/OL].[2011-08-21].http://www.rapidio.org/education/documents/RTA_BFM_documentation.pdf.

猜你喜欢
物理层事务端口
基于分布式事务的门架数据处理系统设计与实现
基于K-ML-MPWFRFT的物理层安全传输技术
一种端口故障的解决方案
河湖事务
公路联网电子不停车收费系统路侧单元物理层自动测试软件研发
端口阻塞与优先级
多天线物理层安全传输系统性能分析
8端口IO-Link参考设计套件加快开发速度
1Gbps电力线载波通信物理层算法设计
卫星三端口DC-DC变换器技术综述