From 6fb3849e73b797d4610a2b782127f927dec0c9c9 Mon Sep 17 00:00:00 2001 From: Alejandro Soto Date: Mon, 14 Nov 2022 21:10:40 -0600 Subject: Implement VGA simulation --- tb/mem.cpp | 55 ------------------------------------------------------- 1 file changed, 55 deletions(-) delete mode 100644 tb/mem.cpp (limited to 'tb/mem.cpp') diff --git a/tb/mem.cpp b/tb/mem.cpp deleted file mode 100644 index 6eeb7df..0000000 --- a/tb/mem.cpp +++ /dev/null @@ -1,55 +0,0 @@ -#include -#include -#include - -#include "mem.hpp" - -namespace taller::avalon -{ - mem::mem(std::uint32_t base, std::uint32_t size) - : base(base), mask(~(size - 1)), - block(std::make_unique(size >> 2)) - { - assert(!(size & 0b11) && !((size - 1) & size)); - } - - bool mem::read(std::uint32_t addr, std::uint32_t &data) - { - data = block[addr]; - return ready(); - } - - bool mem::write(std::uint32_t addr, std::uint32_t data, unsigned byte_enable) - { - std::uint32_t bytes = 0; - - if(byte_enable & 0b1000) - { - bytes |= 0xff << 24; - } - - if(byte_enable & 0b0100) - { - bytes |= 0xff << 16; - } - - if(byte_enable & 0b0010) - { - bytes |= 0xff << 8; - } - - if(byte_enable & 0b0001) - { - bytes |= 0xff; - } - - block[addr] = (data & bytes) | (block[addr] & ~bytes); - return ready(); - } - - bool mem::ready() noexcept - { - count = count > 0 ? count - 1 : 2; - return count == 0; - } -} -- cgit v1.2.3