From c72951a36d6cb9775dc1ecd9bc26bc13e796f10c Mon Sep 17 00:00:00 2001 From: Julian Blake Kongslie Date: Sat, 2 Jul 2022 13:45:09 -0700 Subject: Dropping the async interface, and adding some real uarch. --- uarch/exec.h | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 uarch/exec.h (limited to 'uarch/exec.h') 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 @@ +#pragma once + +#include + +#include "aisa/aisa.h" +#include "aisa/simple-models.h" +#include "sim/sim.h" +#include "sim/queue.h" +#include "uarch/types.h" + +namespace uarch { + + struct ExecStage : public sim::Schedulable, aisa::TaskStack, aisa::VectorRF { + sim::Queue &execq; + sim::Queue &fillreqq; + sim::Queue &fillq; + sim::Queue &storeq; + + std::unique_ptr step; + aisa::Wires wires; + bool outstanding_fill = false; + bool fill_complete = false; + + ExecStage(sim::Scheduler &scheduler, sim::Queue &execq, sim::Queue &fillreqq, sim::Queue &fillq, sim::Queue &storeq); + + void clock() override; + }; + +} -- cgit v1.2.3