1

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?

Marcus Müller
  • 34,677
  • 4
  • 53
  • 94
apchar
  • 59
  • 1
  • 9

1 Answers1

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