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