From 77e3ffd499784b25ee9600690c5af5551e6f7a64 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Romain=20Bron=C3=A8s?= <romain.brones@synchrotron-soleil.fr> Date: Tue, 21 May 2024 14:34:52 +0200 Subject: [PATCH] feat: Add sequence offset Static numbering offset for the FA sequence. --- hdl/combpm_protocol_electron.vhd | 3 ++- hdl/top_combpm_electron.vhd | 1 + rdl/combpm.rdl | 6 ++++++ 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/hdl/combpm_protocol_electron.vhd b/hdl/combpm_protocol_electron.vhd index aab0390..3376a49 100644 --- a/hdl/combpm_protocol_electron.vhd +++ b/hdl/combpm_protocol_electron.vhd @@ -26,6 +26,7 @@ entity combpm_protocol_electron is -- Status and control interface soft_reset : in std_logic; -- Reset all counters. + seq_offset : in signed(7 downto 0); -- Sequence numbering offset frame_seq_cnt : out std_logic_vector(15 downto 0); -- Number of frame in last sequence. frame_valid_cnt : out std_logic_vector(31 downto 0); -- Count of valid frames. frame_invalid_cnt : out std_logic_vector(31 downto 0); -- Count of invalid frames. @@ -292,7 +293,7 @@ begin m_axis_tdata_posy <= packet_ypos; m_axis_tdata_bpmid <= "000000" & packet_bpmid; m_axis_tuser_mcts <= mc_time; - m_axis_tdata_faseq <= packet_timestamp; + m_axis_tdata_faseq <= std_logic_vector(signed(packet_timestamp)+seq_offset); -- AXIS TVALID m_axis_tvalid <= not soft_reset; diff --git a/hdl/top_combpm_electron.vhd b/hdl/top_combpm_electron.vhd index f24bfaa..78fc3b9 100644 --- a/hdl/top_combpm_electron.vhd +++ b/hdl/top_combpm_electron.vhd @@ -271,6 +271,7 @@ begin mc_time => mc_time, soft_reset => addrmap_r.RESET.SOFTRESET.data(0), + seq_offset => signed(addrmap_r.SEQ_OFFSET.data), frame_seq_cnt => frame_seq_cnt, frame_valid_cnt => frame_valid_cnt, frame_invalid_cnt => frame_invalid_cnt, diff --git a/rdl/combpm.rdl b/rdl/combpm.rdl index 7910dda..f4ab94f 100644 --- a/rdl/combpm.rdl +++ b/rdl/combpm.rdl @@ -104,4 +104,10 @@ addrmap combpm { mementries = 2**`C_W_ADDR_TABLE; } FILTERTABLE; + reg { + desc="Sequence numbering offset"; + desyrdl_data_type="int8"; + field {sw = rw; hw = r;} data[8]=0; + } SEQ_OFFSET; + }; -- GitLab