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

Subversion Repositories altor32

[/] [altor32/] [trunk/] [rtl/] [cpu/] [altor32.v] - Diff between revs 32 and 36

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

Rev 32 Rev 36
Line 1... Line 1...
//-----------------------------------------------------------------
//-----------------------------------------------------------------
//                           AltOR32 
//                           AltOR32 
//                Alternative Lightweight OpenRisc 
//                Alternative Lightweight OpenRisc 
//                            V2.0
//                            V2.1
//                     Ultra-Embedded.com
//                     Ultra-Embedded.com
//                   Copyright 2011 - 2013
//                   Copyright 2011 - 2014
//
//
//               Email: admin@ultra-embedded.com
//               Email: admin@ultra-embedded.com
//
//
//                       License: LGPL
//                       License: LGPL
//-----------------------------------------------------------------
//-----------------------------------------------------------------
Line 83... Line 83...
parameter           ISR_VECTOR          = 32'h00000000;
parameter           ISR_VECTOR          = 32'h00000000;
parameter           REGISTER_FILE_TYPE  = "SIMULATION";
parameter           REGISTER_FILE_TYPE  = "SIMULATION";
parameter           ENABLE_ICACHE       = "ENABLED";
parameter           ENABLE_ICACHE       = "ENABLED";
parameter           ENABLE_DCACHE       = "DISABLED";
parameter           ENABLE_DCACHE       = "DISABLED";
parameter           SUPPORT_32REGS      = "ENABLED";
parameter           SUPPORT_32REGS      = "ENABLED";
 
parameter           PIPELINED_FETCH     = "ENABLED";
 
 
//-----------------------------------------------------------------
//-----------------------------------------------------------------
// Registers / Wires
// Registers / Wires
//-----------------------------------------------------------------
//-----------------------------------------------------------------
 
 
Line 133... Line 134...
wire        w_e_stall;
wire        w_e_stall;
 
 
wire        icache_rd;
wire        icache_rd;
wire [31:0] icache_pc;
wire [31:0] icache_pc;
wire [31:0] icache_inst;
wire [31:0] icache_inst;
wire        icache_miss;
 
wire        icache_valid;
wire        icache_valid;
wire        icache_busy;
 
wire        icache_invalidate;
wire        icache_invalidate;
 
 
wire [31:0] dcache_addr;
wire [31:0] dcache_addr;
wire [31:0] dcache_data_o;
wire [31:0] dcache_data_o;
wire [31:0] dcache_data_i;
wire [31:0] dcache_data_i;
Line 174... Line 173...
        .pc_i(icache_pc),
        .pc_i(icache_pc),
        .instruction_o(icache_inst),
        .instruction_o(icache_inst),
        .valid_o(icache_valid),
        .valid_o(icache_valid),
        .invalidate_i(icache_invalidate),
        .invalidate_i(icache_invalidate),
 
 
        // Status
 
        .miss_o(icache_miss),
 
        .busy_o(icache_busy),
 
 
 
        // Instruction memory
        // Instruction memory
        .wbm_addr_o(imem_addr_o),
        .wbm_addr_o(imem_addr_o),
        .wbm_dat_i(imem_dat_i),
        .wbm_dat_i(imem_dat_i),
        .wbm_cti_o(imem_cti_o),
        .wbm_cti_o(imem_cti_o),
        .wbm_cyc_o(imem_cyc_o),
        .wbm_cyc_o(imem_cyc_o),
Line 202... Line 197...
        // Processor interface
        // Processor interface
        .rd_i(icache_rd),
        .rd_i(icache_rd),
        .pc_i(icache_pc),
        .pc_i(icache_pc),
        .instruction_o(icache_inst),
        .instruction_o(icache_inst),
        .valid_o(icache_valid),
        .valid_o(icache_valid),
 
        .invalidate_i(icache_invalidate),
 
 
        // Instruction memory
        // Instruction memory
        .wbm_addr_o(imem_addr_o),
        .wbm_addr_o(imem_addr_o),
        .wbm_dat_i(imem_dat_i),
        .wbm_dat_i(imem_dat_i),
        .wbm_cti_o(imem_cti_o),
        .wbm_cti_o(imem_cti_o),
Line 218... Line 214...
endgenerate
endgenerate
 
 
// Instruction Fetch
// Instruction Fetch
altor32_fetch
altor32_fetch
#(
#(
    .BOOT_VECTOR(BOOT_VECTOR)
    .BOOT_VECTOR(BOOT_VECTOR),
 
    .PIPELINED_FETCH(PIPELINED_FETCH)
)
)
u_fetch
u_fetch
(
(
    // General
    // General
    .clk_i(clk_i),
    .clk_i(clk_i),
Line 355... Line 352...
        .mem_ack_i(dmem_ack_i)
        .mem_ack_i(dmem_ack_i)
    );
    );
end
end
else
else
begin: NO_DCACHE
begin: NO_DCACHE
 
 
    // No data cache
    // No data cache
    assign dmem_addr_o      = {dcache_addr[31:2], 2'b00};
    assign dmem_addr_o      = {dcache_addr[31:2], 2'b00};
    assign dmem_dat_o       = dcache_data_o;
    assign dmem_dat_o       = dcache_data_o;
    assign dcache_data_i    = dmem_dat_i;
    assign dcache_data_i    = dmem_dat_i;
    assign dmem_sel_o       = dcache_sel;
    assign dmem_sel_o       = dcache_sel;

powered by: WebSVN 2.1.0

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