hi nick,
i am implementing opengl on FPGA.... in my project i need to do lots of matrix multiplication ........please send me some material to do matrix multiplication in VHDL........
hi nick,
i am implementing opengl on FPGA.... in my project i need to do lots of matrix multiplication ........please send me some material to do matrix multiplication in VHDL........
plase reply to my mail add........... honnaraj.t(at)gmail.com
Dont try to synthesize and implement floating point with VHDL and FPGA without internal built floating-point processor. The technique of entering the matrix in VHDL is very simple but i dont think you can use those math function like sqrt here....
Use a systolic array for Matrix multiplication. Systolic array is best suited for matrix operations implemented in hardware. The systolic array consists of identical processing elements. Each processing element does a multiply accumulate operation and passes the data to the preceding element for further processing.
Added after 6 minutes:
Another technique is to use internal memory (BRAM) of FPGA for storing the input and output matrices. Design a controller that takes the input from the memory, does the multiply and accumulate operation and finally stores the result in memory.
you need to declare the array type in a package, then you can use it on a port:
Code:
library ieee;
use ieee.numeric_std.all;
package type_pkg is
type my_array_t is array(0 to 7) of unsigned(7 downto 0);
end package type_pkg;
use work.type_pkg.all;
entity matrix_mult is
port (
.....
input : my_array_t;
);
end entity matrix_mult;