diff --git a/hdl/matrix_mul.vhd b/hdl/matrix_mul.vhd
index e29edbb5639fb9591c4e37901cc151cf8037a726..dacbc77ca2be5ba58b4139cfcd292ca799e38a28 100644
--- a/hdl/matrix_mul.vhd
+++ b/hdl/matrix_mul.vhd
@@ -142,11 +142,11 @@ begin
         )
         port map(
             pi_clk_a    => clk,
-            pi_en_a     => mm_coef_i(2*I).en,
-            pi_we_a     => mm_coef_i(2*I).we,
-            pi_addr_a   => mm_coef_i(2*I).addr(C_W_MM_IDCNT-1 downto 0),
-            pi_data_a   => mm_coef_i(2*I).data,
-            po_data_a   => mm_coef_o(2*I).data,
+            pi_en_a     => mm_coef_i(I).en,
+            pi_we_a     => mm_coef_i(I).we,
+            pi_addr_a   => mm_coef_i(I).addr(C_W_MM_IDCNT-1 downto 0),
+            pi_data_a   => mm_coef_i(I).data,
+            po_data_a   => mm_coef_o(I).data,
             pi_clk_b    => clk,
             pi_en_b     => '1',
             pi_we_b     => '0',
@@ -162,11 +162,11 @@ begin
         )
         port map(
             pi_clk_a    => clk,
-            pi_en_a     => mm_coef_i(2*I+1).en,
-            pi_we_a     => mm_coef_i(2*I+1).we,
-            pi_addr_a   => mm_coef_i(2*I+1).addr(C_W_MM_IDCNT-1 downto 0),
-            pi_data_a   => mm_coef_i(2*I+1).data,
-            po_data_a   => mm_coef_o(2*I+1).data,
+            pi_en_a     => mm_coef_i(I+C_N_MM_PSC/2).en,
+            pi_we_a     => mm_coef_i(I+C_N_MM_PSC/2).we,
+            pi_addr_a   => mm_coef_i(I+C_N_MM_PSC/2).addr(C_W_MM_IDCNT-1 downto 0),
+            pi_data_a   => mm_coef_i(I+C_N_MM_PSC/2).data,
+            po_data_a   => mm_coef_o(I+C_N_MM_PSC/2).data,
             pi_clk_b    => clk,
             pi_en_b     => '1',
             pi_we_b     => '0',
@@ -204,11 +204,11 @@ begin
         p_rndsat:process(clk, rst_n)
         begin
             if rst_n = '0' then
-                matmult(2*I)    <= (others => '0');
-                matmult(2*I+1)  <= (others => '0');
+                matmult(I)              <= (others => '0');
+                matmult(I+C_N_MM_PSC/2) <= (others => '0');
             elsif rising_edge(clk) then
-                matmult(2*I)    <= f_resize_sat(f_resize_lsb(accu_x, C_W_MM_ACCU-C_N_MM_RND), C_W_MM);
-                matmult(2*I+1)  <= f_resize_sat(f_resize_lsb(accu_y, C_W_MM_ACCU-C_N_MM_RND), C_W_MM);
+                matmult(I)              <= f_resize_sat(f_resize_lsb(accu_x, C_W_MM_ACCU-C_N_MM_RND), C_W_MM);
+                matmult(I+C_N_MM_PSC/2) <= f_resize_sat(f_resize_lsb(accu_y, C_W_MM_ACCU-C_N_MM_RND), C_W_MM);
             end if;
         end process;