signal test_LED : std_logic_vector(1 downto 0);
signal reset_cnt : unsigned(31 downto 0) := (others => '0');
+
+ signal reset_via_cri_long, reset_via_cri_timer, last_reset_via_cri_long, make_reset : std_logic;
+ signal reset_via_cri : std_logic := '0';
+ signal last_cri_resetPulse : std_logic;
component trb_net16_cri_interface is
port(
THE_CLOCK_RESET : entity work.clock_reset_handler
port map(
CLOCK_IN => CLOCK_PCLK,
- RESET_FROM_NET => int2med(0).ctrl_op(15),--med2int(INTERFACE_NUM).stat_op(13),
+ RESET_FROM_NET => make_reset,--med2int(INTERFACE_NUM).stat_op(13),
CLOCK_SELECT_IN => CLOCK_SELECT_IN,
BUS_RX => bustc_rx,
DEBUG_OUT => debug_clock_reset
);
+
+ CRI_RESET_PULSE_PROC : process begin
+ wait until rising_edge(clk_sys);
+ last_cri_resetPulse <= med2int(INTERFACE_NUM).stat_op(13);
+ reset_via_cri <= last_cri_resetPulse and not med2int(INTERFACE_NUM).stat_op(13);
+ end process;
+
+
+ --reset_via_cri <= med2int(INTERFACE_NUM).stat_op(13);
+
+ proc_make_reset : process begin
+ wait until rising_edge(clk_sys);
+ if( reset_via_cri = '1') then
+ reset_via_cri_long <= '1';
+ reset_via_cri_timer <= '1';
+ end if;
+ if timer.tick_us = '1' then
+ reset_via_cri_timer <= '0';
+ reset_via_cri_long <= reset_via_cri_timer;
+ end if;
+ last_reset_via_cri_long <= reset_via_cri_long;
+ make_reset <= last_reset_via_cri_long and not reset_via_cri_long;
+ end process;
---------------------------------------------------------------------------
-- TrbNet Uplink
---------------------------------------------------------------------------
TIMER_TICKS_OUT(0) => timer.tick_us,
TIMER_TICKS_OUT(1) => timer.tick_ms,
TEMPERATURE_OUT => timer.temperature,
- EXTERNAL_SEND_RESET => med2int(INTERFACE_NUM).stat_op(13),--reset_via_gbe,
+ EXTERNAL_SEND_RESET => reset_via_cri,
REGIO_ADDR_OUT => ctrlbus_rx.addr,
REGIO_READ_ENABLE_OUT => ctrlbus_rx.read,