projects
/
calu.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
2c90a00
)
uart sollte jetzt gehen
author
Manfred
<xzarion@l0725898.(none)>
Tue, 11 Jan 2011 12:41:48 +0000
(13:41 +0100)
committer
Manfred
<xzarion@l0725898.(none)>
Tue, 11 Jan 2011 12:41:48 +0000
(13:41 +0100)
cpu/src/rs232_rx_arc.vhd
patch
|
blob
|
history
diff --git
a/cpu/src/rs232_rx_arc.vhd
b/cpu/src/rs232_rx_arc.vhd
index 30d0e5b18db980cf837024c50b631f5386d3867b..d251e09321a2abb5bccac0e02c2c88c45aead4ee 100755
(executable)
--- 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
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;
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
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;
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');
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;
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;
end case;
end process;