Move DCacheType to config struct (#2025)

This commit is contained in:
Florian Zaruba 2024-04-10 23:26:21 +02:00 committed by GitHub
parent bfff84eaeb
commit ecd6ed6b6b
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
23 changed files with 67 additions and 160 deletions

View file

@ -14,154 +14,93 @@ dependencies:
tech_cells_generic:
{ git: "https://github.com/pulp-platform/tech_cells_generic.git", version: 0.2.13 }
frozen: true
export_include_dirs:
- core/include
sources:
- include_dirs:
- core/include
files:
- core/include/config_pkg.sv
- core/include/build_config_pkg.sv
# Pick the right configuration by passing the right bender flag.
- target: cv64a6_imafdcv_sv39
files:
- core/include/cv64a6_imafdcv_sv39_config_pkg.sv
- core/include/riscv_pkg.sv
- core/include/ariane_pkg.sv
- core/mmu_sv39/tlb.sv
- core/mmu_sv39/mmu.sv
- core/mmu_sv39/ptw.sv
- corev_apu/tb/common/mock_uart.sv
- target: cv64a6_imafdc_sv39
files:
- core/include/cv64a6_imafdc_sv39_config_pkg.sv
- core/include/riscv_pkg.sv
- core/include/ariane_pkg.sv
- core/mmu_sv39/tlb.sv
- core/mmu_sv39/mmu.sv
- core/mmu_sv39/ptw.sv
- core/cva6_accel_first_pass_decoder_stub.sv
- target: cv64a6_imafdc_sv39_wb
files:
- core/include/cv64a6_imafdc_sv39_wb_config_pkg.sv
- core/include/riscv_pkg.sv
- core/include/ariane_pkg.sv
- core/mmu_sv39/tlb.sv
- core/mmu_sv39/mmu.sv
- core/mmu_sv39/ptw.sv
- core/cva6_accel_first_pass_decoder_stub.sv
- target: cv64a6_imafdch_sv39
files:
- core/include/cv64a6_imafdch_sv39_config_pkg.sv
- core/include/riscv_pkg.sv
- core/include/ariane_pkg.sv
- core/mmu_sv39x4/cva6_tlb_sv39x4.sv
- core/mmu_sv39x4/cva6_mmu_sv39x4.sv
- core/mmu_sv39x4/cva6_ptw_sv39x4.sv
- core/cva6_accel_first_pass_decoder_stub.sv
- target: cv64a6_imafdch_sv39_wb
files:
- core/include/cv64a6_imafdch_sv39_wb_config_pkg.sv
- core/include/riscv_pkg.sv
- core/include/ariane_pkg.sv
- core/mmu_sv39x4/cva6_tlb_sv39x4.sv
- core/mmu_sv39x4/cva6_mmu_sv39x4.sv
- core/mmu_sv39x4/cva6_ptw_sv39x4.sv
- core/cva6_accel_first_pass_decoder_stub.sv
- target: cv32a6_imac_sv0
files:
- core/include/cv32a6_imac_sv0_config_pkg.sv
- core/include/riscv_pkg.sv
- core/include/ariane_pkg.sv
- core/mmu_sv32/cva6_tlb_sv32.sv
- core/mmu_sv32/cva6_mmu_sv32.sv
- core/mmu_sv32/cva6_ptw_sv32.sv
- core/cva6_accel_first_pass_decoder_stub.sv
- target: cv32a6_imac_sv32
files:
- core/include/cv32a6_imac_sv32_config_pkg.sv
- core/include/riscv_pkg.sv
- core/include/ariane_pkg.sv
- core/mmu_sv32/cva6_tlb_sv32.sv
- core/mmu_sv32/cva6_mmu_sv32.sv
- core/mmu_sv32/cva6_ptw_sv32.sv
- core/cva6_accel_first_pass_decoder_stub.sv
- target: cv32a6_imafc_sv32
files:
- core/include/cv32a6_imafc_sv32_config_pkg.sv
- core/include/riscv_pkg.sv
- core/include/ariane_pkg.sv
# General config infrastructure
- core/include/riscv_pkg.sv
- core/include/ariane_pkg.sv
- core/include/build_config_pkg.sv
- target: not(exclude_first_pass_decoder)
files:
- core/cva6_accel_first_pass_decoder_stub.sv
# MMU
- target: any(cv64a6_imafdcv_sv39, cv64a6_imafdc_sv39, cv64a6_imafdc_sv39_wb)
files:
- core/mmu_sv39/tlb.sv
- core/mmu_sv39/mmu.sv
- core/mmu_sv39/ptw.sv
- target: any(cv64a6_imafdch_sv39, cv64a6_imafdch_sv39_wb)
files:
- core/mmu_sv39x4/cva6_tlb_sv39x4.sv
- core/mmu_sv39x4/cva6_mmu_sv39x4.sv
- core/mmu_sv39x4/cva6_ptw_sv39x4.sv
- target: any(cv32a6_imac_sv0, cv32a6_imac_sv32, cv32a6_imafc_sv32)
files:
- core/mmu_sv32/cva6_tlb_sv32.sv
- core/mmu_sv32/cva6_mmu_sv32.sv
- core/mmu_sv32/cva6_ptw_sv32.sv
- core/cva6_accel_first_pass_decoder_stub.sv
# included via target core/include/${TARGET_CFG}_config_pkg.sv
# ariane_axi_pkg is dependent on this.
# - vendor/pulp-platform/axi/src/axi_pkg.sv
# Packages
- core/include/wt_cache_pkg.sv
- core/include/std_cache_pkg.sv
# for all the below files use Flist.cva6 as baseline and also look at Makefile pd/synth
# CVXIF
- core/include/instr_tracer_pkg.sv
# Extension Interface
- core/include/cvxif_pkg.sv
- core/cvxif_example/include/cvxif_instr_pkg.sv
- core/cvxif_fu.sv
- core/cvxif_example/cvxif_example_coprocessor.sv
- core/cvxif_example/instr_decoder.sv
# Tracing
- core/cva6_rvfi_probes.sv
- core/cva6_fifo_v3.sv
# vendored deps
# - include_dirs: [vendor/pulp-platform/common_cells/include/, vendor/pulp-platform/common_cells/src/]
# files:
# - vendor/pulp-platform/common_cells/src/cf_math_pkg.sv
# - vendor/pulp-platform/common_cells/src/lfsr.sv
# - vendor/pulp-platform/common_cells/src/lzc.sv
# - vendor/pulp-platform/common_cells/src/rr_arb_tree.sv
# - vendor/pulp-platform/common_cells/src/shift_reg.sv
# - vendor/pulp-platform/common_cells/src/unread.sv
# - vendor/pulp-platform/common_cells/src/popcount.sv
# - vendor/pulp-platform/common_cells/src/exp_backoff.sv
# # Common Cells for example coprocessor
# - vendor/pulp-platform/common_cells/src/counter.sv
# - vendor/pulp-platform/common_cells/src/delta_counter.sv
# Floating point unit
# - vendor/openhwgroup/cvfpu/src/fpnew_pkg.sv
# - vendor/openhwgroup/cvfpu/src/fpnew_cast_multi.sv
# - vendor/openhwgroup/cvfpu/src/fpnew_classifier.sv
# - vendor/openhwgroup/cvfpu/src/fpnew_divsqrt_multi.sv
# - vendor/openhwgroup/cvfpu/src/fpnew_fma_multi.sv
# - vendor/openhwgroup/cvfpu/src/fpnew_fma.sv
# - vendor/openhwgroup/cvfpu/src/fpnew_noncomp.sv
# - vendor/openhwgroup/cvfpu/src/fpnew_opgroup_block.sv
# - vendor/openhwgroup/cvfpu/src/fpnew_opgroup_fmt_slice.sv
# - vendor/openhwgroup/cvfpu/src/fpnew_opgroup_multifmt_slice.sv
# - vendor/openhwgroup/cvfpu/src/fpnew_rounding.sv
# - vendor/openhwgroup/cvfpu/src/fpnew_top.sv
# - vendor/openhwgroup/cvfpu/src/fpu_div_sqrt_mvp/hdl/defs_div_sqrt_mvp.sv
# - vendor/openhwgroup/cvfpu/src/fpu_div_sqrt_mvp/hdl/control_mvp.sv
# - vendor/openhwgroup/cvfpu/src/fpu_div_sqrt_mvp/hdl/div_sqrt_top_mvp.sv
# - vendor/openhwgroup/cvfpu/src/fpu_div_sqrt_mvp/hdl/iteration_div_sqrt_mvp.sv
# - vendor/openhwgroup/cvfpu/src/fpu_div_sqrt_mvp/hdl/norm_div_sqrt_mvp.sv
# - vendor/openhwgroup/cvfpu/src/fpu_div_sqrt_mvp/hdl/nrbd_nrsc_mvp.sv
# - vendor/openhwgroup/cvfpu/src/fpu_div_sqrt_mvp/hdl/preprocess_mvp.sv
# Top-level source files (not necessarily instantiated at the top of the cva6).
- core/cva6.sv
- core/alu.sv
# Note: depends on fpnew_pkg, above
- core/fpu_wrap.sv
- core/fpu_wrap.sv # depends on fpnew_pkg, above
- core/branch_unit.sv
- core/compressed_decoder.sv
- core/controller.sv
@ -182,7 +121,6 @@ sources:
- core/perf_counters.sv
- core/ariane_regfile_ff.sv
- core/ariane_regfile_fpga.sv
# NOTE: scoreboard.sv modified for DSIM (unchanged for other simulators)
- core/scoreboard.sv
- core/store_buffer.sv
- core/amo_buffer.sv
@ -190,23 +128,22 @@ sources:
- core/commit_stage.sv
- core/axi_shim.sv
# What is "frontend"?
# Frontend (i.e., fetch, decode, dispatch)
- core/frontend/btb.sv
- core/frontend/bht.sv
- core/frontend/ras.sv
- core/frontend/instr_scan.sv
- core/frontend/instr_queue.sv
- core/frontend/frontend.sv
# Cache subsystem
# Cache subsystem(s)
- core/cache_subsystem/wt_dcache_ctrl.sv
- core/cache_subsystem/wt_dcache_mem.sv
- core/cache_subsystem/wt_dcache_missunit.sv
- core/cache_subsystem/wt_dcache_wbuffer.sv
- core/cache_subsystem/wt_dcache.sv
- core/cache_subsystem/cva6_icache.sv
- core/cache_subsystem/wt_cache_subsystem.sv
- core/cache_subsystem/wt_axi_adapter.sv
- core/cache_subsystem/cva6_icache.sv
- core/cache_subsystem/tag_cmp.sv
- core/cache_subsystem/cva6_icache_axi_wrapper.sv
- core/cache_subsystem/axi_adapter.sv
@ -216,7 +153,6 @@ sources:
- core/cache_subsystem/std_cache_subsystem.sv
# Physical Memory Protection
# NOTE: pmp.sv modified for DSIM (unchanged for other simulators)
- core/pmp/src/pmp.sv
- core/pmp/src/pmp_entry.sv
@ -230,7 +166,6 @@ sources:
- common/local/util
files:
- common/local/util/tc_sram_wrapper.sv
# - vendor/pulp-platform/tech_cells_generic/src/rtl/tc_sram.sv
- target: all(fpga, xilinx)
include_dirs:
@ -246,49 +181,3 @@ sources:
# Tracer (behavioral code, not RTL)
- core/include/instr_tracer_pkg.sv
- common/local/util/instr_tracer.sv
# TODO target define FPGA target + verification etc
# - target: test
# files:
# - corev_apu/riscv-dbg/src/dm_pkg.sv
# - corev_apu/tb/ariane_soc_pkg.sv
# - corev_apu/tb/ariane_axi_soc_pkg.sv
# - corev_apu/tb/ariane_testharness.sv
# - corev_apu/tb/ariane_peripherals.sv
# - corev_apu/tb/common/uart.sv
# - corev_apu/tb/common/SimDTM.sv
# - corev_apu/tb/common/SimJTAG.sv
# - target: all(fpga, xilinx)
# files:
# - corev_apu/fpga/src/ariane_peripherals_xilinx.sv
# - corev_apu/fpga/src/ariane_xilinx.sv
# - corev_apu/fpga/src/fan_ctrl.sv
# - corev_apu/fpga/src/bootrom/bootrom.sv
# - corev_apu/fpga/src/ariane-ethernet/ssio_ddr_in.sv
# - corev_apu/fpga/src/ariane-ethernet/rgmii_soc.sv
# - corev_apu/fpga/src/ariane-ethernet/axis_gmii_rx.sv
# - corev_apu/fpga/src/ariane-ethernet/oddr.sv
# - corev_apu/fpga/src/ariane-ethernet/axis_gmii_tx.sv
# - corev_apu/fpga/src/ariane-ethernet/dualmem_widen8.sv
# - corev_apu/fpga/src/ariane-ethernet/rgmii_phy_if.sv
# - corev_apu/fpga/src/ariane-ethernet/dualmem_widen.sv
# - corev_apu/fpga/src/ariane-ethernet/rgmii_lfsr.sv
# - corev_apu/fpga/src/ariane-ethernet/rgmii_core.sv
# - corev_apu/fpga/src/ariane-ethernet/eth_mac_1g.sv
# - corev_apu/fpga/src/ariane-ethernet/eth_mac_1g_rgmii.sv
# - corev_apu/fpga/src/ariane-ethernet/eth_mac_1g_rgmii_fifo.sv
# - corev_apu/fpga/src/ariane-ethernet/iddr.sv
# - corev_apu/fpga/src/ariane-ethernet/framing_top.sv
# - corev_apu/fpga/src/apb_uart/src/apb_uart.vhd
# - corev_apu/fpga/src/apb_uart/src/uart_transmitter.vhd
# - corev_apu/fpga/src/apb_uart/src/uart_interrupt.vhd
# - corev_apu/fpga/src/apb_uart/src/slib_mv_filter.vhd
# - corev_apu/fpga/src/apb_uart/src/slib_input_filter.vhd
# - corev_apu/fpga/src/apb_uart/src/slib_counter.vhd
# - corev_apu/fpga/src/apb_uart/src/uart_receiver.vhd
# - corev_apu/fpga/src/apb_uart/src/slib_input_sync.vhd
# - corev_apu/fpga/src/apb_uart/src/slib_edge_detect.vhd
# - corev_apu/fpga/src/apb_uart/src/slib_clock_div.vhd
# - corev_apu/fpga/src/apb_uart/src/slib_fifo.vhd
# - corev_apu/fpga/src/apb_uart/src/uart_baudgen.vhd

View file

@ -14,7 +14,7 @@
// coherent memory system.
//
// Define PITON_ARIANE if you want to use this cache.
// Define DCACHE_TYPE if you want to use this cache
// Define CVA6Cfg.DCacheType if you want to use this cache
// with a standard 64 bit AXI interface instead of the OpenPiton
// L1.5 interface.

View file

@ -246,7 +246,7 @@ module commit_stage
// from interrupt service routine
// Fence synchronizes data and instruction streams. That means that we need to flush the private icache
// and the private dcache. This is the most expensive instruction.
if (commit_instr_i[0].op == FENCE_I || (flush_dcache_i && DCACHE_TYPE == int'(config_pkg::WB) && commit_instr_i[0].fu != STORE)) begin
if (commit_instr_i[0].op == FENCE_I || (flush_dcache_i && CVA6Cfg.DCacheType == config_pkg::WB && commit_instr_i[0].fu != STORE)) begin
commit_ack_o[0] = no_st_pending_i;
// tell the controller to flush the I$
fence_i_o = no_st_pending_i;

View file

@ -120,7 +120,7 @@ module controller
flush_ex_o = 1'b1;
// this is not needed in the case since we
// have a write-through cache in this case
if (DCACHE_TYPE == int'(config_pkg::WB)) begin
if (CVA6Cfg.DCacheType == config_pkg::WB) begin
flush_dcache = 1'b1;
fence_active_d = 1'b1;
end
@ -138,7 +138,7 @@ module controller
flush_icache_o = 1'b1;
// this is not needed in the case since we
// have a write-through cache in this case
if (DCACHE_TYPE == int'(config_pkg::WB)) begin
if (CVA6Cfg.DCacheType == config_pkg::WB) begin
flush_dcache = 1'b1;
fence_active_d = 1'b1;
end
@ -146,7 +146,7 @@ module controller
// this is not needed in the case since we
// have a write-through cache in this case
if (DCACHE_TYPE == int'(config_pkg::WB)) begin
if (CVA6Cfg.DCacheType == config_pkg::WB) begin
// wait for the acknowledge here
if (flush_dcache_ack_i && fence_active_q) begin
fence_active_d = 1'b0;
@ -238,7 +238,7 @@ module controller
// ----------------------
always_comb begin
// halt the core if the fence is active
halt_o = halt_csr_i || halt_acc_i || (DCACHE_TYPE == int'(config_pkg::WB) && fence_active_q);
halt_o = halt_csr_i || halt_acc_i || (CVA6Cfg.DCacheType == config_pkg::WB && fence_active_q);
end
// ----------------------

View file

@ -1193,7 +1193,7 @@ module cva6
dcache_req_ports_cache_acc[1].data_gnt &= !dcache_req_ports_ex_cache[2].data_req;
end
if (DCACHE_TYPE == int'(config_pkg::WT)) begin : gen_cache_wt
if (CVA6Cfg.DCacheType == config_pkg::WT) begin : gen_cache_wt
// this is a cache subsystem that is compatible with OpenPiton
wt_cache_subsystem #(
.CVA6Cfg (CVA6Cfg),
@ -1242,7 +1242,7 @@ module cva6
.inval_valid_i (inval_valid),
.inval_ready_o (inval_ready)
);
end else if (DCACHE_TYPE == int'(config_pkg::HPDCACHE)) begin : gen_cache_hpd
end else if (CVA6Cfg.DCacheType == config_pkg::HPDCACHE) begin : gen_cache_hpd
cva6_hpdcache_subsystem #(
.CVA6Cfg (CVA6Cfg),
.icache_areq_t(icache_areq_t),

View file

@ -36,12 +36,11 @@ package ariane_pkg;
// depth of store-buffers, this needs to be a power of two
localparam logic [2:0] DEPTH_SPEC = 'd4;
localparam int unsigned DCACHE_TYPE = int'(cva6_config_pkg::CVA6ConfigDcacheType);
// if DCACHE_TYPE = cva6_config_pkg::WT
// if CVA6Cfg.DCacheType = cva6_config_pkg::WT
// we can use a small commit queue since we have a write buffer in the dcache
// we could in principle do without the commit queue in this case, but the timing degrades if we do that due
// to longer paths into the commit stage
// if DCACHE_TYPE = cva6_config_pkg::WB
// if CVA6Cfg.DCacheType = cva6_config_pkg::WB
// allocate more space for the commit buffer to be on the save side, this needs to be a power of two
localparam logic [2:0] DEPTH_COMMIT = 'd4;
@ -772,7 +771,7 @@ package ariane_pkg;
function automatic logic is_trans_2M(input logic s_st_enbl, input logic g_st_enbl,
input logic is_s_1G, input logic is_s_2M,
input logic is_g_1G, input logic is_g_2M);
return (s_st_enbl && g_st_enbl) ?
return (s_st_enbl && g_st_enbl) ?
((is_s_2M && (is_g_1G || is_g_2M)) || (is_g_2M && (is_s_1G || is_s_2M))) :
((is_s_2M && s_st_enbl) || (is_g_2M && g_st_enbl));
endfunction : is_trans_2M

View file

@ -111,6 +111,7 @@ package build_config_pkg;
cfg.ICACHE_TAG_WIDTH = cfg.PLEN - ICACHE_INDEX_WIDTH;
cfg.ICACHE_LINE_WIDTH = CVA6Cfg.IcacheLineWidth;
cfg.ICACHE_USER_LINE_WIDTH = (CVA6Cfg.AxiUserWidth == 1) ? 4 : CVA6Cfg.IcacheLineWidth;
cfg.DCacheType = CVA6Cfg.DCacheType;
cfg.DCACHE_SET_ASSOC = CVA6Cfg.DcacheSetAssoc;
cfg.DCACHE_SET_ASSOC_WIDTH = $clog2(CVA6Cfg.DcacheSetAssoc);
cfg.DCACHE_INDEX_WIDTH = DCACHE_INDEX_WIDTH;

View file

@ -136,6 +136,8 @@ package config_pkg;
int unsigned IcacheSetAssoc;
// Instruction cache line width
int unsigned IcacheLineWidth;
// Cache Type
cache_type_t DCacheType;
// Data cache size (in bytes)
int unsigned DcacheByteSize;
// Data cache associativity (number of ways)
@ -255,6 +257,7 @@ package config_pkg;
int unsigned ICACHE_TAG_WIDTH;
int unsigned ICACHE_LINE_WIDTH;
int unsigned ICACHE_USER_LINE_WIDTH;
cache_type_t DCacheType;
int unsigned DCACHE_SET_ASSOC;
int unsigned DCACHE_SET_ASSOC_WIDTH;
int unsigned DCACHE_INDEX_WIDTH;

View file

@ -131,6 +131,7 @@ package cva6_config_pkg;
IcacheByteSize: unsigned'(CVA6ConfigIcacheByteSize),
IcacheSetAssoc: unsigned'(CVA6ConfigIcacheSetAssoc),
IcacheLineWidth: unsigned'(CVA6ConfigIcacheLineWidth),
DCacheType: CVA6ConfigDcacheType,
DcacheByteSize: unsigned'(CVA6ConfigDcacheByteSize),
DcacheSetAssoc: unsigned'(CVA6ConfigDcacheSetAssoc),
DcacheLineWidth: unsigned'(CVA6ConfigDcacheLineWidth),

View file

@ -130,6 +130,7 @@ package cva6_config_pkg;
IcacheByteSize: unsigned'(CVA6ConfigIcacheByteSize),
IcacheSetAssoc: unsigned'(CVA6ConfigIcacheSetAssoc),
IcacheLineWidth: unsigned'(CVA6ConfigIcacheLineWidth),
DCacheType: CVA6ConfigDcacheType,
DcacheByteSize: unsigned'(CVA6ConfigDcacheByteSize),
DcacheSetAssoc: unsigned'(CVA6ConfigDcacheSetAssoc),
DcacheLineWidth: unsigned'(CVA6ConfigDcacheLineWidth),

View file

@ -130,6 +130,7 @@ package cva6_config_pkg;
IcacheByteSize: unsigned'(CVA6ConfigIcacheByteSize),
IcacheSetAssoc: unsigned'(CVA6ConfigIcacheSetAssoc),
IcacheLineWidth: unsigned'(CVA6ConfigIcacheLineWidth),
DCacheType: CVA6ConfigDcacheType,
DcacheByteSize: unsigned'(CVA6ConfigDcacheByteSize),
DcacheSetAssoc: unsigned'(CVA6ConfigDcacheSetAssoc),
DcacheLineWidth: unsigned'(CVA6ConfigDcacheLineWidth),

View file

@ -131,6 +131,7 @@ package cva6_config_pkg;
IcacheByteSize: unsigned'(CVA6ConfigIcacheByteSize),
IcacheSetAssoc: unsigned'(CVA6ConfigIcacheSetAssoc),
IcacheLineWidth: unsigned'(CVA6ConfigIcacheLineWidth),
DCacheType: CVA6ConfigDcacheType,
DcacheByteSize: unsigned'(CVA6ConfigDcacheByteSize),
DcacheSetAssoc: unsigned'(CVA6ConfigDcacheSetAssoc),
DcacheLineWidth: unsigned'(CVA6ConfigDcacheLineWidth),

View file

@ -131,6 +131,7 @@ package cva6_config_pkg;
IcacheByteSize: unsigned'(CVA6ConfigIcacheByteSize),
IcacheSetAssoc: unsigned'(CVA6ConfigIcacheSetAssoc),
IcacheLineWidth: unsigned'(CVA6ConfigIcacheLineWidth),
DCacheType: CVA6ConfigDcacheType,
DcacheByteSize: unsigned'(CVA6ConfigDcacheByteSize),
DcacheSetAssoc: unsigned'(CVA6ConfigDcacheSetAssoc),
DcacheLineWidth: unsigned'(CVA6ConfigDcacheLineWidth),

View file

@ -131,6 +131,7 @@ package cva6_config_pkg;
IcacheByteSize: unsigned'(CVA6ConfigIcacheByteSize),
IcacheSetAssoc: unsigned'(CVA6ConfigIcacheSetAssoc),
IcacheLineWidth: unsigned'(CVA6ConfigIcacheLineWidth),
DCacheType: CVA6ConfigDcacheType,
DcacheByteSize: unsigned'(CVA6ConfigDcacheByteSize),
DcacheSetAssoc: unsigned'(CVA6ConfigDcacheSetAssoc),
DcacheLineWidth: unsigned'(CVA6ConfigDcacheLineWidth),

View file

@ -134,6 +134,7 @@ package cva6_config_pkg;
DcacheByteSize: unsigned'(CVA6ConfigDcacheByteSize),
DcacheSetAssoc: unsigned'(CVA6ConfigDcacheSetAssoc),
DcacheLineWidth: unsigned'(CVA6ConfigDcacheLineWidth),
DCacheType: CVA6ConfigDcacheType,
DataUserEn: unsigned'(CVA6ConfigDataUserEn),
FetchUserWidth: unsigned'(CVA6ConfigFetchUserWidth),
FetchUserEn: unsigned'(CVA6ConfigFetchUserEn)

View file

@ -131,6 +131,7 @@ package cva6_config_pkg;
IcacheByteSize: unsigned'(CVA6ConfigIcacheByteSize),
IcacheSetAssoc: unsigned'(CVA6ConfigIcacheSetAssoc),
IcacheLineWidth: unsigned'(CVA6ConfigIcacheLineWidth),
DCacheType: CVA6ConfigDcacheType,
DcacheByteSize: unsigned'(CVA6ConfigDcacheByteSize),
DcacheSetAssoc: unsigned'(CVA6ConfigDcacheSetAssoc),
DcacheLineWidth: unsigned'(CVA6ConfigDcacheLineWidth),

View file

@ -131,6 +131,7 @@ package cva6_config_pkg;
IcacheByteSize: unsigned'(CVA6ConfigIcacheByteSize),
IcacheSetAssoc: unsigned'(CVA6ConfigIcacheSetAssoc),
IcacheLineWidth: unsigned'(CVA6ConfigIcacheLineWidth),
DCacheType: CVA6ConfigDcacheType,
DcacheByteSize: unsigned'(CVA6ConfigDcacheByteSize),
DcacheSetAssoc: unsigned'(CVA6ConfigDcacheSetAssoc),
DcacheLineWidth: unsigned'(CVA6ConfigDcacheLineWidth),

View file

@ -138,6 +138,7 @@ package cva6_config_pkg;
IcacheByteSize: unsigned'(CVA6ConfigIcacheByteSize),
IcacheSetAssoc: unsigned'(CVA6ConfigIcacheSetAssoc),
IcacheLineWidth: unsigned'(CVA6ConfigIcacheLineWidth),
DCacheType: CVA6ConfigDcacheType,
DcacheByteSize: unsigned'(CVA6ConfigDcacheByteSize),
DcacheSetAssoc: unsigned'(CVA6ConfigDcacheSetAssoc),
DcacheLineWidth: unsigned'(CVA6ConfigDcacheLineWidth),

View file

@ -131,6 +131,7 @@ package cva6_config_pkg;
IcacheByteSize: unsigned'(CVA6ConfigIcacheByteSize),
IcacheSetAssoc: unsigned'(CVA6ConfigIcacheSetAssoc),
IcacheLineWidth: unsigned'(CVA6ConfigIcacheLineWidth),
DCacheType: CVA6ConfigDcacheType,
DcacheByteSize: unsigned'(CVA6ConfigDcacheByteSize),
DcacheSetAssoc: unsigned'(CVA6ConfigDcacheSetAssoc),
DcacheLineWidth: unsigned'(CVA6ConfigDcacheLineWidth),

View file

@ -131,6 +131,7 @@ package cva6_config_pkg;
IcacheByteSize: unsigned'(CVA6ConfigIcacheByteSize),
IcacheSetAssoc: unsigned'(CVA6ConfigIcacheSetAssoc),
IcacheLineWidth: unsigned'(CVA6ConfigIcacheLineWidth),
DCacheType: CVA6ConfigDcacheType,
DcacheByteSize: unsigned'(CVA6ConfigDcacheByteSize),
DcacheSetAssoc: unsigned'(CVA6ConfigDcacheSetAssoc),
DcacheLineWidth: unsigned'(CVA6ConfigDcacheLineWidth),

View file

@ -124,7 +124,8 @@ package cva6_config_pkg;
CachedRegionLength: 1024'({64'h40000000}),
MaxOutstandingStores: unsigned'(7),
DebugEn: bit'(1),
AxiBurstWriteEn: bit'(0)
AxiBurstWriteEn: bit'(0),
DCacheType: CVA6ConfigDcacheType
};
endpackage

View file

@ -124,7 +124,8 @@ package cva6_config_pkg;
CachedRegionLength: 1024'({64'h40000000}),
MaxOutstandingStores: unsigned'(7),
DebugEn: bit'(1),
AxiBurstWriteEn: bit'(0)
AxiBurstWriteEn: bit'(0),
DCacheType: CVA6ConfigDcacheType
};
endpackage

View file

@ -136,6 +136,7 @@ package cva6_config_pkg;
DcacheLineWidth: unsigned'(CVA6ConfigDcacheLineWidth),
DataUserEn: unsigned'(CVA6ConfigDataUserEn),
FetchUserWidth: unsigned'(CVA6ConfigFetchUserWidth),
FetchUserEn: unsigned'(CVA6ConfigFetchUserEn)
FetchUserEn: unsigned'(CVA6ConfigFetchUserEn),
DCacheType: CVA6ConfigDcacheType
};
endpackage