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

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [or1200/] [rtl/] [verilog/] [or1200_freeze.v] - Diff between revs 364 and 640

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

Rev 364 Rev 640
Line 128... Line 128...
 
 
assign genpc_freeze = (du_stall & !saving_if_insn) | flushpipe_r;
assign genpc_freeze = (du_stall & !saving_if_insn) | flushpipe_r;
assign if_freeze = id_freeze | extend_flush;
assign if_freeze = id_freeze | extend_flush;
 
 
assign id_freeze = (lsu_stall | (~lsu_unstall & if_stall) | multicycle_freeze
assign id_freeze = (lsu_stall | (~lsu_unstall & if_stall) | multicycle_freeze
                    | (|waiting_on) | force_dslot_fetch) | du_stall | mac_stall;
                    | (|waiting_on) | force_dslot_fetch) | du_stall;
assign ex_freeze = wb_freeze;
assign ex_freeze = wb_freeze;
 
 
assign wb_freeze = (lsu_stall | (~lsu_unstall & if_stall) | multicycle_freeze
assign wb_freeze = (lsu_stall | (~lsu_unstall & if_stall) | multicycle_freeze
                    | (|waiting_on)) | du_stall | mac_stall | abort_ex;
                    | (|waiting_on)) | du_stall | abort_ex;
 
 
//
//
// registered flushpipe
// registered flushpipe
//
//
always @(posedge clk or `OR1200_RST_EVENT rst)
always @(posedge clk or `OR1200_RST_EVENT rst)
Line 169... Line 169...
// Waiting on generation
// Waiting on generation
//
//
always @(posedge clk or `OR1200_RST_EVENT rst)
always @(posedge clk or `OR1200_RST_EVENT rst)
  if (rst == `OR1200_RST_VALUE)
  if (rst == `OR1200_RST_VALUE)
    waiting_on <= 0;
    waiting_on <= 0;
 
  else if ((waiting_on == `OR1200_WAIT_ON_MULTMAC) & !mac_stall)
 
    waiting_on <= 0;
  else if ((waiting_on == `OR1200_WAIT_ON_FPU) & fpu_done)
  else if ((waiting_on == `OR1200_WAIT_ON_FPU) & fpu_done)
    waiting_on <= 0;
    waiting_on <= 0;
  else if ((waiting_on == `OR1200_WAIT_ON_MTSPR) & mtspr_done)
  else if ((waiting_on == `OR1200_WAIT_ON_MTSPR) & mtspr_done)
    waiting_on <= 0;
    waiting_on <= 0;
  else if (!ex_freeze)
  else if (!ex_freeze)

powered by: WebSVN 2.1.0

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