#include #include #include "fib/fib.h" #include "git-tag.h" #include "sim/sim.h" #include "sim/queue.h" #include "uarch/exec.h" #include "uarch/fetch.h" #include "uarch/memory.h" #include "uarch/types.h" int main(int argc, const char *argv[]) { std::cout << "Version " << GIT_TAG << "\n"; fib::Fib<3> fib; sim::Scheduler sched; sim::Queue fillreqq(sched, 1); sim::Queue fillfetchq(sched, 0); sim::Queue fillexecq(sched, 0); sim::Queue storeq(sched, 1); sim::Queue execq(sched, 0); uarch::FetchStage fetch(sched, fib, fillreqq, fillfetchq, execq); uarch::ExecStage exec(sched, execq, fillreqq, fillexecq, storeq); uarch::MemStage mem(sched, fillreqq, {&fillfetchq, &fillexecq}, storeq); while (true) { std::cout << "\n*** cycle " << sched.now << "\n\n"; sched.clock(); } return 0; }