From 4dc562bfe536987b7f1b348b50bfd45e0b50c33f Mon Sep 17 00:00:00 2001 From: Jens Ahrensfeld Date: Sat, 28 Mar 2009 18:27:05 +0000 Subject: [PATCH] - removed MUX for RESET_VECTOR in proc_stage_pc: Committed on the Free edition of March Hare Software CVSNT Server. Upgrade to CVS Suite for more features and support: http://march-hare.com/cvsnt/ git-svn-id: http://moon:8086/svn/vhdl/trunk@416 cc03376c-175c-47c8-b038-4cd826a8556b --- lib/CPUs/MIPS/src/core/mips_pipeline.vhd | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/lib/CPUs/MIPS/src/core/mips_pipeline.vhd b/lib/CPUs/MIPS/src/core/mips_pipeline.vhd index 38a9635..6b06f11 100644 --- a/lib/CPUs/MIPS/src/core/mips_pipeline.vhd +++ b/lib/CPUs/MIPS/src/core/mips_pipeline.vhd @@ -243,16 +243,12 @@ inst_muldiv: muldiv imem_addr <= pc.curr; proc_stage_pc: - process(pc, rst, c0_ctrl_in) + process(pc, c0_ctrl_in) begin - if rst = '1' then - pc.curr <= RESET_VECTOR after 2 ns; + if pc.is_branch and c0_ctrl_in.exc_pending = '0' then + pc.curr <= pc.pc_branch after 2 ns; else - if pc.is_branch and c0_ctrl_in.exc_pending = '0' then - pc.curr <= pc.pc_branch after 2 ns; - else - pc.curr <= pc.nxt after 2 ns; - end if; + pc.curr <= pc.nxt after 2 ns; end if; end process; @@ -272,8 +268,8 @@ proc_stage_pc_next: if rising_edge(clk_1) then c0_ctrl_out.exc_left <= '0'; if rst = '1' then - pc.nxt <= pc.curr; - pc.last <= pc.curr; + pc.nxt <= RESET_VECTOR; + pc.last <= RESET_VECTOR; branch_ce <= '1'; else branch_ce <= '0';