diff options
| author | Alejandro Soto <alejandro@34project.org> | 2022-09-18 17:16:46 -0600 |
|---|---|---|
| committer | Alejandro Soto <alejandro@34project.org> | 2022-09-18 17:16:46 -0600 |
| commit | 503957e2883e754fc8424c420c3d9838bd639ed3 (patch) | |
| tree | f4b0bad5928fee6a43b73f246df875e14b3f6728 /tb/avalon.hpp | |
| parent | 54544911601351465a6a887a045f3baddcb90dc6 (diff) | |
Fix memory simulation
Diffstat (limited to 'tb/avalon.hpp')
| -rw-r--r-- | tb/avalon.hpp | 15 |
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; }; } |
