diff options
author | Friedrich Beckmann <friedrich.beckmann@hs-augsburg.de> | 2024-05-28 12:20:02 +0200 |
---|---|---|
committer | Friedrich Beckmann <friedrich.beckmann@hs-augsburg.de> | 2024-05-28 12:20:02 +0200 |
commit | aa054291a7f4eaf136d228d851354bd879fd8fe1 (patch) | |
tree | f88256db5cd1677f119b312b8f8d716a3670ad83 /src | |
parent | f780458e75d1e22742a091e8e9cf89009e91ee8a (diff) |
add uart_rx_edge
Diffstat (limited to 'src')
-rw-r--r-- | src/uart_rx_edge.vhd | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/src/uart_rx_edge.vhd b/src/uart_rx_edge.vhd new file mode 100644 index 0000000..9a85f92 --- /dev/null +++ b/src/uart_rx_edge.vhd @@ -0,0 +1,21 @@ +library ieee; +use ieee.std_logic_1164.all; + +entity uart_rx_edge is + port ( + clk : in std_ulogic; + rst_n : in std_ulogic; + rxd_i : in std_ulogic; + rxd_o : out std_ulogic; + edge_o : out std_ulogic); +end entity; + +architecture rtl of uart_rx_edge is + signal sr, nsr : std_ulogic_vector(1 downto 0); +begin + sr <= "00" when rst_n = '0' else nsr when rising_edge(clk); + nsr <= rxd_i & sr(1); + rxd_o <= sr(0); + edge_o <= '1' when sr = "01" else '0'; +end architecture rtl; + |