现代fpga,如第三代USRP产品中的Xilinx™7系列器件,以可编程逻辑的形式提供了令人难以置信的计算能力。然而,利用传统FPGA设计流程的巨大计算能力可能很困难,而且用FPGA加速基于主机的设计历来是一项复杂的任务。这就是RFNoC™(射频片上网络)所面临的挑战。
RFNoC软件的目标是减少经验丰富的FPGA工程师将IP集成到USRP信号处理链中的开发时间。使用RFNoC,您可以使用与创建基于主机的流程图(应用程序)相同的工作流,直接从GNU Radio Companion创建FPGA应用程序。


下面是一个使用GNU Radio Companion构建的RFNoC流程图示例。有了这四个块,数据在x86主机PC上生成,卸载到USRP的FPGA进行滤波,然后带回主机进行图形绘制:
RFNoC是一种网络分布式异构处理工具,专注于在USRP设备中实现FPGA处理。它允许您以透明的方式在FPGA上移动数据,从而在应用程序中实现基于主机和基于FPGA的处理的无缝使用。信号处理算法包含称为“NoC块”的模块,并提供接口包装器来封装现有或外部IP以与RFNoC一起使用。例如,这允许您导入Xilinx™CoreGen™IP块,并立即在RFNoC应用程序中使用它们。NoC模块的内部完全独立于任何其他模块,可以使用支持AXI流接口的任何工具进行设计,包括VHDL, Verilog和Xilinx™Vivado™HLS。
RFNoC集成了UHD™软件,所有第三代USRP设备(X300系列,E300系列)都支持RFNoC开箱即用。与UHD一样,RFNoC也是免费和开源软件(LGPL),完整的源代码可以在我们的公共代码存储库中找到。