SimX timing simulation

This commit is contained in:
Blaise Tine
2021-11-13 01:41:12 -05:00
parent 009e897cab
commit c2721fd545
26 changed files with 3690 additions and 1639 deletions

View File

@@ -9,7 +9,7 @@ namespace vortex {
class Core;
class Instr;
class Pipeline;
class pipeline_state_t;
struct DomStackEntry {
DomStackEntry(const ThreadMask &tmask, Word PC)
: tmask(tmask)
@@ -41,8 +41,6 @@ struct vtype {
class Warp {
public:
Warp(Core *core, Word id);
void clear();
bool active() const {
return active_;
@@ -71,7 +69,7 @@ public:
}
void setTmask(size_t index, bool value) {
tmask_[index] = value;
tmask_.set(index, value);
active_ = tmask_.any();
}
@@ -82,18 +80,18 @@ public:
}
Word getIRegValue(int reg) const {
return iRegFile_[0][reg];
return iRegFile_.at(0).at(reg);
}
void step(Pipeline *);
void eval(pipeline_state_t *);
private:
void execute(const Instr &instr, Pipeline *);
void execute(const Instr &instr, pipeline_state_t *pipeline_state);
Word id_;
bool active_;
Core *core_;
bool active_;
Word PC_;
ThreadMask tmask_;