APP下载

基于HLS的SAR回波模拟硬件加速设计

2018-06-11韩思齐韩力孙林吴琼之

电子设计工程 2018年11期
关键词:实部函数优化

韩思齐,韩力,孙林,吴琼之

(北京理工大学信息与电子学院,北京100081)

合成孔径雷达(Synthetic Aperture Radar,SAR)是一种有源微波成像系统,广泛应用于军事和民用的各个领域[1]。它解决了真实孔径雷达分辨率受天线孔径、距离、脉冲宽度等因素制约的问题,可获得二维高分辨率图像。但由于实验条件、成本等问题,获取特定情况下的SAR原始回波数据较为困难。因此,研制可灵活配置参数、快速产生不同工作状态下回波信号的模拟系统具有重要意义。

回波信号生成的实时性是衡量模拟系统的重要指标。回波模拟算法计算复杂度高,传统的SAR回波模拟一般在个人计算机(Personal Computer,PC机)平台实现,文献[2]提出通过改进算法,减少回波信号生成计算量;或借助多台PC机,并行计算数据,从而减少耗时[3];文献[4]提出了基于多图形处理器(Graphics Processing Unit,GPU)平台的回波模拟器。尽管如此,在大场景应用中,基于PC机平台的回波模拟仍然难以满足实时性需求。因此,将硬件加速[5]应用于SAR回波信号模拟,成为保障回波生成实时性的关键方法之一。

国内外学者对于SAR回波模拟的现场可编程门阵列(Field Programmable Gate Array,FPGA)硬件加速[6]进行了相关研究,应用结果表明,基于FPGA的SAR回波模拟平台可实现快速模拟、并提供高精度的回波数据[7]。但PC机平台的回波模拟算法均用高级语言描述,移植到硬件平台(如FPGA)时,需要开发者根据算法逻辑一步步转换为硬件描述语言,开发周期很长。在SAR回波模拟中,存在着精度不同的系统参数,并涉及到浮点数运算,这对于硬件描述语言来说极为复杂。此外,回波模拟的时序逻辑复杂,一般需设计有限状态机。不仅开发过程耗时较多,反复的寄存器传输级(Register Transfer Level,RTL)仿真及算法优化更加繁琐,如果无法减小这一环节的复杂度,将严重制约研究进度,影响研究成果。

为此,本文将介绍一种把FPGA应用于硬件加速的SAR实时回波模拟系统。该系统引入了高层次综合(High Level Synthesis,HLS)技术,用C或C++等高级语言实现FPGA开发的自动化。这种设计不仅极大地缩短了开发时间,还可发挥高级语言仿真迅速、调试便捷的优势,对算法进行优化调整[8],并具有很好的可移植性。最终实现了一套完整的SAR回波模拟数据生成、存储、验证及成像系统,在SAR的系统设计、测试检验等方面都有广泛的应用背景与需求。

1 高层次综合技术

随着数字系统集成度的不断提升,使用硬件描述语言的设计方式逐渐显露出不足之处。在大型数字电路设计中,将软件算法人工转换为硬件可表述语言十分繁琐。而高层次综合技术的实质,就是从行为级描述到门级电路结构描述的自动转换[9]。

文中所使用的高层次综合工具Vivado HLS,支持用户自定义数据类型(整数、定点或浮点),支持先进先出(First In First Out,FIFO)存储器、第4代高级可扩展接口(Advanced Extensible Interface 4,AXI4)、AXI4-Lite、AXI4-Stream[10]等通用接口,可灵活、快速地与系统中其他部分对接,还可在C/C++测试平台进行仿真,并高速转化为VHDL或Verilog硬件描述语言。Vivado HLS工作时自动将高级语言操作分解为按时钟周期的步骤,映射到硬件资源,进而产生有限状态机(Finite State Machine,FSM)来控制实际操作,最终输出RTL语言描述的工程文件。

高层次综合技术的关键一点是可以实现浮点数运算,这在本系统中具有重要意义。在某组SAR系统参数中,发射信号载波频率为109量级,而脉冲宽度为10-6量级,数量级相差如此之多的浮点数,如果在FPGA中转化为定点数运算,不仅开发过程复杂、修改不易,更会因多次截位等操作累积误差。而高层次综合则为高精度浮点运算提供了可能性,保障回波数据的精确度。

