Johannes Kutning 0d1b73e3e0 Initial commit
2023-10-31 07:47:27 +01:00

44 lines
764 B
VHDL

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;