Stefan Schuermans commited on 2012-02-12 18:05:38
Showing 8 changed files, with 40 additions and 44 deletions.
| ... | ... |
@@ -15,7 +15,7 @@ END ENTITY e_io_cyc_cnt; |
| 15 | 15 |
ARCHITECTURE a_io_cyc_cnt OF e_io_cyc_cnt IS |
| 16 | 16 |
|
| 17 | 17 |
SIGNAL n_cnt: std_logic_vector(31 DOWNTO 0); |
| 18 |
- SIGNAL r_cnt: std_logic_vector(31 DOWNTO 0); |
|
| 18 |
+ SIGNAL r_cnt: std_logic_vector(31 DOWNTO 0) := (OTHERS => '0'); |
|
| 19 | 19 |
|
| 20 | 20 |
BEGIN |
| 21 | 21 |
|
| ... | ... |
@@ -22,7 +22,7 @@ ARCHITECTURE a_mips_core OF e_mips_core IS |
| 22 | 22 |
SIGNAL s_stall: std_logic; |
| 23 | 23 |
SIGNAL s_stall_data_rd: std_logic; |
| 24 | 24 |
|
| 25 |
- SIGNAL r_pc: std_logic_vector(31 DOWNTO 0); |
|
| 25 |
+ SIGNAL r_pc: std_logic_vector(31 DOWNTO 0) := X"FFFFFFFC"; |
|
| 26 | 26 |
SIGNAL n_pc: std_logic_vector(31 DOWNTO 0); |
| 27 | 27 |
|
| 28 | 28 |
SIGNAL s_instr: std_logic_vector(31 DOWNTO 0); |
| ... | ... |
@@ -40,18 +40,18 @@ ARCHITECTURE a_mips_core OF e_mips_core IS |
| 40 | 40 |
SIGNAL n_imm: t_imm; |
| 41 | 41 |
SIGNAL n_ldst: t_ldst; |
| 42 | 42 |
|
| 43 |
- SIGNAL r_reg_s: std_logic_vector( 4 DOWNTO 0); |
|
| 44 |
- SIGNAL r_reg_t: std_logic_vector( 4 DOWNTO 0); |
|
| 45 |
- SIGNAL r_reg_d: std_logic_vector( 4 DOWNTO 0); |
|
| 46 |
- SIGNAL r_imm_a: std_logic_vector( 4 DOWNTO 0); |
|
| 47 |
- SIGNAL r_imm_16: std_logic_vector(15 DOWNTO 0); |
|
| 48 |
- SIGNAL r_imm_26: std_logic_vector(25 DOWNTO 0); |
|
| 49 |
- SIGNAL r_op: t_op; |
|
| 50 |
- SIGNAL r_link: t_link; |
|
| 51 |
- SIGNAL r_cmp: t_cmp; |
|
| 52 |
- SIGNAL r_alu: t_alu; |
|
| 53 |
- SIGNAL r_imm: t_imm; |
|
| 54 |
- SIGNAL r_ldst: t_ldst; |
|
| 43 |
+ SIGNAL r_reg_s: std_logic_vector( 4 DOWNTO 0) := (OTHERS => '0'); |
|
| 44 |
+ SIGNAL r_reg_t: std_logic_vector( 4 DOWNTO 0) := (OTHERS => '0'); |
|
| 45 |
+ SIGNAL r_reg_d: std_logic_vector( 4 DOWNTO 0) := (OTHERS => '0'); |
|
| 46 |
+ SIGNAL r_imm_a: std_logic_vector( 4 DOWNTO 0) := (OTHERS => '0'); |
|
| 47 |
+ SIGNAL r_imm_16: std_logic_vector(15 DOWNTO 0) := (OTHERS => '0'); |
|
| 48 |
+ SIGNAL r_imm_26: std_logic_vector(25 DOWNTO 0) := (OTHERS => '0'); |
|
| 49 |
+ SIGNAL r_op: t_op := op_none; |
|
| 50 |
+ SIGNAL r_link: t_link := link_none; |
|
| 51 |
+ SIGNAL r_cmp: t_cmp := cmp_none; |
|
| 52 |
+ SIGNAL r_alu: t_alu := alu_none; |
|
| 53 |
+ SIGNAL r_imm: t_imm := imm_none; |
|
| 54 |
+ SIGNAL r_ldst: t_ldst := ldst_none; |
|
| 55 | 55 |
|
| 56 | 56 |
SIGNAL s_val_s: std_logic_vector(31 DOWNTO 0); |
| 57 | 57 |
SIGNAL s_val_t: std_logic_vector(31 DOWNTO 0); |
| ... | ... |
@@ -88,12 +88,12 @@ ARCHITECTURE a_mips_core OF e_mips_core IS |
| 88 | 88 |
|
| 89 | 89 |
TYPE t_data_rd IS (data_rd_idle, data_rd_read); |
| 90 | 90 |
SIGNAL n_data_rd: t_data_rd; |
| 91 |
- SIGNAL r_data_rd: t_data_rd; |
|
| 91 |
+ SIGNAL r_data_rd: t_data_rd := data_rd_idle; |
|
| 92 | 92 |
|
| 93 | 93 |
SIGNAL n_reg_lo: std_logic_vector(31 DOWNTO 0); |
| 94 | 94 |
SIGNAL n_reg_hi: std_logic_vector(31 DOWNTO 0); |
| 95 |
- SIGNAL r_reg_lo: std_logic_vector(31 DOWNTO 0); |
|
| 96 |
- SIGNAL r_reg_hi: std_logic_vector(31 DOWNTO 0); |
|
| 95 |
+ SIGNAL r_reg_lo: std_logic_vector(31 DOWNTO 0) := (OTHERS => '0'); |
|
| 96 |
+ SIGNAL r_reg_hi: std_logic_vector(31 DOWNTO 0) := (OTHERS => '0'); |
|
| 97 | 97 |
|
| 98 | 98 |
SIGNAL s_mul_signed: std_logic; |
| 99 | 99 |
SIGNAL s_mul_start: std_logic; |
| ... | ... |
@@ -126,7 +126,6 @@ ARCHITECTURE a_mips_core OF e_mips_core IS |
| 126 | 126 |
|
| 127 | 127 |
COMPONENT e_mips_regs IS |
| 128 | 128 |
PORT ( |
| 129 |
- rst: IN std_logic; |
|
| 130 | 129 |
clk: IN std_logic; |
| 131 | 130 |
i_rd_a_no: IN std_logic_vector( 4 DOWNTO 0); |
| 132 | 131 |
o_rd_a_data: OUT std_logic_vector(31 DOWNTO 0); |
| ... | ... |
@@ -206,7 +205,6 @@ BEGIN |
| 206 | 205 |
|
| 207 | 206 |
regs: e_mips_regs |
| 208 | 207 |
PORT MAP ( |
| 209 |
- rst => rst, |
|
| 210 | 208 |
clk => clk, |
| 211 | 209 |
i_rd_a_no => r_reg_s, |
| 212 | 210 |
o_rd_a_data => s_val_s, |
| ... | ... |
@@ -21,17 +21,17 @@ ARCHITECTURE a_mips_div OF e_mips_div IS |
| 21 | 21 |
|
| 22 | 22 |
SUBTYPE t_state IS natural RANGE 0 TO 33; |
| 23 | 23 |
SIGNAL n_state: t_state; |
| 24 |
- SIGNAL r_state: t_state; |
|
| 24 |
+ SIGNAL r_state: t_state := 0; |
|
| 25 | 25 |
|
| 26 | 26 |
SIGNAL n_num: signed(63 DOWNTO 0); |
| 27 | 27 |
SIGNAL n_denom: signed(63 DOWNTO 0); |
| 28 | 28 |
SIGNAL n_neg: boolean; |
| 29 | 29 |
SIGNAL n_res: signed(31 DOWNTO 0); |
| 30 |
- SIGNAL r_num: signed(63 DOWNTO 0); |
|
| 31 |
- SIGNAL r_denom: signed(63 DOWNTO 0); |
|
| 32 |
- SIGNAL r_neg: boolean; |
|
| 33 |
- SIGNAL r_res: signed(31 DOWNTO 0); |
|
| 34 |
- SIGNAL s_rem: signed(31 DOWNTO 0); |
|
| 30 |
+ SIGNAL r_num: signed(63 DOWNTO 0) := (OTHERS => '0'); |
|
| 31 |
+ SIGNAL r_denom: signed(63 DOWNTO 0) := (OTHERS => '0'); |
|
| 32 |
+ SIGNAL r_neg: boolean := false; |
|
| 33 |
+ SIGNAL r_res: signed(31 DOWNTO 0) := (OTHERS => '0'); |
|
| 34 |
+ SIGNAL s_rem: signed(31 DOWNTO 0) := (OTHERS => '0'); |
|
| 35 | 35 |
|
| 36 | 36 |
BEGIN |
| 37 | 37 |
|
| ... | ... |
@@ -20,16 +20,16 @@ ARCHITECTURE a_mips_mul OF e_mips_mul IS |
| 20 | 20 |
|
| 21 | 21 |
TYPE t_state IS (idle, state_1, state_2, state_3, state_4, post); |
| 22 | 22 |
SIGNAL n_state: t_state; |
| 23 |
- SIGNAL r_state: t_state; |
|
| 23 |
+ SIGNAL r_state: t_state := idle; |
|
| 24 | 24 |
|
| 25 | 25 |
SIGNAL n_a: unsigned(31 DOWNTO 0); |
| 26 | 26 |
SIGNAL n_b: unsigned(31 DOWNTO 0); |
| 27 | 27 |
SIGNAL n_neg: boolean; |
| 28 | 28 |
SIGNAL n_res: unsigned(63 DOWNTO 0); |
| 29 |
- SIGNAL r_a: unsigned(31 DOWNTO 0); |
|
| 30 |
- SIGNAL r_b: unsigned(31 DOWNTO 0); |
|
| 31 |
- SIGNAL r_res: unsigned(63 DOWNTO 0); |
|
| 32 |
- SIGNAL r_neg: boolean; |
|
| 29 |
+ SIGNAL r_a: unsigned(31 DOWNTO 0) := (OTHERS => '0'); |
|
| 30 |
+ SIGNAL r_b: unsigned(31 DOWNTO 0) := (OTHERS => '0'); |
|
| 31 |
+ SIGNAL r_neg: boolean := false; |
|
| 32 |
+ SIGNAL r_res: unsigned(63 DOWNTO 0) := (OTHERS => '0'); |
|
| 33 | 33 |
|
| 34 | 34 |
BEGIN |
| 35 | 35 |
|
| ... | ... |
@@ -21,18 +21,18 @@ ARCHITECTURE a_mips_mul OF e_mips_mul IS |
| 21 | 21 |
TYPE t_state IS (idle, mul1, add1, mul2, add2, mul3, add3, mul4, add4, |
| 22 | 22 |
post); |
| 23 | 23 |
SIGNAL n_state: t_state; |
| 24 |
- SIGNAL r_state: t_state; |
|
| 24 |
+ SIGNAL r_state: t_state := idle; |
|
| 25 | 25 |
|
| 26 | 26 |
SIGNAL n_a: unsigned(31 DOWNTO 0); |
| 27 | 27 |
SIGNAL n_b: unsigned(31 DOWNTO 0); |
| 28 | 28 |
SIGNAL n_neg: boolean; |
| 29 | 29 |
SIGNAL n_r: unsigned(31 DOWNTO 0); |
| 30 | 30 |
SIGNAL n_res: unsigned(63 DOWNTO 0); |
| 31 |
- SIGNAL r_a: unsigned(31 DOWNTO 0); |
|
| 32 |
- SIGNAL r_b: unsigned(31 DOWNTO 0); |
|
| 33 |
- SIGNAL r_neg: boolean; |
|
| 34 |
- SIGNAL r_r: unsigned(31 DOWNTO 0); |
|
| 35 |
- SIGNAL r_res: unsigned(63 DOWNTO 0); |
|
| 31 |
+ SIGNAL r_a: unsigned(31 DOWNTO 0) := (OTHERS => '0'); |
|
| 32 |
+ SIGNAL r_b: unsigned(31 DOWNTO 0) := (OTHERS => '0'); |
|
| 33 |
+ SIGNAL r_neg: boolean := false; |
|
| 34 |
+ SIGNAL r_r: unsigned(31 DOWNTO 0) := (OTHERS => '0'); |
|
| 35 |
+ SIGNAL r_res: unsigned(63 DOWNTO 0) := (OTHERS => '0'); |
|
| 36 | 36 |
|
| 37 | 37 |
BEGIN |
| 38 | 38 |
|
| ... | ... |
@@ -5,7 +5,6 @@ USE work.mips_types.all; |
| 5 | 5 |
|
| 6 | 6 |
ENTITY e_mips_regs IS |
| 7 | 7 |
PORT ( |
| 8 |
- rst: IN std_logic; |
|
| 9 | 8 |
clk: IN std_logic; |
| 10 | 9 |
i_rd_a_no: IN std_logic_vector( 4 DOWNTO 0); |
| 11 | 10 |
o_rd_a_data: OUT std_logic_vector(31 DOWNTO 0); |
| ... | ... |
@@ -23,7 +22,7 @@ ARCHITECTURE a_mips_regs OF e_mips_regs IS |
| 23 | 22 |
|
| 24 | 23 |
TYPE t_regs IS ARRAY(t_idx) OF std_logic_vector(31 DOWNTO 0); |
| 25 | 24 |
|
| 26 |
- SIGNAL r_regs: t_regs; |
|
| 25 |
+ SIGNAL r_regs: t_regs := (OTHERS => (OTHERS => '0')); |
|
| 27 | 26 |
|
| 28 | 27 |
FUNCTION no2idx(no: std_logic_vector(4 DOWNTO 0)) RETURN natural IS |
| 29 | 28 |
BEGIN |
| ... | ... |
@@ -50,11 +49,9 @@ BEGIN |
| 50 | 49 |
END IF; |
| 51 | 50 |
END PROCESS p_read_b; |
| 52 | 51 |
|
| 53 |
- p_write: PROCESS(rst, clk) |
|
| 52 |
+ p_write: PROCESS(clk) |
|
| 54 | 53 |
BEGIN |
| 55 |
- IF rst = '1' THEN |
|
| 56 |
- -- r_regs <= (OTHERS => X"00000000"); |
|
| 57 |
- ELSIF rising_edge(clk) THEN |
|
| 54 |
+ IF rising_edge(clk) THEN |
|
| 58 | 55 |
IF i_wr_en = '1' THEN |
| 59 | 56 |
r_regs(no2idx(i_wr_no)) <= i_wr_data; |
| 60 | 57 |
END IF; |
| 61 | 58 |