From 0670bc4de175acc26bd260233da4e90cb654876c Mon Sep 17 00:00:00 2001 From: Kirika Uchida <kirika.uchida@gmail.com> Date: Sat, 9 Sep 2023 12:57:25 +0200 Subject: [PATCH] bypass trigger rate is ~600Hz --- common/firmware/hdl/EcalDataFilter.vhd | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/common/firmware/hdl/EcalDataFilter.vhd b/common/firmware/hdl/EcalDataFilter.vhd index ce415326..49ae0642 100644 --- a/common/firmware/hdl/EcalDataFilter.vhd +++ b/common/firmware/hdl/EcalDataFilter.vhd @@ -35,6 +35,8 @@ architecture rtl of EcalDataFilter is signal regs : ipb_reg_v(32 downto 0) := (others => (others => '0')); signal bypass_s : std_logic; + signal b_trg : std_logic; + signal b_counter : std_logic_vector(15 downto 0); signal data_s : std_logic_vector(28 * 16 -1 downto 0); signal data_clk40 : std_logic_vector(28 * 16 -1 downto 0); @@ -78,7 +80,7 @@ begin end generate; trig_o_lat <= zs_valid_lat when bypass_s = '0' else "000011"; - trig_o <= trig40 when bypass_s = '0' else x"c0000001"; + trig_o <= trig40 when bypass_s = '0' else x"c000000" & "000" & b_trg; -- trig_o <= trig_sync when bypass_s = '0' else x"c0000001"; --data_in_proc : process(clk_p) @@ -111,7 +113,15 @@ begin begin if reset = '1' then trig40 <= (others => '0'); + b_counter <= (others => '0'); elsif rising_edge(clk40) then + + b_counter <= std_logic_vector(unsigned(b_counter) + 1); + b_trg <= '0'; + if (b_counter = x"0000") then + b_trg <= '1'; + end if; + zs_valid_p(0) <= zs_valid; zs_valid_p(1) <= zs_valid_p(0); zs_all_valids_p0 <= zs_all_valids; -- GitLab