experiments: new cored-voter experiment
The experiment does support - 1 bit faults in registers/memory/IP - 2 bit faults in registers (all) - n bit faults monte-carlo in registers Change-Id: Ifdd7df6ec4bc88cfc75391b5e19e0d648fd0d087
This commit is contained in:
32
src/experiments/cored-voter/experiment.hpp
Normal file
32
src/experiments/cored-voter/experiment.hpp
Normal file
@ -0,0 +1,32 @@
|
||||
#ifndef __CORED_VOTER_EXPERIMENT_HPP__
|
||||
#define __CORED_VOTER_EXPERIMENT_HPP__
|
||||
|
||||
|
||||
#include "sal/SALInst.hpp"
|
||||
#include "efw/ExperimentFlow.hpp"
|
||||
#include "efw/JobClient.hpp"
|
||||
#include "util/Logger.hpp"
|
||||
#include "util/ElfReader.hpp"
|
||||
#include <vector>
|
||||
#include <string>
|
||||
|
||||
class CoredVoter : public fail::ExperimentFlow {
|
||||
public:
|
||||
|
||||
private:
|
||||
fail::JobClient m_jc;
|
||||
fail::Logger m_log;
|
||||
fail::MemoryManager& m_mm;
|
||||
fail::ElfReader m_elf;
|
||||
|
||||
|
||||
unsigned injectBitFlip(fail::address_t data_address, unsigned data_width, unsigned bitpos);
|
||||
void redecodeCurrentInstruction();
|
||||
|
||||
public:
|
||||
CoredVoter() : m_log("CoredVoter", false), m_mm(fail::simulator.getMemoryManager()) {}
|
||||
|
||||
bool run();
|
||||
};
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user