mirror of
https://github.com/openhwgroup/cva6.git
synced 2025-04-22 21:27:10 -04:00
This is the third step for #1451. Many values are moved but not all values are moved yet * move NR_SB_ENTRIES & TRANS_ID_BITS * remove default rvfi_instr_t from spike.sv * fifo_v3: ariane_pkg::FPGA_EN becomes a param * move FPGA_EN * inline wt_cache_pkg::L15_SET_ASSOC * move wt_cache_pkg::L15_WAY_WIDTH * inline wt_cache_pkg::L1I_SET_ASSOC * inline wt_cache_pkg::L1D_SET_ASSOC * move wt_cache_pkg::DCACHE_CL_IDX_WIDTH * move ICACHE_TAG_WIDTH * move DCACHE_TAG_WIDTH * move ICACHE_INDEX_WIDTH * move ICACHE_SET_ASSOC * use ICACHE_SET_ASSOC_WIDTH instead of $clog2(ICACHE_SET_ASSOC) * move DCACHE_NUM_WORDS * move DCACHE_INDEX_WIDTH * move DCACHE_OFFSET_WIDTH * move DCACHE_BYTE_OFFSET * move DCACHE_DIRTY_WIDTH * move DCACHE_SET_ASSOC_WIDTH * move DCACHE_SET_ASSOC * move CONFIG_L1I_SIZE * move CONFIG_L1D_SIZE * move DCACHE_LINE_WIDTH * move ICACHE_LINE_WIDTH * move ICACHE_USER_LINE_WIDTH * move DCACHE_USER_LINE_WIDTH * DATA_USER_WIDTH = DCACHE_USER_WIDTH * move DCACHE_USER_WIDTH * move FETCH_USER_WIDTH * move FETCH_USER_EN * move LOG2_INSTR_PER_FETCH * move INSTR_PER_FETCH * move FETCH_WIDTH * transform SSTATUS_SD and SMODE_STATUS_READ_MASK into functions * move [SM]_{SW,TIMER,EXT}_INTERRUPT into a structure * move SV * move vm_mode_t to config_pkg * move MODE_SV * move VPN2 * move PPNW * move ASIDW * move ModeW * move XLEN_ALIGN_BYTES * move DATA_USER_EN * format: apply verible
60 lines
1.9 KiB
Systemverilog
60 lines
1.9 KiB
Systemverilog
// Copyright 2018 ETH Zurich and University of Bologna.
|
|
// Copyright and related rights are licensed under the Solderpad Hardware
|
|
// License, Version 0.51 (the "License"); you may not use this file except in
|
|
// compliance with the License. You may obtain a copy of the License at
|
|
// http://solderpad.org/licenses/SHL-0.51. Unless required by applicable law
|
|
// or agreed to in writing, software, hardware and materials distributed under
|
|
// this License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
|
|
// CONDITIONS OF ANY KIND, either express or implied. See the License for the
|
|
// specific language governing permissions and limitations under the License.
|
|
//
|
|
// Author: Florian Zaruba <zarubaf@iis.ee.ethz.ch>, ETH Zurich
|
|
// Michael Schaffner <schaffner@iis.ee.ethz.ch>, ETH Zurich
|
|
// Date: 15.08.2018
|
|
|
|
// ******* WIP *******
|
|
// Description: package for the standard Ariane cache subsystem.
|
|
|
|
package std_cache_pkg;
|
|
|
|
// localparam DECISION_BIT = 30; // bit on which to decide whether the request is cache-able or not
|
|
|
|
typedef struct packed {
|
|
logic [1:0] id; // id for which we handle the miss
|
|
logic valid;
|
|
logic we;
|
|
logic [55:0] addr;
|
|
logic [7:0][7:0] wdata;
|
|
logic [7:0] be;
|
|
} mshr_t;
|
|
|
|
typedef struct packed {
|
|
logic valid;
|
|
logic [63:0] addr;
|
|
logic [7:0] be;
|
|
logic [1:0] size;
|
|
logic we;
|
|
logic [63:0] wdata;
|
|
logic bypass;
|
|
} miss_req_t;
|
|
|
|
typedef struct packed {
|
|
logic req;
|
|
ariane_pkg::ad_req_t reqtype;
|
|
ariane_pkg::amo_t amo;
|
|
logic [3:0] id;
|
|
logic [63:0] addr;
|
|
logic [63:0] wdata;
|
|
logic we;
|
|
logic [7:0] be;
|
|
logic [1:0] size;
|
|
} bypass_req_t;
|
|
|
|
typedef struct packed {
|
|
logic gnt;
|
|
logic valid;
|
|
logic [63:0] rdata;
|
|
} bypass_rsp_t;
|
|
|
|
endpackage : std_cache_pkg
|
|
|