Skip to content

Commit 2e4d214

Browse files
committed
Fixed fake RX transaction after FPGA boot.
1 parent a828832 commit 2e4d214

File tree

1 file changed

+12
-8
lines changed

1 file changed

+12
-8
lines changed

rtl/uart.vhd

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,8 @@ use IEEE.MATH_REAL.ALL;
2828
-- Signal BUSY replaced by DIN_RDY.
2929
-- Many other optimizations and changes.
3030
-- Version 1.2 -
31-
-- added double FF for safe CDC
31+
-- Added double FF for safe CDC.
32+
-- Fixed fake received transaction after FPGA boot without reset.
3233

3334
entity UART is
3435
Generic (
@@ -63,8 +64,9 @@ architecture RTL of UART is
6364

6465
signal oversampling_clk_cnt : unsigned(CLK_CNT_WIDTH-1 downto 0);
6566
signal oversampling_clk_en : std_logic;
66-
signal uart_rxd_meta : std_logic;
67-
signal uart_rxd_synced : std_logic;
67+
signal uart_rxd_meta_n : std_logic;
68+
signal uart_rxd_synced_n : std_logic;
69+
signal uart_rxd_debounced_n : std_logic;
6870
signal uart_rxd_debounced : std_logic;
6971

7072
begin
@@ -97,8 +99,8 @@ begin
9799
uart_rxd_cdc_reg_p : process (CLK)
98100
begin
99101
if (rising_edge(CLK)) then
100-
uart_rxd_meta <= UART_RXD;
101-
uart_rxd_synced <= uart_rxd_meta;
102+
uart_rxd_meta_n <= not UART_RXD;
103+
uart_rxd_synced_n <= uart_rxd_meta_n;
102104
end if;
103105
end process;
104106

@@ -113,15 +115,17 @@ begin
113115
)
114116
port map (
115117
CLK => CLK,
116-
DEB_IN => uart_rxd_synced,
117-
DEB_OUT => uart_rxd_debounced
118+
DEB_IN => uart_rxd_synced_n,
119+
DEB_OUT => uart_rxd_debounced_n
118120
);
119121
end generate;
120122

121123
not_use_debouncer_g : if (USE_DEBOUNCER = False) generate
122-
uart_rxd_debounced <= uart_rxd_synced;
124+
uart_rxd_debounced_n <= uart_rxd_synced_n;
123125
end generate;
124126

127+
uart_rxd_debounced <= not uart_rxd_debounced_n;
128+
125129
-- -------------------------------------------------------------------------
126130
-- UART RECEIVER
127131
-- -------------------------------------------------------------------------

0 commit comments

Comments
 (0)