Main Content

addRFNoCRegisterInterface

Add an RFNoC register interface to your DUT

Since R2024a

Description

example

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.

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 a hdlcoder.DUTPort 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 a hdlcoder.DUTPort 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