summaryrefslogtreecommitdiff
path: root/tb/avalon.hpp
diff options
context:
space:
mode:
authorAlejandro Soto <alejandro@34project.org>2022-09-18 17:16:46 -0600
committerAlejandro Soto <alejandro@34project.org>2022-09-18 17:16:46 -0600
commit503957e2883e754fc8424c420c3d9838bd639ed3 (patch)
treef4b0bad5928fee6a43b73f246df875e14b3f6728 /tb/avalon.hpp
parent54544911601351465a6a887a045f3baddcb90dc6 (diff)
Fix memory simulation
Diffstat (limited to '')
-rw-r--r--tb/avalon.hpp15
1 files changed, 9 insertions, 6 deletions
diff --git a/tb/avalon.hpp b/tb/avalon.hpp
index 38c8792..8964cdb 100644
--- a/tb/avalon.hpp
+++ b/tb/avalon.hpp
@@ -9,8 +9,8 @@ namespace taller::avalon
class slave
{
public:
- virtual std::uint32_t base_address() = 0;
- virtual std::uint32_t address_mask() = 0;
+ virtual std::uint32_t base_address() noexcept = 0;
+ virtual std::uint32_t address_mask() noexcept = 0;
virtual bool read(std::uint32_t addr, std::uint32_t &data) = 0;
virtual bool write(std::uint32_t addr, std::uint32_t data, unsigned byte_enable) = 0;
@@ -20,11 +20,9 @@ namespace taller::avalon
class interconnect
{
public:
- inline interconnect(Platform &plat) noexcept
- : plat(plat)
- {}
+ interconnect(Platform &plat) noexcept;
- void tick();
+ void tick(bool clk);
void attach(slave &dev);
private:
@@ -38,6 +36,11 @@ namespace taller::avalon
Platform &plat;
slave* active = nullptr;
std::vector<binding> devices;
+ std::uint32_t avl_address = 0;
+ std::uint32_t avl_writedata = 0;
+ unsigned avl_byteenable = 0;
+ bool avl_read = false;
+ bool avl_write = false;
};
}