APP下载

基于ROACH2的数字终端实验平台搭建*

2020-05-12张海龙托乎提努尔

天文研究与技术 2020年2期
关键词:终端模块信号

张 萌,张海龙,3,王 杰,李 健,托乎提努尔

(1. 中国科学院新疆天文台,新疆 乌鲁木齐 830011;2. 中国科学院大学,北京 100049;3. 中国科学院射电天文重点实验室,江苏 南京 210008)

采用多波束及相控阵馈源(1)https://www.skatelescope.org/phased-array-feed/(Phased Array Feed, PAF)接收技术使射电观测获取的天文信号数据量成倍增长,观测数据需要实时处理来克服传输和存储速度的瓶颈。应用高速宽带数字终端[1]进行信号的实时处理,可以满足未来海量数据实时处理的需求,当前数字终端系统主要包括对天文信号控制和预处理的可编程硬件平台和进行控制及复杂处理的高性能计算系统。

CASPER[2](Collaboration for Astronomy Signal Processing and Electronics Research)的硬件平台因其免费、开源、可重用,得到许多大型射电望远镜的数字终端平台使用。美国绿岸望远镜(Green Bank Telescope, GBT)的脉冲星终端系统GUPPI[3](Green Bank Ultimate Pulsar Processing Instrument)、阿雷西博射电望远镜(Arecibo Radio Telescope)使用的脉冲星终端PUPPI(2)https://www.naic.edu/puppi-observing/(The Puerto Rico Ultimate Pulsar Processing Instrument),以及澳大利亚帕克斯望远镜(Parkes)的CASPSR[4](CASPER Parkes Swinburne Recorder)均采用CASPER早期的硬件系统IBOB[5](Interconnect Break-out Board)和BEE2[6](Berkeley Emulation Engine)。美国绿岸望远镜的VEGAS(3)http://www.gb.nrao.edu/vegas/report/,德国埃费尔斯贝格(Effelsberg)的PSRIX[7]终端,以及澳大利亚帕克斯的BPSR[8](Berkeley Parkes Swinburne Recorder)采用了第1代ROACH(Reconfigurable Open Architecture Computing Hardware)系统构建,利用多台ROACH进行通道划分,将来自IBOB和BEE2平台的信号合并到一个板中。我国贵州500米口径球面射电望远镜(Five-hundred-meter Aperture Spherical Telescope, FAST)[9-10]、上海天马望远镜(Tianma)(4)http://radio.shao.cas.cn均使用ROACH2(5)https://casper.ssl.berkeley.edu/wiki/ROACH2构建终端系统进行频率通道划分,完成高速数据流处理。

为进一步研究现有的数字终端系统,实现高速天文信号的实时处理,需要构建稳定的实验平台,为高速天文信号实时处理研究提供良好的实验环境,由于CASPER的数字终端软硬件平台通用性和开源性,本文基于CASPER软硬件实现了实验平台的搭建,并对所搭建的实验环境进行了系统测试。

1 硬件平台

CASPER团组研发设计的许多设备都是基于Xilinx公司的现场可编程门阵列(Field-Programmable Gate Array, FPGA)[11]芯片,通常典型的CASPER信号处理平台都有一个或者两个模数转换器(Analog-to-Digital Converter, ADC)与其连接,进行信号采集和少量的预处理,然后通过网络链路将数据发送到其他现场可编程门阵列板或者中央处理器、图形处理器,进行复杂的信号处理。目前可用的CASPER支持的现场可编程门阵列板有IBOB, ROACH系列和SKARAB, SNAP系列。本文搭建的实验平台选用稳定且使用较广泛的硬件平台ROACH2,实物如图1。

图1 ROACH2实物图

Fig. 1 The picture of ROACH2

ROACH系列板卡是可重构开放式计算机硬件体系结构,是用于射电天文信号处理的独立可编程平台。ROACH2是ROACH系列的最新版本,使用Xilinx Virtex-6(6)https://www.xilinx.com/support/documentation/data_sheets/ds150.pdf系列现场可编程门阵列,保留了ROACH的优点,但在处理能力、输入/输出(I/O)吞吐量和内存带宽方面提高了总体性能。它使用与ROACH相同的PowerPC 440EPx,但是增加了用于芯片内部测试的联合测试工作组(7)https://zh.wikipedia.org/wiki/JTAG(Joint Test Action Group, JTAG)接口。

