Main Content

addRFNoCRegisterInterface

Add RFNoC register interface to your DUT

Since R2024a

Add-On Required: This feature requires the Wireless Testbench™ Support Package for NI™ USRP™ Radios add-on.

Description

addRFNoCRegisterInterface(dut,Name=Value) adds an RFNoC register interface that you can use to control the DUT ports mapped to register interfaces in the generated IP core from MATLAB® and specifies options using name-value arguments.

example

Examples

collapse all

Create a usrp System object, specifying a radio setup configuration previously saved in the Radio Setup wizard.

device = usrp("MyRadio");

Configure your radio with the target interfaces.

describeFPGA(device,"ModelName_wthandoffinfo.mat"); 

Create an fpga object to access your DUT on the FPGA of your radio.

dut = fpga(device);

Add an RFNoC register interface to your DUT.

addRFNoCRegisterInterface(dut, ...
    "InterfaceID","DUTName", ...
    "RFNoCBlock","0/DUTName#0");

Create an hdlcoder.DUTPort (HDL Coder) object for the DUT port and specify the properties.

DUTPort_Read_Register = hdlcoder.DUTPort("Read_Register", ...
	"Direction","OUT", ...
	"DataType","int16", ...
	"IsComplex",false, ...
	"Dimension",[1 1], ...
	"IOInterface","DUTName", ...
	"IOInterfaceMapping",1);

Map the DUT port to the RFNoC interface you added to your DUT.

mapPort(dut,DUTPort_Read_Register);

Connect to the radio and apply radio front end properties.

setup(device);

Read data from the DUT port.

data = readPort(dut,"Read_Register")
data = int16
    0

Release the hardware resources.

release(dut);

Create a usrp System object, specifying a radio setup configuration previously saved in the Radio Setup wizard.

device = usrp("MyRadio");

Configure your radio with the target interfaces.

describeFPGA(device,"ModelName_wthandoffinfo.mat"); 

Create an fpga object to access your DUT on the FPGA of your radio.

dut = fpga(device);

Add an RFNoC register interface to your DUT.

addRFNoCRegisterInterface(dut, ...
    "InterfaceID","DUTName", ...
    "RFNoCBlock","0/DUTName#0");

Create an hdlcoder.DUTPort (HDL Coder) object for the DUT port and specify the properties.

DUTPort_Write_Register = hdlcoder.DUTPort("Write_Register", ...
	"Direction","IN", ...
	"DataType","int16", ...
	"IsComplex",false, ...
	"Dimension",[1 1], ...
	"IOInterface","DUTName", ...
	"IOInterfaceMapping",128);

Map the DUT port to the RFNoC interface you added to your DUT.

mapPort(dut,DUTPort_Write_Register);

Connect to the radio and apply radio front end properties.

setup(device);

Write data to the DUT port.

data = 20;
writePort(dut,"Write_Register",data)

Release the hardware resources.

release(dut);

Input Arguments

collapse all

Target DUT on the FPGA of a target NI USRP radio device, specified as an fpga object.

Name-Value Arguments

Specify pairs of arguments as Name1=Value1,...,NameN=ValueN, where Name is the argument name and Value is the corresponding value. Name-value arguments must appear after other arguments, but the order of the pairs does not matter.

Example: InterfaceID="yourDUTSubsystemName", RFNoCBlock="0/yourDUTSubystemName#0".

Name assigned to the RFNoC register interface, specified as a string scalar.

Example: "yourDUTSubsystemName"

Data Types: string

Name of the RFNoC block that contains the DUT, specified as a string scalar. The RFNoC block name is generated from the name of your DUT subsystem in the format "0/"+yourDUTSubystemName+"#0".

Example: "0/yourDUTSubystemName#0"

Data Types: string

Version History

Introduced in R2024a