aboutsummaryrefslogtreecommitdiff
path: root/src/uart_rx_bitcnt.vhd
diff options
context:
space:
mode:
Diffstat (limited to 'src/uart_rx_bitcnt.vhd')
-rw-r--r--src/uart_rx_bitcnt.vhd9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/uart_rx_bitcnt.vhd b/src/uart_rx_bitcnt.vhd
index 7aec27a..78e8a1c 100644
--- a/src/uart_rx_bitcnt.vhd
+++ b/src/uart_rx_bitcnt.vhd
@@ -15,6 +15,15 @@ entity uart_rx_bitcnt is
end entity;
architecture rtl of uart_rx_bitcnt is
+ signal cnt, ncnt : unsigned(3 downto 0);
begin
+ cnt <= "0000" when rst_n = '0' else ncnt when rising_edge(clk);
+ ncnt <= "0001" when edge_i = '1' and cnt = 0 else
+ cnt + 1 when en_f_i = '1' and cnt > 0 and cnt < 10 else
+ "0000" when en_h_i = '1' and cnt = 10 else cnt;
+
+ rx_shift_o <= '1' when cnt >= 2 and cnt <= 9 and en_h_i = '1' else '0';
+ dv_o <= '1' when cnt = 9 and en_f_i = '1' else '0';
+ rx_baudcnt_res_o <= '1' when cnt = 0 else '0';
end architecture rtl;