2 基于HLS的SAR回波模拟实现

2.1 回波模拟算法的软件实现

生成SAR回波信号时,先由基本参数计算调频斜率、SAR照射到的地面区域范围等;在某一采样时刻,累加所有目标的回波,并保存;循环上一步骤,直至采集完该位置的全部采样点;然后搭载SAR的飞行平台进入下一个方位向位置,继续循环以上步骤,直至照射完全部地面区域,获取完整回波。

其算法的实现流程如图1所示。

图1 SAR回波模拟算法流程图

其中,快时间域采样序列以数组的形式表示为:

式(1)中,Nf为距离向采样点数;i为第几个采样点。

慢时间域采样序列同样以数组的形式表示:

式(2)中,Ns为方位向采样点数;i为第几个采样点。

具体实现上述流程时,可加以简化。SAR回波由方位向和距离向的二维数据构成,而对于同一个方位向采样点,其方位向距离、距离向斜距及距离向时延不随距离向采样点变化。因此在生成回波数据时,将某一方位向采样点的计算结果存储起来,即可供该方位向采样点上的所有距离向采样点计算使用,不再需要在快时间域上逐一计算,从而将这一步骤的运算复杂度降低了(Nf-1)倍。

此外,不同参数的SAR系统具有相应的有效扫描范围。回波数据的二维数组中,有部分采样点为0。实际上,为0的采样点不需参与回波运算,只需判断是否在扫描范围之外;若是,则直接记为0。这样可避免不必要的运算过程,进一步减少时间消耗。

与其它回波模拟算法相比[11],此种算法虽然运算效率不是最高的,但具有通用性,可模拟多种模式下的回波。

2.2 基于HLS的硬件系统设计

高层次综合分为两个不同的阶段:

1)算法的综合,从代码中提取出操作步骤并分配至不同的时钟周期进行;

2)接口的综合,把顶层函数的变量和参数转换为带有握手信号的硬件端口。

针对这两个阶段,设计基于HLS的SAR回波模拟硬件系统。

2.2.1 HLS算法优化策略

C算法的仿真速度比相同算法在RTL的仿真速度快若干数量级,这为根据性能、资源、功耗等指标来细调架构、优化算法提供了可能。高层次综合技术可实现回波模拟算法的C语言描述,但C函数与硬件设备的映射关系不可忽视。在回波模拟硬件系统中,可根据硬件描述语言对应的FPGA实际工作流程,利用HLS工具对关键C函数进行流水线(PIPE⁃LINE)、循环展开(UNROLL)、循环并行等优化。

1)流水线:

流水线优化是指在不打破依赖关系的前提下,令函数或循环内的多个操作互相交叠。回波模拟算法的主函数中,有若干计算量较大的循环体。而某些循环体的各次循环之间没有依赖关系,可使用PIPELINE命令对其进行优化,插入预编译指令(#pragma HLS PIPELINE),使各次循环在前后操作时间上可以重叠,而不是按照C语言的顺序执行方式依次执行。

以慢时间域某一采样点的回波生成过程为例。回波模拟硬件系统依次对各个雷达目标进行回波模拟,此为第一重循环;对各个快时间域采样点,逐个计算距离向时间序列、回波相位等,进而生成回波的实部和虚部,此为第二重循环。

对于表1中的多重循环,如果直接对最外层循环使用PIPELINE优化指令(如表2中的第一行),会导致其内部的所有循环被展开[12]。这种方法可以有效缩短时延,但作为代价资源消耗会急剧增加,不符合用面积换取效率的合理性。应选择一个折衷的优化策略,即在不占用过多资源的前提下,尽可能地缩短时延。

表1 多重循环代码示例

表2 HLS工具的PIPELINE优化指令

经过分析和尝试,最终确定的回波模拟算法PIPELINE优化策略可以简述为:对第一重循环不使用流水线优化;在第二重循环中,将计算距离向时间序列、回波相位等,与生成回波实部、虚部的步骤合并,置于同一循环体中实现(以上步骤有顺序关系);再使用PIPELINE指令,使第二重循环可以在时间上重叠(如表2中的第二行)当前慢时间域采样点的距离向时间序列计算完毕后,即可进行下一采样点的处理,无需等待循环体内的操作全部完成、回波数据计算完毕后再进行。示意图如图2所示。

图2 PIPELINE优化策略示意图

PIPELINE优化前后的综合(Synthesis)报告如表3所示。

通过对比可明显看出,延迟(latency)和循环间隔(interval)的最大值与优化前相比减小了3个数量级,极大程度地提高了回波数据生成速率,进而提升硬件加速比。

2)循环并行:

