Professional Documents
Culture Documents
RFNoC: fosphor
How to apply RFNoC to RTSA display acceleration
Sylvain Munaut
Outline
1 Introduction
2 OpenCL implementation
3 RFNoC implementation
4 The End
gr-fosphor: Description
Decay
Control only
AFULL
Histogram
Memory
Input Even/Odd Bin Readback
LogPwr Rise FIFO
AXI Control Sequencer Mapping tap AXI
Stream Stream
0.6 0.6
Intensity
Intensity
0.4 0.4
0.2 0.2
0 0
0 0.5 1 1.5 2 2.5 3 3.5 4 0 0.5 1 1.5 2 2.5 3 3.5 4
t/t0 t/t0
− tt −tt
yr (t) = 1 − e 0r yd (t) = e 0d
d 1 − t d 1 − t
yr (t) = · e t0r yd (t) = − · e t0d
dt t0r dt t0d
1 1
= · (1 − yr (t)) =− · yd (t)
t0r t0d
d d
yr (t + ∆t) ' yr (t) + ∆t · yr (t) yd (t + ∆t) ' yd (t) + ∆t · yd (t)
dt dt
∆t ∆t ∆t
' yr (t) · 1 − + ' yd (t) · 1 −
t0r t0r t0d
Sylvain Munaut RFNoC: fosphor
Introduction OpenCL implementation RFNoC implementation The End
16 bits I/Q direct from FFT 18 bits I/Q with 2 random LSBs
300
Quantized
Quantized + Random LSBs
Ideal
250
200
150
100
50
0
0 10 20 30 40 50 60 70 80 90 100
Merged upstream
In default rfnoc-devel FPGA images for X300 & X310
Not yet in E310 (resources limited)
Some hardcoded constants
Up to 1024 FFT bins
Fixed to 64 power bins
Resources
LUTs FFs DSP48 RAMB36
RFNoC block 2236 2804 6 25
fosphor core 557 679 6 18
X300 total 204k 408k 840 445
X310 total 254k 508k 1540 795
E310 total 52k 104k 220 140
Waterfall support
Time aggregation of spectras in the FPGA
Ship 8 bits logpwr to host
Higher precision of internal state for spectrum lines
Build-time options
Max FFT size
Number of power bins
Multi channel/context support
Higher internal clocking
Attempt use for eye-patterns:
Remove logpower
Feed pre-synched/triggered time data
Thanks
Thanks to :
Ettus Research for RFNoC and sponsoring this project
GNURadio community for a great framework
Questions ?
Any questions ?
Resources
fosphor
https://sdr.osmocom.org/trac/wiki/fosphor
GRcon 13 fosphor
http://gnuradio.squarespace.com/storage/grcon13_presentations/
grcon13_munaut_fosphor.pdf
GRcon 14 RFNoC
http://gnuradio.squarespace.com/storage/grcon14/presentations/
Sep17_04_Ettus_rfnoc.pdf
RFNoC
https://github.com/EttusResearch/uhd/wiki/RFNoC:-Getting-Started