WARP Project Forums - Wireless Open-Access Research Platform

You are not logged in.

#1 2017-Sep-28 04:32:40

alice_warp
Member
From: Italy
Registered: 2015-Sep-08
Posts: 53

Saving real and image parts of FFT and passing them to Microblaze CPU

Hi,
Is there a way to save real and image parts of an FFT (64 points)?
I treid to use two shared memory for saving real part and image part inside the wlan_phy_rx_pmd, but I don't know how to access in the Microblaze CPU?
Any ideas?

Thank you in advance.

Alice

Last edited by alice_warp (2017-Sep-28 04:46:42)

Offline

 

#2 2017-Sep-28 12:07:05

murphpo
Administrator
From: Mango Communications
Registered: 2006-Jul-03
Posts: 5159

Re: Saving real and image parts of FFT and passing them to Microblaze CPU

The easiest way would be a System Generator Shared Memory block. This block uses a dual-port RAM, with one port exposed to the Sysgen core and the other attached to the AXI bus. After adding the Shared Memory block be sure to open the EDK Processor block and click Add to include the new Shared Memory in the pcore's memory map.

Offline

 

#3 2017-Sep-28 12:38:48

alice_warp
Member
From: Italy
Registered: 2015-Sep-08
Posts: 53

Re: Saving real and image parts of FFT and passing them to Microblaze CPU

Thanks for your answer.
I have already added two System Generator Shared Memory Blocks, but I don't understand.. how can I access to the Shared Memory?..
Can I copy everything from one Shared Memory to one my custom structure with an only one function?
Thanks again,

Alice

Last edited by alice_warp (2017-Sep-29 02:50:33)

Offline

 

#4 2017-Sep-29 10:21:33

alice_warp
Member
From: Italy
Registered: 2015-Sep-08
Posts: 53

Re: Saving real and image parts of FFT and passing them to Microblaze CPU

murphpo wrote:

The easiest way would be a System Generator Shared Memory block. This block uses a dual-port RAM, with one port exposed to the Sysgen core and the other attached to the AXI bus. After adding the Shared Memory block be sure to open the EDK Processor block and click Add to include the new Shared Memory in the pcore's memory map.

I tried with Xil_In32(ADDR), but the output is one value...
How can I take the other values?
Thank you in advance.

Alice

Last edited by alice_warp (2017-Sep-29 10:22:00)

Offline

 

#5 2017-Sep-29 10:46:04

murphpo
Administrator
From: Mango Communications
Registered: 2006-Jul-03
Posts: 5159

Re: Saving real and image parts of FFT and passing them to Microblaze CPU

A Sysgen Shared Memory block is mapped into the address space of the core. The depth of the memory defines how much of the address space is allocated to the shared memory. Xil_In32() reads a single 32-bit memory address. A shared memory will span many 32-bit addresses. You need to figure out the address range for your shared memory block (look in xparameters.h for the base address), then read whatever parts of the address range you need (i.e. loop over Xil_In32(), use memcpy, etc).

Offline

 

#6 2017-Oct-04 15:35:13

alice_warp
Member
From: Italy
Registered: 2015-Sep-08
Posts: 53

Re: Saving real and image parts of FFT and passing them to Microblaze CPU

murphpo wrote:

A Sysgen Shared Memory block is mapped into the address space of the core. The depth of the memory defines how much of the address space is allocated to the shared memory. Xil_In32() reads a single 32-bit memory address. A shared memory will span many 32-bit addresses. You need to figure out the address range for your shared memory block (look in xparameters.h for the base address), then read whatever parts of the address range you need (i.e. loop over Xil_In32(), use memcpy, etc).

Thank you!

Alice

Offline

 

Board footer