对于同一函数中两个并列的循环,即使两循环没有任何依赖关系,在高层次综合时,依然会按照C函数的顺序执行方式,待前一循环执行完毕后,才开始下一循环。而映射到硬件系统后,应进行适当的并行化,以发挥FPGA的并行处理优势、加速运算过程。

表3 PIPELINE优化前后仿真报告

回波模拟的C函数中,回波实部和虚部的计算完全可以并行化,但如果在两个循环中分别实现,即如表4所示。

表4 C函数中顺序执行的两个并列循环

则两循环会顺序执行,即等待回波实部计算完毕后,再开始虚部的计算。这会导致回波的实部和虚部不能同时生成,进而增加回波模拟的整体时间。为解决该问题,可将这一步骤提取为一个子函数,计算实部和虚部时,分别以不同的参数在顶层C函数中调用该子函数,那么两个子函数可以同时执行了。

2.2.2 硬件设备接口设计

经过高层次综合后,顶层C函数的参数会映射为硬件设备的输入/输出(Input/Output,I/O)端口。据此,把需要对应硬件接口的函数变量,写入顶层C函数的输入、输出参数中。

为便于人机交互,回波模拟硬件加速系统应具备与上位机通信的功能。上位机可对回波模拟系统配置SAR系统参数、控制指令等,回波模拟系统则将生成的回波数据回传至上位机。因此,顶层C函数的输入变量有系统参数、控制指令等,输出变量为实时生成的SAR回波数据。

回波由实部和虚部构成,C语言中无虚数表示,所以将回波的实部和虚部分别存入两个单精度浮点(float)型数组Echorl和Echoim。综合后,数组会映射会块随机存储器(block random-access memory,block RAM)端口。

Vivado HLS支持多种通用的顶层函数I/O协议,通过指定顶层函数参数的不同I/O协议,使得回波模拟系统具有灵活的可移植性。以对接外设组件互连标准(Peripheral Component Interconnection,PCI)总线的应用场景为例,即回波模拟硬件系统通过PCI总线与上位机建立通信连接。可采用AXI4总线协议,即:将顶层函数的输入变量端口类型设置为AXI LITE-Slave,以便上位机下发SAR预置参数、控制指令等;输出变量端口类型设置为AXI STREAM(即axis),生成的回波以数据流形式输出,先经过一级FIFO缓冲,再与PCI通信部分的AXItoPCI(AXI协议转为PCI协议)模块相连。如图3所示。

图3 回波模拟部分与PCI通信部分的端口对接示意图

配置顶层函数I/O协议时,除了可在Directive窗口中操作,也可通过在源代码中添加预编译指令实现,如:

#pragma HLS INTERFACE axis port=Echorl(将输出变量Echorl的端口类型设置为axis)

3 结果分析与评估

以Xilinx公司的Kintex-7系列FPGA XC7K325T为硬件加速平台,实时生成特定场景下的SAR回波数据。在Vivado 2015.1中建立工程,调用Vivado HLS导出的回波模拟知识产权(intellectual property,IP)核,并添加其他模块(时钟、复位、PCI通信等),成后续的回波模拟硬件系统设计工作。

选择PCI9054芯片实现硬件平台与上位机的PCI总线通信,该芯片的数据位为32位,与SAR回波模拟C函数的float型输出变量位宽一致。以3个点目标的机载SAR回波模拟应用场景为例,选取3个方位向、距离向坐标两两相同的点目标。系统参数如表5所示。

表5 SAR回波模拟系统参数

3.1 回波模拟的HLS实现结果验证

为验证Vivado HLS中回波模拟模块的逻辑控制及输出数据的正确性、以便与后续模块对接,在RTL仿真完成后,将生成的回波数据导入Matlab平台,进行对比验证。

