本文内容、所用开发板、配件等仅限与研发和学习使用,如有侵权,请联系我们进行删除!
目录
1. 修改 x310_rfnoc_image_core.yml 文件
2. rfnoc_image_builder 生成新的fpga image
3. uhd_image_loader 下载 fpga image 到 USRP
四、Adding an FFT Block to the Recive Chain
1. 修改 x310_rfnoc_image_core.yml 文件
2. rfnoc_image_builder 生成新的fpga image
3. uhd_image_loader 下载 fpga image 到 USRP
一、概要
本文主要描述了如何对USRP X系列上的FPGA和射频片上网络(RFNoC™)的软件开发。它简要介绍了如何在默认的fpga image中添加自定义的rfnoc image和连接方式并生成编译生成新的fpga image,能够在主机上做软件开发。
二、实验环境
1. 软件环境
ubuntu 20.04 ; gnuradio 3.8 ; uhd 4.1.0
2. 硬件设备
USRP HM-X310
三、Adding an FFT BLOCK
1. 修改 x310_rfnoc_image_core.yml 文件
该文件位于 <uhd安装路径>/fpga/usrp3/top/x300下,请拷贝该文件并对副本进行修改,切勿直接修改原文件。
$ cd <repo>/fpga/usrp3/top/x300/
$ cp x310_rfnoc_image_core.yml <副本>.yml
修改后的内容为:
# General parameters
# -----------------------------------------
schema: rfnoc_imagebuilder_args # Identifier for the schema used to validate this file
copyright: 'Ettus Research, A National Instruments Brand' # Copyright information used in file headers
license: 'SPDX-License-Identifier: LGPL-3.0-or-later' # License information used in file headers
version: '1.0' # File version
rfnoc_version: '1.0' # RFNoC protocol version
chdr_width: 64 # Bit width of the CHDR bus for this image
device: 'x310'
default_target: 'X310_HG'
# A list of all stream endpoints in design
# ----------------------------------------
stream_endpoints:
ep0: # Stream endpoint name
ctrl: True # Endpoint passes control traffic
data: True # Endpoint passes data traffic
buff_size: 32768 # Ingress buffer size for data
ep1: # Stream endpoint name
ctrl: False # Endpoint passes control traffic
data: True # Endpoint passes data traffic
buff_size: 0 # Ingress buffer size for data
ep2: # Stream endpoint name
ctrl: False # Endpoint passes control traffic
data: True # Endpoint passes data traffic
buff_size: 32768 # Ingress buffer size for data
ep3: # Stream endpoint name
ctrl: False # Endpoint passes control traffic
data: True # Endpoint passes data traffic
buff_size: 0 # Ingress buffer size for data
ep4: # Stream endpoint name
ctrl: False # Endpoint passes control traffic
data: True # Endpoint passes data traffic
buff_size: 4096 # Ingress buffer size for data
ep5: # Stream endpoint name
ctrl: False # Endpoint passes control traffic
data: True # Endpoint passes data traffic
buff_size: 4096 # Ingress buffer size for data
ep_fft:
ctrl: False
data: True
buff_size: 32768
# A list of all NoC blocks in design
# ----------------------------------
noc_blocks:
duc0: # NoC block name
block_desc: 'duc.yml' # Block device descriptor file
parameters:
NUM_PORTS: 1
ddc0:
block_desc: 'ddc.yml'
parameters:
NUM_PORTS: 2
radio0:
block_desc: 'radio_2x64.yml'
duc1:
block_desc: 'duc.yml'