Some of these ettus boxes have some serious (& seriously expensive) FPGA's in them. Seems like a waste if all they do is pass data from the ADC to the ethernet bus. When I build something in GRC how much signal processing is done in the FPGA & how much is done by my PC?
Asked
Active
Viewed 1,381 times
1
1 Answers
1
GNU Radio itself is host software. So, all the processing you program in GNU Radio is done on your CPUs, unless you use special hardware accelerator blocks, for example:
- gr-theano: GPU accelleration
- gr-fosphor: OpenCL-accelerated Waterfall spectrogram
- gr-ettus: Employing RFNoC to implement specific functionality on the X3x0's FPGA. This requires you to build an FPGA image including the functionality you use as gr-ettus block.
Generally, the FPGA in the X3x0 already does a lot: physically, the ADC and DAC of the X3x0 are running at 200MHz by default, and you can select integer fractions of that as "user sampling rate"; the interpolation/decimation from/to that rate to match these hardware clocks is done in the FPGA with relatively large filters. Also, you can digitally shift your signal in frequency by setting a digital tuning offset, which is also done by a CORDIC in the FPGA.

Marcus Müller
- 34,677
- 4
- 53
- 94
-
We're hoping to run flat out at 200 MHz (no downsampling or shifting.) That should free up a lot of the fpga, yes? How much of the 400,000 logic cells are used by the downsampling/upsampling/filtering functions? – apchar Jan 30 '16 at 22:37
-
@apchar : not that much. If you got the X310, it has the same functionality as the X300, but a much larger FPGA... it's kind of hard to answer these kinds of questions alone. Again, try out RFNoC; if you already have a Vivado license, just `git pull https://github.com/EttusResearch/uhd/ ; cd uhd; git checkout rfnoc-devel; git submodule --init update` – Marcus Müller Jan 31 '16 at 08:42
-
@apchar: how much FPGA dev experience do you have? RFNoC makes it easier, but it's still far, far, far more complicated than writing host code. So I'd rather start with a lower sampling rate, do it on your PC, and then identify the *actual* bottlenecks and then accelerate them. Maybe register for and send an email to the [GNU Radio discuss mailing list](https://lists.gnu.org/mailman/listinfo/discuss-gnuradio) telling the community about your project; they'll probably have some interesting input. – Marcus Müller Jan 31 '16 at 08:46