On 03/10/2023 19:05, jmalo...@umass.edu wrote:
Hello,
My application requires that I edit the RFDC applications, however, I
am confused about how the UHD C++ API interfaces with the RFDC on the
RFSoC.
It appears when I make the RFNoC graph, the namespace
x400_radio_control_impl is called, which starts the process of
programming the RFDC as well as running Self Calibration. For
reference, I instantiate my graph similar to the examples
|//Create RFNoC graph
std::cout << std::endl;
std::cout << "Creating the RFNoC graph with args: " << args << std::endl;
auto graph = uhd::rfnoc::rfnoc_graph::make(args);
…
auto radio_rx_ctrl =
graph->get_block<uhd::rfnoc::radio_control>(radio_rx_ctrl_id);|
I have been able to trace up to rfnoc_graph.cpp, where once a graph is
commited, it starts to create an object for each NoC. Following the
RFNOC logs that print after the UHD 4.5 update, I found where the log
“[INFO] [0/Radio#0] Calibrating channel 0” came from, which was found
in x400_radio_control.cpp. So now, I am led to believe that whenever
the radio block is instantiated, the RFDC properties get instantiated
as well.
After this part, is where my confusion starts…
After following the logs which appear right before the RFNoC logs
regarding calibration, specifically
|[INFO] [MPM.PeriphManager.ClkMgr] Using Clock Configuration:
DB0: Master Clock Rate: 491.52 MSps @Converter Rate 2.94912 GHz
DB1: Master Clock Rate: 491.52 MSps @Converter Rate 2.94912 GHz|
it seems there is a file x4xx_clock_mgr.py which supposedly sets the
master clock rate and the converter rate, which is called by x4xx.py.
x4xx.py also calls another function in x4xx_clock_policy.py, which
seems to be the function of interest as it sets the properties on the
RFDC, albeit hardcoded. The problem is I have not been able to trace
how I get from x400_radio_control.cpp to x4xx.py.
In short, am I correct that there is a trace between
x400_radio_control.cpp and x4xx.py trace, and if so, where in the UHD
C++ API does it call a python file, specifically the x4xx.py?
Thanks
Joe
_______________________________________________
USRP-users mailing list --usrp-users@lists.ettus.com
To unsubscribe send an email tousrp-users-le...@lists.ettus.com
x4xx.py appears to be part of MPM, so your host-side UHD would never
call it directly. Rather the MPM server on the X410 radio
would use it as appropriate. I'm not particularly familiar with the
internals of MPM, but a lot of it is written in Python.
_______________________________________________
USRP-users mailing list -- usrp-users@lists.ettus.com
To unsubscribe send an email to usrp-users-le...@lists.ettus.com