OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [branches/] [mp3_stable/] [or1200/] [rtl/] [verilog/] [or1200.v] - Diff between revs 203 and 205

Go to most recent revision | Show entire file | Details | Blame | View Log

Rev 203 Rev 205
Line 73... Line 73...
 
 
        // Data WISHBONE INTERFACE
        // Data WISHBONE INTERFACE
        dwb_clk_i, dwb_rst_i, dwb_ack_i, dwb_err_i, dwb_rty_i, dwb_dat_i,
        dwb_clk_i, dwb_rst_i, dwb_ack_i, dwb_err_i, dwb_rty_i, dwb_dat_i,
        dwb_cyc_o, dwb_adr_o, dwb_stb_o, dwb_we_o, dwb_sel_o, dwb_dat_o,
        dwb_cyc_o, dwb_adr_o, dwb_stb_o, dwb_we_o, dwb_sel_o, dwb_dat_o,
 
 
        // Trace
        // External Debug Interface
        tp_dir_in, tp_sel, tp_in, tp_out,
        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,
 
 
        // Power Management
        // Power Management
        pm_clksd, pm_cpustall, pm_dc_gate, pm_ic_gate, pm_dmmu_gate,
        pm_clksd, pm_cpustall, pm_dc_gate, pm_ic_gate, pm_dmmu_gate,
        pm_immu_gate, pm_tt_gate, pm_cpu_gate, pm_wakeup, pm_lvolt
        pm_immu_gate, pm_tt_gate, pm_cpu_gate, pm_wakeup, pm_lvolt
 
 
Line 131... Line 132...
output                  dwb_we_o;       // indicates write transfer
output                  dwb_we_o;       // indicates write transfer
output  [3:0]            dwb_sel_o;      // byte select outputs
output  [3:0]            dwb_sel_o;      // byte select outputs
output  [dw-1:0] dwb_dat_o;      // output data bus
output  [dw-1:0] dwb_dat_o;      // output data bus
 
 
//
//
 
// External Debug Interface
 
//
 
input                   dbg_stall_i;    // External Stall Input
 
input   [dw-1:0] dbg_dat_i;      // External Data Input
 
input   [aw-1:0] dbg_adr_i;      // External Address Input
 
input   [2:0]            dbg_op_i;       // External Operation Select Input
 
input                   dbg_ewt_i;      // External Watchpoint Trigger Input
 
output  [3:0]            dbg_lss_o;      // External Load/Store Unit Status
 
output  [1:0]            dbg_is_o;       // External Insn Fetch Status
 
output  [10:0]           dbg_wp_o;       // Watchpoints Outputs
 
output                  dbg_bp_o;       // Breakpoint Output
 
output  [dw-1:0] dbg_dat_o;      // External Data Output
 
 
 
//
// Power Management
// Power Management
//
//
input                   pm_cpustall;
input                   pm_cpustall;
output                  pm_clksd;
output                  pm_clksd;
output                  pm_dc_gate;
output                  pm_dc_gate;
Line 144... Line 159...
output                  pm_tt_gate;
output                  pm_tt_gate;
output                  pm_cpu_gate;
output                  pm_cpu_gate;
output                  pm_wakeup;
output                  pm_wakeup;
output                  pm_lvolt;
output                  pm_lvolt;
 
 
 
 
//
//
// Internal wires and regs
// Internal wires and regs
//
//
 
 
//
//
Line 244... Line 260...
//
//
wire    [dw-1:0] spr_dat_tt;
wire    [dw-1:0] spr_dat_tt;
wire                    tt_int;
wire                    tt_int;
 
 
//
//
// CPU and external Trace port
 
//
 
input                   tp_dir_in;
 
input   [1:0]            tp_sel;
 
input   [dw-1:0]         tp_in;
 
output  [dw-1:0] tp_out;
 
 
 
//
 
