FPGA Intellectual Property
PCI Express*, Networking and Connectivity, Memory Interfaces, DSP IP, and Video IP
6356 Discussions

How do Matrix Transpose (corner turn) with SGDMA ?

Altera_Forum
Honored Contributor II
941 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
215 Views

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

0 Kudos
Altera_Forum
Honored Contributor II
215 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?
0 Kudos
Altera_Forum
Honored Contributor II
215 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..
0 Kudos
Reply