Line 42... |
Line 42... |
//////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////
|
//
|
//
|
// CVS Revision History
|
// CVS Revision History
|
//
|
//
|
// $Log: not supported by cvs2svn $
|
// $Log: not supported by cvs2svn $
|
|
// Revision 1.8 2002/08/18 19:54:22 lampret
|
|
// Added store buffer.
|
|
//
|
// Revision 1.7 2002/07/14 22:17:17 lampret
|
// Revision 1.7 2002/07/14 22:17:17 lampret
|
// Added simple trace buffer [only for Xilinx Virtex target]. Fixed instruction fetch abort when new exception is recognized.
|
// Added simple trace buffer [only for Xilinx Virtex target]. Fixed instruction fetch abort when new exception is recognized.
|
//
|
//
|
// Revision 1.6 2002/03/29 15:16:56 lampret
|
// Revision 1.6 2002/03/29 15:16:56 lampret
|
// Some of the warnings fixed.
|
// Some of the warnings fixed.
|
Line 116... |
Line 119... |
|
|
// External Debug Interface
|
// External Debug Interface
|
dbg_stall_i, dbg_dat_i, dbg_adr_i, dbg_op_i, dbg_ewt_i,
|
dbg_stall_i, dbg_dat_i, dbg_adr_i, dbg_op_i, dbg_ewt_i,
|
dbg_lss_o, dbg_is_o, dbg_wp_o, dbg_bp_o, dbg_dat_o,
|
dbg_lss_o, dbg_is_o, dbg_wp_o, dbg_bp_o, dbg_dat_o,
|
|
|
|
`ifdef OR1200_BIST
|
|
// RAM BIST
|
|
scanb_rst, scanb_si, scanb_so, scanb_en, scanb_clk,
|
|
`endif
|
// Power Management
|
// Power Management
|
pm_cpustall_i,
|
pm_cpustall_i,
|
pm_clksd_o, pm_dc_gate_o, pm_ic_gate_o, pm_dmmu_gate_o,
|
pm_clksd_o, pm_dc_gate_o, pm_ic_gate_o, pm_dmmu_gate_o,
|
pm_immu_gate_o, pm_tt_gate_o, pm_cpu_gate_o, pm_wakeup_o, pm_lvolt_o
|
pm_immu_gate_o, pm_tt_gate_o, pm_cpu_gate_o, pm_wakeup_o, pm_lvolt_o
|
|
|
Line 187... |
Line 194... |
output [1:0] dbg_is_o; // External Insn Fetch Status
|
output [1:0] dbg_is_o; // External Insn Fetch Status
|
output [10:0] dbg_wp_o; // Watchpoints Outputs
|
output [10:0] dbg_wp_o; // Watchpoints Outputs
|
output dbg_bp_o; // Breakpoint Output
|
output dbg_bp_o; // Breakpoint Output
|
output [dw-1:0] dbg_dat_o; // External Data Output
|
output [dw-1:0] dbg_dat_o; // External Data Output
|
|
|
|
`ifdef OR1200_BIST
|
|
//
|
|
// RAM BIST
|
|
//
|
|
input scanb_rst,
|
|
scanb_si,
|
|
scanb_en,
|
|
scanb_clk;
|
|
output scanb_so;
|
|
`endif
|
|
|
//
|
//
|
// Power Management
|
// Power Management
|
//
|
//
|
input pm_cpustall_i;
|
input pm_cpustall_i;
|
output [3:0] pm_clksd_o;
|
output [3:0] pm_clksd_o;
|
Line 355... |
Line 373... |
wire [31:0] ex_insn;
|
wire [31:0] ex_insn;
|
wire [`OR1200_BRANCHOP_WIDTH-1:0] branch_op;
|
wire [`OR1200_BRANCHOP_WIDTH-1:0] branch_op;
|
wire [31:0] spr_dat_npc;
|
wire [31:0] spr_dat_npc;
|
wire [31:0] rf_dataw;
|
wire [31:0] rf_dataw;
|
|
|
|
`ifdef OR1200_BIST
|
|
//
|
|
// RAM BIST
|
|
//
|
|
wire scanb_immu_so;
|
|
wire scanb_ic_so;
|
|
wire scanb_dmmu_so;
|
|
wire scanb_dc_so;
|
|
wire scanb_immu_si = scanb_si;
|
|
wire scanb_ic_si = scanb_immu_so;
|
|
wire scanb_dmmu_si = scanb_ic_so;
|
|
wire scanb_dc_si = scanb_dmmu_so;
|
|
assign scanb_so = scanb_dc_so;
|
|
`endif
|
|
|
|
|
//
|
//
|
// Instantiation of Instruction WISHBONE BIU
|
// Instantiation of Instruction WISHBONE BIU
|
//
|
//
|
or1200_wb_biu iwb_biu(
|
or1200_wb_biu iwb_biu(
|
Line 438... |
Line 471... |
or1200_immu_top or1200_immu_top(
|
or1200_immu_top or1200_immu_top(
|
// Rst and clk
|
// Rst and clk
|
.clk(clk_i),
|
.clk(clk_i),
|
.rst(rst_i),
|
.rst(rst_i),
|
|
|
|
`ifdef OR1200_BIST
|
|
// RAM BIST
|
|
.scanb_rst(scanb_rst),
|
|
.scanb_si(scanb_immu_si),
|
|
.scanb_so(scanb_immu_so),
|
|
.scanb_en(scanb_en),
|
|
.scanb_clk(scanb_clk),
|
|
`endif
|
|
|
// CPU i/f
|
// CPU i/f
|
.ic_en(ic_en),
|
.ic_en(ic_en),
|
.immu_en(immu_en),
|
.immu_en(immu_en),
|
.supv(supv),
|
.supv(supv),
|
.icpu_adr_i(icpu_adr_cpu),
|
.icpu_adr_i(icpu_adr_cpu),
|
Line 472... |
Line 514... |
//
|
//
|
or1200_ic_top or1200_ic_top(
|
or1200_ic_top or1200_ic_top(
|
.clk(clk_i),
|
.clk(clk_i),
|
.rst(rst_i),
|
.rst(rst_i),
|
|
|
|
`ifdef OR1200_BIST
|
|
// RAM BIST
|
|
.scanb_rst(scanb_rst),
|
|
.scanb_si(scanb_ic_si),
|
|
.scanb_so(scanb_ic_so),
|
|
.scanb_en(scanb_en),
|
|
.scanb_clk(scanb_clk),
|
|
`endif
|
|
|
// IC and CPU/IMMU
|
// IC and CPU/IMMU
|
.ic_en(ic_en),
|
.ic_en(ic_en),
|
.icimmu_adr_i(icimmu_adr_immu),
|
.icimmu_adr_i(icimmu_adr_immu),
|
.icimmu_cycstb_i(icimmu_cycstb_immu),
|
.icimmu_cycstb_i(icimmu_cycstb_immu),
|
.icimmu_ci_i(icimmu_ci_immu),
|
.icimmu_ci_i(icimmu_ci_immu),
|
Line 585... |
Line 636... |
or1200_dmmu_top or1200_dmmu_top(
|
or1200_dmmu_top or1200_dmmu_top(
|
// Rst and clk
|
// Rst and clk
|
.clk(clk_i),
|
.clk(clk_i),
|
.rst(rst_i),
|
.rst(rst_i),
|
|
|
|
`ifdef OR1200_BIST
|
|
// RAM BIST
|
|
.scanb_rst(scanb_rst),
|
|
.scanb_si(scanb_dmmu_si),
|
|
.scanb_so(scanb_dmmu_so),
|
|
.scanb_en(scanb_en),
|
|
.scanb_clk(scanb_clk),
|
|
`endif
|
|
|
// CPU i/f
|
// CPU i/f
|
.dc_en(dc_en),
|
.dc_en(dc_en),
|
.dmmu_en(dmmu_en),
|
.dmmu_en(dmmu_en),
|
.supv(supv),
|
.supv(supv),
|
.dcpu_adr_i(dcpu_adr_cpu),
|
.dcpu_adr_i(dcpu_adr_cpu),
|
Line 617... |
Line 677... |
//
|
//
|
or1200_dc_top or1200_dc_top(
|
or1200_dc_top or1200_dc_top(
|
.clk(clk_i),
|
.clk(clk_i),
|
.rst(rst_i),
|
.rst(rst_i),
|
|
|
|
`ifdef OR1200_BIST
|
|
// RAM BIST
|
|
.scanb_rst(scanb_rst),
|
|
.scanb_si(scanb_dc_si),
|
|
.scanb_so(scanb_dc_so),
|
|
.scanb_en(scanb_en),
|
|
.scanb_clk(scanb_clk),
|
|
`endif
|
|
|
// DC and CPU/DMMU
|
// DC and CPU/DMMU
|
.dc_en(dc_en),
|
.dc_en(dc_en),
|
.dcdmmu_adr_i(dcdmmu_adr_dmmu),
|
.dcdmmu_adr_i(dcdmmu_adr_dmmu),
|
.dcdmmu_cycstb_i(dcdmmu_cycstb_dmmu),
|
.dcdmmu_cycstb_i(dcdmmu_cycstb_dmmu),
|
.dcdmmu_ci_i(dcdmmu_ci_dmmu),
|
.dcdmmu_ci_i(dcdmmu_ci_dmmu),
|