diff --git a/hdl/data_serializer.vhd b/hdl/data_serializer.vhd index 6592884be8715602132cebe0127546f39f446df0..f2eddc16a66577b3249943504d6151c4ffadfc96 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 c410766cf68ae4bcdc0c481eed766cdafccc07b3..a792301cc96c03b0ec9105eec300eb30ccf00edc 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 000e35169721c10d812483a792b9bb6b4ee04b0c..9aea5f9a59b98cea63ab72ed44df62949757de51 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];