What does the FPGA do?

Discussions related to schematic capture, PCB layout, signal integrity, and RF development
Post Reply
alsokurt
Posts: 2
Joined: Thu Jan 29, 2015 5:03 am

What does the FPGA do?

Post by alsokurt »

Hi,

I'm trying to figure out what the FPGA adds wrt functionality in the bladeRF.
Would it be possible to build the same implementation where the FX3 directly conveys the RF stream from the LMS and the software (sdr#, ...) uses the IQ data directly?

regards,
Kurt
User avatar
rtucker
Posts: 77
Joined: Sun Jan 25, 2015 10:38 am

Re: What does the FPGA do?

Post by rtucker »

Perhaps, but it becomes a lot easier with a FPGA.

The FX3 provides a 100 MHz 32-bit GPIF II interface, which could probably be wrangled to talk directly to the 80 MHz 12-bit ADC/DAC interfaces on the LMS if the GPIF interface can be dropped down to 80 MHz. (Otherwise, you'll need a synchronizer/FIFO of some sort.)

There is also a need to control the LMS, Si5338, and VCTCXO trim via SPI/I2C, which the FX3 can possibly do, but perhaps not at the same time. (Also note that it boots from a SPI flash, which may complicate things.) Whether there's adequate GPIO on the FX3 to service the various RF switches, etc, is a question as well.

What the FPGA provides is flexibility for the future. The default "hosted" FPGA image is, as far as the moving raw RF data is concerned, a glorified FIFO and clock generator. However, from a physical connectivity standpoint, it is responsible for a SPI bus to the DAC for VCTCXO trim, a SPI bus to the LMS for control, I2C to the Si5338 for generating clocks, a UART to/from the FX3 for control, and communication with expansion boards, peripherals, and reference signals which may not exist yet. Any of these can be redefined down the line to meet the needs of an application.

Furthermore, the FPGA provides the ability to perform DSP tasks or other sample alterations. Probably the easiest example of this is the timestamping of samples: because it is impossible to guarantee low jitter between the bladeRF and software running on a host computer (or, heck, even between the LMS and the FX3), timestamps are used between the FPGA and the host library to permit applications to eliminate the effects of the jitter. On the RX side, the timestamps are synchronous to the same clock used to receive samples from the LMS. This is essential for many wireless applications (e.g. OpenBTS/YateBTS). I believe the FPGA also handles the I/Q correction on both RX and TX.

The meaning of the sample streams between the host and bladeRF can also be changed entirely... see the atsc_tx mashup for an example of this. It saves copious CPU resources by moving specific modulation and filtering tasks to the FPGA.

So, in short: sure, you could move samples between two points without an FPGA, but you'd lose a lot of flexibility. Throwing a (lot) more hardware at the situation makes for a better SDR.
Rey Tucker (she/her)
Systems Engineer, Nuand LLC
Rochester, NY, USA

#WontBeErased
alsokurt
Posts: 2
Joined: Thu Jan 29, 2015 5:03 am

Re: What does the FPGA do?

Post by alsokurt »

Thank you very much for the explanation.
Post Reply