From bcf2314f15d68d7a0b94445f99962342b9d4130d Mon Sep 17 00:00:00 2001 From: Julian Blake Kongslie Date: Sat, 15 Oct 2022 15:01:25 -0700 Subject: Switch to external nanosim dependency. --- infra/arbiter.h | 42 ------------------------------------------ 1 file changed, 42 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 5dd1647..0000000 --- a/infra/arbiter.h +++ /dev/null @@ -1,42 +0,0 @@ -#pragma once - -#include -#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; - } - }; -} -- cgit v1.2.3