|
| 1 | +export PLATFORM = rapidus2hp |
| 2 | + |
| 3 | +export DESIGN_NAME = cva6 |
| 4 | + |
| 5 | +# Some files are listed specifically vs. sorted wilcard to control the order (makes Verific happy) |
| 6 | +export SRC_HOME = $(DESIGN_HOME)/src/$(DESIGN_NICKNAME) |
| 7 | +export VERILOG_FILES = $(sort $(wildcard $(SRC_HOME)/common/local/util/*.sv)) \ |
| 8 | + $(SRC_HOME)/core/include/config_pkg.sv \ |
| 9 | + $(SRC_HOME)/core/include/cv32a65x_config_pkg.sv \ |
| 10 | + $(SRC_HOME)/core/include/riscv_pkg.sv \ |
| 11 | + $(SRC_HOME)/core/include/ariane_pkg.sv \ |
| 12 | + $(SRC_HOME)/core/include/build_config_pkg.sv \ |
| 13 | + $(SRC_HOME)/core/include/std_cache_pkg.sv \ |
| 14 | + $(SRC_HOME)/core/include/wt_cache_pkg.sv \ |
| 15 | + $(sort $(wildcard $(SRC_HOME)/vendor/pulp-platform/common_cells/src/*.sv)) \ |
| 16 | + $(SRC_HOME)/core/cvfpu/src/fpnew_pkg.sv \ |
| 17 | + $(sort $(wildcard $(SRC_HOME)/vendor/pulp-platform/axi/src/*.sv)) \ |
| 18 | + $(SRC_HOME)/core/cvfpu/src/fpnew_cast_multi.sv \ |
| 19 | + $(SRC_HOME)/core/cvfpu/src/fpnew_classifier.sv \ |
| 20 | + $(SRC_HOME)/core/cvfpu/src/fpnew_divsqrt_multi.sv \ |
| 21 | + $(SRC_HOME)/core/cvfpu/src/fpnew_fma.sv \ |
| 22 | + $(SRC_HOME)/core/cvfpu/src/fpnew_fma_multi.sv \ |
| 23 | + $(SRC_HOME)/core/cvfpu/src/fpnew_noncomp.sv \ |
| 24 | + $(SRC_HOME)/core/cvfpu/src/fpnew_opgroup_block.sv \ |
| 25 | + $(SRC_HOME)/core/cvfpu/src/fpnew_opgroup_fmt_slice.sv \ |
| 26 | + $(SRC_HOME)/core/cvfpu/src/fpnew_opgroup_multifmt_slice.sv \ |
| 27 | + $(SRC_HOME)/core/cvfpu/src/fpnew_rounding.sv \ |
| 28 | + $(SRC_HOME)/core/cvfpu/src/fpnew_top.sv \ |
| 29 | + $(sort $(wildcard $(SRC_HOME)/core/*.sv)) \ |
| 30 | + $(sort $(wildcard $(SRC_HOME)/core/pmp/src/*.sv)) \ |
| 31 | + $(SRC_HOME)/core/cache_subsystem/hpdcache/rtl/src/hpdcache_pkg.sv \ |
| 32 | + $(SRC_HOME)/core/cache_subsystem/hpdcache/rtl/src/hpdcache.sv \ |
| 33 | + $(SRC_HOME)/core/cache_subsystem/hpdcache/rtl/src/hpdcache_amo.sv \ |
| 34 | + $(SRC_HOME)/core/cache_subsystem/hpdcache/rtl/src/hpdcache_cmo.sv \ |
| 35 | + $(SRC_HOME)/core/cache_subsystem/hpdcache/rtl/src/hpdcache_core_arbiter.sv \ |
| 36 | + $(SRC_HOME)/core/cache_subsystem/hpdcache/rtl/src/hpdcache_ctrl.sv \ |
| 37 | + $(SRC_HOME)/core/cache_subsystem/hpdcache/rtl/src/hpdcache_ctrl_pe.sv \ |
| 38 | + $(SRC_HOME)/core/cache_subsystem/hpdcache/rtl/src/hpdcache_flush.sv \ |
| 39 | + $(SRC_HOME)/core/cache_subsystem/hpdcache/rtl/src/hpdcache_memctrl.sv \ |
| 40 | + $(SRC_HOME)/core/cache_subsystem/hpdcache/rtl/src/hpdcache_miss_handler.sv \ |
| 41 | + $(SRC_HOME)/core/cache_subsystem/hpdcache/rtl/src/hpdcache_mshr.sv \ |
| 42 | + $(SRC_HOME)/core/cache_subsystem/hpdcache/rtl/src/hpdcache_rtab.sv \ |
| 43 | + $(SRC_HOME)/core/cache_subsystem/hpdcache/rtl/src/hpdcache_uncached.sv \ |
| 44 | + $(SRC_HOME)/core/cache_subsystem/hpdcache/rtl/src/hpdcache_victim_plru.sv \ |
| 45 | + $(SRC_HOME)/core/cache_subsystem/hpdcache/rtl/src/hpdcache_victim_random.sv \ |
| 46 | + $(SRC_HOME)/core/cache_subsystem/hpdcache/rtl/src/hpdcache_victim_sel.sv \ |
| 47 | + $(SRC_HOME)/core/cache_subsystem/hpdcache/rtl/src/hpdcache_wbuf.sv \ |
| 48 | + $(SRC_HOME)/core/cache_subsystem/hpdcache/rtl/src/hwpf_stride/hwpf_stride_pkg.sv \ |
| 49 | + $(SRC_HOME)/core/cache_subsystem/hpdcache/rtl/src/hwpf_stride/hwpf_stride.sv \ |
| 50 | + $(SRC_HOME)/core/cache_subsystem/hpdcache/rtl/src/hwpf_stride/hwpf_stride_arb.sv \ |
| 51 | + $(SRC_HOME)/core/cache_subsystem/hpdcache/rtl/src/hwpf_stride/hwpf_stride_wrapper.sv \ |
| 52 | + $(sort $(wildcard $(SRC_HOME)/core/cache_subsystem/*.sv)) \ |
| 53 | + $(sort $(wildcard $(SRC_HOME)/core/cache_subsystem/hpdcache/rtl/src/common/*.sv)) \ |
| 54 | + $(sort $(wildcard $(SRC_HOME)/core/cache_subsystem/hpdcache/rtl/src/common/macros/blackbox/*.sv)) \ |
| 55 | + $(sort $(wildcard $(SRC_HOME)/core/cache_subsystem/hpdcache/rtl/src/utils/*.sv)) \ |
| 56 | + $(sort $(wildcard $(SRC_HOME)/core/cva6_mmu/*.sv)) \ |
| 57 | + $(SRC_HOME)/core/cvfpu/src/fpu_div_sqrt_mvp/hdl/defs_div_sqrt_mvp.sv \ |
| 58 | + $(SRC_HOME)/core/cvfpu/src/fpu_div_sqrt_mvp/hdl/control_mvp.sv \ |
| 59 | + $(SRC_HOME)/core/cvfpu/src/fpu_div_sqrt_mvp/hdl/div_sqrt_top_mvp.sv \ |
| 60 | + $(SRC_HOME)/core/cvfpu/src/fpu_div_sqrt_mvp/hdl/iteration_div_sqrt_mvp.sv \ |
| 61 | + $(SRC_HOME)/core/cvfpu/src/fpu_div_sqrt_mvp/hdl/norm_div_sqrt_mvp.sv \ |
| 62 | + $(SRC_HOME)/core/cvfpu/src/fpu_div_sqrt_mvp/hdl/nrbd_nrsc_mvp.sv \ |
| 63 | + $(SRC_HOME)/core/cvfpu/src/fpu_div_sqrt_mvp/hdl/preprocess_mvp.sv \ |
| 64 | + $(SRC_HOME)/core/cvxif_example/include/cvxif_instr_pkg.sv \ |
| 65 | + $(sort $(wildcard $(SRC_HOME)/core/frontend/*.sv)) \ |
| 66 | + $(SRC_HOME)/vendor/pulp-platform/tech_cells_generic/src/rtl/tc_sram.sv \ |
| 67 | + $(PLATFORM_DIR)/ram/verilog/fakeram7_64x256_shim.sv \ |
| 68 | + $(PLATFORM_DIR)/ram/verilog/sacrls0g0d1p64x256m2b1w0c1p0d0i0s0cr0rr0rm4rw00ms0.sv \ |
| 69 | + $(PLATFORM_DIR)/ram/verilog/fakeram7_128x64_shim.sv \ |
| 70 | + $(PLATFORM_DIR)/ram/verilog/sacrls0g0d1p128x64m2b1w0c1p0d0i0s0cr0rr0rm4rw00ms0.sv \ |
| 71 | + $(PLATFORM_DIR)/ram/verilog/fakeram7_64x28_shim.sv \ |
| 72 | + $(PLATFORM_DIR)/ram/verilog/sacrls0g0d1p64x28m2b1w0c1p0d0i0s0cr0rr0rm4rw00ms0.sv \ |
| 73 | + $(PLATFORM_DIR)/ram/verilog/fakeram7_64x25_shim.sv \ |
| 74 | + $(PLATFORM_DIR)/ram/verilog/sacrls0g0d1p64x25m2b1w0c1p0d0i0s0cr0rr0rm4rw00ms0.sv |
| 75 | + |
| 76 | +export VERILOG_INCLUDE_DIRS = $(DESIGN_HOME)/src/$(DESIGN_NICKNAME)/core/include \ |
| 77 | + $(DESIGN_HOME)/src/$(DESIGN_NICKNAME)/core/cvfpu/src/common_cells/include \ |
| 78 | + $(DESIGN_HOME)/src/$(DESIGN_NICKNAME)/core/cache_subsystem/hpdcache/rtl/include |
| 79 | + |
| 80 | +export VERILOG_DEFINES += -D HPDCACHE_ASSERT_OFF |
| 81 | + |
| 82 | +export ADDITIONAL_LEFS = $(PLATFORM_DIR)/ram/lef/sacrls0g0d1p64x256m2b1w0c1p0d0i0s0cr0rr0rm4rw00ms0.lef \ |
| 83 | + $(PLATFORM_DIR)/ram/lef/sacrls0g0d1p128x64m2b1w0c1p0d0i0s0cr0rr0rm4rw00ms0.lef \ |
| 84 | + $(PLATFORM_DIR)/ram/lef/sacrls0g0d1p64x28m2b1w0c1p0d0i0s0cr0rr0rm4rw00ms0.lef \ |
| 85 | + $(PLATFORM_DIR)/ram/lef/sacrls0g0d1p64x25m2b1w0c1p0d0i0s0cr0rr0rm4rw00ms0.lef |
| 86 | + |
| 87 | +export ADDITIONAL_LIBS += $(PLATFORM_DIR)/ram/lib/sacrls0g0d1p64x256m2b1w0c1p0d0i0s0cr0rr0rm4rw00ms0.lib \ |
| 88 | + $(PLATFORM_DIR)/ram/lib/sacrls0g0d1p128x64m2b1w0c1p0d0i0s0cr0rr0rm4rw00ms0.lib \ |
| 89 | + $(PLATFORM_DIR)/ram/lib/sacrls0g0d1p64x28m2b1w0c1p0d0i0s0cr0rr0rm4rw00ms0.lib \ |
| 90 | + $(PLATFORM_DIR)/ram/lib/sacrls0g0d1p64x25m2b1w0c1p0d0i0s0cr0rr0rm4rw00ms0.lib |
| 91 | + |
| 92 | +export SDC_FILE = $(DESIGN_HOME)/$(PLATFORM)/$(DESIGN_NAME)/constraint.sdc |
| 93 | + |
| 94 | +# Must be defined before the ifeq's |
| 95 | +export SYNTH_HDL_FRONTEND = slang |
| 96 | +export SYNTH_HIERARCHICAL ?= 0 |
| 97 | + |
| 98 | +ifeq ($(SYNTH_HDL_FRONTEND),verific) |
| 99 | + # Reduce utilization for verific since it runs into issues with DPL not being |
| 100 | + # able to place instances or with one-site gap/overlap issues |
| 101 | + export CORE_UTILIZATION = 35 |
| 102 | +else |
| 103 | + ifeq ($(SYNTH_HIERARCHICAL),1) |
| 104 | + # Reduce the amount of resizing done between GPL and DPL |
| 105 | + export EARLY_SIZING_CAP_RATIO = 6 |
| 106 | + endif |
| 107 | + export CORE_UTILIZATION = 45 |
| 108 | +endif |
| 109 | + |
| 110 | +export CORE_MARGIN = 2 |
| 111 | +export MACRO_PLACE_HALO = 2 2 |
| 112 | + |
| 113 | +export PLACE_DENSITY = 0.65 |
| 114 | + |
| 115 | +export ENABLE_DPO = 0 |
| 116 | + |
| 117 | +# a smoketest for this option, there are a |
| 118 | +# few last gasp iterations |
| 119 | +export SKIP_LAST_GASP ?= 1 |
| 120 | + |
| 121 | +# For use with SYNTH_HIERARCHICAL |
| 122 | +export SYNTH_MINIMUM_KEEP_SIZE ?= 40000 |
0 commit comments