软件无线电(softwareradio)在一个开放的公共硬件平台上利用不同可编程的软件方法实现所需要的无线
电系统。简称SWR。理想的软件无线电应当是一种全部可软件编程的无线电,并以无线电平台具有最大的灵活性为特征。全部可编程包括可编程射频(RF)波段、信道接入方式和信道调制。它具有灵活、开放和可扩展等优点。其基本思想是以一个通用、标准、模块化的硬件平台为依托,通过软件编程实现无线电的各种功能,从基于硬件、面向用途的电台设计方法中解放出来。
FPGA具有性能好、灵活性高和可重复编程的特点,非常适合构建软件无线电系统。在FPGA中构建软件无线电系统的传统方法是全局静态重配置,即为系统的每一种工作模式生成一个全局的逻辑电路,实际应用时通过对FPGA的多次全局静态重复编程分别实现各种工作模式。这种方法有几个缺点:(1)重复编程需要较长的时间;(2)重复编程的控制不便,需要借助外部处理器的控制或者人为操作;(3)需要较多的额外存储空间来存储相应于各种工作模式的编程文件。
传统的基于模块化的动态可重配置系统只有1个动态模块。在构建系统时,首先进行动态模块和静态模块的划分,将需要重配置的子模块划人动态模块,其余子模块划入静态模块,重配置是对动态模块进行的。这种动态可重配置系统的主要缺点是重配置的灵活性不够,不能对各子模块进行单独地重配置。在动态模块中的1个子模块需要更新时,需要对整个动态模块进行重配置。
MIL-STD-188-110B是针对长距离通信系统的音频数据调制解调器的美国军方短波通信系统标准。本文基于XilinxFPGA芯片XC2VP30构建了动态可重配置软件无线电系统平台,并在该平台上设计了动态可重配置MIL-STD-188-110B短波收发机系统。
1 动态部分重配置
1.1 动态部分重配置技术
使用动态部分重配置技术构建动态可重配置系统是近年来出现的一种新的方法,是当前FPGA的主要发展方向和研究热点之一。基于FPGA的动态可重配置系统,指的是支持不同工作模式的逻辑,是通过对具有专门缓存逻辑资源的FPGA.进行局部的芯片逻辑的重配置而快速实现,而且在对局部的芯片逻辑进行重配置的同时,芯片的其他部分保持其实现功能不变且处于不问断的运算状态。动态可重配置系统具有配置速度快和可扩展性好等优点。
目前,动态部分重配置技术主要有3种:基于模块化的技术、基于差异的技术和基于比特流的技术。
基于模块化的技术的基本思想是将系统划分为不同的模块,为每个模块在FPGA芯片中分配好位置,将各个模块单独激活,然后组装成系统,生成初始全局比特流,同时待重配置的各版本动态模块生成相应版本的部分重配置比特流。这种设计方法属于比较高层的解决方案,非常适合能够模块化的系统。
基于差异的技术的基本思想是根据2个系统的差异生成部分重配置比特流。这种技术属于较底层的解决方案,适合于对电路性能进行细致的调整和优化,能对系统进行微调。
基于比特流技术的基本思想是分析配置文件,通过直接对比特流文件进行操作,生成不同的部分配置文件。这种技术能够直接对比特流进行修改,使动态重配置比较灵活。
本文根据软件无线电系统能够模块化的特点,使用基于模块化的技术构建动态可重配置软件无线电系统平台。
1.2 Xilinx FPGA芯片对动态部分重配置技术的支持
Xilinx公司是主要的FPGA芯片生产厂商之一。其生产的FPGA芯片支持基于模块化的动态部分重配置技术,并且为模块之间的通信提供了二种总线宏。它允许信号穿过部分重配置模块的边界,保证穿过可重配置模块边界的布线资源是完全固定而且必须是静态的。每次实现部分重配置时,总线宏用来确定模块间的布线通道没有改变,保证正确的连接。
Xilinx Virtex—lI系列以后的FPGA芯片提供了内部配置访问端121 ICAP(Internal Configuration Access Portl)这使得FPGA中内嵌的处理器能够直接在可编程逻辑器件内部对其配置数据进行操作。使用ICAP使得芯片上的静态模块可以控制该芯片上动态区域的逻辑重配置,但在重配置期间必须保证静态模块的完整性。这种方式扩展了动态部分重配置的概念,被称为自重配置或者自重构。是动态部分重配置的一种特殊形式。为方便对ICAP的使用,Xilinx公司还提供了对ICAP封装后的可直接挂在片上外设总线OPB(On—ChipPeripheral Bus)上的IP核——OPB—HWICAP。
1.3 在Xilinx FPGA芯片中构建基于模块化的动态可重配置系统
在Xilinx FPGA芯片中构建基于模块化的动态可重配置系统需遵循如下的流程:
(1)进行动态模块和静态模块的划分,将需要重配置的子模块划入动态模块,其他子模块为静态模块;
(2)对顶层逻辑、动态模块和静态模块分别进行设计与综合;
(3)编写系统约束文件,其主要内容包括:为各I/O口指定管脚约束、为各模块分配位置、指定待重配置的模块为动态模块、指定各总线宏和其他顶层逻辑的位置及指定时间约束等;
(4)对动态模块和静态模块分别进行激活,即分别进行转换、映射和布局布线等操作;
(5)将各模块激活后的布线结果组装起来,与顶层逻辑一同进行转换、映射和布局布线,生成最终的全局布线图;
(6)由全局布线图生成初始全局比特流,由各不同版本的动态模块的布线图生成部分重配置比特流。
2 动态可重配置MIL-STD-188-110B短波收发机
2.1 动态可重配置软件无线电系统平台
基于Xilinx FPGA芯片XC2VP30的动态可重配置软件无线电系统平台如图1所示。该系统平台将FPGA芯片分为3部分,即两侧的静态模块与中间的动态模块。实际应用时,应将用户逻辑系统划分为多个子模块,并依据各子模块是否需要重配置,将其分别放置在FPGA芯片的静态模块和动态模块中。静态模块与动态模块之间的通信通过横跨边界的总线宏实现。
该系统平台中的重配置控制系统以软核处理器MicroBlaze为核心,片上外设总线OPB上连接了DDRSDRAMController、OPB_HWICAP和UART Controller 3个模块。其中DDR SDRAM Controller为片外存储器DDR SDRAM的控制IP核,用来控制存储部分重配置比特流的DDR SDRAM;OPB_HWICAP用来控制内部配置访问端口ICAP;UART Controller用来控制串口,通过串口可以和主机进行通信。
Xilinx提供的OPB_HWICAP核为对ICAP封装后的可直接挂在OPB总线上的IP核,在该IP核的内部将OPB总线的接口逻辑与ICAP原语相连。由于ICAP位于FPGA芯片的右下角,因此在构建可重配置系统平台时,需要对该IP核进行修改,即将ICAP原语从OPB_HWICAP核中分离出来,将修改过的OPB_HWICAP核放在位于FPGA左侧的静态模块1中,将ICAP原语放在位于FPGA右侧的静态模块2中,修改后的OPB_HWICAP核与ICAP原语的通信通过跨越动态模块的总线宏实现。
在该平台上构建动态可重配置系统之后.按照前述构建动态可重配置系统的流程生成初始全局比特流和各动态模块的各版本的部分重配置比特流,并将部分重配置比特流存储在DDR SDRAM中。首先下载运行初始全局比特流,然后系统等待主机自串口发送的重配置命令。系统接收到重配置命令并对其解析之后.根据需要从DDR SDRAM中选择相应的部分重配置比特流送至ICAP,完成重配置以实现所需选择的工作模式。
在该平台上构建的动态可重配置系统扩展性好,如果需要支持一种新的工作模式,只需构建这种工作模式相应的动态模块,并产生部分重配置比特流即可。系统重配置的控制方式也比较灵活,实际应用时可依需要对该平台进行修改,使重配置的发生由开发板上的按键、开关或其他内部和外部中断来控制。
此外,与全局比特流相比,部分重配置比特流较小,所需的存储空间较少。同时由于配置时间与比特流大小成正比,部分重配置所需时间较少,配置速度较快。
2.2 MIL-STD-188-110B短波收发机
MIL-STD-188-110B短波收发机框图如图2所示。
MIL-STD-188-110B支持不同比特率和不同交织长度的多种工作模式,本文构建的动态可重配置MIL-STD-188-110B收发机支持的比特率为150 b/s、300 b/s、600 b/s和1 200 b/s,支持的交织长度为0.6 s和4.8 s,共有8种组合工作模式。在不同的工作模式下,发射机中交织、格雷映射、符号生成、插入同步前导头与训练序列这4个子模块的逻辑功能不同。与之相应,接收机中符号解析、格雷映射和解交织这3个子模块在不同工作模式下具有不同的逻辑功能。
2.3 动态可重配置MIL-STD-188-110B短波收发机
在动态可重配置系统平台上构建动态可重配置的MIL-STD-188-110B短波收发机,首先需要对系统进行动态模块与静态模块的划分。
发射机中交织、格雷映射、符号生成、插入同步前导头与训练序列这4个子模块的逻辑功能在不同的工作模式下是不同的,各子模块时钟的频率关系也有所不同。因此,在构建动态可重配置的发射机系统时,应将时钟生成模块及这4个子模块划为动态模块,其余子模块及重配置控制系统划为静态模块。
同样,在实现接收机时,将时钟生成模块及符号解析、格雷映射和解交织3个子模块划为动态模块,接收机的其余子模块及重配置控制系统划为静态模块。
动态可重配置的MIL-STD-188-110B发射机和接收机系统框图分别如图3(a)和图3(b)所示。
由其中一种工作模式生成初始全局比特流,所有8种工作模式的动态模块均生成相应的部分重配置比特流并存储于DDR SDRAM中。首先下载运行初始全局比特流,系统收到主机的重配置命令后,根据要求从DDR SDRAM中读出所需版本的部分重配置比特流,并将其送至内部配置访问端口ICAP,即可发生所需的动态部分重配置。
实验表明,该收发机可通过动态部分重配置在各种工作模式间进行切换,且在各种工作模式下均能够正常工作。发射机系统的一个部分重配置比特流的大小为269 KB,为全局比特流(1 415 KB)的19.0%,因而所需的用于存储配置比特流的空间较小,配置速度相对较快,所需配置时间约为全局配置时间的19.0%。接收机系统的一个部分重配置比特流的大小为217 KB,为全局比特流的15.3%。
该收发机系统的扩展性好,对于MIL-STD-188-110B标准所支持的其他工作模式,只需构建其动态模块,并生成相应的部分重配置比特流。系统的重配置还可依需要修改为由开关、按键或其他的中断控制。
本文基于Xilinx FPGA芯片构建了多模块动态可重配置系统平台,并在该系统平台上实现了一个多模块自重配置发射机系统。该系统的各子模块可以进行单独重配置,能够以较少数量的部分重配置比特流实现较多的组合工作模式。