library work;
use work.trb_net_std.all;
-entity stretched_OR_trigger_multi is
+entity input_multiplicity_trigger is
port(
CLK : in std_logic;
RESET : in std_logic;
);
end entity;
-architecture behaviour of stretched_OR_trigger_multi is
+architecture behaviour of input_multiplicity_trigger is
signal stretched_input : std_logic_vector (31 downto 0) := x"00000000";
signal multiplicity : std_logic_vector ( 4 downto 0) := "00000";
GEN_STRETCH : for i in 0 to 31 generate
- THE_TRIGGER_Stretch : entity work.stretched_OR_trigger
+ THE_TRIGGER_Stretch : entity work.input_signal_stretcher
port map (
CLK => CLK,
RESET => RESET,
'0';
- THE_TRIGGER_SIGNAL_Stretch : entity work.stretched_OR_trigger
+ THE_TRIGGER_SIGNAL_Stretch : entity work.input_signal_stretcher
port map (
CLK => CLK,
RESET => RESET,
library work;
use work.trb_net_std.all;
-entity stretched_OR_trigger is
+entity input_signal_stretcher is
port(
CLK : in std_logic;
RESET : in std_logic;
);
end entity;
-architecture behaviour of stretched_OR_trigger is
+architecture behaviour of input_signal_stretcher is
signal or_long : std_logic := '0';
signal active : std_logic := '1';
signal cnt : unsigned (3 downto 0) := x"0";
constant INCLUDE_DEBUG_INTERFACE: integer := c_NO; --300 slices
--input monitor and trigger generation logic
- constant INCLUDE_TRIGGER_LOGIC : integer := c_NO; --400 slices @32->2
- constant INCLUDE_STATISTICS : integer := c_NO; --1300 slices, 1 RAM @32
- constant TRIG_GEN_INPUT_NUM : integer := 1;
- constant TRIG_GEN_OUTPUT_NUM : integer := 1;
- constant MONITOR_INPUT_NUM : integer := 32;
+ constant INCLUDE_TRIGGER_LOGIC : integer := c_NO; --400 slices @32->2
+ constant INCLUDE_STATISTICS : integer := c_NO; --1300 slices, 1 RAM @32
+ constant USE_MULTIPLICITY_TRIGGER : integer := c_YES;
+ constant TRIG_GEN_INPUT_NUM : integer := 1;
+ constant TRIG_GEN_OUTPUT_NUM : integer := 1;
+ constant MONITOR_INPUT_NUM : integer := 32;
--Retransmission
constant USE_RETRANSMISSION : integer := c_NO;--c_YES;
#add_file -vhdl -lib work "../../tdc/base/cores/ecp5/PLL/pll_in125_out33/pll_in125_out33.vhd"
add_file -vhdl -lib work "../../tdc/base/cores/ecp5/PLL/pll_in3125_out50/pll_in3125_out50.vhd"
-## trigger Input signal_sync
-add_file -vhdl -lib work "./code/stretched_OR_trigger.vhd"
-add_file -vhdl -lib work "./code/stretched_OR_trigger_multi.vhd"
+## multiplicity trigger Input signal
+add_file -vhdl -lib work "./code/input_signal_stretcher.vhd"
+add_file -vhdl -lib work "./code/input_multiplicity_trigger.vhd"
add_file -vhdl -lib work "./dirich.vhd"
#add_file -fpga_constraint "./synplify.fdc"
---------------------------------------------------------------------------
-- Trigger
---------------------------------------------------------------------------
-THE_INPUT_TRIGGER : entity work.stretched_OR_trigger_multi
-port map (
- CLK => clk_sys,
- RESET => reset_i,
- INPUT => INPUT(32 downto 1),
- OUTPUT => signal_trigger_out,
- OUTPUT_UNSTRCHD => signal_trigger_unstretched,
+gen_MULT_TRIG : if USE_MULTIPLICITY_TRIGGER = c_YES generate
+ THE_MULT_TRIG : entity work.input_multiplicity_trigger
+ port map (
+ CLK => clk_sys,
+ RESET => reset_i,
+ INPUT => INPUT(32 downto 1),
+ OUTPUT => signal_trigger_out,
+ OUTPUT_UNSTRCHD => signal_trigger_unstretched,
- BUS_RX => bus_sigTrigger_rx,
- BUS_TX => bus_sigTrigger_tx
-);
+ BUS_RX => bus_sigTrigger_rx,
+ BUS_TX => bus_sigTrigger_tx
+ );
+end generate;
+
+gen_MULT_TRIG : if USE_MULTIPLICITY_TRIGGER = c_NO generate
+ signal_trigger_out <= '0';
+ signal_trigger_unstretched <= '0';
+
+ bus_sigTrigger_tx.ack <= '0';
+ bus_sigTrigger_tx.nack <= '0';
+ bus_sigTrigger_tx.unknown <= '1';
+end generate;
SIG(3) <= signal_trigger_out;
SIG(4) <= signal_trigger_unstretched;
[fb07pc-u102325]
SYSTEM = linux
CORENUM = 12
-WORKDIR = /home/adrian/trbvhdl/dirich/dirich_trigger/workdir
+WORKDIR = /home/adrian/trbvhdl/dirich/dirich/workdir
#-m nodelist.txt # Controlled by the compile.pl script.
#-n 2 # Controlled by the compile.pl script.
-s 10
--t 1 #12 #36
+-t 48 #12 #36
#-t 85
-c 2
-e 2