摘 要:使用基于模块化的动态部分重配置技术,构建了基于FPGA的动态可重配置软件无线电系统平台,并在该平台上设计了动态可重配置MIL-STD-188-110B短波收发机系统。与传统的全局静态重配置系统相比,动态可重配置系统扩展性好,配置速度快,用于存储配置比特流所需的空间较少,配置控制方式比较灵活。
关键词:FPGA;动态部分重配置;SDR;MIL-STD-188-110B技术标准;短波收发机
软件无线电作为一种以现代通信理论为基础、以数字信号处理为核心、以微电子技术为支撑的新的无线通信体系架构,具有灵活、开放和可扩展等优点。其基本思想是以一个通用、标准、模块化的硬件平台为依托,通过软件编程实现无线电的各种功能,从基于硬件、面向用途的电台设计方法中解放出来[1]。
现场可编程门阵列(FPGA)具有性能好、灵活性高和可重复编程的特点,非常适合构建软件无线电系统。在FPGA中构建软件无线电系统的传统方法是全局静态重配置,即为系统的每一种工作模式生成一个全局的逻辑电路,实际应用时通过对FPGA的多次全局静态重复编程分别实现各种工作模式[2]。这种方法有几个缺点:(1)重复编程需要较长的时间;(2)重复编程的控制不便,需要借助外部处理器的控制或者人为操作;(3)需要较多的额外存储空间来存储相应于各种工作模式的编程文件。
使用动态部分重配置技术构建动态可重配置系统是近年来出现的一种新方法,能够有效克服传统方法的缺点。基于FPGA的动态可重配置系统支持不同工作模式的逻辑,通过对具有专门缓存逻辑资源的FPGA进行局部芯片逻辑的重配置而快速实现[2],而且在对局部的芯片逻辑进行重配置的同时,芯片的其他部分保持其实现功能不变且处于不间断的运算状态。与传统方法相比,动态部分重配置的配置速度更快,配置控制方式更灵活,所需的用于存储的空间相应于不同工作模式的编程文件的额外存储空间更少。
MIL-STD-188-110B是针对长距离通信系统的音频数据调制解调器的美国军方短波通信系统标准[3]。本文基于Xilinx FPGA芯片XC2VP30构建了动态可重配置软件无线电系统平台,并在该平台上设计了动态可重配置MIL-STD-188-110B短波收发机系统。
1 动态部分重配置
1.1 动态部分重配置技术
目前,动态部分重配置技术主要有3种:基于模块化的技术、基于差异的技术和基于比特流的技术。
基于模块化的技术的基本思想是将系统划分为不同的模块,为每个模块在FPGA芯片中分配好位置,将各个模块单独激活,然后组装成系统,生成初始全局比特流,同时待重配置的各版本动态模块生成相应版本的部分重配置比特流。这种设计方法属于比较高层的解决方案,非常适合能够模块化的系统[4]。
基于差异的技术的基本思想是根据2个系统的差异生成部分重配置比特流。这种技术属于较底层的解决方案,适合于对电路性能进行细致的调整和优化,能对系统进行微调[4]。
基于比特流技术的基本思想是分析配置文件,通过直接对比特流文件进行操作,生成不同的部分配置文件。这种技术能够直接对比特流进行修改,使动态重配置比较灵活[5]。
本文根据软件无线电系统能够模块化的特点,使用基于模块化的技术构建动态可重配置软件无线电系统平台。
1.2 Xilinx FPGA芯片对动态部分重配置技术的支持
Xilinx FPGA芯片支持基于模块化的动态重配置技术,并且为模块之间的交流通信提供了一种特殊的总线宏。它允许信号穿过部分重配置模块的边界,保证穿过可重配置模块边界的布线资源是完全固定而且必须是静态的。每次实现部分重配置时,总线宏用来确定模块间的布线通道没有改变,保证正确的连接[6]。
Xilinx Virtex-II系列以后的FPGA芯片提供了内部配置访问端口ICAP(Internal Configuration Access Port),这使得FPGA中内嵌的处理器能够直接在可编程逻辑器件内部对其配置数据进行操作[7]。使用ICAP使得芯片上的静态模块可以控制该芯片上动态区域的逻辑重配置,当然在重配置期间必须保证静态模块的完整性。这种方式扩展了动态部分重配置的概念,被称为自重配置或者自重构,是动态部分重配置的一种特殊形式[8]。
此外,Xilinx还提供了对ICAP封装后的可直接挂在OPB总线上的IP核——OPB_HWICAP。
1.3 在Xilinx FPGA芯片中构建基于模块化的动态可重配置系统
在Xilinx FPGA芯