diff --git a/cores/axis_trigger_v1_0/axis_trigger.vhd b/cores/axis_trigger_v1_0/axis_trigger.vhd
new file mode 100644
index 0000000000000000000000000000000000000000..279b700cdaa3441e66ed84f54cc85a3c6f03a821
--- /dev/null
+++ b/cores/axis_trigger_v1_0/axis_trigger.vhd
@@ -0,0 +1,56 @@
+library ieee;
+
+use ieee.std_logic_1164.all;
+use ieee.numeric_std.all;
+
+entity axis_trigger is
+  generic (
+            AXIS_TDATA_WIDTH : natural := 32;
+            AXIS_TDATA_SIGNED : string := "FALSE"
+          );
+  port (
+         -- System signals
+         aclk         : in std_logic;
+
+         pol_data     : in std_logic;
+         msk_data     : in std_logic_vector(AXIS_TDATA_WIDTH-1 downto 0);
+         lvl_data     : in std_logic_vector(AXIS_TDATA_WIDTH-1 downto 0);
+
+         trg_flag     : out std_logic;
+
+         -- Slave side
+         s_axis_tready: out std_logic;
+         s_axis_tdata : in std_logic_vector(AXIS_TDATA_WIDTH-1 downto 0);
+         s_axis_tvalid: in std_logic
+       );
+end axis_trigger;
+
+architecture rtl of axis_trigger is
+
+  signal int_comp_reg : std_logic_vector(1 downto 0);
+  signal int_comp_wire: std_logic;
+
+begin
+
+  SIGNED_G: if (AXIS_TDATA_SIGNED = "TRUE") generate
+    int_comp_wire <= '1' when signed(s_axis_tdata and msk_data) >= signed(lvl_data) else '0';
+  end generate;
+
+  UNSIGNED_G: if (AXIS_TDATA_SIGNED = "FALSE") generate
+    int_comp_wire <= '1' when unsigned(s_axis_tdata and msk_data) >= unsigned(lvl_data) else '0';
+  end generate;
+
+  process(aclk)
+  begin
+    if (rising_edge(aclk)) then
+      if (s_axis_tvalid = '1') then
+        int_comp_reg <= int_comp_reg(0) & int_comp_wire;
+      end if;
+    end if;
+  end process;
+
+  s_axis_tready <= '1';
+
+  trg_flag <= s_axis_tvalid and (pol_data xor int_comp_reg(0)) and (pol_data xor not(int_comp_reg(1)));
+
+end rtl;
diff --git a/cores/axis_trigger_v1_0/core_config.tcl b/cores/axis_trigger_v1_0/core_config.tcl
new file mode 100644
index 0000000000000000000000000000000000000000..724c2c428a4ab9f45a8691d889b0ce48b2d8307d
--- /dev/null
+++ b/cores/axis_trigger_v1_0/core_config.tcl
@@ -0,0 +1,17 @@
+set display_name {AXI4-Stream Trigger}
+
+set core [ipx::current_core]
+
+set_property DISPLAY_NAME $display_name $core
+set_property DESCRIPTION $display_name $core
+
+core_parameter AXIS_TDATA_WIDTH {AXIS TDATA WIDTH} {Width of the S_AXIS data bus.}
+core_parameter AXIS_TDATA_SIGNED {AXIS_TDATA_SIGNED} {If TRUE, the S_AXIS data are signed values.}
+
+set bus [ipx::get_bus_interfaces -of_objects $core s_axis]
+set_property NAME S_AXIS $bus
+set_property INTERFACE_MODE slave $bus
+
+set bus [ipx::get_bus_interfaces aclk]
+set parameter [ipx::get_bus_parameters -of_objects $bus ASSOCIATED_BUSIF]
+set_property VALUE S_AXIS $parameter