// Trace port and caches/MMUs
// Trace port and caches/MMUs
//
//
wire    [`TP2W_WIDTH-1:0] tp2w;
wire    [`TP2W_WIDTH-1:0] tp2w;
wire    [`TP3W_WIDTH-1:0] tp3w;
wire    [`TP3W_WIDTH-1:0] tp3w;
 
 
Line 363... Line 371...
        .icfetch_op(icfetch_op),
        .icfetch_op(icfetch_op),
        .icfetch_dataout(icfetch_dataout),
        .icfetch_dataout(icfetch_dataout),
        .icfetch_stall(icfetch_stall),
        .icfetch_stall(icfetch_stall),
        .ic_en(ic_en),
        .ic_en(ic_en),
 
 
 
        // SPR access
 
        .spr_cs(spr_cs[`SPR_GROUP_IC]),
 
        .spr_write(spr_we),
 
        .spr_addr(spr_addr),
 
        .spr_dat_i(spr_dat_cpu),
 
 
        // These connect IC to BIU
        // These connect IC to BIU
        .icbiu_rdy(icbiu_rdy),
        .icbiu_rdy(icbiu_rdy),
        .icbiu_datain(icbiu_from_biu),
        .icbiu_datain(icbiu_from_biu),
        .icbiu_addr(icbiu_addr),
        .icbiu_addr(icbiu_addr),
        .icbiu_read(icbiu_read),
        .icbiu_read(icbiu_read),
        .icbiu_sel(icbiu_sel),
        .icbiu_sel(icbiu_sel)
 
 
        // These connect IC to SPRS
 
        .spr_dat_i(spr_dat_cpu)
 
);
);
 
 
//
//
// Instantiation of Instruction Cache
// Instantiation of Instruction Cache
//
//
Line 389... Line 400...
        .ic_stall(icfetch_stall),
        .ic_stall(icfetch_stall),
        .ic_fetchop(icfetch_op),
        .ic_fetchop(icfetch_op),
        .ic_en(ic_en),
        .ic_en(ic_en),
 
 
        // Connection CPU to external Trace port
        // Connection CPU to external Trace port
        .tp_dir_in(tp_dir_in),
        .tp_dir_in(1'b0),
        .tp_sel(tp_sel),
        .tp_sel(2'b00),
        .tp_in(tp_in),
        .tp_in(32'h00000000),
        .tp_out(tp_out),
        .tp_out(),
 
 
        // Connection IMMU and CPU internally
        // Connection IMMU and CPU internally
        .immu_en(immu_en),
        .immu_en(immu_en),
        .immuexcept_miss(immuexcept_miss),
        .immuexcept_miss(immuexcept_miss),
        .immuexcept_fault(immuexcept_fault),
        .immuexcept_fault(immuexcept_fault),
Line 480... Line 491...
        .dclsu_dataout(dclsu_from_dc),
        .dclsu_dataout(dclsu_from_dc),
        .dclsu_stall(dclsu_stall),
        .dclsu_stall(dclsu_stall),
        .dclsu_unstall(dclsu_unstall),
        .dclsu_unstall(dclsu_unstall),
        .dc_en(dc_en),
        .dc_en(dc_en),
 
 
 
        // SPR access
 
        .spr_cs(spr_cs[`SPR_GROUP_DC]),
 
        .spr_write(spr_we),
 
        .spr_addr(spr_addr),
 
        .spr_dat_i(spr_dat_cpu),
 
 
        // These connect DC to BIU
        // These connect DC to BIU
        .dcbiu_rdy(dcbiu_rdy),
        .dcbiu_rdy(dcbiu_rdy),
        .dcbiu_datain(dcbiu_from_biu),
        .dcbiu_datain(dcbiu_from_biu),
        .dcbiu_dataout(dcbiu_to_biu),
        .dcbiu_dataout(dcbiu_to_biu),
        .dcbiu_addr(dcbiu_addr),
        .dcbiu_addr(dcbiu_addr),
Line 494... Line 511...
        // Trace port
        // Trace port
        .tp2w(tp2w)
        .tp2w(tp2w)
);
);
 
 
//
//
 
// Instantiation of Debug Unit
 
//
 
du du(
 
        // RISC Internal Interface
 
        .clk(clk),
 
        .rst(rst),
 
        .dclsu_lsuop(dclsu_lsuop),
 
        .icfetch_op(icfetch_op),
 
 
 
        // DU's access to SPR unit
 
        .du_stall(),
 
        .du_addr(),
 
        .du_dat_i(32'h00000000),
 
        .du_dat_o(),
 
        .du_read(),
 
        .du_write(),
 
 
 
        // Access to DU's SPRs
 
        .spr_cs(spr_cs[`SPR_GROUP_DU]),
 
        .spr_write(spr_we),
 
        .spr_addr(spr_addr),
 
        .spr_dat_i(spr_dat_cpu),
 
        .spr_dat_o(),
 
 
 
        // External Debug Interface
 
        .dbg_stall_i(dbg_stall_i),
 
        .dbg_dat_i(dbg_dat_i),
 
        .dbg_adr_i(dbg_adr_i),
 
        .dbg_op_i(dbg_op_i),
 
        .dbg_ewt_i(dbg_ewt_i),
 
        .dbg_lss_o(dbg_lss_o),
 
        .dbg_is_o(dbg_is_o),
 
        .dbg_wp_o(dbg_wp_o),
 
        .dbg_bp_o(dbg_bp_o),
 
        .dbg_dat_o(dbg_dat_o)
 
);
 
 
 
//
// Programmable interrupt controller
// Programmable interrupt controller
//
//
pic pic(
pic pic(
        // RISC Internal Interface
        // RISC Internal Interface
        .clk(clk),
        .clk(clk),

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.