From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

USRP Software Radio

cancel
Showing results for 
Search instead for 
Did you mean: 

Custom Data Processing on FPGA of USRP 2950R

Hi everybody!

I'm having major trouble porting my custom data processing to the FPGA of a NI USRP 2950R. I've been fiddling around for quite some time now without success, also because of the immense compilation times of the FPGA-VI and difficult-to-use simulation mode with all these in- and outputs of a full duplex radio.

I want to modify the Streaming Xcvr (FPGA).vi from the 'Simple NI-USRP Streaming'-Project in a way so that custom code is executed on the receiver-side in between data acquisition, digital downconversion etc. (red circle) and the transfer of the data to the DMA-FIFO (green circle). More specifically, I want to have a correlation-function applied to the set of received samples that are being transfered to the FIFO and then sent to the host simultaneously in addition to the unaltered baseband signal. This is done to determine the starting position of the received signal.

 

fpgat.png

 

I guess I'll have to use two DMA-FIFOs then, one for the set of received baseband samples and one for the corresponding correlation function result.

 

Right now, using a target scoped FIFO to transfer the received samples to another clock domain (which one?) seems the right thing to do, since some of the operations required to compute the correlation function (loops, sums) don't seem to work within a SCTL. The biggest issue for me is not knowing what to wire all the boolean in- and output of the VIs to.

 

I would love to have two sets of data sent to the host at the same time. One with the received samples and one with the matching values of the correlation function.

My goal is to have the radio operate at 20 MHz of bandwidth, so timing seems to be quite important. I'm new to LabVIEW FPGA and have no experience with the use of 'enable', 'input valid', 'output valid', 'ready for input', 'ready for output' etc. signals, I have already implemented the entire system successfully on the host using USRP-VIs, arrays, loops, global variables, complex numbers and so on (this is only good for about 2 Mhz, hence my desire for outsourcing of computationally expensive parts to the FPGA). But the FPGA-Toolkit seems to be something entirely different.

 

Are there any examples of custom code on USRP-FPGAs using the LabVIEW FPGA-Toolkit? Everything related I can find seems to either utilize the LabVIEW Communications System Design Suite, which I sadly don't have or isn't related to radio applications at all.

 

I have attached a screenshot of the correlation function-VI and the FPGA-VI with my pathetic attempt at getting data out of the SCTL and then to the host.

 

Thank you in advance

 

modt.png

 

function.png

0 Kudos
Message 1 of 1
(4,148 Views)