diff --git a/.github/workflows/simulate-with-verilator.yml b/.github/workflows/ci-config.yml
similarity index 80%
rename from .github/workflows/simulate-with-verilator.yml
rename to .github/workflows/ci-config.yml
index 6870def..85f76e5 100644
--- a/.github/workflows/simulate-with-verilator.yml
+++ b/.github/workflows/ci-config.yml
@@ -1,10 +1,10 @@
-name: Simulated testing using verilator
+name: ECAP5-DPROC continuous integration
on:
push:
- branches: [ "main" ]
+ branches: [ "main", "release/**" ]
pull_request:
- branches: [ "main" ]
+ branches: [ "main", "release/**" ]
permissions:
actions: write
@@ -14,7 +14,7 @@ env:
BUILD_TYPE: Release
REPORT_ARTIFACT_NAME: ecap5-dproc-report-${{github.run_number}}-${{github.run_attempt}}
DOCUMENTATION_ARTIFACT_NAME: ecap5-dproc-docs-${{github.run_number}}-${{github.run_attempt}}
- BUILD_CACHE_KEY: build-directory-${{ github.run_id }}-${{ github.run_attempt }}
+ BUILD_CACHE_KEY: simulation-build-directory-${{ github.run_id }}-${{ github.run_attempt }}
jobs:
prepare:
@@ -24,7 +24,11 @@ jobs:
- uses: actions/checkout@v4.1.1
- name: Configure CMake
- run: cmake -B ${{github.workspace}}/build -GNinja
+ run: cmake -B ${{github.workspace}}/build -GNinja -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} 2>&1 | tee ${{github.workspace}}/cmake.log
+
+ - name: Check versions
+ if: github.event.pull_request.base.ref == 'main'
+ run: (! grep -e "Using .* with unreleased version" ${{github.workspace}}/cmake.log)
- name: Cache build directory
if: always()
@@ -113,9 +117,43 @@ jobs:
path: ${{ env.cache-folder-path }}
key: ${{ runner.os }}-${{env.BUILD_CACHE_KEY}}
- report:
+ synthesis:
runs-on: self-hosted
needs: simulate
+
+ steps:
+ - uses: actions/checkout@v4.1.1
+
+ - name: Import build directory
+ id: import-build
+ uses: actions/cache/restore@v4.3.0
+ env:
+ cache-folder-path: ${{github.workspace}}/build
+ with:
+ path: ${{ env.cache-folder-path }}
+ key: ${{ runner.os }}-${{env.BUILD_CACHE_KEY}}
+
+ - name: Synthesis
+ run: ninja -C ${{github.workspace}}/build synth
+
+ - name: Delete Previous Cache
+ if: ${{ always() && steps.import-build.outputs.cache-hit == 'true'}}
+ run: gh cache delete "${{ runner.os }}-${{env.BUILD_CACHE_KEY}}"
+ env:
+ GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+
+ - name: Cache build directory
+ if: always()
+ uses: actions/cache/save@v4.3.0
+ env:
+ cache-folder-path: ${{github.workspace}}/build
+ with:
+ path: ${{ env.cache-folder-path }}
+ key: ${{ runner.os }}-${{env.BUILD_CACHE_KEY}}
+
+ report:
+ runs-on: self-hosted
+ needs: synthesis
if: always()
steps:
@@ -164,16 +202,17 @@ jobs:
uses: exuanbo/actions-deploy-gist@v1.1.4
with:
token: ${{ secrets.GIST_SECRET }}
- gist_id: 32195ea7fa70c0218ef3f9952504c59e
+ gist_id: f525ce32a8951303b0892d98a54b8d66
file_path: build/test-result-badge.json
file_type: text
+
- name: Upload traceability result badge
if: ${{ always() && github.ref == 'refs/heads/main' }}
uses: exuanbo/actions-deploy-gist@v1.1.4
with:
token: ${{ secrets.GIST_SECRET }}
- gist_id: 32195ea7fa70c0218ef3f9952504c59e
+ gist_id: f525ce32a8951303b0892d98a54b8d66
file_path: build/traceability-result-badge.json
file_type: text
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 387b144..c2a4d6f 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -19,16 +19,15 @@
# You should have received a copy of the GNU General Public License
# along with ECAP5-DPROC. If not, see .
-cmake_minimum_required(VERSION 3.12)
+cmake_minimum_required(VERSION 3.21)
include(FetchContent)
-project(ECAP5_DPROC VERSION 1.0.0)
+project(ECAP5_DPROC)
set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/cmake")
set(CMAKE_PREFIX_PATH "${CMAKE_CURRENT_LIST_DIR}/cmake")
# Create python virtual env
-message(STATUS "Creating python venv")
set(VENV_DIR ${CMAKE_BINARY_DIR}/venv)
if(NOT EXISTS "${VENV_DIR}")
find_package(Python3 COMPONENTS Interpreter)
@@ -41,37 +40,71 @@ find_package(Python3 COMPONENTS Interpreter Development)
# Dependencies
-message(STATUS "Collecting dependencies")
include(${CMAKE_CURRENT_LIST_DIR}/cmake/dependency.cmake)
-add_dependency(ECAP5_TREQ
+add_dependency(
+ GIT ecap5/sphinx-cmake
+ TAG tags/v1.0.1)
+
+add_dependency(
+ GIT ecap5/verilator-cmake
+ TAG tags/v1.1.0)
+
+add_dependency(
GIT ecap5/ecap5-treq
- TAG tags/v2.3.1
+ TAG tags/v3.0.0
BINARY ecap5-treq)
-add_dependency(ECAP5_DTESTLIB
+add_dependency(
+ GIT ecap5/oss-cad-suite-cmake
+ TAG tags/v2.0.0)
+
+add_dependency(
GIT ecap5/ecap5-dtestlib
- TAG tags/v1.0.0)
+ TAG tags/v1.1.0)
-add_dependency(riscv-tests
+add_dependency(
GIT ecap5/riscv-tests
- TAG master)
+ TAG tags/v1.0.0)
-add_dependency(sphinx-cmake
- GIT ecap5/sphinx-cmake
- TAG tags/v1.0.1)
+# Define an interface library
+add_library(ecap5_dproc INTERFACE)
+target_sources(ecap5_dproc INTERFACE
+ ${CMAKE_CURRENT_LIST_DIR}/src/include/ecap5_dproc_pkg.svh
+ ${CMAKE_CURRENT_LIST_DIR}/src/include/riscv_pkg.svh
+ ${CMAKE_CURRENT_LIST_DIR}/src/ecap5_dproc.sv
+ ${CMAKE_CURRENT_LIST_DIR}/src/decode.sv
+ ${CMAKE_CURRENT_LIST_DIR}/src/execute.sv
+ ${CMAKE_CURRENT_LIST_DIR}/src/fetch.sv
+ ${CMAKE_CURRENT_LIST_DIR}/src/hazard.sv
+ ${CMAKE_CURRENT_LIST_DIR}/src/loadstore.sv
+ ${CMAKE_CURRENT_LIST_DIR}/src/memory.sv
+ ${CMAKE_CURRENT_LIST_DIR}/src/registers.sv
+ ${CMAKE_CURRENT_LIST_DIR}/src/writeback.sv
+)
-add_dependency(verilator-cmake
- GIT ecap5/verilator-cmake
- TAG tags/v1.0.1)
+if(PROJECT_IS_TOP_LEVEL)
+ # Configure dependencies
+
+ include(${ecap5_verilator_cmake_SOURCE_DIR}/cmake/verilator-config.cmake)
+ include(${ecap5_ecap5_treq_SOURCE_DIR}/config.cmake)
+ list(APPEND CMAKE_MODULE_PATH "${ecap5_sphinx_cmake_SOURCE_DIR}/cmake")
+ include(${ecap5_oss_cad_suite_cmake_SOURCE_DIR}/cmake/oss-cad-suite-config.cmake)
+ include(${ecap5_ecap5_dtestlib_SOURCE_DIR}/cmake/testbench.cmake)
+ include(${ecap5_ecap5_dtestlib_SOURCE_DIR}/cmake/lint.cmake)
-# Configure dependencies
+ # Include subdirectories
-include(${verilator_cmake_SOURCE_DIR}/cmake/verilator-config.cmake)
-include(${ecap5_treq_SOURCE_DIR}/config.cmake)
-list(APPEND CMAKE_MODULE_PATH "${sphinx_cmake_SOURCE_DIR}/cmake")
+ add_subdirectory(docs)
+ add_subdirectory(tests)
-# Include subdirectories
+ # Synthesis
-add_subdirectory(docs)
-add_subdirectory(tests)
+ add_synthesis_target(
+ LIB ecap5_dproc
+ TOP_MODULE ecap5_dproc
+ TARGET_FPGA ecp5
+ OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/synth.json)
+
+ add_custom_target(synth DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/synth.json)
+endif()
diff --git a/cmake/dependency.cmake b/cmake/dependency.cmake
index c82ee15..60e913a 100644
--- a/cmake/dependency.cmake
+++ b/cmake/dependency.cmake
@@ -1,26 +1,57 @@
-macro(add_dependency id)
+macro(add_dependency)
cmake_parse_arguments(ARG ""
"GIT;TAG;BINARY"
""
${ARGN})
- string(MAKE_C_IDENTIFIER "${id}" name)
- string(TOLOWER "${name}" name)
-
- FetchContent_Declare(${name}
- GIT_REPOSITORY https://github.com/${ARG_GIT}
- GIT_TAG ${ARG_TAG}
- SOURCE_SUBDIR __none__
- )
- FetchContent_MakeAvailable(${name})
-
- if(NOT DEFINED ${name}_EXECUTABLE)
- if(EXISTS "${${name}_SOURCE_DIR}/pyproject.toml")
- message(STATUS "Configuring ${name}")
- execute_process(COMMAND ${Python3_EXECUTABLE} -m pip install -e ${${name}_SOURCE_DIR} OUTPUT_QUIET RESULT_VARIABLE rv)
- if("${rv}" STREQUAL "0")
- set(${name}_EXECUTABLE ${VENV_DIR}/bin/${ARG_BINARY} CACHE STRING "path to the ${name} executable")
+ set(REPOSITORY_URL https://github.com/${ARG_GIT})
+
+ # Create a unique identifier for the dependency
+ string(MAKE_C_IDENTIFIER "${ARG_GIT}" DEPENDENCY_ID)
+ string(TOLOWER "${DEPENDENCY_ID}" DEPENDENCY_ID)
+
+ get_property(IS_DEPENDENCY_PRESENT GLOBAL PROPERTY ${DEPENDENCY_ID}_VERSION SET)
+
+ # Check if the dependency is already present
+ if(${IS_DEPENDENCY_PRESENT})
+ get_property(${DEPENDENCY_ID}_VERSION GLOBAL PROPERTY ${DEPENDENCY_ID}_VERSION)
+ # Check that the version is the same
+ if(NOT ${DEPENDENCY_ID}_VERSION STREQUAL ARG_TAG)
+ message(FATAL_ERROR "Dependency ${ARG_GIT} version mismatched\n\t${${DEPENDENCY_ID}_VERSION} != ${ARG_TAG}")
+ endif()
+ else()
+ message(STATUS "Configuring ${ARG_GIT}")
+
+ # Define the version
+ set_property(GLOBAL PROPERTY ${DEPENDENCY_ID}_VERSION ${ARG_TAG})
+
+ # Check if released version
+ if(CMAKE_BUILD_TYPE STREQUAL "Release")
+ if(NOT ${ARG_TAG} MATCHES "^tags/.*")
+ message(WARNING "Using ${ARG_GIT} with unreleased version ${ARG_TAG}")
endif()
endif()
- endif()
+ # Fetch the repository
+ FetchContent_Declare(${DEPENDENCY_ID}
+ GIT_REPOSITORY ${REPOSITORY_URL}
+ GIT_TAG ${ARG_TAG}
+ SOURCE_SUBDIR __none__
+ )
+ FetchContent_MakeAvailable(${DEPENDENCY_ID})
+
+ # Add cmake build if it exists
+ if(EXISTS "${${DEPENDENCY_ID}_SOURCE_DIR}/CMakeLists.txt")
+ add_subdirectory(${${DEPENDENCY_ID}_SOURCE_DIR} ${${DEPENDENCY_ID}_SOURCE_DIR}/../${DEPENDENCY_ID}-build)
+ endif()
+
+ # Handle python executable if it exists
+ if(NOT DEFINED ${DEPENDENCY_ID}_EXECUTABLE)
+ if(EXISTS "${${DEPENDENCY_ID}_SOURCE_DIR}/pyproject.toml")
+ execute_process(COMMAND ${Python3_EXECUTABLE} -m pip install -e ${${DEPENDENCY_ID}_SOURCE_DIR} OUTPUT_QUIET RESULT_VARIABLE rv)
+ if("${rv}" STREQUAL "0")
+ set(${DEPENDENCY_ID}_EXECUTABLE ${VENV_DIR}/bin/${ARG_BINARY} CACHE STRING "path to the ${DEPENDENCY_ID} executable")
+ endif()
+ endif()
+ endif()
+ endif()
endmacro()
diff --git a/config/verible-lint.rules b/config/verible-lint.rules
deleted file mode 100644
index 98ddb9d..0000000
--- a/config/verible-lint.rules
+++ /dev/null
@@ -1,3 +0,0 @@
--no-trailing-spaces
--line-length
-+parameter-name-style="localparam_style:ALL_CAPS"
diff --git a/config/verible-lint.waives b/config/verible-lint.waives
deleted file mode 100644
index 139597f..0000000
--- a/config/verible-lint.waives
+++ /dev/null
@@ -1,2 +0,0 @@
-
-
diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
index 6d82886..446975d 100644
--- a/tests/CMakeLists.txt
+++ b/tests/CMakeLists.txt
@@ -19,25 +19,23 @@
# You should have received a copy of the GNU General Public License
# along with ECAP5-DPROC. If not, see .
-set(BENCH_DIR ${CMAKE_CURRENT_SOURCE_DIR}/benches/)
-set(TEST_INCLUDE_DIR ${ecap5_dtestlib_SOURCE_DIR}/include)
-set(SRC_DIR ${CMAKE_SOURCE_DIR}/src/)
-set(INCLUDE_DIR ${SRC_DIR}/include/)
-set(LIBS_DIR ${ecap5_dtestlib_SOURCE_DIR}/src/)
-set(TESTDATA_DIR ${CMAKE_CURRENT_BINARY_DIR}/testdata/)
-set(CONFIG_DIR ${CMAKE_SOURCE_DIR}/config/)
+set(CMAKE_CXX_STANDARD 20)
+set(CMAKE_CXX_STANDARD_REQUIRED ON)
-# Create folders for the waves and testdata
-file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/waves)
-file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/testdata)
+# Bench parent directory
+set(BENCH_DIR ${CMAKE_CURRENT_SOURCE_DIR}/benches/)
+# C++ bench include directory
+set(TEST_INCLUDE_DIRS ${ecap5_ecap5_dtestlib_SOURCE_DIR}/include)
+# Bench CSV output directory
+set(TESTDATA_DIR ${CMAKE_CURRENT_BINARY_DIR}/)
# Lint
-file(GLOB SRC_FILES ${SRC_DIR}/*.sv)
-file(GLOB INCLUDE_FILES ${INCLUDE_DIR}/*.svh)
-add_custom_target(lint
- COMMAND verible-verilog-lint ${SRC_FILES} ${INCLUDE_FILES} --rules_config="${CONFIG_DIR}/verible-lint.rules" --waiver_files="${CONFIG_DIR}/verible-lint.waives"
- DEPENDS ${SRC_FILES} ${INCLUDE_FILES})
+add_lint_target(
+ TARGET lint
+ LIB ecap5_dproc
+)
+# Testbenches
add_subdirectory(benches)
add_subdirectory(emulator)
add_subdirectory(riscv-tests)
diff --git a/tests/benches/CMakeLists.txt b/tests/benches/CMakeLists.txt
index e7777c3..bc3d39a 100644
--- a/tests/benches/CMakeLists.txt
+++ b/tests/benches/CMakeLists.txt
@@ -19,68 +19,87 @@
# You should have received a copy of the GNU General Public License
# along with ECAP5-DPROC. If not, see .
-set(SV_HEADERS ${SRC_DIR}/include/ecap5_dproc_pkg.svh
- ${SRC_DIR}/include/riscv_pkg.svh)
+add_testbench(
+ MODULE registers
+ LIBS ecap5_dproc
+ BENCH_DIR ${BENCH_DIR}
+ TESTDATA_DIR ${TESTDATA_DIR}
+ TEST_INCLUDE_DIRS ${TEST_INCLUDE_DIRS}
+)
-# Testbench
-set(TEST_BINARIES)
-set(TEST_TARGETS)
-set(TEST_OUTPUTS)
-macro(add_testbench module)
- cmake_parse_arguments(ARG ""
- "BENCH"
- "LIBS"
- ${ARGN})
+add_testbench(
+ MODULE fetch
+ LIBS ecap5_dproc
+ BENCH_DIR ${BENCH_DIR}
+ TESTDATA_DIR ${TESTDATA_DIR}
+ TEST_INCLUDE_DIRS ${TEST_INCLUDE_DIRS}
+)
- if("${ARG_BENCH}" STREQUAL "")
- set(ARG_BENCH ${module})
- endif()
- set(TARGET tb_${ARG_BENCH})
+add_testbench(
+ MODULE decode
+ LIBS ecap5_dproc
+ BENCH_DIR ${BENCH_DIR}
+ TESTDATA_DIR ${TESTDATA_DIR}
+ TEST_INCLUDE_DIRS ${TEST_INCLUDE_DIRS}
+)
- # Make a file list for testing libraries
- list(TRANSFORM ARG_LIBS APPEND ".sv")
- list(TRANSFORM ARG_LIBS PREPEND ${LIBS_DIR})
+add_testbench(
+ MODULE execute
+ LIBS ecap5_dproc
+ BENCH_DIR ${BENCH_DIR}
+ TESTDATA_DIR ${TESTDATA_DIR}
+ TEST_INCLUDE_DIRS ${TEST_INCLUDE_DIRS}
+)
- # Create the test executable
- add_executable(${TARGET} ${BENCH_DIR}/${module}/${TARGET}.cpp)
- target_include_directories(${TARGET} PUBLIC ${TEST_INCLUDE_DIR})
- verilate(${TARGET}
- PREFIX V${TARGET}
- SOURCES ${SV_HEADERS}
- ${BENCH_DIR}/${module}/${TARGET}.sv
- ${ARG_LIBS}
- INCLUDE_DIRS ${SRC_DIR}
- TRACE)
+add_testbench(
+ MODULE loadstore
+ LIBS ecap5_dproc
+ BENCH_DIR ${BENCH_DIR}
+ TESTDATA_DIR ${TESTDATA_DIR}
+ TEST_INCLUDE_DIRS ${TEST_INCLUDE_DIRS}
+)
- set(TEST_TARGET simulate_${ARG_BENCH})
- set(TEST_OUTPUT ${TESTDATA_DIR}/${ARG_BENCH}.csv)
- # Create the ${TEST_TARGET} command to run the test
- get_target_property(BINARY_DIR "${TARGET}" BINARY_DIR)
- if(${DEBUGLOG})
- set(RUN_TARGET_ARGUMENT "-v")
- endif()
- add_custom_command(
- COMMAND ${TARGET} ${RUN_TARGET_ARGUMENT}
- OUTPUT ${TEST_OUTPUT}
- DEPENDS ${TARGET}
- WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/tests/)
- add_custom_target(${TEST_TARGET} DEPENDS ${TEST_OUTPUT})
- # Add the ${TEST_TARGET} target to the test targets
- list(APPEND TEST_BINARIES ${TARGET})
- list(APPEND TEST_TARGETS ${TEST_TARGET})
- list(APPEND TEST_OUTPUTS ${TEST_OUTPUT})
-endmacro()
+add_testbench(
+ MODULE loadstore
+ BENCH loadstore_w_slave
+ LIBS ecap5_dproc
+ ecap5_dtestlib
+ BENCH_DIR ${BENCH_DIR}
+ TESTDATA_DIR ${TESTDATA_DIR}
+ TEST_INCLUDE_DIRS ${TEST_INCLUDE_DIRS}
+)
-add_testbench(registers)
-add_testbench(fetch)
-add_testbench(decode)
-add_testbench(execute)
-add_testbench(loadstore)
-add_testbench(loadstore BENCH loadstore_w_slave LIBS instr_wb_slave)
-add_testbench(writeback)
-add_testbench(memory)
-add_testbench(hazard)
-add_testbench(ecap5_dproc)
+add_testbench(
+ MODULE writeback
+ LIBS ecap5_dproc
+ BENCH_DIR ${BENCH_DIR}
+ TESTDATA_DIR ${TESTDATA_DIR}
+ TEST_INCLUDE_DIRS ${TEST_INCLUDE_DIRS}
+)
+
+add_testbench(
+ MODULE memory
+ LIBS ecap5_dproc
+ BENCH_DIR ${BENCH_DIR}
+ TESTDATA_DIR ${TESTDATA_DIR}
+ TEST_INCLUDE_DIRS ${TEST_INCLUDE_DIRS}
+)
+
+add_testbench(
+ MODULE hazard
+ LIBS ecap5_dproc
+ BENCH_DIR ${BENCH_DIR}
+ TESTDATA_DIR ${TESTDATA_DIR}
+ TEST_INCLUDE_DIRS ${TEST_INCLUDE_DIRS}
+)
+
+add_testbench(
+ MODULE ecap5_dproc
+ LIBS ecap5_dproc
+ BENCH_DIR ${BENCH_DIR}
+ TESTDATA_DIR ${TESTDATA_DIR}
+ TEST_INCLUDE_DIRS ${TEST_INCLUDE_DIRS}
+)
add_custom_target(benches-build DEPENDS ${TEST_BINARIES})
add_custom_target(benches DEPENDS ${TEST_TARGETS})
diff --git a/tests/emulator/CMakeLists.txt b/tests/emulator/CMakeLists.txt
index 91058c9..a85c769 100644
--- a/tests/emulator/CMakeLists.txt
+++ b/tests/emulator/CMakeLists.txt
@@ -19,16 +19,13 @@
# You should have received a copy of the GNU General Public License
# along with ECAP5-DPROC. If not, see .
-set(SV_HEADERS ${SRC_DIR}/include/ecap5_dproc_pkg.svh
- ${SRC_DIR}/include/riscv_pkg.svh)
+get_all_sources_recursive(ecap5_dproc EMULATOR_SOURCES)
add_executable(emulator ${CMAKE_CURRENT_LIST_DIR}/emulator.cpp)
-target_include_directories(emulator PRIVATE ${TEST_INCLUDE_DIR})
+target_include_directories(emulator PRIVATE ${TEST_INCLUDE_DIRS})
verilate(emulator
PREFIX Vecap5_dproc
- SOURCES ${SV_HEADERS}
- ${SRC_DIR}/ecap5_dproc.sv
- INCLUDE_DIRS ${SRC_DIR}
+ SOURCES ${EMULATOR_SOURCES}
TRACE)
add_subdirectory(examples)
diff --git a/tests/riscv-tests/CMakeLists.txt b/tests/riscv-tests/CMakeLists.txt
index 5d01d63..a41f61b 100644
--- a/tests/riscv-tests/CMakeLists.txt
+++ b/tests/riscv-tests/CMakeLists.txt
@@ -21,17 +21,14 @@
add_subdirectory(tests)
-set(SV_HEADERS ${SRC_DIR}/include/ecap5_dproc_pkg.svh
- ${SRC_DIR}/include/riscv_pkg.svh)
+get_all_sources_recursive(ecap5_dproc RISCV_TESTS_SOURCES)
# riscv-tests
add_executable(riscv-tests-executable ${CMAKE_CURRENT_SOURCE_DIR}/riscv-tests.cpp)
-target_include_directories(riscv-tests-executable PRIVATE ${TEST_INCLUDE_DIR})
+target_include_directories(riscv-tests-executable PRIVATE ${TEST_INCLUDE_DIRS})
verilate(riscv-tests-executable
PREFIX Vecap5_dproc
- SOURCES ${SV_HEADERS}
- ${SRC_DIR}/ecap5_dproc.sv
- INCLUDE_DIRS ${SRC_DIR}
+ SOURCES ${RISCV_TESTS_SOURCES}
TRACE)
get_target_property(RISCV_TESTS_EXECUTABLE riscv-tests-executable BINARY_DIR)
if(${DEBUGLOG})
diff --git a/tests/riscv-tests/tests/CMakeLists.txt b/tests/riscv-tests/tests/CMakeLists.txt
index 149efb8..21e3395 100644
--- a/tests/riscv-tests/tests/CMakeLists.txt
+++ b/tests/riscv-tests/tests/CMakeLists.txt
@@ -32,7 +32,7 @@ set(TVM rv32ui) # Target Virtual Machine
set(TE p) # Target Environment
# Paths
-set(SOURCE_DIR ${riscv_tests_SOURCE_DIR}/isa/${TVM}/)
+set(SOURCE_DIR ${ecap5_riscv_tests_SOURCE_DIR}/isa/${TVM}/)
set(ENV_DIR ${CMAKE_CURRENT_SOURCE_DIR}/env/)
# Compile options
@@ -41,9 +41,9 @@ set(CC_OPTS "-static \
-fvisibility=hidden \
-nostdlib \
-nostartfiles")
-set(CC_INCS ${riscv_tests_SOURCE_DIR}/env
+set(CC_INCS ${ecap5_riscv_tests_SOURCE_DIR}/env
${ENV_DIR}
- ${riscv_tests_SOURCE_DIR}/isa/macros/scalar)
+ ${ecap5_riscv_tests_SOURCE_DIR}/isa/macros/scalar)
set(TARGETS simple
add addi