From e874bfa228e28de457565175efde64ed0e0e74d4 Mon Sep 17 00:00:00 2001 From: Jens Ahrensfeld Date: Sun, 15 Feb 2009 11:08:50 +0000 Subject: [PATCH] - put dependency signals 'imem_dep', 'dmem_dep' and 'mul_dep' into structure for easier debugging 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@352 cc03376c-175c-47c8-b038-4cd826a8556b --- lib/CPUs/MIPS/src/core/mips_pipeline.vhd | 23 ++++++++++------------- lib/CPUs/MIPS/src/core/mips_types.vhd | 3 +++ 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/lib/CPUs/MIPS/src/core/mips_pipeline.vhd b/lib/CPUs/MIPS/src/core/mips_pipeline.vhd index 210d566..0264e29 100644 --- a/lib/CPUs/MIPS/src/core/mips_pipeline.vhd +++ b/lib/CPUs/MIPS/src/core/mips_pipeline.vhd @@ -179,9 +179,6 @@ architecture Behavioral of pipeline is signal ctrl_lines : ctrl_lines_t; signal branch_ce : STD_LOGIC; signal cpu_run : STD_LOGIC; - signal mul_dep : STD_LOGIC; - signal imem_dep : STD_LOGIC; - signal dmem_dep : STD_LOGIC; signal cop_ctrl : cop_ctrl_in_t; signal cop_stat : cop_ctrl_out_t; signal cop_din : word_t; @@ -214,21 +211,21 @@ begin cpu_run <= ce; -- Stall Detection Unit --------------------------------------------------- - sdu.ID_nop <= imem_dep or cop_stat.exc_pending or EX_stage.exc or MEM_stage.exc; - sdu.EX_nop <= mul_dep or ID_stage.nop or ID_stage.exc; + sdu.ID_nop <= sdu.imem_dep or cop_stat.exc_pending or EX_stage.exc or MEM_stage.exc; + sdu.EX_nop <= sdu.mul_dep or ID_stage.nop or ID_stage.exc; sdu.MEM_nop <= EX_stage.nop or EX_stage.exc; - sdu.WB_nop <= dmem_dep or MEM_stage.nop; + sdu.WB_nop <= sdu.dmem_dep or MEM_stage.nop; - sdu.ID_stall <= dmem_dep or imem_dep or mul_dep or ID_stage.exc; - sdu.EX_stall <= dmem_dep; - sdu.MEM_stall <= dmem_dep; + sdu.ID_stall <= sdu.dmem_dep or sdu.imem_dep or sdu.mul_dep or ID_stage.exc; + sdu.EX_stall <= sdu.dmem_dep; + sdu.MEM_stall <= sdu.dmem_dep; sdu.WB_stall <= '0'; - mul_dep <= ID_stage.ctrl.mul_access and (EX_stage.ctrl.mul_start or mul_busy); - imem_dep <= not imem_rdy; - dmem_dep <= not dmem_rdy and MEM_stage.ctrl.dmem_en; + sdu.mul_dep <= ID_stage.ctrl.mul_access and (EX_stage.ctrl.mul_start or mul_busy); + sdu.imem_dep <= not imem_rdy; + sdu.dmem_dep <= not dmem_rdy and MEM_stage.ctrl.dmem_en; --------------------------------------------------------------------------- - imem_en <= cpu_run and not (mul_dep or dmem_dep or cop_stat.exc_commit); + imem_en <= cpu_run and not (sdu.mul_dep or sdu.dmem_dep or cop_stat.exc_commit); -------------------------------------------------------------------------- -- Muldiv diff --git a/lib/CPUs/MIPS/src/core/mips_types.vhd b/lib/CPUs/MIPS/src/core/mips_types.vhd index a6db7be..f599822 100644 --- a/lib/CPUs/MIPS/src/core/mips_types.vhd +++ b/lib/CPUs/MIPS/src/core/mips_types.vhd @@ -220,6 +220,9 @@ package mips_types is end record; type sdu_t is record + imem_dep : STD_LOGIC; + dmem_dep : STD_LOGIC; + mul_dep : STD_LOGIC; ID_nop : STD_LOGIC; EX_nop : STD_LOGIC; MEM_nop : STD_LOGIC;