All of the above is true. Let me try and sort this out:
- When we do a tune on the X440, we do a change to the phase accumulator of
the NCO ("tuning the NCO"). This goes through the xrfdc API, and that means
it's all in software, and that means we cannot do timed tuning of the NCO
- However, we can also reset the phase of the NCO, which is something we
*can* do with a timed command. This goes through RFNoC/CHDR/the PL and is
outside of software control.
If you do what Jurk described, i.e.:
set_command_time(t0)
set_rx_frequency(f0)
...then the phase reset will happen at t0, but the retuning will happen
ASAP (with undeterministic latency) when the set_rx_frequency() call is
executed.
So, back to the original question: Why is this the way it is?
Eugene is right; the RFSoC datasheet says PL-based tuning is theoretically
possible. However, there are many things that are simply hard to get right
in our RFSoC configuration, and we simply haven't decided that enabling
faster, PL-based timed tuning of the NCO is the next thing we want to
tackle. The reason we support timed phase reset is so that we can enable
deterministic phase relationships between channels. If we only did the
software-based tuning of the NCO with random latency, then NCOs would
always be at random phase. We do try and prioritize the features you guys
find the most useful (which means deprioritizing other features), and this
is where we're currently at.
--Martin
On Wed, Jun 17, 2026 at 10:35 PM Eugene Grayver <[email protected]>
wrote:
> I thought that timed tune commands do not work — I need a queue of timed
> commands. I looked at the HDL for RFSoC and it appears the DDC in the
> ADC/DAC hard block does not have an external frequency control enabled.
> How are timed tune requests implemented without this feature?
>
> ---------- Claude says: -------------
> The Ettus USRP X440 lacks support for timed tuning on the RFSoC
> Numerically Controlled Oscillator (NCO). While commands are queued in the
> FPGA FIFO, timed frequency tuning cannot be executed. Below are the key
> constraints for handling timed commands and command queues on this device
> Key Command Queue & Timing Constraints
>
> - Timed Tuning Limitation: The X440 relies on direct-sampling of
> ADCs/DACs; timed tuning of the internal RFSoC NCO is not supported.
>
> ---------
> ------------------------------
> *From:* Jurk, Dennis <[email protected]>
> *Sent:* Wednesday, June 17, 2026 3:14 AM
> *To:* Eugene Grayver <[email protected]>; usrp-users <
> [email protected]>
> *Subject:* [EXTERNAL] AW: X440 timed commands for tuning
>
>
> *Do not open links or attachments unless you recognize the sender. If
> unsure, click the Report Phish button or forward the email to OPSEC. *
>
> Hello Eugene,
>
> timed commands are supported on the X440. Set the command time with
> set_command_time and then send the commands (set_rx_freq or set_tx_freq for
> freq tuning).
>
> Best regards
> Dennis Jurk
>
>
>
> *Von:* Eugene Grayver <[email protected]>
> *Gesendet:* Dienstag, 16. Juni 2026 22:56
> *An:* usrp-users <[email protected]>
> *Betreff:* [USRP-users] X440 timed commands for tuning
>
>
>
> Why are timed commands (specifically freq tuning) not supported on the
> X440? The RFSoC definitely allows using FPGA (PL) logic to trigger
> cross-tile configurations.
>
>
>
> Eugene Grayver, Ph.D.
>
> Principal Engineer
>
> 310-336-1274
> _______________________________________________
> USRP-users mailing list -- [email protected]
> To unsubscribe send an email to [email protected]
>
_______________________________________________
USRP-users mailing list -- [email protected]
To unsubscribe send an email to [email protected]