[USRP-users] Direct Programming the FPGA

Eddie Carle eddie at isatec.ca
Fri Dec 5 22:10:35 EST 2014


On Wed, 2014-12-03 at 11:17 +0100, Martin Braun via USRP-users wrote:
> Ian most definitely has some more details on this, but while it's
> daytime here I can add some info: The process you describe is called
> 'direct conversion' and is what we use in all of our devices.
> So yes, you always operate at baseband (i.e. an IF of 0 Hz).
> 
> As for the DACs, you can think of it this way, but it's really a
> single chip. The AD9146 is a 'dual' DAC, which serves exactly this
> purpose. You can grab the datasheets and will see an abstract, simple
> schematic for I/Q mode on the front page.
> 
> The daughterboard will then do the conversion to a higher frequency.
> The PLLs on the daughterboards aren't able to generate any LO
> frequency (e.g., maybe it's only possible to have multiples of X kHz),
> so we have to help in baseband by shifting the 'digital' IF to the
> remaining offset. If you have have a look at the verbosity output of
> the tuning call, you will see this whole process. So, you only need
> the CORDIC if you want to change that digital IF.

Huh. This is all very fascinating. That definitely makes much more sense
now thanks. Sounds like in this specific stage we won't actually need
the CORDIC since fine tuning the IF is not necessary (yet).

> I'm not sure, though, why you think generating OFDM signals is more
> complicated in baseband than at an IF. On the transmit side, the
> output of the IFFT is already a baseband signal. All you need to do is
> append the CP and add pulse shaping, and there you are.

Ja I think I dig how that works now. The idea Ian mentioned of having
multiple instances of the CORDICs for the subcarriers makes much more
sense to me now for OFDM (assuming I understood that correctly). I guess
I was stuck on the idea that we'd only have one CORDIC available to us.

> This sounds very interesting! First, a quick reminder that you might
> want to make use of the Front-panel GPIO connectors if you want to
> blink a LED. But if you're already using that, you could just as well
> use it to connect a serial line to the FPGA (or probably the ZPU) to
> give you output.

Yep it will be through the GPIO. I might even repurpose one of the other
RF LEDs attached to the FPGA.

> The rest of this email you can read as a fellow nerd who loves this
> kind of research (if there's classified stuff here, just ignore me):
> I'd be interested to know why you're planning to do this all on the
> FPGA, and bypassing the host entirely, especially if you say this is
> just for academic purposes? When I was still in academia I pretty much
> always went the route results first, paper next, optimize later
> (although probably not). It sounds like generating and verifying your
> channel coding method would be much simpler on the host (e.g., in GNU
> Radio or whatever your tool of choice is). You could even use the same
> code you were using (if any) to run simulations. This was a method I
> preferred, since it allowed very rapid iterations between simulations
> and measurement. It also made publishing results with both simulations
> and measurements trivial, and editors and reviewers love that stuff :)

Heh. Well, the evolution of this project didn't begin in a software
defined radio sense. Basically my task was to write some highly
parameterized VHDL modules for doing guided scrambling on QPSK. We
simply wanted to test spectral null widths with different scrambling
polynomials and codeword selection methods and compare them with
analysis and simulation. Originally, the idea was to simply use a
Kintex-7 evaluation kit with a high-speed DAC/ADC daughterboard but the
more I looked into it the USRP X3x0 series seems to be perfect (hardware
wise) for this application and more versatile for future projects. We've
pretty much decided on the X300 (or X310) now and now need to find a way
to get these VHDL modules (and a Python front end to them and Vivado
Design Suite) working with it. I'm sure in the future things will expand
to needing more functionality but at this point I just need to get this
thing producing an RF signal, regardless of what the carrier frequency
is. I've got until March so I'm trying not to get too caught up in other
stuff right now. This mailing list has sure been an informational
blessing thus far.
-- 
	Eddie Carle





More information about the USRP-users mailing list