Line 43... |
Line 43... |
//////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////
|
//
|
//
|
// CVS Revision History
|
// CVS Revision History
|
//
|
//
|
// $Log: not supported by cvs2svn $
|
// $Log: not supported by cvs2svn $
|
|
// Revision 1.6 2002/02/01 19:56:54 lampret
|
|
// Fixed combinational loops.
|
|
//
|
// Revision 1.5 2002/01/28 01:15:59 lampret
|
// Revision 1.5 2002/01/28 01:15:59 lampret
|
// Changed 'void' nop-ops instead of insn[0] to use insn[16]. Debug unit stalls the tick timer. Prepared new flag generation for add and and insns. Blocked DC/IC while they are turned off. Fixed I/D MMU SPRs layout except WAYs. TODO: smart IC invalidate, l.j 2 and TLB ways.
|
// Changed 'void' nop-ops instead of insn[0] to use insn[16]. Debug unit stalls the tick timer. Prepared new flag generation for add and and insns. Blocked DC/IC while they are turned off. Fixed I/D MMU SPRs layout except WAYs. TODO: smart IC invalidate, l.j 2 and TLB ways.
|
//
|
//
|
// Revision 1.4 2002/01/18 14:21:43 lampret
|
// Revision 1.4 2002/01/18 14:21:43 lampret
|
// Fixed 'the NPC single-step fix'.
|
// Fixed 'the NPC single-step fix'.
|
Line 119... |
Line 122... |
// Clk & Rst
|
// Clk & Rst
|
clk, rst,
|
clk, rst,
|
|
|
// Insn interface
|
// Insn interface
|
ic_en,
|
ic_en,
|
icpu_adr_o, icpu_cyc_o, icpu_stb_o, icpu_we_o, icpu_sel_o, icpu_tag_o,
|
icpu_adr_o, icpu_cycstb_o, icpu_we_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, branch_op,
|
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_except, du_dat_cpu,
|
|
|
// Data interface
|
// Data interface
|
dc_en,
|
dc_en,
|
dcpu_adr_o, dcpu_cyc_o, dcpu_stb_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,
|
dmmu_en,
|
dmmu_en,
|
|
|
// Interrupt & tick exceptions
|
// Interrupt & tick exceptions
|
sig_int, sig_tick,
|
sig_int, sig_tick,
|
Line 159... |
Line 162... |
//
|
//
|
// Insn (IC) interface
|
// Insn (IC) interface
|
//
|
//
|
output ic_en;
|
output ic_en;
|
output [31:0] icpu_adr_o;
|
output [31:0] icpu_adr_o;
|
output icpu_cyc_o;
|
output icpu_cycstb_o;
|
output icpu_stb_o;
|
|
output icpu_we_o;
|
output icpu_we_o;
|
output [3:0] icpu_sel_o;
|
output [3:0] icpu_sel_o;
|
output [3:0] icpu_tag_o;
|
output [3:0] icpu_tag_o;
|
input [31:0] icpu_dat_i;
|
input [31:0] icpu_dat_i;
|
input icpu_ack_i;
|
input icpu_ack_i;
|
Line 195... |
Line 197... |
|
|
//
|
//
|
// Data (DC) interface
|
// Data (DC) interface
|
//
|
//
|
output [31:0] dcpu_adr_o;
|
output [31:0] dcpu_adr_o;
|
output dcpu_cyc_o;
|
output dcpu_cycstb_o;
|
output dcpu_stb_o;
|
|
output dcpu_we_o;
|
output dcpu_we_o;
|
output [3:0] dcpu_sel_o;
|
output [3:0] dcpu_sel_o;
|
output [3:0] dcpu_tag_o;
|
output [3:0] dcpu_tag_o;
|
output [31:0] dcpu_dat_o;
|
output [31:0] dcpu_dat_o;
|
input [31:0] dcpu_dat_i;
|
input [31:0] dcpu_dat_i;
|
Line 365... |
Line 366... |
//
|
//
|
or1200_genpc or1200_genpc(
|
or1200_genpc or1200_genpc(
|
.clk(clk),
|
.clk(clk),
|
.rst(rst),
|
.rst(rst),
|
.icpu_adr_o(icpu_adr_o),
|
.icpu_adr_o(icpu_adr_o),
|
.icpu_cyc_o(icpu_cyc_o),
|
.icpu_cycstb_o(icpu_cycstb_o),
|
.icpu_stb_o(icpu_stb_o),
|
|
.icpu_sel_o(icpu_sel_o),
|
.icpu_sel_o(icpu_sel_o),
|
.icpu_tag_o(icpu_tag_o),
|
.icpu_tag_o(icpu_tag_o),
|
.icpu_ack_i(icpu_ack_i),
|
.icpu_ack_i(icpu_ack_i),
|
.icpu_rty_i(icpu_rty_i),
|
.icpu_rty_i(icpu_rty_i),
|
.icpu_err_i(icpu_err_i),
|
.icpu_err_i(icpu_err_i),
|
Line 620... |
Line 620... |
.except_dtlbmiss(except_dtlbmiss),
|
.except_dtlbmiss(except_dtlbmiss),
|
.except_dmmufault(except_dmmufault),
|
.except_dmmufault(except_dmmufault),
|
.except_dbuserr(except_dbuserr),
|
.except_dbuserr(except_dbuserr),
|
|
|
.dcpu_adr_o(dcpu_adr_o),
|
.dcpu_adr_o(dcpu_adr_o),
|
.dcpu_cyc_o(dcpu_cyc_o),
|
.dcpu_cycstb_o(dcpu_cycstb_o),
|
.dcpu_stb_o(dcpu_stb_o),
|
|
.dcpu_we_o(dcpu_we_o),
|
.dcpu_we_o(dcpu_we_o),
|
.dcpu_sel_o(dcpu_sel_o),
|
.dcpu_sel_o(dcpu_sel_o),
|
.dcpu_tag_o(dcpu_tag_o),
|
.dcpu_tag_o(dcpu_tag_o),
|
.dcpu_dat_o(dcpu_dat_o),
|
.dcpu_dat_o(dcpu_dat_o),
|
.dcpu_dat_i(dcpu_dat_i),
|
.dcpu_dat_i(dcpu_dat_i),
|