Why can't you simply upload the design to an FPGA, and then check that it can:
1. Boot all available operating systems (Linux, *BSD, Windows, etc.)
2. Successfully compile and run the testsuites for a bunch of open-source software (several languages like Rust have a standardized repository and method to build and run tests, so this is very easy)
3. Correctly run stress testing software (Prime95, etc.)
4. Correctly run several software unit tests that you write to exercise instructions that may not be produced by LLVM/GCC
5. Correctly run tests you write to exercise specific processor/cache states
6. Properly handling fuzzed code without freezing the whole CPU (using afl-fuzz)
Start with the simplest possible in-order core so that you get it working very easily, and then evolve to your desired end-state with a series of small commits, and if the verification fails use `git bisect` if needed to find the offending commit, insert any instrumentation you might need to detect the issue and fix it.
I don't see why you would need a specialized tool for that, or even what a specialized tool could possibly do.