usrp-users@lists.ettus.com

Discussion and technical support related to USRP, UHD, RFNoC

View all threads

"radio_tx_stb" input on radio_tx_core

KW
Kevin Williams
Wed, Aug 6, 2025 10:29 AM

Hi,

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, 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
NS
niels.steffen.garibaldi@emerson.com
Thu, Aug 7, 2025 3:05 PM

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, 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

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](https://github.com/EttusResearch/uhd/blob/master/fpga/usrp3/top/x300/x300_core.v#L689), 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
KW
Kevin Williams
Fri, Aug 8, 2025 6:33 AM

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

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: * X410: https://github.com/EttusResearch/uhd/blob/master/fpga/usrp3/top/x400/x4xx.sv #L2685 <https://url.za.m.mimecastprotect.com/s/90I9Czm5zzHwQB7I4f3s9BkLy?domain=git hub.com> * X440: https://github.com/EttusResearch/uhd/blob/master/fpga/usrp3/top/x400/x4xx.sv #L2664 <https://url.za.m.mimecastprotect.com/s/Bi8mCAnollflLo8U8hYsGw75v?domain=git hub.com> 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