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