实验表明,发射机系统的一个部分重配置比特流的大小为269 KB,为全局比特流(1 415 KB)的19.0%,因而所需的用于存储配置比特流的空间较小,配置速度相对较快,所需配置时间约为全局配置时间的19.0%。
3 FPGA组件在SCA中的集成
根据参考文献[4]的内容,可加载到软件无线电平台上的波形组件分为运行于通用处理器上的SCA组件和运行于专用硬件处理器(SHP)上的组件。FPGA组件属于SHP组件中的RPL(寄存器传输级可编程逻辑)组件,用HDL语言实现功能,但不支持CORBA。为使该类型的组件能够集成到SCA系统中,必须在设计时使其接口满足特定的规范,使之具有可移植性和可复用性。本文中FPGA组件按照OCP协议进行接口封装。参考文献[5]介绍了关于整个OCP协议的接口设置、工作原理和时序逻辑。
3.1 FPGA组件的代码生成
由于波形应用是由波形组件和域描述文件组成的,波形组件完成相应的功能,域描述文件提供组件之间的装配、连接、属性等信息,因此需要通过解析软件组件描述(SCD)文件和接口定义来获得OCP接口。SCD文件中定义了组件的端口列表,OCP模块就是要实现的组件。在接口库中已经定义好了各种接口类型。通过查询接口库,可以获得符合要求的接口,具体要实现的功能则由接口的参数决定。最终需要产生一个OCP接口配置文件,它以文本的形式描述了组件的内核和接口信息。
通过分析OCP接口配置文件,可以生成OCP接口的VHDL代码。代码中包括一个实体描述和空结构体以及一个VHDL语言包,实体表示满足OCP接口封装的组件,OCP接口则对应于实体的端口,端口的类型由其所在接口的类型决定。组件开发者将完成特定需求功能的代码移入空的结构体中,便得到组件的完整的VHDL代码。
3.2 FPGA组件在SCA中的集成
SCA组件都需要通过CORBA进行通信,而FPGA组件不使用CORBA,它的实现可分为实现体(worker)和通用代理(generic proxy)两部分。其中worker是在SHP容器中执行的功能组件实体;generic proxy相当于SCA中的适配器。
通用代理是SCA适配器概念的实例化,是由SHP逻辑设备的每一个“执行”操作创建的CORBA对象,类似于应用工厂在每一次“创建”操作时创建CF∷Application对象以及域管理器在每一次“安装”操作时创建应用工厂。当要求SHP逻辑设备实例化SHP组件时,通过使用load、execute命令创建代表SHP容器中实体的本地CORBA对象。它可以与SHP容器通信,用于下载、创建、控制和配置worker。相对于GPP逻辑设备的执行操作会产生一个GPP组件实现本身所对应的CORBA对象索引,SHP逻辑设备的执行操作会产生相应的通用代理的CORBA对象索引。
本文基于FPGA主要实现了动态部分可重构实验平台,并将其应用到SDR硬件平台调制解调算法实现中,提高了系统的灵活性和可扩展性。同时讨论了FPGA组件集成到SCA中的设计方法以及相关的技术,从而能够缩短系统的开发设计时间,增强组件的可移植性、可复用性和重新被设计的能力。
参考文献
[1] MITOLA J.The software radio architecture[J].IEEE Communications Magazine,1995,33(5):26-38.
[2] MIL-STD-188-110B:Interoperability and performance standards for data modems[S].U.S.Department of Defense,2000.
[3] Early access partial reconfiguration user guide(UG208)[S]. 2006.
[4] Joint Tactical Radio System(JTRS) Joint Program Office. Extension for component portability for specialized hardware processors(SHP) to the JTRS software communication architecture[S].(SCA) Specification 7 March 2005.
[5] OCP International Partnership.Open core protocol specification[S].Release 3.0.