基于FPGA的动态可重配置短波收发机
扫描二维码
随时随地手机看文章
摘 要: 使用基于模块化的动态部分重配置技术,构建了基于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芯片中构建基于模块化的动态可重配置系统需遵循如下的流程:
(1)进行动态模块和静态模块的划分,将需要重配置的子模块划入动态模块,其他子模块为静态模块;
(2)对顶层逻辑、动态模块和静态模块分别进行设计与综合;
(3)编写系统约束文件,其主要内容包括:为各I/O口指定管脚约束、为各模块分配位置、指定待重配置的模块为动态模块、指定各总线宏和其他顶层逻辑的位置及指定时间约束等;
(4)对动态模块和静态模块分别进行激活,即分别进行转换、映射和布局布线等操作;
(5)将各模块激活后的布线结果组装起来,与顶层逻辑一同进行转换、映射和布局布线,生成最终的全局布线图;
(6)由全局布线图生成初始全局比特流,由各不同版本的动态模块的布线图生成部分重配置比特流[4]。
2 动态可重配置MIL-STD-188-110B短波收发机
2.1 动态可重配置软件无线电系统平台
基于Xilinx FPGA芯片XC2VP30的动态可重配置软件无线电系统平台如图1所示。该系统平台将FPGA芯片分为3部分,即两侧的静态模块与中间的动态模块。实际应用时,应将用户逻辑系统划分为多个子模块,并依据各子模块是否需要重配置,将其分别放置在FPGA芯片的静态模块和动态模块中。静态模块与动态模块之间的通信通过横跨边界的总线宏实现。
该系统平台中的重配置控制系统以软核处理器MicroBlaze为核心,片上外设总线OPB上连接了DDR SDRAM Controller、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,完成重配置,以实现所需选择的工作模式。
在该平台上构建的动态可重配置系统扩展性好,如果需要支持一种新的工作模式,只需构建这种工作模式相应的动态模块,并产生部分重配置比特流即可。系统重配置的控制方式也比较灵活,实际应用时可依需要对该平台进行修改,使重配置的发生由开发板上的按键、开关或其他内部和外部中断来控制。
此外,与全局比特流相比,部分重配置比特流较小,所需的存储空间较少。同时由于配置时间与比特流大小成正比[4],部分重配置所需时间较少,配置速度较快。
2.2 MIL-STD-188-110B短波收发机
MIL-STD-188-110B短波收发机框图如图2所示[3]。
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芯片XC2VP30构建了动态可重配置软件无线电系统平台,并在该系统平台上实现了动态可重配置MIL-STD-188-110B短波收发机系统。该系统可以通过动态部分重配置在多种工作模式间进行切换,系统扩展性好,配置速度快,用于存储配置比特流所需的空间较少,配置控制方式灵活。实验表明,使用动态部分重配置技术是构建软件无线电系统的一种有效方式。
参考文献
[1] MITOLA J.The software radio architecture[J].IEEE Communications Magazine,1995,33(5):25-38.
[2] 尚丽娜.FPGA动态可重配置研究[D].浙江大学硕士学位论文,2006.
[3] U.S.Department of Defense.MIL-STD-188-110B:Interoperability and Performance Standards for Data Modems[S]. 2000.
[4] Xilinx.Development system reference guide,chapter 5:partial Reconfiguration[EB/OL].http://toolbox.xilinx.com/docsan/xilinx10/books/docs/dev/dev.pdf.
[5] 朱凯科.FPGA动态可重配置设计方法研究[D].浙江大学硕士学位论文,2006.
[6] 尚丽娜,徐新民.FPGA动态重构技术在算术逻辑单元中的应用[J].电子器件,2007,30(3).
[7] 赵远宁.基于Xilinx Virtex-II Pro的过程级动态部分可重配置系统设计与实现[D].湖南大学硕士学位论文,2008.
[8] 李涛.动态重配置系统若干关键问题的研究[D].南开大学博士学位论文,2007.