Stefan Schuermans commited on 2012-02-12 19:10:11
Showing 3 changed files, with 41 additions and 20 deletions.
... | ... |
@@ -19,8 +19,6 @@ ARCHITECTURE a_io_cyc_cnt OF e_io_cyc_cnt IS |
19 | 19 |
|
20 | 20 |
BEGIN |
21 | 21 |
|
22 |
- o_rd_data <= r_cnt; |
|
23 |
- |
|
24 | 22 |
p_write: PROCESS(r_cnt, i_wr_data, i_wr_en) |
25 | 23 |
BEGIN |
26 | 24 |
IF i_wr_en = '1' THEN |
... | ... |
@@ -39,5 +37,14 @@ BEGIN |
39 | 37 |
END IF; |
40 | 38 |
END PROCESS p_sync; |
41 | 39 |
|
40 |
+ p_read: PROCESS(rst, clk) |
|
41 |
+ BEGIN |
|
42 |
+ IF rst = '1' THEN |
|
43 |
+ o_rd_data <= (OTHERS => '0'); |
|
44 |
+ ELSIF rising_edge(clk) THEN |
|
45 |
+ o_rd_data <= r_cnt; |
|
46 |
+ END IF; |
|
47 |
+ END PROCESS p_read; |
|
48 |
+ |
|
42 | 49 |
END ARCHITECTURE a_io_cyc_cnt; |
43 | 50 |
|
... | ... |
@@ -22,15 +22,7 @@ ARCHITECTURE a_io_lcd OF e_io_lcd IS |
22 | 22 |
|
23 | 23 |
BEGIN |
24 | 24 |
|
25 |
- o_rd_data( 7 DOWNTO 0) <= r_lcd.data; |
|
26 |
- o_rd_data( 8) <= r_lcd.e; |
|
27 |
- o_rd_data(15 DOWNTO 9) <= (OTHERS => '0'); |
|
28 |
- o_rd_data(16) <= r_lcd.rs; |
|
29 |
- o_rd_data(23 DOWNTO 17) <= (OTHERS => '0'); |
|
30 |
- o_rd_data(24) <= r_lcd.rw; |
|
31 |
- o_rd_data(31 DOWNTO 25) <= (OTHERS => '0'); |
|
32 |
- |
|
33 |
- p_write: PROCESS(r_lcd, i_wr_data, i_wr_en) |
|
25 |
+ p_next: PROCESS(r_lcd, i_wr_data, i_wr_en) |
|
34 | 26 |
BEGIN |
35 | 27 |
IF i_wr_en(0) = '1' THEN |
36 | 28 |
n_lcd.data <= i_wr_data(7 DOWNTO 0); |
... | ... |
@@ -52,9 +44,7 @@ BEGIN |
52 | 44 |
ELSE |
53 | 45 |
n_lcd.rw <= r_lcd.rw; |
54 | 46 |
END IF; |
55 |
- END PROCESS p_write; |
|
56 |
- |
|
57 |
- pin_o_lcd <= r_lcd; |
|
47 |
+ END PROCESS p_next; |
|
58 | 48 |
|
59 | 49 |
p_sync: PROCESS(rst, clk) |
60 | 50 |
BEGIN |
... | ... |
@@ -68,5 +58,22 @@ BEGIN |
68 | 58 |
END IF; |
69 | 59 |
END PROCESS p_sync; |
70 | 60 |
|
61 |
+ p_read: PROCESS(rst, clk) |
|
62 |
+ BEGIN |
|
63 |
+ IF rst = '1' THEN |
|
64 |
+ o_rd_data <= (OTHERS => '0'); |
|
65 |
+ ELSIF rising_edge(clk) THEN |
|
66 |
+ o_rd_data( 7 DOWNTO 0) <= r_lcd.data; |
|
67 |
+ o_rd_data( 8) <= r_lcd.e; |
|
68 |
+ o_rd_data(15 DOWNTO 9) <= (OTHERS => '0'); |
|
69 |
+ o_rd_data(16) <= r_lcd.rs; |
|
70 |
+ o_rd_data(23 DOWNTO 17) <= (OTHERS => '0'); |
|
71 |
+ o_rd_data(24) <= r_lcd.rw; |
|
72 |
+ o_rd_data(31 DOWNTO 25) <= (OTHERS => '0'); |
|
73 |
+ END IF; |
|
74 |
+ END PROCESS p_read; |
|
75 |
+ |
|
76 |
+ pin_o_lcd <= r_lcd; |
|
77 |
+ |
|
71 | 78 |
END ARCHITECTURE a_io_lcd; |
72 | 79 |
|
... | ... |
@@ -20,18 +20,14 @@ ARCHITECTURE a_io_leds OF e_io_leds IS |
20 | 20 |
|
21 | 21 |
BEGIN |
22 | 22 |
|
23 |
- o_rd_data <= r_leds; |
|
24 |
- |
|
25 |
- p_write: PROCESS(r_leds, i_wr_data, i_wr_en) |
|
23 |
+ p_next: PROCESS(r_leds, i_wr_data, i_wr_en) |
|
26 | 24 |
BEGIN |
27 | 25 |
IF i_wr_en = '1' THEN |
28 | 26 |
n_leds <= i_wr_data; |
29 | 27 |
ELSE |
30 | 28 |
n_leds <= r_leds; |
31 | 29 |
END IF; |
32 |
- END PROCESS p_write; |
|
33 |
- |
|
34 |
- pin_o_leds <= r_leds; |
|
30 |
+ END PROCESS p_next; |
|
35 | 31 |
|
36 | 32 |
p_sync: PROCESS(rst, clk) |
37 | 33 |
BEGIN |
... | ... |
@@ -42,5 +38,16 @@ BEGIN |
42 | 38 |
END IF; |
43 | 39 |
END PROCESS p_sync; |
44 | 40 |
|
41 |
+ p_read: PROCESS(rst, clk) |
|
42 |
+ BEGIN |
|
43 |
+ IF rst = '1' THEN |
|
44 |
+ o_rd_data <= (OTHERS => '0'); |
|
45 |
+ ELSIF rising_edge(clk) THEN |
|
46 |
+ o_rd_data <= r_leds; |
|
47 |
+ END IF; |
|
48 |
+ END PROCESS p_read; |
|
49 |
+ |
|
50 |
+ pin_o_leds <= r_leds; |
|
51 |
+ |
|
45 | 52 |
END ARCHITECTURE a_io_leds; |
46 | 53 |
|
47 | 54 |