otsdaq_prepmodernization  v2_05_02_indev
reset_mgr.vhd
1 ----------------------------------------------------------------------------------
2 -- Company:
3 -- Engineer:
4 --
5 -- Create Date: 10:59:20 08/16/2012
6 -- Design Name:
7 -- Module Name: reset_mgr - Behavioral
8 -- Project Name:
9 -- Target Devices:
10 -- Tool versions:
11 -- Description:
12 --
13 -- Dependencies:
14 --
15 -- Revision:
16 -- Revision 0.01 - File Created
17 -- Additional Comments:
18 --
19 ----------------------------------------------------------------------------------
20 library IEEE;
21 use IEEE.STD_LOGIC_1164.ALL;
22 use IEEE.NUMERIC_STD.ALL;
23 use IEEE.std_logic_misc.ALL;
24 
25 
26 entity reset_mgr is
27  Port ( slow_clk : in STD_LOGIC;
28  reset_start : in STD_LOGIC;
29  reset : out STD_LOGIC);
30 end reset_mgr;
31 
32 architecture Behavioral of reset_mgr is
33 
34  signal cnt : unsigned(15 downto 0) := (others => '0');
35  signal old_reset_start : std_logic := '1';
36 begin
37 
38  process(slow_clk)
39  begin
40 
41  if rising_edge(slow_clk) then
42 
43  reset <= '0';
44  old_reset_start <= reset_start;
45 
46  if cnt < 100 then -- 100 -- currently reseting
47  reset <= '1';
48  cnt <= cnt + 1;
49  elsif old_reset_start = '0' and reset_start = '1' then
50  cnt <= (others => '0');
51  reset <= '1';
52  end if;
53 
54  end if;
55 
56 
57  end process;
58 
59 end Behavioral;
60