From d73a2778e55d05f953fca5b530e3966226b11f6f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Romain=20Bron=C3=A8s?= <romain.brones@synchrotron-soleil.fr>
Date: Wed, 7 Jun 2023 15:49:01 +0200
Subject: [PATCH] fix(rdl): Set memory to 32 bit words

* This is handled better by DESYRDL
---
 hdl/data_serializer.vhd |  5 +++--
 hdl/matrix_mul.vhd      | 10 ++++++----
 rdl/corr_matrixpi.rdl   | 10 +++++-----
 3 files changed, 14 insertions(+), 11 deletions(-)

diff --git a/hdl/data_serializer.vhd b/hdl/data_serializer.vhd
index 6592884..f2eddc1 100644
--- a/hdl/data_serializer.vhd
+++ b/hdl/data_serializer.vhd
@@ -126,8 +126,8 @@ begin
         pi_en_a     => pscid_table_i.en,
         pi_we_a     => pscid_table_i.we,
         pi_addr_a   => pscid_table_i.addr(C_W_SER_CNT-1 downto 0),
-        pi_data_a   => pscid_table_i.data,
-        po_data_a   => pscid_table_o.data,
+        pi_data_a   => pscid_table_i.data(C_W_PSCID-1 downto 0),
+        po_data_a   => pscid_table_o.data(C_W_PSCID-1 downto 0),
         pi_clk_b    => clk,
         pi_en_b     => '1',
         pi_we_b     => '0',
@@ -135,6 +135,7 @@ begin
         pi_data_b   => (others => '0'),
         po_data_b   => pscid
     );
+    pscid_table_o.data(31 downto C_W_PSCID) <= (others => '0');
 
     -----------------------
     -- OUTPUT CONNEXIONS --
diff --git a/hdl/matrix_mul.vhd b/hdl/matrix_mul.vhd
index c410766..a792301 100644
--- a/hdl/matrix_mul.vhd
+++ b/hdl/matrix_mul.vhd
@@ -148,8 +148,8 @@ begin
             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_data_a   => mm_coef_i(I).data(C_W_MM_COEF-1 downto 0),
+            po_data_a   => mm_coef_o(I).data(C_W_MM_COEF-1 downto 0),
             pi_clk_b    => clk,
             pi_en_b     => '1',
             pi_we_b     => '0',
@@ -157,6 +157,7 @@ begin
             pi_data_b   => (others => '0'),
             po_data_b   => table_coefx
         );
+        mm_coef_o(I).data(31 downto C_W_MM_COEF) <= (others => '0');
 
         inst_coefy_table: entity desy.ram_tdp
         generic map(
@@ -168,8 +169,8 @@ begin
             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_data_a   => mm_coef_i(I+C_N_MM_PSC/2).data(C_W_MM_COEF-1 downto 0),
+            po_data_a   => mm_coef_o(I+C_N_MM_PSC/2).data(C_W_MM_COEF-1 downto 0),
             pi_clk_b    => clk,
             pi_en_b     => '1',
             pi_we_b     => '0',
@@ -177,6 +178,7 @@ begin
             pi_data_b   => (others => '0'),
             po_data_b   => table_coefy
         );
+        mm_coef_o(I+C_N_MM_PSC/2).data(31 downto C_W_MM_COEF) <= (others => '0');
 
         ------------------------------------------------------------------
         -- MULT ACCU
diff --git a/rdl/corr_matrixpi.rdl b/rdl/corr_matrixpi.rdl
index 000e351..9aea5f9 100644
--- a/rdl/corr_matrixpi.rdl
+++ b/rdl/corr_matrixpi.rdl
@@ -51,26 +51,26 @@ addrmap corr_matrixpi {
 
     mem {
         desc = "X Reference orbit.";
-        memwidth = `C_W_BPMPOS;
+        memwidth = 32;
         mementries = 2**`C_W_MM_IDCNT;
     } external REFORBITX;
 
     mem {
         desc = "Y Reference orbit.";
-        memwidth = `C_W_BPMPOS;
+        memwidth = 32;
         mementries = 2**`C_W_MM_IDCNT;
     } external REFORBITY;
 
     mem {
         desc = "PSC identifier table.";
-        memwidth = `C_W_PSCID;
-        mementries = `C_N_MM_PSC;
+        memwidth = 32;
+        mementries = `C_W_PSCID;
     } external PSCIDTABLE;
 
 
     mem {
         desc = "Matrix multiplication coefficients.";
-        memwidth = `C_W_MM_COEF;
+        memwidth = 32;
         mementries = 2**`C_W_MM_IDCNT;
     } external MATRIXCOEF[`C_N_MM_PSC];
 
-- 
GitLab