Discussion and technical support related to USRP, UHD, RFNoC
View all threadsHi,
What does the "radio_tx_stb" signal do here
uhd/fpga/usrp3/lib/rfnoc/blocks/rfnoc_block_radio/radio_tx_core.v at
40403b7c00154e4559c47bd6dde924f092992d45
<https://github.com/EttusResearch/uhd/blob/40403b7c00154e4559c47bd6dde924f09
2992d45/fpga/usrp3/lib/rfnoc/blocks/rfnoc_block_radio/radio_tx_core.v#L301>
. EttusResearch/uhd?
I am trying to find out why I cannot get RF loopback running using dual
channel RFNoC blocks.
I note that this signal is required to change states to end up in
ST_TRANSMIT.
Thanks, Kevin
Hi Kevin,
As far as I know, the `radio_*_stb` signals are strobe signals that are coming from outside of the image_core from the RF Analog HW on the daughterboards, signaling when the radio data can be transmitted/received.
They can be understood as signals that are similar to tready signals of the AXI-Stream handshaking mechanism.
If you trace the `radio_tx_stb` back to where it is assigned in x4xx.sv, it seems to be assigned based on the `dac_data_in_tready` signals:
X410: https://github.com/EttusResearch/uhd/blob/master/fpga/usrp3/top/x400/x4xx.sv#L2685
X440: https://github.com/EttusResearch/uhd/blob/master/fpga/usrp3/top/x400/x4xx.sv#L2664
As I understand the `radio_tx_stb`, it indicates, that on the same clock cycle as `radio_tx_stb` is asserted, the data that you pass to the radio via the `radio_tx_data` bus is successfully transferred to the DAC and will be transmitted OTA down the line.
If `radio_tx_stb` is not asserted, the radio_tx_data will not be transmitted.
I have not checked all USRP types, and some might not use the strobe signals at all, but at the meaning should be nearly the same for all variants. It looks like e.g. X300 is not really using it and just constantly asserting it, as it seems it can always accept TX data.
Please someone with a better understanding correct me if this assumption is wrong.
Hope this helps at least a little.
Regards,
Niels
Thanks Niels.
OK, so it seems that isn't my problem on the X310.
My deeper issue is that I can't get the USRP to start transmitting in
internal loopback mode specifically when I need to combine both rx radios in
a custom block.
Kind regards, Kevin
From: niels.steffen.garibaldi--- via USRP-users usrp-users@lists.ettus.com
Sent: Thursday, 07 August 2025 17:06
To: usrp-users@lists.ettus.com
Subject: [EXTERNAL][USRP-users] Re: "radio_tx_stb" input on radio_tx_core
Hi Kevin,
As far as I know, the radio_*_stb
signals are strobe signals that are
coming from outside of the image_core from the RF Analog HW on the
daughterboards, signaling when the radio data can be transmitted/received.
They can be understood as signals that are similar to tready signals of the
AXI-Stream handshaking mechanism.
If you trace the radio_tx_stb
back to where it is assigned in x4xx.sv, it
seems to be assigned based on the dac_data_in_tready
signals:
As I understand the radio_tx_stb
, it indicates, that on the same clock
cycle as radio_tx_stb
is asserted, the data that you pass to the radio via
the radio_tx_data
bus is successfully transferred to the DAC and will be
transmitted OTA down the line.
If radio_tx_stb
is not asserted, the radio_tx_data will not be
transmitted.
I have not checked all USRP types, and some might not use the strobe signals
at all, but at the meaning should be nearly the same for all variants. It
looks like e.g. X300 is not really using it and just constantly asserting it
<https://url.za.m.mimecastprotect.com/s/SWzjCBgpmmiRpmytNixs2Kn08?domain=git
hub.com> , as it seems it can always accept TX data.
Please someone with a better understanding correct me if this assumption is
wrong.
Hope this helps at least a little.
Regards,
Niels