- state_int <= state_next;
- rx_data_int <= rx_data_next;
- rx_new_int <= rx_new_next;
- bitcnt_int <= bitcnt_next;
- baudcnt_int <= baudcnt_next;
- startbitdetection(0) <= rxd;
- startbitdetection(1) <= startbitdetection(0);
- end if;
- end process;
-
- process(state_int, rx_data_int, rxd, bitcnt_int, baudcnt_int,
- startbitdetection)
- begin
- state_next <= state_int;
- rx_data_next <= rx_data_int;
- rx_new_next <= '0';
- bitcnt_next <= bitcnt_int;
- baudcnt_next <= baudcnt_int;
-
- case state_int is
- when IDLE =>
- -- bei fallender flanke koennte starbit folgen
- if startbitdetection = b"10" then
- state_next <= STARTBIT;
- baudcnt_next <= 0;
- end if;
- when STARTBIT =>
- rx_data_next <= (others => '0');
+ startbitdetection <= startbitdetection(0) & rxd;
+ rx_new <= '0';
+ baudcnt <= baudcnt + 1;
+ case state is
+ when IDLE =>
+ baudcnt <= 0;
+ -- bei fallender flanke koennte starbit folgen
+ if startbitdetection = b"10" then
+ state <= STARTBIT;
+ end if;
+ when STARTBIT =>
+ rx_data_int <= (others => '0');