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

Reply via email to