Line 16... |
Line 16... |
// You should have received a copy of the GNU General Public
|
// You should have received a copy of the GNU General Public
|
// License along with this work; if not, write to the Free Software
|
// License along with this work; if not, write to the Free Software
|
// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
|
// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
|
//
|
//
|
// ========== Copyright Header End ============================================
|
// ========== Copyright Header End ============================================
|
|
`ifdef SIMPLY_RISC_TWEAKS
|
|
`define SIMPLY_RISC_SCANIN .si(0)
|
|
`else
|
|
`define SIMPLY_RISC_SCANIN .si()
|
|
`endif
|
//////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////
|
/*
|
/*
|
// Module Name: sparc_ifu_wsel
|
// Module Name: sparc_ifu_wsel
|
// Description:
|
// Description:
|
// Way selects removed from icache and done here
|
// Way selects removed from icache and done here
|
Line 70... |
Line 75... |
//------------------
|
//------------------
|
|
|
assign clk = rclk;
|
assign clk = rclk;
|
|
|
// flop and decode waysel
|
// flop and decode waysel
|
dff #(2) asiway_reg(.din (ifq_erb_asiway_f),
|
dff_s #(2) asiway_reg(.din (ifq_erb_asiway_f),
|
.q (asiway_s),
|
.q (asiway_s),
|
.clk (clk), .se(se), .si(), .so());
|
.clk (clk), .se(se), `SIMPLY_RISC_SCANIN, .so());
|
assign dec_asiway_s_l[0] = ~(~asiway_s[1] & ~asiway_s[0]);
|
assign dec_asiway_s_l[0] = ~(~asiway_s[1] & ~asiway_s[0]);
|
assign dec_asiway_s_l[1] = ~(~asiway_s[1] & asiway_s[0]);
|
assign dec_asiway_s_l[1] = ~(~asiway_s[1] & asiway_s[0]);
|
assign dec_asiway_s_l[2] = ~( asiway_s[1] & ~asiway_s[0]);
|
assign dec_asiway_s_l[2] = ~( asiway_s[1] & ~asiway_s[0]);
|
assign dec_asiway_s_l[3] = ~( asiway_s[1] & asiway_s[0]);
|
assign dec_asiway_s_l[3] = ~( asiway_s[1] & asiway_s[0]);
|
|
|
Line 154... |
Line 159... |
|
|
// Everything below can be ignored for physical implementation
|
// Everything below can be ignored for physical implementation
|
// monitor for waysel -- moved here from itlb
|
// monitor for waysel -- moved here from itlb
|
// Keeping this around for 0-in. cmp level check is in icache_mutex_mon.v
|
// Keeping this around for 0-in. cmp level check is in icache_mutex_mon.v
|
|
|
|
`ifdef DEFINE_0IN
|
|
always @ (negedge clk)
|
|
begin
|
|
if (!((waysel_buf_s1 == 4'b0001) ||
|
|
(waysel_buf_s1 == 4'b0010) ||
|
|
(waysel_buf_s1 == 4'b0100) ||
|
|
(waysel_buf_s1 == 4'b1000) ||
|
|
(waysel_buf_s1 == 4'b0000)))
|
|
begin
|
|
// 0in <fire -message "FATAL ERROR: icache waysel not mutex"
|
|
//$error("IC_WAYSEL", "FATAL ERROR: icache waysel not mutex %b",
|
|
// waysel_buf_s1);
|
|
end
|
|
end // always @ (negedge clk)
|
|
`endif
|
|
|
endmodule // sparc_ifu_wseldp
|
endmodule // sparc_ifu_wseldp
|
|
|
|
|
No newline at end of file
|
No newline at end of file
|