feat: add test status handling to sysctrl and integrate with simulation framework

- Introduced test status signals (test_done_o, test_pass_o, test_code_o) in sysctrl interface and module.
- Updated memory map to include TEST_STATUS offset.
- Enhanced retrosoc_tb to monitor test completion and report results.
- Modified Emulator to handle test status and return appropriate exit codes.
- Updated formal verification to include assertions for test status.
- Added CoreMark log parsing script and integrated it into the regression tests.
- Implemented tests for test status handling in sysctrl_fault_tb.
- Adjusted simulation success and failure markers in various scripts and tests.
- Ensured compatibility with existing performance logging and regression testing frameworks.
This commit is contained in:
maksyuki committed 2026-08-06 13:23:16 +08:00
1 parent be2f351927
commit 99d4618cc2
45 files changed
+1209 -81

No files matched your search

+20
View File
@@ -143,6 +143,26 @@ module sysctrl_fault_tb;
$fatal(1, "user core stop state was not recorded");
end
read_register(32'h1000_B084, read_data);
if (read_data !== 32'h0000_0000) begin
$fatal(1, "test status did not reset");
end
write_register(32'h1000_B084, 32'h0000_5A01);
read_register(32'h1000_B084, read_data);
if (read_data !== 32'h0000_0000) begin
$fatal(1, "invalid test status write was accepted");
end
write_register(32'h1000_B084, 32'h8000_5A01);
read_register(32'h1000_B084, read_data);
if (read_data !== 32'h8000_5A01) begin
$fatal(1, "test pass status was not recorded");
end
write_register(32'h1000_B084, 32'h8000_0B00);
read_register(32'h1000_B084, read_data);
if (read_data !== 32'h8000_5A01) begin
$fatal(1, "terminal test status was overwritten");
end
$display("sysctrl fault and user core control test passed");
$finish;
end