如表5所述的SAR系统中,生成的回波为2048×8192的二维矩阵;共有2048个方位向采样点,每个采样点的数据深度为8192,即距离向采样点数为8192。RTL仿真生成的原始回波数据实部及虚部均为32位二进制数,需按照单精度浮点数的规律转化为十进制有符号数。

SAR回波的每个方位向采样点数据均应为线性调频信号(即chirp),在Matlab中绘制其时域实部图、时域相位图及快速傅里叶变换(Fast Fourier Transformation,FFT)后频谱的幅度谱(如图4所示,其中横轴为距离向采样点),结果分别符合chirp信号的频率随时间线性增加、时域相位为二次函数曲线、频谱的幅度谱为方波的特性。

与相同系统参数下Matlab生成的原始回波数据比较,差值数量级为10-7。这与float数据类型的机器精度相符,验证了硬件系统回波模拟结果的正确性。

3.2 回波模拟的FPGA资源消耗测试

将回波模拟模块导出为IP核,生成一个方位向采样点的回波数据对FPGA内部资源的消耗及时钟信息,如表6、表7所示。

图4 RTL仿真的回波数据

表6 回波模拟的FPGA资源消耗

表7 回波模拟的FPGA时钟信息

以100 MHz为时钟频率约束条件时,在XC7K325T FPGA上完成布局、布线后,时钟可达到114.3 MHz。

3.3 回波模拟成像分析及评估

对回波模拟硬件系统的回波数据进行距离-多普勒(Range-Doppler,RD)算法成像[13],3个点目标的原始回波数据经二维脉冲压缩后,在距离向和方位向均压缩为辛格函数[14]。图5(a)为mesh函数绘制的距离向-方位向坐标系下的三维表面网格图;图5(b)为地面x-y坐标系中3个点目标的二维位置示意图,从图中可直接读出3个点目标的坐标位置,与初始设定值(200,10043)、(40,10043)、(40,10214)基本相符,验证了该SAR回波模拟硬件加速设计的正确性。

图5 3个点目标的回波模拟成像结果

进行成像处理后,继续对点目标成像质量进行评估[15]。主要有以下指标,如表8、表9中所示。

表8 峰值旁瓣比(PSLR)

表9 积分旁瓣比(ISLR)

综合以上结果,回波模拟数据的实际值与理论值基本相符,成像结果通过了质量评估,证实了基于HLS的SAR回波模拟硬件加速设计具有可靠性和可行性。

3.4 硬件加速比

以表4中的SAR系统参数为例,测试回波模拟硬件系统的硬件加速比[16]。所用的软件计算平台为一台搭载 Intel Core i7-4550U CPU(1.5 GHz)的 PC机,在Matlab中完成SAR回波模拟的仿真。硬件系统选用的FPGA芯片型号为 Xilinx XC7K325T,在Vivado 2015.1中对系统进行硬件仿真,时钟频率设置为114 MHz。软件和硬件的计算时间及硬件加速比在表10中列出。

表10 硬件加速比

4 结论

本文从合成孔径雷达对回波模拟的需求出发,实现了基于HLS的SAR回波模拟硬件加速设计。在硬件系统设计中,选择了以Xilinx Kintex-7为处理核心的平台进行硬件加速;并引入高层次综合技术,在Vivado HLS中用C语言实现回波模拟算法,自动完成高级语言到RTL语言的转换。此外,选择AXI4通信接口协议,使回波模拟硬件系统具备灵活的可移植性;使用优化策略对算法进行调整,减小延迟时间,发挥硬件计算的并行优势,进一步提高了硬件加速比。

本设计可满足不同体制SAR系统的回波模拟需求,具有稳定性和通用性。并验证了高层次综合技术在硬件加速领域应用的可行性,具有广阔的发展前景。在未来的工作中,将继续针对硬件层面改善算法,弥补高层次综合的不足,提高FPGA处理效率;研究HLS中时间延迟与资源占用的关系,考虑不同硬件设备的具体应用场景,以资源利用最大化为目标,缩短模块功能实现的耗时。

猜你喜欢

实部函数优化
超限高层建筑结构设计与优化思考
复数知识核心考点综合演练
二次函数
民用建筑防烟排烟设计优化探讨
第3讲 “函数”复习精讲
关于优化消防安全告知承诺的一些思考
一道优化题的几何解法
二次函数
函数备考精讲
例谈复数应用中的计算两次方法