Matrix multiply as a custom IP

Status
Not open for further replies.

Alex02

Newbie level 6
Joined
Feb 18, 2011
Messages
11
Helped
1
Reputation
2
Reaction score
1
Trophy points
1,283
Activity points
1,368
Hello everyone!

I'm using Microblaze to run an application which involves matrix multiplication. At this moment the application is very slow and the code is executed from the DDR SRAM (because the it's too long) and most of the operations are matrix multiply (27 by 27) and matrix inverse (6 by 6). So I'm implementing a custom IP in VHDL for the matrix multiply in order to accelerate the application.

I've attached some custom IPs to the PLB. I've also read that FSL presents a good performace , however I have no experience with this bus. Is it suitable for this case?

Regarding the VHDL design, I think that if I had a group of dual-port ram for every column of the matrix it would be ideal to achieve the matrix multiplication. The problem I see with this approach is related to store data in these memories. So I'm wondering if there is a way to store matrix data efficiently so that it can also allow to access different addresses at the same time.
I have doubts about how to store data in these dual-port memories efficiently (I attached the basic matrix multiply scheme that that I'm doing -> matrix A -1 row, matrix B -1 column ).

Thanks in advance.
Alex
 

Attachments

  • mult.jpg
    82.8 KB · Views: 102

Status
Not open for further replies.
Cookies are required to use this site. You must accept them to continue using the site. Learn more…