diff --git a/core/byte_en_BRAM.sv b/core/common_components/byte_en_BRAM.sv similarity index 100% rename from core/byte_en_BRAM.sv rename to core/common_components/byte_en_BRAM.sv diff --git a/core/clz.sv b/core/common_components/clz.sv similarity index 100% rename from core/clz.sv rename to core/common_components/clz.sv diff --git a/core/cva5_fifo.sv b/core/common_components/cva5_fifo.sv similarity index 100% rename from core/cva5_fifo.sv rename to core/common_components/cva5_fifo.sv diff --git a/core/cycler.sv b/core/common_components/cycler.sv similarity index 100% rename from core/cycler.sv rename to core/common_components/cycler.sv diff --git a/core/lfsr.sv b/core/common_components/lfsr.sv similarity index 100% rename from core/lfsr.sv rename to core/common_components/lfsr.sv diff --git a/core/lutrams/lutram_1w_1r.sv b/core/common_components/lutram_1w_1r.sv similarity index 100% rename from core/lutrams/lutram_1w_1r.sv rename to core/common_components/lutram_1w_1r.sv diff --git a/core/lutrams/lutram_1w_mr.sv b/core/common_components/lutram_1w_mr.sv similarity index 100% rename from core/lutrams/lutram_1w_mr.sv rename to core/common_components/lutram_1w_mr.sv diff --git a/core/one_hot_to_integer.sv b/core/common_components/one_hot_to_integer.sv similarity index 100% rename from core/one_hot_to_integer.sv rename to core/common_components/one_hot_to_integer.sv diff --git a/core/priority_encoder.sv b/core/common_components/priority_encoder.sv similarity index 100% rename from core/priority_encoder.sv rename to core/common_components/priority_encoder.sv diff --git a/core/set_clr_reg_with_rst.sv b/core/common_components/set_clr_reg_with_rst.sv similarity index 100% rename from core/set_clr_reg_with_rst.sv rename to core/common_components/set_clr_reg_with_rst.sv diff --git a/core/toggle_memory.sv b/core/common_components/toggle_memory.sv similarity index 100% rename from core/toggle_memory.sv rename to core/common_components/toggle_memory.sv diff --git a/core/toggle_memory_set.sv b/core/common_components/toggle_memory_set.sv similarity index 100% rename from core/toggle_memory_set.sv rename to core/common_components/toggle_memory_set.sv diff --git a/core/intel/intel_byte_enable_ram.sv b/core/common_components/vendor_support/intel/intel_byte_enable_ram.sv similarity index 100% rename from core/intel/intel_byte_enable_ram.sv rename to core/common_components/vendor_support/intel/intel_byte_enable_ram.sv diff --git a/core/xilinx/cva5_wrapper_xilinx.sv b/core/common_components/vendor_support/xilinx/cva5_wrapper_xilinx.sv similarity index 100% rename from core/xilinx/cva5_wrapper_xilinx.sv rename to core/common_components/vendor_support/xilinx/cva5_wrapper_xilinx.sv diff --git a/core/xilinx/xilinx_byte_enable_ram.sv b/core/common_components/vendor_support/xilinx/xilinx_byte_enable_ram.sv similarity index 100% rename from core/xilinx/xilinx_byte_enable_ram.sv rename to core/common_components/vendor_support/xilinx/xilinx_byte_enable_ram.sv diff --git a/core/alu_unit.sv b/core/execution_units/alu_unit.sv similarity index 100% rename from core/alu_unit.sv rename to core/execution_units/alu_unit.sv diff --git a/core/barrel_shifter.sv b/core/execution_units/barrel_shifter.sv similarity index 100% rename from core/barrel_shifter.sv rename to core/execution_units/barrel_shifter.sv diff --git a/core/branch_comparator.sv b/core/execution_units/branch_comparator.sv similarity index 100% rename from core/branch_comparator.sv rename to core/execution_units/branch_comparator.sv diff --git a/core/branch_unit.sv b/core/execution_units/branch_unit.sv similarity index 100% rename from core/branch_unit.sv rename to core/execution_units/branch_unit.sv diff --git a/core/csr_unit.sv b/core/execution_units/csr_unit.sv similarity index 100% rename from core/csr_unit.sv rename to core/execution_units/csr_unit.sv diff --git a/core/custom_unit.sv b/core/execution_units/custom_unit.sv similarity index 100% rename from core/custom_unit.sv rename to core/execution_units/custom_unit.sv diff --git a/core/div_core.sv b/core/execution_units/div_core.sv similarity index 100% rename from core/div_core.sv rename to core/execution_units/div_core.sv diff --git a/core/div_unit.sv b/core/execution_units/div_unit.sv similarity index 100% rename from core/div_unit.sv rename to core/execution_units/div_unit.sv diff --git a/core/gc_unit.sv b/core/execution_units/gc_unit.sv similarity index 100% rename from core/gc_unit.sv rename to core/execution_units/gc_unit.sv diff --git a/core/addr_hash.sv b/core/execution_units/load_store_unit/addr_hash.sv similarity index 100% rename from core/addr_hash.sv rename to core/execution_units/load_store_unit/addr_hash.sv diff --git a/core/amo_alu.sv b/core/execution_units/load_store_unit/amo_alu.sv similarity index 100% rename from core/amo_alu.sv rename to core/execution_units/load_store_unit/amo_alu.sv diff --git a/core/dcache.sv b/core/execution_units/load_store_unit/dcache.sv similarity index 100% rename from core/dcache.sv rename to core/execution_units/load_store_unit/dcache.sv diff --git a/core/dcache_tag_banks.sv b/core/execution_units/load_store_unit/dcache_tag_banks.sv similarity index 100% rename from core/dcache_tag_banks.sv rename to core/execution_units/load_store_unit/dcache_tag_banks.sv diff --git a/core/load_store_queue.sv b/core/execution_units/load_store_unit/load_store_queue.sv similarity index 100% rename from core/load_store_queue.sv rename to core/execution_units/load_store_unit/load_store_queue.sv diff --git a/core/load_store_unit.sv b/core/execution_units/load_store_unit/load_store_unit.sv similarity index 100% rename from core/load_store_unit.sv rename to core/execution_units/load_store_unit/load_store_unit.sv diff --git a/core/store_queue.sv b/core/execution_units/load_store_unit/store_queue.sv similarity index 100% rename from core/store_queue.sv rename to core/execution_units/load_store_unit/store_queue.sv diff --git a/core/mul_unit.sv b/core/execution_units/mul_unit.sv similarity index 100% rename from core/mul_unit.sv rename to core/execution_units/mul_unit.sv diff --git a/core/branch_predictor.sv b/core/fetch_stage/branch_predictor.sv similarity index 100% rename from core/branch_predictor.sv rename to core/fetch_stage/branch_predictor.sv diff --git a/core/branch_predictor_ram.sv b/core/fetch_stage/branch_predictor_ram.sv similarity index 100% rename from core/branch_predictor_ram.sv rename to core/fetch_stage/branch_predictor_ram.sv diff --git a/core/fetch.sv b/core/fetch_stage/fetch.sv similarity index 100% rename from core/fetch.sv rename to core/fetch_stage/fetch.sv diff --git a/core/icache.sv b/core/fetch_stage/icache.sv similarity index 100% rename from core/icache.sv rename to core/fetch_stage/icache.sv diff --git a/core/icache_tag_banks.sv b/core/fetch_stage/icache_tag_banks.sv similarity index 100% rename from core/icache_tag_banks.sv rename to core/fetch_stage/icache_tag_banks.sv diff --git a/core/ras.sv b/core/fetch_stage/ras.sv similarity index 100% rename from core/ras.sv rename to core/fetch_stage/ras.sv diff --git a/core/tag_bank.sv b/core/fetch_stage/tag_bank.sv similarity index 100% rename from core/tag_bank.sv rename to core/fetch_stage/tag_bank.sv diff --git a/core/avalon_master.sv b/core/memory_sub_units/avalon_master.sv similarity index 100% rename from core/avalon_master.sv rename to core/memory_sub_units/avalon_master.sv diff --git a/core/axi_master.sv b/core/memory_sub_units/axi_master.sv similarity index 100% rename from core/axi_master.sv rename to core/memory_sub_units/axi_master.sv diff --git a/core/local_mem_sub_unit.sv b/core/memory_sub_units/local_mem_sub_unit.sv similarity index 100% rename from core/local_mem_sub_unit.sv rename to core/memory_sub_units/local_mem_sub_unit.sv diff --git a/core/wishbone_master.sv b/core/memory_sub_units/wishbone_master.sv similarity index 100% rename from core/wishbone_master.sv rename to core/memory_sub_units/wishbone_master.sv diff --git a/core/csr_types.sv b/core/types_and_interfaces/csr_types.sv similarity index 100% rename from core/csr_types.sv rename to core/types_and_interfaces/csr_types.sv diff --git a/core/cva5_config.sv b/core/types_and_interfaces/cva5_config.sv similarity index 98% rename from core/cva5_config.sv rename to core/types_and_interfaces/cva5_config.sv index d8c767d..1bc7976 100755 --- a/core/cva5_config.sv +++ b/core/types_and_interfaces/cva5_config.sv @@ -157,8 +157,8 @@ package cva5_config; localparam cpu_config_t EXAMPLE_CONFIG = '{ //ISA options INCLUDE_M_MODE : 1, - INCLUDE_S_MODE : 1, - INCLUDE_U_MODE : 1, + INCLUDE_S_MODE : 0, + INCLUDE_U_MODE : 0, INCLUDE_MUL : 1, INCLUDE_DIV : 1, INCLUDE_IFENCE : 1, @@ -173,10 +173,10 @@ package cva5_config; RESET_MTVEC : 32'h80000100, NON_STANDARD_OPTIONS : '{ COUNTER_W : 33, - MCYCLE_WRITEABLE : 1, - MINSTR_WRITEABLE : 1, + MCYCLE_WRITEABLE : 0, + MINSTR_WRITEABLE : 0, MTVEC_WRITEABLE : 1, - INCLUDE_MSCRATCH : 1, + INCLUDE_MSCRATCH : 0, INCLUDE_MCAUSE : 1, INCLUDE_MTVAL : 1 } diff --git a/core/cva5_types.sv b/core/types_and_interfaces/cva5_types.sv similarity index 100% rename from core/cva5_types.sv rename to core/types_and_interfaces/cva5_types.sv diff --git a/core/external_interfaces.sv b/core/types_and_interfaces/external_interfaces.sv similarity index 100% rename from core/external_interfaces.sv rename to core/types_and_interfaces/external_interfaces.sv diff --git a/core/internal_interfaces.sv b/core/types_and_interfaces/internal_interfaces.sv similarity index 100% rename from core/internal_interfaces.sv rename to core/types_and_interfaces/internal_interfaces.sv diff --git a/core/opcodes.sv b/core/types_and_interfaces/opcodes.sv similarity index 100% rename from core/opcodes.sv rename to core/types_and_interfaces/opcodes.sv diff --git a/core/riscv_types.sv b/core/types_and_interfaces/riscv_types.sv similarity index 100% rename from core/riscv_types.sv rename to core/types_and_interfaces/riscv_types.sv diff --git a/examples/nexys/scripts/cva5-ip-core-base.tcl b/examples/nexys/scripts/cva5-ip-core-base.tcl index 7522438..e810b9f 100644 --- a/examples/nexys/scripts/cva5-ip-core-base.tcl +++ b/examples/nexys/scripts/cva5-ip-core-base.tcl @@ -28,11 +28,11 @@ if {[string equal [get_filesets -quiet sources_1] ""]} { import_files -norecurse $sources_dir/examples/nexys/nexys_wrapper.sv import_files -norecurse $sources_dir/l2_arbiter/l2_external_interfaces.sv import_files -norecurse $sources_dir/local_memory/local_memory_interface.sv -import_files -norecurse $sources_dir/core/external_interfaces.sv -import_files -norecurse $sources_dir/core/cva5_config.sv -import_files -norecurse $sources_dir/core/riscv_types.sv -import_files -norecurse $sources_dir/core/cva5_types.sv -import_files -norecurse $sources_dir/core/csr_types.sv +import_files -norecurse $sources_dir/core/types_and_interfaces/external_interfaces.sv +import_files -norecurse $sources_dir/core/types_and_interfaces/cva5_config.sv +import_files -norecurse $sources_dir/core/types_and_interfaces/riscv_types.sv +import_files -norecurse $sources_dir/core/types_and_interfaces/cva5_types.sv +import_files -norecurse $sources_dir/core/types_and_interfaces/csr_types.sv import_files -norecurse $sources_dir/l2_arbiter/l2_config_and_types.sv # Set IP repository paths diff --git a/core/axi_to_arb.sv b/l2_arbiter/axi_to_arb.sv similarity index 100% rename from core/axi_to_arb.sv rename to l2_arbiter/axi_to_arb.sv diff --git a/scripts/xilinx/cva5_wrapper_IP.tcl b/scripts/xilinx/cva5_wrapper_IP.tcl index 7f71b0c..a1b4f66 100644 --- a/scripts/xilinx/cva5_wrapper_IP.tcl +++ b/scripts/xilinx/cva5_wrapper_IP.tcl @@ -117,14 +117,14 @@ if {[string equal [get_filesets -quiet sources_1] ""]} { #import_files -fileset [get_filesets sources_1] $origin_dir/l2_arbiter #import_files -fileset [get_filesets sources_1] $origin_dir/local_memory -import_files -norecurse $origin_dir/../../core/xilinx/cva5_wrapper_xilinx.sv -force +import_files -norecurse $origin_dir/../../core/common_components/vendor_support/xilinx/cva5_wrapper_xilinx.sv -force import_files -norecurse $origin_dir/../../l2_arbiter/l2_external_interfaces.sv -force import_files -norecurse $origin_dir/../../local_memory/local_memory_interface.sv -force -import_files -norecurse $origin_dir/../../core/external_interfaces.sv -force -import_files -norecurse $origin_dir/../../core/cva5_config.sv -force -import_files -norecurse $origin_dir/../../core/riscv_types.sv -force -import_files -norecurse $origin_dir/../../core/cva5_types.sv -force -import_files -norecurse $origin_dir/../../core/csr_types.sv -force +import_files -norecurse $origin_dir/../../core/types_and_interfaces/external_interfaces.sv -force +import_files -norecurse $origin_dir/../../core/types_and_interfaces/cva5_config.sv -force +import_files -norecurse $origin_dir/../../core/types_and_interfaces/riscv_types.sv -force +import_files -norecurse $origin_dir/../../core/types_and_interfaces/cva5_types.sv -force +import_files -norecurse $origin_dir/../../core/types_and_interfaces/csr_types.sv -force import_files -norecurse $origin_dir/../../l2_arbiter/l2_config_and_types.sv -force # Set IP repository paths diff --git a/tools/compile_order b/tools/compile_order index af96faa..2699fa1 100644 --- a/tools/compile_order +++ b/tools/compile_order @@ -1,94 +1,90 @@ -core/cva5_config.sv -core/riscv_types.sv -core/csr_types.sv -core/cva5_types.sv -core/opcodes.sv +core/types_and_interfaces/cva5_config.sv +core/types_and_interfaces/riscv_types.sv +core/types_and_interfaces/csr_types.sv +core/types_and_interfaces/cva5_types.sv +core/types_and_interfaces/opcodes.sv -l2_arbiter/l2_config_and_types.sv +l2_arbiter/l2_config_and_types.sv l2_arbiter/l2_interfaces.sv l2_arbiter/l2_external_interfaces.sv -local_memory/local_memory_interface.sv +local_memory/local_memory_interface.sv local_memory/local_mem.sv -core/internal_interfaces.sv -core/external_interfaces.sv +core/types_and_interfaces/internal_interfaces.sv +core/types_and_interfaces/external_interfaces.sv -core/lutrams/lutram_1w_1r.sv -core/lutrams/lutram_1w_mr.sv +core/common_components/lutram_1w_1r.sv +core/common_components/lutram_1w_mr.sv +core/common_components/set_clr_reg_with_rst.sv +core/common_components/one_hot_to_integer.sv +core/common_components/cycler.sv +core/common_components/lfsr.sv +core/common_components/cva5_fifo.sv +core/common_components/priority_encoder.sv +core/common_components/toggle_memory.sv +core/common_components/toggle_memory_set.sv -core/set_clr_reg_with_rst.sv -core/one_hot_to_integer.sv -core/cycler.sv -core/lfsr.sv -core/cva5_fifo.sv -core/priority_encoder.sv +core/common_components/vendor_support/intel/intel_byte_enable_ram.sv +core/common_components/vendor_support/xilinx/xilinx_byte_enable_ram.sv +core/common_components/byte_en_BRAM.sv -core/toggle_memory.sv -core/toggle_memory_set.sv +core/execution_units/csr_unit.sv +core/execution_units/gc_unit.sv -core/intel/intel_byte_enable_ram.sv -core/xilinx/xilinx_byte_enable_ram.sv -core/byte_en_BRAM.sv +core/execution_units/branch_comparator.sv +core/execution_units/branch_unit.sv -core/csr_unit.sv -core/gc_unit.sv +core/execution_units/barrel_shifter.sv +core/execution_units/alu_unit.sv -core/branch_comparator.sv -core/branch_unit.sv +core/memory_sub_units/local_mem_sub_unit.sv +core/memory_sub_units/axi_master.sv +core/memory_sub_units/avalon_master.sv +core/memory_sub_units/wishbone_master.sv -core/barrel_shifter.sv -core/alu_unit.sv +core/execution_units/load_store_unit/dcache_tag_banks.sv +core/execution_units/load_store_unit/amo_alu.sv +core/execution_units/load_store_unit/dcache.sv +core/execution_units/load_store_unit/addr_hash.sv +core/execution_units/load_store_unit/store_queue.sv +core/execution_units/load_store_unit/load_store_queue.sv +core/execution_units/load_store_unit/load_store_unit.sv -core/local_mem_sub_unit.sv -core/axi_master.sv -core/avalon_master.sv -core/wishbone_master.sv +core/execution_units/mul_unit.sv +core/execution_units/custom_unit.sv -core/tag_bank.sv -core/dcache_tag_banks.sv -core/amo_alu.sv -core/dcache.sv -core/addr_hash.sv -core/store_queue.sv -core/load_store_queue.sv -core/load_store_unit.sv +core/common_components/clz.sv +core/execution_units/div_core.sv +core/execution_units/div_unit.sv -core/icache_tag_banks.sv -core/icache.sv +core/fetch_stage/ras.sv +core/fetch_stage/branch_predictor_ram.sv +core/fetch_stage/branch_predictor.sv +core/fetch_stage/tag_bank.sv +core/fetch_stage/icache_tag_banks.sv +core/fetch_stage/icache.sv +core/fetch_stage/fetch.sv -core/clz.sv -core/div_core.sv -core/div_unit.sv +core/instruction_metadata_and_id_management.sv -core/tlb_lut_ram.sv -core/mmu.sv - -core/mul_unit.sv - -core/custom_unit.sv - -core/ras.sv -core/branch_predictor_ram.sv -core/branch_predictor.sv -core/fetch.sv +core/tlb_lut_ram.sv +core/mmu.sv core/decode_and_issue.sv core/register_free_list.sv core/renamer.sv core/register_file.sv + core/writeback.sv +core/l1_arbiter.sv + l2_arbiter/l2_fifo.sv l2_arbiter/l2_reservation_logic.sv l2_arbiter/l2_round_robin.sv l2_arbiter/l2_arbiter.sv -core/axi_to_arb.sv - -core/instruction_metadata_and_id_management.sv - -core/l1_arbiter.sv - -core/cva5.sv +l2_arbiter/axi_to_arb.sv +core/cva5.sv \ No newline at end of file