|
|
- library ieee ;
- use ieee.std_logic_1164.all;
-
-
- -- Async reset synchronizer circuit inspired from
- -- Chris Cummings SNUG 2002 paper
- -- Synchronous Resets? Asynchronous Resets?
- -- I am so confused!
- -- How will I ever know which to use?
-
- entity reset_sync is
- generic (
- POLARITY : std_logic := '0'
- );
- port (
- clk_i : in std_logic;
- rst_i : in std_logic;
- rst_o : out std_logic
- );
- end entity;
-
-
- architecture sim of reset_sync is
-
- signal s_rst_d : std_logic_vector(1 downto 0);
-
- begin
-
- process (clk_i, rst_i) is
- begin
- if (rst_i = POLARITY) then
- s_rst_d <= (others => POLARITY);
- elsif (rising_edge(clk_i)) then
- s_rst_d <= s_rst_d(0) & not POLARITY;
- end if;
- end process;
-
- rst_o <= s_rst_d(1);
-
- end architecture;
|