mirror of
https://github.com/openhwgroup/cva6.git
synced 2025-04-24 06:07:19 -04:00
198 lines
8.8 KiB
Text
198 lines
8.8 KiB
Text
//////////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// Copyright 2021 OpenHW Group
|
|
//
|
|
// Licensed under the Solderpad Hardware Licence, Version 2.0 (the "License");
|
|
// you may not use this file except in compliance with the License.
|
|
// You may obtain a copy of the License at
|
|
//
|
|
// https://solderpad.org/licenses/
|
|
//
|
|
// Unless required by applicable law or agreed to in writing, software
|
|
// distributed under the 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.
|
|
//
|
|
// SPDX-License-Identifier: Apache-2.0 WITH SHL-2.0
|
|
//
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// Manifest for the CVA6 CORE RTL model.
|
|
// - This is a CORE-ONLY manifest.
|
|
// - Relevent synthesis and simulation scripts/Makefiles must set the shell
|
|
// ENV variable CVA6_REPO_DIR.
|
|
//
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
|
|
//FPGA memories
|
|
${CVA6_REPO_DIR}/vendor/pulp-platform/fpga-support/rtl/SyncDpRam.sv
|
|
${CVA6_REPO_DIR}/vendor/pulp-platform/fpga-support/rtl/AsyncDpRam.sv
|
|
${CVA6_REPO_DIR}/vendor/pulp-platform/fpga-support/rtl/AsyncThreePortRam.sv
|
|
|
|
+incdir+${CVA6_REPO_DIR}/core/include/
|
|
+incdir+${CVA6_REPO_DIR}/vendor/pulp-platform/common_cells/include/
|
|
+incdir+${CVA6_REPO_DIR}/vendor/pulp-platform/common_cells/src/
|
|
+incdir+${CVA6_REPO_DIR}/vendor/pulp-platform/axi/include/
|
|
+incdir+${CVA6_REPO_DIR}/common/local/util/
|
|
|
|
// Floating point unit
|
|
${CVA6_REPO_DIR}/core/cvfpu/src/fpnew_pkg.sv
|
|
${CVA6_REPO_DIR}/core/cvfpu/src/fpnew_cast_multi.sv
|
|
${CVA6_REPO_DIR}/core/cvfpu/src/fpnew_classifier.sv
|
|
${CVA6_REPO_DIR}/core/cvfpu/src/fpnew_divsqrt_multi.sv
|
|
${CVA6_REPO_DIR}/core/cvfpu/src/fpnew_fma_multi.sv
|
|
${CVA6_REPO_DIR}/core/cvfpu/src/fpnew_fma.sv
|
|
${CVA6_REPO_DIR}/core/cvfpu/src/fpnew_noncomp.sv
|
|
${CVA6_REPO_DIR}/core/cvfpu/src/fpnew_opgroup_block.sv
|
|
${CVA6_REPO_DIR}/core/cvfpu/src/fpnew_opgroup_fmt_slice.sv
|
|
${CVA6_REPO_DIR}/core/cvfpu/src/fpnew_opgroup_multifmt_slice.sv
|
|
${CVA6_REPO_DIR}/core/cvfpu/src/fpnew_rounding.sv
|
|
${CVA6_REPO_DIR}/core/cvfpu/src/fpnew_top.sv
|
|
${CVA6_REPO_DIR}/core/cvfpu/src/fpu_div_sqrt_mvp/hdl/defs_div_sqrt_mvp.sv
|
|
${CVA6_REPO_DIR}/core/cvfpu/src/fpu_div_sqrt_mvp/hdl/control_mvp.sv
|
|
${CVA6_REPO_DIR}/core/cvfpu/src/fpu_div_sqrt_mvp/hdl/div_sqrt_top_mvp.sv
|
|
${CVA6_REPO_DIR}/core/cvfpu/src/fpu_div_sqrt_mvp/hdl/iteration_div_sqrt_mvp.sv
|
|
${CVA6_REPO_DIR}/core/cvfpu/src/fpu_div_sqrt_mvp/hdl/norm_div_sqrt_mvp.sv
|
|
${CVA6_REPO_DIR}/core/cvfpu/src/fpu_div_sqrt_mvp/hdl/nrbd_nrsc_mvp.sv
|
|
${CVA6_REPO_DIR}/core/cvfpu/src/fpu_div_sqrt_mvp/hdl/preprocess_mvp.sv
|
|
|
|
${CVA6_REPO_DIR}/core/include/config_pkg.sv
|
|
${CVA6_REPO_DIR}/core/include/${TARGET_CFG}_config_pkg.sv
|
|
${CVA6_REPO_DIR}/core/include/riscv_pkg.sv
|
|
// Note: depends on fpnew_pkg, above
|
|
${CVA6_REPO_DIR}/core/include/ariane_pkg.sv
|
|
${CVA6_REPO_DIR}/vendor/pulp-platform/axi/src/axi_pkg.sv
|
|
|
|
// Packages
|
|
${CVA6_REPO_DIR}/core/include/wt_cache_pkg.sv
|
|
${CVA6_REPO_DIR}/core/include/std_cache_pkg.sv
|
|
${CVA6_REPO_DIR}/core/include/instr_tracer_pkg.sv
|
|
${CVA6_REPO_DIR}/core/include/build_config_pkg.sv
|
|
|
|
//CVXIF
|
|
${CVA6_REPO_DIR}/core/cvxif_compressed_if_driver.sv
|
|
${CVA6_REPO_DIR}/core/cvxif_issue_register_commit_if_driver.sv
|
|
${CVA6_REPO_DIR}/core/cvxif_example/include/cvxif_instr_pkg.sv
|
|
${CVA6_REPO_DIR}/core/cvxif_fu.sv
|
|
${CVA6_REPO_DIR}/core/cvxif_example/cvxif_example_coprocessor.sv
|
|
${CVA6_REPO_DIR}/core/cvxif_example/instr_decoder.sv
|
|
${CVA6_REPO_DIR}/core/cvxif_example/compressed_instr_decoder.sv
|
|
${CVA6_REPO_DIR}/core/cvxif_example/copro_alu.sv
|
|
|
|
// Common Cells
|
|
${CVA6_REPO_DIR}/vendor/pulp-platform/common_cells/src/cf_math_pkg.sv
|
|
${CVA6_REPO_DIR}/vendor/pulp-platform/common_cells/src/fifo_v3.sv
|
|
${CVA6_REPO_DIR}/vendor/pulp-platform/common_cells/src/lfsr.sv
|
|
${CVA6_REPO_DIR}/vendor/pulp-platform/common_cells/src/lfsr_8bit.sv
|
|
${CVA6_REPO_DIR}/vendor/pulp-platform/common_cells/src/stream_arbiter.sv
|
|
${CVA6_REPO_DIR}/vendor/pulp-platform/common_cells/src/stream_arbiter_flushable.sv
|
|
${CVA6_REPO_DIR}/vendor/pulp-platform/common_cells/src/stream_mux.sv
|
|
${CVA6_REPO_DIR}/vendor/pulp-platform/common_cells/src/stream_demux.sv
|
|
${CVA6_REPO_DIR}/vendor/pulp-platform/common_cells/src/lzc.sv
|
|
${CVA6_REPO_DIR}/vendor/pulp-platform/common_cells/src/rr_arb_tree.sv
|
|
${CVA6_REPO_DIR}/vendor/pulp-platform/common_cells/src/shift_reg.sv
|
|
${CVA6_REPO_DIR}/vendor/pulp-platform/common_cells/src/unread.sv
|
|
${CVA6_REPO_DIR}/vendor/pulp-platform/common_cells/src/popcount.sv
|
|
${CVA6_REPO_DIR}/vendor/pulp-platform/common_cells/src/exp_backoff.sv
|
|
|
|
// Common Cells for example coprocessor
|
|
${CVA6_REPO_DIR}/vendor/pulp-platform/common_cells/src/counter.sv
|
|
${CVA6_REPO_DIR}/vendor/pulp-platform/common_cells/src/delta_counter.sv
|
|
|
|
// Top-level source files (not necessarily instantiated at the top of the cva6).
|
|
${CVA6_REPO_DIR}/core/cva6.sv
|
|
${CVA6_REPO_DIR}/core/cva6_rvfi_probes.sv
|
|
${CVA6_REPO_DIR}/core/alu.sv
|
|
// Note: depends on fpnew_pkg, above
|
|
${CVA6_REPO_DIR}/core/fpu_wrap.sv
|
|
${CVA6_REPO_DIR}/core/branch_unit.sv
|
|
${CVA6_REPO_DIR}/core/compressed_decoder.sv
|
|
${CVA6_REPO_DIR}/core/macro_decoder.sv
|
|
${CVA6_REPO_DIR}/core/controller.sv
|
|
${CVA6_REPO_DIR}/core/csr_buffer.sv
|
|
${CVA6_REPO_DIR}/core/csr_regfile.sv
|
|
${CVA6_REPO_DIR}/core/decoder.sv
|
|
${CVA6_REPO_DIR}/core/ex_stage.sv
|
|
${CVA6_REPO_DIR}/core/instr_realign.sv
|
|
${CVA6_REPO_DIR}/core/id_stage.sv
|
|
${CVA6_REPO_DIR}/core/issue_read_operands.sv
|
|
${CVA6_REPO_DIR}/core/issue_stage.sv
|
|
${CVA6_REPO_DIR}/core/load_unit.sv
|
|
${CVA6_REPO_DIR}/core/load_store_unit.sv
|
|
${CVA6_REPO_DIR}/core/lsu_bypass.sv
|
|
${CVA6_REPO_DIR}/core/mult.sv
|
|
${CVA6_REPO_DIR}/core/multiplier.sv
|
|
${CVA6_REPO_DIR}/core/serdiv.sv
|
|
${CVA6_REPO_DIR}/core/perf_counters.sv
|
|
${CVA6_REPO_DIR}/core/ariane_regfile_ff.sv
|
|
${CVA6_REPO_DIR}/core/ariane_regfile_fpga.sv
|
|
// NOTE: scoreboard.sv modified for DSIM (unchanged for other simulators)
|
|
${CVA6_REPO_DIR}/core/scoreboard.sv
|
|
${CVA6_REPO_DIR}/core/store_buffer.sv
|
|
${CVA6_REPO_DIR}/core/amo_buffer.sv
|
|
${CVA6_REPO_DIR}/core/store_unit.sv
|
|
${CVA6_REPO_DIR}/core/commit_stage.sv
|
|
${CVA6_REPO_DIR}/core/axi_shim.sv
|
|
${CVA6_REPO_DIR}/core/cva6_accel_first_pass_decoder_stub.sv
|
|
${CVA6_REPO_DIR}/core/acc_dispatcher.sv
|
|
${CVA6_REPO_DIR}/core/cva6_fifo_v3.sv
|
|
|
|
// What is "frontend"?
|
|
${CVA6_REPO_DIR}/core/frontend/btb.sv
|
|
${CVA6_REPO_DIR}/core/frontend/bht.sv
|
|
${CVA6_REPO_DIR}/core/frontend/ras.sv
|
|
${CVA6_REPO_DIR}/core/frontend/instr_scan.sv
|
|
${CVA6_REPO_DIR}/core/frontend/instr_queue.sv
|
|
${CVA6_REPO_DIR}/core/frontend/frontend.sv
|
|
|
|
// Cache subsystem
|
|
${CVA6_REPO_DIR}/core/cache_subsystem/wt_dcache_ctrl.sv
|
|
${CVA6_REPO_DIR}/core/cache_subsystem/wt_dcache_mem.sv
|
|
${CVA6_REPO_DIR}/core/cache_subsystem/wt_dcache_missunit.sv
|
|
${CVA6_REPO_DIR}/core/cache_subsystem/wt_dcache_wbuffer.sv
|
|
${CVA6_REPO_DIR}/core/cache_subsystem/wt_dcache.sv
|
|
${CVA6_REPO_DIR}/core/cache_subsystem/cva6_icache.sv
|
|
${CVA6_REPO_DIR}/core/cache_subsystem/wt_cache_subsystem.sv
|
|
${CVA6_REPO_DIR}/core/cache_subsystem/wt_axi_adapter.sv
|
|
${CVA6_REPO_DIR}/core/cache_subsystem/tag_cmp.sv
|
|
${CVA6_REPO_DIR}/core/cache_subsystem/axi_adapter.sv
|
|
${CVA6_REPO_DIR}/core/cache_subsystem/miss_handler.sv
|
|
${CVA6_REPO_DIR}/core/cache_subsystem/cache_ctrl.sv
|
|
${CVA6_REPO_DIR}/core/cache_subsystem/cva6_icache_axi_wrapper.sv
|
|
${CVA6_REPO_DIR}/core/cache_subsystem/std_cache_subsystem.sv
|
|
${CVA6_REPO_DIR}/core/cache_subsystem/std_nbdcache.sv
|
|
-F ${HPDCACHE_DIR}/rtl/hpdcache.Flist
|
|
${HPDCACHE_DIR}/rtl/src/utils/hpdcache_mem_req_read_arbiter.sv
|
|
${HPDCACHE_DIR}/rtl/src/utils/hpdcache_mem_req_write_arbiter.sv
|
|
${HPDCACHE_DIR}/rtl/src/utils/hpdcache_mem_resp_demux.sv
|
|
${HPDCACHE_DIR}/rtl/src/utils/hpdcache_mem_to_axi_read.sv
|
|
${HPDCACHE_DIR}/rtl/src/utils/hpdcache_mem_to_axi_write.sv
|
|
${CVA6_REPO_DIR}/core/cache_subsystem/cva6_hpdcache_subsystem.sv
|
|
${CVA6_REPO_DIR}/core/cache_subsystem/cva6_hpdcache_subsystem_axi_arbiter.sv
|
|
${CVA6_REPO_DIR}/core/cache_subsystem/cva6_hpdcache_if_adapter.sv
|
|
${CVA6_REPO_DIR}/core/cache_subsystem/cva6_hpdcache_wrapper.sv
|
|
${HPDCACHE_DIR}/rtl/src/common/macros/behav/hpdcache_sram_1rw.sv
|
|
${HPDCACHE_DIR}/rtl/src/common/macros/behav/hpdcache_sram_wbyteenable_1rw.sv
|
|
${HPDCACHE_DIR}/rtl/src/common/macros/behav/hpdcache_sram_wmask_1rw.sv
|
|
|
|
// Physical Memory Protection
|
|
// NOTE: pmp.sv modified for DSIM (unchanged for other simulators)
|
|
${CVA6_REPO_DIR}/core/pmp/src/pmp.sv
|
|
${CVA6_REPO_DIR}/core/pmp/src/pmp_entry.sv
|
|
|
|
// Tracer (behavioral code, not RTL)
|
|
${CVA6_REPO_DIR}/common/local/util/instr_tracer.sv
|
|
${CVA6_REPO_DIR}/common/local/util/tc_sram_wrapper.sv
|
|
${CVA6_REPO_DIR}/common/local/util/tc_sram_wrapper_cache_techno.sv
|
|
${CVA6_REPO_DIR}/vendor/pulp-platform/tech_cells_generic/src/rtl/tc_sram.sv
|
|
${CVA6_REPO_DIR}/common/local/util/sram.sv
|
|
${CVA6_REPO_DIR}/common/local/util/sram_cache.sv
|
|
|
|
// MMU
|
|
${CVA6_REPO_DIR}/core/cva6_mmu/cva6_mmu.sv
|
|
${CVA6_REPO_DIR}/core/cva6_mmu/cva6_ptw.sv
|
|
${CVA6_REPO_DIR}/core/cva6_mmu/cva6_tlb.sv
|
|
${CVA6_REPO_DIR}/core/cva6_mmu/cva6_shared_tlb.sv
|
|
|
|
// end of manifest
|