Index: /firmware/FAD/FACT_FAD_20MHz_VAR_PS/FACT_FAD_lib/hdl/data_generator.vhd
===================================================================
--- /firmware/FAD/FACT_FAD_20MHz_VAR_PS/FACT_FAD_lib/hdl/data_generator.vhd	(revision 10501)
+++ /firmware/FAD/FACT_FAD_20MHz_VAR_PS/FACT_FAD_lib/hdl/data_generator.vhd	(revision 10502)
@@ -78,5 +78,6 @@
 	timer_value				: in	std_logic_vector (31 downto 0); -- time in units of 100us
 
-	trigger					: in	std_logic;
+	hardware_trigger_in		: in	std_logic;
+	software_trigger_in		: in	std_logic;
 	
 	adc_data_array			: in	adc_data_array_type;
@@ -142,5 +143,7 @@
 signal adc_wait_cnt : integer range 0 to 7 := 0;
 
-signal trigger_sr :std_logic_vector(1 downto 0) := "00";
+signal hardware_trigger_sr :std_logic_vector(1 downto 0) := "00";
+signal software_trigger_sr :std_logic_vector(1 downto 0) := "00";
+
 signal ram_write_ea_flag : std_logic := '0';
 signal new_config_int : std_logic := '0';
@@ -168,5 +171,6 @@
 			config_done <= '0';
 		end if;
-		trigger_sr <= trigger_sr(0) & trigger; --synching in of asynchrounous trigger signal.
+		hardware_trigger_sr <= hardware_trigger_sr(0) & hardware_trigger_in; --synching in of asynchrounous trigger signal.
+		software_trigger_sr <= software_trigger_sr(0) & software_trigger_in; --synching in of asynchrounous trigger signal.
 		addr_out <= start_addr + conv_std_logic_vector(addr_cntr, RAM_ADDR_WIDTH);
 		
@@ -223,5 +227,5 @@
 			end if;
 			
-			if (ram_write_ea = '1' and trigger_sr = "01") then
+			if (ram_write_ea = '1' and ( hardware_trigger_sr = "01" or software_trigger_sr = "01") ) then
 				sig_drs_readout_started <= '1'; -- is set to '0' in next state ... just a pulse.
 				runnumber_local_copy <= runnumber;
