diff --git a/dependencies.yml b/dependencies.yml index 04b2b8c75b3e5fa8811d2d0c23326011cde9b384..04f31e9ca155037fa267202e2c77816f6b33c1cf 100644 --- a/dependencies.yml +++ b/dependencies.yml @@ -1,7 +1,7 @@ --- sources: emp-fwk: - branch: master + commit: b84d1324 url: https://gitlab.cern.ch/p2-xware/firmware/emp-fwk.git ttc_legacy: diff --git a/top/addr_table/emp_payload.xml b/top/addr_table/emp_payload.xml index e15f37b249ba3eaec7c176fd846098d90a970a9e..15d20dcb009db551c6e412d035ca5f23fb510146 100644 --- a/top/addr_table/emp_payload.xml +++ b/top/addr_table/emp_payload.xml @@ -7,7 +7,8 @@ <node id="csr" address="0x00004" description="Histogram control and status" fwinfo="endpoint;width=2"> <node id="windowL" address="0x0"/> <node id="windowH" address="0x1" mask="0x000f"/> - <node id="histogram_sel" address="0x1" mask="0xfff0"/> + <node id="histogram_enable" address="0x1" mask="0x0010"/> + <node id="histogram_sel" address="0x1" mask="0xffe0"/> <node id="histogram0" address="0x2"/> <node id="histogram1" address="0x3"/> </node> diff --git a/top/firmware/hdl/emp_payload.vhd b/top/firmware/hdl/emp_payload.vhd index 27adb74655695d10c7980170802bc8a22c919a51..f3205a472714bb61a134e151946996ef63a9cd21 100644 --- a/top/firmware/hdl/emp_payload.vhd +++ b/top/firmware/hdl/emp_payload.vhd @@ -84,6 +84,7 @@ signal max_value0, max_value1 : std_logic_vector(bin_width - 1 downto 0) := (ot signal histogram_reset : std_logic := '0'; signal hist0_stub, hist1_stub : lword := LWORD_NULL; signal histogram_sel : integer := 0; +signal histogram_enable : std_logic := '0'; type tHeaderStartArray is array(cNumberOfFEModules - 1 downto 0) of std_logic_vector(1 downto 0); signal header_start_array : tHeaderStartArray := (others => (others => '0')); signal aggregated_stubs : ldata(7 downto 0) := (others => LWORD_NULL); @@ -257,7 +258,8 @@ status_registers(1)(bin_width - 1 downto 0) <= max_value1; trigger_window_lower <= control_registers(0); trigger_window_upper <= control_registers(1)(3 downto 0); -histogram_sel <= to_integer(unsigned(control_registers(1)(15 downto 4))); +histogram_enable <= control_registers(1)(4); +histogram_sel <= to_integer(unsigned(control_registers(1)(15 downto 5))); trigger_window <= trigger_window_upper & trigger_window_lower; @@ -280,7 +282,7 @@ pHistogram: process(clk_p) --==============================-- begin if rising_edge(clk_p) then - if stubs(histogram_sel).valid = '1' then + if stubs(histogram_sel).valid = '1' and histogram_enable = '1' then if stubs(histogram_sel).data(46) = '0' then hist0_stub <= stubs(histogram_sel); hist1_stub <= LWORD_NULL;