如图2,从结构上看,ROACH2硬件平台主要分成5个相互独立的子系统,包括现场可编程门阵列子系统、处理器子系统、板卡管理子系统、测试调试子系统和信号存储子系统。核心部分是Virtex-6系列XC6VSX475T FPGA,用于信号处理;PowerPC 440EPx独立处理器运行简易Linux系统提供控制功能;4个36 × 2 M的四倍数据倍率(Quad Data Rate 2, QDR2)SRAMs,以及单个72 bit的DDR3 RDIMM(Registered Dual In-line Memory Module)卡槽连接到现场可编程门阵列,可用于数据计算与存储;两个ZDOK接口,用于连接模数转换器等设备,4个SFP+(Quad SFP+ Mezzanine board)端口,支持多达8 × 10 GE的数据链路,能够将数据包向下一级高速输出。

2 软件环境

CASPER工具包提供了一个用于硬件平台的设计环境。主要组件简称MSSGE(8)https://casper.ssl.berkeley.edu/wiki/MSSGE_Toolflow(MATLAB/Simulink/System Generator/EDK),MSSGE工具包是针对基于CASPER硬件平台的一个软件开发平台,它们整合在一起,形成一个设计和开发的平台环境。这个开发环境早期是由伯克利无线电研究中心为伯克利仿真引擎(Berkeley Emulation Egine, BEE)硬件平台设计开发的BEE_XPS工具包,后来升级扩展到可以通用的CASPER硬件平台。开发环境提供了图形化的设计界面,使用Xilinx系统生成工具包,使得设计编译实现过程整体化。

MSSGE工具包的各个组件中,MATLAB为Simulink提供了一个可编写脚本的后端,所有脚本均可通过MATLAB实现。Simulink既可作为CASPER ROACH2的系统模型的原理绘图工具,也可作为一种高层次的用于信号处理系统设计的仿真环境。系统生成器(System Generator)可以用于现场可编程门阵列编程实现,是Xilinx公司的系统级设计工具,可以将其理解成一个转换工具,自动地将Simulink中设计的抽象模块映射成可靠的硬件实现[12]。系统生成器在编译期间将Simulink原理图转换为HDL代码(VHDL或Verilog),大大简化了开发数字信号处理算法的设计过程。嵌入式开发套件(Embedded Development Kit, EDK)用于现场可编程门阵列的嵌入式开发,CASPER硬件的编译基于Xilinx EDK,通过它能够将上一步生成的硬件描述语言的代码编译成比特流文件并转换成操作系统可执行的bof文件,EDK是ISE的扩展功能工具集合。

该实验平台软件可搭建在Ubuntu x64, RHEL, CentOS x64系统上。经过实际测试MALTAB服务包与Xilinx的XSG,系统生成器存在版本兼容差异,须下载对应版本的MATLAB和Xilinx以及相应MSSGE库。

本文以系统CentOS 7,软件MATLAB 2012b,Xilinx14.7为例说明,环境搭建流程如图3,在CentOS 7上依次安装Xilinx14.7,MATLAB2012b。工具包需要两个库,即DSP块的CASPER库和硬件支持块的BEE XPS库,现在两个库已捆绑在一个mlib_devel目录中,用户可以从github下载,需要注意的是,在开发环境搭建过程中,应注意软件版本、安装路径与库文件存放路径一致。

图3 软件安装流程图

Fig.3 Flow chart of software installation

在Xilinx14版本中删除了ROACH2依赖的部分模块,这些模块存在于EDK中,称为pcores(peripheral cores),因此,需要将删除的部分复制到XPS_ROACH2_base/pcores文件夹中进行更新。下载并安装完成后,编辑startsg的默认路径为文件存放的真实路径。更改完成后直接运行startsg,即可启动MATLAB,等待成功导入Xilinx库和CASPER库后可进行设计工作。

3 实验分析

实验平台的软硬件系统搭建完成后,需要实例验证其可用性。本文利用CASPER平台提供的实例对搭建的平台进行测试。

实例测试实现了从平台软件设计到硬件执行的完整处理流程,如图4。使用MATLAB中的Simulink进行设计、仿真,使用casper_xps编译文件,文件编译生成可执行文件后,将后缀名为bof的可执行文件上传到ROACH2平台的相应文件夹中,通过Python脚本远程控制文件在ROACH2上执行。

图4 实验开发流程

Fig.4 Flow chart of experimental process

首先在Simulink编译界面进行图形化设计。创建新的仿真图形,添加Xilinx系统生成器和XSG核心配置块,然后按照描述的设计构架图,通过定位库基本元素选择需要的模块,并设置参数,搭建完整的顶层设计结构,本文以建立宽带频谱仪为例,其整体图形化程序如图5。在Simulink中建立架构图时主要应用3个库:CASPER XPS库,包括封装了硬件之间接口等的黄色块;CASPER DSP库,包括实现输出DSP功能等的绿色块;Xilinx库,提供复用、延迟、添加等低级功能的蓝色块。

