diff options
| author | Alejandro Soto <alejandro@34project.org> | 2023-10-05 00:36:37 -0600 |
|---|---|---|
| committer | Alejandro Soto <alejandro@34project.org> | 2023-10-05 13:07:57 -0600 |
| commit | 4acd900c4602db0353d11bf6841ddadfd80c57b8 (patch) | |
| tree | fe24637ccd16fefcf25f0c8d8e65b01d19a1760c /tb/sim_slave.cpp | |
| parent | d173727c1ed34652613fc046d522a43ac9ef015e (diff) | |
Makefile, tb: add support for cocotb
Diffstat (limited to 'tb/sim_slave.cpp')
| -rw-r--r-- | tb/sim_slave.cpp | 60 |
1 files changed, 0 insertions, 60 deletions
diff --git a/tb/sim_slave.cpp b/tb/sim_slave.cpp deleted file mode 100644 index 24528d2..0000000 --- a/tb/sim_slave.cpp +++ /dev/null @@ -1,60 +0,0 @@ -#include <cstdint> - -#include "avalon.hpp" -#include "sim_slave.hpp" - -namespace taller::avalon -{ - sim_slave::sim_slave(verilated_slave &dev, std::uint32_t base, std::uint32_t size) - : slave(base, size, 4), - dev(dev) - { - dev.avl_read = 0; - dev.avl_write = 0; - } - - void sim_slave::tick() noexcept - { - if (latch) { - dev.avl_read = 0; - dev.avl_write = 0; - } - } - - void sim_slave::tick_falling() noexcept - { - if ((dev.avl_read || dev.avl_write) && !dev.avl_waitrequest) { - latch = true; - latch_readdata = dev.avl_readdata; - } - } - - bool sim_slave::read(std::uint32_t addr, std::uint32_t &data) - { - if (latch) { - data = latch_readdata; - - latch = false; - return true; - } else if (!dev.avl_read && !dev.avl_write) { - dev.avl_read = 1; - dev.avl_address = addr; - } - - return false; - } - - bool sim_slave::write(std::uint32_t addr, std::uint32_t data, unsigned byte_enable) - { - if (latch) { - latch = false; - return true; - } else if (!dev.avl_read && !dev.avl_write) { - dev.avl_write = 1; - dev.avl_address = addr; - dev.avl_writedata = data; - } - - return false; - } -} |
