aboutsummaryrefslogtreecommitdiff
path: root/rv64cpu/tb/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'rv64cpu/tb/CMakeLists.txt')
-rw-r--r--rv64cpu/tb/CMakeLists.txt275
1 files changed, 0 insertions, 275 deletions
diff --git a/rv64cpu/tb/CMakeLists.txt b/rv64cpu/tb/CMakeLists.txt
deleted file mode 100644
index 33a6224..0000000
--- a/rv64cpu/tb/CMakeLists.txt
+++ /dev/null
@@ -1,275 +0,0 @@
-# ─── Testbench CMake ──────────────────────────────────────────────────────────────
-#
-# Each testbench is registered as a Verilator simulation target + CTest.
-#
-# To add a new unit test, call:
-# add_verilator_target(
-# NAME tb_<module>
-# TOP_MODULE <module>
-# SOURCES ${RTL_CORE_DIR}/<module>.sv [... dependencies ...]
-# INCLUDE_DIRS ${RTL_INCLUDE_DIR}
-# TB_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/unit/tb_<module>.cpp
-# )
-#
-
-enable_testing()
-
-# ─── Collect common RTL include dirs ─────────────────────────────────────────────
-set(RTL_COMMON_INCLUDES
- ${RTL_INCLUDE_DIR}
-)
-
-# ─── Collect all RTL sources for SoC-level sim ───────────────────────────────────
-file(GLOB_RECURSE ALL_RTL_SOURCES
- ${RTL_DIR}/*.sv
-)
-
-# ═══════════════════════════════════════════════════════════════════════════════════
-# Unit Tests
-# ═══════════════════════════════════════════════════════════════════════════════════
-#
-# Uncomment and fill in as you implement each module, for example:
-#
-add_verilator_target(
- NAME tb_alu
- TOP_MODULE alu
- SOURCES ${RTL_CORE_DIR}/include/rv64_pkg.sv
- ${RTL_CORE_DIR}/alu.sv
- INCLUDE_DIRS ${RTL_COMMON_INCLUDES}
- TB_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/unit/tb_alu.cc
-)
-
-add_verilator_target(
- NAME tb_decoder
- TOP_MODULE decoder
- SOURCES ${RTL_CORE_DIR}/include/rv64_pkg.sv
- ${RTL_CORE_DIR}/decoder.sv
- INCLUDE_DIRS ${RTL_COMMON_INCLUDES}
- TB_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/unit/tb_decoder.cc
-)
-
-add_verilator_target(
- NAME tb_regfile
- TOP_MODULE regfile
- SOURCES ${RTL_CORE_DIR}/include/rv64_pkg.sv
- ${RTL_CORE_DIR}/regfile.sv
- INCLUDE_DIRS ${RTL_COMMON_INCLUDES}
- TB_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/unit/tb_regfile.cc
-)
-
-add_verilator_target(
- NAME tb_branch
- TOP_MODULE branch_unit
- SOURCES ${RTL_CORE_DIR}/include/rv64_pkg.sv
- ${RTL_CORE_DIR}/branch_unit.sv
- INCLUDE_DIRS ${RTL_COMMON_INCLUDES}
- TB_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/unit/tb_branch.cc
-)
-
-add_verilator_target(
- NAME tb_if_stage
- TOP_MODULE if_stage
- SOURCES ${RTL_CORE_DIR}/include/rv64_pkg.sv
- ${RTL_CORE_DIR}/if_stage.sv
- INCLUDE_DIRS ${RTL_COMMON_INCLUDES}
- TB_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/unit/tb_if_stage.cc
-)
-
-add_verilator_target(
- NAME tb_id_stage
- TOP_MODULE id_stage
- SOURCES ${RTL_CORE_DIR}/include/rv64_pkg.sv
- ${RTL_CORE_DIR}/decoder.sv
- ${RTL_CORE_DIR}/regfile.sv
- ${RTL_CORE_DIR}/fp_regfile.sv
- ${RTL_CORE_DIR}/id_stage.sv
- INCLUDE_DIRS ${RTL_COMMON_INCLUDES}
- TB_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/unit/tb_id_stage.cc
-)
-
-add_verilator_target(
- NAME tb_if_id_reg
- TOP_MODULE if_id_reg
- SOURCES ${RTL_CORE_DIR}/include/rv64_pkg.sv
- ${RTL_CORE_DIR}/if_id_reg.sv
- INCLUDE_DIRS ${RTL_COMMON_INCLUDES}
- TB_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/unit/tb_if_id_reg.cc
-)
-
-add_verilator_target(
- NAME tb_id_ex_reg
- TOP_MODULE id_ex_reg
- SOURCES ${RTL_CORE_DIR}/include/rv64_pkg.sv
- ${RTL_CORE_DIR}/id_ex_reg.sv
- INCLUDE_DIRS ${RTL_COMMON_INCLUDES}
- TB_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/unit/tb_id_ex_reg.cc
-)
-
-add_verilator_target(
- NAME tb_ex_stage
- TOP_MODULE ex_stage
- SOURCES ${RTL_CORE_DIR}/include/rv64_pkg.sv
- ${RTL_CORE_DIR}/alu.sv
- ${RTL_CORE_DIR}/branch_unit.sv
- ${RTL_CORE_DIR}/ex_stage.sv
- INCLUDE_DIRS ${RTL_COMMON_INCLUDES}
- TB_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/unit/tb_ex_stage.cc
-)
-
-add_verilator_target(
- NAME tb_ex_mem_reg
- TOP_MODULE ex_mem_reg
- SOURCES ${RTL_CORE_DIR}/include/rv64_pkg.sv
- ${RTL_CORE_DIR}/ex_mem_reg.sv
- INCLUDE_DIRS ${RTL_COMMON_INCLUDES}
- TB_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/unit/tb_ex_mem_reg.cc
-)
-
-add_verilator_target(
- NAME tb_mem_stage
- TOP_MODULE mem_stage
- SOURCES ${RTL_CORE_DIR}/include/rv64_pkg.sv
- ${RTL_CORE_DIR}/mem_stage.sv
- INCLUDE_DIRS ${RTL_COMMON_INCLUDES}
- TB_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/unit/tb_mem_stage.cc
-)
-
-add_verilator_target(
- NAME tb_mem_wb_reg
- TOP_MODULE mem_wb_reg
- SOURCES ${RTL_CORE_DIR}/include/rv64_pkg.sv
- ${RTL_CORE_DIR}/mem_wb_reg.sv
- INCLUDE_DIRS ${RTL_COMMON_INCLUDES}
- TB_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/unit/tb_mem_wb_reg.cc
-)
-
-add_verilator_target(
- NAME tb_wb_stage
- TOP_MODULE wb_stage
- SOURCES ${RTL_CORE_DIR}/include/rv64_pkg.sv
- ${RTL_CORE_DIR}/wb_stage.sv
- INCLUDE_DIRS ${RTL_COMMON_INCLUDES}
- TB_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/unit/tb_wb_stage.cc
-)
-
-add_verilator_target(
- NAME tb_hazard_unit
- TOP_MODULE hazard_unit
- SOURCES ${RTL_CORE_DIR}/include/rv64_pkg.sv
- ${RTL_CORE_DIR}/hazard_unit.sv
- INCLUDE_DIRS ${RTL_COMMON_INCLUDES}
- TB_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/unit/tb_hazard_unit.cc
-)
-
-add_verilator_target(
- NAME tb_trap_ctrl
- TOP_MODULE trap_ctrl
- SOURCES ${RTL_CORE_DIR}/include/rv64_pkg.sv
- ${RTL_CORE_DIR}/include/csr_pkg.sv
- ${RTL_CORE_DIR}/trap_ctrl.sv
- INCLUDE_DIRS ${RTL_COMMON_INCLUDES}
- TB_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/unit/tb_trap_ctrl.cc
-)
-#
-add_verilator_target(
- NAME tb_csr
- TOP_MODULE csr_unit
- SOURCES ${RTL_CORE_DIR}/include/rv64_pkg.sv
- ${RTL_CORE_DIR}/include/csr_pkg.sv
- ${RTL_CORE_DIR}/csr_unit.sv
- INCLUDE_DIRS ${RTL_COMMON_INCLUDES}
- TB_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/unit/tb_csr.cc
-)
-
-add_verilator_target(
- NAME tb_tlb
- TOP_MODULE tlb
- SOURCES ${RTL_CORE_DIR}/include/rv64_pkg.sv
- ${RTL_CORE_DIR}/mmu/tlb.sv
- INCLUDE_DIRS ${RTL_COMMON_INCLUDES}
- TB_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/unit/tb_tlb.cc
-)
-
-add_verilator_target(
- NAME tb_ptw
- TOP_MODULE ptw
- SOURCES ${RTL_CORE_DIR}/include/rv64_pkg.sv
- ${RTL_CORE_DIR}/mmu/ptw.sv
- INCLUDE_DIRS ${RTL_COMMON_INCLUDES}
- TB_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/unit/tb_ptw.cc
-)
-
-add_verilator_target(
- NAME tb_mmu_top
- TOP_MODULE mmu_top
- SOURCES ${RTL_CORE_DIR}/include/rv64_pkg.sv
- ${RTL_CORE_DIR}/mmu/tlb.sv
- ${RTL_CORE_DIR}/mmu/ptw.sv
- ${RTL_CORE_DIR}/mmu/mmu_top.sv
- INCLUDE_DIRS ${RTL_COMMON_INCLUDES}
- TB_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/unit/tb_mmu_top.cc
- EXTRA_FLAGS -Wno-VARHIDDEN
-)
-
-# ═══════════════════════════════════════════════════════════════════════════════════
-# Core Integration Test
-# ═══════════════════════════════════════════════════════════════════════════════════
-
-add_verilator_target(
- NAME tb_core
- TOP_MODULE richard_core
- SOURCES ${RTL_CORE_DIR}/include/rv64_pkg.sv
- ${RTL_CORE_DIR}/alu.sv
- ${RTL_CORE_DIR}/branch_unit.sv
- ${RTL_CORE_DIR}/compressed_decoder.sv
- ${RTL_CORE_DIR}/decoder.sv
- ${RTL_CORE_DIR}/regfile.sv
- ${RTL_CORE_DIR}/fp_regfile.sv
- ${RTL_CORE_DIR}/if_stage.sv
- ${RTL_CORE_DIR}/if_id_reg.sv
- ${RTL_CORE_DIR}/id_stage.sv
- ${RTL_CORE_DIR}/id_ex_reg.sv
- ${RTL_CORE_DIR}/ex_stage.sv
- ${RTL_CORE_DIR}/fpu/fpu_unit.sv
- ${RTL_CORE_DIR}/ex_mem_reg.sv
- ${RTL_CORE_DIR}/mem_stage.sv
- ${RTL_CORE_DIR}/mem_wb_reg.sv
- ${RTL_CORE_DIR}/wb_stage.sv
- ${RTL_CORE_DIR}/hazard_unit.sv
- ${RTL_CORE_DIR}/include/csr_pkg.sv
- ${RTL_CORE_DIR}/csr_unit.sv
- ${RTL_CORE_DIR}/pmp_checker.sv
- ${RTL_CORE_DIR}/mmu/tlb.sv
- ${RTL_CORE_DIR}/mmu/ptw.sv
- ${RTL_CORE_DIR}/mmu/mmu_top.sv
- ${RTL_CORE_DIR}/trap_ctrl.sv
- ${RTL_CORE_DIR}/richard_core.sv
- INCLUDE_DIRS ${RTL_COMMON_INCLUDES}
- TB_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/core/tb_core.cc
- EXTRA_FLAGS -Wno-PINCONNECTEMPTY
-)
-
-add_test(NAME tb_core_delegation COMMAND $<TARGET_FILE:tb_core> --case mret_sret_redirect)
-add_test(NAME tb_core_interrupt_priority COMMAND $<TARGET_FILE:tb_core> --case branch_interrupt_priority)
-add_test(NAME tb_core_double_exception COMMAND $<TARGET_FILE:tb_core> --case double_exception_flush)
-add_test(NAME tb_core_mem_fault COMMAND $<TARGET_FILE:tb_core> --case mem_fault_pipeline)
-add_test(NAME tb_core_mie_masking COMMAND $<TARGET_FILE:tb_core> --case mie_masking_response)
-
-# ═══════════════════════════════════════════════════════════════════════════════════
-# SoC Integration Test
-# ═══════════════════════════════════════════════════════════════════════════════════
-#
-# add_verilator_target(
-# NAME tb_soc
-# TOP_MODULE richard_soc
-# SOURCES ${ALL_RTL_SOURCES}
-# INCLUDE_DIRS ${RTL_COMMON_INCLUDES}
-# TB_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/soc/tb_soc.cc
-# EXTRA_FLAGS --threads 2
-# )
-
-# ═══════════════════════════════════════════════════════════════════════════════════
-# Compliance Tests
-# ═══════════════════════════════════════════════════════════════════════════════════
-
-add_subdirectory(compliance)