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

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [or1200/] [rtl/] [verilog/] [or1200_except.v] - Diff between revs 258 and 353

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

Rev 258 Rev 353
Line 149... Line 149...
input                           dcpu_err_i;
input                           dcpu_err_i;
 
 
//
//
// Internal regs and wires
// Internal regs and wires
//
//
reg     [`OR1200_EXCEPT_WIDTH-1:0]       except_type;
reg     [`OR1200_EXCEPT_WIDTH-1:0]       except_type /* verilator public */;
reg     [31:0]                   id_pc;
reg     [31:0]                   id_pc /* verilator public */;
reg                 id_pc_val;
reg                 id_pc_val;
reg     [31:0]                   ex_pc;
reg     [31:0]                   ex_pc /* verilator public */;
reg                 ex_pc_val;
reg                 ex_pc_val;
reg     [31:0]                   wb_pc;
reg     [31:0]                   wb_pc /* verilator public */;
reg [31:0]          dl_pc;
reg [31:0]          dl_pc;
reg     [31:0]                   epcr;
reg     [31:0]                   epcr;
reg     [31:0]                   eear;
reg     [31:0]                   eear;
reg     [`OR1200_SR_WIDTH-1:0]           esr;
reg     [`OR1200_SR_WIDTH-1:0]           esr;
reg     [2:0]                    id_exceptflags;
reg     [2:0]                    id_exceptflags;
reg     [2:0]                    ex_exceptflags;
reg     [2:0]                    ex_exceptflags;
reg     [`OR1200_EXCEPTFSM_WIDTH-1:0]    state;
reg     [`OR1200_EXCEPTFSM_WIDTH-1:0]    state;
reg                             extend_flush;
reg                             extend_flush;
reg                             extend_flush_last;
reg                             extend_flush_last;
reg                             ex_dslot;
reg                             ex_dslot /* verilator public */;
reg                             delayed1_ex_dslot;
reg                             delayed1_ex_dslot;
reg                             delayed2_ex_dslot;
reg                             delayed2_ex_dslot;
wire                            except_started;
wire                            except_started;
 
wire                            except_flushpipe /* verilator public */;
reg     [2:0]                    delayed_iee;
reg     [2:0]                    delayed_iee;
reg     [2:0]                    delayed_tee;
reg     [2:0]                    delayed_tee;
wire                            int_pending;
wire                            int_pending;
wire                            tick_pending;
wire                            tick_pending;
wire                            fp_pending;
wire                            fp_pending;
Line 291... Line 292...
            dmr1_bt_prev    <=  du_dmr1[`OR1200_DU_DMR1_BT] ;
            dmr1_bt_prev    <=  du_dmr1[`OR1200_DU_DMR1_BT] ;
        end
        end
    end
    end
end
end
 
 
 
`ifdef verilator
 
   // Function to access wb_pc (for Verilator). Have to hide this from
 
   // simulator, since functions with no inputs are not allowed in IEEE
 
   // 1364-2001.
 
   function [31:0] get_wb_pc;
 
      // verilator public
 
      get_wb_pc = wb_pc;
 
   endfunction // get_wb_pc
 
 
 
   // Function to access id_pc (for Verilator). Have to hide this from
 
   // simulator, since functions with no inputs are not allowed in IEEE
 
   // 1364-2001.
 
   function [31:0] get_id_pc;
 
      // verilator public
 
      get_id_pc = id_pc;
 
   endfunction // get_id_pc
 
 
 
   // Function to access ex_pc (for Verilator). Have to hide this from
 
   // simulator, since functions with no inputs are not allowed in IEEE
 
   // 1364-2001.
 
   function [31:0] get_ex_pc;
 
      // verilator public
 
      get_ex_pc = ex_pc;
 
   endfunction // get_ex_pc
 
   // Function to access except_type[3:0] (for Verilator). Have to hide this from
 
   // simulator, since functions with no inputs are not allowed in IEEE
 
   // 1364-2001.
 
   function [3:0] get_except_type;
 
      // verilator public
 
      get_except_type = except_type;
 
   endfunction // get_except_type
 
 
 
`endif
 
 
 
 
//
//
// PC and Exception flags pipelines
// PC and Exception flags pipelines
//
//
always @(posedge clk or posedge rst) begin
always @(posedge clk or posedge rst) begin
        if (rst) begin
        if (rst) begin

powered by: WebSVN 2.1.0

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