1 // 2 // Copyright (c) 2010-2025 Antmicro 3 // 4 // This file is licensed under the MIT License. 5 // Full license text is available in 'licenses/MIT.txt'. 6 // 7 #ifndef Wishbone_H 8 #define Wishbone_H 9 #include "bus.h" 10 11 class WishboneBase 12 { 13 public: 14 uint8_t *wb_clk = nullptr; 15 uint8_t *wb_rst = nullptr; 16 uint64_t *wb_addr = nullptr; 17 uint64_t *wb_rd_dat = nullptr; 18 uint64_t *wb_wr_dat = nullptr; 19 uint8_t *wb_we = nullptr; 20 uint8_t *wb_sel = nullptr; 21 uint8_t *wb_stb = nullptr; 22 uint8_t *wb_ack = nullptr; 23 uint8_t *wb_cyc = nullptr; 24 uint8_t *wb_stall = nullptr; 25 uint8_t granularity; 26 uint8_t addr_lines; 27 }; 28 29 class Wishbone : public WishboneBase, public BaseTargetBus 30 { 31 public: Wishbone()32 Wishbone() { } 33 virtual void tick(bool countEnable, uint64_t steps); 34 virtual void write(int width, uint64_t addr, uint64_t value); 35 virtual uint64_t read(int width, uint64_t addr); 36 virtual void reset(); 37 bool areSignalsConnected(); 38 void timeoutTick(uint8_t *signal, uint8_t value, int timeout); 39 }; 40 #endif 41