Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 5 additions & 5 deletions sw/cmake/SnitchUtilities.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -54,12 +54,12 @@ macro(add_snitch_test_executable name)
endmacro()

macro(add_snitch_raw_test_rtl test_name target_name)
add_test(NAME ${SNITCH_TEST_PREFIX}rtl-${test_name} COMMAND ${SNITCH_SIMULATOR} $<TARGET_FILE:${target_name}>)
set_property(TEST ${SNITCH_TEST_PREFIX}rtl-${test_name}
add_test(NAME ${test_name} COMMAND ${SNITCH_SIMULATOR} $<TARGET_FILE:${target_name}>)
set_property(TEST ${test_name}
PROPERTY LABELS ${SNITCH_TEST_PREFIX})
set_tests_properties(${SNITCH_TEST_PREFIX}rtl-${test_name} PROPERTIES TIMEOUT ${SIMULATOR_TIMEOUT})
set_tests_properties(${SNITCH_TEST_PREFIX}rtl-${test_name} PROPERTIES PASS_REGULAR_EXPRESSION "SUCCESS;PASS")
set_tests_properties(${SNITCH_TEST_PREFIX}rtl-${test_name} PROPERTIES FAIL_REGULAR_EXPRESSION "FAILURE")
set_tests_properties(${test_name} PROPERTIES TIMEOUT ${SIMULATOR_TIMEOUT})
set_tests_properties(${test_name} PROPERTIES PASS_REGULAR_EXPRESSION "SUCCESS;PASS")
set_tests_properties(${test_name} PROPERTIES FAIL_REGULAR_EXPRESSION "FAILURE")
endmacro()

macro(add_snitch_test_rtl name)
Expand Down
3 changes: 3 additions & 0 deletions sw/riscvTests/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -138,3 +138,6 @@ add_snitch_test(vfcvt isa/rv64uv/vfcvt.c)
add_snitch_test(vfncvt isa/rv64uv/vfncvt.c)

add_snitch_test(vfmv isa/rv64uv/vfmv.c)

add_snitch_test(invalid isa/rv64uv/invalid.c)
set_property(TEST ${SNITCH_TEST_PREFIX}rtl-invalid PROPERTY WILL_FAIL TRUE)
12 changes: 12 additions & 0 deletions sw/riscvTests/isa/rv64uv/invalid.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
// Copyright 2026 ETH Zurich and University of Bologna.
// Solderpad Hardware License, Version 0.51, see LICENSE for details.
// SPDX-License-Identifier: SHL-0.51
//
// Author: Kai Berszin <kberszin@iis.ee.ethz.ch>


int main(void) {
__asm__ volatile (".word 0x00000000");

return 0;
}
10 changes: 7 additions & 3 deletions sw/snRuntime/src/interrupt.c
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,12 @@ void irq_m_timer(uint32_t core_idx);
void irq_m_ext(uint32_t core_idx);
void irq_m_cluster(uint32_t core_idx);

//================================================================================
// Runtime assembly definitions
//================================================================================

extern void _snrt_exit(uint32_t code);

//================================================================================
// Public functions
//================================================================================
Expand Down Expand Up @@ -67,9 +73,7 @@ void __snrt_isr(void) {
break;
}
} else {
// exceptions not handled, halt
while (1)
;
_snrt_exit(0xBAD);
}
}

Expand Down