在Simulink中的设计完成之后,可直接在其内部进行仿真,确保在编译之前没有错误,点击顶部工具栏中的执行按钮,即可实现仿真。如有错误则弹出诊断窗口,可以单独处理,有些设计也可以查看示波器中的显示是否与设置一致,以判断对错。

验证设计功能正确后,需将其编译成现场可编程门阵列可以识别的代码。在MATLAB中输入指令casper_xps,启动编译器模块,这时会弹出如图6的编译界面,所有选项保持默认,确保列出的设计是想要编译的,然后单击gcs返回最近选择的模块所在的系统路径,最后单击Run XPS开始编译。经过较长一段时间的等待,编译正确并且完成之后,弹出一个编译成功的对话框,如图7。

编译通过后在右侧文件夹目录栏显示生成了多个文件,其中,在bit_files文件夹中能够找到后缀名为bof的二进制文件,*.bof文件即是可以在ROACH2上运行的文件。

设计、仿真、执行、编译等过程都在CASPER的软件开发平台上实现,要在硬件平台ROACH2上执行下一步操作,需要将编译生成的bof文件上传到ROACH2平台相应文件夹中。经过多次尝试,针对bof文件上传,建议采用网络文件系统(Network File System, NFS)方式,远程挂载其它服务器相关目录到ROACH2平台相应目录,这样只需复制bof文件到服务器上即可实现bof文件上传。远程控制将编译的可执行文件在ROACH2上运行,完成配置和通信并实现显示输出。

本文以建立2 048通道的频谱仪为例,使用BPSG4(9)https://www.aaronia.com/products/signal-generators/Signal-Generator-BPSG4/信号发生器产生800 MHz时钟信号,将时钟源连接到模数转换器上的clk_i,并将ROACH2的时钟频率设置为200 MHz,输入信号由模数转换器数字化产生4个并行时间序列。利用python控制频谱仪在ROACH2上执行,将其转换为频域信号,最终输出频谱。

实验过程中,首先利用噪声源产生宽带信号,再利用带宽为98~122 MHz的带通滤波器选择指定范围内的频率分量,积分60次时的信号频谱如图8。

搭建的实验平台可以通过10 GbE的SFP+端口实现实验平台硬件设备之间的数据传输,通过PPC的1 GbE端口读出预处理数据,通过ZDOK端口传输模数转换器数字化信号到现场可编程门阵列;可在Simulink设计中嵌入HDL定义的模块并进行实例化,创建新的Xilinx模块、CASPER模块;利用Simulink和CASPER库中的模块,可以构建新的硬件设计,实现相关的天文信号处理功能。经过测试,本文搭建的实验平台可满足射电天文数字终端算法测试的需求。

由于操作系统及应用软件版本不断更新并且相互不兼容,在实验过程中遇到了一系列版本不匹配问题。由于软硬件平台的更新换代,设计模块也在不断修正、替换、弃用、添加等,都影响对不同版本库的调用,在建设过程中遇到了模块版本老、EDK版本落后、参数不存在等报错提示,通过尝试替换不同版本的软件包解决了相关问题。CASPER教程说明现已不在原网站上更新,本文实验平台搭建涉及的库、实验中的bof文件可以到新疆天文台数据中心下载,网址http://data.xao.ac.cn/static/RAOCH2_platform.tar.gz。

图6 编译启动界面

Fig.6 Compile startup interface

图7 编译通过图示

Fig.7 The diagram of successful compilation

图8 带宽98~122 MHz信号频谱

Fig.8 Bandwidth 98-122MHz signal spectrum

4 总 结

本文根据射电天文海量信号实时处理的需求,对数字终端系统环境建设进行了研究,借助通用性良好的CAPSER硬件开发平台及其相应软件环境,搭建了基于ROACH2的数字终端系统实验平台。利用CAPSER提供的示例对搭建的实验平台进行了测试、调试和分析,实现了相关实例设计、仿真、编译、运行的完整过程。实验结果表明,本文所搭建的平台运行平稳、可靠。目前所搭建的数字终端环境已经应用在脉冲星信号仿真处理、射频干扰抑制算法测试和高速数字信号传输等相关研究领域。

猜你喜欢

终端模块信号
28通道收发处理模块设计
“选修3—3”模块的复习备考
复杂线束在双BCI耦合下的终端响应机理
完形填空二则
X美术馆首届三年展:“终端〉_How Do We Begin?”
孩子停止长个的信号
基于声波检测的地下防盗终端
基于FPGA的多功能信号发生器的设计
“吃人不吐骨头”的终端为王
集成水空中冷器的进气模块