RFNoC工具链简介

这里介绍的RFNoC 4.0 之后的工具链。在早些时候的某个项目中使用了RFNoC的早期版本(UHD-3.14),那时候RFNoC的工具链还有诸多的bug,性能也是一般。

但是在RFNoC 4.0 之后 RFNoC将作为UHD的核心组件默认开启,这就意味着项目组认为RFNoC 4.0足以提供足够的性能来实现标准化和FPGA程序的架构化。

Starting with UHD 3.15, RFNoC is enabled by default, and starting with UHD 4.0, it can no longer be disabled, so no additional instructions are necessary to install support for RFNoC in UHD.

因此,在这介绍RFNoC 4.0版本。

1 rfnoc_image_builder

在之前的文章中提到过,RFNoC本质上是提供了FPGA的标准化编程接口和框架,因此自定义或使能一个RFNoC模块就必将涉及到FPGA工程的编译(implementation),因此 rfnoc_image_builder 就是提供了一个自动化编译FPGA工程的脚本工具。

1.1 参数简介

运行

rfnoc_image_builder --help

可以查看帮助信息:

  • -y: Path to the RFNoC image core YAML file
  • -t: 是编译的目标,其中可在Generation 3 USRP Build Documentation 页面中找到可用的目标,在此简单罗列
    • E310_SG1 or E310: Builds the USRP E310 (speed grade 1).
    • E310_SG3 or E310_sg3: Builds the USRP E310 (speed grade 3).
    • E310_SG1_IDLE: Builds the USRP E310 idle design (speed grade 1).
    • E310_SG3_IDLE: Builds the USRP E310 idle design (sSpeed grade 3).
  • -l debug: 打开编译log的debug级别,鉴于UHD编译脚本每次编译都会重新启动编译(并不是增量编译),因此建议每次都加上这个参数!
  • --generate-only: 只生成HDL文件,但是不启动编译,之后可以用make <target>来手动启动编译,其中<target>-t
  • -I: 包含out-of-tree block 的 描述文件(yml)的路径,如果是自定义rfnoc模块就需要加上该参数
  • -F: FPGA源文件的路径,(如<repo>/fpga),该参数可以在你魔改FPGA代码或者当前工作目录不包括fpga源码时使用

1.2 举例

  • 编译E312原始镜像
cd <repo>/fpga/usrp3/top/e31x/
rfnoc_image_builder -y ./e310_rfnoc_image_core.yml -t E310_SG3 -l debug

参考

Getting Started with RFNoC in UHD 4.0

posted @ 2022-01-13 16:00  ArtisticZhao  阅读(411)  评论(0编辑  收藏  举报