Hi Wade, I tried the command to re-load the FPGA, but I couldn't communicate with UHD nicely until I also added the command "systemctl restart ursp-uhd". I am now able to reset the N310 to proper behavior when it gets in this state.
Regarding this issue of real/imag swapping, do you want me to create a support request through supp...@ettus.com? Also, do you need me to provide any more info or an example program / FPGA image? Note that now that I know how to duplicate the issue, I believe I also know how to avoid it. So, it is probably not a critical issue for me presently. Rob On Sat, Dec 12, 2020 at 9:47 AM Wade Fife <wade.f...@ettus.com> wrote: > Thanks for the updates. If you just want to reload the FPGA, try running > "overlay rm n310 && overlay add n310" on the N310. This should simply > reload the FPGA using the bistream already in the flash. > > Wade > > On Fri, Dec 11, 2020 at 6:45 PM Rob Kossler <rkoss...@nd.edu> wrote: > >> Wade, >> The following also fails using just 2 blocks and 2 attempts: >> host_tx => Switchboard#0 => Switchboard#1 => host_rx // SUCCESS >> host_tx => Switchboard#1 => Switchboard#0 => host_rx // FAILURE (RX >> samples equal swapped I/Q of TX samples) >> >> In addition to wanting to get this issue fixed, I also have a question >> about the best way to "reboot" the N310 which is what I need to do to fix >> the issue after it occurs. One way is to give the "reboot now" linux >> command. But, this takes a long time. Another way is to reprogram the >> FPGA image via uhd_image_loader. This is appreciably faster, but I'm >> thinking that this is not a great idea if the flash memory has a limited >> number of write cycles before failure. Is there another way to achieve a >> reboot other than these two? >> Rob >> >> On Fri, Dec 11, 2020 at 7:34 PM Rob Kossler <rkoss...@nd.edu> wrote: >> >>> AHA! I duplicated the issue with the Switchboard image. The way to >>> duplicate the issue is the run the following series of graphs: >>> host_tx => Switchboard#0 => Switchboard#1 => host_rx // SUCCESS >>> host_tx => Switchboard#2 => Switchboard#3 => host_rx // SUCCESS >>> host_tx => Switchboard#0 => Switchboard#2 => host_rx // FAILURE (RX >>> samples equal swapped I/Q of TX samples) >>> Each of these 3 runs consists of running my application (similar to one >>> of the examples such as rfnoc_rx_to_file) such that the UHD object is >>> re-created each time. My guess is that you could use gnuradio to do it >>> instead. >>> >>> My working theory is that the problem is caused by the fact that the >>> Switchboard#2 input port was changed from being connected to the host in >>> test case 2 to then be connected to another RFNoC block in test case 3. >>> Or, I suppose it could be the output port on this block (same logic). >>> >>> If you want me to send you my FPGA image with the 4 Switchboard blocks, >>> let me know. >>> Rob >>> >>> >>> >>> On Fri, Dec 11, 2020 at 7:09 PM Rob Kossler <rkoss...@nd.edu> wrote: >>> >>>> Hi Wade, >>>> After thinking about it a bit, I would ignore the "negation" issue for >>>> now. This may be a byproduct of I/Q swapping related to my custom block. >>>> Rob >>>> >>>> On Fri, Dec 11, 2020 at 6:34 PM Rob Kossler <rkoss...@nd.edu> wrote: >>>> >>>>> Hi Wade, >>>>> Thanks for the info. I still do not know what's going on, but here >>>>> are a few updates: >>>>> >>>>> - I built a new N310 image with 4 switchboards (1x1) and 1 >>>>> splitstream (1x2) blocks in addition to the default blocks. All of the >>>>> additional blocks are connected to SEPs for dynamic linking. I tried >>>>> my >>>>> best to get bad behavior using a chain of 1 to 4 switchboards, but I >>>>> could >>>>> not duplicate any I/Q swapping or negation issues. >>>>> - I went back to my custom image (that I described below) and >>>>> found different behavior today (sometimes things worked OK). So, this >>>>> got >>>>> me to thinking that I am somehow getting the FPGA in a bad state such >>>>> that >>>>> a reboot (or FPGA re-flashing) fixes things. I have had some success >>>>> with >>>>> re-booting and things working properly. But, I still do not have a >>>>> true >>>>> handle on things and cannot adequately predict when things are going to >>>>> succeed or fail. >>>>> - One thing that has been constant is that I have never seen bad >>>>> behavior when I only have 1 block in my graph (no matter which block I >>>>> choose). Note that for all of my tests, the graph looks like this: >>>>> host_tx >>>>> => block_chain => host_rx, where block_chain is a sequential chain of >>>>> 1 or >>>>> more rfnoc blocks. >>>>> >>>>> I will send a follow up once I figure things out. >>>>> Rob >>>>> >>>>> >>>>> On Fri, Dec 11, 2020 at 6:22 PM Wade Fife <wade.f...@ettus.com> wrote: >>>>> >>>>>> Hi Rob, >>>>>> >>>>>> The SEPs do have the ability to swap I and Q. This is because on the >>>>>> host computer, I is usually in the lower bits and Q is in the upper bits >>>>>> of >>>>>> each 32-bit word, but in RFNoC, for historical reasons, I goes in the >>>>>> upper >>>>>> bits and Q in the lower bits. The software programs the IQ swapping when >>>>>> it >>>>>> sets up the graph. >>>>>> >>>>>> I assume you're using dynamic connections (through the crossbar) to >>>>>> control the number of FFTs the data is passed through, and not static >>>>>> connections? If that's the case then I wonder if software configures IQ >>>>>> swapping incorrectly in some configurations. I'll see if I can do some >>>>>> testing next week to confirm if it's working correctly. >>>>>> >>>>>> As for negation, I'm not aware of anywhere we do that off the top of >>>>>> my head. Is that behavior block dependent? I'll see if I can find >>>>>> anywhere >>>>>> this happens. >>>>>> >>>>>> Thanks, >>>>>> >>>>>> Wade >>>>>> >>>>>> On Thu, Dec 10, 2020 at 3:54 PM Rob Kossler via USRP-users < >>>>>> usrp-users@lists.ettus.com> wrote: >>>>>> >>>>>>> Hi, >>>>>>> I am encountering very strange behavior with a custom FPGA image >>>>>>> (N310). It appears that data streaming through SEPs can get swapped >>>>>>> (I/Q) >>>>>>> and/or negated. Is anyone at Ettus aware of anything that could cause >>>>>>> this? Of course, the issue might be on my end, but I can't think of >>>>>>> what >>>>>>> it might be given that all of my custom blocks work as expected in >>>>>>> isolation (if the block is the only block in graph). >>>>>>> >>>>>>> My custom image is the following: >>>>>>> >>>>>>> - default blocks of Radios, DDCs, DUCs (each 2x2 and statically >>>>>>> connected as in default image) >>>>>>> - custom blocks of two 1x1 windowed-fft blocks, two 1x1 >>>>>>> vector-avg blocks, and one 2x2 custom block. Note: each of these >>>>>>> blocks is >>>>>>> connected to its own SEP, so I can connect dynamically in any >>>>>>> fashion. >>>>>>> >>>>>>> My test case is transmitting 8192 random samples from host to FFT >>>>>>> block and then optionally through a 2nd FFT block before back to host. >>>>>>> In >>>>>>> the test case, the radios/DDCs/DUCs are not used. >>>>>>> >>>>>>> Here is what I observed: >>>>>>> >>>>>>> - If I only include 1 FFT block in my RFNoC graph, I get the >>>>>>> expected results (the output from the FPGA matches what I calculate >>>>>>> in >>>>>>> Matlab for the FFT). This is true for either of the two FFT blocks. >>>>>>> - If I include both FFT blocks in series, I can only match the >>>>>>> FPGA output if I swap the I/Q values in between my Matlab FFTs. >>>>>>> - Note: that this issue is not FFT-related as I can also >>>>>>> duplicate this issue with the other blocks. >>>>>>> - If I use 3 blocks in series (each through SEP), I need to >>>>>>> negate certain data in order to get it to match the FPGA output >>>>>>> >>>>>>> My next step is likely to build a new image with Ettus-developed >>>>>>> FIFOs to prove that the data is getting swapped/negated when 2 or more >>>>>>> are >>>>>>> used in series through SEPs. >>>>>>> >>>>>>> Let me know if you have any suggestions for other things to try. >>>>>>> >>>>>>> Rob >>>>>>> _______________________________________________ >>>>>>> USRP-users mailing list >>>>>>> USRP-users@lists.ettus.com >>>>>>> http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com >>>>>>> >>>>>>
_______________________________________________ USRP-users mailing list USRP-users@lists.ettus.com http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com