ram: reducing instr- and dataram
[calu.git] / cpu / src / fetch_stage_b.vhd
index f86ad833a154e049e2d32fa3d79c5b5ef8c69f87..7e2032dde0c270bd01a0057de2d81dc28cbb1ac0 100644 (file)
@@ -81,8 +81,7 @@ begin
 
        if (instr_pc = x"0000007f" and rom_ram = ROM_USE) then
                rom_ram_nxt <= RAM_USE;
-               -- TODO: wenn genau auf adresse 0 im RAM ein br steht kracht es... :/
-               instr_r_addr_nxt <= x"00000000";
+               instr_r_addr_nxt <= (others => '0');
        end if;
 
        if (reset = RESET_VALUE) then
@@ -120,11 +119,11 @@ end process;
 out_logic : process (instr_r_addr, alu_jump_bit, int_req, jump_result)
 
 begin
-       prog_cnt(10 downto 0) <= std_logic_vector(unsigned(instr_r_addr(PHYS_INSTR_ADDR_WIDTH-1 downto 0)));
-       prog_cnt(31 downto 11) <= (others => '0');
+       prog_cnt(PHYS_INSTR_ADDR_WIDTH-1 downto 0) <= std_logic_vector(unsigned(instr_r_addr(PHYS_INSTR_ADDR_WIDTH-1 downto 0)));
+       prog_cnt(INSTR_ADDR_WIDTH-1 downto PHYS_INSTR_ADDR_WIDTH) <= (others => '0');
 
        if (int_req /= IDLE and alu_jump_bit = LOGIC_ACT ) then
-               prog_cnt(10 downto 0) <= jump_result(10 downto 0);
+               prog_cnt(PHYS_INSTR_ADDR_WIDTH-1 downto 0) <= jump_result(PHYS_INSTR_ADDR_WIDTH-1 downto 0);
        end if;
 
 end process;