Stefan Schuermans commited on 2012-01-26 21:17:30
Showing 1 changed files, with 16 additions and 2 deletions.
... | ... |
@@ -32,16 +32,30 @@ ARCHITECTURE a_mips_regs OF e_mips_regs IS |
32 | 32 |
|
33 | 33 |
BEGIN |
34 | 34 |
|
35 |
+ p_read_a: PROCESS(i_rd_a_no) |
|
36 |
+ BEGIN |
|
37 |
+ IF i_rd_a_no = "00000" THEN |
|
38 |
+ o_rd_a_data <= X"00000000"; |
|
39 |
+ ELSE |
|
35 | 40 |
o_rd_a_data <= r_regs(no2idx(i_rd_a_no)); |
41 |
+ END IF; |
|
42 |
+ END PROCESS p_read_a; |
|
36 | 43 |
|
44 |
+ p_read_b: PROCESS(i_rd_a_no) |
|
45 |
+ BEGIN |
|
46 |
+ IF i_rd_b_no = "00000" THEN |
|
47 |
+ o_rd_b_data <= X"00000000"; |
|
48 |
+ ELSE |
|
37 | 49 |
o_rd_b_data <= r_regs(no2idx(i_rd_b_no)); |
50 |
+ END IF; |
|
51 |
+ END PROCESS p_read_b; |
|
38 | 52 |
|
39 | 53 |
p_write: PROCESS(rst, clk) |
40 | 54 |
BEGIN |
41 | 55 |
IF rst = '1' THEN |
42 |
- r_regs <= (OTHERS => X"00000000"); |
|
56 |
+ -- r_regs <= (OTHERS => X"00000000"); |
|
43 | 57 |
ELSIF rising_edge(clk) THEN |
44 |
- IF i_wr_en = '1' AND i_wr_no /= "00000" THEN |
|
58 |
+ IF i_wr_en = '1' THEN |
|
45 | 59 |
r_regs(no2idx(i_wr_no)) <= i_wr_data; |
46 | 60 |
END IF; |
47 | 61 |
END IF; |
48 | 62 |