X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;ds=sidebyside;f=cpu%2Fsrc%2Frs232_rx_arc.vhd;h=d251e09321a2abb5bccac0e02c2c88c45aead4ee;hb=667cacc3afde14286378b3cbc54d2123c9d8807c;hp=30d0e5b18db980cf837024c50b631f5386d3867b;hpb=2c90a003586019584fc9a128e0b8582ce9e6368b;p=calu.git diff --git a/cpu/src/rs232_rx_arc.vhd b/cpu/src/rs232_rx_arc.vhd index 30d0e5b..d251e09 100755 --- a/cpu/src/rs232_rx_arc.vhd +++ b/cpu/src/rs232_rx_arc.vhd @@ -20,7 +20,7 @@ use work.core_pkg.all; architecture beh of rs232_rx is -- definierern der intern verwendeten Signale - type STATE_TYPE is (IDLE, READ_START, READ_BIT, READ_STOP, POST_STOP); + type STATE_TYPE is (IDLE, READ_START, READ_BIT, READ_STOP); signal state, state_next : STATE_TYPE; signal bus_rx_last, bus_rx_int, new_rx_data_nxt : std_logic := '0'; signal cnt, cnt_next : integer := 0; @@ -99,14 +99,7 @@ begin when READ_STOP => -- hier wird nur noch auf das Stopbit abgewartet und gelesen um den -- Lesevorgang koerrekt zu beenden - if baud_cnt = bd_rate and bus_rx = '1' then - state_next <= IDLE; - elsif baud_cnt = bd_rate and bus_rx = '0' then - state_next <= IDLE; - end if; - when POST_STOP => - -- hier wird nur noch eine halbe Bitzeit gewartet - if baud_cnt(BAUD_RATE_WIDTH-2 downto 0) = bd_rate(BAUD_RATE_WIDTH-1 downto 1) then + if baud_cnt = bd_rate then state_next <= IDLE; end if; end case; @@ -153,17 +146,9 @@ begin baud_cnt_next <= std_logic_vector(unsigned(baud_cnt) + 1); if baud_cnt = bd_rate then baud_cnt_next <= (others => '0'); - new_rx_data_nxt <= '1'; + new_rx_data_nxt <= bus_rx; rx_data_res_nxt <= rx_data_int; end if; - when POST_STOP => - --halbe bitzeit wartenr auf counter warten - baud_cnt_next <= baud_cnt + 1; - if baud_cnt(BAUD_RATE_WIDTH-2 downto 0) = bd_rate(BAUD_RATE_WIDTH-1 downto 1) then - new_rx_data_nxt <= '1'; - rx_data_res_nxt <= rx_data_int; - baud_cnt_next <= (others => '0'); - end if; end case; end process;