summaryrefslogtreecommitdiff
path: root/uarch/exec.h
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--uarch/exec.h29
1 files changed, 29 insertions, 0 deletions
diff --git a/uarch/exec.h b/uarch/exec.h
new file mode 100644
index 0000000..1cfc525
--- /dev/null
+++ b/uarch/exec.h
@@ -0,0 +1,29 @@
1#pragma once
2
3#include <memory>
4
5#include "aisa/aisa.h"
6#include "aisa/simple-models.h"
7#include "sim/sim.h"
8#include "sim/queue.h"
9#include "uarch/types.h"
10
11namespace uarch {
12
13 struct ExecStage : public sim::Schedulable, aisa::TaskStack, aisa::VectorRF {
14 sim::Queue<Uop> &execq;
15 sim::Queue<FillReq> &fillreqq;
16 sim::Queue<Fill> &fillq;
17 sim::Queue<Store> &storeq;
18
19 std::unique_ptr<const aisa::Step> step;
20 aisa::Wires wires;
21 bool outstanding_fill = false;
22 bool fill_complete = false;
23
24 ExecStage(sim::Scheduler &scheduler, sim::Queue<Uop> &execq, sim::Queue<FillReq> &fillreqq, sim::Queue<Fill> &fillq, sim::Queue<Store> &storeq);
25
26 void clock() override;
27 };
28
29}