Exception doesn't stop simulation
This commit is contained in:
parent
08d699d34e
commit
e9e4543f72
|
@ -20,6 +20,7 @@
|
||||||
#define EXCEPTION_CAUSE_INSTRUCTION_ACCESS 1
|
#define EXCEPTION_CAUSE_INSTRUCTION_ACCESS 1
|
||||||
#define EXCEPTION_CAUSE_ILLEGAL_INSTRUCTION 2
|
#define EXCEPTION_CAUSE_ILLEGAL_INSTRUCTION 2
|
||||||
#define EXCEPTION_CAUSE_BREAKPOINT 3
|
#define EXCEPTION_CAUSE_BREAKPOINT 3
|
||||||
|
#define EXCEPTION_CAUSE_BREAK 3
|
||||||
#define EXCEPTION_CAUSE_LOAD_ADDR_MISALIGN 4
|
#define EXCEPTION_CAUSE_LOAD_ADDR_MISALIGN 4
|
||||||
#define EXCEPTION_CAUSE_LOAD_ACCESS_FAULT 5
|
#define EXCEPTION_CAUSE_LOAD_ACCESS_FAULT 5
|
||||||
|
|
||||||
|
|
|
@ -49,18 +49,12 @@ void extension_base::RaiseException(uint32_t cause, uint32_t inst) {
|
||||||
regs->setPC(new_pc);
|
regs->setPC(new_pc);
|
||||||
|
|
||||||
log->SC_log(Log::ERROR) << "Exception! new PC 0x" << std::hex << new_pc
|
log->SC_log(Log::ERROR) << "Exception! new PC 0x" << std::hex << new_pc
|
||||||
<< std::endl;
|
<< std::endl << std::flush;;
|
||||||
|
|
||||||
regs->dump();
|
|
||||||
std::cout << "Simulation time " << sc_core::sc_time_stamp() << std::endl;
|
|
||||||
perf->dump();
|
|
||||||
|
|
||||||
sc_core::sc_stop();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool extension_base::NOP() {
|
bool extension_base::NOP() {
|
||||||
|
|
||||||
log->SC_log(Log::INFO) << "NOP" << "\n";
|
log->SC_log(Log::INFO) << "NOP" << "\n";
|
||||||
|
sc_core::sc_stop();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue