USRP Software Radio

cancel
Showing results for 
Search instead for 
Did you mean: 

Waveform transmission from FPGA Block memory of Ni usrp 2940R

Hi,

 

I am trying to transmit arbitrary waveform from Usrp FPGA's block memory, instead of transmitting it from host.  For that I had made a block memory and initialized it with my waveform data. I am transmitting the waveform by writing data from memory into target scoped FiFo. Then to transmit on RF, reading from target scoped FiFo on based of digital edge in Tx core Vi

 

The problem is that when I need to transmit the waveform after fixed delay (let say 20us) for 10 times. In start I get 4 or 5 waveform on RF output as desired but then 1 or 2 waveform are missed. 

 

I can not understand why its happening. May be there is the problem in reading the memory. I will be Thankful if you can help me.

 

PS:

1- Block memory initialized with 960 samples of arbitrary waveform.

2- Target scoped FiFo actual number of elements are set to 1025.

 

Regards,

M Mahboob Ur Rehman

 

0 Kudos
Message 1 of 6
(2,982 Views)

Morning! 

 

This is interesting. Sounds like there might be something wrong in the setup of the block memory or the actual code itself to transmit. Have you been able to successfully probe in the code that you're getting all of the data necessary? 

 

Essentially, we want to break this up into two parts -- the setup and the code. I think the best place to start, if it's not time critical, is to remove the hardware entirely and set up a similar streaming application. Try and use the same numbers that you've used to initialize the block memory and the FIFO and then see if you can generate and stream random data and read back, making sure that you're not losing anything that you're expecting. 

 

Once you've verified that you were able to do that correctly, I would then recommend adding your hardware to it. Does that make sense?

Aulia V.
0 Kudos
Message 2 of 6
(2,958 Views)

Hi Aulia V,

 

Sorry for being back here too late. 

 

Although I solved my problem by initializing the block memory with complete pattern of pulses, instead of making pattern by repeating the single pulse.

 

But I am not able to understand your logic of "the setup and the code". If you can explain this approach, I'll try this logic for my future projects.

 

Thanks for your time.

 

M Mahboob Ur Rehman

 

0 Kudos
Message 3 of 6
(2,904 Views)

Hey there,

 

Not a problem. I'm glad you were able to get it figured out. 

 

I referenced that in the context of troubleshooting. We didn't know if the problem was in the setup (so whenever you initiate the FIFO, or maybe it was in the hardware, etc) or if it was the way you were implementing the code. When troubleshooting, feel free to try and see if the behavior occurs in code only (either in FPGA or host) and then when you know that works, feel free to add in the hardware and see if that problem occurs there 🙂

 

Aulia V.
0 Kudos
Message 4 of 6
(2,896 Views)

Thanks for your guidance. Will keep this in mind for my future projects. 

 

Regards,

 

M Mahboob Ur Rehman

0 Kudos
Message 5 of 6
(2,805 Views)

Hi,
I hope you still remember this problem you faced and can help me. I am encountering the sam eproblem where i initialize a memory block with the samples of an OFDM waveform and then feed them from the memory block into a target scoped FIFO. I am also using similar USRP device and trying to do something similar to what you have done. Can you please explain to me how you solved it or maybe share sme beneficial piece of code.
Previosly I was feeding the waveform samples as arrays through written to Host-to-Target DMA FIFO and had a successful transmission but wasn't able to increase the sample rate a lot so I had to store the samples in the FPGA and feed it to traget scoped fifos for transmission.
Can you please help?

0 Kudos
Message 6 of 6
(387 Views)