Line 43... |
Line 43... |
//////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////
|
//
|
//
|
// CVS Revision History
|
// CVS Revision History
|
//
|
//
|
// $Log: not supported by cvs2svn $
|
// $Log: not supported by cvs2svn $
|
|
// Revision 1.12.4.2 2004/02/11 01:40:11 lampret
|
|
// preliminary HW breakpoints support in debug unit (by default disabled). To enable define OR1200_DU_HWBKPTS.
|
|
//
|
|
// Revision 1.12.4.1 2003/12/09 11:46:48 simons
|
|
// Mbist nameing changed, Artisan ram instance signal names fixed, some synthesis waning fixed.
|
|
//
|
// Revision 1.12 2002/09/07 05:42:02 lampret
|
// Revision 1.12 2002/09/07 05:42:02 lampret
|
// Added optional SR[CY]. Added define to enable additional (compare) flag modifiers. Defines are OR1200_IMPL_ADDC and OR1200_ADDITIONAL_FLAG_MODIFIERS.
|
// Added optional SR[CY]. Added define to enable additional (compare) flag modifiers. Defines are OR1200_IMPL_ADDC and OR1200_ADDITIONAL_FLAG_MODIFIERS.
|
//
|
//
|
// Revision 1.11 2002/08/28 01:44:25 lampret
|
// Revision 1.11 2002/08/28 01:44:25 lampret
|
// Removed some commented RTL. Fixed SR/ESR flag bug.
|
// Removed some commented RTL. Fixed SR/ESR flag bug.
|
Line 145... |
Line 151... |
icpu_adr_o, icpu_cycstb_o, icpu_sel_o, icpu_tag_o,
|
icpu_adr_o, icpu_cycstb_o, icpu_sel_o, icpu_tag_o,
|
icpu_dat_i, icpu_ack_i, icpu_rty_i, icpu_err_i, icpu_adr_i, icpu_tag_i,
|
icpu_dat_i, icpu_ack_i, icpu_rty_i, icpu_err_i, icpu_adr_i, icpu_tag_i,
|
immu_en,
|
immu_en,
|
|
|
// Debug unit
|
// Debug unit
|
ex_insn, ex_freeze, branch_op,
|
ex_insn, ex_freeze, id_pc, branch_op,
|
spr_dat_npc, rf_dataw,
|
spr_dat_npc, rf_dataw,
|
du_stall, du_addr, du_dat_du, du_read, du_write, du_dsr, du_except, du_dat_cpu,
|
du_stall, du_addr, du_dat_du, du_read, du_write, du_dsr, du_hwbkpt,
|
|
du_except, du_dat_cpu,
|
|
|
// Data interface
|
// Data interface
|
dc_en,
|
dc_en,
|
dcpu_adr_o, dcpu_cycstb_o, dcpu_we_o, dcpu_sel_o, dcpu_tag_o, dcpu_dat_o,
|
dcpu_adr_o, dcpu_cycstb_o, dcpu_we_o, dcpu_sel_o, dcpu_tag_o, dcpu_dat_o,
|
dcpu_dat_i, dcpu_ack_i, dcpu_rty_i, dcpu_err_i, dcpu_tag_i,
|
dcpu_dat_i, dcpu_ack_i, dcpu_rty_i, dcpu_err_i, dcpu_tag_i,
|
Line 201... |
Line 208... |
//
|
//
|
// Debug interface
|
// Debug interface
|
//
|
//
|
output [31:0] ex_insn;
|
output [31:0] ex_insn;
|
output ex_freeze;
|
output ex_freeze;
|
|
output [31:0] id_pc;
|
output [`OR1200_BRANCHOP_WIDTH-1:0] branch_op;
|
output [`OR1200_BRANCHOP_WIDTH-1:0] branch_op;
|
|
|
input du_stall;
|
input du_stall;
|
input [dw-1:0] du_addr;
|
input [dw-1:0] du_addr;
|
input [dw-1:0] du_dat_du;
|
input [dw-1:0] du_dat_du;
|
input du_read;
|
input du_read;
|
input du_write;
|
input du_write;
|
input [`OR1200_DU_DSR_WIDTH-1:0] du_dsr;
|
input [`OR1200_DU_DSR_WIDTH-1:0] du_dsr;
|
|
input du_hwbkpt;
|
output [12:0] du_except;
|
output [12:0] du_except;
|
output [dw-1:0] du_dat_cpu;
|
output [dw-1:0] du_dat_cpu;
|
output [dw-1:0] rf_dataw;
|
output [dw-1:0] rf_dataw;
|
|
|
//
|
//
|
Line 338... |
Line 347... |
wire [`OR1200_MACOP_WIDTH-1:0] mac_op;
|
wire [`OR1200_MACOP_WIDTH-1:0] mac_op;
|
wire [31:0] mult_mac_result;
|
wire [31:0] mult_mac_result;
|
wire mac_stall;
|
wire mac_stall;
|
wire [12:0] except_stop;
|
wire [12:0] except_stop;
|
wire genpc_refetch;
|
wire genpc_refetch;
|
wire genpc_stop_refetch;
|
|
wire rfe;
|
wire rfe;
|
wire lsu_unstall;
|
wire lsu_unstall;
|
wire except_align;
|
wire except_align;
|
wire except_dtlbmiss;
|
wire except_dtlbmiss;
|
wire except_dmmufault;
|
wire except_dmmufault;
|
Line 407... |
Line 415... |
.binsn_addr(lr_sav),
|
.binsn_addr(lr_sav),
|
.epcr(epcr),
|
.epcr(epcr),
|
.spr_dat_i(spr_dat_cpu),
|
.spr_dat_i(spr_dat_cpu),
|
.spr_pc_we(pc_we),
|
.spr_pc_we(pc_we),
|
.genpc_refetch(genpc_refetch),
|
.genpc_refetch(genpc_refetch),
|
.genpc_stop_prefetch(genpc_stop_prefetch),
|
|
.genpc_freeze(genpc_freeze),
|
.genpc_freeze(genpc_freeze),
|
|
.genpc_stop_prefetch(1'b0),
|
.no_more_dslot(no_more_dslot)
|
.no_more_dslot(no_more_dslot)
|
);
|
);
|
|
|
//
|
//
|
// Instantiation of instruction fetch block
|
// Instantiation of instruction fetch block
|
Line 431... |
Line 439... |
.if_pc(if_pc),
|
.if_pc(if_pc),
|
.flushpipe(flushpipe),
|
.flushpipe(flushpipe),
|
.if_stall(if_stall),
|
.if_stall(if_stall),
|
.no_more_dslot(no_more_dslot),
|
.no_more_dslot(no_more_dslot),
|
.genpc_refetch(genpc_refetch),
|
.genpc_refetch(genpc_refetch),
|
.genpc_stop_prefetch(genpc_stop_prefetch),
|
|
.rfe(rfe),
|
.rfe(rfe),
|
.except_itlbmiss(except_itlbmiss),
|
.except_itlbmiss(except_itlbmiss),
|
.except_immufault(except_immufault),
|
.except_immufault(except_immufault),
|
.except_ibuserr(except_ibuserr)
|
.except_ibuserr(except_ibuserr)
|
);
|
);
|
Line 480... |
Line 487... |
.no_more_dslot(no_more_dslot),
|
.no_more_dslot(no_more_dslot),
|
.ex_void(ex_void),
|
.ex_void(ex_void),
|
.id_macrc_op(id_macrc_op),
|
.id_macrc_op(id_macrc_op),
|
.ex_macrc_op(ex_macrc_op),
|
.ex_macrc_op(ex_macrc_op),
|
.rfe(rfe),
|
.rfe(rfe),
|
|
.du_hwbkpt(du_hwbkpt),
|
.except_illegal(except_illegal)
|
.except_illegal(except_illegal)
|
);
|
);
|
|
|
//
|
//
|
// Instantiation of register file
|
// Instantiation of register file
|
Line 727... |
Line 735... |
.id_freeze(id_freeze),
|
.id_freeze(id_freeze),
|
.ex_freeze(ex_freeze),
|
.ex_freeze(ex_freeze),
|
.wb_freeze(wb_freeze),
|
.wb_freeze(wb_freeze),
|
.if_stall(if_stall),
|
.if_stall(if_stall),
|
.if_pc(if_pc),
|
.if_pc(if_pc),
|
|
.id_pc(id_pc),
|
.lr_sav(lr_sav),
|
.lr_sav(lr_sav),
|
.flushpipe(flushpipe),
|
.flushpipe(flushpipe),
|
.extend_flush(extend_flush),
|
.extend_flush(extend_flush),
|
.except_type(except_type),
|
.except_type(except_type),
|
.except_start(except_start),
|
.except_start(except_start),
|