OpenCores
URL https://opencores.org/ocsvn/altor32/altor32/trunk

Subversion Repositories altor32

[/] [altor32/] [trunk/] [rtl/] [cpu/] [altor32_dfu.v] - Diff between revs 27 and 36

Go to most recent revision | Show entire file | Details | Blame | View Log

Rev 27 Rev 36
Line 1... Line 1...
//-----------------------------------------------------------------
//-----------------------------------------------------------------
//                           AltOR32 
//                           AltOR32 
//                Alternative Lightweight OpenRisc 
//                Alternative Lightweight OpenRisc 
//                            V2.0
//                            V2.1
//                     Ultra-Embedded.com
//                     Ultra-Embedded.com
//                   Copyright 2011 - 2013
//                   Copyright 2011 - 2014
//
//
//               Email: admin@ultra-embedded.com
//               Email: admin@ultra-embedded.com
//
//
//                       License: LGPL
//                       License: LGPL
//-----------------------------------------------------------------
//-----------------------------------------------------------------
Line 80... Line 80...
 
 
    // Resolved register values
    // Resolved register values
    output reg [31:0]   result_ra_o /*verilator public*/,
    output reg [31:0]   result_ra_o /*verilator public*/,
    output reg [31:0]   result_rb_o /*verilator public*/,
    output reg [31:0]   result_rb_o /*verilator public*/,
 
 
 
    // Result required resolving
 
    output reg          resolved_o /*verilator public*/,
 
 
    // Stall due to failed resolve
    // Stall due to failed resolve
    output reg          stall_o /*verilator public*/
    output reg          stall_o /*verilator public*/
);
);
 
 
//-------------------------------------------------------------------
//-------------------------------------------------------------------
Line 93... Line 96...
begin
begin
   // Default to no forwarding
   // Default to no forwarding
   result_ra_o  = ra_regval_i;
   result_ra_o  = ra_regval_i;
   result_rb_o  = rb_regval_i;
   result_rb_o  = rb_regval_i;
   stall_o      = 1'b0;
   stall_o      = 1'b0;
 
   resolved_o   = 1'b0;
 
 
   //---------------------------------------------------------------
   //---------------------------------------------------------------
   // RA - Hazard detection & forwarding
   // RA - Hazard detection & forwarding
   //---------------------------------------------------------------
   //---------------------------------------------------------------
 
 
Line 123... Line 127...
            if (mult_lo_ex_i | mult_hi_wb_i)
            if (mult_lo_ex_i | mult_hi_wb_i)
                stall_o     = 1'b1;
                stall_o     = 1'b1;
            else
            else
            begin
            begin
                result_ra_o = result_ex_i;
                result_ra_o = result_ex_i;
 
                resolved_o  = 1'b1;
`ifdef CONF_CORE_DEBUG
`ifdef CONF_CORE_DEBUG
                $display(" rA[%d] forwarded 0x%08x (PC-4)", ra_i, result_ra_o);
                $display(" rA[%d] forwarded 0x%08x (PC-4)", ra_i, result_ra_o);
`endif
`endif
            end
            end
       end
       end
Line 140... Line 145...
            else if (mult_lo_wb_i)
            else if (mult_lo_wb_i)
                result_ra_o = result_mult_i[31:0];
                result_ra_o = result_mult_i[31:0];
            else
            else
                result_ra_o = result_wb_i;
                result_ra_o = result_wb_i;
 
 
 
            resolved_o  = 1'b1;
`ifdef CONF_CORE_DEBUG
`ifdef CONF_CORE_DEBUG
            $display(" rA[%d] forwarded 0x%08x (PC-8)", ra_i, result_ra_o);
            $display(" rA[%d] forwarded 0x%08x (PC-8)", ra_i, result_ra_o);
`endif
`endif
       end
       end
   end
   end
Line 176... Line 182...
            if (mult_lo_ex_i | mult_hi_wb_i)
            if (mult_lo_ex_i | mult_hi_wb_i)
                stall_o     = 1'b1;
                stall_o     = 1'b1;
            else
            else
            begin
            begin
                result_rb_o = result_ex_i;
                result_rb_o = result_ex_i;
 
                resolved_o  = 1'b1;
 
 
`ifdef CONF_CORE_DEBUG
`ifdef CONF_CORE_DEBUG
                $display(" rB[%d] forwarded 0x%08x (PC-4)", rb_i, result_rb_o);
                $display(" rB[%d] forwarded 0x%08x (PC-4)", rb_i, result_rb_o);
`endif
`endif
            end
            end
Line 194... Line 201...
            else if (mult_lo_wb_i)
            else if (mult_lo_wb_i)
                result_rb_o = result_mult_i[31:0];
                result_rb_o = result_mult_i[31:0];
            else
            else
                result_rb_o = result_wb_i;
                result_rb_o = result_wb_i;
 
 
 
            resolved_o  = 1'b1;
 
 
`ifdef CONF_CORE_DEBUG
`ifdef CONF_CORE_DEBUG
            $display(" rB[%d] forwarded 0x%08x (PC-8)", rb_i, result_rb_o);
            $display(" rB[%d] forwarded 0x%08x (PC-8)", rb_i, result_rb_o);
`endif
`endif
       end
       end
   end
   end

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.