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:
Christian Dietrich
2013-06-01 18:18:51 +02:00
parent 04e96b977c
commit 844e15293d
7 changed files with 728 additions and 0 deletions

View 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