Line 42... |
Line 42... |
//////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////
|
//
|
//
|
// CVS Revision History
|
// CVS Revision History
|
//
|
//
|
// $Log: not supported by cvs2svn $
|
// $Log: not supported by cvs2svn $
|
|
// Revision 1.2 2002/01/14 06:18:22 lampret
|
|
// Fixed mem2reg bug in FAST implementation. Updated debug unit to work with new genpc/if.
|
|
//
|
// Revision 1.1 2002/01/03 08:16:15 lampret
|
// Revision 1.1 2002/01/03 08:16:15 lampret
|
// New prefixes for RTL files, prefixed module names. Updated cache controllers and MMUs.
|
// New prefixes for RTL files, prefixed module names. Updated cache controllers and MMUs.
|
//
|
//
|
// Revision 1.10 2001/10/21 17:57:16 lampret
|
// Revision 1.10 2001/10/21 17:57:16 lampret
|
// Removed params from generic_XX.v. Added translate_off/on in sprs.v and id.v. Removed spr_addr from ic.v and ic.v. Fixed CR+LF.
|
// Removed params from generic_XX.v. Added translate_off/on in sprs.v and id.v. Removed spr_addr from ic.v and ic.v. Fixed CR+LF.
|
Line 88... |
Line 91... |
|
|
// Internal i/f
|
// Internal i/f
|
ic_en,
|
ic_en,
|
icimmu_adr_i, icimmu_cyc_i, icimmu_stb_i, icimmu_ci_i,
|
icimmu_adr_i, icimmu_cyc_i, icimmu_stb_i, icimmu_ci_i,
|
icpu_we_i, icpu_sel_i, icpu_tag_i,
|
icpu_we_i, icpu_sel_i, icpu_tag_i,
|
icpu_dat_o, icpu_ack_o, icpu_rty_o, icimmu_err_o, icimmu_tag_o,
|
icpu_dat_o, icpu_ack_o, icimmu_rty_o, icimmu_err_o, icimmu_tag_o,
|
|
|
// SPRs
|
// SPRs
|
spr_cs, spr_write, spr_dat_i
|
spr_cs, spr_write, spr_dat_i
|
);
|
);
|
|
|
Line 133... |
Line 136... |
input icpu_we_i;
|
input icpu_we_i;
|
input [3:0] icpu_sel_i;
|
input [3:0] icpu_sel_i;
|
input [3:0] icpu_tag_i;
|
input [3:0] icpu_tag_i;
|
output [dw-1:0] icpu_dat_o;
|
output [dw-1:0] icpu_dat_o;
|
output icpu_ack_o;
|
output icpu_ack_o;
|
output icpu_rty_o;
|
output icimmu_rty_o;
|
output icimmu_err_o;
|
output icimmu_err_o;
|
output [3:0] icimmu_tag_o;
|
output [3:0] icimmu_tag_o;
|
|
|
//
|
//
|
// SPR access
|
// SPR access
|
Line 190... |
Line 193... |
assign icbiu_cyc_o = (ic_en) ? icfsm_biu_read : icimmu_cyc_i;
|
assign icbiu_cyc_o = (ic_en) ? icfsm_biu_read : icimmu_cyc_i;
|
assign icbiu_stb_o = (ic_en) ? icfsm_biu_read : icimmu_stb_i;
|
assign icbiu_stb_o = (ic_en) ? icfsm_biu_read : icimmu_stb_i;
|
assign icbiu_we_o = 1'b0;
|
assign icbiu_we_o = 1'b0;
|
assign icbiu_sel_o = (ic_en & icfsm_biu_read) ? 4'b1111 : icpu_sel_i;
|
assign icbiu_sel_o = (ic_en & icfsm_biu_read) ? 4'b1111 : icpu_sel_i;
|
assign icbiu_cab_o = (ic_en) ? icfsm_burst : 1'b0;
|
assign icbiu_cab_o = (ic_en) ? icfsm_burst : 1'b0;
|
assign icpu_rty_o = ~icpu_ack_o;
|
assign icimmu_rty_o = ~icpu_ack_o & ~icimmu_err_o;
|
assign icimmu_tag_o = icimmu_err_o ? `OR1200_ITAG_BE : icpu_tag_i;
|
assign icimmu_tag_o = icimmu_err_o ? `OR1200_ITAG_BE : icpu_tag_i;
|
|
|
//
|
//
|
// CPU normal and error termination
|
// CPU normal and error termination
|
//
|
//
|
assign icpu_ack_o = ic_en ? icfsm_first_hit_ack | icfsm_first_miss_ack : icbiu_ack_i;
|
// assign icpu_ack_o = ic_en ? (icfsm_first_hit_ack | icfsm_first_miss_ack) & !ic_inv : icbiu_ack_i;
|
|
assign icpu_ack_o = ic_en ? (icfsm_first_hit_ack | icfsm_first_miss_ack) : icbiu_ack_i;
|
assign icimmu_err_o = ic_en ? icfsm_first_miss_err : icbiu_err_i;
|
assign icimmu_err_o = ic_en ? icfsm_first_miss_err : icbiu_err_i;
|
|
|
//
|
//
|
// Select between claddr generated by IC FSM and addr[3:2] generated by LSU
|
// Select between claddr generated by IC FSM and addr[3:2] generated by LSU
|
//
|
//
|