library ieee; use ieee.std_logic_1164.all; entity sync_rst is generic ( WIDTH : positive range 2 to 5 := 3 ); port ( clk : in std_logic; reset : in std_logic; rst_sync : out std_logic ); end entity sync_rst; architecture rtl of sync_rst is --! Synchronization FFs signal sync : std_logic_vector( WIDTH - 1 downto 0 ); begin p_sync: process ( clk, reset ) is begin if ( reset = '1' ) then sync <= ( others => '1' ); elsif ( rising_edge( clk ) ) then sync( 0 ) <= '0'; sync( WIDTH - 1 downto 1 ) <= sync( WIDTH - 2 downto 0 ); end if; end process p_sync; rst_sync <= sync( WIDTH - 1 ); end architecture rtl;