From d84718bf7955a6bba03aa44938f0f140c1a6390d Mon Sep 17 00:00:00 2001 From: Alejandro Soto Date: Sat, 21 Oct 2023 03:21:18 -0600 Subject: rtl/gfx: implement non-synthesizable matrix multiplier --- rtl/gfx/mat_vec_mul.sv | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 rtl/gfx/mat_vec_mul.sv (limited to 'rtl/gfx/mat_vec_mul.sv') diff --git a/rtl/gfx/mat_vec_mul.sv b/rtl/gfx/mat_vec_mul.sv new file mode 100644 index 0000000..43860c9 --- /dev/null +++ b/rtl/gfx/mat_vec_mul.sv @@ -0,0 +1,34 @@ +`include "gfx/gfx_defs.sv" + +module mat_vec_mul +( + input logic clk, + rst_n, + + input logic start, + input mat4 a, + input vec4 x, + + output logic done, + output vec4 q +); + + logic dones[`FLOATS_PER_VEC]; + + assign done = dones[0]; + + genvar i; + generate + for (i = 0; i < `FLOATS_PER_VEC; ++i) begin: dots + vec_dot dot_i + ( + .a(a[i]), + .b(x), + .q(q[i]), + .done(dones[i]), + .* + ); + end + endgenerate + +endmodule -- cgit v1.2.3