# \[RFNoC\] Status Updates

**URL:** <https://www.ruby-forum.com/t/rfnoc-status-updates/242322>\
**Category:** GNU Radio\
**Created:** [June 15, 2015, 7:23pm UTC](https://www.ruby-forum.com/t/rfnoc-status-updates/242322 "2015-06-15T19:23:10Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![Detlef\_R](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/58f4c7/32.png) [@Detlef\_R](https://www.ruby-forum.com/u/Detlef_R)\
**Post date:** [June 15, 2015, 7:23pm UTC](https://www.ruby-forum.com/t/rfnoc-status-updates/242322/1 "2015-06-15T19:23:10Z")

</div>

Hi Everyone,

here’s a quick update on where RFNoC is right now.  
For the uninitiated, RFNoC is a system/framework/design/paradigm to  
easily create heterogeneous flow graphs between FPGAs and GPPs. To  
actually run it, you’ll need a generation-3 USRP, but to get most out of  
it you’ll also need GNU Radio. In fact, while RFNoC is by itself  
independent from GNU Radio, it was designed in a way that they work  
really well together.

A lengthy, but fairly comprehensive introduction can be found on our  
YouTube page; a presentation we gave at the most recent Wireless  
Symposium : [RFNoC presented at Wireless @ Virginia Tech, 2015 - YouTube](https://www.youtube.com/watch?v=8cPd3t88djE)

However, a shorter and much more fun video can be found here:

[![](https://img.youtube.com/vi/8cPd3t88djE/maxresdefault.jpg "RFNoC presented at Wireless @ Virginia Tech, 2015") ](https://www.youtube.com/watch?v=8cPd3t88djE)

…where Sylvain M. actually used RFNoC to make an FPGA-accelerated  
version of fosphor.

For those interested in the state of developmment of RFNoC, here’s some  
factoids:

- GNU Radio integration is pretty smooth at this point, in fact, the  
only issue I know of in this area is that when connecting RFNoC blocks  
in GRC, the companion might issue a block mismatch warning (“red  
arrows”) even though it’s actually fine. Other than that, the block  
domain concept makes RFNoC + GRC a very smooth experience (big thanks to  
Sebastian Koslowski for helping with the domains).

- In order to use RFNoC, you still need to go through these steps: 1.  
Install rfnoc-devel branch of UHD, 2. reinstall GNU Radio and then 3.  
install the gr-ettus OOT module on top of that.

- gr-ettus is used as our staging ground for RFNoC stuff in GNU Radio.  
It’s available through PyBOMBS, assuming you’ve installed UHD correctly.  
It provides GRC bindings and some blocks required.

- At this time, X3x0 and E310 are the supported devices for RFNoC.

- Adding RFNoC blocks is becoming easier and easier, too. On the FPGA  
side, we have multiple modules to make integration of your own  
components very easy, e.g. such as easy integration of coregen’d  
components. In the video linked above, Jonathon explains in detail what  
you need to do to create your own blocks.

- RFNoC blocks require some host-side code to run, too, but we’ve put a  
lot of work into making this as easy as possible. We recently released  
NocScript, which allows you to fully configure your blocks with one  
simple XML file (plus some snippets of NocScript, an interpreted  
language). This mean no setting up build environments and recompiling  
C++ code while developing your FPGA block.

- GNU Radio-side modifications are usually also necessary. However, in  
many cases, you can simply add GRC bindings for your block and you’re  
good.

- To develop and run RFNoC, GNU Radio is definitively our recommended  
framework of choice, since it’s tightly integrated, and you’ll have all  
the GNU Radio blocks (such as graphical widgets) at your disposal.

Our API is stabilizing, too, thanks to the feedback we’ve been getting  
from our early users. I would like to encourage you to give more  
feedback, in particular if you’re planning to use RFNoC heavily, as now  
is still the time to make major modifications.

There still are some open issues, and we are working on them. Among the  
most requested here are the ability to create FPGA-only flow graphs  
(radio to radio) and the ability to use larger packets than the network  
MTU.

I usually give minor updates on the usrp-users mailing list, but I do  
want to make sure this list is also up-to-date. Feel free to ask  
questions about RFNoC either here or on usrp-users.

Cheers,  
Martin

---

<div class="post-metadata">

**Author:** ![pytlik](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/779978/32.png) [@pytlik](https://www.ruby-forum.com/u/pytlik)\
**Post date:** [June 15, 2015, 7:42pm UTC](https://www.ruby-forum.com/t/rfnoc-status-updates/242322/2 "2015-06-15T19:42:27Z")

</div>

On 15.06.2015 10:15, Martin B. wrote:

> However, a shorter and much more fun video can be found here:  
> [https://www.youtube.com/watch?v=8cPd3t88djE](https://www.youtube.com/watch?v=8cPd3t88djE)  
> …where Sylvain M. actually used RFNoC to make an FPGA-accelerated  
> version of fosphor.

[![](https://img.youtube.com/vi/lLFmPFpMwJs/maxresdefault.jpg "RFNoC fosphor demo") ](https://www.youtube.com/watch?v=lLFmPFpMwJs)

is the link I _meant_ 🙂

M
