From ecf940e34b42f78f9651a73e8bcd0c6dc3c75cb5 Mon Sep 17 00:00:00 2001 From: Julian Blake Kongslie Date: Sat, 15 Oct 2022 14:12:31 -0700 Subject: Depend on external nanosim dependency. --- infra/arbiter.h | 55 ------------------------------------------------------- 1 file changed, 55 deletions(-) delete mode 100644 infra/arbiter.h (limited to 'infra/arbiter.h') diff --git a/infra/arbiter.h b/infra/arbiter.h deleted file mode 100644 index 79a9920..0000000 --- a/infra/arbiter.h +++ /dev/null @@ -1,55 +0,0 @@ -#pragma once - -#include -#include - -#include "infra/sim.h" - -namespace infra { - template struct priority_arbiter : public sim { - std::array, peers> peerp; - port *outp = nullptr; - - void clock() { - for (unsigned int i = 0; i < peers; ++i) { - if (outp->can_write() && peerp[i].can_read()) - outp->write(peerp[i].read()); - } - } - }; - - template struct round_robin_arbiter : public sim { - std::array, peers> peerp; - port *outp = nullptr; - unsigned int initial = 0; - - void clock() { - bool initially_empty = outp->can_write(); - for (unsigned int i = initial; i < peers; ++i) { - if (outp->can_write() && peerp[i].can_read()) - outp->write(peerp[i].read()); - } - for (unsigned int i = 0; i < initial; ++i) { - if (outp->can_write() && peerp[i].can_read()) - outp->write(peerp[i].read()); - } - if (initially_empty && !outp->can_write()) - if (++initial == peers) - initial = 0; - } - }; - - template struct shared_bus : public sim { - std::array, peers> peerp; - port *outp = nullptr; - - void clock() { - for (unsigned int i = 0; i < peers; ++i) { - if (peerp[i].can_read()) { - assert(outp->can_write()); - outp->write(peerp[i].read()); - } - } - } - }; -} -- cgit v1.2.3