[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Discuss-gnuradio] GNURadio on Zynq: radiomodem and fast ADC sources, pr
From: |
jmfriedt |
Subject: |
[Discuss-gnuradio] GNURadio on Zynq: radiomodem and fast ADC sources, processing on the PL |
Date: |
Wed, 16 Jul 2014 09:52:19 +0200 |
I wish to inform the GNURadio community on some of the latest results on the
use of the Xilinx Zynq platform
for real time radiofrequency signal processing aimed at making the best use of
the PS/PL architecture.
Let me emphasize that although I am writing this email, all the technical work
has been achieved by Guillaume Bres-Saix,
in Cc of this email, who has been working full time on this topic since the
beginning of the year, with the help
of Gwenhael Goavec-Merou (also in Cc) who attended FOSDEM this year with me.
As discussed during the FOSDEM meeting in Brussels last february, we are
interested in interfacing custom
hardware for radiofrequency signal processing, in which the Zynq platform seems
most appropriate. The two
targeted hardware interfaces are an RF frontend (Semtech SX1255, operating in
the 400-500 MHz range, providing
separate frequency sources for the output and input signals), and fast A/D
converters (mostly for RADAR
applications). In this context, I believe that sending the datastream to the
CPU before using the FPGA as
a coprocessor is inefficient, and I consider and architecture made of two
separate processing blocks, one
including the data source and fast pre-processing steps using basic functions
such as decimation, FIR or
auto/cross-correlation to be implemented in the PL, followed by more complex
processing steps best handled by the
CPU (PS), in our case WFM demodulation and graphical display (through the
exported X client). In such an
architeture, only one data transfer occurs between PL and PS, namely the
pre-processed data leave the
FPGA memory when fetched by the linux kernel before being transfered to
userspace when the GNURadio source
scheduler requests data. At the moment this data transfer is performed in
polling mode, although DMA
transfer has been demonstrated in another context.
Guillaume has documented these applications: I believe the most impressive
result is shown in the video at
http://guillaumebres.wix.com/eportfolio#!zedboard1/c171q and
https://www.youtube.com/watch?v=P-XzTaRDNxg
In this example, the I/Q stream from the RF frontend is decimated, transfered
to the GNURadio source and
processed by displaying the Fourier transform of the recorded signal,
demonstrating that the data
transfer is sound and the data processing is consistent with expectations. The
modulated signal source
is a sine wave modulating a FM-modulated radiomodem, and the Fourier transform
indeed exhibits the
sidebands at a frequency offset from the carrier equal to the emitted sine wave
frequency. The continuity
of the datastream and no loss of data is demonstrated in the second half of the
video in which an audio
signal modulates the radiomodem, and the WFM demodulation block of GNURadio
feeding the sound card output
generates a proper *continuous* signal, hence demonstrating that no sample has
been lost in the transfer process.
The second demonstration of a radiofrequency source made of fast A/D converters
is presented at
http://guillaumebres.wix.com/eportfolio#!zynqadc/c3pa
and its application to RADAR measurements is illustrated at
http://guillaumebres.wix.com/eportfolio#!zynqradar/coj3
I believe these are fascinating demonstrations of the flexibility of the Zynq
based SDR platform with
minimal money investment but huge technical and scientific opportunities with
the close ties of the PS/PL
architecture. Beyond these technical demonstrations, one issue we are now
facing is the integration of
the PL in the GNURadio(-companion) framework. I believe the solution is easier
since I have decided to
keep all the FPGA part in the initial (fast) processing steps and high level
software processing once
the datastream has been decimated. At the moment, one /dev/ entry is needed for
each functionality
in the FPGA so a GNURadio-companion block allows for the reconfiguration of the
associated functionality.
How the gnuradio processing stream is kept consistent with the bitstream
configuring the FPGA remains
an open question and at the moment the developer must provide this consistency.
All this work must still be properly documented and shared with the community
with a properly accessible
repository: if interested in getting preliminary access to these source codes
while all the files
are being organized, let me know by email and we will try to make a usable
archive.
JM
--
JM Friedt, FEMTO-ST Time & Frequency/SENSeOR, 32 av. observatoire, 25044
Besancon, France
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Discuss-gnuradio] GNURadio on Zynq: radiomodem and fast ADC sources, processing on the PL,
jmfriedt <=