FPGA Intellectual Property
PCI Express*, Networking and Connectivity, Memory Interfaces, DSP IP, and Video IP
Announcements
Intel Support hours are Monday-Fridays, 8am-5pm PST, except Holidays. Thanks to our community members who provide support during our down time or before we get to your questions. We appreciate you!

Need Forum Guidance? Click here
Search our FPGA Knowledge Articles here.
5881 Discussions

How do Matrix Transpose (corner turn) with SGDMA ?

Altera_Forum
Honored Contributor II
813 Views

Hi all, 

 

I want use SGDMA to do matrix transpose. Matrix dimension is 512x16. It is possible? At first, by using Stream-to-Memory to store 16 stacked of data vertically from data stream (data length 512), then do Memory-to-Stream to stream out 512 data horizontally (data length 16). 

 

Similar information regarding writes would be appreciated. 

 

many thanks for help 

 

doddy 

0 Kudos
3 Replies
Altera_Forum
Honored Contributor II
87 Views

Is there anybody who can solve my problem? or is my problem easily solved?

Altera_Forum
Honored Contributor II
87 Views

Your question lacks some vital information: 

I read that the incoming data are 512 V * 16 H. 

How many bits is each data-word? 

What is the incoming speed in MW/s? 

What is the required outgoing speed in MW/s 

What type of memory do you have?How many bits wide? How fast? 

What other components are accessing this memory? With what bandwidth requirements?
Altera_Forum
Honored Contributor II
87 Views

Thanks Josyb for your response.. 

 

I am sorry, I am confused about word and data that you mean. 

I try to describe with my way of thinking. 

 

I need 32 bits per data coming from 14 bit ADC. 

A stream contains 512 data.  

There are 16 stream sequentially and store to memory using SGDMA stream to memory. 

And resulting 512 stream out transposely (SGDMA memory to stream). 

A stream-out contains 16 data. 

And also resulting 32 bits per data. 

 

I use 2 different clock system, 2MHz for stream input (incoming speed), 150MHz inside QSys (outgoing speed) controlled by Nios 

I use Cyclone III EP3C120 board. At this moment there is no other component for accessing memory. 

 

What approach do you suggest to solve this issue? 

 

Thank you..
Reply