readPort
Description
Register Port
Streaming Port
[
reads output data data
,numSamples
,overflow
] = readPort(dut
,portName
)data
from the specified streaming port
portName
on the target DUT dut
. The function
also returns the number of valid data samples numSamps
and a flag
that indicates dropped samples due to an internal buffer overflow
overflow
.
Examples
Access DUT, Map RFNoC Register Interface and Read Data
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);
Access DUT, Map RFNoC Streaming Interface and Read Data
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 streaming interface to your DUT.
addRFNoCStreamInterface(dut, ... "InterfaceID", "RX_STREAM#0", ... "Streamer", "0/RX_STREAM#0", ... "Direction", "OUT", ... "FrameSize", 1000, ... "DDRAllocation", 1000, ... "Timeout", []);
Create a hdlcoder.DUTPort
object for the DUT port and specify the properties.
DUTPort_Data_Out = hdlcoder.DUTPort("Data_Out", ... "Direction", "OUT", ... "DataType", "uint32", ... "IsComplex", false, ... "Dimension", [1 1], ... "IOInterface", "RX_STREAM#0");
Map the DUT port to the RFNoC interface you added to your DUT.
mapPort(dut, DUTPort_Data_Out);
Connect to the radio and apply radio front end properties.
setup(device);
Call the usrp System object™ as a function to start the radio front end. Request 1000 samples.
device(1000);
Read data from the DUT port.
[dataRx,numSamps,overflow] = readPort(dut,"Data_Out")
dataRx = 1000×1 uint32 column vector
4294901766
5
262150
4
4294901760
4294639613
131073
4294574078
4294639617
4294967294
⋮
numSamps = 1000
overflow = logical
0
Release the hardware resources.
release(dut);
Input Arguments
dut
— Target DUT on the FPGA of a target NI™ USRP™ radio device
fpga
object
Target DUT on the FPGA of a target NI USRP radio device, specified as an fpga
object.
portName
— DUT port name
string
DUT port name, specified as a string. You create the DUT port as a hdlcoder.DUTPort
(HDL Coder) object array. Before you specify the
portName
, you must have mapped the port to an RFNoC interface
using the mapPort
function.
Data Types: string
Output Arguments
data
— Output data
scalar | matrix
Register Port
Output data that is read from the DUT register port portName
,
returned as a scalar. The data type is specified by the DataType (HDL Coder)
property of the hdlcoder.DUTPort
(HDL Coder) object.
Streaming Port
Output data that is read from the DUT streaming port
portName
, returned as a matrix. The data type is specified by the
DataType (HDL Coder)
property of the hdlcoder.DUTPort
(HDL Coder) object.
readPort
reads data until the number of elements in
data
is equal to the FrameSize
specified in addRFNoCStreamInterface
. If the number of valid samples
numSamples
is less than this value, the function will wait for
the Timeout
specified in addRFNoCStreamInterface
, then return the valid samples.
numSamples
— Number of valid samples in output data
positive integer
Number of valid samples in output data data
, returned as a
positive integer.
Data Types: double
overflow
— Output flag indicating an internal buffer overflow
true
| false
Output flag indicating an internal buffer overflow, returned as
true
or false
. This can occur when a data
streaming output is connected directly to the host rather than through the PL DDR
buffer.
Data Types: logical
Version History
Introduced in R2024a
See Also
Objects
Functions
MATLAB 命令
您点击的链接对应于以下 MATLAB 命令:
请在 MATLAB 命令行窗口中直接输入以执行命令。Web 浏览器不支持 MATLAB 命令。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)