|
|
@ -0,0 +1,42 @@ |
|
|
|
library ieee; |
|
|
|
use ieee.std_logic_1164.all; |
|
|
|
use ieee.numeric_std.all; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
entity dlatch is |
|
|
|
generic ( |
|
|
|
Init : std_logic_vector(31 downto 0) := x"DEADBEEF" |
|
|
|
); |
|
|
|
port ( |
|
|
|
Reset_n_i : in std_logic; |
|
|
|
Clk_i : in std_logic; |
|
|
|
Wen_i : in std_logic; |
|
|
|
Data_i : in std_logic_vector(15 downto 0); |
|
|
|
Data_o : out std_logic_vector(31 downto 0) |
|
|
|
); |
|
|
|
end entity dlatch; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
architecture rtl of dlatch is |
|
|
|
|
|
|
|
|
|
|
|
begin |
|
|
|
|
|
|
|
|
|
|
|
process (Reset_n_i, Clk_i) is |
|
|
|
begin |
|
|
|
if (Reset_n_i = '0') then |
|
|
|
Data_o <= Init; |
|
|
|
elsif (rising_edge(Clk_i)) then |
|
|
|
if (Wen_i = '1') then |
|
|
|
Data_o(7 downto 0) <= Data_i(7 downto 0); |
|
|
|
Data_o(23 downto 16) <= Data_i(15 downto 8); |
|
|
|
end if; |
|
|
|
end if; |
|
|
|
end process; |
|
|
|
|
|
|
|
|
|
|
|
end architecture rtl; |
|
|
|
|