From eb3fd68203fee7c63245c702914c2acd3332d65a Mon Sep 17 00:00:00 2001 From: Julian Blake Kongslie Date: Thu, 22 Sep 2022 11:29:07 -0700 Subject: Initial commit. --- cpu.h | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 cpu.h (limited to 'cpu.h') diff --git a/cpu.h b/cpu.h new file mode 100644 index 0000000..5ef45a0 --- /dev/null +++ b/cpu.h @@ -0,0 +1,40 @@ +#pragma once + +#include +#include +#include + +#include "backend/exec.h" +#include "backend/regfile.h" +#include "frontend/decode.h" +#include "frontend/fetch.h" +#include "infra/arbiter.h" +#include "infra/pipetrace.h" +#include "infra/queue.h" +#include "infra/sim.h" +#include "inst.h" +#include "memory/dram.h" + +struct cpu { + backend::exec exec; + backend::regfile regfile; + frontend::decode decode; + frontend::fetch fetch; + infra::priority_arbiter dram_arbiter; + infra::queue decodeq; + memory::dram dram; + + cpu() { + decode.fetch_restartp = &fetch.restartp; + decode.instp = &decodeq.input; + decodeq.output = ®file.instp; + dram_arbiter.outp = &dram.commandp; + exec.loadp = &dram_arbiter.peerp[1]; + exec.writebackp = ®file.writebackp; + fetch.bundlep = &decode.bundlep; + fetch.commandp = &dram_arbiter.peerp[2]; + regfile.decode_restartp = &decode.restartp; + regfile.execp = &exec.execp; + regfile.storep = &dram_arbiter.peerp[0]; + } +}; -- cgit v1.2.3