【题目编号】MC3-1284
【题目】制作 SDR 作品,特别是在制作直接射频采样的数字收发信机时,我们会使用一种叫做FPGA 的现场可编程数字逻辑器件。FPGA 在 SDR 系统中可以用来:
【答案】ABC(多选题)
[A]实现宽带数字混频、数字滤波、信道化样本抽取或采样率变换
[B]在器件内创建 CPU,或利用器件的内置 CPU 完整实现 SDR 系统
[C]提供并行运算功能,辅助提升外部计算机系统的信号处理能力
[D]充当固态硬盘,帮助外部计算机系统保存电台日志和比赛录音
考点速览
这道题问的是现场可编程门阵列(Field-Programmable Gate Array,FPGA)在软件无线电(Software Defined Radio,SDR)系统里能做什么。正确答案是前三项:做宽带数字混频、数字滤波、信道化抽取与采样率变换;在器件内部搭出处理器,或者用器件自带的处理器完整实现一套 SDR;提供并行运算能力,替外部计算机分担信号处理任务。第四项说 FPGA 可以充当固态硬盘保存日志与比赛录音,这是把它当成了存储设备,与它的本质不符。
FPGA 与软件无线电几乎是伴生关系。直接射频采样的架构把模数转换器尽量往前推,采样点一出来就是几十兆赫甚至上百兆赫的码流,通用处理器来不及逐个样本处理,只能由可编程逻辑把大部分运算在硬件层面并行摊开。
FPGA 到底是什么器件
从结构上说,FPGA 是一大片可配置的逻辑资源加可配置的互连网络。基本单元是查找表(Look-Up Table,LUT),本质是一小块可以写入任意真值表的存储器;若干个查找表配上触发器、进位链,组成一个逻辑片;逻辑片之间靠可编程的布线开关连起来,再加上块状存储器(Block RAM)、数字信号处理硬核(DSP slice)、高速串行收发器以及输入输出单元。配置数据上电时从外部存储器载入,之后器件就按这份“电路图纸”工作。
关键在于“可编程”三个字指的是逻辑功能可编程,而不是软件指令可编程。写进 FPGA 的是电路结构,做出来的是真正的并行硬件:同一个时钟周期里,成百上千条运算可以同时发生,彼此之间靠布线直接传递结果,没有取指令、没有中断、没有操作系统的调度开销。这种并行性与确定性,正是高速数字信号处理最需要的性质。
直接射频采样里 FPGA 干的三件事
第一件是采样率变换与信道化。模数转换器送来的码流速率很高,而解调一个几百赫兹到几千赫兹带宽的信号并不需要这么高的速率。做法是先做数字下变频,把感兴趣的频段搬到零中频附近,再用级联积分梳状滤波器(Cascaded Integrator-Comb filter,CIC)配合半带滤波器逐级抽取,把速率降到基带处理舒服的量级。发射方向反过来,做内插与上变频。整个过程在 FPGA 里以流水线方式并行运行,吞吐量远高于软件实现。这就是选项 A 描述的内容。
第二件是内置处理能力。现代 FPGA 内部可以实例化软核处理器,也可以选用集成了硬核处理器的器件。软核是用可编程逻辑搭出来的中央处理器,指令集与外围可以按需裁剪;硬核是芯片里已经做好的处理器子系统,与可编程逻辑通过片上总线相连。有了它,一套 SDR 的调制解调、协议处理、网络接口可以全在器件内部完成,不必外挂计算机。这就是选项 B 描述的内容。
第三件是对外提供算力。FPGA 可以通过高速串行接口或总线与计算机相连,把信道化、快速傅里叶变换、脉冲压缩这类运算密集的活儿接过来,计算机只负责显示、存储与人机交互。相比让计算机用软件逐样本处理,这种分工能显著降低延迟、提高可处理的瞬时带宽。这就是选项 C 描述的内容。
逐项辨析
选项 A 正确:宽带数字混频、数字滤波、信道化样本抽取与采样率变换,都是 FPGA 最本职的工作,靠的是内部并行的乘法器、加法器与存储器阵列。
选项 B 正确:FPGA 既可以用来搭建软核处理器,也可以直接使用器件集成的硬核处理器,配合可编程逻辑完整实现一套 SDR 系统,从射频前端控制到基带协议处理都放在一颗芯片里。
选项 C 正确:并行运算正是 FPGA 相对通用处理器的长处,用它辅助外部计算机完成信号处理,是软件无线电中常见的加速方案,尤其是在需要低延迟与大瞬时带宽的场合。
选项 D 错误:FPGA 不是存储器件,它自身没有闪存颗粒,不能作为固态硬盘使用。它内部确实有块状存储器,但那是给逻辑使用的片上缓存,容量以兆比特计,掉电即失,用来保存电台日志与比赛录音既不现实也没有接口基础。长期存储要靠外部硬盘或固态盘,FPGA 至多在其中承担存储控制器的角色,那与“充当固态硬盘”是两回事。
易混淆点:FPGA 与 CPU、GPU、存储器的分工
FPGA 常与中央处理器(Central Processing Unit,CPU)、图形处理器(Graphics Processing Unit,GPU)放在一起比较。CPU 擅长复杂的分支控制与串行逻辑,主频高但并行度有限;GPU 拥有大量运算单元,适合数据并行的浮点计算;FPGA 介于两者之间,能用较低的时钟频率换来大量并行的定制流水线,延迟低且可预测,特别适合必须实时完成的信号处理。三者不是替代关系,实际系统里常常协同工作。
另一个常见的混淆是把 FPGA 与专用集成电路(Application-Specific Integrated Circuit,ASIC)混为一谈。两者都能实现定制的数字逻辑,差别在于 ASIC 一旦流片电路就固定了,适合大批量;FPGA 的电路可以反复改写,适合小批量与需要迭代或现场升级的场合,代价是单位成本较高。业余无线电的 SDR 项目多采用 FPGA 而不是 ASIC,原因就在这里。
存储这一侧要单独说清楚。FPGA 上电后从外部配置存储器载入配置数据,这片存储器是非易失的;运行中用到的块状存储器则是易失的片上资源。两者都与“给计算机当硬盘”无关。电台日志与比赛录音属于文件系统的长期存储,归硬盘、固态盘或网络存储负责,采样数据至多在 FPGA 内短暂缓存。
应试要点
FPGA 在 SDR 里的三种用途记成三句话:算得快(宽带混频、滤波、抽取与采样率变换)、能自成一机(内含或内建处理器,独立跑完整系统)、能当外援(并行运算为计算机分担信号处理)。答案选前三项。第四项把它当成存放日志与录音的固态硬盘,错在把可编程逻辑器件当成了存储器件——FPGA 里只有掉电即失的片上缓存,长期存储要靠真正的磁盘或固态盘。