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